Merge branch 'milestone-20251031-简版功能开发' of http://39.101.133.168:8807/qimaohong/deepChartVueApp into wangyi/feature-20251026183100-deepmate王毅
lihuilin/feature-20251024095243-我的
-
185api/home/mySelections.js
-
70api/marketSituation/marketSituation.js
-
64components/IndexCard.vue
-
5components/login-prompt.vue
-
256pages/home/home.vue
-
141pages/marketSituation/countryMarket.vue
-
382pages/marketSituation/globalIndex.vue
-
74pages/marketSituation/marketCondition.vue
-
275pages/marketSituation/marketDetail.vue
-
121pages/marketSituation/marketOverview.vue
-
252pages/marketSituation/marketSituation.vue
-
BINstatic/marketSituation-image/country-flag/can.png
-
BINstatic/marketSituation-image/country-flag/cn.png
-
BINstatic/marketSituation-image/country-flag/global.png
-
BINstatic/marketSituation-image/country-flag/hk.png
-
BINstatic/marketSituation-image/country-flag/my.png
-
BINstatic/marketSituation-image/country-flag/sg.png
-
BINstatic/marketSituation-image/country-flag/th.png
-
BINstatic/marketSituation-image/country-flag/us.png
-
BINstatic/marketSituation-image/country-flag/vi.png
-
78stores/modules/marketSituation.js
-
2utils/http.js
@ -0,0 +1,185 @@ |
|||
/** |
|||
* 我的自选股相关API接口封装 |
|||
* 使用utils/http.js中的拦截器封装请求方法 |
|||
*/ |
|||
|
|||
import { http } from '../../utils/http.js' |
|||
|
|||
/** |
|||
* 我的自选股API接口类 |
|||
*/ |
|||
class MySelectionsAPI { |
|||
|
|||
/** |
|||
* 判断用户是否存在自选股分组 |
|||
* @param {Function} successCallback - 成功回调函数 |
|||
* @param {Function} failCallback - 失败回调函数 |
|||
* @param {Object} data - 请求参数 |
|||
* @returns {Promise} |
|||
*/ |
|||
static async checkExist(successCallback, failCallback = null, data = {}) { |
|||
const url = '/api/homePage/userStock/checkExist' |
|||
|
|||
try { |
|||
const response = await http({ |
|||
url: url, |
|||
method: 'POST', |
|||
data: data |
|||
}) |
|||
|
|||
console.log('检查用户自选股分组存在性 - 响应:', response) |
|||
if (successCallback && typeof successCallback === 'function') { |
|||
successCallback(response) |
|||
} |
|||
return response |
|||
} catch (error) { |
|||
console.error('检查用户自选股分组存在性 - 失败:', error) |
|||
if (failCallback && typeof failCallback === 'function') { |
|||
failCallback(error) |
|||
} |
|||
throw error |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 查询用户所有自选股分组 |
|||
* @param {Function} successCallback - 成功回调函数 |
|||
* @param {Function} failCallback - 失败回调函数 |
|||
* @param {Object} data - 请求参数 |
|||
* @returns {Promise} |
|||
*/ |
|||
static async getUserStockGroupList(successCallback, failCallback = null, data = {}) { |
|||
const url = '/api/homePage/userStockGroup/list' |
|||
|
|||
try { |
|||
const response = await http({ |
|||
url: url, |
|||
method: 'POST', |
|||
data: data |
|||
}) |
|||
|
|||
console.log('查询用户自选股分组列表 - 响应:', response) |
|||
if (successCallback && typeof successCallback === 'function') { |
|||
successCallback(response) |
|||
} |
|||
return response |
|||
} catch (error) { |
|||
console.error('查询用户自选股分组列表 - 失败:', error) |
|||
if (failCallback && typeof failCallback === 'function') { |
|||
failCallback(error) |
|||
} |
|||
throw error |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 分页查询某一个分组下的所有自选股 |
|||
* @param {Function} successCallback - 成功回调函数 |
|||
* @param {Function} failCallback - 失败回调函数 |
|||
* @param {Object} data - 请求参数 {groupId, pageNum, pageSize, ...} |
|||
* @returns {Promise} |
|||
*/ |
|||
static async getUserStockList(successCallback, failCallback = null, data = {}) { |
|||
const url = '/api/homePage/userStock/list' |
|||
|
|||
// 设置默认分页参数
|
|||
const requestData = { |
|||
pageNum: 1, |
|||
pageSize: 20, |
|||
...data |
|||
} |
|||
|
|||
try { |
|||
const response = await http({ |
|||
url: url, |
|||
method: 'POST', |
|||
data: requestData |
|||
}) |
|||
|
|||
console.log('分页查询分组自选股 - 响应:', response) |
|||
if (successCallback && typeof successCallback === 'function') { |
|||
successCallback(response) |
|||
} |
|||
return response |
|||
} catch (error) { |
|||
console.error('分页查询分组自选股 - 失败:', error) |
|||
if (failCallback && typeof failCallback === 'function') { |
|||
failCallback(error) |
|||
} |
|||
throw error |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 查询默认自选股 |
|||
* @param {Function} successCallback - 成功回调函数 |
|||
* @param {Function} failCallback - 失败回调函数 |
|||
* @param {Object} data - 请求参数 |
|||
* @returns {Promise} |
|||
*/ |
|||
static async getUserOrDefault(successCallback, failCallback = null, data = {}) { |
|||
const url = '/api/homePage/userStock/getUserOrDefault' |
|||
|
|||
try { |
|||
const response = await http({ |
|||
url: url, |
|||
method: 'POST', |
|||
data: data |
|||
}) |
|||
|
|||
console.log('查询默认自选股 - 响应:', response) |
|||
if (successCallback && typeof successCallback === 'function') { |
|||
successCallback(response) |
|||
} |
|||
return response |
|||
} catch (error) { |
|||
console.error('查询默认自选股 - 失败:', error) |
|||
if (failCallback && typeof failCallback === 'function') { |
|||
failCallback(error) |
|||
} |
|||
throw error |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 游客查询默认自选股 |
|||
* @param {Function} successCallback - 成功回调函数 |
|||
* @param {Function} failCallback - 失败回调函数 |
|||
* @returns {Promise} |
|||
*/ |
|||
static async getDefaultStocks(successCallback, failCallback = null) { |
|||
const url = '/api/homePage/userStock/getDefaultStocks' |
|||
|
|||
try { |
|||
const response = await http({ |
|||
url: url, |
|||
method: 'POST', |
|||
data: {} |
|||
}) |
|||
|
|||
console.log('游客查询默认自选股 - 响应:', response) |
|||
if (successCallback && typeof successCallback === 'function') { |
|||
successCallback(response) |
|||
} |
|||
return response |
|||
} catch (error) { |
|||
console.error('游客查询默认自选股 - 失败:', error) |
|||
if (failCallback && typeof failCallback === 'function') { |
|||
failCallback(error) |
|||
} |
|||
throw error |
|||
} |
|||
} |
|||
} |
|||
|
|||
// 导出API类
|
|||
export default MySelectionsAPI |
|||
|
|||
// 也可以导出单个方法供直接使用
|
|||
export const { |
|||
checkExist, |
|||
getUserStockGroupList, |
|||
getUserStockList, |
|||
getUserOrDefault, |
|||
getDefaultStocks |
|||
} = MySelectionsAPI |
|||
@ -0,0 +1,70 @@ |
|||
/** @format */ |
|||
|
|||
import { http } from "../../utils/http"; |
|||
|
|||
export const getData = () => { |
|||
return http({ |
|||
method: "GET", |
|||
url: "/ka", |
|||
}); |
|||
}; |
|||
|
|||
/** |
|||
* 获取全球指数 |
|||
* POST /api/global/getGlobalIndex |
|||
*/ |
|||
export const getGlobalIndexAPI = (data) => { |
|||
return http({ |
|||
method: "POST", |
|||
url: "/api/global/getGlobalIndex", |
|||
data, |
|||
}); |
|||
}; |
|||
|
|||
/** |
|||
* 获取地区分组列表 |
|||
* POST /api/global/regionalGroup |
|||
*/ |
|||
export const getRegionalGroupAPI = (data) => { |
|||
return http({ |
|||
method: "POST", |
|||
url: "/api/global/regionalGroup", |
|||
data, |
|||
}); |
|||
}; |
|||
|
|||
/** |
|||
* 获取地区详情 |
|||
* POST /api/global/regionalGroupList |
|||
*/ |
|||
export const getRegionalGroupListAPI = (data) => { |
|||
return http({ |
|||
method: "POST", |
|||
url: "/api/global/regionalGroupList", |
|||
data, |
|||
}); |
|||
}; |
|||
|
|||
/** |
|||
* 一次性查询所有Tab栏父子结构 |
|||
* POST /api/homework/tab/getAll |
|||
*/ |
|||
export const getAllTabsAPI = (data) => { |
|||
return http({ |
|||
method: "POST", |
|||
url: "/api/homework/tab/getAll", |
|||
data, |
|||
}); |
|||
}; |
|||
|
|||
/** |
|||
* 通用市场数据分页查询接口(默认1页20条) |
|||
* POST /api/market/data/page/query |
|||
*/ |
|||
export const queryStockDataAPI = (data) => { |
|||
return http({ |
|||
method: "POST", |
|||
url: "/api/market/data/page/query", |
|||
data, |
|||
}); |
|||
}; |
|||
|
After Width: 32 | Height: 32 | Size: 1.1 KiB |
|
After Width: 32 | Height: 32 | Size: 1.1 KiB |
|
After Width: 32 | Height: 32 | Size: 2.5 KiB |
|
After Width: 32 | Height: 32 | Size: 1.7 KiB |
|
After Width: 32 | Height: 32 | Size: 1.7 KiB |
|
After Width: 32 | Height: 32 | Size: 1.1 KiB |
|
After Width: 32 | Height: 32 | Size: 703 B |
|
After Width: 32 | Height: 32 | Size: 1.4 KiB |
|
After Width: 32 | Height: 32 | Size: 1.1 KiB |
@ -0,0 +1,78 @@ |
|||
/** @format */ |
|||
|
|||
import { defineStore } from "pinia"; |
|||
import { ref } from "vue"; |
|||
// 定义 Store
|
|||
export const useMarketSituationStore = defineStore( |
|||
"marketSituation", |
|||
() => { |
|||
const cardData = ref([ |
|||
{ |
|||
market: "usa", |
|||
stockName: "道琼斯", |
|||
stockCode: "noCode", |
|||
currentPrice: "45757.90", |
|||
changeAmount: "-125.22", |
|||
changePercent: "-0.27%", |
|||
isRising: false, |
|||
}, |
|||
{ |
|||
market: "usa", |
|||
stockName: "纳斯达克", |
|||
stockCode: "noCode", |
|||
currentPrice: "22333.96", |
|||
changeAmount: "+125.22", |
|||
changePercent: "+0.47%", |
|||
isRising: true, |
|||
}, |
|||
{ |
|||
market: "usa", |
|||
stockName: "标普500", |
|||
stockCode: "noCode", |
|||
currentPrice: "6606.08", |
|||
changeAmount: "+125.22", |
|||
changePercent: "+0.27%", |
|||
isRising: true, |
|||
}, |
|||
{ |
|||
market: "cn", |
|||
stockName: "上证指数", |
|||
stockCode: "noCode", |
|||
currentPrice: "3333.96", |
|||
changeAmount: "+125.22", |
|||
changePercent: "+0.27%", |
|||
isRising: true, |
|||
}, |
|||
{ |
|||
market: "cn", |
|||
stockName: "科创50", |
|||
stockCode: "noCode", |
|||
currentPrice: "757.90", |
|||
changeAmount: "-25.22", |
|||
changePercent: "-0.27%", |
|||
isRising: false, |
|||
}, |
|||
]); |
|||
|
|||
// 记得 return
|
|||
return { |
|||
cardData |
|||
}; |
|||
}, |
|||
// TODO: 持久化
|
|||
{ |
|||
// 网页端持久化
|
|||
// persist: true,
|
|||
// 小程序端持久化
|
|||
persist: { |
|||
storage: { |
|||
getItem(key) { |
|||
return uni.getStorageSync(key); |
|||
}, |
|||
setItem(key, value) { |
|||
uni.setStorageSync(key, value); |
|||
}, |
|||
}, |
|||
}, |
|||
} |
|||
); |
|||