Commit 7c7a6aee authored by kaitly205422@163.com's avatar kaitly205422@163.com

Merge branch 'develop' of http://git.censoft.com.cn/rongtong/rongtong-app into develop

parents 9e33fff9 bd13b279
...@@ -31,7 +31,7 @@ export default { ...@@ -31,7 +31,7 @@ export default {
imgUrl: require("@/assets/tabBar/new.png"), imgUrl: require("@/assets/tabBar/new.png"),
imgUrlActive: require("@/assets/tabBar/new-active.png"), imgUrlActive: require("@/assets/tabBar/new-active.png"),
path: "/message-center", path: "/message-center",
text: "任务列表" text: "消息中心"
}, },
{ {
key: "2", key: "2",
......
import request from '@/utils/axios'
import { getFun, postFun,postThree } from "@/service/table.js";
/*get请求*/
// export function getFun(url,params) {
// return request({
// url: url,
// method: 'get',
// params
// })
// }
/* post请求 */
//消息信息列表
export function postMessgaelist(data,params) {
return postThree('/messageInfo/list', data,params)
}
// //消息信息列表
// export function postWarnList(data,params) {
// return postThree('warn/pushBase/list', data,params)
// }
//未读消息变为已读
export function noticeRemove(data) {
return postFun('/messageInfo/changeRead', data)
}
//清除未读消息列表
export function removeAllMessgae(data) {
return postFun("/messageInfo/changeStatus", data)
}
//删除已读消息
export function removeMessgae(data) {
return postFun("/messageInfo/remove", data)
}
//待办事项列表
export function waitList(data,params) {
return postThree("/backlogInfo/list",data,params)
}
//未读消息数
export function badgeNumber(data) {
return getFun("/backlogInfo/unReadCount", data);
}
//删除已办事项
export function removeWaitList(data) {
return postFun("/backlogInfo/remove", data)
}
// //通知公告列表
// export function notificationList(data) {
// return postFun("/noticeInfo/list", data)
// }
// //清除通知公告未读
// export function removeAllNotification(data) {
// return getFun("/noticeInfo/changeStatus", data)
// }
// //清除通知未读改为已读
// export function readNotification(data) {
// return postFun("/noticeInfo/changeRead", data)
// }
// //删除已读通知列表
// export function removeNotification(data) {
// return postFun("/noticeInfo/remove", data)
// }
\ No newline at end of file
...@@ -52,3 +52,13 @@ export function fileDownFuns(url, data) { ...@@ -52,3 +52,13 @@ export function fileDownFuns(url, data) {
responseType: "blob" /*下载文件必填项*/ responseType: "blob" /*下载文件必填项*/
}); });
} }
/* put请求 */
export function postThree(url,data,params) {
return request({
url:url,
method: 'post',
params,
data,
})
}
\ No newline at end of file
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<div class="con"> <div class="con">
<van-tabs v-model="activeName" color="#247df7" title-inactive-colo="#d0d1d1" title-active-color="#000000" sticky <van-tabs v-model="activeName" color="#247df7" title-inactive-colo="#d0d1d1" title-active-color="#000000" sticky
offset-top="1.333333rem" @change="changeTab"> offset-top="1.333333rem" @change="changeTab">
<van-tab title="消息提醒" name="消息提醒"> <van-tab title="消息提醒(14)" name="消息提醒">
<info-tip></info-tip> <info-tip></info-tip>
</van-tab> </van-tab>
<!-- <van-tab title="预警提醒" name="预警提醒" > <!-- <van-tab title="预警提醒" name="预警提醒" >
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<!-- <van-tab title="SOS求救" name="SOS求救"> <!-- <van-tab title="SOS求救" name="SOS求救">
<Iso></Iso> <Iso></Iso>
</van-tab> --> </van-tab> -->
<van-tab title="待办事项" name="待办事项"> <van-tab title="待办事项(20)" name="待办事项">
<wait-event></wait-event> <wait-event></wait-event>
</van-tab> </van-tab>
</van-tabs> </van-tabs>
...@@ -105,7 +105,7 @@ export default { ...@@ -105,7 +105,7 @@ export default {
.con { .con {
// height: calc(100% - 110px); // height: calc(100% - 110px);
// height: 100%; // height: 100%;
padding: 0 0 50px 0; // padding: 0 0 50px 0;
background-color: #f0f1f5; background-color: #f0f1f5;
position: relative; position: relative;
......
...@@ -18,40 +18,59 @@ ...@@ -18,40 +18,59 @@
</div> </div>
<!-- 内容列表 --> <!-- 内容列表 -->
<div class="con-list" @touchmove="showIndex = null"> <div class="con-list" @touchmove="showIndex = null">
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="getList()"
>
<van-cell-group <van-cell-group
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="touchstart(index, item)" @click="touchstart(index, item)"
> >
<div class="approval-title">{{ item.noticeTitle }} <span class="title-icon">待处理</span></div> <van-badge :dot="item.status == 0 ? true : false">
<!-- <div class="row"><span class="row-title">作业类型</span><span>{{ item.id }}</span></div> --> <div style="padding: 10px; min-width: calc(100vw - 1.6rem)">
<div class="row"><span class="row-title">作业类型</span><span>{{ item.jobType }}</span></div> <div class="messgae-title">
<div class="row"><span class="row-title">作业单号</span><span>{{ item.pid }}</span></div> <span>{{ item.title }}</span>
<div class="row"><span class="row-title">发送人</span><span>{{ item.createName }}</span></div> <span>{{ item.createTime }}</span>
<div class="row"><span class="row-title">消息内容</span><span>{{ item.noticeContent }}</span></div> </div>
<div class="row"><span class="row-title">发送时间</span><span>{{ item.sendTime }}</span></div> <div class="mse_title">
<van-tag <!-- {{ item.title }} -->
class="status" </div>
:color="item.status == '已读' ? '#07c160' : '#ee0a24'" <div class="message-content">
plain {{ item.content }}
> </div>
{{ item.status}} </div>
</van-tag> </van-badge>
<van-overlay :show="showIndex == index"> <van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="closeOverlay"> <div class="wrapper" @click.stop="closeOverlay">
<van-button round type="info" @click="onClick(item)"> <van-button round color="#4ABD85" @click="touchstart(item)">
查看 详情
</van-button> </van-button>
</div> </div>
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
<van-image
v-if="messageList.length <= 0"
fit="contain"
:src="require('../../../assets/noMessage.png')"
/>
</van-list>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {
notificationList,
removeAllNotification,
readNotification,
removeNotification,
postMessgaelist
} from "@/service/message";
import { getFun,postFun } from '@/service/table' import { getFun,postFun } from '@/service/table'
import {debounce} from '@/utils/common.js' import {debounce} from '@/utils/common.js'
export default { export default {
...@@ -77,37 +96,76 @@ export default { ...@@ -77,37 +96,76 @@ export default {
category: "全部" category: "全部"
}, },
], ],
loading: false, // 列表滚动到底部会触发load事件
finished: false, // 列表数据全部加载完成
pageSize: 10,
pageNum: 1,
}; };
}, },
mounted() { mounted() {
this.getList(this.searchVal);
}, },
methods: { methods: {
// 搜索事件 // 搜索事件
// 搜索事件 // 搜索事件
onSearch:debounce(function(){ onSearch:debounce(function(){
if(this.searchVal){ this.messageList=[]
this.getList(this.searchVal) this.pageNum=1
}else{ this.finished = false
this.getList("") this.loading = true
} if (this.activeIndex == 0) {
let formData = new FormData();
formData.append("status", 0);
formData.append("keyword", this.searchVal);
this.getList(formData);
} else if (this.activeIndex == 1) {
let formData = new FormData();
formData.append("status", 1);
formData.append("keyword", this.searchVal);
this.getList(formData);
} else if (this.activeIndex == 2) {
let formData = new FormData();
formData.append("keyword", this.searchVal);
this.getList(formData);
}
},800), },800),
getList(val) { getList(Data) {
this.$toast.loading({ this.$toast.loading({
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
let formdata = new FormData() var obj={
formdata.append("search", val); pageSize:this.pageSize,
postFun("mobile/notice", formdata) pageNum:this.pageNum,
.then(res => { }
let formData
if (this.activeIndex == 0) {
formData = new FormData();
formData.append("status", 0);
} else if (this.activeIndex == 1) {
formData = new FormData();
formData.append("status", 1);
} else if (this.activeIndex == 2) {
formData = new FormData()
}
if(this.searchVal){
formData.append("keyword", this.searchVal);
}
postMessgaelist(Data?Data:formData,obj).then((res) => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows.filter(item => { // this.messageList = res.rows.filter(item => {
return item.status == "未读"; // return item.status == "未读";
}); // });
this.completeList = res.rows;
this.messageList.push(...res.rows)
this.loading = false;
if (this.messageList.length >= res.total) {
this.finished = true;
}
if(!(this.pageNum*this.pageSize-res.total>=0)){
this.pageNum++;
}
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -124,77 +182,19 @@ export default { ...@@ -124,77 +182,19 @@ export default {
closeOverlay() { closeOverlay() {
this.showIndex = null; this.showIndex = null;
}, },
onClick(data) {
let updateId = data.id
this.showIndex = null;
if (data.jobType == "" || data.pid == "" || data.noticeTitle == "") return;
// 进入对应的操作页面
switch (data.jobType + "-" + data.noticeTitle) {
// 作业审批的情况
case "动火作业-审批通过": case "动火作业-开始作业": case "动火作业-结束作业":
this.$router.push({
name: "detail-work",
params: {
id: data.pid
}
});
break;
case "有限空间作业-审批通过": case "有限空间作业-开始作业": case "有限空间作业-结束作业":
this.$router.push({
name: "limit-detail",
params: {
id: data.pid
}
});
break;
case "动火作业-问题上报": case "动火作业-问题处置": case "动火作业-督导提醒":
// 把 data.中的pid 改为 id 在跳转
data.id = data.proId
this.$router.push({
name: "prorec-detail",
params: {
data: data
}
});
break;
default:
break;
}
// 把未读的消息改为已读状态
if(data.status == "未读"){
let formdata = new FormData()
formdata.append("id", updateId)
postFun("mobile/updateStatus", formdata )
.then(res => {})
.catch(() => {
this.$toast.fail('状态更新失败');
});
}
},
// 点击类别 // 点击类别
clickCategory(index, data) { clickCategory(index, data) {
// 关闭遮罩层
this.showIndex = null; this.showIndex = null;
this.activeIndex = index; this.activeIndex = index;
this.activeVal = this.messageCategory[index].category; this.reset()
// 过滤数组 this.getList()
switch (this.activeVal) { },
case "未读": reset(){
this.messageList = this.completeList.filter(item => { this.messageList=[]
return item.status == "未读"; this.pageNum=1
}); this.finished = false
break; this.loading = true
case "已读": },
this.messageList = this.completeList.filter(item => {
return item.status == "已读";
});
console.log(this.messageList);
break;
default:
this.messageList = this.completeList;
break;
}
}
} }
}; };
</script> </script>
......
...@@ -7,26 +7,41 @@ ...@@ -7,26 +7,41 @@
</div> </div>
<!-- 内容列表 --> <!-- 内容列表 -->
<div class="con-list" @touchmove="showIndex = null"> <div class="con-list" @touchmove="showIndex = null">
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="getList()"
>
<van-cell-group <van-cell-group
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="touchstart(index, item)" @click="touchstart(index, item)"
> >
<div class="approval-title">{{ item.taskName }} <span class="title-icon">待处理</span></div> <van-badge :dot="item.status == 0 ? true : false">
<div><span>作业类型</span>{{ item.businessDes }}</div> <div style="padding: 10px; min-width: calc(100vw - 1.6rem)">
<div><span>作业单号</span>{{ item.businessId }}</div> <div class="messgae-title">
<div><span>申请人</span>{{ item.createBy }}</div> <span>{{ item.title }}</span>
<div><span>作业地点</span>{{ item.place }}</div> <span>{{ item.createTime }}</span>
<div><span>开始时间</span>{{ item.startTime }}</div> </div>
<van-overlay :show="showIndex == index"> <div class="message-content">
<div class="wrapper" @click.stop="closeOverlay"> {{ item.content }},{{ item.createBy }}
<van-button round type="info" @click="onClick(item)"> </div>
处理 <div class="bot_but" v-if=" item.theme != '检查'">
</van-button> <van-button color="#33CCFF" size="mini">{{
</div> item.status == 0 ? "立即处理" : "待办事项"
</van-overlay> }}</van-button>
</div>
</div>
</van-badge>
</van-cell-group> </van-cell-group>
<van-image
v-if="messageList.length <= 0"
fit="contain"
:src="require('../../../assets/noMessage.png')"
/>
</van-list>
</div> </div>
</div> </div>
</div> </div>
...@@ -34,44 +49,86 @@ ...@@ -34,44 +49,86 @@
<script> <script>
import { getFun,postFun } from '@/service/table' import { getFun,postFun } from '@/service/table'
import { waitList, removeWaitList } from "@/service/message";
import {debounce} from '@/utils/common.js' import {debounce} from '@/utils/common.js'
export default { export default {
data() { data() {
return { return {
searchVal: "", searchVal: "",
showIndex: null, // 是否显示遮罩层 showIndex: null, // 是否显示遮罩层
messageList: [] messageList: [],
loading: false, // 列表滚动到底部会触发load事件
finished: false, // 列表数据全部加载完成
pageSize: 10,
pageNum: 1,
}; };
}, },
mounted() { mounted() {
this.getList(this.searchVal);
}, },
methods: { methods: {
// 搜索事件 // 搜索事件
onSearch:debounce(function(){ onSearch:debounce(function(){
this.getList(this.searchVal) this.messageList=[]
this.pageNum=1
this.finished = false
this.loading = true
let formData = new FormData();
formData.append("keyword", this.searchVal);
this.getList(formData)
},500), },500),
getList(val) { getList(Data) {
this.$toast.loading({ this.$toast.loading({
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
let formdata = new FormData(); var obj={
formdata.append("processDefinitionKey", "dhzy_main,yxkj_main"); pageSize:this.pageSize,
formdata.append("search", val); pageNum:this.pageNum,
postFun("dhzyreport/list", formdata) }
let formData
formData = new FormData();
if(this.searchVal){
formData.append("keyword", this.searchVal);
}
waitList(Data?Data:formData,obj)
.then(res => { .then(res => {
this.messageList = res.data; this.messageList.push(...res.rows)
this.loading = false;
if (this.messageList.length >= res.total) {
this.finished = true;
}
if(!(this.pageNum*this.pageSize-res.total>=0)){
this.pageNum++;
}
// this.$parent.$parent.$parent.$parent.getBadgeNumber();
}) })
}, },
touchstart(index, item) { touchstart(index, item) {
console.log('%c [ item ]-104', 'font-size:13px; background:pink; color:#bf2c9f;', item)
if (this.showIndex != null) { if (this.showIndex != null) {
this.showIndex = null; this.showIndex = null;
return; return;
} }
if(item.appUrl){
this.$router.push({
name: item.appUrl,
// name: 'center',
params: {
id: item.pid,
mainId:item.mainId,
path:item.appUrl,
nodeId:item.nodeId,
theme:item.theme
}
// params: {
// id: item.pid,
// pageName:'noticeWait'
// },
})
}
this.showIndex = index; this.showIndex = index;
}, },
closeOverlay() { closeOverlay() {
...@@ -80,126 +137,126 @@ export default { ...@@ -80,126 +137,126 @@ export default {
onClick(data) { onClick(data) {
this.showIndex = null; this.showIndex = null;
if (data.businessDes == "" || data.taskName == "") return; if (data.businessDes == "" || data.taskName == "") return;
// 进入对应的操作页面 // // 进入对应的操作页面
switch (data.businessDes + "-" + data.taskName) { // switch (data.businessDes + "-" + data.taskName) {
// 作业审批的情况 // // 作业审批的情况
case "动火作业-作业负责人确认": case "有限空间作业-作业负责人确认": // case "动火作业-作业负责人确认": case "有限空间作业-作业负责人确认":
this.$router.push({ // this.$router.push({
name: "approval-handle", // name: "approval-handle",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "动火作业-项目负责人审批": case "有限空间作业-项目负责人审批": // case "动火作业-项目负责人审批": case "有限空间作业-项目负责人审批":
this.$router.push({ // this.$router.push({
name: "project-handle", // name: "project-handle",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "动火作业-会签部室会签": case "有限空间作业-会签部室会签": // case "动火作业-会签部室会签": case "有限空间作业-会签部室会签":
this.$router.push({ // this.$router.push({
name: "safe-dept-handle", // name: "safe-dept-handle",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "动火作业-安全管理部门审批": case "有限空间作业-安全管理部门审批": // case "动火作业-安全管理部门审批": case "有限空间作业-安全管理部门审批":
this.$router.push({ // this.$router.push({
name: "safe-officer-handle", // name: "safe-officer-handle",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "动火作业-主管领导审批": case "有限空间作业-主管领导审批": // case "动火作业-主管领导审批": case "有限空间作业-主管领导审批":
this.$router.push({ // this.$router.push({
name: "executive-director", // name: "executive-director",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
// 现场作业的情况 // // 现场作业的情况
case "动火作业-重点人员签到": // case "动火作业-重点人员签到":
this.$router.push({ // this.$router.push({
name: "hot-work-confirm", // name: "hot-work-confirm",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "动火作业-现场人员签字": // case "动火作业-现场人员签字":
this.$router.push({ // this.$router.push({
name: "site-confirm", // name: "site-confirm",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "动火作业-结束作业": // case "动火作业-结束作业":
this.$router.push({ // this.$router.push({
name: "work-patrol", // name: "work-patrol",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "动火作业-安全部门结束确认": // case "动火作业-安全部门结束确认":
this.$router.push({ // this.$router.push({
name: "check-accept", // name: "check-accept",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "有限空间作业-重点人员签到": // case "有限空间作业-重点人员签到":
this.$router.push({ // this.$router.push({
name: "job-affirm", // name: "job-affirm",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "有限空间作业-交底上传": // case "有限空间作业-交底上传":
this.$router.push({ // this.$router.push({
name: "job-sign", // name: "job-sign",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "有限空间作业-安全措施确认": // case "有限空间作业-安全措施确认":
this.$router.push({ // this.$router.push({
name: "safe-disclosure", // name: "safe-disclosure",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "有限空间作业-作业前确认": // case "有限空间作业-作业前确认":
this.$router.push({ // this.$router.push({
name: "begin-work", // name: "begin-work",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
case "有限空间作业-结束作业": // case "有限空间作业-结束作业":
this.$router.push({ // this.$router.push({
name: "end-work", // name: "end-work",
params: { // params: {
data: data // data: data
} // }
}); // });
break; // break;
default: // default:
break; // break;
} // }
}, },
} }
}; };
...@@ -207,13 +264,31 @@ export default { ...@@ -207,13 +264,31 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.message-wrap { .message-wrap {
min-height: 58vh;
padding: 10px 10px 0; padding: 10px 10px 0;
background-color: #f0f1f5; background-color: #f0f1f5;
// 标签 // 标签
.category-wrap {
.my-tag-style {
width: 75px;
height: 21px;
font-size: 13px;
border: 1px solid #1989fa;
border-radius: 4px;
color: #1989fa;
display: inline-block;
text-align: center;
line-height: 21px;
margin-right: 10px;
}
.active {
color: white;
background-color: #1989fa;
}
}
// 搜索 // 搜索
.search-wrap { .search-wrap {
margin: 0 0 0.26667rem 0; margin: 10px 0;
.van-search { .van-search {
border-radius: 5px; border-radius: 5px;
padding: 5px 12px; padding: 5px 12px;
...@@ -226,52 +301,21 @@ export default { ...@@ -226,52 +301,21 @@ export default {
.con-list { .con-list {
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
margin-bottom: 0.266667rem; margin-bottom: 10px;
padding: 0.266667rem; font-size: 13px;
position: relative; padding: 10px;
.approval-title{ .message-content {
font-weight: bold; margin-top: 10px;
color: #000;
.title-icon{
text-align: center !important;
font-weight: normal;
background-color: #2980f7;
color: white;
font-size: .32rem;
padding: .026667rem .08rem;
height: -webkit-fill-available;
display: inline;
margin-left: .266667rem;
position: relative;
top: -0.026667rem;
}
} }
div { .messgae-title {
line-height: 0.7rem; display: flex;
font-size: 0.4rem; justify-content: space-between;
span { align-items: center;
width: 1.733333rem;
display: inline-block;
text-align-last: justify;
}
}
.operation {
text-align: right;
margin-right: 5px;
color: #2980f7;
font-weight: normal;
} }
.van-overlay { .bot_but {
position: absolute; display: flex;
.wrapper { justify-content: right;
display: flex; align-items: center;
align-items: center;
justify-content: space-evenly;
height: 100%;
.van-button__text {
width: initial;
}
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment