8.28 修改事件详情相关概念模块样式,增加股票详情信息来源展示
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
<input type="nickname" v-model="nickname" />
|
||||
</view>
|
||||
<view class="section">手机号</view>
|
||||
<view class="inputC">{{mobile}}</view>
|
||||
<view class="selectC flex">{{mobile}}</view>
|
||||
<view class="section">性别</view>
|
||||
<picker mode="selector" :range="sexList" @change="sexChange">
|
||||
<view class="selectC flex">
|
||||
@@ -115,7 +115,7 @@
|
||||
if(this.avatar)
|
||||
{
|
||||
//如果选择了新头像
|
||||
let param = {avatar:this.avatar,nickname:this.nickname,gender:this.sex=='男'?'male':'female',
|
||||
let param = {avatar:this.avatar,nickname:this.nickname,gender:this.sex=='男'?'male':'female',phone:this.mobile,
|
||||
bio:this.profile,isFile:1}
|
||||
updateBasicInfo(param).then(res=>{
|
||||
uni.navigateTo({
|
||||
@@ -127,7 +127,7 @@
|
||||
}else
|
||||
{
|
||||
//没有选择新头像
|
||||
let param = {nickname:this.nickname,gender:this.sex=='男'?'male':'female',
|
||||
let param = {nickname:this.nickname,gender:this.sex=='男'?'male':'female',phone:this.mobile,
|
||||
bio:this.profile}
|
||||
updateBasicInfo(param).then(res=>{
|
||||
uni.navigateTo({
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
</view>
|
||||
<view class="originEventC">
|
||||
<view class="levelTitleC flex">
|
||||
<view class="level">C</view>
|
||||
<view class="title">四部门联合启动人力资源服务业与制造业...</view>
|
||||
<view class="level">{{item.event.importance}}</view>
|
||||
<view class="title">{{item.event.title}}</view>
|
||||
</view>
|
||||
<view class="eventContent">人社部、工信部等四部门印发通知,明确在30个城市开展3年期试点,培育人力资源服务与制造业协同机构...</view>
|
||||
</view>
|
||||
@@ -44,20 +44,20 @@
|
||||
<view class="myCommentItem" v-for="(item,index) in commentList" :key="index">
|
||||
<view class="replyContentC">
|
||||
<view class="flex">
|
||||
<image class="avatar" src="" mode="aspectFill"></image>
|
||||
<image class="avatar" :src="item.commenter.avatar_url" mode="aspectFill"></image>
|
||||
<view class="flex1">
|
||||
<view class="nickname">逸尘破晓</view>
|
||||
<view class="time">{{getLocaleDate(item.created_at)}}</view>
|
||||
<view class="nickname">{{item.commenter.nickname}}</view>
|
||||
<view class="time">{{getLocaleMonthDayHourMinte(item.created_at)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="content">{{item.content}}</view>
|
||||
</view>
|
||||
<view class="originEventC">
|
||||
<view class="originEventC" @click.stop="clickEventItem(item.event.id)">
|
||||
<view class="levelTitleC flex">
|
||||
<view class="level">C</view>
|
||||
<view class="title">{{item.event_title}}</view>
|
||||
<view class="level">{{item.event.importance}}</view>
|
||||
<view class="title">{{item.event.title}}</view>
|
||||
</view>
|
||||
<view class="eventContent">人社部、工信部等四部门印发通知,明确在30个城市开展3年期试点,培育人力资源服务与制造业协同机构...</view>
|
||||
<view class="eventContent">{{item.event.description}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
@@ -68,7 +68,7 @@
|
||||
<script>
|
||||
import { inject } from 'vue';
|
||||
import { userActivityList } from '@/request/api';
|
||||
import { getLocaleDate } from '@/utils/util';
|
||||
import { getLocaleMonthDayHourMinte } from '@/utils/util';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
@@ -80,7 +80,7 @@
|
||||
commentList:[],
|
||||
page:1,
|
||||
loadAll:false,
|
||||
getLocaleDate:getLocaleDate
|
||||
getLocaleMonthDayHourMinte:getLocaleMonthDayHourMinte
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
@@ -111,6 +111,16 @@
|
||||
this.getCommentListData()
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 点击查看事件详情
|
||||
* @param {Object} id
|
||||
*/
|
||||
clickEventItem(id)
|
||||
{
|
||||
uni.navigateTo({
|
||||
url:'/pages/index/eventDetails/eventDetails?id='+id
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取评论列表数据
|
||||
*/
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
</view>
|
||||
</scroll-view>
|
||||
<scroll-view scroll-x class="stockList">
|
||||
<view class="stockItem" v-for="(sitem,sindex) in item.related_stocks" :key="sindex" @click.stop="clickLookRelatedStockItem(sitem.stock_code)">{{sitem.stock_name}} <text class="change">{{(getRateUpOrDown(sitem.daily_change)?'':'+')+sitem.daily_change}}%</text></view>
|
||||
<view class="stockItem" v-for="(sitem,sindex) in item.related_stocks" :key="sindex" @click.stop="clickLookRelatedStockItem(item.event_id,sitem.stock_code)">{{sitem.stock_name}} <text class="change">{{(getRateUpOrDown(sitem.daily_change)?'':'+')+sitem.daily_change}}%</text></view>
|
||||
</scroll-view>
|
||||
<view class="timeToolBarC flex">
|
||||
<view class="time flex1">{{getLocaleTime(item.created_at)}}</view>
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
<script>
|
||||
import { inject } from 'vue';
|
||||
import { userActivityList,followEvent } from '@/request/api';
|
||||
import { userActivityList, followEvent } from '@/request/api';
|
||||
import { getRateStr, getRateUpOrDown, getLocaleTime } from '@/utils/util.js'
|
||||
|
||||
export default {
|
||||
@@ -90,10 +90,10 @@
|
||||
* 点击相关股票
|
||||
* @param {Object} code
|
||||
*/
|
||||
clickLookRelatedStockItem(code)
|
||||
clickLookRelatedStockItem(id,code)
|
||||
{
|
||||
uni.navigateTo({
|
||||
url:'/pages/index/stockDetails/stockDetails?code='+code
|
||||
url:'/pages/index/stockDetails/stockDetails?type=1&code='+code+'&id='+id
|
||||
})
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -211,6 +211,13 @@
|
||||
*/
|
||||
uploadInvestPreferenceData()
|
||||
{
|
||||
let arr = []
|
||||
for (let item of this.preferredMarketList) {
|
||||
if(item.select)
|
||||
{
|
||||
arr.push(item.title)
|
||||
}
|
||||
}
|
||||
let param = {trading_experience: this.selectYearIndex,investment_style: this.investPreferenceList[this.selectInvestIndex],
|
||||
risk_preference: this.riskPreferenceList[this.selectRiskIndex],
|
||||
investment_amount: this.investmentScaleList[this.selectScaleIndex],
|
||||
@@ -231,6 +238,7 @@
|
||||
userInfo().then(res=>{
|
||||
if(res.code==200)
|
||||
{
|
||||
this.avatarUrl = res.data.basic_info.avatar_url
|
||||
let data = res.data.investment_preferences
|
||||
//投资偏好
|
||||
for (var i = 0; i < this.investPreferenceList.length; i++) {
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
</view>
|
||||
<image class="arrow" src="/static/icon/mine/infoArrow.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="numList relative flex">
|
||||
<view v-if="userInfo" class="numList relative flex">
|
||||
<view class="item flex1 flexColumnCenter" @click="clickNumItem(0)">
|
||||
<view class="num">1</view>
|
||||
<view class="num">{{userInfo.statistics.total_comments}}</view>
|
||||
<view class="title">评论回复</view>
|
||||
</view>
|
||||
<view class="item flex1 flexColumnCenter" @click="clickNumItem(1)">
|
||||
<view class="num">1</view>
|
||||
<view class="num">{{userInfo.statistics.follows_count}}</view>
|
||||
<view class="title">关注收藏</view>
|
||||
</view>
|
||||
<view class="item flex1 flexColumnCenter" @click="clickNumItem(2)">
|
||||
<view class="num">1</view>
|
||||
<view class="num">{{userInfo.statistics.likes_count}}</view>
|
||||
<view class="title">我的点赞</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -29,11 +29,11 @@
|
||||
</view>
|
||||
<view class="menuList relative">
|
||||
<view class="list">
|
||||
<view class="item relative flex" v-for="(item,index) in menuList" :key="index" @click="clickMenuItem(item.url)" >
|
||||
<view class="item relative flex" v-for="(item,index) in menuList" :key="index" @click="clickMenuItem(item.url,index)" >
|
||||
<image class="icon" :src="item.icon" mode="aspectFit"></image>
|
||||
<view class="title flex1">{{item.title}}</view>
|
||||
<image class="arrow" src="/static/icon/mine/menuArrow.png" mode="widthFix"></image>
|
||||
<button class="absolute" v-if="index==menuList.length-1" open-type="contact"></button>
|
||||
<button class="absolute" v-if="index==menuList.length-2" open-type="contact"></button>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -54,27 +54,30 @@
|
||||
menuList:[{
|
||||
icon:'/static/icon/mine/aboutUs.png',
|
||||
title:'关于我们',
|
||||
url:'/pages/mine/web/web?type=1'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/serviceTerm.png',
|
||||
title:'服务条款',
|
||||
url:'/pages/mine/web/web?type=2'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/privacyProtocol.png',
|
||||
title:'隐私协议',
|
||||
url:'/pages/mine/web/web?type=3'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/feedback.png',
|
||||
title:'意见反馈',
|
||||
url:'/pages/mine/feedback/feedback'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/accountSetting.png',
|
||||
title:'账户设置',
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/customerService.png',
|
||||
title:'联系客服',
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/logout.png',
|
||||
title:'退出登录',
|
||||
}]
|
||||
}
|
||||
},
|
||||
@@ -100,7 +103,7 @@
|
||||
clickVip()
|
||||
{
|
||||
uni.navigateTo({
|
||||
url:'/pages/mine/vip/vip'
|
||||
url:'/pagesMine/vip/vip'
|
||||
})
|
||||
},
|
||||
/**
|
||||
@@ -127,13 +130,27 @@
|
||||
url:'/pages/mine/myLike/myLike'
|
||||
})
|
||||
},
|
||||
clickMenuItem(url)
|
||||
clickMenuItem(url,index)
|
||||
{
|
||||
if(url)
|
||||
{
|
||||
uni.navigateTo({
|
||||
url
|
||||
})
|
||||
}else if(index==this.menuList.length-1)
|
||||
{
|
||||
uni.showModal({
|
||||
title:'您确定要退出登录么',
|
||||
success(res) {
|
||||
if(res.confirm)
|
||||
{
|
||||
uni.removeStorageSync('token')
|
||||
uni.switchTab({
|
||||
url:'/pages/index/index'
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<image class="topBg absolute" src="/static/image/mine/myTopBg.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.avatarurl" mode="aspectFill"></image>
|
||||
<image class="avatar" :src="item.author.avatar_url" mode="aspectFill"></image>
|
||||
<view class="flex1">
|
||||
<view class="nickname">{{item.author.nickname}}</view>
|
||||
<rich-text class="content" :nodes="item.post_content"></rich-text>
|
||||
@@ -13,7 +13,7 @@
|
||||
<view class="time">{{getLocaleHourMinute(item.like_time)}}</view>
|
||||
<!-- <view class="reply">回复</view> -->
|
||||
</view>
|
||||
<view class="likeC flex">
|
||||
<view class="likeC flex" @click="clickLikeComment(item.like_id,index)">
|
||||
<image class="icon" src="/static/icon/home/like_s.png" mode="widthFix"></image>
|
||||
<!-- <view class="num">85</view> -->
|
||||
</view>
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
<script>
|
||||
import { inject } from 'vue';
|
||||
import { userActivityList } from '@/request/api';
|
||||
import { userActivityList, likeEventComment } from '@/request/api';
|
||||
import { getLocaleHourMinute } from '@/utils/util';
|
||||
|
||||
export default {
|
||||
@@ -54,6 +54,20 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 点赞评论
|
||||
*/
|
||||
clickLikeComment(id,index)
|
||||
{
|
||||
likeEventComment(id).then(res=>{
|
||||
uni.showToast({
|
||||
title:res.message,
|
||||
})
|
||||
this.myLikeList.splice(index,1)
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取我的点赞列表数据
|
||||
*/
|
||||
|
||||
@@ -1,480 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<navBar leftText="会员中心"></navBar>
|
||||
<image class="topBg absolute" src="/static/image/mine/myTopBg.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="/static/image/mine/vip/vipTopBg.png" mode="widthFix"></image>
|
||||
<image v-else class="bg" src="/static/image/mine/vip/noVipTopBg.png" mode="widthFix"></image>
|
||||
<view v-if="memberInfo.is_member" class="infoC vip absolute">
|
||||
<view class="title">尊贵的VIP会员</view>
|
||||
<view class="tips">会员有效期至:{{memberInfo.member_expire_date}}</view>
|
||||
</view>
|
||||
<view v-else class="infoC absolute">
|
||||
<view class="title">价值前沿</view>
|
||||
<view class="tips">您还不是会员 加入尊享N项服务</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="vipProfitIntroC relative">
|
||||
<view class="titleC flexCenter">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleLeft_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleLeft.png" mode="widthFix"></image>
|
||||
<view class="title">即刻开启</view>
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleRight_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleRight.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="subtitle">HOW TO SUBSCRIBE</view>
|
||||
<view class="stepC flex">
|
||||
<view class="num">01</view>
|
||||
<view class="step">点击微信顶部搜索框,并指定搜索内容为 <text :class="'impormant '+(memberInfo.is_member?'vip':'')">「公众号」</text></view>
|
||||
</view>
|
||||
<view class="picList flex">
|
||||
<view class="pic flex1">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/step1_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/step1.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="pic flex1">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/step2_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/step2.png" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="stepC flex">
|
||||
<view class="num">02</view>
|
||||
<view class="step">搜索
|
||||
<text :class="'impormant '+(memberInfo.is_member?'vip':'')">「价值前沿」</text>,并点击搜索结果中的
|
||||
<text :class="'impormant '+(memberInfo.is_member?'vip':'')">「关注」</text></view>
|
||||
</view>
|
||||
<view class="picList flex">
|
||||
<view class="pic flex1">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/step3_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/step3.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="pic flex1">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/step4_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/step4.png" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="questionC">
|
||||
<view class="title">投资的你是否遇到过这些问题?</view>
|
||||
<view class="iconListC flex">
|
||||
<image class="icon" src="/static/icon/mine/vip/investQuestion.png" mode="widthFix"></image>
|
||||
<view class="list flex1">
|
||||
<view :class="'item '+(memberInfo.is_member?'vip':'')" v-for="(item,index) in questionList" :key="index">
|
||||
{{item}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="titleC research flexCenter">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleLeft_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleLeft.png" mode="widthFix"></image>
|
||||
<view class="title">行业研究中心</view>
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleRight_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleRight.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="subtitle">20余年专业投研,赋能每一位投资者</view>
|
||||
<view class="introC">
|
||||
<text class="flex1">依托价值前沿研究所深耕20余年的专业积淀,我们为您构建一站式行业研究平台。内容覆盖宏观趋势、产业结构、核心公司动态,帮助投资者看懂行业,识别机会,建立自己的知识体系。</text>
|
||||
<image class="icon" src="/static/icon/mine/vip/industrialResearch.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="titleC decision flexCenter">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleLeft_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleLeft.png" mode="widthFix"></image>
|
||||
<view class="title">经营决策中心</view>
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleRight_v.png" mode="widthFix"></image>
|
||||
<image class="icon" src="/static/icon/mine/vip/titleRight.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="subtitle">数据洞察,辅助每一个关键判断</view>
|
||||
<view class="introC operatingDecision">
|
||||
<text class="flex1">我们整合来自一线调研、专题报告、行业闭门会的专业数据,提供宏观到微观的全链条分析。无论是捕捉赛道拐点,还是识别公司价值,经营决策中心都是您可靠的智囊伙伴。</text>
|
||||
<image class="icon" src="/static/icon/mine/vip/operatingDecision.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="titleC privilege flexCenter">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleLeft_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleLeft.png" mode="widthFix"></image>
|
||||
<view class="title">会员尊享特权</view>
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleRight_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleRight.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view class="subtitle">数据洞察,辅助每一个关键判断</view>
|
||||
<view :class="'privilegeList flexWrap '+(memberInfo.is_member?'vip':'')">
|
||||
<view class="item flexColumnCenter" v-for="(item,index) in privilegeList" :key="index">
|
||||
<image class="icon" :src="(memberInfo.is_member?item.icon_v:item.icon)" mode="widthFix"></image>
|
||||
<view class="title">{{item.title}}</view>
|
||||
<view class="tips">{{item.tips}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottomTitle">准备好提升您的投资策略了吗?</view>
|
||||
<view class="bottomTips"> 解锁全部高级功能,让AI成为您的专属投资顾问。</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="lookMealC fixed" @click="clickVipMeal()">查看VIP套餐</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { inject } from 'vue';
|
||||
import { membershipStatus } from '@/request/api';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
navH:inject('navHeight'),
|
||||
memberInfo:null, //会员信息
|
||||
questionList:['信息纷杂难辨真伪?','信息纷杂难辨真伪?','无法把握宏观趋势与行业动向?'],
|
||||
privilegeList:[{
|
||||
icon:'/static/icon/mine/vip/depthReport.png',
|
||||
icon_v:'/static/icon/mine/vip/depthReport_v.png',
|
||||
title:'深度研报',
|
||||
tips:'行业/公司独家分析'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/strategicInsight.png',
|
||||
icon_v:'/static/icon/mine/vip/strategicInsight_v.png',
|
||||
title:'策略洞察',
|
||||
tips:'赛道趋势+拐点信号'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/dataTool.png',
|
||||
icon_v:'/static/icon/mine/vip/dataTool_v.png',
|
||||
title:'数据工具',
|
||||
tips:'行业/公司独家分析'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/dataTool.png',
|
||||
icon_v:'/static/icon/mine/vip/intelligentScreening_v.png',
|
||||
title:'智能筛选',
|
||||
tips:'按需定制标的列表'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/decisionSupport.png',
|
||||
icon_v:'/static/icon/mine/vip/decisionSupport_v.png',
|
||||
title:'决策辅助',
|
||||
tips:'关键因子评分系统'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/expertMeeting.png',
|
||||
icon_v:'/static/icon/mine/vip/expertMeeting_v.png',
|
||||
title:'专家闭门会',
|
||||
tips:'深度交流机会'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/dailyReport.png',
|
||||
icon_v:'/static/icon/mine/vip/dailyReport_v.png',
|
||||
title:'日报周报',
|
||||
tips:'研判速递、节奏掌控'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/specialColumn.png',
|
||||
icon_v:'/static/icon/mine/vip/specialColumn_v.png',
|
||||
title:'专题专栏',
|
||||
tips:'核心团队观点集结'
|
||||
},
|
||||
{
|
||||
icon:'/static/icon/mine/vip/continuouslyUnlock.png',
|
||||
icon_v:'/static/icon/mine/vip/continuouslyUnlock_v.png',
|
||||
title:'持续解锁',
|
||||
tips:'不定期上线新功能'
|
||||
}]
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getMemberStatus()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 点击查看vip套餐
|
||||
*/
|
||||
clickVipMeal()
|
||||
{
|
||||
uni.navigateTo({
|
||||
url:'/pages/mine/vipMeal/vipMeal'
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 获取会员状态
|
||||
*/
|
||||
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">
|
||||
.topBg
|
||||
{
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.vipC
|
||||
{
|
||||
padding-bottom: calc(180rpx + env(safe-area-inset-bottom));
|
||||
.vipInfoC
|
||||
{
|
||||
margin: 0 25rpx;
|
||||
.bg
|
||||
{
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.infoC
|
||||
{
|
||||
top: 130rpx;
|
||||
left: 38rpx;
|
||||
.title
|
||||
{
|
||||
font-size: 40rpx;
|
||||
font-weight: bold;
|
||||
color: #556B87;
|
||||
}
|
||||
.tips
|
||||
{
|
||||
font-size: 28rpx;
|
||||
font-weight: 500;
|
||||
color: #65758A;
|
||||
}
|
||||
}
|
||||
.infoC.vip
|
||||
{
|
||||
.title
|
||||
{
|
||||
color: #AB3D1A;
|
||||
}
|
||||
.tips
|
||||
{
|
||||
color: #AB3D1A;
|
||||
}
|
||||
}
|
||||
}
|
||||
.vipProfitIntroC
|
||||
{
|
||||
background-color: white;
|
||||
margin-top: -70rpx;
|
||||
padding-top: 40rpx;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
.titleC
|
||||
{
|
||||
.icon
|
||||
{
|
||||
width: 54rpx;
|
||||
height: auto;
|
||||
}
|
||||
.title
|
||||
{
|
||||
margin: 0 20rpx;
|
||||
font-size: 50rpx;
|
||||
font-weight: bold;
|
||||
color: #222;
|
||||
}
|
||||
}
|
||||
.titleC.research
|
||||
{
|
||||
margin-top: 50rpx;
|
||||
}
|
||||
.titleC.decision
|
||||
{
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
.titleC.privilege
|
||||
{
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
.subtitle
|
||||
{
|
||||
font-size: 24rpx;
|
||||
color: #888;
|
||||
text-align: center;
|
||||
}
|
||||
.stepC
|
||||
{
|
||||
margin: 16rpx 25rpx 0;
|
||||
.num
|
||||
{
|
||||
background-color: #EDEEF1;
|
||||
margin-right: 25rpx;
|
||||
width: 50rpx;
|
||||
line-height: 50rpx;
|
||||
border-radius: 50%;
|
||||
font-size: 24rpx;
|
||||
font-weight: bold;
|
||||
color: #5C6473;
|
||||
text-align: center;
|
||||
}
|
||||
.step
|
||||
{
|
||||
font-size: 24rpx;
|
||||
color: #5C6473;
|
||||
.impormant
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
.impormant.vip
|
||||
{
|
||||
color: #F97316;
|
||||
}
|
||||
}
|
||||
}
|
||||
.picList
|
||||
{
|
||||
padding: 0 25rpx;
|
||||
margin-top: 34rpx;
|
||||
.pic
|
||||
{
|
||||
margin-right: 20rpx;
|
||||
.icon
|
||||
{
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.pic:last-child
|
||||
{
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
.questionC
|
||||
{
|
||||
margin-top: 40rpx;
|
||||
.title
|
||||
{
|
||||
font-size: 45rpx;
|
||||
font-weight: bold;
|
||||
color: #222;
|
||||
text-align: center;
|
||||
}
|
||||
.iconListC
|
||||
{
|
||||
margin-top: 46rpx;
|
||||
padding: 0 23rpx 0 59rpx;
|
||||
.icon
|
||||
{
|
||||
margin-right: 56rpx;
|
||||
width: 235rpx;
|
||||
height: auto;
|
||||
}
|
||||
.list
|
||||
{
|
||||
.item
|
||||
{
|
||||
background-color: #EDEDED;
|
||||
margin-bottom: 15rpx;
|
||||
line-height: 70rpx;
|
||||
border-radius: 35rpx;
|
||||
font-size: 24rpx;
|
||||
color: #555;
|
||||
text-align: center;
|
||||
}
|
||||
.item.vip
|
||||
{
|
||||
background-color: #FFEBDB;
|
||||
color: #F97316;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.introC
|
||||
{
|
||||
display: flex;
|
||||
box-shadow: 0px 0px 9rpx 0px rgba(0,0,0,0.1);
|
||||
margin: 24rpx 25rpx 0;
|
||||
padding: 40rpx 20rpx 20rpx 33rpx;
|
||||
line-height: 1.5rem;
|
||||
border-radius: 10rpx;
|
||||
font-size: 24rpx;
|
||||
color: #555;
|
||||
.icon
|
||||
{
|
||||
margin-top: 92rpx;
|
||||
width: 251rpx;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.introC.operatingDecision
|
||||
{
|
||||
padding-bottom: 11rpx;
|
||||
.icon
|
||||
{
|
||||
margin-top: 116rpx;
|
||||
width: 249rpx;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.privilegeList
|
||||
{
|
||||
margin: 24rpx 25rpx 0;
|
||||
padding: 20rpx 0;
|
||||
box-shadow: 0px 0px 9rpx 0px rgba(0,0,0,0.1);
|
||||
border-radius: 10rpx;
|
||||
.item
|
||||
{
|
||||
padding: 20rpx 0;
|
||||
width: calc((100%)/3);
|
||||
.icon
|
||||
{
|
||||
margin-bottom: 10rpx;
|
||||
width: 91rpx;
|
||||
height: auto;
|
||||
}
|
||||
.title
|
||||
{
|
||||
font-size: 26rpx;
|
||||
font-weight: bold;
|
||||
color: #242323;
|
||||
}
|
||||
.tips
|
||||
{
|
||||
margin-top: 6rpx;
|
||||
font-size: 22rpx;
|
||||
color: #555;
|
||||
}
|
||||
}
|
||||
}
|
||||
.privilegeList.vip
|
||||
{
|
||||
box-shadow: 0px 0px 9px 0px rgba(249,115,22,0.4);
|
||||
}
|
||||
.bottomTitle
|
||||
{
|
||||
margin-top: 80rpx;
|
||||
font-size: 45rpx;
|
||||
font-weight: bold;
|
||||
color: #222;
|
||||
text-align: center;
|
||||
}
|
||||
.bottomTips
|
||||
{
|
||||
font-size: 24rpx;
|
||||
color: #888;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
.lookMealC
|
||||
{
|
||||
background-color: #F97316;
|
||||
margin: 0 25rpx;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||||
line-height: 80rpx;
|
||||
border-radius: 20rpx;
|
||||
font-size: 26rpx;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
@@ -1,267 +0,0 @@
|
||||
<template>
|
||||
<view>
|
||||
<navBar leftText="会员中心"></navBar>
|
||||
<image class="topBg absolute" src="/static/image/mine/myTopBg.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="/static/image/mine/vip/vipTopBg.png" mode="widthFix"></image>
|
||||
<image v-else class="bg" src="/static/image/mine/vip/noVipTopBg.png" mode="widthFix"></image>
|
||||
<view v-if="memberInfo.is_member" class="infoC vip absolute">
|
||||
<view class="title">尊贵的VIP会员</view>
|
||||
<view class="tips">会员有效期至:{{memberInfo.member_expire_date}}</view>
|
||||
</view>
|
||||
<view v-else class="infoC absolute">
|
||||
<view class="title">价值前沿</view>
|
||||
<view class="tips">您还不是会员 加入尊享N项服务</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="privilegeCompareC relative">
|
||||
<view class="titleC flexCenter">
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleLeft_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleLeft.png" mode="widthFix"></image>
|
||||
<view class="title">特权对比</view>
|
||||
<image v-if="memberInfo.is_member" class="icon" src="/static/icon/mine/vip/titleRight_v.png" mode="widthFix"></image>
|
||||
<image v-else class="icon" src="/static/icon/mine/vip/titleRight.png" mode="widthFix"></image>
|
||||
</view>
|
||||
<view :class="'privilegeList '+(memberInfo.is_member?'vip':'')">
|
||||
<view class="header flex">
|
||||
<view class="privilege item">专属特权</view>
|
||||
<view class="item free">普通免费</view>
|
||||
<view class="item vip">VIP会员</view>
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="item flex" v-for="(item,index) in privilegeList" :key="index">
|
||||
<view class="optionItem privilege flex">{{item}}</view>
|
||||
<view class="optionItem free flexCenter">
|
||||
<block v-if="index==0||index==1||index==2">
|
||||
<image class="notContain" src="/static/icon/mine/vip/notContain.png" mode="widthFix"></image>
|
||||
</block>
|
||||
<block v-if="index==3||index==4">
|
||||
<block v-if="index==3">限制查看数量</block>
|
||||
<block v-if="index==4">每日查看2只</block>
|
||||
</block>
|
||||
<block v-if="index==5||index==6">
|
||||
<image class="contain" src="/static/icon/mine/vip/contain.png" mode="widthFix"></image>
|
||||
</block>
|
||||
</view>
|
||||
<view class="optionItem vip flexCenter">
|
||||
<image class="contain" src="/static/icon/mine/vip/contain.png" mode="widthFix"></image>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="memberInfo" class="joinVipC fixed" @click="clickJoinVip()">{{memberInfo.is_member?'您已是年度VIP':'立即加入年度VIP'}}</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { inject } from 'vue';
|
||||
import { membershipStatus } from '@/request/api';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
navH:inject('navHeight'),
|
||||
memberInfo:null, //会员信息
|
||||
privilegeList:['高效选股工具','股票基金明星榜单','定期专属晨报、股票动态','独家产业研报','个股产业分析','股票、基金基础指标','7x24 财经直播']
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getMemberStatus()
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 点击加入vip
|
||||
*/
|
||||
clickJoinVip()
|
||||
{
|
||||
|
||||
},
|
||||
/**
|
||||
* 获取会员状态
|
||||
*/
|
||||
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">
|
||||
.topBg
|
||||
{
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.vipC
|
||||
{
|
||||
padding-bottom: calc(180rpx + env(safe-area-inset-bottom));
|
||||
.vipInfoC
|
||||
{
|
||||
margin: 0 25rpx;
|
||||
.bg
|
||||
{
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.infoC
|
||||
{
|
||||
top: 130rpx;
|
||||
left: 38rpx;
|
||||
.title
|
||||
{
|
||||
font-size: 40rpx;
|
||||
font-weight: bold;
|
||||
color: #556B87;
|
||||
}
|
||||
.tips
|
||||
{
|
||||
font-size: 28rpx;
|
||||
font-weight: 500;
|
||||
color: #65758A;
|
||||
}
|
||||
}
|
||||
.infoC.vip
|
||||
{
|
||||
.title
|
||||
{
|
||||
color: #AB3D1A;
|
||||
}
|
||||
.tips
|
||||
{
|
||||
color: #AB3D1A;
|
||||
}
|
||||
}
|
||||
}
|
||||
.privilegeCompareC
|
||||
{
|
||||
background-color: white;
|
||||
margin-top: -70rpx;
|
||||
padding-top: 40rpx;
|
||||
border-radius: 20rpx 20rpx 0 0;
|
||||
.titleC
|
||||
{
|
||||
.icon
|
||||
{
|
||||
width: 54rpx;
|
||||
height: auto;
|
||||
}
|
||||
.title
|
||||
{
|
||||
margin: 0 20rpx;
|
||||
font-size: 50rpx;
|
||||
font-weight: bold;
|
||||
color: #222;
|
||||
}
|
||||
}
|
||||
.privilegeList
|
||||
{
|
||||
margin: 0 25rpx;
|
||||
padding: 0 30rpx;
|
||||
box-shadow: 0px 0px 9px 0px rgba(0,0,0,0.1);
|
||||
border-radius: 10rpx;
|
||||
.header
|
||||
{
|
||||
margin-top: 50rpx;
|
||||
padding-top: 14rpx;
|
||||
border-bottom: solid 1rpx #F3F4F6;
|
||||
.item
|
||||
{
|
||||
line-height: 90rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: #555;
|
||||
}
|
||||
.item.privilege
|
||||
{
|
||||
padding-left: 24rpx;
|
||||
width: 300rpx;
|
||||
}
|
||||
.item.free
|
||||
{
|
||||
width: 174rpx;
|
||||
text-align: center;
|
||||
}
|
||||
.item.vip
|
||||
{
|
||||
width: 160rpx;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
.list
|
||||
{
|
||||
.item
|
||||
{
|
||||
.optionItem
|
||||
{
|
||||
height: 90rpx;
|
||||
border-bottom: solid 1rpx #F3F4F6;
|
||||
.contain
|
||||
{
|
||||
width: 21rpx;
|
||||
height: auto;
|
||||
}
|
||||
.notContain
|
||||
{
|
||||
width: 17rpx;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
.optionItem.privilege
|
||||
{
|
||||
width: 300rpx;
|
||||
font-size: 24rpx;
|
||||
font-weight: 500;
|
||||
color: #222;
|
||||
}
|
||||
.optionItem.free
|
||||
{
|
||||
width: 174rpx;
|
||||
font-size: 20rpx;
|
||||
color: #555;
|
||||
text-align: center;
|
||||
}
|
||||
.optionItem.vip
|
||||
{
|
||||
width: 160rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.privilegeList.vip
|
||||
{
|
||||
box-shadow: 0px 0px 9px 0px rgba(249,115,22,0.4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.joinVipC
|
||||
{
|
||||
background-color: #F97316;
|
||||
margin: 0 25rpx;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: calc(20rpx + env(safe-area-inset-bottom));
|
||||
line-height: 80rpx;
|
||||
border-radius: 20rpx;
|
||||
font-size: 26rpx;
|
||||
font-weight: 500;
|
||||
color: white;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
93
pages/mine/web/web.vue
Normal file
93
pages/mine/web/web.vue
Normal file
@@ -0,0 +1,93 @@
|
||||
<template>
|
||||
<view>
|
||||
<navBar :leftText="navTitle"></navBar>
|
||||
<image class="topBg absolute" src="/static/image/mine/myTopBg.png" mode="widthFix"></image>
|
||||
<view class="contentC fixed" :style="'top:'+navH+'px;'">
|
||||
<text>{{webContent}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { inject } from 'vue'
|
||||
import { agreements } from '@/request/api'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
navH:inject('navHeight'),
|
||||
navTitle:'',
|
||||
type:'', //1.关于我们2.服务条款3.隐私协议
|
||||
webContent:'',
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
if(e.type)
|
||||
{
|
||||
this.type = e.type
|
||||
this.getUserInfoData()
|
||||
if(e.type==1)
|
||||
{
|
||||
this.navTitle = '关于我们'
|
||||
}else if(e.type==2)
|
||||
{
|
||||
this.navTitle = '服务条款'
|
||||
}else if(e.type==3)
|
||||
{
|
||||
this.navTitle = '隐私协议'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 获取用户信息数据
|
||||
*/
|
||||
getUserInfoData()
|
||||
{
|
||||
agreements().then(res=>{
|
||||
if(res.code==200)
|
||||
{
|
||||
if(this.type==1)
|
||||
{
|
||||
//关于我们
|
||||
this.webContent = res.data.agreements.about_us.content
|
||||
}else if(this.type==2)
|
||||
{
|
||||
//服务条款
|
||||
this.webContent = res.data.agreements.service_terms.content
|
||||
}else if(this.type==3)
|
||||
{
|
||||
//隐私协议
|
||||
this.webContent = res.data.agreements.privacy_policy.content
|
||||
}
|
||||
}else
|
||||
wx.showToast({
|
||||
title:res.message,
|
||||
})
|
||||
}).catch(error=>{
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less">
|
||||
.topBg
|
||||
{
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
.contentC
|
||||
{
|
||||
background-color: white;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
margin-top: 10rpx;
|
||||
padding: 50rpx 25rpx;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user