1.26 个股详情业务结构,发展历程模块完善

This commit is contained in:
尚政杰
2026-01-26 17:53:08 +08:00
parent f296e005b3
commit 67a673cd4d
508 changed files with 44334 additions and 305 deletions

View File

@@ -1,120 +1,101 @@
<template> <template>
<view style="padding: 25rpx 20rpx; box-sizing: border-box;"> <view style="padding: 25rpx 20rpx; box-sizing: border-box;">
<view style="display: flex; align-items: center; font-size: 28rpx;"><text>关键因素</text><text <view v-if="keyFactorsInfo" class="flex" style="font-size: 28rpx;"><text>关键因素</text><text
style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">19</text> style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">{{keyFactorsInfo.total_factors}}</text>
</view>
<view class="keyFactorsList">
<view class="item" v-for="(item, index) in keyFactorsList" :key="index" @click="item.show = !item.show"
style="margin: 20rpx 0; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx; color: #2B2B2B;">
<view style="display: flex; align-items: center; justify-content: space-between;">
<view style="flex: 1; font-size: 26rpx;"><text>{{item.category_name}}</text><text
style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">{{item.factors.length}}</text>
</view>
<image v-if="item.show" style="width: 20rpx; height: 12rpx;"
src="/pagesStock/static/icon/shangJiantou.png" mode="widthFix"></image>
<image v-else style="width: 20rpx; height: 12rpx;" src="/pagesStock/static/icon/xiaJiantou.png"
mode="widthFix"></image>
</view>
<template v-if="item.show">
<view class="fitem" v-for="(fitem,findex) in item.factors" :key="findex"
style="margin: 20rpx 0; padding: 20rpx; background-color: white; border-radius: 10rpx; border: 1rpx solid #E7E7E7; color: #2B2B2B; font-weight: 500; font-size: 26rpx;">
<view class="titleImpactC flex between">
<view>{{fitem.factor_name}}</view>
<view v-if="fitem.impact_direction=='negative'" class="impact negative">负面</view>
<view v-if="fitem.impact_direction=='neutral'" class="impact neutral">中性</view>
<view v-if="fitem.impact_direction=='positive'" class="impact positive">正面</view>
</view>
<view class="valueChgC flex" style="margin-top: 10rpx;">
<view :class="'value '+(fitem.impact_direction)">{{fitem.factor_value}}{{fitem.factor_unit}}
</view>
<view :class="'chgC flex '+(getRateUpOrDown(fitem.year_on_year)?'down':'up')">
<image v-if="getRateUpOrDown(fitem.year_on_year)" class="icon" src="/pagesStock/static/icon/downArrow.png" mode="widthFix"></image>
<image v-else class="icon" src="/pagesStock/static/icon/upArrow.png" mode="widthFix"></image>
<view>{{fitem.year_on_year?fitem.year_on_year:0}}%</view>
</view>
</view>
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">{{fitem.factor_desc}}</view>
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">影响权重: {{fitem.impact_weight}}</view>
</view>
</template>
</view>
</view> </view>
<view v-for="(item, index) in gj_list" :key="index" @click="item.show = !item.show"
style="margin: 20rpx 0; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx; color: #2B2B2B;">
<view style="display: flex; align-items: center; justify-content: space-between;">
<view style="flex: 1; font-size: 26rpx;"><text>{{item.title}}</text><text
style="font-size: 24rpx; color: #070707; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #F2C369; margin-left: 10rpx;">{{item.count}}</text>
</view>
<image v-if="item.show" style="width: 20rpx; height: 12rpx;"
src="/pagesStock/static/icon/shangJiantou.png" mode="widthFix"></image>
<image v-else style="width: 20rpx; height: 12rpx;" src="/pagesStock/static/icon/xiaJiantou.png"
mode="widthFix"></image>
</view>
<template v-if="item.show"> <view v-if="timelineInfo" class="flex" style="font-size: 28rpx;"><text>发展时间线</text>
<view v-for="child in item.count"
style="margin: 20rpx 0; padding: 20rpx; box-sizing: border-box; background-color: white; border-radius: 10rpx; border: 1rpx solid #E7E7E7; color: #2B2B2B; font-weight: 500; font-size: 26rpx;">
<view style="display: flex; align-items: center; justify-content: space-between;">
<view>净息差</view>
<view
style="background-color: #345423; border-radius: 5rpx; color: white; padding: 0 10rpx; text-align: center; font-size: 20rpx;">
负面</view>
</view>
<view style="display: flex;align-items: center; margin-top: 10rpx;">
<view style="color: #345423; font-weight: bold; font-size: 30rpx; margin-right: 10rpx;">1.79亿元
</view>
<view
style="display: flex; align-items: center; border: 1rpx solid #345423; padding: 0 10rpx; text-align: center; font-size: 20rpx; color: #345423; border-radius: 5rpx;">
<image style="width: 11rpx; height: 15rpx; margin-right: 5rpx;"
src="/pagesStock/static/icon/upArrow.png" mode="widthFix"></image>0.51%
</view>
</view>
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">银行核心盈利能力指标反映存贷利差水平</view>
<view style="margin-top: 10rpx; color: #999999; font-size: 22rpx;">影响权重: 90</view>
</view>
</template>
</view>
<view style="display: flex; align-items: center; font-size: 28rpx;"><text>发展时间线</text>
<text <text
style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #EC3440; margin-left: 10rpx;">正面 style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #EC3440; margin-left: 10rpx;">正面
19</text> {{timelineInfo.positive_events}}</text>
<text <text
style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #345423; margin-left: 10rpx;">负面 style="font-size: 24rpx; color: white; padding: 0rpx 10rpx; border-radius: 3rpx; background-color: #345423; margin-left: 10rpx;">负面
1</text> {{timelineInfo.negative_events}}</text>
</view>
<view class="timelineList">
<view class="item" v-for="(item,index) in timelineList" :key="index" @click="clickAction">
<view class="impactC flexColumnCenter">
<image v-if="item.impact_metrics.is_positive==1" class="icon" style="margin-top: 20rpx;"
src="/pagesStock/static/icon/yuan_shang.png" mode="widthFix"></image>
<image v-else class="icon" src="/pagesStock/static/icon/yuan_jiang.png" mode="widthFix"></image>
<view :class="'line flex1 '+(item.impact_metrics.is_positive==1?'up':'down')"></view>
</view>
<view
style="flex: 1; margin-left: 10rpx; background-color: #FAFAFC; padding: 24rpx 15rpx; border-radius: 10rpx; font-weight: 500;">
<view class="titleTypeC">
<text class="title">{{item.event_title}}</text>
<text :class="'eventType '+(item.impact_metrics.is_positive==1?'up':'down')">{{item.event_type}}</text>
</view>
<view style="color: #999999; font-size: 20rpx; margin: 15rpx 0;">{{item.event_date}}</view>
<view style="color: #71675D; font-size: 22rpx;">{{item.event_desc}}</view>
<view style="display: flex; align-items: center; margin-top: 30rpx;">
<view style="color: #71675D; font-size: 22rpx; font-weight: 500;">影响度</view>
<view class="progressBgC">
<view :class="'progress '+(item.impact_metrics.is_positive==1?'up':'down')" :style="{width: `${item.impact_metrics.impact_score}%`}">
</view>
</view>
<view style="color: #71675D; font-size: 24rpx; font-weight: 500;">{{item.impact_metrics.impact_score}}</view>
</view>
</view>
</view>
</view> </view>
<view v-for="item in 3" @click="clickAction"
style="display: flex; margin: 20rpx 0; border-radius: 10rpx; box-sizing: border-box; color: #2B2B2B;">
<view style="display: flex; flex-direction: column; align-items: center;">
<image style="width: 30rpx; height: 30rpx; margin-top: 20rpx;"
src="/pagesStock/static/icon/yuan_shang.png" mode="widthFix"></image>
<view
style="flex: 1; width: 1rpx; border-left: 1rpx dashed #EC3440; margin-top: 10rpx; margin-bottom: -30rpx;">
</view>
</view>
<view
style="flex: 1; margin-left: 10rpx; background-color: #FAFAFC; padding: 24rpx 15rpx; border-radius: 10rpx; font-weight: 500;">
<view>
<text style="color: #2A2A2A; font-weight: bold; font-size: 24rpx; margin-right: 10rpx;">不良贷款率连续四年低于1.1%</text>
<text
style="background-color: #FFE7E9; color: #EC3440; padding: 5rpx 10rpx; border-radius: 5rpx; font-size: 20rpx; ">Achievement</text>
</view>
<view style="color: #999999; font-size: 20rpx; margin: 15rpx 0;">2025-06-30</view>
<view style="color: #71675D; font-size: 22rpx;">2025年中报不良率1.06%拨备覆盖率290%资产质量保持股份行领先</view>
<view style="display: flex; align-items: center; margin-top: 30rpx;">
<view style="color: #71675D; font-size: 22rpx; font-weight: 500;">影响度</view>
<view
style="width: 200rpx; height: 10rpx; background-color: #EFEFEF; border-radius: 5rpx; margin: 0 15rpx; overflow: hidden;">
<view
style="height: 100%; border-radius: 5rpx; background:linear-gradient(to right, #FF525D, #EC3440)"
:style="{width: `${95}%`}">
</view>
</view>
<view style="color: #71675D; font-size: 24rpx; font-weight: 500;">95</view>
</view>
</view>
</view>
</view> </view>
</template> </template>
<script> <script>
import { getRateUpOrDown } from '@/utils/util';
export default { export default {
name: "fzlc-view", name: "fzlc-view",
data() { data() {
return { return {
gj_list: [{ getRateUpOrDown:getRateUpOrDown
title: '产量与销量指标',
count: 8,
show: false
},
{
title: '价格与成本驱动',
count: 3,
show: false
},
{
title: '市场与客户指标',
count: 2,
show: false
},
{
title: '行业特定指标',
count: 4,
show: false
},
{
title: '风险与异常指标',
count: 2,
show: false
}
]
}; };
}, },
props: {
keyFactorsInfo:null,
keyFactorsList:Array, //关键因素数组
timelineInfo:null,
timelineList:Array, //发展时间线数组
},
methods: { methods: {
clickAction() { clickAction() {
this.$emit('detail') this.$emit('detail')
@@ -123,6 +104,159 @@
} }
</script> </script>
<style lang="less"> <style lang="less">
.keyFactorsList
{
.item
{
.fitem
{
.impact
{
border-radius: 5rpx;
padding: 0 10rpx;
font-size: 20rpx;
font-weight: 500;
color: white;
}
.impact.negative
{
background-color: #345423;
}
.impact.neutral
{
background-color: #345423;
}
.impact.positive
{
background-color: #EC3440;
}
.valueChgC
{
.value
{
font-size: 30rpx;
font-weight: bold;
margin-right: 10rpx;
}
.value.negative
{
color: #345423;
}
.value.neutral
{
color:#345423;
}
.value.positive
{
color: #EC3440;
}
.chgC
{
padding: 0 10rpx;
border-radius: 5rpx;
font-size: 20rpx;
.icon
{
margin-right: 5rpx;
width: 11rpx;
height: auto;
}
}
.chgC.down
{
border: 1rpx solid #345423;
color: #345423;
}
.chgC.up
{
border: 1rpx solid #EC3440;
color: #EC3440;
}
}
}
}
}
.timelineList
{
.item
{
display: flex;
margin: 20rpx 0;
border-radius: 10rpx;
.impactC
{
.icon
{
width: 30rpx;
height: auto;
}
.line
{
margin: 10rpx 0 -30rpx;
width: 1rpx;
}
.line.up
{
border-left: 1rpx dashed #EC3440;
}
.line.down
{
border-left: 1rpx dashed #345423;
}
}
.titleTypeC
{
.title
{
margin-right: 10rpx;
font-size: 24rpx;
font-weight: bold;
color: #2A2A2A;
}
.eventType
{
padding: 5rpx 10rpx;
border-radius: 5rpx;
font-size: 20rpx;
font-weight: 500;
}
.eventType.up
{
background-color: #FFE7E9;
color: #EC3440;
}
.eventType.down
{
background-color:#DEEED6;
color: #345423;
}
}
.progressBgC
{
background-color: #EFEFEF;
margin: 0 15rpx;
width: 200rpx;
height: 10rpx;
border-radius: 5rpx;
overflow: hidden;
.progress
{
height: 100%;
border-radius: 5rpx;
}
.progress.up
{
background:linear-gradient(to right, #FF525D, #EC3440)
}
.progress.down
{
background:linear-gradient(to right, #537D3D, #345423)
}
}
}
}
</style> </style>

View File

@@ -4,7 +4,7 @@
<view class="flex"> <view class="flex">
<view class="title">实际控制人</view> <view class="title">实际控制人</view>
</view> </view>
<view class="com_info"> <view v-if="actualControlInfo" class="com_info">
<view class="left"> <view class="left">
<view class="l_top">{{actualControlInfo.actual_controller_name}}</view> <view class="l_top">{{actualControlInfo.actual_controller_name}}</view>
<view class="l_bottom"> <view class="l_bottom">
@@ -14,7 +14,7 @@
</view> </view>
<view class="right"> <view class="right">
<view class="r_top">控制比例</view> <view class="r_top">控制比例</view>
<view class="r_center">{{actualControlInfo.holding_ratio.toFixed(2)}}%</view> <view v-if="actualControlInfo.holding_ratio" class="r_center">{{actualControlInfo.holding_ratio.toFixed(2)}}%</view>
<view class="r_bottom">{{getNumStr(actualControlInfo.holding_shares)}}</view> <view class="r_bottom">{{getNumStr(actualControlInfo.holding_shares)}}</view>
</view> </view>
</view> </view>
@@ -26,10 +26,8 @@
<view class="top">2025-09-30 00:00:00</view> <view class="top">2025-09-30 00:00:00</view>
<view class="bottom"> <view class="bottom">
<view class="b_item"> <view class="b_item">
<view v-for="(item, index) in 4" class="item_info"> <view v-for="(item, index) in concentrationList" :key="index" class="item_info flexWrap">
<view class="left"> <view class="left">{{item.stat_item}}</view>
前1大股东
</view>
<view class="right"> <view class="right">
<view class="bili">49.56%</view> <view class="bili">49.56%</view>
<view class="shengjiang" :class="{action : index % 2 == 0}"> <view class="shengjiang" :class="{action : index % 2 == 0}">
@@ -40,7 +38,7 @@
</view> </view>
</view> </view>
</view> </view>
<view style="width: 15rpx;"></view> <!-- <view style="width: 15rpx;"></view>
<view class="b_item"> <view class="b_item">
<view v-for="(item, index) in 4" class="item_info"> <view v-for="(item, index) in 4" class="item_info">
<view class="left"> <view class="left">
@@ -55,7 +53,7 @@
</view> </view>
</view> </view>
</view> </view>
</view> </view> -->
</view> </view>
</view> </view>
@@ -65,21 +63,19 @@
<view class="gudong"> <view class="gudong">
<view class="back"> <view class="back">
<view class="top action" style="height: 54rpx;"> <view class="top action">
<view>股东名称</view> <view class="head">股东名称</view>
<view>股东类型</view> <view class="head">股东类型</view>
<view style="text-align: center;">持股数量</view> <view class="head" style="text-align: center;">持股数量</view>
<view style="text-align: center;">持股比例</view> <view class="head" style="text-align: center;">持股比例</view>
<view style="text-align: center;">股份性质</view> <view class="head" style="text-align: center;">股份性质</view>
</view> </view>
<view v-for="(item, index) in shareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}"> <view v-for="(item, index) in shareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}">
<view class="child">{{item.shareholder_name}}</view> <view class="child">{{item.shareholder_name}}</view>
<view class="child">{{item.shareholder_type}}</view> <view class="child">{{item.shareholder_type}}</view>
<view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}</view> <view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}</view>
<view class="child" style="color: #3E87CF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view> <view class="child" style="color: #3E87CF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view>
<view class="child" <view class="nature">{{item.share_nature}}</view>
style="background-color: #FFF7E9; color: #E0AC4A; border-radius: 5rpx; padding: 5rpx 10rpx; text-align: center;">
{{item.share_nature}}</view>
</view> </view>
</view> </view>
</view> </view>
@@ -90,21 +86,19 @@
<view class="gudong"> <view class="gudong">
<view class="back"> <view class="back">
<view class="top action" style="height: 54rpx;"> <view class="top action">
<view>股东名称</view> <view class="head">股东名称</view>
<view>股东类型</view> <view class="head">股东类型</view>
<view style="text-align: center;">持股数量</view> <view class="head" style="text-align: center;">持股数量</view>
<view style="text-align: center;">流通股比例</view> <view class="head" style="text-align: center;">流通股比例</view>
<view style="text-align: center;">股份性质</view> <view class="head" style="text-align: center;">股份性质</view>
</view> </view>
<view v-for="(item, index) in circulatingShareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}"> <view v-for="(item, index) in circulatingShareholdersList" :key="index" class="top" :class="{action: index % 2 == 1}">
<view class="child">{{item.shareholder_name}}</view> <view class="child">{{item.shareholder_name}}</view>
<view class="child">{{item.shareholder_type?item.shareholder_type:'-'}}</view> <view class="child">{{item.shareholder_type?item.shareholder_type:'-'}}</view>
<view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}</view> <view class="child" style="text-align: center;">{{getNumStr(item.holding_shares)}}</view>
<view class="child" style="color: #893ECF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view> <view class="child" style="color: #893ECF; font-weight: bold; text-align: center;">{{item.total_share_ratio}}%</view>
<view class="child" <view class="nature">{{item.share_nature}}</view>
style="background-color: #FFF7E9; color: #E0AC4A; border-radius: 5rpx; padding: 5rpx 10rpx; text-align: center;">
{{item.share_nature}}</view>
</view> </view>
</view> </view>
</view> </view>
@@ -125,6 +119,7 @@
}, },
props:{ props:{
actualControlInfo:Object, //实际控制人信息 actualControlInfo:Object, //实际控制人信息
concentrationList:[], //股权集中度列表
shareholdersList:Array, //十大股东列表 shareholdersList:Array, //十大股东列表
circulatingShareholdersList:Array, //十大流通股东列表 circulatingShareholdersList:Array, //十大流通股东列表
competitivePositionInfo:Object, //竞争地位信息 competitivePositionInfo:Object, //竞争地位信息
@@ -275,31 +270,43 @@
.back { .back {
margin: 25rpx 0; margin: 25rpx 0;
font-weight: 500; font-weight: 500;
background-color: #FAFAFC;
border-radius: 10rpx; border-radius: 10rpx;
padding: 25rpx 13rpx;
box-sizing: border-box;
color: #666666; color: #666666;
.top { .top {
width: 100%; width: 100%;
display: grid; display: grid;
align-items: center;
grid-template-columns: 166rpx repeat(4, 1fr); grid-template-columns: 166rpx repeat(4, 1fr);
font-size: 22rpx; background-color: white;
background-color: white; height: 60rpx;
&.action { &.action {
background-color: #FAFAFC; background-color: #FAFAFC;
} }
.head
.child { {
padding: 0 10rpx;
font-size: 22rpx;
}
.child {
padding: 0 10rpx;
font-size: 18rpx; font-size: 18rpx;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
margin: 10rpx 0;
} }
.child:first-child { .nature
margin-right: 20rpx; {
background-color: #FFF7E9;
margin: 10rpx;
line-height: 36rpx;
border-radius: 5rpx;
font-size: 18rpx;
color: #E0AC4A;
text-align: center;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
} }
} }
} }

View File

@@ -1,10 +1,11 @@
<template> <template>
<view class="ywjg_list"> <view class="ywjg_list">
<view v-for="(item,index) in ywjg" :key="index"> <view>
<block v-for="(item,index) in businessStructureList" :key="index"></block>
<view style="margin: 25rpx 20rpx; color: #2B2B2B; font-size: 28rpx; font-weight: bold;"> <view style="margin: 25rpx 20rpx; color: #2B2B2B; font-size: 28rpx; font-weight: bold;">
{{item.title}} {{item.title}}
</view> </view>
<view v-if="index == 0" v-for="(child, row) in item.list" :key="row" class="ywjg_item_1"> <view v-for="(child, row) in item.list" :key="row" class="ywjg_item_1">
<view style="display: flex; align-items: center;"> <view style="display: flex; align-items: center;">
<view style="font-size: 28rpx; font-weight: bold; margin-right: 10rpx;"> <view style="font-size: 28rpx; font-weight: bold; margin-right: 10rpx;">
{{child.title}} {{child.title}}
@@ -36,14 +37,16 @@
</view> </view>
</view> </view>
</view> </view>
<view v-else style="font-weight: 500;"> <view style="font-weight: 500;">
<view v-for="(child,row) in item.list" :key="row" <view v-for="(item,index) in businessSegmentList" :key="item"
style="background-color: #FAFAFC; color: #2B2B2B; font-size: 22rpx; margin: 20rpx; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx;"> style="background-color: #FAFAFC; color: #2B2B2B; font-size: 22rpx; margin: 20rpx; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx;">
<view style="font-size: 24rpx;">{{child.title}}</view> <view style="font-size: 24rpx;">{{item.segment_name}}</view>
<view v-for="(model, j) in child.list" :key="j"> <view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">业务描述</view>
<view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">{{model.title}}</view> <view style="color: #71675D;">{{item.segment_description}}</view>
<view style="color: #71675D;">{{model.info}}</view> <view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">竞争地位</view>
</view> <view style="color: #71675D;">{{item.competitive_position}}</view>
<view style="color: #BB8520; font-weight: bold; margin: 10rpx 0;">未来潜力</view>
<view style="color: #71675D;">{{item.future_potential}}</view>
</view> </view>
</view> </view>
</view> </view>
@@ -55,107 +58,13 @@
name: "ywjg-view", name: "ywjg-view",
data() { data() {
return { return {
ywjg: [{
title: '业务结构分析', };
list: [{
title: '零售业务', },
is_hexin: 1, props:{
yszb: 55.16, businessStructureList:Array, //业务结构分析
mlv: 78.21, businessSegmentList:Array //业务板块详情
yysr: 17900,
zz: -8.20
}, {
title: '科技金融',
is_hexin: 1,
yszb: 41.121,
mlv: 89.11,
yysr: 13400,
zz: 24.60
}, {
title: '绿色金融',
is_hexin: 0,
yszb: 2.37,
mlv: 9.11,
yysr: 771,
zz: 36.90
}, {
title: '零售业务',
is_hexin: 0,
yszb: 2.37,
mlv: 9.11,
yysr: 396,
zz: -16.90
}]
},
{
title: '业务板块详情',
list: [{
title: '零售银行业务',
list: [{
title: '业务描述',
info: '平安银行对公业务践行'
},
{
title: '竞争地位',
info: '平安银行零售业务在同行业中保持较强竞争力,凭借其数字化创新优势和综合金融背景,构建了差异化竞争优势。'
},
{
title: '未来潜力',
info: '平安银行零售业务未来发展潜力巨大,随着中国财富管理市场的快速扩张和中产阶级规模的持续增长,零售银行...展开查看'
}
]
}, {
title: '对公业务',
list: [{
title: '业务描述',
info: '平安银行对公业务践行'
},
{
title: '竞争地位',
info: '平安银行对公业务在市场中保持较强竞争力,贷款规模实现两位数增长,远高于行业平均水平。通过差异化战略...展开查看'
},
{
title: '未来潜力',
info: '随着国家对科创、绿色经济的持续支持,以及对普惠金融的政策倾斜,平安银行对公业务面临广阔发展空间...展开查看'
}
]
},
{
title: '同业业务',
list: [{
title: '业务描述',
info: '平安银行同业业务主要包括债券交易、同业拆借、票据业务等。'
},
{
title: '竞争地位',
info: '平安银行同业业务在股份制银行中位居前列债券交易市场份额达4.4%,显示出较强的市场竞争力。'
},
{
title: '未来潜力',
info: '随着金融市场深化改革和利率市场化推进,同业业务面临新的发展机遇。平安银行同业业务凭借其债券...展开查看'
}
]
},
{
title: '普惠金融',
list: [{
title: '业务描述',
info: '普惠金融是平安银行'
},
{
title: '竞争地位',
info: '平安银行普惠金融业务在行业内保持领先地位,小微企业贷款规模较大且客户基础广泛。通过优化产品体系、提...展开查看'
},
{
title: '未来潜力',
info: '随着国家持续推动普惠金融发展战略,平安银行该业务具有广阔发展空间。通过数字化转型深化、客户体验...展开查看'
}
]
}
]
}
]
};
} }
} }
</script> </script>

View File

@@ -90,7 +90,7 @@
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<uni-popup ref="screenPopup" type="top"> <uni-popup ref="screenPopup" type="top" z-index="100000">
<view class="screenPopup" :style="'padding-top:'+menuTop+'px;'"> <view class="screenPopup" :style="'padding-top:'+menuTop+'px;'">
<view class="navC flex" :style="'height:'+menuH+'px;'" @click="clickCancel()"> <view class="navC flex" :style="'height:'+menuH+'px;'" @click="clickCancel()">
<image class="icon" src="/static/icon/backBlack.png" mode="widthFix"></image> <image class="icon" src="/static/icon/backBlack.png" mode="widthFix"></image>

View File

@@ -136,38 +136,43 @@
</view> </view>
</view> </view>
<template v-if="selectCompanyFiles==0"> <template v-if="selectCompanyFiles==0">
<gqjg-view :actualControlInfo="actualControlInfo" :shareholdersList="topShareholdersList" :circulatingShareholdersList="topCirculatingShareholdersList"></gqjg-view> <gqjg-view :actualControlInfo="actualControlInfo" :concentrationList="concentrationList" :shareholdersList="topShareholdersList" :circulatingShareholdersList="topCirculatingShareholdersList"></gqjg-view>
</template> </template>
<view v-if="selectCompanyFiles==1" class="managementTeamList"> <view v-if="selectCompanyFiles==1" class="managementTeamList">
<view class="positionNumC flex"> <block v-for="(item,index) in managementList" :key="index">
<view class="position">董事</view> <view v-if="item.list.length>0" class="positionNumC flex">
<view class="num director">15</view> <view class="position">{{item.key}}</view>
</view> <view class="num director">{{item.list.length}}</view>
<view class="item flex"> </view>
<view class="avatarC flexCenter relative director"> <view class="item flex" v-for="(pitem,pindex) in item.list" :key="index">
<view class="avatarC flexCenter relative director">
<view class="sexC flexCenter absolute male"> {{getLastNameStr(pitem.name)}}
<image class="icon" src="/pagesStock/static/icon/female.png" mode="widthFix"> <view :class="'sexC flexCenter absolute '+(pitem.gender=='女'?'female':'male')">
</image> <image v-if="pitem.gender=='女'" class="icon" src="/pagesStock/static/icon/female.png" mode="widthFix">
</view> </image>
</view> <image v-else class="icon" src="/pagesStock/static/icon/male.png" mode="widthFix">
<view class="flex1"> </image>
<view class="flex"> </view>
<view class="name">郭晓涛</view> </view>
<view class="position">非执行董事</view> <view class="flex1">
<view class="date flex1">任职日期2024-10-08</view> <view class="flex">
</view> <view class="name">{{pitem.name}}</view>
<view class="educationAgeC flex"> <view class="position">{{pitem.position_name}}</view>
<view class="education label">博士研究生</view> <view class="date flex1">任职日期{{pitem.start_date}}</view>
<view class="age label">59</view> </view>
</view> <view class="educationAgeC flex">
</view> <view class="education label">{{pitem.education}}</view>
</view> <view class="age label">59</view>
<view class="expandMoreC flexCenter"> </view>
<view>展开查看</view> </view>
<image class="arrow" src="/pagesStock/static/icon/lookMoreArrow.png" mode="widthFix"> </view>
</image> <view v-if="item.list.length>4" class="expandMoreC flexCenter">
</view> <view>展开查看</view>
<image class="arrow" src="/pagesStock/static/icon/lookMoreArrow.png" mode="widthFix">
</image>
</view>
</block>
</view> </view>
<view v-if="selectCompanyFiles==2" class="branchList"> <view v-if="selectCompanyFiles==2" class="branchList">
<view class="item" v-for="(item,index) in branchList" :key="index"> <view class="item" v-for="(item,index) in branchList" :key="index">
@@ -248,8 +253,9 @@
<view v-if="selectInDepthAnalysis==0" class="strategicAnalysisList"> <view v-if="selectInDepthAnalysis==0" class="strategicAnalysisList">
<view class="section">核心定位</view> <view class="section">核心定位</view>
<view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.one_line_intro}}</view> <view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.one_line_intro}}</view>
<view class="section">投资亮点</view> <view class="section">投资亮点</view>
<view class="highlightsList"> <view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.investment_highlights}}</view>
<!-- <view class="highlightsList">
<view class="item flex"> <view class="item flex">
<image class="icon" src="" mode="widthFix"></image> <image class="icon" src="" mode="widthFix"></image>
<view class="flex1"> <view class="flex1">
@@ -257,9 +263,10 @@
<view class="content">背靠平安集团客户资源共享和交叉销售带来持续增长动力</view> <view class="content">背靠平安集团客户资源共享和交叉销售带来持续增长动力</view>
</view> </view>
</view> </view>
</view> </view> -->
<view class="section">商业模式</view> <view class="section">商业模式</view>
<view class="infoC"> <view v-if="qualitativeAnalysisInfo" class="corePositionC">{{qualitativeAnalysisInfo.core_positioning.business_model_desc}}</view>
<!-- <view class="infoC">
<view class="title">零售银行核心驱动</view> <view class="title">零售银行核心驱动</view>
<view class="content">以零售银行业务为核心驱动依托平安集团综合金融平台构建智能化移动化综合化三位一体发展模式</view> <view class="content">以零售银行业务为核心驱动依托平安集团综合金融平台构建智能化移动化综合化三位一体发展模式</view>
</view> </view>
@@ -286,7 +293,7 @@
<view v-if="qualitativeAnalysisInfo" class="infoC"> <view v-if="qualitativeAnalysisInfo" class="infoC">
<view class="title">战略举措</view> <view class="title">战略举措</view>
<view class="content">{{qualitativeAnalysisInfo.strategy.strategic_initiatives}}</view> <view class="content">{{qualitativeAnalysisInfo.strategy.strategic_initiatives}}</view>
</view> </view> -->
<view class="section flex"> <view class="section flex">
<view>竞争地位分析</view> <view>竞争地位分析</view>
@@ -327,13 +334,13 @@
</view> </view>
</view> </view>
<template v-if="selectInDepthAnalysis==1"> <template v-if="selectInDepthAnalysis==1">
<ywjg-view></ywjg-view> <ywjg-view :businessSegmentList="businessSegmentList"></ywjg-view>
</template> </template>
<template v-if="selectInDepthAnalysis==2"> <template v-if="selectInDepthAnalysis==2">
<cyl-view @detail="detailShow(0)"></cyl-view> <cyl-view @detail="detailShow(0)"></cyl-view>
</template> </template>
<template v-if="selectInDepthAnalysis==3"> <template v-if="selectInDepthAnalysis==3">
<fzlc-view @detail="detailShow(1)"></fzlc-view> <fzlc-view :keyFactorsInfo="keyFactorsInfo" :keyFactorsList="keyFactorsList" :timelineInfo="timelineInfo" :timelineList="timelineList" @detail="detailShow(1)"></fzlc-view>
</template> </template>
</block> </block>
<block v-if="selectTab==2"> <block v-if="selectTab==2">
@@ -379,7 +386,7 @@
<uni-popup ref="industryRankPop" type="bottom"> <uni-popup ref="industryRankPop" type="bottom">
<view class="industryRankPop relative"> <view class="industryRankPop relative">
<view class="popTitle">行业排名</view> <view class="popTitle">行业排名</view>
<view class="closeC absolute"> <view class="closeC absolute" @click="clickCloseIndustryRankPop()">
<image class="icon" src="/static/icon/home/close.png" mode="widthFix"></image> <image class="icon" src="/static/icon/home/close.png" mode="widthFix"></image>
</view> </view>
<view class="rankList"> <view class="rankList">
@@ -548,8 +555,8 @@
<script> <script>
import { inject } from 'vue' import { inject } from 'vue'
import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, industryRankList, managementTeam, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList } from '@/request/api' import { actualControl, branchesList, companyAnnouncementsList, comprehensiveAnalysis, eventList, industryRankList, keyFactorsTimeline, managementTeam, ownershipConcentration, quoteDetailsInfo, stockBasicInfo, topCirculatingShareholdersList, topShareholdersList } from '@/request/api'
import { getLocalDate, getNumStr, getRateUpOrDown } from '@/utils/util' import { getLastNameStr, getLocalDate, getNumStr, getRateUpOrDown } from '@/utils/util'
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js'); const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
export default { export default {
@@ -596,6 +603,7 @@
} }
], //公司档案分类 ], //公司档案分类
actualControlInfo:null, //实际控制信息 actualControlInfo:null, //实际控制信息
concentrationList:[], //股权集中度列表
topShareholdersList:[], //十大股东列表 topShareholdersList:[], //十大股东列表
topCirculatingShareholdersList:[], //十大流通股东列表 topCirculatingShareholdersList:[], //十大流通股东列表
managementList:[], //管理团队列表 managementList:[], //管理团队列表
@@ -732,6 +740,11 @@
}, },
] ]
}, },
businessSegmentList:[], //业务板块详情
keyFactorsInfo:null, //关键因素统计信息
keyFactorsList:[], //关键因素
timelineInfo:null, //发展时间线统计信息
timelineList:[], //发展时间线
caiWuList: [{ caiWuList: [{
title: '主营数据' title: '主营数据'
}, },
@@ -756,14 +769,16 @@
companyAnnouncementList:[], //公司公告数据 companyAnnouncementList:[], //公司公告数据
getLocalDate:getLocalDate, getLocalDate:getLocalDate,
getRateUpOrDown:getRateUpOrDown, getRateUpOrDown:getRateUpOrDown,
getNumStr:getNumStr getNumStr:getNumStr,
getLastNameStr:getLastNameStr
} }
}, },
onLoad() { onLoad() {
this.contentTop = this.navH + (20 + 70 + 30) / 750 * inject('windowWidth') this.contentTop = this.navH + (20 + 70 + 30) / 750 * inject('windowWidth')
this.getStockBasicInfoData() this.getStockBasicInfoData()
this.getQuoteDetailsData() this.getQuoteDetailsData()
this.getActualControl() this.getActualControlData()
this.getOwnershipConcentration()
this.getTopShareholdersData() this.getTopShareholdersData()
this.getTopCirculatingShareholdersData() this.getTopCirculatingShareholdersData()
}, },
@@ -774,7 +789,6 @@
// chart.on('click',function (params) { // chart.on('click',function (params) {
// console.log(params) // console.log(params)
// }) // })
console.log(chart)
chart.setOption(this.option2) chart.setOption(this.option2)
}, },
/** /**
@@ -831,6 +845,9 @@
clickInDepthAnalysisItem(index) { clickInDepthAnalysisItem(index) {
if (this.selectInDepthAnalysis != index) { if (this.selectInDepthAnalysis != index) {
this.selectInDepthAnalysis = index this.selectInDepthAnalysis = index
if (index==3) {
this.getKeyFactorsTimelineData()
}
} }
}, },
/** /**
@@ -910,7 +927,7 @@
/** /**
* 获取实际控制人数据 * 获取实际控制人数据
*/ */
getActualControl() { getActualControlData() {
let code = this.stockCode let code = this.stockCode
if (this.keywords) { if (this.keywords) {
code = this.keywords code = this.keywords
@@ -921,6 +938,20 @@
}) })
}, },
/**
* 获取股权集中度数据
*/
getOwnershipConcentration() {
let code = this.stockCode
if (this.keywords) {
code = this.keywords
}
ownershipConcentration(code).then(res=>{
this.actualControlInfo = res.data
}).catch(error=>{
})
},
/** /**
* 获取十大股东列表 * 获取十大股东列表
*/ */
@@ -960,13 +991,38 @@
} }
managementTeam(code,{active_only:true}).then(res=>{ managementTeam(code,{active_only:true}).then(res=>{
let data = res.data let data = res.data
this.managementList = data.reduce((acc, item) => { let arr = ['高管','董事','监事','其他']
if (!acc[item.position_category_code]) { let list = []
acc[item.position_category_code] = []; for (let item of arr) {
} list.push({key:item,list:[]})
acc[item.position_category_code].push(item); }
this.managementList = data.reduce((acc,item) => {
for (let item1 of acc) {
if(item.position_category.indexOf(item1.key)>-1)
{
let keyIndex = -1
for (let item2 of acc) {
if(item1.key==item2.key){
keyIndex = acc.indexOf(item2)
break
}
}
if(keyIndex>-1)
{
acc[keyIndex].list.push(item)
}else
{
acc.push({key:item1,list:[item]})
}
}
}
if(item.position_category.indexOf(arr[0])>-1&&item.position_category.indexOf(arr[1])>-1&&item.position_category.indexOf(arr[2])>-1)
{
// acc.key = '其他'
// acc.list = item
}
return acc; return acc;
}, {}); }, list);
}).catch(error=>{ }).catch(error=>{
}) })
@@ -997,6 +1053,7 @@
this.qualitativeAnalysisInfo = res.data.qualitative_analysis this.qualitativeAnalysisInfo = res.data.qualitative_analysis
this.competitivePositionInfo = res.data.competitive_position this.competitivePositionInfo = res.data.competitive_position
this.mainCompetitorsList = this.competitivePositionInfo.analysis.main_competitors.split(',') this.mainCompetitorsList = this.competitivePositionInfo.analysis.main_competitors.split(',')
let marketPosition = this.competitivePositionInfo.scores.market_position let marketPosition = this.competitivePositionInfo.scores.market_position
this.scoreList[0].score = marketPosition this.scoreList[0].score = marketPosition
let technology = this.competitivePositionInfo.scores.technology let technology = this.competitivePositionInfo.scores.technology
@@ -1018,6 +1075,7 @@
setTimeout(function() { setTimeout(function() {
that.init() that.init()
}, 1000); }, 1000);
this.businessSegmentList = res.data.business_segments;
}).catch(error=>{ }).catch(error=>{
}) })
@@ -1036,6 +1094,23 @@
}) })
}, },
/**
* 获取关键因素和发展时间线数据
*/
getKeyFactorsTimelineData() {
let code = this.stockCode
if (this.keywords) {
code = this.keywords
}
keyFactorsTimeline(code).then(res=>{
this.keyFactorsInfo = res.data.key_factors
this.keyFactorsList = res.data.key_factors.categories
this.timelineInfo = res.data.development_timeline.statistics
this.timelineList = res.data.development_timeline.events
}).catch(error=>{
})
},
/** /**
* 获取新闻动态数据 * 获取新闻动态数据
*/ */

