12.12 页面风格改版,增加事件详情相关概念网页跳转,增加绑定手机号功能

This commit is contained in:
尚政杰
2025-12-12 19:35:08 +08:00
parent 44842120da
commit 13c783a0ad
256 changed files with 4046 additions and 2986 deletions

View File

@@ -1,6 +1,6 @@
<template>
<view class="nav flex fixed" :style="navBarStyle">
<image v-if="!hideNavBg" class="bg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image v-if="!hideNavBg" class="bg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="backC relative flex" :style="backTitleStyle" @click="clickBack">
<image v-if="!hideBack&&!backBlack" class="icon" src="/static/icon/back.png" mode="widthFix"></image>
<image v-if="!hideBack&&backBlack" class="icon" src="/static/icon/backBlack.png" mode="widthFix"></image>

View File

@@ -15,7 +15,7 @@ Component({
data: {
color: "#858C9A",
selected:0,
selectedColor: "#F97316",
selectedColor: "#F3C368",
list: [
{
"pagePath": "/pages/index/index",
@@ -29,6 +29,12 @@ Component({
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png"
},
// {
// "pagePath": "/pages/concept/concept",
// "text": "概念中心",
// "iconPath": "/static/icon/tabbar/concept.png",
// "selectedIconPath": "/static/icon/tabbar/concept_s.png"
// },
{
"pagePath": "/pages/mine/mine",
"text": "个人中心",

View File

@@ -1,7 +1,7 @@
<!--components/custom-tab-bar/index.wxml-->
<view class="tab-bar">
<view wx:for="{{list}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="{{item.jump=='nav'?'navigateTo':'switchTab'}}">
<image class="image" src="{{selected == index ? item.selectedIconPath : item.iconPath}}" mode="aspectFit"></image>
<image class="image" src="{{selected == index ? item.selectedIconPath : item.iconPath}}" mode="heightFix"></image>
<view wx:if="{{item.text}}" class="tab-bar-view"
style="color: {{selected==index?selectedColor:color}};">{{item.text}}</view>
</view>

View File

@@ -1,6 +1,6 @@
/* components/custom-tab-bar/index.wxss */
.tab-bar {
background-color: white;
background-color: black;
position: fixed;
bottom: 0;
left: 0;
@@ -9,7 +9,7 @@
display: flex;
padding-bottom: env(safe-area-inset-bottom);
box-sizing: content-box;
box-shadow: 0 -1px 5rpx 0 #eee;
/* box-shadow: 0 -1px 5rpx 0 #eee; */
z-index: 99;
}
.tab-bar-item
@@ -22,8 +22,8 @@
}
.tab-bar-item .image {
margin: 16rpx 0 8rpx 0;
width: 40rpx;
height: 40rpx;
width: auto;
height: 41rpx;
}
.bulge
{

View File

@@ -15,6 +15,12 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/concept/concept",
"style": {
"navigationBarTitleText": ""
}
},
{
"path" : "pages/mine/mine",
"style" :
@@ -115,29 +121,23 @@
"navigationBarTitleText" : ""
}
},
{
"path": "pages/index/conceptCenter/conceptCenter",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/index/historicalTimeline/historicalTimeline",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/index/hotStock/hotStock",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/index/conceptNewsDetails/conceptNewsDetails",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/concept/historicalTimeline/historicalTimeline",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/concept/hotStock/hotStock",
"style": {
"navigationBarTitleText": ""
}
}
],
"subPackages": [

View File

@@ -17,9 +17,7 @@
<view>涨跌幅</view>
<image class="arrow" src="/static/icon/home/conceptCenter/conceptScreenArrow.png" mode="widthFix"></image>
</view>
<view class="line">
</view>
<view class="line"></view>
<view class="transactionDateC flex" @click="clickTransactionDate()">
<image class="icon" src="/static/icon/home/conceptCenter/transactionDate.png" mode="widthFix"></image>
<view>交易日期</view>
@@ -38,18 +36,18 @@
<view class="content">{{item.description}}</view>
<view class="hotStockC flex">
<view class="title">热门个股</view>
<view class="stockList flex">
<view v-if="memberInfo.is_member&&memberInfo.subscription_type=='pro'" class="stockList flex">
<view class="stockItem" v-for="(sitem,sindex) in item.stocks.slice(0,3)" :key="sindex">{{sitem.stock_name}}</view>
<view class="more" @click="clickStockMore(item)">+{{item.stock_count-3}}更多</view>
<view class="more" @click.stop="clickStockMore(item)">+{{item.stock_count-3}}更多</view>
</view>
<!-- <view class="notVipC flex" @click="clickNotVip()">
<view v-else class="notVipC flex" @click.stop="clickNotVip()">
<image class="icon" src="/static/icon/home/conceptCenter/lock.png" mode="widthFix"></image>
<view>需升级Pro会员查看{{item.stock_count}}只个股</view>
</view> -->
</view>
</view>
<view class="transactionDateHistoryTimeC flex">
<view class="transactionDate flex1">交易时间{{item.price_info?item.price_info.trade_date:''}}</view>
<view class="historyTimeC flex" @click="clickHistoricalTimeline(item)">
<view class="historyTimeC flex" @click.stop="clickHistoricalTimeline(item)">
<image class="icon" src="/static/icon/home/conceptCenter/timeAxis.png" mode="widthFix"></image>
<view>历史时间轴</view>
</view>
@@ -332,7 +330,8 @@
conceptList:[],
page:1,
getRateUpOrDown:getRateUpOrDown,
getChgRateStr:getChgRateStr
getChgRateStr:getChgRateStr,
memberInfo:null, //
}
},
onLoad() {
@@ -508,13 +507,11 @@
this.selectDateStr = this.selectStartDateStr
this.selectMonth = this.selectStartMonth
this.selectMonthIndex = this.selectStartMonthIndex
console.log(this.selectStartMonthIndex,333,this.selectStartDateStr)
} else {
//
this.selectDateStr = this.selectEndDateStr
this.selectMonth = this.selectEndMonth
this.selectMonthIndex = this.selectEndMonthIndex
console.log(this.selectEndMonthIndex,222,this.selectEndDateStr)
}
this.$refs["transactionDatePopup"].open()
},
@@ -533,6 +530,8 @@
})
return
}
this.startDateStr = this.selectStartDateStr
this.endDateStr = this.endDateStr
this.getRankListData()
},
/**
@@ -747,7 +746,7 @@
clickStockMore(item)
{
uni.navigateTo({
url:'/pages/index/hotStock/hotStock?id='+item.concept_id
url:'/pages/concept/hotStock/hotStock?id='+item.concept_id
})
},
/**
@@ -756,7 +755,7 @@
clickHistoricalTimeline(item)
{
uni.navigateTo({
url:'/pages/index/historicalTimeline/historicalTimeline?id='+item.concept_id
url:'/pages/concept/historicalTimeline/historicalTimeline?id='+item.concept_id
})
},
/**
@@ -766,14 +765,7 @@
{
let param = {query:this.keywords,size:10,page:this.page,sort_by:this.sortType,isJson:1,trade_date:this.selectDateStr}
eventRelatedConcept(param).then(res=>{
// if(res.code==200)
// {
this.conceptList = res.results
// }else
// uni.showToast({
// title:res.message,
// icon:'none'
// })
this.conceptList = res.results
}).catch(error=>{
})
@@ -845,7 +837,7 @@
}).catch(error=>{
})
}
},
}
}
</script>

View File

@@ -1,17 +1,20 @@
<template>
<view>
<navBar leftText="事件详情"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<navBar leftText="事件详情" :hideNavBg="true"></navBar>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view v-if="eventDetails" class="eventDetailsC fixed" :style="'top:'+navH+'px;'">
<view class="categoryTitleC">
<view class="category">{{eventDetails.event_type}}</view>
<text class="title">{{eventDetails.event_title}}</text>
</view>
<view class="eventTime">{{eventDetails.event_created_at.substr(0,16)}}</view>
<view class="eventContent">{{eventDetails.event_desc}}<text class="ai">AI合成</text></view>
<view class="riskTips">
风险提示解析内容由价值前沿人工采集整理自新闻公告研报等公开信息团队辛苦编写未经许可严禁转载本产品内容内容均不构成投资建议请投资者注意风险独立审慎决策
<view class="eventIntroC">
<view class="categoryTitleC">
<view class="category">{{eventDetails.event_type}}</view>
<text class="title">{{eventDetails.event_title}}</text>
</view>
<view class="eventTime">{{eventDetails.event_created_at.substr(0,16)}}</view>
<view class="eventContent">{{eventDetails.event_desc}}<text class="ai">AI合成</text></view>
<view class="riskTips">
风险提示解析内容由价值前沿人工采集整理自新闻公告研报等公开信息团队辛苦编写未经许可严禁转载本产品内容内容均不构成投资建议请投资者注意风险独立审慎决策
</view>
</view>
<scroll-view scroll-x class="categoryList">
<view :class="'item relative '+(selectCategory==index?'select':'')" v-for="(item,index) in categoryList" :key="index" @click="clickCategoryItem(index)">
{{item}}
@@ -42,33 +45,30 @@
<view class="content">{{item.relation_desc}}<text class="ai">AI合成</text></view>
</view>
</view>
<view v-if="selectCategory==1" class="conceptList flexWrap">
<view v-if="selectCategory==1" class="conceptList">
<view class="conceptItem" v-for="(item,index) in conceptList" :key="index" @click="clickConceptItem(item.concept)">
<view class="coverC relative">
<image class="cover" src="" mode="aspectFill"></image>
<view :class="'rateC absolute '+(getRateUpOrDown(item.price_info.avg_change_pct)?'down':'up')">
<image v-if="getRateUpOrDown(item.price_info.avg_change_pct)" class="icon" src="/static/icon/home/conceptDownArrow.png" mode="widthFix"></image>
<image v-else class="icon" src="/static/icon/home/conceptUpArrow.png" mode="widthFix"></image>
<text>{{getRateStr(item.price_info.avg_change_pct)}}%</text>
</view>
<view class="totalC absolute">{{item.stock_count}}只股票</view>
<view class="titleChgStockNumC flex">
<view class="title">{{item.concept}}</view>
<view v-if="item.price_info" :class="'chg '+(getRateUpOrDown(item.price_info.avg_change_pct)?'down':'up')">{{getChgRateStr(item.price_info.avg_change_pct)}}%</view>
<view v-if="item.price_info" :class="'stockNum '+(getRateUpOrDown(item.price_info.avg_change_pct)?'down':'up')">{{item.stock_count}} 只股票</view>
</view>
<view class="infoC">
<view class="title">{{item.concept}}</view>
<view class="content">{{item.description}}</view>
<view class="transactionDate">交易日期: {{item.price_info.trade_date}}</view>
<view class="hotStockC">
<view class="titleC flex">
<text class="flex1">热门个股</text>
<image class="arrow" src="/static/icon/home/stockArrow.png" mode="widthFix"></image>
</view>
<view class="stockList flexWrap">
<view class="item" v-for="(item,index) in item.stocks" :key="index">{{item.stock_name}}</view>
</view>
<view class="content">{{item.description}}</view>
<view class="hotStockC flex">
<view class="title">热门个股</view>
<view v-if="memberInfo&&memberInfo.is_member&&memberInfo.subscription_type=='pro'" class="stockList flex">
<view class="stockItem" v-for="(sitem,sindex) in item.stocks.slice(0,3)" :key="sindex">{{sitem.name}}</view>
<view class="more" @click.stop="clickStockMore(item)">+{{item.stock_count-3}}更多</view>
</view>
<view class="dateHistoryTimeC flex">
<view class="date flex1">{{item.happened_times[0]+(item.happened_times.length>1?('(共'+item.happened_times.length+'次)'):'')}}</view>
<view class="historyTimeC">历史时间轴</view>
<view v-else class="notVipC flex" @click.stop="clickNotVip()">
<image class="icon" src="/static/icon/home/conceptCenter/lock.png" mode="widthFix"></image>
<view>需升级Pro会员查看{{item.stock_count}}只个股</view>
</view>
</view>
<view class="transactionDateHistoryTimeC flex">
<view class="transactionDate flex1">交易时间{{item.price_info?item.price_info.trade_date:''}}</view>
<view class="historyTimeC flex" @click.stop="clickHistoricalTimeline(item)">
<image class="icon" src="/static/icon/home/conceptCenter/timeAxis.png" mode="widthFix"></image>
<view>历史时间轴</view>
</view>
</view>
</view>
@@ -83,9 +83,7 @@
<view class="item flexStretch" v-for="(item,index) in historyEventList" :key="index">
<view class="eventLineC relative">
<view class="line"></view>
<view class="pointC absolute flexCenter">
<view class="point"></view>
</view>
<image class="point absolute" src="/static/icon/home/expectScoreDot.png" mode="widthFix"></image>
</view>
<view class="eventInfoC flex1">
<view class="titleCorrelationC flex">
@@ -234,13 +232,70 @@
</view>
</view>
</uni-popup>
<uni-popup ref="vipPopup" type="center">
<view class="vipPopup">
<image class="topIcon" src="/static/icon/home/conceptCenter/vipPopIcon.png" mode="widthFix"></image>
<view class="popTitle">需要Pro版订阅</view>
<view class="popSubtitle">当前功能需要更高权限</view>
<view class="moduleC visit">
<view class="section">您正在尝试访问</view>
<view class="visitC relative">
<view class="line absolute"></view>
<view class="contentC relative flex">
<image class="icon" src="/static/icon/home/conceptCenter/visitModule.png" mode="widthFix"></image>
<view>概念统计中心和热门个股</view>
</view>
</view>
</view>
<view class="moduleC">
<view class="section flex">
当前订阅
<view class="version free">免费版</view>
</view>
<view class="list">
<view class="item flex">
<image class="icon" src="/static/icon/home/conceptCenter/free_s.png" mode="widthFix"></image>
<view>基础事件浏览</view>
</view>
<view class="item flex">
<image class="icon" src="/static/icon/home/conceptCenter/free_s.png" mode="widthFix"></image>
<view>有限历史事件查看</view>
</view>
</view>
</view>
<view class="moduleC">
<view class="section flex">
所需订阅
<view class="version pro">Pro版</view>
</view>
<view class="list">
<view class="item flex">
<image class="icon" src="/static/icon/home/conceptCenter/pro_s.png" mode="widthFix"></image>
<view>相关标的分析</view>
</view>
<view class="item flex">
<image class="icon" src="/static/icon/home/conceptCenter/pro_s.png" mode="widthFix"></image>
<view>相关概念分析</view>
</view>
<view class="item flex">
<image class="icon" src="/static/icon/home/conceptCenter/pro_s.png" mode="widthFix"></image>
<view>完整历史事件</view>
</view>
</view>
</view>
<view class="btnC flex">
<view class="btn flex1 later" @click="clickLater()">稍后再说</view>
<view class="btn flex1 upgrade" @click="clickUpgradeAtOnce()">立即升级</view>
</view>
</view>
</uni-popup>
</view>
</template>
<script>
import { inject } from 'vue';
import { eventRelatedConcept, eventHistoryEvent, eventRelatedStock, eventCommentList, commentEvent, likeEventComment, replyComment, followEvent } from '@/request/api';
import { getLocaleHourMinute, getLocaleTime, getRateStr, getRateUpOrDown } from '@/utils/util';
import { eventRelatedConcept, eventHistoryEvent, eventRelatedStock, eventCommentList, commentEvent, likeEventComment, replyComment, followEvent, membershipStatus } from '@/request/api';
import { getLocaleHourMinute, getLocaleTime, getRateStr, getRateUpOrDown, getChgRateStr } from '@/utils/util';
const echarts = require('../../../uni_modules/lime-echart/static/echarts.min.js');
export default {
@@ -249,6 +304,7 @@
navH:inject('navHeight'),
windowWidth:inject('windowWidth'),
eventId:'', //事件id
memberInfo:null, //会员信息
eventDetails:null, //事件详情
categoryList:['相关标的','相关概念','历史事件'],
targetList:[], //相关标的
@@ -261,6 +317,7 @@
getLocaleTime:getLocaleTime,
getRateUpOrDown:getRateUpOrDown,
getRateStr:getRateStr,
getChgRateStr:getChgRateStr,
scoreTop:'',
expectScore:0, //预期得分
commentList:[], //评价列表
@@ -421,6 +478,45 @@
url:'/pages/index/conceptDetails/conceptDetails?name='+name
})
},
/**
* 非vip点击
*/
clickNotVip()
{
this.$refs["vipPopup"].open()
},
/**
* 点击稍后再说
*/
clickLater()
{
this.$refs["vipPopup"].close()
},
/**
* 点击立即升级
*/
clickUpgradeAtOnce()
{
this.clickLater()
},
/**
* 点击查看更多个股
*/
clickStockMore(item)
{
uni.navigateTo({
url:'/pages/concept/hotStock/hotStock?id='+item.concept_id
})
},
/**
* 点击查看历史时间轴
*/
clickHistoricalTimeline(item)
{
uni.navigateTo({
url:'/pages/concept/historicalTimeline/historicalTimeline?id='+item.concept_id
})
},
/**
* 点击查看历史事件的相关股票
*/
@@ -441,7 +537,7 @@
*/
clickExpectScore(e)
{
this.scoreTop = e.currentTarget.offsetTop+this.navH+(70+10+20)/750*this.windowWidth
this.scoreTop = e.currentTarget.offsetTop+this.navH+(70+10)/750*this.windowWidth
this.$refs['expectScorePopup'].open()
},
@@ -586,7 +682,7 @@
getEventRelatedConceptData()
{
let eventDetails = this.eventDetails
let param = {query:eventDetails.event_title,size:4,page:1,sort_by:"_score",isJson:1}
let param = {query:eventDetails.event_title,size:10,page:1,sort_by:"_score",isJson:1}
eventRelatedConcept(param).then(res=>{
// if(res.code==200)
// {
@@ -637,6 +733,10 @@
</script>
<style lang="less">
page
{
background-color: #070707;
}
.topBg
{
top: 0;
@@ -646,106 +746,104 @@
}
.eventDetailsC
{
background-color: white;
margin-top: 10rpx;
padding: 20rpx 0 0;
padding: 20rpx 25rpx 0;
left: 0;
right: 0;
bottom: calc(20rpx + 70rpx + 20rpx + env(safe-area-inset-bottom));
border-radius: 20rpx 20rpx 0 0;
overflow-y: scroll;
.categoryTitleC
.eventIntroC
{
padding: 0 25rpx;
.category
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
padding: 26rpx 0 34rpx;
border-radius: 10rpx;
.categoryTitleC
{
background-color: #FD9A14;
margin-right: 12rpx;
display: inline-block;
padding: 0 11rpx;
line-height: 40rpx;
border-radius: 8rpx;
padding: 0 25rpx;
.category
{
background-color: #F3C368;
margin-right: 8rpx;
display: inline-block;
padding: 0 11rpx;
line-height: 40rpx;
border-radius: 8rpx;
font-size: 22rpx;
font-weight: bold;
color: white;
}
.title
{
font-size: 30rpx;
font-weight: bold;
color: #222;
line-height: 1.1rem;
}
}
.eventTime
{
margin: 20rpx 25rpx 0;
font-size: 22rpx;
font-weight: bold;
color: white;
font-weight: 500;
color: #666;
}
.title
.eventContent
{
font-size: 30rpx;
font-weight: bold;
color: #222;
margin: 18rpx 27rpx 0;
font-size: 24rpx;
font-weight: 500;
color: #71675D;
line-height: 1.3rem;
.ai
{
color: #EC3440;
}
}
}
.eventTime
{
margin: 20rpx 25rpx 0;
font-size: 22rpx;
font-weight: 500;
color: #aaa;
}
.eventContent
{
margin: 22rpx 24rpx 0;
font-size: 24rpx;
font-weight: 500;
color: #666;
line-height: 1.2rem;
.ai
.riskTips
{
color: #C00000;
margin: 24rpx 25rpx 0;
line-height: 1.2rem;
font-size: 22rpx;
font-weight: 500;
color: #A2A2A1;
}
}
.riskTips
{
margin: 20rpx 25rpx 0;
padding-bottom: 30rpx;
line-height: 1.4rem;
font-size: 20rpx;
color: #999;
border-bottom: solid 1rpx #E4E4E4;
}
.categoryList
{
white-space: nowrap;
margin-top: 10rpx;
.item
{
display: inline-block;
line-height: 60rpx;
line-height: 80rpx;
padding: 0 18rpx;
font-size: 28rpx;
font-size: 27rpx;
font-weight: 500;
color: #42485B;
color: #939393;
}
.item.select
{
font-weight: bold;
color: #F97316;
.line
{
background-color: #F97316;
left: calc((100% - 50rpx)/2);
bottom: 0;
width: 50rpx;
height: 2rpx;
}
color: #F3C368;
}
}
.headingList
{
background-color: #F3F6F9;
margin: 28rpx 25rpx 0;
background-color: #FFF1E7;
padding: 0 10rpx;
border-radius: 10rpx 10rpx 0 0;
.item
{
line-height: 55rpx;
line-height: 70rpx;
font-size: 24rpx;
font-weight: 500;
color: #999;
color: #070707;
text-align: center;
}
}
.targetList
{
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
padding: 0 25rpx;
.item
{
@@ -769,7 +867,7 @@
}
.chg
{
text-align: center;
text-align: right;
}
.chg.up
{
@@ -777,168 +875,169 @@
}
.chg.down
{
color: #22C55E;
color: #355422;
}
}
.content
{
font-size: 20rpx;
font-weight: 500;
color: #666;
color: #71675D;
line-height: 1.2rem;
.ai
{
color: #C00000;
color: #EC3440;
}
}
}
}
.conceptList
{
padding: 30rpx 25rpx;
.conceptItem
{
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.05);
margin: 0 30rpx 30rpx 0;
width: calc((100% - 30rpx)/2);
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin-bottom: 20rpx;
border-radius: 10rpx;
.coverC
.titleChgStockNumC
{
.cover
padding: 24rpx 18rpx 0;
.title
{
display: block;
width: 100%;
height: 220rpx;
margin-right: 20rpx;
font-size: 30rpx;
font-weight: bold;
color: #3D3D3D;
}
.rateC
.chg
{
top: 12rpx;
left: 12rpx;
padding: 0 10rpx;
margin-right: 20rpx;
padding: 0 13rpx;
line-height: 40rpx;
border-radius: 20rpx;
font-size: 18rpx;
font-weight: 500;
font-size: 22rpx;
font-weight: bold;
color: white;
}
.chg.up
{
background-color: #EC3440;
}
.chg.down
{
background-color: #355422;
}
.stockNum
{
padding: 0 16rpx;
line-height: 36rpx;
border-radius: 20rpx;
font-size: 22rpx;
font-weight: bold;
}
.stockNum.up
{
color: #EC3440;
border: solid 2rpx #EC3440;
}
.stockNum.down
{
color: #355422;
border: solid 2rpx #355422;
}
}
.content
{
margin-top: 26rpx;
padding: 0 22rpx;
font-size: 24rpx;
font-weight: 500;
color: #71675D;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
.hotStockC
{
margin-top: 30rpx;
padding: 0 20rpx;
.title
{
margin-right: 10rpx;
font-size: 24rpx;
font-weight: bold;
color: #936E5C;
}
.stockList
{
font-size: 22rpx;
.stockItem
{
background-color: #3D3D3D;
margin-right: 10rpx;
padding: 0 8rpx;
line-height: 36rpx;
border-radius: 5rpx 20rpx 5rpx 20rpx;
color: #EFDDD1;
}
.more
{
color: #936E5C;
line-height: 36rpx;
}
}
.notVipC
{
background-color: #3D3D3D;
padding: 0 21rpx 0 16rpx;
line-height: 36rpx;
border-radius: 5rpx;
font-size: 22rpx;
color: #F3C368;
.icon
{
width: 11rpx;
margin-right: 9rpx;
width: 15rpx;
height: auto;
}
}
.rateC.up
{
background-color: #E53E3E;
}
.rateC.down
{
background-color: #38A169;
}
.totalC
{
background: linear-gradient(-90deg, #FAC915 0%, #F18D10 100%);
top: 12rpx;
right: 12rpx;
padding: 0 9rpx;
line-height: 40rpx;
border-radius: 20rpx;
font-size: 20rpx;
color: white;
}
}
.infoC
.transactionDateHistoryTimeC
{
padding: 20rpx 23rpx;
.title
padding: 20rpx 22rpx 30rpx;
.transactionDate
{
font-size: 26rpx;
font-weight: bold;
color: #222;
}
.content
{
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
margin-top: 10rpx;
line-height: 1.2rem;
font-size: 20rpx;
font-weight: 500;
color: #666;
}
.transactionDate
.historyTimeC
{
margin-top: 12rpx;
background-color: #F3C368;
padding: 0 10rpx 0 15rpx;
line-height: 36rpx;
border-radius: 10rpx;
font-size: 22rpx;
font-weight: 500;
color: #AAA;
}
.hotStockC
{
background-color: #F7FAFC;
margin-top: 16rpx;
padding: 10rpx 13rpx;
border-radius: 5rpx;
.titleC
color: #101213;
.icon
{
font-size: 20rpx;
font-weight: 500;
color: #666;
.arrow
{
width: 6rpx;
height: auto;
}
}
.stockList
{
margin-top: 10rpx;
height: 35rpx;
overflow: hidden;
.item
{
background-color: #FFEADC;
margin: 0 5rpx 5rpx 0;
padding: 0 9rpx;
line-height: 30rpx;
border-radius: 5rpx;
font-size: 18rpx;
font-weight: 500;
color: #F97316;
}
}
}
.dateHistoryTimeC
{
margin-top: 10rpx;
font-size: 20rpx;
.date
{
color: #666;
}
.historyTimeC
{
background-color: #F97316;
padding: 0 6rpx;
line-height: 38rpx;
border-radius: 5rpx;
color: white;
margin-right: 7rpx;
width: 20rpx;
height: auto;
}
}
}
}
.conceptItem:nth-child(2n)
{
margin-right: 0;
}
}
.historyEventList
{
padding: 34rpx 25rpx;
padding: 20rpx 0;
.expectScoreC
{
background-color: #FBEFE7;
padding: 0 25rpx;
padding: 0 20rpx;
height: 70rpx;
.icon
{
@@ -950,7 +1049,7 @@
{
font-size: 24rpx;
font-weight: 500;
color: #F97316;
color: #FFF6F0;
}
.tips
{
@@ -961,38 +1060,28 @@
}
.list
{
padding: 23rpx 0;
.item
{
.eventLineC
{
padding: 0 43rpx 0 15rpx;
padding: 30rpx 34rpx 0 25rpx;
.line
{
background-color: #F0F0F0;
width: 1px;
height: 100%;
width: 1rpx;
border-left: dashed 1rpx #F3C368;
height: calc(100% - 10rpx);
}
.pointC
.point
{
background-color: #F9731680;
top: 0;
left: 5rpx;
left: 14rpx;
width: 20rpx;
height: 20rpx;
border-radius: 50%;
.point
{
background-color: #F97316;
width: 10rpx;
height: 10rpx;
border-radius: 50%;
}
height: auto;
}
}
.eventInfoC
{
box-shadow: 0px 5px 10px 0px rgba(0,0,0,0.07);
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin-bottom: 20rpx;
padding-top: 27rpx;
min-width: 0;
@@ -1006,19 +1095,19 @@
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 30rpx;
font-size: 28rpx;
font-weight: bold;
color: #222;
}
.correlation
{
background-color: #F973161A;
background-color: #FFF8EB;
padding: 0 12rpx;
line-height: 40rpx;
border-radius: 5rpx;
font-size: 24rpx;
font-size: 22rpx;
font-weight: 500;
color: #F97316;
color: #EFB342;
}
}
.content
@@ -1055,7 +1144,7 @@
}
.rateItem.up
{
background-color: #C00000;
background-color: #EC3440;
}
.rateItem.down
{
@@ -1070,7 +1159,7 @@
padding: 16rpx 30rpx;
font-size: 24rpx;
font-weight: bold;
color: #F97316;
color: #070707;
.icon
{
margin-right: 13rpx;
@@ -1093,14 +1182,14 @@
}
.bottomC
{
background-color: #131313;
padding: 20rpx 25rpx calc(20rpx + env(safe-area-inset-bottom));
left: 0;
right: 0;
bottom: 0;
box-shadow: 0px -1rpx 0px 0px #EEEEEE;
.inputC
{
background-color: #F0F0F0;
background-color:#424143;
margin-right: 20rpx;
padding: 0 33rpx;
height: 70rpx;
@@ -1327,7 +1416,7 @@
}
.expectScorePopup
{
background-color: white;
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin-left: calc(100% - 320rpx - 24rpx);
width: 320rpx;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
@@ -1391,13 +1480,13 @@
}
.correlation
{
background-color: #F973161A;
background-color: #F3C368;
padding: 0 12rpx;
line-height: 40rpx;
border-radius: 5rpx;
font-size: 24rpx;
font-weight: 500;
color: #F97316;
color: #101213;
}
}
.sectorRateC
@@ -1452,4 +1541,140 @@
}
}
}
.vipPopup
{
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin: 0 95rpx;
padding-bottom: 34rpx;
width: 560rpx;
border-radius: 10rpx;
.topIcon
{
margin: -60rpx 0 0 calc((100% - 143rpx)/2);
width: 143rpx;
height: auto;
}
.popTitle
{
margin-top: 28rpx;
font-size: 40rpx;
font-weight: bold;
color: #101213;
text-align: center;
}
.popSubtitle
{
margin-top: 20rpx;
font-size: 24rpx;
font-weight: 500;
color: #493F2B;
text-align: center;
}
.moduleC
{
background-color: white;
margin: 0 30rpx 20rpx;
padding-top: 25rpx;
border-radius: 10rpx;
.section
{
padding: 0 25rpx;
font-size: 26rpx;
font-weight: bold;
color: #333;
.version
{
margin-left: 18rpx;
padding: 0 15rpx;
line-height: 32rpx;
border-radius: 10rpx;
font-size: 22rpx;
}
.version.free
{
background-color: #3D3D3D;
color: #FEFCFB;
}
.version.pro
{
background-color: #F2C367;
color: #3D3D3D;
}
}
.visitC
{
margin: 18rpx 24rpx 0;
height: 60rpx;
.line
{
background-color: #F2C367;
top: 0;
left: 0;
width: 44rpx;
height: 100%;
border-radius: 7rpx 0 0 7rpx;
}
.contentC
{
background-color: #F7F7F7;
margin-left: 6rpx;
padding: 0 15rpx;
height: 100%;
border-radius: 10rpx;
font-size: 24rpx;
font-weight: 500;
color: #3D3D3D;
.icon
{
margin-right: 14rpx;
width: 25rpx;
height: auto;
}
}
}
.list
{
padding-bottom: 10rpx;
.item
{
padding: 10rpx 25rpx;
font-size: 24rpx;
font-weight: 500;
color: #333;
.icon
{
margin-right: 13rpx;
width: 27rpx;
height: auto;
}
}
}
}
.moduleC.visit
{
margin-top: 20rpx;
padding-bottom: 25rpx;
}
.btnC
{
margin: 28rpx 92rpx 0;
.btn
{
line-height: 60rpx;
border-radius: 10rpx;
font-size: 24rpx;
font-weight: bold;
text-align: center;
}
.btn.later
{
background-color: #EDEDED;
margin-right: 56rpx;
}
.btn.upgrade
{
background-color: #F2C367;
}
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,19 @@
<template>
<view>
<navBar :leftText="navTitle"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<view v-if="type==1" class="tabC fixed" :style="'top:'+navH+'px;'">
<view :class="'item relative '+(selectCategory==index?'select':'')" v-for="(item,index) in categoryList" :key="index" @click="clickCategoryItem(index)">
{{item}}
<view v-if="selectCategory==index" class="line absolute"></view>
<navBar :leftText="navTitle" :hideNavBg="true"></navBar>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="chartDesC relative" :style="'margin-top:'+contentTop+'px;'">
<view v-if="type==1" class="tabC" >
<view :class="'item relative '+(selectCategory==index?'select':'')" v-for="(item,index) in categoryList" :key="index" @click="clickCategoryItem(index)">
{{item}}
<view v-if="selectCategory==index" class="line absolute"></view>
</view>
</view>
</view>
<view :class="'contentC fixed '+(type==2?'radius':'')" :style="'top:'+contentTop+'px;'">
<view v-if="type==1&&tradeData" class="volumeAmountC flex">
<text class="volume">成交量{{tradeData.volume}}</text>
<text class="amount">成交金额{{tradeData.amount}}</text>
</view>
<view v-if="type==1" style="width:750rpx; height:400rpx">
<view v-if="type==1" style="width:700rpx; height:400rpx">
<l-echart ref="chartRef"></l-echart>
</view>
<view class="section">关联描述</view>
@@ -21,7 +21,10 @@
<view class="riskTips">
风险提示解析内容由价值前沿人工采集整理自新闻公告研报等公开信息团队辛苦编写未经许可严禁转载本产品内容内容均不构成投资建议请投资者注意风险独立审慎决策
</view>
<view v-if="type==1&&sourceList.length>0" class="section">信息来源</view>
</view>
<view v-if="type==1&&sourceList.length>0" class="infoSourceC">
<view class="section">信息来源</view>
<view class="list">
<view class="item" v-for="(item,index) in sourceList" :key="index">
<view class="content">{{item.sentences}}</view>
@@ -200,7 +203,7 @@
if(e.type==1)
{
//事件详情
this.contentTop = this.navH+(60+8)/750*inject('windowWidth')
this.contentTop = this.navH+20/750*inject('windowWidth')
this.eventId = e.id
this.stockCode = e.code
this.getStockDetailsData()
@@ -397,6 +400,10 @@
</script>
<style lang="less">
page
{
background-color: #070707;
}
.topBg
{
top: 0;
@@ -404,54 +411,49 @@
width: 100%;
height: auto;
}
.tabC
.chartDesC
{
background-color: white;
margin-top: 10rpx;
left: 0;
right: 0;
border-radius: 20rpx 20rpx 0 0;
.item
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin: 0 25rpx;
padding-top: 10rpx;
border-radius: 10rpx;
.tabC
{
display: inline-block;
padding: 0 30rpx;
line-height: 60rpx;
font-size: 28rpx;
font-weight: 500;
color: #42485B;
}
.item.select
{
font-weight: bold;
color: #F97316;
.line
.item
{
background-color: #F97316;
left: calc((100% - 50rpx)/2);
bottom: 0;
width: 50rpx;
height: 2rpx;
display: inline-block;
padding: 0 25rpx;
line-height: 60rpx;
font-size: 28rpx;
font-weight: 500;
color: #42485B;
}
.item.select
{
font-weight: bold;
color: #F3C368;
.line
{
background-color: #F3C368;
left: calc((100% - 50rpx)/2);
bottom: 0;
width: 50rpx;
height: 2rpx;
}
}
}
}
.contentC
{
background-color: white;
left: 0;
right: 0;
bottom: 0;
overflow-y: scroll;
.volumeAmountC {
padding: 20rpx;
font-size: 26rpx;
color: #333;
padding: 25rpx;
font-size: 28rpx;
font-weight: bold;
color: #666;
.volume {
margin-right: 20rpx;
margin-right: 30rpx;
}
}
.section
.section
{
padding: 0 28rpx;
padding: 0 25rpx;
line-height: 80rpx;
font-size: 32rpx;
font-weight: bold;
@@ -466,24 +468,35 @@
color: #666;
.ai
{
color: #C00000;
color: #EC3440;
}
}
.riskTips
{
margin: 20rpx 25rpx 0;
padding-bottom: 30rpx;
line-height: 1.4rem;
font-size: 20rpx;
color: #999;
border-bottom: solid 1rpx #E4E4E4;
line-height: 1.2rem;
font-size: 22rpx;
color: #A2A2A1;
}
.list
}
.infoSourceC
{
.section
{
padding: 0 25rpx;
line-height: 80rpx;
font-size: 27rpx;
font-weight: bold;
color: #F3C368;
}
.list
{
padding: 0 25rpx;
.item
{
background-color: #F8F8F8;
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin-bottom: 20rpx;
padding: 30rpx 26rpx;
border-radius: 10rpx;

View File

@@ -1,15 +1,13 @@
<template>
<view>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<view class="navTitle fixed" :style="'top:'+menuTop+'px;line-height:'+menuH+'px;'">投资</view>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<navBar leftText="投资日历" :hideNavBg="true" :hideBack="true"></navBar>
<view class="searchC fixed flex" :style="'top:'+navH+'px;'">
<image class="icon" src="/static/icon/home/search.png" mode="widthFix"></image>
<input class="flex1" type="text" v-model="keywords" placeholder="搜索话题/股票名称" placeholder-style="color:#94989A"/>
<view class="line"></view>
<view class="search" @click="clickSearch()">搜索</view>
<image class="icon" src="/static/icon/home/conceptCenter/search.png" mode="widthFix"></image>
<input class="flex1" type="text" v-model="keywords" placeholder="搜索股票/话题..." placeholder-style="color:#94989A"/>
</view>
<scroll-view scroll-y class="contentC fixed" :style="'top:'+contentTop+'px;'" refresher-enabled :refresher-triggered="isRefreshing" @refresherrefresh="pullDownRefresh()" @scrolltolower="loadMoreData()">
<view>
<view class="calendarC">
<view class="todayC flex" >
<view class="todayDateC flex" @click="clickSelectMonth()">
<view class="date">{{selectDate}}</view>
@@ -22,44 +20,60 @@
<view class="item flex1" v-for="(item,index) in weekList" :key="index">{{item}}</view>
</view>
<view v-if="isExpand" class="monthDateList flexWrap">
<view class="item flexColumnCenter" v-for="(item,index) in monthDateList" :key="index" @click="clickSelectDate(item)">
<block v-if="selectDate!=todayDate">
<view v-if="selectDate==item.date" class="date today">{{item.day}}</view>
<view v-else :class="'date '+(item.isCurrentMonth?'':' notCurrentMonth')">{{item.day}}</view>
</block>
<block v-else>
<view :class="'date '+(item.isToday?'today':(item.isCurrentMonth?'':' notCurrentMonth')) ">{{item.day}}</view>
</block>
<block v-for="(item,index) in monthDateList" :key="index">
<block v-if="item.className">
<view v-if="item.className=='bg-gradient-danger'" class="eventNum danger">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-warning'" class="eventNum warning">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-info'" class="eventNum info">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-success'" class="eventNum success">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-danger'" :class="'item flexColumnCenter danger '+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
<view v-if="item.className=='bg-gradient-warning'" :class="'item flexColumnCenter warning '+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
<view v-if="item.className=='bg-gradient-info'" :class="'item flexColumnCenter info '+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
<view v-if="item.className=='bg-gradient-success'" :class="'item flexColumnCenter success'+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
</block>
<block v-else>
<view class="eventNum"></view>
<view class="item flexColumnCenter">
<view :class="'date '+(item.isCurrentMonth?'':' notCurrentMonth')">{{item.day}}</view>
<view class="eventNum"></view>
</view>
</block>
</view>
</block>
</view>
<view v-else class="weekDateList flex">
<view class="item flex1 flexColumnCenter" v-for="(item,index) in weekDateList" @click="clickSelectDate(item)" :key="index">
<block v-if="selectDate!=todayDate">
<view v-if="selectDate==item.date" class="date today">{{item.day}}</view>
<view v-else :class="'date '+(item.isCurrentMonth?'':' notCurrentMonth')">{{item.day}}</view>
</block>
<block v-else>
<view :class="'date '+(item.isToday?'today':(item.isCurrentMonth?'':' notCurrentMonth')) ">{{item.day}}</view>
</block>
<block v-for="(item,index) in weekDateList" :key="index">
<block v-if="item.className">
<view v-if="item.className=='bg-gradient-danger'" class="eventNum danger">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-warning'" class="eventNum warning">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-info'" class="eventNum info">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-success'" class="eventNum success">{{item.eventCount}}</view>
<view v-if="item.className=='bg-gradient-danger'" :class="'item flex1 flexColumnCenter danger '+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
<view v-if="item.className=='bg-gradient-warning'" :class="'item flex1 flexColumnCenter warning '+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
<view v-if="item.className=='bg-gradient-info'" :class="'item flex1 flexColumnCenter info '+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
<view v-if="item.className=='bg-gradient-success'" :class="'item flex1 flexColumnCenter success '+(selectDate==item.date?'select':'')" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.eventCount}}</view>
</view>
</block>
<block v-else>
<view class="eventNum"></view>
<view class="item flex1 flexColumnCenter" @click="clickSelectDate(item)">
<view class="date">{{item.day}}</view>
<view class="eventNum">{{item.className?item.eventCount:''}}</view>
</view>
</block>
</view>
</block>
</view>
<view class="expandBgC flexCenter">
<view class="expandC flex" @click="clickExpandOrRetract()">
@@ -80,30 +94,32 @@
</scroll-view>
<view v-if="selectTab==0" class="eventList">
<view class="item" v-for="(item,index) in eventList" :key="index" @click="clickEventItem(item.id)">
<view class="flex">
<view class="time flex1">{{getLocaleHourMinute(item.start_time)}}</view>
<view class="timeStarFollowC flex">
<view class="time">{{getLocaleHourMinute(item.start_time)}}</view>
<view class="starC">
<view class="starList flex" >
<image class="icon" :src="(sindex<(item.category.star_rating)?'/static/icon/invest/star_s.png':'/static/icon/invest/star.png')" mode="widthFix" v-for="(sitem,sindex) in 5" :key="index"></image>
</view>
</view>
<view class="flex1"></view>
<!-- <view class="follow">+关注</view> -->
</view>
<view class="categoryTitleC flex">
<view class="category">{{item.category.event_type}}</view>
<view class="title flex1">{{item.title}}</view>
</view>
<scroll-view scroll-x class="labelC">
<!-- <scroll-view scroll-x class="labelC">
<view class="label" v-for="(titem,tindex) in item.tags" :key="tindex">
{{titem}}
</view>
</scroll-view>
</scroll-view> -->
<view class="content">
<ua-markdown :source="replaceAnswerLabel(item.description)" />
</view>
<scroll-view v-if="item.related_concepts" scroll-x class="percentList">
<view class="percentItem" v-for="(citem,cindex) in item.related_concepts" :key="cindex">
{{citem.name}}
<zui-progress-circle :position="citem.score" :range="[270,630]" :size="26" :ring-width="2" :texture="['#F97316','#E3E3E3']">
<zui-progress-circle :position="citem.score" :range="[270,630]" :size="26" :ring-width="2" :texture="['#F3C368','#E3E3E3']">
<view class="num">{{citem.score*100}}%</view>
</zui-progress-circle>
</view>
@@ -566,6 +582,10 @@
</script>
<style lang="less">
page
{
background-color: #070707;
}
.topBg
{
top: 0;
@@ -573,24 +593,17 @@
width: 100%;
height: auto;
}
.navTitle
{
left: 0;
margin: 0 23rpx;
font-size: 36rpx;
font-weight: bold;
color: white;
}
.searchC
{
background-color: white;
background-color: #292929B3;
left: 0;
right: 0;
margin: 20rpx 25rpx 0;
padding: 0 20rpx;
height: 75rpx;
border-radius: 20rpx;
font-size: 26rpx;
padding: 0 25rpx;
height: 70rpx;
border: solid 1rpx #363636;
border-radius: 35rpx;
font-size: 22rpx;
font-weight: 500;
.icon
{
@@ -616,191 +629,248 @@
}
.contentC
{
background-color: white;
left: 0;
right: 0;
bottom: calc(55px + env(safe-area-inset-bottom));
margin-top: 22rpx;
border-radius: 20rpx 20rpx 0 0;
margin-top: 20rpx;
overflow-y: scroll;
.todayC
.calendarC
{
padding: 12rpx 26rpx;
.todayDateC
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin: 0 25rpx;
border-radius: 20rpx;
.todayC
{
font-size: 32rpx;
font-weight: bold;
color: #222;
.icon
padding: 12rpx 26rpx;
.todayDateC
{
margin-left: 16rpx;
width: 30rpx;
height: auto;
}
}
.today
{
background-color: #F973161A;
width: 40rpx;
line-height: 40rpx;
border-radius: 50%;
font-size: 26rpx;
font-weight: 500;
color: #F97316;
text-align: center;
}
}
.weekList
{
.item
{
line-height: 40rpx;
font-size: 24rpx;
color: #292621;
text-align: center;
}
}
.weekDateList
{
.item
{
padding-top: 14rpx;
.date
{
width: 40rpx;
line-height: 40rpx;
font-size: 24rpx;
text-align: center;
}
.date.today
{
background-color: #F9731626;
border-radius: 5rpx;
color: #F97316;
}
.eventNum
{
// background-color: #EB4A46;
margin-top: 12rpx;
width: 80rpx;
height: 30rpx;
line-height: 30rpx;
border-radius: 5rpx;
font-size: 16rpx;
font-weight: 500;
color: white;
text-align: center;
}
.eventNum.danger
{
background-color: #EB4A46;
}
.eventNum.warning
{
background-color: #FD9C16;
}
.eventNum.info
{
background-color: #16BBCF;
}
.eventNum.success
{
background-color: #55AE59;
}
}
}
.monthDateList
{
.item
{
padding-top: 14rpx;
width: calc(100%/7);
.date
{
width: 40rpx;
line-height: 40rpx;
font-size: 24rpx;
font-size: 32rpx;
font-weight: bold;
color: #CCCDD1;
.icon
{
margin-left: 16rpx;
width: 30rpx;
height: auto;
}
}
.today
{
background-color: #F3C368;
width: 40rpx;
line-height: 40rpx;
border-radius: 50%;
font-size: 26rpx;
font-weight: 500;
color: #070707;
text-align: center;
}
}
.weekList
{
.item
{
line-height: 40rpx;
font-size: 24rpx;
font-weight: 500;
color: #292621;
text-align: center;
}
.date.today
}
.weekDateList
{
margin-top: 6rpx;
padding: 0 20rpx;
.item
{
background-color: #F9731626;
margin-right: 16rpx;
padding: 10rpx 0 6rpx;
border-radius: 5rpx;
color: #F97316;
.date
{
font-size: 24rpx;
font-weight: bold;
color: #2A2A2A;
}
.eventNum
{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
margin-top: 2rpx;
font-size: 18rpx;
font-weight: bold;
}
}
.date.notCurrentMonth
.item:nth-child(7n)
{
color: #999;
margin-right: 0;
}
.eventNum
.item.select
{
margin-top: 12rpx;
width: 80rpx;
height: 30rpx;
line-height: 30rpx;
border-radius: 5rpx;
font-size: 16rpx;
font-weight: 500;
color: white;
text-align: center;
.date
{
color: white;
}
}
.eventNum.danger
.item.danger
{
background-color: #EB4A461A;
color: #EB4A46;
}
.item.select.danger
{
background-color: #EB4A46;
color: white;
}
.eventNum.warning
.item.warning
{
background-color: #FD9C16;
background-color: #FD9A141A;
color: #FD9A14;
}
.eventNum.info
.item.select.warning
{
background-color: #FD9A14;
color: white;
}
.item.info
{
background-color: #16BBCF1A;
color: #16BBCF;
}
.item.select.info
{
background-color: #16BBCF;
color: white;
}
.eventNum.success
.item.success
{
background-color: #55AE591A;
color: #55AE59;
}
.item.select.success
{
background-color: #55AE59;
color: white;
}
}
}
.expandBgC
{
margin: 0 25rpx;
border-bottom: solid 1rpx #E4E4E4;
.expandC
.monthDateList
{
padding: 20rpx 0;
font-size: 22rpx;
font-weight: 500;
color: #8A857C;
.arrow
margin-top: 6rpx;
padding: 0 20rpx;
.item
{
margin-left: 7rpx;
width: 15rpx;
height: auto;
margin: 0 16rpx 20rpx 0;
padding: 10rpx 0 6rpx;
width: calc((100% - 96rpx)/7);
border-radius: 5rpx;
.date
{
font-size: 26rpx;
font-weight: bold;
color: #2A2A2A;
}
.date.notCurrentMonth
{
color: #999;
}
.eventNum
{
margin-top: 2rpx;
font-size: 18rpx;
font-weight: bold;
}
}
.item:nth-child(7n)
{
margin-right: 0;
}
.item.select
{
.date
{
color: white;
}
}
.item.danger
{
background-color: #EB4A461A;
color: #EB4A46;
}
.item.select.danger
{
background-color: #EB4A46;
color: white;
}
.item.warning
{
background-color: #FD9A141A;
color: #FD9A14;
}
.item.select.warning
{
background-color: #FD9A14;
color: white;
}
.item.info
{
background-color: #16BBCF1A;
color: #16BBCF;
}
.item.select.info
{
background-color: #16BBCF;
color: white;
}
.item.success
{
background-color: #55AE591A;
color: #55AE59;
}
.item.select.success
{
background-color: #55AE59;
color: white;
}
}
.expandBgC
{
margin: 0 25rpx;
border-bottom: solid 1rpx #E4E4E4;
.expandC
{
padding: 20rpx 0;
font-size: 22rpx;
font-weight: 500;
color: #8A857C;
.arrow
{
margin-left: 7rpx;
width: 15rpx;
height: auto;
}
}
}
}
.tabC
{
margin-top: 10rpx;
.item
{
display: inline-block;
padding: 0 24rpx;
padding: 0 27rpx;
line-height: 70rpx;
font-size: 32rpx;
color: #42485B;
color: #CCCDD1;
}
.item.select
{
color: #F97316;
color: #F3C368;
}
}
.topCategoryC
{
white-space: nowrap;
border-bottom: solid 1rpx #E4E4E4;
.item
{
display: inline-block;
@@ -808,15 +878,15 @@
padding: 0 28rpx;
font-size: 27rpx;
font-weight: 500;
color: #42485B;
color: #939393;
}
.item.select
{
font-weight: bold;
color: black;
color: #F3C368;
.line
{
background-color: #F97316;
background-color: #F3C368;
left: calc((100% - 50rpx)/2);
width: 50rpx;
height: 2rpx;
@@ -827,29 +897,51 @@
}
.eventList
{
padding: 0 25rpx;
padding: 18rpx 25rpx;
.item
{
padding: 30rpx 0;
border-bottom: solid 1rpx #E4E4E4;
.time
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin-bottom: 20rpx;
padding: 30rpx 20rpx;
border-radius: 10rpx;
.timeStarFollowC
{
font-size: 24rpx;
font-weight: bold;
color: #767676;
}
.starC
{
.starList
.time
{
top: 0;
left: 0;
margin-right: 22rpx;
font-size: 24rpx;
font-weight: bold;
color: #767676;
}
.icon
.starC
{
margin-right: 9rpx;
width: 27rpx;
height: auto;
.starList
{
top: 0;
left: 0;
}
.icon
{
margin-right: 9rpx;
width: 27rpx;
height: auto;
}
}
.follow
{
background-color: #3D3D3D;
width: 90rpx;
line-height: 40rpx;
border-radius: 20rpx;
font-size: 22rpx;
font-weight: 500;
color: #F2C367;
text-align: center;
}
.follow.select
{
background-color: #F3C368;
color: #3D3D3D;
}
}
.categoryTitleC
@@ -857,23 +949,23 @@
margin-top: 18rpx;
.category
{
background-color: #FD9A14;
margin-right: 10rpx;
background-color: #F3C368;
margin-right: 12rpx;
padding: 0 12rpx;
line-height: 40rpx;
border-radius: 8rpx;
font-size: 22rpx;
font-size: 24rpx;
font-weight: bold;
color: white;
color: #070707;
}
.title
{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 30rpx;
font-size: 28rpx;
font-weight: bold;
color: #222;
color: #3D3D3D;
}
}
.labelC
@@ -901,18 +993,18 @@
overflow: hidden;
font-size: 24rpx;
font-weight: 500;
color: #666;
color: #71675D;
}
.percentList
{
white-space: nowrap;
margin-top: 20rpx;
margin-top: 26rpx;
.percentItem
{
display: inline-flex;
align-items: center;
background-color: #F8F8F8;
background-color: white;
box-shadow: 0 7rpx 18rpx 0 rgba(217,217,217,0.28);
margin-right: 20rpx;
padding: 0 20rpx;
height: 70rpx;

View File

@@ -1,11 +1,10 @@
<template>
<view>
<navBar leftText="详情"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<navBar leftText="事件详情" :hideNavBg="true"></navBar>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="categoryC fixed" :style="'top:'+navH+'px;'">
<view :class="'item relative '+(selectCategory==index?'select':'')" v-for="(item,index) in categoryList" :key="index" @click="clickCategoryItem(index)">
{{item}}
<view v-if="selectCategory==index" class="line absolute"></view>
</view>
</view>
<view v-if="investDetails" class="contentC fixed" :style="'top:'+contentTop+'px;'">
@@ -37,14 +36,31 @@
</view>
</view>
</view>
<view v-if="selectCategory==4">
<view v-if="selectCategory==3">
<view class="conceptList">
<view class="item relative" v-for="(item,index) in investDetails.extracted_concepts" :key="index" @click="clickConceptItem()">
<image class="cover" :src="item.first_image" mode="aspectFill"></image>
<view class="infoC absolute">
<view class="title">{{item.name}}</view>
<view class="content relative">{{item.reason}}
<text class="lookDetails absolute">查看详情</text>
<view class="item" v-for="(item,index) in conceptList" :key="index">
<view class="titleChgStockNumC flex">
<view class="title">{{item.concept}}</view>
<view v-if="item.price_info" :class="'chg '+(getRateUpOrDown(item.price_info.avg_change_pct)?'down':'up')">{{getChgRateStr(item.price_info.avg_change_pct)}}%</view>
<view v-if="item.price_info" :class="'stockNum '+(getRateUpOrDown(item.price_info.avg_change_pct)?'down':'up')">{{item.stock_count}} 只股票</view>
</view>
<view class="content">{{item.description}}</view>
<view class="hotStockC flex">
<view class="title">热门个股</view>
<view class="stockList flex">
<view class="stockItem" v-for="(sitem,sindex) in item.stocks.slice(0,3)" :key="sindex">{{sitem.stock_name}}</view>
<view class="more" @click="clickStockMore(item)">+{{item.stock_count-3}}更多</view>
</view>
<!-- <view class="notVipC flex" @click="clickNotVip()">
<image class="icon" src="/static/icon/home/conceptCenter/lock.png" mode="widthFix"></image>
<view>需升级Pro会员查看{{item.stock_count}}只个股</view>
</view> -->
</view>
<view class="transactionDateHistoryTimeC flex">
<view class="transactionDate flex1">交易时间{{item.price_info?item.price_info.trade_date:''}}</view>
<view class="historyTimeC flex" @click="clickHistoricalTimeline(item)">
<image class="icon" src="/static/icon/home/conceptCenter/timeAxis.png" mode="widthFix"></image>
<view>历史时间轴</view>
</view>
</view>
</view>
@@ -73,13 +89,13 @@
{
title:'全部股票',
num:0,
bgColor:'#C00000',
bgColor:'#D82A2A',
color:'white'
},
{
title:'大周期',
num:0,
bgColor:'#305496',
bgColor:'#3A5D9C',
color:'white'
},
{
@@ -163,6 +179,10 @@
</script>
<style lang="less">
page
{
background-color: #070707;
}
.topBg
{
top: 0;
@@ -172,9 +192,8 @@
}
.categoryC
{
background-color: white;
margin-top: 10rpx;
padding-top: 20rpx;
padding: 20rpx 10rpx 0;
left: 0;
right: 0;
border-radius: 20rpx 20rpx 0 0;
@@ -182,33 +201,25 @@
{
display: inline-block;
padding: 0 30rpx;
line-height: 75rpx;
font-size: 32rpx;
line-height: 76rpx;
font-size: 27rpx;
font-weight: 500;
color: #42485B;
color: #939393;
}
.item.select
{
font-weight: bold;
color: #F97316;
.line
{
background-color: #F97316;
left: calc((100% - 50rpx)/2);
bottom: 0;
width: 50rpx;
height: 2rpx;
}
color: #F3C368;
}
}
.contentC
{
background-color: white;
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
left: 0;
right: 0;
bottom: 0;
// margin-top: 10rpx;
// border-radius: 20rpx 20rpx 0 0;
bottom: env(safe-area-inset-bottom);
margin: 0 25rpx;
border-radius: 10rpx;
overflow-y: scroll;
.former
{
@@ -221,12 +232,12 @@
}
.stockCategoryList
{
margin-top: 18rpx;
padding: 0 24rpx;
margin-top: 30rpx;
padding: 0 20rpx;
.item
{
margin: 0 20rpx 20rpx 0;
width: calc((100% - 40rpx)/3);
margin: 0 30rpx 20rpx 0;
width: calc((100% - 60rpx)/3);
height: 100rpx;
border-radius: 10rpx;
.num
@@ -292,44 +303,139 @@
.conceptList
{
padding: 30rpx 25rpx;
.item
.item
{
margin-bottom: 20rpx;
.cover
background: linear-gradient(-30deg, #FFF6F0 0%, #FEFEFE 100%);
margin-bottom: 24rpx;
border-radius: 10rpx;
.titleChgStockNumC
{
display: block;
width: 100%;
height: 350rpx;
border-radius: 10rpx;
}
.infoC
{
background: linear-gradient(to bottom,#00000080,#000);
padding: 20rpx 23rpx;
left:0;
width: 100%;
bottom: 0;
border-radius: ;
color: white;
padding: 24rpx 18rpx 0;
.title
{
font-size: 26rpx;
margin-right: 20rpx;
font-size: 30rpx;
font-weight: bold;
color: #3D3D3D;
}
.chg
{
margin-right: 20rpx;
padding: 0 13rpx;
line-height: 40rpx;
border-radius: 20rpx;
font-size: 22rpx;
font-weight: bold;
color: white;
}
.chg.up
{
background-color: #EC3440;
}
.chg.down
{
background-color: #355422;
}
.stockNum
{
padding: 0 16rpx;
line-height: 36rpx;
border-radius: 20rpx;
font-size: 22rpx;
font-weight: bold;
}
.content
.stockNum.up
{
color: #EC3440;
border: solid 2rpx #EC3440;
}
.stockNum.down
{
color: #355422;
border: solid 2rpx #355422;
}
}
.content
{
margin-top: 26rpx;
padding: 0 22rpx;
font-size: 24rpx;
font-weight: 500;
color: #71675D;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}
.hotStockC
{
margin-top: 30rpx;
padding: 0 20rpx;
.title
{
margin-right: 10rpx;
font-size: 24rpx;
font-weight: bold;
color: #936E5C;
}
.stockList
{
font-size: 22rpx;
.stockItem
{
background-color: #3D3D3D;
margin-right: 10rpx;
padding: 0 8rpx;
line-height: 36rpx;
border-radius: 5rpx 20rpx 5rpx 20rpx;
color: #EFDDD1;
}
.more
{
color: #936E5C;
line-height: 36rpx;
}
}
.notVipC
{
background-color: #3D3D3D;
padding: 0 21rpx 0 16rpx;
line-height: 36rpx;
border-radius: 5rpx;
font-size: 22rpx;
color: #F3C368;
.icon
{
margin-right: 9rpx;
width: 15rpx;
height: auto;
}
}
}
.transactionDateHistoryTimeC
{
padding: 20rpx 22rpx 30rpx;
.transactionDate
{
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
margin-top: 10rpx;
font-size: 20rpx;
font-weight: 500;
line-height: 1.2rem;
.lookDetails
color: #666;
}
.historyTimeC
{
background-color: #F3C368;
padding: 0 10rpx 0 15rpx;
line-height: 36rpx;
border-radius: 10rpx;
font-size: 22rpx;
font-weight: 500;
color: #101213;
.icon
{
right: 0;
color: #F97316;
margin-right: 7rpx;
width: 20rpx;
height: auto;
}
}
}

View File

@@ -3,7 +3,10 @@
<navBar leftText="登录" :hideNavBg="true" :backBlack="true"></navBar>
<image class="logo" :style="'margin-top:'+contentTop+'px;'" src="/static/image/login/logo.png" mode="widthFix"></image>
<view class="loginTitle">欢迎登录价值前沿平台</view>
<view class="btn oneClickLogin" @click="clickOneClickLogin()">授权手机号一键登录</view>
<view class="btn oneClickLogin relative" @click="isBindPhone?clickOneClickLogin():''">
授权手机号一键登录
<button v-if="!isBindPhone" class="absolute" open-type="getPhoneNumber" @getphonenumber="getPhoneNumData"></button>
</view>
<view class="btn codeLogin" @click="clickCodeLogin()">使用短信验证登录</view>
<view class="agreeProtocolC fixed flexCenter">
<view class="agreeC" @click="clickAgree()">
@@ -17,19 +20,73 @@
<script>
import { inject } from 'vue';
import { loginByWx } from '@/request/api';
import { loginByWx, wxBindPhone } from '@/request/api';
export default {
data() {
return {
contentTop:'',
isAgree:false
isAgree:false,
isBindPhone:true, //是否绑定过手机号
}
},
onLoad() {
this.contentTop = inject('navHeight')+230/750*inject('windowWidth')
this.getIsBindPhoneData()
},
methods: {
/**
* 获取手机号
* @param {Object} e
*/
getPhoneNumData(e)
{
console.log(e)
if (e.detail.errMsg == 'getPhoneNumber:ok') {
uni.login({
provider:'weixin',
success(res) {
console.log(res.code)
let param = {code:res.code,isJson:1}
loginByWx(param).then(res=>{
if(res.code==200)
{
let token = res.data.token
uni.setStorageSync('token',token)
let param = {code:e.detail.code}
wxBindPhone(param).then(res=>{
if (res.code==200) {
uni.showToast({
title:res.message,
})
setTimeout(function() {
uni.switchTab({
url:'/pages/index/index'
})
}, 1000);
}else
uni.showToast({
title:res.message,
icon:'none'
})
}).catch(error=>{
})
}else
uni.showToast({
title:res.message,
icon:"none"
})
}).catch(error=>{
})
},
fail() {
}
})
}
},
/**
* 点击一键登录
*/
@@ -51,10 +108,8 @@
loginByWx(param).then(res=>{
if(res.code==200)
{
uni.showToast({
title:res.message,
})
uni.setStorageSync('token',res.data.token)
let token = res.data.token
uni.setStorageSync('token',token)
setTimeout(function() {
uni.switchTab({
url:'/pages/index/index'
@@ -73,7 +128,6 @@
}
})
},
/**
* 点击验证码登录
@@ -99,6 +153,35 @@
uni.navigateTo({
url:'/pages/mine/web/web?type='+type
})
},
/**
* 获取是否绑定过手机号
*/
getIsBindPhoneData()
{
let that = this
uni.login({
provider:'weixin',
success(res) {
console.log(res.code)
let param = {code:res.code,isJson:1}
loginByWx(param).then(res=>{
if(res.code==200)
{
that.isBindPhone = res.data.user.phone?true:false
}else
uni.showToast({
title:res.message,
icon:"none"
})
}).catch(error=>{
})
},
fail() {
}
})
}
}
}
@@ -132,6 +215,13 @@
background-color: #F97316;
margin-top: 60rpx;
color: white;
button
{
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
.btn.codeLogin
{

View File

@@ -1,7 +1,7 @@
<template>
<view>
<navBar leftText="信息完善"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="avatarC fixed" :style="'top:'+avatarTop+'px;'">
<image class="avatar" :src="avatar?avatar:avatarUrl" mode="aspectFill"></image>
<image class="icon absolute" src="/static/icon/mine/basicInfo/edit.png" mode="widthFix"></image>
@@ -14,7 +14,10 @@
<input type="nickname" v-model="nickname" />
</view>
<view class="section">手机号</view>
<view class="selectC flex">{{mobile}}</view>
<view class="selectC flex relative">
{{mobile}}
<button class="absolute" open-type="getPhoneNumber" @getphonenumber="getPhoneNumData"></button>
</view>
<view class="section">性别</view>
<picker mode="selector" :range="sexList" @change="sexChange">
<view class="selectC flex">
@@ -33,7 +36,7 @@
<script>
import { inject } from 'vue';
import { updateBasicInfo, userInfo } from '@/request/api';
import { updateBasicInfo, userInfo, wxBindPhone } from '@/request/api';
import { uploadImg } from '@/utils/util';
export default {
@@ -75,6 +78,31 @@
let value = e.detail.value
this.sex = this.sexList[value]
},
/**
* 获取手机号
* @param {Object} e
*/
getPhoneNumData(e)
{
console.log(e)
if (e.detail.errMsg == 'getPhoneNumber:ok') {
let param = {code:e.detail.code}
wxBindPhone(param).then(res=>{
if (res.code==200) {
uni.showToast({
title:res.message,
})
this.mobile = res.data.phone
}else
uni.showToast({
title:res.message,
icon:'none'
})
}).catch(error=>{
})
}
},
/**
* 点击下一步
*/
@@ -253,6 +281,13 @@
width: 16rpx;
height: auto;
}
button
{
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
.textareaC
{

View File

@@ -1,7 +1,7 @@
<template>
<view>
<navBar leftText="评论回复"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="tabC fixed flex" :style="'top:'+navH+'px;'">
<view :class="'item flex1 relative '+(selectTab==index?'select':'')" v-for="(item,index) in tabList" :key="index" @click="clickTabItem(index)">
{{item}}

View File

@@ -1,7 +1,7 @@
<template>
<view>
<navBar leftText="意见反馈"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="feedbackC fixed" :style="'top:'+navH+'px;'">
<view class="textareaC">
<textarea v-model="content" placeholder="请输入您要反馈的问题200 字以内)" placeholder-style="color:#C5C5C5" maxlength="200"></textarea>

View File

@@ -1,7 +1,7 @@
<template>
<view>
<navBar leftText="关注收藏"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="list fixed" :style="'top:'+navH+'px;'">
<view class="item" @click="clickEventItem(item.event_id)" v-for="(item,index) in followList" :key="index">
<view class="flex">

View File

@@ -1,7 +1,7 @@
<template>
<view>
<navBar leftText="信息完善"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="avatarC fixed" :style="'top:'+avatarTop+'px;'">
<image class="avatar" :src="avatar?avatar:avatarUrl" mode="aspectFill"></image>
<image class="icon absolute" src="/static/icon/mine/basicInfo/edit.png" mode="widthFix"></image>

View File

@@ -1,12 +1,13 @@
<template>
<view>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="navTitle fixed" :style="'top:'+menuTop+'px;line-height:'+menuH+'px;'">个人中心</view>
<view v-if="userInfo" class="personalInfoC relative flex" :style="'margin-top:'+infoTop+'px;'" @click="clickPersonalInfo()">
<image class="avatar" :src="userInfo.basic_info.avatar_url" mode="aspectFill"></image>
<view class="flex1">
<view class="nickname">{{userInfo.basic_info.username}}</view>
<view class="mobile">手机号{{userInfo.basic_info.phone}}</view>
<view v-if="memberInfo&&memberInfo.is_member" class="mobile">{{memberInfo.subscription_type}}会员</view>
</view>
<image class="arrow" src="/static/icon/mine/infoArrow.png" mode="widthFix"></image>
</view>
@@ -47,7 +48,7 @@
<script>
import { inject } from 'vue';
import { userInfo } from '@/request/api';
import { userInfo, membershipStatus } from '@/request/api';
export default {
data() {
@@ -55,7 +56,8 @@
menuTop:inject('menuTop'),
menuH: inject('menuHeight'),
infoTop:'',
userInfo:null,
userInfo:null, //用户信息
memberInfo:null, //会员信息
menuList:[{
icon:'/static/icon/mine/aboutUs.png',
title:'关于我们',
@@ -91,6 +93,7 @@
},
onShow() {
this.getUserInfoData()
this.getMemberStatus()
},
methods: {
/**
@@ -135,6 +138,11 @@
url:'/pages/mine/myLike/myLike'
})
},
/**
* 点击菜单
* @param {Object} url
* @param {Object} index
*/
clickMenuItem(url,index)
{
if(url)
@@ -179,12 +187,33 @@
}).catch(error=>{
})
}
},
/**
* 获取会员状态
*/
getMemberStatus()
{
membershipStatus().then(res=>{
if (res.code==200) {
this.memberInfo = res.data
} else
uni.showToast({
title:res.message,
icon:'none'
})
}).catch(error=>{
})
}
}
}
</script>
<style lang="less">
page
{
background-color: black;
}
.topBg
{
top: 0;
@@ -222,7 +251,7 @@
margin-top: 6rpx;
font-size: 24rpx;
font-weight: 500;
color: #FFECD3;
color: #F3C368;
}
.arrow
{
@@ -251,7 +280,7 @@
}
.vipC
{
padding: 0 25rpx;
margin: 0 45rpx;
.icon
{
display: block;
@@ -262,8 +291,9 @@
.menuList
{
background-color: white;
padding: 0 25rpx;
border-radius: 20rpx 20rpx 0 0;
margin: 0 25rpx;
padding: 0 20rpx 220rpx;
border-radius: 20rpx;
.item
{
height: 100rpx;

View File

@@ -1,7 +1,7 @@
<template>
<view>
<navBar leftText="我的点赞"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="list fixed" :style="'top:'+navH+'px;'">
<view class="item" v-for="(item,index) in myLikeList" :key="index">
<image class="avatar" :src="item.author.avatar_url" mode="aspectFill"></image>

View File

@@ -1,7 +1,7 @@
<template>
<view>
<navBar :leftText="navTitle"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view class="contentC fixed" :style="'top:'+navH+'px;'">
<text>{{webContent}}</text>
</view>

View File

@@ -1,13 +1,13 @@
<template>
<view>
<navBar leftText="会员中心"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view v-if="memberInfo" class="vipC relative" :style="'margin-top:'+navH+'px;'">
<view class="vipInfoC relative">
<image v-if="memberInfo.is_member" class="bg" src="/pagesMine/static/image/vip/vipTopBg.png" mode="widthFix"></image>
<image v-else class="bg" src="/pagesMine/static/image/vip/noVipTopBg.png" mode="widthFix"></image>
<view v-if="memberInfo.is_member" class="infoC vip absolute">
<view class="title">尊贵的VIP会员</view>
<view class="title">尊贵的{{memberInfo.subscription_type}}VIP会员</view>
<view class="tips">会员有效期至{{memberInfo.member_expire_date}}</view>
</view>
<view v-else class="infoC absolute">

View File

@@ -1,13 +1,13 @@
<template>
<view>
<navBar leftText="会员中心"></navBar>
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
<image class="topBg absolute" src="/static/image/index/conceptTopBg.png" mode="widthFix"></image>
<view v-if="memberInfo" class="vipC" :style="'margin-top:'+navH+'px;'">
<view class="vipInfoC relative">
<image v-if="memberInfo.is_member" class="bg" src="/pagesMine/static/image/vip/vipTopBg.png" mode="widthFix"></image>
<image v-else class="bg" src="/pagesMine/static/image/vip/noVipTopBg.png" mode="widthFix"></image>
<view v-if="memberInfo.is_member" class="infoC vip absolute">
<view class="title">尊贵的VIP会员</view>
<view class="title">尊贵的{{memberInfo.subscription_type}}VIP会员</view>
<view class="tips">会员有效期至{{memberInfo.member_expire_date}}</view>
</view>
<view v-else class="infoC absolute">

View File

@@ -20,6 +20,10 @@ export const loginByEmail = param => post('/api/auth/login/email',param)
* 微信登录
*/
export const loginByWx = param => post('/api/auth/login/wechat',param)
/**
* 微信绑定手机号
*/
export const wxBindPhone = param => post('/api/auth/bindphone/wechat',param)
/**
* 行业分类列表

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 972 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 204 KiB

View File

@@ -2,6 +2,7 @@
"pages": [
"pages/index/index",
"pages/invest/invest",
"pages/concept/concept",
"pages/mine/mine",
"pages/mine/basicInfo/basicInfo",
"pages/mine/feedback/feedback",
@@ -16,9 +17,9 @@
"pages/login/login",
"pages/login/codeLogin/codeLogin",
"pages/mine/web/web",
"pages/index/conceptCenter/conceptCenter",
"pages/index/historicalTimeline/historicalTimeline",
"pages/index/hotStock/hotStock"
"pages/index/conceptNewsDetails/conceptNewsDetails",
"pages/concept/historicalTimeline/historicalTimeline",
"pages/concept/hotStock/hotStock"
],
"subPackages": [
{

View File

@@ -1 +1 @@
"use strict";exports._imports_0="/static/image/mine/myTopBg.png",exports._imports_0$1="/static/image/login/logo.png",exports._imports_0$2="/static/image/index/conceptTopBg.png",exports._imports_1="/static/icon/home/search.png",exports._imports_1$1="/static/icon/home/downArrow.png",exports._imports_1$10="/pagesMine/static/image/vip/vipTopBg.png",exports._imports_1$11="/static/icon/back.png",exports._imports_1$2="/static/icon/mine/infoArrow.png",exports._imports_1$3="/static/icon/mine/basicInfo/edit.png",exports._imports_1$4="/static/icon/home/conceptDownArrow.png",exports._imports_1$5="/static/icon/home/like_s.png",exports._imports_1$6="/static/icon/login/mobile.png",exports._imports_1$7="/static/icon/home/conceptCenter/pre.png",exports._imports_1$8="/static/icon/home/conceptCenter/search.png",exports._imports_1$9="/static/icon/home/conceptCenter/timeScreenArrow.png",exports._imports_10="/static/icon/home/follow.png",exports._imports_10$1="/static/icon/home/conceptCenter/rankChg.png",exports._imports_10$2="/pagesMine/static/icon/vip/step2.png",exports._imports_11="/static/icon/home/conceptCenter/calendar.png",exports._imports_11$1="/pagesMine/static/icon/vip/step3_v.png",exports._imports_12="/static/icon/home/like.png",exports._imports_12$1="/static/icon/home/conceptCenter/browse.png",exports._imports_12$2="/pagesMine/static/icon/vip/step3.png",exports._imports_13="/static/icon/home/delete.png",exports._imports_13$1="/static/icon/home/sortArrow.png",exports._imports_13$2="/pagesMine/static/icon/vip/step4_v.png",exports._imports_14="/static/icon/home/industry_s.png",exports._imports_14$1="/pagesMine/static/icon/vip/step4.png",exports._imports_15="/pagesMine/static/icon/vip/investQuestion.png",exports._imports_16="/static/icon/home/conceptCenter/vipPopIcon.png",exports._imports_16$1="/pagesMine/static/icon/vip/industrialResearch.png",exports._imports_17="/static/icon/home/conceptCenter/visitModule.png",exports._imports_17$1="/pagesMine/static/icon/vip/operatingDecision.png",exports._imports_18="/static/icon/home/conceptCenter/free_s.png",exports._imports_19="/static/icon/home/conceptCenter/pro_s.png",exports._imports_2="/static/icon/backBlack.png",exports._imports_2$1="/static/icon/home/sort.png",exports._imports_2$10="/static/icon/home/conceptCenter/reasonRetract.png",exports._imports_2$11="/pagesMine/static/image/vip/noVipTopBg.png",exports._imports_2$2="/static/icon/home/upArrow.png",exports._imports_2$3="/static/icon/invest/calendar.png",exports._imports_2$4="/static/image/mine/vipBg.png",exports._imports_2$5="/static/icon/mine/basicInfo/downArrow.png",exports._imports_2$6="/static/icon/home/conceptUpArrow.png",exports._imports_2$7="/static/icon/login/code.png",exports._imports_2$8="/static/icon/home/conceptCenter/next.png",exports._imports_2$9="/static/icon/home/conceptCenter/sortType.png",exports._imports_3="/static/icon/home/browser.png",exports._imports_3$1="/static/icon/home/screen.png",exports._imports_3$2="/static/icon/invest/upArrow.png",exports._imports_3$3="/static/icon/mine/menuArrow.png",exports._imports_3$4="/static/icon/home/stockArrow.png",exports._imports_3$5="/static/icon/login/select_s.png",exports._imports_3$6="/static/icon/home/conceptCenter/transactionDate.png",exports._imports_3$7="/static/icon/home/conceptCenter/chgUp.png",exports._imports_3$8="/pagesMine/static/icon/vip/titleLeft_v.png",exports._imports_4="/static/icon/home/comment.png",exports._imports_4$1="/static/icon/invest/downArrow.png",exports._imports_4$2="/static/image/mine/service.png",exports._imports_4$3="/static/icon/home/expectScore.png",exports._imports_4$4="/static/icon/login/select.png",exports._imports_4$5="/static/icon/home/conceptCenter/timeAxis.png",exports._imports_4$6="/static/icon/home/conceptCenter/newsReport.png",exports._imports_4$7="/pagesMine/static/icon/vip/titleLeft.png",exports._imports_5="/static/icon/home/monthLeftArrow.png",exports._imports_5$1="/static/icon/home/close.png",exports._imports_5$2="/static/icon/home/expectScoreTips.png",exports._imports_5$3="/static/icon/home/follow_s.png",exports._imports_5$4="/pagesMine/static/icon/vip/titleRight_v.png",exports._imports_6="/static/icon/home/monthRightArrow.png",exports._imports_6$1="/static/icon/home/conceptCenter/statistics.png",exports._imports_6$2="/pagesMine/static/icon/vip/titleRight.png",exports._imports_7="/static/icon/home/conceptCenter/rank1.png",exports._imports_7$1="/pagesMine/static/icon/vip/step1_v.png",exports._imports_7$2="/pagesMine/static/icon/vip/notContain.png",exports._imports_8="/static/icon/home/conceptCenter/rank2.png",exports._imports_8$1="/pagesMine/static/icon/vip/step1.png",exports._imports_8$2="/pagesMine/static/icon/vip/contain.png",exports._imports_9="/static/icon/home/conceptCenter/rank3.png",exports._imports_9$1="/pagesMine/static/icon/vip/step2_v.png";
"use strict";exports._imports_0="/static/image/index/conceptTopBg.png",exports._imports_0$1="/static/image/login/logo.png",exports._imports_1="/static/icon/home/conceptCenter/search.png",exports._imports_1$1="/static/icon/home/downArrow.png",exports._imports_1$10="/static/icon/back.png",exports._imports_1$2="/static/icon/home/conceptCenter/timeAxis.png",exports._imports_1$3="/static/icon/home/conceptCenter/lock.png",exports._imports_1$4="/static/icon/mine/infoArrow.png",exports._imports_1$5="/static/icon/mine/basicInfo/edit.png",exports._imports_1$6="/static/icon/home/like_s.png",exports._imports_1$7="/static/icon/login/mobile.png",exports._imports_1$8="/static/icon/home/conceptCenter/timeScreenArrow.png",exports._imports_1$9="/pagesMine/static/image/vip/vipTopBg.png",exports._imports_10="/static/icon/home/search.png",exports._imports_10$1="/static/icon/home/follow.png",exports._imports_10$2="/static/icon/home/conceptCenter/rank2.png",exports._imports_10$3="/pagesMine/static/icon/vip/step2.png",exports._imports_11="/static/icon/home/delete.png",exports._imports_11$1="/static/icon/home/close.png",exports._imports_11$2="/static/icon/home/conceptCenter/rank3.png",exports._imports_11$3="/pagesMine/static/icon/vip/step3_v.png",exports._imports_12="/static/icon/home/industry_s.png",exports._imports_12$1="/static/icon/home/conceptCenter/rankChg.png",exports._imports_12$2="/static/icon/home/like.png",exports._imports_12$3="/pagesMine/static/icon/vip/step3.png",exports._imports_13="/static/icon/home/level_s.png",exports._imports_13$1="/static/icon/home/sortArrow.png",exports._imports_13$2="/static/icon/home/conceptCenter/calendar.png",exports._imports_13$3="/pagesMine/static/icon/vip/step4_v.png",exports._imports_14="/static/icon/home/conceptCenter/vipPopIcon.png",exports._imports_14$1="/static/icon/home/conceptCenter/browse.png",exports._imports_14$2="/pagesMine/static/icon/vip/step4.png",exports._imports_15="/static/icon/home/conceptCenter/visitModule.png",exports._imports_15$1="/pagesMine/static/icon/vip/investQuestion.png",exports._imports_16="/static/icon/home/conceptCenter/free_s.png",exports._imports_16$1="/pagesMine/static/icon/vip/industrialResearch.png",exports._imports_17="/static/icon/home/conceptCenter/pro_s.png",exports._imports_17$1="/pagesMine/static/icon/vip/operatingDecision.png",exports._imports_2="/static/icon/backBlack.png",exports._imports_2$1="/static/icon/home/upArrow.png",exports._imports_2$2="/static/icon/invest/calendar.png",exports._imports_2$3="/static/icon/home/conceptCenter/sortType.png",exports._imports_2$4="/static/image/mine/vipBg.png",exports._imports_2$5="/static/icon/mine/basicInfo/downArrow.png",exports._imports_2$6="/static/icon/login/code.png",exports._imports_2$7="/static/icon/home/conceptCenter/reasonExpand.png",exports._imports_2$8="/pagesMine/static/image/vip/noVipTopBg.png",exports._imports_3="/static/icon/home/conceptCenter/conceptScreenArrow.png",exports._imports_3$1="/static/icon/home/browser.png",exports._imports_3$2="/static/icon/invest/upArrow.png",exports._imports_3$3="/static/icon/mine/menuArrow.png",exports._imports_3$4="/static/icon/home/expectScore.png",exports._imports_3$5="/static/icon/login/select_s.png",exports._imports_3$6="/static/icon/home/conceptCenter/chgDown.png",exports._imports_3$7="/static/icon/home/conceptCenter/reasonRetract.png",exports._imports_3$8="/pagesMine/static/icon/vip/titleLeft_v.png",exports._imports_4="/static/icon/home/comment.png",exports._imports_4$1="/static/icon/invest/downArrow.png",exports._imports_4$2="/static/icon/home/conceptCenter/pre.png",exports._imports_4$3="/static/icon/home/conceptCenter/transactionDate.png",exports._imports_4$4="/static/image/mine/service.png",exports._imports_4$5="/static/icon/home/expectScoreTips.png",exports._imports_4$6="/static/icon/login/select.png",exports._imports_4$7="/static/icon/home/conceptCenter/chgUp.png",exports._imports_4$8="/pagesMine/static/icon/vip/titleLeft.png",exports._imports_5="/static/icon/home/monthLeftArrow.png",exports._imports_5$1="/static/icon/home/conceptCenter/next.png",exports._imports_5$2="/static/icon/home/expectScoreDot.png",exports._imports_5$3="/static/icon/home/follow_s.png",exports._imports_5$4="/static/icon/home/conceptCenter/newsReport.png",exports._imports_5$5="/pagesMine/static/icon/vip/titleRight_v.png",exports._imports_6="/static/icon/home/monthRightArrow.png",exports._imports_6$1="/pagesMine/static/icon/vip/titleRight.png",exports._imports_7="/pagesMine/static/icon/vip/step1_v.png",exports._imports_7$1="/pagesMine/static/icon/vip/notContain.png",exports._imports_8="/static/icon/home/conceptCenter/statistics.png",exports._imports_8$1="/pagesMine/static/icon/vip/step1.png",exports._imports_8$2="/pagesMine/static/icon/vip/contain.png",exports._imports_9="/static/icon/home/dateRange.png",exports._imports_9$1="/static/icon/home/conceptCenter/rank1.png",exports._imports_9$2="/pagesMine/static/icon/vip/step2_v.png";

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js");getApp();const a={name:"navBar",data(){return{navH:e.inject("navHeight"),menuH:e.inject("menuHeight"),navBarStyle:"",backTitleStyle:"",navTitleStyle:"",titleColor:this.navTitleColor,bgColor:this.navBgColor,num:this.peopleNum}},props:{leftText:{type:String,default:""},backBlack:{type:Boolean,default:!1},navTitle:{type:String,default:""},navBgColor:{type:String,default:""},navTitleColor:{type:String,default:"white"},hideBack:{type:Boolean,default:!1},hideNavBg:{type:Boolean,default:!1},backLevel:{type:Number,default:1},peopleNum:{type:Number,default:0}},mounted(){let t=this.navH,a=e.inject("menuHeight"),l=e.inject("menuTop"),i=`background-color:${this.bgColor};height:${t}px;`,n=`height:${a}px;margin-top:${l}px;color:${this.titleColor}`,o=`height:${a}px;line-height:${a}px;top:${l}px;color:${this.titleColor}`;this.navBarStyle=i,this.backTitleStyle=n,this.navTitleStyle=o},watch:{navTitleColor:{handler(e,t){this.titleColor=e}},navBgColor:{handler(e,t){this.bgColor=e}},peopleNum:{handler(e,t){this.num=e}}},methods:{clickBack(){e.index.navigateBack({fail(){e.index.switchTab({url:"/pages/index/index"})}})}}};const l=e._export_sfc(a,[["render",function(a,l,i,n,o,r){return e.e({a:!i.hideNavBg},i.hideNavBg?{}:{b:t._imports_0},{c:!i.hideBack&&!i.backBlack},i.hideBack||i.backBlack?{}:{d:t._imports_1$11},{e:!i.hideBack&&i.backBlack},!i.hideBack&&i.backBlack?{f:t._imports_2}:{},{g:e.t(i.leftText),h:e.s(o.backTitleStyle),i:e.o(((...e)=>r.clickBack&&r.clickBack(...e))),j:e.t(i.navTitle),k:o.num>0},o.num>0?{l:e.t(o.num)}:{},{m:e.s(o.navTitleStyle),n:e.s(o.navBarStyle)})}]]);wx.createComponent(l);
"use strict";const e=require("../../common/vendor.js"),t=require("../../common/assets.js");getApp();const a={name:"navBar",data(){return{navH:e.inject("navHeight"),menuH:e.inject("menuHeight"),navBarStyle:"",backTitleStyle:"",navTitleStyle:"",titleColor:this.navTitleColor,bgColor:this.navBgColor,num:this.peopleNum}},props:{leftText:{type:String,default:""},backBlack:{type:Boolean,default:!1},navTitle:{type:String,default:""},navBgColor:{type:String,default:""},navTitleColor:{type:String,default:"white"},hideBack:{type:Boolean,default:!1},hideNavBg:{type:Boolean,default:!1},backLevel:{type:Number,default:1},peopleNum:{type:Number,default:0}},mounted(){let t=this.navH,a=e.inject("menuHeight"),l=e.inject("menuTop"),i=`background-color:${this.bgColor};height:${t}px;`,n=`height:${a}px;margin-top:${l}px;color:${this.titleColor}`,o=`height:${a}px;line-height:${a}px;top:${l}px;color:${this.titleColor}`;this.navBarStyle=i,this.backTitleStyle=n,this.navTitleStyle=o},watch:{navTitleColor:{handler(e,t){this.titleColor=e}},navBgColor:{handler(e,t){this.bgColor=e}},peopleNum:{handler(e,t){this.num=e}}},methods:{clickBack(){e.index.navigateBack({fail(){e.index.switchTab({url:"/pages/index/index"})}})}}};const l=e._export_sfc(a,[["render",function(a,l,i,n,o,r){return e.e({a:!i.hideNavBg},i.hideNavBg?{}:{b:t._imports_0},{c:!i.hideBack&&!i.backBlack},i.hideBack||i.backBlack?{}:{d:t._imports_1$10},{e:!i.hideBack&&i.backBlack},!i.hideBack&&i.backBlack?{f:t._imports_2}:{},{g:e.t(i.leftText),h:e.s(o.backTitleStyle),i:e.o(((...e)=>r.clickBack&&r.clickBack(...e))),j:e.t(i.navTitle),k:o.num>0},o.num>0?{l:e.t(o.num)}:{},{m:e.s(o.navTitleStyle),n:e.s(o.navBarStyle)})}]]);wx.createComponent(l);

View File

@@ -15,7 +15,7 @@ Component({
data: {
color: "#858C9A",
selected:0,
selectedColor: "#F97316",
selectedColor: "#F3C368",
list: [
{
"pagePath": "/pages/index/index",
@@ -29,6 +29,12 @@ Component({
"iconPath": "/static/icon/tabbar/invest.png",
"selectedIconPath": "/static/icon/tabbar/invest_s.png"
},
// {
// "pagePath": "/pages/concept/concept",
// "text": "概念中心",
// "iconPath": "/static/icon/tabbar/concept.png",
// "selectedIconPath": "/static/icon/tabbar/concept_s.png"
// },
{
"pagePath": "/pages/mine/mine",
"text": "个人中心",

View File

@@ -1,7 +1,7 @@
<!--components/custom-tab-bar/index.wxml-->
<view class="tab-bar">
<view wx:for="{{list}}" wx:key="index" class="tab-bar-item {{item.bulge?'bulge':''}}" data-path="{{item.pagePath}}" data-index="{{index}}" bindtap="{{item.jump=='nav'?'navigateTo':'switchTab'}}">
<image class="image" src="{{selected == index ? item.selectedIconPath : item.iconPath}}" mode="aspectFit"></image>
<image class="image" src="{{selected == index ? item.selectedIconPath : item.iconPath}}" mode="heightFix"></image>
<view wx:if="{{item.text}}" class="tab-bar-view"
style="color: {{selected==index?selectedColor:color}};">{{item.text}}</view>
</view>

View File

@@ -1,6 +1,6 @@
/* components/custom-tab-bar/index.wxss */
.tab-bar {
background-color: white;
background-color: black;
position: fixed;
bottom: 0;
left: 0;
@@ -9,7 +9,7 @@
display: flex;
padding-bottom: env(safe-area-inset-bottom);
box-sizing: content-box;
box-shadow: 0 -1px 5rpx 0 #eee;
/* box-shadow: 0 -1px 5rpx 0 #eee; */
z-index: 99;
}
.tab-bar-item
@@ -22,8 +22,8 @@
}
.tab-bar-item .image {
margin: 16rpx 0 8rpx 0;
width: 40rpx;
height: 40rpx;
width: auto;
height: 41rpx;
}
.bulge
{

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "",
"usingComponents": {
"nav-bar": "../../components/navBar/navBar",
"uni-popup": "../../uni_modules/uni-popup/components/uni-popup/uni-popup"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="1881f0d1-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="timelineTitle fixed" style="{{d}}">{{c}}- 历史时间轴</view><view class="dateStatisticsC fixed" style="{{A}}"><view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{f}}"><image class="icon" src="{{e}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{h}}">{{g}}</picker></view><view class="btn" bindtap="{{j}}"><image class="icon" src="{{i}}" mode="widthFix"></image></view></view><view class="weekList flex"><view wx:for="{{k}}" wx:for-item="item" wx:key="b" class="item flex1">{{item.a}}</view></view><view class="monthDateList flexWrap"><view wx:for="{{l}}" wx:for-item="item" wx:key="m" class="item flexColumnCenter" bindtap="{{item.n}}"><block wx:if="{{item.a}}"><view class="{{item.e}}">{{item.b}} <view wx:if="{{item.c}}" class="chg">{{item.d}}%</view></view></block><block wx:else><block wx:if="{{item.f}}"><view class="date notCurrentMonth">{{item.g}}</view></block><block wx:else><view class="{{item.l}}">{{item.h}} <view wx:if="{{item.i}}" class="{{item.k}}">{{item.j}}%</view></view></block></block></view></view></view><view class="statisticsC"><view class="date">{{m}}统计</view><view wx:if="{{n}}" class="chgStockNumC flex"><view class="chgC flex flex1"><view class="title">涨跌幅</view><image wx:if="{{o}}" class="icon" src="{{p}}" mode="widthFix"></image><image wx:else class="icon" src="{{q}}" mode="widthFix"></image><view class="{{s}}">{{r}}%</view></view><view class="stockNumC flex flex1"><view class="title">统计股票</view><view class="stockNum">{{t}} 只股票</view></view></view><view class="newsReportC flex"><image class="icon" src="{{v}}" mode="widthFix"></image><text class="news">{{w}} 条新闻 · </text><text class="report" decode> {{x}} 份研报</text></view><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item"><view class="flex"><view class="type news">新闻</view><view class="title flex1">{{item.a}}</view></view><view class="content">{{item.b}}</view></view><view wx:for="{{z}}" wx:for-item="item" wx:key="b" class="item"><view class="flex"><view class="type report">研报</view><view class="title flex1">{{item.a}}</view></view><view class="content">坚定看好锂电材料,建议继续加配坚定六氟、添加剂,关注隔膜更加坚定的看好六氟:下游传导如期</view></view></view></view></view></view>
<view><nav-bar wx:if="{{a}}" u-i="adc20db2-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="timelineTitle fixed" style="{{d}}">{{c}}- 历史时间轴</view><view class="dateStatisticsC fixed" style="{{A}}"><view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{f}}"><image class="icon" src="{{e}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{h}}">{{g}}</picker></view><view class="btn" bindtap="{{j}}"><image class="icon" src="{{i}}" mode="widthFix"></image></view></view><view class="weekList flex"><view wx:for="{{k}}" wx:for-item="item" wx:key="b" class="item flex1">{{item.a}}</view></view><view class="monthDateList flexWrap"><view wx:for="{{l}}" wx:for-item="item" wx:key="m" class="item flexColumnCenter" bindtap="{{item.n}}"><block wx:if="{{item.a}}"><view class="{{item.e}}">{{item.b}} <view wx:if="{{item.c}}" class="chg">{{item.d}}%</view></view></block><block wx:else><block wx:if="{{item.f}}"><view class="date notCurrentMonth">{{item.g}}</view></block><block wx:else><view class="{{item.l}}">{{item.h}} <view wx:if="{{item.i}}" class="{{item.k}}">{{item.j}}%</view></view></block></block></view></view></view><view class="statisticsC"><view class="date">{{m}}统计</view><view wx:if="{{n}}" class="chgStockNumC flex"><view class="chgC flex flex1"><view class="title">涨跌幅</view><image wx:if="{{o}}" class="icon" src="{{p}}" mode="widthFix"></image><image wx:else class="icon" src="{{q}}" mode="widthFix"></image><view class="{{s}}">{{r}}%</view></view><view class="stockNumC flex flex1"><view class="title">统计股票</view><view class="stockNum">{{t}} 只股票</view></view></view><view class="newsReportC flex"><image class="icon" src="{{v}}" mode="widthFix"></image><text class="news">{{w}} 条新闻 · </text><text class="report" decode> {{x}} 份研报</text></view><view class="list"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="item"><view class="flex"><view class="type news">新闻</view><view class="title flex1">{{item.a}}</view></view><view class="content">{{item.b}}</view></view><view wx:for="{{z}}" wx:for-item="item" wx:key="b" class="item"><view class="flex"><view class="type report">研报</view><view class="title flex1">{{item.a}}</view></view><view class="content">坚定看好锂电材料,建议继续加配坚定六氟、添加剂,关注隔膜更加坚定的看好六氟:下游传导如期</view></view></view></view></view></view>

View File

@@ -0,0 +1 @@
page{background-color:#070707}.topBg{top:0;left:0;width:100%;height:auto}.timelineTitle{background-color:#fff9f5;left:0;right:0;margin:0 25rpx;padding:30rpx 27rpx 0;border-radius:10rpx 10rpx 0 0;font-size:28rpx;font-weight:700;color:#2b2b2b}.dateStatisticsC{background-color:#fff9f5;left:0;right:0;bottom:86rpx;margin:0 25rpx;padding:24rpx 25rpx 0;border-radius:0 0 10rpx 10rpx;overflow-y:scroll}.dateStatisticsC .dateC{background-color:#fff;box-shadow:0 5rpx 10rpx rgba(127,127,127,.1);border-radius:10rpx;padding:30rpx 25rpx 0}.dateStatisticsC .dateC .yearMonthC{background-color:#f7f7f7;height:70rpx;border-radius:35rpx}.dateStatisticsC .dateC .yearMonthC .btn{padding:0 52rpx}.dateStatisticsC .dateC .yearMonthC .btn .icon{width:13rpx;height:auto}.dateStatisticsC .dateC .yearMonthC .yearMonth{font-size:32rpx;font-weight:500;color:#070707;text-align:center}.dateStatisticsC .dateC .weekList .item{margin-right:13rpx;line-height:72rpx;font-size:26rpx;font-weight:500;color:#a7a7a7;text-align:center}.dateStatisticsC .dateC .monthDateList .item{margin-bottom:12rpx;width:calc(100%/7)}.dateStatisticsC .dateC .monthDateList .item .date{background-color:#f8f8f8;padding:4rpx 0;width:calc(100% - 10rpx);height:72rpx;border-radius:10rpx;font-size:26rpx;font-weight:700;color:#2a2a2a;text-align:center}.dateStatisticsC .dateC .monthDateList .item .date .chg{font-size:18rpx}.dateStatisticsC .dateC .monthDateList .item .date .chg.up{color:#ec3440}.dateStatisticsC .dateC .monthDateList .item .date .chg.down{color:#38a169}.dateStatisticsC .dateC .monthDateList .item .date.up{background-color:#ffd6d9}.dateStatisticsC .dateC .monthDateList .item .date.down{background-color:#cef1de}.dateStatisticsC .dateC .monthDateList .item .date.select.up{background-color:#ec3440;color:#fff}.dateStatisticsC .dateC .monthDateList .item .date.select.up .chg{color:#fff}.dateStatisticsC .dateC .monthDateList .item .date.select.down{background-color:#38a169;color:#fff}.dateStatisticsC .dateC .monthDateList .item .date.select.down .chg{color:#fff}.dateStatisticsC .dateC .monthDateList .item .date.notCurrentMonth{background-color:#fcfcfc;color:#999}.dateStatisticsC .statisticsC{background-color:#fff;margin-top:20rpx;padding:28rpx 20rpx 0;border-radius:10rpx}.dateStatisticsC .statisticsC .date{font-size:30rpx;font-weight:500;text-align:center}.dateStatisticsC .statisticsC .chgStockNumC{margin-top:36rpx;padding:0 13rpx 28rpx;border-bottom:solid 1rpx #EDEDED;font-size:26rpx}.dateStatisticsC .statisticsC .chgStockNumC .title{margin-right:18rpx;font-weight:500;color:#94979c}.dateStatisticsC .statisticsC .chgStockNumC .chgC .icon{margin-right:9rpx;width:17rpx;height:auto}.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg{font-weight:700}.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg.up{color:#ec3440}.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg.down{color:#38a169}.dateStatisticsC .statisticsC .chgStockNumC .stockNum{font-weight:700;color:#070707}.dateStatisticsC .statisticsC .newsReportC{padding-top:20rpx;font-size:28rpx;font-weight:700}.dateStatisticsC .statisticsC .newsReportC .icon{margin-right:20rpx;width:24rpx;height:auto}.dateStatisticsC .statisticsC .newsReportC .news{color:#ff7723}.dateStatisticsC .statisticsC .newsReportC .report{color:#333}.dateStatisticsC .statisticsC .list .item{padding:30rpx 0;border-bottom:solid 1rpx #EDEDED}.dateStatisticsC .statisticsC .list .item .type{margin-right:18rpx;padding:0 9rpx;line-height:40rpx;border-radius:5rpx;font-size:22rpx;font-weight:500}.dateStatisticsC .statisticsC .list .item .type.news{background-color:#f2c367;color:#070707}.dateStatisticsC .statisticsC .list .item .type.report{background-color:#3d3f3c;color:#f2c367}.dateStatisticsC .statisticsC .list .item .title{font-size:26rpx;font-weight:700;color:#070707}.dateStatisticsC .statisticsC .list .item .content{margin-top:20rpx;font-size:24rpx;font-weight:500;color:#333;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="59b0aede-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="titleScreenC fixed flex" style="{{f}}"><view class="title flex1">{{c}} - 相关个股</view><view class="screenC flex" bindtap="{{e}}"><view>时间筛选</view><image class="arrow" src="{{d}}" mode="widthFix"></image></view></view><scroll-view direction="vertical" class="stockList fixed" style="{{h}}"><view class="list"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item"><view class="stockInfoC flex" bindtap="{{item.f}}"><view class="titleCodeC"><view class="title">{{item.a}}</view><view class="code">{{item.b}}</view></view><view class="chg flex1">+4.04%</view><view class="industry flex1">食品行业</view><view class="reasonProjectC flex"><view>REASON/项目</view><image wx:if="{{item.c}}" class="arrow expand" src="{{item.d}}" mode="widthFix"></image><image wx:else class="arrow" src="{{item.e}}" mode="widthFix"></image></view></view><view wx:if="{{item.g}}" class="reasonProjectContentC"><view class="reasonC"><text class="title">REASON</text><text>{{item.h}}</text></view><view class="projectC"><text class="title">项目:</text><text>已进入芥末味夏威夷果仁/黑金蒜香茉莉翡翠豆两款产品</text></view></view></view></view></scroll-view><uni-popup wx:if="{{v}}" class="r" u-s="{{['d']}}" u-r="datePopup" u-i="59b0aede-1" bind:__l="__l" u-p="{{v}}"><view class="datePopup"><view class="btnTitleC flex"><view class="btn cancel" bindtap="{{i}}">取消</view><view class="title flex1">交易日期</view><view class="btn confirm" bindtap="{{j}}">确认</view></view><view class="yearMonthC flex"><view class="btn" bindtap="{{l}}"><image class="icon" src="{{k}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{n}}"><view>{{m}}</view></picker></view><view class="btn" bindtap="{{p}}"><image class="icon" src="{{o}}" mode="widthFix"></image></view></view><view class="weekList flex"><view wx:for="{{q}}" wx:for-item="item" wx:key="b" class="item flex1">{{item.a}}</view></view><view class="monthDateList flexWrap"><view wx:for="{{r}}" wx:for-item="item" wx:key="f" class="item flexColumnCenter" bindtap="{{item.g}}"><block wx:if="{{item.a}}"><view class="date select">{{item.b}}</view></block><block wx:else><block wx:if="{{item.c}}"><view class="date notCurrentMonth">{{item.d}}</view></block><block wx:else><view class="date">{{item.e}}</view></block></block></view></view><view class="quickTimeC flexCenter"><view wx:for="{{s}}" wx:for-item="item" wx:key="b" class="item" bindtap="{{item.c}}">{{item.a}}</view></view></view></uni-popup></view>
<view><nav-bar wx:if="{{a}}" u-i="0dffb7e7-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="titleScreenC fixed flex" style="{{f}}"><view class="title flex1">{{c}} - 相关个股</view><view class="screenC flex" bindtap="{{e}}"><view>时间筛选</view><image class="arrow" src="{{d}}" mode="widthFix"></image></view></view><scroll-view direction="vertical" class="stockList fixed" style="{{h}}"><view class="list"><view wx:for="{{g}}" wx:for-item="item" wx:key="i" class="item"><view class="stockInfoC flex" bindtap="{{item.f}}"><view class="titleCodeC"><view class="title">{{item.a}}</view><view class="code">{{item.b}}</view></view><view class="chg flex1">+4.04%</view><view class="industry flex1">食品行业</view><view class="reasonProjectC flex"><view>REASON/项目</view><image wx:if="{{item.c}}" class="arrow expand" src="{{item.d}}" mode="widthFix"></image><image wx:else class="arrow" src="{{item.e}}" mode="widthFix"></image></view></view><view wx:if="{{item.g}}" class="reasonProjectContentC"><view class="reasonC"><text class="title">REASON</text><text>{{item.h}}</text></view><view class="projectC"><text class="title">项目:</text><text>已进入芥末味夏威夷果仁/黑金蒜香茉莉翡翠豆两款产品</text></view></view></view></view></scroll-view><uni-popup wx:if="{{v}}" class="r" u-s="{{['d']}}" u-r="datePopup" u-i="0dffb7e7-1" bind:__l="__l" u-p="{{v}}"><view class="datePopup"><view class="btnTitleC flex"><view class="btn cancel" bindtap="{{i}}">取消</view><view class="title flex1">交易日期</view><view class="btn confirm" bindtap="{{j}}">确认</view></view><view class="yearMonthC flex"><view class="btn" bindtap="{{l}}"><image class="icon" src="{{k}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{n}}"><view>{{m}}</view></picker></view><view class="btn" bindtap="{{p}}"><image class="icon" src="{{o}}" mode="widthFix"></image></view></view><view class="weekList flex"><view wx:for="{{q}}" wx:for-item="item" wx:key="b" class="item flex1">{{item.a}}</view></view><view class="monthDateList flexWrap"><view wx:for="{{r}}" wx:for-item="item" wx:key="f" class="item flexColumnCenter" bindtap="{{item.g}}"><block wx:if="{{item.a}}"><view class="date select">{{item.b}}</view></block><block wx:else><block wx:if="{{item.c}}"><view class="date notCurrentMonth">{{item.d}}</view></block><block wx:else><view class="date">{{item.e}}</view></block></block></view></view><view class="quickTimeC flexCenter"><view wx:for="{{s}}" wx:for-item="item" wx:key="b" class="item" bindtap="{{item.c}}">{{item.a}}</view></view></view></uni-popup></view>

View File

@@ -0,0 +1 @@
page{background-color:#070707}.topBg{top:0;left:0;width:100%;height:auto}.titleScreenC{background-color:#fff9f5;left:0;right:0;margin:0 25rpx;padding:22rpx 25rpx 0;border-radius:10rpx 10rpx 0 0}.titleScreenC .title{font-size:28rpx;font-weight:700;color:#2b2b2b}.titleScreenC .screenC{padding:0 20rpx;line-height:42rpx;border-radius:23rpx;border:solid 2rpx #F3C368;font-size:22rpx;color:#e3aa3d}.titleScreenC .screenC .arrow{margin-left:7rpx;width:12rpx;height:auto}.stockList{background-color:#fff9f5;left:0;width:calc(100% - 50rpx);bottom:62rpx;margin:0 25rpx;border-radius:0 0 10rpx 10rpx}.stockList .list{padding:16rpx 25rpx}.stockList .list .item{background-color:#fff;box-shadow:0 5rpx 10rpx rgba(127,127,127,.08);margin-bottom:20rpx;padding:0 20rpx;border-radius:10rpx}.stockList .list .item .stockInfoC{padding:16rpx 0}.stockList .list .item .stockInfoC .titleCodeC .title{font-size:26rpx;font-weight:700;color:#222}.stockList .list .item .stockInfoC .titleCodeC .code{font-size:20rpx;font-weight:500;color:#888}.stockList .list .item .stockInfoC .chg{font-size:24rpx;font-weight:700;text-align:center}.stockList .list .item .stockInfoC .chg.up{color:#ec3440}.stockList .list .item .stockInfoC .chg.down{color:#38a169}.stockList .list .item .stockInfoC .industry{font-size:24rpx;font-weight:500;color:#333;text-align:center}.stockList .list .item .stockInfoC .reasonProjectC{font-size:24rpx;font-weight:500;color:#da9000}.stockList .list .item .stockInfoC .reasonProjectC .arrow{margin-left:10rpx;width:10rpx;height:auto}.stockList .list .item .stockInfoC .reasonProjectC .arrow.expand{margin-left:6rpx;width:14rpx;height:auto}.stockList .list .item .reasonProjectContentC{margin:0 5rpx;border-top:solid 1rpx #F0F0F0;padding:12rpx 9rpx 22rpx;font-size:24rpx;font-weight:500;color:#666}.stockList .list .item .reasonProjectContentC .title{color:#da9000}.stockList .list .item .reasonProjectContentC .projectC{margin-top:6rpx}.datePopup{background-color:#fff;padding-bottom:env(safe-area-inset-bottom);border-radius:20rpx 20rpx 0 0}.datePopup .btnTitleC .btn{padding:20rpx 26rpx;font-size:28rpx;font-weight:500}.datePopup .btnTitleC .btn.cancel{color:#727a8e}.datePopup .btnTitleC .btn.confirm{color:#d79412}.datePopup .btnTitleC .title{font-size:36rpx;font-weight:700;text-align:center}.datePopup .yearMonthC{background-color:#f7f7f7;margin:0 25rpx;height:70rpx;border-radius:35rpx}.datePopup .yearMonthC .btn{padding:0 52rpx}.datePopup .yearMonthC .btn .icon{width:13rpx;height:auto}.datePopup .yearMonthC .yearMonth{font-size:32rpx;font-weight:500;color:#070707;text-align:center}.datePopup .weekList{padding:0 38rpx}.datePopup .weekList .item{margin-right:13rpx;line-height:72rpx;font-size:26rpx;font-weight:500;color:#a7a7a7;text-align:center}.datePopup .monthDateList{padding:0 38rpx}.datePopup .monthDateList .item{margin-bottom:12rpx;width:calc(100%/7)}.datePopup .monthDateList .item .date{background-color:#f8f8f8;width:calc(100% - 10rpx);line-height:64rpx;border-radius:15rpx;font-size:24rpx;font-weight:700;color:#2a2a2a;text-align:center}.datePopup .monthDateList .item .date.select{background-color:#f2c367;color:#fff}.datePopup .monthDateList .item .date.notCurrentMonth{background-color:#fcfcfc;color:#999}.datePopup .quickTimeC{margin-top:16rpx}.datePopup .quickTimeC .item{margin-right:25rpx;width:120rpx;line-height:56rpx;border-radius:30rpx;border:solid 2rpx #4E4E4E;font-size:24rpx;font-weight:500;color:#4e4e4e;text-align:center}.datePopup .quickTimeC .item:last-child{margin-right:0}

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 @@
"use strict";const e=require("../../../common/vendor.js"),r=require("../../../common/assets.js"),t={};if(!Array){e.resolveComponent("navBar")()}Math;const o=e._export_sfc(t,[["render",function(t,o){return{a:e.p({leftText:"历史时间轴",hideNavBg:!0}),b:r._imports_0}}]]);wx.createPage(o);

View File

@@ -0,0 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="5b93cf51-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image></view>

View File

@@ -0,0 +1 @@
page{background-color:#070707}.topBg{top:0;left:0;width:100%;height:auto}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
"use strict";const t=require("../../../common/vendor.js"),e=require("../../../common/assets.js"),n={data:()=>({navH:t.inject("navHeight"),contentTop:"",weekList:["一","二","三","四","五","六","日"],monthDateList:[],selectMonthIndex:0,selectMonth:"",selectDate:""}),onLoad(){this.contentTop=this.navH+70/750*t.inject("windowWidth");let e=new Date,n=e.getFullYear(),o=e.getMonth()+1,s=e.getDate(),a=[];this.selectMonthIndex=240+o-1,this.selectMonth=n+"年"+o+"月";for(var h=n-20;h<n+20;h++)for(var i=0;i<12;i++){let t=new Date(h,i+1,0),e=new Date(h,i+1,0);e.setDate(1);let r=t.getDate(),c=e.getDay()||7,d=[];for(var l=1;l<=r;l++){let t=new Date(h,i+1,0);t.setDate(l);let e=t.getMonth()+1,a=t.getDate(),r=t.getTime(),c=h+"-"+(e>9?e:"0"+e)+"-"+(a>9?a:"0"+a);d.push({date:c,year:h,month:e,day:a,isToday:h==n&&e==o&&a==s,isCurrentMonth:!0,timestamp:r})}for(l=0;l<c-1;l++){let t=h,e=i;i<1&&(t=h-1,e=12);let n=new Date(t,e,0).getDate(),o=new Date(t,e-1,n-l),s=o.getMonth()+1,a=o.getDate(),r=o.getTime(),c=t+"-"+(s>9?s:"0"+s)+"-"+(a>9?a:"0"+a);d.unshift({date:c,year:t,month:s,day:a,isToday:!1,isCurrentMonth:!1,timestamp:r})}let m=new Date(h,i+1,1),D=new Date(m-864e5).getDay()||7;for(l=1;l<8-D;l++){let t=h,e=i;e>11&&(e=0,t++);let n=new Date(t,e+1,l),o=n.getMonth()+1,s=n.getDate(),a=n.getTime(),r=t+"-"+(o>9?o:"0"+o)+"-"+(s>9?s:"0"+s);d.push({date:r,year:t,month:o,day:s,isToday:!1,isCurrentMonth:!1,timestamp:a})}a.push(d)}this.monthDateList=a},methods:{clickPreMonth(){if(this.selectMonthIndex>0){this.selectMonthIndex--;let t=this.monthDateList[this.selectMonthIndex],e="",n="";for(let o of t)if(o.isCurrentMonth){e=o.year,n=o.month;break}this.selectMonth=e+"年"+n+"月"}},clickNextMonth(){if(this.selectMonthIndex<this.monthDateList.length-1){this.selectMonthIndex++;let t=this.monthDateList[this.selectMonthIndex],e="",n="";for(let o of t)if(o.isCurrentMonth){e=o.year,n=o.month;break}this.selectMonth=e+"年"+n+"月"}},monthChange(t){console.log(t);let e=(new Date).getFullYear(),n=t.detail.value,o=parseInt(n.split("-")[0]),s=parseInt(n.split("-")[1]);this.selectMonthIndex=12*(o-(e-20))+s-1,this.selectMonth=o+"年"+s+"月"},clickSelectDate(t){this.selectDate!=t.date&&(this.selectDate=t.date)}}};if(!Array){t.resolveComponent("navBar")()}Math;const o=t._export_sfc(n,[["render",function(n,o,s,a,h,i){return{a:t.p({leftText:"历史时间轴",hideNavBg:!0}),b:e._imports_0$2,c:t.s("top: "+h.navH+"px;"),d:e._imports_1$7,e:t.o((t=>i.clickPreMonth())),f:t.t(h.selectMonth),g:t.o(((...t)=>i.monthChange&&i.monthChange(...t))),h:e._imports_2$8,i:t.o((t=>i.clickNextMonth())),j:t.f(h.weekList,((e,n,o)=>({a:t.t(e),b:n}))),k:t.f(h.monthDateList[h.selectMonthIndex],((e,n,o)=>t.e({a:e.date==h.selectDate},e.date==h.selectDate?{b:t.t(e.day)}:t.e({c:!e.isCurrentMonth},e.isCurrentMonth?{e:t.t(e.day)}:{d:t.t(e.day)}),{f:n,g:t.o((t=>i.clickSelectDate(e)),n)}))),l:e._imports_3$7,m:e._imports_4$6,n:t.s("top: "+h.contentTop+"px;")}}]]);wx.createPage(o);

View File

@@ -1 +0,0 @@
<view><nav-bar wx:if="{{a}}" u-i="1881f0d1-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="timelineTitle fixed" style="{{c}}">电解液添加剂 - 历史时间轴</view><view class="dateStatisticsC fixed" style="{{n}}"><view class="dateC"><view class="yearMonthC flex"><view class="btn" bindtap="{{e}}"><image class="icon" src="{{d}}" mode="widthFix"></image></view><view class="yearMonth flex1"><picker mode="date" fields="month" bindchange="{{g}}">{{f}}</picker></view><view class="btn" bindtap="{{i}}"><image class="icon" src="{{h}}" mode="widthFix"></image></view></view><view class="weekList flex"><view wx:for="{{j}}" wx:for-item="item" wx:key="b" class="item flex1">{{item.a}}</view></view><view class="monthDateList flexWrap"><view wx:for="{{k}}" wx:for-item="item" wx:key="f" class="item flexColumnCenter" bindtap="{{item.g}}"><block wx:if="{{item.a}}"><view class="date select">{{item.b}}</view></block><block wx:else><block wx:if="{{item.c}}"><view class="date notCurrentMonth">{{item.d}}</view></block><block wx:else><view class="date">{{item.e}}</view></block></block></view></view></view><view class="statisticsC"><view class="date">2025-11-10统计</view><view class="chgStockNumC flex"><view class="chgC flex flex1"><view class="title">涨跌幅</view><image class="icon" src="{{l}}" mode="widthFix"></image><view class="chg">+4.66%</view></view><view class="stockNumC flex flex1"><view class="title">涨跌幅</view><view class="stockNum">28 只股票</view></view></view><view class="newsReportC flex"><image class="icon" src="{{m}}" mode="widthFix"></image><text class="news">5 条新闻 · </text><text class="report" decode> 3 份研报</text></view><view class="list"><view class="item"><view class="flex"><view class="type">新闻</view><view class="title flex1">【招商电新】坚定看好锂电材料</view></view><view class="content">坚定看好锂电材料,建议继续加配坚定六氟、添加剂,关注隔膜更加坚定的看好六氟:下游传导如期</view></view></view></view></view></view>

View File

@@ -1 +0,0 @@
page{background-color:#070707}.topBg{top:0;left:0;width:100%;height:auto}.timelineTitle{background-color:#fff9f5;left:0;right:0;margin:0 25rpx;padding:30rpx 27rpx 0;border-radius:10rpx 10rpx 0 0;font-size:28rpx;font-weight:700;color:#2b2b2b}.dateStatisticsC{background-color:#fff9f5;left:0;right:0;bottom:86rpx;margin:0 25rpx;padding:24rpx 25rpx 0;border-radius:0 0 10rpx 10rpx}.dateStatisticsC .dateC{background-color:#fff;box-shadow:0 5rpx 10rpx rgba(127,127,127,.1);border-radius:10rpx;padding:30rpx 25rpx 0}.dateStatisticsC .dateC .yearMonthC{background-color:#f7f7f7;height:70rpx;border-radius:35rpx}.dateStatisticsC .dateC .yearMonthC .btn{padding:0 52rpx}.dateStatisticsC .dateC .yearMonthC .btn .icon{width:13rpx;height:auto}.dateStatisticsC .dateC .yearMonthC .yearMonth{font-size:32rpx;font-weight:500;color:#070707;text-align:center}.dateStatisticsC .dateC .weekList .item{margin-right:13rpx;line-height:72rpx;font-size:26rpx;font-weight:500;color:#a7a7a7;text-align:center}.dateStatisticsC .dateC .monthDateList .item{margin-bottom:12rpx;width:calc(100%/7)}.dateStatisticsC .dateC .monthDateList .item .date{background-color:#f8f8f8;width:calc(100% - 10rpx);line-height:64rpx;border-radius:15rpx;font-size:24rpx;font-weight:700;color:#2a2a2a;text-align:center}.dateStatisticsC .dateC .monthDateList .item .date.select{background-color:#f2c367;color:#fff}.dateStatisticsC .dateC .monthDateList .item .date.notCurrentMonth{background-color:#fcfcfc;color:#999}.dateStatisticsC .statisticsC{background-color:#fff;margin-top:20rpx;padding:28rpx 20rpx 0;border-radius:10rpx}.dateStatisticsC .statisticsC .date{font-size:30rpx;font-weight:500;text-align:center}.dateStatisticsC .statisticsC .chgStockNumC{margin-top:36rpx;padding:0 13rpx 28rpx;border-bottom:solid 1rpx #EDEDED;font-size:26rpx}.dateStatisticsC .statisticsC .chgStockNumC .title{margin-right:18rpx;font-weight:500;color:#94979c}.dateStatisticsC .statisticsC .chgStockNumC .chgC .icon{margin-right:9rpx;width:17rpx;height:auto}.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg{font-weight:700}.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg.up{color:#ec3440}.dateStatisticsC .statisticsC .chgStockNumC .chgC .chg.down{color:#38a169}.dateStatisticsC .statisticsC .chgStockNumC .stockNum{font-weight:700;color:#070707}.dateStatisticsC .statisticsC .newsReportC{padding-top:20rpx;font-size:28rpx;font-weight:700}.dateStatisticsC .statisticsC .newsReportC .icon{margin-right:20rpx;width:24rpx;height:auto}.dateStatisticsC .statisticsC .newsReportC .news{color:#ff7723}.dateStatisticsC .statisticsC .newsReportC .report{color:#333}.dateStatisticsC .statisticsC .list .item{padding:30rpx 0;border-bottom:solid 1rpx #EDEDED}.dateStatisticsC .statisticsC .list .item .type{margin-right:18rpx;line-height:40rpx;border-radius:5rpx;font-size:22rpx;font-weight:500}.dateStatisticsC .statisticsC .list .item .title{font-size:26rpx;font-weight:700;color:#070707}.dateStatisticsC .statisticsC .list .item .content{margin-top:20rpx;font-size:24rpx;font-weight:500;color:#333;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}

View File

@@ -1 +0,0 @@
"use strict";const t=require("../../../common/vendor.js"),e=require("../../../request/api.js"),o=require("../../../common/assets.js"),s={data:()=>({navH:t.inject("navHeight"),listTop:"",conceptId:""}),onLoad(e){this.listTop=this.navH+68/750*t.inject("windowWidth"),e.id&&(this.conceptId=e.id,this.getConceptHotStockData())},methods:{getConceptHotStockData(){e.conceptDetails(this.conceptId,{}).then((t=>{})).catch((t=>{}))}}};if(!Array){t.resolveComponent("navBar")()}Math;const i=t._export_sfc(s,[["render",function(e,s,i,n,c,a){return{a:t.p({leftText:"热门个股",hideNavBg:!0}),b:o._imports_0$2,c:o._imports_1$9,d:t.s("top:"+c.navH+"px;"),e:o._imports_2$10,f:t.s("top:"+c.listTop+"px;")}}]]);wx.createPage(i);

View File

@@ -1 +0,0 @@
<view><nav-bar wx:if="{{a}}" u-i="59b0aede-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="titleScreenC fixed flex" style="{{d}}"><view class="title flex1">食饮公司山姆渠道布局 - 相关个股</view><view class="screenC flex"><view>时间筛选</view><image class="arrow" src="{{c}}" mode="widthFix"></image></view></view><scroll-view direction="vertical" class="stockList fixed" style="{{f}}"><view class="list"><view class="item"><view class="stockInfoC flex"><view class="titleCodeC"><view class="title">甘源食品</view><view class="code">002991</view></view><view class="chg flex1">+4.04%</view><view class="industry flex1">食品行业</view><view class="reasonProjectC flex"><view>REASON/项目</view><image class="arrow" src="{{e}}" mode="widthFix"></image></view></view><view class="reasonProjectContentC"><view class="reasonC"><text class="title">REASON</text><text>山姆渠道销售数据及新品推进情况</text></view><view class="projectC"><text class="title">项目:</text><text>已进入芥末味夏威夷果仁/黑金蒜香茉莉翡翠豆两款产品</text></view></view></view></view></scroll-view></view>

View File

@@ -1 +0,0 @@
page{background-color:#070707}.topBg{top:0;left:0;width:100%;height:auto}.titleScreenC{background-color:#fff9f5;left:0;right:0;margin:0 25rpx;padding:22rpx 25rpx 0;border-radius:10rpx 10rpx 0 0}.titleScreenC .title{font-size:28rpx;font-weight:700;color:#2b2b2b}.titleScreenC .screenC{padding:0 20rpx;line-height:42rpx;border-radius:23rpx;border:solid 2rpx #F3C368;font-size:22rpx;color:#e3aa3d}.titleScreenC .screenC .arrow{margin-left:7rpx;width:12rpx;height:auto}.stockList{background-color:#fff9f5;left:0;width:calc(100% - 50rpx);bottom:62rpx;margin:0 25rpx;border-radius:0 0 10rpx 10rpx}.stockList .list{padding:16rpx 25rpx}.stockList .list .item{background-color:#fff;box-shadow:0 5rpx 10rpx rgba(127,127,127,.08);padding:0 20rpx;border-radius:10rpx}.stockList .list .item .stockInfoC{padding:16rpx 0}.stockList .list .item .stockInfoC .titleCodeC .title{font-size:26rpx;font-weight:700;color:#222}.stockList .list .item .stockInfoC .titleCodeC .code{font-size:20rpx;font-weight:500;color:#888}.stockList .list .item .stockInfoC .chg{font-size:24rpx;font-weight:700;text-align:center}.stockList .list .item .stockInfoC .chg.up{color:#ec3440}.stockList .list .item .stockInfoC .chg.down{color:#38a169}.stockList .list .item .stockInfoC .industry{font-size:24rpx;font-weight:500;color:#333;text-align:center}.stockList .list .item .stockInfoC .reasonProjectC{font-size:24rpx;font-weight:500;color:#da9000}.stockList .list .item .stockInfoC .reasonProjectC .arrow{margin-left:10rpx;width:10rpx;height:auto}.stockList .list .item .reasonProjectContentC{margin:0 5rpx;border-top:solid 1rpx #F0F0F0;padding:12rpx 9rpx 22rpx;font-size:24rpx;font-weight:500;color:#666}.stockList .list .item .reasonProjectContentC .title{color:#da9000}.stockList .list .item .reasonProjectContentC .projectC{margin-top:6rpx}

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,7 @@
"navigationBarTitleText": "uni-app",
"enablePullDownRefresh": false,
"usingComponents": {
"nav-bar": "../../components/navBar/navBar",
"uni-popup": "../../uni_modules/uni-popup/components/uni-popup/uni-popup"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="42054871-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view wx:if="{{c}}" class="tabC fixed" style="{{e}}"><view wx:for="{{d}}" wx:for-item="item" wx:key="d" class="{{item.c}}" bindtap="{{item.e}}">{{item.a}} <view wx:if="{{item.b}}" class="line absolute"></view></view></view><view class="{{n}}" style="{{o}}"><view wx:if="{{f}}" class="volumeAmountC flex"><text class="volume">成交量:{{g}}</text><text class="amount">成交金额:{{h}}</text></view><view wx:if="{{i}}" style="width:750rpx;height:400rpx"><l-echart class="r" u-r="chartRef" u-i="42054871-1" bind:__l="__l"></l-echart></view><view class="section">关联描述</view><view class="des">{{k}}<text class="ai">AI合成</text></view><view class="riskTips"> 【风险提示:解析内容由价值前沿人工采集整理自新闻、公告、研报等公开信息,团队辛苦编写,未经许可严禁转载。本产品内容内容均不构成投资建议,请投资者注意风险,独立审慎决策。】 </view><view wx:if="{{l}}" class="section">信息来源</view><view class="list"><view wx:for="{{m}}" wx:for-item="item" wx:key="e" class="item"><view class="content">{{item.a}}</view><view class="article">——《{{item.b}}》</view><view class="authorDateC flex"><view class="author flex1">{{item.c}}</view><view class="date">{{item.d}}</view></view></view></view></view></view>
<view><nav-bar wx:if="{{a}}" u-i="42054871-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="chartDesC relative" style="{{k}}"><view wx:if="{{c}}" class="tabC"><view wx:for="{{d}}" wx:for-item="item" wx:key="d" class="{{item.c}}" bindtap="{{item.e}}">{{item.a}} <view wx:if="{{item.b}}" class="line absolute"></view></view></view><view wx:if="{{e}}" class="volumeAmountC flex"><text class="volume">成交量:{{f}}</text><text class="amount">成交金额:{{g}}</text></view><view wx:if="{{h}}" style="width:700rpx;height:400rpx"><l-echart class="r" u-r="chartRef" u-i="42054871-1" bind:__l="__l"></l-echart></view><view class="section">关联描述</view><view class="des">{{j}}<text class="ai">AI合成</text></view><view class="riskTips"> 【风险提示:解析内容由价值前沿人工采集整理自新闻、公告、研报等公开信息,团队辛苦编写,未经许可严禁转载。本产品内容内容均不构成投资建议,请投资者注意风险,独立审慎决策。】 </view></view><view wx:if="{{l}}" class="infoSourceC"><view class="section">信息来源</view><view class="list"><view wx:for="{{m}}" wx:for-item="item" wx:key="e" class="item"><view class="content">{{item.a}}</view><view class="article">——《{{item.b}}》</view><view class="authorDateC flex"><view class="author flex1">{{item.c}}</view><view class="date">{{item.d}}</view></view></view></view></view></view>

View File

@@ -1 +1 @@
.topBg{top:0;left:0;width:100%;height:auto}.tabC{background-color:#fff;margin-top:10rpx;left:0;right:0;border-radius:20rpx 20rpx 0 0}.tabC .item{display:inline-block;padding:0 30rpx;line-height:60rpx;font-size:28rpx;font-weight:500;color:#42485b}.tabC .item.select{font-weight:700;color:#f97316}.tabC .item.select .line{background-color:#f97316;left:calc((100% - 50rpx)/2);bottom:0;width:50rpx;height:2rpx}.contentC{background-color:#fff;left:0;right:0;bottom:0;overflow-y:scroll}.contentC .volumeAmountC{padding:20rpx;font-size:26rpx;color:#333}.contentC .volumeAmountC .volume{margin-right:20rpx}.contentC .section{padding:0 28rpx;line-height:80rpx;font-size:32rpx;font-weight:700;color:#222}.contentC .des{margin:0 25rpx;line-height:1.4rem;font-size:24rpx;font-weight:500;color:#666}.contentC .des .ai{color:#c00000}.contentC .riskTips{margin:20rpx 25rpx 0;padding-bottom:30rpx;line-height:1.4rem;font-size:20rpx;color:#999;border-bottom:solid 1rpx #E4E4E4}.contentC .list{padding:0 25rpx}.contentC .list .item{background-color:#f8f8f8;margin-bottom:20rpx;padding:30rpx 26rpx;border-radius:10rpx}.contentC .list .item .content{font-size:24rpx;font-weight:500;color:#222}.contentC .list .item .article{margin-top:10rpx;font-size:22rpx;font-weight:500;color:#666;text-align:right}.contentC .list .item .authorDateC{margin-top:30rpx;font-size:22rpx;font-weight:500;color:#aaa}.contentC .list .item .authorDateC .author{margin-right:10rpx}.contentC.radius{margin-top:10rpx;border-radius:20rpx 20rpx 0 0}
page{background-color:#070707}.topBg{top:0;left:0;width:100%;height:auto}.chartDesC{background:linear-gradient(-30deg,#fff6f0,#fefefe);margin:0 25rpx;padding-top:10rpx;border-radius:10rpx}.chartDesC .tabC .item{display:inline-block;padding:0 25rpx;line-height:60rpx;font-size:28rpx;font-weight:500;color:#42485b}.chartDesC .tabC .item.select{font-weight:700;color:#f3c368}.chartDesC .tabC .item.select .line{background-color:#f3c368;left:calc((100% - 50rpx)/2);bottom:0;width:50rpx;height:2rpx}.chartDesC .volumeAmountC{padding:25rpx;font-size:28rpx;font-weight:700;color:#666}.chartDesC .volumeAmountC .volume{margin-right:30rpx}.chartDesC .section{padding:0 25rpx;line-height:80rpx;font-size:32rpx;font-weight:700;color:#222}.chartDesC .des{margin:0 25rpx;line-height:1.4rem;font-size:24rpx;font-weight:500;color:#666}.chartDesC .des .ai{color:#ec3440}.chartDesC .riskTips{margin:20rpx 25rpx 0;padding-bottom:30rpx;line-height:1.2rem;font-size:22rpx;color:#a2a2a1}.infoSourceC .section{padding:0 25rpx;line-height:80rpx;font-size:27rpx;font-weight:700;color:#f3c368}.infoSourceC .list{padding:0 25rpx}.infoSourceC .list .item{background:linear-gradient(-30deg,#fff6f0,#fefefe);margin-bottom:20rpx;padding:30rpx 26rpx;border-radius:10rpx}.infoSourceC .list .item .content{font-size:24rpx;font-weight:500;color:#222}.infoSourceC .list .item .article{margin-top:10rpx;font-size:22rpx;font-weight:500;color:#666;text-align:right}.infoSourceC .list .item .authorDateC{margin-top:30rpx;font-size:22rpx;font-weight:500;color:#aaa}.infoSourceC .list .item .authorDateC .author{margin-right:10rpx}.contentC.radius{margin-top:10rpx;border-radius:20rpx 20rpx 0 0}

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,7 @@
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"usingComponents": {
"nav-bar": "../../components/navBar/navBar",
"ua-markdown": "../../components/ua-markdown/ua-markdown",
"zui-progress-circle": "../../uni_modules/zui-progress-circle/components/zui-progress-circle/zui-progress-circle",
"uni-popup": "../../uni_modules/uni-popup/components/uni-popup/uni-popup"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
"use strict";const e=require("../../../common/vendor.js"),t=require("../../../request/api.js"),o=require("../../../utils/util.js"),s=require("../../../common/assets.js"),a={data:()=>({navH:e.inject("navHeight"),eventId:"",contentTop:"",investDetails:null,former:"",categoryList:["背景","推演","相关股票"],selectCategory:0,stockCategoryList:[{title:"全部股票",num:0,bgColor:"#C00000",color:"white"},{title:"大周期",num:0,bgColor:"#305496",color:"white"},{title:"TMT板块",num:0,bgColor:"#FFBF00",color:"white"},{title:"大金融地产",num:0,bgColor:"#FFF4D3"},{title:"大消费",num:0,bgColor:"#CDEEEE"},{title:"公共产业板块",num:0,bgColor:"#DEEBF7"}],accMul:o.accMul}),onLoad(t){this.contentTop=this.navH+.136*e.inject("windowWidth"),t.id&&(this.eventId=t.id,this.getEventDetailsData())},methods:{clickCategoryItem(e){this.selectCategory!=e&&(this.selectCategory=e)},clickLookRelatedStockItem(t){e.index.navigateTo({url:"/pages/index/stockDetails/stockDetails?type=2&code="+t.code+"&des="+t.description+"&name="+t.name})},getEventDetailsData(){t.investEventDetails(this.eventId).then((t=>{if(200==t.code){let e=t.data.detail;for(let t of this.stockCategoryList)t.num=e.sector_stats[t.title];this.investDetails=e,this.former=e.former.replace("<answer>","").replace("</answer>","")}else e.index.showToast({title:t.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){(e.resolveComponent("navBar")+e.resolveComponent("ua-markdown"))()}Math||((()=>"../../../components/navBar/navBar.js")+(()=>"../../../components/ua-markdown/ua-markdown.js"))();const r=e._export_sfc(a,[["render",function(t,o,a,r,c,i){return e.e({a:e.p({leftText:"详情"}),b:s._imports_0,c:e.f(c.categoryList,((t,o,s)=>e.e({a:e.t(t),b:c.selectCategory==o},(c.selectCategory,{}),{c:e.n("item relative "+(c.selectCategory==o?"select":"")),d:o,e:e.o((e=>i.clickCategoryItem(o)),o)}))),d:e.s("top:"+c.navH+"px;"),e:c.investDetails},c.investDetails?e.e({f:0==c.selectCategory},0==c.selectCategory?{g:e.p({source:c.former})}:{},{h:1==c.selectCategory},1==c.selectCategory?{i:e.p({source:c.investDetails.forecast})}:{},{j:2==c.selectCategory},2==c.selectCategory?{k:e.f(c.stockCategoryList,((t,o,s)=>({a:e.t(t.num),b:e.t(t.title),c:e.s("background-color:"+t.bgColor+";color:"+t.color+";"),d:o}))),l:e.f(c.investDetails.related_stocks,((t,o,s)=>e.e({a:e.t(t.code+" "+t.name),b:e.t(c.accMul(t.score,100)),c:t.sw_primary_sector},t.sw_primary_sector?{d:e.t(t.sw_primary_sector)}:{},{e:e.t(t.description),f:o,g:e.o((e=>i.clickLookRelatedStockItem(t)),o)})))}:{},{m:4==c.selectCategory},4==c.selectCategory?{n:e.f(c.investDetails.extracted_concepts,((o,s,a)=>({a:o.first_image,b:e.t(o.name),c:e.t(o.reason),d:s,e:e.o((e=>t.clickConceptItem()),s)})))}:{},{o:e.s("top:"+c.contentTop+"px;")}):{})}]]);wx.createPage(r);
"use strict";const e=require("../../../common/vendor.js"),t=require("../../../request/api.js"),o=require("../../../utils/util.js"),c=require("../../../common/assets.js"),i={data:()=>({navH:e.inject("navHeight"),eventId:"",contentTop:"",investDetails:null,former:"",categoryList:["背景","推演","相关股票"],selectCategory:0,stockCategoryList:[{title:"全部股票",num:0,bgColor:"#D82A2A",color:"white"},{title:"大周期",num:0,bgColor:"#3A5D9C",color:"white"},{title:"TMT板块",num:0,bgColor:"#FFBF00",color:"white"},{title:"大金融地产",num:0,bgColor:"#FFF4D3"},{title:"大消费",num:0,bgColor:"#CDEEEE"},{title:"公共产业板块",num:0,bgColor:"#DEEBF7"}],accMul:o.accMul}),onLoad(t){this.contentTop=this.navH+.136*e.inject("windowWidth"),t.id&&(this.eventId=t.id,this.getEventDetailsData())},methods:{clickCategoryItem(e){this.selectCategory!=e&&(this.selectCategory=e)},clickLookRelatedStockItem(t){e.index.navigateTo({url:"/pages/index/stockDetails/stockDetails?type=2&code="+t.code+"&des="+t.description+"&name="+t.name})},getEventDetailsData(){t.investEventDetails(this.eventId).then((t=>{if(200==t.code){let e=t.data.detail;for(let t of this.stockCategoryList)t.num=e.sector_stats[t.title];this.investDetails=e,this.former=e.former.replace("<answer>","").replace("</answer>","")}else e.index.showToast({title:t.message,icon:"none"})})).catch((e=>{}))}}};if(!Array){(e.resolveComponent("navBar")+e.resolveComponent("ua-markdown"))()}Math||((()=>"../../../components/navBar/navBar.js")+(()=>"../../../components/ua-markdown/ua-markdown.js"))();const s=e._export_sfc(i,[["render",function(t,o,i,s,r,a){return e.e({a:e.p({leftText:"事件详情",hideNavBg:!0}),b:c._imports_0,c:e.f(r.categoryList,((t,o,c)=>({a:e.t(t),b:e.n("item relative "+(r.selectCategory==o?"select":"")),c:o,d:e.o((e=>a.clickCategoryItem(o)),o)}))),d:e.s("top:"+r.navH+"px;"),e:r.investDetails},r.investDetails?e.e({f:0==r.selectCategory},0==r.selectCategory?{g:e.p({source:r.former})}:{},{h:1==r.selectCategory},1==r.selectCategory?{i:e.p({source:r.investDetails.forecast})}:{},{j:2==r.selectCategory},2==r.selectCategory?{k:e.f(r.stockCategoryList,((t,o,c)=>({a:e.t(t.num),b:e.t(t.title),c:e.s("background-color:"+t.bgColor+";color:"+t.color+";"),d:o}))),l:e.f(r.investDetails.related_stocks,((t,o,c)=>e.e({a:e.t(t.code+" "+t.name),b:e.t(r.accMul(t.score,100)),c:t.sw_primary_sector},t.sw_primary_sector?{d:e.t(t.sw_primary_sector)}:{},{e:e.t(t.description),f:o,g:e.o((e=>a.clickLookRelatedStockItem(t)),o)})))}:{},{m:3==r.selectCategory},3==r.selectCategory?{n:e.f(t.conceptList,((o,c,i)=>e.e({a:e.t(o.concept),b:o.price_info},o.price_info?{c:e.t(t.getChgRateStr(o.price_info.avg_change_pct)),d:e.n("chg "+(t.getRateUpOrDown(o.price_info.avg_change_pct)?"down":"up"))}:{},{e:o.price_info},o.price_info?{f:e.t(o.stock_count),g:e.n("stockNum "+(t.getRateUpOrDown(o.price_info.avg_change_pct)?"down":"up"))}:{},{h:e.t(o.description),i:e.f(o.stocks.slice(0,3),((t,o,c)=>({a:e.t(t.stock_name),b:o}))),j:e.t(o.stock_count-3),k:e.o((e=>t.clickStockMore(o)),c),l:e.t(o.price_info?o.price_info.trade_date:""),m:e.o((e=>t.clickHistoricalTimeline(o)),c),n:c}))),o:c._imports_1$2}:{},{p:e.s("top:"+r.contentTop+"px;")}):{})}]]);wx.createPage(s);

View File

@@ -1 +1 @@
<view><nav-bar wx:if="{{a}}" u-i="b7e6c0fc-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="categoryC fixed" style="{{d}}"><view wx:for="{{c}}" wx:for-item="item" wx:key="d" class="{{item.c}}" bindtap="{{item.e}}">{{item.a}} <view wx:if="{{item.b}}" class="line absolute"></view></view></view><view wx:if="{{e}}" class="contentC fixed" style="{{o}}"><view wx:if="{{f}}" class="former"><ua-markdown wx:if="{{g}}" u-i="b7e6c0fc-1" bind:__l="__l" u-p="{{g}}"/><text class="ai">AI合成</text></view><view wx:if="{{h}}" class="former"><ua-markdown wx:if="{{i}}" u-i="b7e6c0fc-2" bind:__l="__l" u-p="{{i}}"/></view><view wx:if="{{j}}" class="stockC"><view class="stockCategoryList flexWrap"><view wx:for="{{k}}" wx:for-item="item" wx:key="d" class="item flexColumnCenter" style="{{item.c}}"><view class="num">{{item.a}}</view><view class="title">{{item.b}}</view></view></view><view class="stockList"><view wx:for="{{l}}" wx:for-item="item" wx:key="f" class="item" bindtap="{{item.g}}"><view class="titleCorrelationC flex"><view class="title flex1">{{item.a}}</view><view class="correlation">相关度: {{item.b}}%</view></view><view wx:if="{{item.c}}" class="category">{{item.d}}</view><view class="content">{{item.e}}</view></view></view></view><view wx:if="{{m}}"><view class="conceptList"><view wx:for="{{n}}" wx:for-item="item" wx:key="d" class="item relative" bindtap="{{item.e}}"><image class="cover" src="{{item.a}}" mode="aspectFill"></image><view class="infoC absolute"><view class="title">{{item.b}}</view><view class="content relative">{{item.c}} <text class="lookDetails absolute">查看详情</text></view></view></view></view></view></view></view>
<view><nav-bar wx:if="{{a}}" u-i="b7e6c0fc-0" bind:__l="__l" u-p="{{a}}"></nav-bar><image class="topBg absolute" src="{{b}}" mode="widthFix"></image><view class="categoryC fixed" style="{{d}}"><view wx:for="{{c}}" wx:for-item="item" wx:key="c" class="{{item.b}}" bindtap="{{item.d}}">{{item.a}}</view></view><view wx:if="{{e}}" class="contentC fixed" style="{{p}}"><view wx:if="{{f}}" class="former"><ua-markdown wx:if="{{g}}" u-i="b7e6c0fc-1" bind:__l="__l" u-p="{{g}}"/><text class="ai">AI合成</text></view><view wx:if="{{h}}" class="former"><ua-markdown wx:if="{{i}}" u-i="b7e6c0fc-2" bind:__l="__l" u-p="{{i}}"/></view><view wx:if="{{j}}" class="stockC"><view class="stockCategoryList flexWrap"><view wx:for="{{k}}" wx:for-item="item" wx:key="d" class="item flexColumnCenter" style="{{item.c}}"><view class="num">{{item.a}}</view><view class="title">{{item.b}}</view></view></view><view class="stockList"><view wx:for="{{l}}" wx:for-item="item" wx:key="f" class="item" bindtap="{{item.g}}"><view class="titleCorrelationC flex"><view class="title flex1">{{item.a}}</view><view class="correlation">相关度: {{item.b}}%</view></view><view wx:if="{{item.c}}" class="category">{{item.d}}</view><view class="content">{{item.e}}</view></view></view></view><view wx:if="{{m}}"><view class="conceptList"><view wx:for="{{n}}" wx:for-item="item" wx:key="n" class="item"><view class="titleChgStockNumC flex"><view class="title">{{item.a}}</view><view wx:if="{{item.b}}" class="{{item.d}}">{{item.c}}%</view><view wx:if="{{item.e}}" class="{{item.g}}">{{item.f}} 只股票</view></view><view class="content">{{item.h}}</view><view class="hotStockC flex"><view class="title">热门个股</view><view class="stockList flex"><view wx:for="{{item.i}}" wx:for-item="sitem" wx:key="b" class="stockItem">{{sitem.a}}</view><view class="more" bindtap="{{item.k}}">+{{item.j}}更多</view></view></view><view class="transactionDateHistoryTimeC flex"><view class="transactionDate flex1">交易时间:{{item.l}}</view><view class="historyTimeC flex" bindtap="{{item.m}}"><image class="icon" src="{{o}}" mode="widthFix"></image><view>历史时间轴</view></view></view></view></view></view></view></view>

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