2.5 主营业务明细与历史对比表完善,增加非会员弹窗跳转,调整会员页面文字,财务数据模块单季度增加总值展示

This commit is contained in:
尚政杰
2026-02-05 17:47:47 +08:00
parent c4cbd5a11f
commit 21e16f543f
86 changed files with 1661 additions and 376 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

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

@@ -1,8 +1,8 @@
"use strict";
const _imports_0$a = "/static/image/index/conceptTopBg.png";
const _imports_1$i = "/static/icon/home/conceptCenter/search.png";
const _imports_1$h = "/static/icon/home/conceptCenter/search.png";
const _imports_3$d = "/static/icon/home/conceptCenter/conceptScreenArrow.png";
const _imports_1$h = "/static/icon/home/downArrow.png";
const _imports_1$g = "/static/icon/home/downArrow.png";
const _imports_2$f = "/static/icon/home/upArrow.png";
const _imports_3$c = "/static/icon/home/browser.png";
const _imports_11$3 = "/static/icon/home/like.png";
@@ -13,14 +13,14 @@ const _imports_10$2 = "/static/icon/home/industrySearch.png";
const _imports_11$2 = "/static/icon/home/industry_s.png";
const _imports_12$3 = "/static/icon/home/level_s.png";
const _imports_2$d = "/static/icon/invest/upArrow.png";
const _imports_4$d = "/static/icon/invest/downArrow.png";
const _imports_4$c = "/static/image/index/noData.png";
const _imports_4$e = "/static/icon/invest/downArrow.png";
const _imports_4$d = "/static/image/index/noData.png";
const _imports_5$8 = "/static/icon/home/monthLeftArrow.png";
const _imports_6$2 = "/static/icon/home/monthRightArrow.png";
const _imports_2$c = "/static/icon/home/conceptCenter/sortType.png";
const _imports_4$b = "/static/icon/home/conceptCenter/transactionDate.png";
const _imports_1$g = "/static/icon/home/conceptCenter/lock.png";
const _imports_1$f = "/static/icon/home/conceptCenter/timeAxis.png";
const _imports_4$c = "/static/icon/home/conceptCenter/transactionDate.png";
const _imports_1$f = "/static/icon/home/conceptCenter/lock.png";
const _imports_1$e = "/static/icon/home/conceptCenter/timeAxis.png";
const _imports_6$1 = "/static/icon/home/close.png";
const _imports_8$4 = "/static/icon/home/conceptCenter/statistics.png";
const _imports_9$2 = "/static/icon/home/conceptCenter/rank1.png";
@@ -36,40 +36,41 @@ const _imports_13$1 = "/static/icon/home/conceptCenter/vipPopIcon.png";
const _imports_14$1 = "/static/icon/home/conceptCenter/vipPopIcon.png";
const _imports_15$1 = "/static/icon/home/conceptCenter/free_s.png";
const _imports_16$1 = "/static/icon/home/conceptCenter/pro_s.png";
const _imports_1$e = "/static/icon/mine/infoArrow.png";
const _imports_1$d = "/static/icon/mine/infoArrow.png";
const _imports_2$a = "/static/image/mine/vipBg.png";
const _imports_3$b = "/static/icon/mine/menuArrow.png";
const _imports_4$a = "/static/image/mine/service.png";
const _imports_1$d = "/static/icon/mine/basicInfo/edit.png";
const _imports_4$b = "/static/image/mine/service.png";
const _imports_1$c = "/static/icon/mine/basicInfo/edit.png";
const _imports_2$9 = "/static/icon/mine/basicInfo/downArrow.png";
const _imports_3$a = "/static/icon/home/expectScore.png";
const _imports_4$9 = "/static/icon/home/expectScoreTips.png";
const _imports_4$a = "/static/icon/home/expectScoreTips.png";
const _imports_5$7 = "/static/icon/home/expectScoreDot.png";
const _imports_8$3 = "/static/icon/home/eventDetails/like.png";
const _imports_9$1 = "/static/icon/home/eventDetails/collect.png";
const _imports_4$8 = "/static/icon/home/collect_s.png";
const _imports_1$c = "/static/icon/home/like_s.png";
const _imports_4$9 = "/static/icon/home/collect_s.png";
const _imports_1$b = "/static/icon/home/like_s.png";
const _imports_0$8 = "/static/image/login/logo.png";
const _imports_3$9 = "/static/icon/login/select_s.png";
const _imports_4$7 = "/static/icon/login/select.png";
const _imports_1$b = "/static/icon/login/mobile.png";
const _imports_4$8 = "/static/icon/login/select.png";
const _imports_1$a = "/static/icon/login/mobile.png";
const _imports_2$8 = "/static/icon/login/code.png";
const _imports_3$8 = "/static/icon/home/conceptCenter/chgDown.png";
const _imports_4$6 = "/static/icon/home/conceptCenter/chgUp.png";
const _imports_4$7 = "/static/icon/home/conceptCenter/chgUp.png";
const _imports_5$6 = "/static/icon/home/conceptCenter/newsReport.png";
const _imports_1$a = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_1$9 = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_2$7 = "/static/icon/home/conceptCenter/reasonExpand.png";
const _imports_3$7 = "/static/icon/home/conceptCenter/reasonRetract.png";
const _imports_3$6 = "/assets/ydjk-icon.9712ef19.png";
const _imports_5$5 = "/assets/ydjk-zs.f6ba6c32.png";
const _imports_1$9 = "/pagesStock/static/icon/ai-icon.png";
const _imports_1$8 = "/pagesStock/static/icon/ai-icon.png";
const _imports_2$6 = "/pagesStock/static/icon/ai-icon-1.png";
const _imports_3$5 = "/pagesStock/static/icon/all-icon-3.png";
const _imports_1$8 = "/pagesMine/static/image/vip/vipTopBg.png";
const _imports_5$4 = "/pagesStock/static/icon/all-icon-5.png";
const _imports_1$7 = "/pagesMine/static/image/vip/vipTopBg.png";
const _imports_2$5 = "/pagesMine/static/image/vip/noVipTopBg.png";
const _imports_3$4 = "/pagesMine/static/icon/vip/titleLeft_v.png";
const _imports_4$5 = "/pagesMine/static/icon/vip/titleLeft.png";
const _imports_5$4 = "/pagesMine/static/icon/vip/titleRight_v.png";
const _imports_4$6 = "/pagesMine/static/icon/vip/titleLeft.png";
const _imports_5$3 = "/pagesMine/static/icon/vip/titleRight_v.png";
const _imports_6 = "/pagesMine/static/icon/vip/titleRight.png";
const _imports_7$1 = "/pagesMine/static/icon/vip/step1_v.png";
const _imports_8$2 = "/pagesMine/static/icon/vip/step1.png";
@@ -86,16 +87,15 @@ const _imports_7 = "/pagesMine/static/icon/vip/notContain.png";
const _imports_8$1 = "/pagesMine/static/icon/vip/contain.png";
const _imports_2$4 = "/pagesStock/static/icon/establishedTime.png";
const _imports_3$3 = "/pagesStock/static/icon/registeredCapital.png";
const _imports_4$4 = "/pagesStock/static/icon/location.png";
const _imports_5$3 = "/pagesStock/static/icon/noData.png";
const _imports_1$7 = "/pagesStock/static/icon/existStatus.png";
const _imports_4$5 = "/pagesStock/static/icon/location.png";
const _imports_5$2 = "/pagesStock/static/icon/noData.png";
const _imports_1$6 = "/pagesStock/static/icon/existStatus.png";
const _imports_8 = "/pagesStock/static/icon/yRightArrow.png";
const _imports_4$3 = "/pagesStock/static/icon/all-down-ed.png";
const _imports_4$4 = "/pagesStock/static/icon/all-down-ed.png";
const _imports_2$3 = "/pagesStock/static/icon/contrast.png";
const _imports_3$2 = "/pagesStock/static/icon/optional.png";
const _imports_4$2 = "/pagesStock/static/icon/share.png";
const _imports_1$6 = "/pagesStock/static/icon/all-icon-4.png";
const _imports_5$2 = "/pagesStock/static/icon/all-icon-5.png";
const _imports_4$3 = "/pagesStock/static/icon/share.png";
const _imports_4$2 = "/pagesStock/static/icon/all-icon-4.png";
const _imports_0$7 = "/pagesStock/static/icon/cwfx-1.png";
const _imports_3$1 = "/pagesStock/static/icon/all-icon.png";
const _imports_5$1 = "/pagesStock/static/icon/all-down.png";
@@ -130,25 +130,24 @@ exports._imports_0$6 = _imports_0$4;
exports._imports_0$7 = _imports_0$3;
exports._imports_0$8 = _imports_0$2;
exports._imports_0$9 = _imports_0$1;
exports._imports_1 = _imports_1$i;
exports._imports_1$1 = _imports_1$h;
exports._imports_1$10 = _imports_1$8;
exports._imports_1$11 = _imports_1$7;
exports._imports_1$12 = _imports_1$6;
exports._imports_1$13 = _imports_1$5;
exports._imports_1$14 = _imports_1$4;
exports._imports_1$15 = _imports_1$3;
exports._imports_1$16 = _imports_1$2;
exports._imports_1$17 = _imports_1$1;
exports._imports_1$18 = _imports_1;
exports._imports_1$2 = _imports_1$f;
exports._imports_1$3 = _imports_1$g;
exports._imports_1$4 = _imports_1$e;
exports._imports_1$5 = _imports_1$d;
exports._imports_1$6 = _imports_1$c;
exports._imports_1$7 = _imports_1$b;
exports._imports_1$8 = _imports_1$a;
exports._imports_1$9 = _imports_1$9;
exports._imports_1 = _imports_1$h;
exports._imports_1$1 = _imports_1$g;
exports._imports_1$10 = _imports_1$7;
exports._imports_1$11 = _imports_1$6;
exports._imports_1$12 = _imports_1$5;
exports._imports_1$13 = _imports_1$4;
exports._imports_1$14 = _imports_1$3;
exports._imports_1$15 = _imports_1$2;
exports._imports_1$16 = _imports_1$1;
exports._imports_1$17 = _imports_1;
exports._imports_1$2 = _imports_1$e;
exports._imports_1$3 = _imports_1$f;
exports._imports_1$4 = _imports_1$d;
exports._imports_1$5 = _imports_1$c;
exports._imports_1$6 = _imports_1$b;
exports._imports_1$7 = _imports_1$a;
exports._imports_1$8 = _imports_1$9;
exports._imports_1$9 = _imports_1$8;
exports._imports_10 = _imports_10$2;
exports._imports_10$1 = _imports_10$1;
exports._imports_10$2 = _imports_10;
@@ -201,20 +200,21 @@ exports._imports_3$6 = _imports_3$7;
exports._imports_3$7 = _imports_3$6;
exports._imports_3$8 = _imports_3$5;
exports._imports_3$9 = _imports_3$4;
exports._imports_4 = _imports_4$c;
exports._imports_4$1 = _imports_4$d;
exports._imports_4$10 = _imports_4$3;
exports._imports_4$11 = _imports_4$2;
exports._imports_4$12 = _imports_4$1;
exports._imports_4$13 = _imports_4;
exports._imports_4$2 = _imports_4$b;
exports._imports_4$3 = _imports_4$a;
exports._imports_4$4 = _imports_4$9;
exports._imports_4$5 = _imports_4$8;
exports._imports_4$6 = _imports_4$7;
exports._imports_4$7 = _imports_4$6;
exports._imports_4$8 = _imports_4$5;
exports._imports_4$9 = _imports_4$4;
exports._imports_4 = _imports_4$d;
exports._imports_4$1 = _imports_4$e;
exports._imports_4$10 = _imports_4$4;
exports._imports_4$11 = _imports_4$3;
exports._imports_4$12 = _imports_4$2;
exports._imports_4$13 = _imports_4$1;
exports._imports_4$14 = _imports_4;
exports._imports_4$2 = _imports_4$c;
exports._imports_4$3 = _imports_4$b;
exports._imports_4$4 = _imports_4$a;
exports._imports_4$5 = _imports_4$9;
exports._imports_4$6 = _imports_4$8;
exports._imports_4$7 = _imports_4$7;
exports._imports_4$8 = _imports_4$6;
exports._imports_4$9 = _imports_4$5;
exports._imports_5 = _imports_5$8;
exports._imports_5$1 = _imports_5$7;
exports._imports_5$2 = _imports_5$6;

