Files

278 lines
8.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"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" };
},
/**
* 遍历数组找出对应的营收
* @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}`
});
}
}
};
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: $props.productClassificationList.length > 0
}, $props.productClassificationList.length > 0 ? {
t: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
return {
a: common_vendor.t(item.content),
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
};
})
} : {});
}
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