Files
JiaZhiQianYan/components/zysj-view/zysj-view.vue
2026-01-28 14:43:26 +08:00

223 lines
7.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

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

<template>
<view>
<view class="flex"
style="font-size: 22rpx; color: #999999; font-weight: 500; margin: 20rpx; padding: 20rpx; box-sizing: border-box ;border: 1rpx solid #F5F5F5; border-radius: 10rpx;">
<view style="width: 195rpx;">
<view style="font-weight: bold; color: #1DB26F; font-size: 30rpx;">+12.50%</view>
<view style="margin-top: 10rpx;">利润增长</view>
</view>
<view>
<view style="display: flex; align-items: center;">
<text
style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">成长能力</text>
<text
style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">增长动力</text>
</view>
<view style="margin-top: 10rpx;">
<text>营收增长</text>
<text style="color: #1DB26F; margin: 0 10rpx;">+8.20%</text>
<text style="color: #F59B38;">稳健增长</text>
</view>
</view>
</view>
<view
style="display: flex; align-items: center; font-size: 22rpx; color: #999999; font-weight: 500; margin: 20rpx; padding: 20rpx; box-sizing: border-box ;border: 1rpx solid #F5F5F5; border-radius: 10rpx;">
<view style="width: 195rpx;">
<view style="font-weight: bold; color: #F59B38; font-size: 30rpx;">16.23%</view>
<view style="margin-top: 10rpx;">ROE</view>
</view>
<view>
<view style="display: flex; align-items: center;">
<text
style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">盈利与回报</text>
<text
style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">赚钱能力</text>
</view>
<view style="margin-top: 10rpx;">
<text style="color: #F59B38;">良好</text>
<text style="margin-left: 10rpx;">净利率 32.56%|毛利率 71.92%</text>
</view>
</view>
</view>
<view class="flex"
style="display: flex; align-items: center; font-size: 22rpx; color: #999999; font-weight: 500; margin: 20rpx; padding: 20rpx; box-sizing: border-box ;border: 1rpx solid #F5F5F5; border-radius: 10rpx;">
<view style="width: 195rpx;">
<view style="font-weight: bold; color: #EC3440; font-size: 30rpx;">93.52%</view>
<view style="margin-top: 10rpx;">资产负债率</view>
</view>
<view>
<view style="display: flex; align-items: center;">
<text
style="font-weight: bold; color: #070707; font-size: 26rpx; margin-right: 10rpx;">风险与运营</text>
<text
style="color: #A97F53; font-size: 20rpx; padding: 2rpx 5rpx; background-color: #F8F4ED; border: 1rpx solid #F1E7D8; border-radius: 3rpx;">安全边际</text>
</view>
<view style="margin-top: 10rpx;">
<text style="color: #EC3440;">风险</text>
<text style="margin-left: 10rpx;">流动比率 0.73|研发费用率 5.48%</text>
</view>
</view>
</view>
<view style="text-align: center; font-size: 26rpx; color: #2B2B2B; font-weight: bold; margin: 20rpx;">
营收与利润趋势</view>
<view style="height: 400rpx;">
<l-echart ref="chartRef1"></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 ref="chartRef2"></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 v-for="(item, index) in ['业务', '毛利率', '利润', '营收', '营收']"
style="display: flex;align-items: center;justify-content: center; flex-direction: column;"
:style="{'text-align': index == 0 ? 'left' : 'center', 'align-items': index == 0 ? 'flex-start' : 'center'}">
<view>{{item}}</view>
<view v-if="['', '(2025年中报)', '(2025年中报)', '(2025年中报)', '(2024年年报)'][index].length > 0"
style="font-size: 18rpx;" :style="{'text-align': index == 0 ? 'left' : 'center'}">
{{['', '(2025年中报)', '(2025年中报)', '(2025年中报)', '(2024年年报)'][index]}}
</view>
</view>
</view>
<view v-for="(item, index) in ['零售金融业务', '批发金融业务', '其他业务']"
style="display: grid; grid-template-columns: 130rpx repeat(4, 1fr); color: #666666; font-size: 20rpx; font-weight: 500; margin: 0 20rpx; padding: 10rpx; box-sizing: border-box;"
:style="{'background-color': (index % 2 == 0 ? '#FFFFFF' : '#FAFAFC')}">
<view v-for="(item, index) in [item, '64.53%', '200.57亿', '310.81亿', '712.55亿']"
:style="{'text-align': index == 0 ? 'left' : 'center'}">{{item}}</view>
</view>
<view style="height: 80rpx;"></view>
</view>
</template>
<script>
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
export default {
name: "zysj-view",
data() {
return {
option1:{
xAxis: {
type: 'category',
data: []
},
yAxis: [{
type: 'value',
name:'营收(亿)',
position:'left',
alignTicks:true,
axisLine:{
onZero:false
}
},
{
type: 'value',
name:'利润(亿)',
position:'right',
alignTicks:true,
axisLine:{
onZero:false
}
}
],
series: [
{
type: 'bar',
data: [],
yAxisIndex:0
},
{
type: 'line',
data: [],
yAxisIndex:1
}
]
},
option2:{
xAxis: {
type: 'category',
data: []
},
yAxis: {
type: 'value'
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130],
type: 'pie',
showBackground: true,
backgroundStyle: {
color: 'rgba(180, 180, 180, 0.2)'
}
}
]
}
};
},
props: { // 0 主营数据 1 财务分析 2 财务数据
type: Number,
barCategoryList:Array,
barList:Array,
lineList:Array
},
watch:{
barList(newValue){
this.option1.series[0].data = newValue
this.barLineInit()
},
lineList(newValue){
this.option1.series[1].data = newValue
this.barLineInit()
}
},
methods: {
/**
* 柱状图,折线图初始化
*/
async barLineInit() {
// chart 图表实例不能存在data里
const chart = await this.$refs.chartRef1.init(echarts);
// chart.on('click',function (params) {
// console.log(params)
// })
let that = this
setTimeout(function() {
chart.setOption(that.option1)
}, 2000);
},
/**
* 饼状图初始化
*/
async pieInit() {
// chart 图表实例不能存在data里
const chart = await this.$refs.chartRef2.init(echarts);
// chart.on('click',function (params) {
// console.log(params)
// })
let that = this
setTimeout(function() {
chart.setOption(that.option2)
}, 2000);
},
itemClick(index) {
uni.navigateTo({
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
})
}
}
}
</script>
<style lang="less">
</style>