11.26 修改K线图样式

This commit is contained in:
尚政杰
2025-11-26 17:19:38 +08:00
parent 48f49c6cf0
commit 4e64455b9b
4803 changed files with 146408 additions and 648 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"share.js","sources":["utils/share.js"],"sourcesContent":["export default {\n\tcreated()\n\t{\n\t\t// #ifdef MP-WEIXIN\n\t\tuni.showShareMenu({\n\t\t\tmenus:['shareAppMessage','shareTimeline']\n\t\t})\n\t\t// #endif\n\t}\n}"],"names":["uni"],"mappings":";;AAAA,MAAe,QAAA;AAAA,EACd,UACA;AAECA,kBAAAA,MAAI,cAAc;AAAA,MACjB,OAAM,CAAC,mBAAkB,eAAe;AAAA,IAC3C,CAAG;AAAA,EAED;AACF;;"}

View File

@@ -1,6 +1,7 @@
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const common_vendor = require("./common/vendor.js");
const utils_share = require("./utils/share.js");
if (!Math) {
"./pages/index/index.js";
"./pages/invest/invest.js";
@@ -86,6 +87,7 @@ const _sfc_main = {
};
function createApp() {
const app = common_vendor.createSSRApp(_sfc_main);
app.mixin(utils_share.share);
return {
app
};

File diff suppressed because it is too large Load Diff

View File

@@ -55,8 +55,8 @@ const _sfc_main = {
grid: {
left: "10%",
right: "6%",
top: "0%",
bottom: "20%"
top: "5%",
bottom: "10%"
},
xAxis: {
type: "category",
@@ -83,6 +83,7 @@ const _sfc_main = {
position: "top",
fontSize: 12
},
symbol: "none",
silent: true,
data: [],
itemStyle: {
@@ -124,6 +125,7 @@ const _sfc_main = {
option.series.data = valueData;
option.xAxis.data = categoryData;
let time = that.eventDetails.event_start_time.split("T")[1];
time = time.substring(0, 5);
let firstOpen = item.minute_chart_data[0].open;
option.series.markLine.data = [
{

File diff suppressed because one or more lines are too long

View File

@@ -49,6 +49,14 @@
.eventDetailsC .eventContent .ai {
color: #C00000;
}
.eventDetailsC .riskTips {
margin: 20rpx 25rpx 0;
padding-bottom: 30rpx;
line-height: 1.4rem;
font-size: 20rpx;
color: #999;
border-bottom: solid 1rpx #E4E4E4;
}
.eventDetailsC .categoryList {
white-space: nowrap;
margin-top: 10rpx;

View File

@@ -2,6 +2,7 @@
const common_vendor = require("../../common/vendor.js");
const request_api = require("../../request/api.js");
const utils_util = require("../../utils/util.js");
const utils_posthog = require("../../utils/posthog.js");
const common_assets = require("../../common/assets.js");
const echarts = require("../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = {
@@ -14,6 +15,7 @@ const _sfc_main = {
contentTop: "",
listTop: "",
sortListTop: "",
isRefreshing: false,
keywords: "",
//关键词
sortList: [],
@@ -198,6 +200,7 @@ const _sfc_main = {
}
}
this.monthDateList = monthDateList;
utils_posthog.posthog.capture("首页");
},
onReady() {
common_vendor.index.createSelectorQuery().select("#topCategory").boundingClientRect((rect) => {
@@ -209,10 +212,17 @@ const _sfc_main = {
}
}).exec();
},
onPullDownRefresh() {
this.clickSearch();
},
methods: {
/**
* 下拉刷新
*/
pullDownRefresh() {
this.isRefreshing = true;
this.clickSearch();
},
/**
* 上拉加载
*/
loadMoreData() {
if (!this.loadAll) {
this.page++;
@@ -588,7 +598,7 @@ const _sfc_main = {
this.importanceList = res.data.importance_options;
this.importanceList.unshift({ desc: "全部", key: "all", name: "全部" });
} else {
reject(1);
resolve(1);
common_vendor.index.showToast({
title: res.message,
icon: "none"
@@ -678,74 +688,8 @@ const _sfc_main = {
}
}
request_api.eventList(param).then((res) => {
this.isRefreshing = false;
if (res.success) {
let valueData = [];
let data = res.data.overall_stats.change_distribution;
valueData.push({
value: data.limit_down,
itemStyle: { color: "#35542266" },
label: {
textStyle: { color: "#35542266" }
}
});
valueData.push({
value: data.down_over_5,
itemStyle: { color: "#35542299" },
label: {
textStyle: { color: "#355422" }
}
});
valueData.push({
value: data.down_5_to_1,
itemStyle: { color: "#355422CC" },
label: {
textStyle: { color: "#355422" }
}
});
valueData.push({
value: data.down_within_1,
itemStyle: { color: "#355422" },
label: {
textStyle: { color: "#355422" }
}
});
valueData.push({
value: data.flat,
itemStyle: { color: "#ACB0C0" },
label: {
textStyle: { color: "#666" }
}
});
valueData.push({
value: data.up_within_1,
itemStyle: { color: "#C00000" },
label: {
textStyle: { color: "#C00000" }
}
});
valueData.push({
value: data.up_1_to_5,
itemStyle: { color: "#C00000CC" },
label: {
textStyle: { color: "#C00000" }
}
});
valueData.push({
value: data.up_over_5,
itemStyle: { color: "#C0000099" },
label: {
textStyle: { color: "#C00000" }
}
});
valueData.push({
value: data.limit_up,
itemStyle: { color: "#C0000066" },
label: {
textStyle: { color: "#C0000066" }
}
});
this.option.series[0].data = valueData;
this.init();
if (this.page == 1) {
this.eventList = res.data.events;
} else
@@ -753,6 +697,7 @@ const _sfc_main = {
this.loadAll = !res.data.pagination.has_next;
}
}).catch((error) => {
this.isRefreshing = false;
});
},
/**
@@ -795,14 +740,12 @@ const _sfc_main = {
}
};
if (!Array) {
const _easycom_l_echart2 = common_vendor.resolveComponent("l-echart");
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
(_easycom_l_echart2 + _easycom_uni_popup2)();
_easycom_uni_popup2();
}
const _easycom_l_echart = () => "../../uni_modules/lime-echart/components/l-echart/l-echart.js";
const _easycom_uni_popup = () => "../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
(_easycom_l_echart + _easycom_uni_popup)();
_easycom_uni_popup();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
@@ -847,8 +790,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
q: $data.secondScrollLeft
} : {}, {
r: common_vendor.s("top:" + $data.contentTop + "px"),
s: common_vendor.sr("chartRef", "eb4215a0-0"),
t: common_vendor.f($data.eventList, (item, index, i0) => {
s: common_vendor.f($data.eventList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.importance),
b: common_vendor.n("level " + item.importance),
@@ -880,31 +822,24 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
t: common_vendor.t($data.getRateStr(item.related_week_chg)),
v: common_vendor.n("rateItem " + ($data.getRateUpOrDown(item.related_week_chg) ? "down" : "up")),
w: common_vendor.f(item.related_stocks, (sitem, sindex, i1) => {
return {
a: common_vendor.t(sitem.stock_name),
b: common_vendor.t(($data.getRateUpOrDown(sitem.daily_change) ? "" : "+") + sitem.daily_change),
c: common_vendor.n("change " + ($data.getRateUpOrDown(sitem.daily_change) ? "down" : "up")),
d: sindex,
e: common_vendor.o(($event) => $options.clickLookRelatedStockItem(item.id, sitem.stock_code), sindex)
};
}),
x: common_vendor.t($data.getLocaleTime(item.created_at)),
y: common_vendor.t(item.view_count),
z: common_vendor.t(item.post_count),
A: common_vendor.t(item.follower_count),
B: common_vendor.o(($event) => $options.clickFollowEvent(item.id), index),
C: common_vendor.o(($event) => $options.clickEventItem(item.id), index),
D: index
w: common_vendor.t($data.getLocaleTime(item.created_at)),
x: common_vendor.t(item.view_count),
y: common_vendor.t(item.post_count),
z: common_vendor.t(item.follower_count),
A: common_vendor.o(($event) => $options.clickFollowEvent(item.id), index),
B: common_vendor.o(($event) => $options.clickEventItem(item.id), index),
C: index
});
}),
v: common_assets._imports_3,
w: common_assets._imports_4,
x: common_assets._imports_10,
y: common_vendor.s("top:" + $data.listTop + "px"),
z: common_vendor.o(($event) => $options.loadMoreData()),
A: common_assets._imports_13$1,
B: common_vendor.f($data.sortList, (item, index, i0) => {
t: common_assets._imports_3,
v: common_assets._imports_4,
w: common_assets._imports_10,
x: common_vendor.s("top:" + $data.listTop + "px"),
y: $data.isRefreshing,
z: common_vendor.o(($event) => $options.pullDownRefresh()),
A: common_vendor.o(($event) => $options.loadMoreData()),
B: common_assets._imports_13$1,
C: common_vendor.f($data.sortList, (item, index, i0) => {
return {
a: item.icon,
b: common_vendor.t(item.name),
@@ -912,15 +847,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_vendor.o(($event) => $options.clickSortListItem(item), index)
};
}),
C: common_vendor.s("margin-top:" + $data.sortListTop + "px;"),
D: common_vendor.sr("sortPopup", "eb4215a0-1"),
E: common_vendor.p({
D: common_vendor.s("margin-top:" + $data.sortListTop + "px;"),
E: common_vendor.sr("sortPopup", "eb4215a0-0"),
F: common_vendor.p({
type: "top",
["mask-background-color"]: "transparent"
["mask-background-color"]: "transparent",
animation: false
}),
F: common_assets._imports_2,
G: common_vendor.s("height:" + $data.menuH + "px;"),
H: common_vendor.f($data.screenCategoryList, (item, index, i0) => {
G: common_assets._imports_2,
H: common_vendor.s("height:" + $data.menuH + "px;"),
I: common_vendor.f($data.screenCategoryList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item),
b: $data.selectScreenCategory == index
@@ -930,22 +866,22 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
e: common_vendor.o(($event) => $options.clickScreenCategoryItem(index), index)
});
}),
I: $data.selectScreenCategory == 0
J: $data.selectScreenCategory == 0
}, $data.selectScreenCategory == 0 ? {
J: common_vendor.t($data.startDate),
K: common_vendor.t($data.endDate),
L: common_assets._imports_5,
M: common_vendor.o(($event) => $options.clickPreMonth()),
N: common_vendor.t($data.selectMonth),
O: common_assets._imports_6,
P: common_vendor.o(($event) => $options.clickNextMonth()),
Q: common_vendor.f($data.weekList, (item, index, i0) => {
K: common_vendor.t($data.startDate),
L: common_vendor.t($data.endDate),
M: common_assets._imports_5,
N: common_vendor.o(($event) => $options.clickPreMonth()),
O: common_vendor.t($data.selectMonth),
P: common_assets._imports_6,
Q: common_vendor.o(($event) => $options.clickNextMonth()),
R: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
R: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
S: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.isToday
}, item.isToday ? {
@@ -970,9 +906,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
});
})
} : {}, {
S: $data.selectScreenCategory == 1
T: $data.selectScreenCategory == 1
}, $data.selectScreenCategory == 1 ? common_vendor.e({
T: common_vendor.f($data.industryCategoryList, (item, index, i0) => {
U: common_vendor.f($data.industryCategoryList, (item, index, i0) => {
return {
a: common_vendor.t(item.classification_name),
b: common_vendor.n("item " + ($data.selectIndustryTopCategory == index ? "select" : "")),
@@ -980,12 +916,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_vendor.o(($event) => $options.clickIndustryTopCategoryItem(index), index)
};
}),
U: common_assets._imports_1,
V: common_vendor.o([($event) => $data.industryKeywords = $event.detail.value, (...args) => $options.industrySearch && $options.industrySearch(...args)]),
W: $data.industryKeywords,
X: $data.industryKeywords.length > 0
V: common_assets._imports_1,
W: common_vendor.o([($event) => $data.industryKeywords = $event.detail.value, (...args) => $options.industrySearch && $options.industrySearch(...args)]),
X: $data.industryKeywords,
Y: $data.industryKeywords.length > 0
}, $data.industryKeywords.length > 0 ? {
Y: common_vendor.f($data.searchResultList, (item, index, i0) => {
Z: common_vendor.f($data.searchResultList, (item, index, i0) => {
return {
a: common_vendor.f(item.hierarchy, (sitem, sindex, i1) => {
return {
@@ -1014,28 +950,28 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
};
})
} : common_vendor.e({
Z: $data.selectIndustrySecondCategory > -1
}, $data.selectIndustrySecondCategory > -1 ? common_vendor.e({
aa: $data.selectIndustrySecondCategory > -1
}, $data.selectIndustrySecondCategory > -1 ? common_vendor.e({
ab: $data.selectIndustrySecondCategory > -1
}, $data.selectIndustrySecondCategory > -1 ? {
ab: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy[$data.selectIndustrySecondCategory].level1_sector),
ac: common_assets._imports_13,
ad: common_vendor.o(($event) => $options.deleteIndustrySecondCategoryItem())
ac: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy[$data.selectIndustrySecondCategory].level1_sector),
ad: common_assets._imports_13,
ae: common_vendor.o(($event) => $options.deleteIndustrySecondCategoryItem())
} : {}, {
ae: $data.selectIndustryThirdCategory > -1
af: $data.selectIndustryThirdCategory > -1
}, $data.selectIndustryThirdCategory > -1 ? {
af: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy[$data.selectIndustrySecondCategory].level2_sectors[$data.selectIndustryThirdCategory].level2_sector),
ag: common_assets._imports_13,
ah: common_vendor.o(($event) => $options.deleteIndustryThirdCategoryItem())
ag: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy[$data.selectIndustrySecondCategory].level2_sectors[$data.selectIndustryThirdCategory].level2_sector),
ah: common_assets._imports_13,
ai: common_vendor.o(($event) => $options.deleteIndustryThirdCategoryItem())
} : {}, {
ai: $data.selectIndustryForthCategory > -1
aj: $data.selectIndustryForthCategory > -1
}, $data.selectIndustryForthCategory > -1 ? {
aj: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy[$data.selectIndustrySecondCategory].level2_sectors[$data.selectIndustryThirdCategory].level3_sectors[$data.selectIndustryForthCategory].level3_sector),
ak: common_assets._imports_13,
al: common_vendor.o(($event) => $options.deleteIndustryForthCategoryItem())
ak: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy[$data.selectIndustrySecondCategory].level2_sectors[$data.selectIndustryThirdCategory].level3_sectors[$data.selectIndustryForthCategory].level3_sector),
al: common_assets._imports_13,
am: common_vendor.o(($event) => $options.deleteIndustryForthCategoryItem())
} : {}) : {}, {
am: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].classification_name),
an: common_vendor.f($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy, (sitem, sindex, i0) => {
an: common_vendor.t($data.industryCategoryList[$data.selectIndustryTopCategory].classification_name),
ao: common_vendor.f($data.industryCategoryList[$data.selectIndustryTopCategory].hierarchy, (sitem, sindex, i0) => {
return common_vendor.e({
a: common_vendor.t($data.selectIndustrySecondCategory == sindex && sitem.isSpread ? "-" : "+"),
b: common_vendor.t(sitem.level1_sector),
@@ -1072,9 +1008,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
});
})
})) : {}, {
ao: $data.selectScreenCategory == 2
ap: $data.selectScreenCategory == 2
}, $data.selectScreenCategory == 2 ? {
ap: common_vendor.f($data.importanceList, (item, index, i0) => {
aq: common_vendor.f($data.importanceList, (item, index, i0) => {
return {
a: common_vendor.t(item.name),
b: common_vendor.n("item " + ($data.selectImportanceIndex == index ? "select" : "")),
@@ -1083,11 +1019,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
};
})
} : {}, {
aq: common_vendor.o(($event) => $options.clickCancel()),
ar: common_vendor.o(($event) => $options.clickCertain()),
as: common_vendor.s("padding-top:" + $data.menuTop + "px;"),
at: common_vendor.sr("screenPopup", "eb4215a0-2"),
av: common_vendor.p({
ar: common_vendor.o(($event) => $options.clickCancel()),
as: common_vendor.o(($event) => $options.clickCertain()),
at: common_vendor.s("padding-top:" + $data.menuTop + "px;"),
av: common_vendor.sr("screenPopup", "eb4215a0-1"),
aw: common_vendor.p({
type: "top"
})
});

View File

@@ -1,8 +1,7 @@
{
"navigationBarTitleText": "uni-app",
"enablePullDownRefresh": true,
"enablePullDownRefresh": false,
"usingComponents": {
"l-echart": "../../uni_modules/lime-echart/components/l-echart/l-echart",
"uni-popup": "../../uni_modules/uni-popup/components/uni-popup/uni-popup"
}
}

File diff suppressed because one or more lines are too long

View File

@@ -330,7 +330,7 @@
border-radius: 5rpx;
font-size: 28rpx;
font-weight: 500;
color: #B0B0B0;
color: #858C9A;
}
.screenPopup .screenContentC .dateC .start {
text-align: right;

View File

@@ -18,6 +18,8 @@ const _sfc_main = {
//股票code
categoryList: ["分时图", "日K线"],
selectCategory: 0,
tradeData: null,
//成交数据
option: {
title: {
show: false
@@ -33,7 +35,7 @@ const _sfc_main = {
type: "cross"
},
formatter: function(params) {
common_vendor.index.__f__("log", "at pages/index/stockDetails/stockDetails.vue:66", params);
common_vendor.index.__f__("log", "at pages/index/stockDetails/stockDetails.vue:74", params);
let res = "日期:" + params[0].name + "\n开盘价" + params[0].data[1] + "\n收盘价" + params[0].data[2] + "\n最低价" + params[0].data[3] + "\n最高价" + params[0].data[4];
return res;
}
@@ -54,7 +56,7 @@ const _sfc_main = {
axisLine: { onZero: false },
splitLine: { show: false },
min: "dataMin",
max: "dataMax"
max: ""
},
yAxis: {
scale: true,
@@ -82,10 +84,10 @@ const _sfc_main = {
type: "candlestick",
data: [],
itemStyle: {
color: "#ec0000",
color0: "#00da3c",
borderColor: "#ec0000",
borderColor0: "#00da3c"
color: "#ffffff",
color0: "#355422",
borderColor: "#c00000",
borderColor0: "#355422"
}
}
]
@@ -96,14 +98,13 @@ const _sfc_main = {
},
tooltip: {
position: function(pos, params, dom, rect, size) {
var obj = { top: "10%" };
var obj = { top: "5%" };
obj[["left", "right"][+(pos[0] < size.viewSize[0] / 2)]] = 5;
return obj;
},
trigger: "axis",
formatter: function(params) {
common_vendor.index.__f__("log", "at pages/index/stockDetails/stockDetails.vue:137", params);
let res = "时间:" + params[0].name + "\n高" + params[0].data[2] + "\n开" + params[0].data[3] + "\n低" + params[0].data[4] + "\n收" + params[0].data[1] + "\n涨幅" + params[0].data[5] + "%";
let res = "时间:" + params[0].name + "\n高" + params[0].data[2] + "\n开" + params[0].data[3] + "\n低" + params[0].data[4] + "\n收" + params[0].data[1] + "\n涨幅" + params[0].data[5] + "%\n量" + params[0].data[6] + "\n金额" + params[0].data[7];
return res;
}
},
@@ -115,7 +116,10 @@ const _sfc_main = {
},
xAxis: {
type: "category",
scale: true
scale: true,
axisLabel: {
customValues: ["09:30", "10:00", "10:30", "11:00", "11:30", "13:00", "13:30", "14:00", "14:30", "15:00"]
}
},
yAxis: {
show: false,
@@ -197,13 +201,22 @@ const _sfc_main = {
if (res.code == 200) {
this.navTitle = res.data.basic_info.stock_name + "(" + res.data.basic_info.stock_code + ")";
let data = res.data.minute_chart_data;
this.tradeData = res.data.latest_trade;
let categoryData = [];
let valueData = [];
let open = data[0].open;
for (let item of data) {
categoryData.push(item.time);
let rate = utils_util.accMul(utils_util.accDiv(utils_util.accSub(item.close, open), open).toFixed(4), 100);
valueData.push([item.time, item.close, item.high, item.open, item.low, rate]);
let volume = item.volume;
if (volume > 1e4) {
volume = (volume / 1e4).toFixed(0) + "万";
}
let amount = item.amount;
if (amount > 1e4) {
amount = (amount / 1e4).toFixed(0) + "万";
}
valueData.push([item.time, item.close, item.high, item.open, item.low, rate, volume, amount]);
}
let min = open;
let max = 0;
@@ -239,7 +252,8 @@ const _sfc_main = {
this.option1.yAxis.max = intervalList[intervalList.length - 1].toFixed(2);
this.option1.series.data = valueData;
let markData = [];
let time = res.data.event_info;
let time = res.data.event_info.event_start_time.split("T")[1];
time = time.substring(0, 5);
for (let item of intervalList) {
markData.push(
{

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="ab03f7e6-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="tabC fixed" style="{{e}}"><view wx:for="{{d}}" wx:for-item="item" wx:key="d" class="{{item.c}}" bindtap="{{item.e}}">{{item.a}} <view wx:if="{{item.b}}" class="line absolute"></view></view></view><view class="{{k}}" style="{{l}}"><view wx:if="{{f}}" style="width:750rpx;height:400rpx"><l-echart class="r" u-r="chartRef" u-i="ab03f7e6-1" bind:__l="__l"></l-echart></view><view class="section">关联描述</view><view class="des">{{h}}<text class="ai">AI合成【风险提示解析内容由价值前沿人工采集整理自新闻、公告、研报等公开信息团队辛苦编写未经许可严禁转载。本产品内容内容均不构成投资建议请投资者注意风险独立审慎决策。】</text></view><view wx:if="{{i}}" class="section">信息来源</view><view class="list"><view wx:for="{{j}}" wx:for-item="item" wx:key="e" class="item"><view class="content">{{item.a}}</view><view class="article">——《{{item.b}}》</view><view class="authorDateC flex"><view class="author flex1">{{item.c}}</view><view class="date">{{item.d}}</view></view></view></view></view></view>
<view><nav-bar wx:if="{{a}}" u-i="ab03f7e6-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="tabC fixed" style="{{e}}"><view wx:for="{{d}}" wx:for-item="item" wx:key="d" class="{{item.c}}" bindtap="{{item.e}}">{{item.a}} <view wx:if="{{item.b}}" class="line absolute"></view></view></view><view class="{{k}}" style="{{l}}"><view wx:if="{{f}}" style="width:750rpx;height:400rpx"><l-echart class="r" u-r="chartRef" u-i="ab03f7e6-1" bind:__l="__l"></l-echart></view><view class="section">关联描述</view><view class="des">{{h}}<text class="ai">AI合成</text></view><view class="riskTips"> 【风险提示:解析内容由价值前沿人工采集整理自新闻、公告、研报等公开信息,团队辛苦编写,未经许可严禁转载。本产品内容内容均不构成投资建议,请投资者注意风险,独立审慎决策。】 </view><view wx:if="{{i}}" class="section">信息来源</view><view class="list"><view wx:for="{{j}}" wx:for-item="item" wx:key="e" class="item"><view class="content">{{item.a}}</view><view class="article">——《{{item.b}}》</view><view class="authorDateC flex"><view class="author flex1">{{item.c}}</view><view class="date">{{item.d}}</view></view></view></view></view></view>

View File

@@ -37,6 +37,14 @@
bottom: 0;
overflow-y: scroll;
}
.contentC .volumeAmountC {
padding: 20rpx;
font-size: 26rpx;
color: #333;
}
.contentC .volumeAmountC .volume {
margin-right: 20rpx;
}
.contentC .section {
padding: 0 28rpx;
line-height: 80rpx;
@@ -45,9 +53,7 @@
color: #222;
}
.contentC .des {
padding: 0 0 30rpx;
margin: 0 25rpx;
border-bottom: solid 1rpx #E4E4E4;
line-height: 1.4rem;
font-size: 24rpx;
font-weight: 500;
@@ -56,6 +62,14 @@
.contentC .des .ai {
color: #C00000;
}
.contentC .riskTips {
margin: 20rpx 25rpx 0;
padding-bottom: 30rpx;
line-height: 1.4rem;
font-size: 20rpx;
color: #999;
border-bottom: solid 1rpx #E4E4E4;
}
.contentC .list {
padding: 0 25rpx;
}

View File

@@ -13,6 +13,7 @@ const _sfc_main = {
contentTop: "",
keywords: "",
//搜索关键字
isRefreshing: false,
todayDate: "",
//今日日期
calendarDateList: [],
@@ -129,9 +130,6 @@ const _sfc_main = {
}).catch((error) => {
});
},
onPullDownRefresh() {
this.reloadData();
},
computed: {
circumference() {
return Math.PI * 100;
@@ -146,6 +144,10 @@ const _sfc_main = {
} else
this.getDataListData();
},
pullDownRefresh() {
this.isRefreshing = true;
this.reloadData();
},
loadMoreData() {
if (!this.loadAll) {
this.page++;
@@ -290,7 +292,7 @@ const _sfc_main = {
param.category = this.stockCategoryList[this.selectTopCategory].primary_sector;
}
request_api.calendarEventList(param).then((res) => {
common_vendor.index.stopPullDownRefresh();
this.isRefreshing = false;
if (res.code == 200) {
if (res.data.page == 1) {
this.eventList = res.data.events;
@@ -305,7 +307,7 @@ const _sfc_main = {
icon: "none"
});
}).catch((error) => {
common_vendor.index.stopPullDownRefresh();
this.isRefreshing = false;
});
},
/**
@@ -317,6 +319,7 @@ const _sfc_main = {
param.category = this.stockCategoryList[this.selectTopCategory].primary_sector;
}
request_api.calendarDataList(param).then((res) => {
this.isRefreshing = false;
if (res.code == 200) {
this.dataList = res.data.data_list;
} else
@@ -325,7 +328,7 @@ const _sfc_main = {
icon: "none"
});
}).catch((error) => {
common_vendor.index.stopPullDownRefresh();
this.isRefreshing = false;
});
},
/**
@@ -554,19 +557,21 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
})
} : {}, {
D: common_vendor.s("top:" + $data.contentTop + "px;"),
E: common_vendor.o(($event) => $options.loadMoreData()),
F: common_assets._imports_5,
G: common_vendor.o(($event) => $options.clickPreMonth()),
H: common_vendor.t($data.selectMonth),
I: common_assets._imports_6,
J: common_vendor.o(($event) => $options.clickNextMonth()),
K: common_vendor.f($data.weekList, (item, index, i0) => {
E: $data.isRefreshing,
F: common_vendor.o(($event) => $options.pullDownRefresh()),
G: common_vendor.o(($event) => $options.loadMoreData()),
H: common_assets._imports_5,
I: common_vendor.o(($event) => $options.clickPreMonth()),
J: common_vendor.t($data.selectMonth),
K: common_assets._imports_6,
L: common_vendor.o(($event) => $options.clickNextMonth()),
M: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
L: common_vendor.f($data.calendarDateList[$data.selectMonthIndex], (item, index, i0) => {
N: common_vendor.f($data.calendarDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.isToday || item.date == $data.selectDate
}, item.isToday || item.date == $data.selectDate ? {
@@ -582,9 +587,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
g: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
}),
M: common_vendor.s("margin-top:" + $data.navH + "px;"),
N: common_vendor.sr("popup", "3bfa752c-2"),
O: common_vendor.p({
O: common_vendor.s("margin-top:" + $data.navH + "px;"),
P: common_vendor.sr("popup", "3bfa752c-2"),
Q: common_vendor.p({
type: "top"
})
});

View File

@@ -1,6 +1,6 @@
{
"navigationBarTitleText": "",
"enablePullDownRefresh": true,
"enablePullDownRefresh": false,
"usingComponents": {
"ua-markdown": "../../components/ua-markdown/ua-markdown",
"zui-progress-circle": "../../uni_modules/zui-progress-circle/components/zui-progress-circle/zui-progress-circle",

File diff suppressed because one or more lines are too long

View File

@@ -25,8 +25,11 @@ const _sfc_main = {
showCancel: false,
confirmText: "复制",
success(res) {
if (res.confirm)
;
if (res.confirm) {
common_vendor.index.setClipboardData({
data: "https://valuefrontier.cn/home/pages/account/subscription"
});
}
}
});
}

View File

@@ -2,7 +2,8 @@
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "JiaZhiQianYan",
"setting": {
"compileHotReLoad": true
"compileHotReLoad": true,
"urlCheck": true
},
"condition": {
"miniprogram": {

View File

@@ -2,7 +2,7 @@
const common_vendor = require("../common/vendor.js");
let baseURL = "";
{
baseURL = "http://43.143.189.195:5002";
baseURL = "https://api.valuefrontier.cn:5002";
}
function get(url, params) {
return new Promise((resolve, reject) => {
@@ -20,7 +20,7 @@ function get(url, params) {
},
method: "GET",
success: (response) => {
common_vendor.index.__f__("log", "at request/http.js:37", response);
common_vendor.index.__f__("log", "at request/http.js:39", response);
common_vendor.index.hideLoading();
if (response.data.code == 401) {
common_vendor.index.removeStorageSync("token");
@@ -67,7 +67,7 @@ function post(url, params) {
},
formData: params,
success: (response) => {
common_vendor.index.__f__("log", "at request/http.js:93", response);
common_vendor.index.__f__("log", "at request/http.js:95", response);
common_vendor.index.hideLoading();
if (response.data.code == 401) {
common_vendor.index.removeStorageSync("token");
@@ -80,7 +80,7 @@ function post(url, params) {
}
},
fail: (error) => {
common_vendor.index.__f__("log", "at request/http.js:106", "上传失败" + error.errMsg);
common_vendor.index.__f__("log", "at request/http.js:108", "上传失败" + error.errMsg);
common_vendor.index.hideLoading();
common_vendor.index.showToast({
title: "请求失败",
@@ -108,7 +108,7 @@ function post(url, params) {
if (params && params.isNotNeedLogin)
;
else {
common_vendor.index.__f__("log", "at request/http.js:137", response.data);
common_vendor.index.__f__("log", "at request/http.js:139", response.data);
if (response.data.code == 401) {
common_vendor.index.removeStorageSync("token");
common_vendor.index.navigateTo({

View File

@@ -0,0 +1,135 @@
"use strict";
const common_vendor = require("../common/vendor.js");
class PostHogTracker {
constructor(config) {
this.apiHost = config.apiHost || "https://us.i.posthog.com";
this.apiKey = config.apiKey;
this.distinctId = null;
}
// 初始化并获取用户唯一标识
init() {
const storedId = common_vendor.index.getStorageSync("posthog_distinct_id");
if (storedId) {
this.distinctId = storedId;
} else {
this.distinctId = this._generateUUID();
common_vendor.index.setStorageSync("posthog_distinct_id", this.distinctId);
}
return this;
}
// 设置用户 ID登录后调用
identify(userId, userProperties = {}) {
this.distinctId = userId;
common_vendor.index.setStorageSync("posthog_distinct_id", userId);
this._capture("$identify", {
$set: userProperties
});
}
// 捕获事件
capture(eventName, properties = {}) {
this._capture(eventName, properties);
}
// 页面浏览事件
pageView(pagePath, pageTitle) {
this._capture("$pageview", {
$current_url: pagePath,
$title: pageTitle
});
}
// 内部发送方法
_capture(event, properties = {}) {
const payload = {
api_key: this.apiKey,
event,
distinct_id: this.distinctId,
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
properties: {
...properties,
$lib: "uniapp-miniprogram",
$lib_version: "1.0.0",
...this._getDefaultProperties()
}
};
common_vendor.index.request({
url: `${this.apiHost}/i/v0/e/`,
method: "POST",
header: {
"Content-Type": "application/json"
},
data: payload,
success: (res) => {
common_vendor.index.__f__("log", "at utils/posthog.js:71", "PostHog event captured:", event);
},
fail: (err) => {
common_vendor.index.__f__("error", "at utils/posthog.js:74", "PostHog capture failed:", err);
this._saveFailedEvent(payload);
}
});
}
// 批量发送事件(性能优化)
captureBatch(events) {
const payload = events.map((e) => ({
api_key: this.apiKey,
event: e.event,
distinct_id: this.distinctId,
timestamp: e.timestamp || (/* @__PURE__ */ new Date()).toISOString(),
properties: {
...e.properties,
...this._getDefaultProperties()
}
}));
common_vendor.index.request({
url: `${this.apiHost}/batch/`,
method: "POST",
header: {
"Content-Type": "application/json"
},
data: payload,
success: (res) => {
common_vendor.index.__f__("log", "at utils/posthog.js:102", "PostHog batch captured:", events.length, "events");
}
});
}
// 获取默认属性
_getDefaultProperties() {
const systemInfo = common_vendor.index.getSystemInfoSync();
return {
$os: systemInfo.platform,
$os_version: systemInfo.system,
$device: systemInfo.model,
$screen_height: systemInfo.screenHeight,
$screen_width: systemInfo.screenWidth,
mp_platform: "uniapp"
};
}
// 生成 UUID
_generateUUID() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
const r = Math.random() * 16 | 0;
const v = c === "x" ? r : r & 3 | 8;
return v.toString(16);
});
}
// 保存失败事件(离线支持)
_saveFailedEvent(payload) {
const failedEvents = common_vendor.index.getStorageSync("posthog_failed_events") || [];
failedEvents.push(payload);
common_vendor.index.setStorageSync("posthog_failed_events", failedEvents);
}
// 重试发送失败的事件
retryFailedEvents() {
const failedEvents = common_vendor.index.getStorageSync("posthog_failed_events") || [];
if (failedEvents.length > 0) {
this.captureBatch(failedEvents);
common_vendor.index.removeStorageSync("posthog_failed_events");
}
}
}
const posthog = new PostHogTracker({
apiHost: "https://us.i.posthog.com",
// 或 eu.i.posthog.com
apiKey: "YOUR_PROJECT_API_KEY"
// 在 PostHog 项目设置中获取
}).init();
exports.posthog = posthog;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/posthog.js.map

View File

@@ -0,0 +1,11 @@
"use strict";
const common_vendor = require("../common/vendor.js");
const share = {
created() {
common_vendor.index.showShareMenu({
menus: ["shareAppMessage", "shareTimeline"]
});
}
};
exports.share = share;
//# sourceMappingURL=../../.sourcemap/mp-weixin/utils/share.js.map