2.5 主营业务明细与历史对比表完善,增加非会员弹窗跳转,调整会员页面文字,财务数据模块单季度增加总值展示

This commit is contained in:
尚政杰
2026-02-05 17:47:47 +08:00
parent c4cbd5a11f
commit 21e16f543f
86 changed files with 1661 additions and 376 deletions

View File

@@ -23,6 +23,12 @@ Component({
"iconPath": "/static/icon/tabbar/home.png",
"selectedIconPath": "/static/icon/tabbar/home_s.png"
},
// {
// "pagePath": "/pages/invest/invest",
// "text": "投资日历",
// "iconPath": "/static/icon/tabbar/invest.png",
// "selectedIconPath": "/static/icon/tabbar/invest_s.png"
// },
{
"pagePath": "/pages/concept/concept",
"text": "概念中心",
@@ -64,7 +70,7 @@ Component({
const index = data.index
if(index==3)
{
//如果是购物车和我的,需要登录
//如果是个人中心,需要登录
let token = wx.getStorageSync('token')
if (!token) {
wx.navigateTo({

View File

@@ -291,6 +291,12 @@
"text": "首页",
"pagePath": "pages/index/index"
},
// {
// "iconPath": "/static/icon/tabbar/invest.png",
// "selectedIconPath": "/static/icon/tabbar/invest_s.png",
// "text": "投资日历",
// "pagePath": "pages/invest/invest"
// },
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",

View File

@@ -761,6 +761,9 @@
clickUpgradeAtOnce()
{
this.clickLater()
uni.navigateTo({
url:'/pagesMine/vipMeal/vipMeal'
})
},
/**
* 点击查看相关概念

View File

@@ -371,9 +371,9 @@
*/
clickStockName(code)
{
uni.navigateTo({
url:'/pagesStock/stockCenterDetails/stockCenterDetails?code='+code
})
// uni.navigateTo({
// url:'/pagesStock/stockCenterDetails/stockCenterDetails?code='+code
// })
},
/**
* 获取概念相关个股数据

View File

@@ -496,13 +496,13 @@
*/
clickStockName(code)
{
if(code.indexOf('.')>-1)
{
code = code.split('.')[0]
}
uni.navigateTo({
url:'/pagesStock/stockCenterDetails/stockCenterDetails?code='+code
})
// if(code.indexOf('.')>-1)
// {
// code = code.split('.')[0]
// }
// uni.navigateTo({
// url:'/pagesStock/stockCenterDetails/stockCenterDetails?code='+code
// })
},
/**
* 点击查看股票详情
@@ -543,6 +543,9 @@
clickUpgradeAtOnce()
{
this.clickLater()
uni.navigateTo({
url:'/pagesMine/vipMeal/vipMeal'
})
},
/**
* 点击查看更多个股

View File

@@ -261,6 +261,11 @@
let categoryData = []
let valueData = []
let open = data[0].open
if(data.length>0) {
if(data[0].time!='09:30'){
data.splice(0,1)
}
}
for (let item of data) {
categoryData.push(item.time)
let rate = accMul(accDiv(accSub(item.close,open),open).toFixed(4),100)

View File

@@ -27,7 +27,7 @@
</view>
<view class="vipC relative" @click="clickVip()">
<image class="icon" src="/static/image/mine/vipBg.png" mode="widthFix"></image>
<view v-if="memberInfo&&memberInfo.is_member" class="absolute tips">{{memberInfo.subscription_type}}会员有效期至{{memberInfo.member_expire_date}}</view>
<view v-if="memberInfo&&memberInfo.is_member" class="absolute tips">{{memberInfo.subscription_type}}会员{{memberInfo.days_left}}天后到期</view>
<view v-else class="absolute tips">成为会员可以获取更多价值资讯</view>
</view>
<view class="menuList relative">

View File

@@ -7,8 +7,8 @@
<image v-if="memberInfo.is_member" class="bg" src="/pagesMine/static/image/vip/vipTopBg.png" mode="widthFix"></image>
<image v-else class="bg" src="/pagesMine/static/image/vip/noVipTopBg.png" mode="widthFix"></image>
<view v-if="memberInfo.is_member" class="infoC vip absolute">
<view class="title">尊贵的{{memberInfo.subscription_type}}VIP会员</view>
<view class="tips">会员有效期至{{memberInfo.member_expire_date}}</view>
<view class="title">尊贵的{{memberInfo.subscription_type}}会员</view>
<view class="tips">{{memberInfo.days_left}}天后到期</view>
</view>
<view v-else class="infoC absolute">
<view class="title">价值前沿</view>
@@ -108,7 +108,7 @@
<view class="bottomTips"> 解锁全部高级功能让AI成为您的专属投资顾问</view>
</view>
</view>
<view class="lookMealC fixed" @click="clickVipMeal()">查看VIP套餐</view>
<view class="lookMealC fixed" @click="clickVipMeal()">查看会员套餐</view>
</view>
</template>

View File

@@ -7,8 +7,8 @@
<image v-if="memberInfo.is_member" class="bg" src="/pagesMine/static/image/vip/vipTopBg.png" mode="widthFix"></image>
<image v-else class="bg" src="/pagesMine/static/image/vip/noVipTopBg.png" mode="widthFix"></image>
<view v-if="memberInfo.is_member" class="infoC vip absolute">
<view class="title">尊贵的{{memberInfo.subscription_type}}VIP会员</view>
<view class="tips">会员有效期至{{memberInfo.member_expire_date}}</view>
<view class="title">尊贵的{{memberInfo.subscription_type}}会员</view>
<view class="tips">{{memberInfo.days_left}}天后到期</view>
</view>
<view v-else class="infoC absolute">
<view class="title">价值前沿</view>
@@ -52,7 +52,7 @@
</view>
</view>
</view>
<view v-if="memberInfo" class="joinVipC fixed" @click="clickJoinVip()">{{memberInfo.is_member?'您已是年度VIP':'立即加入年度VIP'}}</view>
<view v-if="memberInfo" class="joinVipC fixed" @click="clickJoinVip()">{{memberInfo.is_member?('您已是'+memberInfo.subscription_type+'会员'):'立即加入年度会员'}}</view>
</view>
</template>

View File

@@ -17,11 +17,9 @@
</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 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;">
<view class="flex" style="padding: 3rpx 10rpx;border: 1rpx solid #D2D2D2;">
<image style="width: 23rpx; height: 23rpx;" src="/pagesStock/static/icon/all-icon.png"
mode="widthFix"></image>
<view style="margin: 0 10rpx; color: #999999; font-size: 22rpx;">全部</view>
@@ -29,7 +27,6 @@
mode="widthFix"></image>
</view>
</view>
<view style="height: 500rpx;">
<l-echart ref="chartRef1"></l-echart>
</view>

View File

@@ -105,7 +105,7 @@
</view>
<view class="flex" style="font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view class="flex1" style="color: #999999; margin-right: 20rpx;">经营性现金流增长率</view>
<view style="text-align: right; color: #2A2A2A;">{{caculateOperatingFlowRatio()}}%</view>
<view style="text-align: right; color: #2A2A2A;">{{caculateOperatingCashFlowGrowthRate()}}%</view>
</view>
<view class="flex" style="font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view class="flex1" style="color: #999999; margin-right: 20rpx;">投资性现金流</view>
@@ -121,7 +121,7 @@
</view>
<view class="flex" style="font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view class="flex1" style="color: #999999; margin-right: 20rpx;">合计现金流增长率</view>
<view style="text-align: right; color: #2A2A2A;">{{caculateNetIncreaseRatio()}}%</view>
<view style="text-align: right; color: #2A2A2A;">{{caculateTotalCashFlowGrowthRate()}}%</view>
</view>
</view>
</view>
@@ -168,11 +168,11 @@
<view v-if="incomeStatementList.length>0" style="background-color: #FAFAFC; border-radius: 10rpx; margin: 0 20rpx; padding: 20rpx 0;">
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view class="flex" style="flex: 1; color: #999999; margin-right: 20rpx;">净利润</view>
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(incomeStatementList[0].comprehensive_income.total_comprehensive_income)}}</view>
<view style="text-align: right; color: #2A2A2A;">{{getNumStr(incomeStatementList[0].profit.net_profit)}}</view>
</view>
<view class="flex" style="font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view class="flex1" style="color: #999999; margin-right: 20rpx;">净利润增长率</view>
<view style="text-align: right; color: #2A2A2A;">-1600.69%</view>
<view style="text-align: right; color: #2A2A2A;">{{caculateNetProfitGrowthRate()}}%</view>
</view>
<view class="flex" style="font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view class="flex1" style="color: #999999; margin-right: 20rpx;">营业总收入</view>
@@ -180,7 +180,7 @@
</view>
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view style="flex: 1; color: #999999; margin-right: 20rpx;">营业总收入增长率</view>
<view style="text-align: right; color: #2A2A2A;">-26.28%</view>
<view style="text-align: right; color: #2A2A2A;">{{caculateRevenueGrowthRate()}}%</view>
</view>
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view style="flex: 1; color: #999999; margin-right: 20rpx;">营业利润</view>
@@ -188,7 +188,7 @@
</view>
<view style="display: flex; align-items: center; justify-content: space-between; font-size: 24rpx; font-weight: 500; margin: 20rpx;">
<view style="flex: 1; color: #999999; margin-right: 20rpx;">营业利润增长率</view>
<view style="text-align: right; color: #2A2A2A;">-201.00%</view>
<view style="text-align: right; color: #2A2A2A;">{{caculateRevenueProfitGrowthRate()}}%</view>
</view>
</view>
</view>
@@ -212,6 +212,8 @@
option1:{
legend:{
show:true,
itemWidth:10,
itemHeight:10,
data:['货币资金','同比(右)']
},
grid:{
@@ -220,13 +222,26 @@
top:'5%',
bottom:'30%'
},
xAxis: {
xAxis: [{
type: 'category',
data: [],
axisLabel:{
fontSize:10
}
},
{
type: 'category',
data: [],
axisLine:{
show:false,
},
axisTick:{
show:false
},
axisLabel:{
show:false,
}
}],
yAxis: [{
type: 'value',
name:'(亿)',
@@ -277,13 +292,26 @@
top:'5%',
bottom:'30%'
},
xAxis: {
xAxis: [{
type: 'category',
data: [],
axisLabel:{
fontSize:10,
}
},
{
type: 'category',
data: [],
axisLine:{
show:false,
},
axisTick:{
show:false
},
axisLabel:{
show:false,
}
}],
yAxis: [{
type: 'value',
name:'(亿)',
@@ -331,14 +359,26 @@
top:'5%',
bottom:'30%'
},
xAxis: {
xAxis: [{
type: 'category',
data: [],
axisLabel:{
rotate:45,
fontSize:10
fontSize:10,
}
},
{
type: 'category',
data: [],
axisLine:{
show:false,
},
axisTick:{
show:false
},
axisLabel:{
show:false,
}
}],
yAxis: [{
type: 'value',
name:'(亿)',
@@ -432,7 +472,6 @@
clickBalanceIndicatorItem(index) {
if(this.balanceIndicatorIndex!=index) {
this.balanceIndicatorIndex = index
let data = []
if(index==0) {
//货币资金
if(this.balanceSingleQuarterAllIndex==0) {
@@ -492,7 +531,6 @@
* 获取货币基金单季度数据
*/
getMoneyFundSingleQuarterData() {
let category = []
let currentYear = this.financialBalanceList[0].period.split('-')[0]
var currentYearCount = 0
@@ -519,7 +557,7 @@
for (let item of showDataList) {
for (let item1 of category) {
let index = showDataList.indexOf(item)
let lastItem = showDataList[index+1]
let lastItem = this.financialBalanceList[index+1]
if(item1+'年一季报'==item.report_type){
if(item.assets.current_assets.cash)
{
@@ -550,31 +588,62 @@
}
}
}
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option1.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option1.xAxis.data = category
this.option1.xAxis[0].data = category
this.option1.xAxis[1].data = category
this.option1.series = [{
type: 'bar',
name:'第一季度',
barWidth:'15%',
data: data1,
yAxisIndex:0
yAxisIndex:0,
},
{
type: 'bar',
name:'第二季度',
barWidth:'15%',
data: data2,
yAxisIndex:0
},
{
type: 'bar',
name:'第三季度',
barWidth:'15%',
data: data3,
yAxisIndex:0
},
{
type: 'bar',
name:'第四季度',
barWidth:'15%',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -675,7 +744,8 @@
sumData.push(sum)
}
this.option1.legend.data = ['货币基金','同比(右)']
this.option1.xAxis.data = category
this.option1.xAxis[0].data = category
this.option1.xAxis[1].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -814,31 +884,62 @@
}
}
}
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option1.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option1.xAxis.data = category
this.option1.xAxis[0].data = category
this.option1.xAxis[1].data = category
this.option1.series = [{
type: 'bar',
name:'第一季度',
barWidth:'15%',
data: data1,
yAxisIndex:0
},
{
type: 'bar',
name:'第二季度',
barWidth:'15%',
data: data2,
yAxisIndex:0
},
{
type: 'bar',
name:'第三季度',
barWidth:'15%',
data: data3,
yAxisIndex:0
},
{
type: 'bar',
name:'第四季度',
barWidth:'15%',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -939,7 +1040,8 @@
sumData.push(sum)
}
this.option1.legend.data = ['所有者权益','同比(右)']
this.option1.xAxis.data = category
this.option1.xAxis[0].data = category
this.option1.xAxis[1].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -977,7 +1079,7 @@
}
this.option1.series = [{
type: 'bar',
name:'Q1',
name:'第一季度',
data: data1,
stack:'quarter',
yAxisIndex:0,
@@ -1020,7 +1122,7 @@
/**
* 计算经营性现金流增长率
*/
caculateOperatingFlowGrowthRate() {
caculateOperatingCashFlowGrowthRate() {
let flow1 = this.cashFlowList[0].operating_activities.net_flow
let flow2 = this.cashFlowList[4].operating_activities.net_flow
return accMul(accDiv(accSub(flow1,flow2),flow2),100).toFixed(2)
@@ -1028,7 +1130,7 @@
/**
* 计算合计现金流增长率
*/
caculateNetIncreaseRatio() {
caculateTotalCashFlowGrowthRate() {
let flow1 = this.cashFlowList[0].cash_changes.net_increase
let flow2 = this.cashFlowList[4].cash_changes.net_increase
return accMul(accDiv(accSub(flow1,flow2),flow2),100).toFixed(2)
@@ -1163,31 +1265,62 @@
}
}
}
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option2.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option2.xAxis.data = category
this.option2.xAxis[0].data = category
this.option2.xAxis[1].data = category
this.option2.series = [{
type: 'bar',
name:'第一季度',
barWidth:'15%',
data: data1,
yAxisIndex:0
},
{
type: 'bar',
name:'第二季度',
barWidth:'15%',
data: data2,
yAxisIndex:0
},
{
type: 'bar',
name:'第三季度',
barWidth:'15%',
data: data3,
yAxisIndex:0
},
{
type: 'bar',
name:'第四季度',
barWidth:'15%',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -1288,7 +1421,7 @@
sumData.push(sum)
}
this.option2.legend.data = ['经营现金流','同比(右)']
this.option2.xAxis.data = category
this.option2.xAxis[0].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -1427,31 +1560,62 @@
}
}
}
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option2.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option2.xAxis.data = category
this.option2.xAxis[0].data = category
this.option2.xAxis[1].data = category
this.option2.series = [{
type: 'bar',
name:'第一季度',
barWidth:'15%',
data: data1,
yAxisIndex:0
},
{
type: 'bar',
name:'第二季度',
barWidth:'15%',
data: data2,
yAxisIndex:0
},
{
type: 'bar',
name:'第三季度',
barWidth:'15%',
data: data3,
yAxisIndex:0
},
{
type: 'bar',
name:'第四季度',
barWidth:'15%',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -1551,7 +1715,7 @@
}else
sumData.push(sum)
}
this.option2.xAxis.data = category
this.option2.xAxis[0].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -1690,30 +1854,62 @@
}
}
}
this.option2.xAxis.data = category
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option2.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option2.xAxis[0].data = category
this.option2.xAxis[1].data = category
this.option2.series = [{
type: 'bar',
name:'第一季度',
barWidth:'15%',
data: data1,
yAxisIndex:0
},
{
type: 'bar',
name:'第二季度',
barWidth:'15%',
data: data2,
yAxisIndex:0
},
{
type: 'bar',
name:'第三季度',
barWidth:'15%',
data: data3,
yAxisIndex:0
},
{
type: 'bar',
name:'第四季度',
barWidth:'15%',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -1813,7 +2009,7 @@
}else
sumData.push(sum)
}
this.option2.xAxis.data = category
this.option2.xAxis[0].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -1851,7 +2047,7 @@
}
this.option2.series = [{
type: 'bar',
name:'Q1',
name:'第一季度',
data: data1,
stack:'quarter',
yAxisIndex:0,
@@ -2021,7 +2217,20 @@
}
}
}
this.option3.xAxis.data = category
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option2.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option3.xAxis[0].data = category
this.option3.xAxis[1].data = category
this.option3.series = [{
type: 'bar',
name:'第一季度',
@@ -2045,6 +2254,21 @@
name:'第四季度',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -2144,7 +2368,7 @@
}else
sumData.push(sum)
}
this.option3.xAxis.data = category
this.option3.xAxis[0].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -2283,30 +2507,62 @@
}
}
}
this.option3.xAxis.data = category
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option2.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option3.xAxis[0].data = category
this.option3.xAxis[1].data = category
this.option3.series = [{
type: 'bar',
name:'第一季度',
barWidth:'15%',
data: data1,
yAxisIndex:0
},
{
type: 'bar',
name:'第二季度',
barWidth:'15%',
data: data2,
yAxisIndex:0
},
{
type: 'bar',
name:'第三季度',
barWidth:'15%',
data: data3,
yAxisIndex:0
},
{
type: 'bar',
name:'第四季度',
barWidth:'15%',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -2406,7 +2662,7 @@
}else
sumData.push(sum)
}
this.option3.xAxis.data = category
this.option3.xAxis[0].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -2444,7 +2700,7 @@
}
this.option3.series = [{
type: 'bar',
name:'Q1',
name:'第一季度',
data: data1,
stack:'quarter',
yAxisIndex:0,
@@ -2551,30 +2807,62 @@
}
}
}
this.option3.xAxis.data = category
let sumData = []
for (var i = 0; i < data1.length; i++) {
let sum = data1[i]
sum = accAdd(sum,data2[i]?data2[i]:0)
sum = accAdd(sum,data3[i]?data3[i]:0)
sum = accAdd(sum,data4[i]?data4[i]:0).toFixed(2)
if(sum>10000) {
sumData.push((sum/10000).toFixed(2)+'万')
}else
sumData.push(sum)
}
this.option2.legend.data = ['第一季度','第二季度','第三季度','第四季度']
this.option3.xAxis[0].data = category
this.option3.xAxis[1].data = category
this.option3.series = [{
type: 'bar',
name:'第一季度',
barWidth:'15%',
data: data1,
yAxisIndex:0
},
{
type: 'bar',
name:'第二季度',
barWidth:'15%',
data: data2,
yAxisIndex:0
},
{
type: 'bar',
name:'第三季度',
barWidth:'15%',
data: data3,
yAxisIndex:0
},
{
type: 'bar',
name:'第四季度',
barWidth:'15%',
data: data4,
yAxisIndex:0,
},
{
type: 'bar',
name:'总值',
data: sumData,
barWidth:'70%',
xAxisIndex:1,
yAxisIndex:0,
itemStyle:{
color:'rgba(0,0,0,0.2)',
},
label:{
show:true,
position:'top'
}
}]
},
/**
@@ -2678,7 +2966,7 @@
}else
sumData.push(sum)
}
this.option3.xAxis.data = category
this.option3.xAxis[0].data = category
let ratioList = []
for (let item of showDataList) {
let index = showDataList.indexOf(item)
@@ -2718,7 +3006,7 @@
}
this.option3.series = [{
type: 'bar',
name:'Q1',
name:'第一季度',
data: data1,
stack:'quarter',
yAxisIndex:0,
@@ -2762,17 +3050,25 @@
* 计算净利润增长率
*/
caculateNetProfitGrowthRate() {
let flow1 = this.incomeStatementList[0].operating_activities.net_flow
let flow2 = this.incomeStatementList[4].operating_activities.net_flow
return accMul(accDiv(accSub(flow1,flow2),flow2),100).toFixed(2)
let flow1 = this.incomeStatementList[0].profit.net_profit
let flow2 = this.incomeStatementList[4].profit.net_profit
return accMul(accDiv(accSub(flow1,flow2),Math.abs(flow2)),100).toFixed(2)
},
/**
* 计算营业总收入增长率
*/
caculateRevenueGrowthRate() {
let flow1 = this.incomeStatementList[0].cash_changes.net_increase
let flow2 = this.incomeStatementList[4].cash_changes.net_increase
return accMul(accDiv(accSub(flow1,flow2),flow2),100).toFixed(2)
let flow1 = this.incomeStatementList[0].revenue.total_operating_revenue
let flow2 = this.incomeStatementList[4].revenue.total_operating_revenue
return accMul(accDiv(accSub(flow1,flow2),Math.abs(flow2)),100).toFixed(2)
},
/**
* 计算营业利润增长率
*/
caculateRevenueProfitGrowthRate() {
let flow1 = this.incomeStatementList[0].profit.operating_profit
let flow2 = this.incomeStatementList[4].profit.operating_profit
return accMul(accDiv(accSub(flow1,flow2),Math.abs(flow2)),100).toFixed(2)
},
}
}

