|
@@ -1,371 +1,368 @@ |
|
|
<template>
|
|
|
|
|
|
<view class="message_list">
|
|
|
|
|
|
<!-- 公告 -->
|
|
|
|
|
|
<view class="m-nav">
|
|
|
|
|
|
<view class="m-n-lside">
|
|
|
|
|
|
<image src="@/static/images/notice.png" mode=""></image>
|
|
|
|
|
|
全部{{ count }}条新消息
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="m-n-rside" @click="allRead">
|
|
|
|
|
|
全部已读
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<!-- 选项卡 -->
|
|
|
|
|
|
<view class="m-tabs">
|
|
|
|
|
|
<u-tabs :list="list" :current="current" :is-scroll="false" @change="change"></u-tabs>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<template v-if="current == 0">
|
|
|
|
|
|
<scroll-view :scroll-top="scrollTop" refresher-enabled="true" :refresher-triggered="triggered"
|
|
|
|
|
|
@refresherpulling="onPulling" @refresherrefresh="onRefresh" @refresherrestore="onRestore"
|
|
|
|
|
|
:scroll-y="true" class="scroll-Y" @scrolltolower="lower">
|
|
|
|
|
|
<template v-if="updateAnnList.length!=0">
|
|
|
|
|
|
<block v-for="(item,index) in updateAnnList" :key="index">
|
|
|
|
|
|
<view class="upgradeItem" @click="goReception(item, index)">
|
|
|
|
|
|
<view class="right">
|
|
|
|
|
|
<view class="title">
|
|
|
|
|
|
<template v-if="item.messageType == 2">
|
|
|
|
|
|
{{ item.weekDate }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template v-else>
|
|
|
|
|
|
{{ fomatDate(item.createTime) }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template v-if="item.orgCode&&item.orgName">
|
|
|
|
|
|
{{ item.orgName }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
{{item.title}}
|
|
|
|
|
|
|
|
|
|
|
|
<template v-if="item.readFlag==0">
|
|
|
|
|
|
<view class="notRead"></view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="time">{{item.createTime}}</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</block>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template v-else>
|
|
|
|
|
|
<view style="padding: 100rpx 0;">
|
|
|
|
|
|
<u-empty text="暂无数据" mode="list"></u-empty>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<!-- 升级公告 -->
|
|
|
|
|
|
<template v-if="current == 1">
|
|
|
|
|
|
<scroll-view :scroll-top="scrollTop" refresher-enabled="true" :refresher-triggered="triggered"
|
|
|
|
|
|
@refresherpulling="onPulling" @refresherrefresh="onRefresh" @refresherrestore="onRestore"
|
|
|
|
|
|
:scroll-y="true" class="scroll-Y" @scrolltolower="lower">
|
|
|
|
|
|
<template v-if="updateAnnList.length!=0">
|
|
|
|
|
|
<block v-for="(item,index) in updateAnnList" :key="index">
|
|
|
|
|
|
<view class="upgradeItem" @click="goDetail(item)">
|
|
|
|
|
|
<view class="right">
|
|
|
|
|
|
<view class="title">
|
|
|
|
|
|
{{item.title}}
|
|
|
|
|
|
<template v-if="item.readFlag==0">
|
|
|
|
|
|
<view class="notRead"></view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view class="time">{{item.createTime}}</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</block>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<template v-else>
|
|
|
|
|
|
<view style="padding: 100rpx 0;">
|
|
|
|
|
|
<u-empty text="暂无数据" mode="list"></u-empty>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</scroll-view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
var util = require("../../utils/util.js");
|
|
|
|
|
|
var config = require("../../config");
|
|
|
|
|
|
export default {
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
|
|
|
|
|
triggered: true,
|
|
|
|
|
|
scrollTop: 0,
|
|
|
|
|
|
old: {
|
|
|
|
|
|
scrollTop: 0
|
|
|
|
|
|
},
|
|
|
|
|
|
updateAnnList: [],
|
|
|
|
|
|
|
|
|
<template> |
|
|
|
|
|
<view class="message_list"> |
|
|
|
|
|
<!-- 公告 --> |
|
|
|
|
|
<view class="m-nav"> |
|
|
|
|
|
<view class="m-n-lside"> |
|
|
|
|
|
<image src="@/static/images/notice.png" mode=""></image> |
|
|
|
|
|
全部{{ count }}条新消息 |
|
|
|
|
|
</view> |
|
|
|
|
|
<view class="m-n-rside" @click="allRead"> |
|
|
|
|
|
全部已读 |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
<!-- 选项卡 --> |
|
|
|
|
|
<view class="m-tabs"> |
|
|
|
|
|
<u-tabs :list="list" :current="current" :is-scroll="false" @change="change"></u-tabs> |
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
|
|
<template v-if="current == 0"> |
|
|
|
|
|
<scroll-view :scroll-top="scrollTop" refresher-enabled="true" :refresher-triggered="triggered" |
|
|
|
|
|
@refresherpulling="onPulling" @refresherrefresh="onRefresh" @refresherrestore="onRestore" |
|
|
|
|
|
:scroll-y="true" class="scroll-Y" @scrolltolower="lower"> |
|
|
|
|
|
<template v-if="updateAnnList.length!=0"> |
|
|
|
|
|
<block v-for="(item,index) in updateAnnList" :key="index"> |
|
|
|
|
|
<view class="upgradeItem" @click="goReception(item, index)"> |
|
|
|
|
|
<view class="right"> |
|
|
|
|
|
<view class="title"> |
|
|
|
|
|
<template v-if="item.messageType == 2"> |
|
|
|
|
|
{{ item.weekDate }} |
|
|
|
|
|
</template> |
|
|
|
|
|
<template v-else> |
|
|
|
|
|
{{ fomatDate(item.createTime) }} |
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<template v-if="item.orgCode&&item.orgName"> |
|
|
|
|
|
{{ item.orgName }} |
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
{{item.title}} |
|
|
|
|
|
|
|
|
|
|
|
<template v-if="item.readFlag==0"> |
|
|
|
|
|
<view class="notRead"></view> |
|
|
|
|
|
</template> |
|
|
|
|
|
</view> |
|
|
|
|
|
<view class="time">{{item.createTime}}</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</block> |
|
|
|
|
|
</template> |
|
|
|
|
|
<template v-else> |
|
|
|
|
|
<view style="padding: 100rpx 0;"> |
|
|
|
|
|
<u-empty text="暂无数据" mode="list"></u-empty> |
|
|
|
|
|
</view> |
|
|
|
|
|
</template> |
|
|
|
|
|
</scroll-view> |
|
|
|
|
|
</template> |
|
|
|
|
|
<!-- 升级公告 --> |
|
|
|
|
|
<template v-if="current == 1 || current == 2"> |
|
|
|
|
|
<scroll-view :scroll-top="scrollTop" refresher-enabled="true" :refresher-triggered="triggered" |
|
|
|
|
|
@refresherpulling="onPulling" @refresherrefresh="onRefresh" @refresherrestore="onRestore" |
|
|
|
|
|
:scroll-y="true" class="scroll-Y" @scrolltolower="lower"> |
|
|
|
|
|
<template v-if="updateAnnList.length!=0"> |
|
|
|
|
|
<block v-for="(item,index) in updateAnnList" :key="index"> |
|
|
|
|
|
<view class="upgradeItem" @click="goDetail(item)"> |
|
|
|
|
|
<view class="right"> |
|
|
|
|
|
<view class="title"> |
|
|
|
|
|
{{item.title}} |
|
|
|
|
|
<template v-if="item.readFlag==0"> |
|
|
|
|
|
<view class="notRead"></view> |
|
|
|
|
|
</template> |
|
|
|
|
|
</view> |
|
|
|
|
|
<view class="time">{{item.createTime}}</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</view> |
|
|
|
|
|
</block> |
|
|
|
|
|
</template> |
|
|
|
|
|
<template v-else> |
|
|
|
|
|
<view style="padding: 100rpx 0;"> |
|
|
|
|
|
<u-empty text="暂无数据" mode="list"></u-empty> |
|
|
|
|
|
</view> |
|
|
|
|
|
</template> |
|
|
|
|
|
</scroll-view> |
|
|
|
|
|
</template> |
|
|
|
|
|
</view> |
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
|
|
var util = require("../../utils/util.js"); |
|
|
|
|
|
var config = require("../../config"); |
|
|
|
|
|
export default { |
|
|
|
|
|
data() { |
|
|
|
|
|
return { |
|
|
|
|
|
triggered: true, |
|
|
|
|
|
scrollTop: 0, |
|
|
|
|
|
old: { |
|
|
|
|
|
scrollTop: 0 |
|
|
|
|
|
}, |
|
|
|
|
|
updateAnnList: [], |
|
|
sysItemList: [],
|
|
|
sysItemList: [],
|
|
|
list: [{
|
|
|
|
|
|
name: '接待报告',
|
|
|
|
|
|
id: 1, // 1日报 2周报 3其他(非3为接待报告,3是系统消息)
|
|
|
|
|
|
}, {
|
|
|
|
|
|
name: '升级公告',
|
|
|
|
|
|
id: 3, // 1日报 2周报 3其他(非3为接待报告,3是系统消息)
|
|
|
|
|
|
}],
|
|
|
|
|
|
count: 0, // 全部条数
|
|
|
|
|
|
current: 0,
|
|
|
|
|
|
pageNum: 1,
|
|
|
|
|
|
pageSize: 10,
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
onShow() {
|
|
|
|
|
|
this.updateAnnList = []
|
|
|
|
|
|
this.pageNum = 1
|
|
|
|
|
|
this.updateInit()
|
|
|
|
|
|
this.getMessageNotRed()
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
onLoad() {
|
|
|
|
|
|
this._freshing = false;
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
this.triggered = true;
|
|
|
|
|
|
}, 1000)
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
onPullDownRefresh() {
|
|
|
|
|
|
this.initPage()
|
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
|
uni.stopPullDownRefresh();
|
|
|
|
|
|
}, 1000);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
onPulling(e) {
|
|
|
|
|
|
console.log("onpulling", e);
|
|
|
|
|
|
},
|
|
|
|
|
|
onRefresh() {
|
|
|
|
|
|
if (this._freshing) return;
|
|
|
|
|
|
this.updateAnnList = []
|
|
|
|
|
|
this.pageNum = 1
|
|
|
|
|
|
this.updateInit()
|
|
|
|
|
|
this._freshing = true;
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
this.triggered = false;
|
|
|
|
|
|
this._freshing = false;
|
|
|
|
|
|
}, 3000)
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
onRestore() {
|
|
|
|
|
|
this.triggered = 'restore'; // 需要重置
|
|
|
|
|
|
console.log("onRestore");
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
lower(e) {
|
|
|
|
|
|
this.pageNum++
|
|
|
|
|
|
this.updateInit()
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
initPage() {
|
|
|
|
|
|
this.updateAnnList = []
|
|
|
|
|
|
this.pageNum = 1
|
|
|
|
|
|
this.updateInit()
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 全部标记已读
|
|
|
|
|
|
allRead() {
|
|
|
|
|
|
this.$u.get('/zkMessage/updateState', {
|
|
|
|
|
|
accountId: uni.getStorageSync('weapp_session_userInfo_data').accountId,
|
|
|
|
|
|
projectId: uni.getStorageSync('buildingID').id,
|
|
|
|
|
|
}).then(res => {
|
|
|
|
|
|
uni.showToast({
|
|
|
|
|
|
title: '全部已读成功!',
|
|
|
|
|
|
duration: 2000
|
|
|
|
|
|
});
|
|
|
|
|
|
this.initPage()
|
|
|
|
|
|
}).catch(e => {
|
|
|
|
|
|
console.log(e)
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
updateInit() {
|
|
|
|
|
|
let obj = {
|
|
|
|
|
|
messageType: this.list[this.current].id,
|
|
|
|
|
|
id: uni.getStorageSync('weapp_session_userInfo_data').accountId,
|
|
|
|
|
|
num: this.pageNum,
|
|
|
|
|
|
size: this.pageSize
|
|
|
|
|
|
}
|
|
|
|
|
|
if (this.current == 0) {
|
|
|
|
|
|
obj.projectId = uni.getStorageSync('buildingID').id
|
|
|
|
|
|
} else {
|
|
|
|
|
|
obj.projectId = ''
|
|
|
|
|
|
}
|
|
|
|
|
|
uni.request({
|
|
|
|
|
|
url: config.service.updateList,
|
|
|
|
|
|
method: "GET",
|
|
|
|
|
|
data: obj,
|
|
|
|
|
|
header: {
|
|
|
|
|
|
'content-type': 'application/json',
|
|
|
|
|
|
'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token
|
|
|
|
|
|
},
|
|
|
|
|
|
success: (res) => {
|
|
|
|
|
|
if (res.data.data) {
|
|
|
|
|
|
if (this.pageNum != 1) {
|
|
|
|
|
|
this.updateAnnList = [...this.updateAnnList, ...res.data.data.list.records];
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.updateAnnList = res.data.data.list.records || []
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: e => {
|
|
|
|
|
|
console.log(e)
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
goDetail(data) {
|
|
|
|
|
|
this.$store.commit('setMessageObj', data)
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "./messageDetail"
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 获取未读消息数量
|
|
|
|
|
|
getMessageNotRed() {
|
|
|
|
|
|
uni.request({
|
|
|
|
|
|
url: config.service.notReadNum,
|
|
|
|
|
|
method: "GET",
|
|
|
|
|
|
data: {
|
|
|
|
|
|
id: uni.getStorageSync('weapp_session_userInfo_data').accountId,
|
|
|
|
|
|
projectId: uni.getStorageSync('buildingID').id,
|
|
|
|
|
|
},
|
|
|
|
|
|
header: {
|
|
|
|
|
|
'content-type': 'application/json',
|
|
|
|
|
|
'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token
|
|
|
|
|
|
},
|
|
|
|
|
|
success: (res) => {
|
|
|
|
|
|
this.count = res.data.data || 0
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 跳转日报
|
|
|
|
|
|
goReception(data, index) {
|
|
|
|
|
|
this.$store.commit('setMessageObj', data)
|
|
|
|
|
|
data.readFlag = 1
|
|
|
|
|
|
if (data.messageType == 2) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: `/pages/reportExcel/weekReport?id=${data.id}`
|
|
|
|
|
|
})
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: `/pages/reportExcel/dayReport?id=${data.id}`
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
fomatDate(date) {
|
|
|
|
|
|
if (!date) return '--'
|
|
|
|
|
|
let arr = date.split(' ')
|
|
|
|
|
|
let str = arr[0]
|
|
|
|
|
|
let result = str.split('-')
|
|
|
|
|
|
return `${result[1]}月${result[2]}日`
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 转换时间
|
|
|
|
|
|
getTimeLine(date, type = 1) {
|
|
|
|
|
|
let resu = '--'
|
|
|
|
|
|
if (!date) return resu
|
|
|
|
|
|
let time = new Date(date.replace(/-/g, '/'))
|
|
|
|
|
|
time.setDate(time.getDate() - 7)
|
|
|
|
|
|
let arr = date.split(' ')
|
|
|
|
|
|
let str = arr[0]
|
|
|
|
|
|
let result = str.split('-')
|
|
|
|
|
|
|
|
|
|
|
|
let m = (time.getMonth() + 1) < 10 ? `0${time.getMonth() + 1}` : (time.getMonth() + 1)
|
|
|
|
|
|
let d = time.getDate() < 10 ? `0${time.getDate()}` : time.getDate()
|
|
|
|
|
|
|
|
|
|
|
|
if (type == 1) {
|
|
|
|
|
|
resu = `${m}.${d}-${result[1]}.${result[2]}`
|
|
|
|
|
|
} else {
|
|
|
|
|
|
resu = `${m}月${d}日~${result[1]}月${result[2]}日`
|
|
|
|
|
|
}
|
|
|
|
|
|
return resu
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
change(index) {
|
|
|
|
|
|
this.current = index;
|
|
|
|
|
|
this.initPage()
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
|
|
.message_list {
|
|
|
|
|
|
width: 100vw;
|
|
|
|
|
|
height: calc(100vh - var(--window-top));
|
|
|
|
|
|
background: #F8F8F8;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
|
|
|
|
.m-nav {
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
padding: 0 30rpx;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
height: 68rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
.m-n-lside {
|
|
|
|
|
|
flex-grow: 1;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
image {
|
|
|
|
|
|
margin-right: 16rpx;
|
|
|
|
|
|
width: 36rpx;
|
|
|
|
|
|
height: 36rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.m-n-rside {
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
padding: 6rpx 14rpx;
|
|
|
|
|
|
border: 1rpx solid #E0E0E0;
|
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.m-tabs {
|
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.scroll-Y {
|
|
|
|
|
|
padding: 20rpx 0 0 0;
|
|
|
|
|
|
flex-grow: 1;
|
|
|
|
|
|
overflow-y: scroll;
|
|
|
|
|
|
|
|
|
|
|
|
.upgradeItem {
|
|
|
|
|
|
margin: 0 0 20rpx 0;
|
|
|
|
|
|
padding: 24rpx 30rpx 28rpx;
|
|
|
|
|
|
height: 156rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
background: #fff;
|
|
|
|
|
|
|
|
|
|
|
|
.right {
|
|
|
|
|
|
.title {
|
|
|
|
|
|
font-size: 32rpx;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
.notRead {
|
|
|
|
|
|
width: 14rpx;
|
|
|
|
|
|
height: 14rpx;
|
|
|
|
|
|
background: #FF0000;
|
|
|
|
|
|
border-radius: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.time {
|
|
|
|
|
|
margin: 18rpx 0 0 0;
|
|
|
|
|
|
color: #6f6f6f;
|
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
|
projectId: uni.getStorageSync('buildingID').id, |
|
|
|
|
|
list: [{ |
|
|
|
|
|
name: '接待报告', |
|
|
|
|
|
id: 1, // 1日报 2周报 3其他(非3为接待报告,3是系统消息) |
|
|
|
|
|
}, { |
|
|
|
|
|
name: '系统公告', |
|
|
|
|
|
id: 3, // 1日报 2周报 3其他(非3为接待报告,3是系统消息) |
|
|
|
|
|
}], |
|
|
|
|
|
count: 0, // 全部条数 |
|
|
|
|
|
current: 0, |
|
|
|
|
|
pageNum: 1, |
|
|
|
|
|
pageSize: 10, |
|
|
|
|
|
}; |
|
|
|
|
|
}, |
|
|
|
|
|
onShow() { |
|
|
|
|
|
this.updateAnnList = [] |
|
|
|
|
|
this.pageNum = 1 |
|
|
|
|
|
this.updateInit() |
|
|
|
|
|
this.getMessageNotRed() |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
onLoad() { |
|
|
|
|
|
this._freshing = false; |
|
|
|
|
|
setTimeout(() => { |
|
|
|
|
|
this.triggered = true; |
|
|
|
|
|
}, 1000) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
onPullDownRefresh() { |
|
|
|
|
|
this.initPage() |
|
|
|
|
|
setTimeout(function() { |
|
|
|
|
|
uni.stopPullDownRefresh(); |
|
|
|
|
|
}, 1000); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
methods: { |
|
|
|
|
|
onPulling(e) { |
|
|
|
|
|
console.log("onpulling", e); |
|
|
|
|
|
}, |
|
|
|
|
|
onRefresh() { |
|
|
|
|
|
if (this._freshing) return; |
|
|
|
|
|
this.updateAnnList = [] |
|
|
|
|
|
this.pageNum = 1 |
|
|
|
|
|
this.updateInit() |
|
|
|
|
|
this._freshing = true; |
|
|
|
|
|
setTimeout(() => { |
|
|
|
|
|
this.triggered = false; |
|
|
|
|
|
this._freshing = false; |
|
|
|
|
|
}, 3000) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
onRestore() { |
|
|
|
|
|
this.triggered = 'restore'; // 需要重置 |
|
|
|
|
|
console.log("onRestore"); |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
lower(e) { |
|
|
|
|
|
this.pageNum++ |
|
|
|
|
|
this.updateInit() |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
initPage() { |
|
|
|
|
|
this.updateAnnList = [] |
|
|
|
|
|
this.pageNum = 1 |
|
|
|
|
|
this.updateInit() |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 全部标记已读 |
|
|
|
|
|
allRead() { |
|
|
|
|
|
this.$u.get('/zkMessage/updateState', { |
|
|
|
|
|
accountId: uni.getStorageSync('weapp_session_userInfo_data').accountId, |
|
|
|
|
|
projectId: this.projectId, |
|
|
|
|
|
}).then(res => { |
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
title: '全部已读成功!', |
|
|
|
|
|
duration: 2000 |
|
|
|
|
|
}); |
|
|
|
|
|
this.initPage() |
|
|
|
|
|
}).catch(e => { |
|
|
|
|
|
console.log(e) |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
updateInit() { |
|
|
|
|
|
let obj = { |
|
|
|
|
|
messageType: this.list[this.current].id, |
|
|
|
|
|
id: uni.getStorageSync('weapp_session_userInfo_data').accountId, |
|
|
|
|
|
num: this.pageNum, |
|
|
|
|
|
size: this.pageSize,
|
|
|
|
|
|
projectId: this.projectId, |
|
|
|
|
|
} |
|
|
|
|
|
uni.request({ |
|
|
|
|
|
url: config.service.updateList, |
|
|
|
|
|
method: "GET", |
|
|
|
|
|
data: obj, |
|
|
|
|
|
header: { |
|
|
|
|
|
'content-type': 'application/json', |
|
|
|
|
|
'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token |
|
|
|
|
|
}, |
|
|
|
|
|
success: (res) => { |
|
|
|
|
|
if (res.data.data) { |
|
|
|
|
|
if (this.pageNum != 1) { |
|
|
|
|
|
this.updateAnnList = [...this.updateAnnList, ...res.data.data.list.records]; |
|
|
|
|
|
} else { |
|
|
|
|
|
this.updateAnnList = res.data.data.list.records || [] |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
fail: e => { |
|
|
|
|
|
console.log(e) |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
goDetail(data) { |
|
|
|
|
|
this.$store.commit('setMessageObj', data) |
|
|
|
|
|
uni.navigateTo({ |
|
|
|
|
|
url: "./messageDetail" |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 获取未读消息数量 |
|
|
|
|
|
getMessageNotRed() { |
|
|
|
|
|
uni.request({ |
|
|
|
|
|
url: config.service.notReadNum, |
|
|
|
|
|
method: "GET", |
|
|
|
|
|
data: { |
|
|
|
|
|
id: uni.getStorageSync('weapp_session_userInfo_data').accountId, |
|
|
|
|
|
projectId: this.projectId, |
|
|
|
|
|
}, |
|
|
|
|
|
header: { |
|
|
|
|
|
'content-type': 'application/json', |
|
|
|
|
|
'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token |
|
|
|
|
|
}, |
|
|
|
|
|
success: (res) => { |
|
|
|
|
|
this.count = res.data.data || 0 |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 跳转日报 |
|
|
|
|
|
goReception(data, index) { |
|
|
|
|
|
this.$store.commit('setMessageObj', data) |
|
|
|
|
|
data.readFlag = 1 |
|
|
|
|
|
if (data.messageType == 2) { |
|
|
|
|
|
uni.navigateTo({ |
|
|
|
|
|
url: `/pages/reportExcel/weekReport?id=${data.id}` |
|
|
|
|
|
}) |
|
|
|
|
|
} else { |
|
|
|
|
|
uni.navigateTo({ |
|
|
|
|
|
url: `/pages/reportExcel/dayReport?id=${data.id}` |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
fomatDate(date) { |
|
|
|
|
|
if (!date) return '--' |
|
|
|
|
|
let arr = date.split(' ') |
|
|
|
|
|
let str = arr[0] |
|
|
|
|
|
let result = str.split('-') |
|
|
|
|
|
return `${result[1]}月${result[2]}日` |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 转换时间 |
|
|
|
|
|
getTimeLine(date, type = 1) { |
|
|
|
|
|
let resu = '--' |
|
|
|
|
|
if (!date) return resu |
|
|
|
|
|
let time = new Date(date.replace(/-/g, '/')) |
|
|
|
|
|
time.setDate(time.getDate() - 7) |
|
|
|
|
|
let arr = date.split(' ') |
|
|
|
|
|
let str = arr[0] |
|
|
|
|
|
let result = str.split('-') |
|
|
|
|
|
|
|
|
|
|
|
let m = (time.getMonth() + 1) < 10 ? `0${time.getMonth() + 1}` : (time.getMonth() + 1) |
|
|
|
|
|
let d = time.getDate() < 10 ? `0${time.getDate()}` : time.getDate() |
|
|
|
|
|
|
|
|
|
|
|
if (type == 1) { |
|
|
|
|
|
resu = `${m}.${d}-${result[1]}.${result[2]}` |
|
|
|
|
|
} else { |
|
|
|
|
|
resu = `${m}月${d}日~${result[1]}月${result[2]}日` |
|
|
|
|
|
} |
|
|
|
|
|
return resu |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
change(index) { |
|
|
|
|
|
this.current = index; |
|
|
|
|
|
this.initPage() |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss"> |
|
|
|
|
|
.message_list { |
|
|
|
|
|
width: 100vw; |
|
|
|
|
|
height: calc(100vh - var(--window-top)); |
|
|
|
|
|
background: #F8F8F8; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
flex-direction: column; |
|
|
|
|
|
|
|
|
|
|
|
.m-nav { |
|
|
|
|
|
flex-shrink: 0; |
|
|
|
|
|
padding: 0 30rpx; |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
height: 68rpx; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
|
|
|
|
.m-n-lside { |
|
|
|
|
|
flex-grow: 1; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
|
|
|
|
image { |
|
|
|
|
|
margin-right: 16rpx; |
|
|
|
|
|
width: 36rpx; |
|
|
|
|
|
height: 36rpx; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.m-n-rside { |
|
|
|
|
|
flex-shrink: 0; |
|
|
|
|
|
padding: 6rpx 14rpx; |
|
|
|
|
|
border: 1rpx solid #E0E0E0; |
|
|
|
|
|
font-size: 24rpx; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.m-tabs { |
|
|
|
|
|
flex-shrink: 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.scroll-Y { |
|
|
|
|
|
padding: 20rpx 0 0 0; |
|
|
|
|
|
flex-grow: 1; |
|
|
|
|
|
overflow-y: scroll; |
|
|
|
|
|
|
|
|
|
|
|
.upgradeItem { |
|
|
|
|
|
margin: 0 0 20rpx 0; |
|
|
|
|
|
padding: 24rpx 30rpx 28rpx; |
|
|
|
|
|
height: 156rpx; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
background: #fff; |
|
|
|
|
|
|
|
|
|
|
|
.right { |
|
|
|
|
|
.title { |
|
|
|
|
|
font-size: 32rpx; |
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
|
|
|
|
.notRead { |
|
|
|
|
|
width: 14rpx; |
|
|
|
|
|
height: 14rpx; |
|
|
|
|
|
background: #FF0000; |
|
|
|
|
|
border-radius: 100%; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.time { |
|
|
|
|
|
margin: 18rpx 0 0 0; |
|
|
|
|
|
color: #6f6f6f; |
|
|
|
|
|
font-size: 24rpx; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
</style> |