1.30 财务分析部分模块完善,发展历程弹窗完善

This commit is contained in:
尚政杰
2026-01-30 17:53:45 +08:00
parent 5ffaac8fb2
commit 22286f26d9
23 changed files with 967 additions and 209 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

View File

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

View File

@@ -1,10 +1,216 @@
"use strict";
const utils_util = require("../../utils/util.js");
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "cwsj-view",
data() {
return {};
return {
profitabilityIndicatorIndex: 0,
profitIndicatorIndex: 0,
cashFlowIndicatorIndex: 0,
option1: {
legend: {
show: true,
data: ["期间费用", "同比(右)"]
},
grid: {
left: "2%",
right: "2%",
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
rotate: 45,
fontSize: 10
}
},
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: "ROE",
data: [],
yAxisIndex: 0
},
{
type: "line",
name: "同比",
data: [],
yAxisIndex: 1
}
]
},
option2: {
legend: {
show: true,
data: ["经营现金流", "同比(右)"]
},
grid: {
left: "2%",
right: "2%",
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
fontSize: 10,
rotate: 45
}
},
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: "ROE",
data: [],
yAxisIndex: 0
},
{
type: "line",
name: "同比",
data: [],
yAxisIndex: 1
}
]
},
option3: {
legend: {
show: true,
data: ["期间费用", "同比(右)"]
},
grid: {
left: "2%",
right: "2%",
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
rotate: 45,
fontSize: 10
}
},
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: "ROE",
data: [],
yAxisIndex: 0
},
{
type: "line",
name: "同比",
data: [],
yAxisIndex: 1
}
]
},
getNumStr: utils_util.getNumStr
};
},
props: {
financialBalanceList: Array,
//资产负债表
cashFlowList: Array,
//现金流量表
incomeStatementList: Array
//利润表
},
watch: {},
methods: {
/**
* 点击切换现金流量表指标
* @param {Object} index
*/
clickCashFlowIndicatorItem(index) {
if (this.cashFlowIndicatorIndex != index) {
this.cashFlowIndicatorIndex = index;
}
},
/**
* 点击切换利润表指标
* @param {Object} index
*/
clickProfitIndicatorItem(index) {
if (this.profitIndicatorIndex != index) {
this.profitIndicatorIndex = index;
}
}
}
};
if (!Array) {
@@ -16,53 +222,59 @@ if (!Math) {
_easycom_l_echart();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
return common_vendor.e({
a: common_assets._imports_0$8,
b: common_assets._imports_1$2,
c: common_vendor.f(["货币资金", "所有者权益", "关键指标"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
b: common_vendor.n("item flexCenter " + ($data.cashFlowIndicatorIndex == index ? "select" : "")),
c: index
};
}),
d: common_assets._imports_2$14,
e: common_assets._imports_3$13,
f: common_vendor.o(($event) => _ctx.itemClick(0)),
g: common_assets._imports_0$8,
h: common_assets._imports_1$2,
i: common_vendor.f(["经营现金流", "筹资现金流", "投资现金流"], (item, index, i0) => {
f: common_vendor.sr("chartRef1", "63ca7cac-0"),
g: $props.financialBalanceList.length > 0
}, $props.financialBalanceList.length > 0 ? {
h: common_vendor.t($data.getNumStr($props.financialBalanceList[0].assets.total)),
i: common_vendor.t($data.getNumStr($props.financialBalanceList[0].liabilities.total)),
j: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.total)),
k: common_vendor.t($data.getNumStr($props.financialBalanceList[0].assets.current_assets.cash)),
l: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.capital_reserve)),
m: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.surplus_reserve)),
n: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.undistributed_profit))
} : {}, {
o: common_vendor.o(($event) => _ctx.itemClick(0)),
p: common_assets._imports_0$8,
q: common_assets._imports_1$2,
r: common_vendor.f(["经营现金流", "筹资现金流", "投资现金流"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
b: common_vendor.n("item flexCenter " + ($data.cashFlowIndicatorIndex == index ? "select" : "")),
c: index,
d: common_vendor.o(($event) => $options.clickCashFlowIndicatorItem(index), index)
};
}),
j: common_assets._imports_2$14,
k: common_assets._imports_3$13,
l: common_vendor.o(($event) => _ctx.itemClick(1)),
m: common_assets._imports_0$8,
n: common_assets._imports_1$2,
o: common_vendor.f(["净利润", "营业收入", "期间费用"], (item, index, i0) => {
s: common_assets._imports_2$14,
t: common_assets._imports_3$13,
v: common_vendor.sr("chartRef2", "63ca7cac-1"),
w: common_assets._imports_0$8,
x: common_assets._imports_1$2,
y: common_vendor.f(["净利润", "营业收入", "期间费用"], (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index == 0 ? "#BB8520" : "#999999",
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
e: index
b: common_vendor.n("item flexCenter " + ($data.profitIndicatorIndex == index ? "select" : "")),
c: index,
d: common_vendor.o(($event) => $options.clickProfitIndicatorItem(index), index)
};
}),
p: common_assets._imports_2$14,
q: common_assets._imports_3$13,
r: common_assets._imports_2$14,
s: common_assets._imports_3$13,
t: common_vendor.sr("chartRef1", "63ca7cac-0"),
v: common_vendor.o(($event) => _ctx.itemClick(2))
};
z: common_assets._imports_2$14,
A: common_assets._imports_3$13,
B: common_assets._imports_2$14,
C: common_assets._imports_3$13,
D: common_vendor.sr("chartRef3", "63ca7cac-2")
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
.indicatorC .item {
padding: 10rpx;
border: 1rpx solid #D2D2D2;
font-size: 20rpx;
color: #999999;
text-align: center;
}
.indicatorC .item.select {
background-color: #FFFAF1;
color: #BB8520;
border: 1rpx solid #F2C369;
}