View File

@@ -38,7 +38,7 @@
<view class="label upstream market">份额:{{item.market_share}}%</view>
</view>
<view class="importanceC flex">
<view class="title">影响</view>
<view class="title">重要</view>
<view class="progressBgC flex1">
<view class="progress upstream" :style="{width: `${item.importance_score}%`}">
</view>
@@ -57,7 +57,7 @@
<view class="label core market">份额:{{item.market_share}}%</view>
</view>
<view class="importanceC flex">
<view class="title">影响</view>
<view class="title">重要</view>
<view class="progressBgC flex1">
<view class="progress core" :style="{width: `${item.importance_score}%`}"></view>
</view>
@@ -75,7 +75,7 @@
<view class="label downstream market">份额:{{item.market_share}}%</view>
</view>
<view class="importanceC flex">
<view class="title">影响</view>
<view class="title">重要</view>
<view class="progressBgC flex1">
<view class="progress downstream" :style="{width: `${item.importance_score}%`}"></view>
</view>

View File

@@ -100,7 +100,8 @@
},
tooltip:{
show:true,
triggerOn:'mousemove'
triggerOn:'mousemove',
confine:true,
},
radar: {
indicator: [

View File

@@ -66,28 +66,48 @@
<l-echart ref="chartRef2"></l-echart>
</view>
<view style="text-align: left; font-size: 26rpx; color: #2B2B2B; font-weight: bold; margin: 20rpx;">
主营业务明细与历史对比</view>
<view
style="display: grid; grid-template-columns: 130rpx repeat(4, 1fr); color: #666666; font-size: 20rpx; font-weight: 500; background-color: #FAFAFC; margin: 20rpx; margin-bottom: 0; padding: 10rpx; box-sizing: border-box;">
<view class="flexColumnCenter" v-for="(item, index) in ['业务', '毛利率', '利润', '营收', '营收']" :key="index"
style="justify-content: center;"
:style="{'text-align': index == 0 ? 'left' : 'center', 'align-items': index == 0 ? 'flex-start' : 'center'}">
<view>{{item}}</view>
<view v-if="['', '(2025年中报)', '(2025年中报)', '(2025年中报)', '(2024年年报)'][index].length > 0"
style="font-size: 18rpx;" :style="{'text-align': index == 0 ? 'left' : 'center'}">
{{['', '(2025年中报)', '(2025年中报)', '(2025年中报)', '(2024年年报)'][index]}}
</view>
</view>
</view>
主营业务明细与历史对比</view>
<block v-if="productClassificationList.length>0">
<view class="table" v-for="(item, index) in productClassificationList[0].products" :key="index"
style="display: grid; grid-template-columns: 130rpx repeat(4, 1fr); margin: 0 20rpx; padding: 10rpx;"
:style="{'background-color': (index % 2 == 0 ? '#FFFFFF' : '#FAFAFC')}">
<view class="item">{{item.content}}</view>
<view class="item flexCenter">{{item.profit_margin.toFixed(2)}}%</view>
<view class="item flexCenter">{{getNumStr(item.profit)}}</view>
<view class="item flexCenter">{{getNumStr(item.revenue)}}</view>
<view class="item flexCenter">{{item.content}}</view>
<view class="mainBusinessC flex">
<view class="businessList">
<view class="heading">业务</view>
<view class="list">
<view class="item flex" v-for="(item, index) in productClassificationList[0].products" :key="index">
{{item.content}}
</view>
</view>
</view>
<scroll-view scroll-x class="dataC flex1">
<view class="headingList">
<view class="heading">
<view class="flexColumnCenter">
<view>毛利率</view>
<view>({{productClassificationList[0].report_type}})</view>
</view>
</view>
<view class="heading">
<view class="flexColumnCenter">
<view>利润</view>
<view>({{productClassificationList[0].report_type}})</view>
</view>
</view>
<block v-for="(item,index) in productClassificationList" :key="index">
<view class="heading">
<view class="flexColumnCenter">
<view>营收</view>
<view>({{item.report_type}})</view>
</view>
</view>
</block>
</view>
<view class="dataList" >
<view class="dataItem" v-for="(item, index) in productClassificationList[0].products" :key="index">
<view class="rowItem">{{item.profit_margin?(item.profit_margin.toFixed(2)+'%'):'-'}}</view>
<view class="rowItem">{{item.profit?(getNumStr(item.profit)):'-'}}</view>
<view class="rowItem" v-for="(pitem,pindex) in productClassificationList" :key="pindex">{{getTableRevenue(item,pitem)}}</view>
</view>
</view>
</scroll-view>
</view>
</block>
<view style="height: 80rpx;"></view>
@@ -139,9 +159,9 @@
}
}
],
dataZoom:[{
type:'slider'
}],
// dataZoom:[{
// type:'slider'
// }],
series: [
{
type: 'bar',
@@ -209,7 +229,6 @@
this.barLineInit()
},
productClassificationList(newValue) {
let data = newValue[0].products
this.option2.title.text = '主营业务构成('+newValue[0].report_type+''
let pieList = []
@@ -282,6 +301,26 @@
if(value>15) return {text:'良好',color:'gold'};
if(value>10) return {text:'一般',color:'orange'};
return {text:'较低',color:'red'};
},
/**
* 遍历数组找出对应的营收
* @param {Object} pitem
*/
getTableRevenue(item,pitem)
{
let index = -1
for (let item1 of pitem.products) {
if(item1.content==item.content)
{
index = pitem.products.indexOf(item1)
}
}
if(index>-1)
{
return getNumStr(pitem.products[index].revenue)
}else
return '-'
},
itemClick(index) {
uni.navigateTo({
@@ -305,5 +344,82 @@
{
text-align: center;
}
}
}
.mainBusinessC
{
padding: 0 20rpx;
overflow: hidden;
.businessList
{
.heading
{
background-color: #FAFAFC;
padding: 0 20rpx;
width: 160rpx;
line-height: 80rpx;
font-size: 20rpx;
font-weight: bold;
color: #666;
}
.list
{
.item
{
padding: 0 10rpx;
height: 60rpx;
font-size: 18rpx;
font-weight: 500;
color: #666;
}
.item:nth-child(2n)
{
background-color: #FAFAFC;
}
}
}
.dataC
{
width: calc(100% - 160rpx);
.headingList
{
white-space: nowrap;
.heading
{
background-color: #FAFAFC;
display: inline-flex;
align-items: center;
justify-content: center;
width: 160rpx;
height: 80rpx;
font-size: 20rpx;
color: #666;
}
}
.dataList
{
.dataItem
{
white-space: nowrap;
font-size: 20rpx;
color: #666;
.rowItem
{
display: inline-flex;
align-items: center;
width: 160rpx;
height: 60rpx;
}
}
.dataItem:nth-child(2n)
{
.rowItem
{
background-color: #FAFAFC;
}
}
}
}
}
</style>

View File

@@ -749,8 +749,7 @@
*/
clickExpandOrRetractCompanyIntro() {
this.isExpandIntro = !this.isExpandIntro
},
},
/**
* @param {Object} index
*/
@@ -798,7 +797,10 @@
clickInDepthAnalysisItem(index) {
if (this.selectInDepthAnalysis != index) {
this.selectInDepthAnalysis = index
if (index==2) {
if(index==0) {
this.getComprehensiveAnalysisData()
this.getIndustryRankListData()
}else if (index==2) {
//产业链
this.getValueChainAnalysisData()
}else if (index==3) {
@@ -1051,7 +1053,7 @@
}
managementTeam(code,{active_only:true}).then(res=>{
let data = res.data
let arr = ['高管','董事','监事','其他']
let arr = ['高管','董事','监事']
let list = []
for (let item of arr) {
list.push({key:item,list:[]})
@@ -1085,6 +1087,9 @@
}, list);
var count = 0
for (let item of this.managementList) {
// if (item.key=='高管') {
// item.key = '其他'
// }
count += item.list.length
}
this.isManagementEmpty = count==0

View File

@@ -70,24 +70,18 @@
"text": "首页",
"pagePath": "pages/index/index"
},
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",
"text": "投资日历",
"pagePath": "pages/invest/invest"
},
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",
"text": "投资",
"pagePath": "pages/concept/concept"
},
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",
"text": "个股中心",
"pagePath": "pages/geGuCenter/geGuCenter"
},
{
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png",
"text": "投资",
"pagePath": "pages/ztfx/ztfx"
},
{
"iconPath": "/static/icon/tabbar/mine.png",
"selectedIconPath": "/static/icon/tabbar/mine_s.png",

View File

@@ -23,24 +23,30 @@ Component({
"iconPath": "/static/icon/tabbar/home.png",
"selectedIconPath": "/static/icon/tabbar/home_s.png"
},
{
"pagePath": "/pages/invest/invest",
"text": "投资日历",
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png"
},
{
"pagePath": "/pages/concept/concept",
"text": "概念中心",
"iconPath": "/static/icon/tabbar/concept.png",
"selectedIconPath": "/static/icon/tabbar/concept_s.png"
},
{
"pagePath": "/pages/geGuCenter/geGuCenter",
"text": "个股中心",
"iconPath": "/static/icon/tabbar/gegu.png",
"selectedIconPath": "/static/icon/tabbar/gegu_s.png"
},
{
"pagePath": "/pages/ztfx/ztfx",
"text": "涨停分析",
"iconPath": "/static/icon/tabbar/zt.png",
"selectedIconPath": "/static/icon/tabbar/zt_s.png"
},
// {
// "pagePath": "/pages/geGuCenter/geGuCenter",
// "text": "个股中心",
// "iconPath": "/static/icon/tabbar/gegu.png",
// "selectedIconPath": "/static/icon/tabbar/gegu_s.png"
// },
// {
// "pagePath": "/pages/ztfx/ztfx",
// "text": "涨停分析",
// "iconPath": "/static/icon/tabbar/zt.png",
// "selectedIconPath": "/static/icon/tabbar/zt_s.png"
// },
{
"pagePath": "/pages/mine/mine",
"text": "个人中心",
@@ -64,7 +70,7 @@ Component({
const index = data.index
if(index==3)
{
//如果是购物车和我的,需要登录
//如果是个人中心,需要登录
let token = wx.getStorageSync('token')
if (!token) {
wx.navigateTo({

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),n=require("../../request/api.js"),t=require("../../common/assets.js"),i={data:()=>({menuTop:e.inject("menuTop"),menuH:e.inject("menuHeight"),infoTop:"",userInfo:null,memberInfo:null,menuList:[{icon:"/static/icon/mine/aboutUs.png",title:"关于我们",url:"/pages/mine/web/web?type=1"},{icon:"/static/icon/mine/serviceTerm.png",title:"服务条款",url:"/pages/mine/web/web?type=2"},{icon:"/static/icon/mine/privacyProtocol.png",title:"隐私协议",url:"/pages/mine/web/web?type=3"},{icon:"/static/icon/mine/feedback.png",title:"意见反馈",url:"/pages/mine/feedback/feedback"},{icon:"/static/icon/mine/customerService.png",title:"联系客服"},{icon:"/static/icon/mine/logout.png",title:"退出登录"}]}),onLoad(){this.infoTop=e.inject("navHeight")+32/750*e.inject("windowWidth")},onShow(){this.getUserInfoData(),this.getMemberStatus()},methods:{clickPersonalInfo(){e.index.navigateTo({url:"/pages/mine/basicInfo/basicInfo"})},clickVip(){e.index.navigateTo({url:"/pagesMine/vip/vip"})},clickNumItem(n){0==n?e.index.navigateTo({url:"/pages/mine/commentReply/commentReply"}):1==n?e.index.navigateTo({url:"/pages/mine/followCollect/followCollect"}):e.index.navigateTo({url:"/pages/mine/myLike/myLike"})},clickMenuItem(n,t){n?e.index.navigateTo({url:n}):t==this.menuList.length-2?this.$refs.popup.open():t==this.menuList.length-1&&e.index.showModal({title:"您确定要退出登录么",success(n){n.confirm&&(e.index.removeStorageSync("token"),e.index.switchTab({url:"/pages/index/index"}))}})},getUserInfoData(){n.userInfo().then((n=>{200==n.code?this.userInfo=n.data:e.wx$1.showToast({title:n.message,icon:"none"})})).catch((e=>{}))},getMemberStatus(){n.membershipStatus().then((n=>{200==n.code?this.memberInfo=n.data:e.index.showToast({title:n.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){e.resolveComponent("uni-popup")()}Math;const o=e._export_sfc(i,[["render",function(n,i,o,s,m,c){return e.e({a:t._imports_0,b:e.s("top:"+m.menuTop+"px;line-height:"+m.menuH+"px;"),c:m.userInfo},m.userInfo?e.e({d:m.userInfo.basic_info.avatar_url,e:e.t(m.userInfo.basic_info.nickname),f:e.t(m.userInfo.basic_info.phone),g:m.memberInfo&&m.memberInfo.is_member},m.memberInfo&&m.memberInfo.is_member?{h:e.t(m.memberInfo.subscription_type)}:{},{i:t._imports_1$4,j:e.s("margin-top:"+m.infoTop+"px;"),k:e.o((e=>c.clickPersonalInfo()))}):{},{l:m.userInfo},m.userInfo?{m:e.t(m.userInfo.statistics.total_comments),n:e.o((e=>c.clickNumItem(0))),o:e.t(m.userInfo.statistics.follows_count),p:e.o((e=>c.clickNumItem(1))),q:e.t(m.userInfo.statistics.likes_count),r:e.o((e=>c.clickNumItem(2)))}:{},{s:t._imports_2$5,t:m.memberInfo&&m.memberInfo.is_member},m.memberInfo&&m.memberInfo.is_member?{v:e.t(m.memberInfo.subscription_type),w:e.t(m.memberInfo.member_expire_date)}:{},{x:e.o((e=>c.clickVip())),y:e.f(m.menuList,((n,t,i)=>({a:n.icon,b:e.t(n.title),c:t,d:e.o((e=>c.clickMenuItem(n.url,t)),t)}))),z:t._imports_3$2,A:t._imports_4$3,B:e.sr("popup","dd5840e4-0"),C:e.p({type:"center"})})}]]);wx.createPage(o);
"use strict";const e=require("../../common/vendor.js"),n=require("../../request/api.js"),t=require("../../common/assets.js"),i={data:()=>({menuTop:e.inject("menuTop"),menuH:e.inject("menuHeight"),infoTop:"",userInfo:null,memberInfo:null,menuList:[{icon:"/static/icon/mine/aboutUs.png",title:"关于我们",url:"/pages/mine/web/web?type=1"},{icon:"/static/icon/mine/serviceTerm.png",title:"服务条款",url:"/pages/mine/web/web?type=2"},{icon:"/static/icon/mine/privacyProtocol.png",title:"隐私协议",url:"/pages/mine/web/web?type=3"},{icon:"/static/icon/mine/feedback.png",title:"意见反馈",url:"/pages/mine/feedback/feedback"},{icon:"/static/icon/mine/customerService.png",title:"联系客服"},{icon:"/static/icon/mine/logout.png",title:"退出登录"}]}),onLoad(){this.infoTop=e.inject("navHeight")+32/750*e.inject("windowWidth")},onShow(){this.getUserInfoData(),this.getMemberStatus()},methods:{clickPersonalInfo(){e.index.navigateTo({url:"/pages/mine/basicInfo/basicInfo"})},clickVip(){e.index.navigateTo({url:"/pagesMine/vip/vip"})},clickNumItem(n){0==n?e.index.navigateTo({url:"/pages/mine/commentReply/commentReply"}):1==n?e.index.navigateTo({url:"/pages/mine/followCollect/followCollect"}):e.index.navigateTo({url:"/pages/mine/myLike/myLike"})},clickMenuItem(n,t){n?e.index.navigateTo({url:n}):t==this.menuList.length-2?this.$refs.popup.open():t==this.menuList.length-1&&e.index.showModal({title:"您确定要退出登录么",success(n){n.confirm&&(e.index.removeStorageSync("token"),e.index.switchTab({url:"/pages/index/index"}))}})},getUserInfoData(){n.userInfo().then((n=>{200==n.code?this.userInfo=n.data:e.wx$1.showToast({title:n.message,icon:"none"})})).catch((e=>{}))},getMemberStatus(){n.membershipStatus().then((n=>{200==n.code?this.memberInfo=n.data:e.index.showToast({title:n.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){e.resolveComponent("uni-popup")()}Math;const o=e._export_sfc(i,[["render",function(n,i,o,s,m,c){return e.e({a:t._imports_0,b:e.s("top:"+m.menuTop+"px;line-height:"+m.menuH+"px;"),c:m.userInfo},m.userInfo?e.e({d:m.userInfo.basic_info.avatar_url,e:e.t(m.userInfo.basic_info.nickname),f:e.t(m.userInfo.basic_info.phone),g:m.memberInfo&&m.memberInfo.is_member},m.memberInfo&&m.memberInfo.is_member?{h:e.t(m.memberInfo.subscription_type)}:{},{i:t._imports_1$4,j:e.s("margin-top:"+m.infoTop+"px;"),k:e.o((e=>c.clickPersonalInfo()))}):{},{l:m.userInfo},m.userInfo?{m:e.t(m.userInfo.statistics.total_comments),n:e.o((e=>c.clickNumItem(0))),o:e.t(m.userInfo.statistics.follows_count),p:e.o((e=>c.clickNumItem(1))),q:e.t(m.userInfo.statistics.likes_count),r:e.o((e=>c.clickNumItem(2)))}:{},{s:t._imports_2$5,t:m.memberInfo&&m.memberInfo.is_member},m.memberInfo&&m.memberInfo.is_member?{v:e.t(m.memberInfo.subscription_type),w:e.t(m.memberInfo.days_left)}:{},{x:e.o((e=>c.clickVip())),y:e.f(m.menuList,((n,t,i)=>({a:n.icon,b:e.t(n.title),c:t,d:e.o((e=>c.clickMenuItem(n.url,t)),t)}))),z:t._imports_3$2,A:t._imports_4$3,B:e.sr("popup","dd5840e4-0"),C:e.p({type:"center"})})}]]);wx.createPage(o);

View File

@@ -1 +1 @@
<view><image class="topBg absolute" src="{{a}}" mode="widthFix"></image><view class="navTitle fixed" style="{{b}}">个人中心</view><view wx:if="{{c}}" class="personalInfoC relative flex" style="{{j}}" bindtap="{{k}}"><image class="avatar" src="{{d}}" mode="aspectFill"></image><view class="flex1"><view class="nickname">{{e}}</view><view class="mobile">手机号:{{f}}</view><view wx:if="{{g}}" class="mobile">{{h}}会员</view></view><image class="arrow" src="{{i}}" mode="widthFix"></image></view><view wx:if="{{l}}" class="numList relative flex"><view class="item flex1 flexColumnCenter" bindtap="{{n}}"><view class="num">{{m}}</view><view class="title">评论回复</view></view><view class="item flex1 flexColumnCenter" bindtap="{{p}}"><view class="num">{{o}}</view><view class="title">关注收藏</view></view><view class="item flex1 flexColumnCenter" bindtap="{{r}}"><view class="num">{{q}}</view><view class="title">我的点赞</view></view></view><view class="vipC relative" bindtap="{{x}}"><image class="icon" src="{{s}}" mode="widthFix"></image><view wx:if="{{t}}" class="absolute tips">{{v}}会员,有效期至{{w}}</view><view wx:else class="absolute tips">成为会员,可以获取更多价值资讯</view></view><view class="menuList relative"><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item relative flex" bindtap="{{item.d}}"><image class="icon" src="{{item.a}}" mode="aspectFit"></image><view class="title flex1">{{item.b}}</view><image class="arrow" src="{{z}}" mode="widthFix"></image></view></view></view><uni-popup wx:if="{{C}}" class="r" u-s="{{['d']}}" u-r="popup" u-i="dd5840e4-0" bind:__l="__l" u-p="{{C}}"><view class="popup"><image class="icon" src="{{A}}" mode="widthFix" show-menu-by-longpress></image><view class="title">企业二维码</view></view></uni-popup></view>
<view><image class="topBg absolute" src="{{a}}" mode="widthFix"></image><view class="navTitle fixed" style="{{b}}">个人中心</view><view wx:if="{{c}}" class="personalInfoC relative flex" style="{{j}}" bindtap="{{k}}"><image class="avatar" src="{{d}}" mode="aspectFill"></image><view class="flex1"><view class="nickname">{{e}}</view><view class="mobile">手机号:{{f}}</view><view wx:if="{{g}}" class="mobile">{{h}}会员</view></view><image class="arrow" src="{{i}}" mode="widthFix"></image></view><view wx:if="{{l}}" class="numList relative flex"><view class="item flex1 flexColumnCenter" bindtap="{{n}}"><view class="num">{{m}}</view><view class="title">评论回复</view></view><view class="item flex1 flexColumnCenter" bindtap="{{p}}"><view class="num">{{o}}</view><view class="title">关注收藏</view></view><view class="item flex1 flexColumnCenter" bindtap="{{r}}"><view class="num">{{q}}</view><view class="title">我的点赞</view></view></view><view class="vipC relative" bindtap="{{x}}"><image class="icon" src="{{s}}" mode="widthFix"></image><view wx:if="{{t}}" class="absolute tips">{{v}}会员,{{w}}天后到期</view><view wx:else class="absolute tips">成为会员,可以获取更多价值资讯</view></view><view class="menuList relative"><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item relative flex" bindtap="{{item.d}}"><image class="icon" src="{{item.a}}" mode="aspectFit"></image><view class="title flex1">{{item.b}}</view><image class="arrow" src="{{z}}" mode="widthFix"></image></view></view></view><uni-popup wx:if="{{C}}" class="r" u-s="{{['d']}}" u-r="popup" u-i="dd5840e4-0" bind:__l="__l" u-p="{{C}}"><view class="popup"><image class="icon" src="{{A}}" mode="widthFix" show-menu-by-longpress></image><view class="title">企业二维码</view></view></uni-popup></view>

View File

@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),i=require("../../request/api.js"),m=require("../../common/assets.js"),t={data:()=>({navH:e.inject("navHeight"),memberInfo:null,questionList:["信息纷杂难辨真伪?","信息纷杂难辨真伪?","无法把握宏观趋势与行业动向?"],privilegeList:[{icon:"/pagesMine/static/icon/vip/depthReport.png",icon_v:"/pagesMine/static/icon/vip/depthReport_v.png",title:"深度研报",tips:"行业/公司独家分析"},{icon:"/pagesMine/static/icon/vip/strategicInsight.png",icon_v:"/pagesMine/static/icon/vip/strategicInsight_v.png",title:"策略洞察",tips:"赛道趋势+拐点信号"},{icon:"/pagesMine/static/icon/vip/dataTool.png",icon_v:"/pagesMine/static/icon/vip/dataTool_v.png",title:"数据工具",tips:"行业/公司独家分析"},{icon:"/pagesMine/static/icon/vip/dataTool.png",icon_v:"/pagesMine/static/icon/vip/intelligentScreening_v.png",title:"智能筛选",tips:"按需定制标的列表"},{icon:"/pagesMine/static/icon/vip/decisionSupport.png",icon_v:"/pagesMine/static/icon/vip/decisionSupport_v.png",title:"决策辅助",tips:"关键因子评分系统"},{icon:"/pagesMine/static/icon/vip/expertMeeting.png",icon_v:"/pagesMine/static/icon/vip/expertMeeting_v.png",title:"专家闭门会",tips:"深度交流机会"},{icon:"/pagesMine/static/icon/vip/dailyReport.png",icon_v:"/pagesMine/static/icon/vip/dailyReport_v.png",title:"日报周报",tips:"研判速递、节奏掌控"},{icon:"/pagesMine/static/icon/vip/specialColumn.png",icon_v:"/pagesMine/static/icon/vip/specialColumn_v.png",title:"专题专栏",tips:"核心团队观点集结"},{icon:"/pagesMine/static/icon/vip/continuouslyUnlock.png",icon_v:"/pagesMine/static/icon/vip/continuouslyUnlock_v.png",title:"持续解锁",tips:"不定期上线新功能"}]}),onLoad(){this.getMemberStatus()},methods:{clickVipMeal(){e.index.navigateTo({url:"/pagesMine/vipMeal/vipMeal"})},getMemberStatus(){i.membershipStatus().then((i=>{200==i.code?this.memberInfo=i.data:e.index.showToast({title:i.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){e.resolveComponent("navBar")()}Math;const n=e._export_sfc(t,[["render",function(i,t,n,o,s,r){return e.e({a:e.p({leftText:"会员中心"}),b:m._imports_0,c:s.memberInfo},s.memberInfo?e.e({d:s.memberInfo.is_member},s.memberInfo.is_member?{e:m._imports_1$10}:{f:m._imports_2$10},{g:s.memberInfo.is_member},s.memberInfo.is_member?{h:e.t(s.memberInfo.subscription_type),i:e.t(s.memberInfo.member_expire_date)}:{},{j:s.memberInfo.is_member},s.memberInfo.is_member?{k:m._imports_3$9}:{l:m._imports_4$8},{m:s.memberInfo.is_member},s.memberInfo.is_member?{n:m._imports_5$4}:{o:m._imports_6$2},{p:e.n("impormant "+(s.memberInfo.is_member?"vip":"")),q:s.memberInfo.is_member},s.memberInfo.is_member?{r:m._imports_7$1}:{s:m._imports_8$2},{t:s.memberInfo.is_member},s.memberInfo.is_member?{v:m._imports_9$3}:{w:m._imports_10$2},{x:e.n("impormant "+(s.memberInfo.is_member?"vip":"")),y:e.n("impormant "+(s.memberInfo.is_member?"vip":"")),z:s.memberInfo.is_member},s.memberInfo.is_member?{A:m._imports_11$3}:{B:m._imports_12$3},{C:s.memberInfo.is_member},s.memberInfo.is_member?{D:m._imports_13$2}:{E:m._imports_14$2},{F:m._imports_15$1,G:e.f(s.questionList,((i,m,t)=>({a:e.t(i),b:m}))),H:e.n("item "+(s.memberInfo.is_member?"vip":"")),I:s.memberInfo.is_member},s.memberInfo.is_member?{J:m._imports_3$9}:{K:m._imports_4$8},{L:s.memberInfo.is_member},s.memberInfo.is_member?{M:m._imports_5$4}:{N:m._imports_6$2},{O:m._imports_16$1,P:s.memberInfo.is_member},s.memberInfo.is_member?{Q:m._imports_3$9}:{R:m._imports_4$8},{S:s.memberInfo.is_member},s.memberInfo.is_member?{T:m._imports_5$4}:{},{U:m._imports_6$2,V:m._imports_17,W:s.memberInfo.is_member},s.memberInfo.is_member?{X:m._imports_3$9}:{Y:m._imports_4$8},{Z:s.memberInfo.is_member},s.memberInfo.is_member?{aa:m._imports_5$4}:{ab:m._imports_6$2},{ac:e.f(s.privilegeList,((i,m,t)=>({a:s.memberInfo.is_member?i.icon_v:i.icon,b:e.t(i.title),c:e.t(i.tips),d:m}))),ad:e.n("privilegeList flexWrap "+(s.memberInfo.is_member?"vip":"")),ae:e.s("margin-top:"+s.navH+"px;")}):{},{af:e.o((e=>r.clickVipMeal()))})}]]);wx.createPage(n);
"use strict";const e=require("../../common/vendor.js"),i=require("../../request/api.js"),m=require("../../common/assets.js"),t={data:()=>({navH:e.inject("navHeight"),memberInfo:null,questionList:["信息纷杂难辨真伪?","信息纷杂难辨真伪?","无法把握宏观趋势与行业动向?"],privilegeList:[{icon:"/pagesMine/static/icon/vip/depthReport.png",icon_v:"/pagesMine/static/icon/vip/depthReport_v.png",title:"深度研报",tips:"行业/公司独家分析"},{icon:"/pagesMine/static/icon/vip/strategicInsight.png",icon_v:"/pagesMine/static/icon/vip/strategicInsight_v.png",title:"策略洞察",tips:"赛道趋势+拐点信号"},{icon:"/pagesMine/static/icon/vip/dataTool.png",icon_v:"/pagesMine/static/icon/vip/dataTool_v.png",title:"数据工具",tips:"行业/公司独家分析"},{icon:"/pagesMine/static/icon/vip/dataTool.png",icon_v:"/pagesMine/static/icon/vip/intelligentScreening_v.png",title:"智能筛选",tips:"按需定制标的列表"},{icon:"/pagesMine/static/icon/vip/decisionSupport.png",icon_v:"/pagesMine/static/icon/vip/decisionSupport_v.png",title:"决策辅助",tips:"关键因子评分系统"},{icon:"/pagesMine/static/icon/vip/expertMeeting.png",icon_v:"/pagesMine/static/icon/vip/expertMeeting_v.png",title:"专家闭门会",tips:"深度交流机会"},{icon:"/pagesMine/static/icon/vip/dailyReport.png",icon_v:"/pagesMine/static/icon/vip/dailyReport_v.png",title:"日报周报",tips:"研判速递、节奏掌控"},{icon:"/pagesMine/static/icon/vip/specialColumn.png",icon_v:"/pagesMine/static/icon/vip/specialColumn_v.png",title:"专题专栏",tips:"核心团队观点集结"},{icon:"/pagesMine/static/icon/vip/continuouslyUnlock.png",icon_v:"/pagesMine/static/icon/vip/continuouslyUnlock_v.png",title:"持续解锁",tips:"不定期上线新功能"}]}),onLoad(){this.getMemberStatus()},methods:{clickVipMeal(){e.index.navigateTo({url:"/pagesMine/vipMeal/vipMeal"})},getMemberStatus(){i.membershipStatus().then((i=>{200==i.code?this.memberInfo=i.data:e.index.showToast({title:i.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){e.resolveComponent("navBar")()}Math;const n=e._export_sfc(t,[["render",function(i,t,n,o,s,r){return e.e({a:e.p({leftText:"会员中心"}),b:m._imports_0,c:s.memberInfo},s.memberInfo?e.e({d:s.memberInfo.is_member},s.memberInfo.is_member?{e:m._imports_1$10}:{f:m._imports_2$10},{g:s.memberInfo.is_member},s.memberInfo.is_member?{h:e.t(s.memberInfo.subscription_type),i:e.t(s.memberInfo.days_left)}:{},{j:s.memberInfo.is_member},s.memberInfo.is_member?{k:m._imports_3$9}:{l:m._imports_4$8},{m:s.memberInfo.is_member},s.memberInfo.is_member?{n:m._imports_5$4}:{o:m._imports_6$2},{p:e.n("impormant "+(s.memberInfo.is_member?"vip":"")),q:s.memberInfo.is_member},s.memberInfo.is_member?{r:m._imports_7$1}:{s:m._imports_8$2},{t:s.memberInfo.is_member},s.memberInfo.is_member?{v:m._imports_9$3}:{w:m._imports_10$2},{x:e.n("impormant "+(s.memberInfo.is_member?"vip":"")),y:e.n("impormant "+(s.memberInfo.is_member?"vip":"")),z:s.memberInfo.is_member},s.memberInfo.is_member?{A:m._imports_11$3}:{B:m._imports_12$3},{C:s.memberInfo.is_member},s.memberInfo.is_member?{D:m._imports_13$2}:{E:m._imports_14$2},{F:m._imports_15$1,G:e.f(s.questionList,((i,m,t)=>({a:e.t(i),b:m}))),H:e.n("item "+(s.memberInfo.is_member?"vip":"")),I:s.memberInfo.is_member},s.memberInfo.is_member?{J:m._imports_3$9}:{K:m._imports_4$8},{L:s.memberInfo.is_member},s.memberInfo.is_member?{M:m._imports_5$4}:{N:m._imports_6$2},{O:m._imports_16$1,P:s.memberInfo.is_member},s.memberInfo.is_member?{Q:m._imports_3$9}:{R:m._imports_4$8},{S:s.memberInfo.is_member},s.memberInfo.is_member?{T:m._imports_5$4}:{},{U:m._imports_6$2,V:m._imports_17,W:s.memberInfo.is_member},s.memberInfo.is_member?{X:m._imports_3$9}:{Y:m._imports_4$8},{Z:s.memberInfo.is_member},s.memberInfo.is_member?{aa:m._imports_5$4}:{ab:m._imports_6$2},{ac:e.f(s.privilegeList,((i,m,t)=>({a:s.memberInfo.is_member?i.icon_v:i.icon,b:e.t(i.title),c:e.t(i.tips),d:m}))),ad:e.n("privilegeList flexWrap "+(s.memberInfo.is_member?"vip":"")),ae:e.s("margin-top:"+s.navH+"px;")}):{},{af:e.o((e=>r.clickVipMeal()))})}]]);wx.createPage(n);

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),m=require("../../request/api.js"),r=require("../../common/assets.js"),t={data:()=>({navH:e.inject("navHeight"),memberInfo:null,privilegeList:["事件关联股票深度分析","历史事件智能对比复盘","事件概念关联与挖掘","概念板块个股追踪","概念深深度研报与解读","个股异动实时预警","事件传导链路智能分析","概念演变时间轴追溯","个股全方位深度研究","价小前投研助手无限使用","新功能优先体验权","专属客服一对一服务"]}),onLoad(){this.getMemberStatus()},methods:{clickJoinVip(){this.memberInfo.is_member||e.index.showModal({content:"请点击下方按钮复制链接并在浏览器中打开以完成会员购买流程",showCancel:!1,confirmText:"复制",success(m){m.confirm&&e.index.setClipboardData({data:"https://valuefrontier.cn/home/pages/account/subscription"})}})},getMemberStatus(){m.membershipStatus().then((m=>{200==m.code?this.memberInfo=m.data:e.index.showToast({title:m.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){e.resolveComponent("navBar")()}Math;const i=e._export_sfc(t,[["render",function(m,t,i,o,s,n){return e.e({a:e.p({leftText:"会员中心"}),b:r._imports_0,c:s.memberInfo},s.memberInfo?e.e({d:s.memberInfo.is_member},s.memberInfo.is_member?{e:r._imports_1$10}:{f:r._imports_2$10},{g:s.memberInfo.is_member},s.memberInfo.is_member?{h:e.t(s.memberInfo.subscription_type),i:e.t(s.memberInfo.member_expire_date)}:{},{j:s.memberInfo.is_member},s.memberInfo.is_member?{k:r._imports_3$9}:{l:r._imports_4$8},{m:s.memberInfo.is_member},s.memberInfo.is_member?{n:r._imports_5$4}:{o:r._imports_6$2},{p:e.f(s.privilegeList,((m,t,i)=>e.e({a:e.t(m),b:t>5},t>5?{c:r._imports_7$2}:{d:r._imports_8$3},{e:t}))),q:r._imports_8$3,r:e.n("privilegeList "+(s.memberInfo.is_member?"vip":"")),s:e.s("margin-top:"+s.navH+"px;")}):{},{t:s.memberInfo},s.memberInfo?{v:e.t(s.memberInfo.is_member?"您已是年度VIP":"立即加入年度VIP"),w:e.o((e=>n.clickJoinVip()))}:{})}]]);wx.createPage(i);
"use strict";const e=require("../../common/vendor.js"),m=require("../../request/api.js"),r=require("../../common/assets.js"),t={data:()=>({navH:e.inject("navHeight"),memberInfo:null,privilegeList:["事件关联股票深度分析","历史事件智能对比复盘","事件概念关联与挖掘","概念板块个股追踪","概念深深度研报与解读","个股异动实时预警","事件传导链路智能分析","概念演变时间轴追溯","个股全方位深度研究","价小前投研助手无限使用","新功能优先体验权","专属客服一对一服务"]}),onLoad(){this.getMemberStatus()},methods:{clickJoinVip(){this.memberInfo.is_member||e.index.showModal({content:"请点击下方按钮复制链接并在浏览器中打开以完成会员购买流程",showCancel:!1,confirmText:"复制",success(m){m.confirm&&e.index.setClipboardData({data:"https://valuefrontier.cn/home/pages/account/subscription"})}})},getMemberStatus(){m.membershipStatus().then((m=>{200==m.code?this.memberInfo=m.data:e.index.showToast({title:m.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){e.resolveComponent("navBar")()}Math;const o=e._export_sfc(t,[["render",function(m,t,o,i,s,n){return e.e({a:e.p({leftText:"会员中心"}),b:r._imports_0,c:s.memberInfo},s.memberInfo?e.e({d:s.memberInfo.is_member},s.memberInfo.is_member?{e:r._imports_1$10}:{f:r._imports_2$10},{g:s.memberInfo.is_member},s.memberInfo.is_member?{h:e.t(s.memberInfo.subscription_type),i:e.t(s.memberInfo.days_left)}:{},{j:s.memberInfo.is_member},s.memberInfo.is_member?{k:r._imports_3$9}:{l:r._imports_4$8},{m:s.memberInfo.is_member},s.memberInfo.is_member?{n:r._imports_5$4}:{o:r._imports_6$2},{p:e.f(s.privilegeList,((m,t,o)=>e.e({a:e.t(m),b:t>5},t>5?{c:r._imports_7$2}:{d:r._imports_8$3},{e:t}))),q:r._imports_8$3,r:e.n("privilegeList "+(s.memberInfo.is_member?"vip":"")),s:e.s("margin-top:"+s.navH+"px;")}):{},{t:s.memberInfo},s.memberInfo?{v:e.t(s.memberInfo.is_member?"您已是"+s.memberInfo.subscription_type+"会员":"立即加入年度会员"),w:e.o((e=>n.clickJoinVip()))}:{})}]]);wx.createPage(o);

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="2f528ea3-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="vipC" style="{{s}}"><view class="vipInfoC relative"><image wx:if="{{d}}" class="bg" src="{{e}}" mode="widthFix"></image><image wx:else class="bg" src="{{f}}" mode="widthFix"></image><view wx:if="{{g}}" class="infoC vip absolute"><view class="title">尊贵的{{h}}VIP会员</view><view class="tips">会员有效期至:{{i}}</view></view><view wx:else class="infoC absolute"><view class="title">价值前沿</view><view class="tips">您还不是会员 加入尊享N项服务</view></view></view><view class="privilegeCompareC relative"><view class="titleC flexCenter"><image wx:if="{{j}}" class="icon" src="{{k}}" mode="widthFix"></image><image wx:else class="icon" src="{{l}}" mode="widthFix"></image><view class="title">特权对比</view><image wx:if="{{m}}" class="icon" src="{{n}}" mode="widthFix"></image><image wx:else class="icon" src="{{o}}" mode="widthFix"></image></view><view class="{{r}}"><view class="header flex"><view class="privilege item">专属特权</view><view class="item free">pro会员</view><view class="item vip">max会员</view></view><view class="list"><view wx:for="{{p}}" wx:for-item="item" wx:key="e" class="item flex"><view class="optionItem privilege flex">{{item.a}}</view><view class="optionItem free flexCenter"><block wx:if="{{item.b}}"><image class="notContain" src="{{item.c}}" mode="widthFix"></image></block><block wx:else><image class="contain" src="{{item.d}}" mode="widthFix"></image></block></view><view class="optionItem vip flexCenter"><image class="contain" src="{{q}}" mode="widthFix"></image></view></view></view></view></view></view><view wx:if="{{t}}" class="joinVipC fixed" bindtap="{{w}}">{{v}}</view></view>
<view><nav-bar wx:if="{{a}}" u-i="2f528ea3-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="vipC" style="{{s}}"><view class="vipInfoC relative"><image wx:if="{{d}}" class="bg" src="{{e}}" mode="widthFix"></image><image wx:else class="bg" src="{{f}}" mode="widthFix"></image><view wx:if="{{g}}" class="infoC vip absolute"><view class="title">尊贵的{{h}}会员</view><view class="tips">{{i}}天后到期</view></view><view wx:else class="infoC absolute"><view class="title">价值前沿</view><view class="tips">您还不是会员 加入尊享N项服务</view></view></view><view class="privilegeCompareC relative"><view class="titleC flexCenter"><image wx:if="{{j}}" class="icon" src="{{k}}" mode="widthFix"></image><image wx:else class="icon" src="{{l}}" mode="widthFix"></image><view class="title">特权对比</view><image wx:if="{{m}}" class="icon" src="{{n}}" mode="widthFix"></image><image wx:else class="icon" src="{{o}}" mode="widthFix"></image></view><view class="{{r}}"><view class="header flex"><view class="privilege item">专属特权</view><view class="item free">pro会员</view><view class="item vip">max会员</view></view><view class="list"><view wx:for="{{p}}" wx:for-item="item" wx:key="e" class="item flex"><view class="optionItem privilege flex">{{item.a}}</view><view class="optionItem free flexCenter"><block wx:if="{{item.b}}"><image class="notContain" src="{{item.c}}" mode="widthFix"></image></block><block wx:else><image class="contain" src="{{item.d}}" mode="widthFix"></image></block></view><view class="optionItem vip flexCenter"><image class="contain" src="{{q}}" mode="widthFix"></image></view></view></view></view></view></view><view wx:if="{{t}}" class="joinVipC fixed" bindtap="{{w}}">{{v}}</view></view>

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<view class="cyl_view"><view class="top flex"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 {{a}}</view></view><view class="center"><view class="{{['child', b && 'action']}}" bindtap="{{c}}"> 层级视图 </view><view class="{{['child', d && 'action']}}" bindtap="{{e}}"> 流向关系 </view></view><view wx:if="{{f}}" class="bottom"><view class="type flex"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item flex flex1"><view class="{{item.e}}" bindtap="{{item.f}}"><view class="titleNumC">{{item.a}} <text class="{{item.c}}">{{item.b}}</text></view><view class="des">{{item.d}}</view></view><image wx:if="{{item.g}}" class="arrow" src="{{item.h}}" mode="widthFix"></image></view></view><view class="list"><block wx:if="{{h}}"><view wx:for="{{i}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label upstream type">{{item.c}}</view><view class="label upstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress upstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{j}}"><view wx:for="{{k}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label core type">{{item.c}}</view><view class="label core market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress core" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{l}}"><view wx:for="{{m}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label downstream type">{{item.c}}</view><view class="label downstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress downstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block></view></view><view wx:if="{{n}}" style="height:500rpx"><l-echart class="r" u-r="chartRef" u-i="4ade4b3d-0" bind:__l="__l"></l-echart></view></view>
<view class="cyl_view"><view class="top flex"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 {{a}}</view></view><view class="center"><view class="{{['child', b && 'action']}}" bindtap="{{c}}"> 层级视图 </view><view class="{{['child', d && 'action']}}" bindtap="{{e}}"> 流向关系 </view></view><view wx:if="{{f}}" class="bottom"><view class="type flex"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item flex flex1"><view class="{{item.e}}" bindtap="{{item.f}}"><view class="titleNumC">{{item.a}} <text class="{{item.c}}">{{item.b}}</text></view><view class="des">{{item.d}}</view></view><image wx:if="{{item.g}}" class="arrow" src="{{item.h}}" mode="widthFix"></image></view></view><view class="list"><block wx:if="{{h}}"><view wx:for="{{i}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label upstream type">{{item.c}}</view><view class="label upstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress upstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{j}}"><view wx:for="{{k}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label core type">{{item.c}}</view><view class="label core market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress core" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{l}}"><view wx:for="{{m}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label downstream type">{{item.c}}</view><view class="label downstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress downstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block></view></view><view wx:if="{{n}}" style="height:500rpx"><l-echart class="r" u-r="chartRef" u-i="4ade4b3d-0" bind:__l="__l"></l-echart></view></view>

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

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

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,8 @@
"use strict";
const _imports_0$a = "/static/image/index/conceptTopBg.png";
const _imports_1$i = "/static/icon/home/conceptCenter/search.png";
const _imports_1$h = "/static/icon/home/conceptCenter/search.png";
const _imports_3$d = "/static/icon/home/conceptCenter/conceptScreenArrow.png";
const _imports_1$h = "/static/icon/home/downArrow.png";
const _imports_1$g = "/static/icon/home/downArrow.png";
const _imports_2$f = "/static/icon/home/upArrow.png";
const _imports_3$c = "/static/icon/home/browser.png";
const _imports_11$3 = "/static/icon/home/like.png";
@@ -13,14 +13,14 @@ const _imports_10$2 = "/static/icon/home/industrySearch.png";
const _imports_11$2 = "/static/icon/home/industry_s.png";
const _imports_12$3 = "/static/icon/home/level_s.png";
const _imports_2$d = "/static/icon/invest/upArrow.png";
const _imports_4$d = "/static/icon/invest/downArrow.png";
const _imports_4$c = "/static/image/index/noData.png";
const _imports_4$e = "/static/icon/invest/downArrow.png";
const _imports_4$d = "/static/image/index/noData.png";
const _imports_5$8 = "/static/icon/home/monthLeftArrow.png";
const _imports_6$2 = "/static/icon/home/monthRightArrow.png";
const _imports_2$c = "/static/icon/home/conceptCenter/sortType.png";
const _imports_4$b = "/static/icon/home/conceptCenter/transactionDate.png";
const _imports_1$g = "/static/icon/home/conceptCenter/lock.png";
const _imports_1$f = "/static/icon/home/conceptCenter/timeAxis.png";
const _imports_4$c = "/static/icon/home/conceptCenter/transactionDate.png";
const _imports_1$f = "/static/icon/home/conceptCenter/lock.png";
const _imports_1$e = "/static/icon/home/conceptCenter/timeAxis.png";
const _imports_6$1 = "/static/icon/home/close.png";
const _imports_8$4 = "/static/icon/home/conceptCenter/statistics.png";
const _imports_9$2 = "/static/icon/home/conceptCenter/rank1.png";
@@ -36,40 +36,41 @@ const _imports_13$1 = "/static/icon/home/conceptCenter/vipPopIcon.png";
const _imports_14$1 = "/static/icon/home/conceptCenter/vipPopIcon.png";
const _imports_15$1 = "/static/icon/home/conceptCenter/free_s.png";
const _imports_16$1 = "/static/icon/home/conceptCenter/pro_s.png";
const _imports_1$e = "/static/icon/mine/infoArrow.png";
const _imports_1$d = "/static/icon/mine/infoArrow.png";
const _imports_2$a = "/static/image/mine/vipBg.png";
const _imports_3$b = "/static/icon/mine/menuArrow.png";
const _imports_4$a = "/static/image/mine/service.png";
const _imports_1$d = "/static/icon/mine/basicInfo/edit.png";
const _imports_4$b = "/static/image/mine/service.png";
const _imports_1$c = "/static/icon/mine/basicInfo/edit.png";
const _imports_2$9 = "/static/icon/mine/basicInfo/downArrow.png";
const _imports_3$a = "/static/icon/home/expectScore.png";
const _imports_4$9 = "/static/icon/home/expectScoreTips.png";
const _imports_4$a = "/static/icon/home/expectScoreTips.png";
const _imports_5$7 = "/static/icon/home/expectScoreDot.png";
const _imports_8$3 = "/static/icon/home/eventDetails/like.png";
const _imports_9$1 = "/static/icon/home/eventDetails/collect.png";
const _imports_4$8 = "/static/icon/home/collect_s.png";
const _imports_1$c = "/static/icon/home/like_s.png";
const _imports_4$9 = "/static/icon/home/collect_s.png";
const _imports_1$b = "/static/icon/home/like_s.png";
const _imports_0$8 = "/static/image/login/logo.png";
const _imports_3$9 = "/static/icon/login/select_s.png";
const _imports_4$7 = "/static/icon/login/select.png";
const _imports_1$b = "/static/icon/login/mobile.png";
const _imports_4$8 = "/static/icon/login/select.png";
const _imports_1$a = "/static/icon/login/mobile.png";
const _imports_2$8 = "/static/icon/login/code.png";
const _imports_3$8 = "/static/icon/home/conceptCenter/chgDown.png";
const _imports_4$6 = "/static/icon/home/conceptCenter/chgUp.png";
const _imports_4$7 = "/static/icon/home/conceptCenter/chgUp.png";
const _imports_5$6 = "/static/icon/home/conceptCenter/newsReport.png";
const _imports_1$a = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_1$9 = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_2$7 = "/static/icon/home/conceptCenter/reasonExpand.png";
const _imports_3$7 = "/static/icon/home/conceptCenter/reasonRetract.png";
const _imports_3$6 = "/assets/ydjk-icon.9712ef19.png";
const _imports_5$5 = "/assets/ydjk-zs.f6ba6c32.png";
const _imports_1$9 = "/pagesStock/static/icon/ai-icon.png";
const _imports_1$8 = "/pagesStock/static/icon/ai-icon.png";
const _imports_2$6 = "/pagesStock/static/icon/ai-icon-1.png";
const _imports_3$5 = "/pagesStock/static/icon/all-icon-3.png";
const _imports_1$8 = "/pagesMine/static/image/vip/vipTopBg.png";
const _imports_5$4 = "/pagesStock/static/icon/all-icon-5.png";
const _imports_1$7 = "/pagesMine/static/image/vip/vipTopBg.png";
const _imports_2$5 = "/pagesMine/static/image/vip/noVipTopBg.png";
const _imports_3$4 = "/pagesMine/static/icon/vip/titleLeft_v.png";
const _imports_4$5 = "/pagesMine/static/icon/vip/titleLeft.png";
const _imports_5$4 = "/pagesMine/static/icon/vip/titleRight_v.png";
const _imports_4$6 = "/pagesMine/static/icon/vip/titleLeft.png";
const _imports_5$3 = "/pagesMine/static/icon/vip/titleRight_v.png";
const _imports_6 = "/pagesMine/static/icon/vip/titleRight.png";
const _imports_7$1 = "/pagesMine/static/icon/vip/step1_v.png";
const _imports_8$2 = "/pagesMine/static/icon/vip/step1.png";
@@ -86,16 +87,15 @@ const _imports_7 = "/pagesMine/static/icon/vip/notContain.png";
const _imports_8$1 = "/pagesMine/static/icon/vip/contain.png";
const _imports_2$4 = "/pagesStock/static/icon/establishedTime.png";
const _imports_3$3 = "/pagesStock/static/icon/registeredCapital.png";
const _imports_4$4 = "/pagesStock/static/icon/location.png";
const _imports_5$3 = "/pagesStock/static/icon/noData.png";
const _imports_1$7 = "/pagesStock/static/icon/existStatus.png";
const _imports_4$5 = "/pagesStock/static/icon/location.png";
const _imports_5$2 = "/pagesStock/static/icon/noData.png";
const _imports_1$6 = "/pagesStock/static/icon/existStatus.png";
const _imports_8 = "/pagesStock/static/icon/yRightArrow.png";
const _imports_4$3 = "/pagesStock/static/icon/all-down-ed.png";
const _imports_4$4 = "/pagesStock/static/icon/all-down-ed.png";
const _imports_2$3 = "/pagesStock/static/icon/contrast.png";
const _imports_3$2 = "/pagesStock/static/icon/optional.png";
const _imports_4$2 = "/pagesStock/static/icon/share.png";
const _imports_1$6 = "/pagesStock/static/icon/all-icon-4.png";
const _imports_5$2 = "/pagesStock/static/icon/all-icon-5.png";
const _imports_4$3 = "/pagesStock/static/icon/share.png";
const _imports_4$2 = "/pagesStock/static/icon/all-icon-4.png";
const _imports_0$7 = "/pagesStock/static/icon/cwfx-1.png";
const _imports_3$1 = "/pagesStock/static/icon/all-icon.png";
const _imports_5$1 = "/pagesStock/static/icon/all-down.png";
@@ -130,25 +130,24 @@ exports._imports_0$6 = _imports_0$4;
exports._imports_0$7 = _imports_0$3;
exports._imports_0$8 = _imports_0$2;
exports._imports_0$9 = _imports_0$1;
exports._imports_1 = _imports_1$i;
exports._imports_1$1 = _imports_1$h;
exports._imports_1$10 = _imports_1$8;
exports._imports_1$11 = _imports_1$7;
exports._imports_1$12 = _imports_1$6;
exports._imports_1$13 = _imports_1$5;
exports._imports_1$14 = _imports_1$4;
exports._imports_1$15 = _imports_1$3;
exports._imports_1$16 = _imports_1$2;
exports._imports_1$17 = _imports_1$1;
exports._imports_1$18 = _imports_1;
exports._imports_1$2 = _imports_1$f;
exports._imports_1$3 = _imports_1$g;
exports._imports_1$4 = _imports_1$e;
exports._imports_1$5 = _imports_1$d;
exports._imports_1$6 = _imports_1$c;
exports._imports_1$7 = _imports_1$b;
exports._imports_1$8 = _imports_1$a;
exports._imports_1$9 = _imports_1$9;
exports._imports_1 = _imports_1$h;
exports._imports_1$1 = _imports_1$g;
exports._imports_1$10 = _imports_1$7;
exports._imports_1$11 = _imports_1$6;
exports._imports_1$12 = _imports_1$5;
exports._imports_1$13 = _imports_1$4;
exports._imports_1$14 = _imports_1$3;
exports._imports_1$15 = _imports_1$2;
exports._imports_1$16 = _imports_1$1;
exports._imports_1$17 = _imports_1;
exports._imports_1$2 = _imports_1$e;
exports._imports_1$3 = _imports_1$f;
exports._imports_1$4 = _imports_1$d;
exports._imports_1$5 = _imports_1$c;
exports._imports_1$6 = _imports_1$b;
exports._imports_1$7 = _imports_1$a;
exports._imports_1$8 = _imports_1$9;
exports._imports_1$9 = _imports_1$8;
exports._imports_10 = _imports_10$2;
exports._imports_10$1 = _imports_10$1;
exports._imports_10$2 = _imports_10;
@@ -201,20 +200,21 @@ exports._imports_3$6 = _imports_3$7;
exports._imports_3$7 = _imports_3$6;
exports._imports_3$8 = _imports_3$5;
exports._imports_3$9 = _imports_3$4;
exports._imports_4 = _imports_4$c;
exports._imports_4$1 = _imports_4$d;
exports._imports_4$10 = _imports_4$3;
exports._imports_4$11 = _imports_4$2;
exports._imports_4$12 = _imports_4$1;
exports._imports_4$13 = _imports_4;
exports._imports_4$2 = _imports_4$b;
exports._imports_4$3 = _imports_4$a;
exports._imports_4$4 = _imports_4$9;
exports._imports_4$5 = _imports_4$8;
exports._imports_4$6 = _imports_4$7;
exports._imports_4$7 = _imports_4$6;
exports._imports_4$8 = _imports_4$5;
exports._imports_4$9 = _imports_4$4;
exports._imports_4 = _imports_4$d;
exports._imports_4$1 = _imports_4$e;
exports._imports_4$10 = _imports_4$4;
exports._imports_4$11 = _imports_4$3;
exports._imports_4$12 = _imports_4$2;
exports._imports_4$13 = _imports_4$1;
exports._imports_4$14 = _imports_4;
exports._imports_4$2 = _imports_4$c;
exports._imports_4$3 = _imports_4$b;
exports._imports_4$4 = _imports_4$a;
exports._imports_4$5 = _imports_4$9;
exports._imports_4$6 = _imports_4$8;
exports._imports_4$7 = _imports_4$7;
exports._imports_4$8 = _imports_4$6;
exports._imports_4$9 = _imports_4$5;
exports._imports_5 = _imports_5$8;
exports._imports_5$1 = _imports_5$7;
exports._imports_5$2 = _imports_5$6;

View File

@@ -7051,9 +7051,9 @@ function isConsoleWritable() {
return isWritable;
}
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 id = "mp-weixin_pBWwaQ";
const id = "mp-weixin_am9vFk";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();

View File

@@ -449,7 +449,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_assets._imports_0$1,
b: common_vendor.o(($event) => $options.clickPreMonth()),
c: common_assets._imports_1$18,
c: common_assets._imports_1$17,
d: common_vendor.t($data.selectDateStr),
e: common_assets._imports_2$3,
f: common_vendor.o(($event) => $options.clickNextMonth()),

View File

@@ -102,7 +102,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
} : {}, {
c: !$props.hideBack && !$props.backBlack
}, !$props.hideBack && !$props.backBlack ? {
d: common_assets._imports_1$17
d: common_assets._imports_1$16
} : {}, {
e: !$props.hideBack && $props.backBlack
}, !$props.hideBack && $props.backBlack ? {

View File

@@ -23,6 +23,12 @@ Component({
"iconPath": "/static/icon/tabbar/home.png",
"selectedIconPath": "/static/icon/tabbar/home_s.png"
},
// {
// "pagePath": "/pages/invest/invest",
// "text": "投资日历",
// "iconPath": "/static/icon/tabbar/invest.png",
// "selectedIconPath": "/static/icon/tabbar/invest_s.png"
// },
{
"pagePath": "/pages/concept/concept",
"text": "概念中心",
@@ -64,7 +70,7 @@ Component({
const index = data.index
if(index==3)
{
//如果是购物车和我的,需要登录
//如果是个人中心,需要登录
let token = wx.getStorageSync('token')
if (!token) {
wx.navigateTo({

View File

@@ -480,6 +480,9 @@ const _sfc_main = {
*/
clickUpgradeAtOnce() {
this.clickLater();
common_vendor.index.navigateTo({
url: "/pagesMine/vipMeal/vipMeal"
});
},
/**
* 点击查看相关概念

View File

@@ -255,9 +255,6 @@ const _sfc_main = {
* @param {Object} code
*/
clickStockName(code) {
common_vendor.index.navigateTo({
url: "/pagesStock/stockCenterDetails/stockCenterDetails?code=" + code
});
},
/**
* 获取概念相关个股数据

View File

@@ -202,12 +202,6 @@ const _sfc_main = {
* @param {Object} code
*/
clickStockName(code) {
if (code.indexOf(".") > -1) {
code = code.split(".")[0];
}
common_vendor.index.navigateTo({
url: "/pagesStock/stockCenterDetails/stockCenterDetails?code=" + code
});
},
/**
* 点击查看股票详情
@@ -243,6 +237,9 @@ const _sfc_main = {
*/
clickUpgradeAtOnce() {
this.clickLater();
common_vendor.index.navigateTo({
url: "/pagesMine/vipMeal/vipMeal"
});
},
/**
* 点击查看更多个股

View File

@@ -191,6 +191,11 @@ const _sfc_main = {
let categoryData = [];
let valueData = [];
let open = data[0].open;
if (data.length > 0) {
if (data[0].time != "09:30") {
data.splice(0, 1);
}
}
for (let item of data) {
categoryData.push(item.time);
let rate = utils_util.accMul(utils_util.accDiv(utils_util.accSub(item.close, open), open).toFixed(4), 100);

View File

@@ -182,7 +182,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
t: $data.memberInfo && $data.memberInfo.is_member
}, $data.memberInfo && $data.memberInfo.is_member ? {
v: common_vendor.t($data.memberInfo.subscription_type),
w: common_vendor.t($data.memberInfo.member_expire_date)
w: common_vendor.t($data.memberInfo.days_left)
} : {}, {
x: common_vendor.o(($event) => $options.clickVip()),
y: common_vendor.f($data.menuList, (item, index, i0) => {

View File

@@ -1 +1 @@
<view><image class="topBg absolute" src="{{a}}" mode="widthFix"></image><view class="navTitle fixed" style="{{b}}">个人中心</view><view wx:if="{{c}}" class="personalInfoC relative flex" style="{{j}}" bindtap="{{k}}"><image class="avatar" src="{{d}}" mode="aspectFill"></image><view class="flex1"><view class="nickname">{{e}}</view><view class="mobile">手机号:{{f}}</view><view wx:if="{{g}}" class="mobile">{{h}}会员</view></view><image class="arrow" src="{{i}}" mode="widthFix"></image></view><view wx:if="{{l}}" class="numList relative flex"><view class="item flex1 flexColumnCenter" bindtap="{{n}}"><view class="num">{{m}}</view><view class="title">评论回复</view></view><view class="item flex1 flexColumnCenter" bindtap="{{p}}"><view class="num">{{o}}</view><view class="title">关注收藏</view></view><view class="item flex1 flexColumnCenter" bindtap="{{r}}"><view class="num">{{q}}</view><view class="title">我的点赞</view></view></view><view class="vipC relative" bindtap="{{x}}"><image class="icon" src="{{s}}" mode="widthFix"></image><view wx:if="{{t}}" class="absolute tips">{{v}}会员,有效期至{{w}}</view><view wx:else class="absolute tips">成为会员,可以获取更多价值资讯</view></view><view class="menuList relative"><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item relative flex" bindtap="{{item.d}}"><image class="icon" src="{{item.a}}" mode="aspectFit"></image><view class="title flex1">{{item.b}}</view><image class="arrow" src="{{z}}" mode="widthFix"></image></view></view></view><uni-popup wx:if="{{C}}" class="r" u-s="{{['d']}}" u-r="popup" u-i="dd5840e4-0" bind:__l="__l" u-p="{{C}}"><view class="popup"><image class="icon" src="{{A}}" mode="widthFix" show-menu-by-longpress></image><view class="title">企业二维码</view></view></uni-popup></view>
<view><image class="topBg absolute" src="{{a}}" mode="widthFix"></image><view class="navTitle fixed" style="{{b}}">个人中心</view><view wx:if="{{c}}" class="personalInfoC relative flex" style="{{j}}" bindtap="{{k}}"><image class="avatar" src="{{d}}" mode="aspectFill"></image><view class="flex1"><view class="nickname">{{e}}</view><view class="mobile">手机号:{{f}}</view><view wx:if="{{g}}" class="mobile">{{h}}会员</view></view><image class="arrow" src="{{i}}" mode="widthFix"></image></view><view wx:if="{{l}}" class="numList relative flex"><view class="item flex1 flexColumnCenter" bindtap="{{n}}"><view class="num">{{m}}</view><view class="title">评论回复</view></view><view class="item flex1 flexColumnCenter" bindtap="{{p}}"><view class="num">{{o}}</view><view class="title">关注收藏</view></view><view class="item flex1 flexColumnCenter" bindtap="{{r}}"><view class="num">{{q}}</view><view class="title">我的点赞</view></view></view><view class="vipC relative" bindtap="{{x}}"><image class="icon" src="{{s}}" mode="widthFix"></image><view wx:if="{{t}}" class="absolute tips">{{v}}会员,{{w}}天后到期</view><view wx:else class="absolute tips">成为会员,可以获取更多价值资讯</view></view><view class="menuList relative"><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item relative flex" bindtap="{{item.d}}"><image class="icon" src="{{item.a}}" mode="aspectFit"></image><view class="title flex1">{{item.b}}</view><image class="arrow" src="{{z}}" mode="widthFix"></image></view></view></view><uni-popup wx:if="{{C}}" class="r" u-s="{{['d']}}" u-r="popup" u-i="dd5840e4-0" bind:__l="__l" u-p="{{C}}"><view class="popup"><image class="icon" src="{{A}}" mode="widthFix" show-menu-by-longpress></image><view class="title">企业二维码</view></view></uni-popup></view>

View File

@@ -166,6 +166,83 @@ const _sfc_main = {
// '板块分布',
// '热门概念词云'
// ],
highPositionStats: {
total_count: 0,
// 高位股数量
avg_continuous_days: 0,
// 平均连板数
max_continuous_days: 0
// 最高连板数
},
riskAssessment: {
// 风险评估结果
level: "正常",
color: "#22c55e"
},
highPositionStockList: [],
// 新增:存储筛选后的高位股列表
// 风险阈值常量(对应参考代码)
RISK_THRESHOLDS: {
CRITICAL: 7,
HIGH: 5,
MEDIUM: 3,
LOW: 2
},
// 风险颜色常量
RISK_COLORS: {
critical: {
color: "#ef4444",
bg: "rgba(239, 68, 68, 0.2)",
border: "rgba(239, 68, 68, 0.4)"
},
high: {
color: "#f97316",
bg: "rgba(249, 115, 22, 0.2)",
border: "rgba(249, 115, 22, 0.4)"
},
medium: {
color: "#eab308",
bg: "rgba(234, 179, 8, 0.2)",
border: "rgba(234, 179, 8, 0.4)"
},
low: {
color: "#22c55e",
bg: "rgba(34, 197, 94, 0.2)",
border: "rgba(34, 197, 94, 0.4)"
}
},
heatIconMap: {
high: {
icon4: "/pagesStock/static/icon/all-icon-4.png",
icon4Color: "#EF4444",
// 高热度图标颜色
icon5: "/pagesStock/static/icon/all-icon-5.png"
// 高热度右侧图标
},
medium: {
icon4: "/pagesStock/static/icon/all-icon-9.png",
icon4Color: "#F97316",
// 中热度图标颜色
icon5: "/pagesStock/static/icon/all-icon-6.png"
// 中热度右侧图标
},
low: {
icon4: "",
// 低热度不显示icon4
icon4Color: "#F3B800",
icon5: "/pagesStock/static/icon/all-icon-7.png"
// 低热度右侧图标
},
none: {
icon4: "",
// 冷门
icon4Color: "#01AB5D",
icon5: "/pagesStock/static/icon/all-icon-8.png"
// 无热度右侧图标
}
},
originData: null,
// 原始接口数据
bkTypes: [
"板块分布",
"热门概念词云"
@@ -245,6 +322,131 @@ const _sfc_main = {
onReady() {
},
methods: {
getStockHeatType(stock) {
const days = stock.continuous_days_num || 0;
if (days >= this.RISK_THRESHOLDS.CRITICAL) {
return "high";
} else if (days >= this.RISK_THRESHOLDS.HIGH) {
return "medium";
} else if (days >= this.RISK_THRESHOLDS.MEDIUM) {
return "low";
} else {
return "none";
}
},
//解析连板数(从"2天2板"格式中提取数字)
parseContinuousDays(continuousDaysStr) {
if (!continuousDaysStr)
return 0;
const match = continuousDaysStr.match(/(\d+)天/);
return match ? Number(match[1]) : 0;
},
// 风险等级判断函数
getRiskLevel(days) {
const {
RISK_THRESHOLDS,
RISK_COLORS
} = this;
if (days >= RISK_THRESHOLDS.CRITICAL) {
return {
level: "极高",
color: RISK_COLORS.critical.color,
bg: RISK_COLORS.critical.bg,
border: RISK_COLORS.critical.border,
status: "缩量一字,高风险"
};
}
if (days >= RISK_THRESHOLDS.HIGH) {
return {
level: "高",
color: RISK_COLORS.high.color,
bg: RISK_COLORS.high.bg,
border: RISK_COLORS.high.border,
status: "放量分歧,需观察"
};
}
if (days >= RISK_THRESHOLDS.MEDIUM) {
return {
level: "中",
color: RISK_COLORS.medium.color,
bg: RISK_COLORS.medium.bg,
border: RISK_COLORS.medium.border,
status: "正常波动"
};
}
return {
level: "低",
color: RISK_COLORS.low.color,
bg: RISK_COLORS.low.bg,
border: RISK_COLORS.low.border,
status: "健康"
};
},
// 计算高位股统计数据
calculateHighPositionStats() {
if (!this.originData || !this.originData.stocks)
return;
const highPositionStocks = this.originData.stocks.filter((stock) => {
const days = this.parseContinuousDays(stock.continuous_days);
return days >= 2;
}).map((stock) => {
const days = this.parseContinuousDays(stock.continuous_days);
const riskInfo = this.getRiskLevel(days);
return {
...stock,
continuous_days_num: days,
// 提取纯数字的连板数
risk_info: riskInfo
// 风险等级信息
};
}).sort((a, b) => b.continuous_days_num - a.continuous_days_num);
this.highPositionStockList = highPositionStocks;
const totalCount = highPositionStocks.length;
const maxDays = highPositionStocks.length ? Math.max(...highPositionStocks.map((s) => this.parseContinuousDays(s.continuous_days))) : 0;
const totalDays = highPositionStocks.reduce((sum, stock) => {
return sum + this.parseContinuousDays(stock.continuous_days);
}, 0);
const avgDays = totalCount > 0 ? (totalDays / totalCount).toFixed(1) : 0;
this.highPositionStats = {
total_count: totalCount,
avg_continuous_days: avgDays,
max_continuous_days: maxDays
};
this.calculateRiskAssessment();
},
// 计算风险评估
calculateRiskAssessment() {
const {
avg_continuous_days,
max_continuous_days,
total_count
} = this.highPositionStats;
const avgDays = Number(avg_continuous_days) || 0;
const maxDays = Number(max_continuous_days) || 0;
const totalCount = Number(total_count) || 0;
const score = avgDays * 2 + maxDays * 0.5 + totalCount * 0.3;
if (score >= 20) {
this.riskAssessment = {
level: "高风险",
color: "#ef4444"
};
} else if (score >= 12) {
this.riskAssessment = {
level: "中风险",
color: "#f97316"
};
} else if (score >= 6) {
this.riskAssessment = {
level: "偏高",
color: "#eab308"
};
} else {
this.riskAssessment = {
level: "正常",
color: "#22c55e"
};
}
},
getHeatColor(value, max) {
if (max === 0)
return "#01AB5D";
@@ -274,7 +476,7 @@ const _sfc_main = {
const currentDay = String(now.getDate()).padStart(2, "0");
const dateStr = `${currentYear}-${currentMonth}-${currentDay}`;
if (!/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) {
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:505", "日期格式错误,请传入 YYYY-MM-DD 格式的日期");
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:749", "日期格式错误,请传入 YYYY-MM-DD 格式的日期");
return "";
}
const [year, month, day] = dateStr.split("-").map(Number);
@@ -294,7 +496,7 @@ const _sfc_main = {
const formattedDate = this.selectedFullDate;
const baseURL = request_http.getBaseURL1();
const requestUrl = `${baseURL}/data/zt/daily/${formattedDate}.json?t=${timestamp}`;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:538", "请求URL", requestUrl);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:782", "请求URL", requestUrl);
const res = await common_vendor.index.request({
url: requestUrl,
method: "GET"
@@ -325,6 +527,7 @@ const _sfc_main = {
}
this.bkList = bkList.slice(0, 16);
this.initPieChart();
this.calculateHighPositionStats();
} else {
common_vendor.index.showToast({
title: "数据请求失败",
@@ -332,7 +535,7 @@ const _sfc_main = {
});
}
} catch (error) {
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:585", "请求异常:", error);
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:832", "请求异常:", error);
common_vendor.index.showToast({
title: "网络异常",
icon: "none"
@@ -382,18 +585,18 @@ const _sfc_main = {
];
if (this.$refs.chartRef) {
const Piechart = await this.$refs.chartRef.init(echarts);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:646", "Piechart实例创建成功", Piechart);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:893", "Piechart实例创建成功", Piechart);
Piechart.setOption(this.pieOption);
}
} catch (error) {
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:650", "饼图初始化失败:", error);
common_vendor.index.__f__("error", "at pages/ztfx/ztfx.vue:897", "饼图初始化失败:", error);
}
},
// 初始化词云
initWordCloud() {
if (this.originData.word_freq_data && Array.isArray(this.originData.word_freq_data)) {
this.wordData = this.originData.word_freq_data;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:659", "词云数据赋值完成", this.wordData);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:906", "词云数据赋值完成", this.wordData);
} else {
this.wordData = [{
name: "脑机",
@@ -406,7 +609,7 @@ const _sfc_main = {
},
handleDateChange(data) {
var _a, _b, _c, _d;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:677", "从日历组件接收的参数:", {
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:924", "从日历组件接收的参数:", {
currentZtCount: (_a = data.item) == null ? void 0 : _a.zt_count,
prevZtCount: (_b = data.prevItem) == null ? void 0 : _b.zt_count
});
@@ -444,7 +647,7 @@ const _sfc_main = {
const prevDay = String(selectedDate.getDate()).padStart(2, "0");
const prevDateFormatted = `${prevYear}${prevMonth}${prevDay}`;
this.selectedFullDate = prevDateFormatted;
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:735", `选中日期为当天(${todayFormatted}),已自动调整为前一天:`, prevDateFormatted);
common_vendor.index.__f__("log", "at pages/ztfx/ztfx.vue:982", `选中日期为当天(${todayFormatted}),已自动调整为前一天:`, prevDateFormatted);
}
}
this.fetchData();
@@ -533,7 +736,31 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
width: 330,
height: 330
}),
p: common_vendor.s("top:" + $data.contentTop + "px;")
p: common_assets._imports_3$8,
q: common_vendor.t($data.highPositionStats.total_count),
r: common_vendor.t($data.highPositionStats.avg_continuous_days),
s: common_vendor.t($data.highPositionStats.max_continuous_days),
t: common_vendor.t($data.riskAssessment.level),
v: $data.riskAssessment.color,
w: common_vendor.f($data.highPositionStockList, (stock, index, i0) => {
return common_vendor.e({
a: common_vendor.t(stock.sname),
b: common_vendor.t(stock.risk_info.status),
c: ["high", "medium"].includes($options.getStockHeatType(stock))
}, ["high", "medium"].includes($options.getStockHeatType(stock)) ? {
d: $data.heatIconMap[$options.getStockHeatType(stock)].icon4Color,
e: $data.heatIconMap[$options.getStockHeatType(stock)].icon4
} : {}, {
f: common_vendor.t(stock.continuous_days_num),
g: stock.risk_info.bg,
h: `1rpx solid ${stock.risk_info.border}`,
i: stock.risk_info.color,
j: $data.heatIconMap[$options.getStockHeatType(stock)].icon5,
k: index
});
}),
x: common_assets._imports_5$4,
y: common_vendor.s("top:" + $data.contentTop + "px;")
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

File diff suppressed because one or more lines are too long

View File

@@ -121,7 +121,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
g: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
h: common_vendor.t($data.memberInfo.subscription_type),
i: common_vendor.t($data.memberInfo.member_expire_date)
i: common_vendor.t($data.memberInfo.days_left)
} : {}, {
j: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
@@ -131,7 +131,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
m: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
n: common_assets._imports_5$4
n: common_assets._imports_5$5
} : {
o: common_assets._imports_6$2
}, {
@@ -178,7 +178,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
L: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
M: common_assets._imports_5$4
M: common_assets._imports_5$5
} : {
N: common_assets._imports_6$2
}, {
@@ -191,7 +191,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
S: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
T: common_assets._imports_5$4
T: common_assets._imports_5$5
} : {}, {
U: common_assets._imports_6$2,
V: common_assets._imports_17,
@@ -203,7 +203,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
Z: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
aa: common_assets._imports_5$4
aa: common_assets._imports_5$5
} : {
ab: common_assets._imports_6$2
}, {

File diff suppressed because one or more lines are too long

View File

@@ -89,7 +89,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
g: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
h: common_vendor.t($data.memberInfo.subscription_type),
i: common_vendor.t($data.memberInfo.member_expire_date)
i: common_vendor.t($data.memberInfo.days_left)
} : {}, {
j: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
@@ -99,7 +99,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, {
m: $data.memberInfo.is_member
}, $data.memberInfo.is_member ? {
n: common_assets._imports_5$4
n: common_assets._imports_5$5
} : {
o: common_assets._imports_6$2
}, {
@@ -121,7 +121,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}) : {}, {
t: $data.memberInfo
}, $data.memberInfo ? {
v: common_vendor.t($data.memberInfo.is_member ? "您已是年度VIP" : "立即加入年度VIP"),
v: common_vendor.t($data.memberInfo.is_member ? "您已是" + $data.memberInfo.subscription_type + "会员" : "立即加入年度会员"),
w: common_vendor.o(($event) => $options.clickJoinVip())
} : {});
}

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="2f528ea3-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="vipC" style="{{s}}"><view class="vipInfoC relative"><image wx:if="{{d}}" class="bg" src="{{e}}" mode="widthFix"></image><image wx:else class="bg" src="{{f}}" mode="widthFix"></image><view wx:if="{{g}}" class="infoC vip absolute"><view class="title">尊贵的{{h}}VIP会员</view><view class="tips">会员有效期至:{{i}}</view></view><view wx:else class="infoC absolute"><view class="title">价值前沿</view><view class="tips">您还不是会员 加入尊享N项服务</view></view></view><view class="privilegeCompareC relative"><view class="titleC flexCenter"><image wx:if="{{j}}" class="icon" src="{{k}}" mode="widthFix"></image><image wx:else class="icon" src="{{l}}" mode="widthFix"></image><view class="title">特权对比</view><image wx:if="{{m}}" class="icon" src="{{n}}" mode="widthFix"></image><image wx:else class="icon" src="{{o}}" mode="widthFix"></image></view><view class="{{r}}"><view class="header flex"><view class="privilege item">专属特权</view><view class="item free">pro会员</view><view class="item vip">max会员</view></view><view class="list"><view wx:for="{{p}}" wx:for-item="item" wx:key="e" class="item flex"><view class="optionItem privilege flex">{{item.a}}</view><view class="optionItem free flexCenter"><block wx:if="{{item.b}}"><image class="notContain" src="{{item.c}}" mode="widthFix"></image></block><block wx:else><image class="contain" src="{{item.d}}" mode="widthFix"></image></block></view><view class="optionItem vip flexCenter"><image class="contain" src="{{q}}" mode="widthFix"></image></view></view></view></view></view></view><view wx:if="{{t}}" class="joinVipC fixed" bindtap="{{w}}">{{v}}</view></view>
<view><nav-bar wx:if="{{a}}" u-i="2f528ea3-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="vipC" style="{{s}}"><view class="vipInfoC relative"><image wx:if="{{d}}" class="bg" src="{{e}}" mode="widthFix"></image><image wx:else class="bg" src="{{f}}" mode="widthFix"></image><view wx:if="{{g}}" class="infoC vip absolute"><view class="title">尊贵的{{h}}会员</view><view class="tips">{{i}}天后到期</view></view><view wx:else class="infoC absolute"><view class="title">价值前沿</view><view class="tips">您还不是会员 加入尊享N项服务</view></view></view><view class="privilegeCompareC relative"><view class="titleC flexCenter"><image wx:if="{{j}}" class="icon" src="{{k}}" mode="widthFix"></image><image wx:else class="icon" src="{{l}}" mode="widthFix"></image><view class="title">特权对比</view><image wx:if="{{m}}" class="icon" src="{{n}}" mode="widthFix"></image><image wx:else class="icon" src="{{o}}" mode="widthFix"></image></view><view class="{{r}}"><view class="header flex"><view class="privilege item">专属特权</view><view class="item free">pro会员</view><view class="item vip">max会员</view></view><view class="list"><view wx:for="{{p}}" wx:for-item="item" wx:key="e" class="item flex"><view class="optionItem privilege flex">{{item.a}}</view><view class="optionItem free flexCenter"><block wx:if="{{item.b}}"><image class="notContain" src="{{item.c}}" mode="widthFix"></image></block><block wx:else><image class="contain" src="{{item.d}}" mode="widthFix"></image></block></view><view class="optionItem vip flexCenter"><image class="contain" src="{{q}}" mode="widthFix"></image></view></view></view></view></view></view><view wx:if="{{t}}" class="joinVipC fixed" bindtap="{{w}}">{{v}}</view></view>

View File

@@ -380,7 +380,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
d: common_assets._imports_3$12,
e: common_assets._imports_5$7,
f: common_vendor.sr("chartRef1", "351c0d57-0"),
g: common_assets._imports_4$12,
g: common_assets._imports_4$13,
h: common_assets._imports_2$3,
i: common_vendor.f($data.perShareIndicatorList, (item, index, i0) => {
return {

View File

@@ -19,6 +19,8 @@ const _sfc_main = {
option1: {
legend: {
show: true,
itemWidth: 10,
itemHeight: 10,
data: ["货币资金", "同比(右)"]
},
grid: {
@@ -27,13 +29,28 @@ const _sfc_main = {
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
fontSize: 10
xAxis: [
{
type: "category",
data: [],
axisLabel: {
fontSize: 10
}
},
{
type: "category",
data: [],
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
}
},
],
yAxis: [
{
type: "value",
@@ -86,13 +103,28 @@ const _sfc_main = {
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
fontSize: 10
xAxis: [
{
type: "category",
data: [],
axisLabel: {
fontSize: 10
}
},
{
type: "category",
data: [],
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
}
},
],
yAxis: [
{
type: "value",
@@ -142,14 +174,28 @@ const _sfc_main = {
top: "5%",
bottom: "30%"
},
xAxis: {
type: "category",
data: [],
axisLabel: {
rotate: 45,
fontSize: 10
xAxis: [
{
type: "category",
data: [],
axisLabel: {
fontSize: 10
}
},
{
type: "category",
data: [],
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false
}
}
},
],
yAxis: [
{
type: "value",
@@ -301,7 +347,7 @@ const _sfc_main = {
for (let item of showDataList) {
for (let item1 of category) {
let index = showDataList.indexOf(item);
let lastItem = showDataList[index + 1];
let lastItem = this.financialBalanceList[index + 1];
if (item1 + "年一季报" == item.report_type) {
if (item.assets.current_assets.cash) {
data1.unshift(utils_util.accDiv(item.assets.current_assets.cash, 1e8).toFixed(2));
@@ -328,32 +374,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option1.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
this.option1.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -442,7 +519,8 @@ const _sfc_main = {
sumData.push(sum);
}
this.option1.legend.data = ["货币基金", "同比(右)"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -570,32 +648,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option1.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
this.option1.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -684,7 +793,8 @@ const _sfc_main = {
sumData.push(sum);
}
this.option1.legend.data = ["所有者权益", "同比(右)"];
this.option1.xAxis.data = category;
this.option1.xAxis[0].data = category;
this.option1.xAxis[1].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -718,7 +828,7 @@ const _sfc_main = {
this.option1.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -762,7 +872,7 @@ const _sfc_main = {
/**
* 计算经营性现金流增长率
*/
caculateOperatingFlowGrowthRate() {
caculateOperatingCashFlowGrowthRate() {
let flow1 = this.cashFlowList[0].operating_activities.net_flow;
let flow2 = this.cashFlowList[4].operating_activities.net_flow;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
@@ -770,7 +880,7 @@ const _sfc_main = {
/**
* 计算合计现金流增长率
*/
caculateNetIncreaseRatio() {
caculateTotalCashFlowGrowthRate() {
let flow1 = this.cashFlowList[0].cash_changes.net_increase;
let flow2 = this.cashFlowList[4].cash_changes.net_increase;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
@@ -880,32 +990,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
this.option2.xAxis[1].data = category;
this.option2.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -994,7 +1135,7 @@ const _sfc_main = {
sumData.push(sum);
}
this.option2.legend.data = ["经营现金流", "同比(右)"];
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1122,32 +1263,63 @@ const _sfc_main = {
}
}
}
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
this.option2.xAxis[1].data = category;
this.option2.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -1235,7 +1407,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1363,31 +1535,63 @@ const _sfc_main = {
}
}
}
this.option2.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option2.xAxis[0].data = category;
this.option2.xAxis[1].data = category;
this.option2.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -1475,7 +1679,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option2.xAxis.data = category;
this.option2.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1509,7 +1713,7 @@ const _sfc_main = {
this.option2.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -1653,7 +1857,20 @@ const _sfc_main = {
}
}
}
this.option3.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option3.xAxis[0].data = category;
this.option3.xAxis[1].data = category;
this.option3.series = [
{
type: "bar",
@@ -1678,6 +1895,21 @@ const _sfc_main = {
name: "第四季度",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -1765,7 +1997,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option3.xAxis.data = category;
this.option3.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -1893,31 +2125,63 @@ const _sfc_main = {
}
}
}
this.option3.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option3.xAxis[0].data = category;
this.option3.xAxis[1].data = category;
this.option3.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -2005,7 +2269,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option3.xAxis.data = category;
this.option3.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -2039,7 +2303,7 @@ const _sfc_main = {
this.option3.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -2138,31 +2402,63 @@ const _sfc_main = {
}
}
}
this.option3.xAxis.data = category;
let sumData = [];
for (var i = 0; i < data1.length; i++) {
let sum = data1[i];
sum = utils_util.accAdd(sum, data2[i] ? data2[i] : 0);
sum = utils_util.accAdd(sum, data3[i] ? data3[i] : 0);
sum = utils_util.accAdd(sum, data4[i] ? data4[i] : 0).toFixed(2);
if (sum > 1e4) {
sumData.push((sum / 1e4).toFixed(2) + "万");
} else
sumData.push(sum);
}
this.option2.legend.data = ["第一季度", "第二季度", "第三季度", "第四季度"];
this.option3.xAxis[0].data = category;
this.option3.xAxis[1].data = category;
this.option3.series = [
{
type: "bar",
name: "第一季度",
barWidth: "15%",
data: data1,
yAxisIndex: 0
},
{
type: "bar",
name: "第二季度",
barWidth: "15%",
data: data2,
yAxisIndex: 0
},
{
type: "bar",
name: "第三季度",
barWidth: "15%",
data: data3,
yAxisIndex: 0
},
{
type: "bar",
name: "第四季度",
barWidth: "15%",
data: data4,
yAxisIndex: 0
},
{
type: "bar",
name: "总值",
data: sumData,
barWidth: "70%",
xAxisIndex: 1,
yAxisIndex: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)"
},
label: {
show: true,
position: "top"
}
}
];
},
@@ -2254,7 +2550,7 @@ const _sfc_main = {
} else
sumData.push(sum);
}
this.option3.xAxis.data = category;
this.option3.xAxis[0].data = category;
let ratioList = [];
for (let item of showDataList) {
let index = showDataList.indexOf(item);
@@ -2290,7 +2586,7 @@ const _sfc_main = {
this.option3.series = [
{
type: "bar",
name: "Q1",
name: "第一季度",
data: data1,
stack: "quarter",
yAxisIndex: 0,
@@ -2335,17 +2631,25 @@ const _sfc_main = {
* 计算净利润增长率
*/
caculateNetProfitGrowthRate() {
let flow1 = this.incomeStatementList[0].operating_activities.net_flow;
let flow2 = this.incomeStatementList[4].operating_activities.net_flow;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
let flow1 = this.incomeStatementList[0].profit.net_profit;
let flow2 = this.incomeStatementList[4].profit.net_profit;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), Math.abs(flow2)), 100).toFixed(2);
},
/**
* 计算营业总收入增长率
*/
caculateRevenueGrowthRate() {
let flow1 = this.incomeStatementList[0].cash_changes.net_increase;
let flow2 = this.incomeStatementList[4].cash_changes.net_increase;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), flow2), 100).toFixed(2);
let flow1 = this.incomeStatementList[0].revenue.total_operating_revenue;
let flow2 = this.incomeStatementList[4].revenue.total_operating_revenue;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), Math.abs(flow2)), 100).toFixed(2);
},
/**
* 计算营业利润增长率
*/
caculateRevenueProfitGrowthRate() {
let flow1 = this.incomeStatementList[0].profit.operating_profit;
let flow2 = this.incomeStatementList[4].profit.operating_profit;
return utils_util.accMul(utils_util.accDiv(utils_util.accSub(flow1, flow2), Math.abs(flow2)), 100).toFixed(2);
}
}
};
@@ -2426,11 +2730,11 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
L: $props.cashFlowList.length > 0
}, $props.cashFlowList.length > 0 ? {
M: common_vendor.t($data.getNumStr($props.cashFlowList[0].operating_activities.net_flow)),
N: common_vendor.t(_ctx.caculateOperatingFlowRatio()),
N: common_vendor.t($options.caculateOperatingCashFlowGrowthRate()),
O: common_vendor.t($data.getNumStr($props.cashFlowList[0].investment_activities.net_flow)),
P: common_vendor.t($data.getNumStr($props.cashFlowList[0].financing_activities.net_flow)),
Q: common_vendor.t($data.getNumStr($props.cashFlowList[0].cash_changes.net_increase)),
R: common_vendor.t($options.caculateNetIncreaseRatio())
R: common_vendor.t($options.caculateTotalCashFlowGrowthRate())
} : {}, {
S: common_assets._imports_0$3,
T: common_assets._imports_2$3,
@@ -2461,9 +2765,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
af: common_vendor.sr("chartRef3", "619fafcd-2"),
ag: $props.incomeStatementList.length > 0
}, $props.incomeStatementList.length > 0 ? {
ah: common_vendor.t($data.getNumStr($props.incomeStatementList[0].comprehensive_income.total_comprehensive_income)),
ai: common_vendor.t($data.getNumStr($props.incomeStatementList[0].revenue.total_operating_revenue)),
aj: common_vendor.t($data.getNumStr($props.incomeStatementList[0].profit.operating_profit))
ah: common_vendor.t($data.getNumStr($props.incomeStatementList[0].profit.net_profit)),
ai: common_vendor.t($options.caculateNetProfitGrowthRate()),
aj: common_vendor.t($data.getNumStr($props.incomeStatementList[0].revenue.total_operating_revenue)),
ak: common_vendor.t($options.caculateRevenueGrowthRate()),
al: common_vendor.t($data.getNumStr($props.incomeStatementList[0].profit.operating_profit)),
am: common_vendor.t($options.caculateRevenueProfitGrowthRate())
} : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<view class="cyl_view"><view class="top flex"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 {{a}}</view></view><view class="center"><view class="{{['child', b && 'action']}}" bindtap="{{c}}"> 层级视图 </view><view class="{{['child', d && 'action']}}" bindtap="{{e}}"> 流向关系 </view></view><view wx:if="{{f}}" class="bottom"><view class="type flex"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item flex flex1"><view class="{{item.e}}" bindtap="{{item.f}}"><view class="titleNumC">{{item.a}} <text class="{{item.c}}">{{item.b}}</text></view><view class="des">{{item.d}}</view></view><image wx:if="{{item.g}}" class="arrow" src="{{item.h}}" mode="widthFix"></image></view></view><view class="list"><block wx:if="{{h}}"><view wx:for="{{i}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label upstream type">{{item.c}}</view><view class="label upstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress upstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{j}}"><view wx:for="{{k}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label core type">{{item.c}}</view><view class="label core market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress core" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{l}}"><view wx:for="{{m}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label downstream type">{{item.c}}</view><view class="label downstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">影响度</view><view class="progressBgC flex1"><view class="progress downstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block></view></view><view wx:if="{{n}}" style="height:500rpx"><l-echart class="r" u-r="chartRef" u-i="4ade4b3d-0" bind:__l="__l"></l-echart></view></view>
<view class="cyl_view"><view class="top flex"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 {{a}}</view></view><view class="center"><view class="{{['child', b && 'action']}}" bindtap="{{c}}"> 层级视图 </view><view class="{{['child', d && 'action']}}" bindtap="{{e}}"> 流向关系 </view></view><view wx:if="{{f}}" class="bottom"><view class="type flex"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item flex flex1"><view class="{{item.e}}" bindtap="{{item.f}}"><view class="titleNumC">{{item.a}} <text class="{{item.c}}">{{item.b}}</text></view><view class="des">{{item.d}}</view></view><image wx:if="{{item.g}}" class="arrow" src="{{item.h}}" mode="widthFix"></image></view></view><view class="list"><block wx:if="{{h}}"><view wx:for="{{i}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label upstream type">{{item.c}}</view><view class="label upstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress upstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{j}}"><view wx:for="{{k}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label core type">{{item.c}}</view><view class="label core market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress core" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block><block wx:if="{{l}}"><view wx:for="{{m}}" wx:for-item="item" wx:key="g" class="item" bindtap="{{item.h}}"><view class="title">{{item.a}}</view><view class="des">{{item.b}}</view><view class="labelC flex"><view class="label downstream type">{{item.c}}</view><view class="label downstream market">份额:{{item.d}}%</view></view><view class="importanceC flex"><view class="title">重要度</view><view class="progressBgC flex1"><view class="progress downstream" style="{{'width:' + item.e}}"></view></view><view class="value">{{item.f}}</view></view></view></block></view></view><view wx:if="{{n}}" style="height:500rpx"><l-echart class="r" u-r="chartRef" u-i="4ade4b3d-0" bind:__l="__l"></l-echart></view></view>

View File

@@ -37,7 +37,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, item.show ? {
d: common_assets._imports_0$6
} : {
e: common_assets._imports_1$13
e: common_assets._imports_1$12
}, {
f: item.show
}, item.show ? {
@@ -57,7 +57,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, $data.getRateUpOrDown(fitem.year_on_year) ? {
i: common_assets._imports_0$7
} : {
j: common_assets._imports_1$14
j: common_assets._imports_1$13
}, {
k: common_vendor.t(fitem.year_on_year ? fitem.year_on_year : 0),
l: common_vendor.n("chgC flex " + ($data.getRateUpOrDown(fitem.year_on_year) ? "down" : "up")),
@@ -80,7 +80,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: item.impact_metrics.is_positive == 1
}, item.impact_metrics.is_positive == 1 ? {
b: common_assets._imports_4$13
b: common_assets._imports_4$14
} : {
c: common_assets._imports_5$8
}, {

View File

@@ -42,7 +42,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, pitem.gender == "女" ? {
c: common_assets._imports_0$8
} : {
d: common_assets._imports_1$15
d: common_assets._imports_1$14
}, {
e: common_vendor.n("sexC flexCenter absolute " + (pitem.gender == "女" ? "female" : "male")),
f: common_vendor.t(pitem.name),
@@ -61,7 +61,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, pitem.gender == "女" ? {
c: common_assets._imports_0$8
} : {
d: common_assets._imports_1$15
d: common_assets._imports_1$14
}, {
e: common_vendor.n("sexC flexCenter absolute " + (pitem.gender == "女" ? "female" : "male")),
f: common_vendor.t(pitem.name),

View File

@@ -51,7 +51,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}, $data.getRateUpOrDown(item.ratio_change) ? {
e: common_assets._imports_0$7
} : {
f: common_assets._imports_1$14
f: common_assets._imports_1$13
}, {
g: common_vendor.t($data.getRateStr(item.ratio_change)),
h: common_vendor.n("shengjiang flex " + ($data.getRateUpOrDown(item.ratio_change) ? "down" : "up"))

View File

@@ -90,7 +90,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
r: common_vendor.o(($event) => $options.clickNewsItem(item), index)
});
}),
g: common_assets._imports_1$16,
g: common_assets._imports_1$15,
h: common_assets._imports_2$15,
i: common_assets._imports_3$13
} : {}, {

View File

@@ -15,7 +15,8 @@ const _sfc_main = {
},
tooltip: {
show: true,
triggerOn: "mousemove"
triggerOn: "mousemove",
confine: true
},
radar: {
indicator: [
@@ -95,7 +96,7 @@ const _sfc_main = {
methods: {
async init() {
const chart = await this.$refs.chartRef.init(echarts);
common_vendor.index.__f__("log", "at pagesStock/components/zlfx-view/zlfx-view.vue:183", chart);
common_vendor.index.__f__("log", "at pagesStock/components/zlfx-view/zlfx-view.vue:184", chart);
chart.setOption(this.option);
},
clickIndustryRank() {

View File

@@ -44,9 +44,9 @@ const _sfc_main = {
}
}
],
dataZoom: [{
type: "slider"
}],
// dataZoom:[{
// type:'slider'
// }],
series: [
{
type: "bar",
@@ -187,6 +187,22 @@ const _sfc_main = {
return { text: "一般", color: "orange" };
return { text: "较低", color: "red" };
},
/**
* 遍历数组找出对应的营收
* @param {Object} pitem
*/
getTableRevenue(item, pitem) {
let index = -1;
for (let item1 of pitem.products) {
if (item1.content == item.content) {
index = pitem.products.indexOf(item1);
}
}
if (index > -1) {
return utils_util.getNumStr(pitem.products[index].revenue);
} else
return "-";
},
itemClick(index) {
common_vendor.index.navigateTo({
url: `/pagesStock/stockCenterDetails/cwDetails?index=${index}`
@@ -225,30 +241,33 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
} : {}) : {}, {
q: common_vendor.sr("chartRef1", "d36e6b92-0"),
r: common_vendor.sr("chartRef2", "d36e6b92-1"),
s: common_vendor.f(["业务", "毛利率", "利润", "营收", "营收"], (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item),
b: ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0
}, ["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index].length > 0 ? {
c: common_vendor.t(["", "(2025年中报)", "(2025年中报)", "(2025年中报)", "(2024年年报)"][index]),
d: index == 0 ? "left" : "center"
} : {}, {
e: index,
f: index == 0 ? "left" : "center",
g: index == 0 ? "flex-start" : "center"
});
}),
t: $props.productClassificationList.length > 0
s: $props.productClassificationList.length > 0
}, $props.productClassificationList.length > 0 ? {
v: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
t: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
return {
a: common_vendor.t(item.content),
b: common_vendor.t(item.profit_margin.toFixed(2)),
c: common_vendor.t($data.getNumStr(item.profit)),
d: common_vendor.t($data.getNumStr(item.revenue)),
e: common_vendor.t(item.content),
f: index,
g: index % 2 == 0 ? "#FFFFFF" : "#FAFAFC"
b: index
};
}),
v: common_vendor.t($props.productClassificationList[0].report_type),
w: common_vendor.t($props.productClassificationList[0].report_type),
x: common_vendor.f($props.productClassificationList, (item, index, i0) => {
return {
a: common_vendor.t(item.report_type),
b: index
};
}),
y: common_vendor.f($props.productClassificationList[0].products, (item, index, i0) => {
return {
a: common_vendor.t(item.profit_margin ? item.profit_margin.toFixed(2) + "%" : "-"),
b: common_vendor.t(item.profit ? $data.getNumStr(item.profit) : "-"),
c: common_vendor.f($props.productClassificationList, (pitem, pindex, i1) => {
return {
a: common_vendor.t($options.getTableRevenue(item, pitem)),
b: pindex
};
}),
d: index
};
})
} : {});

View File

@@ -1 +1 @@
<view><block wx:if="{{a}}"><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#1DB26F;font-size:30rpx">{{b}}</view><view style="margin-top:10rpx">利润增长</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">成长能力</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">增长动力</text></view><view style="margin-top:10rpx"><text>营收增长</text><text style="color:#1DB26F;margin:0 10rpx">{{c}}%</text><text style="{{e}}">({{d}})</text></view></view></view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#F59B38;font-size:30rpx">{{f}}%</view><view style="margin-top:10rpx">ROE</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">盈利与回报</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">赚钱能力</text></view><view style="margin-top:10rpx"><text style="{{h}}">{{g}}</text><text style="margin-left:10rpx">净利率 {{i}}%|毛利率 {{j}}</text></view></view></view><view wx:if="{{k}}" class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#EC3440;font-size:30rpx">{{l}}%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">风险与运营</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">安全边际</text></view><view style="margin-top:10rpx"><text style="{{n}}">{{m}}</text><text style="margin-left:10rpx">流动比率 {{o}}|研发费用率 {{p}}%</text></view></view></view></block><view style="text-align:center;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 营收与利润趋势</view><view style="height:400rpx"><l-echart class="r" u-r="chartRef1" u-i="d36e6b92-0" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx">主营业务 </view><view style="height:400rpx"><l-echart class="r" u-r="chartRef2" u-i="d36e6b92-1" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 主营业务明细与历史对比</view><view style="display:grid;grid-template-columns:130rpx repeat(4, 1fr);color:#666666;font-size:20rpx;font-weight:500;background-color:#FAFAFC;margin:20rpx;margin-bottom:0;padding:10rpx;box-sizing:border-box"><view wx:for="{{s}}" wx:for-item="item" wx:key="e" class="flexColumnCenter" style="{{'justify-content:center' + ';' + ('text-align:' + item.f + ';' + ('align-items:' + item.g))}}"><view>{{item.a}}</view><view wx:if="{{item.b}}" style="{{'font-size:18rpx' + ';' + ('text-align:' + item.d)}}">{{item.c}}</view></view></view><block wx:if="{{t}}"><view wx:for="{{v}}" wx:for-item="item" wx:key="f" class="table" style="{{'display:grid;grid-template-columns:130rpx repeat(4, 1fr);margin:0 20rpx;padding:10rpx' + ';' + ('background-color:' + item.g)}}"><view class="item">{{item.a}}</view><view class="item flexCenter">{{item.b}}%</view><view class="item flexCenter">{{item.c}}</view><view class="item flexCenter">{{item.d}}</view><view class="item flexCenter">{{item.e}}</view></view></block><view style="height:80rpx"></view></view>
<view><block wx:if="{{a}}"><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;box-sizing:border-box;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#1DB26F;font-size:30rpx">{{b}}</view><view style="margin-top:10rpx">利润增长</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">成长能力</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">增长动力</text></view><view style="margin-top:10rpx"><text>营收增长</text><text style="color:#1DB26F;margin:0 10rpx">{{c}}%</text><text style="{{e}}">({{d}})</text></view></view></view><view class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#F59B38;font-size:30rpx">{{f}}%</view><view style="margin-top:10rpx">ROE</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">盈利与回报</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">赚钱能力</text></view><view style="margin-top:10rpx"><text style="{{h}}">{{g}}</text><text style="margin-left:10rpx">净利率 {{i}}%|毛利率 {{j}}</text></view></view></view><view wx:if="{{k}}" class="flex" style="font-size:22rpx;color:#999999;font-weight:500;margin:20rpx;padding:20rpx;border:1rpx solid #F5F5F5;border-radius:10rpx"><view style="width:195rpx"><view style="font-weight:bold;color:#EC3440;font-size:30rpx">{{l}}%</view><view style="margin-top:10rpx">资产负债率</view></view><view><view class="flex"><text style="font-weight:bold;color:#070707;font-size:26rpx;margin-right:10rpx">风险与运营</text><text style="color:#A97F53;font-size:20rpx;padding:2rpx 5rpx;background-color:#F8F4ED;border:1rpx solid #F1E7D8;border-radius:3rpx">安全边际</text></view><view style="margin-top:10rpx"><text style="{{n}}">{{m}}</text><text style="margin-left:10rpx">流动比率 {{o}}|研发费用率 {{p}}%</text></view></view></view></block><view style="text-align:center;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 营收与利润趋势</view><view style="height:400rpx"><l-echart class="r" u-r="chartRef1" u-i="d36e6b92-0" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx">主营业务 </view><view style="height:400rpx"><l-echart class="r" u-r="chartRef2" u-i="d36e6b92-1" bind:__l="__l"></l-echart></view><view style="text-align:left;font-size:26rpx;color:#2B2B2B;font-weight:bold;margin:20rpx"> 主营业务明细与历史对比</view><block wx:if="{{s}}"><view class="mainBusinessC flex"><view class="businessList"><view class="heading">业务</view><view class="list"><view wx:for="{{t}}" wx:for-item="item" wx:key="b" class="item flex">{{item.a}}</view></view></view><scroll-view scroll-x class="dataC flex1"><view class="headingList"><view class="heading"><view class="flexColumnCenter"><view>毛利率</view><view>({{v}})</view></view></view><view class="heading"><view class="flexColumnCenter"><view>利润</view><view>({{w}})</view></view></view><block wx:for="{{x}}" wx:for-item="item" wx:key="b"><view class="heading"><view class="flexColumnCenter"><view>营收</view><view>({{item.a}})</view></view></view></block></view><view class="dataList"><view wx:for="{{y}}" wx:for-item="item" wx:key="d" class="dataItem"><view class="rowItem">{{item.a}}</view><view class="rowItem">{{item.b}}</view><view wx:for="{{item.c}}" wx:for-item="pitem" wx:key="b" class="rowItem">{{pitem.a}}</view></view></view></scroll-view></view></block><view style="height:80rpx"></view></view>

View File

@@ -6,3 +6,56 @@
.table .item.center {
text-align: center;
}
.mainBusinessC {
padding: 0 20rpx;
overflow: hidden;
}
.mainBusinessC .businessList .heading {
background-color: #FAFAFC;
padding: 0 20rpx;
width: 160rpx;
line-height: 80rpx;
font-size: 20rpx;
font-weight: bold;
color: #666;
}
.mainBusinessC .businessList .list .item {
padding: 0 10rpx;
height: 60rpx;
font-size: 18rpx;
font-weight: 500;
color: #666;
}
.mainBusinessC .businessList .list .item:nth-child(2n) {
background-color: #FAFAFC;
}
.mainBusinessC .dataC {
width: calc(100% - 160rpx);
}
.mainBusinessC .dataC .headingList {
white-space: nowrap;
}
.mainBusinessC .dataC .headingList .heading {
background-color: #FAFAFC;
display: inline-flex;
align-items: center;
justify-content: center;
width: 160rpx;
height: 80rpx;
font-size: 20rpx;
color: #666;
}
.mainBusinessC .dataC .dataList .dataItem {
white-space: nowrap;
font-size: 20rpx;
color: #666;
}
.mainBusinessC .dataC .dataList .dataItem .rowItem {
display: inline-flex;
align-items: center;
width: 160rpx;
height: 60rpx;
}
.mainBusinessC .dataC .dataList .dataItem:nth-child(2n) .rowItem {
background-color: #FAFAFC;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

View File

@@ -10,45 +10,260 @@ const _sfc_main = {
activeIndex: 0,
bkList: [],
bkFilters: [
"按涨幅",
"按连板数",
"只看龙头"
],
filterIndex: 0,
selectedFullDate: ""
selectedFullDate: "",
// 年-月-日
originData: null,
// 原始接口数据
allStocks: [],
// 所有股票数据(带角色标签)
// 角色配置
STOCK_ROLES: {
dragon: {
text: "龙头",
color: "#EC3440",
bgColor: "#FFE8E9",
icon: "/pagesStock/static/icon/first-icon1.png"
},
follow: {
text: "跟风",
color: "#F97316",
bgColor: "#FFF0E6",
icon: "/pagesStock/static/icon/first-icon2.png"
},
first: {
text: "首板",
color: "#01AB5D",
bgColor: "#E4F9EF",
icon: "/pagesStock/static/icon/first-icon.png"
},
normal: {
text: "",
color: "",
bgColor: "",
icon: ""
}
},
// 连板层级样式配置(新规则)
BOARD_LEVEL_STYLES: {
dragon: {
// 5板及以上 龙头
color: "#ef4444",
bgColor: "#FFE8E9",
borderColor: "#ef4444"
},
high: {
// 3-4板 高位
color: "#f97316",
bgColor: "#FFF0E6",
borderColor: "#f97316"
},
mid: {
// 2板 中位
color: "#eab308",
bgColor: "#FFF9E6",
borderColor: "#eab308"
},
first: {
// 1板 首板
color: "#22c55e",
bgColor: "#E4F9EF",
borderColor: "#22c55e"
}
},
// 板块文字颜色配置(新规则)
SECTOR_COLOR_RULES: [
{ keyword: "公告", color: "#D4AF37" },
// 金色
{ keyword: "其他", color: "#9CA3AF" },
// 灰色
{ keyword: ["AI", "人工智能", "芯片"], color: "#8B5CF6" },
// 紫色
{ keyword: ["锂电", "电池", "新能源"], color: "#10B981" },
// 翠绿
{ keyword: ["医药", "医疗"], color: "#EC4899" },
// 粉色
{ keyword: ["金融", "银行"], color: "#F59E0B" },
// 橙黄
{ keyword: ["军工", "航空"], color: "#EF4444" }
// 红色
],
DEFAULT_SECTOR_COLOR: "#06B6D4"
// 默认 青色
};
},
computed: {
// 筛选后的股票列表
filteredStocks() {
var _a;
if (!this.allStocks.length)
return [];
let stocks = [...this.allStocks];
if (this.activeIndex >= 0 && this.bkList.length) {
const currentSector = (_a = this.bkList[this.activeIndex]) == null ? void 0 : _a.title;
if (currentSector) {
stocks = stocks.filter((stock) => {
const sectorMatch = stock.core_sectors.some((s) => s.includes(currentSector)) || (Array.isArray(stock.sector_category) ? stock.sector_category.includes(currentSector) : stock.sector_category === currentSector);
return sectorMatch;
});
}
}
switch (this.filterIndex) {
case 0:
stocks.sort((a, b) => {
const aDays = this.parseContinuousDays(a.continuous_days);
const bDays = this.parseContinuousDays(b.continuous_days);
return bDays - aDays;
});
break;
case 1:
stocks = stocks.filter((stock) => this.parseContinuousDays(stock.continuous_days) >= 2);
stocks.sort((a, b) => {
const aDays = this.parseContinuousDays(a.continuous_days);
const bDays = this.parseContinuousDays(b.continuous_days);
return bDays - aDays;
});
break;
}
return stocks;
}
},
onLoad(e) {
this.activeIndex = e.index;
this.selectedFullDate = e.data;
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:237", "selectedFullDate", this.selectedFullDate);
this.contentTop = this.navH + 20 / 750 * common_vendor.inject("windowWidth");
this.fetchData();
},
methods: {
getPreviousDayDate(dateStr) {
if (!/^\d{4}-\d{2}-\d{2}$/.test(dateStr)) {
common_vendor.index.__f__("error", "at pagesStock/stockCenterDetails/bkydmx.vue:104", "日期格式错误,请传入 YYYY-MM-DD 格式的日期");
return "";
// 解析连板数
parseContinuousDays(continuousDaysStr) {
if (!continuousDaysStr)
return 0;
const match = continuousDaysStr.match(/(\d+)天/);
return match ? Number(match[1]) : 0;
},
// 格式化连板文本(适配新层级)
formatBoardText(continuousDaysStr) {
const boardDays = this.parseContinuousDays(continuousDaysStr);
if (boardDays === 1)
return "首板";
if (boardDays > 1)
return `${boardDays}连板`;
return "";
},
// 获取连板标签样式(按新层级规则)
getBoardTagStyleByLevel(continuousDaysStr) {
const boardDays = this.parseContinuousDays(continuousDaysStr);
let styleConfig = {};
if (boardDays >= 5) {
styleConfig = this.BOARD_LEVEL_STYLES.dragon;
} else if (boardDays >= 3 && boardDays <= 4) {
styleConfig = this.BOARD_LEVEL_STYLES.high;
} else if (boardDays === 2) {
styleConfig = this.BOARD_LEVEL_STYLES.mid;
} else if (boardDays === 1) {
styleConfig = this.BOARD_LEVEL_STYLES.first;
}
const [year, month, day] = dateStr.split("-").map(Number);
const date = new Date(year, month - 1, day);
date.setDate(date.getDate() - 2);
const prevYear = date.getFullYear();
const prevMonth = String(date.getMonth() + 1).padStart(2, "0");
const prevDay = String(date.getDate()).padStart(2, "0");
return `${prevYear}${prevMonth}${prevDay}`;
return {
"color": styleConfig.color || "#FFFFFF",
"background-color": styleConfig.bgColor || "#eab308",
"border": `1rpx solid ${styleConfig.borderColor || "#eab308"}`
};
},
// 获取板块文字颜色(按关键词匹配)
getSectorTextColor(sectorName) {
if (!sectorName)
return this.DEFAULT_SECTOR_COLOR;
for (const rule of this.SECTOR_COLOR_RULES) {
if (Array.isArray(rule.keyword)) {
const isMatch = rule.keyword.some((key) => sectorName.includes(key));
if (isMatch)
return rule.color;
} else {
if (sectorName === rule.keyword)
return rule.color;
}
}
return this.DEFAULT_SECTOR_COLOR;
},
// 获取股票角色
getStockRole(stock, sectorStocks, sectorIndex) {
var _a;
const boardDays = this.parseContinuousDays(stock.continuous_days);
if (boardDays >= 5) {
return this.STOCK_ROLES.dragon;
}
if (boardDays === 1) {
return this.STOCK_ROLES.first;
}
if (sectorIndex < 3 && boardDays >= 2 && boardDays < 5) {
const sortedByTime = [...sectorStocks].sort(
(a, b) => (a.zt_time || "").localeCompare(b.zt_time || "")
);
if (((_a = sortedByTime[0]) == null ? void 0 : _a.scode) === stock.scode && boardDays >= 3) {
return this.STOCK_ROLES.dragon;
}
return this.STOCK_ROLES.follow;
}
return this.STOCK_ROLES.normal;
},
// 获取角色标签样式
getRoleTagStyle(role) {
return {
"background-color": role.bgColor
};
},
// 处理板块切换
handleTabChange(index) {
this.activeIndex = index;
this.setStockRoles();
},
// 处理筛选切换
handleFilterChange(index) {
this.filterIndex = index;
},
// 为所有股票添加角色标签
setStockRoles() {
if (!this.originData || !this.originData.stocks || !this.bkList.length)
return;
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:357", "setStockRoles", JSON.stringify(this.originData.stocks));
this.allStocks = this.originData.stocks.map((stock) => {
let sectorIndex = -1;
const stockSectors = Array.isArray(stock.sector_category) ? stock.sector_category : [stock.sector_category];
this.bkList.some((bk, idx) => {
const match = stockSectors.some((s) => s.includes(bk.title));
if (match) {
sectorIndex = idx;
return true;
}
return false;
});
const sectorStocks = this.originData.stocks.filter((s) => {
const sSectors = Array.isArray(s.sector_category) ? s.sector_category : [s.sector_category];
return sSectors.some((ss) => stockSectors.includes(ss));
});
const stockRole = this.getStockRole(stock, sectorStocks, sectorIndex);
return {
...stock,
stockRole: stockRole.text ? stockRole : null
};
});
},
/**
* 请求接口数据(优化:动态日期+自动时间戳)
*/
// 请求接口数据
async fetchData() {
try {
const timestamp = (/* @__PURE__ */ new Date()).getTime();
const formattedDate = this.getPreviousDayDate(this.selectedFullDate);
const formattedDate = this.selectedFullDate;
const baseURL = request_http.getBaseURL1();
const requestUrl = `${baseURL}/data/zt/daily/${formattedDate}.json?t=${timestamp}`;
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:137", "请求URL", requestUrl);
common_vendor.index.__f__("log", "at pagesStock/stockCenterDetails/bkydmx.vue:401", "请求URL", requestUrl);
const res = await common_vendor.index.request({
url: requestUrl,
method: "GET"
@@ -59,19 +274,18 @@ const _sfc_main = {
const labels = chartData.labels || [];
const counts = chartData.counts || [];
const maxCount = counts.length > 0 ? Math.max(...counts) : 0;
let bkList = [];
const maxLen = Math.min(labels.length, counts.length);
let bkList = [];
for (let i = 0; i < maxLen; i++) {
const title = labels[i];
const count = counts[i] || 0;
bkList.push({
title,
// 板块名称
count
// 数量
});
}
this.bkList = bkList;
this.setStockRoles();
} else {
common_vendor.index.showToast({
title: "数据请求失败",
@@ -79,7 +293,7 @@ const _sfc_main = {
});
}
} catch (error) {
common_vendor.index.__f__("error", "at pagesStock/stockCenterDetails/bkydmx.vue:178", "请求异常:", error);
common_vendor.index.__f__("error", "at pagesStock/stockCenterDetails/bkydmx.vue:440", "请求异常:", error);
common_vendor.index.showToast({
title: "网络异常",
icon: "none"
@@ -118,7 +332,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
e: common_vendor.f($data.bkFilters, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: common_vendor.o(($event) => $data.filterIndex = index, index),
b: common_vendor.o(($event) => $options.handleFilterChange(index), index),
c: $data.filterIndex == index ? "#070707" : "#939393",
d: $data.filterIndex == index ? "1rpx solid #F2C369" : "1rpx solid #E5E5E5",
e: $data.filterIndex == index ? "#F2C369" : "#fff",
@@ -132,13 +346,28 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
c: index == 0 ? "left" : "center"
};
}),
g: common_vendor.f(30, (item, index, i0) => {
return {
a: index % 2 == 0 ? "#fff" : "#FAFAFC"
};
g: common_vendor.f($options.filteredStocks, (item, index, i0) => {
return common_vendor.e({
a: item.stockRole
}, item.stockRole ? common_vendor.e({
b: item.stockRole.icon
}, item.stockRole.icon ? {
c: item.stockRole.icon
} : {}, {
d: common_vendor.t(item.stockRole.text),
e: item.stockRole.color,
f: common_vendor.s($options.getRoleTagStyle(item.stockRole))
}) : {}, {
g: common_vendor.t(item.sname),
h: common_vendor.t($options.formatBoardText(item.continuous_days)),
i: common_vendor.s($options.getBoardTagStyleByLevel(item.continuous_days)),
j: common_vendor.t(item.core_sectors[0] || "未知板块"),
k: $options.getSectorTextColor(item.core_sectors[0] || "未知板块"),
l: item.scode,
m: index % 2 == 0 ? "#fff" : "#FAFAFC"
});
}),
h: common_assets._imports_1$12,
i: common_vendor.s("top:" + $data.contentTop + "px;")
h: common_vendor.s("top:" + $data.contentTop + "px;")
};
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="573301e0-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="stockDetailsC fixed" style="{{'background-color:white;border-radius:10rpx;overflow:hidden' + ';' + i}}"><view style="height:86rpx"><scroll-view scroll-x style="white-space:nowrap;height:100%;padding:0 20rpx;box-sizing:border-box" scroll-with-animation scroll-into-view="{{d}}"><view style="display:flex;align-items:center;height:100%;font-weight:500"><view wx:for="{{c}}" wx:for-item="item" wx:key="d" id="{{item.b}}" bindtap="{{item.c}}" style="{{'display:flex;align-items:center;justify-content:center;line-height:85rpx;margin:0 20rpx' + ';' + ('color:' + item.e + ';' + ('border-bottom:' + item.f) + ';' + ('font-size:' + item.g))}}">{{item.a}}</view></view></scroll-view></view><view style="height:1rpx;background-color:#E7E7E7;margin:0 20rpx"></view><view style="height:48rpx;display:grid;grid-template-columns:repeat(3, 1fr);gap:10rpx;margin:23rpx 40rpx"><view wx:for="{{e}}" wx:for-item="item" wx:key="f" bindtap="{{item.b}}" style="{{'height:45rpx;display:flex;align-items:center;justify-content:center;color:#939393;font-size:24rpx;font-weight:500;border-radius:5rpx' + ';' + ('color:' + item.c + ';' + ('border:' + item.d) + ';' + ('background-color:' + item.e))}}">{{item.a}}</view></view><view style="margin:0 20rpx;background-color:#FAFAFC;display:grid;grid-template-columns:35% 20% 20% 25%"><view wx:for="{{f}}" wx:for-item="item" wx:key="b" style="{{'font-size:22rpx;color:#666666;padding:0 15rpx;box-sizing:border-box;font-weight:500;line-height:60rpx' + ';' + ('text-align:' + item.c)}}">{{item.a}}</view></view><scroll-view scroll-y style="position:absolute;top:241rpx;left:0;right:0;bottom:0;font-size:20rpx;font-weight:500"><view wx:for="{{g}}" wx:for-item="item" style="{{'margin:0 20rpx;display:grid;grid-template-columns:35% 20% 20% 25%' + ';' + ('background-color:' + item.a)}}"><view style="display:flex;align-items:center;color:#666666;height:60rpx"><view style="display:flex;align-items:center;background-color:#FFF0E6;border-radius:5rpx;padding:0 10rpx;margin-left:14rpx"><image style="width:15rpx;height:17rpx" src="{{h}}" mode="widthFix"></image><view style="color:#F97316;margin-left:5rpx">跟风</view></view><view style="margin-left:10rpx">康强电子</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="font-size:24rpx;color:#EC3440;font-weight:bold">+10.00%</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="color:#F3B800;padding:0 10rpx;border-radius:5rpx;background-color:#FFF9E6;border:1rpx solid #F3B800;display:flex;align-items:center;justify-content:center">2连板</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="background-color:#F4EFFF;border-radius:5rpx;padding:0 10rpx;color:#8B5CF6">芯片(封装材料)</view></view></view></scroll-view></view></view>
<view><nav-bar wx:if="{{a}}" u-i="573301e0-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="stockDetailsC fixed" style="{{'background-color:white;border-radius:10rpx;overflow:hidden' + ';' + h}}"><view style="height:86rpx"><scroll-view scroll-x style="white-space:nowrap;height:100%;padding:0 20rpx;box-sizing:border-box" scroll-with-animation scroll-into-view="{{d}}"><view style="display:flex;align-items:center;height:100%;font-weight:500"><view wx:for="{{c}}" wx:for-item="item" wx:key="d" id="{{item.b}}" bindtap="{{item.c}}" style="{{'display:flex;align-items:center;justify-content:center;line-height:85rpx;margin:0 20rpx' + ';' + ('color:' + item.e + ';' + ('border-bottom:' + item.f) + ';' + ('font-size:' + item.g))}}">{{item.a}}</view></view></scroll-view></view><view style="height:1rpx;background-color:#E7E7E7;margin:0 20rpx"></view><view style="height:48rpx;display:grid;grid-template-columns:repeat(3, 1fr);gap:10rpx;margin:23rpx 40rpx"><view wx:for="{{e}}" wx:for-item="item" wx:key="f" bindtap="{{item.b}}" style="{{'height:45rpx;display:flex;align-items:center;justify-content:center;color:#939393;font-size:24rpx;font-weight:500;border-radius:5rpx' + ';' + ('color:' + item.c + ';' + ('border:' + item.d) + ';' + ('background-color:' + item.e))}}">{{item.a}}</view></view><view style="margin:0 20rpx;background-color:#FAFAFC;display:grid;grid-template-columns:35% 20% 20% 25%"><view wx:for="{{f}}" wx:for-item="item" wx:key="b" style="{{'font-size:22rpx;color:#666666;padding:0 15rpx;box-sizing:border-box;font-weight:500;line-height:60rpx' + ';' + ('text-align:' + item.c)}}">{{item.a}}</view></view><scroll-view scroll-y style="position:absolute;top:241rpx;left:0;right:0;bottom:0;font-size:20rpx;font-weight:500"><view wx:for="{{g}}" wx:for-item="item" wx:key="l" style="{{'margin:0 20rpx;display:grid;grid-template-columns:35% 20% 20% 25%' + ';' + ('background-color:' + item.m)}}"><view style="display:flex;align-items:center;color:#666666;height:60rpx"><view wx:if="{{item.a}}" style="{{'display:flex;align-items:center;border-radius:5rpx;padding:0 10rpx;margin-left:14rpx' + ';' + item.f}}"><image wx:if="{{item.b}}" style="width:15rpx;height:17rpx;margin-right:5rpx" src="{{item.c}}" mode="widthFix"></image><view style="{{'color:' + item.e}}">{{item.d}}</view></view><view style="margin-left:10rpx">{{item.g}}</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="font-size:24rpx;color:#EC3440;font-weight:bold">+10.00%</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="{{'padding:0 10rpx;border-radius:5rpx;display:flex;align-items:center;justify-content:center' + ';' + item.i}}">{{item.h}}</view></view><view style="display:flex;align-items:center;justify-content:center"><view style="{{'background-color:#F4EFFF;border-radius:5rpx;padding:0 10rpx;white-space:nowrap;max-width:120rpx;overflow:hidden;text-overflow:ellipsis' + ';' + ('color:' + item.k)}}">{{item.j}}</view></view></view></scroll-view></view></view>

View File

@@ -381,7 +381,10 @@ const _sfc_main = {
clickInDepthAnalysisItem(index) {
if (this.selectInDepthAnalysis != index) {
this.selectInDepthAnalysis = index;
if (index == 2) {
if (index == 0) {
this.getComprehensiveAnalysisData();
this.getIndustryRankListData();
} else if (index == 2) {
this.getValueChainAnalysisData();
} else if (index == 3) {
this.getKeyFactorsTimelineData();
@@ -604,7 +607,7 @@ const _sfc_main = {
}
request_api.managementTeam(code, { active_only: true }).then((res) => {
let data = res.data;
let arr = ["高管", "董事", "监事", "其他"];
let arr = ["高管", "董事", "监事"];
let list = [];
for (let item of arr) {
list.push({ key: item, list: [] });
@@ -1029,7 +1032,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}),
aj: $data.isData && $data.isManagementEmpty
}, $data.isData && $data.isManagementEmpty ? {
ak: common_assets._imports_5$5
ak: common_assets._imports_5$6
} : {}) : {}, {
al: $data.selectCompanyFiles == 2
}, $data.selectCompanyFiles == 2 ? common_vendor.e({
@@ -1038,7 +1041,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
}),
an: $data.isData && $data.branchList.length == 0
}, $data.isData && $data.branchList.length == 0 ? {
ao: common_assets._imports_5$5
ao: common_assets._imports_5$6
} : {}) : {}, {
ap: $data.selectCompanyFiles == 3
}, $data.selectCompanyFiles == 3 ? common_vendor.e({
@@ -1050,7 +1053,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
} : {}, {
as: $data.isData && !$data.stockBasicInfo
}, $data.isData && !$data.stockBasicInfo ? {
at: common_assets._imports_5$5
at: common_assets._imports_5$6
} : {}) : {}) : {}, {
av: $data.selectTab == 1
}, $data.selectTab == 1 ? common_vendor.e({

View File

@@ -161,9 +161,9 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
a: index
};
}),
k: common_assets._imports_1$12,
l: common_assets._imports_5$6,
m: common_assets._imports_5$6,
k: common_assets._imports_4$12,
l: common_assets._imports_5$4,
m: common_assets._imports_5$4,
n: common_vendor.s("top:" + $data.contentTop + "px;")
};
}