|
@@ -2,23 +2,23 @@
|
|
|
<view class="index-page ">
|
|
|
<view class="header custom_status_bar">
|
|
|
<view class="status_bar">
|
|
|
- <div class="name">工作台</div>
|
|
|
- <div class="actions">
|
|
|
- <div class="message" @click="linkToMessage">
|
|
|
+ <view class="name">工作台</view>
|
|
|
+ <view class="actions">
|
|
|
+ <view class="message" @click="linkToMessage">
|
|
|
<image v-if="user.userAvatar" class="icon" src="/static/index/message.png" mode="widthFix"></image>
|
|
|
- </div>
|
|
|
- <div class="scan" @click="scanQrcode">
|
|
|
+ </view>
|
|
|
+ <view class="scan" @click="scanQrcode">
|
|
|
<image class="icon" src="/static/index/scanner.png" mode="widthFix"></image>
|
|
|
<text class="icon-name">扫一扫</text>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
<view class="user-info">
|
|
|
- <div class="company">
|
|
|
+ <view class="company">
|
|
|
<text class="company-name">{{user.ocName}}</text>
|
|
|
<image class="icon" src="/static/index/company.png" mode="widthFix"></image>
|
|
|
- </div>
|
|
|
- <div class="user">
|
|
|
+ </view>
|
|
|
+ <view class="user">
|
|
|
<view class="avatar-box">
|
|
|
<image v-if="user.userAvatar" class="avatar" :src="user.userAvatar" mode="widthFix" @error="userAvatar=defaultAvatar"></image>
|
|
|
<image v-else class="avatar" :src="defaultAvatar" mode="widthFix"></image>
|
|
@@ -32,70 +32,85 @@
|
|
|
<span v-if="user.positionName">【{{user.positionName}}】</span>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </div>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="container">
|
|
|
<view class="cont">
|
|
|
- <div class="container-wrap">
|
|
|
- <div class="notice">
|
|
|
- <div class="notice-name">
|
|
|
+ <view class="container-wrap">
|
|
|
+ <view class="notice">
|
|
|
+ <view class="notice-name">
|
|
|
<image class="icon" src="/static/index/notice.png" mode="widthFix"></image>
|
|
|
<text>最近动态</text>
|
|
|
- </div>
|
|
|
- <div class="notice-cont" v-if="showNotice">
|
|
|
+ </view>
|
|
|
+ <view class="notice-cont" v-if="showNotice">
|
|
|
<uni-notice-bar
|
|
|
scrollable :text="notice"
|
|
|
background-color="#fff0"
|
|
|
:speed="50"
|
|
|
ref="uni-notice-bar"
|
|
|
color="#333" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
<view class="tab">
|
|
|
- <div class="tab-item" @click="linkTo('task','待办任务')">
|
|
|
+ <view class="tab-item" @click="linkTo('task','待办任务')">
|
|
|
<image class="icon" src="/static/index/tab1.png" mode="widthFix"></image>
|
|
|
<view class="tab-name">待办任务</view>
|
|
|
<view class="number">{{taskTotal>99?'99+':taskTotal}}</view>
|
|
|
- </div>
|
|
|
- <div class="tab-item" @click="linkTo('alert','预警事件')">
|
|
|
+ </view>
|
|
|
+ <view class="tab-item" @click="linkTo('alert','预警事件')">
|
|
|
<image class="icon" src="/static/index/tab_alert.png" mode="widthFix"></image>
|
|
|
<view class="tab-name">预警提醒</view>
|
|
|
<view class="number">{{alertTotal>99?'99+':alertTotal}}</view>
|
|
|
- </div>
|
|
|
- <div class="tab-item" @click="linkTo('warn','告警事件')">
|
|
|
+ </view>
|
|
|
+ <view class="tab-item" @click="linkTo('warn','告警事件')">
|
|
|
<image class="icon" src="/static/index/tab2.png" mode="widthFix"></image>
|
|
|
<view class="tab-name">告警事件 </view>
|
|
|
<view class="number">{{warnTotal>99?'99+':warnTotal}}</view>
|
|
|
- </div>
|
|
|
- <div class="tab-item" @click="linkTo('danger','待处理隐患')">
|
|
|
+ </view>
|
|
|
+ <view class="tab-item" @click="linkTo('danger','待处理隐患')">
|
|
|
<image class="icon" src="/static/index/tab3.png" mode="widthFix"></image>
|
|
|
<view class="tab-name">待处理隐患</view>
|
|
|
<view class="number">{{dangerTotal>99?'99+':dangerTotal}}</view>
|
|
|
- </div>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="tabs-nav">
|
|
|
+ <view class="tabs-nav-item" @click="changeTabNav(1)" :class="tabsnavIdx===1?'active':''">待办事项</view>
|
|
|
+ <view class="tabs-nav-item" @click="changeTabNav(2)" :class="tabsnavIdx===2?'active':''">管控单元</view>
|
|
|
</view>
|
|
|
- <view class="tab-cont">
|
|
|
- <div class="part" v-if="taskList.length>0">
|
|
|
- <div class="head">
|
|
|
+ <view class="tab-cont" v-if="tabsnavIdx===1">
|
|
|
+ <view class="part" v-if="taskList.length>0">
|
|
|
+ <view class="head">
|
|
|
<text class="head-name">待办任务</text>
|
|
|
<view class="more" @click="linkTo('task','待办任务')">更多</view>
|
|
|
- </div>
|
|
|
- <div class="part-cont">
|
|
|
- <div class="item" v-for="(item,taskIdx) in taskList" :key="item.taskId" @click="handle('task',item)">
|
|
|
- <div class="index">{{taskIdx+1}}</div>
|
|
|
- <div class="title">
|
|
|
- <div class="name">{{item.taskTitle}}</div>
|
|
|
+ </view>
|
|
|
+ <view class="part-cont">
|
|
|
+ <view class="item" v-for="(item,taskIdx) in taskList" :key="item.taskId" @click="handle('task',item)">
|
|
|
+ <view class="index">{{taskIdx+1}}</view>
|
|
|
+ <view class="title">
|
|
|
+ <view class="name">{{item.taskTitle}}</view>
|
|
|
<view class="state">{{taskStatus(item.status)}}</view>
|
|
|
- </div>
|
|
|
- <div class="tags">
|
|
|
+ </view>
|
|
|
+ <view class="tags">
|
|
|
<text class="tag">{{taskPriority(item.taskPriority)}}</text>
|
|
|
<text class="tag">{{item.taskCatTitle}}</text>
|
|
|
<text class="tag">{{taskType(item.taskTypeId)}}</text>
|
|
|
- </div>
|
|
|
- <view class="time">
|
|
|
- 预期结束时间:{{item.expectedEndTime}}
|
|
|
</view>
|
|
|
- <div class="bottom">
|
|
|
+<!-- <view class="countdowntime" v-if="item.expectedEndTime">
|
|
|
+ <text class="name">预期结束时间:</text>
|
|
|
+ <uni-countdown :timestamp="getcountdownTime(item.expectedEndTime)" :font-size="12" color="#FFFFFF" background-color="#007AFF" />
|
|
|
+ </view> -->
|
|
|
+ <template v-if="item.expectedEndTime">
|
|
|
+ <view class="countdowntime" v-if="getcountdownTime(item.expectedEndTime)">
|
|
|
+ <text class="name">预期结束时间:</text>
|
|
|
+ <uni-countdown :timestamp="getcountdownTime(item.expectedEndTime)" :font-size="12" color="#FFFFFF" background-color="#007AFF" />
|
|
|
+ </view>
|
|
|
+ <view class="time" v-else>
|
|
|
+ 预期结束时间:{{item.expectedEndTime}}
|
|
|
+ 【逾期】
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ <view class="bottom">
|
|
|
<view class="user">
|
|
|
<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
|
|
|
处理人:{{item.handleAccountName}}
|
|
@@ -103,29 +118,26 @@
|
|
|
<view class="hand-time">
|
|
|
{{item.launchTime}}
|
|
|
</view>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="part" v-if="warnList.length>0">
|
|
|
- <div class="head">
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="part" v-if="warnList.length>0">
|
|
|
+ <view class="head">
|
|
|
<text class="head-name">告警事件</text>
|
|
|
<view class="more" @click="linkTo('warn','告警事件')">更多</view>
|
|
|
- </div>
|
|
|
- <div class="part-cont">
|
|
|
- <div class="item" v-for="(item,warnIdx) in warnList" :key="item.warnId" @click="handle('warn',item)">
|
|
|
- <div class="index">{{warnIdx+1}}</div>
|
|
|
- <div class="title">
|
|
|
- <div class="name">{{item.warnTitle}}</div>
|
|
|
+ </view>
|
|
|
+ <view class="part-cont">
|
|
|
+ <view class="item" v-for="(item,warnIdx) in warnList" :key="item.warnId" @click="handle('warn',item)">
|
|
|
+ <view class="index">{{warnIdx+1}}</view>
|
|
|
+ <view class="title">
|
|
|
+ <view class="name">{{item.warnTitle}}</view>
|
|
|
<view class="state">{{alertStatus(item.status)}}</view>
|
|
|
- </div>
|
|
|
- <div class="tags">
|
|
|
+ </view>
|
|
|
+ <view class="tags">
|
|
|
<text class="tag">{{warningLevelFilter(item.warnLevel)}}</text>
|
|
|
- </div>
|
|
|
-<!-- <view class="time">
|
|
|
- 发生时间:{{item.warnTime}}
|
|
|
- </view> -->
|
|
|
- <div class="bottom">
|
|
|
+ </view>
|
|
|
+ <view class="bottom">
|
|
|
<view class="user">
|
|
|
<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
|
|
|
处理人:{{item.handleAccountName}}
|
|
@@ -133,32 +145,29 @@
|
|
|
<view class="hand-time">
|
|
|
{{item.warnTime}}
|
|
|
</view>
|
|
|
- </div>
|
|
|
-<!-- <view class="desc" style="padding-top: 5px;">
|
|
|
- {{item.warnDesc}}
|
|
|
- </view> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="part" v-if="alertList.length>0">
|
|
|
- <div class="head">
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+<!-- <view class="part" v-if="alertList.length>0">
|
|
|
+ <view class="head">
|
|
|
<text class="head-name">预警事件</text>
|
|
|
<view class="more" @click="linkTo('alert','预警事件')">更多</view>
|
|
|
- </div>
|
|
|
- <div class="part-cont">
|
|
|
- <div class="item" v-for="(item,alertIdx) in alertList" :key="item.alertId">
|
|
|
- <div class="index">{{alertIdx+1}}</div>
|
|
|
- <div class="title">
|
|
|
- <div class="name">{{item.alertTitle}}</div>
|
|
|
+ </view>
|
|
|
+ <view class="part-cont">
|
|
|
+ <view class="item" v-for="(item,alertIdx) in alertList" :key="item.alertId">
|
|
|
+ <view class="index">{{alertIdx+1}}</view>
|
|
|
+ <view class="title">
|
|
|
+ <view class="name">{{item.alertTitle}}</view>
|
|
|
<view class="state">{{alertStatus(item.status)}}</view>
|
|
|
- </div>
|
|
|
- <div class="tags">
|
|
|
+ </view>
|
|
|
+ <view class="tags">
|
|
|
<text class="tag">{{alertLevel(item.alertLevel)}}</text>
|
|
|
- </div>
|
|
|
+ </view>
|
|
|
<view class="time">
|
|
|
发生时间:{{item.alertTime}}
|
|
|
</view>
|
|
|
- <div class="bottom" v-if="item.handleAccountName">
|
|
|
+ <view class="bottom" v-if="item.handleAccountName">
|
|
|
<view class="user">
|
|
|
<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
|
|
|
处理人:{{item.handleAccountName}}
|
|
@@ -166,30 +175,37 @@
|
|
|
<view class="hand-time">
|
|
|
{{item.handleTime}}
|
|
|
</view>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="part" v-if="dangerList.length>0">
|
|
|
- <div class="head">
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view> -->
|
|
|
+ <view class="part" v-if="dangerList.length>0">
|
|
|
+ <view class="head">
|
|
|
<text class="head-name">待处理隐患</text>
|
|
|
<view class="more" @click="linkTo('danger','待处理隐患')">更多</view>
|
|
|
- </div>
|
|
|
- <div class="part-cont">
|
|
|
- <div class="item" v-for="(item,dangerIdx) in dangerList" :key="item.dangerId" @click="handle('danger',item)">
|
|
|
- <div class="index">{{dangerIdx+1}}</div>
|
|
|
- <div class="title">
|
|
|
- <div class="name">{{item.dangerTitle}}</div>
|
|
|
+ </view>
|
|
|
+ <view class="part-cont">
|
|
|
+ <view class="item" v-for="(item,dangerIdx) in dangerList" :key="item.dangerId" @click="handle('danger',item)">
|
|
|
+ <view class="index">{{dangerIdx+1}}</view>
|
|
|
+ <view class="title">
|
|
|
+ <view class="name">{{item.dangerTitle}}</view>
|
|
|
<view class="state">{{dangerStatus(item.status)}}</view>
|
|
|
- </div>
|
|
|
- <div class="tags">
|
|
|
+ </view>
|
|
|
+ <view class="tags">
|
|
|
<text class="tag">{{dangerLevel(item.dangerLevel)}}</text>
|
|
|
<text class="tag">{{item.dangerCatTitle}}</text>
|
|
|
- </div>
|
|
|
- <view class="time">
|
|
|
- 预期结束时间:{{item.dangerDeadLine}}
|
|
|
</view>
|
|
|
- <div class="bottom">
|
|
|
+ <template v-if="item.dangerDeadLine">
|
|
|
+ <view class="countdowntime" v-if="getcountdownTime(item.dangerDeadLine)">
|
|
|
+ <text class="name">预期结束时间:</text>
|
|
|
+ <uni-countdown :timestamp="getcountdownTime(item.dangerDeadLine)" :font-size="12" color="#FFFFFF" background-color="#007AFF" />
|
|
|
+ </view>
|
|
|
+ <view class="time" v-else>
|
|
|
+ 预期结束时间:{{item.dangerDeadLine}}
|
|
|
+ 【逾期】
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ <view class="bottom">
|
|
|
<view class="user">
|
|
|
<image class="avatar" src="/static/index/user.png" mode="widthFix"></image>
|
|
|
处理人:{{item.curAccountName}}
|
|
@@ -197,12 +213,73 @@
|
|
|
<view class="hand-time">
|
|
|
{{item.submitTime}}
|
|
|
</view>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </view>
|
|
|
- </div>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="tab-cont" v-if="tabsnavIdx===2">
|
|
|
+ <view class="statis-tabs">
|
|
|
+ <view class="statis-tab-item lv1">
|
|
|
+ <view class="number">{{myActiveRiskStatis.l1}}</view>
|
|
|
+ <view class="name">1级风险点</view>
|
|
|
+ <view class="tag">
|
|
|
+ <view class="line"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="statis-tab-item lv2">
|
|
|
+ <view class="number">{{myActiveRiskStatis.l2}}</view>
|
|
|
+ <view class="name">2级风险点</view>
|
|
|
+ <view class="tag">
|
|
|
+ <view class="line"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="statis-tab-item lv3">
|
|
|
+ <view class="number">{{myActiveRiskStatis.l3}}</view>
|
|
|
+ <view class="name">3级风险点</view>
|
|
|
+ <view class="tag">
|
|
|
+ <view class="line"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="statis-tab-item lv4">
|
|
|
+ <view class="number">{{myActiveRiskStatis.l4}}</view>
|
|
|
+ <view class="name">4级风险点</view>
|
|
|
+ <view class="tag">
|
|
|
+ <view class="line"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ <view class="dot"></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="part">
|
|
|
+ <view class="part-cont">
|
|
|
+ <view class="item flex" v-for="(item,riskIdx) in myActiveRiskList" :key="'risk-'+riskIdx" @click="showRiskDetail(item)">
|
|
|
+ <view class="item-icon">
|
|
|
+ <view class="index">{{riskIdx+1}}</view>
|
|
|
+ <image :src="item.riskPointIcon" class="item-icon-pic"></image>
|
|
|
+ </view>
|
|
|
+ <view class="item-info">
|
|
|
+ <view class="title">
|
|
|
+ <view class="name">{{item.riskPointTitle}}</view>
|
|
|
+ <view class="state">{{item.riskPointTypeTitle}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="">{{item.groupName}}</view>
|
|
|
+ <view class="tags">
|
|
|
+ <text class="tag risk" :class="'l'+item.riskPointLevel">{{riskLevelFilter(item.riskPointLevel)}}</text>
|
|
|
+ <text class="tag">{{item.riskPointCatTitle}}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
@@ -215,6 +292,7 @@
|
|
|
import { getTaskByPage,getMyWaitingTaskTop } from '@/api/aqpt/taskApi.js';
|
|
|
import { getMyWarningWaitingTop } from '@/api/aqpt/warning.js';
|
|
|
import { handleCheckTask } from '@/api/aqpt/checkTaskApi'
|
|
|
+ import {riskPointMyCountByLevel,getMyActiveRiskPointByList} from '@/api/aqpt/riskPointApi'
|
|
|
import{
|
|
|
taskStatus,taskPriority,taskType,
|
|
|
alertLevel,alertStatus,
|
|
@@ -227,6 +305,7 @@
|
|
|
defaultAvatar:"/static/components/avatar.png",
|
|
|
showNotice:false,
|
|
|
notice:"",
|
|
|
+ tabsnavIdx:1,
|
|
|
user:{
|
|
|
groupName: "",
|
|
|
ocName: "",
|
|
@@ -246,7 +325,14 @@
|
|
|
alertTotal:0,
|
|
|
dangerTotal:0,
|
|
|
taskTotal:0,
|
|
|
- warnTotal:0
|
|
|
+ warnTotal:0,
|
|
|
+ myActiveRiskStatis:{
|
|
|
+ l1:0,
|
|
|
+ l2:0,
|
|
|
+ l3:0,
|
|
|
+ l4:0
|
|
|
+ },
|
|
|
+ myActiveRiskList:[]
|
|
|
}
|
|
|
},
|
|
|
// created() {
|
|
@@ -267,6 +353,10 @@
|
|
|
const enums = { 1: 'Ⅰ级', 2: 'Ⅱ级', 3: 'Ⅲ级', 4: 'Ⅳ级' }
|
|
|
return enums[val]
|
|
|
},
|
|
|
+ riskLevelFilter(val) {
|
|
|
+ const enums = { 1: '重大', 2: '普通', 3: '一般', 4: '较小' }
|
|
|
+ return enums[val]
|
|
|
+ },
|
|
|
scanQrcode(){
|
|
|
uni.scanCode({
|
|
|
onlyFromCamera: true,
|
|
@@ -310,11 +400,15 @@
|
|
|
this.$refs['uni-notice-bar'].initSize()
|
|
|
})
|
|
|
})
|
|
|
+ this.getMyWaitingTask();
|
|
|
+ this.getMyActiveRiskPoint()
|
|
|
+ },
|
|
|
+ getMyWaitingTask(){
|
|
|
let params={
|
|
|
page: 1,
|
|
|
limit: 5,
|
|
|
status: 0,
|
|
|
- handleAccountId: user.userId
|
|
|
+ handleAccountId: this.user.userId
|
|
|
}
|
|
|
getMyWarningWaitingTop(5).then((res)=>{
|
|
|
this.warnList=res.data
|
|
@@ -327,20 +421,32 @@
|
|
|
getDangerByPage({
|
|
|
page: 1,
|
|
|
limit: 5,
|
|
|
- curAccountId: user.userId
|
|
|
+ curAccountId: this.user.userId
|
|
|
}).then((res)=>{
|
|
|
this.dangerList=res.data
|
|
|
this.dangerTotal=res.total
|
|
|
})
|
|
|
- // getTaskByPage(params).then((res)=>{
|
|
|
- // this.taskList=res.data
|
|
|
- // this.taskTotal=res.total
|
|
|
- // })
|
|
|
getMyWaitingTaskTop(5).then((res)=>{
|
|
|
this.taskList=res.data
|
|
|
this.taskTotal=res.total
|
|
|
})
|
|
|
},
|
|
|
+ getMyActiveRiskPoint(){
|
|
|
+ riskPointMyCountByLevel().then((res)=>{
|
|
|
+ this.myActiveRiskStatis=res.data
|
|
|
+ })
|
|
|
+ getMyActiveRiskPointByList().then((res)=>{
|
|
|
+ this.myActiveRiskList=res.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ changeTabNav(tabsnavIdx){
|
|
|
+ this.tabsnavIdx=tabsnavIdx;
|
|
|
+ if(tabsnavIdx===1){
|
|
|
+ this.getMyWaitingTask();
|
|
|
+ }else{
|
|
|
+ this.getMyActiveRiskPoint()
|
|
|
+ }
|
|
|
+ },
|
|
|
linkTo(type,name){
|
|
|
uni.navigateTo({
|
|
|
url:`/pages/index/detail/detail?type=${type}&name=${name}`
|
|
@@ -359,6 +465,12 @@
|
|
|
url
|
|
|
})
|
|
|
},
|
|
|
+ showRiskDetail(item){
|
|
|
+ let baseUrl=this.$h5
|
|
|
+ uni.navigateTo({
|
|
|
+ url:`/pages/webview/webview?href=${baseUrl}/riskPoint/views/detail.html?id=${item.riskPointId}&ocId=${item.riskPointId}&code=${item.riskPointId}&name=${item.riskPointTitle}`
|
|
|
+ })
|
|
|
+ },
|
|
|
handTask(item){
|
|
|
handleCheckTask(item.taskId).then((res)=>{
|
|
|
const { checklistId, checklistTypeId } = res.data //recordId-taskId
|
|
@@ -377,6 +489,14 @@
|
|
|
}
|
|
|
|
|
|
})
|
|
|
+ },
|
|
|
+ getcountdownTime(time){
|
|
|
+ if(!time) return 0
|
|
|
+ if(parseInt(new Date(time).getTime() / 1000, 10)-parseInt(new Date().getTime() / 1000, 10)>0){
|
|
|
+ return parseInt(new Date(time).getTime() / 1000, 10)
|
|
|
+ }else{
|
|
|
+ return false
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -560,6 +680,32 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .tabs-nav{
|
|
|
+ display: flex;
|
|
|
+ border-radius: 16rpx 16rpx 0 0;
|
|
|
+ overflow: hidden;
|
|
|
+ position: relative;
|
|
|
+ .tabs-nav-item{
|
|
|
+ width: 50%;
|
|
|
+ text-align: center;
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 16rpx 0;
|
|
|
+ transition: 0.3s;
|
|
|
+ &.active{
|
|
|
+ background-color: #808EFF;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &::after{
|
|
|
+ width: 1px;
|
|
|
+ height: 100%;
|
|
|
+ background-color: #7AB2FF;
|
|
|
+ content: "";
|
|
|
+ position: absolute;
|
|
|
+ left: 50%;
|
|
|
+ top:0;
|
|
|
+ }
|
|
|
+ }
|
|
|
.tab-cont{
|
|
|
.part{
|
|
|
.head{
|
|
@@ -621,13 +767,38 @@
|
|
|
color: rgba(234, 130, 89, 1);
|
|
|
background: rgba(251, 241, 237, 1);
|
|
|
}
|
|
|
+ &.risk{
|
|
|
+ color: #fff;
|
|
|
+ &.l1{
|
|
|
+ background-color: #FF3F3E;
|
|
|
+ }
|
|
|
+ &.l2{
|
|
|
+ background-color: #FF7800;
|
|
|
+ }
|
|
|
+ &.l3{
|
|
|
+ background-color: #FFCC00;
|
|
|
+ }
|
|
|
+ &.l4{
|
|
|
+ background-color: #3095FD;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
.time{
|
|
|
- padding-top: 20rpx;
|
|
|
+ padding-top: 20rpx;
|
|
|
font-size: 28rpx;
|
|
|
color:rgba(241, 57, 57, 0.8);
|
|
|
}
|
|
|
+ .countdowntime{
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding-top: 20rpx;
|
|
|
+ padding-left: 20rpx;
|
|
|
+ .name{
|
|
|
+ padding-right: 10rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
.bottom{
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
@@ -652,6 +823,100 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .statis-tabs{
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ .statis-tab-item{
|
|
|
+ width: 25%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ flex-direction: column;
|
|
|
+ padding: 20rpx 0;
|
|
|
+ .number{
|
|
|
+ font-size: 36rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ .name{
|
|
|
+ padding: 16rpx 0;
|
|
|
+ font-size: 28rpx;
|
|
|
+ }
|
|
|
+ .tag{
|
|
|
+ display: flex;
|
|
|
+ .line{
|
|
|
+ width: 60rpx;
|
|
|
+ height: 10rpx;
|
|
|
+ border-radius: 10px;
|
|
|
+ background-color: #0FC587;
|
|
|
+ }
|
|
|
+ .dot{
|
|
|
+ width: 10rpx;
|
|
|
+ height: 10rpx;
|
|
|
+ border-radius: 50%;
|
|
|
+ background-color: #0FC587;
|
|
|
+ margin-left: 3px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &.lv1{
|
|
|
+ .tag{
|
|
|
+ .line,.dot{background-color: #FF3F3E;}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &.lv2{
|
|
|
+ .tag{
|
|
|
+ .line,.dot{background-color: #FF7800;}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &.lv3{
|
|
|
+ .tag{
|
|
|
+ .line,.dot{background-color: #FFCC00;}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &.lv4{
|
|
|
+ .tag{
|
|
|
+ .line,.dot{background-color: #3095FD;}
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .part{
|
|
|
+ .part-cont{
|
|
|
+ .item{
|
|
|
+ &.flex{
|
|
|
+ display: flex;
|
|
|
+ padding-left: 20rpx;
|
|
|
+ .item-icon{
|
|
|
+ width: 100rpx;
|
|
|
+ height: 100rpx;
|
|
|
+ background-color: #ccc;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ position: relative;
|
|
|
+ .item-icon-pic{
|
|
|
+ display: block;
|
|
|
+ width: 100rpx;
|
|
|
+ height: 100rpx;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ border: 1rpx solid #eaeaea;
|
|
|
+ }
|
|
|
+ .index{
|
|
|
+ position: absolute;
|
|
|
+ left: -10rpx;
|
|
|
+ top: -10rpx;
|
|
|
+ background-color: #808EFF;
|
|
|
+ color: #fff;
|
|
|
+ z-index: 999;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .item-info{
|
|
|
+ flex: 1;
|
|
|
+ padding-left: 20rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|