View File

@@ -120,11 +120,11 @@ export const priceTimeline = (id,param) => get('/concept-api/concept/'+id+'/pric
/** /**
* 概念新闻 * 概念新闻
*/ */
export const conceptNews = param => get('/news-api/search_china_news',param) export const conceptNews = param => get('/news-api/search_china_news',param,true)
/** /**
* 概念研报 * 概念研报
*/ */
export const conceptReport = param => get('/report-api/search',param) export const conceptReport = param => get('/report-api/search',param,true)
/** /**
* 获取某一天的事件列表 * 获取某一天的事件列表
@@ -183,11 +183,16 @@ export const comprehensiveAnalysis = code => get('/api/company/comprehensive-ana
* 行业排名列表 * 行业排名列表
*/ */
export const industryRankList = code => get('/api/financial/industry-rank/'+code,null,true) export const industryRankList = code => get('/api/financial/industry-rank/'+code,null,true)
/**
* 关键因素和时间线
*/
export const keyFactorsTimeline = code => get('/api/company/key-factors-timeline/'+code,null,true)
/** /**
* 公司公告 * 公司公告
*/ */
export const companyAnnouncementsList = (code,param) => get('/api/stock/'+code+'/announcements',param,true) export const companyAnnouncementsList = (code,param) => get('/api/stock/'+code+'/announcements',param,true)
/** /**
* 用户信息 * 用户信息
*/ */

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

@@ -0,0 +1 @@
{"version":3,"file":"ywjg-view.js","sources":["components/ywjg-view/ywjg-view.vue","/Users/shangzhengjie/Desktop/JiaZhiQianYan/components/ywjg-view/ywjg-view.vue?type=component"],"sourcesContent":["<template>\r\n\t<view class=\"ywjg_list\">\r\n\t\t<view>\n\t\t\t<block v-for=\"(item,index) in businessStructureList\" :key=\"index\"></block>\r\n\t\t\t<view style=\"margin: 25rpx 20rpx; color: #2B2B2B; font-size: 28rpx; font-weight: bold;\">\r\n\t\t\t\t{{item.title}}\r\n\t\t\t</view>\r\n\t\t\t<view v-for=\"(child, row) in item.list\" :key=\"row\" class=\"ywjg_item_1\">\r\n\t\t\t\t<view style=\"display: flex; align-items: center;\">\r\n\t\t\t\t\t<view style=\"font-size: 28rpx; font-weight: bold; margin-right: 10rpx;\">\r\n\t\t\t\t\t\t{{child.title}}\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view v-if=\"child.is_hexin\"\r\n\t\t\t\t\t\tstyle=\"background-color: #F2C369; border-radius: 5rpx; font-size: 20rpx; padding: 0 5rpx;\">\r\n\t\t\t\t\t\t核心业务</view>\r\n\t\t\t\t</view>\r\n\t\t\t\t<view style=\"display: flex; align-items: center; justify-content: space-between; font-weight: 500;\">\r\n\t\t\t\t\t<view style=\"display: flex; align-items: center; color: #F2C369; font-size: 20rpx;\">\r\n\t\t\t\t\t\t<view style=\"border: 1rpx solid #F2C369; border-radius: 5rpx; padding: 0 5rpx;\">\r\n\t\t\t\t\t\t\t营收占比:{{child.yszb}}%</view>\r\n\t\t\t\t\t\t<view\r\n\t\t\t\t\t\t\tstyle=\"border: 1rpx solid #F2C369; border-radius: 5rpx; padding: 0 5rpx; margin-left: 10rpx;\">\r\n\t\t\t\t\t\t\t毛利率:{{child.mlv}}%</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t\t<view>\r\n\t\t\t\t\t\t<view style=\"color: #999999; font-size: 24rpx;\">营业收入</view>\r\n\t\t\t\t\t\t<view style=\"font-weight: bold; font-size: 30rpx; color: #BB8520; margin-top: 10rpx;\">\r\n\t\t\t\t\t\t\t{{child.yysr > 10000 ? child.yysr / 10000 + '亿' : child.yysr + '万'}}元\r\n\t\t\t\t\t\t</view>\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t\t<view style=\"display: flex;\">\r\n\t\t\t\t\t<view\r\n\t\t\t\t\t\tstyle=\"color: white; display: flex; align-items: center; justify-content: center; padding: 5rpx 10rpx;font-size: 20rpx; border-radius: 5rpx;\"\r\n\t\t\t\t\t\t:style=\"{backgroundColor: child.zz > 0 ? '#EC3440' : '#345423'}\">增长:\r\n\t\t\t\t\t\t{{child.zz > 0 ? '+' + child.zz : child.zz}}%\r\n\t\t\t\t\t</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t\t<view style=\"font-weight: 500;\">\r\n\t\t\t\t<view v-for=\"(item,index) in businessSegmentList\" :key=\"item\"\r\n\t\t\t\t\tstyle=\"background-color: #FAFAFC; color: #2B2B2B; font-size: 22rpx; margin: 20rpx; background-color: #FAFAFC; border-radius: 10rpx; padding: 25rpx 20rpx;\">\r\n\t\t\t\t\t<view style=\"font-size: 24rpx;\">{{item.segment_name}}</view>\r\n\t\t\t\t\t<view style=\"color: #BB8520; font-weight: bold; margin: 10rpx 0;\">业务描述</view>\r\n\t\t\t\t\t<view style=\"color: #71675D;\">{{item.segment_description}}</view>\n\t\t\t\t\t<view style=\"color: #BB8520; font-weight: bold; margin: 10rpx 0;\">竞争地位</view>\n\t\t\t\t\t<view style=\"color: #71675D;\">{{item.competitive_position}}</view>\n\t\t\t\t\t<view style=\"color: #BB8520; font-weight: bold; margin: 10rpx 0;\">未来潜力</view>\n\t\t\t\t\t<view style=\"color: #71675D;\">{{item.future_potential}}</view>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t</view>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t\tname: \"ywjg-view\",\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\t\r\n\t\t\t};\n\t\t\t\r\n\t\t},\n\t\tprops:{\n\t\t\tbusinessStructureList:Array,\t//业务结构分析\n\t\t\tbusinessSegmentList:Array\t\t//业务板块详情\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"less\">\r\n\t.ywjg_list {\r\n\t\tcolor: #2B2B2B;\r\n\r\n\t\t.title {\r\n\t\t\tfont-size: 28rpx;\r\n\t\t\tfont-weight: bold;\r\n\t\t}\r\n\r\n\t\t.ywjg_item_1 {\r\n\t\t\tfont-weight: 500;\r\n\t\t\tmargin: 20rpx;\r\n\t\t\tbackground-color: #FAFAFC;\r\n\t\t\tborder-radius: 10rpx;\r\n\t\t\tpadding: 25rpx 20rpx;\r\n\t\t\tbox-sizing: border-box;\r\n\t\t}\r\n\t}\r\n</style>","import Component from '/Users/shangzhengjie/Desktop/JiaZhiQianYan/components/ywjg-view/ywjg-view.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;AAwDC,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EACN,OAAO;AACN,WAAO;EAIP;AAAA,EACD,OAAM;AAAA,IACL,uBAAsB;AAAA;AAAA,IACtB,qBAAoB;AAAA;AAAA,EACrB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnED,GAAG,gBAAgB,SAAS;"}

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

@@ -0,0 +1 @@
{"version":3,"file":"newsDetails.js","sources":["pages/concept/newsDetails/newsDetails.vue","pages/concept/newsDetails/newsDetails.vue?type=page"],"sourcesContent":["<template>\n\t<view>\n\t\t<navBar leftText=\"历史时间轴\" :hideNavBg=\"true\"></navBar>\n\t\t<image class=\"topBg absolute\" src=\"/static/image/index/conceptTopBg.png\" mode=\"widthFix\"></image>\n\t\t<view v-if=\"newsInfo\" class=\"contentC fixed\" :style=\"'top: '+navH+'px;'\">\n\t\t\t<view class=\"title\">{{newsInfo.title}}</view>\n\t\t\t<view class=\"labelTimeC \">\n\t\t\t\t<text class=\"time\">{{getLocalTime(newsInfo.published_time)}}</text>\n\t\t\t</view>\n\t\t\t<view class=\"content\">\n\t\t\t\t<ua-markdown :source=\"newsInfo.detail\" />\n\t\t\t</view>\n\t\t</view>\n\t</view>\n</template>\n\n<script>\n\timport { inject } from 'vue';\n\timport { getLocaleTime } from '@/utils/util';\n\t\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tnavH:inject('navHeight'),\n\t\t\t\tnewsInfo:null,\n\t\t\t\tgetLocalTime:getLocaleTime\n\t\t\t}\n\t\t},\n\t\tonLoad(e) {\n\t\t\tthis.newsInfo = JSON.parse(decodeURIComponent(e.info)) \n\t\t}\n\t}\n\t\n</script>\n\n<style lang=\"less\">\npage \n{\n\tbackground-color: #070707;\n}\n.topBg \n{\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: auto;\n}\t \n.contentC \n{\n\tbackground-color: #FFF9F5;\n\tmargin: 20rpx 25rpx 0;\n\tpadding: 28rpx 30rpx;\n\tleft: 0;\n\tright: 0;\n\tbottom: 100rpx;\n\tborder-radius: 10rpx;\n\toverflow-y: scroll;\n\t.title \n\t{\n\t\tmargin: 0 10rpx;\n\t\tfont-size: 30rpx;\n\t\tfont-weight: bold;\n\t\tcolor: #2B2B2B;\n\t}\n\t.labelTimeC {\n\t\tmargin: 0 10rpx;\n\t\t.time \n\t\t{\n\t\t\tfont-size: 24rpx;\n\t\t\tfont-weight: 500;\n\t\t\tcolor: #666;\n\t\t}\n\t}\n\t.content \n\t{\n\t\tmargin-top: 30rpx;\n\t}\n}\n</style>\n","import MiniProgramPage from '/Users/shangzhengjie/Desktop/JiaZhiQianYan/pages/concept/newsDetails/newsDetails.vue'\nwx.createPage(MiniProgramPage)"],"names":["inject","getLocaleTime"],"mappings":";;;;AAoBC,MAAK,YAAU;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,MAAKA,cAAM,OAAC,WAAW;AAAA,MACvB,UAAS;AAAA,MACT,cAAaC,WAAY;AAAA,IAC1B;AAAA,EACA;AAAA,EACD,OAAO,GAAG;AACT,SAAK,WAAW,KAAK,MAAM,mBAAmB,EAAE,IAAI,CAAC;AAAA,EACtD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BD,GAAG,WAAW,eAAe;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"reportDetails.js","sources":["pages/concept/reportDetails/reportDetails.vue","pages/concept/reportDetails/reportDetails.vue?type=page"],"sourcesContent":["<template>\n\t<view>\n\t\t<navBar leftText=\"历史时间轴\" :hideNavBg=\"true\"></navBar>\n\t\t<image class=\"topBg absolute\" src=\"/static/image/index/conceptTopBg.png\" mode=\"widthFix\"></image>\n\t\t<view v-if=\"reportInfo\" class=\"contentC fixed\" :style=\"'top: '+navH+'px;'\">\n\t\t\t<view class=\"title\">{{reportInfo.report_title}}</view>\n\t\t\t<view class=\"labelTimeC \">\n\t\t\t\t<text class=\"time\">{{getLocalTime(reportInfo.declare_date)}}</text>\n\t\t\t</view>\n\t\t\t<view class=\"content\">\n\t\t\t\t<!-- <ua-markdown :source=\"content\" /> -->\n\t\t\t\t<text>{{content ? content : reportInfo.content}}</text>\n\t\t\t</view>\n\t\t</view>\n\t</view>\n</template>\n\n<script >\n\timport { inject } from 'vue';\n\timport { getLocaleTime } from '@/utils/util';\n\t\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tnavH:inject('navHeight'),\n\t\t\t\treportInfo:null,\n\t\t\t\tgetLocalTime:getLocaleTime,\n\t\t\t\tcontent:''\n\t\t\t}\n\t\t},\n\t\tonLoad(e) {\n\t\t\tthis.reportInfo = JSON.parse(decodeURIComponent(e.info)) \n\t\t\tthis.reportInfo.content = this.reportInfo.content.replace(/'/g, '\"');\n\t\t\tconsole.log(JSON.parse(this.reportInfo.content))\n\t\t\tthis.content = JSON.parse(this.reportInfo.content).content\n\t\t}\n\t}\n</script>\n\n<style lang=\"less\">\n page\n {\n\tbackground-color: #070707;\n }\n .topBg \n {\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: auto;\n }\t \n .contentC \n {\n\tbackground-color: #FFF9F5;\n\tmargin: 20rpx 25rpx 0;\n\tpadding: 28rpx 30rpx;\n\tleft: 0;\n\tright: 0;\n\tbottom: 100rpx;\n\tborder-radius: 10rpx;\n\toverflow-y: scroll;\n\t.title \n\t{\n\t\tmargin: 0 10rpx;\n\t\tfont-size: 30rpx;\n\t\tfont-weight: bold;\n\t\tcolor: #2B2B2B;\n\t}\n\t.labelTimeC {\n\t\tmargin: 0 10rpx;\n\t\t.time \n\t\t{\n\t\t\tfont-size: 24rpx;\n\t\t\tfont-weight: 500;\n\t\t\tcolor: #666;\n\t\t}\n\t}\n\t.content \n\t{\n\t\tmargin-top: 30rpx;\n\t}\n } \n</style>\n","import MiniProgramPage from '/Users/shangzhengjie/Desktop/JiaZhiQianYan/pages/concept/reportDetails/reportDetails.vue'\nwx.createPage(MiniProgramPage)"],"names":["inject","getLocaleTime","uni"],"mappings":";;;;AAqBC,MAAK,YAAU;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,MAAKA,cAAM,OAAC,WAAW;AAAA,MACvB,YAAW;AAAA,MACX,cAAaC,WAAa;AAAA,MAC1B,SAAQ;AAAA,IACT;AAAA,EACA;AAAA,EACD,OAAO,GAAG;AACT,SAAK,aAAa,KAAK,MAAM,mBAAmB,EAAE,IAAI,CAAC;AACvD,SAAK,WAAW,UAAU,KAAK,WAAW,QAAQ,QAAQ,MAAM,GAAG;AACnEC,wBAAA,MAAA,OAAA,uDAAY,KAAK,MAAM,KAAK,WAAW,OAAO,CAAC;AAC/C,SAAK,UAAU,KAAK,MAAM,KAAK,WAAW,OAAO,EAAE;AAAA,EACpD;AACD;;;;;;;;;;;;;;;;;;;;;;;;;ACnCD,GAAG,WAAW,eAAe;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"version":3,"file":"conceptDetails.js","sources":["pages/index/conceptDetails/conceptDetails.vue","pages/index/conceptDetails/conceptDetails.vue?type=page"],"sourcesContent":["<template>\n\t<view>\n\t\t<web-view :src=\"url\"></web-view>\n\t</view>\n</template>\n\n<script>\n\timport { inject } from 'vue';\n\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tnavH:inject('navHeight'),\n\t\t\t\turl:''\n\t\t\t}\n\t\t},\n\t\tonLoad(e) {\n\t\t\tif(e.name)\n\t\t\t{\n\t\t\t\tthis.url = 'https://valuefrontier.cn/htmls/concept/'+e.name+'/'\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t\n\t\t}\n\t}\n</script>\n\n<style lang=\"less\">\n.topBg\n{\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: auto;\n}\n.conceptDetailsC \n{\n\tbackground-color: white;\n\tmargin-top: 10rpx;\n\tpadding: 20rpx 25rpx;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tborder-radius: 20rpx 20rpx 0 0;\n\t.title \n\t{\n\t\tfont-size: 30rpx;\n\t\tfont-weight: bold;\n\t\tcolor: #222;\n\t}\n\t.time \n\t{\n\t\tmargin-top: 10rpx;\n\t\tfont-size: 22rpx;\n\t\tfont-weight: 500;\n\t\tcolor: #AAA;\n\t}\n\t.content \n\t{\n\t\tmargin-top: 30rpx;\n\t\tfont-size: 26rpx;\n\t\tfont-weight: 500;\n\t\tcolor: #666;\n\t}\n}\n</style>\n","import MiniProgramPage from '/Users/shangzhengjie/Desktop/JiaZhiQianYan/pages/index/conceptDetails/conceptDetails.vue'\nwx.createPage(MiniProgramPage)"],"names":["inject"],"mappings":";;AASC,MAAK,YAAU;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,MAAKA,cAAM,OAAC,WAAW;AAAA,MACvB,KAAI;AAAA,IACL;AAAA,EACA;AAAA,EACD,OAAO,GAAG;AACT,QAAG,EAAE,MACL;AACC,WAAK,MAAM,4CAA0C,EAAE,OAAK;AAAA,IAC7D;AAAA,EACA;AAAA,EACD,SAAS,CAET;AACD;;;;;;;ACxBD,GAAG,WAAW,eAAe;"}

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

