1.29 财务分析模块完善
This commit is contained in:
@@ -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,41 +143,96 @@
|
|||||||
type: 'category',
|
type: 'category',
|
||||||
data: [],
|
data: [],
|
||||||
axisLabel:{
|
axisLabel:{
|
||||||
// interval:0
|
fontSize:10,
|
||||||
|
rotate:45
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
yAxis: [{
|
yAxis: [{
|
||||||
type: 'value',
|
type: 'value',
|
||||||
name:'(%)',
|
name:'(%)',
|
||||||
position:'left',
|
position:'left',
|
||||||
alignTicks:true,
|
alignTicks:true,
|
||||||
axisLine:{
|
axisLine:{
|
||||||
onZero:false
|
onZero:false
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'value',
|
|
||||||
name:'(%)',
|
|
||||||
position:'right',
|
|
||||||
alignTicks:true,
|
|
||||||
axisLine:{
|
|
||||||
onZero:false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
],
|
},
|
||||||
|
{
|
||||||
|
type: 'value',
|
||||||
|
name:'(%)',
|
||||||
|
position:'right',
|
||||||
|
alignTicks:true,
|
||||||
|
axisLine:{
|
||||||
|
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>
|
||||||
@@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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=>{
|
||||||
@@ -1094,6 +1185,27 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
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 {
|
||||||
|
|||||||
@@ -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
@@ -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();
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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>
|
||||||
13
unpackage/dist/dev/mp-weixin/components/cwfx-view/cwfx-view.wxss
vendored
Normal file
13
unpackage/dist/dev/mp-weixin/components/cwfx-view/cwfx-view.wxss
vendored
Normal 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;
|
||||||
|
}
|
||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
|
|||||||
4
unpackage/dist/dev/mp-weixin/request/api.js
vendored
4
unpackage/dist/dev/mp-weixin/request/api.js
vendored
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user