1.29 财务分析模块完善

This commit is contained in:
尚政杰
2026-01-29 15:48:33 +08:00
parent 4f211dcd5f
commit 38fc352096
19 changed files with 1154 additions and 301 deletions

View File

@@ -1,23 +1,21 @@
<template> <template>
<view> <view>
<view 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>
<image src="/static/icon/home/conceptCenter/next.png" mode="widthFix" <image src="/static/icon/home/conceptCenter/next.png" mode="widthFix"
style="width: 13rpx; height: 22rpx;"></image> style="width: 13rpx; height: 22rpx;"></image>
</view> </view>
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(4, 1fr); margin: 0 20rpx;"> <view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(4, 1fr); margin: 0 20rpx;">
<view <view :class="'item flex '+(profitabilityIndicatorIndex==index?'select':'')"
style="display: flex; align-items: center; justify-content: center; text-align: center; font-size: 20rpx; color: #999999; border: 1rpx solid #D2D2D2; padding: 3rpx 5rpx; box-sizing: border-box;" style="justify-content: center; text-align: center;padding: 3rpx 5rpx;"
:style="{color: index == 0 ? '#BB8520' : '#999999', border: `1rpx solid ${index == 0 ? '#F2C369' : '#D2D2D2'}`, 'background-color': (index == 0 ? '#FFFAF1' : '#FFFFFF')}" v-for="(item,index) in profitabilityIndicatorList" :key="index" @click="clickProfitabilityIndicatorItem(index)">
v-for="(item,index) in ['净资产收益率(ROE)%', '净资产收益率(扣非)%', '净资产收益率(加权)%', '总资产报酬率(ROA)%', '毛利率%', '净利率%', '营业利润率%', '成本费用利润率%']" {{item.title}}
:key="index">
{{item}}
</view> </view>
</view> </view>
<view class="flex" style="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;">
@@ -35,9 +33,7 @@
<view style="height: 500rpx;"> <view style="height: 500rpx;">
<l-echart ref="chartRef1"></l-echart> <l-echart ref="chartRef1"></l-echart>
</view> </view>
</view> </view>
<view 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-2.png" mode="widthFix" <image src="/pagesStock/static/icon/cwfx-2.png" mode="widthFix"
@@ -47,13 +43,10 @@
style="width: 13rpx; height: 22rpx;"></image> style="width: 13rpx; height: 22rpx;"></image>
</view> </view>
<view style="display: grid; gap: 20rpx; grid-template-columns: repeat(4, 1fr); margin: 0 20rpx;"> <view class="indicatorC" style="display: grid; gap: 20rpx; grid-template-columns: repeat(4, 1fr); margin: 0 20rpx;">
<view <view :class="'item flexCenter '+(perShareIndicatorIndex==index?'select':'')"
style="display: flex; align-items: center; justify-content: center; text-align: center; font-size: 20rpx; color: #999999; border: 1rpx solid #D2D2D2; padding: 3rpx 5rpx; box-sizing: border-box;" v-for="(item,index) in perShareIndicatorList" :key="index" @click="clickPerShareIndicatorItem(index)">
:style="{color: index == 0 ? '#BB8520' : '#999999', border: `1rpx solid ${index == 0 ? '#F2C369' : '#D2D2D2'}`, 'background-color': (index == 0 ? '#FFFAF1' : '#FFFFFF')}" {{item.title}}
v-for="(item,index) in ['每股收益(EPS)', '基本每股收益', '稀释每股收益', '扣非每股收益', '每股净资产', '每股经营现金流', '每股资本公积', '每股未分配利润']"
:key="index">
{{item}}
</view> </view>
</view> </view>
@@ -80,10 +73,61 @@
</template> </template>
<script> <script>
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
export default { export default {
name:"cwfx-view", name:"cwfx-view",
data() { data() {
return { return {
profitabilityIndicatorList:[{
title:'净资产收益率(ROE)%',
},
{
title:'净资产收益率(扣非)%',
},
{
title:'净资产收益率(加权)%',
},
{
title:'总资产报酬率(ROA)%',
},
{
title:'毛利率%',
},
{
title:'净利率%',
},
{
title:'营业利润率%',
},
{
title:'成本费用利润率%'
}],
profitabilityIndicatorIndex:0,
perShareIndicatorList:[{
title:'每股收益(EPS)',
},
{
title:'基本每股收益',
},
{
title:'稀释每股收益',
},
{
title:'扣非每股收益',
},
{
title:'每股净资产',
},
{
title:'每股经营现金流',
},
{
title:'每股资本公积',
},
{
title:'每股未分配利润'
}],
perShareIndicatorIndex:0,
option1:{ option1:{
legend:{ legend:{
show:true, show:true,
@@ -99,7 +143,8 @@
type: 'category', type: 'category',
data: [], data: [],
axisLabel:{ axisLabel:{
// interval:0 fontSize:10,
rotate:45
} }
}, },
yAxis: [{ yAxis: [{
@@ -119,21 +164,75 @@
axisLine:{ axisLine:{
onZero:false onZero:false
} }
} }],
],
dataZoom:[{ dataZoom:[{
type:'slider' type:'slider'
}], }],
series: [ series: [
{ {
type: 'bar', type: 'bar',
name:'营业收入', name:'ROE',
data: [], data: [],
yAxisIndex:0 yAxisIndex:0
}, },
{ {
type: 'line', type: 'line',
name:'净利润', name:'同比',
data: [],
yAxisIndex:1
}
]
},
option2:{
legend:{
show:true,
data:['ROE','同比(右)']
},
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: [], data: [],
yAxisIndex:1 yAxisIndex:1
} }
@@ -142,20 +241,247 @@
}; };
}, },
props: { props: {
barCategoryList1:Array, dataList:Array,
barList1:Array, },
lineList:Array, //折线图数据 watch:{
barCategoryList1:Array, dataList(newValue) {
barList1:Array, let category = []
let data1 = []
let data2 = []
for (let item of newValue) {
var type = item.report_type
type = type.replace('年三季报','Q3')
type = type.replace('年一季报','Q1')
type = type.replace('年中报','中报')
type = type.replace('年年报','年报')
category.push(type)
if(item.profitability.roe)
{
data1.push(item.profitability.roe.toFixed(2))
}else
data1.push(0)
if(item.per_share_metrics.eps)
{
data2.push(item.per_share_metrics.eps.toFixed(2))
}else
data2.push(0)
}
this.option1.xAxis.data = category
this.option1.series[0].data = data1
this.profitabilityInit()
this.option2.series[0].data = data2
this.perShareInit()
}
}, },
methods:{ methods:{
clickProfitabilityIndicators(item) { async profitabilityInit() {
// chart 图表实例不能存在data里
const chart = await this.$refs.chartRef1.init(echarts);
// chart.on('click',function (params) {
// console.log(params)
// })
chart.setOption(this.option1)
},
async perShareInit() {
// chart 图表实例不能存在data里
const chart = await this.$refs.chartRef2.init(echarts);
// chart.on('click',function (params) {
// console.log(params)
// })
chart.setOption(this.option2)
},
/**
* 切换盈利能力指标
* @param {Object} item
*/
clickProfitabilityIndicatorItem(index) {
if(this.profitabilityIndicatorIndex!=index) {
this.profitabilityIndicatorIndex = index
let data = []
if(index==0) {
//净资产收益率
for (let item of this.dataList) {
if(item.profitability.roe)
{
data.push(item.profitability.roe.toFixed(2))
}else
data.push(0)
}
}else if(index==1) {
//净资产收益率(扣非)
for (let item of this.dataList) {
if(item.profitability.roe_deducted)
{
data.push(item.profitability.roe_deducted.toFixed(2))
}else
data.push(0)
}
}else if(index==2) {
//净资产收益率(加权)
for (let item of this.dataList) {
if(item.profitability.roe_deducted)
{
data.push(item.profitability.roe_deducted.toFixed(2))
}else
data.push(0)
}
}else if(index==3) {
//总资产报酬率
for (let item of this.dataList) {
if(item.profitability.roa)
{
data.push(item.profitability.roa.toFixed(2))
}else
data.push(0)
}
}else if(index==4) {
//毛利率
for (let item of this.dataList) {
if(item.profitability.gross_margin)
{
data.push(item.profitability.gross_margin.toFixed(2))
}else
data.push(0)
}
}else if(index==5) {
//净利率
for (let item of this.dataList) {
if(item.profitability.net_profit_margin)
{
data.push(item.profitability.net_profit_margin.toFixed(2))
}else
data.push(0)
}
}else if(index==6) {
//营业利润率
for (let item of this.dataList) {
if(item.profitability.operating_profit_margin)
{
data.push(item.profitability.operating_profit_margin.toFixed(2))
}else
data.push(0)
}
}else if(index==7) {
//成本费用利润率
for (let item of this.dataList) {
if(item.profitability.cost_profit_ratio)
{
data.push(item.profitability.cost_profit_ratio.toFixed(2))
}else
data.push(0)
}
}
this.option1.series[0].data = data
this.profitabilityInit()
}
},
/**
* 切换每股指标
* @param {Object} item
*/
clickPerShareIndicatorItem(index) {
if(this.perShareIndicatorIndex!=index) {
this.perShareIndicatorIndex = index
let data = []
if(index==0) {
//每股收益(EPS)
for (let item of this.dataList) {
if(item.per_share_metrics.eps)
{
data.push(item.per_share_metrics.eps.toFixed(2))
}else
data.push(0)
}
}else if(index==1) {
//基本每股收益
for (let item of this.dataList) {
if(item.per_share_metrics.basic_eps)
{
data.push(item.per_share_metrics.basic_eps.toFixed(2))
}else
data.push(0)
}
}else if(index==2) {
//稀释每股收益
for (let item of this.dataList) {
if(item.per_share_metrics.diluted_eps)
{
data.push(item.per_share_metrics.diluted_eps.toFixed(2))
}else
data.push(0)
}
}else if(index==3) {
//扣非每股收益
for (let item of this.dataList) {
if(item.per_share_metrics.deducted_eps)
{
data.push(item.per_share_metrics.deducted_eps.toFixed(2))
}else
data.push(0)
}
}else if(index==4) {
//每股净资产
for (let item of this.dataList) {
if(item.per_share_metrics.bvps)
{
data.push(item.per_share_metrics.bvps.toFixed(2))
}else
data.push(0)
}
}else if(index==5) {
//每股经营现金流
for (let item of this.dataList) {
if(item.per_share_metrics.operating_cash_flow_ps)
{
data.push(item.per_share_metrics.operating_cash_flow_ps.toFixed(2))
}else
data.push(0)
}
}else if(index==6) {
//每股资本公积
for (let item of this.dataList) {
if(item.per_share_metrics.capital_reserve_ps)
{
data.push(item.per_share_metrics.capital_reserve_ps.toFixed(2))
}else
data.push(0)
}
}else if(index==7) {
//每股未分配利润
for (let item of this.dataList) {
if(item.per_share_metrics.undistributed_profit_ps)
{
data.push(item.per_share_metrics.undistributed_profit_ps.toFixed(2))
}else
data.push(0)
}
}
this.option2.series[0].data = data
this.perShareInit()
}
} }
} }
} }
</script> </script>
<style> <style lang="less">
.indicatorC
{
.item
{
background-color: #FFFFFF;
padding: 3rpx 5rpx;
border: 1rpx solid #D2D2D2;
font-size: 20rpx;
color: #999;
text-align: center;
}
.item.select
{
background-color: #FFFAF1;
border: 1rpx solid #F2C369;
color: #BB8520;
}
}
</style> </style>

View File

@@ -169,7 +169,6 @@
watch:{ watch:{
data(newValue) data(newValue)
{ {
console.log(newValue)
this.option.series[0].data = newValue this.option.series[0].data = newValue
this.init() this.init()
} }

View File

@@ -96,7 +96,6 @@
<script> <script>
import { getChgRateStr, getNumStr } from '@/utils/util.js'; import { getChgRateStr, getNumStr } from '@/utils/util.js';
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 {

View File

@@ -1,11 +1,18 @@
<template> <template>
<view> <view>
<navBar leftText="平安银行(000001)" :hideNavBg="true"></navBar> <navBar :leftText="navTitle" :hideNavBg="true"></navBar>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image> <image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="searchC fixed flex" :style="'top:'+navH+'px;'"> <view class="searchC fixed flex" :style="'top:'+navH+'px;'">
<image class="icon" src="/static/icon/home/conceptCenter/search.png" mode="widthFix"></image> <image class="icon" src="/static/icon/home/conceptCenter/search.png" mode="widthFix"></image>
<input class="flex1" type="text" v-model="keywords" placeholder="输入股票代码或名称" <input class="flex1" type="text" v-model="keywords" placeholder="输入股票代码或名称"
placeholder-style="color:#eeeeee" confirm-type="search" @confirm="clickSearch()" /> placeholder-style="color:#eeeeee" @input="clickSearch()"/>
</view>
<view v-if="searchShow" class="searchResultList fixed" :style="'top:'+searchResultTop+'px;'" @click="clickSearchResultBg()">
<view class="list">
<view class="item" v-for="(item,index) in searchResultList" :key="index" @click.stop="clickSearchResultListItem(item)">
{{item.stock_code}} {{item.stock_name}}
</view>
</view>
</view> </view>
<scroll-view scroll-y class="stockDetailsC fixed" :style="'top:'+contentTop+'px;'"> <scroll-view scroll-y class="stockDetailsC fixed" :style="'top:'+contentTop+'px;'">
<view v-if="stockBasicInfo" class="basicInfoC"> <view v-if="stockBasicInfo" class="basicInfoC">
@@ -182,7 +189,7 @@
<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" ></zysj-view>
</block> </block>
<block v-if="selectCaiwu==1"> <block v-if="selectCaiwu==1">
<cwfx-view></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></cwsj-view>
@@ -209,11 +216,11 @@
<image class="icon" src="/pagesStock/static/icon/contrast.png" mode="heightFix"></image> <image class="icon" src="/pagesStock/static/icon/contrast.png" mode="heightFix"></image>
<view>对比</view> <view>对比</view>
</view> </view>
<view class="item" @click="clickComment()"> <view class="item" @click="clickOptional()">
<image class="icon" src="/pagesStock/static/icon/optional.png" mode="heightFix"></image> <image class="icon" src="/pagesStock/static/icon/optional.png" mode="heightFix"></image>
<view>自选</view> <view>自选</view>
</view> </view>
<view class="item" @click="clickFollow()"> <view class="item" @click="clickShare()">
<image class="icon" src="/pagesStock/static/icon/share.png" mode="heightFix"></image> <image class="icon" src="/pagesStock/static/icon/share.png" mode="heightFix"></image>
<view>分享</view> <view>分享</view>
</view> </view>
@@ -367,9 +374,7 @@
</view> </view>
</view> </view>
</view> </view>
<view style="margin: 30rpx 0; font-weight: bold; font-size: 28rpx;">相关公司</view> <view style="margin: 30rpx 0; font-weight: bold; font-size: 28rpx;">相关公司</view>
<view v-for="(item,index) in relatedCompanyList" :key="index" style="margin: 20rpx 0; border: 1rpx solid #E7E7E7; border-radius: 10rpx; padding: 25rpx 20rpx;"> <view v-for="(item,index) in relatedCompanyList" :key="index" style="margin: 20rpx 0; border: 1rpx solid #E7E7E7; border-radius: 10rpx; padding: 25rpx 20rpx;">
<view> <view>
<text style="font-size: 28rpx; font-weight: bold;">{{item.stock_name}}</text> <text style="font-size: 28rpx; font-weight: bold;">{{item.stock_name}}</text>
@@ -391,7 +396,6 @@
</view> </view>
</view> </view>
</uni-popup> </uni-popup>
<uni-popup ref="detailInfoPopup" type="bottom" :safeArea="false"> <uni-popup ref="detailInfoPopup" type="bottom" :safeArea="false">
<view class="industryRankPop" style="padding-bottom: env(safe-area-inset-bottom);"> <view class="industryRankPop" style="padding-bottom: env(safe-area-inset-bottom);">
<view class="popTitle">详情</view> <view class="popTitle">详情</view>
@@ -426,16 +430,20 @@
<script> <script>
import { inject } from 'vue' import { inject } from 'vue'
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, financialComparison, financialMainBusiness, financialStockInfo, industryRankList, keyFactorsTimeline, managementTeam, ownershipConcentration, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList, valueChainAnalysis, valueChainRelatedCompany } from '@/request/api' 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 { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown, getAgeByBirthYear } from '@/utils/util' import { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown, getAgeByBirthYear } from '@/utils/util'
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
export default { export default {
data() { data() {
return { return {
navH: inject('navHeight'), navH: inject('navHeight'),
navTitle:'', //标题
searchResultTop:'', //搜索结果
contentTop: '', contentTop: '',
keywords: '', //搜索关键字 keywords: '', //搜索关键字
searchShow:false, //是否展示搜索结果
searchResultList:[], //搜索结果
selectSearchStockInfo:null, //选中的搜索股票信息
stockCode:'300700', //股票代码 600759 000009 002004 300700 stockCode:'300700', //股票代码 600759 000009 002004 300700
stockBasicInfo:null, //股票基本信息 stockBasicInfo:null, //股票基本信息
quoteDetailsInfo:null, //股票事实市场价格信息 quoteDetailsInfo:null, //股票事实市场价格信息
@@ -572,6 +580,7 @@
} }
], //财务全景分类 ], //财务全景分类
selectCaiwu: 0, selectCaiwu: 0,
financialMetricsList:[], //财务分析列表数据
financialStockInfo:null, financialStockInfo:null,
mainBussinessBarCategoryList:[], //主营业务柱状图,折线图分类 mainBussinessBarCategoryList:[], //主营业务柱状图,折线图分类
mainBussinessBarList:[], //主营业务柱状图数据 mainBussinessBarList:[], //主营业务柱状图数据
@@ -594,8 +603,13 @@
} }
}, },
onLoad() { onLoad(e) {
this.contentTop = this.navH + (20 + 70 + 30) / 750 * inject('windowWidth') this.searchResultTop = this.navH + (20 + 70) / 750 * inject('windowWidth')
this.contentTop = this.searchResultTop + 30 / 750 * inject('windowWidth')
if(e.code)
{
this.stockCode = e.code
}
this.getStockBasicInfoData() this.getStockBasicInfoData()
this.getQuoteDetailsData() this.getQuoteDetailsData()
this.getActualControlData() this.getActualControlData()
@@ -608,6 +622,24 @@
* 点击搜索 * 点击搜索
*/ */
clickSearch() { clickSearch() {
if(this.keywords) {
this.getSearchStockInfoListData()
}else
this.selectSearchStockInfo = null
},
/**
* 点击搜索结果背景
*/
clickSearchResultBg()
{
this.searchShow = false
},
/**
* 点击搜索结果列表项
*/
clickSearchResultListItem(item) {
this.selectSearchStockInfo = item
this.searchShow = false
this.getStockBasicInfoData() this.getStockBasicInfoData()
this.getQuoteDetailsData() this.getQuoteDetailsData()
}, },
@@ -679,6 +711,9 @@
clickCaiWuItem(index) { clickCaiWuItem(index) {
if (this.selectCaiwu != index) { if (this.selectCaiwu != index) {
this.selectCaiwu = index this.selectCaiwu = index
if(index==1) {
this.getFinancialMetricsData()
}
} }
}, },
@@ -734,16 +769,43 @@
{ {
this.$refs["valueChainPopup"].close() this.$refs["valueChainPopup"].close()
}, },
/**
* 点击自选
*/
clickOptional()
{
},
/**
* 点击分享
*/
clickShare()
{
},
/**
* 根据输入内容获取搜索列表项
*/
getSearchStockInfoListData() {
let param = {q:this.keywords,limit:10}
searchStockInfo(param).then(res=>{
this.searchResultList = res.data
this.searchShow = this.searchResultList.length>0
}).catch(error=>{
})
},
/** /**
* 获取股票基本信息 * 获取股票基本信息
*/ */
getStockBasicInfoData() { getStockBasicInfoData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
stockBasicInfo(code).then(res=>{ stockBasicInfo(code).then(res=>{
this.stockBasicInfo = res.data this.stockBasicInfo = res.data
this.navTitle = res.data.SECNAME+'('+res.data.SECCODE+')'
}).catch(error=>{ }).catch(error=>{
}) })
@@ -753,8 +815,8 @@
*/ */
getQuoteDetailsData() { getQuoteDetailsData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
quoteDetailsInfo(code).then(res=>{ quoteDetailsInfo(code).then(res=>{
this.quoteDetailsInfo = res.data this.quoteDetailsInfo = res.data
@@ -767,8 +829,8 @@
*/ */
getActualControlData() { getActualControlData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
actualControl(code).then(res=>{ actualControl(code).then(res=>{
this.actualControlInfo = res.data[0] this.actualControlInfo = res.data[0]
@@ -781,8 +843,8 @@
*/ */
getOwnershipConcentration() { getOwnershipConcentration() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
ownershipConcentration(code).then(res=>{ ownershipConcentration(code).then(res=>{
this.concentrationList = res.data.slice(0,8) this.concentrationList = res.data.slice(0,8)
@@ -795,8 +857,8 @@
*/ */
getTopShareholdersData() { getTopShareholdersData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
topShareholdersList(code,{'limit':10}).then(res=>{ topShareholdersList(code,{'limit':10}).then(res=>{
this.topShareholdersList = res.data this.topShareholdersList = res.data
@@ -809,8 +871,8 @@
*/ */
getTopCirculatingShareholdersData() { getTopCirculatingShareholdersData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
topCirculatingShareholdersList(code,{'limit':10}).then(res=>{ topCirculatingShareholdersList(code,{'limit':10}).then(res=>{
this.topCirculatingShareholdersList = res.data this.topCirculatingShareholdersList = res.data
@@ -823,8 +885,8 @@
*/ */
getManagementTeamData() { getManagementTeamData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
managementTeam(code,{active_only:true}).then(res=>{ managementTeam(code,{active_only:true}).then(res=>{
let data = res.data let data = res.data
@@ -869,8 +931,8 @@
*/ */
getBranchListData() { getBranchListData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
branchesList(code).then(res=>{ branchesList(code).then(res=>{
this.branchList = res.data this.branchList = res.data
@@ -883,8 +945,8 @@
*/ */
getComprehensiveAnalysisData() { getComprehensiveAnalysisData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
comprehensiveAnalysis(code).then(res=>{ comprehensiveAnalysis(code).then(res=>{
this.qualitativeAnalysisInfo = res.data.qualitative_analysis this.qualitativeAnalysisInfo = res.data.qualitative_analysis
@@ -919,8 +981,8 @@
*/ */
getIndustryRankListData() { getIndustryRankListData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
industryRankList(code).then(res=>{ industryRankList(code).then(res=>{
this.industryRankList = res.data this.industryRankList = res.data
@@ -933,8 +995,8 @@
*/ */
getValueChainAnalysisData() { getValueChainAnalysisData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
valueChainAnalysis(code).then(res=>{ valueChainAnalysis(code).then(res=>{
this.valueChainAnalysisInfo = res.data.analysis_summary this.valueChainAnalysisInfo = res.data.analysis_summary
@@ -967,8 +1029,8 @@
*/ */
getKeyFactorsTimelineData() { getKeyFactorsTimelineData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
keyFactorsTimeline(code).then(res=>{ keyFactorsTimeline(code).then(res=>{
this.keyFactorsInfo = res.data.key_factors this.keyFactorsInfo = res.data.key_factors
@@ -985,18 +1047,40 @@
getFinancialStockInfoData() getFinancialStockInfoData()
{ {
let code = this.stockCode let code = this.stockCode
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code
}
financialStockInfo(code).then(res=>{ financialStockInfo(code).then(res=>{
this.financialStockInfo = res.data this.financialStockInfo = res.data
}).catch(error=>{ }).catch(error=>{
}) })
}, },
/**
* 获取财务指标数据
*/
getFinancialMetricsData()
{
let code = this.stockCode
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code
}
let param = {limit:8}
financialMetrics(code,param).then(res=>{
this.financialMetricsList = res.data
}).catch(error=>{
})
},
/** /**
* 获取财务比较数据 * 获取财务比较数据
*/ */
getFinancialComparisonData() getFinancialComparisonData()
{ {
let code = this.stockCode let code = this.stockCode
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code
}
let param = {periods:8} let param = {periods:8}
financialComparison(code,param).then(res=>{ financialComparison(code,param).then(res=>{
let data = res.data let data = res.data
@@ -1004,7 +1088,11 @@
this.mainBussinessBarList = [] this.mainBussinessBarList = []
this.mainBussinessLineList = [] this.mainBussinessLineList = []
for (let item of data) { for (let item of data) {
this.mainBussinessBarCategoryList.unshift(item.report_type.replace('三季报','Q3')) let type = item.report_type
type = type.replace('年三季报','Q3')
type = type.replace('年中报','中报')
type = type.replace('年年报','年报')
this.mainBussinessBarCategoryList.unshift(type)
this.mainBussinessBarList.unshift((parseFloat(item.performance.revenue)/100000000).toFixed(2)) this.mainBussinessBarList.unshift((parseFloat(item.performance.revenue)/100000000).toFixed(2))
this.mainBussinessLineList.unshift((parseFloat(item.performance.net_profit)/100000000).toFixed(2)) this.mainBussinessLineList.unshift((parseFloat(item.performance.net_profit)/100000000).toFixed(2))
} }
@@ -1018,6 +1106,9 @@
getFinancialMainBussinessData() getFinancialMainBussinessData()
{ {
let code = this.stockCode let code = this.stockCode
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code
}
let param = {periods:4} let param = {periods:4}
financialMainBusiness(code,param).then(res=>{ financialMainBusiness(code,param).then(res=>{
this.productClassificationList = res.data.product_classification this.productClassificationList = res.data.product_classification
@@ -1047,8 +1138,8 @@
*/ */
getCompanyAnnouncementsData() { getCompanyAnnouncementsData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords code = this.selectSearchStockInfo.stock_code
} }
let param = {limit:20} let param = {limit:20}
companyAnnouncementsList(code,param).then(res=>{ companyAnnouncementsList(code,param).then(res=>{
@@ -1095,6 +1186,27 @@
color: white; color: white;
} }
} }
.searchResultList {
background-color: #00000080;
left: 0;
right: 0;
bottom: 0;
padding: 0 25rpx;
.list
{
background-color: white;
border-radius: 10rpx;
.item
{
padding: 0 42rpx;
line-height: 60rpx;
font-size: 22rpx;
font-weight: 500;
color: #333;
}
}
z-index: 20;
}
.stockDetailsC { .stockDetailsC {
left: 0; left: 0;

View File

@@ -143,6 +143,10 @@ export const investEventDetails = (id,param) => get('/api/calendar/detail/'+id,p
*/ */
export const calendarEventCount = param => get('/api/calendar-event-counts',param) export const calendarEventCount = param => get('/api/calendar-event-counts',param)
/**
* 根据输入内容搜索个股
*/
export const searchStockInfo = param => get('/api/stocks/search',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

View File

@@ -7051,9 +7051,9 @@ function isConsoleWritable() {
return isWritable; return isWritable;
} }
function initRuntimeSocketService() { function initRuntimeSocketService() {
const hosts = "127.0.0.1,192.168.2.91"; const hosts = "127.0.0.1,192.168.2.28";
const port = "8090"; const port = "8090";
const id = "mp-weixin_bEhrtD"; const id = "mp-weixin_6VDL_I";
const lazy = typeof swan !== "undefined"; const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => { let restoreError = lazy ? () => {
} : initOnError(); } : initOnError();

View File

@@ -1,10 +1,65 @@
"use strict"; "use strict";
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 echarts = require("../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = { const _sfc_main = {
name: "cwfx-view", name: "cwfx-view",
data() { data() {
return { return {
profitabilityIndicatorList: [
{
title: "净资产收益率(ROE)%"
},
{
title: "净资产收益率(扣非)%"
},
{
title: "净资产收益率(加权)%"
},
{
title: "总资产报酬率(ROA)%"
},
{
title: "毛利率%"
},
{
title: "净利率%"
},
{
title: "营业利润率%"
},
{
title: "成本费用利润率%"
}
],
profitabilityIndicatorIndex: 0,
perShareIndicatorList: [
{
title: "每股收益(EPS)"
},
{
title: "基本每股收益"
},
{
title: "稀释每股收益"
},
{
title: "扣非每股收益"
},
{
title: "每股净资产"
},
{
title: "每股经营现金流"
},
{
title: "每股资本公积"
},
{
title: "每股未分配利润"
}
],
perShareIndicatorIndex: 0,
option1: { option1: {
legend: { legend: {
show: true, show: true,
@@ -20,7 +75,8 @@ const _sfc_main = {
type: "category", type: "category",
data: [], data: [],
axisLabel: { axisLabel: {
// interval:0 fontSize: 10,
rotate: 45
} }
}, },
yAxis: [ yAxis: [
@@ -49,13 +105,70 @@ const _sfc_main = {
series: [ series: [
{ {
type: "bar", type: "bar",
name: "营业收入", name: "ROE",
data: [], data: [],
yAxisIndex: 0 yAxisIndex: 0
}, },
{ {
type: "line", type: "line",
name: "净利润", name: "同比",
data: [],
yAxisIndex: 1
}
]
},
option2: {
legend: {
show: true,
data: ["ROE", "同比(右)"]
},
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: [], data: [],
yAxisIndex: 1 yAxisIndex: 1
} }
@@ -64,15 +177,182 @@ const _sfc_main = {
}; };
}, },
props: { props: {
barCategoryList1: Array, dataList: Array
barList1: Array, },
lineList: Array, watch: {
//折线图数据 dataList(newValue) {
barCategoryList1: Array, let category = [];
barList1: Array let data1 = [];
let data2 = [];
for (let item of newValue) {
var type = item.report_type;
type = type.replace("年三季报", "Q3");
type = type.replace("年一季报", "Q1");
type = type.replace("年中报", "中报");
type = type.replace("年年报", "年报");
category.push(type);
if (item.profitability.roe) {
data1.push(item.profitability.roe.toFixed(2));
} else
data1.push(0);
if (item.per_share_metrics.eps) {
data2.push(item.per_share_metrics.eps.toFixed(2));
} else
data2.push(0);
}
this.option1.xAxis.data = category;
this.option1.series[0].data = data1;
this.profitabilityInit();
this.option2.series[0].data = data2;
this.perShareInit();
}
}, },
methods: { methods: {
clickProfitabilityIndicators(item) { async profitabilityInit() {
const chart = await this.$refs.chartRef1.init(echarts);
chart.setOption(this.option1);
},
async perShareInit() {
const chart = await this.$refs.chartRef2.init(echarts);
chart.setOption(this.option2);
},
/**
* 切换盈利能力指标
* @param {Object} item
*/
clickProfitabilityIndicatorItem(index) {
if (this.profitabilityIndicatorIndex != index) {
this.profitabilityIndicatorIndex = index;
let data = [];
if (index == 0) {
for (let item of this.dataList) {
if (item.profitability.roe) {
data.push(item.profitability.roe.toFixed(2));
} else
data.push(0);
}
} else if (index == 1) {
for (let item of this.dataList) {
if (item.profitability.roe_deducted) {
data.push(item.profitability.roe_deducted.toFixed(2));
} else
data.push(0);
}
} else if (index == 2) {
for (let item of this.dataList) {
if (item.profitability.roe_deducted) {
data.push(item.profitability.roe_deducted.toFixed(2));
} else
data.push(0);
}
} else if (index == 3) {
for (let item of this.dataList) {
if (item.profitability.roa) {
data.push(item.profitability.roa.toFixed(2));
} else
data.push(0);
}
} else if (index == 4) {
for (let item of this.dataList) {
if (item.profitability.gross_margin) {
data.push(item.profitability.gross_margin.toFixed(2));
} else
data.push(0);
}
} else if (index == 5) {
for (let item of this.dataList) {
if (item.profitability.net_profit_margin) {
data.push(item.profitability.net_profit_margin.toFixed(2));
} else
data.push(0);
}
} else if (index == 6) {
for (let item of this.dataList) {
if (item.profitability.operating_profit_margin) {
data.push(item.profitability.operating_profit_margin.toFixed(2));
} else
data.push(0);
}
} else if (index == 7) {
for (let item of this.dataList) {
if (item.profitability.cost_profit_ratio) {
data.push(item.profitability.cost_profit_ratio.toFixed(2));
} else
data.push(0);
}
}
this.option1.series[0].data = data;
this.profitabilityInit();
}
},
/**
* 切换每股指标
* @param {Object} item
*/
clickPerShareIndicatorItem(index) {
if (this.perShareIndicatorIndex != index) {
this.perShareIndicatorIndex = index;
let data = [];
if (index == 0) {
for (let item of this.dataList) {
if (item.per_share_metrics.eps) {
data.push(item.per_share_metrics.eps.toFixed(2));
} else
data.push(0);
}
} else if (index == 1) {
for (let item of this.dataList) {
if (item.per_share_metrics.basic_eps) {
data.push(item.per_share_metrics.basic_eps.toFixed(2));
} else
data.push(0);
}
} else if (index == 2) {
for (let item of this.dataList) {
if (item.per_share_metrics.diluted_eps) {
data.push(item.per_share_metrics.diluted_eps.toFixed(2));
} else
data.push(0);
}
} else if (index == 3) {
for (let item of this.dataList) {
if (item.per_share_metrics.deducted_eps) {
data.push(item.per_share_metrics.deducted_eps.toFixed(2));
} else
data.push(0);
}
} else if (index == 4) {
for (let item of this.dataList) {
if (item.per_share_metrics.bvps) {
data.push(item.per_share_metrics.bvps.toFixed(2));
} else
data.push(0);
}
} else if (index == 5) {
for (let item of this.dataList) {
if (item.per_share_metrics.operating_cash_flow_ps) {
data.push(item.per_share_metrics.operating_cash_flow_ps.toFixed(2));
} else
data.push(0);
}
} else if (index == 6) {
for (let item of this.dataList) {
if (item.per_share_metrics.capital_reserve_ps) {
data.push(item.per_share_metrics.capital_reserve_ps.toFixed(2));
} else
data.push(0);
}
} else if (index == 7) {
for (let item of this.dataList) {
if (item.per_share_metrics.undistributed_profit_ps) {
data.push(item.per_share_metrics.undistributed_profit_ps.toFixed(2));
} else
data.push(0);
}
}
this.option2.series[0].data = data;
this.perShareInit();
}
} }
} }
}; };
@@ -88,13 +368,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return { return {
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(["净资产收益率(ROE)%", "净资产收益率(扣非)%", "净资产收益率(加权)%", "总资产报酬率(ROA)%", "毛利率%", "净利率%", "营业利润率%", "成本费用利润率%"], (item, index, i0) => { c: common_vendor.f($data.profitabilityIndicatorList, (item, index, i0) => {
return { return {
a: common_vendor.t(item), a: common_vendor.t(item.title),
b: index == 0 ? "#BB8520" : "#999999", b: common_vendor.n("item flex " + ($data.profitabilityIndicatorIndex == index ? "select" : "")),
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`, c: index,
d: index == 0 ? "#FFFAF1" : "#FFFFFF", d: common_vendor.o(($event) => $options.clickProfitabilityIndicatorItem(index), index)
e: index
}; };
}), }),
d: common_assets._imports_2$14, d: common_assets._imports_2$14,
@@ -102,13 +381,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
f: common_vendor.sr("chartRef1", "3746da36-0"), f: common_vendor.sr("chartRef1", "3746da36-0"),
g: common_assets._imports_4$12, g: common_assets._imports_4$12,
h: common_assets._imports_1$2, h: common_assets._imports_1$2,
i: common_vendor.f(["每股收益(EPS)", "基本每股收益", "稀释每股收益", "扣非每股收益", "每股净资产", "每股经营现金流", "每股资本公积", "每股未分配利润"], (item, index, i0) => { i: common_vendor.f($data.perShareIndicatorList, (item, index, i0) => {
return { return {
a: common_vendor.t(item), a: common_vendor.t(item.title),
b: index == 0 ? "#BB8520" : "#999999", b: common_vendor.n("item flexCenter " + ($data.perShareIndicatorIndex == index ? "select" : "")),
c: `1rpx solid ${index == 0 ? "#F2C369" : "#D2D2D2"}`, c: index,
d: index == 0 ? "#FFFAF1" : "#FFFFFF", d: common_vendor.o(($event) => $options.clickPerShareIndicatorItem(index), index)
e: index
}; };
}), }),
j: common_assets._imports_2$14, j: common_assets._imports_2$14,

View File

@@ -1 +1 @@
<view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{a}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">盈利能力</view><image src="{{b}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{c}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view class="flex" style="padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view class="flex" style="padding:3rpx 10rpx;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{d}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{e}}" mode="widthFix"></image></view></view><view style="height:500rpx"><l-echart class="r" u-r="chartRef1" u-i="3746da36-0" bind:__l="__l"></l-echart></view></view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{g}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">每股指标</view><image src="{{h}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{i}}" wx:for-item="item" wx:key="e" style="{{'display:flex;align-items:center;justify-content:center;text-align:center;font-size:20rpx;color:#999999;border:1rpx solid #D2D2D2;padding:3rpx 5rpx;box-sizing:border-box' + ';' + ('color:' + item.b + ';' + ('border:' + item.c) + ';' + ('background-color:' + item.d))}}">{{item.a}}</view></view><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view style="display:flex;align-items:center;padding:3rpx 10rpx;box-sizing:border-box;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{j}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{k}}" mode="widthFix"></image></view></view><view style="height:500rpx"><l-echart class="r" u-r="chartRef2" u-i="3746da36-1" bind:__l="__l"></l-echart></view></view></view> <view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view class="flex" style="padding:20rpx"><image src="{{a}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">盈利能力</view><image src="{{b}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view class="indicatorC" style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{c}}" wx:for-item="item" wx:key="c" class="{{item.b}}" style="justify-content:center;text-align:center;padding:3rpx 5rpx" bindtap="{{item.d}}">{{item.a}}</view></view><view class="flex" style="padding:20rpx"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view class="flex" style="padding:3rpx 10rpx;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{d}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{e}}" mode="widthFix"></image></view></view><view style="height:500rpx"><l-echart class="r" u-r="chartRef1" u-i="3746da36-0" bind:__l="__l"></l-echart></view></view><view style="color:#2B2B2B;font-weight:500;font-size:24rpx"><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><image src="{{g}}" mode="widthFix" style="width:40rpx;height:40rpx"></image><view class="flex1" style="margin:0 10rpx;font-size:28rpx">每股指标</view><image src="{{h}}" mode="widthFix" style="width:13rpx;height:22rpx"></image></view><view class="indicatorC" style="display:grid;gap:20rpx;grid-template-columns:repeat(4, 1fr);margin:0 20rpx"><view wx:for="{{i}}" wx:for-item="item" wx:key="c" class="{{item.b}}" bindtap="{{item.d}}">{{item.a}}</view></view><view style="display:flex;align-items:center;padding:20rpx;box-sizing:border-box"><view class="flex1" style="font-size:28rpx">查看详细数据</view><view style="color:#F2C369;font-size:22rpx;padding:2rpx 10rpx;border-radius:5rpx;border:1rpx solid #F2C369;text-align:center;margin:0 10rpx"> 单季度</view><view style="display:flex;align-items:center;padding:3rpx 10rpx;box-sizing:border-box;border:1rpx solid #D2D2D2"><image style="width:23rpx;height:23rpx" src="{{j}}" mode="widthFix"></image><view style="margin:0 10rpx;color:#999999;font-size:22rpx">全部</view><image style="width:11rpx;height:6rpx" src="{{k}}" mode="widthFix"></image></view></view><view style="height:500rpx"><l-echart class="r" u-r="chartRef2" u-i="3746da36-1" bind:__l="__l"></l-echart></view></view></view>

View File

@@ -0,0 +1,13 @@
.indicatorC .item {
background-color: #FFFFFF;
padding: 3rpx 5rpx;
border: 1rpx solid #D2D2D2;
font-size: 20rpx;
color: #999;
text-align: center;
}
.indicatorC .item.select {
background-color: #FFFAF1;
border: 1rpx solid #F2C369;
color: #BB8520;
}

View File

@@ -88,7 +88,6 @@ const _sfc_main = {
}, },
watch: { watch: {
data(newValue) { data(newValue) {
common_vendor.index.__f__("log", "at components/zlfx-view/zlfx-view.vue:172", newValue);
this.option.series[0].data = newValue; this.option.series[0].data = newValue;
this.init(); this.init();
} }
@@ -96,7 +95,7 @@ const _sfc_main = {
methods: { methods: {
async init() { async init() {
const chart = await this.$refs.chartRef.init(echarts); const chart = await this.$refs.chartRef.init(echarts);
common_vendor.index.__f__("log", "at components/zlfx-view/zlfx-view.vue:184", chart); common_vendor.index.__f__("log", "at components/zlfx-view/zlfx-view.vue:183", chart);
chart.setOption(this.option); chart.setOption(this.option);
}, },
clickIndustryRank() { clickIndustryRank() {

View File

@@ -3,14 +3,23 @@ const common_vendor = require("../../common/vendor.js");
const request_api = require("../../request/api.js"); const request_api = require("../../request/api.js");
const utils_util = require("../../utils/util.js"); const utils_util = require("../../utils/util.js");
const common_assets = require("../../common/assets.js"); const common_assets = require("../../common/assets.js");
require("../../uni_modules/lime-echart/static/echarts.min.js");
const _sfc_main = { const _sfc_main = {
data() { data() {
return { return {
navH: common_vendor.inject("navHeight"), navH: common_vendor.inject("navHeight"),
navTitle: "",
//标题
searchResultTop: "",
//搜索结果
contentTop: "", contentTop: "",
keywords: "", keywords: "",
//搜索关键字 //搜索关键字
searchShow: false,
//是否展示搜索结果
searchResultList: [],
//搜索结果
selectSearchStockInfo: null,
//选中的搜索股票信息
stockCode: "300700", stockCode: "300700",
//股票代码 600759 000009 002004 300700 //股票代码 600759 000009 002004 300700
stockBasicInfo: null, stockBasicInfo: null,
@@ -184,6 +193,8 @@ const _sfc_main = {
], ],
//财务全景分类 //财务全景分类
selectCaiwu: 0, selectCaiwu: 0,
financialMetricsList: [],
//财务分析列表数据
financialStockInfo: null, financialStockInfo: null,
mainBussinessBarCategoryList: [], mainBussinessBarCategoryList: [],
//主营业务柱状图,折线图分类 //主营业务柱状图,折线图分类
@@ -216,8 +227,12 @@ const _sfc_main = {
//获取数字展示万或亿 //获取数字展示万或亿
}; };
}, },
onLoad() { onLoad(e) {
this.contentTop = this.navH + (20 + 70 + 30) / 750 * common_vendor.inject("windowWidth"); this.searchResultTop = this.navH + (20 + 70) / 750 * common_vendor.inject("windowWidth");
this.contentTop = this.searchResultTop + 30 / 750 * common_vendor.inject("windowWidth");
if (e.code) {
this.stockCode = e.code;
}
this.getStockBasicInfoData(); this.getStockBasicInfoData();
this.getQuoteDetailsData(); this.getQuoteDetailsData();
this.getActualControlData(); this.getActualControlData();
@@ -230,6 +245,23 @@ const _sfc_main = {
* 点击搜索 * 点击搜索
*/ */
clickSearch() { clickSearch() {
if (this.keywords) {
this.getSearchStockInfoListData();
} else
this.selectSearchStockInfo = null;
},
/**
* 点击搜索结果背景
*/
clickSearchResultBg() {
this.searchShow = false;
},
/**
* 点击搜索结果列表项
*/
clickSearchResultListItem(item) {
this.selectSearchStockInfo = item;
this.searchShow = false;
this.getStockBasicInfoData(); this.getStockBasicInfoData();
this.getQuoteDetailsData(); this.getQuoteDetailsData();
}, },
@@ -294,6 +326,9 @@ const _sfc_main = {
clickCaiWuItem(index) { clickCaiWuItem(index) {
if (this.selectCaiwu != index) { if (this.selectCaiwu != index) {
this.selectCaiwu = index; this.selectCaiwu = index;
if (index == 1) {
this.getFinancialMetricsData();
}
} }
}, },
/** /**
@@ -343,16 +378,38 @@ const _sfc_main = {
clickCloseValueChainPop() { clickCloseValueChainPop() {
this.$refs["valueChainPopup"].close(); this.$refs["valueChainPopup"].close();
}, },
/**
* 点击自选
*/
clickOptional() {
},
/**
* 点击分享
*/
clickShare() {
},
/**
* 根据输入内容获取搜索列表项
*/
getSearchStockInfoListData() {
let param = { q: this.keywords, limit: 10 };
request_api.searchStockInfo(param).then((res) => {
this.searchResultList = res.data;
this.searchShow = this.searchResultList.length > 0;
}).catch((error) => {
});
},
/** /**
* 获取股票基本信息 * 获取股票基本信息
*/ */
getStockBasicInfoData() { getStockBasicInfoData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.stockBasicInfo(code).then((res) => { request_api.stockBasicInfo(code).then((res) => {
this.stockBasicInfo = res.data; this.stockBasicInfo = res.data;
this.navTitle = res.data.SECNAME + "(" + res.data.SECCODE + ")";
}).catch((error) => { }).catch((error) => {
}); });
}, },
@@ -361,8 +418,8 @@ const _sfc_main = {
*/ */
getQuoteDetailsData() { getQuoteDetailsData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.quoteDetailsInfo(code).then((res) => { request_api.quoteDetailsInfo(code).then((res) => {
this.quoteDetailsInfo = res.data; this.quoteDetailsInfo = res.data;
@@ -374,8 +431,8 @@ const _sfc_main = {
*/ */
getActualControlData() { getActualControlData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.actualControl(code).then((res) => { request_api.actualControl(code).then((res) => {
this.actualControlInfo = res.data[0]; this.actualControlInfo = res.data[0];
@@ -387,8 +444,8 @@ const _sfc_main = {
*/ */
getOwnershipConcentration() { getOwnershipConcentration() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.ownershipConcentration(code).then((res) => { request_api.ownershipConcentration(code).then((res) => {
this.concentrationList = res.data.slice(0, 8); this.concentrationList = res.data.slice(0, 8);
@@ -400,8 +457,8 @@ const _sfc_main = {
*/ */
getTopShareholdersData() { getTopShareholdersData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.topShareholdersList(code, { "limit": 10 }).then((res) => { request_api.topShareholdersList(code, { "limit": 10 }).then((res) => {
this.topShareholdersList = res.data; this.topShareholdersList = res.data;
@@ -413,8 +470,8 @@ const _sfc_main = {
*/ */
getTopCirculatingShareholdersData() { getTopCirculatingShareholdersData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.topCirculatingShareholdersList(code, { "limit": 10 }).then((res) => { request_api.topCirculatingShareholdersList(code, { "limit": 10 }).then((res) => {
this.topCirculatingShareholdersList = res.data; this.topCirculatingShareholdersList = res.data;
@@ -426,8 +483,8 @@ const _sfc_main = {
*/ */
getManagementTeamData() { getManagementTeamData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.managementTeam(code, { active_only: true }).then((res) => { request_api.managementTeam(code, { active_only: true }).then((res) => {
let data = res.data; let data = res.data;
@@ -465,8 +522,8 @@ const _sfc_main = {
*/ */
getBranchListData() { getBranchListData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.branchesList(code).then((res) => { request_api.branchesList(code).then((res) => {
this.branchList = res.data; this.branchList = res.data;
@@ -478,8 +535,8 @@ const _sfc_main = {
*/ */
getComprehensiveAnalysisData() { getComprehensiveAnalysisData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.comprehensiveAnalysis(code).then((res) => { request_api.comprehensiveAnalysis(code).then((res) => {
this.qualitativeAnalysisInfo = res.data.qualitative_analysis; this.qualitativeAnalysisInfo = res.data.qualitative_analysis;
@@ -513,8 +570,8 @@ const _sfc_main = {
*/ */
getIndustryRankListData() { getIndustryRankListData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.industryRankList(code).then((res) => { request_api.industryRankList(code).then((res) => {
this.industryRankList = res.data; this.industryRankList = res.data;
@@ -526,8 +583,8 @@ const _sfc_main = {
*/ */
getValueChainAnalysisData() { getValueChainAnalysisData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.valueChainAnalysis(code).then((res) => { request_api.valueChainAnalysis(code).then((res) => {
this.valueChainAnalysisInfo = res.data.analysis_summary; this.valueChainAnalysisInfo = res.data.analysis_summary;
@@ -557,8 +614,8 @@ const _sfc_main = {
*/ */
getKeyFactorsTimelineData() { getKeyFactorsTimelineData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
request_api.keyFactorsTimeline(code).then((res) => { request_api.keyFactorsTimeline(code).then((res) => {
this.keyFactorsInfo = res.data.key_factors; this.keyFactorsInfo = res.data.key_factors;
@@ -573,16 +630,36 @@ const _sfc_main = {
*/ */
getFinancialStockInfoData() { getFinancialStockInfoData() {
let code = this.stockCode; let code = this.stockCode;
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code;
}
request_api.financialStockInfo(code).then((res) => { request_api.financialStockInfo(code).then((res) => {
this.financialStockInfo = res.data; this.financialStockInfo = res.data;
}).catch((error) => { }).catch((error) => {
}); });
}, },
/**
* 获取财务指标数据
*/
getFinancialMetricsData() {
let code = this.stockCode;
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code;
}
let param = { limit: 8 };
request_api.financialMetrics(code, param).then((res) => {
this.financialMetricsList = res.data;
}).catch((error) => {
});
},
/** /**
* 获取财务比较数据 * 获取财务比较数据
*/ */
getFinancialComparisonData() { getFinancialComparisonData() {
let code = this.stockCode; let code = this.stockCode;
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code;
}
let param = { periods: 8 }; let param = { periods: 8 };
request_api.financialComparison(code, param).then((res) => { request_api.financialComparison(code, param).then((res) => {
let data = res.data; let data = res.data;
@@ -590,7 +667,11 @@ const _sfc_main = {
this.mainBussinessBarList = []; this.mainBussinessBarList = [];
this.mainBussinessLineList = []; this.mainBussinessLineList = [];
for (let item of data) { for (let item of data) {
this.mainBussinessBarCategoryList.unshift(item.report_type.replace("三季报", "Q3")); let type = item.report_type;
type = type.replace("年三季报", "Q3");
type = type.replace("年中报", "中报");
type = type.replace("年年报", "年报");
this.mainBussinessBarCategoryList.unshift(type);
this.mainBussinessBarList.unshift((parseFloat(item.performance.revenue) / 1e8).toFixed(2)); this.mainBussinessBarList.unshift((parseFloat(item.performance.revenue) / 1e8).toFixed(2));
this.mainBussinessLineList.unshift((parseFloat(item.performance.net_profit) / 1e8).toFixed(2)); this.mainBussinessLineList.unshift((parseFloat(item.performance.net_profit) / 1e8).toFixed(2));
} }
@@ -602,6 +683,9 @@ const _sfc_main = {
*/ */
getFinancialMainBussinessData() { getFinancialMainBussinessData() {
let code = this.stockCode; let code = this.stockCode;
if (this.selectSearchStockInfo) {
code = this.selectSearchStockInfo.stock_code;
}
let param = { periods: 4 }; let param = { periods: 4 };
request_api.financialMainBusiness(code, param).then((res) => { request_api.financialMainBusiness(code, param).then((res) => {
this.productClassificationList = res.data.product_classification; this.productClassificationList = res.data.product_classification;
@@ -627,8 +711,8 @@ const _sfc_main = {
*/ */
getCompanyAnnouncementsData() { getCompanyAnnouncementsData() {
let code = this.stockCode; let code = this.stockCode;
if (this.keywords) { if (this.selectSearchStockInfo) {
code = this.keywords; code = this.selectSearchStockInfo.stock_code;
} }
let param = { limit: 20 }; let param = { limit: 20 };
request_api.companyAnnouncementsList(code, param).then((res) => { request_api.companyAnnouncementsList(code, param).then((res) => {
@@ -675,74 +759,86 @@ 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: common_vendor.p({ a: common_vendor.p({
leftText: "平安银行(000001)", leftText: $data.navTitle,
hideNavBg: true hideNavBg: true
}), }),
b: common_assets._imports_0, b: common_assets._imports_0,
c: common_assets._imports_1, c: common_assets._imports_1,
d: common_vendor.o(($event) => $options.clickSearch()), d: common_vendor.o([($event) => $data.keywords = $event.detail.value, ($event) => $options.clickSearch()]),
e: $data.keywords, e: $data.keywords,
f: common_vendor.o(($event) => $data.keywords = $event.detail.value), f: common_vendor.s("top:" + $data.navH + "px;"),
g: common_vendor.s("top:" + $data.navH + "px;"), g: $data.searchShow
h: $data.stockBasicInfo }, $data.searchShow ? {
h: common_vendor.f($data.searchResultList, (item, index, i0) => {
return {
a: common_vendor.t(item.stock_code),
b: common_vendor.t(item.stock_name),
c: index,
d: common_vendor.o(($event) => $options.clickSearchResultListItem(item), index)
};
}),
i: common_vendor.s("top:" + $data.searchResultTop + "px;"),
j: common_vendor.o(($event) => $options.clickSearchResultBg())
} : {}, {
k: $data.stockBasicInfo
}, $data.stockBasicInfo ? common_vendor.e({ }, $data.stockBasicInfo ? common_vendor.e({
i: common_vendor.t($data.stockBasicInfo.industry_l1), l: common_vendor.t($data.stockBasicInfo.industry_l1),
j: common_vendor.t($data.stockBasicInfo.sw_industry_l2), m: common_vendor.t($data.stockBasicInfo.sw_industry_l2),
k: $data.quoteDetailsInfo n: $data.quoteDetailsInfo
}, $data.quoteDetailsInfo ? { }, $data.quoteDetailsInfo ? {
l: common_vendor.t($data.quoteDetailsInfo.current_price), o: common_vendor.t($data.quoteDetailsInfo.current_price),
m: common_vendor.n("current " + ($data.getRateUpOrDown($data.quoteDetailsInfo.change_percent) ? "down" : "up")), p: common_vendor.n("current " + ($data.getRateUpOrDown($data.quoteDetailsInfo.change_percent) ? "down" : "up")),
n: common_vendor.t($data.quoteDetailsInfo.change_percent), q: common_vendor.t($data.quoteDetailsInfo.change_percent),
o: common_vendor.n("chg " + ($data.getRateUpOrDown($data.quoteDetailsInfo.change_percent) ? "down" : "up")), r: common_vendor.n("chg " + ($data.getRateUpOrDown($data.quoteDetailsInfo.change_percent) ? "down" : "up")),
p: common_vendor.t($data.quoteDetailsInfo.today_open), s: common_vendor.t($data.quoteDetailsInfo.today_open),
q: common_vendor.t($data.quoteDetailsInfo.yesterday_close), t: common_vendor.t($data.quoteDetailsInfo.yesterday_close),
r: common_vendor.t($data.quoteDetailsInfo.today_high), v: common_vendor.t($data.quoteDetailsInfo.today_high),
s: common_vendor.t($data.quoteDetailsInfo.today_low) w: common_vendor.t($data.quoteDetailsInfo.today_low)
} : {}, { } : {}, {
t: $data.quoteDetailsInfo x: $data.quoteDetailsInfo
}, $data.quoteDetailsInfo ? common_vendor.e({ }, $data.quoteDetailsInfo ? common_vendor.e({
v: common_vendor.t($data.quoteDetailsInfo.pe ? $data.quoteDetailsInfo.pe : "-"), y: common_vendor.t($data.quoteDetailsInfo.pe ? $data.quoteDetailsInfo.pe : "-"),
w: $data.quoteDetailsInfo.float_shares z: $data.quoteDetailsInfo.float_shares
}, $data.quoteDetailsInfo.float_shares ? { }, $data.quoteDetailsInfo.float_shares ? {
x: common_vendor.t($data.quoteDetailsInfo.float_shares) A: common_vendor.t($data.quoteDetailsInfo.float_shares)
} : {}) : {}, { } : {}) : {}, {
y: $data.quoteDetailsInfo
}, $data.quoteDetailsInfo ? {
z: common_vendor.t($data.quoteDetailsInfo.market_cap),
A: common_vendor.t($data.quoteDetailsInfo.turnover_rate)
} : {}, {
B: $data.quoteDetailsInfo B: $data.quoteDetailsInfo
}, $data.quoteDetailsInfo ? common_vendor.e({
C: $data.quoteDetailsInfo.total_shares
}, $data.quoteDetailsInfo.total_shares ? {
D: common_vendor.t($data.quoteDetailsInfo.total_shares)
} : {}, {
E: common_vendor.t($data.quoteDetailsInfo.week52_low),
F: common_vendor.t($data.quoteDetailsInfo.week52_high)
}) : {}, {
G: $data.quoteDetailsInfo
}, $data.quoteDetailsInfo ? { }, $data.quoteDetailsInfo ? {
H: common_vendor.t($data.getRateUpOrDown($data.quoteDetailsInfo.net_inflow) ? "" : "+"), C: common_vendor.t($data.quoteDetailsInfo.market_cap),
I: common_vendor.t($data.getNumStr($data.quoteDetailsInfo.net_inflow)), D: common_vendor.t($data.quoteDetailsInfo.turnover_rate)
J: common_vendor.n("content flex1 marginR " + ($data.getRateUpOrDown($data.quoteDetailsInfo.net_inflow) ? "down" : "up"))
} : {}, { } : {}, {
K: common_assets._imports_2$11, E: $data.quoteDetailsInfo
L: common_vendor.t($data.getLocalDate($data.stockBasicInfo.establish_date)), }, $data.quoteDetailsInfo ? common_vendor.e({
M: common_assets._imports_3$11, F: $data.quoteDetailsInfo.total_shares
N: common_vendor.t($data.stockBasicInfo.reg_capital), }, $data.quoteDetailsInfo.total_shares ? {
O: common_assets._imports_4$10, G: common_vendor.t($data.quoteDetailsInfo.total_shares)
P: common_vendor.t($data.stockBasicInfo.province), } : {}, {
Q: common_vendor.t($data.stockBasicInfo.city), H: common_vendor.t($data.quoteDetailsInfo.week52_low),
R: common_assets._imports_5$6, I: common_vendor.t($data.quoteDetailsInfo.week52_high)
S: common_vendor.t($data.stockBasicInfo.company_intro),
T: !$data.isExpandIntro
}, !$data.isExpandIntro ? {} : {}, {
U: common_vendor.t($data.isExpandIntro ? "收起" : "展开全文"),
V: common_vendor.n("expand " + ($data.isExpandIntro ? "" : "absolute")),
W: common_vendor.o(($event) => $options.clickExpandOrRetractCompanyIntro()),
X: common_vendor.n("info relative flex1 " + ($data.isExpandIntro ? "" : "retract"))
}) : {}, { }) : {}, {
Y: common_vendor.f($data.tabList, (item, index, i0) => { J: $data.quoteDetailsInfo
}, $data.quoteDetailsInfo ? {
K: common_vendor.t($data.getRateUpOrDown($data.quoteDetailsInfo.net_inflow) ? "" : "+"),
L: common_vendor.t($data.getNumStr($data.quoteDetailsInfo.net_inflow)),
M: common_vendor.n("content flex1 marginR " + ($data.getRateUpOrDown($data.quoteDetailsInfo.net_inflow) ? "down" : "up"))
} : {}, {
N: common_assets._imports_2$11,
O: common_vendor.t($data.getLocalDate($data.stockBasicInfo.establish_date)),
P: common_assets._imports_3$11,
Q: common_vendor.t($data.stockBasicInfo.reg_capital),
R: common_assets._imports_4$10,
S: common_vendor.t($data.stockBasicInfo.province),
T: common_vendor.t($data.stockBasicInfo.city),
U: common_assets._imports_5$6,
V: common_vendor.t($data.stockBasicInfo.company_intro),
W: !$data.isExpandIntro
}, !$data.isExpandIntro ? {} : {}, {
X: common_vendor.t($data.isExpandIntro ? "收起" : "展开全文"),
Y: common_vendor.n("expand " + ($data.isExpandIntro ? "" : "absolute")),
Z: common_vendor.o(($event) => $options.clickExpandOrRetractCompanyIntro()),
aa: common_vendor.n("info relative flex1 " + ($data.isExpandIntro ? "" : "retract"))
}) : {}, {
ab: common_vendor.f($data.tabList, (item, index, i0) => {
return { return {
a: common_vendor.t(item.title), a: common_vendor.t(item.title),
b: common_vendor.n("item " + ($data.selectTab == index ? "select" : "")), b: common_vendor.n("item " + ($data.selectTab == index ? "select" : "")),
@@ -750,9 +846,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_vendor.o(($event) => $options.clickTabItem(index), index) d: common_vendor.o(($event) => $options.clickTabItem(index), index)
}; };
}), }),
Z: $data.selectTab == 0 ac: $data.selectTab == 0
}, $data.selectTab == 0 ? common_vendor.e({ }, $data.selectTab == 0 ? common_vendor.e({
aa: common_vendor.f($data.companyFilesList, (item, index, i0) => { ad: common_vendor.f($data.companyFilesList, (item, index, i0) => {
return { return {
a: common_vendor.t(item.title), a: common_vendor.t(item.title),
b: common_vendor.n("item " + ($data.selectCompanyFiles == index ? "select" : "")), b: common_vendor.n("item " + ($data.selectCompanyFiles == index ? "select" : "")),
@@ -760,36 +856,36 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_vendor.o(($event) => $options.clickCompanyFilesItem(index), index) d: common_vendor.o(($event) => $options.clickCompanyFilesItem(index), index)
}; };
}), }),
ab: $data.selectCompanyFiles == 0 ae: $data.selectCompanyFiles == 0
}, $data.selectCompanyFiles == 0 ? { }, $data.selectCompanyFiles == 0 ? {
ac: common_vendor.p({ af: common_vendor.p({
actualControlInfo: $data.actualControlInfo, actualControlInfo: $data.actualControlInfo,
concentrationList: $data.concentrationList, concentrationList: $data.concentrationList,
shareholdersList: $data.topShareholdersList, shareholdersList: $data.topShareholdersList,
circulatingShareholdersList: $data.topCirculatingShareholdersList circulatingShareholdersList: $data.topCirculatingShareholdersList
}) })
} : {}, { } : {}, {
ad: $data.selectCompanyFiles == 1 ag: $data.selectCompanyFiles == 1
}, $data.selectCompanyFiles == 1 ? { }, $data.selectCompanyFiles == 1 ? {
ae: common_vendor.p({ ah: common_vendor.p({
managementList: $data.managementList managementList: $data.managementList
}) })
} : {}, { } : {}, {
af: $data.selectCompanyFiles == 2 ai: $data.selectCompanyFiles == 2
}, $data.selectCompanyFiles == 2 ? { }, $data.selectCompanyFiles == 2 ? {
ag: common_vendor.p({ aj: common_vendor.p({
branchList: $data.branchList branchList: $data.branchList
}) })
} : {}, { } : {}, {
ah: $data.selectCompanyFiles == 3 ak: $data.selectCompanyFiles == 3
}, $data.selectCompanyFiles == 3 ? { }, $data.selectCompanyFiles == 3 ? {
ai: common_vendor.p({ al: common_vendor.p({
stockBasicInfo: $data.stockBasicInfo stockBasicInfo: $data.stockBasicInfo
}) })
} : {}) : {}, { } : {}) : {}, {
aj: $data.selectTab == 1 am: $data.selectTab == 1
}, $data.selectTab == 1 ? common_vendor.e({ }, $data.selectTab == 1 ? common_vendor.e({
ak: common_vendor.f($data.inDepthAnalysisList, (item, index, i0) => { an: common_vendor.f($data.inDepthAnalysisList, (item, index, i0) => {
return { return {
a: common_vendor.t(item.title), a: common_vendor.t(item.title),
b: common_vendor.n("item " + ($data.selectInDepthAnalysis == index ? "select" : "")), b: common_vendor.n("item " + ($data.selectInDepthAnalysis == index ? "select" : "")),
@@ -797,10 +893,10 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_vendor.o(($event) => $options.clickInDepthAnalysisItem(index), index) d: common_vendor.o(($event) => $options.clickInDepthAnalysisItem(index), index)
}; };
}), }),
al: $data.selectInDepthAnalysis == 0 ao: $data.selectInDepthAnalysis == 0
}, $data.selectInDepthAnalysis == 0 ? { }, $data.selectInDepthAnalysis == 0 ? {
am: common_vendor.o(($event) => $options.clickIndustryRank()), ap: common_vendor.o(($event) => $options.clickIndustryRank()),
an: common_vendor.p({ aq: common_vendor.p({
qualitativeAnalysisInfo: $data.qualitativeAnalysisInfo, qualitativeAnalysisInfo: $data.qualitativeAnalysisInfo,
competitivePositionInfo: $data.competitivePositionInfo, competitivePositionInfo: $data.competitivePositionInfo,
industryRankInfo: $data.industryRankInfo, industryRankInfo: $data.industryRankInfo,
@@ -809,17 +905,17 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
data: $data.chartData2 data: $data.chartData2
}) })
} : {}, { } : {}, {
ao: $data.selectInDepthAnalysis == 1 ar: $data.selectInDepthAnalysis == 1
}, $data.selectInDepthAnalysis == 1 ? { }, $data.selectInDepthAnalysis == 1 ? {
ap: common_vendor.p({ as: common_vendor.p({
businessStructureList: $data.businessStructureList, businessStructureList: $data.businessStructureList,
businessSegmentList: $data.businessSegmentList businessSegmentList: $data.businessSegmentList
}) })
} : {}, { } : {}, {
aq: $data.selectInDepthAnalysis == 2 at: $data.selectInDepthAnalysis == 2
}, $data.selectInDepthAnalysis == 2 ? { }, $data.selectInDepthAnalysis == 2 ? {
ar: common_vendor.o($options.clickValueChainDetail), av: common_vendor.o($options.clickValueChainDetail),
as: common_vendor.p({ aw: common_vendor.p({
valueChainAnalysisInfo: $data.valueChainAnalysisInfo, valueChainAnalysisInfo: $data.valueChainAnalysisInfo,
totalNodes: $data.totalNodes, totalNodes: $data.totalNodes,
upstreamList: $data.upstreamList, upstreamList: $data.upstreamList,
@@ -827,19 +923,19 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
downstreamList: $data.downstreamList downstreamList: $data.downstreamList
}) })
} : {}, { } : {}, {
at: $data.selectInDepthAnalysis == 3 ax: $data.selectInDepthAnalysis == 3
}, $data.selectInDepthAnalysis == 3 ? { }, $data.selectInDepthAnalysis == 3 ? {
av: common_vendor.o(($event) => $options.detailShow(1)), ay: common_vendor.o(($event) => $options.detailShow(1)),
aw: common_vendor.p({ az: common_vendor.p({
keyFactorsInfo: $data.keyFactorsInfo, keyFactorsInfo: $data.keyFactorsInfo,
keyFactorsList: $data.keyFactorsList, keyFactorsList: $data.keyFactorsList,
timelineInfo: $data.timelineInfo, timelineInfo: $data.timelineInfo,
timelineList: $data.timelineList timelineList: $data.timelineList
}) })
} : {}) : {}, { } : {}) : {}, {
ax: $data.selectTab == 2 aA: $data.selectTab == 2
}, $data.selectTab == 2 ? common_vendor.e({ }, $data.selectTab == 2 ? common_vendor.e({
ay: common_vendor.f($data.caiWuList, (item, index, i0) => { aB: common_vendor.f($data.caiWuList, (item, index, i0) => {
return { return {
a: common_vendor.t(item.title), a: common_vendor.t(item.title),
b: common_vendor.n("item " + ($data.selectCaiwu == index ? "select" : "")), b: common_vendor.n("item " + ($data.selectCaiwu == index ? "select" : "")),
@@ -847,9 +943,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_vendor.o(($event) => $options.clickCaiWuItem(index), index) d: common_vendor.o(($event) => $options.clickCaiWuItem(index), index)
}; };
}), }),
az: $data.selectCaiwu == 0 aC: $data.selectCaiwu == 0
}, $data.selectCaiwu == 0 ? { }, $data.selectCaiwu == 0 ? {
aA: common_vendor.p({ aD: common_vendor.p({
stockInfo: $data.financialStockInfo, stockInfo: $data.financialStockInfo,
barCategoryList: $data.mainBussinessBarCategoryList, barCategoryList: $data.mainBussinessBarCategoryList,
barList: $data.mainBussinessBarList, barList: $data.mainBussinessBarList,
@@ -857,13 +953,17 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
productClassificationList: $data.productClassificationList productClassificationList: $data.productClassificationList
}) })
} : {}, { } : {}, {
aB: $data.selectCaiwu == 1 aE: $data.selectCaiwu == 1
}, $data.selectCaiwu == 1 ? {} : {}, { }, $data.selectCaiwu == 1 ? {
aC: $data.selectCaiwu == 2 aF: common_vendor.p({
dataList: $data.financialMetricsList
})
} : {}, {
aG: $data.selectCaiwu == 2
}, $data.selectCaiwu == 2 ? {} : {}) : {}, { }, $data.selectCaiwu == 2 ? {} : {}) : {}, {
aD: $data.selectTab == 3 aH: $data.selectTab == 3
}, $data.selectTab == 3 ? { }, $data.selectTab == 3 ? {
aE: common_vendor.f($data.dongTaiList, (item, index, i0) => { aI: 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" : "")),
@@ -871,24 +971,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)
}; };
}), }),
aF: common_vendor.p({ aJ: common_vendor.p({
type: $data.selectDongtai, type: $data.selectDongtai,
newsList: $data.newsList, newsList: $data.newsList,
announcementList: $data.companyAnnouncementList announcementList: $data.companyAnnouncementList
}) })
} : {}, { } : {}, {
aG: common_vendor.s("top:" + $data.contentTop + "px;"), aK: common_vendor.s("top:" + $data.contentTop + "px;"),
aH: common_vendor.o(($event) => _ctx.sendEventComment()), aL: common_vendor.o(($event) => _ctx.sendEventComment()),
aI: _ctx.eventComment, aM: _ctx.eventComment,
aJ: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value), aN: common_vendor.o(($event) => _ctx.eventComment = $event.detail.value),
aK: common_assets._imports_2$10, aO: common_assets._imports_2$10,
aL: common_assets._imports_3$10, aP: common_assets._imports_3$10,
aM: common_vendor.o(($event) => _ctx.clickComment()), aQ: common_vendor.o(($event) => $options.clickOptional()),
aN: common_assets._imports_4$9, aR: common_assets._imports_4$9,
aO: common_vendor.o(($event) => _ctx.clickFollow()), aS: common_vendor.o(($event) => $options.clickShare()),
aP: common_assets._imports_9$1, aT: common_assets._imports_9$1,
aQ: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()), aU: common_vendor.o(($event) => $options.clickCloseIndustryRankPop()),
aR: common_vendor.f($data.industryRankList, (item, index, i0) => { aV: 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({
@@ -985,68 +1085,68 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
c: index c: index
}; };
}), }),
aS: common_assets._imports_1$13, aW: common_assets._imports_1$13,
aT: common_vendor.sr("industryRankPop", "817d6950-13"), aX: common_vendor.sr("industryRankPop", "817d6950-13"),
aU: common_vendor.p({ aY: common_vendor.p({
type: "bottom" type: "bottom"
}), }),
aV: common_assets._imports_9$1, aZ: common_assets._imports_9$1,
aW: common_vendor.o(($event) => $options.clickCloseValueChainPop()), ba: common_vendor.o(($event) => $options.clickCloseValueChainPop()),
aX: $data.selectValueChainInfo bb: $data.selectValueChainInfo
}, $data.selectValueChainInfo ? common_vendor.e({ }, $data.selectValueChainInfo ? common_vendor.e({
aY: common_vendor.t($data.selectValueChainInfo.node_name), bc: common_vendor.t($data.selectValueChainInfo.node_name),
aZ: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 bd: $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.t($data.selectValueChainInfo.node_type)
} : {}, {
bb: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
bc: common_vendor.t($data.selectValueChainInfo.market_share)
} : {}, {
bd: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
be: common_vendor.t($data.selectValueChainInfo.node_type) be: common_vendor.t($data.selectValueChainInfo.node_type)
} : {}, { } : {}, {
bf: $data.selectValueChainInfo.node_level == 0 bf: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == 0 ? { }, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
bg: common_vendor.t($data.selectValueChainInfo.market_share) bg: common_vendor.t($data.selectValueChainInfo.market_share)
} : {}, { } : {}, {
bh: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 bh: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? { }, $data.selectValueChainInfo.node_level == 0 ? {
bi: common_vendor.t($data.selectValueChainInfo.node_type) bi: common_vendor.t($data.selectValueChainInfo.node_type)
} : {}, { } : {}, {
bj: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 bj: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2 ? { }, $data.selectValueChainInfo.node_level == 0 ? {
bk: common_vendor.t($data.selectValueChainInfo.market_share) bk: common_vendor.t($data.selectValueChainInfo.market_share)
} : {}, { } : {}, {
bl: common_vendor.t($data.selectValueChainInfo.node_description), bl: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
bm: common_vendor.t($data.selectValueChainInfo.importance_score),
bn: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
bo: common_vendor.s("width:" + ($data.selectValueChainInfo.importance_score ? $data.selectValueChainInfo.importance_score : 0) + "%;")
} : {}, {
bp: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
bq: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
} : {}, {
br: $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 ? {
bs: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;") bm: common_vendor.t($data.selectValueChainInfo.node_type)
} : {}, { } : {}, {
bt: common_vendor.t($data.selectValueChainInfo.dependency_degree), bn: $data.selectValueChainInfo.node_level == 1 || $data.selectValueChainInfo.node_level == 2
bv: $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1
}, $data.selectValueChainInfo.node_level == -2 || $data.selectValueChainInfo.node_level == -1 ? {
bw: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
} : {}, {
bx: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
by: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
} : {}, {
bz: $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.node_description),
bq: common_vendor.t($data.selectValueChainInfo.importance_score),
br: $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: $data.selectValueChainInfo.node_level == 0
}, $data.selectValueChainInfo.node_level == 0 ? {
bv: common_vendor.s("width:" + $data.selectValueChainInfo.importance_score + "%;")
} : {}, {
bw: $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.t($data.selectValueChainInfo.dependency_degree),
bz: $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) + "%;") bA: common_vendor.s("width:" + ($data.selectValueChainInfo.dependency_degree ? $data.selectValueChainInfo.dependency_degree : 0) + "%;")
} : {}, { } : {}, {
bB: common_vendor.f($data.relatedCompanyList, (item, index, i0) => { bB: $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: $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.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),
@@ -1061,14 +1161,14 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}); });
}) })
}) : {}, { }) : {}, {
bC: common_vendor.sr("valueChainPopup", "817d6950-14"), bG: common_vendor.sr("valueChainPopup", "817d6950-14"),
bD: common_vendor.p({ bH: common_vendor.p({
type: "bottom", type: "bottom",
safeArea: false safeArea: false
}), }),
bE: common_assets._imports_9$1, bI: common_assets._imports_9$1,
bF: common_vendor.sr("detailInfoPopup", "817d6950-15"), bJ: common_vendor.sr("detailInfoPopup", "817d6950-15"),
bG: common_vendor.p({ bK: common_vendor.p({
type: "bottom", type: "bottom",
safeArea: false safeArea: false
}) })

File diff suppressed because one or more lines are too long

View File

@@ -27,6 +27,25 @@ page {
height: 100%; height: 100%;
color: white; color: white;
} }
.searchResultList {
background-color: #00000080;
left: 0;
right: 0;
bottom: 0;
padding: 0 25rpx;
z-index: 20;
}
.searchResultList .list {
background-color: white;
border-radius: 10rpx;
}
.searchResultList .list .item {
padding: 0 42rpx;
line-height: 60rpx;
font-size: 22rpx;
font-weight: 500;
color: #333;
}
.stockDetailsC { .stockDetailsC {
left: 0; left: 0;
right: 0; right: 0;

View File

@@ -30,6 +30,7 @@ const calendarEventList = (param) => request_http.get("/api/calendar/events", pa
const calendarDataList = (param) => request_http.get("/api/calendar/data", param); const calendarDataList = (param) => request_http.get("/api/calendar/data", param);
const investEventDetails = (id, param) => request_http.get("/api/calendar/detail/" + id, param); const investEventDetails = (id, param) => request_http.get("/api/calendar/detail/" + id, param);
const calendarEventCount = (param) => request_http.get("/api/calendar-event-counts", param); const calendarEventCount = (param) => request_http.get("/api/calendar-event-counts", param);
const searchStockInfo = (param) => request_http.get("/api/stocks/search", param, true);
const stockBasicInfo = (code) => request_http.get("/api/stock/" + code + "/basic-info", null, true); const stockBasicInfo = (code) => request_http.get("/api/stock/" + code + "/basic-info", null, true);
const quoteDetailsInfo = (code) => request_http.get("/api/stock/" + code + "/quote-detail", null, true); const quoteDetailsInfo = (code) => request_http.get("/api/stock/" + code + "/quote-detail", null, true);
const actualControl = (code) => request_http.get("/api/stock/" + code + "/actual-control", null, true); const actualControl = (code) => request_http.get("/api/stock/" + code + "/actual-control", null, true);
@@ -44,6 +45,7 @@ const valueChainAnalysis = (code) => request_http.get("/api/company/value-chain-
const valueChainRelatedCompany = (param) => request_http.get("/api/company/value-chain/related-companies", param, true); const valueChainRelatedCompany = (param) => request_http.get("/api/company/value-chain/related-companies", param, true);
const keyFactorsTimeline = (code) => request_http.get("/api/company/key-factors-timeline/" + code, null, true); const keyFactorsTimeline = (code) => request_http.get("/api/company/key-factors-timeline/" + code, null, true);
const financialStockInfo = (code) => request_http.get("/api/financial/stock-info/" + code, null, true); const financialStockInfo = (code) => request_http.get("/api/financial/stock-info/" + code, null, 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 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);
@@ -86,6 +88,7 @@ exports.feedback = feedback;
exports.filterOptions = filterOptions; exports.filterOptions = filterOptions;
exports.financialComparison = financialComparison; exports.financialComparison = financialComparison;
exports.financialMainBusiness = financialMainBusiness; exports.financialMainBusiness = financialMainBusiness;
exports.financialMetrics = financialMetrics;
exports.financialStockInfo = financialStockInfo; exports.financialStockInfo = financialStockInfo;
exports.followEvent = followEvent; exports.followEvent = followEvent;
exports.homeData = homeData; exports.homeData = homeData;
@@ -106,6 +109,7 @@ exports.ownershipConcentration = ownershipConcentration;
exports.priceTimeline = priceTimeline; exports.priceTimeline = priceTimeline;
exports.quoteDetailsInfo = quoteDetailsInfo; exports.quoteDetailsInfo = quoteDetailsInfo;
exports.replyComment = replyComment; exports.replyComment = replyComment;
exports.searchStockInfo = searchStockInfo;
exports.sendSMS = sendSMS; exports.sendSMS = sendSMS;
exports.stockBasicInfo = stockBasicInfo; exports.stockBasicInfo = stockBasicInfo;
exports.stockCandlestickChartData = stockCandlestickChartData; exports.stockCandlestickChartData = stockCandlestickChartData;