1.30 财务分析部分模块完善,发展历程弹窗完善
This commit is contained in:
@@ -67,7 +67,6 @@
|
||||
<view style="height: 500rpx;">
|
||||
<l-echart ref="chartRef2"></l-echart>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -10,16 +10,14 @@
|
||||
style="width: 13rpx; height: 22rpx;"></image>
|
||||
</view>
|
||||
|
||||
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||
<view
|
||||
style="display: flex; align-items: center; justify-content: center; text-align: center; font-size: 20rpx; color: #999999; border: 1rpx solid #D2D2D2; padding: 10rpx 10rpx; box-sizing: border-box;"
|
||||
:style="{color: index == 0 ? '#BB8520' : '#999999', border: `1rpx solid ${index == 0 ? '#F2C369' : '#D2D2D2'}`, 'background-color': (index == 0 ? '#FFFAF1' : '#FFFFFF')}"
|
||||
<view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||
<view :class="'item flexCenter '+(cashFlowIndicatorIndex==index?'select':'')"
|
||||
v-for="(item,index) in ['货币资金', '所有者权益', '关键指标']" :key="index">
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view style="display: flex;align-items: center; padding: 20rpx; box-sizing: border-box;">
|
||||
<view class="flex" style="padding: 20rpx;">
|
||||
<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;">
|
||||
@@ -33,49 +31,44 @@
|
||||
mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
style="height: 400rpx; display: flex; align-items: center; justify-content: center; background-color: red;">
|
||||
折线图占位
|
||||
<view style="height: 400rpx;">
|
||||
<l-echart ref="chartRef1"></l-echart>
|
||||
</view>
|
||||
|
||||
<view style="background-color: #FAFAFC; border-radius: 10rpx; margin: 0 20rpx; padding: 20rpx 0;">
|
||||
<view v-if="financialBalanceList.length>0" style="background-color: #FAFAFC; border-radius: 10rpx; margin: 0 20rpx; padding: 20rpx 0;">
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">资产总计</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">29.21亿</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(financialBalanceList[0].assets.total)}}</view>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">负债合计</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">17.94亿</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(financialBalanceList[0].liabilities.total)}}</view>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">所有者权益</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">11.27亿</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(financialBalanceList[0].equity.total)}}</view>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">货币资金</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">5.45亿</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(financialBalanceList[0].assets.current_assets.cash)}}</view>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">资本公积金</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">4.61亿</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(financialBalanceList[0].equity.capital_reserve)}}</view>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view class="flex between" style=" font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">盈余公积金</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">1.02亿</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(financialBalanceList[0].equity.surplus_reserve)}}</view>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view class="flex between" style="font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">未分配利润</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">1.61亿</view>
|
||||
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(financialBalanceList[0].equity.undistributed_profit)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
<!-- 现金流量表 -->
|
||||
<view @click="itemClick(1)" style="color: #2B2B2B; font-weight: 500; font-size: 24rpx;">
|
||||
<view style="display: flex;align-items: center; padding: 20rpx; box-sizing: border-box;">
|
||||
<view style="color: #2B2B2B; font-weight: 500; font-size: 24rpx;">
|
||||
<view class="flex" style="padding: 20rpx;">
|
||||
<image src="/pagesStock/static/icon/cwfx-1.png" mode="widthFix"
|
||||
style="width: 40rpx; height: 40rpx;"></image>
|
||||
<view class="flex1" style="margin: 0 10rpx; font-size: 28rpx;">现金流量表</view>
|
||||
@@ -83,16 +76,13 @@
|
||||
style="width: 13rpx; height: 22rpx;"></image>
|
||||
</view>
|
||||
|
||||
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||
<view
|
||||
style="display: flex; align-items: center; justify-content: center; text-align: center; font-size: 20rpx; color: #999999; border: 1rpx solid #D2D2D2; padding: 10rpx 10rpx; box-sizing: border-box;"
|
||||
:style="{color: index == 0 ? '#BB8520' : '#999999', border: `1rpx solid ${index == 0 ? '#F2C369' : '#D2D2D2'}`, 'background-color': (index == 0 ? '#FFFAF1' : '#FFFFFF')}"
|
||||
v-for="(item,index) in ['经营现金流', '筹资现金流', '投资现金流']" :key="index">
|
||||
<view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||
<view :class="'item flexCenter '+(cashFlowIndicatorIndex==index?'select':'')" v-for="(item,index) in ['经营现金流', '筹资现金流', '投资现金流']" :key="index" @click="clickCashFlowIndicatorItem(index)">
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view style="display: flex;align-items: center; padding: 20rpx; box-sizing: border-box;">
|
||||
<view class="flex" style="padding: 20rpx;">
|
||||
<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;">
|
||||
@@ -106,12 +96,9 @@
|
||||
mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
style="height: 400rpx; display: flex; align-items: center; justify-content: center; background-color: red;">
|
||||
柱状折线图占位
|
||||
<view style="height: 400rpx;">
|
||||
<l-echart ref="chartRef2"></l-echart>
|
||||
</view>
|
||||
|
||||
<view style="background-color: #FAFAFC; border-radius: 10rpx; margin: 0 20rpx; padding: 20rpx 0;">
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">经营性现金流</view>
|
||||
@@ -140,7 +127,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- 利润表 -->
|
||||
<view @click="itemClick(2)" style="color: #2B2B2B; font-weight: 500; font-size: 24rpx;">
|
||||
<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="/pagesStock/static/icon/cwfx-1.png" mode="widthFix"
|
||||
style="width: 40rpx; height: 40rpx;"></image>
|
||||
@@ -149,22 +136,20 @@
|
||||
style="width: 13rpx; height: 22rpx;"></image>
|
||||
</view>
|
||||
|
||||
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||
<view
|
||||
style="display: flex; align-items: center; justify-content: center; text-align: center; font-size: 20rpx; color: #999999; border: 1rpx solid #D2D2D2; padding: 10rpx 10rpx; box-sizing: border-box;"
|
||||
:style="{color: index == 0 ? '#BB8520' : '#999999', border: `1rpx solid ${index == 0 ? '#F2C369' : '#D2D2D2'}`, 'background-color': (index == 0 ? '#FFFAF1' : '#FFFFFF')}"
|
||||
v-for="(item,index) in ['净利润', '营业收入', '期间费用']" :key="index">
|
||||
<view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||
<view :class="'item flexCenter '+(profitIndicatorIndex==index?'select':'')"
|
||||
v-for="(item,index) in ['净利润', '营业收入', '期间费用']" :key="index" @click="clickProfitIndicatorItem(index)">
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view style="display: flex;align-items: center; padding: 20rpx; box-sizing: border-box;">
|
||||
<view style="display: flex;align-items: center; padding: 20rpx;">
|
||||
<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; margin-right: 10rpx;">
|
||||
style="display: flex; align-items: center; padding: 3rpx 10rpx; border: 1rpx solid #D2D2D2; margin-right: 10rpx;">
|
||||
<image style="width: 23rpx; height: 23rpx;" src="/pagesStock/static/icon/all-icon.png"
|
||||
mode="widthFix"></image>
|
||||
<view style="margin: 0 10rpx; color: #999999; font-size: 22rpx;">全部</view>
|
||||
@@ -172,7 +157,7 @@
|
||||
mode="widthFix"></image>
|
||||
</view>
|
||||
<view
|
||||
style="display: flex; align-items: center; padding: 3rpx 10rpx; box-sizing: border-box; border: 1rpx solid #D2D2D2;">
|
||||
style="display: flex; align-items: center; padding: 3rpx 10rpx;border: 1rpx solid #D2D2D2;">
|
||||
<image style="width: 23rpx; height: 23rpx;" src="/pagesStock/static/icon/all-icon.png"
|
||||
mode="widthFix"></image>
|
||||
<view style="margin: 0 10rpx; color: #999999; font-size: 22rpx;">汇总</view>
|
||||
@@ -182,9 +167,8 @@
|
||||
</view>
|
||||
|
||||
<view style="height: 400rpx;">
|
||||
<l-echart ref="chartRef1"></l-echart>
|
||||
<l-echart ref="chartRef3"></l-echart>
|
||||
</view>
|
||||
|
||||
<view style="background-color: #FAFAFC; border-radius: 10rpx; margin: 0 20rpx; padding: 20rpx 0;">
|
||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
||||
<view style="flex: 1; color: #999999; margin-right: 20rpx;">净利润</view>
|
||||
@@ -216,16 +200,230 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getNumStr } from '../../utils/util';
|
||||
|
||||
export default {
|
||||
name:"cwsj-view",
|
||||
data() {
|
||||
return {
|
||||
|
||||
profitabilityIndicatorIndex:0,
|
||||
profitIndicatorIndex:0,
|
||||
cashFlowIndicatorIndex:0,
|
||||
option1:{
|
||||
legend:{
|
||||
show:true,
|
||||
data:['期间费用','同比(右)']
|
||||
},
|
||||
grid:{
|
||||
left:'2%',
|
||||
right:'2%',
|
||||
top:'5%',
|
||||
bottom:'30%'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: [],
|
||||
axisLabel:{
|
||||
rotate:45,
|
||||
fontSize:10
|
||||
}
|
||||
},
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name:'(%)',
|
||||
position:'left',
|
||||
alignTicks:true,
|
||||
axisLine:{
|
||||
onZero:false
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name:'(%)',
|
||||
position:'right',
|
||||
alignTicks:true,
|
||||
axisLine:{
|
||||
onZero:false
|
||||
}
|
||||
}],
|
||||
dataZoom:[{
|
||||
type:'slider'
|
||||
}],
|
||||
series: [
|
||||
{
|
||||
type: 'bar',
|
||||
name:'ROE',
|
||||
data: [],
|
||||
yAxisIndex:0
|
||||
},
|
||||
{
|
||||
type: 'line',
|
||||
name:'同比',
|
||||
data: [],
|
||||
yAxisIndex:1
|
||||
}
|
||||
]
|
||||
},
|
||||
option2:{
|
||||
legend:{
|
||||
show:true,
|
||||
data:['经营现金流','同比(右)']
|
||||
},
|
||||
grid:{
|
||||
left:'2%',
|
||||
right:'2%',
|
||||
top:'5%',
|
||||
bottom:'30%'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: [],
|
||||
axisLabel:{
|
||||
fontSize:10,
|
||||
rotate:45
|
||||
}
|
||||
},
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name:'(%)',
|
||||
position:'left',
|
||||
alignTicks:true,
|
||||
axisLine:{
|
||||
onZero:false
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name:'(%)',
|
||||
position:'right',
|
||||
alignTicks:true,
|
||||
axisLine:{
|
||||
onZero:false
|
||||
}
|
||||
}],
|
||||
dataZoom:[{
|
||||
type:'slider'
|
||||
}],
|
||||
series: [
|
||||
{
|
||||
type: 'bar',
|
||||
name:'ROE',
|
||||
data: [],
|
||||
yAxisIndex:0
|
||||
},
|
||||
{
|
||||
type: 'line',
|
||||
name:'同比',
|
||||
data: [],
|
||||
yAxisIndex:1
|
||||
}
|
||||
]
|
||||
},
|
||||
option3:{
|
||||
legend:{
|
||||
show:true,
|
||||
data:['期间费用','同比(右)']
|
||||
},
|
||||
grid:{
|
||||
left:'2%',
|
||||
right:'2%',
|
||||
top:'5%',
|
||||
bottom:'30%'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: [],
|
||||
axisLabel:{
|
||||
rotate:45,
|
||||
fontSize:10
|
||||
}
|
||||
},
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name:'(%)',
|
||||
position:'left',
|
||||
alignTicks:true,
|
||||
axisLine:{
|
||||
onZero:false
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name:'(%)',
|
||||
position:'right',
|
||||
alignTicks:true,
|
||||
axisLine:{
|
||||
onZero:false
|
||||
}
|
||||
}],
|
||||
dataZoom:[{
|
||||
type:'slider'
|
||||
}],
|
||||
series: [
|
||||
{
|
||||
type: 'bar',
|
||||
name:'ROE',
|
||||
data: [],
|
||||
yAxisIndex:0
|
||||
},
|
||||
{
|
||||
type: 'line',
|
||||
name:'同比',
|
||||
data: [],
|
||||
yAxisIndex:1
|
||||
}
|
||||
]
|
||||
},
|
||||
getNumStr:getNumStr
|
||||
};
|
||||
},
|
||||
props:{
|
||||
financialBalanceList:Array, //资产负债表
|
||||
cashFlowList:Array, //现金流量表
|
||||
incomeStatementList:Array, //利润表
|
||||
},
|
||||
watch:{
|
||||
|
||||
},
|
||||
methods:{
|
||||
/**
|
||||
* 点击切换现金流量表指标
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickCashFlowIndicatorItem(index) {
|
||||
if(this.cashFlowIndicatorIndex!=index) {
|
||||
this.cashFlowIndicatorIndex = index
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 点击切换利润表指标
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickProfitIndicatorItem(index) {
|
||||
if(this.profitIndicatorIndex!=index) {
|
||||
this.profitIndicatorIndex = index
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
|
||||
<style lang="less">
|
||||
.indicatorC
|
||||
{
|
||||
.item
|
||||
{
|
||||
padding: 10rpx;
|
||||
border: 1rpx solid #D2D2D2;
|
||||
font-size: 20rpx;
|
||||
color: #999999;
|
||||
text-align: center;
|
||||
}
|
||||
.item.select
|
||||
{
|
||||
background-color: #FFFAF1;
|
||||
color: #BB8520;
|
||||
border: 1rpx solid #F2C369;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -51,7 +51,7 @@
|
||||
{{timelineInfo.negative_events}}</text>
|
||||
</view>
|
||||
<view class="timelineList">
|
||||
<view class="item" v-for="(item,index) in timelineList" :key="index" @click="clickAction">
|
||||
<view class="item" v-for="(item,index) in timelineList" :key="index" @click="clickAction(item)">
|
||||
<view class="impactC flexColumnCenter">
|
||||
<image v-if="item.impact_metrics.is_positive==1" class="icon" style="margin-top: 20rpx;"
|
||||
src="/pagesStock/static/icon/yuan_shang.png" mode="widthFix"></image>
|
||||
@@ -97,8 +97,8 @@
|
||||
timelineList:Array, //发展时间线数组
|
||||
},
|
||||
methods: {
|
||||
clickAction() {
|
||||
this.$emit('detail')
|
||||
clickAction(item) {
|
||||
this.$emit('detail',item)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex"
|
||||
<view v-if="financialMetricsInfo" 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="font-weight: bold; color: #EC3440; font-size: 30rpx;">{{financialMetricsInfo.solvency.asset_liability_ratio}}%</view>
|
||||
<view style="margin-top: 10rpx;">资产负债率</view>
|
||||
</view>
|
||||
<view>
|
||||
@@ -49,8 +49,8 @@
|
||||
<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>
|
||||
<text :style="'color: '+(getDebtStatusText(financialMetricsInfo.solvency.asset_liability_ratio).color)">{{getDebtStatusText(financialMetricsInfo.solvency.asset_liability_ratio).text}}</text>
|
||||
<text style="margin-left: 10rpx;">流动比率 {{financialMetricsInfo.solvency.current_ratio}}|研发费用率 {{financialMetricsInfo.expense_ratios.rd_expense_ratio}}%</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -189,7 +189,8 @@
|
||||
};
|
||||
},
|
||||
props: {
|
||||
stockInfo:Object,
|
||||
stockInfo:Object,
|
||||
financialMetricsInfo:Object,
|
||||
barCategoryList:Array,
|
||||
barList:Array,
|
||||
lineList:Array, //折线图数据
|
||||
@@ -251,6 +252,16 @@
|
||||
setTimeout(function() {
|
||||
chart.setOption(that.option2)
|
||||
}, 2000);
|
||||
},
|
||||
/**
|
||||
* 获取资产负债状态
|
||||
*/
|
||||
getDebtStatusText(value) {
|
||||
if (value < 40)
|
||||
return { text: '安全', color: 'green' };
|
||||
if (value < 60) return { text: '适中', color: 'gold' };
|
||||
if (value < 70) return { text: '偏高', color: 'orange' };
|
||||
return { text: '风险', color: 'red' };
|
||||
},
|
||||
itemClick(index) {
|
||||
uni.navigateTo({
|
||||
|
||||
@@ -175,7 +175,7 @@
|
||||
<cyl-view :valueChainAnalysisInfo="valueChainAnalysisInfo" :totalNodes="totalNodes" :upstreamList="upstreamList" :coreEnterpriseList="coreEnterpriseList" :downstreamList="downstreamList" @detail="clickValueChainDetail"></cyl-view>
|
||||
</template>
|
||||
<template v-if="selectInDepthAnalysis==3">
|
||||
<fzlc-view :keyFactorsInfo="keyFactorsInfo" :keyFactorsList="keyFactorsList" :timelineInfo="timelineInfo" :timelineList="timelineList" @detail="detailShow(1)"></fzlc-view>
|
||||
<fzlc-view :keyFactorsInfo="keyFactorsInfo" :keyFactorsList="keyFactorsList" :timelineInfo="timelineInfo" :timelineList="timelineList" @detail="clickDevelopmentTimelineDetail"></fzlc-view>
|
||||
</template>
|
||||
</block>
|
||||
<block v-if="selectTab==2">
|
||||
@@ -186,13 +186,14 @@
|
||||
</view>
|
||||
</view>
|
||||
<block v-if="selectCaiwu==0">
|
||||
<zysj-view :stockInfo="financialStockInfo" :barCategoryList="mainBussinessBarCategoryList" :barList="mainBussinessBarList" :lineList="mainBussinessLineList" :productClassificationList="productClassificationList" ></zysj-view>
|
||||
<zysj-view :stockInfo="financialStockInfo" :barCategoryList="mainBussinessBarCategoryList" :barList="mainBussinessBarList" :lineList="mainBussinessLineList"
|
||||
:productClassificationList="productClassificationList" :financialMetricsInfo="financialMetricsList[0]"></zysj-view>
|
||||
</block>
|
||||
<block v-if="selectCaiwu==1">
|
||||
<cwfx-view :dataList="financialMetricsList"></cwfx-view>
|
||||
</block>
|
||||
<block v-if="selectCaiwu==2">
|
||||
<cwsj-view></cwsj-view>
|
||||
<cwsj-view :financialBalanceList="financialBalanceList" :cashFlowList="cashFlowList" :incomeStatementList="incomeStatementList"></cwsj-view>
|
||||
</block>
|
||||
</block>
|
||||
<block v-if="selectTab==3">
|
||||
@@ -334,7 +335,7 @@
|
||||
<uni-popup ref="valueChainPopup" type="bottom" :safeArea="false">
|
||||
<view class="valueChainPopup" style="padding-bottom: env(safe-area-inset-bottom);">
|
||||
<view class="popTitle">详情</view>
|
||||
<view class="closeC absolute" @click="clickCloseValueChainPop()">
|
||||
<view class="closeC absolute" @click="clickCloseValueChainPopup()">
|
||||
<image class="icon" src="/static/icon/home/close.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view v-if="selectValueChainInfo" class="valueChainInfoC" style="height: 60vh;">
|
||||
@@ -396,30 +397,34 @@
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup>
|
||||
<uni-popup ref="detailInfoPopup" type="bottom" :safeArea="false">
|
||||
<view class="industryRankPop" style="padding-bottom: env(safe-area-inset-bottom);">
|
||||
<uni-popup ref="developmentTimelinePopup" type="bottom" :safeArea="false">
|
||||
<view class="developmentTimelinePopup" style="padding-bottom: env(safe-area-inset-bottom);">
|
||||
<view class="popTitle">详情</view>
|
||||
<view class="closeC absolute">
|
||||
<view class="closeC absolute" @click="clickCloseDevelopmentTimelinePopup()">
|
||||
<image class="icon" src="/static/icon/home/close.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view style="max-height: 60vh; padding: 0 20rpx; box-sizing: border-box;">
|
||||
<scroll-view :scroll-y="true" style="width: 100%; height: 100%; padding: 40rpx 20rpx; box-sizing: border-box; font-weight: 500; color: #2A2A2A; font-size: 24rpx;">
|
||||
<view style="font-size: 28rpx; font-weight: bold;">不良贷款率连续四年低于1.1%</view>
|
||||
<view style="display: flex; align-items: center; margin: 20rpx 0;">
|
||||
<view style="color: #EC3440; font-size: 20; text-align: center; background-color: #FFE7E9; border-radius: 5rpx; padding: 2rpx 10rpx; margin-right: 10rpx;">Achievement</view>
|
||||
<view style="margin-left: 10rpx;">2025-06-30</view>
|
||||
<view v-if="selectDevelopmentTimelineInfo" style="max-height: 60vh; padding: 0 20rpx;">
|
||||
<scroll-view class="list" scroll-y style="width: 100%; height: 100%; padding: 40rpx 20rpx;font-weight: 500; color: #2A2A2A; font-size: 24rpx;">
|
||||
<view style="font-size: 28rpx; font-weight: bold;">{{selectDevelopmentTimelineInfo.event_title}}</view>
|
||||
<view class="eventTypeDateC flex" style="margin: 20rpx 0;">
|
||||
<view :class="'eventType '+(selectDevelopmentTimelineInfo.impact_metrics.is_positive==1?'positive':'negative')">{{selectDevelopmentTimelineInfo.event_type}}</view>
|
||||
<view class="date">{{selectDevelopmentTimelineInfo.event_date}}</view>
|
||||
</view>
|
||||
<view style="color: #BB8520; margin-top: 30rpx;">事件详情</view>
|
||||
<view style="color: #71675D; font-size: 22rpx; margin-top: 13rpx;">2025年中报不良率1.06%,拨备覆盖率290%,资产质量保持股份行领先。</view>
|
||||
<view style="color: #71675D; font-size: 22rpx; margin-top: 13rpx;">{{selectDevelopmentTimelineInfo.event_desc}}</view>
|
||||
|
||||
<view style="color: #BB8520; margin-top: 30rpx;">财务影响</view>
|
||||
<view style="color: #71675D; font-size: 22rpx; margin-top: 13rpx;">信用成本同比下降12bps,释放利润约50亿元。</view>
|
||||
<view style="color: #71675D; font-size: 22rpx; margin-top: 13rpx;">{{selectDevelopmentTimelineInfo.related_info.financial_impact}}</view>
|
||||
|
||||
<view style="color: #BB8520; margin-top: 30rpx;">影响评估</view>
|
||||
<view style="display: flex; align-items: center; margin-top: 13rpx;">
|
||||
<view><text style="color: #71675D;">影响度</text></view>
|
||||
<view style="width: 200rpx; margin: 0 10rpx; background-color: #EFEFEF; border-radius: 5rpx;"><view style="width: 86%; background: linear-gradient(to right, #FF525D, #EC3440); border-radius: 5rpx; height: 10rpx;"></view></view>
|
||||
<text style="color: #71675D; margin-left: 10rpx;">86 / 100</text>
|
||||
<view class="flex" style="margin-top: 13rpx;">
|
||||
<view>
|
||||
<text style="color: #71675D;">影响度</text>
|
||||
</view>
|
||||
<view class="progressBgC">
|
||||
<view :class="'progress '+(selectDevelopmentTimelineInfo.impact_metrics.is_positive==1?'positive':'negative')" :style="'width: '+selectDevelopmentTimelineInfo.impact_metrics.impact_score+'%;'"></view>
|
||||
</view>
|
||||
<text style="color: #71675D; margin-left: 10rpx;">{{selectDevelopmentTimelineInfo.impact_metrics.impact_score}} / 100</text>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
@@ -430,7 +435,7 @@
|
||||
|
||||
<script>
|
||||
import { inject } from 'vue'
|
||||
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, financialComparison, financialMainBusiness, financialMetrics, financialStockInfo, industryRankList, keyFactorsTimeline, managementTeam, ownershipConcentration, quoteDetailsInfo, searchStockInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList, valueChainAnalysis, valueChainRelatedCompany } from '@/request/api'
|
||||
import { actualControl, branchesList, cashflowSheet, companyAnnouncementsList, comprehensiveAnalysis, eventList, financialBalanceSheet, financialComparison, financialMainBusiness, financialMetrics, financialStockInfo, incomeStatementSheet, industryRankList, keyFactorsTimeline, managementTeam, ownershipConcentration, quoteDetailsInfo, searchStockInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList, valueChainAnalysis, valueChainRelatedCompany } from '@/request/api'
|
||||
import { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown, getAgeByBirthYear } from '@/utils/util'
|
||||
|
||||
export default {
|
||||
@@ -569,6 +574,7 @@
|
||||
keyFactorsList:[], //关键因素
|
||||
timelineInfo:null, //发展时间线统计信息
|
||||
timelineList:[], //发展时间线
|
||||
selectDevelopmentTimelineInfo:null,
|
||||
caiWuList: [{
|
||||
title: '主营数据'
|
||||
},
|
||||
@@ -586,6 +592,9 @@
|
||||
mainBussinessBarList:[], //主营业务柱状图数据
|
||||
mainBussinessLineList:[], //主营业务折线图数据
|
||||
productClassificationList:[], //主营业务产业分类数据
|
||||
financialBalanceList:[], //资产负债表
|
||||
cashFlowList:[], //现金流量表
|
||||
incomeStatementList:[], //利润表
|
||||
dongTaiList: [{
|
||||
title: '新闻动态'
|
||||
},
|
||||
@@ -599,8 +608,7 @@
|
||||
companyAnnouncementList:[], //公司公告数据
|
||||
getLocalDate:getLocalDate,
|
||||
getRateUpOrDown:getRateUpOrDown, //判断涨跌
|
||||
getNumStr:getNumStr, //获取数字展示万或亿
|
||||
|
||||
getNumStr:getNumStr, //获取数字展示万或亿
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
@@ -665,6 +673,7 @@
|
||||
//获取股票信息数据
|
||||
this.getFinancialStockInfoData()
|
||||
this.getFinancialComparisonData()
|
||||
this.getFinancialMetricsData()
|
||||
this.getFinancialMainBussinessData()
|
||||
}else if(index==3) {
|
||||
//获取新闻动态数据
|
||||
@@ -711,12 +720,22 @@
|
||||
clickCaiWuItem(index) {
|
||||
if (this.selectCaiwu != index) {
|
||||
this.selectCaiwu = index
|
||||
if(index==1) {
|
||||
if(index==0) {
|
||||
//主营数据
|
||||
this.getFinancialMetricsData()
|
||||
}else if(index==1) {
|
||||
//财务分析
|
||||
this.getFinancialMetricsData()
|
||||
}else if(index==2) {
|
||||
//资产负债表
|
||||
this.getFinancialBalanceSheetData()
|
||||
//现金流量表
|
||||
this.getCashFlowSheetData()
|
||||
//利润表
|
||||
this.getIncomeStatementSheetData()
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 点击选择动态分类
|
||||
* @param {Object} index
|
||||
@@ -745,13 +764,19 @@
|
||||
clickCloseIndustryRankPop()
|
||||
{
|
||||
this.$refs["industryRankPop"].close()
|
||||
},
|
||||
detailShow(type) {
|
||||
if (type == 0) {
|
||||
this.$refs["detailPopup"].open()
|
||||
}else {
|
||||
this.$refs["detailInfoPopup"].open()
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 查看发展时间线详情
|
||||
*/
|
||||
clickDevelopmentTimelineDetail(item)
|
||||
{
|
||||
this.selectDevelopmentTimelineInfo = item;
|
||||
// this.getValueChainRelatedCompanyData()
|
||||
this.$refs["developmentTimelinePopup"].open()
|
||||
},
|
||||
clickCloseDevelopmentTimelinePopup()
|
||||
{
|
||||
this.$refs["developmentTimelinePopup"].close()
|
||||
},
|
||||
/**
|
||||
* 查看产业链详情
|
||||
@@ -765,7 +790,7 @@
|
||||
/**
|
||||
* 关闭产业链弹窗
|
||||
*/
|
||||
clickCloseValueChainPop()
|
||||
clickCloseValueChainPopup()
|
||||
{
|
||||
this.$refs["valueChainPopup"].close()
|
||||
},
|
||||
@@ -1117,6 +1142,57 @@
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取资产负债表数据
|
||||
*/
|
||||
getFinancialBalanceSheetData()
|
||||
{
|
||||
let code = this.stockCode
|
||||
if (this.selectSearchStockInfo) {
|
||||
code = this.selectSearchStockInfo.stock_code
|
||||
}
|
||||
let param = {limit:8}
|
||||
financialBalanceSheet(code,param).then(res=>{
|
||||
this.financialBalanceList = res.data
|
||||
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取现金流量表数据
|
||||
*/
|
||||
getCashFlowSheetData()
|
||||
{
|
||||
let code = this.stockCode
|
||||
if (this.selectSearchStockInfo) {
|
||||
code = this.selectSearchStockInfo.stock_code
|
||||
}
|
||||
let param = {limit:8}
|
||||
cashflowSheet(code,param).then(res=>{
|
||||
this.cashFlowList = res.data
|
||||
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取利润表数据
|
||||
*/
|
||||
getIncomeStatementSheetData()
|
||||
{
|
||||
let code = this.stockCode
|
||||
if (this.selectSearchStockInfo) {
|
||||
code = this.selectSearchStockInfo.stock_code
|
||||
}
|
||||
let param = {limit:8}
|
||||
incomeStatementSheet(code,param).then(res=>{
|
||||
this.incomeStatementList = res.data
|
||||
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取新闻动态数据
|
||||
*/
|
||||
@@ -1734,5 +1810,79 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.developmentTimelinePopup {
|
||||
background-color: white;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
|
||||
.popTitle {
|
||||
margin: 0 20rpx;
|
||||
line-height: 100rpx;
|
||||
border-bottom: solid 1rpx #E7E7E7;
|
||||
font-size: 35rpx;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.closeC {
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 40rpx 26rpx;
|
||||
|
||||
.icon {
|
||||
display: block;
|
||||
width: 20rpx;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.eventTypeDateC
|
||||
{
|
||||
.eventType
|
||||
{
|
||||
margin-right: 17rpx;
|
||||
font-size: 20;
|
||||
border-radius: 5rpx;
|
||||
line-height: 40rpx;
|
||||
padding: 0 10rpx;
|
||||
|
||||
}
|
||||
.eventType.positive
|
||||
{
|
||||
background-color: #FFE7E9;
|
||||
color: #EC3440;
|
||||
}
|
||||
.eventType.negative
|
||||
{
|
||||
background-color: #DEEED6;
|
||||
color: #345423;
|
||||
}
|
||||
.date
|
||||
{
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
.progressBgC
|
||||
{
|
||||
background-color: #EFEFEF;
|
||||
margin-left: 13rpx;
|
||||
width: 200rpx;
|
||||
height: 10rpx;
|
||||
border-radius: 5rpx;
|
||||
.progress
|
||||
{
|
||||
height: 100%;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
.progress.positive
|
||||
{
|
||||
background: linear-gradient(90deg, #FF525D 0%, #EC3440 100%);
|
||||
}
|
||||
.progress.negative
|
||||
{
|
||||
background: linear-gradient(90deg, #537D3D 0%, #345423 100%);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -215,6 +215,18 @@ export const financialComparison = (code,param) => get('/api/financial/compariso
|
||||
* 主营业务
|
||||
*/
|
||||
export const financialMainBusiness = (code,param) => get('/api/financial/main-business/'+code,param,true)
|
||||
/**
|
||||
* 资产负债表
|
||||
*/
|
||||
export const financialBalanceSheet = (code,param) => get('/api/financial/balance-sheet/'+code,param,true)
|
||||
/**
|
||||
* 现金流量表
|
||||
*/
|
||||
export const cashflowSheet = (code,param) => get('/api/financial/cashflow/'+code,param,true)
|
||||
/**
|
||||
* 利润表
|
||||
*/
|
||||
export const incomeStatementSheet = (code,param) => get('/api/financial/income-statement/'+code,param,true)
|
||||
/**
|
||||
* 公司公告
|
||||
*/
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -7051,9 +7051,9 @@ function isConsoleWritable() {
|
||||
return isWritable;
|
||||
}
|
||||
function initRuntimeSocketService() {
|
||||
const hosts = "127.0.0.1,192.168.2.28";
|
||||
const hosts = "127.0.0.1,192.168.2.91";
|
||||
const port = "8090";
|
||||
const id = "mp-weixin_6VDL_I";
|
||||
const id = "mp-weixin_D36YnR";
|
||||
const lazy = typeof swan !== "undefined";
|
||||
let restoreError = lazy ? () => {
|
||||
} : initOnError();
|
||||
|
||||
@@ -1,10 +1,216 @@
|
||||
"use strict";
|
||||
const utils_util = require("../../utils/util.js");
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
const _sfc_main = {
|
||||
name: "cwsj-view",
|
||||
data() {
|
||||
return {};
|
||||
return {
|
||||
profitabilityIndicatorIndex: 0,
|
||||
profitIndicatorIndex: 0,
|
||||
cashFlowIndicatorIndex: 0,
|
||||
option1: {
|
||||
legend: {
|
||||
show: true,
|
||||
data: ["期间费用", "同比(右)"]
|
||||
},
|
||||
grid: {
|
||||
left: "2%",
|
||||
right: "2%",
|
||||
top: "5%",
|
||||
bottom: "30%"
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
data: [],
|
||||
axisLabel: {
|
||||
rotate: 45,
|
||||
fontSize: 10
|
||||
}
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: "value",
|
||||
name: "(%)",
|
||||
position: "left",
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
onZero: false
|
||||
}
|
||||
},
|
||||
{
|
||||
type: "value",
|
||||
name: "(%)",
|
||||
position: "right",
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
onZero: false
|
||||
}
|
||||
}
|
||||
],
|
||||
dataZoom: [{
|
||||
type: "slider"
|
||||
}],
|
||||
series: [
|
||||
{
|
||||
type: "bar",
|
||||
name: "ROE",
|
||||
data: [],
|
||||
yAxisIndex: 0
|
||||
},
|
||||
{
|
||||
type: "line",
|
||||
name: "同比",
|
||||
data: [],
|
||||
yAxisIndex: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
option2: {
|
||||
legend: {
|
||||
show: true,
|
||||
data: ["经营现金流", "同比(右)"]
|
||||
},
|
||||
grid: {
|
||||
left: "2%",
|
||||
right: "2%",
|
||||
top: "5%",
|
||||
bottom: "30%"
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
data: [],
|
||||
axisLabel: {
|
||||
fontSize: 10,
|
||||
rotate: 45
|
||||
}
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: "value",
|
||||
name: "(%)",
|
||||
position: "left",
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
onZero: false
|
||||
}
|
||||
},
|
||||
{
|
||||
type: "value",
|
||||
name: "(%)",
|
||||
position: "right",
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
onZero: false
|
||||
}
|
||||
}
|
||||
],
|
||||
dataZoom: [{
|
||||
type: "slider"
|
||||
}],
|
||||
series: [
|
||||
{
|
||||
type: "bar",
|
||||
name: "ROE",
|
||||
data: [],
|
||||
yAxisIndex: 0
|
||||
},
|
||||
{
|
||||
type: "line",
|
||||
name: "同比",
|
||||
data: [],
|
||||
yAxisIndex: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
option3: {
|
||||
legend: {
|
||||
show: true,
|
||||
data: ["期间费用", "同比(右)"]
|
||||
},
|
||||
grid: {
|
||||
left: "2%",
|
||||
right: "2%",
|
||||
top: "5%",
|
||||
bottom: "30%"
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
data: [],
|
||||
axisLabel: {
|
||||
rotate: 45,
|
||||
fontSize: 10
|
||||
}
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: "value",
|
||||
name: "(%)",
|
||||
position: "left",
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
onZero: false
|
||||
}
|
||||
},
|
||||
{
|
||||
type: "value",
|
||||
name: "(%)",
|
||||
position: "right",
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
onZero: false
|
||||
}
|
||||
}
|
||||
],
|
||||
dataZoom: [{
|
||||
type: "slider"
|
||||
}],
|
||||
series: [
|
||||
{
|
||||
type: "bar",
|
||||
name: "ROE",
|
||||
data: [],
|
||||
yAxisIndex: 0
|
||||
},
|
||||
{
|
||||
type: "line",
|
||||
name: "同比",
|
||||
data: [],
|
||||
yAxisIndex: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
getNumStr: utils_util.getNumStr
|
||||
};
|
||||
},
|
||||
props: {
|
||||
financialBalanceList: Array,
|
||||
//资产负债表
|
||||
cashFlowList: Array,
|
||||
//现金流量表
|
||||
incomeStatementList: Array
|
||||
//利润表
|
||||
},
|
||||
watch: {},
|
||||
methods: {
|
||||
/**
|
||||
* 点击切换现金流量表指标
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickCashFlowIndicatorItem(index) {
|
||||
if (this.cashFlowIndicatorIndex != index) {
|
||||
this.cashFlowIndicatorIndex = index;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 点击切换利润表指标
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickProfitIndicatorItem(index) {
|
||||
if (this.profitIndicatorIndex != index) {
|
||||
this.profitIndicatorIndex = index;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!Array) {
|
||||
@@ -16,53 +222,59 @@ if (!Math) {
|
||||
_easycom_l_echart();
|
||||
}
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {
|
||||
return common_vendor.e({
|
||||
a: common_assets._imports_0$8,
|
||||
b: common_assets._imports_1$2,
|
||||
c: common_vendor.f(["货币资金", "所有者权益", "关键指标"], (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item),
|
||||
b: index == 0 ? "#BB8520" : "#999999",
|
||||
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
|
||||
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
|
||||
e: index
|
||||
b: common_vendor.n("item flexCenter " + ($data.cashFlowIndicatorIndex == index ? "select" : "")),
|
||||
c: index
|
||||
};
|
||||
}),
|
||||
d: common_assets._imports_2$14,
|
||||
e: common_assets._imports_3$13,
|
||||
f: common_vendor.o(($event) => _ctx.itemClick(0)),
|
||||
g: common_assets._imports_0$8,
|
||||
h: common_assets._imports_1$2,
|
||||
i: common_vendor.f(["经营现金流", "筹资现金流", "投资现金流"], (item, index, i0) => {
|
||||
f: common_vendor.sr("chartRef1", "63ca7cac-0"),
|
||||
g: $props.financialBalanceList.length > 0
|
||||
}, $props.financialBalanceList.length > 0 ? {
|
||||
h: common_vendor.t($data.getNumStr($props.financialBalanceList[0].assets.total)),
|
||||
i: common_vendor.t($data.getNumStr($props.financialBalanceList[0].liabilities.total)),
|
||||
j: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.total)),
|
||||
k: common_vendor.t($data.getNumStr($props.financialBalanceList[0].assets.current_assets.cash)),
|
||||
l: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.capital_reserve)),
|
||||
m: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.surplus_reserve)),
|
||||
n: common_vendor.t($data.getNumStr($props.financialBalanceList[0].equity.undistributed_profit))
|
||||
} : {}, {
|
||||
o: common_vendor.o(($event) => _ctx.itemClick(0)),
|
||||
p: common_assets._imports_0$8,
|
||||
q: common_assets._imports_1$2,
|
||||
r: common_vendor.f(["经营现金流", "筹资现金流", "投资现金流"], (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item),
|
||||
b: index == 0 ? "#BB8520" : "#999999",
|
||||
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
|
||||
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
|
||||
e: index
|
||||
b: common_vendor.n("item flexCenter " + ($data.cashFlowIndicatorIndex == index ? "select" : "")),
|
||||
c: index,
|
||||
d: common_vendor.o(($event) => $options.clickCashFlowIndicatorItem(index), index)
|
||||
};
|
||||
}),
|
||||
j: common_assets._imports_2$14,
|
||||
k: common_assets._imports_3$13,
|
||||
l: common_vendor.o(($event) => _ctx.itemClick(1)),
|
||||
m: common_assets._imports_0$8,
|
||||
n: common_assets._imports_1$2,
|
||||
o: common_vendor.f(["净利润", "营业收入", "期间费用"], (item, index, i0) => {
|
||||
s: common_assets._imports_2$14,
|
||||
t: common_assets._imports_3$13,
|
||||
v: common_vendor.sr("chartRef2", "63ca7cac-1"),
|
||||
w: common_assets._imports_0$8,
|
||||
x: common_assets._imports_1$2,
|
||||
y: common_vendor.f(["净利润", "营业收入", "期间费用"], (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item),
|
||||
b: index == 0 ? "#BB8520" : "#999999",
|
||||
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
|
||||
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
|
||||
e: index
|
||||
b: common_vendor.n("item flexCenter " + ($data.profitIndicatorIndex == index ? "select" : "")),
|
||||
c: index,
|
||||
d: common_vendor.o(($event) => $options.clickProfitIndicatorItem(index), index)
|
||||
};
|
||||
}),
|
||||
p: common_assets._imports_2$14,
|
||||
q: common_assets._imports_3$13,
|
||||
r: common_assets._imports_2$14,
|
||||
s: common_assets._imports_3$13,
|
||||
t: common_vendor.sr("chartRef1", "63ca7cac-0"),
|
||||
v: common_vendor.o(($event) => _ctx.itemClick(2))
|
||||
};
|
||||
z: common_assets._imports_2$14,
|
||||
A: common_assets._imports_3$13,
|
||||
B: common_assets._imports_2$14,
|
||||
C: common_assets._imports_3$13,
|
||||
D: common_vendor.sr("chartRef3", "63ca7cac-2")
|
||||
});
|
||||
}
|
||||
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
wx.createComponent(Component);
|
||||
|
||||
File diff suppressed because one or more lines are too long
12
unpackage/dist/dev/mp-weixin/components/cwsj-view/cwsj-view.wxss
vendored
Normal file
12
unpackage/dist/dev/mp-weixin/components/cwsj-view/cwsj-view.wxss
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
.indicatorC .item {
|
||||
padding: 10rpx;
|
||||
border: 1rpx solid #D2D2D2;
|
||||
font-size: 20rpx;
|
||||
color: #999999;
|
||||
text-align: center;
|
||||
}
|
||||
.indicatorC .item.select {
|
||||
background-color: #FFFAF1;
|
||||
color: #BB8520;
|
||||
border: 1rpx solid #F2C369;
|
||||
}
|
||||
@@ -18,8 +18,8 @@ const _sfc_main = {
|
||||
//发展时间线数组
|
||||
},
|
||||
methods: {
|
||||
clickAction() {
|
||||
this.$emit("detail");
|
||||
clickAction(item) {
|
||||
this.$emit("detail", item);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -94,7 +94,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
k: `${item.impact_metrics.impact_score}%`,
|
||||
l: common_vendor.t(item.impact_metrics.impact_score),
|
||||
m: index,
|
||||
n: common_vendor.o((...args) => $options.clickAction && $options.clickAction(...args), index)
|
||||
n: common_vendor.o(($event) => $options.clickAction(item), index)
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
@@ -95,6 +95,7 @@ const _sfc_main = {
|
||||
},
|
||||
props: {
|
||||
stockInfo: Object,
|
||||
financialMetricsInfo: Object,
|
||||
barCategoryList: Array,
|
||||
barList: Array,
|
||||
lineList: Array,
|
||||
@@ -148,6 +149,18 @@ const _sfc_main = {
|
||||
chart.setOption(that.option2);
|
||||
}, 2e3);
|
||||
},
|
||||
/**
|
||||
* 获取资产负债状态
|
||||
*/
|
||||
getDebtStatusText(value) {
|
||||
if (value < 40)
|
||||
return { text: "安全", color: "green" };
|
||||
if (value < 60)
|
||||
return { text: "适中", color: "gold" };
|
||||
if (value < 70)
|
||||
return { text: "偏高", color: "orange" };
|
||||
return { text: "风险", color: "red" };
|
||||
},
|
||||
itemClick(index) {
|
||||
common_vendor.index.navigateTo({
|
||||
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
|
||||
@@ -166,16 +179,23 @@ if (!Math) {
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return common_vendor.e({
|
||||
a: $props.stockInfo
|
||||
}, $props.stockInfo ? {
|
||||
}, $props.stockInfo ? common_vendor.e({
|
||||
b: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.profit_growth)),
|
||||
c: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.revenue_growth)),
|
||||
d: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.roe)),
|
||||
e: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.net_margin)),
|
||||
f: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.gross_margin))
|
||||
} : {}, {
|
||||
g: common_vendor.sr("chartRef1", "cf18d1d4-0"),
|
||||
h: common_vendor.sr("chartRef2", "cf18d1d4-1"),
|
||||
i: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
|
||||
f: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.gross_margin)),
|
||||
g: $props.financialMetricsInfo
|
||||
}, $props.financialMetricsInfo ? {
|
||||
h: common_vendor.t($props.financialMetricsInfo.solvency.asset_liability_ratio),
|
||||
i: common_vendor.t($options.getDebtStatusText($props.financialMetricsInfo.solvency.asset_liability_ratio).text),
|
||||
j: common_vendor.s("color: " + $options.getDebtStatusText($props.financialMetricsInfo.solvency.asset_liability_ratio).color),
|
||||
k: common_vendor.t($props.financialMetricsInfo.solvency.current_ratio),
|
||||
l: common_vendor.t($props.financialMetricsInfo.expense_ratios.rd_expense_ratio)
|
||||
} : {}) : {}, {
|
||||
m: common_vendor.sr("chartRef1", "cf18d1d4-0"),
|
||||
n: common_vendor.sr("chartRef2", "cf18d1d4-1"),
|
||||
o: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t(item),
|
||||
b: ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0
|
||||
@@ -187,9 +207,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
f: index == 0 ? "flex-start" : "center"
|
||||
});
|
||||
}),
|
||||
j: $props.productClassificationList.length > 0
|
||||
p: $props.productClassificationList.length > 0
|
||||
}, $props.productClassificationList.length > 0 ? {
|
||||
k: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
|
||||
q: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.content),
|
||||
b: common_vendor.t(item.profit_margin.toFixed(2)),
|
||||
|
||||
@@ -1 +1 @@
|
||||
<view><block wx:if="{{a}}"><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#1DB26F;font-size:30rpx">{{b}}%</view><view style="margin-top:10rpx">利润增长</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">成长能力</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">增长动力</text></view><view style="margin-top:10rpx"><text>营收增长</text><text style="color:#1DB26F;margin:0 10rpx">{{c}}%</text><text style="color:#F59B38">(稳健增长)</text></view></view></view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#F59B38;font-size:30rpx">{{d}}%</view><view style="margin-top:10rpx">ROE</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">盈利与回报</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">赚钱能力</text></view><view style="margin-top:10rpx"><text style="color:#F59B38">良好</text><text style="margin-left:10rpx">净利率 {{e}}%|毛利率 {{f}}%</text></view></view></view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#EC3440;font-size:30rpx">93.52%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">风险与运营</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">安全边际</text></view><view style="margin-top:10rpx"><text style="color:#EC3440">风险</text><text style="margin-left:10rpx">流动比率 0.73|研发费用率 5.48%</text></view></view></view></block><view style="text-align:center;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 营收与利润趋势</view><view style="height:400rpx"><l-echart class="r" u-r="chartRef1" u-i="cf18d1d4-0" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx">主营业务 </view><view style="height:400rpx"><l-echart class="r" u-r="chartRef2" u-i="cf18d1d4-1" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 主营业务明细与历史对比</view><view style="display:grid;grid-template-columns:130rpx repeat(4, 1fr);color:#666666;font-size:20rpx;font-weight:500;background-color:#FAFAFC;margin:20rpx;margin-bottom:0;padding:10rpx;box-sizing:border-box"><view wx:for="{{i}}" wx:for-item="item" style="{{'display:flex;align-items:center;justify-content:center;flex-direction:column' + ';' + ('text-align:' + item.e + ';' + ('align-items:' + item.f))}}"><view>{{item.a}}</view><view wx:if="{{item.b}}" style="{{'font-size:18rpx' + ';' + ('text-align:' + item.d)}}">{{item.c}}</view></view></view><block wx:if="{{j}}"><view wx:for="{{k}}" wx:for-item="item" wx:key="f" class="table" style="{{'display:grid;grid-template-columns:130rpx repeat(4, 1fr);margin:0 20rpx;padding:10rpx' + ';' + ('background-color:' + item.g)}}"><view class="item">{{item.a}}</view><view class="item flexCenter">{{item.b}}%</view><view class="item flexCenter">{{item.c}}</view><view class="item flexCenter">{{item.d}}</view><view class="item flexCenter">{{item.e}}</view></view></block><view style="height:80rpx"></view></view>
|
||||
<view><block wx:if="{{a}}"><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#1DB26F;font-size:30rpx">{{b}}%</view><view style="margin-top:10rpx">利润增长</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">成长能力</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">增长动力</text></view><view style="margin-top:10rpx"><text>营收增长</text><text style="color:#1DB26F;margin:0 10rpx">{{c}}%</text><text style="color:#F59B38">(稳健增长)</text></view></view></view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#F59B38;font-size:30rpx">{{d}}%</view><view style="margin-top:10rpx">ROE</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">盈利与回报</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">赚钱能力</text></view><view style="margin-top:10rpx"><text style="color:#F59B38">良好</text><text style="margin-left:10rpx">净利率 {{e}}%|毛利率 {{f}}%</text></view></view></view><view wx:if="{{g}}" class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#EC3440;font-size:30rpx">{{h}}%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">风险与运营</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">安全边际</text></view><view style="margin-top:10rpx"><text style="{{j}}">{{i}}</text><text style="margin-left:10rpx">流动比率 {{k}}|研发费用率 {{l}}%</text></view></view></view></block><view style="text-align:center;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 营收与利润趋势</view><view style="height:400rpx"><l-echart class="r" u-r="chartRef1" u-i="cf18d1d4-0" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx">主营业务 </view><view style="height:400rpx"><l-echart class="r" u-r="chartRef2" u-i="cf18d1d4-1" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 主营业务明细与历史对比</view><view style="display:grid;grid-template-columns:130rpx repeat(4, 1fr);color:#666666;font-size:20rpx;font-weight:500;background-color:#FAFAFC;margin:20rpx;margin-bottom:0;padding:10rpx;box-sizing:border-box"><view wx:for="{{o}}" wx:for-item="item" style="{{'display:flex;align-items:center;justify-content:center;flex-direction:column' + ';' + ('text-align:' + item.e + ';' + ('align-items:' + item.f))}}"><view>{{item.a}}</view><view wx:if="{{item.b}}" style="{{'font-size:18rpx' + ';' + ('text-align:' + item.d)}}">{{item.c}}</view></view></view><block wx:if="{{p}}"><view wx:for="{{q}}" wx:for-item="item" wx:key="f" class="table" style="{{'display:grid;grid-template-columns:130rpx repeat(4, 1fr);margin:0 20rpx;padding:10rpx' + ';' + ('background-color:' + item.g)}}"><view class="item">{{item.a}}</view><view class="item flexCenter">{{item.b}}%</view><view class="item flexCenter">{{item.c}}</view><view class="item flexCenter">{{item.d}}</view><view class="item flexCenter">{{item.e}}</view></view></block><view style="height:80rpx"></view></view>
|
||||
@@ -180,6 +180,7 @@ const _sfc_main = {
|
||||
//发展时间线统计信息
|
||||
timelineList: [],
|
||||
//发展时间线
|
||||
selectDevelopmentTimelineInfo: null,
|
||||
caiWuList: [
|
||||
{
|
||||
title: "主营数据"
|
||||
@@ -204,6 +205,12 @@ const _sfc_main = {
|
||||
//主营业务折线图数据
|
||||
productClassificationList: [],
|
||||
//主营业务产业分类数据
|
||||
financialBalanceList: [],
|
||||
//资产负债表
|
||||
cashFlowList: [],
|
||||
//现金流量表
|
||||
incomeStatementList: [],
|
||||
//利润表
|
||||
dongTaiList: [
|
||||
{
|
||||
title: "新闻动态"
|
||||
@@ -285,6 +292,7 @@ const _sfc_main = {
|
||||
} else if (index == 2) {
|
||||
this.getFinancialStockInfoData();
|
||||
this.getFinancialComparisonData();
|
||||
this.getFinancialMetricsData();
|
||||
this.getFinancialMainBussinessData();
|
||||
} else if (index == 3) {
|
||||
this.getNewsListData();
|
||||
@@ -326,8 +334,14 @@ const _sfc_main = {
|
||||
clickCaiWuItem(index) {
|
||||
if (this.selectCaiwu != index) {
|
||||
this.selectCaiwu = index;
|
||||
if (index == 1) {
|
||||
if (index == 0) {
|
||||
this.getFinancialMetricsData();
|
||||
} else if (index == 1) {
|
||||
this.getFinancialMetricsData();
|
||||
} else if (index == 2) {
|
||||
this.getFinancialBalanceSheetData();
|
||||
this.getCashFlowSheetData();
|
||||
this.getIncomeStatementSheetData();
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -357,12 +371,15 @@ const _sfc_main = {
|
||||
clickCloseIndustryRankPop() {
|
||||
this.$refs["industryRankPop"].close();
|
||||
},
|
||||
detailShow(type) {
|
||||
if (type == 0) {
|
||||
this.$refs["detailPopup"].open();
|
||||
} else {
|
||||
this.$refs["detailInfoPopup"].open();
|
||||
}
|
||||
/**
|
||||
* 查看发展时间线详情
|
||||
*/
|
||||
clickDevelopmentTimelineDetail(item) {
|
||||
this.selectDevelopmentTimelineInfo = item;
|
||||
this.$refs["developmentTimelinePopup"].open();
|
||||
},
|
||||
clickCloseDevelopmentTimelinePopup() {
|
||||
this.$refs["developmentTimelinePopup"].close();
|
||||
},
|
||||
/**
|
||||
* 查看产业链详情
|
||||
@@ -375,7 +392,7 @@ const _sfc_main = {
|
||||
/**
|
||||
* 关闭产业链弹窗
|
||||
*/
|
||||
clickCloseValueChainPop() {
|
||||
clickCloseValueChainPopup() {
|
||||
this.$refs["valueChainPopup"].close();
|
||||
},
|
||||
/**
|
||||
@@ -692,6 +709,48 @@ const _sfc_main = {
|
||||
}).catch((error) => {
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取资产负债表数据
|
||||
*/
|
||||
getFinancialBalanceSheetData() {
|
||||
let code = this.stockCode;
|
||||
if (this.selectSearchStockInfo) {
|
||||
code = this.selectSearchStockInfo.stock_code;
|
||||
}
|
||||
let param = { limit: 8 };
|
||||
request_api.financialBalanceSheet(code, param).then((res) => {
|
||||
this.financialBalanceList = res.data;
|
||||
}).catch((error) => {
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取现金流量表数据
|
||||
*/
|
||||
getCashFlowSheetData() {
|
||||
let code = this.stockCode;
|
||||
if (this.selectSearchStockInfo) {
|
||||
code = this.selectSearchStockInfo.stock_code;
|
||||
}
|
||||
let param = { limit: 8 };
|
||||
request_api.cashflowSheet(code, param).then((res) => {
|
||||
this.cashFlowList = res.data;
|
||||
}).catch((error) => {
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取利润表数据
|
||||
*/
|
||||
getIncomeStatementSheetData() {
|
||||
let code = this.stockCode;
|
||||
if (this.selectSearchStockInfo) {
|
||||
code = this.selectSearchStockInfo.stock_code;
|
||||
}
|
||||
let param = { limit: 8 };
|
||||
request_api.incomeStatementSheet(code, param).then((res) => {
|
||||
this.incomeStatementList = res.data;
|
||||
}).catch((error) => {
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 获取新闻动态数据
|
||||
*/
|
||||
@@ -925,7 +984,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
} : {}, {
|
||||
ax: $data.selectInDepthAnalysis == 3
|
||||
}, $data.selectInDepthAnalysis == 3 ? {
|
||||
ay: common_vendor.o(($event) => $options.detailShow(1)),
|
||||
ay: common_vendor.o($options.clickDevelopmentTimelineDetail),
|
||||
az: common_vendor.p({
|
||||
keyFactorsInfo: $data.keyFactorsInfo,
|
||||
keyFactorsList: $data.keyFactorsList,
|
||||
@@ -950,7 +1009,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
barCategoryList: $data.mainBussinessBarCategoryList,
|
||||
barList: $data.mainBussinessBarList,
|
||||
lineList: $data.mainBussinessLineList,
|
||||
productClassificationList: $data.productClassificationList
|
||||
productClassificationList: $data.productClassificationList,
|
||||
financialMetricsInfo: $data.financialMetricsList[0]
|
||||
})
|
||||
} : {}, {
|
||||
aE: $data.selectCaiwu == 1
|
||||
@@ -960,10 +1020,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
})
|
||||
} : {}, {
|
||||
aG: $data.selectCaiwu == 2
|
||||
}, $data.selectCaiwu == 2 ? {} : {}) : {}, {
|
||||
aH: $data.selectTab == 3
|
||||
}, $data.selectCaiwu == 2 ? {
|
||||
aH: common_vendor.p({
|
||||
financialBalanceList: $data.financialBalanceList,
|
||||
cashFlowList: $data.cashFlowList,
|
||||
incomeStatementList: $data.incomeStatementList
|
||||
})
|
||||
} : {}) : {}, {
|
||||
aI: $data.selectTab == 3
|
||||
}, $data.selectTab == 3 ? {
|
||||
aI: common_vendor.f($data.dongTaiList, (item, index, i0) => {
|
||||
aJ: common_vendor.f($data.dongTaiList, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.title),
|
||||
b: common_vendor.n("item " + ($data.selectDongtai == index ? "select" : "")),
|
||||
@@ -971,24 +1037,24 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
d: common_vendor.o(($event) => $options.clickDongTaiItem(index), index)
|
||||
};
|
||||
}),
|
||||
aJ: common_vendor.p({
|
||||
aK: common_vendor.p({
|
||||
type: $data.selectDongtai,
|
||||
newsList: $data.newsList,
|
||||
announcementList: $data.companyAnnouncementList
|
||||
})
|
||||
} : {}, {
|
||||
aK: common_vendor.s("top:" + $data.contentTop + "px;"),
|
||||
aL: common_vendor.o(($event) => _ctx.sendEventComment()),
|
||||
aM: _ctx.eventComment,
|
||||
aN: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value),
|
||||
aO: common_assets._imports_2$10,
|
||||
aP: common_assets._imports_3$10,
|
||||
aQ: common_vendor.o(($event) => $options.clickOptional()),
|
||||
aR: common_assets._imports_4$9,
|
||||
aS: common_vendor.o(($event) => $options.clickShare()),
|
||||
aT: common_assets._imports_9$1,
|
||||
aU: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()),
|
||||
aV: common_vendor.f($data.industryRankList, (item, index, i0) => {
|
||||
aL: common_vendor.s("top:" + $data.contentTop + "px;"),
|
||||
aM: common_vendor.o(($event) => _ctx.sendEventComment()),
|
||||
aN: _ctx.eventComment,
|
||||
aO: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value),
|
||||
aP: common_assets._imports_2$10,
|
||||
aQ: common_assets._imports_3$10,
|
||||
aR: common_vendor.o(($event) => $options.clickOptional()),
|
||||
aS: common_assets._imports_4$9,
|
||||
aT: common_vendor.o(($event) => $options.clickShare()),
|
||||
aU: common_assets._imports_9$1,
|
||||
aV: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()),
|
||||
aW: common_vendor.f($data.industryRankList, (item, index, i0) => {
|
||||
return {
|
||||
a: common_vendor.f(item.rankings, (ritem, rindex, i1) => {
|
||||
return common_vendor.e({
|
||||
@@ -1085,68 +1151,68 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
c: index
|
||||
};
|
||||
}),
|
||||
aW: common_assets._imports_1$13,
|
||||
aX: common_vendor.sr("industryRankPop", "817d6950-13"),
|
||||
aY: common_vendor.p({
|
||||
aX: common_assets._imports_1$13,
|
||||
aY: common_vendor.sr("industryRankPop", "817d6950-13"),
|
||||
aZ: common_vendor.p({
|
||||
type: "bottom"
|
||||
}),
|
||||
aZ: common_assets._imports_9$1,
|
||||
ba: common_vendor.o(($event) => $options.clickCloseValueChainPop()),
|
||||
bb: $data.selectValueChainInfo
|
||||
ba: common_assets._imports_9$1,
|
||||
bb: common_vendor.o(($event) => $options.clickCloseValueChainPopup()),
|
||||
bc: $data.selectValueChainInfo
|
||||
}, $data.selectValueChainInfo ? common_vendor.e({
|
||||
bc: common_vendor.t($data.selectValueChainInfo.node_name),
|
||||
bd: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
bd: common_vendor.t($data.selectValueChainInfo.node_name),
|
||||
be: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
|
||||
be: common_vendor.t($data.selectValueChainInfo.node_type)
|
||||
bf: common_vendor.t($data.selectValueChainInfo.node_type)
|
||||
} : {}, {
|
||||
bf: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
bg: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
|
||||
bg: common_vendor.t($data.selectValueChainInfo.market_share)
|
||||
bh: common_vendor.t($data.selectValueChainInfo.market_share)
|
||||
} : {}, {
|
||||
bh: $data.selectValueChainInfo.node_level == 0
|
||||
bi: $data.selectValueChainInfo.node_level == 0
|
||||
}, $data.selectValueChainInfo.node_level == 0 ? {
|
||||
bi: common_vendor.t($data.selectValueChainInfo.node_type)
|
||||
bj: common_vendor.t($data.selectValueChainInfo.node_type)
|
||||
} : {}, {
|
||||
bj: $data.selectValueChainInfo.node_level == 0
|
||||
bk: $data.selectValueChainInfo.node_level == 0
|
||||
}, $data.selectValueChainInfo.node_level == 0 ? {
|
||||
bk: common_vendor.t($data.selectValueChainInfo.market_share)
|
||||
bl: common_vendor.t($data.selectValueChainInfo.market_share)
|
||||
} : {}, {
|
||||
bl: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
bm: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
|
||||
bm: common_vendor.t($data.selectValueChainInfo.node_type)
|
||||
bn: common_vendor.t($data.selectValueChainInfo.node_type)
|
||||
} : {}, {
|
||||
bn: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
bo: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
|
||||
bo: common_vendor.t($data.selectValueChainInfo.market_share)
|
||||
bp: common_vendor.t($data.selectValueChainInfo.market_share)
|
||||
} : {}, {
|
||||
bp: common_vendor.t($data.selectValueChainInfo.node_description),
|
||||
bq: common_vendor.t($data.selectValueChainInfo.importance_score),
|
||||
br: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
bq: common_vendor.t($data.selectValueChainInfo.node_description),
|
||||
br: common_vendor.t($data.selectValueChainInfo.importance_score),
|
||||
bs: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
|
||||
bs: common_vendor.s("width:" + ($data.selectValueChainInfo.importance_score ? $data.selectValueChainInfo.importance_score : 0) + "%;")
|
||||
bt: common_vendor.s("width:" + ($data.selectValueChainInfo.importance_score ? $data.selectValueChainInfo.importance_score : 0) + "%;")
|
||||
} : {}, {
|
||||
bt: $data.selectValueChainInfo.node_level == 0
|
||||
bv: $data.selectValueChainInfo.node_level == 0
|
||||
}, $data.selectValueChainInfo.node_level == 0 ? {
|
||||
bv: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
|
||||
bw: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
|
||||
} : {}, {
|
||||
bw: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
bx: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
|
||||
bx: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
|
||||
by: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
|
||||
} : {}, {
|
||||
by: common_vendor.t($data.selectValueChainInfo.dependency_degree),
|
||||
bz: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
bz: common_vendor.t($data.selectValueChainInfo.dependency_degree),
|
||||
bA: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
|
||||
bA: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
|
||||
bB: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
|
||||
} : {}, {
|
||||
bB: $data.selectValueChainInfo.node_level == 0
|
||||
bC: $data.selectValueChainInfo.node_level == 0
|
||||
}, $data.selectValueChainInfo.node_level == 0 ? {
|
||||
bC: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
|
||||
bD: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
|
||||
} : {}, {
|
||||
bD: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
bE: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
|
||||
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? {
|
||||
bE: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
|
||||
bF: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
|
||||
} : {}, {
|
||||
bF: common_vendor.f($data.relatedCompanyList, (item, index, i0) => {
|
||||
bG: common_vendor.f($data.relatedCompanyList, (item, index, i0) => {
|
||||
return common_vendor.e({
|
||||
a: common_vendor.t(item.stock_name),
|
||||
b: common_vendor.t(item.stock_code),
|
||||
@@ -1161,14 +1227,27 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
});
|
||||
})
|
||||
}) : {}, {
|
||||
bG: common_vendor.sr("valueChainPopup", "817d6950-14"),
|
||||
bH: common_vendor.p({
|
||||
bH: common_vendor.sr("valueChainPopup", "817d6950-14"),
|
||||
bI: common_vendor.p({
|
||||
type: "bottom",
|
||||
safeArea: false
|
||||
}),
|
||||
bI: common_assets._imports_9$1,
|
||||
bJ: common_vendor.sr("detailInfoPopup", "817d6950-15"),
|
||||
bK: common_vendor.p({
|
||||
bJ: common_assets._imports_9$1,
|
||||
bK: common_vendor.o(($event) => $options.clickCloseDevelopmentTimelinePopup()),
|
||||
bL: $data.selectDevelopmentTimelineInfo
|
||||
}, $data.selectDevelopmentTimelineInfo ? {
|
||||
bM: common_vendor.t($data.selectDevelopmentTimelineInfo.event_title),
|
||||
bN: common_vendor.t($data.selectDevelopmentTimelineInfo.event_type),
|
||||
bO: common_vendor.n("eventType " + ($data.selectDevelopmentTimelineInfo.impact_metrics.is_positive == 1 ? "positive" : "negative")),
|
||||
bP: common_vendor.t($data.selectDevelopmentTimelineInfo.event_date),
|
||||
bQ: common_vendor.t($data.selectDevelopmentTimelineInfo.event_desc),
|
||||
bR: common_vendor.t($data.selectDevelopmentTimelineInfo.related_info.financial_impact),
|
||||
bS: common_vendor.n("progress " + ($data.selectDevelopmentTimelineInfo.impact_metrics.is_positive == 1 ? "positive" : "negative")),
|
||||
bT: common_vendor.s("width: " + $data.selectDevelopmentTimelineInfo.impact_metrics.impact_score + "%;"),
|
||||
bU: common_vendor.t($data.selectDevelopmentTimelineInfo.impact_metrics.impact_score)
|
||||
} : {}, {
|
||||
bV: common_vendor.sr("developmentTimelinePopup", "817d6950-15"),
|
||||
bW: common_vendor.p({
|
||||
type: "bottom",
|
||||
safeArea: false
|
||||
})
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -473,3 +473,62 @@ page {
|
||||
.valueChainPopup .valueChainInfoC .progressBgC .progress.downstream {
|
||||
background: linear-gradient(90deg, #48D394 0%, #1DB26F 100%);
|
||||
}
|
||||
.developmentTimelinePopup {
|
||||
background-color: white;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
}
|
||||
.developmentTimelinePopup .popTitle {
|
||||
margin: 0 20rpx;
|
||||
line-height: 100rpx;
|
||||
border-bottom: solid 1rpx #E7E7E7;
|
||||
font-size: 35rpx;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
text-align: center;
|
||||
}
|
||||
.developmentTimelinePopup .closeC {
|
||||
top: 0;
|
||||
right: 0;
|
||||
padding: 40rpx 26rpx;
|
||||
}
|
||||
.developmentTimelinePopup .closeC .icon {
|
||||
display: block;
|
||||
width: 20rpx;
|
||||
height: auto;
|
||||
}
|
||||
.developmentTimelinePopup .eventTypeDateC .eventType {
|
||||
margin-right: 17rpx;
|
||||
font-size: 20;
|
||||
border-radius: 5rpx;
|
||||
line-height: 40rpx;
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
.developmentTimelinePopup .eventTypeDateC .eventType.positive {
|
||||
background-color: #FFE7E9;
|
||||
color: #EC3440;
|
||||
}
|
||||
.developmentTimelinePopup .eventTypeDateC .eventType.negative {
|
||||
background-color: #DEEED6;
|
||||
color: #345423;
|
||||
}
|
||||
.developmentTimelinePopup .eventTypeDateC .date {
|
||||
font-size: 22rpx;
|
||||
color: #999;
|
||||
}
|
||||
.developmentTimelinePopup .progressBgC {
|
||||
background-color: #EFEFEF;
|
||||
margin-left: 13rpx;
|
||||
width: 200rpx;
|
||||
height: 10rpx;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
.developmentTimelinePopup .progressBgC .progress {
|
||||
height: 100%;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
.developmentTimelinePopup .progressBgC .progress.positive {
|
||||
background: linear-gradient(90deg, #FF525D 0%, #EC3440 100%);
|
||||
}
|
||||
.developmentTimelinePopup .progressBgC .progress.negative {
|
||||
background: linear-gradient(90deg, #537D3D 0%, #345423 100%);
|
||||
}
|
||||
|
||||
6
unpackage/dist/dev/mp-weixin/request/api.js
vendored
6
unpackage/dist/dev/mp-weixin/request/api.js
vendored
@@ -48,6 +48,9 @@ const financialStockInfo = (code) => request_http.get("/api/financial/stock-info
|
||||
const financialMetrics = (code, param) => request_http.get("/api/financial/financial-metrics/" + code, param, true);
|
||||
const financialComparison = (code, param) => request_http.get("/api/financial/comparison/" + code, param, true);
|
||||
const financialMainBusiness = (code, param) => request_http.get("/api/financial/main-business/" + code, param, true);
|
||||
const financialBalanceSheet = (code, param) => request_http.get("/api/financial/balance-sheet/" + code, param, true);
|
||||
const cashflowSheet = (code, param) => request_http.get("/api/financial/cashflow/" + code, param, true);
|
||||
const incomeStatementSheet = (code, param) => request_http.get("/api/financial/income-statement/" + code, param, true);
|
||||
const companyAnnouncementsList = (code, param) => request_http.get("/api/stock/" + code + "/announcements", param, true);
|
||||
const userInfo = (param) => request_http.get("/api/user/profile", param);
|
||||
const membershipStatus = (param) => request_http.get("/api/membership/status", param);
|
||||
@@ -70,6 +73,7 @@ exports.calendarCombinedData = calendarCombinedData;
|
||||
exports.calendarDataList = calendarDataList;
|
||||
exports.calendarEventCount = calendarEventCount;
|
||||
exports.calendarEventList = calendarEventList;
|
||||
exports.cashflowSheet = cashflowSheet;
|
||||
exports.commentEvent = commentEvent;
|
||||
exports.companyAnnouncementsList = companyAnnouncementsList;
|
||||
exports.comprehensiveAnalysis = comprehensiveAnalysis;
|
||||
@@ -86,12 +90,14 @@ exports.eventRelatedConcept = eventRelatedConcept;
|
||||
exports.eventRelatedStock = eventRelatedStock;
|
||||
exports.feedback = feedback;
|
||||
exports.filterOptions = filterOptions;
|
||||
exports.financialBalanceSheet = financialBalanceSheet;
|
||||
exports.financialComparison = financialComparison;
|
||||
exports.financialMainBusiness = financialMainBusiness;
|
||||
exports.financialMetrics = financialMetrics;
|
||||
exports.financialStockInfo = financialStockInfo;
|
||||
exports.followEvent = followEvent;
|
||||
exports.homeData = homeData;
|
||||
exports.incomeStatementSheet = incomeStatementSheet;
|
||||
exports.industryCategoryList = industryCategoryList;
|
||||
exports.industryRankList = industryRankList;
|
||||
exports.investEventDetails = investEventDetails;
|
||||
|
||||
Reference in New Issue
Block a user