1.28 完善主营业务模块表格,柱状图,饼状图
This commit is contained in:
@@ -8,7 +8,6 @@
|
|||||||
<image src="/static/icon/home/conceptCenter/next.png" mode="widthFix"
|
<image src="/static/icon/home/conceptCenter/next.png" mode="widthFix"
|
||||||
style="width: 13rpx; height: 22rpx;"></image>
|
style="width: 13rpx; height: 22rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(4, 1fr); margin: 0 20rpx;">
|
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(4, 1fr); margin: 0 20rpx;">
|
||||||
<view
|
<view
|
||||||
style="display: flex; align-items: center; justify-content: center; text-align: center; font-size: 20rpx; color: #999999; border: 1rpx solid #D2D2D2; padding: 3rpx 5rpx; box-sizing: border-box;"
|
style="display: flex; align-items: center; justify-content: center; text-align: center; font-size: 20rpx; color: #999999; border: 1rpx solid #D2D2D2; padding: 3rpx 5rpx; box-sizing: border-box;"
|
||||||
@@ -18,14 +17,13 @@
|
|||||||
{{item}}
|
{{item}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="flex" style="padding: 20rpx; box-sizing: border-box;">
|
||||||
<view style="display: flex;align-items: center; padding: 20rpx; box-sizing: border-box;">
|
|
||||||
<view class="flex1" style="font-size: 28rpx;">查看详细数据</view>
|
<view class="flex1" style="font-size: 28rpx;">查看详细数据</view>
|
||||||
<view
|
<view
|
||||||
style="color: #F2C369; font-size: 22rpx; padding: 2rpx 10rpx; border-radius: 5rpx; border: 1rpx solid #F2C369; text-align: center; margin: 0 10rpx;">
|
style="color: #F2C369; font-size: 22rpx; padding: 2rpx 10rpx; border-radius: 5rpx; border: 1rpx solid #F2C369; text-align: center; margin: 0 10rpx;">
|
||||||
单季度</view>
|
单季度</view>
|
||||||
<view
|
<view class="flex"
|
||||||
style="display: flex; align-items: center; padding: 3rpx 10rpx; box-sizing: border-box; border: 1rpx solid #D2D2D2;">
|
style="padding: 3rpx 10rpx;border: 1rpx solid #D2D2D2;">
|
||||||
<image style="width: 23rpx; height: 23rpx;" src="/pagesStock/static/icon/all-icon.png"
|
<image style="width: 23rpx; height: 23rpx;" src="/pagesStock/static/icon/all-icon.png"
|
||||||
mode="widthFix"></image>
|
mode="widthFix"></image>
|
||||||
<view style="margin: 0 10rpx; color: #999999; font-size: 22rpx;">全部</view>
|
<view style="margin: 0 10rpx; color: #999999; font-size: 22rpx;">全部</view>
|
||||||
@@ -34,9 +32,9 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view
|
<view style="height: 500rpx;">
|
||||||
style="height: 400rpx; display: flex; align-items: center; justify-content: center; background-color: red;">
|
<l-echart ref="chartRef1"></l-echart>
|
||||||
柱状图占位 </view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -73,10 +71,9 @@
|
|||||||
mode="widthFix"></image>
|
mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view style="height: 500rpx;">
|
||||||
<view
|
<l-echart ref="chartRef2"></l-echart>
|
||||||
style="height: 400rpx; display: flex; align-items: center; justify-content: center; background-color: blue;">
|
</view>
|
||||||
柱状图占位 </view>
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -87,8 +84,74 @@
|
|||||||
name:"cwfx-view",
|
name:"cwfx-view",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
option1:{
|
||||||
|
legend:{
|
||||||
|
show:true,
|
||||||
|
data:['ROE','同比(右)']
|
||||||
|
},
|
||||||
|
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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
barCategoryList1:Array,
|
||||||
|
barList1:Array,
|
||||||
|
lineList:Array, //折线图数据
|
||||||
|
barCategoryList1:Array,
|
||||||
|
barList1:Array,
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
clickProfitabilityIndicators(item) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -1,68 +1,60 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>
|
<view>
|
||||||
<view class="flex"
|
<block v-if="stockInfo">
|
||||||
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 class="flex"
|
||||||
<view style="width: 195rpx;">
|
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="font-weight: bold; color: #1DB26F; font-size: 30rpx;">+12.50%</view>
|
<view style="width: 195rpx;">
|
||||||
<view style="margin-top: 10rpx;">利润增长</view>
|
<view style="font-weight: bold; color: #1DB26F; font-size: 30rpx;">{{getChgRateStr(stockInfo.growth_rates.profit_growth)}}%</view>
|
||||||
</view>
|
<view style="margin-top: 10rpx;">利润增长</view>
|
||||||
<view>
|
</view>
|
||||||
<view style="display: flex; align-items: center;">
|
<view>
|
||||||
<text
|
<view class="flex">
|
||||||
style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">成长能力</text>
|
<text
|
||||||
<text
|
style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">成长能力</text>
|
||||||
style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">增长动力</text>
|
<text
|
||||||
</view>
|
style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">增长动力</text>
|
||||||
<view style="margin-top: 10rpx;">
|
</view>
|
||||||
<text>营收增长</text>
|
<view style="margin-top: 10rpx;">
|
||||||
<text style="color: #1DB26F; margin: 0 10rpx;">+8.20%</text>
|
<text>营收增长</text>
|
||||||
<text style="color: #F59B38;">(稳健增长)</text>
|
<text style="color: #1DB26F; margin: 0 10rpx;">{{getChgRateStr(stockInfo.growth_rates.revenue_growth)}}%</text>
|
||||||
</view>
|
<text style="color: #F59B38;">(稳健增长)</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</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;">
|
||||||
style="display: flex; align-items: center; 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="width: 195rpx;">
|
<view style="font-weight: bold; color: #F59B38; font-size: 30rpx;">{{getChgRateStr(stockInfo.key_metrics.roe)}}%</view>
|
||||||
<view style="font-weight: bold; color: #F59B38; font-size: 30rpx;">16.23%</view>
|
<view style="margin-top: 10rpx;">ROE</view>
|
||||||
<view style="margin-top: 10rpx;">ROE</view>
|
</view>
|
||||||
</view>
|
<view>
|
||||||
|
<view class="flex">
|
||||||
<view>
|
<text style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">盈利与回报</text>
|
||||||
<view style="display: flex; align-items: center;">
|
<text style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">赚钱能力</text>
|
||||||
<text
|
</view>
|
||||||
style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">盈利与回报</text>
|
<view style="margin-top: 10rpx;">
|
||||||
<text
|
<text style="color: #F59B38;">良好</text>
|
||||||
style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">赚钱能力</text>
|
<text style="margin-left: 10rpx;">净利率 {{getChgRateStr(stockInfo.key_metrics.net_margin)}}%|毛利率 {{getChgRateStr(stockInfo.key_metrics.gross_margin)}}%</text>
|
||||||
</view>
|
</view>
|
||||||
<view style="margin-top: 10rpx;">
|
</view>
|
||||||
<text style="color: #F59B38;">良好</text>
|
</view>
|
||||||
<text style="margin-left: 10rpx;">净利率 32.56%|毛利率 71.92%</text>
|
<view class="flex"
|
||||||
</view>
|
style="font-size: 22rpx; color: #999999; font-weight: 500; margin: 20rpx; padding: 20rpx;border: 1rpx solid #F5F5F5; border-radius: 10rpx;">
|
||||||
</view>
|
<view style="width: 195rpx;">
|
||||||
</view>
|
<view style="font-weight: bold; color: #EC3440; font-size: 30rpx;">93.52%</view>
|
||||||
|
<view style="margin-top: 10rpx;">资产负债率</view>
|
||||||
<view class="flex"
|
</view>
|
||||||
style="display: flex; align-items: center; font-size: 22rpx; color: #999999; font-weight: 500; margin: 20rpx; padding: 20rpx; box-sizing: border-box ;border: 1rpx solid #F5F5F5; border-radius: 10rpx;">
|
<view>
|
||||||
<view style="width: 195rpx;">
|
<view class="flex">
|
||||||
<view style="font-weight: bold; color: #EC3440; font-size: 30rpx;">93.52%</view>
|
<text style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">风险与运营</text>
|
||||||
<view style="margin-top: 10rpx;">资产负债率</view>
|
<text style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">安全边际</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view style="margin-top: 10rpx;">
|
||||||
<view>
|
<text style="color: #EC3440;">风险</text>
|
||||||
<view style="display: flex; align-items: center;">
|
<text style="margin-left: 10rpx;">流动比率 0.73|研发费用率 5.48%</text>
|
||||||
<text
|
</view>
|
||||||
style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">风险与运营</text>
|
</view>
|
||||||
<text
|
</view>
|
||||||
style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">安全边际</text>
|
</block>
|
||||||
</view>
|
|
||||||
<view style="margin-top: 10rpx;">
|
|
||||||
<text style="color: #EC3440;">风险</text>
|
|
||||||
<text style="margin-left: 10rpx;">流动比率 0.73|研发费用率 5.48%</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<view style="text-align: center; font-size: 26rpx; color: #2B2B2B; font-weight: bold; margin: 20rpx;">
|
<view style="text-align: center; font-size: 26rpx; color: #2B2B2B; font-weight: bold; margin: 20rpx;">
|
||||||
营收与利润趋势</view>
|
营收与利润趋势</view>
|
||||||
<view style="height: 400rpx;">
|
<view style="height: 400rpx;">
|
||||||
@@ -86,20 +78,25 @@
|
|||||||
{{['', '(2025年中报)', '(2025年中报)', '(2025年中报)', '(2024年年报)'][index]}}
|
{{['', '(2025年中报)', '(2025年中报)', '(2025年中报)', '(2024年年报)'][index]}}
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-for="(item, index) in ['零售金融业务', '批发金融业务', '其他业务']"
|
<block v-if="productClassificationList.length>0">
|
||||||
style="display: grid; grid-template-columns: 130rpx repeat(4, 1fr); color: #666666; font-size: 20rpx; font-weight: 500; margin: 0 20rpx; padding: 10rpx; box-sizing: border-box;"
|
<view class="table" v-for="(item, index) in productClassificationList[0].products" :key="index"
|
||||||
:style="{'background-color': (index % 2 == 0 ? '#FFFFFF' : '#FAFAFC')}">
|
style="display: grid; grid-template-columns: 130rpx repeat(4, 1fr); margin: 0 20rpx; padding: 10rpx;"
|
||||||
<view v-for="(item, index) in [item, '64.53%', '200.57亿', '310.81亿', '712.55亿']"
|
:style="{'background-color': (index % 2 == 0 ? '#FFFFFF' : '#FAFAFC')}">
|
||||||
:style="{'text-align': index == 0 ? 'left' : 'center'}">{{item}}</view>
|
<view class="item">{{item.content}}</view>
|
||||||
</view>
|
<view class="item flexCenter">{{item.profit_margin.toFixed(2)}}%</view>
|
||||||
|
<view class="item flexCenter">{{getNumStr(item.profit)}}</view>
|
||||||
|
<view class="item flexCenter">{{getNumStr(item.revenue)}}</view>
|
||||||
|
<view class="item flexCenter">{{item.content}}</view>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
<view style="height: 80rpx;"></view>
|
<view style="height: 80rpx;"></view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { getChgRateStr, getNumStr } from '@/utils/util.js';
|
||||||
|
|
||||||
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
|
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -107,9 +104,22 @@
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
option1:{
|
option1:{
|
||||||
|
legend:{
|
||||||
|
show:true,
|
||||||
|
data:['营业收入','净利润']
|
||||||
|
},
|
||||||
|
grid:{
|
||||||
|
left:'2%',
|
||||||
|
right:'2%',
|
||||||
|
top:'5%',
|
||||||
|
bottom:'30%'
|
||||||
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: 'category',
|
type: 'category',
|
||||||
data: []
|
data: [],
|
||||||
|
axisLabel:{
|
||||||
|
// interval:0
|
||||||
|
}
|
||||||
},
|
},
|
||||||
yAxis: [{
|
yAxis: [{
|
||||||
type: 'value',
|
type: 'value',
|
||||||
@@ -130,47 +140,66 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
dataZoom:[{
|
||||||
|
type:'slider'
|
||||||
|
}],
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
type: 'bar',
|
type: 'bar',
|
||||||
|
name:'营业收入',
|
||||||
data: [],
|
data: [],
|
||||||
yAxisIndex:0
|
yAxisIndex:0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'line',
|
type: 'line',
|
||||||
|
name:'净利润',
|
||||||
data: [],
|
data: [],
|
||||||
yAxisIndex:1
|
yAxisIndex:1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
option2:{
|
option2:{
|
||||||
xAxis: {
|
title:{
|
||||||
type: 'category',
|
text:'',
|
||||||
data: []
|
textStyle:{
|
||||||
},
|
fontSize:12
|
||||||
yAxis: {
|
}
|
||||||
type: 'value'
|
},
|
||||||
},
|
legend:{
|
||||||
series: [
|
show:true
|
||||||
|
},
|
||||||
|
grid:{
|
||||||
|
left:0,
|
||||||
|
right:0,
|
||||||
|
top:'5%',
|
||||||
|
bottom:'5%'
|
||||||
|
},
|
||||||
|
series: [
|
||||||
{
|
{
|
||||||
data: [120, 200, 150, 80, 70, 110, 130],
|
data: [],
|
||||||
type: 'pie',
|
type: 'pie',
|
||||||
showBackground: true,
|
center:['50%','50%'],
|
||||||
backgroundStyle: {
|
label:{
|
||||||
color: 'rgba(180, 180, 180, 0.2)'
|
formatter:"{d}%"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
getChgRateStr:getChgRateStr,
|
||||||
|
getNumStr:getNumStr
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: { // 0 主营数据 1 财务分析 2 财务数据
|
props: {
|
||||||
type: Number,
|
stockInfo:Object,
|
||||||
barCategoryList:Array,
|
barCategoryList:Array,
|
||||||
barList:Array,
|
barList:Array,
|
||||||
lineList:Array
|
lineList:Array, //折线图数据
|
||||||
|
productClassificationList:Array
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
|
barCategoryList(newValue){
|
||||||
|
this.option1.xAxis.data = newValue
|
||||||
|
},
|
||||||
barList(newValue){
|
barList(newValue){
|
||||||
this.option1.series[0].data = newValue
|
this.option1.series[0].data = newValue
|
||||||
this.barLineInit()
|
this.barLineInit()
|
||||||
@@ -178,7 +207,22 @@
|
|||||||
lineList(newValue){
|
lineList(newValue){
|
||||||
this.option1.series[1].data = newValue
|
this.option1.series[1].data = newValue
|
||||||
this.barLineInit()
|
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: {
|
methods: {
|
||||||
/**
|
/**
|
||||||
@@ -219,5 +263,17 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
|
.table
|
||||||
|
{
|
||||||
|
.item
|
||||||
|
{
|
||||||
|
font-size: 20rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.item.center
|
||||||
|
{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -179,7 +179,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<block v-if="selectCaiwu==0">
|
<block v-if="selectCaiwu==0">
|
||||||
<zysj-view :barCategoryList="mainBussinessBarCategoryList" :barList="mainBussinessBarList" :lineList="mainBussinessLineList" ></zysj-view>
|
<zysj-view :stockInfo="financialStockInfo" :barCategoryList="mainBussinessBarCategoryList" :barList="mainBussinessBarList" :lineList="mainBussinessLineList" :productClassificationList="productClassificationList" ></zysj-view>
|
||||||
</block>
|
</block>
|
||||||
<block v-if="selectCaiwu==1">
|
<block v-if="selectCaiwu==1">
|
||||||
<cwfx-view></cwfx-view>
|
<cwfx-view></cwfx-view>
|
||||||
@@ -355,7 +355,6 @@
|
|||||||
<view v-if="selectValueChainInfo.node_level==1||selectValueChainInfo.node_level==2" class="progress downstream" :style="'width:'+selectValueChainInfo.importance_score+'%;'"></view>
|
<view v-if="selectValueChainInfo.node_level==1||selectValueChainInfo.node_level==2" class="progress downstream" :style="'width:'+selectValueChainInfo.importance_score+'%;'"></view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view>
|
<view>
|
||||||
<view>
|
<view>
|
||||||
<text style="color: #BB8520;">依赖程度</text>
|
<text style="color: #BB8520;">依赖程度</text>
|
||||||
@@ -427,7 +426,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, financialComparison, industryRankList, keyFactorsTimeline, managementTeam, ownershipConcentration, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList, valueChainAnalysis, valueChainRelatedCompany } from '@/request/api'
|
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, financialComparison, financialMainBusiness, financialStockInfo, industryRankList, keyFactorsTimeline, managementTeam, ownershipConcentration, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList, valueChainAnalysis, valueChainRelatedCompany } from '@/request/api'
|
||||||
import { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown, getAgeByBirthYear } from '@/utils/util'
|
import { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown, getAgeByBirthYear } from '@/utils/util'
|
||||||
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
|
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
|
||||||
|
|
||||||
@@ -496,10 +495,10 @@
|
|||||||
], //深度分析分类
|
], //深度分析分类
|
||||||
selectInDepthAnalysis: 0,
|
selectInDepthAnalysis: 0,
|
||||||
qualitativeAnalysisInfo:null, //定性分析
|
qualitativeAnalysisInfo:null, //定性分析
|
||||||
competitivePositionInfo:null, //竞争地位信息
|
competitivePositionInfo:null, //竞争地位信息
|
||||||
mainCompetitorsList:[], //主要竞争对手
|
mainCompetitorsList:[], //主要竞争对手
|
||||||
industryRankInfo:null, //行业排名数据
|
industryRankInfo:null, //行业排名数据
|
||||||
industryRankList:[], //行业排名
|
industryRankList:[], //行业排名
|
||||||
scoreList:[{
|
scoreList:[{
|
||||||
icon:'/pagesStock/static/icon/marketPosition.png',
|
icon:'/pagesStock/static/icon/marketPosition.png',
|
||||||
title:'市场地位',
|
title:'市场地位',
|
||||||
@@ -573,9 +572,11 @@
|
|||||||
}
|
}
|
||||||
], //财务全景分类
|
], //财务全景分类
|
||||||
selectCaiwu: 0,
|
selectCaiwu: 0,
|
||||||
|
financialStockInfo:null,
|
||||||
mainBussinessBarCategoryList:[], //主营业务柱状图,折线图分类
|
mainBussinessBarCategoryList:[], //主营业务柱状图,折线图分类
|
||||||
mainBussinessBarList:[], //主营业务柱状图数据
|
mainBussinessBarList:[], //主营业务柱状图数据
|
||||||
mainBussinessLineList:[], //主营业务折线图数据
|
mainBussinessLineList:[], //主营业务折线图数据
|
||||||
|
productClassificationList:[], //主营业务产业分类数据
|
||||||
dongTaiList: [{
|
dongTaiList: [{
|
||||||
title: '新闻动态'
|
title: '新闻动态'
|
||||||
},
|
},
|
||||||
@@ -629,7 +630,10 @@
|
|||||||
this.getIndustryRankListData()
|
this.getIndustryRankListData()
|
||||||
}
|
}
|
||||||
}else if(index==2) {
|
}else if(index==2) {
|
||||||
|
//获取股票信息数据
|
||||||
|
this.getFinancialStockInfoData()
|
||||||
this.getFinancialComparisonData()
|
this.getFinancialComparisonData()
|
||||||
|
this.getFinancialMainBussinessData()
|
||||||
}else if(index==3) {
|
}else if(index==3) {
|
||||||
//获取新闻动态数据
|
//获取新闻动态数据
|
||||||
this.getNewsListData()
|
this.getNewsListData()
|
||||||
@@ -800,7 +804,6 @@
|
|||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取十大流通股东列表
|
* 获取十大流通股东列表
|
||||||
*/
|
*/
|
||||||
@@ -976,6 +979,18 @@
|
|||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 获取股票信息数据
|
||||||
|
*/
|
||||||
|
getFinancialStockInfoData()
|
||||||
|
{
|
||||||
|
let code = this.stockCode
|
||||||
|
financialStockInfo(code).then(res=>{
|
||||||
|
this.financialStockInfo = res.data
|
||||||
|
}).catch(error=>{
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取财务比较数据
|
* 获取财务比较数据
|
||||||
*/
|
*/
|
||||||
@@ -989,14 +1004,28 @@
|
|||||||
this.mainBussinessBarList = []
|
this.mainBussinessBarList = []
|
||||||
this.mainBussinessLineList = []
|
this.mainBussinessLineList = []
|
||||||
for (let item of data) {
|
for (let item of data) {
|
||||||
this.mainBussinessBarCategoryList.push(item.report_type)
|
this.mainBussinessBarCategoryList.unshift(item.report_type.replace('三季报','Q3'))
|
||||||
this.mainBussinessBarList.push((parseFloat(item.performance.revenue)/100000000).toFixed(2))
|
this.mainBussinessBarList.unshift((parseFloat(item.performance.revenue)/100000000).toFixed(2))
|
||||||
this.mainBussinessLineList.push((parseFloat(item.performance.net_profit)/100000000).toFixed(2))
|
this.mainBussinessLineList.unshift((parseFloat(item.performance.net_profit)/100000000).toFixed(2))
|
||||||
}
|
}
|
||||||
}).catch(error=>{
|
}).catch(error=>{
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 获取财务主营业务数据
|
||||||
|
*/
|
||||||
|
getFinancialMainBussinessData()
|
||||||
|
{
|
||||||
|
let code = this.stockCode
|
||||||
|
let param = {periods:4}
|
||||||
|
financialMainBusiness(code,param).then(res=>{
|
||||||
|
this.productClassificationList = res.data.product_classification
|
||||||
|
|
||||||
|
}).catch(error=>{
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取新闻动态数据
|
* 获取新闻动态数据
|
||||||
*/
|
*/
|
||||||
|
|||||||
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
@@ -4,9 +4,86 @@ const common_assets = require("../../common/assets.js");
|
|||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
name: "cwfx-view",
|
name: "cwfx-view",
|
||||||
data() {
|
data() {
|
||||||
return {};
|
return {
|
||||||
|
option1: {
|
||||||
|
legend: {
|
||||||
|
show: true,
|
||||||
|
data: ["ROE", "同比(右)"]
|
||||||
|
},
|
||||||
|
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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
barCategoryList1: Array,
|
||||||
|
barList1: Array,
|
||||||
|
lineList: Array,
|
||||||
|
//折线图数据
|
||||||
|
barCategoryList1: Array,
|
||||||
|
barList1: Array
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
clickProfitabilityIndicators(item) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
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) {
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
return {
|
return {
|
||||||
a: common_assets._imports_0$8,
|
a: common_assets._imports_0$8,
|
||||||
@@ -22,9 +99,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
}),
|
}),
|
||||||
d: common_assets._imports_2$14,
|
d: common_assets._imports_2$14,
|
||||||
e: common_assets._imports_3$13,
|
e: common_assets._imports_3$13,
|
||||||
f: common_assets._imports_4$12,
|
f: common_vendor.sr("chartRef1", "3746da36-0"),
|
||||||
g: common_assets._imports_1$2,
|
g: common_assets._imports_4$12,
|
||||||
h: common_vendor.f(["每股收益(EPS)", "基本每股收益", "稀释每股收益", "扣非每股收益", "每股净资产", "每股经营现金流", "每股资本公积", "每股未分配利润"], (item, index, i0) => {
|
h: common_assets._imports_1$2,
|
||||||
|
i: common_vendor.f(["每股收益(EPS)", "基本每股收益", "稀释每股收益", "扣非每股收益", "每股净资产", "每股经营现金流", "每股资本公积", "每股未分配利润"], (item, index, i0) => {
|
||||||
return {
|
return {
|
||||||
a: common_vendor.t(item),
|
a: common_vendor.t(item),
|
||||||
b: index == 0 ? "#BB8520" : "#999999",
|
b: index == 0 ? "#BB8520" : "#999999",
|
||||||
@@ -33,8 +111,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
e: index
|
e: index
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
i: common_assets._imports_2$14,
|
j: common_assets._imports_2$14,
|
||||||
j: common_assets._imports_3$13
|
k: common_assets._imports_3$13,
|
||||||
|
l: common_vendor.sr("chartRef2", "3746da36-1")
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
"component": true,
|
"component": true,
|
||||||
"usingComponents": {}
|
"usingComponents": {
|
||||||
|
"l-echart": "../../uni_modules/lime-echart/components/l-echart/l-echart"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
<view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{a}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">盈利能力</view><image src="{{b}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{c}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view style="display:flex;align-items:center;padding:3rpx 10rpx;box-sizing:border-box;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{d}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{e}}" mode="widthFix"></image></view></view><view style="height:400rpx;display:flex;align-items:center;justify-content:center;background-color:red"> 柱状图占位 </view></view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{f}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">每股指标</view><image src="{{g}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{h}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view style="display:flex;align-items:center;padding:3rpx 10rpx;box-sizing:border-box;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{i}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{j}}" mode="widthFix"></image></view></view><view style="height:400rpx;display:flex;align-items:center;justify-content:center;background-color:blue"> 柱状图占位 </view></view></view>
|
<view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{a}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">盈利能力</view><image src="{{b}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{c}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view class="flex" style="padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view class="flex" style="padding:3rpx 10rpx;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{d}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{e}}" mode="widthFix"></image></view></view><view style="height:500rpx"><l-echart class="r" u-r="chartRef1" u-i="3746da36-0" bind:__l="__l"></l-echart></view></view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{g}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">每股指标</view><image src="{{h}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{i}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view style="display:flex;align-items:center;padding:3rpx 10rpx;box-sizing:border-box;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{j}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{k}}" mode="widthFix"></image></view></view><view style="height:500rpx"><l-echart class="r" u-r="chartRef2" u-i="3746da36-1" bind:__l="__l"></l-echart></view></view></view>
|
||||||
@@ -1,14 +1,28 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
const common_vendor = require("../../common/vendor.js");
|
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 echarts = require("../../uni_modules/lime-echart/static/echarts.min.js");
|
||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
name: "zysj-view",
|
name: "zysj-view",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
option1: {
|
option1: {
|
||||||
|
legend: {
|
||||||
|
show: true,
|
||||||
|
data: ["营业收入", "净利润"]
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
left: "2%",
|
||||||
|
right: "2%",
|
||||||
|
top: "5%",
|
||||||
|
bottom: "30%"
|
||||||
|
},
|
||||||
xAxis: {
|
xAxis: {
|
||||||
type: "category",
|
type: "category",
|
||||||
data: []
|
data: [],
|
||||||
|
axisLabel: {
|
||||||
|
// interval:0
|
||||||
|
}
|
||||||
},
|
},
|
||||||
yAxis: [
|
yAxis: [
|
||||||
{
|
{
|
||||||
@@ -30,48 +44,67 @@ const _sfc_main = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
dataZoom: [{
|
||||||
|
type: "slider"
|
||||||
|
}],
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
type: "bar",
|
type: "bar",
|
||||||
|
name: "营业收入",
|
||||||
data: [],
|
data: [],
|
||||||
yAxisIndex: 0
|
yAxisIndex: 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: "line",
|
type: "line",
|
||||||
|
name: "净利润",
|
||||||
data: [],
|
data: [],
|
||||||
yAxisIndex: 1
|
yAxisIndex: 1
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
option2: {
|
option2: {
|
||||||
xAxis: {
|
title: {
|
||||||
type: "category",
|
text: "",
|
||||||
data: []
|
textStyle: {
|
||||||
|
fontSize: 12
|
||||||
|
}
|
||||||
},
|
},
|
||||||
yAxis: {
|
legend: {
|
||||||
type: "value"
|
show: true
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
top: "5%",
|
||||||
|
bottom: "5%"
|
||||||
},
|
},
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
data: [120, 200, 150, 80, 70, 110, 130],
|
data: [],
|
||||||
type: "pie",
|
type: "pie",
|
||||||
showBackground: true,
|
center: ["50%", "50%"],
|
||||||
backgroundStyle: {
|
label: {
|
||||||
color: "rgba(180, 180, 180, 0.2)"
|
formatter: "{d}%"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
getChgRateStr: utils_util.getChgRateStr,
|
||||||
|
getNumStr: utils_util.getNumStr
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
// 0 主营数据 1 财务分析 2 财务数据
|
stockInfo: Object,
|
||||||
type: Number,
|
|
||||||
barCategoryList: Array,
|
barCategoryList: Array,
|
||||||
barList: Array,
|
barList: Array,
|
||||||
lineList: Array
|
lineList: Array,
|
||||||
|
//折线图数据
|
||||||
|
productClassificationList: Array
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
barCategoryList(newValue) {
|
||||||
|
this.option1.xAxis.data = newValue;
|
||||||
|
},
|
||||||
barList(newValue) {
|
barList(newValue) {
|
||||||
this.option1.series[0].data = newValue;
|
this.option1.series[0].data = newValue;
|
||||||
this.barLineInit();
|
this.barLineInit();
|
||||||
@@ -79,6 +112,19 @@ const _sfc_main = {
|
|||||||
lineList(newValue) {
|
lineList(newValue) {
|
||||||
this.option1.series[1].data = newValue;
|
this.option1.series[1].data = newValue;
|
||||||
this.barLineInit();
|
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: {
|
methods: {
|
||||||
@@ -118,10 +164,18 @@ if (!Math) {
|
|||||||
_easycom_l_echart();
|
_easycom_l_echart();
|
||||||
}
|
}
|
||||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
return {
|
return common_vendor.e({
|
||||||
a: common_vendor.sr("chartRef1", "cf18d1d4-0"),
|
a: $props.stockInfo
|
||||||
b: common_vendor.sr("chartRef2", "cf18d1d4-1"),
|
}, $props.stockInfo ? {
|
||||||
c: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
|
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) => {
|
||||||
return common_vendor.e({
|
return common_vendor.e({
|
||||||
a: common_vendor.t(item),
|
a: common_vendor.t(item),
|
||||||
b: ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0
|
b: ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0
|
||||||
@@ -133,18 +187,20 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
f: index == 0 ? "flex-start" : "center"
|
f: index == 0 ? "flex-start" : "center"
|
||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
d: common_vendor.f(["零售金融业务", "批发金融业务", "其他业务"], (item, index, i0) => {
|
j: $props.productClassificationList.length > 0
|
||||||
|
}, $props.productClassificationList.length > 0 ? {
|
||||||
|
k: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
|
||||||
return {
|
return {
|
||||||
a: common_vendor.f([item, "64.53%", "200.57亿", "310.81亿", "712.55亿"], (item2, index2, i1) => {
|
a: common_vendor.t(item.content),
|
||||||
return {
|
b: common_vendor.t(item.profit_margin.toFixed(2)),
|
||||||
a: common_vendor.t(item2),
|
c: common_vendor.t($data.getNumStr(item.profit)),
|
||||||
b: index2 == 0 ? "left" : "center"
|
d: common_vendor.t($data.getNumStr(item.revenue)),
|
||||||
};
|
e: common_vendor.t(item.content),
|
||||||
}),
|
f: index,
|
||||||
b: index % 2 == 0 ? "#FFFFFF" : "#FAFAFC"
|
g: index % 2 == 0 ? "#FFFFFF" : "#FAFAFC"
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
};
|
} : {});
|
||||||
}
|
}
|
||||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||||
wx.createComponent(Component);
|
wx.createComponent(Component);
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
<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:#1DB26F;font-size:30rpx">+12.50%</view><view style="margin-top:10rpx">利润增长</view></view><view><view style="display:flex;align-items:center"><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">+8.20%</text><text style="color:#F59B38">(稳健增长)</text></view></view></view><view style="display:flex;align-items:center;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">16.23%</view><view style="margin-top:10rpx">ROE</view></view><view><view style="display:flex;align-items:center"><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">净利率 32.56%|毛利率 71.92%</text></view></view></view><view class="flex" style="display:flex;align-items:center;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:#EC3440;font-size:30rpx">93.52%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view style="display:flex;align-items:center"><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><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="{{c}}" 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><view wx:for="{{d}}" wx:for-item="item" style="{{'display:grid;grid-template-columns:130rpx repeat(4, 1fr);color:#666666;font-size:20rpx;font-weight:500;margin:0 20rpx;padding:10rpx;box-sizing:border-box' + ';' + ('background-color:' + item.b)}}"><view wx:for="{{item.a}}" wx:for-item="item" style="{{'text-align:' + item.b}}">{{item.a}}</view></view><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 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>
|
||||||
8
unpackage/dist/dev/mp-weixin/components/zysj-view/zysj-view.wxss
vendored
Normal file
8
unpackage/dist/dev/mp-weixin/components/zysj-view/zysj-view.wxss
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.table .item {
|
||||||
|
font-size: 20rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.table .item.center {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
@@ -184,12 +184,15 @@ const _sfc_main = {
|
|||||||
],
|
],
|
||||||
//财务全景分类
|
//财务全景分类
|
||||||
selectCaiwu: 0,
|
selectCaiwu: 0,
|
||||||
|
financialStockInfo: null,
|
||||||
mainBussinessBarCategoryList: [],
|
mainBussinessBarCategoryList: [],
|
||||||
//主营业务柱状图,折线图分类
|
//主营业务柱状图,折线图分类
|
||||||
mainBussinessBarList: [],
|
mainBussinessBarList: [],
|
||||||
//主营业务柱状图数据
|
//主营业务柱状图数据
|
||||||
mainBussinessLineList: [],
|
mainBussinessLineList: [],
|
||||||
//主营业务折线图数据
|
//主营业务折线图数据
|
||||||
|
productClassificationList: [],
|
||||||
|
//主营业务产业分类数据
|
||||||
dongTaiList: [
|
dongTaiList: [
|
||||||
{
|
{
|
||||||
title: "新闻动态"
|
title: "新闻动态"
|
||||||
@@ -248,7 +251,9 @@ const _sfc_main = {
|
|||||||
this.getIndustryRankListData();
|
this.getIndustryRankListData();
|
||||||
}
|
}
|
||||||
} else if (index == 2) {
|
} else if (index == 2) {
|
||||||
|
this.getFinancialStockInfoData();
|
||||||
this.getFinancialComparisonData();
|
this.getFinancialComparisonData();
|
||||||
|
this.getFinancialMainBussinessData();
|
||||||
} else if (index == 3) {
|
} else if (index == 3) {
|
||||||
this.getNewsListData();
|
this.getNewsListData();
|
||||||
}
|
}
|
||||||
@@ -563,6 +568,16 @@ const _sfc_main = {
|
|||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 获取股票信息数据
|
||||||
|
*/
|
||||||
|
getFinancialStockInfoData() {
|
||||||
|
let code = this.stockCode;
|
||||||
|
request_api.financialStockInfo(code).then((res) => {
|
||||||
|
this.financialStockInfo = res.data;
|
||||||
|
}).catch((error) => {
|
||||||
|
});
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取财务比较数据
|
* 获取财务比较数据
|
||||||
*/
|
*/
|
||||||
@@ -575,13 +590,24 @@ const _sfc_main = {
|
|||||||
this.mainBussinessBarList = [];
|
this.mainBussinessBarList = [];
|
||||||
this.mainBussinessLineList = [];
|
this.mainBussinessLineList = [];
|
||||||
for (let item of data) {
|
for (let item of data) {
|
||||||
this.mainBussinessBarCategoryList.push(item.report_type);
|
this.mainBussinessBarCategoryList.unshift(item.report_type.replace("三季报", "Q3"));
|
||||||
this.mainBussinessBarList.push((parseFloat(item.performance.revenue) / 1e8).toFixed(2));
|
this.mainBussinessBarList.unshift((parseFloat(item.performance.revenue) / 1e8).toFixed(2));
|
||||||
this.mainBussinessLineList.push((parseFloat(item.performance.net_profit) / 1e8).toFixed(2));
|
this.mainBussinessLineList.unshift((parseFloat(item.performance.net_profit) / 1e8).toFixed(2));
|
||||||
}
|
}
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 获取财务主营业务数据
|
||||||
|
*/
|
||||||
|
getFinancialMainBussinessData() {
|
||||||
|
let code = this.stockCode;
|
||||||
|
let param = { periods: 4 };
|
||||||
|
request_api.financialMainBusiness(code, param).then((res) => {
|
||||||
|
this.productClassificationList = res.data.product_classification;
|
||||||
|
}).catch((error) => {
|
||||||
|
});
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取新闻动态数据
|
* 获取新闻动态数据
|
||||||
*/
|
*/
|
||||||
@@ -824,9 +850,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
az: $data.selectCaiwu == 0
|
az: $data.selectCaiwu == 0
|
||||||
}, $data.selectCaiwu == 0 ? {
|
}, $data.selectCaiwu == 0 ? {
|
||||||
aA: common_vendor.p({
|
aA: common_vendor.p({
|
||||||
|
stockInfo: $data.financialStockInfo,
|
||||||
barCategoryList: $data.mainBussinessBarCategoryList,
|
barCategoryList: $data.mainBussinessBarCategoryList,
|
||||||
barList: $data.mainBussinessBarList,
|
barList: $data.mainBussinessBarList,
|
||||||
lineList: $data.mainBussinessLineList
|
lineList: $data.mainBussinessLineList,
|
||||||
|
productClassificationList: $data.productClassificationList
|
||||||
})
|
})
|
||||||
} : {}, {
|
} : {}, {
|
||||||
aB: $data.selectCaiwu == 1
|
aB: $data.selectCaiwu == 1
|
||||||
|
|||||||
4
unpackage/dist/dev/mp-weixin/request/api.js
vendored
4
unpackage/dist/dev/mp-weixin/request/api.js
vendored
@@ -43,7 +43,9 @@ const industryRankList = (code) => request_http.get("/api/financial/industry-ran
|
|||||||
const valueChainAnalysis = (code) => request_http.get("/api/company/value-chain-analysis/" + code, null, true);
|
const valueChainAnalysis = (code) => request_http.get("/api/company/value-chain-analysis/" + code, null, true);
|
||||||
const valueChainRelatedCompany = (param) => request_http.get("/api/company/value-chain/related-companies", param, true);
|
const valueChainRelatedCompany = (param) => request_http.get("/api/company/value-chain/related-companies", param, true);
|
||||||
const keyFactorsTimeline = (code) => request_http.get("/api/company/key-factors-timeline/" + code, null, true);
|
const keyFactorsTimeline = (code) => request_http.get("/api/company/key-factors-timeline/" + code, null, true);
|
||||||
|
const financialStockInfo = (code) => request_http.get("/api/financial/stock-info/" + code, null, true);
|
||||||
const financialComparison = (code, param) => request_http.get("/api/financial/comparison/" + 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 companyAnnouncementsList = (code, param) => request_http.get("/api/stock/" + code + "/announcements", 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 userInfo = (param) => request_http.get("/api/user/profile", param);
|
||||||
const membershipStatus = (param) => request_http.get("/api/membership/status", param);
|
const membershipStatus = (param) => request_http.get("/api/membership/status", param);
|
||||||
@@ -83,6 +85,8 @@ exports.eventRelatedStock = eventRelatedStock;
|
|||||||
exports.feedback = feedback;
|
exports.feedback = feedback;
|
||||||
exports.filterOptions = filterOptions;
|
exports.filterOptions = filterOptions;
|
||||||
exports.financialComparison = financialComparison;
|
exports.financialComparison = financialComparison;
|
||||||
|
exports.financialMainBusiness = financialMainBusiness;
|
||||||
|
exports.financialStockInfo = financialStockInfo;
|
||||||
exports.followEvent = followEvent;
|
exports.followEvent = followEvent;
|
||||||
exports.homeData = homeData;
|
exports.homeData = homeData;
|
||||||
exports.industryCategoryList = industryCategoryList;
|
exports.industryCategoryList = industryCategoryList;
|
||||||
|
|||||||
Reference in New Issue
Block a user