@@ -0,0 +1 @@
{"version":3,"file":"feedback.js","sources":["pages/mine/feedback/feedback.vue","pages/mine/feedback/feedback.vue?type=page"],"sourcesContent":["<template>\n\t<view>\n\t\t<navBar leftText=\"意见反馈\"></navBar>\n\t\t<image class=\"topBg absolute\" src=\"/static/image/index/conceptTopBg.png\" mode=\"widthFix\"></image>\n\t\t<view class=\"feedbackC fixed\" :style=\"'top:'+navH+'px;'\">\n\t\t\t<view class=\"textareaC\">\n\t\t\t\t<textarea v-model=\"content\" placeholder=\"请输入您要反馈的问题200 字以内)\" placeholder-style=\"color:#C5C5C5\" maxlength=\"200\"></textarea>\n\t\t\t</view>\n\t\t</view>\n\t\t<view class=\"submit fixed\" @click=\"clickSubmit()\">提交</view>\n\t</view>\n</template>\n\n<script>\n\timport { inject } from 'vue';\n\timport { feedback } from '@/request/api';\n\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tnavH:inject('navHeight'),\n\t\t\t\tcontent:'',\n\t\t\t\t\n\t\t\t}\n\t\t},\n\t\tonLoad() {\n\t\t\t\n\t\t},\n\t\tmethods: {\n\t\t\tclickSubmit()\n\t\t\t{\n\t\t\t\tif(!this.content)\n\t\t\t\t{\n\t\t\t\t\tuni.showToast({\n\t\t\t\t\t\ttitle:'请输入您要反馈的问题',\n\t\t\t\t\t\ticon:'none'\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tlet param = {content:this.content,isJson:1}\n\t\t\t\tfeedback(param).then(res=>{\n\t\t\t\t\tif(res.code==200)\n\t\t\t\t\t{\n\t\t\t\t\t\tuni.showToast({\n\t\t\t\t\t\t\ttitle:res.message,\n\t\t\t\t\t\t\ticon:'none'\n\t\t\t\t\t\t})\n\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\tuni.navigateBack()\n\t\t\t\t\t\t}, 1000);\n\t\t\t\t\t}else \n\t\t\t\t\t\tuni.showToast({\n\t\t\t\t\t\t\ttitle:res.message,\n\t\t\t\t\t\t\ticon:'none'\n\t\t\t\t\t\t})\n\t\t\t\t}).catch(error=>{\n\t\t\t\t\t\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n</script>\n\n<style lang=\"less\">\n.topBg\n{\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: auto;\n}\n.feedbackC\n{\n\tbackground-color: white;\n\tmargin-top: 10rpx;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tpadding: 43rpx 25rpx 0;\n\tborder-radius: 20rpx 20rpx 0 0;\n\t.textareaC\n\t{\n\t\tbackground-color: #F3F6F9;\n\t\tborder-radius: 20rpx;\n\t\tpadding: 20rpx 27rpx;\n\t\ttextarea \n\t\t{\n\t\t\twidth: 100%;\n\t\t\theight: 400rpx;\n\t\t\tfont-size: 24rpx;\n\t\t\tfont-weight: 500;\n\t\t}\n\t}\n}\n.submit \n{\n\tbackground-color: #F97316;\n\tleft: 0;\n\tright: 0;\n\tbottom: 73rpx;\n\tmargin: 0 25rpx;\n\tline-height: 80rpx;\n\tborder-radius: 20rpx;\n\tfont-size: 26rpx;\n\tfont-weight: 500;\n\tcolor: white;\n\ttext-align: center;\n}\n</style>\n","import MiniProgramPage from '/Users/shangzhengjie/Desktop/JiaZhiQianYan/pages/mine/feedback/feedback.vue'\nwx.createPage(MiniProgramPage)"],"names":["inject","uni","feedback"],"mappings":";;;;AAiBC,MAAK,YAAU;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,MAAKA,cAAM,OAAC,WAAW;AAAA,MACvB,SAAQ;AAAA,IAET;AAAA,EACA;AAAA,EACD,SAAS;AAAA,EAER;AAAA,EACD,SAAS;AAAA,IACR,cACA;AACC,UAAG,CAAC,KAAK,SACT;AACCC,sBAAAA,MAAI,UAAU;AAAA,UACb,OAAM;AAAA,UACN,MAAK;AAAA,SACL;AACD;AAAA,MACD;AACA,UAAI,QAAQ,EAAC,SAAQ,KAAK,SAAQ,QAAO,EAAC;AAC1CC,kBAAAA,SAAS,KAAK,EAAE,KAAK,SAAK;AACzB,YAAG,IAAI,QAAM,KACb;AACCD,wBAAAA,MAAI,UAAU;AAAA,YACb,OAAM,IAAI;AAAA,YACV,MAAK;AAAA,WACL;AACD,qBAAW,WAAW;AACrBA,0BAAAA,MAAI,aAAa;AAAA,UACjB,GAAE,GAAI;AAAA,QACP;AACAA,wBAAAA,MAAI,UAAU;AAAA,YACb,OAAM,IAAI;AAAA,YACV,MAAK;AAAA,WACL;AAAA,MACH,CAAC,EAAE,MAAM,WAAO;AAAA,OAEf;AAAA,IACF;AAAA,EACD;AACD;;;;;;;;;;;;;;;;;;;;;;AC3DD,GAAG,WAAW,eAAe;"}

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

