1.30 财务分析部分模块完善,发展历程弹窗完善
This commit is contained in:
@@ -67,7 +67,6 @@
|
|||||||
<view style="height: 500rpx;">
|
<view style="height: 500rpx;">
|
||||||
<l-echart ref="chartRef2"></l-echart>
|
<l-echart ref="chartRef2"></l-echart>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -10,16 +10,14 @@
|
|||||||
style="width: 13rpx; height: 22rpx;"></image>
|
style="width: 13rpx; height: 22rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
<view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||||
<view
|
<view :class="'item flexCenter '+(cashFlowIndicatorIndex==index?'select':'')"
|
||||||
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">
|
v-for="(item,index) in ['货币资金', '所有者权益', '关键指标']" :key="index">
|
||||||
{{item}}
|
{{item}}
|
||||||
</view>
|
</view>
|
||||||
</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 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;">
|
||||||
@@ -33,49 +31,44 @@
|
|||||||
mode="widthFix"></image>
|
mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view style="height: 400rpx;">
|
||||||
<view
|
<l-echart ref="chartRef1"></l-echart>
|
||||||
style="height: 400rpx; display: flex; align-items: center; justify-content: center; background-color: red;">
|
|
||||||
折线图占位
|
|
||||||
</view>
|
</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="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="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>
|
||||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
<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="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>
|
||||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
<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="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>
|
||||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
<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="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>
|
||||||
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
|
<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="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>
|
||||||
<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="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>
|
||||||
<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="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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<!-- 现金流量表 -->
|
<!-- 现金流量表 -->
|
||||||
<view @click="itemClick(1)" 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;">
|
<view class="flex" style="padding: 20rpx;">
|
||||||
<image src="/pagesStock/static/icon/cwfx-1.png" mode="widthFix"
|
<image src="/pagesStock/static/icon/cwfx-1.png" mode="widthFix"
|
||||||
style="width: 40rpx; height: 40rpx;"></image>
|
style="width: 40rpx; height: 40rpx;"></image>
|
||||||
<view class="flex1" style="margin: 0 10rpx; font-size: 28rpx;">现金流量表</view>
|
<view class="flex1" style="margin: 0 10rpx; font-size: 28rpx;">现金流量表</view>
|
||||||
@@ -83,16 +76,13 @@
|
|||||||
style="width: 13rpx; height: 22rpx;"></image>
|
style="width: 13rpx; height: 22rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
<view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||||
<view
|
<view :class="'item flexCenter '+(cashFlowIndicatorIndex==index?'select':'')" v-for="(item,index) in ['经营现金流', '筹资现金流', '投资现金流']" :key="index" @click="clickCashFlowIndicatorItem(index)">
|
||||||
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">
|
|
||||||
{{item}}
|
{{item}}
|
||||||
</view>
|
</view>
|
||||||
</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 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;">
|
||||||
@@ -106,12 +96,9 @@
|
|||||||
mode="widthFix"></image>
|
mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view style="height: 400rpx;">
|
||||||
<view
|
<l-echart ref="chartRef2"></l-echart>
|
||||||
style="height: 400rpx; display: flex; align-items: center; justify-content: center; background-color: red;">
|
|
||||||
柱状折线图占位
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="background-color: #FAFAFC; border-radius: 10rpx; margin: 0 20rpx; padding: 20rpx 0;">
|
<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="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="flex: 1; color: #999999; margin-right: 20rpx;">经营性现金流</view>
|
||||||
@@ -140,7 +127,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</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;">
|
<view style="display: flex;align-items: center; padding: 20rpx; box-sizing: border-box;">
|
||||||
<image src="/pagesStock/static/icon/cwfx-1.png" mode="widthFix"
|
<image src="/pagesStock/static/icon/cwfx-1.png" mode="widthFix"
|
||||||
style="width: 40rpx; height: 40rpx;"></image>
|
style="width: 40rpx; height: 40rpx;"></image>
|
||||||
@@ -149,22 +136,20 @@
|
|||||||
style="width: 13rpx; height: 22rpx;"></image>
|
style="width: 13rpx; height: 22rpx;"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
<view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(3, 1fr); margin: 0 20rpx;">
|
||||||
<view
|
<view :class="'item flexCenter '+(profitIndicatorIndex==index?'select':'')"
|
||||||
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;"
|
v-for="(item,index) in ['净利润', '营业收入', '期间费用']" :key="index" @click="clickProfitIndicatorItem(index)">
|
||||||
: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">
|
|
||||||
{{item}}
|
{{item}}
|
||||||
</view>
|
</view>
|
||||||
</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 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
|
||||||
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"
|
<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>
|
||||||
@@ -172,7 +157,7 @@
|
|||||||
mode="widthFix"></image>
|
mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
<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"
|
<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>
|
||||||
@@ -182,9 +167,8 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="height: 400rpx;">
|
<view style="height: 400rpx;">
|
||||||
<l-echart ref="chartRef1"></l-echart>
|
<l-echart ref="chartRef3"></l-echart>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="background-color: #FAFAFC; border-radius: 10rpx; margin: 0 20rpx; padding: 20rpx 0;">
|
<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="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="flex: 1; color: #999999; margin-right: 20rpx;">净利润</view>
|
||||||
@@ -216,16 +200,230 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { getNumStr } from '../../utils/util';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name:"cwsj-view",
|
name:"cwsj-view",
|
||||||
data() {
|
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: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>
|
</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>
|
</style>
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
{{timelineInfo.negative_events}}</text>
|
{{timelineInfo.negative_events}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="timelineList">
|
<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">
|
<view class="impactC flexColumnCenter">
|
||||||
<image v-if="item.impact_metrics.is_positive==1" class="icon" style="margin-top: 20rpx;"
|
<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>
|
src="/pagesStock/static/icon/yuan_shang.png" mode="widthFix"></image>
|
||||||
@@ -97,8 +97,8 @@
|
|||||||
timelineList:Array, //发展时间线数组
|
timelineList:Array, //发展时间线数组
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clickAction() {
|
clickAction(item) {
|
||||||
this.$emit('detail')
|
this.$emit('detail',item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,10 +37,10 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</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;">
|
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="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 style="margin-top: 10rpx;">资产负债率</view>
|
||||||
</view>
|
</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>
|
<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 style="margin-top: 10rpx;">
|
||||||
<text style="color: #EC3440;">风险</text>
|
<text :style="'color: '+(getDebtStatusText(financialMetricsInfo.solvency.asset_liability_ratio).color)">{{getDebtStatusText(financialMetricsInfo.solvency.asset_liability_ratio).text}}</text>
|
||||||
<text style="margin-left: 10rpx;">流动比率 0.73|研发费用率 5.48%</text>
|
<text style="margin-left: 10rpx;">流动比率 {{financialMetricsInfo.solvency.current_ratio}}|研发费用率 {{financialMetricsInfo.expense_ratios.rd_expense_ratio}}%</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -190,6 +190,7 @@
|
|||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
stockInfo:Object,
|
stockInfo:Object,
|
||||||
|
financialMetricsInfo:Object,
|
||||||
barCategoryList:Array,
|
barCategoryList:Array,
|
||||||
barList:Array,
|
barList:Array,
|
||||||
lineList:Array, //折线图数据
|
lineList:Array, //折线图数据
|
||||||
@@ -252,6 +253,16 @@
|
|||||||
chart.setOption(that.option2)
|
chart.setOption(that.option2)
|
||||||
}, 2000);
|
}, 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) {
|
itemClick(index) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
|
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
|
||||||
|
|||||||
@@ -175,7 +175,7 @@
|
|||||||
<cyl-view :valueChainAnalysisInfo="valueChainAnalysisInfo" :totalNodes="totalNodes" :upstreamList="upstreamList" :coreEnterpriseList="coreEnterpriseList" :downstreamList="downstreamList" @detail="clickValueChainDetail"></cyl-view>
|
<cyl-view :valueChainAnalysisInfo="valueChainAnalysisInfo" :totalNodes="totalNodes" :upstreamList="upstreamList" :coreEnterpriseList="coreEnterpriseList" :downstreamList="downstreamList" @detail="clickValueChainDetail"></cyl-view>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="selectInDepthAnalysis==3">
|
<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>
|
</template>
|
||||||
</block>
|
</block>
|
||||||
<block v-if="selectTab==2">
|
<block v-if="selectTab==2">
|
||||||
@@ -186,13 +186,14 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<block v-if="selectCaiwu==0">
|
<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>
|
||||||
<block v-if="selectCaiwu==1">
|
<block v-if="selectCaiwu==1">
|
||||||
<cwfx-view :dataList="financialMetricsList"></cwfx-view>
|
<cwfx-view :dataList="financialMetricsList"></cwfx-view>
|
||||||
</block>
|
</block>
|
||||||
<block v-if="selectCaiwu==2">
|
<block v-if="selectCaiwu==2">
|
||||||
<cwsj-view></cwsj-view>
|
<cwsj-view :financialBalanceList="financialBalanceList" :cashFlowList="cashFlowList" :incomeStatementList="incomeStatementList"></cwsj-view>
|
||||||
</block>
|
</block>
|
||||||
</block>
|
</block>
|
||||||
<block v-if="selectTab==3">
|
<block v-if="selectTab==3">
|
||||||
@@ -334,7 +335,7 @@
|
|||||||
<uni-popup ref="valueChainPopup" type="bottom" :safeArea="false">
|
<uni-popup ref="valueChainPopup" type="bottom" :safeArea="false">
|
||||||
<view class="valueChainPopup" style="padding-bottom: env(safe-area-inset-bottom);">
|
<view class="valueChainPopup" style="padding-bottom: env(safe-area-inset-bottom);">
|
||||||
<view class="popTitle">详情</view>
|
<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>
|
<image class="icon" src="/static/icon/home/close.png" mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="selectValueChainInfo" class="valueChainInfoC" style="height: 60vh;">
|
<view v-if="selectValueChainInfo" class="valueChainInfoC" style="height: 60vh;">
|
||||||
@@ -396,30 +397,34 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</uni-popup>
|
</uni-popup>
|
||||||
<uni-popup ref="detailInfoPopup" type="bottom" :safeArea="false">
|
<uni-popup ref="developmentTimelinePopup" type="bottom" :safeArea="false">
|
||||||
<view class="industryRankPop" style="padding-bottom: env(safe-area-inset-bottom);">
|
<view class="developmentTimelinePopup" style="padding-bottom: env(safe-area-inset-bottom);">
|
||||||
<view class="popTitle">详情</view>
|
<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>
|
<image class="icon" src="/static/icon/home/close.png" mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
<view style="max-height: 60vh; padding: 0 20rpx; box-sizing: border-box;">
|
<view v-if="selectDevelopmentTimelineInfo" style="max-height: 60vh; padding: 0 20rpx;">
|
||||||
<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;">
|
<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;">不良贷款率连续四年低于1.1%</view>
|
<view style="font-size: 28rpx; font-weight: bold;">{{selectDevelopmentTimelineInfo.event_title}}</view>
|
||||||
<view style="display: flex; align-items: center; margin: 20rpx 0;">
|
<view class="eventTypeDateC flex" style="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 :class="'eventType '+(selectDevelopmentTimelineInfo.impact_metrics.is_positive==1?'positive':'negative')">{{selectDevelopmentTimelineInfo.event_type}}</view>
|
||||||
<view style="margin-left: 10rpx;">2025-06-30</view>
|
<view class="date">{{selectDevelopmentTimelineInfo.event_date}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="color: #BB8520; margin-top: 30rpx;">事件详情</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: #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="color: #BB8520; margin-top: 30rpx;">影响评估</view>
|
||||||
<view style="display: flex; align-items: center; margin-top: 13rpx;">
|
<view class="flex" style="margin-top: 13rpx;">
|
||||||
<view><text style="color: #71675D;">影响度</text></view>
|
<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;">影响度</text>
|
||||||
<text style="color: #71675D; margin-left: 10rpx;">86 / 100</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>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
@@ -430,7 +435,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { inject } from 'vue'
|
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'
|
import { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown, getAgeByBirthYear } from '@/utils/util'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -569,6 +574,7 @@
|
|||||||
keyFactorsList:[], //关键因素
|
keyFactorsList:[], //关键因素
|
||||||
timelineInfo:null, //发展时间线统计信息
|
timelineInfo:null, //发展时间线统计信息
|
||||||
timelineList:[], //发展时间线
|
timelineList:[], //发展时间线
|
||||||
|
selectDevelopmentTimelineInfo:null,
|
||||||
caiWuList: [{
|
caiWuList: [{
|
||||||
title: '主营数据'
|
title: '主营数据'
|
||||||
},
|
},
|
||||||
@@ -586,6 +592,9 @@
|
|||||||
mainBussinessBarList:[], //主营业务柱状图数据
|
mainBussinessBarList:[], //主营业务柱状图数据
|
||||||
mainBussinessLineList:[], //主营业务折线图数据
|
mainBussinessLineList:[], //主营业务折线图数据
|
||||||
productClassificationList:[], //主营业务产业分类数据
|
productClassificationList:[], //主营业务产业分类数据
|
||||||
|
financialBalanceList:[], //资产负债表
|
||||||
|
cashFlowList:[], //现金流量表
|
||||||
|
incomeStatementList:[], //利润表
|
||||||
dongTaiList: [{
|
dongTaiList: [{
|
||||||
title: '新闻动态'
|
title: '新闻动态'
|
||||||
},
|
},
|
||||||
@@ -600,7 +609,6 @@
|
|||||||
getLocalDate:getLocalDate,
|
getLocalDate:getLocalDate,
|
||||||
getRateUpOrDown:getRateUpOrDown, //判断涨跌
|
getRateUpOrDown:getRateUpOrDown, //判断涨跌
|
||||||
getNumStr:getNumStr, //获取数字展示万或亿
|
getNumStr:getNumStr, //获取数字展示万或亿
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(e) {
|
onLoad(e) {
|
||||||
@@ -665,6 +673,7 @@
|
|||||||
//获取股票信息数据
|
//获取股票信息数据
|
||||||
this.getFinancialStockInfoData()
|
this.getFinancialStockInfoData()
|
||||||
this.getFinancialComparisonData()
|
this.getFinancialComparisonData()
|
||||||
|
this.getFinancialMetricsData()
|
||||||
this.getFinancialMainBussinessData()
|
this.getFinancialMainBussinessData()
|
||||||
}else if(index==3) {
|
}else if(index==3) {
|
||||||
//获取新闻动态数据
|
//获取新闻动态数据
|
||||||
@@ -711,12 +720,22 @@
|
|||||||
clickCaiWuItem(index) {
|
clickCaiWuItem(index) {
|
||||||
if (this.selectCaiwu != index) {
|
if (this.selectCaiwu != index) {
|
||||||
this.selectCaiwu = index
|
this.selectCaiwu = index
|
||||||
if(index==1) {
|
if(index==0) {
|
||||||
|
//主营数据
|
||||||
this.getFinancialMetricsData()
|
this.getFinancialMetricsData()
|
||||||
|
}else if(index==1) {
|
||||||
|
//财务分析
|
||||||
|
this.getFinancialMetricsData()
|
||||||
|
}else if(index==2) {
|
||||||
|
//资产负债表
|
||||||
|
this.getFinancialBalanceSheetData()
|
||||||
|
//现金流量表
|
||||||
|
this.getCashFlowSheetData()
|
||||||
|
//利润表
|
||||||
|
this.getIncomeStatementSheetData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 点击选择动态分类
|
* 点击选择动态分类
|
||||||
* @param {Object} index
|
* @param {Object} index
|
||||||
@@ -746,12 +765,18 @@
|
|||||||
{
|
{
|
||||||
this.$refs["industryRankPop"].close()
|
this.$refs["industryRankPop"].close()
|
||||||
},
|
},
|
||||||
detailShow(type) {
|
/**
|
||||||
if (type == 0) {
|
* 查看发展时间线详情
|
||||||
this.$refs["detailPopup"].open()
|
*/
|
||||||
}else {
|
clickDevelopmentTimelineDetail(item)
|
||||||
this.$refs["detailInfoPopup"].open()
|
{
|
||||||
}
|
this.selectDevelopmentTimelineInfo = item;
|
||||||
|
// this.getValueChainRelatedCompanyData()
|
||||||
|
this.$refs["developmentTimelinePopup"].open()
|
||||||
|
},
|
||||||
|
clickCloseDevelopmentTimelinePopup()
|
||||||
|
{
|
||||||
|
this.$refs["developmentTimelinePopup"].close()
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 查看产业链详情
|
* 查看产业链详情
|
||||||
@@ -765,7 +790,7 @@
|
|||||||
/**
|
/**
|
||||||
* 关闭产业链弹窗
|
* 关闭产业链弹窗
|
||||||
*/
|
*/
|
||||||
clickCloseValueChainPop()
|
clickCloseValueChainPopup()
|
||||||
{
|
{
|
||||||
this.$refs["valueChainPopup"].close()
|
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=>{
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取新闻动态数据
|
* 获取新闻动态数据
|
||||||
*/
|
*/
|
||||||
@@ -1735,4 +1811,78 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.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>
|
</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 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;
|
return isWritable;
|
||||||
}
|
}
|
||||||
function initRuntimeSocketService() {
|
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 port = "8090";
|
||||||
const id = "mp-weixin_6VDL_I";
|
const id = "mp-weixin_D36YnR";
|
||||||
const lazy = typeof swan !== "undefined";
|
const lazy = typeof swan !== "undefined";
|
||||||
let restoreError = lazy ? () => {
|
let restoreError = lazy ? () => {
|
||||||
} : initOnError();
|
} : initOnError();
|
||||||
|
|||||||
@@ -1,10 +1,216 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
|
const utils_util = require("../../utils/util.js");
|
||||||
const common_vendor = require("../../common/vendor.js");
|
const common_vendor = require("../../common/vendor.js");
|
||||||
const common_assets = require("../../common/assets.js");
|
const common_assets = require("../../common/assets.js");
|
||||||
const _sfc_main = {
|
const _sfc_main = {
|
||||||
name: "cwsj-view",
|
name: "cwsj-view",
|
||||||
data() {
|
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) {
|
if (!Array) {
|
||||||
@@ -16,53 +222,59 @@ 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_assets._imports_0$8,
|
a: common_assets._imports_0$8,
|
||||||
b: common_assets._imports_1$2,
|
b: common_assets._imports_1$2,
|
||||||
c: common_vendor.f(["货币资金", "所有者权益", "关键指标"], (item, index, i0) => {
|
c: common_vendor.f(["货币资金", "所有者权益", "关键指标"], (item, index, i0) => {
|
||||||
return {
|
return {
|
||||||
a: common_vendor.t(item),
|
a: common_vendor.t(item),
|
||||||
b: index == 0 ? "#BB8520" : "#999999",
|
b: common_vendor.n("item flexCenter " + ($data.cashFlowIndicatorIndex == index ? "select" : "")),
|
||||||
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
|
c: index
|
||||||
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
|
|
||||||
e: index
|
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
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_vendor.o(($event) => _ctx.itemClick(0)),
|
f: common_vendor.sr("chartRef1", "63ca7cac-0"),
|
||||||
g: common_assets._imports_0$8,
|
g: $props.financialBalanceList.length > 0
|
||||||
h: common_assets._imports_1$2,
|
}, $props.financialBalanceList.length > 0 ? {
|
||||||
i: common_vendor.f(["经营现金流", "筹资现金流", "投资现金流"], (item, index, i0) => {
|
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 {
|
return {
|
||||||
a: common_vendor.t(item),
|
a: common_vendor.t(item),
|
||||||
b: index == 0 ? "#BB8520" : "#999999",
|
b: common_vendor.n("item flexCenter " + ($data.cashFlowIndicatorIndex == index ? "select" : "")),
|
||||||
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
|
c: index,
|
||||||
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
|
d: common_vendor.o(($event) => $options.clickCashFlowIndicatorItem(index), index)
|
||||||
e: index
|
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
j: common_assets._imports_2$14,
|
s: common_assets._imports_2$14,
|
||||||
k: common_assets._imports_3$13,
|
t: common_assets._imports_3$13,
|
||||||
l: common_vendor.o(($event) => _ctx.itemClick(1)),
|
v: common_vendor.sr("chartRef2", "63ca7cac-1"),
|
||||||
m: common_assets._imports_0$8,
|
w: common_assets._imports_0$8,
|
||||||
n: common_assets._imports_1$2,
|
x: common_assets._imports_1$2,
|
||||||
o: common_vendor.f(["净利润", "营业收入", "期间费用"], (item, index, i0) => {
|
y: common_vendor.f(["净利润", "营业收入", "期间费用"], (item, index, i0) => {
|
||||||
return {
|
return {
|
||||||
a: common_vendor.t(item),
|
a: common_vendor.t(item),
|
||||||
b: index == 0 ? "#BB8520" : "#999999",
|
b: common_vendor.n("item flexCenter " + ($data.profitIndicatorIndex == index ? "select" : "")),
|
||||||
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`,
|
c: index,
|
||||||
d: index == 0 ? "#FFFAF1" : "#FFFFFF",
|
d: common_vendor.o(($event) => $options.clickProfitIndicatorItem(index), index)
|
||||||
e: index
|
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
p: common_assets._imports_2$14,
|
z: common_assets._imports_2$14,
|
||||||
q: common_assets._imports_3$13,
|
A: common_assets._imports_3$13,
|
||||||
r: common_assets._imports_2$14,
|
B: common_assets._imports_2$14,
|
||||||
s: common_assets._imports_3$13,
|
C: common_assets._imports_3$13,
|
||||||
t: common_vendor.sr("chartRef1", "63ca7cac-0"),
|
D: common_vendor.sr("chartRef3", "63ca7cac-2")
|
||||||
v: common_vendor.o(($event) => _ctx.itemClick(2))
|
});
|
||||||
};
|
|
||||||
}
|
}
|
||||||
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);
|
||||||
|
|||||||
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: {
|
methods: {
|
||||||
clickAction() {
|
clickAction(item) {
|
||||||
this.$emit("detail");
|
this.$emit("detail", item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -94,7 +94,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
k: `${item.impact_metrics.impact_score}%`,
|
k: `${item.impact_metrics.impact_score}%`,
|
||||||
l: common_vendor.t(item.impact_metrics.impact_score),
|
l: common_vendor.t(item.impact_metrics.impact_score),
|
||||||
m: index,
|
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: {
|
props: {
|
||||||
stockInfo: Object,
|
stockInfo: Object,
|
||||||
|
financialMetricsInfo: Object,
|
||||||
barCategoryList: Array,
|
barCategoryList: Array,
|
||||||
barList: Array,
|
barList: Array,
|
||||||
lineList: Array,
|
lineList: Array,
|
||||||
@@ -148,6 +149,18 @@ const _sfc_main = {
|
|||||||
chart.setOption(that.option2);
|
chart.setOption(that.option2);
|
||||||
}, 2e3);
|
}, 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) {
|
itemClick(index) {
|
||||||
common_vendor.index.navigateTo({
|
common_vendor.index.navigateTo({
|
||||||
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
|
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
|
||||||
@@ -166,16 +179,23 @@ if (!Math) {
|
|||||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||||
return common_vendor.e({
|
return common_vendor.e({
|
||||||
a: $props.stockInfo
|
a: $props.stockInfo
|
||||||
}, $props.stockInfo ? {
|
}, $props.stockInfo ? common_vendor.e({
|
||||||
b: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.profit_growth)),
|
b: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.profit_growth)),
|
||||||
c: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.revenue_growth)),
|
c: common_vendor.t($data.getChgRateStr($props.stockInfo.growth_rates.revenue_growth)),
|
||||||
d: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.roe)),
|
d: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.roe)),
|
||||||
e: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.net_margin)),
|
e: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.net_margin)),
|
||||||
f: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.gross_margin))
|
f: common_vendor.t($data.getChgRateStr($props.stockInfo.key_metrics.gross_margin)),
|
||||||
} : {}, {
|
g: $props.financialMetricsInfo
|
||||||
g: common_vendor.sr("chartRef1", "cf18d1d4-0"),
|
}, $props.financialMetricsInfo ? {
|
||||||
h: common_vendor.sr("chartRef2", "cf18d1d4-1"),
|
h: common_vendor.t($props.financialMetricsInfo.solvency.asset_liability_ratio),
|
||||||
i: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
|
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({
|
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
|
||||||
@@ -187,9 +207,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
f: index == 0 ? "flex-start" : "center"
|
f: index == 0 ? "flex-start" : "center"
|
||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
j: $props.productClassificationList.length > 0
|
p: $props.productClassificationList.length > 0
|
||||||
}, $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 {
|
return {
|
||||||
a: common_vendor.t(item.content),
|
a: common_vendor.t(item.content),
|
||||||
b: common_vendor.t(item.profit_margin.toFixed(2)),
|
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: [],
|
timelineList: [],
|
||||||
//发展时间线
|
//发展时间线
|
||||||
|
selectDevelopmentTimelineInfo: null,
|
||||||
caiWuList: [
|
caiWuList: [
|
||||||
{
|
{
|
||||||
title: "主营数据"
|
title: "主营数据"
|
||||||
@@ -204,6 +205,12 @@ const _sfc_main = {
|
|||||||
//主营业务折线图数据
|
//主营业务折线图数据
|
||||||
productClassificationList: [],
|
productClassificationList: [],
|
||||||
//主营业务产业分类数据
|
//主营业务产业分类数据
|
||||||
|
financialBalanceList: [],
|
||||||
|
//资产负债表
|
||||||
|
cashFlowList: [],
|
||||||
|
//现金流量表
|
||||||
|
incomeStatementList: [],
|
||||||
|
//利润表
|
||||||
dongTaiList: [
|
dongTaiList: [
|
||||||
{
|
{
|
||||||
title: "新闻动态"
|
title: "新闻动态"
|
||||||
@@ -285,6 +292,7 @@ const _sfc_main = {
|
|||||||
} else if (index == 2) {
|
} else if (index == 2) {
|
||||||
this.getFinancialStockInfoData();
|
this.getFinancialStockInfoData();
|
||||||
this.getFinancialComparisonData();
|
this.getFinancialComparisonData();
|
||||||
|
this.getFinancialMetricsData();
|
||||||
this.getFinancialMainBussinessData();
|
this.getFinancialMainBussinessData();
|
||||||
} else if (index == 3) {
|
} else if (index == 3) {
|
||||||
this.getNewsListData();
|
this.getNewsListData();
|
||||||
@@ -326,8 +334,14 @@ const _sfc_main = {
|
|||||||
clickCaiWuItem(index) {
|
clickCaiWuItem(index) {
|
||||||
if (this.selectCaiwu != index) {
|
if (this.selectCaiwu != index) {
|
||||||
this.selectCaiwu = index;
|
this.selectCaiwu = index;
|
||||||
if (index == 1) {
|
if (index == 0) {
|
||||||
this.getFinancialMetricsData();
|
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() {
|
clickCloseIndustryRankPop() {
|
||||||
this.$refs["industryRankPop"].close();
|
this.$refs["industryRankPop"].close();
|
||||||
},
|
},
|
||||||
detailShow(type) {
|
/**
|
||||||
if (type == 0) {
|
* 查看发展时间线详情
|
||||||
this.$refs["detailPopup"].open();
|
*/
|
||||||
} else {
|
clickDevelopmentTimelineDetail(item) {
|
||||||
this.$refs["detailInfoPopup"].open();
|
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();
|
this.$refs["valueChainPopup"].close();
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -692,6 +709,48 @@ const _sfc_main = {
|
|||||||
}).catch((error) => {
|
}).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
|
ax: $data.selectInDepthAnalysis == 3
|
||||||
}, $data.selectInDepthAnalysis == 3 ? {
|
}, $data.selectInDepthAnalysis == 3 ? {
|
||||||
ay: common_vendor.o(($event) => $options.detailShow(1)),
|
ay: common_vendor.o($options.clickDevelopmentTimelineDetail),
|
||||||
az: common_vendor.p({
|
az: common_vendor.p({
|
||||||
keyFactorsInfo: $data.keyFactorsInfo,
|
keyFactorsInfo: $data.keyFactorsInfo,
|
||||||
keyFactorsList: $data.keyFactorsList,
|
keyFactorsList: $data.keyFactorsList,
|
||||||
@@ -950,7 +1009,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
barCategoryList: $data.mainBussinessBarCategoryList,
|
barCategoryList: $data.mainBussinessBarCategoryList,
|
||||||
barList: $data.mainBussinessBarList,
|
barList: $data.mainBussinessBarList,
|
||||||
lineList: $data.mainBussinessLineList,
|
lineList: $data.mainBussinessLineList,
|
||||||
productClassificationList: $data.productClassificationList
|
productClassificationList: $data.productClassificationList,
|
||||||
|
financialMetricsInfo: $data.financialMetricsList[0]
|
||||||
})
|
})
|
||||||
} : {}, {
|
} : {}, {
|
||||||
aE: $data.selectCaiwu == 1
|
aE: $data.selectCaiwu == 1
|
||||||
@@ -960,10 +1020,16 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
})
|
})
|
||||||
} : {}, {
|
} : {}, {
|
||||||
aG: $data.selectCaiwu == 2
|
aG: $data.selectCaiwu == 2
|
||||||
}, $data.selectCaiwu == 2 ? {} : {}) : {}, {
|
}, $data.selectCaiwu == 2 ? {
|
||||||
aH: $data.selectTab == 3
|
aH: common_vendor.p({
|
||||||
|
financialBalanceList: $data.financialBalanceList,
|
||||||
|
cashFlowList: $data.cashFlowList,
|
||||||
|
incomeStatementList: $data.incomeStatementList
|
||||||
|
})
|
||||||
|
} : {}) : {}, {
|
||||||
|
aI: $data.selectTab == 3
|
||||||
}, $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 {
|
return {
|
||||||
a: common_vendor.t(item.title),
|
a: common_vendor.t(item.title),
|
||||||
b: common_vendor.n("item " + ($data.selectDongtai == index ? "select" : "")),
|
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)
|
d: common_vendor.o(($event) => $options.clickDongTaiItem(index), index)
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
aJ: common_vendor.p({
|
aK: common_vendor.p({
|
||||||
type: $data.selectDongtai,
|
type: $data.selectDongtai,
|
||||||
newsList: $data.newsList,
|
newsList: $data.newsList,
|
||||||
announcementList: $data.companyAnnouncementList
|
announcementList: $data.companyAnnouncementList
|
||||||
})
|
})
|
||||||
} : {}, {
|
} : {}, {
|
||||||
aK: common_vendor.s("top:" + $data.contentTop + "px;"),
|
aL: common_vendor.s("top:" + $data.contentTop + "px;"),
|
||||||
aL: common_vendor.o(($event) => _ctx.sendEventComment()),
|
aM: common_vendor.o(($event) => _ctx.sendEventComment()),
|
||||||
aM: _ctx.eventComment,
|
aN: _ctx.eventComment,
|
||||||
aN: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value),
|
aO: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value),
|
||||||
aO: common_assets._imports_2$10,
|
aP: common_assets._imports_2$10,
|
||||||
aP: common_assets._imports_3$10,
|
aQ: common_assets._imports_3$10,
|
||||||
aQ: common_vendor.o(($event) => $options.clickOptional()),
|
aR: common_vendor.o(($event) => $options.clickOptional()),
|
||||||
aR: common_assets._imports_4$9,
|
aS: common_assets._imports_4$9,
|
||||||
aS: common_vendor.o(($event) => $options.clickShare()),
|
aT: common_vendor.o(($event) => $options.clickShare()),
|
||||||
aT: common_assets._imports_9$1,
|
aU: common_assets._imports_9$1,
|
||||||
aU: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()),
|
aV: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()),
|
||||||
aV: common_vendor.f($data.industryRankList, (item, index, i0) => {
|
aW: common_vendor.f($data.industryRankList, (item, index, i0) => {
|
||||||
return {
|
return {
|
||||||
a: common_vendor.f(item.rankings, (ritem, rindex, i1) => {
|
a: common_vendor.f(item.rankings, (ritem, rindex, i1) => {
|
||||||
return common_vendor.e({
|
return common_vendor.e({
|
||||||
@@ -1085,68 +1151,68 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|||||||
c: index
|
c: index
|
||||||
};
|
};
|
||||||
}),
|
}),
|
||||||
aW: common_assets._imports_1$13,
|
aX: common_assets._imports_1$13,
|
||||||
aX: common_vendor.sr("industryRankPop", "817d6950-13"),
|
aY: common_vendor.sr("industryRankPop", "817d6950-13"),
|
||||||
aY: common_vendor.p({
|
aZ: common_vendor.p({
|
||||||
type: "bottom"
|
type: "bottom"
|
||||||
}),
|
}),
|
||||||
aZ: common_assets._imports_9$1,
|
ba: common_assets._imports_9$1,
|
||||||
ba: common_vendor.o(($event) => $options.clickCloseValueChainPop()),
|
bb: common_vendor.o(($event) => $options.clickCloseValueChainPopup()),
|
||||||
bb: $data.selectValueChainInfo
|
bc: $data.selectValueChainInfo
|
||||||
}, $data.selectValueChainInfo ? common_vendor.e({
|
}, $data.selectValueChainInfo ? common_vendor.e({
|
||||||
bc: common_vendor.t($data.selectValueChainInfo.node_name),
|
bd: common_vendor.t($data.selectValueChainInfo.node_name),
|
||||||
bd: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
be: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||||
}, $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 ? {
|
}, $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 ? {
|
}, $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 ? {
|
}, $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 ? {
|
}, $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 ? {
|
}, $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.node_description),
|
||||||
bq: common_vendor.t($data.selectValueChainInfo.importance_score),
|
br: common_vendor.t($data.selectValueChainInfo.importance_score),
|
||||||
br: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
bs: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||||
}, $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 ? {
|
}, $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 ? {
|
}, $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: common_vendor.t($data.selectValueChainInfo.dependency_degree),
|
||||||
bz: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
bA: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
|
||||||
}, $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 ? {
|
}, $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 ? {
|
}, $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({
|
return common_vendor.e({
|
||||||
a: common_vendor.t(item.stock_name),
|
a: common_vendor.t(item.stock_name),
|
||||||
b: common_vendor.t(item.stock_code),
|
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.sr("valueChainPopup", "817d6950-14"),
|
||||||
bH: common_vendor.p({
|
bI: common_vendor.p({
|
||||||
type: "bottom",
|
type: "bottom",
|
||||||
safeArea: false
|
safeArea: false
|
||||||
}),
|
}),
|
||||||
bI: common_assets._imports_9$1,
|
bJ: common_assets._imports_9$1,
|
||||||
bJ: common_vendor.sr("detailInfoPopup", "817d6950-15"),
|
bK: common_vendor.o(($event) => $options.clickCloseDevelopmentTimelinePopup()),
|
||||||
bK: common_vendor.p({
|
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",
|
type: "bottom",
|
||||||
safeArea: false
|
safeArea: false
|
||||||
})
|
})
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -473,3 +473,62 @@ page {
|
|||||||
.valueChainPopup .valueChainInfoC .progressBgC .progress.downstream {
|
.valueChainPopup .valueChainInfoC .progressBgC .progress.downstream {
|
||||||
background: linear-gradient(90deg, #48D394 0%, #1DB26F 100%);
|
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 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 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 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 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);
|
||||||
@@ -70,6 +73,7 @@ exports.calendarCombinedData = calendarCombinedData;
|
|||||||
exports.calendarDataList = calendarDataList;
|
exports.calendarDataList = calendarDataList;
|
||||||
exports.calendarEventCount = calendarEventCount;
|
exports.calendarEventCount = calendarEventCount;
|
||||||
exports.calendarEventList = calendarEventList;
|
exports.calendarEventList = calendarEventList;
|
||||||
|
exports.cashflowSheet = cashflowSheet;
|
||||||
exports.commentEvent = commentEvent;
|
exports.commentEvent = commentEvent;
|
||||||
exports.companyAnnouncementsList = companyAnnouncementsList;
|
exports.companyAnnouncementsList = companyAnnouncementsList;
|
||||||
exports.comprehensiveAnalysis = comprehensiveAnalysis;
|
exports.comprehensiveAnalysis = comprehensiveAnalysis;
|
||||||
@@ -86,12 +90,14 @@ exports.eventRelatedConcept = eventRelatedConcept;
|
|||||||
exports.eventRelatedStock = eventRelatedStock;
|
exports.eventRelatedStock = eventRelatedStock;
|
||||||
exports.feedback = feedback;
|
exports.feedback = feedback;
|
||||||
exports.filterOptions = filterOptions;
|
exports.filterOptions = filterOptions;
|
||||||
|
exports.financialBalanceSheet = financialBalanceSheet;
|
||||||
exports.financialComparison = financialComparison;
|
exports.financialComparison = financialComparison;
|
||||||
exports.financialMainBusiness = financialMainBusiness;
|
exports.financialMainBusiness = financialMainBusiness;
|
||||||
exports.financialMetrics = financialMetrics;
|
exports.financialMetrics = financialMetrics;
|
||||||
exports.financialStockInfo = financialStockInfo;
|
exports.financialStockInfo = financialStockInfo;
|
||||||
exports.followEvent = followEvent;
|
exports.followEvent = followEvent;
|
||||||
exports.homeData = homeData;
|
exports.homeData = homeData;
|
||||||
|
exports.incomeStatementSheet = incomeStatementSheet;
|
||||||
exports.industryCategoryList = industryCategoryList;
|
exports.industryCategoryList = industryCategoryList;
|
||||||
exports.industryRankList = industryRankList;
|
exports.industryRankList = industryRankList;
|
||||||
exports.investEventDetails = investEventDetails;
|
exports.investEventDetails = investEventDetails;
|
||||||
|
|||||||
Reference in New Issue
Block a user