Merge branch 'main' of http://git.zihai.cn/szj1219/JiaZhiQianYan-MiniProgram
This commit is contained in:
@@ -1,120 +1,101 @@
|
|||||||
<template>
|
<template>
|
||||||
<view style="padding: 25rpx 20rpx; box-sizing: border-box;">
|
<view style="padding: 25rpx 20rpx; box-sizing: border-box;">
|
||||||
<view style="display: flex; align-items: center; font-size: 28rpx;"><text>关键因素</text><text
|
<view v-if="keyFactorsInfo" class="flex" style="font-size: 28rpx;"><text>关键因素</text><text
|
||||||
style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">19</text>
|
style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">{{keyFactorsInfo.total_factors}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view v-for="(item, index) in gj_list" :key="index" @click="item.show = !item.show"
|
<view class="keyFactorsList">
|
||||||
style="margin: 20rpx 0; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx; color: #2B2B2B;">
|
<view class="item" v-for="(item, index) in keyFactorsList" :key="index" @click="item.show = !item.show"
|
||||||
<view style="display: flex; align-items: center; justify-content: space-between;">
|
style="margin: 20rpx 0; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx; color: #2B2B2B;">
|
||||||
<view style="flex: 1; font-size: 26rpx;"><text>{{item.title}}</text><text
|
<view style="display: flex; align-items: center; justify-content: space-between;">
|
||||||
style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">{{item.count}}</text>
|
<view style="flex: 1; font-size: 26rpx;"><text>{{item.category_name}}</text><text
|
||||||
|
style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">{{item.factors.length}}</text>
|
||||||
|
</view>
|
||||||
|
<image v-if="item.show" style="width: 20rpx; height: 12rpx;"
|
||||||
|
src="/pagesStock/static/icon/shangJiantou.png" mode="widthFix"></image>
|
||||||
|
<image v-else style="width: 20rpx; height: 12rpx;" src="/pagesStock/static/icon/xiaJiantou.png"
|
||||||
|
mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
<image v-if="item.show" style="width: 20rpx; height: 12rpx;"
|
|
||||||
src="/pagesStock/static/icon/shangJiantou.png" mode="widthFix"></image>
|
<template v-if="item.show">
|
||||||
<image v-else style="width: 20rpx; height: 12rpx;" src="/pagesStock/static/icon/xiaJiantou.png"
|
<view class="fitem" v-for="(fitem,findex) in item.factors" :key="findex"
|
||||||
mode="widthFix"></image>
|
style="margin: 20rpx 0; padding: 20rpx; background-color: white; border-radius: 10rpx; border: 1rpx solid #E7E7E7; color: #2B2B2B; font-weight: 500; font-size: 26rpx;">
|
||||||
|
<view class="titleImpactC flex between">
|
||||||
|
<view>{{fitem.factor_name}}</view>
|
||||||
|
<view v-if="fitem.impact_direction=='negative'" class="impact negative">负面</view>
|
||||||
|
<view v-if="fitem.impact_direction=='neutral'" class="impact neutral">中性</view>
|
||||||
|
<view v-if="fitem.impact_direction=='positive'" class="impact positive">正面</view>
|
||||||
|
</view>
|
||||||
|
<view class="valueChgC flex" style="margin-top: 10rpx;">
|
||||||
|
<view :class="'value '+(fitem.impact_direction)">{{fitem.factor_value}}{{fitem.factor_unit}}
|
||||||
|
</view>
|
||||||
|
<view :class="'chgC flex '+(getRateUpOrDown(fitem.year_on_year)?'down':'up')">
|
||||||
|
<image v-if="getRateUpOrDown(fitem.year_on_year)" class="icon" src="/pagesStock/static/icon/downArrow.png" mode="widthFix"></image>
|
||||||
|
<image v-else class="icon" src="/pagesStock/static/icon/upArrow.png" mode="widthFix"></image>
|
||||||
|
<view>{{fitem.year_on_year?fitem.year_on_year:0}}%</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">{{fitem.factor_desc}}</view>
|
||||||
|
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">影响权重: {{fitem.impact_weight}}</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<template v-if="item.show">
|
|
||||||
<view v-for="child in item.count"
|
|
||||||
style="margin: 20rpx 0; padding: 20rpx; box-sizing: border-box; background-color: white; border-radius: 10rpx; border: 1rpx solid #E7E7E7; color: #2B2B2B; font-weight: 500; font-size: 26rpx;">
|
|
||||||
<view style="display: flex; align-items: center; justify-content: space-between;">
|
|
||||||
<view>净息差</view>
|
|
||||||
<view
|
|
||||||
style="background-color: #345423; border-radius: 5rpx; color: white; padding: 0 10rpx; text-align: center; font-size: 20rpx;">
|
|
||||||
负面</view>
|
|
||||||
</view>
|
|
||||||
<view style="display: flex;align-items: center; margin-top: 10rpx;">
|
|
||||||
<view style="color: #345423; font-weight: bold; font-size: 30rpx; margin-right: 10rpx;">1.79亿元
|
|
||||||
</view>
|
|
||||||
<view
|
|
||||||
style="display: flex; align-items: center; border: 1rpx solid #345423; padding: 0 10rpx; text-align: center; font-size: 20rpx; color: #345423; border-radius: 5rpx;">
|
|
||||||
<image style="width: 11rpx; height: 15rpx; margin-right: 5rpx;"
|
|
||||||
src="/pagesStock/static/icon/upArrow.png" mode="widthFix"></image>0.51%
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">银行核心盈利能力指标,反映存贷利差水平</view>
|
|
||||||
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">影响权重: 90</view>
|
|
||||||
</view>
|
|
||||||
</template>
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="display: flex; align-items: center; font-size: 28rpx;"><text>发展时间线</text>
|
|
||||||
|
<view v-if="timelineInfo" class="flex" style="font-size: 28rpx;"><text>发展时间线</text>
|
||||||
<text
|
<text
|
||||||
style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #EC3440; margin-left: 10rpx;">正面
|
style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #EC3440; margin-left: 10rpx;">正面
|
||||||
19</text>
|
{{timelineInfo.positive_events}}</text>
|
||||||
<text
|
<text
|
||||||
style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #345423; margin-left: 10rpx;">负面
|
style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #345423; margin-left: 10rpx;">负面
|
||||||
1</text>
|
{{timelineInfo.negative_events}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view v-for="item in 3" @click="clickAction"
|
<view class="timelineList">
|
||||||
style="display: flex; margin: 20rpx 0; border-radius: 10rpx; box-sizing: border-box; color: #2B2B2B;">
|
<view class="item" v-for="(item,index) in timelineList" :key="index" @click="clickAction">
|
||||||
<view style="display: flex; flex-direction: column; align-items: center;">
|
<view class="impactC flexColumnCenter">
|
||||||
<image style="width: 30rpx; height: 30rpx; 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>
|
||||||
|
<image v-else class="icon" src="/pagesStock/static/icon/yuan_jiang.png" mode="widthFix"></image>
|
||||||
|
<view :class="'line flex1 '+(item.impact_metrics.is_positive==1?'up':'down')"></view>
|
||||||
|
</view>
|
||||||
<view
|
<view
|
||||||
style="flex: 1; width: 1rpx; border-left: 1rpx dashed #EC3440; margin-top: 10rpx; margin-bottom: -30rpx;">
|
style="flex: 1; margin-left: 10rpx; background-color: #FAFAFC; padding: 24rpx 15rpx; border-radius: 10rpx; font-weight: 500;">
|
||||||
</view>
|
<view class="titleTypeC">
|
||||||
</view>
|
<text class="title">{{item.event_title}}</text>
|
||||||
<view
|
<text :class="'eventType '+(item.impact_metrics.is_positive==1?'up':'down')">{{item.event_type}}</text>
|
||||||
style="flex: 1; margin-left: 10rpx; background-color: #FAFAFC; padding: 24rpx 15rpx; border-radius: 10rpx; font-weight: 500;">
|
</view>
|
||||||
<view>
|
<view style="color: #999999; font-size: 20rpx; margin: 15rpx 0;">{{item.event_date}}</view>
|
||||||
<text style="color: #2A2A2A; font-weight: bold; font-size: 24rpx; margin-right: 10rpx;">不良贷款率连续四年低于1.1%</text>
|
<view style="color: #71675D; font-size: 22rpx;">{{item.event_desc}}</view>
|
||||||
<text
|
<view style="display: flex; align-items: center; margin-top: 30rpx;">
|
||||||
style="background-color: #FFE7E9; color: #EC3440; padding: 5rpx 10rpx; border-radius: 5rpx; font-size: 20rpx; ">Achievement</text>
|
<view style="color: #71675D; font-size: 22rpx; font-weight: 500;">影响度</view>
|
||||||
</view>
|
<view class="progressBgC">
|
||||||
<view style="color: #999999; font-size: 20rpx; margin: 15rpx 0;">2025-06-30</view>
|
<view :class="'progress '+(item.impact_metrics.is_positive==1?'up':'down')" :style="{width: `${item.impact_metrics.impact_score}%`}">
|
||||||
<view style="color: #71675D; font-size: 22rpx;">2025年中报不良率1.06%,拨备覆盖率290%,资产质量保持股份行领先。</view>
|
</view>
|
||||||
<view style="display: flex; align-items: center; margin-top: 30rpx;">
|
</view>
|
||||||
<view style="color: #71675D; font-size: 22rpx; font-weight: 500;">影响度</view>
|
<view style="color: #71675D; font-size: 24rpx; font-weight: 500;">{{item.impact_metrics.impact_score}}</view>
|
||||||
<view
|
|
||||||
style="width: 200rpx; height: 10rpx; background-color: #EFEFEF; border-radius: 5rpx; margin: 0 15rpx; overflow: hidden;">
|
|
||||||
<view
|
|
||||||
style="height: 100%; border-radius: 5rpx; background:linear-gradient(to right, #FF525D, #EC3440)"
|
|
||||||
:style="{width: `${95}%`}">
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view style="color: #71675D; font-size: 24rpx; font-weight: 500;">95</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { getRateUpOrDown } from '@/utils/util';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "fzlc-view",
|
name: "fzlc-view",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
gj_list: [{
|
getRateUpOrDown:getRateUpOrDown
|
||||||
title: '产量与销量指标',
|
|
||||||
count: 8,
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '价格与成本驱动',
|
|
||||||
count: 3,
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '市场与客户指标',
|
|
||||||
count: 2,
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '行业特定指标',
|
|
||||||
count: 4,
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '风险与异常指标',
|
|
||||||
count: 2,
|
|
||||||
show: false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
props: {
|
||||||
|
keyFactorsInfo:null,
|
||||||
|
keyFactorsList:Array, //关键因素数组
|
||||||
|
timelineInfo:null,
|
||||||
|
timelineList:Array, //发展时间线数组
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
clickAction() {
|
clickAction() {
|
||||||
this.$emit('detail')
|
this.$emit('detail')
|
||||||
@@ -124,5 +105,158 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
|
.keyFactorsList
|
||||||
|
{
|
||||||
|
.item
|
||||||
|
{
|
||||||
|
.fitem
|
||||||
|
{
|
||||||
|
.impact
|
||||||
|
{
|
||||||
|
border-radius: 5rpx;
|
||||||
|
padding: 0 10rpx;
|
||||||
|
font-size: 20rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
.impact.negative
|
||||||
|
{
|
||||||
|
background-color: #345423;
|
||||||
|
}
|
||||||
|
.impact.neutral
|
||||||
|
{
|
||||||
|
background-color: #345423;
|
||||||
|
}
|
||||||
|
.impact.positive
|
||||||
|
{
|
||||||
|
background-color: #EC3440;
|
||||||
|
}
|
||||||
|
.valueChgC
|
||||||
|
{
|
||||||
|
.value
|
||||||
|
{
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
.value.negative
|
||||||
|
{
|
||||||
|
color: #345423;
|
||||||
|
}
|
||||||
|
.value.neutral
|
||||||
|
{
|
||||||
|
color:#345423;
|
||||||
|
}
|
||||||
|
.value.positive
|
||||||
|
{
|
||||||
|
color: #EC3440;
|
||||||
|
}
|
||||||
|
.chgC
|
||||||
|
{
|
||||||
|
padding: 0 10rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
font-size: 20rpx;
|
||||||
|
.icon
|
||||||
|
{
|
||||||
|
margin-right: 5rpx;
|
||||||
|
width: 11rpx;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.chgC.down
|
||||||
|
{
|
||||||
|
border: 1rpx solid #345423;
|
||||||
|
color: #345423;
|
||||||
|
}
|
||||||
|
.chgC.up
|
||||||
|
{
|
||||||
|
border: 1rpx solid #EC3440;
|
||||||
|
color: #EC3440;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.timelineList
|
||||||
|
{
|
||||||
|
.item
|
||||||
|
{
|
||||||
|
display: flex;
|
||||||
|
margin: 20rpx 0;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
.impactC
|
||||||
|
{
|
||||||
|
.icon
|
||||||
|
{
|
||||||
|
width: 30rpx;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
.line
|
||||||
|
{
|
||||||
|
margin: 10rpx 0 -30rpx;
|
||||||
|
width: 1rpx;
|
||||||
|
}
|
||||||
|
.line.up
|
||||||
|
{
|
||||||
|
border-left: 1rpx dashed #EC3440;
|
||||||
|
}
|
||||||
|
.line.down
|
||||||
|
{
|
||||||
|
border-left: 1rpx dashed #345423;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.titleTypeC
|
||||||
|
{
|
||||||
|
.title
|
||||||
|
{
|
||||||
|
margin-right: 10rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #2A2A2A;
|
||||||
|
}
|
||||||
|
.eventType
|
||||||
|
{
|
||||||
|
padding: 5rpx 10rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
font-size: 20rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
.eventType.up
|
||||||
|
{
|
||||||
|
background-color: #FFE7E9;
|
||||||
|
color: #EC3440;
|
||||||
|
}
|
||||||
|
.eventType.down
|
||||||
|
{
|
||||||
|
background-color:#DEEED6;
|
||||||
|
color: #345423;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.progressBgC
|
||||||
|
{
|
||||||
|
background-color: #EFEFEF;
|
||||||
|
margin: 0 15rpx;
|
||||||
|
width: 200rpx;
|
||||||
|
height: 10rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
.progress
|
||||||
|
{
|
||||||
|
height: 100%;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
}
|
||||||
|
.progress.up
|
||||||
|
{
|
||||||
|
background:linear-gradient(to right, #FF525D, #EC3440)
|
||||||
|
}
|
||||||
|
.progress.down
|
||||||
|
{
|
||||||
|
background:linear-gradient(to right, #537D3D, #345423)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<view class="flex">
|
<view class="flex">
|
||||||
<view class="title">实际控制人</view>
|
<view class="title">实际控制人</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="com_info">
|
<view v-if="actualControlInfo" class="com_info">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="l_top">{{actualControlInfo.actual_controller_name}}</view>
|
<view class="l_top">{{actualControlInfo.actual_controller_name}}</view>
|
||||||
<view class="l_bottom">
|
<view class="l_bottom">
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<view class="r_top">控制比例</view>
|
<view class="r_top">控制比例</view>
|
||||||
<view class="r_center">{{actualControlInfo.holding_ratio.toFixed(2)}}%</view>
|
<view v-if="actualControlInfo.holding_ratio" class="r_center">{{actualControlInfo.holding_ratio.toFixed(2)}}%</view>
|
||||||
<view class="r_bottom">{{getNumStr(actualControlInfo.holding_shares)}}股</view>
|
<view class="r_bottom">{{getNumStr(actualControlInfo.holding_shares)}}股</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -26,10 +26,8 @@
|
|||||||
<view class="top">2025-09-30 00:00:00</view>
|
<view class="top">2025-09-30 00:00:00</view>
|
||||||
<view class="bottom">
|
<view class="bottom">
|
||||||
<view class="b_item">
|
<view class="b_item">
|
||||||
<view v-for="(item, index) in 4" class="item_info">
|
<view v-for="(item, index) in concentrationList" :key="index" class="item_info flexWrap">
|
||||||
<view class="left">
|
<view class="left">{{item.stat_item}}</view>
|
||||||
前1大股东
|
|
||||||
</view>
|
|
||||||
<view class="right">
|
<view class="right">
|
||||||
<view class="bili">49.56%</view>
|
<view class="bili">49.56%</view>
|
||||||
<view class="shengjiang" :class="{action : index % 2 == 0}">
|
<view class="shengjiang" :class="{action : index % 2 == 0}">
|
||||||
@@ -40,7 +38,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view style="width: 15rpx;"></view>
|
<!-- <view style="width: 15rpx;"></view>
|
||||||
<view class="b_item">
|
<view class="b_item">
|
||||||
<view v-for="(item, index) in 4" class="item_info">
|
<view v-for="(item, index) in 4" class="item_info">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
@@ -55,7 +53,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -65,21 +63,19 @@
|
|||||||
|
|
||||||
<view class="gudong">
|
<view class="gudong">
|
||||||
<view class="back">
|
<view class="back">
|
||||||
<view class="top action" style="height: 54rpx;">
|
<view class="top action">
|
||||||
<view>股东名称</view>
|
<view class="head">股东名称</view>
|
||||||
<view>股东类型</view>
|
<view class="head">股东类型</view>
|
||||||
<view style="text-align: center;">持股数量</view>
|
<view class="head" style="text-align: center;">持股数量</view>
|
||||||
<view style="text-align: center;">持股比例</view>
|
<view class="head" style="text-align: center;">持股比例</view>
|
||||||
<view style="text-align: center;">股份性质</view>
|
<view class="head" style="text-align: center;">股份性质</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-for="(item, index) in shareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}">
|
<view v-for="(item, index) in shareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}">
|
||||||
<view class="child">{{item.shareholder_name}}</view>
|
<view class="child">{{item.shareholder_name}}</view>
|
||||||
<view class="child">{{item.shareholder_type}}</view>
|
<view class="child">{{item.shareholder_type}}</view>
|
||||||
<view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}股</view>
|
<view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}股</view>
|
||||||
<view class="child" style="color: #3E87CF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view>
|
<view class="child" style="color: #3E87CF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view>
|
||||||
<view class="child"
|
<view class="nature">{{item.share_nature}}</view>
|
||||||
style="background-color: #FFF7E9; color: #E0AC4A; border-radius: 5rpx; padding: 5rpx 10rpx; text-align: center;">
|
|
||||||
{{item.share_nature}}</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -90,21 +86,19 @@
|
|||||||
|
|
||||||
<view class="gudong">
|
<view class="gudong">
|
||||||
<view class="back">
|
<view class="back">
|
||||||
<view class="top action" style="height: 54rpx;">
|
<view class="top action">
|
||||||
<view>股东名称</view>
|
<view class="head">股东名称</view>
|
||||||
<view>股东类型</view>
|
<view class="head">股东类型</view>
|
||||||
<view style="text-align: center;">持股数量</view>
|
<view class="head" style="text-align: center;">持股数量</view>
|
||||||
<view style="text-align: center;">流通股比例</view>
|
<view class="head" style="text-align: center;">流通股比例</view>
|
||||||
<view style="text-align: center;">股份性质</view>
|
<view class="head" style="text-align: center;">股份性质</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-for="(item, index) in circulatingShareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}">
|
<view v-for="(item, index) in circulatingShareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}">
|
||||||
<view class="child">{{item.shareholder_name}}</view>
|
<view class="child">{{item.shareholder_name}}</view>
|
||||||
<view class="child">{{item.shareholder_type?item.shareholder_type:'-'}}</view>
|
<view class="child">{{item.shareholder_type?item.shareholder_type:'-'}}</view>
|
||||||
<view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}股</view>
|
<view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}股</view>
|
||||||
<view class="child" style="color: #893ECF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view>
|
<view class="child" style="color: #893ECF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view>
|
||||||
<view class="child"
|
<view class="nature">{{item.share_nature}}</view>
|
||||||
style="background-color: #FFF7E9; color: #E0AC4A; border-radius: 5rpx; padding: 5rpx 10rpx; text-align: center;">
|
|
||||||
{{item.share_nature}}</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -125,6 +119,7 @@
|
|||||||
},
|
},
|
||||||
props:{
|
props:{
|
||||||
actualControlInfo:Object, //实际控制人信息
|
actualControlInfo:Object, //实际控制人信息
|
||||||
|
concentrationList:[], //股权集中度列表
|
||||||
shareholdersList:Array, //十大股东列表
|
shareholdersList:Array, //十大股东列表
|
||||||
circulatingShareholdersList:Array, //十大流通股东列表
|
circulatingShareholdersList:Array, //十大流通股东列表
|
||||||
competitivePositionInfo:Object, //竞争地位信息
|
competitivePositionInfo:Object, //竞争地位信息
|
||||||
@@ -275,31 +270,43 @@
|
|||||||
.back {
|
.back {
|
||||||
margin: 25rpx 0;
|
margin: 25rpx 0;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
background-color: #FAFAFC;
|
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
padding: 25rpx 13rpx;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: #666666;
|
color: #666666;
|
||||||
|
|
||||||
.top {
|
.top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: grid;
|
display: grid;
|
||||||
|
align-items: center;
|
||||||
grid-template-columns: 166rpx repeat(4, 1fr);
|
grid-template-columns: 166rpx repeat(4, 1fr);
|
||||||
font-size: 22rpx;
|
|
||||||
background-color: white;
|
background-color: white;
|
||||||
|
height: 60rpx;
|
||||||
&.action {
|
&.action {
|
||||||
background-color: #FAFAFC;
|
background-color: #FAFAFC;
|
||||||
}
|
}
|
||||||
|
.head
|
||||||
|
{
|
||||||
|
padding: 0 10rpx;
|
||||||
|
font-size: 22rpx;
|
||||||
|
}
|
||||||
.child {
|
.child {
|
||||||
|
padding: 0 10rpx;
|
||||||
font-size: 18rpx;
|
font-size: 18rpx;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
margin: 10rpx 0;
|
|
||||||
}
|
}
|
||||||
.child:first-child {
|
.nature
|
||||||
margin-right: 20rpx;
|
{
|
||||||
|
background-color: #FFF7E9;
|
||||||
|
margin: 10rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
border-radius: 5rpx;
|
||||||
|
font-size: 18rpx;
|
||||||
|
color: #E0AC4A;
|
||||||
|
text-align: center;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="ywjg_list">
|
<view class="ywjg_list">
|
||||||
<view v-for="(item,index) in ywjg" :key="index">
|
<view>
|
||||||
|
<block v-for="(item,index) in businessStructureList" :key="index"></block>
|
||||||
<view style="margin: 25rpx 20rpx; color: #2B2B2B; font-size: 28rpx; font-weight: bold;">
|
<view style="margin: 25rpx 20rpx; color: #2B2B2B; font-size: 28rpx; font-weight: bold;">
|
||||||
{{item.title}}
|
{{item.title}}
|
||||||
</view>
|
</view>
|
||||||
<view v-if="index == 0" v-for="(child, row) in item.list" :key="row" class="ywjg_item_1">
|
<view v-for="(child, row) in item.list" :key="row" class="ywjg_item_1">
|
||||||
<view style="display: flex; align-items: center;">
|
<view style="display: flex; align-items: center;">
|
||||||
<view style="font-size: 28rpx; font-weight: bold; margin-right: 10rpx;">
|
<view style="font-size: 28rpx; font-weight: bold; margin-right: 10rpx;">
|
||||||
{{child.title}}
|
{{child.title}}
|
||||||
@@ -36,14 +37,16 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else style="font-weight: 500;">
|
<view style="font-weight: 500;">
|
||||||
<view v-for="(child,row) in item.list" :key="row"
|
<view v-for="(item,index) in businessSegmentList" :key="item"
|
||||||
style="background-color: #FAFAFC; color: #2B2B2B; font-size: 22rpx; margin: 20rpx; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx;">
|
style="background-color: #FAFAFC; color: #2B2B2B; font-size: 22rpx; margin: 20rpx; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx;">
|
||||||
<view style="font-size: 24rpx;">{{child.title}}</view>
|
<view style="font-size: 24rpx;">{{item.segment_name}}</view>
|
||||||
<view v-for="(model, j) in child.list" :key="j">
|
<view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">业务描述</view>
|
||||||
<view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">{{model.title}}</view>
|
<view style="color: #71675D;">{{item.segment_description}}</view>
|
||||||
<view style="color: #71675D;">{{model.info}}</view>
|
<view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">竞争地位</view>
|
||||||
</view>
|
<view style="color: #71675D;">{{item.competitive_position}}</view>
|
||||||
|
<view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">未来潜力</view>
|
||||||
|
<view style="color: #71675D;">{{item.future_potential}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -55,107 +58,13 @@
|
|||||||
name: "ywjg-view",
|
name: "ywjg-view",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
ywjg: [{
|
|
||||||
title: '业务结构分析',
|
|
||||||
list: [{
|
|
||||||
title: '零售业务',
|
|
||||||
is_hexin: 1,
|
|
||||||
yszb: 55.16,
|
|
||||||
mlv: 78.21,
|
|
||||||
yysr: 17900,
|
|
||||||
zz: -8.20
|
|
||||||
}, {
|
|
||||||
title: '科技金融',
|
|
||||||
is_hexin: 1,
|
|
||||||
yszb: 41.121,
|
|
||||||
mlv: 89.11,
|
|
||||||
yysr: 13400,
|
|
||||||
zz: 24.60
|
|
||||||
}, {
|
|
||||||
title: '绿色金融',
|
|
||||||
is_hexin: 0,
|
|
||||||
yszb: 2.37,
|
|
||||||
mlv: 9.11,
|
|
||||||
yysr: 771,
|
|
||||||
zz: 36.90
|
|
||||||
}, {
|
|
||||||
title: '零售业务',
|
|
||||||
is_hexin: 0,
|
|
||||||
yszb: 2.37,
|
|
||||||
mlv: 9.11,
|
|
||||||
yysr: 396,
|
|
||||||
zz: -16.90
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '业务板块详情',
|
|
||||||
list: [{
|
|
||||||
title: '零售银行业务',
|
|
||||||
list: [{
|
|
||||||
title: '业务描述',
|
|
||||||
info: '平安银行对公业务践行'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '竞争地位',
|
|
||||||
info: '平安银行零售业务在同行业中保持较强竞争力,凭借其数字化创新优势和综合金融背景,构建了差异化竞争优势。'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '未来潜力',
|
|
||||||
info: '平安银行零售业务未来发展潜力巨大,随着中国财富管理市场的快速扩张和中产阶级规模的持续增长,零售银行...展开查看'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}, {
|
|
||||||
title: '对公业务',
|
|
||||||
list: [{
|
|
||||||
title: '业务描述',
|
|
||||||
info: '平安银行对公业务践行'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '竞争地位',
|
|
||||||
info: '平安银行对公业务在市场中保持较强竞争力,贷款规模实现两位数增长,远高于行业平均水平。通过差异化战略...展开查看'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '未来潜力',
|
|
||||||
info: '随着国家对科创、绿色经济的持续支持,以及对普惠金融的政策倾斜,平安银行对公业务面临广阔发展空间...展开查看'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '同业业务',
|
|
||||||
list: [{
|
|
||||||
title: '业务描述',
|
|
||||||
info: '平安银行同业业务主要包括债券交易、同业拆借、票据业务等。'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '竞争地位',
|
|
||||||
info: '平安银行同业业务在股份制银行中位居前列,债券交易市场份额达4.4%,显示出较强的市场竞争力。'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '未来潜力',
|
|
||||||
info: '随着金融市场深化改革和利率市场化推进,同业业务面临新的发展机遇。平安银行同业业务凭借其债券...展开查看'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '普惠金融',
|
|
||||||
list: [{
|
|
||||||
title: '业务描述',
|
|
||||||
info: '普惠金融是平安银行'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '竞争地位',
|
|
||||||
info: '平安银行普惠金融业务在行业内保持领先地位,小微企业贷款规模较大且客户基础广泛。通过优化产品体系、提...展开查看'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: '未来潜力',
|
|
||||||
info: '随着国家持续推动普惠金融发展战略,平安银行该业务具有广阔发展空间。通过数字化转型深化、客户体验...展开查看'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
},
|
||||||
|
props:{
|
||||||
|
businessStructureList:Array, //业务结构分析
|
||||||
|
businessSegmentList:Array //业务板块详情
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
<uni-popup ref="screenPopup" type="top">
|
<uni-popup ref="screenPopup" type="top" z-index="100000">
|
||||||
<view class="screenPopup" :style="'padding-top:'+menuTop+'px;'">
|
<view class="screenPopup" :style="'padding-top:'+menuTop+'px;'">
|
||||||
<view class="navC flex" :style="'height:'+menuH+'px;'" @click="clickCancel()">
|
<view class="navC flex" :style="'height:'+menuH+'px;'" @click="clickCancel()">
|
||||||
<image class="icon" src="/static/icon/backBlack.png" mode="widthFix"></image>
|
<image class="icon" src="/static/icon/backBlack.png" mode="widthFix"></image>
|
||||||
|
|||||||
@@ -136,38 +136,43 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<template v-if="selectCompanyFiles==0">
|
<template v-if="selectCompanyFiles==0">
|
||||||
<gqjg-view :actualControlInfo="actualControlInfo" :shareholdersList="topShareholdersList" :circulatingShareholdersList="topCirculatingShareholdersList"></gqjg-view>
|
<gqjg-view :actualControlInfo="actualControlInfo" :concentrationList="concentrationList" :shareholdersList="topShareholdersList" :circulatingShareholdersList="topCirculatingShareholdersList"></gqjg-view>
|
||||||
</template>
|
</template>
|
||||||
<view v-if="selectCompanyFiles==1" class="managementTeamList">
|
<view v-if="selectCompanyFiles==1" class="managementTeamList">
|
||||||
<view class="positionNumC flex">
|
<block v-for="(item,index) in managementList" :key="index">
|
||||||
<view class="position">董事</view>
|
<view v-if="item.list.length>0" class="positionNumC flex">
|
||||||
<view class="num director">15人</view>
|
<view class="position">{{item.key}}</view>
|
||||||
</view>
|
<view class="num director">{{item.list.length}}人</view>
|
||||||
<view class="item flex">
|
</view>
|
||||||
<view class="avatarC flexCenter relative director">
|
<view class="item flex" v-for="(pitem,pindex) in item.list" :key="index">
|
||||||
郭
|
<view class="avatarC flexCenter relative director">
|
||||||
<view class="sexC flexCenter absolute male">
|
{{getLastNameStr(pitem.name)}}
|
||||||
<image class="icon" src="/pagesStock/static/icon/female.png" mode="widthFix">
|
<view :class="'sexC flexCenter absolute '+(pitem.gender=='女'?'female':'male')">
|
||||||
</image>
|
<image v-if="pitem.gender=='女'" class="icon" src="/pagesStock/static/icon/female.png" mode="widthFix">
|
||||||
|
</image>
|
||||||
|
<image v-else class="icon" src="/pagesStock/static/icon/male.png" mode="widthFix">
|
||||||
|
</image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="flex1">
|
||||||
|
<view class="flex">
|
||||||
|
<view class="name">{{pitem.name}}</view>
|
||||||
|
<view class="position">{{pitem.position_name}}</view>
|
||||||
|
<view class="date flex1">任职日期:{{pitem.start_date}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="educationAgeC flex">
|
||||||
|
<view class="education label">{{pitem.education}}</view>
|
||||||
|
<view class="age label">59岁</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex1">
|
<view v-if="item.list.length>4" class="expandMoreC flexCenter">
|
||||||
<view class="flex">
|
<view>展开查看</view>
|
||||||
<view class="name">郭晓涛</view>
|
<image class="arrow" src="/pagesStock/static/icon/lookMoreArrow.png" mode="widthFix">
|
||||||
<view class="position">非执行董事</view>
|
</image>
|
||||||
<view class="date flex1">任职日期:2024-10-08</view>
|
|
||||||
</view>
|
|
||||||
<view class="educationAgeC flex">
|
|
||||||
<view class="education label">博士研究生</view>
|
|
||||||
<view class="age label">59岁</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</block>
|
||||||
<view class="expandMoreC flexCenter">
|
|
||||||
<view>展开查看</view>
|
|
||||||
<image class="arrow" src="/pagesStock/static/icon/lookMoreArrow.png" mode="widthFix">
|
|
||||||
</image>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
<view v-if="selectCompanyFiles==2" class="branchList">
|
<view v-if="selectCompanyFiles==2" class="branchList">
|
||||||
<view class="item" v-for="(item,index) in branchList" :key="index">
|
<view class="item" v-for="(item,index) in branchList" :key="index">
|
||||||
@@ -249,7 +254,8 @@
|
|||||||
<view class="section">核心定位</view>
|
<view class="section">核心定位</view>
|
||||||
<view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.one_line_intro}}</view>
|
<view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.one_line_intro}}</view>
|
||||||
<view class="section">投资亮点</view>
|
<view class="section">投资亮点</view>
|
||||||
<view class="highlightsList">
|
<view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.investment_highlights}}</view>
|
||||||
|
<!-- <view class="highlightsList">
|
||||||
<view class="item flex">
|
<view class="item flex">
|
||||||
<image class="icon" src="" mode="widthFix"></image>
|
<image class="icon" src="" mode="widthFix"></image>
|
||||||
<view class="flex1">
|
<view class="flex1">
|
||||||
@@ -257,9 +263,10 @@
|
|||||||
<view class="content">背靠平安集团,客户资源共享和交叉销售带来持续增长动力</view>
|
<view class="content">背靠平安集团,客户资源共享和交叉销售带来持续增长动力</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view> -->
|
||||||
<view class="section">商业模式</view>
|
<view class="section">商业模式</view>
|
||||||
<view class="infoC">
|
<view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.business_model_desc}}</view>
|
||||||
|
<!-- <view class="infoC">
|
||||||
<view class="title">零售银行核心驱动</view>
|
<view class="title">零售银行核心驱动</view>
|
||||||
<view class="content">以零售银行业务为核心驱动,依托平安集团综合金融平台,构建智能化、移动化、综合化三位一体发展模式。</view>
|
<view class="content">以零售银行业务为核心驱动,依托平安集团综合金融平台,构建智能化、移动化、综合化三位一体发展模式。</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -286,7 +293,7 @@
|
|||||||
<view v-if="qualitativeAnalysisInfo" class="infoC">
|
<view v-if="qualitativeAnalysisInfo" class="infoC">
|
||||||
<view class="title">战略举措</view>
|
<view class="title">战略举措</view>
|
||||||
<view class="content">{{qualitativeAnalysisInfo.strategy.strategic_initiatives}}</view>
|
<view class="content">{{qualitativeAnalysisInfo.strategy.strategic_initiatives}}</view>
|
||||||
</view>
|
</view> -->
|
||||||
|
|
||||||
<view class="section flex">
|
<view class="section flex">
|
||||||
<view>竞争地位分析</view>
|
<view>竞争地位分析</view>
|
||||||
@@ -327,13 +334,13 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<template v-if="selectInDepthAnalysis==1">
|
<template v-if="selectInDepthAnalysis==1">
|
||||||
<ywjg-view></ywjg-view>
|
<ywjg-view :businessSegmentList="businessSegmentList"></ywjg-view>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="selectInDepthAnalysis==2">
|
<template v-if="selectInDepthAnalysis==2">
|
||||||
<cyl-view @detail="detailShow(0)"></cyl-view>
|
<cyl-view @detail="detailShow(0)"></cyl-view>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="selectInDepthAnalysis==3">
|
<template v-if="selectInDepthAnalysis==3">
|
||||||
<fzlc-view @detail="detailShow(1)"></fzlc-view>
|
<fzlc-view :keyFactorsInfo="keyFactorsInfo" :keyFactorsList="keyFactorsList" :timelineInfo="timelineInfo" :timelineList="timelineList" @detail="detailShow(1)"></fzlc-view>
|
||||||
</template>
|
</template>
|
||||||
</block>
|
</block>
|
||||||
<block v-if="selectTab==2">
|
<block v-if="selectTab==2">
|
||||||
@@ -379,7 +386,7 @@
|
|||||||
<uni-popup ref="industryRankPop" type="bottom">
|
<uni-popup ref="industryRankPop" type="bottom">
|
||||||
<view class="industryRankPop relative">
|
<view class="industryRankPop relative">
|
||||||
<view class="popTitle">行业排名</view>
|
<view class="popTitle">行业排名</view>
|
||||||
<view class="closeC absolute">
|
<view class="closeC absolute" @click="clickCloseIndustryRankPop()">
|
||||||
<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 class="rankList">
|
<view class="rankList">
|
||||||
@@ -548,8 +555,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { inject } from 'vue'
|
import { inject } from 'vue'
|
||||||
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, industryRankList, managementTeam, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList } from '@/request/api'
|
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, industryRankList, keyFactorsTimeline, managementTeam, ownershipConcentration, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList } from '@/request/api'
|
||||||
import { getLocalDate, getNumStr, getRateUpOrDown } from '@/utils/util'
|
import { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown } from '@/utils/util'
|
||||||
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
|
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -596,6 +603,7 @@
|
|||||||
}
|
}
|
||||||
], //公司档案分类
|
], //公司档案分类
|
||||||
actualControlInfo:null, //实际控制信息
|
actualControlInfo:null, //实际控制信息
|
||||||
|
concentrationList:[], //股权集中度列表
|
||||||
topShareholdersList:[], //十大股东列表
|
topShareholdersList:[], //十大股东列表
|
||||||
topCirculatingShareholdersList:[], //十大流通股东列表
|
topCirculatingShareholdersList:[], //十大流通股东列表
|
||||||
managementList:[], //管理团队列表
|
managementList:[], //管理团队列表
|
||||||
@@ -732,6 +740,11 @@
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
businessSegmentList:[], //业务板块详情
|
||||||
|
keyFactorsInfo:null, //关键因素统计信息
|
||||||
|
keyFactorsList:[], //关键因素
|
||||||
|
timelineInfo:null, //发展时间线统计信息
|
||||||
|
timelineList:[], //发展时间线
|
||||||
caiWuList: [{
|
caiWuList: [{
|
||||||
title: '主营数据'
|
title: '主营数据'
|
||||||
},
|
},
|
||||||
@@ -756,14 +769,16 @@
|
|||||||
companyAnnouncementList:[], //公司公告数据
|
companyAnnouncementList:[], //公司公告数据
|
||||||
getLocalDate:getLocalDate,
|
getLocalDate:getLocalDate,
|
||||||
getRateUpOrDown:getRateUpOrDown,
|
getRateUpOrDown:getRateUpOrDown,
|
||||||
getNumStr:getNumStr
|
getNumStr:getNumStr,
|
||||||
|
getLastNameStr:getLastNameStr
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.contentTop = this.navH + (20 + 70 + 30) / 750 * inject('windowWidth')
|
this.contentTop = this.navH + (20 + 70 + 30) / 750 * inject('windowWidth')
|
||||||
this.getStockBasicInfoData()
|
this.getStockBasicInfoData()
|
||||||
this.getQuoteDetailsData()
|
this.getQuoteDetailsData()
|
||||||
this.getActualControl()
|
this.getActualControlData()
|
||||||
|
this.getOwnershipConcentration()
|
||||||
this.getTopShareholdersData()
|
this.getTopShareholdersData()
|
||||||
this.getTopCirculatingShareholdersData()
|
this.getTopCirculatingShareholdersData()
|
||||||
},
|
},
|
||||||
@@ -774,7 +789,6 @@
|
|||||||
// chart.on('click',function (params) {
|
// chart.on('click',function (params) {
|
||||||
// console.log(params)
|
// console.log(params)
|
||||||
// })
|
// })
|
||||||
console.log(chart)
|
|
||||||
chart.setOption(this.option2)
|
chart.setOption(this.option2)
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -831,6 +845,9 @@
|
|||||||
clickInDepthAnalysisItem(index) {
|
clickInDepthAnalysisItem(index) {
|
||||||
if (this.selectInDepthAnalysis != index) {
|
if (this.selectInDepthAnalysis != index) {
|
||||||
this.selectInDepthAnalysis = index
|
this.selectInDepthAnalysis = index
|
||||||
|
if (index==3) {
|
||||||
|
this.getKeyFactorsTimelineData()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
@@ -910,7 +927,7 @@
|
|||||||
/**
|
/**
|
||||||
* 获取实际控制人数据
|
* 获取实际控制人数据
|
||||||
*/
|
*/
|
||||||
getActualControl() {
|
getActualControlData() {
|
||||||
let code = this.stockCode
|
let code = this.stockCode
|
||||||
if (this.keywords) {
|
if (this.keywords) {
|
||||||
code = this.keywords
|
code = this.keywords
|
||||||
@@ -921,6 +938,20 @@
|
|||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 获取股权集中度数据
|
||||||
|
*/
|
||||||
|
getOwnershipConcentration() {
|
||||||
|
let code = this.stockCode
|
||||||
|
if (this.keywords) {
|
||||||
|
code = this.keywords
|
||||||
|
}
|
||||||
|
ownershipConcentration(code).then(res=>{
|
||||||
|
this.actualControlInfo = res.data
|
||||||
|
}).catch(error=>{
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取十大股东列表
|
* 获取十大股东列表
|
||||||
*/
|
*/
|
||||||
@@ -960,13 +991,38 @@
|
|||||||
}
|
}
|
||||||
managementTeam(code,{active_only:true}).then(res=>{
|
managementTeam(code,{active_only:true}).then(res=>{
|
||||||
let data = res.data
|
let data = res.data
|
||||||
this.managementList = data.reduce((acc, item) => {
|
let arr = ['高管','董事','监事','其他']
|
||||||
if (!acc[item.position_category_code]) {
|
let list = []
|
||||||
acc[item.position_category_code] = [];
|
for (let item of arr) {
|
||||||
}
|
list.push({key:item,list:[]})
|
||||||
acc[item.position_category_code].push(item);
|
}
|
||||||
|
this.managementList = data.reduce((acc,item) => {
|
||||||
|
for (let item1 of acc) {
|
||||||
|
if(item.position_category.indexOf(item1.key)>-1)
|
||||||
|
{
|
||||||
|
let keyIndex = -1
|
||||||
|
for (let item2 of acc) {
|
||||||
|
if(item1.key==item2.key){
|
||||||
|
keyIndex = acc.indexOf(item2)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(keyIndex>-1)
|
||||||
|
{
|
||||||
|
acc[keyIndex].list.push(item)
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
acc.push({key:item1,list:[item]})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(item.position_category.indexOf(arr[0])>-1&&item.position_category.indexOf(arr[1])>-1&&item.position_category.indexOf(arr[2])>-1)
|
||||||
|
{
|
||||||
|
// acc.key = '其他'
|
||||||
|
// acc.list = item
|
||||||
|
}
|
||||||
return acc;
|
return acc;
|
||||||
}, {});
|
}, list);
|
||||||
}).catch(error=>{
|
}).catch(error=>{
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -997,6 +1053,7 @@
|
|||||||
this.qualitativeAnalysisInfo = res.data.qualitative_analysis
|
this.qualitativeAnalysisInfo = res.data.qualitative_analysis
|
||||||
this.competitivePositionInfo = res.data.competitive_position
|
this.competitivePositionInfo = res.data.competitive_position
|
||||||
this.mainCompetitorsList = this.competitivePositionInfo.analysis.main_competitors.split(',')
|
this.mainCompetitorsList = this.competitivePositionInfo.analysis.main_competitors.split(',')
|
||||||
|
|
||||||
let marketPosition = this.competitivePositionInfo.scores.market_position
|
let marketPosition = this.competitivePositionInfo.scores.market_position
|
||||||
this.scoreList[0].score = marketPosition
|
this.scoreList[0].score = marketPosition
|
||||||
let technology = this.competitivePositionInfo.scores.technology
|
let technology = this.competitivePositionInfo.scores.technology
|
||||||
@@ -1018,6 +1075,7 @@
|
|||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
that.init()
|
that.init()
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
this.businessSegmentList = res.data.business_segments;
|
||||||
}).catch(error=>{
|
}).catch(error=>{
|
||||||
|
|
||||||
})
|
})
|
||||||
@@ -1036,6 +1094,23 @@
|
|||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 获取关键因素和发展时间线数据
|
||||||
|
*/
|
||||||
|
getKeyFactorsTimelineData() {
|
||||||
|
let code = this.stockCode
|
||||||
|
if (this.keywords) {
|
||||||
|
code = this.keywords
|
||||||
|
}
|
||||||
|
keyFactorsTimeline(code).then(res=>{
|
||||||
|
this.keyFactorsInfo = res.data.key_factors
|
||||||
|
this.keyFactorsList = res.data.key_factors.categories
|
||||||
|
this.timelineInfo = res.data.development_timeline.statistics
|
||||||
|
this.timelineList = res.data.development_timeline.events
|
||||||
|
}).catch(error=>{
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
* 获取新闻动态数据
|
* 获取新闻动态数据
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -120,11 +120,11 @@ export const priceTimeline = (id,param) => get('/concept-api/concept/'+id+'/pric
|
|||||||
/**
|
/**
|
||||||
* 概念新闻
|
* 概念新闻
|
||||||
*/
|
*/
|
||||||
export const conceptNews = param => get('/news-api/search_china_news',param)
|
export const conceptNews = param => get('/news-api/search_china_news',param,true)
|
||||||
/**
|
/**
|
||||||
* 概念研报
|
* 概念研报
|
||||||
*/
|
*/
|
||||||
export const conceptReport = param => get('/report-api/search',param)
|
export const conceptReport = param => get('/report-api/search',param,true)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取某一天的事件列表
|
* 获取某一天的事件列表
|
||||||
@@ -183,11 +183,16 @@ export const comprehensiveAnalysis = code => get('/api/company/comprehensive-ana
|
|||||||
* 行业排名列表
|
* 行业排名列表
|
||||||
*/
|
*/
|
||||||
export const industryRankList = code => get('/api/financial/industry-rank/'+code,null,true)
|
export const industryRankList = code => get('/api/financial/industry-rank/'+code,null,true)
|
||||||
|
/**
|
||||||
|
* 关键因素和时间线
|
||||||
|
*/
|
||||||
|
export const keyFactorsTimeline = code => get('/api/company/key-factors-timeline/'+code,null,true)
|
||||||
/**
|
/**
|
||||||
* 公司公告
|
* 公司公告
|
||||||
*/
|
*/
|
||||||
export const companyAnnouncementsList = (code,param) => get('/api/stock/'+code+'/announcements',param,true)
|
export const companyAnnouncementsList = (code,param) => get('/api/stock/'+code+'/announcements',param,true)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户信息
|
* 用户信息
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -243,6 +243,16 @@ export function getNumStr(r)
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据姓名获取姓
|
||||||
|
* @param {Object} r
|
||||||
|
*/
|
||||||
|
export function getLastNameStr(r)
|
||||||
|
{
|
||||||
|
if (!r) return
|
||||||
|
return r.substr(0,1)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取本地时间
|
* 获取本地时间
|
||||||
* @param {Object} time
|
* @param {Object} time
|
||||||
|
|||||||
Reference in New Issue
Block a user