2.5 主营业务明细与历史对比表完善,增加非会员弹窗跳转,调整会员页面文字,财务数据模块单季度增加总值展示
@@ -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 {
|
||||
|
||||
@@ -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]]);
|
||||
|
||||
@@ -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>
|
||||
@@ -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
|
||||
}, {
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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
|
||||
} : {}, {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
};
|
||||
})
|
||||
} : {});
|
||||
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
BIN
unpackage/dist/dev/mp-weixin/pagesStock/static/icon/all-icon-6.png
vendored
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
unpackage/dist/dev/mp-weixin/pagesStock/static/icon/all-icon-7.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
unpackage/dist/dev/mp-weixin/pagesStock/static/icon/all-icon-8.png
vendored
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
unpackage/dist/dev/mp-weixin/pagesStock/static/icon/all-icon-9.png
vendored
Normal file
|
After Width: | Height: | Size: 698 B |
BIN
unpackage/dist/dev/mp-weixin/pagesStock/static/icon/first-icon.png
vendored
Normal file
|
After Width: | Height: | Size: 717 B |
BIN
unpackage/dist/dev/mp-weixin/pagesStock/static/icon/first-icon1.png
vendored
Normal file
|
After Width: | Height: | Size: 701 B |
BIN
unpackage/dist/dev/mp-weixin/pagesStock/static/icon/first-icon2.png
vendored
Normal file
|
After Width: | Height: | Size: 400 B |
@@ -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]]);
|
||||
|
||||
@@ -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>
|
||||
@@ -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({
|
||||
|
||||
@@ -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;")
|
||||
};
|
||||
}
|
||||
|
||||