1.23 个股详情接口对接
@@ -2,20 +2,20 @@
|
||||
<view class="com_list">
|
||||
<view class="item">
|
||||
<view class="flex">
|
||||
<view class="title">平安银行股份有限公司北京分行</view>
|
||||
<view class="title">实际控制人</view>
|
||||
</view>
|
||||
<view class="com_info">
|
||||
<view class="left">
|
||||
<view class="l_top">中国平安保险(集团)股份有限公司</view>
|
||||
<view class="l_top">{{actualControlInfo.actual_controller_name}}</view>
|
||||
<view class="l_bottom">
|
||||
<view class="l_b_left">企业法人</view>
|
||||
<view class="l_b_right">截至 2024-09-30</view>
|
||||
<view class="l_b_right">截至 {{actualControlInfo.end_date}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="right">
|
||||
<view class="r_top">控制比例</view>
|
||||
<view class="r_center">52.38%</view>
|
||||
<view class="r_bottom">101.69亿股</view>
|
||||
<view class="r_center">{{actualControlInfo.holding_ratio.toFixed(2)}}%</view>
|
||||
<view class="r_bottom">{{getNumStr(actualControlInfo.holding_shares)}}股</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -72,14 +72,14 @@
|
||||
<view style="text-align: center;">持股比例</view>
|
||||
<view style="text-align: center;">股份性质</view>
|
||||
</view>
|
||||
<view v-for="(item, index) in 10" class="top" :class="{action: index % 2 == 1}">
|
||||
<view class="child">中国平安保险(啊山东科技发啦设计费)</view>
|
||||
<view class="child">保险公司</view>
|
||||
<view class="child" style="text-align: center;">96.19亿</view>
|
||||
<view class="child" style="color: #3E87CF; font-weight: bold; text-align: center;">49.57%</view>
|
||||
<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_type}}</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="background-color: #FFF7E9; color: #E0AC4A; border-radius: 5rpx; padding: 5rpx 10rpx; text-align: center;">
|
||||
流通A股</view>
|
||||
{{item.share_nature}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -94,19 +94,17 @@
|
||||
<view>股东名称</view>
|
||||
<view>股东类型</view>
|
||||
<view style="text-align: center;">持股数量</view>
|
||||
<view
|
||||
style="text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
|
||||
流通股比例</view>
|
||||
<view style="text-align: center;">流通股比例</view>
|
||||
<view style="text-align: center;">股份性质</view>
|
||||
</view>
|
||||
<view v-for="(item, index) in 10" class="top" :class="{action: index % 2 == 1}">
|
||||
<view class="child">中国平安保险(啊山东科技发啦设计费)</view>
|
||||
<view class="child">保险公司</view>
|
||||
<view class="child" style="text-align: center;">96.19亿</view>
|
||||
<view class="child" style="color: #893ECF; font-weight: bold; text-align: center;">49.57%</view>
|
||||
<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_type?item.shareholder_type:'-'}}</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="background-color: #FFF7E9; color: #E0AC4A; border-radius: 5rpx; padding: 5rpx 10rpx; text-align: center;">
|
||||
流通A股</view>
|
||||
{{item.share_nature}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -115,12 +113,21 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getNumStr } from '@/utils/util';
|
||||
|
||||
export default {
|
||||
name: "gqjg-view",
|
||||
data() {
|
||||
return {
|
||||
getNumStr:getNumStr
|
||||
|
||||
};
|
||||
},
|
||||
props:{
|
||||
actualControlInfo:Object, //实际控制人信息
|
||||
shareholdersList:Array, //十大股东列表
|
||||
circulatingShareholdersList:Array, //十大流通股东列表
|
||||
competitivePositionInfo:Object, //竞争地位信息
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -277,11 +284,9 @@
|
||||
.top {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
gap: 20rpx;
|
||||
grid-template-columns: 130rpx repeat(4, 1fr);
|
||||
grid-template-columns: 166rpx repeat(4, 1fr);
|
||||
font-size: 22rpx;
|
||||
background-color: white;
|
||||
|
||||
&.action {
|
||||
background-color: #FAFAFC;
|
||||
}
|
||||
@@ -293,6 +298,9 @@
|
||||
text-overflow: ellipsis;
|
||||
margin: 10rpx 0;
|
||||
}
|
||||
.child:first-child {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view>
|
||||
<template v-if="showType == 0">
|
||||
<view style="padding: 20rpx;">
|
||||
<view style="padding: 20rpx;" v-for="(item,index) in newsList" :key="index">
|
||||
<view style="background-color: #F3F3F3; display: flex; align-items: center; height: 70rpx; border-radius: 30rpx; overflow: hidden;">
|
||||
<view style="display: flex; align-items: center; justify-content: center; width: 62rpx;">
|
||||
<image style="width: 25rpx; height: 24rpx;" src="/pagesStock/static/icon/news-search.png" mode="widthFix"></image>
|
||||
@@ -46,7 +46,7 @@
|
||||
</template>
|
||||
|
||||
<template v-if="showType == 1">
|
||||
<view style="padding: 20rpx;">
|
||||
<view style="padding: 20rpx;" v-for="(item,index) in announcementList" :key="index">
|
||||
<view style="border: 1rpx solid #E7E7E7; border-radius: 10rpx; padding: 0 27rpx; margin: 20rpx 0; display: flex; align-items: center;">
|
||||
<view style="flex: 1;">
|
||||
<view style="color: #2B2B2B; font-size: 26rpx; font-weight: bold; margin-top: 20rpx;">中央财办明确2026年继续实施适度宽松货币政策...</view>
|
||||
@@ -59,7 +59,6 @@
|
||||
<text>132 KB</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view style="padding: 4rpx 10rpx; background-color: #F2C369; border-radius: 10rpx; color: #2B2B2B; font-size: 22rpx; margin-left: 10rpx;">查看</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -76,7 +75,9 @@
|
||||
};
|
||||
},
|
||||
props: {// 0 新闻动态 1 公司公告
|
||||
type: Number
|
||||
type: Number,
|
||||
newsList:Array, //新闻动态数组
|
||||
announcementList:Array, //公司公告数组
|
||||
},
|
||||
watch:{
|
||||
type:{
|
||||
|
||||
BIN
pagesStock/static/icon/brandValue.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
pagesStock/static/icon/financialHealth.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
pagesStock/static/icon/growthPotential.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
pagesStock/static/icon/innovationAbility.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
pagesStock/static/icon/logOffStatus.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
pagesStock/static/icon/riskManagement.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
pagesStock/static/icon/technicalStrength.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
@@ -8,75 +8,75 @@
|
||||
placeholder-style="color:#eeeeee" confirm-type="search" @confirm="clickSearch()" />
|
||||
</view>
|
||||
<scroll-view scroll-y class="stockDetailsC fixed" :style="'top:'+contentTop+'px;'">
|
||||
<view class="basicInfoC">
|
||||
<view v-if="stockBasicInfo" class="basicInfoC">
|
||||
<view class="categoryLabelC flex">
|
||||
<view class="category">金融·银行</view>
|
||||
<view class="category">{{stockBasicInfo.industry_l1}}·{{stockBasicInfo.sw_industry_l2}}</view>
|
||||
<view class="">沪深300、上证180</view>
|
||||
</view>
|
||||
<view class="priceC flex">
|
||||
<view v-if="quoteDetailsInfo" class="priceC flex">
|
||||
<view class="currentChgC">
|
||||
<view class="current">11.53</view>
|
||||
<view class="chg">+0.44%</view>
|
||||
<view :class="'current '+(getRateUpOrDown(quoteDetailsInfo.change_percent)?'down':'up')">{{quoteDetailsInfo.current_price}}</view>
|
||||
<view :class="'chg '+(getRateUpOrDown(quoteDetailsInfo.change_percent)?'down':'up')">{{quoteDetailsInfo.change_percent}}%</view>
|
||||
</view>
|
||||
<view class="priceIndexC">
|
||||
<view class="flex">
|
||||
<view class="indexC flex">
|
||||
<view class="title">今开:</view>
|
||||
<view class="content">11.47</view>
|
||||
<view class="content">{{quoteDetailsInfo.today_open}}</view>
|
||||
</view>
|
||||
<view class="indexC flex marginR">
|
||||
<view class="title">昨收:</view>
|
||||
<view class="content">11.47</view>
|
||||
<view class="content">{{quoteDetailsInfo.yesterday_close}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex">
|
||||
<view class="indexC flex">
|
||||
<view class="title">最高:</view>
|
||||
<view class="content up">11.58</view>
|
||||
<view class="content up">{{quoteDetailsInfo.today_high}}</view>
|
||||
</view>
|
||||
<view class="indexC flex marginR">
|
||||
<view class="title">最低:</view>
|
||||
<view class="content down">11.42</view>
|
||||
<view class="content down">{{quoteDetailsInfo.today_low}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="section">关键指标</view>
|
||||
<view class="infoC flex">
|
||||
<view v-if="quoteDetailsInfo" class="infoC flex">
|
||||
<view class="flex flex1">
|
||||
<view class="title">市盈率 (PE)</view>
|
||||
<view class="content flex1 important marginR">5.37</view>
|
||||
<view class="content flex1 important marginR">{{quoteDetailsInfo.pe}}</view>
|
||||
</view>
|
||||
<view class="rightInfoC flex flex1">
|
||||
<view class="title">流通股本</view>
|
||||
<view class="content flex1">194.06亿股</view>
|
||||
<view class="content flex1">{{quoteDetailsInfo.float_shares}}亿股</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC flex">
|
||||
<view v-if="quoteDetailsInfo" class="infoC flex">
|
||||
<view class="flex flex1">
|
||||
<view class="title">流通市值</view>
|
||||
<view class="content flex1 important marginR">2237.47亿</view>
|
||||
<view class="content flex1 important marginR">{{quoteDetailsInfo.market_cap}}</view>
|
||||
</view>
|
||||
<view class="rightInfoC flex flex1">
|
||||
<view class="title">换手率</view>
|
||||
<view class="content flex1">0.36%</view>
|
||||
<view class="content flex1">{{quoteDetailsInfo.turnover_rate}}%</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC flex">
|
||||
<view v-if="quoteDetailsInfo" class="infoC flex">
|
||||
<view class="flex flex1">
|
||||
<view class="title">发行总股本</view>
|
||||
<view class="content flex1 marginR">194.06亿股</view>
|
||||
<view class="content flex1 marginR">{{quoteDetailsInfo.total_shares}}亿股</view>
|
||||
</view>
|
||||
<view class="rightInfoC flex flex1">
|
||||
<view class="title">52周波动</view>
|
||||
<view class="content flex1">10.48-13.33</view>
|
||||
<view class="content flex1">{{quoteDetailsInfo.week52_low}}-{{quoteDetailsInfo.week52_high}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="section">主力动态</view>
|
||||
<view class="infoC flex">
|
||||
<view v-if="quoteDetailsInfo" class="infoC flex">
|
||||
<view class="flex flex1">
|
||||
<view class="title">主力净流入</view>
|
||||
<view class="content flex1 marginR up">+0.10亿</view>
|
||||
<view :class="'content flex1 marginR '+(getRateUpOrDown(quoteDetailsInfo.net_inflow)?'down':'up')">{{getRateUpOrDown(quoteDetailsInfo.net_inflow)?'':'+'}}{{getNumStr(quoteDetailsInfo.net_inflow)}}股</view>
|
||||
</view>
|
||||
<view class="rightInfoC flex flex1">
|
||||
<view class="title">机构持仓</view>
|
||||
@@ -94,19 +94,19 @@
|
||||
<view class="flex flex1">
|
||||
<image class="icon" src="/pagesStock/static/icon/establishedTime.png" mode="widthFix"></image>
|
||||
<view class="title">成立</view>
|
||||
<view class="content flex1 marginR">1987/12/22</view>
|
||||
<view class="content flex1 marginR">{{getLocalDate(stockBasicInfo.establish_date)}}</view>
|
||||
</view>
|
||||
<view class="rightInfoC flex flex1">
|
||||
<image class="icon" src="/pagesStock/static/icon/registeredCapital.png" mode="widthFix"></image>
|
||||
<view class="title">注册资本</view>
|
||||
<view class="content flex1">194.06亿元</view>
|
||||
<view class="content flex1">{{stockBasicInfo.reg_capital}}亿元</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC flex">
|
||||
<view class="flex flex1">
|
||||
<image class="icon" src="/pagesStock/static/icon/location.png" mode="widthFix"></image>
|
||||
<view class="title">所在地</view>
|
||||
<view class="content flex1 marginR">广东 深圳市</view>
|
||||
<view class="content flex1 marginR">{{stockBasicInfo.province}} {{stockBasicInfo.city}}</view>
|
||||
</view>
|
||||
<view class="rightInfoC flex flex1">
|
||||
<image class="icon" src="/pagesStock/static/icon/visitWebsite.png" mode="widthFix"></image>
|
||||
@@ -116,8 +116,10 @@
|
||||
</view>
|
||||
<view class="companyInfo">
|
||||
<view class="title">公司简介</view>
|
||||
<view class="flex1">深圳发展银行股份有限公司系在对中华人民共和国深圳经济特区内原6家农村信用社进行股份制改造的基础上设立的股份制商业银行...
|
||||
<text class="expand">展开全文</text>
|
||||
<view :class="'info relative flex1 '+(isExpandIntro?'':'retract')">{{stockBasicInfo.company_intro}}
|
||||
<text :class="'expand '+(isExpandIntro?'':'absolute')" @click="clickExpandOrRetractCompanyIntro()">
|
||||
<text v-if="!isExpandIntro" class="ellipsis">...</text>{{isExpandIntro?'收起':'展开全文'}}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -134,9 +136,8 @@
|
||||
</view>
|
||||
</view>
|
||||
<template v-if="selectCompanyFiles==0">
|
||||
<gqjg-view></gqjg-view>
|
||||
<gqjg-view :actualControlInfo="actualControlInfo" :shareholdersList="topShareholdersList" :circulatingShareholdersList="topCirculatingShareholdersList"></gqjg-view>
|
||||
</template>
|
||||
|
||||
<view v-if="selectCompanyFiles==1" class="managementTeamList">
|
||||
<view class="positionNumC flex">
|
||||
<view class="position">董事</view>
|
||||
@@ -169,33 +170,34 @@
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="selectCompanyFiles==2" class="branchList">
|
||||
<view class="item">
|
||||
<view class="item" v-for="(item,index) in branchList" :key="index">
|
||||
<view class="titleStatusC flex">
|
||||
<view class="title flex1">平安银行股份有限公司北京分行</view>
|
||||
<view class="statusC exist flex">
|
||||
<image class="icon" src="/pagesStock/static/icon/existStatus.png" mode="widthFix">
|
||||
<view class="title flex1">{{item.branch_name}}</view>
|
||||
<view :class="'statusC flex '+(item.business_status=='注销'?'logOff':'exist')">
|
||||
<image v-if="item.business_status=='注销'" class="icon" src="/pagesStock/static/icon/logOffStatus.png" mode="widthFix">
|
||||
</image>
|
||||
<view>存续</view>
|
||||
<image v-else class="icon" src="/pagesStock/static/icon/existStatus.png" mode="widthFix"></image>
|
||||
<view>{{item.business_status}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC topInfo flex">
|
||||
<view class="infoItem leftInfo flex flex1">
|
||||
<view class="title">注册资本</view>
|
||||
<view class="content flex1">20亿元</view>
|
||||
<view class="content flex1">{{item.register_capital}}</view>
|
||||
</view>
|
||||
<view class="infoItem rightInfo flex flex1">
|
||||
<view class="title">法人代表</view>
|
||||
<view class="content flex1">张伟</view>
|
||||
<view class="content flex1">{{item.legal_person}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC flex">
|
||||
<view class="infoItem leftInfo flex flex1">
|
||||
<view class="title">成立日期</view>
|
||||
<view class="content flex1">2007-03-15</view>
|
||||
<view class="content flex1">{{item.register_date}}</view>
|
||||
</view>
|
||||
<view class="infoItem rightInfo flex flex1">
|
||||
<view class="title">关联企业</view>
|
||||
<view class="content flex1">156 家</view>
|
||||
<view class="content flex1">{{item.related_company_count}}家</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -205,36 +207,35 @@
|
||||
<view class="infoC">
|
||||
<view class="infoItem flex">
|
||||
<view class="title">统一信用代码</view>
|
||||
<view class="content code flex1 rightAlign">914403001000010008</view>
|
||||
<view class="content code flex1 rightAlign">{{stockBasicInfo.credit_code}}</view>
|
||||
</view>
|
||||
<view class="infoItem flex">
|
||||
<view class="title">公司规模</view>
|
||||
<view class="content flex1 rightAlign">大型企业(员工超3万人)</view>
|
||||
<view class="content flex1 rightAlign">{{stockBasicInfo.company_size}}</view>
|
||||
</view>
|
||||
<view class="infoItem flex">
|
||||
<view class="title">注册地址</view>
|
||||
<view class="content flex1 rightAlign">深圳市罗湖区深南东路5047号</view>
|
||||
<view class="content flex1 rightAlign">{{stockBasicInfo.reg_address}}</view>
|
||||
</view>
|
||||
<view class="infoItem flex">
|
||||
<view class="title">办公地址</view>
|
||||
<view class="content flex1 rightAlign">深圳市福田区益田路5023号平</view>
|
||||
<view class="content flex1 rightAlign">{{stockBasicInfo.office_address}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="section">服务机构</view>
|
||||
<view class="infoC">
|
||||
<view class="title infoItem">会计师事务所</view>
|
||||
<view class="content infoItem">普华永道中天会计师事务所(特殊普通合伙)</view>
|
||||
<view class="title infoItem">会计师事务所</view>
|
||||
<view class="content infoItem">普华永道中天会计师事务所(特殊普通合伙)</view>
|
||||
<view class="content infoItem">{{stockBasicInfo.accounting_firm}}</view>
|
||||
<view class="title infoItem">律师事务所</view>
|
||||
<view class="content infoItem">{{stockBasicInfo.law_firm}}</view>
|
||||
</view>
|
||||
<view class="section">主营业务</view>
|
||||
<view class="infoC mainBussiness">
|
||||
<text class="title">吸收公众存款、发放贷款、办理结算、票据贴现、资金拆借、银行卡业务代理收付款项、外汇业务等商业银行业务</text>
|
||||
<text class="title">{{stockBasicInfo.main_business}}</text>
|
||||
</view>
|
||||
<view class="section">经营范围</view>
|
||||
<view class="infoC">
|
||||
<text
|
||||
class="title">吸收公众存款;发放短期、中期和长期贷款;办理国内外结算;办理票据兑与贴现;发行金融债券;代理发行、代理兑付、承销政府债券;买卖政府债买卖外汇;从事银行卡业务,提供信用证服务及担保,代理收付款项及代理保险业务;提供保管箱服务;经有关监管机构批准的其他业务。</text>
|
||||
<text class="title">{{stockBasicInfo.business_scope}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
@@ -246,7 +247,7 @@
|
||||
</view>
|
||||
<view v-if="selectInDepthAnalysis==0" class="strategicAnalysisList">
|
||||
<view class="section">核心定位</view>
|
||||
<view class="corePositionC">中国领先的股份制商业银行,平安集团综合金融战略的核心载体</view>
|
||||
<view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.one_line_intro}}</view>
|
||||
<view class="section">投资亮点</view>
|
||||
<view class="highlightsList">
|
||||
<view class="item flex">
|
||||
@@ -278,16 +279,13 @@
|
||||
<view class="content">聚焦供应链金融和产业互联网,服务实体经济高质量发展。</view>
|
||||
</view>
|
||||
<view class="section">战略分析</view>
|
||||
<view class="infoC">
|
||||
<view v-if="qualitativeAnalysisInfo" class="infoC">
|
||||
<view class="title">战略方向</view>
|
||||
<view class="content">以"零售做强、对公做精、同业做专"为主线,通过压降高风险资产、深耕科技绿色普惠强化集团协同,实现轻资本、弱周期、高股息的高质量增长。
|
||||
<view class="content">{{qualitativeAnalysisInfo.strategy.strategy_description}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC">
|
||||
<view v-if="qualitativeAnalysisInfo" class="infoC">
|
||||
<view class="title">战略举措</view>
|
||||
<view class="content">
|
||||
2025年A1138个项目落地,构建智能风控、智能投顾与智能运营,目标3年降低单位成本10%以上;发行800亿元资本债,用于置换存量高成本次级债并支持科技绿色贷款扩张,目合金融优势技绿色贷款占比提升至15%。
|
||||
</view>
|
||||
<view class="content">{{qualitativeAnalysisInfo.strategy.strategic_initiatives}}</view>
|
||||
</view>
|
||||
|
||||
<view class="section flex">
|
||||
@@ -301,23 +299,28 @@
|
||||
</view>
|
||||
<view class="subSection">主要竞争对手</view>
|
||||
<view class="mainCompetitorList flexWrap">
|
||||
<view class="item flex">
|
||||
<image class="icon" src="/pagesStock/static/icon/existStatus.png" mode="widthFix">
|
||||
</image>
|
||||
<view>招商银行</view>
|
||||
<view class="item flex" v-for="(item,index) in mainCompetitorsList" :key="index">
|
||||
<image class="icon" src="/pagesStock/static/icon/existStatus.png" mode="widthFix"></image>
|
||||
<view>{{item}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC">
|
||||
<view class="scoreList">
|
||||
<view :class="'item flex '+item.color" v-for="(item,index) in scoreList" :key="index">
|
||||
<image class="icon" :src="item.icon" mode="widthFix"></image>
|
||||
<view class="title">{{item.title}}</view>
|
||||
<view class="progressBgC relative flex1">
|
||||
<view :class="'progress absolute '+item.color" :style="'width: '+item.score+'%;'"></view>
|
||||
</view>
|
||||
<view class="score">{{item.score}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="competitivePositionInfo" class="infoC">
|
||||
<view class="title">竞争优势</view>
|
||||
<view class="content">
|
||||
背靠平安集团综合金融生态,零售客户数超1.25亿、AUM近4.2万亿元,科技投入持续高位,数字化经营与风控模型行业领先,对公绿色、科创、普惠贷款增速均超10%,非息收入占比提升至36%以上,资本充足率高于监管底线且拨备覆盖率250%+,资产质量稳健。
|
||||
<view class="content">{{competitivePositionInfo.analysis.competitive_advantages}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="infoC">
|
||||
<view v-if="competitivePositionInfo" class="infoC">
|
||||
<view class="title">竞争劣势</view>
|
||||
<view class="content">
|
||||
净息差仅1.87%且同比收窄51bps,营收与净利润双降,个人贷款规模下滑10.6%,规模增速(3.3%)低于行业平均,ROE跌破11%,成本收入比27.7%仍高于股份行头部标杆;对公与同业业务市场份额仍小,存款成本刚性,利率下行周期盈利弹性受限。
|
||||
</view>
|
||||
<view class="content">{{competitivePositionInfo.analysis.competitive_disadvantages}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<template v-if="selectInDepthAnalysis==1">
|
||||
@@ -337,7 +340,6 @@
|
||||
{{item.title}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<zysj-view :type="selectCaiwu"></zysj-view>
|
||||
</block>
|
||||
<block v-if="selectTab==3">
|
||||
@@ -476,16 +478,20 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
inject
|
||||
} from 'vue'
|
||||
import { inject } from 'vue'
|
||||
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, managementTeam, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList } from '@/request/api'
|
||||
import { getLocalDate, getNumStr, getRateUpOrDown } from '@/utils/util'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
navH: inject('navHeight'),
|
||||
keywords: '',
|
||||
contentTop: '',
|
||||
keywords: '', //搜索关键字
|
||||
stockCode:'000009', //股票代码 600759
|
||||
stockBasicInfo:null, //股票基本信息
|
||||
quoteDetailsInfo:null, //股票事实市场价格信息
|
||||
isExpandIntro:false, //是否展开公司简介
|
||||
tabList: [{
|
||||
title: '公司档案'
|
||||
},
|
||||
@@ -519,6 +525,11 @@
|
||||
title: '工商信息'
|
||||
}
|
||||
], //公司档案分类
|
||||
actualControlInfo:null, //实际控制信息
|
||||
topShareholdersList:[], //十大股东列表
|
||||
topCirculatingShareholdersList:[], //十大流通股东列表
|
||||
managementList:[], //管理团队列表
|
||||
branchList:[], //分支机构列表
|
||||
selectCompanyFiles: 0,
|
||||
inDepthAnalysisList: [{
|
||||
title: '战略分析'
|
||||
@@ -534,6 +545,57 @@
|
||||
}
|
||||
], //深度分析分类
|
||||
selectInDepthAnalysis: 0,
|
||||
qualitativeAnalysisInfo:null, //定性分析
|
||||
mainCompetitorsList:[], //主要竞争对手
|
||||
scoreList:[{
|
||||
icon:'/pagesStock/static/icon/marketPosition.png',
|
||||
title:'市场地位',
|
||||
color:'blue',
|
||||
score:''
|
||||
},
|
||||
{
|
||||
icon:'/pagesStock/static/icon/technicalStrength.png',
|
||||
title:'技术实力',
|
||||
color:'purple',
|
||||
score:''
|
||||
},
|
||||
{
|
||||
icon:'/pagesStock/static/icon/brandValue.png',
|
||||
title:'品牌价值',
|
||||
color:'purple',
|
||||
score:''
|
||||
},
|
||||
{
|
||||
icon:'/pagesStock/static/icon/growthPotential.png',
|
||||
title:'运营效率',
|
||||
color:'purple',
|
||||
score:''
|
||||
},
|
||||
{
|
||||
icon:'/pagesStock/static/icon/financialHealth.png',
|
||||
title:'财务健康',
|
||||
color:'blue',
|
||||
score:''
|
||||
},
|
||||
{
|
||||
icon:'/pagesStock/static/icon/innovationAbility.png',
|
||||
title:'创新能力',
|
||||
color:'blue',
|
||||
score:''
|
||||
},
|
||||
{
|
||||
icon:'/pagesStock/static/icon/riskManagement.png',
|
||||
title:'风险控制',
|
||||
color:'purple',
|
||||
score:''
|
||||
},
|
||||
{
|
||||
icon:'/pagesStock/static/icon/growthPotential.png',
|
||||
title:'成长潜力',
|
||||
color:'purple',
|
||||
score:''
|
||||
}],
|
||||
competitivePositionInfo:null, //竞争地位信息
|
||||
caiWuList: [{
|
||||
title: '主营数据'
|
||||
},
|
||||
@@ -543,7 +605,7 @@
|
||||
{
|
||||
title: '财务数据'
|
||||
}
|
||||
], //深度分析分类
|
||||
], //财务全景分类
|
||||
selectCaiwu: 0,
|
||||
dongTaiList: [{
|
||||
title: '新闻动态'
|
||||
@@ -551,20 +613,47 @@
|
||||
{
|
||||
title: '公司公告'
|
||||
}
|
||||
], //深度分析分类
|
||||
selectDongtai: 0
|
||||
], //动态跟踪分类
|
||||
selectDongtai: 0,
|
||||
newsList:[], //新闻动态数据
|
||||
companyAnnouncementList:[], //公司公告数据
|
||||
getLocalDate:getLocalDate,
|
||||
getRateUpOrDown:getRateUpOrDown,
|
||||
getNumStr:getNumStr
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.contentTop = this.navH + (20 + 70 + 30) / 750 * inject('windowWidth')
|
||||
this.getStockBasicInfoData()
|
||||
this.getQuoteDetailsData()
|
||||
this.getActualControl()
|
||||
this.getTopShareholdersData()
|
||||
this.getTopCirculatingShareholdersData()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 点击搜索
|
||||
*/
|
||||
clickSearch() {
|
||||
this.getStockBasicInfoData()
|
||||
this.getQuoteDetailsData()
|
||||
},
|
||||
/**
|
||||
* 点击展开收起公司简介
|
||||
*/
|
||||
clickExpandOrRetractCompanyIntro() {
|
||||
this.isExpandIntro = !this.isExpandIntro
|
||||
},
|
||||
/**
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickTabItem(index) {
|
||||
if (this.selectTab != index) {
|
||||
this.selectTab = index
|
||||
if(index==1) {
|
||||
//获取竞争地位数据
|
||||
this.getComprehensiveAnalysisData()
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
@@ -574,24 +663,13 @@
|
||||
clickCompanyFilesItem(index) {
|
||||
if (this.selectCompanyFiles != index) {
|
||||
this.selectCompanyFiles = index
|
||||
if (index==1) {
|
||||
//获取管理团队数据
|
||||
this.getManagementTeamData()
|
||||
}else if (index==2) {
|
||||
//获取分支机构数据
|
||||
this.getBranchListData()
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 点击选择动态分类
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickDongTaiItem(index) {
|
||||
if (this.selectDongtai != index) {
|
||||
this.selectDongtai = index
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 点击选择财务分类
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickCaiWuItem(index) {
|
||||
if (this.selectCaiwu != index) {
|
||||
this.selectCaiwu = index
|
||||
}
|
||||
},
|
||||
/**
|
||||
@@ -603,6 +681,32 @@
|
||||
this.selectInDepthAnalysis = index
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 点击选择动态分类
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickDongTaiItem(index) {
|
||||
if (this.selectDongtai != index) {
|
||||
this.selectDongtai = index
|
||||
if (index==0) {
|
||||
//新闻动态
|
||||
this.getNewsListData()
|
||||
} else if (index==1) {
|
||||
//公司公告
|
||||
this.getCompanyAnnouncementsData()
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 点击选择财务分类
|
||||
* @param {Object} index
|
||||
*/
|
||||
clickCaiWuItem(index) {
|
||||
if (this.selectCaiwu != index) {
|
||||
this.selectCaiwu = index
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 点击查看行业排名
|
||||
*/
|
||||
@@ -615,6 +719,158 @@
|
||||
}else {
|
||||
this.$refs["detailInfoPopup"].open()
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 获取股票基本信息
|
||||
*/
|
||||
getStockBasicInfoData() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
stockBasicInfo(code).then(res=>{
|
||||
this.stockBasicInfo = res.data
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取股票当前市场价格信息
|
||||
*/
|
||||
getQuoteDetailsData() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
quoteDetailsInfo(code).then(res=>{
|
||||
this.quoteDetailsInfo = res.data
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取实际控制人数据
|
||||
*/
|
||||
getActualControl() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
actualControl(code).then(res=>{
|
||||
this.actualControlInfo = res.data[0]
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取十大股东列表
|
||||
*/
|
||||
getTopShareholdersData() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
topShareholdersList(code,{'limit':10}).then(res=>{
|
||||
this.topShareholdersList = res.data
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取十大流通股东列表
|
||||
*/
|
||||
getTopCirculatingShareholdersData() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
topCirculatingShareholdersList(code,{'limit':10}).then(res=>{
|
||||
this.topCirculatingShareholdersList = res.data
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取管理团队数据
|
||||
*/
|
||||
getManagementTeamData() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
managementTeam(code,{active_only:true}).then(res=>{
|
||||
let data = res.data
|
||||
this.managementList = data.reduce((acc, item) => {
|
||||
if (!acc[item.position_category_code]) {
|
||||
acc[item.position_category_code] = [];
|
||||
}
|
||||
acc[item.position_category_code].push(item);
|
||||
return acc;
|
||||
}, {});
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取分支机构数据
|
||||
*/
|
||||
getBranchListData() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
branchesList(code).then(res=>{
|
||||
this.branchList = res.data
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取综合分析数据
|
||||
*/
|
||||
getComprehensiveAnalysisData() {
|
||||
let code = this.stockCode
|
||||
if (this.keywords) {
|
||||
code = this.keywords
|
||||
}
|
||||
comprehensiveAnalysis(code).then(res=>{
|
||||
this.qualitativeAnalysisInfo = res.data.qualitative_analysis
|
||||
this.competitivePositionInfo = res.data.competitive_position
|
||||
this.mainCompetitorsList = this.competitivePositionInfo.analysis.main_competitors.split(',')
|
||||
this.scoreList[0].score = this.competitivePositionInfo.scores.market_position
|
||||
this.scoreList[1].score = this.competitivePositionInfo.scores.technology
|
||||
this.scoreList[2].score = this.competitivePositionInfo.scores.brand
|
||||
this.scoreList[3].score = this.competitivePositionInfo.scores.operation
|
||||
this.scoreList[4].score = this.competitivePositionInfo.scores.finance
|
||||
this.scoreList[5].score = this.competitivePositionInfo.scores.innovation
|
||||
this.scoreList[6].score = this.competitivePositionInfo.scores.risk
|
||||
this.scoreList[7].score = this.competitivePositionInfo.scores.growth
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取新闻动态数据
|
||||
*/
|
||||
getNewsListData() {
|
||||
let param = {importance:'all',sort:'new',q:this.stockCode,page:1,per_page:10,mode:'vertical'}
|
||||
eventList(param).then(res=>{
|
||||
this.newsList = res.data.events
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取公司公告数据
|
||||
*/
|
||||
getCompanyAnnouncementsData() {
|
||||
let param = {limit:20}
|
||||
companyAnnouncementsList(param).then(res=>{
|
||||
this.companyAnnouncementList = res.data
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -659,7 +915,6 @@
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: calc(20rpx + 70rpx + 20rpx + env(safe-area-inset-bottom));
|
||||
;
|
||||
|
||||
.basicInfoC {
|
||||
background-color: white;
|
||||
@@ -689,12 +944,19 @@
|
||||
|
||||
.currentChgC {
|
||||
margin-right: 40rpx;
|
||||
color: #EC3440;
|
||||
|
||||
|
||||
.current {
|
||||
font-size: 48rpx;
|
||||
font-weight: 900;
|
||||
}
|
||||
.up {
|
||||
color: #EC3440;
|
||||
}
|
||||
.down
|
||||
{
|
||||
color: #345423;
|
||||
}
|
||||
|
||||
.chg {
|
||||
font-size: 24rpx;
|
||||
@@ -764,6 +1026,9 @@
|
||||
.content.up {
|
||||
color: #EC3440;
|
||||
}
|
||||
.content.down {
|
||||
color: #345423;
|
||||
}
|
||||
}
|
||||
|
||||
.progressC {
|
||||
@@ -809,8 +1074,24 @@
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.info.retract {
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 3;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.expand {
|
||||
background-color: white;
|
||||
// padding-left: 10rpx;
|
||||
color: #BB8520;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
.ellipsis
|
||||
{
|
||||
color: #71675D;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1020,18 +1301,23 @@
|
||||
border-radius: 15rpx;
|
||||
font-size: 20rpx;
|
||||
font-weight: 500;
|
||||
.icon {
|
||||
margin-right: 3rpx;
|
||||
width: 16rpx;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.statusC.exist {
|
||||
background-color: #FFF7E9;
|
||||
border: solid 1rpx #F2C369;
|
||||
color: #F2C369;
|
||||
|
||||
.icon {
|
||||
margin-right: 3rpx;
|
||||
width: 16rpx;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.statusC.logOff {
|
||||
background-color: #FFF1F1;
|
||||
border: solid 1rpx #EF3535;
|
||||
color: #EF3535;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1087,7 +1373,7 @@
|
||||
padding: 12rpx 20rpx;
|
||||
|
||||
.infoItem {
|
||||
line-height: 40rpx;
|
||||
line-height: 46rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
@@ -1258,6 +1544,53 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.scoreList
|
||||
{
|
||||
.item
|
||||
{
|
||||
margin-bottom: 40rpx;
|
||||
font-size: 24rpx;
|
||||
.icon
|
||||
{
|
||||
margin-right: 10rpx;
|
||||
width: 24rpx;
|
||||
height: auto;
|
||||
}
|
||||
.title
|
||||
{
|
||||
margin-right: 15rpx;
|
||||
font-weight: 500;
|
||||
color: #232323;
|
||||
}
|
||||
.progressBgC
|
||||
{
|
||||
background-color: #EFEFEF;
|
||||
margin-right: 15rpx;
|
||||
height: 10rpx;
|
||||
border-radius: 5rpx;
|
||||
.progress
|
||||
{
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 10rpx;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
.progress.blue
|
||||
{
|
||||
background: linear-gradient(90deg, #4AAFFF 0%, #1F83FD 100%);
|
||||
}
|
||||
.progress.purple
|
||||
{
|
||||
background: linear-gradient(90deg, #DD96FC 0%, #C061FD 100%);
|
||||
}
|
||||
}
|
||||
.score
|
||||
{
|
||||
font-weight: 800;
|
||||
color: #070707;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ywjg_list {
|
||||
|
||||
@@ -143,6 +143,47 @@ export const investEventDetails = (id,param) => get('/api/calendar/detail/'+id,p
|
||||
*/
|
||||
export const calendarEventCount = param => get('/api/calendar-event-counts',param)
|
||||
|
||||
/**
|
||||
* 个股基本信息
|
||||
*/
|
||||
export const stockBasicInfo = code => get('/api/stock/'+code+'/basic-info',null,true)
|
||||
/**
|
||||
* 个股当前价格信息
|
||||
*/
|
||||
export const quoteDetailsInfo = code => get('/api/stock/'+code+'/quote-detail',null,true)
|
||||
/**
|
||||
* 实际控制人
|
||||
*/
|
||||
export const actualControl = code => get('/api/stock/'+code+'/actual-control',null,true)
|
||||
/**
|
||||
* 股权集中度
|
||||
*/
|
||||
export const ownershipConcentration = code => get('/api/stock/'+code+'/concentration',null,true)
|
||||
/**
|
||||
* 股东列表
|
||||
*/
|
||||
export const topShareholdersList = (code,param) => get('/api/stock/'+code+'/top-shareholders',param,true)
|
||||
/**
|
||||
* 流动股东列表
|
||||
*/
|
||||
export const topCirculatingShareholdersList = (code,param) => get('/api/stock/'+code+'/top-circulation-shareholders',param,true)
|
||||
/**
|
||||
* 管理团队
|
||||
*/
|
||||
export const managementTeam = (code,param) => get('/api/stock/'+code+'/management',param,true)
|
||||
/**
|
||||
* 分支机构
|
||||
*/
|
||||
export const branchesList = code => get('/api/stock/'+code+'/branches',null,true)
|
||||
/**
|
||||
* 综合分析
|
||||
*/
|
||||
export const comprehensiveAnalysis = code => get('/api/company/comprehensive-analysis/'+code,null,true)
|
||||
/**
|
||||
* 公司公告
|
||||
*/
|
||||
export const companyAnnouncementsList = code => get('/api/stock/'+code+'/announcements',null,true)
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
*/
|
||||
|
||||
@@ -20,15 +20,15 @@ export function getBaseURL() {
|
||||
* @param {String} url [请求的url地址]
|
||||
* @param {Object} params [请求时携带的参数]
|
||||
*/
|
||||
export function get(url, params){
|
||||
export function get(url, params, isNotPort){
|
||||
return new Promise((resolve, reject) =>{
|
||||
let token = uni.getStorageSync('token')
|
||||
uni.showLoading({
|
||||
title:'加载中'
|
||||
})
|
||||
let baseUrl = baseURL
|
||||
if(url.indexOf('concept-api')>-1||url.indexOf('news-api')>-1||url.indexOf('report-api')>-1)
|
||||
{
|
||||
if (isNotPort) {
|
||||
//如果不需要端口号
|
||||
baseUrl = 'https://api.valuefrontier.cn'
|
||||
}
|
||||
uni.request({
|
||||
@@ -69,7 +69,7 @@ export function get(url, params){
|
||||
* @param {String} url [请求的url地址]
|
||||
* @param {Object} params [请求时携带的参数]
|
||||
*/
|
||||
export function post(url, params) {
|
||||
export function post(url, params, isNotPort) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let token = uni.getStorageSync('token')
|
||||
let isJson = 0
|
||||
|
||||
@@ -225,6 +225,24 @@ export function getRateUpOrDown(r)
|
||||
return String(r).indexOf('-')>-1
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据数字大小展示亿或者完
|
||||
* @param {Object} r
|
||||
*/
|
||||
export function getNumStr(r)
|
||||
{
|
||||
if (!r) return
|
||||
let value = r
|
||||
if (r<0) value = 0-r
|
||||
value = parseFloat(value)
|
||||
if (value>100000000) {
|
||||
return (r/100000000).toFixed(2)+'亿'
|
||||
}else if (value>10000) {
|
||||
return (r/10000).toFixed(2)+'万'
|
||||
}else
|
||||
return r
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取本地时间
|
||||
* @param {Object} time
|
||||
|
||||