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

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;
}