@@ -0,0 +1 @@
{"version":3,"file":"web.js","sources":["pages/mine/web/web.vue","pages/mine/web/web.vue?type=page"],"sourcesContent":["<template>\n\t<view>\n\t\t<navBar :leftText=\"navTitle\"></navBar>\n\t\t<image class=\"topBg absolute\" src=\"/static/image/index/conceptTopBg.png\" mode=\"widthFix\"></image>\n\t\t<view class=\"contentC fixed\" :style=\"'top:'+navH+'px;'\">\n\t\t\t<text>{{webContent}}</text>\n\t\t</view>\n\t</view>\n</template>\n\n<script>\n\timport { inject } from 'vue'\n\timport { agreements } from '@/request/api'\n\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tnavH:inject('navHeight'),\n\t\t\t\tnavTitle:'',\n\t\t\t\ttype:'',\t//1.关于我们2.服务条款3.隐私协议\n\t\t\t\twebContent:'',\n\t\t\t}\n\t\t},\n\t\tonLoad(e) {\n\t\t\tif(e.type)\n\t\t\t{\n\t\t\t\tthis.type = e.type\n\t\t\t\tthis.getUserInfoData()\n\t\t\t\tif(e.type==1)\n\t\t\t\t{\n\t\t\t\t\tthis.navTitle = '关于我们'\n\t\t\t\t}else if(e.type==2)\n\t\t\t\t{\n\t\t\t\t\tthis.navTitle = '服务条款'\n\t\t\t\t}else if(e.type==3)\n\t\t\t\t{\n\t\t\t\t\tthis.navTitle = '隐私协议'\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * 获取用户信息数据\n\t\t\t */\n\t\t\tgetUserInfoData()\n\t\t\t{\n\t\t\t\tagreements().then(res=>{\n\t\t\t\t\tif(res.code==200)\n\t\t\t\t\t{\n\t\t\t\t\t\tif(this.type==1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t//关于我们\n\t\t\t\t\t\t\tthis.webContent = res.data.agreements.about_us.content\n\t\t\t\t\t\t}else if(this.type==2)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t//服务条款\n\t\t\t\t\t\t\tthis.webContent = res.data.agreements.service_terms.content\n\t\t\t\t\t\t}else if(this.type==3)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t//隐私协议\n\t\t\t\t\t\t\tthis.webContent = res.data.agreements.privacy_policy.content\n\t\t\t\t\t\t}\n\t\t\t\t\t}else \n\t\t\t\t\t\twx.showToast({\n\t\t\t\t\t\t\ttitle:res.message,\n\t\t\t\t\t\t})\n\t\t\t\t}).catch(error=>{\n\t\t\t\t\t\n\t\t\t\t})\n\t\t\t}\t\n\t\t}\n\t}\n</script>\n\n<style lang=\"less\">\n.topBg\n{\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: auto;\n}\n.contentC \n{\n\tbackground-color: white;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tmargin-top: 10rpx;\n\tpadding: 50rpx 25rpx;\n\toverflow-y: scroll;\n}\n</style>\n","import MiniProgramPage from '/Users/shangzhengjie/Desktop/JiaZhiQianYan/pages/mine/web/web.vue'\nwx.createPage(MiniProgramPage)"],"names":["inject","agreements","wx"],"mappings":";;;;AAcC,MAAK,YAAU;AAAA,EACd,OAAO;AACN,WAAO;AAAA,MACN,MAAKA,cAAM,OAAC,WAAW;AAAA,MACvB,UAAS;AAAA,MACT,MAAK;AAAA;AAAA,MACL,YAAW;AAAA,IACZ;AAAA,EACA;AAAA,EACD,OAAO,GAAG;AACT,QAAG,EAAE,MACL;AACC,WAAK,OAAO,EAAE;AACd,WAAK,gBAAgB;AACrB,UAAG,EAAE,QAAM,GACX;AACC,aAAK,WAAW;AAAA,MACjB,WAAS,EAAE,QAAM,GACjB;AACC,aAAK,WAAW;AAAA,MACjB,WAAS,EAAE,QAAM,GACjB;AACC,aAAK,WAAW;AAAA,MACjB;AAAA,IACD;AAAA,EACA;AAAA,EACD,SAAS;AAAA;AAAA;AAAA;AAAA,IAIR,kBACA;AACCC,6BAAY,EAAC,KAAK,SAAK;AACtB,YAAG,IAAI,QAAM,KACb;AACC,cAAG,KAAK,QAAM,GACd;AAEC,iBAAK,aAAa,IAAI,KAAK,WAAW,SAAS;AAAA,UAChD,WAAS,KAAK,QAAM,GACpB;AAEC,iBAAK,aAAa,IAAI,KAAK,WAAW,cAAc;AAAA,UACrD,WAAS,KAAK,QAAM,GACpB;AAEC,iBAAK,aAAa,IAAI,KAAK,WAAW,eAAe;AAAA,UACtD;AAAA,QACA;AACAC,wBAAAA,KAAG,UAAU;AAAA,YACZ,OAAM,IAAI;AAAA,WACV;AAAA,MACH,CAAC,EAAE,MAAM,WAAO;AAAA,OAEf;AAAA,IACF;AAAA,EACD;AACD;;;;;;;;;;;;;;;;;;;;ACtED,GAAG,WAAW,eAAe;"}

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

