Browse Source

深度探索历史记录接口

lihuilin/feature-20251024095243-我的
wangyi 4 weeks ago
parent
commit
3e7ac6fbf0
  1. 13
      api/deepExploration/deepExploration.js
  2. 68
      components/deepExploration_header.vue
  3. 149
      pages/deepExploration/deepExploration.vue
  4. 1
      stores/index.js
  5. 44
      stores/modules/deepExploration.js
  6. 7
      utils/http.js

13
api/deepExploration/deepExploration.js

@ -21,3 +21,16 @@ export const RecordListApi = (data) => {
}
//历史记录详情
export const RecordInfoApi = (data) => {
return http({
method: 'POST',
url: '/api/coze/clickRecord',
data:data
})
}

68
components/deepExploration_header.vue

@ -84,8 +84,12 @@
</template>
<script setup>
import { RecordListApi } from "../api/deepExploration/deepExploration";
import {
RecordListApi,
RecordInfoApi,
} from "../api/deepExploration/deepExploration";
import { ref, onMounted, computed } from "vue";
import { useDeepExplorationStore } from "../stores/modules/deepExploration";
const props = defineProps({
name: {
@ -144,53 +148,21 @@ const onDrawerBackClick = () => {
//
async function itemClick(item) {
// const res = await postHistoryDetail({
// recordId: item.id,
// parentId: item.parentId,
// model: 5,
// });
// if (res.code == 200) {
// const message = res.data.wokeFlowData.One.markdown;
// messages.value = [];
// const botMsg = {
// content: message,
// isUser: false,
// isTyping: false,
// isThinking: false,
// };
// messages.value.push(botMsg);
// }
}
const historyList = ref([
{
title: "今天", //
items: [
{
icon: "/static/deepExploration-images/Americle.png",
stockName: "TechCore", //
stockCode: "600001", // 6
createdTime: "14:35", // :
},
{
icon: "/static/deepExploration-images/Americle.png",
stockName: "MediaLink",
stockCode: "600002",
createdTime: "10:12",
},
],
},
{
title: "昨天",
items: [
{
icon: "/static/deepExploration-images/Americle.png",
stockName: "FinServ",
stockCode: "600003",
createdTime: "09:48",
},
],
},
]);
const res = await RecordInfoApi({
recordId: item.id,
parentId: item.parentId,
model: 5,
});
if (res.code == 200) {
const message = res.data;
const deepExplorationStore = useDeepExplorationStore();
deepExplorationStore.setDeepExplorationInfo(message);
onDrawerBackClick();
console.log(deepExplorationStore.deepExplorationInfo);
}
}
const historyList = ref([]);
// YYYY-MM-DD HH:mm
const formatTimeForHistory = (timeString) => {

149
pages/deepExploration/deepExploration.vue

@ -3,30 +3,56 @@
<!-- 顶部状态栏占位 -->
<view class="top" :style="{ height: iSMT + 'px' }"></view>
<!-- 标题图标部分 -->
<deepExploration_header></deepExploration_header>
<deepExploration_header
></deepExploration_header>
<view class="search">
<input v-model="stockName" class="searchInput" type="text" placeholder="请输入股票名称、股票代码"
placeholder-style="color: #A6A6A6; font-size: 22rpx;" />
<image @click="searchStock" class="seachIcon" src="/static/deepExploration-images/search.png"
mode="aspectFill"></image>
<input
v-model="stockName"
class="searchInput"
type="text"
placeholder="请输入股票名称、股票代码"
placeholder-style="color: #A6A6A6; font-size: 22rpx;"
/>
<image
@click="searchStock"
class="seachIcon"
src="/static/deepExploration-images/search.png"
mode="aspectFill"
></image>
</view>
<!-- 四大功能模块 -->
<view class="select">
<view class="selectItem" @click="toMain('主力追踪')">
<image class="img" src="/static/deepExploration-images/icon3.png" mode="aspectFill"></image>
<image
class="img"
src="/static/deepExploration-images/icon3.png"
mode="aspectFill"
></image>
<view class="txt">主力追踪</view>
</view>
<view class="selectItem" @click="toMain('主力雷达')">
<image class="img" src="/static/deepExploration-images/icon2.png" mode="aspectFill"></image>
<image
class="img"
src="/static/deepExploration-images/icon2.png"
mode="aspectFill"
></image>
<view class="txt">主力雷达</view>
</view>
<view class="selectItem" @click="toMain('主力解码')">
<image class="img" src="/static/deepExploration-images/icon1.png" mode="aspectFill"></image>
<image
class="img"
src="/static/deepExploration-images/icon1.png"
mode="aspectFill"
></image>
<view class="txt">主力解码</view>
</view>
<view class="selectItem" @click="toMain('主力资金流')">
<image class="img" src="/static/deepExploration-images/icon4.png" mode="aspectFill"></image>
<image
class="img"
src="/static/deepExploration-images/icon4.png"
mode="aspectFill"
></image>
<view class="txt">主力资金流</view>
</view>
</view>
@ -39,7 +65,7 @@
<view class="txt">
<text>选股策略</text>
</view>
<view class="viewAll" @click='viewAll'>
<view class="viewAll" @click="viewAll">
<text>查看全部</text>
</view>
</view>
@ -48,14 +74,19 @@
<view class="selectionItem">
<view class="header">
<view class="left">
<image src="/static/deepExploration-images/plus.png" mode="aspectFill"></image>
<image
src="/static/deepExploration-images/plus.png"
mode="aspectFill"
></image>
<text>抄底卖顶</text>
</view>
<view class="right">
<image src="/static/deepExploration-images/Americle.png" mode="aspectFill"></image>
<image
src="/static/deepExploration-images/Americle.png"
mode="aspectFill"
></image>
<text>美股</text>
</view>
</view>
<view class="content">
<view class="contentTitle">
@ -78,11 +109,17 @@
<view class="selectionItem">
<view class="header">
<view class="left">
<image src="/static/deepExploration-images/plus.png" mode="aspectFill"></image>
<image
src="/static/deepExploration-images/plus.png"
mode="aspectFill"
></image>
<text>抄底卖顶</text>
</view>
<view class="right">
<image src="/static/deepExploration-images/Americle.png" mode="aspectFill"></image>
<image
src="/static/deepExploration-images/Americle.png"
mode="aspectFill"
></image>
<text>美股</text>
</view>
</view>
@ -108,74 +145,73 @@
</template>
<script setup>
import {
ref,
onMounted
} from 'vue'
import footerBar from '@/components/footerBar.vue'
import deepExploration_header from '@/components/deepExploration_header.vue'
import { ref, onMounted } from "vue";
import footerBar from "@/components/footerBar.vue";
import deepExploration_header from "@/components/deepExploration_header.vue";
const type = ref('deepExploration')
const iSMT = ref(0)
const type = ref("deepExploration");
const iSMT = ref(0);
//
const toMain = (val) => {
if (val == '主力追踪') {
if (val == "主力追踪") {
uni.navigateTo({
url: '/pages/deepExploration/MainForceActions?index=1'
})
} else if (val == '主力雷达') {
url: "/pages/deepExploration/MainForceActions?index=1",
});
} else if (val == "主力雷达") {
uni.navigateTo({
url: '/pages/deepExploration/MainForceActions?index=2'
})
} else if (val == '主力解码') {
url: "/pages/deepExploration/MainForceActions?index=2",
});
} else if (val == "主力解码") {
uni.navigateTo({
url: '/pages/deepExploration/MainForceActions?index=3'
})
} else if (val == '主力资金流') {
url: "/pages/deepExploration/MainForceActions?index=3",
});
} else if (val == "主力资金流") {
uni.navigateTo({
url: '/pages/deepExploration/MainForceActions?index=4'
})
}
url: "/pages/deepExploration/MainForceActions?index=4",
});
}
};
const stockName = ref('')
const stockName = ref("");
//
const searchStock = () => {
console.log('搜索参数:', stockName.value);
console.log("搜索参数:", stockName.value);
uni.navigateTo({
url: `/pages/deepExploration/MainForceActions?stockName=${stockName.value}`
})
}
url: `/pages/deepExploration/MainForceActions?stockName=${stockName.value}`,
});
};
//
const viewAll = () => {
uni.navigateTo({
url: '/pages/deepExploration/stockSelectDetail'
})
}
url: "/pages/deepExploration/stockSelectDetail",
});
};
//
const stockData = [{
const stockData = [
{
name: "(MKTW)MarketWise Inc",
close: "$14.190",
select: "$13.180"
select: "$13.180",
},
{
name: "(MTCH)Match Group Inc",
close: "$32.120",
select: "$28.120"
select: "$28.120",
},
{
name: "(MKTW)MarketWise Inc",
close: "$14.190",
select: "$13.180"
}
select: "$13.180",
},
];
onMounted(() => {
//
iSMT.value = uni.getSystemInfoSync().statusBarHeight;
})
});
</script>
<style scoped lang="scss">
@ -188,7 +224,7 @@
position: relative;
display: flex;
align-items: center;
background-color: #F3F3F3;
background-color: #f3f3f3;
width: calc(100% - 60rpx);
height: 80rpx;
border-radius: 50rpx;
@ -239,7 +275,7 @@
.gap {
width: 100%;
height: 15rpx;
background-color: #F3F3F3;
background-color: #f3f3f3;
}
.stockSelection {
@ -275,7 +311,7 @@
.stockSelection_content {
.selectionItem {
background-color: #F3F3F3;
background-color: #f3f3f3;
padding: 30rpx 15rpx 17rpx 30rpx;
border-radius: 30rpx;
margin-top: 30rpx;
@ -314,7 +350,7 @@
justify-content: space-between;
align-items: center;
border-radius: 15rpx;
background-color: #FFFFFF;
background-color: #ffffff;
padding: 6rpx 20rpx;
image {
@ -362,7 +398,6 @@
width: 120rpx;
margin-left: 60rpx;
}
}
.contentItem {
@ -410,9 +445,7 @@
}
}
}
}
}
.static-footer {

1
stores/index.js

@ -9,5 +9,6 @@ pinia.use(persist)
// 导入所有模块
export * from './modules/userInfo'
export * from './modules/deviceInfo'
export * from './modules/deepExploration'
// 默认导出,给 main.js 使用
export default pinia

44
stores/modules/deepExploration.js

@ -0,0 +1,44 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
// 定义 Store
export const useDeepExplorationStore = defineStore(
'deepExploration',
() => {
// 会员信息
const deepExplorationInfo = ref()
// 保存会员信息,登录时使用
const setDeepExplorationInfo = (val) => {
deepExplorationInfo.value = val
}
// 清理会员信息,退出时使用
const clearDeepExplorationInfo = () => {
deepExplorationInfo.value = undefined
}
// 记得 return
return {
deepExplorationInfo,
setDeepExplorationInfo,
clearDeepExplorationInfo,
}
},
// TODO: 持久化
{
// 网页端持久化
// persist: true,
// 小程序端持久化
persist: {
storage: {
getItem(key) {
return uni.getStorageSync(key)
},
setItem(key, value) {
uni.setStorageSync(key, value)
},
},
},
},
)

7
utils/http.js

@ -30,15 +30,14 @@ const httpInterceptor = {
const deviceInfo =useDeviceStore()
const client = 'ios';
options.header = {
...options.header,
'source-client': 'miniapp',
// 标准头与文档头同时设置,确保兼容
'content-type': 'application/json',
'contentType': 'application/json',
'version': '1',
'client': client,
'version': uni.getSystemInfoSync().appVersion,
'client': uni.getSystemInfoSync().platform == 'ios' ? 'ios' : 'android',
'deviceId': deviceInfo.deviceInfo.deviceId
}
//4 添加token,优先用store,没有则回退到body中的token,保持与Apifox一致

Loading…
Cancel
Save