View File

@@ -7051,9 +7051,9 @@ function isConsoleWritable() {
return isWritable;
}
function initRuntimeSocketService() {
const hosts = "127.0.0.1,192.168.2.91";
const hosts = "127.0.0.1,192.168.2.28";
const port = "8090";
const id = "mp-weixin_pBWwaQ";
const id = "mp-weixin_am9vFk";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();

View File

@@ -449,7 +449,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_assets._imports_0$1,
b: common_vendor.o(($event) => $options.clickPreMonth()),
c: common_assets._imports_1$18,
c: common_assets._imports_1$17,
d: common_vendor.t($data.selectDateStr),
e: common_assets._imports_2$3,
f: common_vendor.o(($event) => $options.clickNextMonth()),

View File

@@ -102,7 +102,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
} : {}, {
c: !$props.hideBack && !$props.backBlack
}, !$props.hideBack && !$props.backBlack ? {
d: common_assets._imports_1$17
d: common_assets._imports_1$16
} : {}, {
e: !$props.hideBack && $props.backBlack
}, !$props.hideBack && $props.backBlack ? {

View File

@@ -23,6 +23,12 @@ Component({
"iconPath": "/static/icon/tabbar/home.png",
"selectedIconPath": "/static/icon/tabbar/home_s.png"
},
// {
// "pagePath": "/pages/invest/invest",
// "text": "投资日历",
// "iconPath": "/static/icon/tabbar/invest.png",
// "selectedIconPath": "/static/icon/tabbar/invest_s.png"
// },
{
"pagePath": "/pages/concept/concept",
"text": "概念中心",
@@ -64,7 +70,7 @@ Component({
const index = data.index
if(index==3)
{
//如果是购物车和我的,需要登录
//如果是个人中心,需要登录
let token = wx.getStorageSync('token')
if (!token) {
wx.navigateTo({

View File

@@ -480,6 +480,9 @@ const _sfc_main = {
*/
clickUpgradeAtOnce() {
this.clickLater();
common_vendor.index.navigateTo({
url: "/pagesMine/vipMeal/vipMeal"
});
},
/**
* 点击查看相关概念

View File

@@ -255,9 +255,6 @@ const _sfc_main = {
* @param {Object} code
*/
clickStockName(code) {
common_vendor.index.navigateTo({
url: "/pagesStock/stockCenterDetails/stockCenterDetails?code=" + code
});
},
/**
* 获取概念相关个股数据

View File

@@ -202,12 +202,6 @@ const _sfc_main = {
* @param {Object} code
*/
clickStockName(code) {
if (code.indexOf(".") > -1) {
code = code.split(".")[0];
}
common_vendor.index.navigateTo({
url: "/pagesStock/stockCenterDetails/stockCenterDetails?code=" + code
});
},
/**
* 点击查看股票详情
@@ -243,6 +237,9 @@ const _sfc_main = {
*/
clickUpgradeAtOnce() {
this.clickLater();
common_vendor.index.navigateTo({
url: "/pagesMine/vipMeal/vipMeal"
});
},
/**
* 点击查看更多个股

View File

@@ -191,6 +191,11 @@ const _sfc_main = {
let categoryData = [];
let valueData = [];
let open = data[0].open;
if (data.length > 0) {
if (data[0].time != "09:30") {
data.splice(0, 1);
}
}
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);

View File

@@ -182,7 +182,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
t: $data.memberInfo && $data.memberInfo.is_member
}, $data.memberInfo && $data.memberInfo.is_member ? {
v: common_vendor.t($data.memberInfo.subscription_type),
w: common_vendor.t($data.memberInfo.member_expire_date)
w: common_vendor.t($data.memberInfo.days_left)
} : {}, {
x: common_vendor.o(($event) => $options.clickVip()),
y: common_vendor.f($data.menuList, (item, index, i0) => {

View File

@@ -1 +1 @@
<view><image class="topBg absolute" src="{{a}}" mode="widthFix"></image><view class="navTitle fixed" style="{{b}}">个人中心</view><view wx:if="{{c}}" class="personalInfoC relative flex" style="{{j}}" bindtap="{{k}}"><image class="avatar" src="{{d}}" mode="aspectFill"></image><view class="flex1"><view class="nickname">{{e}}</view><view class="mobile">手机号:{{f}}</view><view wx:if="{{g}}" class="mobile">{{h}}会员</view></view><image class="arrow" src="{{i}}" mode="widthFix"></image></view><view wx:if="{{l}}" class="numList relative flex"><view class="item flex1 flexColumnCenter" bindtap="{{n}}"><view class="num">{{m}}</view><view class="title">评论回复</view></view><view class="item flex1 flexColumnCenter" bindtap="{{p}}"><view class="num">{{o}}</view><view class="title">关注收藏</view></view><view class="item flex1 flexColumnCenter" bindtap="{{r}}"><view class="num">{{q}}</view><view class="title">我的点赞</view></view></view><view class="vipC relative" bindtap="{{x}}"><image class="icon" src="{{s}}" mode="widthFix"></image><view wx:if="{{t}}" class="absolute tips">{{v}}会员,有效期至{{w}}</view><view wx:else class="absolute tips">成为会员,可以获取更多价值资讯</view></view><view class="menuList relative"><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item relative flex" bindtap="{{item.d}}"><image class="icon" src="{{item.a}}" mode="aspectFit"></image><view class="title flex1">{{item.b}}</view><image class="arrow" src="{{z}}" mode="widthFix"></image></view></view></view><uni-popup wx:if="{{C}}" class="r" u-s="{{['d']}}" u-r="popup" u-i="dd5840e4-0" bind:__l="__l" u-p="{{C}}"><view class="popup"><image class="icon" src="{{A}}" mode="widthFix" show-menu-by-longpress></image><view class="title">企业二维码</view></view></uni-popup></view>
<view><image class="topBg absolute" src="{{a}}" mode="widthFix"></image><view class="navTitle fixed" style="{{b}}">个人中心</view><view wx:if="{{c}}" class="personalInfoC relative flex" style="{{j}}" bindtap="{{k}}"><image class="avatar" src="{{d}}" mode="aspectFill"></image><view class="flex1"><view class="nickname">{{e}}</view><view class="mobile">手机号:{{f}}</view><view wx:if="{{g}}" class="mobile">{{h}}会员</view></view><image class="arrow" src="{{i}}" mode="widthFix"></image></view><view wx:if="{{l}}" class="numList relative flex"><view class="item flex1 flexColumnCenter" bindtap="{{n}}"><view class="num">{{m}}</view><view class="title">评论回复</view></view><view class="item flex1 flexColumnCenter" bindtap="{{p}}"><view class="num">{{o}}</view><view class="title">关注收藏</view></view><view class="item flex1 flexColumnCenter" bindtap="{{r}}"><view class="num">{{q}}</view><view class="title">我的点赞</view></view></view><view class="vipC relative" bindtap="{{x}}"><image class="icon" src="{{s}}" mode="widthFix"></image><view wx:if="{{t}}" class="absolute tips">{{v}}会员,{{w}}天后到期</view><view wx:else class="absolute tips">成为会员,可以获取更多价值资讯</view></view><view class="menuList relative"><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item relative flex" bindtap="{{item.d}}"><image class="icon" src="{{item.a}}" mode="aspectFit"></image><view class="title flex1">{{item.b}}</view><image class="arrow" src="{{z}}" mode="widthFix"></image></view></view></view><uni-popup wx:if="{{C}}" class="r" u-s="{{['d']}}" u-r="popup" u-i="dd5840e4-0" bind:__l="__l" u-p="{{C}}"><view class="popup"><image class="icon" src="{{A}}" mode="widthFix" show-menu-by-longpress></image><view class="title">企业二维码</view></view></uni-popup></view>

View File

@@ -166,6 +166,83 @@ const _sfc_main = {
// '板块分布',
// '热门概念词云'
// ],
highPositionStats: {
total_count: 0,
// 高位股数量
avg_continuous_days: 0,
// 平均连板数
max_continuous_days: 0
// 最高连板数
},
riskAssessment: {
// 风险评估结果
level: "正常",
color: "#22c55e"
},
highPositionStockList: [],
// 新增:存储筛选后的高位股列表
// 风险阈值常量(对应参考代码)
RISK_THRESHOLDS: {
CRITICAL: 7,
HIGH: 5,
MEDIUM: 3,
LOW: 2
},
// 风险颜色常量
RISK_COLORS: {
critical: {
color: "#ef4444",
bg: "rgba(239, 68, 68, 0.2)",
border: "rgba(239, 68, 68, 0.4)"
},
high: {
color: "#f97316",
bg: "rgba(249, 115, 22, 0.2)",
border: "rgba(249, 115, 22, 0.4)"
},
medium: {
color: "#eab308",
bg: "rgba(234, 179, 8, 0.2)",
border: "rgba(234, 179, 8, 0.4)"
},
low: {
color: "#22c55e",
bg: "rgba(34, 197, 94, 0.2)",
border: "rgba(34, 197, 94, 0.4)"
}
},
heatIconMap: {
high: {
icon4: "/pagesStock/static/icon/all-icon-4.png",
icon4Color: "#EF4444",
// 高热度图标颜色
icon5: "/pagesStock/static/icon/all-icon-5.png"
// 高热度右侧图标
},
medium: {
icon4: "/pagesStock/static/icon/all-icon-9.png",
icon4Color: "#F97316",
// 中热度图标颜色
icon5: "/pagesStock/static/icon/all-icon-6.png"
// 中热度右侧图标
},
low: {
icon4: "",
// 低热度不显示icon4
icon4Color: "#F3B800",
icon5: "/pagesStock/static/icon/all-icon-7.png"
// 低热度右侧图标
},
none: {
icon4: "",
// 冷门
icon4Color: "#01AB5D",
icon5: "/pagesStock/static/icon/all-icon-8.png"
// 无热度右侧图标
}
},
originData: null,
// 原始接口数据
bkTypes: [
"板块分布",
"热门概念词云"
@@ -245,6 +322,131 @@ const _sfc_main = {
onReady() {
},
methods: {
getStockHeatType(stock) {
const days = stock.continuous_days_num || 0;
if (days >= this.RISK_THRESHOLDS.CRITICAL) {
return "high";
} else if (days >= this.RISK_THRESHOLDS.HIGH) {
return "medium";
} else if (days >= this.RISK_THRESHOLDS.MEDIUM) {
return "low";
} else {
return "none";
}
},
//解析连板数(从"2天2板"格式中提取数字)
parseContinuousDays(continuousDaysStr) {
if (!continuousDaysStr)
return 0;
const match = continuousDaysStr.match(/(\d+)天/);
return match ? Number(match[1]) : 0;
},
// 风险等级判断函数
getRiskLevel(days) {
const {
RISK_THRESHOLDS,
RISK_COLORS
} = this;
if (days >= RISK_THRESHOLDS.CRITICAL) {
return {
level: "极高",
color: RISK_COLORS.critical.color,
bg: RISK_COLORS.critical.bg,
border: RISK_COLORS.critical.border,
status: "缩量一字,高风险"
};
}
if (days >= RISK_THRESHOLDS.HIGH) {
return {
level: "高",
color: RISK_COLORS.high.color,
bg: RISK_COLORS.high.bg,
border: RISK_COLORS.high.border,
status: "放量分歧,需观察"
};
}
if (days >= RISK_THRESHOLDS.MEDIUM) {
return {
level: "中",
color: RISK_COLORS.medium.color,
bg: RISK_COLORS.medium.bg,
border: RISK_COLORS.medium.border,
status: "正常波动"
};
}
return {
level: "低",
color: RISK_COLORS.low.color,
bg: RISK_COLORS.low.bg,
border: RISK_COLORS.low.border,
status: "健康"
};
},
// 计算高位股统计数据
calculateHighPositionStats() {
if (!this.originData || !this.originData.stocks)
return;
const highPositionStocks = this.originData.stocks.filter((stock) => {
const days = this.parseContinuousDays(stock.continuous_days);
return days >= 2;
}).map((stock) => {
const days = this.parseContinuousDays(stock.continuous_days);
const riskInfo = this.getRiskLevel(days);
return {
...stock,
continuous_days_num: days,
// 提取纯数字的连板数
risk_info: riskInfo
// 风险等级信息
};
}).sort((a, b) => b.continuous_days_num - a.continuous_days_num);
this.highPositionStockList = highPositionStocks;
const totalCount = highPositionStocks.length;
const maxDays = highPositionStocks.length ? Math.max(...highPositionStocks.map((s) => this.parseContinuousDays(s.continuous_days))) : 0;
const totalDays = highPositionStocks.reduce((sum, stock) => {
return sum + this.parseContinuousDays(stock.continuous_days);
}, 0);
const avgDays = totalCount > 0 ? (totalDays / totalCount).toFixed(1) : 0;
this.highPositionStats = {
total_count: totalCount,
avg_continuous_days: avgDays,
max_continuous_days: maxDays
};
this.calculateRiskAssessment();
},
// 计算风险评估
calculateRiskAssessment() {
const {
avg_continuous_days,
max_continuous_days,
total_count
} = this.highPositionStats;
const avgDays = Number(avg_continuous_days) || 0;
const maxDays = Number(max_continuous_days) || 0;
const totalCount = Number(total_count) || 0;
const score = avgDays * 2 + maxDays * 0.5 + totalCount * 0.3;
if (score >= 20) {
this.riskAssessment = {
level: "高风险",
color: "#ef4444"
};
} else if (score >= 12) {
this.riskAssessment = {
level: "中风险",
color: "#f97316"
};
} else if (score >= 6) {
this.riskAssessment = {
level: "偏高",
color: "#eab308"
};
} else {
this.riskAssessment = {
level: "正常",
color: "#22c55e"
};
}
},
getHeatColor(value, max) {
if (max === 0)
return "#01AB5D";
@@ -274,7 +476,7 @@ const _sfc_main = {
const currentDay = String(now.getDate()).padStart(2, "0");
const dateStr = `${currentYear}-${currentMonth}-${currentDay}`;
if (!/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) {
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:505", "日期格式错误,请传入 YYYY-MM-DD 格式的日期");
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:749", "日期格式错误,请传入 YYYY-MM-DD 格式的日期");
return "";
}
const [year, month, day] = dateStr.split("-").map(Number);
@@ -294,7 +496,7 @@ const _sfc_main = {
const formattedDate = this.selectedFullDate;
const baseURL = request_http.getBaseURL1();
const requestUrl = `${baseURL}/data/zt/daily/${formattedDate}.json?t=${timestamp}`;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:538", "请求URL", requestUrl);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:782", "请求URL", requestUrl);
const res = await common_vendor.index.request({
url: requestUrl,
method: "GET"
@@ -325,6 +527,7 @@ const _sfc_main = {
}
this.bkList = bkList.slice(0, 16);
this.initPieChart();
this.calculateHighPositionStats();
} else {
common_vendor.index.showToast({
title: "数据请求失败",
@@ -332,7 +535,7 @@ const _sfc_main = {
});
}
} catch (error) {
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:585", "请求异常:", error);
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:832", "请求异常:", error);
common_vendor.index.showToast({
title: "网络异常",
icon: "none"
@@ -382,18 +585,18 @@ const _sfc_main = {
];
if (this.$refs.chartRef) {
const Piechart = await this.$refs.chartRef.init(echarts);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:646", "Piechart实例创建成功", Piechart);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:893", "Piechart实例创建成功", Piechart);
Piechart.setOption(this.pieOption);
}
} catch (error) {
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:650", "饼图初始化失败:", error);
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:897", "饼图初始化失败:", error);
}
},
// 初始化词云
initWordCloud() {
if (this.originData.word_freq_data && Array.isArray(this.originData.word_freq_data)) {
this.wordData = this.originData.word_freq_data;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:659", "词云数据赋值完成", this.wordData);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:906", "词云数据赋值完成", this.wordData);
} else {
this.wordData = [{
name: "脑机",
@@ -406,7 +609,7 @@ const _sfc_main = {
},
handleDateChange(data) {
var _a, _b, _c, _d;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:677", "从日历组件接收的参数:", {
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:924", "从日历组件接收的参数:", {
currentZtCount: (_a = data.item) == null ? void 0 : _a.zt_count,
prevZtCount: (_b = data.prevItem) == null ? void 0 : _b.zt_count
});
@@ -444,7 +647,7 @@ const _sfc_main = {
const prevDay = String(selectedDate.getDate()).padStart(2, "0");
const prevDateFormatted = `${prevYear}${prevMonth}${prevDay}`;
this.selectedFullDate = prevDateFormatted;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:735", `选中日期为当天(${todayFormatted}),已自动调整为前一天:`, prevDateFormatted);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:982", `选中日期为当天(${todayFormatted}),已自动调整为前一天:`, prevDateFormatted);
}
}
this.fetchData();
@@ -533,7 +736,31 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
width: 330,
height: 330
}),
p: common_vendor.s("top:" + $data.contentTop + "px;")
p: common_assets._imports_3$8,
q: common_vendor.t($data.highPositionStats.total_count),
r: common_vendor.t($data.highPositionStats.avg_continuous_days),
s: common_vendor.t($data.highPositionStats.max_continuous_days),
t: common_vendor.t($data.riskAssessment.level),
v: $data.riskAssessment.color,
w: common_vendor.f($data.highPositionStockList, (stock, index, i0) => {
return common_vendor.e({
a: common_vendor.t(stock.sname),
b: common_vendor.t(stock.risk_info.status),
c: ["high", "medium"].includes($options.getStockHeatType(stock))
}, ["high", "medium"].includes($options.getStockHeatType(stock)) ? {
d: $data.heatIconMap[$options.getStockHeatType(stock)].icon4Color,
e: $data.heatIconMap[$options.getStockHeatType(stock)].icon4
} : {}, {
f: common_vendor.t(stock.continuous_days_num),
g: stock.risk_info.bg,
h: `1rpx solid ${stock.risk_info.border}`,
i: stock.risk_info.color,
j: $data.heatIconMap[$options.getStockHeatType(stock)].icon5,
k: index
});
}),
x: common_assets._imports_5$4,
y: common_vendor.s("top:" + $data.contentTop + "px;")
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

File diff suppressed because one or more lines are too long

View File

@@ -121,7 +121,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
g: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
h: common_vendor.t($data.memberInfo.subscription_type),
i: common_vendor.t($data.memberInfo.member_expire_date)
i: common_vendor.t($data.memberInfo.days_left)
} : {}, {
j: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
@@ -131,7 +131,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
m: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
n: common_assets._imports_5$4
n: common_assets._imports_5$5
} : {
o: common_assets._imports_6$2
}, {
@@ -178,7 +178,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
L: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
M: common_assets._imports_5$4
M: common_assets._imports_5$5
} : {
N: common_assets._imports_6$2
}, {
@@ -191,7 +191,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
S: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
T: common_assets._imports_5$4
T: common_assets._imports_5$5
} : {}, {
U: common_assets._imports_6$2,
V: common_assets._imports_17,
@@ -203,7 +203,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
Z: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
aa: common_assets._imports_5$4
aa: common_assets._imports_5$5
} : {
ab: common_assets._imports_6$2
}, {

File diff suppressed because one or more lines are too long

View File

@@ -89,7 +89,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
g: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
h: common_vendor.t($data.memberInfo.subscription_type),
i: common_vendor.t($data.memberInfo.member_expire_date)
i: common_vendor.t($data.memberInfo.days_left)
} : {}, {
j: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
@@ -99,7 +99,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
m: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
n: common_assets._imports_5$4
n: common_assets._imports_5$5
} : {
o: common_assets._imports_6$2
}, {
@@ -121,7 +121,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}) : {}, {
t: $data.memberInfo
}, $data.memberInfo ? {
v: common_vendor.t($data.memberInfo.is_member ? "您已是年度VIP" : "立即加入年度VIP"),
v: common_vendor.t($data.memberInfo.is_member ? "您已是" + $data.memberInfo.subscription_type + "会员" : "立即加入年度会员"),
w: common_vendor.o(($event) => $options.clickJoinVip())
} : {});
}

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="2f528ea3-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="vipC" style="{{s}}"><view class="vipInfoC relative"><image wx:if="{{d}}" class="bg" src="{{e}}" mode="widthFix"></image><image wx:else class="bg" src="{{f}}" mode="widthFix"></image><view wx:if="{{g}}" class="infoC vip absolute"><view class="title">尊贵的{{h}}VIP会员</view><view class="tips">会员有效期至:{{i}}</view></view><view wx:else class="infoC absolute"><view class="title">价值前沿</view><view class="tips">您还不是会员 加入尊享N项服务</view></view></view><view class="privilegeCompareC relative"><view class="titleC flexCenter"><image wx:if="{{j}}" class="icon" src="{{k}}" mode="widthFix"></image><image wx:else class="icon" src="{{l}}" mode="widthFix"></image><view class="title">特权对比</view><image wx:if="{{m}}" class="icon" src="{{n}}" mode="widthFix"></image><image wx:else class="icon" src="{{o}}" mode="widthFix"></image></view><view class="{{r}}"><view class="header flex"><view class="privilege item">专属特权</view><view class="item free">pro会员</view><view class="item vip">max会员</view></view><view class="list"><view wx:for="{{p}}" wx:for-item="item" wx:key="e" class="item flex"><view class="optionItem privilege flex">{{item.a}}</view><view class="optionItem free flexCenter"><block wx:if="{{item.b}}"><image class="notContain" src="{{item.c}}" mode="widthFix"></image></block><block wx:else><image class="contain" src="{{item.d}}" mode="widthFix"></image></block></view><view class="optionItem vip flexCenter"><image class="contain" src="{{q}}" mode="widthFix"></image></view></view></view></view></view></view><view wx:if="{{t}}" class="joinVipC fixed" bindtap="{{w}}">{{v}}</view></view>
<view><nav-bar wx:if="{{a}}" u-i="2f528ea3-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="vipC" style="{{s}}"><view class="vipInfoC relative"><image wx:if="{{d}}" class="bg" src="{{e}}" mode="widthFix"></image><image wx:else class="bg" src="{{f}}" mode="widthFix"></image><view wx:if="{{g}}" class="infoC vip absolute"><view class="title">尊贵的{{h}}会员</view><view class="tips">{{i}}天后到期</view></view><view wx:else class="infoC absolute"><view class="title">价值前沿</view><view class="tips">您还不是会员 加入尊享N项服务</view></view></view><view class="privilegeCompareC relative"><view class="titleC flexCenter"><image wx:if="{{j}}" class="icon" src="{{k}}" mode="widthFix"></image><image wx:else class="icon" src="{{l}}" mode="widthFix"></image><view class="title">特权对比</view><image wx:if="{{m}}" class="icon" src="{{n}}" mode="widthFix"></image><image wx:else class="icon" src="{{o}}" mode="widthFix"></image></view><view class="{{r}}"><view class="header flex"><view class="privilege item">专属特权</view><view class="item free">pro会员</view><view class="item vip">max会员</view></view><view class="list"><view wx:for="{{p}}" wx:for-item="item" wx:key="e" class="item flex"><view class="optionItem privilege flex">{{item.a}}</view><view class="optionItem free flexCenter"><block wx:if="{{item.b}}"><image class="notContain" src="{{item.c}}" mode="widthFix"></image></block><block wx:else><image class="contain" src="{{item.d}}" mode="widthFix"></image></block></view><view class="optionItem vip flexCenter"><image class="contain" src="{{q}}" mode="widthFix"></image></view></view></view></view></view></view><view wx:if="{{t}}" class="joinVipC fixed" bindtap="{{w}}">{{v}}</view></view>

View File

@@ -380,7 +380,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_assets._imports_3$12,
e: common_assets._imports_5$7,
f: common_vendor.sr("chartRef1", "351c0d57-0"),
g: common_assets._imports_4$12,
g: common_assets._imports_4$13,
h: common_assets._imports_2$3,
i: common_vendor.f($data.perShareIndicatorList, (item, index, i0) => {
return {

View File

@@ -19,6 +19,8 @@ const _sfc_main = {
option1: {
legend: {
show: true,
itemWidth: 10,
itemHeight: 10,
data: ["货币资金", "同比(右)"]
},
grid: {
@@ -27,13 +29,28 @@ const _sfc_main = {
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
fontSize: 10
xAxis: [
{
type: "category",
data: [],
axisLabel: {
fontSize: 10
}
},
{
type: "category",
data: [],
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
}
},
],
yAxis: [
{
type: "value",
@@ -86,13 +103,28 @@ const _sfc_main = {
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
fontSize: 10
xAxis: [
{
type: "category",
data: [],
axisLabel: {
fontSize: 10
}
},
{
type: "category",
data: [],
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
}
},
],
yAxis: [
{
type: "value",
@@ -142,14 +174,28 @@ const _sfc_main = {
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
rotate: 45,
fontSize: 10
xAxis: [
{
type: "category",
data: [],
axisLabel: {
fontSize: 10
}
},
{
type: "category",
data: [],
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
}
},
],
yAxis: [
{
type: "value",
@@ -301,7 +347,7 @@ const _sfc_main = {
for (let item of showDataList) {
for (let item1 of category) {
let index = showDataList.indexOf(item);
let lastItem = showDataList[index + 1];
let lastItem = this.financialBalanceList[index + 1];
if (item1 + "年一季报" == item.report_type) {
if (item.assets.current_assets.cash) {
data1.unshift(utils_util.accDiv(item.assets.current_assets.cash, 1e8).toFixed(2));
@@ -328,32 +374,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option1.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
this.option1.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -442,7 +519,8 @@ const _sfc_main = {
sumData.push(sum);
}
this.option1.legend.data = ["货币基金", "同比(右)"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -570,32 +648,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option1.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
this.option1.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -684,7 +793,8 @@ const _sfc_main = {
sumData.push(sum);
}
this.option1.legend.data = ["所有者权益", "同比(右)"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -718,7 +828,7 @@ const _sfc_main = {
this.option1.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -762,7 +872,7 @@ const _sfc_main = {
/**
* 计算经营性现金流增长率
*/
caculateOperatingFlowGrowthRate() {
caculateOperatingCashFlowGrowthRate() {
let flow1 = this.cashFlowList[0].operating_activities.net_flow;
let flow2 = this.cashFlowList[4].operating_activities.net_flow;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
@@ -770,7 +880,7 @@ const _sfc_main = {
/**
* 计算合计现金流增长率
*/
caculateNetIncreaseRatio() {
caculateTotalCashFlowGrowthRate() {
let flow1 = this.cashFlowList[0].cash_changes.net_increase;
let flow2 = this.cashFlowList[4].cash_changes.net_increase;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
@@ -880,32 +990,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
this.option2.xAxis[1].data = category;
this.option2.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -994,7 +1135,7 @@ const _sfc_main = {
sumData.push(sum);
}
this.option2.legend.data = ["经营现金流", "同比(右)"];
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1122,32 +1263,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
this.option2.xAxis[1].data = category;
this.option2.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -1235,7 +1407,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1363,31 +1535,63 @@ const _sfc_main = {
}
}
}
this.option2.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option2.xAxis[0].data = category;
this.option2.xAxis[1].data = category;
this.option2.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -1475,7 +1679,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1509,7 +1713,7 @@ const _sfc_main = {
this.option2.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -1653,7 +1857,20 @@ const _sfc_main = {
}
}
}
this.option3.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option3.xAxis[0].data = category;
this.option3.xAxis[1].data = category;
this.option3.series = [
{
type: "bar",
@@ -1678,6 +1895,21 @@ const _sfc_main = {
name: "第四季度",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -1765,7 +1997,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option3.xAxis.data = category;
this.option3.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1893,31 +2125,63 @@ const _sfc_main = {
}
}
}
this.option3.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option3.xAxis[0].data = category;
this.option3.xAxis[1].data = category;
this.option3.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -2005,7 +2269,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option3.xAxis.data = category;
this.option3.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -2039,7 +2303,7 @@ const _sfc_main = {
this.option3.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -2138,31 +2402,63 @@ const _sfc_main = {
}
}
}
this.option3.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option3.xAxis[0].data = category;
this.option3.xAxis[1].data = category;
this.option3.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -2254,7 +2550,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option3.xAxis.data = category;
this.option3.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -2290,7 +2586,7 @@ const _sfc_main = {
this.option3.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -2335,17 +2631,25 @@ const _sfc_main = {
* 计算净利润增长率
*/
caculateNetProfitGrowthRate() {
let flow1 = this.incomeStatementList[0].operating_activities.net_flow;
let flow2 = this.incomeStatementList[4].operating_activities.net_flow;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
let flow1 = this.incomeStatementList[0].profit.net_profit;
let flow2 = this.incomeStatementList[4].profit.net_profit;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), Math.abs(flow2)), 100).toFixed(2);
},
/**
* 计算营业总收入增长率
*/
caculateRevenueGrowthRate() {
let flow1 = this.incomeStatementList[0].cash_changes.net_increase;
let flow2 = this.incomeStatementList[4].cash_changes.net_increase;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
let flow1 = this.incomeStatementList[0].revenue.total_operating_revenue;
let flow2 = this.incomeStatementList[4].revenue.total_operating_revenue;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), Math.abs(flow2)), 100).toFixed(2);
},
/**
* 计算营业利润增长率
*/
caculateRevenueProfitGrowthRate() {
let flow1 = this.incomeStatementList[0].profit.operating_profit;
let flow2 = this.incomeStatementList[4].profit.operating_profit;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), Math.abs(flow2)), 100).toFixed(2);
}
}
};
@@ -2426,11 +2730,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
L: $props.cashFlowList.length > 0
}, $props.cashFlowList.length > 0 ? {
M: common_vendor.t($data.getNumStr($props.cashFlowList[0].operating_activities.net_flow)),
N: common_vendor.t(_ctx.caculateOperatingFlowRatio()),
N: common_vendor.t($options.caculateOperatingCashFlowGrowthRate()),
O: common_vendor.t($data.getNumStr($props.cashFlowList[0].investment_activities.net_flow)),
P: common_vendor.t($data.getNumStr($props.cashFlowList[0].financing_activities.net_flow)),
Q: common_vendor.t($data.getNumStr($props.cashFlowList[0].cash_changes.net_increase)),
R: common_vendor.t($options.caculateNetIncreaseRatio())
R: common_vendor.t($options.caculateTotalCashFlowGrowthRate())
} : {}, {
S: common_assets._imports_0$3,
T: common_assets._imports_2$3,
@@ -2461,9 +2765,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
af: common_vendor.sr("chartRef3", "619fafcd-2"),
ag: $props.incomeStatementList.length > 0
}, $props.incomeStatementList.length > 0 ? {
ah: common_vendor.t($data.getNumStr($props.incomeStatementList[0].comprehensive_income.total_comprehensive_income)),
ai: common_vendor.t($data.getNumStr($props.incomeStatementList[0].revenue.total_operating_revenue)),
aj: common_vendor.t($data.getNumStr($props.incomeStatementList[0].profit.operating_profit))
ah: common_vendor.t($data.getNumStr($props.incomeStatementList[0].profit.net_profit)),
ai: common_vendor.t($options.caculateNetProfitGrowthRate()),
aj: common_vendor.t($data.getNumStr($props.incomeStatementList[0].revenue.total_operating_revenue)),
ak: common_vendor.t($options.caculateRevenueGrowthRate()),
al: common_vendor.t($data.getNumStr($props.incomeStatementList[0].profit.operating_profit)),
am: common_vendor.t($options.caculateRevenueProfitGrowthRate())
} : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<view class="cyl_view"><view class="top flex"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 {{a}}</view></view><view class="center"><view class="{{['child', b && 'action']}}" bindtap="{{c}}"> 层级视图 </view><view class="{{['child', d && 'action']}}" bindtap="{{e}}"> 流向关系 </view></view><view wx:if="{{f}}" class="bottom"><view class="type flex"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item flex flex1"><view class="{{item.e}}" bindtap="{{item.f}}"><view class="titleNumC">{{item.a}} <text class="{{item.c}}">{{item.b}}</text></view><view class="des">{{item.d}}</view></view><image wx:if="{{item.g}}" class="arrow" src="{{item.h}}" mode="widthFix"></image></view></view><view class="list"><block wx:if="{{h}}"><view wx:for="{{i}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label upstream type">{{item.c}}</view><view class="label upstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress upstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{j}}"><view wx:for="{{k}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label core type">{{item.c}}</view><view class="label core market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress core" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{l}}"><view wx:for="{{m}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label downstream type">{{item.c}}</view><view class="label downstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress downstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block></view></view><view wx:if="{{n}}" style="height:500rpx"><l-echart class="r" u-r="chartRef" u-i="4ade4b3d-0" bind:__l="__l"></l-echart></view></view>
<view class="cyl_view"><view class="top flex"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 {{a}}</view></view><view class="center"><view class="{{['child', b && 'action']}}" bindtap="{{c}}"> 层级视图 </view><view class="{{['child', d && 'action']}}" bindtap="{{e}}"> 流向关系 </view></view><view wx:if="{{f}}" class="bottom"><view class="type flex"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item flex flex1"><view class="{{item.e}}" bindtap="{{item.f}}"><view class="titleNumC">{{item.a}} <text class="{{item.c}}">{{item.b}}</text></view><view class="des">{{item.d}}</view></view><image wx:if="{{item.g}}" class="arrow" src="{{item.h}}" mode="widthFix"></image></view></view><view class="list"><block wx:if="{{h}}"><view wx:for="{{i}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label upstream type">{{item.c}}</view><view class="label upstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress upstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{j}}"><view wx:for="{{k}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label core type">{{item.c}}</view><view class="label core market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress core" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{l}}"><view wx:for="{{m}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label downstream type">{{item.c}}</view><view class="label downstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress downstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block></view></view><view wx:if="{{n}}" style="height:500rpx"><l-echart class="r" u-r="chartRef" u-i="4ade4b3d-0" bind:__l="__l"></l-echart></view></view>

View File

@@ -37,7 +37,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, item.show ? {
d: common_assets._imports_0$6
} : {
e: common_assets._imports_1$13
e: common_assets._imports_1$12
}, {
f: item.show
}, item.show ? {
@@ -57,7 +57,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, $data.getRateUpOrDown(fitem.year_on_year) ? {
i: common_assets._imports_0$7
} : {
j: common_assets._imports_1$14
j: common_assets._imports_1$13
}, {
k: common_vendor.t(fitem.year_on_year ? fitem.year_on_year : 0),
l: common_vendor.n("chgC flex " + ($data.getRateUpOrDown(fitem.year_on_year) ? "down" : "up")),
@@ -80,7 +80,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: item.impact_metrics.is_positive == 1
}, item.impact_metrics.is_positive == 1 ? {
b: common_assets._imports_4$13
b: common_assets._imports_4$14
} : {
c: common_assets._imports_5$8
}, {

View File

@@ -42,7 +42,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, pitem.gender == "女" ? {
c: common_assets._imports_0$8
} : {
d: common_assets._imports_1$15
d: common_assets._imports_1$14
}, {
e: common_vendor.n("sexC flexCenter absolute " + (pitem.gender == "女" ? "female" : "male")),
f: common_vendor.t(pitem.name),
@@ -61,7 +61,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, pitem.gender == "女" ? {
c: common_assets._imports_0$8
} : {
d: common_assets._imports_1$15
d: common_assets._imports_1$14
}, {
e: common_vendor.n("sexC flexCenter absolute " + (pitem.gender == "女" ? "female" : "male")),
f: common_vendor.t(pitem.name),

View File

@@ -51,7 +51,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, $data.getRateUpOrDown(item.ratio_change) ? {
e: common_assets._imports_0$7
} : {
f: common_assets._imports_1$14
f: common_assets._imports_1$13
}, {
g: common_vendor.t($data.getRateStr(item.ratio_change)),
h: common_vendor.n("shengjiang flex " + ($data.getRateUpOrDown(item.ratio_change) ? "down" : "up"))

View File

@@ -90,7 +90,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
r: common_vendor.o(($event) => $options.clickNewsItem(item), index)
});
}),
g: common_assets._imports_1$16,
g: common_assets._imports_1$15,
h: common_assets._imports_2$15,
i: common_assets._imports_3$13
} : {}, {

View File

@@ -15,7 +15,8 @@ const _sfc_main = {
},
tooltip: {
show: true,
triggerOn: "mousemove"
triggerOn: "mousemove",
confine: true
},
radar: {
indicator: [
@@ -95,7 +96,7 @@ const _sfc_main = {
methods: {
async init() {
const chart = await this.$refs.chartRef.init(echarts);
common_vendor.index.__f__("log", "at pagesStock/components/zlfx-view/zlfx-view.vue:183", chart);
common_vendor.index.__f__("log", "at pagesStock/components/zlfx-view/zlfx-view.vue:184", chart);
chart.setOption(this.option);
},
clickIndustryRank() {

View File

@@ -44,9 +44,9 @@ const _sfc_main = {
}
}
],
dataZoom: [{
type: "slider"
}],
// dataZoom:[{
// type:'slider'
// }],
series: [
{
type: "bar",
@@ -187,6 +187,22 @@ const _sfc_main = {
return { text: "一般", color: "orange" };
return { text: "较低", color: "red" };
},
/**
* 遍历数组找出对应的营收
* @param {Object} pitem
*/
getTableRevenue(item, pitem) {
let index = -1;
for (let item1 of pitem.products) {
if (item1.content == item.content) {
index = pitem.products.indexOf(item1);
}
}
if (index > -1) {
return utils_util.getNumStr(pitem.products[index].revenue);
} else
return "-";
},
itemClick(index) {
common_vendor.index.navigateTo({
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
@@ -225,30 +241,33 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
} : {}) : {}, {
q: common_vendor.sr("chartRef1", "d36e6b92-0"),
r: common_vendor.sr("chartRef2", "d36e6b92-1"),
s: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item),
b: ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0
}, ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0 ? {
c: common_vendor.t(["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index]),
d: index == 0 ? "left" : "center"
} : {}, {
e: index,
f: index == 0 ? "left" : "center",
g: index == 0 ? "flex-start" : "center"
});
}),
t: $props.productClassificationList.length > 0
s: $props.productClassificationList.length > 0
}, $props.productClassificationList.length > 0 ? {
v: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
t: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
return {
a: common_vendor.t(item.content),
b: common_vendor.t(item.profit_margin.toFixed(2)),
c: common_vendor.t($data.getNumStr(item.profit)),
d: common_vendor.t($data.getNumStr(item.revenue)),
e: common_vendor.t(item.content),
f: index,
g: index % 2 == 0 ? "#FFFFFF" : "#FAFAFC"
b: index
};
}),
v: common_vendor.t($props.productClassificationList[0].report_type),
w: common_vendor.t($props.productClassificationList[0].report_type),
x: common_vendor.f($props.productClassificationList, (item, index, i0) => {
return {
a: common_vendor.t(item.report_type),
b: index
};
}),
y: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
return {
a: common_vendor.t(item.profit_margin ? item.profit_margin.toFixed(2) + "%" : "-"),
b: common_vendor.t(item.profit ? $data.getNumStr(item.profit) : "-"),
c: common_vendor.f($props.productClassificationList, (pitem, pindex, i1) => {
return {
a: common_vendor.t($options.getTableRevenue(item, pitem)),
b: pindex
};
}),
d: index
};
})
} : {});

View File

@@ -1 +1 @@
<view><block wx:if="{{a}}"><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#1DB26F;font-size:30rpx">{{b}}</view><view style="margin-top:10rpx">利润增长</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">成长能力</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">增长动力</text></view><view style="margin-top:10rpx"><text>营收增长</text><text style="color:#1DB26F;margin:0 10rpx">{{c}}%</text><text style="{{e}}">({{d}})</text></view></view></view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#F59B38;font-size:30rpx">{{f}}%</view><view style="margin-top:10rpx">ROE</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">盈利与回报</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">赚钱能力</text></view><view style="margin-top:10rpx"><text style="{{h}}">{{g}}</text><text style="margin-left:10rpx">净利率 {{i}}%|毛利率 {{j}}</text></view></view></view><view wx:if="{{k}}" class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#EC3440;font-size:30rpx">{{l}}%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">风险与运营</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">安全边际</text></view><view style="margin-top:10rpx"><text style="{{n}}">{{m}}</text><text style="margin-left:10rpx">流动比率 {{o}}|研发费用率 {{p}}%</text></view></view></view></block><view style="text-align:center;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 营收与利润趋势</view><view style="height:400rpx"><l-echart class="r" u-r="chartRef1" u-i="d36e6b92-0" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx">主营业务 </view><view style="height:400rpx"><l-echart class="r" u-r="chartRef2" u-i="d36e6b92-1" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 主营业务明细与历史对比</view><view style="display:grid;grid-template-columns:130rpx repeat(4, 1fr);color:#666666;font-size:20rpx;font-weight:500;background-color:#FAFAFC;margin:20rpx;margin-bottom:0;padding:10rpx;box-sizing:border-box"><view wx:for="{{s}}" wx:for-item="item" wx:key="e" class="flexColumnCenter" style="{{'justify-content:center' + ';' + ('text-align:' + item.f + ';' + ('align-items:' + item.g))}}"><view>{{item.a}}</view><view wx:if="{{item.b}}" style="{{'font-size:18rpx' + ';' + ('text-align:' + item.d)}}">{{item.c}}</view></view></view><block wx:if="{{t}}"><view wx:for="{{v}}" wx:for-item="item" wx:key="f" class="table" style="{{'display:grid;grid-template-columns:130rpx repeat(4, 1fr);margin:0 20rpx;padding:10rpx' + ';' + ('background-color:' + item.g)}}"><view class="item">{{item.a}}</view><view class="item flexCenter">{{item.b}}%</view><view class="item flexCenter">{{item.c}}</view><view class="item flexCenter">{{item.d}}</view><view class="item flexCenter">{{item.e}}</view></view></block><view style="height:80rpx"></view></view>
<view><block wx:if="{{a}}"><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#1DB26F;font-size:30rpx">{{b}}</view><view style="margin-top:10rpx">利润增长</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">成长能力</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">增长动力</text></view><view style="margin-top:10rpx"><text>营收增长</text><text style="color:#1DB26F;margin:0 10rpx">{{c}}%</text><text style="{{e}}">({{d}})</text></view></view></view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#F59B38;font-size:30rpx">{{f}}%</view><view style="margin-top:10rpx">ROE</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">盈利与回报</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">赚钱能力</text></view><view style="margin-top:10rpx"><text style="{{h}}">{{g}}</text><text style="margin-left:10rpx">净利率 {{i}}%|毛利率 {{j}}</text></view></view></view><view wx:if="{{k}}" class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#EC3440;font-size:30rpx">{{l}}%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">风险与运营</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">安全边际</text></view><view style="margin-top:10rpx"><text style="{{n}}">{{m}}</text><text style="margin-left:10rpx">流动比率 {{o}}|研发费用率 {{p}}%</text></view></view></view></block><view style="text-align:center;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 营收与利润趋势</view><view style="height:400rpx"><l-echart class="r" u-r="chartRef1" u-i="d36e6b92-0" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx">主营业务 </view><view style="height:400rpx"><l-echart class="r" u-r="chartRef2" u-i="d36e6b92-1" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 主营业务明细与历史对比</view><block wx:if="{{s}}"><view class="mainBusinessC flex"><view class="businessList"><view class="heading">业务</view><view class="list"><view wx:for="{{t}}" wx:for-item="item" wx:key="b" class="item flex">{{item.a}}</view></view></view><scroll-view scroll-x class="dataC flex1"><view class="headingList"><view class="heading"><view class="flexColumnCenter"><view>毛利率</view><view>({{v}})</view></view></view><view class="heading"><view class="flexColumnCenter"><view>利润</view><view>({{w}})</view></view></view><block wx:for="{{x}}" wx:for-item="item" wx:key="b"><view class="heading"><view class="flexColumnCenter"><view>营收</view><view>({{item.a}})</view></view></view></block></view><view class="dataList"><view wx:for="{{y}}" wx:for-item="item" wx:key="d" class="dataItem"><view class="rowItem">{{item.a}}</view><view class="rowItem">{{item.b}}</view><view wx:for="{{item.c}}" wx:for-item="pitem" wx:key="b" class="rowItem">{{pitem.a}}</view></view></view></scroll-view></view></block><view style="height:80rpx"></view></view>

View File

@@ -6,3 +6,56 @@
.table .item.center {
text-align: center;
}
.mainBusinessC {
padding: 0 20rpx;
overflow: hidden;
}
.mainBusinessC .businessList .heading {
background-color: #FAFAFC;
padding: 0 20rpx;
width: 160rpx;
line-height: 80rpx;
font-size: 20rpx;
font-weight: bold;
color: #666;
}
.mainBusinessC .businessList .list .item {
padding: 0 10rpx;
height: 60rpx;
font-size: 18rpx;
font-weight: 500;
color: #666;
}
.mainBusinessC .businessList .list .item:nth-child(2n) {
background-color: #FAFAFC;
}
.mainBusinessC .dataC {
width: calc(100% - 160rpx);
}
.mainBusinessC .dataC .headingList {
white-space: nowrap;
}
.mainBusinessC .dataC .headingList .heading {
background-color: #FAFAFC;
display: inline-flex;
align-items: center;
justify-content: center;
width: 160rpx;
height: 80rpx;
font-size: 20rpx;
color: #666;
}
.mainBusinessC .dataC .dataList .dataItem {
white-space: nowrap;
font-size: 20rpx;
color: #666;
}
.mainBusinessC .dataC .dataList .dataItem .rowItem {
display: inline-flex;
align-items: center;
width: 160rpx;
height: 60rpx;
}
.mainBusinessC .dataC .dataList .dataItem:nth-child(2n) .rowItem {
background-color: #FAFAFC;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

View File

@@ -10,45 +10,260 @@ const _sfc_main = {
activeIndex: 0,
bkList: [],
bkFilters: [
"按涨幅",
"按连板数",
"只看龙头"
],
filterIndex: 0,
selectedFullDate: ""
selectedFullDate: "",
// 年-月-日
originData: null,
// 原始接口数据
allStocks: [],
// 所有股票数据(带角色标签)
// 角色配置
STOCK_ROLES: {
dragon: {
text: "龙头",
color: "#EC3440",
bgColor: "#FFE8E9",
icon: "/pagesStock/static/icon/first-icon1.png"
},
follow: {
text: "跟风",
color: "#F97316",
bgColor: "#FFF0E6",
icon: "/pagesStock/static/icon/first-icon2.png"
},
first: {
text: "首板",
color: "#01AB5D",
bgColor: "#E4F9EF",
icon: "/pagesStock/static/icon/first-icon.png"
},
normal: {
text: "",
color: "",
bgColor: "",
icon: ""
}
},
// 连板层级样式配置(新规则)
BOARD_LEVEL_STYLES: {
dragon: {
// 5板及以上 龙头
color: "#ef4444",
bgColor: "#FFE8E9",
borderColor: "#ef4444"
},
high: {
// 3-4板 高位
color: "#f97316",
bgColor: "#FFF0E6",
borderColor: "#f97316"
},
mid: {
// 2板 中位
color: "#eab308",
bgColor: "#FFF9E6",
borderColor: "#eab308"
},
first: {
// 1板 首板
color: "#22c55e",
bgColor: "#E4F9EF",
borderColor: "#22c55e"
}
},
// 板块文字颜色配置(新规则)
SECTOR_COLOR_RULES: [
{ keyword: "公告", color: "#D4AF37" },
// 金色
{ keyword: "其他", color: "#9CA3AF" },
// 灰色
{ keyword: ["AI", "人工智能", "芯片"], color: "#8B5CF6" },
// 紫色
{ keyword: ["锂电", "电池", "新能源"], color: "#10B981" },
// 翠绿
{ keyword: ["医药", "医疗"], color: "#EC4899" },
// 粉色
{ keyword: ["金融", "银行"], color: "#F59E0B" },
// 橙黄
{ keyword: ["军工", "航空"], color: "#EF4444" }
// 红色
],
DEFAULT_SECTOR_COLOR: "#06B6D4"
// 默认 青色
};
},
computed: {
// 筛选后的股票列表
filteredStocks() {
var _a;
if (!this.allStocks.length)
return [];
let stocks = [...this.allStocks];
if (this.activeIndex >= 0 && this.bkList.length) {
const currentSector = (_a = this.bkList[this.activeIndex]) == null ? void 0 : _a.title;
if (currentSector) {
stocks = stocks.filter((stock) => {
const sectorMatch = stock.core_sectors.some((s) => s.includes(currentSector)) || (Array.isArray(stock.sector_category) ? stock.sector_category.includes(currentSector) : stock.sector_category === currentSector);
return sectorMatch;
});
}
}
switch (this.filterIndex) {
case 0:
stocks.sort((a, b) => {
const aDays = this.parseContinuousDays(a.continuous_days);
const bDays = this.parseContinuousDays(b.continuous_days);
return bDays - aDays;
});
break;
case 1:
stocks = stocks.filter((stock) => this.parseContinuousDays(stock.continuous_days) >= 2);
stocks.sort((a, b) => {
const aDays = this.parseContinuousDays(a.continuous_days);
const bDays = this.parseContinuousDays(b.continuous_days);
return bDays - aDays;
});
break;
}
return stocks;
}
},
onLoad(e) {
this.activeIndex = e.index;
this.selectedFullDate = e.data;
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:237", "selectedFullDate", this.selectedFullDate);
this.contentTop = this.navH + 20 / 750 * common_vendor.inject("windowWidth");
this.fetchData();
},
methods: {
getPreviousDayDate(dateStr) {
if (!/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) {
common_vendor.index.__f__("error", "at pagesStock/stockCenterDetails/bkydmx.vue:104", "日期格式错误,请传入 YYYY-MM-DD 格式的日期");
return "";
// 解析连板数
parseContinuousDays(continuousDaysStr) {
if (!continuousDaysStr)
return 0;
const match = continuousDaysStr.match(/(\d+)天/);
return match ? Number(match[1]) : 0;
},
// 格式化连板文本(适配新层级)
formatBoardText(continuousDaysStr) {
const boardDays = this.parseContinuousDays(continuousDaysStr);
if (boardDays === 1)
return "首板";
if (boardDays > 1)
return `${boardDays}连板`;
return "";
},
// 获取连板标签样式(按新层级规则)
getBoardTagStyleByLevel(continuousDaysStr) {
const boardDays = this.parseContinuousDays(continuousDaysStr);
let styleConfig = {};
if (boardDays >= 5) {
styleConfig = this.BOARD_LEVEL_STYLES.dragon;
} else if (boardDays >= 3 && boardDays <= 4) {
styleConfig = this.BOARD_LEVEL_STYLES.high;
} else if (boardDays === 2) {
styleConfig = this.BOARD_LEVEL_STYLES.mid;
} else if (boardDays === 1) {
styleConfig = this.BOARD_LEVEL_STYLES.first;
}
const [year, month, day] = dateStr.split("-").map(Number);
const date = new Date(year, month - 1, day);
date.setDate(date.getDate() - 2);
const prevYear = date.getFullYear();
const prevMonth = String(date.getMonth() + 1).padStart(2, "0");
const prevDay = String(date.getDate()).padStart(2, "0");
return `${prevYear}${prevMonth}${prevDay}`;
return {
"color": styleConfig.color || "#FFFFFF",
"background-color": styleConfig.bgColor || "#eab308",
"border": `1rpx solid ${styleConfig.borderColor || "#eab308"}`
};
},
// 获取板块文字颜色(按关键词匹配)
getSectorTextColor(sectorName) {
if (!sectorName)
return this.DEFAULT_SECTOR_COLOR;
for (const rule of this.SECTOR_COLOR_RULES) {
if (Array.isArray(rule.keyword)) {
const isMatch = rule.keyword.some((key) => sectorName.includes(key));
if (isMatch)
return rule.color;
} else {
if (sectorName === rule.keyword)
return rule.color;
}
}
return this.DEFAULT_SECTOR_COLOR;
},
// 获取股票角色
getStockRole(stock, sectorStocks, sectorIndex) {
var _a;
const boardDays = this.parseContinuousDays(stock.continuous_days);
if (boardDays >= 5) {
return this.STOCK_ROLES.dragon;
}
if (boardDays === 1) {
return this.STOCK_ROLES.first;
}
if (sectorIndex < 3 && boardDays >= 2 && boardDays < 5) {
const sortedByTime = [...sectorStocks].sort(
(a, b) => (a.zt_time || "").localeCompare(b.zt_time || "")
);
if (((_a = sortedByTime[0]) == null ? void 0 : _a.scode) === stock.scode && boardDays >= 3) {
return this.STOCK_ROLES.dragon;
}
return this.STOCK_ROLES.follow;
}
return this.STOCK_ROLES.normal;
},
// 获取角色标签样式
getRoleTagStyle(role) {
return {
"background-color": role.bgColor
};
},
// 处理板块切换
handleTabChange(index) {
this.activeIndex = index;
this.setStockRoles();
},
// 处理筛选切换
handleFilterChange(index) {
this.filterIndex = index;
},
// 为所有股票添加角色标签
setStockRoles() {
if (!this.originData || !this.originData.stocks || !this.bkList.length)
return;
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:357", "setStockRoles", JSON.stringify(this.originData.stocks));
this.allStocks = this.originData.stocks.map((stock) => {
let sectorIndex = -1;
const stockSectors = Array.isArray(stock.sector_category) ? stock.sector_category : [stock.sector_category];
this.bkList.some((bk, idx) => {
const match = stockSectors.some((s) => s.includes(bk.title));
if (match) {
sectorIndex = idx;
return true;
}
return false;
});
const sectorStocks = this.originData.stocks.filter((s) => {
const sSectors = Array.isArray(s.sector_category) ? s.sector_category : [s.sector_category];
return sSectors.some((ss) => stockSectors.includes(ss));
});
const stockRole = this.getStockRole(stock, sectorStocks, sectorIndex);
return {
...stock,
stockRole: stockRole.text ? stockRole : null
};
});
},
/**
* 请求接口数据(优化:动态日期+自动时间戳)
*/
// 请求接口数据
async fetchData() {
try {
const timestamp = (/* @__PURE__ */ new Date()).getTime();
const formattedDate = this.getPreviousDayDate(this.selectedFullDate);
const formattedDate = this.selectedFullDate;
const baseURL = request_http.getBaseURL1();
const requestUrl = `${baseURL}/data/zt/daily/${formattedDate}.json?t=${timestamp}`;
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:137", "请求URL", requestUrl);
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:401", "请求URL", requestUrl);
const res = await common_vendor.index.request({
url: requestUrl,
method: "GET"
@@ -59,19 +274,18 @@ const _sfc_main = {
const labels = chartData.labels || [];
const counts = chartData.counts || [];
const maxCount = counts.length > 0 ? Math.max(...counts) : 0;
let bkList = [];
const maxLen = Math.min(labels.length, counts.length);
let bkList = [];
for (let i = 0; i < maxLen; i++) {
const title = labels[i];
const count = counts[i] || 0;
bkList.push({
title,
// 板块名称
count
// 数量
});
}
this.bkList = bkList;
this.setStockRoles();
} else {
common_vendor.index.showToast({
title: "数据请求失败",
@@ -79,7 +293,7 @@ const _sfc_main = {
});
}
} catch (error) {
common_vendor.index.__f__("error", "at pagesStock/stockCenterDetails/bkydmx.vue:178", "请求异常:", error);
common_vendor.index.__f__("error", "at pagesStock/stockCenterDetails/bkydmx.vue:440", "请求异常:", error);
common_vendor.index.showToast({
title: "网络异常",
icon: "none"
@@ -118,7 +332,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
e: common_vendor.f($data.bkFilters, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: common_vendor.o(($event) => $data.filterIndex = index, index),
b: common_vendor.o(($event) => $options.handleFilterChange(index), index),
c: $data.filterIndex == index ? "#070707" : "#939393",
d: $data.filterIndex == index ? "1rpx solid #F2C369" : "1rpx solid #E5E5E5",
e: $data.filterIndex == index ? "#F2C369" : "#fff",
@@ -132,13 +346,28 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
c: index == 0 ? "left" : "center"
};
}),
g: common_vendor.f(30, (item, index, i0) => {
return {
a: index % 2 == 0 ? "#fff" : "#FAFAFC"
};
g: common_vendor.f($options.filteredStocks, (item, index, i0) => {
return common_vendor.e({
a: item.stockRole
}, item.stockRole ? common_vendor.e({
b: item.stockRole.icon
}, item.stockRole.icon ? {
c: item.stockRole.icon
} : {}, {
d: common_vendor.t(item.stockRole.text),
e: item.stockRole.color,
f: common_vendor.s($options.getRoleTagStyle(item.stockRole))
}) : {}, {
g: common_vendor.t(item.sname),
h: common_vendor.t($options.formatBoardText(item.continuous_days)),
i: common_vendor.s($options.getBoardTagStyleByLevel(item.continuous_days)),
j: common_vendor.t(item.core_sectors[0] || "未知板块"),
k: $options.getSectorTextColor(item.core_sectors[0] || "未知板块"),
l: item.scode,
m: index % 2 == 0 ? "#fff" : "#FAFAFC"
});
}),
h: common_assets._imports_1$12,
i: common_vendor.s("top:" + $data.contentTop + "px;")
h: common_vendor.s("top:" + $data.contentTop + "px;")
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="573301e0-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="stockDetailsC fixed" style="{{'background-color:white;border-radius:10rpx;overflow:hidden' + ';' + i}}"><view style="height:86rpx"><scroll-view scroll-x style="white-space:nowrap;height:100%;padding:0 20rpx;box-sizing:border-box" scroll-with-animation scroll-into-view="{{d}}"><view style="display:flex;align-items:center;height:100%;font-weight:500"><view wx:for="{{c}}" wx:for-item="item" wx:key="d" id="{{item.b}}" bindtap="{{item.c}}" style="{{'display:flex;align-items:center;justify-content:center;line-height:85rpx;margin:0 20rpx' + ';' + ('color:' + item.e + ';' + ('border-bottom:' + item.f) + ';' + ('font-size:' + item.g))}}">{{item.a}}</view></view></scroll-view></view><view style="height:1rpx;background-color:#E7E7E7;margin:0 20rpx"></view><view style="height:48rpx;display:grid;grid-template-columns:repeat(3, 1fr);gap:10rpx;margin:23rpx 40rpx"><view wx:for="{{e}}" wx:for-item="item" wx:key="f" bindtap="{{item.b}}" style="{{'height:45rpx;display:flex;align-items:center;justify-content:center;color:#939393;font-size:24rpx;font-weight:500;border-radius:5rpx' + ';' + ('color:' + item.c + ';' + ('border:' + item.d) + ';' + ('background-color:' + item.e))}}">{{item.a}}</view></view><view style="margin:0 20rpx;background-color:#FAFAFC;display:grid;grid-template-columns:35% 20% 20% 25%"><view wx:for="{{f}}" wx:for-item="item" wx:key="b" style="{{'font-size:22rpx;color:#666666;padding:0 15rpx;box-sizing:border-box;font-weight:500;line-height:60rpx' + ';' + ('text-align:' + item.c)}}">{{item.a}}</view></view><scroll-view scroll-y style="position:absolute;top:241rpx;left:0;right:0;bottom:0;font-size:20rpx;font-weight:500"><view wx:for="{{g}}" wx:for-item="item" style="{{'margin:0 20rpx;display:grid;grid-template-columns:35% 20% 20% 25%' + ';' + ('background-color:' + item.a)}}"><view style="display:flex;align-items:center;color:#666666;height:60rpx"><view style="display:flex;align-items:center;background-color:#FFF0E6;border-radius:5rpx;padding:0 10rpx;margin-left:14rpx"><image style="width:15rpx;height:17rpx" src="{{h}}" mode="widthFix"></image><view style="color:#F97316;margin-left:5rpx">跟风</view></view><view style="margin-left:10rpx">康强电子</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="font-size:24rpx;color:#EC3440;font-weight:bold">+10.00%</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="color:#F3B800;padding:0 10rpx;border-radius:5rpx;background-color:#FFF9E6;border:1rpx solid #F3B800;display:flex;align-items:center;justify-content:center">2连板</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="background-color:#F4EFFF;border-radius:5rpx;padding:0 10rpx;color:#8B5CF6">芯片(封装材料)</view></view></view></scroll-view></view></view>
<view><nav-bar wx:if="{{a}}" u-i="573301e0-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="stockDetailsC fixed" style="{{'background-color:white;border-radius:10rpx;overflow:hidden' + ';' + h}}"><view style="height:86rpx"><scroll-view scroll-x style="white-space:nowrap;height:100%;padding:0 20rpx;box-sizing:border-box" scroll-with-animation scroll-into-view="{{d}}"><view style="display:flex;align-items:center;height:100%;font-weight:500"><view wx:for="{{c}}" wx:for-item="item" wx:key="d" id="{{item.b}}" bindtap="{{item.c}}" style="{{'display:flex;align-items:center;justify-content:center;line-height:85rpx;margin:0 20rpx' + ';' + ('color:' + item.e + ';' + ('border-bottom:' + item.f) + ';' + ('font-size:' + item.g))}}">{{item.a}}</view></view></scroll-view></view><view style="height:1rpx;background-color:#E7E7E7;margin:0 20rpx"></view><view style="height:48rpx;display:grid;grid-template-columns:repeat(3, 1fr);gap:10rpx;margin:23rpx 40rpx"><view wx:for="{{e}}" wx:for-item="item" wx:key="f" bindtap="{{item.b}}" style="{{'height:45rpx;display:flex;align-items:center;justify-content:center;color:#939393;font-size:24rpx;font-weight:500;border-radius:5rpx' + ';' + ('color:' + item.c + ';' + ('border:' + item.d) + ';' + ('background-color:' + item.e))}}">{{item.a}}</view></view><view style="margin:0 20rpx;background-color:#FAFAFC;display:grid;grid-template-columns:35% 20% 20% 25%"><view wx:for="{{f}}" wx:for-item="item" wx:key="b" style="{{'font-size:22rpx;color:#666666;padding:0 15rpx;box-sizing:border-box;font-weight:500;line-height:60rpx' + ';' + ('text-align:' + item.c)}}">{{item.a}}</view></view><scroll-view scroll-y style="position:absolute;top:241rpx;left:0;right:0;bottom:0;font-size:20rpx;font-weight:500"><view wx:for="{{g}}" wx:for-item="item" wx:key="l" style="{{'margin:0 20rpx;display:grid;grid-template-columns:35% 20% 20% 25%' + ';' + ('background-color:' + item.m)}}"><view style="display:flex;align-items:center;color:#666666;height:60rpx"><view wx:if="{{item.a}}" style="{{'display:flex;align-items:center;border-radius:5rpx;padding:0 10rpx;margin-left:14rpx' + ';' + item.f}}"><image wx:if="{{item.b}}" style="width:15rpx;height:17rpx;margin-right:5rpx" src="{{item.c}}" mode="widthFix"></image><view style="{{'color:' + item.e}}">{{item.d}}</view></view><view style="margin-left:10rpx">{{item.g}}</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="font-size:24rpx;color:#EC3440;font-weight:bold">+10.00%</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="{{'padding:0 10rpx;border-radius:5rpx;display:flex;align-items:center;justify-content:center' + ';' + item.i}}">{{item.h}}</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="{{'background-color:#F4EFFF;border-radius:5rpx;padding:0 10rpx;white-space:nowrap;max-width:120rpx;overflow:hidden;text-overflow:ellipsis' + ';' + ('color:' + item.k)}}">{{item.j}}</view></view></view></scroll-view></view></view>

View File

@@ -381,7 +381,10 @@ const _sfc_main = {
clickInDepthAnalysisItem(index) {
if (this.selectInDepthAnalysis != index) {
this.selectInDepthAnalysis = index;
if (index == 2) {
if (index == 0) {
this.getComprehensiveAnalysisData();
this.getIndustryRankListData();
} else if (index == 2) {
this.getValueChainAnalysisData();
} else if (index == 3) {
this.getKeyFactorsTimelineData();
@@ -604,7 +607,7 @@ const _sfc_main = {
}
request_api.managementTeam(code, { active_only: true }).then((res) => {
let data = res.data;
let arr = ["高管", "董事", "监事", "其他"];
let arr = ["高管", "董事", "监事"];
let list = [];
for (let item of arr) {
list.push({ key: item, list: [] });
@@ -1029,7 +1032,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}),
aj: $data.isData && $data.isManagementEmpty
}, $data.isData && $data.isManagementEmpty ? {
ak: common_assets._imports_5$5
ak: common_assets._imports_5$6
} : {}) : {}, {
al: $data.selectCompanyFiles == 2
}, $data.selectCompanyFiles == 2 ? common_vendor.e({
@@ -1038,7 +1041,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}),
an: $data.isData && $data.branchList.length == 0
}, $data.isData && $data.branchList.length == 0 ? {
ao: common_assets._imports_5$5
ao: common_assets._imports_5$6
} : {}) : {}, {
ap: $data.selectCompanyFiles == 3
}, $data.selectCompanyFiles == 3 ? common_vendor.e({
@@ -1050,7 +1053,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
} : {}, {
as: $data.isData && !$data.stockBasicInfo
}, $data.isData && !$data.stockBasicInfo ? {
at: common_assets._imports_5$5
at: common_assets._imports_5$6
} : {}) : {}) : {}, {
av: $data.selectTab == 1
}, $data.selectTab == 1 ? common_vendor.e({

View File

@@ -161,9 +161,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
a: index
};
}),
k: common_assets._imports_1$12,
l: common_assets._imports_5$6,
m: common_assets._imports_5$6,
k: common_assets._imports_4$12,
l: common_assets._imports_5$4,
m: common_assets._imports_5$4,
n: common_vendor.s("top:" + $data.contentTop + "px;")
};
}