@@ -0,0 +1 @@
{"version":3,"file":"posthog.config.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -0,0 +1 @@
{"version":3,"file":"events.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -0,0 +1 @@
{"version":3,"file":"analytics.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"constants.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}

View File

@@ -0,0 +1 @@
{"version":3,"file":"core.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"device.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"error-tracker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"http.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"identity.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"page-tracker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"performance-tracker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"queue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"reading-tracker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"search-tracker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"session.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"storage.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"user-tracker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}

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

@@ -0,0 +1 @@
{"version":3,"file":"share.js","sources":["utils/share.js"],"sourcesContent":["export default {\n\tcreated()\n\t{\n\t\t// #ifdef MP-WEIXIN\n\t\tuni.showShareMenu({\n\t\t\tmenus:['shareAppMessage','shareTimeline']\n\t\t})\n\t\t// #endif\n\t}\n}"],"names":["uni"],"mappings":";;AAAA,MAAe,QAAA;AAAA,EACd,UACA;AAECA,kBAAAA,MAAI,cAAc;AAAA,MACjB,OAAM,CAAC,mBAAkB,eAAe;AAAA,IAC3C,CAAG;AAAA,EAED;AACF;;"}

File diff suppressed because one or more lines are too long

109
unpackage/dist/dev/mp-weixin/app.js vendored Normal file
View File

@@ -0,0 +1,109 @@
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const common_vendor = require("./common/vendor.js");
const utils_share = require("./utils/share.js");
if (!Math) {
"./pages/index/index.js";
"./pages/invest/invest.js";
"./pages/concept/concept.js";
"./pages/mine/mine.js";
"./pages/mine/basicInfo/basicInfo.js";
"./pages/mine/feedback/feedback.js";
"./pages/mine/commentReply/commentReply.js";
"./pages/mine/investPreference/investPreference.js";
"./pages/index/eventDetails/eventDetails.js";
"./pages/invest/investDetails/investDetails.js";
"./pages/index/stockDetails/stockDetails.js";
"./pages/index/conceptDetails/conceptDetails.js";
"./pages/mine/followCollect/followCollect.js";
"./pages/mine/myLike/myLike.js";
"./pages/login/login.js";
"./pages/login/codeLogin/codeLogin.js";
"./pages/mine/web/web.js";
"./pages/concept/historicalTimeline/historicalTimeline.js";
"./pages/concept/hotStock/hotStock.js";
"./pages/concept/newsDetails/newsDetails.js";
"./pages/concept/reportDetails/reportDetails.js";
"./pages/geGuCenter/geGuCenter.js";
"./pages/ztfx/ztfx.js";
"./pages/geGuCenter/detail.js";
"./pagesMine/vip/vip.js";
"./pagesMine/vipMeal/vipMeal.js";
"./pagesStock/stockCenterDetails/stockCenterDetails.js";
"./pagesStock/stockCenterDetails/cwDetails.js";
"./pagesStock/stockCenterDetails/ztfx.js";
"./pagesStock/stockCenterDetails/bkydmx.js";
}
const _sfc_main = {
onLaunch: function() {
common_vendor.index.__f__("log", "at App.vue:6", "App Launch");
let windowInfo = common_vendor.index.getWindowInfo();
common_vendor.provide("statusHeight", windowInfo.statusBarHeight);
common_vendor.provide("windowWidth", windowInfo.windowWidth);
common_vendor.provide("safeAreaTop", windowInfo.safeArea.top);
var safeAreaBottom = windowInfo.safeAreaInsets.bottom;
let menuButtonInfo = common_vendor.index.getMenuButtonBoundingClientRect();
common_vendor.provide("navHeight", menuButtonInfo.bottom + menuButtonInfo.top - windowInfo.statusBarHeight);
common_vendor.provide("menuTop", menuButtonInfo.top);
common_vendor.provide("menuHeight", menuButtonInfo.height);
common_vendor.provide("isiPhoneX", safeAreaBottom == 34 ? true : false);
},
onShow: function() {
common_vendor.index.__f__("log", "at App.vue:19", "App Show");
this.updateManager();
},
onHide: function() {
common_vendor.index.__f__("log", "at App.vue:23", "App Hide");
},
globalData: {
mobileReg: /^1[3456789][0-9]{9}$/
},
methods: {
updateManager() {
const updateManager = common_vendor.index.getUpdateManager();
updateManager.onCheckForUpdate((res) => {
if (res.hasUpdate) {
common_vendor.index.showModal({
title: "更新提示",
content: "检测到新版本,是否下载新版本并重启小程序?",
success(res2) {
if (res2.confirm) {
updateManager.onUpdateReady(() => {
common_vendor.index.showModal({
title: "更新提示",
content: "新版本已经准备好,即将重启应用",
showCancel: false,
success(res3) {
if (res3.confirm) {
updateManager.applyUpdate();
}
}
});
});
}
},
fail(error) {
}
});
}
updateManager.onUpdateFailed(() => {
common_vendor.index.showModal({
title: "更新提示",
content: "新版本下载失败",
showCancel: false
});
});
});
}
}
};
function createApp() {
const app = common_vendor.createSSRApp(_sfc_main);
app.mixin(utils_share.share);
return {
app
};
}
createApp().app.mount("#app");
exports.createApp = createApp;
//# sourceMappingURL=../.sourcemap/mp-weixin/app.js.map

86
unpackage/dist/dev/mp-weixin/app.json vendored Normal file
View File

@@ -0,0 +1,86 @@
{
"pages": [
"pages/index/index",
"pages/invest/invest",
"pages/concept/concept",
"pages/mine/mine",
"pages/mine/basicInfo/basicInfo",
"pages/mine/feedback/feedback",
"pages/mine/commentReply/commentReply",
"pages/mine/investPreference/investPreference",
"pages/index/eventDetails/eventDetails",
"pages/invest/investDetails/investDetails",
"pages/index/stockDetails/stockDetails",
"pages/index/conceptDetails/conceptDetails",
"pages/mine/followCollect/followCollect",
"pages/mine/myLike/myLike",
"pages/login/login",
"pages/login/codeLogin/codeLogin",
"pages/mine/web/web",
"pages/concept/historicalTimeline/historicalTimeline",
"pages/concept/hotStock/hotStock",
"pages/concept/newsDetails/newsDetails",
"pages/concept/reportDetails/reportDetails",
"pages/geGuCenter/geGuCenter",
"pages/ztfx/ztfx",
"pages/geGuCenter/detail"
],
"subPackages": [
{
"root": "pagesMine",
"pages": [
"vip/vip",
"vipMeal/vipMeal"
]
},
{
"root": "pagesStock",
"pages": [
"stockCenterDetails/stockCenterDetails",
"stockCenterDetails/cwDetails",
"stockCenterDetails/ztfx",
"stockCenterDetails/bkydmx"
]
}
],
"window": {
"navigationStyle": "custom",
"backgroundColor": "#F8F8F8"
},
"tabBar": {
"custom": true,
"list": [
{
"iconPath": "/static/icon/tabbar/home.png",
"selectedIconPath": "/static/icon/tabbar/home_s.png",
"text": "首页",
"pagePath": "pages/index/index"
},
{
"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",
"text": "我的",
"pagePath": "pages/mine/mine"
}
]
},
"usingComponents": {}
}

78
unpackage/dist/dev/mp-weixin/app.wxss vendored Normal file
View File

@@ -0,0 +1,78 @@
/*每个页面公共css */
.flex
{
display: flex;
align-items: center;
}
.flexCenter
{
display: flex;
align-items: center;
justify-content: center;
}
.flexColumn
{
display: flex;
flex-direction: column;
}
.flexColumnCenter
{
display: flex;
flex-direction: column;
align-items: center;
}
.flex1
{
flex: 1;
}
.flexWrap
{
display: flex;
flex-wrap: wrap;
}
.flexStretch
{
display: flex;
align-items: stretch;
}
.between
{
justify-content: space-between;
}
.flexEnd
{
display: flex;
align-items: center;
justify-content: flex-end;
}
.relative
{
position: relative;
}
.absolute
{
position: absolute;
}
.fixed
{
position: fixed;
}
view,input,textarea,scroll-view,swiper
{
box-sizing: border-box;
}
button
{
background-color: transparent;
}
button::after
{
border: none;
}
::-webkit-scrollbar
{
color: transparent;
width: 0;
}
page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 B

View File

@@ -0,0 +1,240 @@
"use strict";
const _imports_0$6 = "/static/image/index/conceptTopBg.png";
const _imports_1$h = "/static/icon/home/conceptCenter/search.png";
const _imports_3$e = "/static/icon/home/conceptCenter/conceptScreenArrow.png";
const _imports_1$g = "/static/icon/home/downArrow.png";
const _imports_2$e = "/static/icon/home/upArrow.png";
const _imports_3$d = "/static/icon/home/browser.png";
const _imports_11$4 = "/static/icon/home/like.png";
const _imports_7$4 = "/static/icon/home/collect.png";
const _imports_2$d = "/static/icon/backBlack.png";
const _imports_9$4 = "/static/icon/home/dateRange.png";
const _imports_10$3 = "/static/icon/home/industrySearch.png";
const _imports_11$3 = "/static/icon/home/industry_s.png";
const _imports_12$3 = "/static/icon/home/level_s.png";
const _imports_2$c = "/static/icon/invest/upArrow.png";
const _imports_4$c = "/static/icon/invest/downArrow.png";
const _imports_4$b = "/static/image/index/noData.png";
const _imports_5$7 = "/static/icon/home/monthLeftArrow.png";
const _imports_6$2 = "/static/icon/home/monthRightArrow.png";
const _imports_2$b = "/static/icon/home/conceptCenter/sortType.png";
const _imports_4$a = "/static/icon/home/conceptCenter/transactionDate.png";
const _imports_1$f = "/static/icon/home/conceptCenter/timeAxis.png";
const _imports_15$2 = "/static/icon/home/close.png";
const _imports_7$3 = "/static/icon/home/conceptCenter/statistics.png";
const _imports_8$4 = "/static/icon/home/conceptCenter/rank1.png";
const _imports_9$3 = "/static/icon/home/conceptCenter/rank2.png";
const _imports_10$2 = "/static/icon/home/conceptCenter/rank3.png";
const _imports_11$2 = "/static/icon/home/conceptCenter/rankChg.png";
const _imports_12$2 = "/static/icon/home/conceptCenter/calendar.png";
const _imports_13$2 = "/static/icon/home/conceptCenter/browse.png";
const _imports_12$1 = "/static/icon/home/sortArrow.png";
const _imports_0$5 = "/static/icon/home/conceptCenter/pre.png";
const _imports_1$e = "/static/icon/home/conceptCenter/next.png";
const _imports_13$1 = "/static/icon/home/conceptCenter/vipPopIcon.png";
const _imports_14$1 = "/static/icon/home/conceptCenter/visitModule.png";
const _imports_15$1 = "/static/icon/home/conceptCenter/free_s.png";
const _imports_16$2 = "/static/icon/home/conceptCenter/pro_s.png";
const _imports_1$d = "/static/icon/mine/infoArrow.png";
const _imports_2$a = "/static/image/mine/vipBg.png";
const _imports_3$c = "/static/icon/mine/menuArrow.png";
const _imports_4$9 = "/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_1$b = "/static/icon/home/conceptCenter/lock.png";
const _imports_3$b = "/static/icon/home/expectScore.png";
const _imports_4$8 = "/static/icon/home/expectScoreTips.png";
const _imports_5$6 = "/static/icon/home/expectScoreDot.png";
const _imports_8$3 = "/static/icon/home/eventDetails/like.png";
const _imports_9$2 = "/static/icon/home/eventDetails/collect.png";
const _imports_4$7 = "/static/icon/home/collect_s.png";
const _imports_1$a = "/static/icon/home/like_s.png";
const _imports_0$4 = "/static/image/login/logo.png";
const _imports_3$a = "/static/icon/login/select_s.png";
const _imports_4$6 = "/static/icon/login/select.png";
const _imports_1$9 = "/static/icon/login/mobile.png";
const _imports_2$8 = "/static/icon/login/code.png";
const _imports_3$9 = "/static/icon/home/conceptCenter/chgDown.png";
const _imports_4$5 = "/static/icon/home/conceptCenter/chgUp.png";
const _imports_5$5 = "/static/icon/home/conceptCenter/newsReport.png";
const _imports_1$8 = "/static/icon/home/conceptCenter/timeScreenArrow.png";
const _imports_2$7 = "/static/icon/home/conceptCenter/reasonExpand.png";
const _imports_3$8 = "/static/icon/home/conceptCenter/reasonRetract.png";
const _imports_3$7 = "/assets/ydjk-icon.9712ef19.png";
const _imports_5$4 = "/assets/ydjk-zs.f6ba6c32.png";
const _imports_1$7 = "/pagesStock/static/icon/ai-icon.png";
const _imports_2$6 = "/pagesStock/static/icon/ai-icon-1.png";
const _imports_3$6 = "/pagesStock/static/icon/all-icon-3.png";
const _imports_1$6 = "/pagesStock/static/icon/all-icon-4.png";
const _imports_5$3 = "/pagesStock/static/icon/all-icon-5.png";
const _imports_1$5 = "/pagesMine/static/image/vip/vipTopBg.png";
const _imports_2$5 = "/pagesMine/static/image/vip/noVipTopBg.png";
const _imports_3$5 = "/pagesMine/static/icon/vip/titleLeft_v.png";
const _imports_4$4 = "/pagesMine/static/icon/vip/titleLeft.png";
const _imports_5$2 = "/pagesMine/static/icon/vip/titleRight_v.png";
const _imports_6$1 = "/pagesMine/static/icon/vip/titleRight.png";
const _imports_7$2 = "/pagesMine/static/icon/vip/step1_v.png";
const _imports_8$2 = "/pagesMine/static/icon/vip/step1.png";
const _imports_9$1 = "/pagesMine/static/icon/vip/step2_v.png";
const _imports_10$1 = "/pagesMine/static/icon/vip/step2.png";
const _imports_11$1 = "/pagesMine/static/icon/vip/step3_v.png";
const _imports_12 = "/pagesMine/static/icon/vip/step3.png";
const _imports_13 = "/pagesMine/static/icon/vip/step4_v.png";
const _imports_14 = "/pagesMine/static/icon/vip/step4.png";
const _imports_15 = "/pagesMine/static/icon/vip/investQuestion.png";
const _imports_16$1 = "/pagesMine/static/icon/vip/industrialResearch.png";
const _imports_17 = "/pagesMine/static/icon/vip/operatingDecision.png";
const _imports_7$1 = "/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$4 = "/pagesStock/static/icon/registeredCapital.png";
const _imports_4$3 = "/pagesStock/static/icon/location.png";
const _imports_5$1 = "/pagesStock/static/icon/visitWebsite.png";
const _imports_6 = "/pagesStock/static/icon/female.png";
const _imports_7 = "/pagesStock/static/icon/male.png";
const _imports_8 = "/pagesStock/static/icon/lookMoreArrow.png";
const _imports_9 = "/pagesStock/static/icon/logOffStatus.png";
const _imports_10 = "/pagesStock/static/icon/existStatus.png";
const _imports_11 = "/pagesStock/static/icon/industryRank.png";
const _imports_2$3 = "/pagesStock/static/icon/contrast.png";
const _imports_3$3 = "/pagesStock/static/icon/optional.png";
const _imports_4$2 = "/pagesStock/static/icon/share.png";
const _imports_16 = "/pagesStock/static/icon/yRightArrow.png";
const _imports_1$4 = "/pagesStock/static/icon/all-down-ed.png";
const _imports_1$3 = "/static/icon/back.png";
const _imports_1$2 = "/pagesStock/static/icon/all-icon-2.png";
const _imports_0$3 = "/pagesStock/static/icon/rightArrow.png";
const _imports_0$2 = "/pagesStock/static/icon/shangJiantou.png";
const _imports_1$1 = "/pagesStock/static/icon/xiaJiantou.png";
const _imports_2$2 = "/pagesStock/static/icon/downArrow.png";
const _imports_3$2 = "/pagesStock/static/icon/upArrow.png";
const _imports_4$1 = "/pagesStock/static/icon/yuan_shang.png";
const _imports_5 = "/pagesStock/static/icon/yuan_jiang.png";
const _imports_0$1 = "/pagesStock/static/icon/cwfx-1.png";
const _imports_2$1 = "/pagesStock/static/icon/all-icon.png";
const _imports_3$1 = "/pagesStock/static/icon/all-down.png";
const _imports_4 = "/pagesStock/static/icon/cwfx-2.png";
const _imports_0 = "/pagesStock/static/icon/news-search.png";
const _imports_1 = "/pagesStock/static/icon/newsTime.png";
const _imports_2 = "/pagesStock/static/icon/newsEyes.png";
const _imports_3 = "/pagesStock/static/icon/newsFire.png";
exports._imports_0 = _imports_0$6;
exports._imports_0$1 = _imports_0$5;
exports._imports_0$2 = _imports_0$4;
exports._imports_0$3 = _imports_0$3;
exports._imports_0$4 = _imports_0$2;
exports._imports_0$5 = _imports_0$1;
exports._imports_0$6 = _imports_0;
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$3;
exports._imports_10$1 = _imports_10$2;
exports._imports_10$2 = _imports_10$1;
exports._imports_10$3 = _imports_10;
exports._imports_11 = _imports_11$4;
exports._imports_11$1 = _imports_11$3;
exports._imports_11$2 = _imports_11$2;
exports._imports_11$3 = _imports_11$1;
exports._imports_11$4 = _imports_11;
exports._imports_12 = _imports_12$3;
exports._imports_12$1 = _imports_12$1;
exports._imports_12$2 = _imports_12$2;
exports._imports_12$3 = _imports_12;
exports._imports_13 = _imports_13$1;
exports._imports_13$1 = _imports_13$2;
exports._imports_13$2 = _imports_13;
exports._imports_14 = _imports_14$1;
exports._imports_14$1 = _imports_14;
exports._imports_15 = _imports_15$1;
exports._imports_15$1 = _imports_15$2;
exports._imports_15$2 = _imports_15;
exports._imports_16 = _imports_16$2;
exports._imports_16$1 = _imports_16$1;
exports._imports_16$2 = _imports_16;
exports._imports_17 = _imports_17;
exports._imports_2 = _imports_2$d;
exports._imports_2$1 = _imports_2$e;
exports._imports_2$10 = _imports_2$3;
exports._imports_2$11 = _imports_2$4;
exports._imports_2$12 = _imports_2$2;
exports._imports_2$13 = _imports_2$1;
exports._imports_2$14 = _imports_2;
exports._imports_2$2 = _imports_2$c;
exports._imports_2$3 = _imports_2$b;
exports._imports_2$4 = _imports_2$a;
exports._imports_2$5 = _imports_2$9;
exports._imports_2$6 = _imports_2$8;
exports._imports_2$7 = _imports_2$7;
exports._imports_2$8 = _imports_2$6;
exports._imports_2$9 = _imports_2$5;
exports._imports_3 = _imports_3$e;
exports._imports_3$1 = _imports_3$d;
exports._imports_3$10 = _imports_3$3;
exports._imports_3$11 = _imports_3$4;
exports._imports_3$12 = _imports_3$2;
exports._imports_3$13 = _imports_3$1;
exports._imports_3$14 = _imports_3;
exports._imports_3$2 = _imports_3$c;
exports._imports_3$3 = _imports_3$b;
exports._imports_3$4 = _imports_3$a;
exports._imports_3$5 = _imports_3$9;
exports._imports_3$6 = _imports_3$8;
exports._imports_3$7 = _imports_3$7;
exports._imports_3$8 = _imports_3$6;
exports._imports_3$9 = _imports_3$5;
exports._imports_4 = _imports_4$b;
exports._imports_4$1 = _imports_4$c;
exports._imports_4$10 = _imports_4$3;
exports._imports_4$11 = _imports_4$1;
exports._imports_4$12 = _imports_4;
exports._imports_4$2 = _imports_4$a;
exports._imports_4$3 = _imports_4$9;
exports._imports_4$4 = _imports_4$8;
exports._imports_4$5 = _imports_4$7;
exports._imports_4$6 = _imports_4$6;
exports._imports_4$7 = _imports_4$5;
exports._imports_4$8 = _imports_4$4;
exports._imports_4$9 = _imports_4$2;
exports._imports_5 = _imports_5$7;
exports._imports_5$1 = _imports_5$6;
exports._imports_5$2 = _imports_5$5;
exports._imports_5$3 = _imports_5$4;
exports._imports_5$4 = _imports_5$3;
exports._imports_5$5 = _imports_5$2;
exports._imports_5$6 = _imports_5$1;
exports._imports_5$7 = _imports_5;
exports._imports_6 = _imports_6$2;
exports._imports_6$1 = _imports_6$1;
exports._imports_6$2 = _imports_6;
exports._imports_7 = _imports_7$4;
exports._imports_7$1 = _imports_7$3;
exports._imports_7$2 = _imports_7$2;
exports._imports_7$3 = _imports_7$1;
exports._imports_7$4 = _imports_7;
exports._imports_8 = _imports_8$4;
exports._imports_8$1 = _imports_8$3;
exports._imports_8$2 = _imports_8$2;
exports._imports_8$3 = _imports_8$1;
exports._imports_8$4 = _imports_8;
exports._imports_9 = _imports_9$4;
exports._imports_9$1 = _imports_9$3;
exports._imports_9$2 = _imports_9$2;
exports._imports_9$3 = _imports_9$1;
exports._imports_9$4 = _imports_9;
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,262 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "LCCalendar",
data() {
return {
weekList: ["日", "一", "二", "三", "四", "五", "六"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//选中日期
startDateStr: "",
//开始日期
endDateStr: ""
//结束日期
};
},
created() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.startDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-01";
this.endDateStr = this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
this.generateMonthDateListData();
},
methods: {
/**
* 获取当前时间前一天的数据
*/
getYesterdayDateData() {
let currentDate = /* @__PURE__ */ new Date();
let selectDate = new Date(currentDate);
selectDate.setDate(selectDate.getDate() - 1);
let selectYear = selectDate.getFullYear();
let selectMonth = selectDate.getMonth() + 1;
let selectDay = selectDate.getDate();
this.selectDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + (selectDay > 9 ? selectDay : "0" + selectDay);
},
/**
* 生成日期数组
*/
generateMonthDateListData() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
for (var i = currentYear - 20; i < currentYear + 20; i++) {
for (var j = 0; j < 12; j++) {
let date = new Date(i, j + 1, 0);
let firstDayOfMonth = new Date(i, j + 1, 0);
firstDayOfMonth.setDate(1);
let currentMonthDay = date.getDate();
let firstDayWeek = firstDayOfMonth.getDay() + 1;
let daysOfMonth = [];
for (var k = 1; k <= currentMonthDay; k++) {
let newDate = new Date(i, j + 1, 0);
newDate.setDate(k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year: i,
month: newMonth,
day: newDay,
isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false,
isCurrentMonth: true,
isLastDay: newDay == currentMonthDay ? true : false,
timestamp: time
});
}
for (var k = 0; k < firstDayWeek - 1; k++) {
let year = i;
let month = j;
if (j < 1) {
year = i - 1;
month = 12;
}
let lastMonthDay = new Date(year, month, 0).getDate();
let newDate = new Date(year, month - 1, lastMonthDay - k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.unshift({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() + 1;
for (var k = 1; k < 8 - lastDayWeek; k++) {
let year = i;
let month = j;
if (month > 11) {
month = 0;
year++;
}
let newDate = new Date(year, month + 1, k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:238", "点击上个月");
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:267", "点击下个月");
}
},
monthChange(e) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let yearMonth = e.detail.value;
let selectYear = parseInt(yearMonth.split("-")[0]);
let selectMonth = parseInt(yearMonth.split("-")[1]);
this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
this.selectMonth = selectYear + "年" + selectMonth + "月";
this.startDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-01";
let lastDayOfMonth = new Date(selectYear, selectMonth, 0);
this.endDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + lastDayOfMonth.getDate();
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:284", "月份变更");
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item) {
if (!item.isCurrentMonth)
return;
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
this.chgStockData = item;
common_vendor.index.__f__("log", "at components/LCCalendar/LCCalendar.vue:295", "点击某天");
}
}
}
};
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$15,
d: common_vendor.t($data.selectDateStr),
e: common_vendor.o((...args) => $options.monthChange && $options.monthChange(...args)),
f: common_assets._imports_1$2,
g: common_vendor.o(($event) => $options.clickNextMonth()),
h: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
i: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? common_vendor.e({
b: common_vendor.t(item.day),
c: index % 7 == 0 || index % 7 == 6
}, index % 7 == 0 || index % 7 == 6 ? {} : {}, {
d: common_vendor.n("date select " + (item.avg_change_pct ? _ctx.getRateUpOrDown(item.avg_change_pct) ? "down" : "up" : ""))
}) : common_vendor.e({
e: !item.isCurrentMonth
}, !item.isCurrentMonth ? {} : common_vendor.e({
f: common_vendor.t(item.day),
g: index % 7 == 0 || index % 7 == 6 ? "#999999" : "#2A2A2A",
h: index % 7 == 0 || index % 7 == 6
}, index % 7 == 0 || index % 7 == 6 ? {} : {}, {
i: common_vendor.n("date " + (item.avg_change_pct ? _ctx.getRateUpOrDown(item.avg_change_pct) ? "down" : "up" : ""))
})), {
j: index,
k: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/LCCalendar/LCCalendar.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{b}}"><image class="icon" src="{{a}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{e}}"><view style="display:flex;align-items:center;justify-content:center"><image style="width:26rpx;height:26rpx;margin-right:10rpx" src="{{c}}" mode="widthFix"></image><view style="color:#2B2B2B;font-size:32rpx;font-weight:bold">{{d}}</view></view></picker></view><view class="btn" bindtap="{{g}}"><image class="icon" src="{{f}}" mode="widthFix"></image></view></view><view style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx;margin:20rpx 0"><view wx:for="{{h}}" wx:for-item="item" wx:key="b" style="display:flex;align-items:center;justify-content:center;font-size:24rpx;color:#292621;font-weight:500">{{item.a}}</view></view><view class="monthDateList" style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx"><view wx:for="{{i}}" wx:for-item="item" wx:key="j" class="item" bindtap="{{item.k}}"><block wx:if="{{item.a}}"><view class="{{item.d}}">{{item.b}} <view wx:if="{{item.c}}" style="color:#999999;font-size:18rpx">休市 </view><view wx:else style="text-align:center"><view style="font-size:18rpx">66家</view><view style="font-size:16rpx">商业航天</view></view></view></block><block wx:else><block wx:if="{{item.e}}"></block><block wx:else><view class="{{item.i}}"><view style="{{'color:' + item.g}}">{{item.f}}</view><view wx:if="{{item.h}}" style="color:#999999;font-size:18rpx">休市 </view><view wx:else style="text-align:center"><view style="font-size:18rpx">66家</view><view style="font-size:16rpx">商业航天</view></view></view></block></block></view></view></view>

View File

@@ -0,0 +1,75 @@
.dateC {
background-color: white;
box-shadow: 0 5rpx 10rpx 0 rgba(127, 127, 127, 0.1);
box-sizing: border-box;
}
.dateC .yearMonthC {
height: 70rpx;
border-radius: 35rpx;
}
.dateC .yearMonthC .btn {
padding: 0 32rpx;
}
.dateC .yearMonthC .btn .icon {
width: 13rpx;
height: auto;
}
.dateC .yearMonthC .yearMonth {
font-size: 32rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
.dateC .weekList .item {
line-height: 72rpx;
font-size: 26rpx;
font-weight: 500;
color: #A7A7A7;
text-align: center;
}
.dateC .monthDateList .item .date {
background-color: #f8f8f8;
padding: 10rpx 0;
border-radius: 10rpx;
font-size: 26rpx;
font-weight: bold;
color: #2A2A2A;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
height: 100%;
}
.dateC .monthDateList .item .date .chg {
font-size: 18rpx;
}
.dateC .monthDateList .item .date .chg.up {
color: #EC3440;
}
.dateC .monthDateList .item .date .chg.down {
color: #38A169;
}
.dateC .monthDateList .item .date.up {
background-color: #FFD6D9;
}
.dateC .monthDateList .item .date.down {
background-color: #CEF1DE;
}
.dateC .monthDateList .item .date.select.up {
background-color: #EC3440;
color: white;
}
.dateC .monthDateList .item .date.select.up .chg {
color: white;
}
.dateC .monthDateList .item .date.select.down {
background-color: #38A169;
color: white;
}
.dateC .monthDateList .item .date.select.down .chg {
color: white;
}
.dateC .monthDateList .item .date.notCurrentMonth {
background-color: #FCFCFC;
color: #999;
}

View File

@@ -0,0 +1,258 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "LCCalendar",
data() {
return {
weekList: ["日", "一", "二", "三", "四", "五", "六"],
monthDateList: [],
selectMonthIndex: 0,
//选中月份下标
selectMonth: "",
//选中年月
selectDateStr: "",
//选中日期
startDateStr: "",
//开始日期
endDateStr: ""
//结束日期
};
},
created() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
this.selectMonthIndex = 20 * 12 + currentMonth - 1;
this.selectMonth = currentYear + "年" + currentMonth + "月";
this.startDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-01";
this.endDateStr = this.selectDateStr = currentYear + "-" + (currentMonth > 9 ? currentMonth : "0" + currentMonth) + "-" + (currentDay > 9 ? currentDay : "0" + currentDay);
this.generateMonthDateListData();
},
methods: {
/**
* 获取当前时间前一天的数据
*/
getYesterdayDateData() {
let currentDate = /* @__PURE__ */ new Date();
let selectDate = new Date(currentDate);
selectDate.setDate(selectDate.getDate() - 1);
let selectYear = selectDate.getFullYear();
let selectMonth = selectDate.getMonth() + 1;
let selectDay = selectDate.getDate();
this.selectDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + (selectDay > 9 ? selectDay : "0" + selectDay);
},
/**
* 生成日期数组
*/
generateMonthDateListData() {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let currentMonth = currentDate.getMonth() + 1;
let currentDay = currentDate.getDate();
let monthDateList = [];
for (var i = currentYear - 20; i < currentYear + 20; i++) {
for (var j = 0; j < 12; j++) {
let date = new Date(i, j + 1, 0);
let firstDayOfMonth = new Date(i, j + 1, 0);
firstDayOfMonth.setDate(1);
let currentMonthDay = date.getDate();
let firstDayWeek = firstDayOfMonth.getDay() + 1;
let daysOfMonth = [];
for (var k = 1; k <= currentMonthDay; k++) {
let newDate = new Date(i, j + 1, 0);
newDate.setDate(k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = i + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year: i,
month: newMonth,
day: newDay,
isToday: i == currentYear && newMonth == currentMonth && newDay == currentDay ? true : false,
isCurrentMonth: true,
isLastDay: newDay == currentMonthDay ? true : false,
timestamp: time
});
}
for (var k = 0; k < firstDayWeek - 1; k++) {
let year = i;
let month = j;
if (j < 1) {
year = i - 1;
month = 12;
}
let lastMonthDay = new Date(year, month, 0).getDate();
let newDate = new Date(year, month - 1, lastMonthDay - k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.unshift({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
let nextMonthFirstDay = new Date(i, j + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 24 * 60 * 60 * 1e3);
let lastDayWeek = lastDayOfMonth.getDay() + 1;
for (var k = 1; k < 8 - lastDayWeek; k++) {
let year = i;
let month = j;
if (month > 11) {
month = 0;
year++;
}
let newDate = new Date(year, month + 1, k);
let newMonth = newDate.getMonth() + 1;
let newDay = newDate.getDate();
let time = newDate.getTime();
let date2 = year + "-" + (newMonth > 9 ? newMonth : "0" + newMonth) + "-" + (newDay > 9 ? newDay : "0" + newDay);
daysOfMonth.push({
date: date2,
year,
month: newMonth,
day: newDay,
isToday: false,
isCurrentMonth: false,
isLastDay: false,
timestamp: time
});
}
monthDateList.push(daysOfMonth);
}
}
this.monthDateList = monthDateList;
},
/**
* 点击上个月
*/
clickPreMonth() {
if (this.selectMonthIndex > 0) {
this.selectMonthIndex--;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:224", "点击上个月");
}
},
/**
* 点击下个月
*/
clickNextMonth() {
if (this.selectMonthIndex < this.monthDateList.length - 1) {
this.selectMonthIndex++;
let monthList = this.monthDateList[this.selectMonthIndex];
let year = "";
let month = "";
for (let item of monthList) {
if (item.isCurrentMonth) {
year = item.year;
month = item.month;
break;
}
}
let lastDay = "";
for (let item of monthList) {
if (item.isLastDay) {
lastDay = item.day;
break;
}
}
this.selectMonth = year + "年" + month + "月";
this.startDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-01";
this.endDateStr = year + "-" + (month > 9 ? month : "0" + month) + "-" + lastDay;
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:253", "点击下个月");
}
},
monthChange(e) {
let currentDate = /* @__PURE__ */ new Date();
let currentYear = currentDate.getFullYear();
let yearMonth = e.detail.value;
let selectYear = parseInt(yearMonth.split("-")[0]);
let selectMonth = parseInt(yearMonth.split("-")[1]);
this.selectMonthIndex = (selectYear - (currentYear - 20)) * 12 + selectMonth - 1;
this.selectMonth = selectYear + "年" + selectMonth + "月";
this.startDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-01";
let lastDayOfMonth = new Date(selectYear, selectMonth, 0);
this.endDateStr = selectYear + "-" + (selectMonth > 9 ? selectMonth : "0" + selectMonth) + "-" + lastDayOfMonth.getDate();
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:270", "月份变更");
},
/**
* 点击选择开始日期和结束日期
* @param {Object} item
*/
clickSelectDate(item) {
if (!item.isCurrentMonth)
return;
if (this.selectDateStr != item.date) {
this.selectDateStr = item.date;
this.chgStockData = item;
common_vendor.index.__f__("log", "at components/LCCalendar2/LCCalendar2.vue:281", "点击某天");
}
}
}
};
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_vendor.t($data.selectMonth),
d: common_vendor.o((...args) => $options.monthChange && $options.monthChange(...args)),
e: common_assets._imports_1$2,
f: common_vendor.o(($event) => $options.clickNextMonth()),
g: common_vendor.f($data.weekList, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: index
};
}),
h: common_vendor.f($data.monthDateList[$data.selectMonthIndex], (item, index, i0) => {
return common_vendor.e({
a: item.date == $data.selectDateStr
}, item.date == $data.selectDateStr ? {
b: common_vendor.t(item.day),
c: common_vendor.n("date select up")
} : common_vendor.e({
d: !item.isCurrentMonth
}, !item.isCurrentMonth ? {
e: common_vendor.t(item.day)
} : {
f: common_vendor.t(item.day),
g: common_vendor.n("date up")
}), {
h: index,
i: common_vendor.o(($event) => $options.clickSelectDate(item), index)
});
})
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/LCCalendar2/LCCalendar2.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{b}}"><image class="icon" src="{{a}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{d}}"><view style="display:flex;align-items:center;justify-content:center"><view style="color:#2B2B2B;font-size:32rpx;font-weight:bold">{{c}}</view></view></picker></view><view class="btn" bindtap="{{f}}"><image class="icon" src="{{e}}" mode="widthFix"></image></view></view><view style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx;margin:20rpx 0"><view wx:for="{{g}}" wx:for-item="item" wx:key="b" style="display:flex;align-items:center;justify-content:center;font-size:24rpx;color:#292621;font-weight:500">{{item.a}}</view></view><view class="monthDateList" style="display:grid;grid-template-columns:repeat(7, 1fr);gap:17rpx"><view wx:for="{{h}}" wx:for-item="item" wx:key="h" class="item" bindtap="{{item.i}}"><block wx:if="{{item.a}}"><view class="{{item.c}}">{{item.b}}</view></block><block wx:else><block wx:if="{{item.d}}"><view class="date notCurrentMonth">{{item.e}}</view></block><block wx:else><view class="{{item.g}}"><view>{{item.f}}</view></view></block></block></view></view></view>

View File

@@ -0,0 +1,78 @@
.dateC {
background-color: white;
box-sizing: border-box;
}
.dateC .yearMonthC {
background-color: #F7F7F7;
height: 70rpx;
border-radius: 35rpx;
}
.dateC .yearMonthC .btn {
padding: 0 32rpx;
}
.dateC .yearMonthC .btn .icon {
width: 13rpx;
height: auto;
}
.dateC .yearMonthC .yearMonth {
font-size: 32rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
.dateC .weekList .item {
line-height: 72rpx;
font-size: 26rpx;
font-weight: 500;
color: #A7A7A7;
text-align: center;
}
.dateC .monthDateList .item {
height: 72rpx;
}
.dateC .monthDateList .item .date {
background-color: #f8f8f8;
padding: 10rpx 0;
border-radius: 10rpx;
font-size: 26rpx;
font-weight: bold;
color: #2A2A2A;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
height: 100%;
}
.dateC .monthDateList .item .date .chg {
font-size: 18rpx;
}
.dateC .monthDateList .item .date .chg.up {
color: #EC3440;
}
.dateC .monthDateList .item .date .chg.down {
color: #38A169;
}
.dateC .monthDateList .item .date.up {
background-color: #f8f8f8;
}
.dateC .monthDateList .item .date.down {
background-color: #CEF1DE;
}
.dateC .monthDateList .item .date.select.up {
background-color: #F2C367;
color: white;
}
.dateC .monthDateList .item .date.select.up .chg {
color: white;
}
.dateC .monthDateList .item .date.select.down {
background-color: #38A169;
color: white;
}
.dateC .monthDateList .item .date.select.down .chg {
color: white;
}
.dateC .monthDateList .item .date.notCurrentMonth {
background-color: #FCFCFC;
color: #999;
}

View File

@@ -0,0 +1,86 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
name: "cyl-view",
data() {
return {
isShow: false,
center_index: 0,
types: [
{
title: "上游供应链",
count: 5,
desc: "原材料与供应商",
sColor: "#FF8C53",
color: "#FF5501",
backColor: "#FFF4EF"
},
{},
{
title: "核心企业",
count: 1,
desc: "公司主体与产品",
sColor: "#518BFF",
color: "#175CE6",
backColor: "#F2F6FD"
},
{},
{
title: "下游客户",
count: 12,
desc: "原材料与供应商",
sColor: "#48D394",
color: "#1DB26F",
backColor: "#E7F5F0"
}
],
typeIndex: 0
};
},
methods: {
changeCenterIndex(index) {
this.center_index = index;
},
clickAction() {
common_vendor.index.__f__("log", "at components/cyl-view/cyl-view.vue:111", 123);
this.$emit("detail");
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: $data.center_index == 0 ? 1 : "",
b: common_vendor.o(($event) => $options.changeCenterIndex(0)),
c: $data.center_index == 1 ? 1 : "",
d: common_vendor.o(($event) => $options.changeCenterIndex(1)),
e: common_vendor.f($data.types, (item, index, i0) => {
return common_vendor.e({
a: item.title
}, item.title ? {
b: common_vendor.t(item.title),
c: common_vendor.t(item.count),
d: $data.typeIndex == index ? item.color : "#F2C369",
e: $data.typeIndex == index ? "#ffffff" : "#070707",
f: common_vendor.t(item.desc),
g: common_vendor.o(($event) => $data.typeIndex = index, index),
h: $data.typeIndex == index ? item.backColor : "#FAFAFC",
i: $data.typeIndex == index ? `1rpx solid ${item.color}` : "none"
} : {
j: common_assets._imports_0$3
}, {
k: index
});
}),
f: $data.types[$data.typeIndex].backColor,
g: $data.types[$data.typeIndex].color,
h: $data.types[$data.typeIndex].color,
i: `1rpx solid ${$data.types[$data.typeIndex].color}`,
j: `${95}%`,
k: `linear-gradient(to right, ${$data.types[$data.typeIndex].sColor}, ${$data.types[$data.typeIndex].color})`,
l: common_vendor.o((...args) => $options.clickAction && $options.clickAction(...args))
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createComponent(Component);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/cyl-view/cyl-view.js.map

View File

@@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@@ -0,0 +1 @@
<view class="cyl_view"><view class="top"><view class="child_1">产业链分析</view><view class="child_2">目标公司供应链图谱</view><view class="child_3">节点 18</view></view><view class="center"><view class="{{['child', a && 'action']}}" bindtap="{{b}}"> 层级视图 </view><view class="{{['child', c && 'action']}}" bindtap="{{d}}"> 流向关系 </view></view><view class="bottom"><view class="type"><view wx:for="{{e}}" wx:for-item="item" wx:key="k" class="item"><block wx:if="{{item.a}}"><view bindtap="{{item.g}}" style="{{'display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#FAFAFC;border-radius:10rpx;width:100%;padding:26rpx 0;box-sizing:border-box' + ';' + ('background-color:' + item.h + ';' + ('border:' + item.i))}}"><view style="color:#2B2B2B;font-size:24rpx;font-weight:bold">{{item.b}} <text style="{{'min-width:24rpx;text-align:center;margin-left:6rpx;padding:0 5rpx;border-radius:5rpx;font-weight:500' + ';' + ('background-color:' + item.d + ';' + ('color:' + item.e))}}">{{item.c}}</text></view><view style="color:#999999;font-size:22rpx;font-weight:500;margin-top:10rpx">{{item.f}}</view></view></block><block wx:else><image style="width:100%;height:auto" src="{{item.j}}" mode="widthFix"></image></block></view></view><view class="list" bindtap="{{l}}" style="margin:20rpx;background-color:#FAFAFC;border-radius:10rpx;padding:25rpx 20rpx;box-sizing:border-box"><view style="color:#2B2B2B;font-size:28rpx;font-weight:bold">央行/政策性银行</view><view style="color:#999999;font-size:24rpx;font-weight:500">提供再贷款、再贴现、同业存放等基础货币与流动性支持</view><view style="display:flex;align-items:center;font-size:20rpx;font-weight:500;margin:15rpx 0"><view style="{{'border-radius:5rpx;padding:0 10rpx;margin-right:10rpx' + ';' + ('background-color:' + f + ';' + ('color:' + g))}}"> Supplier</view><view style="{{'border-radius:5rpx;padding:0 10rpx' + ';' + ('color:' + h + ';' + ('border:' + i))}}">份额: 12.5%</view></view><view style="display:flex;align-items:center"><view style="color:#71675D;font-size:22rpx;font-weight:500">影响度</view><view style="flex:1;height:10rpx;background-color:#EFEFEF;border-radius:5rpx;margin:0 15rpx;overflow:hidden"><view style="{{'height:100%;border-radius:5rpx' + ';' + ('width:' + j + ';' + ('background:' + k))}}"></view></view><view style="color:#71675D;font-size:24rpx;font-weight:500">95</view></view></view></view></view>

View File

@@ -0,0 +1,57 @@
.cyl_view {
padding: 20rpx;
box-sizing: border-box;
}
.cyl_view .top {
display: flex;
align-items: center;
font-weight: 500;
}
.cyl_view .top .child_1 {
color: #2B2B2B;
font-size: 28rpx;
font-weight: bold;
}
.cyl_view .top .child_2 {
color: #71675D;
font-size: 24rpx;
margin: 0 10rpx;
}
.cyl_view .top .child_3 {
border: 1rpx solid #F3C368;
border-radius: 5rpx;
padding: 0 5rpx;
color: #F2C369;
font-size: 24rpx;
}
.cyl_view .center {
margin: 20rpx 0;
display: flex;
align-items: center;
justify-content: space-evenly;
font-weight: 500;
}
.cyl_view .center .child {
background-color: #F5F5F5;
border-radius: 10rpx 10rpx 0 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 26rpx;
color: #939393;
padding: 10rpx 40rpx;
}
.cyl_view .center .child.action {
background-color: #F2C369;
color: #070707;
}
.cyl_view .bottom .type {
display: grid;
grid-template-columns: 1fr 19rpx 1fr 19rpx 1fr;
gap: 6rpx;
}
.cyl_view .bottom .type .item {
display: flex;
align-items: center;
justify-content: center;
}

Some files were not shown because too many files have changed in this diff Show More