1250 lines
29 KiB
Vue
1250 lines
29 KiB
Vue
<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>
|
||
<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>
|
||
</view>
|
||
<view class="screenCategoryC fixed" :style="'top:'+contentTop+'px'">
|
||
<view class="sortScreenC flex between">
|
||
<view class="timeCategoryC">
|
||
<view :class="'item '+(selectTimeCategory==index?'select':'')" v-for="(item,index) in timeCategoryList" :key="index" @click="clickTimeCategoryItem(index)">{{item.name}}</view>
|
||
</view>
|
||
<view class="flex">
|
||
<view class="sortC flex" @click="clickSortItem()">
|
||
<image class="icon" src="/static/icon/home/sort.png" mode="widthFix"></image>
|
||
<text>排序</text>
|
||
</view>
|
||
<view class="line"></view>
|
||
<view class="screenC flex" @click="clickScreenItem()">
|
||
<image class="icon" src="/static/icon/home/screen.png" mode="widthFix"></image>
|
||
<text>筛选</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<scroll-view scroll-x class="topCategoryC">
|
||
<view :class="'item relative '+(selectTopCategory==index?'select':'')" v-for="(item,index) in topCategoryList" :key="index" @click="clickTopCategoryItem(index)">
|
||
{{item}}
|
||
<view class="line absolute"></view>
|
||
</view>
|
||
</scroll-view>
|
||
<scroll-view scroll-x class="secondCategoryC">
|
||
<view :class="'item '+(selectSecondCategory==index?'select':'')" v-for="(item,index) in secondCategoryList" :key="index" @click="clickSecondCategoryItem(index)">
|
||
{{item}}
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
<scroll-view scroll-y class="eventListC fixed" :style="'top:'+listTop+'px'" @scrolltolower="loadMoreData()">
|
||
<!-- <view style="width:750rpx; height:400rpx">
|
||
<l-echart ref="chartRef"></l-echart>
|
||
</view> -->
|
||
<view class="list">
|
||
<view class="item" @click="clickEventItem(item.id)" v-for="(item,index) in eventList" :key="index">
|
||
<view class="flex">
|
||
<view :class="'level '+item.importance">{{item.importance}}</view>
|
||
<view class="title">{{item.title}}</view>
|
||
</view>
|
||
<view class="content">{{item.description}}</view>
|
||
<scroll-view scroll-x class="increaseRateList">
|
||
<view :class="'rateItem '+(getRateUpOrDown(item.related_avg_chg)?'down':'up')">
|
||
平均涨幅:
|
||
<image v-if="getRateUpOrDown(item.related_avg_chg)" class="arrow" src="/static/icon/home/downArrow.png" mode="widthFix"></image>
|
||
<image v-else class="arrow" src="/static/icon/home/upArrow.png" mode="widthFix"></image>
|
||
{{getRateStr(item.related_avg_chg)}}%
|
||
</view>
|
||
<view :class="'rateItem '+(getRateUpOrDown(item.related_max_chg)?'down':'up')">
|
||
最大涨幅:
|
||
<image v-if="getRateUpOrDown(item.related_max_chg)" class="arrow" src="/static/icon/home/downArrow.png" mode="widthFix"></image>
|
||
<image v-else class="arrow" src="/static/icon/home/upArrow.png" mode="widthFix"></image>
|
||
{{getRateStr(item.related_max_chg)}}%
|
||
</view>
|
||
<view :class="'rateItem '+(getRateUpOrDown(item.related_week_chg)?'down':'up')">
|
||
周涨幅:
|
||
<image v-if="getRateUpOrDown(item.related_week_chg)" class="arrow" src="/static/icon/home/downArrow.png" mode="widthFix"></image>
|
||
<image v-else class="arrow" src="/static/icon/home/upArrow.png" mode="widthFix"></image>
|
||
{{getRateStr(item.related_week_chg)}}%
|
||
</view>
|
||
</scroll-view>
|
||
<scroll-view scroll-x class="stockList">
|
||
<view class="stockItem">中远海控 +1.46%</view>
|
||
</scroll-view>
|
||
<view class="timeToolBarC flex">
|
||
<view class="time flex1">{{getLocaleTime(item.created_at)}}</view>
|
||
<view class="toolBarC flex">
|
||
<view class="toolItem flex">
|
||
<image class="icon" src="/static/icon/home/browser.png" mode="widthFix"></image>
|
||
<text>{{item.view_count}}</text>
|
||
</view>
|
||
<view class="toolItem flex">
|
||
<image class="icon" src="/static/icon/home/comment.png" mode="widthFix"></image>
|
||
<text>{{item.post_count}}</text>
|
||
</view>
|
||
<view class="toolItem flex">
|
||
<image class="icon" src="/static/icon/home/follow.png" mode="widthFix"></image>
|
||
<text>{{item.follower_count}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
<uni-popup ref="sortPopup" type="top" mask-background-color="transparent">
|
||
<view class="sortPopup relative">
|
||
<image class="arrow absolute" src="/static/icon/home/sortArrow.png" mode="widthFix"></image>
|
||
<view class="list" :style="'margin-top:'+sortListTop+'px;'">
|
||
<view class="item flex" v-for="(item,index) in sortList" :key="index">
|
||
<image class="icon" :src="item.icon" mode="aspectFit"></image>
|
||
<text> {{item.name}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</uni-popup>
|
||
<uni-popup ref="screenPopup" type="top">
|
||
<view class="screenPopup" :style="'padding-top:'+menuTop+'px;'">
|
||
<view class="navC flex" :style="'height:'+menuH+'px;'">
|
||
<image class="icon" src="/static/icon/backBlack.png" mode="widthFix"></image>
|
||
<view class="title">筛选</view>
|
||
</view>
|
||
<view class="flexStretch" style="max-height: 1000rpx;">
|
||
<view class="screenCategoryList">
|
||
<view :class="'item relative '+(selectScreenCategory==index?'select':'')" v-for="(item,index) in screenCategoryList" :key="index" @click="clickScreenCategoryItem(index)">
|
||
{{item}}
|
||
<view v-if="selectScreenCategory==index" class="line absolute"></view>
|
||
</view>
|
||
</view>
|
||
<view class="screenContentC flex1">
|
||
<block v-if="selectScreenCategory==0">
|
||
<view class="section">选择日期</view>
|
||
<view class="dateC flex">
|
||
<view class="start flex1">{{startDate}}</view>
|
||
<view class="and">至</view>
|
||
<view class="end flex1">{{endDate}}</view>
|
||
</view>
|
||
<view class="yearMonthC flex">
|
||
<view class="preC btn flexCenter" @click="clickPreMonth()">
|
||
<image class="icon" src="/static/icon/home/monthLeftArrow.png" mode="widthFix"></image>
|
||
</view>
|
||
<view class="yearMonth flex1">{{selectMonth}}</view>
|
||
<view class="nextC btn flexCenter" @click="clickNextMonth()">
|
||
<image class="icon" src="/static/icon/home/monthRightArrow.png" mode="widthFix"></image>
|
||
</view>
|
||
</view>
|
||
<view class="weekList flex">
|
||
<view class="item flex1" v-for="(item,index) in weekList" :key="index">{{item}}</view>
|
||
</view>
|
||
<view class="monthDateList flexWrap">
|
||
<view class="item flexColumnCenter" v-for="(item,index) in monthDateList[selectMonthIndex]" :key="index" @click="clickSelectDate(item)">
|
||
<block v-if="item.isToday||item.date==startDate||item.date==endDate">
|
||
<view class="date today">{{item.day}}</view>
|
||
</block>
|
||
<block v-else>
|
||
<block v-if="item.timestamp>startTimeStamp&&item.timestamp<endTimeStamp">
|
||
<view class="date inRange">{{item.day}}</view>
|
||
</block>
|
||
<block v-else>
|
||
<block v-if="!item.isCurrentMonth">
|
||
<view class="date notCurrentMonth">{{item.day}}</view>
|
||
</block>
|
||
<block v-else>
|
||
<view class="date">{{item.day}}</view>
|
||
</block>
|
||
</block>
|
||
</block>
|
||
</view>
|
||
</view>
|
||
</block>
|
||
<block v-if="selectScreenCategory==1">
|
||
<view class="section">选择体系</view>
|
||
<view class="industryCategoryC flexWrap">
|
||
<view class="item" v-for="(item,index) in industryTopCategoryList" :key="index">
|
||
{{item}}
|
||
</view>
|
||
</view>
|
||
<view class="industrySearchC flex">
|
||
<image class="icon" src="/static/icon/home/search.png" mode="widthFix"></image>
|
||
<input class="flex1" type="text" placeholder="搜索行业" placeholder-style="color:#94989A"/>
|
||
</view>
|
||
</block>
|
||
<block v-if="selectScreenCategory==2">
|
||
<view class="section">重要性</view>
|
||
<view class="importanceList flexWrap">
|
||
<view :class="'item '+(selectImportanceIndex==index?'select':'')" v-for="(item,index) in importanceList" :key="index" @click="clickImportanceItem(index)">
|
||
{{item.name}}
|
||
</view>
|
||
</view>
|
||
</block>
|
||
</view>
|
||
</view>
|
||
<view class="btnC flex">
|
||
<view class="cancel btn flex1" @click="clickCancel()">取消</view>
|
||
<view class="certain btn flex1" @click="clickCertain()">确定</view>
|
||
</view>
|
||
</view>
|
||
</uni-popup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { inject } from 'vue'
|
||
import { eventFilterList, eventList, login } from '@/request/api'
|
||
import { getRateStr, getRateUpOrDown, getLocaleTime } from '@/utils/util.js'
|
||
const echarts = require('../../uni_modules/lime-echart/static/echarts.min.js');
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
menuTop:inject('menuTop'),
|
||
menuH: inject('menuHeight'),
|
||
navH:inject('navHeight'),
|
||
contentTop:'',
|
||
listTop:'',
|
||
sortListTop:'',
|
||
keywords:'', //关键词
|
||
sortList:[],
|
||
timeCategoryList:[],
|
||
selectTimeCategory:0,
|
||
topCategoryList:['全部','大周期','大消费','大金融地产','TMT板块','公共产业板块'],
|
||
selectTopCategory:0,
|
||
secondCategoryList:['全部','石油石化','煤炭','有色金属','钢铁','基础化工','建筑材料'],
|
||
selectSecondCategory:0,
|
||
screenCategoryList:['日期范围','行业分类','重要性'],
|
||
selectYearMonth:'', //选择的年月日
|
||
startDate:'', //选择开始日期
|
||
startTimeStamp:'', //开始日期时间戳
|
||
endDate:'', //选择结束日期
|
||
endTimeStamp:'', //结束日期时间戳
|
||
weekList:['一','二','三','四','五','六','日'],
|
||
monthDateList:[],
|
||
selectMonthIndex:0, //选中月份下标
|
||
selectMonth:'', //选中年月
|
||
industryTopCategoryList:['巨潮行业分类','新财富行业分类','申银万国行业分类','证监会行业分类'],
|
||
selectScreenCategory:0,
|
||
importanceList:[], //重要性数组
|
||
selectImportanceIndex:0, //选择重要性下标
|
||
option:{
|
||
tooltip: {
|
||
trigger: 'axis',
|
||
axisPointer: {
|
||
type: 'shadow'
|
||
},
|
||
confine: true
|
||
},
|
||
grid:{
|
||
left: '0%',
|
||
right: '0%',
|
||
top: '0%',
|
||
bottom: '20%',
|
||
},
|
||
xAxis: [
|
||
{
|
||
type: 'category',
|
||
data: ['跌停','跌停~5%','5~1%','1~0%','平盘','0~1%','1~5%','5%~涨停','涨停'],
|
||
axisTick:{
|
||
show:false
|
||
},
|
||
axisLine:{
|
||
show:false
|
||
},
|
||
axisLabel: {
|
||
fontSize:10,
|
||
interval:'0',
|
||
textStyle:{
|
||
color: function (value, index) {
|
||
return (index==0)?'#355422':(index==8?'#C00000':'#515151');
|
||
}
|
||
}
|
||
}
|
||
}
|
||
],
|
||
yAxis: [
|
||
{
|
||
type: 'value',
|
||
show:false,
|
||
axisTick: { show: false },
|
||
}
|
||
],
|
||
series: [
|
||
{
|
||
name: '热度',
|
||
type: 'bar',
|
||
label: {
|
||
show:true,
|
||
position:'top',
|
||
fontSize:12,
|
||
},
|
||
data: [
|
||
{
|
||
value:0,
|
||
itemStyle: {color:'#355422'},
|
||
label:{
|
||
textStyle: {color:'#355422'},
|
||
},
|
||
},
|
||
{
|
||
value:44,
|
||
itemStyle: {color:'#35542299'},
|
||
label:{
|
||
textStyle: {color:'#355422'},
|
||
},
|
||
},
|
||
{
|
||
value:315,
|
||
itemStyle: {color:'#355422CC'},
|
||
label:{
|
||
textStyle: {color:'#355422'},
|
||
},
|
||
},
|
||
{
|
||
value:1264,
|
||
itemStyle: {color:'#355422'},
|
||
label:{
|
||
textStyle: {color:'#355422'},
|
||
},
|
||
},
|
||
{
|
||
value:1064,
|
||
itemStyle: {color:'#ACB0C0'},
|
||
label:{
|
||
textStyle: {color:'#666'},
|
||
},
|
||
},
|
||
{
|
||
value:1809,
|
||
itemStyle: {color:'#C00000'},
|
||
label:{
|
||
textStyle: {color:'#C00000'},
|
||
},
|
||
},
|
||
{
|
||
value:602,
|
||
itemStyle: {color:'#C00000CC'},
|
||
label:{
|
||
textStyle: {color:'#C00000'},
|
||
},
|
||
},
|
||
{
|
||
value:44,
|
||
itemStyle: {color:'#C0000099'},
|
||
label:{
|
||
textStyle: {color:'#C00000'},
|
||
},
|
||
},
|
||
{
|
||
value:0,
|
||
itemStyle: {color:'#C00000'},
|
||
label:{
|
||
textStyle: {color:'#C00000'},
|
||
},
|
||
},
|
||
],
|
||
}
|
||
]
|
||
},
|
||
eventList:[],
|
||
page:1,
|
||
loadAll:false,
|
||
getRateStr:getRateStr,
|
||
getRateUpOrDown:getRateUpOrDown,
|
||
getLocaleTime:getLocaleTime
|
||
}
|
||
},
|
||
onLoad() {
|
||
this.contentTop = this.navH + (75+20)/750*inject('windowWidth')
|
||
this.listTop = this.contentTop + (22+80+72+44+44)/750*inject('windowWidth')
|
||
this.sortListTop = this.navH + (22+80+80)/750*inject('windowWidth')
|
||
this.getEventFilterListData()
|
||
this.getEventListData()
|
||
// this.init()
|
||
let currentDate = new Date();
|
||
// 获取当前年份
|
||
let currentYear = currentDate.getFullYear();
|
||
let currentMonth = currentDate.getMonth()+1;
|
||
let currentDay = currentDate.getDate();
|
||
let monthDateList = []
|
||
this.selectMonthIndex = 20*12+currentMonth-1
|
||
this.selectMonth = currentYear + '-' + (currentMonth>9?currentMonth:('0'+currentMonth))
|
||
for (var i = currentYear-20; i < currentYear+20; i++) {
|
||
for (var j = 0; j < 12; j++) {
|
||
let date = new Date(i,j+1,0)
|
||
let firstDayOfMonth = new Date(i,j+1,0);
|
||
firstDayOfMonth.setDate(1);
|
||
//获取当前月天数
|
||
let currentMonthDay = date.getDate()
|
||
let firstDayWeek = firstDayOfMonth.getDay() || 7
|
||
let daysOfMonth = []
|
||
for (var k = 1; k <= currentMonthDay; k++) {
|
||
let newDate = new Date(i,j+1,0)
|
||
newDate.setDate(k); // 设置日期为当前月的相应日期
|
||
let newMonth = newDate.getMonth()+1
|
||
let newDay = newDate.getDate()
|
||
let time = newDate.getTime()
|
||
let date = i+'-'+(newMonth>9?newMonth:('0'+newMonth))+'-'+(newDay>9?newDay:('0'+newDay))
|
||
daysOfMonth.push({date:date,year:i,month:newMonth,day:newDay,isToday:(i==currentYear&&newMonth==currentMonth&&newDay==currentDay)?true:false,isCurrentMonth:true,timestamp:time});
|
||
}
|
||
for (var k = 0; k < firstDayWeek-1; k++) {
|
||
//获取上月天数
|
||
let year = i
|
||
let month = j
|
||
if(j<1)
|
||
{
|
||
year = i - 1
|
||
month = 12
|
||
}
|
||
let lastMonthDay = new Date(year, month, 0).getDate()
|
||
//获取上月日期
|
||
let newDate = new Date(year,month-1,lastMonthDay-k)
|
||
let newMonth = newDate.getMonth()+1
|
||
let newDay = newDate.getDate()
|
||
let time = newDate.getTime()
|
||
let date = year+'-'+(newMonth>9?newMonth:('0'+newMonth))+'-'+(newDay>9?newDay:('0'+newDay))
|
||
daysOfMonth.unshift({date:date,year:year,month:newMonth,day:newDay,isToday:false,isCurrentMonth:false,timestamp:time});
|
||
}
|
||
// 下一个月的第一天
|
||
let nextMonthFirstDay = new Date(i, j+1, 1);
|
||
// 然后减去一天就是当前月的最后一天
|
||
let lastDayOfMonth = new Date(nextMonthFirstDay - (24 * 60 * 60 * 1000)); // 减去一天的毫秒数
|
||
let lastDayWeek = lastDayOfMonth.getDay() || 7; // 返回0(星期天)到6(星期六)之
|
||
for (var k = 1; k < 8-lastDayWeek; k++) {
|
||
let year = i
|
||
let month = j
|
||
if(month>11)
|
||
{
|
||
month = 0
|
||
year ++
|
||
}
|
||
//获取下月日期
|
||
let newDate = new Date(year,month + 1,k)
|
||
let newMonth = newDate.getMonth()+1
|
||
let newDay = newDate.getDate()
|
||
let time = newDate.getTime()
|
||
let date = year+'-'+(newMonth>9?newMonth:('0'+newMonth))+'-'+(newDay>9?newDay:('0'+newDay))
|
||
daysOfMonth.push({date:date,year:year,month:newMonth,day:newDay,isToday:false,isCurrentMonth:false,timestamp:time});
|
||
}
|
||
monthDateList.push(daysOfMonth)
|
||
}
|
||
}
|
||
this.monthDateList = monthDateList
|
||
},
|
||
onPullDownRefresh() {
|
||
this.page = 1
|
||
this.getEventListData()
|
||
},
|
||
methods: {
|
||
loadMoreData()
|
||
{
|
||
if(!this.loadAll)
|
||
{
|
||
this.page ++
|
||
this.getEventListData()
|
||
}
|
||
},
|
||
async init() {
|
||
// chart 图表实例不能存在data里
|
||
const chart = await this.$refs.chartRef.init(echarts);
|
||
chart.setOption(this.option)
|
||
},
|
||
/**
|
||
* 点击搜索
|
||
*/
|
||
clickSearch()
|
||
{
|
||
this.page = 1
|
||
this.getEventListData()
|
||
},
|
||
/**
|
||
* 点击事件筛选
|
||
* @param {Object} index
|
||
*/
|
||
clickTimeCategoryItem(index)
|
||
{
|
||
if(this.selectTimeCategory!=index)
|
||
{
|
||
this.selectTimeCategory = index
|
||
}
|
||
},
|
||
/**
|
||
* 点击排序
|
||
*/
|
||
clickSortItem()
|
||
{
|
||
this.$refs['sortPopup'].open()
|
||
},
|
||
/**
|
||
* 点击筛选
|
||
*/
|
||
clickScreenItem()
|
||
{
|
||
this.$refs['screenPopup'].open()
|
||
},
|
||
/**
|
||
* 点击筛选弹窗取消
|
||
*/
|
||
clickCancel()
|
||
{
|
||
this.$refs["screenPopup"].close()
|
||
},
|
||
/**
|
||
* 点击筛选弹窗确定
|
||
*/
|
||
clickCertain()
|
||
{
|
||
this.clickCancel()
|
||
this.clickSearch()
|
||
},
|
||
/**
|
||
* 点击筛选分类
|
||
* @param {Object} index
|
||
*/
|
||
clickScreenCategoryItem(index)
|
||
{
|
||
if(this.selectScreenCategory!=index)
|
||
{
|
||
this.selectScreenCategory = index
|
||
}
|
||
},
|
||
/**
|
||
* 点击选择一级分类
|
||
* @param {Object} index
|
||
*/
|
||
clickTopCategoryItem(index)
|
||
{
|
||
if(this.selectTopCategory!=index)
|
||
{
|
||
this.selectTopCategory = index
|
||
}
|
||
},
|
||
/**
|
||
* 点击选择二级分类
|
||
* @param {Object} index
|
||
*/
|
||
clickSecondCategoryItem(index)
|
||
{
|
||
if(this.selectSecondCategory!=index)
|
||
{
|
||
this.selectSecondCategory = index
|
||
}
|
||
},
|
||
/**
|
||
* 点击上个月
|
||
*/
|
||
clickPreMonth()
|
||
{
|
||
if(this.selectMonthIndex>0)
|
||
{
|
||
this.selectMonthIndex --
|
||
let monthList = this.monthDateList[this.selectMonthIndex]
|
||
let month = ''
|
||
for (let item of monthList) {
|
||
if(item.isCurrentMonth)
|
||
{
|
||
month = item.month
|
||
break
|
||
}
|
||
}
|
||
this.selectMonth = this.monthDateList[this.selectMonthIndex][0].year+'-'+(month>9?month:('0'+month))
|
||
}
|
||
},
|
||
/**
|
||
* 点击下个月
|
||
*/
|
||
clickNextMonth()
|
||
{
|
||
if(this.selectMonthIndex<this.monthDateList.length-1)
|
||
{
|
||
this.selectMonthIndex ++
|
||
let monthList = this.monthDateList[this.selectMonthIndex]
|
||
let month = ''
|
||
for (let item of monthList) {
|
||
if(item.isCurrentMonth)
|
||
{
|
||
month = item.month
|
||
break
|
||
}
|
||
}
|
||
this.selectMonth = this.monthDateList[this.selectMonthIndex][0].year+'-'+(month>9?month:('0'+month))
|
||
}
|
||
},
|
||
/**
|
||
* 点击选择开始日期和结束日期
|
||
* @param {Object} item
|
||
*/
|
||
clickSelectDate(item)
|
||
{
|
||
if(this.startDate)
|
||
{
|
||
let date1 = new Date(this.startDate)
|
||
let date2 = new Date(item.date)
|
||
if(date1>date2)
|
||
{
|
||
this.endDate = this.startDate
|
||
this.endTimeStamp = this.startTimeStamp
|
||
this.startDate = item.date
|
||
this.startTimeStamp = item.timestamp
|
||
}else
|
||
{
|
||
this.endDate = item.date
|
||
this.endTimeStamp = item.timestamp
|
||
}
|
||
}else
|
||
{
|
||
this.startDate = item.date
|
||
this.startTimeStamp = item.timestamp
|
||
}
|
||
},
|
||
/**
|
||
* 点击选择重要性
|
||
*/
|
||
clickImportanceItem(index)
|
||
{
|
||
if(this.selectImportanceIndex!=index)
|
||
{
|
||
this.selectImportanceIndex = index
|
||
}
|
||
},
|
||
/**
|
||
* 查看事件详情
|
||
*/
|
||
clickEventItem(id)
|
||
{
|
||
uni.navigateTo({
|
||
url:'/pages/index/eventDetails/eventDetails?id='+id
|
||
})
|
||
},
|
||
/**
|
||
* 获取事件筛选项
|
||
*/
|
||
getEventFilterListData()
|
||
{
|
||
eventFilterList().then(res=>{
|
||
let timeList = [...res.data.available_sorts]
|
||
this.timeCategoryList = timeList.splice(0,2)
|
||
let sortList = [...res.data.available_sorts]
|
||
for (let item of sortList) {
|
||
if(item.name=='最新')
|
||
{
|
||
item.icon = '/static/icon/home/new.png'
|
||
}
|
||
if(item.name=='热门')
|
||
{
|
||
item.icon = '/static/icon/home/hot.png'
|
||
}
|
||
if(item.name=='收益率')
|
||
{
|
||
item.icon = '/static/icon/home/yield.png'
|
||
}
|
||
}
|
||
this.sortList = res.data.available_sorts.splice(0,3)
|
||
this.importanceList = res.data.available_importance_levels
|
||
this.importanceList.unshift({desc: "全部",key: "all",name: "全部"})
|
||
}).catch(error=>{
|
||
|
||
})
|
||
},
|
||
/**
|
||
* 获取事件列表数据
|
||
*/
|
||
getEventListData()
|
||
{
|
||
let param = {page:this.page,keywords:this.keywords}
|
||
if(this.startDate)
|
||
{
|
||
param.start_date = this.startDate
|
||
}
|
||
if(this.endDate)
|
||
{
|
||
param.end_date = this.endDate
|
||
}
|
||
if(this.selectImportanceIndex>0)
|
||
{
|
||
param.importance = this.importanceList[this.selectImportanceIndex].key
|
||
}
|
||
eventList(param).then(res=>{
|
||
if(res.success)
|
||
{
|
||
if(this.page==1)
|
||
{
|
||
this.eventList = res.data.events
|
||
}else
|
||
this.eventList = this.eventList.concat(res.data.events)
|
||
}
|
||
}).catch(error=>{
|
||
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="less">
|
||
.topBg
|
||
{
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: auto;
|
||
}
|
||
.navTitle
|
||
{
|
||
left: 0;
|
||
margin: 0 23rpx;
|
||
font-size: 36rpx;
|
||
font-weight: bold;
|
||
color: white;
|
||
}
|
||
.searchC
|
||
{
|
||
background-color: white;
|
||
left: 0;
|
||
right: 0;
|
||
margin: 20rpx 25rpx 0;
|
||
padding: 0 20rpx;
|
||
height: 75rpx;
|
||
border-radius: 20rpx;
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
.icon
|
||
{
|
||
margin-right: 16rpx;
|
||
width: 30rpx;
|
||
height: auto;
|
||
}
|
||
input
|
||
{
|
||
height: 100%;
|
||
}
|
||
.line
|
||
{
|
||
background-color: #E1E1E1;
|
||
width: 1rpx;
|
||
height: 40rpx;
|
||
}
|
||
.search
|
||
{
|
||
padding: 0 25rpx;
|
||
color: #F97316;
|
||
}
|
||
}
|
||
.screenCategoryC
|
||
{
|
||
background-color: white;
|
||
margin-top: 22rpx;
|
||
left: 0;
|
||
right: 0;
|
||
border-radius: 20rpx 20rpx 0 0;
|
||
.sortScreenC
|
||
{
|
||
font-weight: 500;
|
||
.timeCategoryC
|
||
{
|
||
.item
|
||
{
|
||
display: inline-block;
|
||
padding: 0 26rpx;
|
||
line-height: 80rpx;
|
||
font-size: 32rpx;
|
||
color: #42485B;
|
||
}
|
||
.item.select
|
||
{
|
||
font-weight: bold;
|
||
color: #F97316;
|
||
}
|
||
}
|
||
.sortC
|
||
{
|
||
padding: 0 14rpx;
|
||
font-size: 24rpx;
|
||
color: #999;
|
||
.icon
|
||
{
|
||
margin-right: 4rpx;
|
||
width: 22rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
.line
|
||
{
|
||
background-color: #999;
|
||
width: 1rpx;
|
||
height: 25rpx;
|
||
}
|
||
.screenC
|
||
{
|
||
padding: 0 14rpx;
|
||
font-size: 24rpx;
|
||
color: #999;
|
||
.icon
|
||
{
|
||
margin-right: 5rpx;
|
||
width: 24rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
}
|
||
.topCategoryC
|
||
{
|
||
white-space: nowrap;
|
||
border-bottom: solid 1rpx #E4E4E4;
|
||
.item
|
||
{
|
||
display: inline-block;
|
||
line-height: 72rpx;
|
||
padding: 0 28rpx;
|
||
font-size: 27rpx;
|
||
font-weight: 500;
|
||
color: #42485B;
|
||
}
|
||
.item.select
|
||
{
|
||
font-weight: bold;
|
||
color: black;
|
||
.line
|
||
{
|
||
background-color: #F97316;
|
||
left: calc((100% - 50rpx)/2);
|
||
width: 50rpx;
|
||
height: 2rpx;
|
||
bottom: 0;
|
||
}
|
||
}
|
||
}
|
||
.secondCategoryC
|
||
{
|
||
white-space: nowrap;
|
||
padding: 21rpx 20rpx;
|
||
.item
|
||
{
|
||
display: inline-block;
|
||
line-height: 44rpx;
|
||
padding: 0 11rpx;
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
color: #42485B;
|
||
}
|
||
.item.select
|
||
{
|
||
background-color: #FFF6F0;
|
||
color: #F97316;
|
||
border-radius: 5rpx;
|
||
}
|
||
}
|
||
}
|
||
.eventListC
|
||
{
|
||
background-color: white;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: calc(55px + env(safe-area-inset-bottom));
|
||
overflow-y: scroll;
|
||
.list
|
||
{
|
||
padding: 0 25rpx;
|
||
.item
|
||
{
|
||
padding: 30rpx 0;
|
||
border-bottom: solid 1rpx #E4E4E4;
|
||
.level
|
||
{
|
||
margin-right: 16rpx;
|
||
width: 50rpx;
|
||
line-height: 40rpx;
|
||
border-radius: 10rpx;
|
||
font-size: 30rpx;
|
||
font-weight: bold;
|
||
color: white;
|
||
text-align: center;
|
||
}
|
||
.level.S
|
||
{
|
||
background-color: #CC4C02;
|
||
}
|
||
.level.A
|
||
{
|
||
background-color: #EC7014;
|
||
}
|
||
.level.B
|
||
{
|
||
background-color: #FB9A29;
|
||
}
|
||
.level.C
|
||
{
|
||
background-color: #FEC44F;
|
||
}
|
||
.title
|
||
{
|
||
font-size: 30rpx;
|
||
font-weight: bold;
|
||
color: #222;
|
||
}
|
||
.content
|
||
{
|
||
margin-top: 20rpx;
|
||
display: -webkit-box;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-line-clamp: 3;
|
||
text-overflow: ellipsis;
|
||
overflow: hidden;
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
color: #666;
|
||
}
|
||
.increaseRateList
|
||
{
|
||
white-space: nowrap;
|
||
margin-top: 24rpx;
|
||
.rateItem
|
||
{
|
||
display: inline-block;
|
||
margin-right: 15rpx;
|
||
line-height: 44rpx;
|
||
padding: 0 14rpx;
|
||
border-radius: 10rpx;
|
||
font-size: 22rpx;
|
||
font-weight: bold;
|
||
color: white;
|
||
.arrow
|
||
{
|
||
width: 15rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
.rateItem.up
|
||
{
|
||
background-color: #C00000;
|
||
}
|
||
.rateItem.down
|
||
{
|
||
background-color: #355422;
|
||
}
|
||
}
|
||
.stockList
|
||
{
|
||
white-space: nowrap;
|
||
margin-top: 20rpx;
|
||
.stockItem
|
||
{
|
||
background-color: #F8F8F8;
|
||
display: inline-block;
|
||
padding: 0 20rpx;
|
||
line-height: 60rpx;
|
||
border-radius: 10rpx;
|
||
font-size: 30rpx;
|
||
font-weight: bold;
|
||
color: #222;
|
||
}
|
||
}
|
||
.timeToolBarC
|
||
{
|
||
margin-top: 20rpx;
|
||
.time
|
||
{
|
||
font-size: 22rpx;
|
||
font-weight: 500;
|
||
color: #aaa;
|
||
}
|
||
.toolBarC
|
||
{
|
||
.toolItem
|
||
{
|
||
padding: 0 20rpx;
|
||
font-size: 26rpx;
|
||
font-weight: bold;
|
||
color: #666;
|
||
.icon
|
||
{
|
||
margin-right: 13rpx;
|
||
width: 29rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
.toolItem:first-child
|
||
{
|
||
.icon
|
||
{
|
||
margin-right: 15rpx;
|
||
width: 33rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.sortPopup
|
||
{
|
||
background-color: white;
|
||
margin-left: calc(100% - (170rpx + 54rpx));
|
||
width: 170rpx;
|
||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||
border-radius: 10rpx;
|
||
.arrow
|
||
{
|
||
top: -13rpx;
|
||
left: 38rpx;
|
||
width: 26rpx;
|
||
height: auto;
|
||
}
|
||
.list
|
||
{
|
||
.item
|
||
{
|
||
padding: 20rpx;
|
||
font-size: 24rpx;
|
||
font-weight: 500;
|
||
color: #444;
|
||
.icon
|
||
{
|
||
margin-right: 11rpx;
|
||
width: 20rpx;
|
||
height: 20rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
.screenPopup
|
||
{
|
||
background-color: white;
|
||
border-radius: 0 0 20rpx 20rpx;
|
||
overflow: hidden;
|
||
.navC
|
||
{
|
||
padding: 0 25rpx;
|
||
font-size: 36rpx;
|
||
font-weight: bold;
|
||
.icon
|
||
{
|
||
margin-right: 12rpx;
|
||
width: 32rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
.screenCategoryList
|
||
{
|
||
background-color: #F8F7FD;
|
||
width: 175rpx;
|
||
.item
|
||
{
|
||
padding: 0 23rpx;
|
||
line-height: 90rpx;
|
||
font-size: 28rpx;
|
||
font-weight: 500;
|
||
color: #333;
|
||
}
|
||
.item.select
|
||
{
|
||
background-color: white;
|
||
font-weight: bold;
|
||
color: #F97316;
|
||
.line
|
||
{
|
||
background-color: #F97316;
|
||
top: calc((100% - 25rpx)/2);
|
||
left: 0;
|
||
width: 8rpx;
|
||
height: 25rpx;
|
||
border-radius: 0 5rpx 5rpx 0;
|
||
}
|
||
}
|
||
}
|
||
.screenContentC
|
||
{
|
||
padding: 30rpx 0 60rpx;
|
||
max-height: 1100rpx;
|
||
overflow-y: scroll;
|
||
.section
|
||
{
|
||
padding: 0 20rpx;
|
||
font-size: 30rpx;
|
||
font-weight: 500;
|
||
color: #222;
|
||
}
|
||
.dateC
|
||
{
|
||
background-color: #F6F6F6;
|
||
margin: 30rpx 20rpx 0;
|
||
height: 70rpx;
|
||
border-radius: 5rpx;
|
||
font-size: 28rpx;
|
||
font-weight: 500;
|
||
color: #B0B0B0;
|
||
.start
|
||
{
|
||
text-align: right;
|
||
}
|
||
.and
|
||
{
|
||
margin: 0 20rpx;
|
||
}
|
||
}
|
||
.yearMonthC
|
||
{
|
||
margin-top: 30rpx;
|
||
padding: 0 30rpx;
|
||
.yearMonth
|
||
{
|
||
text-align: center;
|
||
font-size: 24rpx;
|
||
}
|
||
.btn
|
||
{
|
||
background-color: #f8f8f8;
|
||
width: 40rpx;
|
||
height: 40rpx;
|
||
border-radius: 50%;
|
||
.icon
|
||
{
|
||
display: block;
|
||
width: 24rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
}
|
||
.weekList
|
||
{
|
||
margin-top: 20rpx;
|
||
padding: 0 30rpx;
|
||
.item
|
||
{
|
||
line-height: 40rpx;
|
||
font-size: 24rpx;
|
||
color: #a1a1a1;
|
||
text-align: center;
|
||
}
|
||
}
|
||
.monthDateList
|
||
{
|
||
padding: 0 30rpx;
|
||
.item
|
||
{
|
||
margin-bottom: 10rpx;
|
||
width: calc(100%/7);
|
||
.date
|
||
{
|
||
background-color: #f8f8f8;
|
||
width: calc(100% - 10rpx);
|
||
line-height: 64rpx;
|
||
border-radius: 15rpx;
|
||
font-size: 24rpx;
|
||
font-weight: bold;
|
||
color: #333;
|
||
text-align: center;
|
||
}
|
||
.date.today
|
||
{
|
||
background-color: #FF7E1A;
|
||
color: white;
|
||
}
|
||
.date.inRange
|
||
{
|
||
background-color: #FFF2EB;
|
||
}
|
||
.date.notCurrentMonth
|
||
{
|
||
background-color: #fdfdfd;
|
||
color: #c3c3c3;
|
||
}
|
||
.eventNum
|
||
{
|
||
margin-top: 12rpx;
|
||
width: 80rpx;
|
||
height: 30rpx;
|
||
line-height: 30rpx;
|
||
border-radius: 5rpx;
|
||
font-size: 16rpx;
|
||
font-weight: 500;
|
||
color: white;
|
||
text-align: center;
|
||
}
|
||
}
|
||
}
|
||
.industryCategoryC
|
||
{
|
||
margin: 14rpx 20rpx 0;
|
||
padding-bottom: 20rpx;
|
||
border-bottom: solid 1rpx #E4E4E4;
|
||
.item
|
||
{
|
||
background-color: #F6F6F6;
|
||
margin: 0 20rpx 20rpx 0;
|
||
padding: 0 30rpx;
|
||
line-height: 70rpx;
|
||
border-radius: 10rpx;
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
color: #666;
|
||
}
|
||
.item.select
|
||
{
|
||
background-color: #F97316;
|
||
color: white;
|
||
}
|
||
}
|
||
.industrySearchC
|
||
{
|
||
background-color: #F6F6F6;
|
||
margin: 28rpx 22rpx 0;
|
||
padding: 0 22rpx;
|
||
height: 75rpx;
|
||
border: solid 1rpx #DBDBDB;
|
||
border-radius: 10rpx;
|
||
font-size: 26rpx;
|
||
font-weight: 500;
|
||
.icon
|
||
{
|
||
margin-right: 16rpx;
|
||
width: 30rpx;
|
||
height: auto;
|
||
}
|
||
}
|
||
.importanceList
|
||
{
|
||
margin-top: 16rpx;
|
||
padding: 0 20rpx;
|
||
.item
|
||
{
|
||
background-color: #F6F6F6;
|
||
margin: 0 20rpx 20rpx 0;
|
||
width: 150rpx;
|
||
line-height: 70rpx;
|
||
border-radius: 10rpx;
|
||
font-size: 28rpx;
|
||
color: #666;
|
||
text-align: center;
|
||
}
|
||
.item.select
|
||
{
|
||
background-color: #F97316;
|
||
color: white;
|
||
}
|
||
}
|
||
}
|
||
.btnC
|
||
{
|
||
overflow: hidden;
|
||
.btn
|
||
{
|
||
line-height: 100rpx;
|
||
font-size: 28rpx;
|
||
text-align: center;
|
||
}
|
||
.btn.cancel
|
||
{
|
||
background-color: #F8F7FD;
|
||
font-weight: 500;
|
||
color: #999;
|
||
}
|
||
.btn.certain
|
||
{
|
||
background-color: #F97316;
|
||
font-weight: bold;
|
||
color: white;
|
||
}
|
||
}
|
||
}
|
||
</style>
|