风继续吹 1 рік тому
джерело
коміт
f1027d1f40
4 змінених файлів з 371 додано та 374 видалено
  1. +2
    -2
      manifest.json
  2. +1
    -1
      pages.json
  3. +1
    -1
      pages/center/Piabodata/Groupcontrast.vue
  4. +367
    -370
      pages/mine/messageList.vue

+ 2
- 2
manifest.json Переглянути файл

@@ -1,5 +1,5 @@
{
"name" : "数智工牌",
"name" : "AI销讲助手",
"appid" : "__UNI__7A1611D",
"description" : "AI销讲助手",
"versionName" : "1.1.0",
@@ -72,7 +72,7 @@
},
"quickapp" : {},
"mp-weixin" : {
"appid" : "wxe044603515ff2cb5",
"appid" : "wx83fec12ec03d9349",
"setting" : {
"urlCheck" : false,
"es6" : true,


+ 1
- 1
pages.json Переглянути файл

@@ -323,7 +323,7 @@
}, {
"path": "messageDetail",
"style": {
"navigationBarTitleText": "升级公告",
"navigationBarTitleText": "系统公告",
"navigationBarBackgroundColor": "#2671E2",
"navigationBarTextStyle": "white"
}


+ 1
- 1
pages/center/Piabodata/Groupcontrast.vue Переглянути файл

@@ -755,7 +755,7 @@

.percent {
height: 100%;
background: #F1F3FF;
background: #2671E2;
border-radius: 15px;
}
}


+ 367
- 370
pages/mine/messageList.vue Переглянути файл

@@ -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: [],
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>

Завантаження…
Відмінити
Зберегти