View File

@@ -18,8 +18,8 @@ const _sfc_main = {
//发展时间线数组
},
methods: {
clickAction() {
this.$emit("detail");
clickAction(item) {
this.$emit("detail", item);
}
}
};
@@ -94,7 +94,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
k: `${item.impact_metrics.impact_score}%`,
l: common_vendor.t(item.impact_metrics.impact_score),
m: index,
n: common_vendor.o((...args) => $options.clickAction && $options.clickAction(...args), index)
n: common_vendor.o(($event) => $options.clickAction(item), index)
});
})
});

View File

@@ -95,6 +95,7 @@ const _sfc_main = {
},
props: {
stockInfo: Object,
financialMetricsInfo: Object,
barCategoryList: Array,
barList: Array,
lineList: Array,
@@ -148,6 +149,18 @@ const _sfc_main = {
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" };
},
itemClick(index) {
common_vendor.index.navigateTo({
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
@@ -166,16 +179,23 @@ if (!Math) {
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: $props.stockInfo
}, $props.stockInfo ? {
}, $props.stockInfo ? common_vendor.e({
b: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.profit_growth)),
c: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.revenue_growth)),
d: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.roe)),
e: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.net_margin)),
f: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.gross_margin))
} : {}, {
g: common_vendor.sr("chartRef1", "cf18d1d4-0"),
h: common_vendor.sr("chartRef2", "cf18d1d4-1"),
i: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
f: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.gross_margin)),
g: $props.financialMetricsInfo
}, $props.financialMetricsInfo ? {
h: common_vendor.t($props.financialMetricsInfo.solvency.asset_liability_ratio),
i: common_vendor.t($options.getDebtStatusText($props.financialMetricsInfo.solvency.asset_liability_ratio).text),
j: common_vendor.s("color: " + $options.getDebtStatusText($props.financialMetricsInfo.solvency.asset_liability_ratio).color),
k: common_vendor.t($props.financialMetricsInfo.solvency.current_ratio),
l: common_vendor.t($props.financialMetricsInfo.expense_ratios.rd_expense_ratio)
} : {}) : {}, {
m: common_vendor.sr("chartRef1", "cf18d1d4-0"),
n: common_vendor.sr("chartRef2", "cf18d1d4-1"),
o: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item),
b: ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0
@@ -187,9 +207,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
f: index == 0 ? "flex-start" : "center"
});
}),
j: $props.productClassificationList.length > 0
p: $props.productClassificationList.length > 0
}, $props.productClassificationList.length > 0 ? {
k: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
q: 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)),

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="color:#F59B38">(稳健增长)</text></view></view></view><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:#F59B38;font-size:30rpx">{{d}}%</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="color:#F59B38">良好</text><text style="margin-left:10rpx">净利率 {{e}}%|毛利率 {{f}}%</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:#EC3440;font-size:30rpx">93.52%</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="color:#EC3440">风险</text><text style="margin-left:10rpx">流动比率 0.73|研发费用率 5.48%</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="cf18d1d4-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="cf18d1d4-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="{{i}}" wx:for-item="item" style="{{'display:flex;align-items:center;justify-content:center;flex-direction:column' + ';' + ('text-align:' + item.e + ';' + ('align-items:' + item.f))}}"><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="{{j}}"><view wx:for="{{k}}" 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="color:#F59B38">(稳健增长)</text></view></view></view><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:#F59B38;font-size:30rpx">{{d}}%</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="color:#F59B38">良好</text><text style="margin-left:10rpx">净利率 {{e}}%|毛利率 {{f}}%</text></view></view></view><view wx:if="{{g}}" 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">{{h}}%</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="{{j}}">{{i}}</text><text style="margin-left:10rpx">流动比率 {{k}}|研发费用率 {{l}}%</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="cf18d1d4-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="cf18d1d4-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="{{o}}" wx:for-item="item" style="{{'display:flex;align-items:center;justify-content:center;flex-direction:column' + ';' + ('text-align:' + item.e + ';' + ('align-items:' + item.f))}}"><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="{{p}}"><view wx:for="{{q}}" 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

