2.4 组件结构调整,调整会员权限判断

This commit is contained in:
尚政杰
2026-02-04 17:43:41 +08:00
parent eeca65538c
commit 995ee7f220
274 changed files with 7191 additions and 2186 deletions

View File

@@ -0,0 +1,258 @@
"use strict";
const common_vendor = require("../../../common/vendor.js");
const utils_util = require("../../../utils/util.js");
const echarts = require("../../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = {
name: "zysj-view",
data() {
return {
option1: {
legend: {
show: true,
data: ["营业收入", "净利润"]
},
grid: {
left: "2%",
right: "2%",
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
// interval:0
}
},
yAxis: [
{
type: "value",
name: "营收(亿)",
position: "left",
alignTicks: true,
axisLine: {
onZero: false
}
},
{
type: "value",
name: "利润(亿)",
position: "right",
alignTicks: true,
axisLine: {
onZero: false
}
}
],
dataZoom: [{
type: "slider"
}],
series: [
{
type: "bar",
name: "营业收入",
data: [],
yAxisIndex: 0
},
{
type: "line",
name: "净利润",
data: [],
yAxisIndex: 1
}
]
},
option2: {
title: {
text: "",
textStyle: {
fontSize: 12
}
},
legend: {
show: true
},
grid: {
left: 0,
right: 0,
top: "5%",
bottom: "5%"
},
series: [
{
data: [],
type: "pie",
center: ["50%", "50%"],
label: {
formatter: "{d}%"
}
}
]
},
getChgRateStr: utils_util.getChgRateStr,
getNumStr: utils_util.getNumStr
};
},
props: {
stockInfo: Object,
financialMetricsInfo: Object,
barCategoryList: Array,
barList: Array,
lineList: Array,
//折线图数据
productClassificationList: Array
},
watch: {
barCategoryList(newValue) {
this.option1.xAxis.data = newValue;
},
barList(newValue) {
this.option1.series[0].data = newValue;
this.barLineInit();
},
lineList(newValue) {
this.option1.series[1].data = newValue;
this.barLineInit();
},
productClassificationList(newValue) {
let data = newValue[0].products;
this.option2.title.text = "主营业务构成(" + newValue[0].report_type + "";
let pieList = [];
for (let item of data) {
pieList.push({
name: item.content,
value: item.revenue_ratio.toFixed(2)
});
}
this.option2.series[0].data = pieList;
this.pieInit();
}
},
methods: {
/**
* 柱状图,折线图初始化
*/
async barLineInit() {
const chart = await this.$refs.chartRef1.init(echarts);
let that = this;
setTimeout(function() {
chart.setOption(that.option1);
}, 2e3);
},
/**
* 饼状图初始化
*/
async pieInit() {
const chart = await this.$refs.chartRef2.init(echarts);
let that = this;
setTimeout(function() {
chart.setOption(that.option2);
}, 2e3);
},
/**
* 获取资产负债状态
*/
getDebtStatusText(value) {
if (value < 40)
return { text: "安全", color: "green" };
if (value < 60)
return { text: "适中", color: "gold" };
if (value < 70)
return { text: "偏高", color: "orange" };
return { text: "风险", color: "red" };
},
/**
* 获取营收增长状态
*/
getGrowthStatus(value) {
if (value > 30)
return { text: "高速增长", color: "green" };
if (value > 10)
return { text: "稳健增长", color: "gold" };
if (value > 0)
return { text: "低速增长", color: "orange" };
if (value > -10)
return { text: "小幅下滑", color: "orange" };
return { text: "大幅下滑", color: "red" };
},
/**
* 获取ROE状态
*/
getROEStatus(value) {
if (value > 20)
return { text: "优秀", color: "green" };
if (value > 15)
return { text: "良好", color: "gold" };
if (value > 10)
return { text: "一般", color: "orange" };
return { text: "较低", color: "red" };
},
itemClick(index) {
common_vendor.index.navigateTo({
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
});
}
}
};
if (!Array) {
const _easycom_l_echart2 = common_vendor.resolveComponent("l-echart");
_easycom_l_echart2();
}
const _easycom_l_echart = () => "../../../uni_modules/lime-echart/components/l-echart/l-echart.js";
if (!Math) {
_easycom_l_echart();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: $props.stockInfo
}, $props.stockInfo ? common_vendor.e({
b: common_vendor.t($props.stockInfo.growth_rates.profit_growth ? $data.getChgRateStr($props.stockInfo.growth_rates.profit_growth) + "%" : "-"),
c: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.revenue_growth)),
d: common_vendor.t($props.stockInfo.growth_rates.profit_growth ? $options.getGrowthStatus($props.stockInfo.growth_rates.profit_growth).text : "-"),
e: common_vendor.s("color:" + $options.getGrowthStatus($props.stockInfo.growth_rates.profit_growth).color),
f: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.roe)),
g: common_vendor.t($options.getROEStatus($props.stockInfo.key_metrics.roe).text),
h: common_vendor.s("color: " + $options.getROEStatus($props.stockInfo.key_metrics.roe).color),
i: common_vendor.t($props.stockInfo.key_metrics.net_margin.toFixed(2)),
j: common_vendor.t($props.stockInfo.key_metrics.gross_margin ? $data.getChgRateStr($props.stockInfo.key_metrics.gross_margin) + "%" : "-"),
k: $props.financialMetricsInfo
}, $props.financialMetricsInfo ? {
l: common_vendor.t($props.financialMetricsInfo.solvency.asset_liability_ratio ? $props.financialMetricsInfo.solvency.asset_liability_ratio.toFixed(2) : "-"),
m: common_vendor.t($options.getDebtStatusText($props.financialMetricsInfo.solvency.asset_liability_ratio).text),
n: common_vendor.s("color: " + $options.getDebtStatusText($props.financialMetricsInfo.solvency.asset_liability_ratio).color),
o: common_vendor.t($props.financialMetricsInfo.solvency.current_ratio ? $props.financialMetricsInfo.solvency.current_ratio.toFixed(2) : "-"),
p: common_vendor.t($props.financialMetricsInfo.expense_ratios.rd_expense_ratio)
} : {}) : {}, {
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
}, $props.productClassificationList.length > 0 ? {
v: 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"
};
})
} : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pagesStock/components/zysj-view/zysj-view.js.map

View File

@@ -0,0 +1,5 @@
{
"usingComponents": {
"l-echart": "../../../uni_modules/lime-echart/components/l-echart/l-echart"
}
}

View File

@@ -0,0 +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 File

@@ -0,0 +1,8 @@
.table .item {
font-size: 20rpx;
font-weight: 500;
color: #666666;
}
.table .item.center {
text-align: center;
}