|
|
|
@ -2,7 +2,8 @@ |
|
|
|
<view class="main"> |
|
|
|
<!-- 顶部状态栏占位 --> |
|
|
|
<view class="top" :style="{height:iSMT+'px'}"></view> |
|
|
|
|
|
|
|
<!-- 登录的提示 --> |
|
|
|
<LoginPrompt ref="loginPrompt"></LoginPrompt> |
|
|
|
<!-- 头部导航 --> |
|
|
|
<view class="header"> |
|
|
|
<view class="headphone-icon"> |
|
|
|
@ -194,6 +195,7 @@ import DeepMate from '../../components/DeepMate.vue' |
|
|
|
import tcpConnection from '../../api/tcpConnection.js' |
|
|
|
import th from '../../static/language/th' |
|
|
|
import MySelectionsAPI from '../../api/home/mySelections.js' |
|
|
|
import { useUserStore } from '../../stores/modules/userInfo' |
|
|
|
export default { |
|
|
|
components: { |
|
|
|
footerBar, |
|
|
|
@ -205,6 +207,9 @@ export default { |
|
|
|
type: 'home', |
|
|
|
iSMT: 0, |
|
|
|
|
|
|
|
// 用户信息 store |
|
|
|
userStore: null, |
|
|
|
|
|
|
|
// 深度探索数据 |
|
|
|
explorationItems: [ |
|
|
|
{ title: '主力追踪', icon: '/static/c1.png' }, |
|
|
|
@ -319,6 +324,9 @@ export default { |
|
|
|
// 状态栏高度 |
|
|
|
this.iSMT = uni.getSystemInfoSync().statusBarHeight; |
|
|
|
|
|
|
|
// 初始化用户信息 store |
|
|
|
this.userStore = useUserStore(); |
|
|
|
|
|
|
|
// 预加载图片资源 |
|
|
|
this.myStocks.forEach(stock => { |
|
|
|
// 使用uni.getImageInfo替代Image对象 |
|
|
|
@ -337,6 +345,14 @@ export default { |
|
|
|
// 初始化TCP连接监听器 |
|
|
|
this.initTcpListeners() |
|
|
|
|
|
|
|
// 检查用户登录状态,只有已登录才加载自选股数据 |
|
|
|
if (this.userStore.userInfo) { |
|
|
|
console.log('用户已登录,加载自选股数据') |
|
|
|
this.loadMySelectionsData() |
|
|
|
} else { |
|
|
|
console.log('用户未登录,跳过自选股数据加载') |
|
|
|
} |
|
|
|
|
|
|
|
// 页面渲染完成后自动连接两个TCP连接 |
|
|
|
// this.$nextTick(() => { |
|
|
|
// console.log('页面渲染完成,开始自动连接TCP服务器...') |
|
|
|
@ -401,6 +417,147 @@ export default { |
|
|
|
}, delay) |
|
|
|
}, |
|
|
|
|
|
|
|
// 自选股数据加载相关方法 |
|
|
|
|
|
|
|
// 加载自选股数据的主方法 |
|
|
|
async loadMySelectionsData() { |
|
|
|
try { |
|
|
|
console.log('开始加载自选股数据...') |
|
|
|
|
|
|
|
// 调用checkExist判断用户是否存在自选股 |
|
|
|
const checkResult = await MySelectionsAPI.checkExist() |
|
|
|
console.log('检查用户自选股存在性结果:', checkResult) |
|
|
|
|
|
|
|
if (checkResult.code === 200) { |
|
|
|
const isHave = checkResult.data.is_have |
|
|
|
|
|
|
|
if (isHave === 1) { |
|
|
|
// 用户有自选股,查询所有分组 |
|
|
|
console.log('用户存在自选股,查询所有分组...') |
|
|
|
await this.loadUserStockGroups() |
|
|
|
} else { |
|
|
|
// 用户没有自选股,查询默认自选股 |
|
|
|
console.log('用户不存在自选股,查询默认自选股...') |
|
|
|
await this.loadDefaultStocks() |
|
|
|
} |
|
|
|
} else { |
|
|
|
console.error('检查用户自选股存在性失败:', checkResult.message) |
|
|
|
// 失败时也尝试加载默认自选股 |
|
|
|
await this.loadDefaultStocks() |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('加载自选股数据失败:', error) |
|
|
|
// 出错时尝试加载默认自选股 |
|
|
|
await this.loadDefaultStocks() |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 加载用户自选股分组 |
|
|
|
async loadUserStockGroups() { |
|
|
|
try { |
|
|
|
const groupResult = await MySelectionsAPI.getUserStockGroupList() |
|
|
|
console.log('查询用户自选股分组结果:', groupResult) |
|
|
|
|
|
|
|
if (groupResult.code === 200 && groupResult.data && groupResult.data.length > 0) { |
|
|
|
// 找到id最小的分组 |
|
|
|
const minIdGroup = groupResult.data.reduce((min, current) => { |
|
|
|
return current.id < min.id ? current : min |
|
|
|
}) |
|
|
|
|
|
|
|
console.log('找到最小id分组:', minIdGroup) |
|
|
|
|
|
|
|
// 查询该分组下的股票 |
|
|
|
await this.loadGroupStocks(minIdGroup.id) |
|
|
|
} else { |
|
|
|
console.log('没有找到用户自选股分组,加载默认自选股') |
|
|
|
await this.loadDefaultStocks() |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('加载用户自选股分组失败:', error) |
|
|
|
await this.loadDefaultStocks() |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 加载指定分组下的股票 |
|
|
|
async loadGroupStocks(groupId) { |
|
|
|
try { |
|
|
|
const stockResult = await MySelectionsAPI.getUserStockList(null, null, { |
|
|
|
groupId: groupId, |
|
|
|
pageNum: 1, |
|
|
|
pageSize: 20 |
|
|
|
}) |
|
|
|
|
|
|
|
console.log('查询分组自选股结果:', stockResult) |
|
|
|
|
|
|
|
if (stockResult.code === 200 && stockResult.data) { |
|
|
|
this.processStockData(stockResult.data) |
|
|
|
} else { |
|
|
|
console.log('分组下没有股票数据,加载默认自选股') |
|
|
|
await this.loadDefaultStocks() |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('加载分组股票失败:', error) |
|
|
|
await this.loadDefaultStocks() |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 加载默认自选股 |
|
|
|
async loadDefaultStocks() { |
|
|
|
try { |
|
|
|
const defaultResult = await MySelectionsAPI.getUserOrDefault() |
|
|
|
console.log('查询默认自选股结果:', defaultResult) |
|
|
|
|
|
|
|
if (defaultResult.code === 200 && defaultResult.data) { |
|
|
|
this.processStockData(defaultResult.data) |
|
|
|
} else { |
|
|
|
console.log('没有默认自选股数据') |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('加载默认自选股失败:', error) |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 处理股票数据 |
|
|
|
processStockData(stockData) { |
|
|
|
console.log('处理股票数据:', stockData) |
|
|
|
|
|
|
|
// 根据返回的数据结构更新myStocks数组 |
|
|
|
// 这里需要根据实际API返回的数据结构进行调整 |
|
|
|
if (Array.isArray(stockData)) { |
|
|
|
// 如果是数组格式 |
|
|
|
this.myStocks = stockData.map(stock => ({ |
|
|
|
name: stock.name || stock.stock_name || '', |
|
|
|
code: stock.code || stock.stock_code || '', |
|
|
|
// price: stock.price || stock.current_price || '0.00', |
|
|
|
// change: stock.change || stock.change_percent || 0, |
|
|
|
chartImg: stock.chartImg || '/static/c5.png' // 默认图片 |
|
|
|
})) |
|
|
|
//重新赋值机构动向简报 |
|
|
|
this.institutionalReports = stockData.map(stock => ({ |
|
|
|
stock: stock.name || stock.stock_name || '', |
|
|
|
status: stock.code || stock.stock_code || '', |
|
|
|
|
|
|
|
})) |
|
|
|
} else if (stockData.list && Array.isArray(stockData.list)) { |
|
|
|
// 如果是分页格式 |
|
|
|
this.myStocks = stockData.list.map(stock => ({ |
|
|
|
name: stock.name || stock.stock_name || '', |
|
|
|
code: stock.code || stock.stock_code || '', |
|
|
|
// price: stock.price || stock.current_price || '0.00', |
|
|
|
// change: stock.change || stock.change_percent || 0, |
|
|
|
chartImg: stock.chartImg || '/static/c5.png' // 默认图片 |
|
|
|
})) |
|
|
|
//重新赋值机构动向简报 |
|
|
|
//重新赋值机构动向简报 |
|
|
|
this.institutionalReports = stockData.map(stock => ({ |
|
|
|
stock: stock.name || stock.stock_name || '', |
|
|
|
status: stock.code || stock.stock_code || '', |
|
|
|
})) |
|
|
|
} |
|
|
|
|
|
|
|
console.log('更新后的自选股数据:', this.myStocks) |
|
|
|
}, |
|
|
|
|
|
|
|
// TCP连接相关方法 |
|
|
|
|
|
|
|
// 初始化TCP监听器 |
|
|
|
|