@@ -180,6 +180,7 @@ const _sfc_main = {
//发展时间线统计信息
timelineList: [],
//发展时间线
selectDevelopmentTimelineInfo: null,
caiWuList: [
{
title: "主营数据"
@@ -204,6 +205,12 @@ const _sfc_main = {
//主营业务折线图数据
productClassificationList: [],
//主营业务产业分类数据
financialBalanceList: [],
//资产负债表
cashFlowList: [],
//现金流量表
incomeStatementList: [],
//利润表
dongTaiList: [
{
title: "新闻动态"
@@ -285,6 +292,7 @@ const _sfc_main = {
} else if (index == 2) {
this.getFinancialStockInfoData();
this.getFinancialComparisonData();
this.getFinancialMetricsData();
this.getFinancialMainBussinessData();
} else if (index == 3) {
this.getNewsListData();
@@ -326,8 +334,14 @@ const _sfc_main = {
clickCaiWuItem(index) {
if (this.selectCaiwu != index) {
this.selectCaiwu = index;
if (index == 1) {
if (index == 0) {
this.getFinancialMetricsData();
} else if (index == 1) {
this.getFinancialMetricsData();
} else if (index == 2) {
this.getFinancialBalanceSheetData();
this.getCashFlowSheetData();
this.getIncomeStatementSheetData();
}
}
},
@@ -357,12 +371,15 @@ const _sfc_main = {
clickCloseIndustryRankPop() {
this.$refs["industryRankPop"].close();
},
detailShow(type) {
if (type == 0) {
this.$refs["detailPopup"].open();
} else {
this.$refs["detailInfoPopup"].open();
}
/**
* 查看发展时间线详情
*/
clickDevelopmentTimelineDetail(item) {
this.selectDevelopmentTimelineInfo = item;
this.$refs["developmentTimelinePopup"].open();
},
clickCloseDevelopmentTimelinePopup() {
this.$refs["developmentTimelinePopup"].close();
},
/**
* 查看产业链详情
@@ -375,7 +392,7 @@ const _sfc_main = {
/**
* 关闭产业链弹窗
*/
clickCloseValueChainPop() {
clickCloseValueChainPopup() {
this.$refs["valueChainPopup"].close();
},
/**
@@ -692,6 +709,48 @@ const _sfc_main = {
}).catch((error) => {
});
},
/**
* 获取资产负债表数据
*/
getFinancialBalanceSheetData() {
let code = this.stockCode;
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code;
}
let param = { limit: 8 };
request_api.financialBalanceSheet(code, param).then((res) => {
this.financialBalanceList = res.data;
}).catch((error) => {
});
},
/**
* 获取现金流量表数据
*/
getCashFlowSheetData() {
let code = this.stockCode;
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code;
}
let param = { limit: 8 };
request_api.cashflowSheet(code, param).then((res) => {
this.cashFlowList = res.data;
}).catch((error) => {
});
},
/**
* 获取利润表数据
*/
getIncomeStatementSheetData() {
let code = this.stockCode;
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code;
}
let param = { limit: 8 };
request_api.incomeStatementSheet(code, param).then((res) => {
this.incomeStatementList = res.data;
}).catch((error) => {
});
},
/**
* 获取新闻动态数据
*/
@@ -925,7 +984,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
} : {}, {
ax: $data.selectInDepthAnalysis == 3
}, $data.selectInDepthAnalysis == 3 ? {
ay: common_vendor.o(($event) => $options.detailShow(1)),
ay: common_vendor.o($options.clickDevelopmentTimelineDetail),
az: common_vendor.p({
keyFactorsInfo: $data.keyFactorsInfo,
keyFactorsList: $data.keyFactorsList,
@@ -950,7 +1009,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
barCategoryList: $data.mainBussinessBarCategoryList,
barList: $data.mainBussinessBarList,
lineList: $data.mainBussinessLineList,
productClassificationList: $data.productClassificationList
productClassificationList: $data.productClassificationList,
financialMetricsInfo: $data.financialMetricsList[0]
})
} : {}, {
aE: $data.selectCaiwu == 1
@@ -960,10 +1020,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
})
} : {}, {
aG: $data.selectCaiwu == 2
}, $data.selectCaiwu == 2 ? {} : {}) : {}, {
aH: $data.selectTab == 3
}, $data.selectCaiwu == 2 ? {
aH: common_vendor.p({
financialBalanceList: $data.financialBalanceList,
cashFlowList: $data.cashFlowList,
incomeStatementList: $data.incomeStatementList
})
} : {}) : {}, {
aI: $data.selectTab == 3
}, $data.selectTab == 3 ? {
aI: common_vendor.f($data.dongTaiList, (item, index, i0) => {
aJ: common_vendor.f($data.dongTaiList, (item, index, i0) => {
return {
a: common_vendor.t(item.title),
b: common_vendor.n("item " + ($data.selectDongtai == index ? "select" : "")),
@@ -971,24 +1037,24 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_vendor.o(($event) => $options.clickDongTaiItem(index), index)
};
}),
aJ: common_vendor.p({
aK: common_vendor.p({
type: $data.selectDongtai,
newsList: $data.newsList,
announcementList: $data.companyAnnouncementList
})
} : {}, {
aK: common_vendor.s("top:" + $data.contentTop + "px;"),
aL: common_vendor.o(($event) => _ctx.sendEventComment()),
aM: _ctx.eventComment,
aN: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value),
aO: common_assets._imports_2$10,
aP: common_assets._imports_3$10,
aQ: common_vendor.o(($event) => $options.clickOptional()),
aR: common_assets._imports_4$9,
aS: common_vendor.o(($event) => $options.clickShare()),
aT: common_assets._imports_9$1,
aU: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()),
aV: common_vendor.f($data.industryRankList, (item, index, i0) => {
aL: common_vendor.s("top:" + $data.contentTop + "px;"),
aM: common_vendor.o(($event) => _ctx.sendEventComment()),
aN: _ctx.eventComment,
aO: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value),
aP: common_assets._imports_2$10,
aQ: common_assets._imports_3$10,
aR: common_vendor.o(($event) => $options.clickOptional()),
aS: common_assets._imports_4$9,
aT: common_vendor.o(($event) => $options.clickShare()),
aU: common_assets._imports_9$1,
aV: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()),
aW: common_vendor.f($data.industryRankList, (item, index, i0) => {
return {
a: common_vendor.f(item.rankings, (ritem, rindex, i1) => {
return common_vendor.e({
@@ -1085,68 +1151,68 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
c: index
};
}),
aW: common_assets._imports_1$13,
aX: common_vendor.sr("industryRankPop", "817d6950-13"),
aY: common_vendor.p({
aX: common_assets._imports_1$13,
aY: common_vendor.sr("industryRankPop", "817d6950-13"),
aZ: common_vendor.p({
type: "bottom"
}),
aZ: common_assets._imports_9$1,
ba: common_vendor.o(($event) => $options.clickCloseValueChainPop()),
bb: $data.selectValueChainInfo
ba: common_assets._imports_9$1,
bb: common_vendor.o(($event) => $options.clickCloseValueChainPopup()),
bc: $data.selectValueChainInfo
}, $data.selectValueChainInfo ? common_vendor.e({
bc: common_vendor.t($data.selectValueChainInfo.node_name),
bd: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
bd: common_vendor.t($data.selectValueChainInfo.node_name),
be: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
be: common_vendor.t($data.selectValueChainInfo.node_type)
bf: common_vendor.t($data.selectValueChainInfo.node_type)
} : {}, {
bf: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
bg: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
bg: common_vendor.t($data.selectValueChainInfo.market_share)
bh: common_vendor.t($data.selectValueChainInfo.market_share)
} : {}, {
bh: $data.selectValueChainInfo.node_level == 0
bi: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
bi: common_vendor.t($data.selectValueChainInfo.node_type)
bj: common_vendor.t($data.selectValueChainInfo.node_type)
} : {}, {
bj: $data.selectValueChainInfo.node_level == 0
bk: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
bk: common_vendor.t($data.selectValueChainInfo.market_share)
bl: common_vendor.t($data.selectValueChainInfo.market_share)
} : {}, {
bl: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
bm: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
bm: common_vendor.t($data.selectValueChainInfo.node_type)
bn: common_vendor.t($data.selectValueChainInfo.node_type)
} : {}, {
bn: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
bo: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
bo: common_vendor.t($data.selectValueChainInfo.market_share)
bp: common_vendor.t($data.selectValueChainInfo.market_share)
} : {}, {
bp: common_vendor.t($data.selectValueChainInfo.node_description),
bq: common_vendor.t($data.selectValueChainInfo.importance_score),
br: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
bq: common_vendor.t($data.selectValueChainInfo.node_description),
br: common_vendor.t($data.selectValueChainInfo.importance_score),
bs: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
bs: common_vendor.s("width:" + ($data.selectValueChainInfo.importance_score ? $data.selectValueChainInfo.importance_score : 0) + "%;")
bt: common_vendor.s("width:" + ($data.selectValueChainInfo.importance_score ? $data.selectValueChainInfo.importance_score : 0) + "%;")
} : {}, {
bt: $data.selectValueChainInfo.node_level == 0
bv: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
bv: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
bw: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
} : {}, {
bw: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
bx: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
bx: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
by: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
} : {}, {
by: common_vendor.t($data.selectValueChainInfo.dependency_degree),
bz: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
bz: common_vendor.t($data.selectValueChainInfo.dependency_degree),
bA: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
bA: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
bB: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
} : {}, {
bB: $data.selectValueChainInfo.node_level == 0
bC: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
bC: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
bD: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
} : {}, {
bD: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
bE: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
bE: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
bF: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
} : {}, {
bF: common_vendor.f($data.relatedCompanyList, (item, index, i0) => {
bG: common_vendor.f($data.relatedCompanyList, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.stock_name),
b: common_vendor.t(item.stock_code),
@@ -1161,14 +1227,27 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
});
})
}) : {}, {
bG: common_vendor.sr("valueChainPopup", "817d6950-14"),
bH: common_vendor.p({
bH: common_vendor.sr("valueChainPopup", "817d6950-14"),
bI: common_vendor.p({
type: "bottom",
safeArea: false
}),
bI: common_assets._imports_9$1,
bJ: common_vendor.sr("detailInfoPopup", "817d6950-15"),
bK: common_vendor.p({
bJ: common_assets._imports_9$1,
bK: common_vendor.o(($event) => $options.clickCloseDevelopmentTimelinePopup()),
bL: $data.selectDevelopmentTimelineInfo
}, $data.selectDevelopmentTimelineInfo ? {
bM: common_vendor.t($data.selectDevelopmentTimelineInfo.event_title),
bN: common_vendor.t($data.selectDevelopmentTimelineInfo.event_type),
bO: common_vendor.n("eventType " + ($data.selectDevelopmentTimelineInfo.impact_metrics.is_positive == 1 ? "positive" : "negative")),
bP: common_vendor.t($data.selectDevelopmentTimelineInfo.event_date),
bQ: common_vendor.t($data.selectDevelopmentTimelineInfo.event_desc),
bR: common_vendor.t($data.selectDevelopmentTimelineInfo.related_info.financial_impact),
bS: common_vendor.n("progress " + ($data.selectDevelopmentTimelineInfo.impact_metrics.is_positive == 1 ? "positive" : "negative")),
bT: common_vendor.s("width: " + $data.selectDevelopmentTimelineInfo.impact_metrics.impact_score + "%;"),
bU: common_vendor.t($data.selectDevelopmentTimelineInfo.impact_metrics.impact_score)
} : {}, {
bV: common_vendor.sr("developmentTimelinePopup", "817d6950-15"),
bW: common_vendor.p({
type: "bottom",
safeArea: false
})

File diff suppressed because one or more lines are too long

View File

@@ -473,3 +473,62 @@ page {
.valueChainPopup .valueChainInfoC .progressBgC .progress.downstream {
background: linear-gradient(90deg, #48D394 0%, #1DB26F 100%);
}
.developmentTimelinePopup {
background-color: white;
border-radius: 20rpx 20rpx 0 0;
}
.developmentTimelinePopup .popTitle {
margin: 0 20rpx;
line-height: 100rpx;
border-bottom: solid 1rpx #E7E7E7;
font-size: 35rpx;
font-weight: bold;
color: #333;
text-align: center;
}
.developmentTimelinePopup .closeC {
top: 0;
right: 0;
padding: 40rpx 26rpx;
}
.developmentTimelinePopup .closeC .icon {
display: block;
width: 20rpx;
height: auto;
}
.developmentTimelinePopup .eventTypeDateC .eventType {
margin-right: 17rpx;
font-size: 20;
border-radius: 5rpx;
line-height: 40rpx;
padding: 0 10rpx;
}
.developmentTimelinePopup .eventTypeDateC .eventType.positive {
background-color: #FFE7E9;
color: #EC3440;
}
.developmentTimelinePopup .eventTypeDateC .eventType.negative {
background-color: #DEEED6;
color: #345423;
}
.developmentTimelinePopup .eventTypeDateC .date {
font-size: 22rpx;
color: #999;
}
.developmentTimelinePopup .progressBgC {
background-color: #EFEFEF;
margin-left: 13rpx;
width: 200rpx;
height: 10rpx;
border-radius: 5rpx;
}
.developmentTimelinePopup .progressBgC .progress {
height: 100%;
border-radius: 5rpx;
}
.developmentTimelinePopup .progressBgC .progress.positive {
background: linear-gradient(90deg, #FF525D 0%, #EC3440 100%);
}
.developmentTimelinePopup .progressBgC .progress.negative {
background: linear-gradient(90deg, #537D3D 0%, #345423 100%);
}

View File

@@ -48,6 +48,9 @@ const financialStockInfo = (code) => request_http.get("/api/financial/stock-info
const financialMetrics = (code, param) => request_http.get("/api/financial/financial-metrics/" + code, param, true);
const financialComparison = (code, param) => request_http.get("/api/financial/comparison/" + code, param, true);
const financialMainBusiness = (code, param) => request_http.get("/api/financial/main-business/" + code, param, true);
const financialBalanceSheet = (code, param) => request_http.get("/api/financial/balance-sheet/" + code, param, true);
const cashflowSheet = (code, param) => request_http.get("/api/financial/cashflow/" + code, param, true);
const incomeStatementSheet = (code, param) => request_http.get("/api/financial/income-statement/" + code, param, true);
const companyAnnouncementsList = (code, param) => request_http.get("/api/stock/" + code + "/announcements", param, true);
const userInfo = (param) => request_http.get("/api/user/profile", param);
const membershipStatus = (param) => request_http.get("/api/membership/status", param);
@@ -70,6 +73,7 @@ exports.calendarCombinedData = calendarCombinedData;
exports.calendarDataList = calendarDataList;
exports.calendarEventCount = calendarEventCount;
exports.calendarEventList = calendarEventList;
exports.cashflowSheet = cashflowSheet;
exports.commentEvent = commentEvent;
exports.companyAnnouncementsList = companyAnnouncementsList;
exports.comprehensiveAnalysis = comprehensiveAnalysis;
@@ -86,12 +90,14 @@ exports.eventRelatedConcept = eventRelatedConcept;
exports.eventRelatedStock = eventRelatedStock;
exports.feedback = feedback;
exports.filterOptions = filterOptions;
exports.financialBalanceSheet = financialBalanceSheet;
exports.financialComparison = financialComparison;
exports.financialMainBusiness = financialMainBusiness;
exports.financialMetrics = financialMetrics;
exports.financialStockInfo = financialStockInfo;
exports.followEvent = followEvent;
exports.homeData = homeData;
exports.incomeStatementSheet = incomeStatementSheet;
exports.industryCategoryList = industryCategoryList;
exports.industryRankList = industryRankList;
exports.investEventDetails = investEventDetails;