Commit 269c15a5 authored by 罗新东's avatar 罗新东

修改了路由跳转为空,添加了隐患标签页面,添加了下修改密码查看权限功能。

parents 5cf5a65e 13fc6d26
This diff is collapsed.
This diff is collapsed.
......@@ -9,17 +9,94 @@ import request from '@/utils/axios'
// })
// }
/* post请求 */
export function postMessgaelist(url,data) {
return request({
url: url,
method: 'post',
data
})
//消息信息列表
export function postMessgaelist(data) {
return request({
url: '/messageInfo/list',
method: 'post',
data
})
}
//未读消息变为已读
export function noticeRemove(data) {
return request({
url: '/messageInfo/changeRead',
method: 'post',
data
})
}
//清除未读消息列表
export function removeAllMessgae(data) {
return request({
url: "/messageInfo/changeStatus",
method: 'get',
data
})
}
//删除已读消息
export function removeMessgae(data) {
return request({
url: "/messageInfo/remove",
method: 'post',
data
})
}
export function noticeRemove(url,data) {
//待办事项列表
export function waitList(data) {
return request({
url: "/backlogInfo/list",
method: 'post',
data
})
}
//未读消息数
export function badgeNumber(data) {
return request({
url: "/backlogInfo/unReadCount",
method: 'get',
data
})
}
//删除已办事项
export function removeWaitList(data) {
return request({
url: "/backlogInfo/remove",
method: 'post',
data
})
}
//通知公告列表
export function notificationList(data) {
return request({
url: "/noticeInfo/list",
method: 'post',
data
})
}
//清除通知公告未读
export function removeAllNotification(data) {
return request({
url: "/noticeInfo/changeStatus",
method: 'get',
data
})
}
//清除通知未读改为已读
export function readNotification(data) {
return request({
url: "/noticeInfo/changeRead",
method: 'post',
data
})
}
//删除已读通知列表
export function removeNotification(data) {
return request({
url: url,
url: "/noticeInfo/remove",
method: 'post',
data
})
......
......@@ -11,43 +11,43 @@ import router from '../router'
import { Toast ,Dialog} from 'vant';
import { getToken ,removeToken} from '@/utils/auth' // get token from cookie
const service = axios.create({
baseURL: '/hse/app-api', //前缀路径
baseURL: '/hse/app-api', //前缀路径
headers: {//请求头部
// "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
"content-type": "application/json",
"data-type": "json"
}
"data-type": "json"
}
})
//拦截接口请求
service.interceptors.request.use(config => {
if (getToken()) {
config.headers['token'] = getToken()
}
}
return config
},error => {
}, error => {
return Promise.reject(error)
})
service.interceptors.response.use(response => {
// console.log(response,'这是接口返回数据')
const res = response.data//获取请求返回数据
const code = response.status//获取请求响应码
if(code == 200) {//请求响应码200 代表已经请求到接口
if(res.code === 0) {//接口响应码0 代表接口代码运行正常
if (code == 200) {//请求响应码200 代表已经请求到接口
if (res.code === 0) {//接口响应码0 代表接口代码运行正常
return res
}else if(res.code === 301){
} else if (res.code === 301) {
// Notify({ type: 'danger', message: res.msg});
return res
}else if(res.code === 403){
} else if (res.code === 403) {
Dialog.alert({
title: '提示',
message: res.msg,
theme: 'round-button',
}).then(() => {
removeToken()
// location.reload()
router.push({
name:'login2'
})
location.reload()
// router.push({
// name:'login2'
// })
});
}else{
Toast.fail({
......@@ -55,13 +55,12 @@ service.interceptors.response.use(response => {
message: res.msg||'数据异常请稍后再试',
})
}
}else{
} else {
Promise.reject(new Error('Error'))
}
},err=>{
}, err => {
Toast.fail('请求失败');
return Promise.reject(err)
})
export default service
\ No newline at end of file
})
export default service
......@@ -22,6 +22,7 @@
</template>
</van-search>
<div class="card" v-for="(item,index) in checkedList" :key="index" @click="cardLocation(item)">
<div>检查编号:{{item.no}}</div>
<div>检查名称:{{item.name}}</div>
<div>检查类型:{{item.type}}</div>
<div>开始时间:{{item.planStartTime}}</div>
......
......@@ -12,6 +12,7 @@
<div>
<LHeader v-bind:text="text"></LHeader>
<div class="card">
<div>检查编号:{{nums.no}}</div>
<div>检查名称:{{nums.name}}</div>
<div>检查类型:{{nums.type}}</div>
<div>检查开始时间:{{nums.planStartTime}}</div>
......
......@@ -13,7 +13,7 @@
<LHeader v-bind:text="text"></LHeader>
<div class="card">
<div>问题位置:{{list.address}}</div>
<div>责任单位:{{list.deptNames.join('/')}}</div>
<div>责任单位:{{list.deptNames}}</div>
<div>问题描述:{{list.context}}</div>
<div>法律依据:{{list.checkBasis}}</div>
<div>图片展示:<van-uploader multiple :deletable="false" :show-upload="false" v-model="list.pictures" /></div>
......@@ -49,7 +49,22 @@ export default {
init(){
this.list={}
getFun('check/carry/trouble/'+this.id).then((Response)=>{
this.list=Response.data
this.list=JSON.parse(JSON.stringify(Response.data))
//数据处理
this.list.deptNames=this.list.deptNames.join('/')
this.list.pictures=[]
this.list.videos=[]
Response.data.pictures.forEach((item) => {
this.list.pictures.push({
url:item
})
});
Response.data.videos.forEach((item) => {
this.list.videos.push({
url:item
})
});
})
}
}
......
......@@ -21,11 +21,10 @@
/>
<van-field
v-model="editObj.checkBasis"
name="法律依据"
label="法律依据"
placeholder="法律依据"
name="判定依据"
label="判定依据"
placeholder="判定依据"
:disabled="true"
:rules="[{ required: true, message: '请填写法律依据' }]"
/>
<van-field
v-model="editObj.address"
......@@ -96,14 +95,23 @@ export default {
mounted() {
if(this.$route.query.name=='note'){
this.editObj=JSON.parse(this.$route.query.obj)
var pictures=[]
var videos=[]
this.editObj.pictures.forEach((item)=>{
pictures.push({url:item})
})
this.editObj.videos.forEach((item)=>{
videos.push({url:item})
})
this.editObj={
id:this.editObj.id,//问题ID
address:this.editObj.address,//问题位置
value:this.editObj.deptNames.join('/'),//责任单位
context:this.editObj.context,//问题描述
checkBasis:this.editObj.checkBasis,//法律依据
pictures:this.editObj.pictures,//图片
videos:this.editObj.videos//视频
pictures:pictures,//图片
videos:videos//视频
}
this.ids=this.editObj.deptIds
}
......@@ -139,22 +147,14 @@ export default {
console.log(value)
var pictures=[];
value.uploader.forEach((item) => {
pictures.push(item.content)
if(item.content){pictures.push(item.content)}
else if(item.url){pictures.push(item.url)}
});
if(this.editObj.pictures){
this.editObj.pictures.forEach((item)=>{
pictures.push(item)
})
}
var videos=[];
value.uploader2.forEach((item) => {
videos.push(item.content)
})
if(this.editObj.videos){
this.editObj.videos.forEach((item)=>{
videos.push(item)
})
}
if(item.content){videos.push(item.content)}
else if(item.url){videos.push(item.url)}
});
var obj={
id:this.editObj.id,//列表ID
pictures:pictures,//图片
......
......@@ -15,10 +15,10 @@
<div class="card" v-for="(item,index) in list" :key="index" >
<van-overlay @click.stop="close(item)" :show="item.show" >
<van-button round type="primary" @click.stop="detail(index,item)">详情</van-button>
<van-button round type="info" v-show="!finish" @click.stop="update(index,item)">修改</van-button>
<van-button round type="warning " v-show="!finish" @click.stop="Delete(item)">删除</van-button>
<van-button round type="info" v-show="!item.checkSubmitFlag" @click.stop="update(index,item)">修改</van-button>
<van-button round type="warning " v-show="!item.checkSubmitFlag" @click.stop="Delete(item)">删除</van-button>
</van-overlay>
<van-checkbox :name="item.id" :disabled="finish=='true'?true:item.checkSubmitId?true:false">问题{{index+1}}</van-checkbox>
<van-checkbox :name="item.id" :disabled="finish?finish:item.checkSubmitId?true:false">问题{{index+1}}</van-checkbox>
<div @click="cardClick(item)">
<!-- <div>问题名称:{{item.title}}</div> -->
<div>问题位置:{{item.address}}</div>
......@@ -28,8 +28,8 @@
</div>
</van-checkbox-group>
<div class="page-footer">
<van-checkbox v-model="checkedAll" @change="checkedAllEvent" @click="checkedAllClick" :disabled="finish=='true'?true:false">全选</van-checkbox>
<van-button round type="info" @click="commit" :disabled="finish=='true'?true:false">提交</van-button>
<van-checkbox v-model="checkedAll" @change="checkedAllEvent" @click="checkedAllClick" :disabled="finish">全选</van-checkbox>
<van-button round type="info" @click="commit" :disabled="finish">提交</van-button>
</div>
<tab-bar :index="1"></tab-bar>
</div>
......@@ -134,6 +134,7 @@ export default {
title: '提示',
message: '确定提交检查问题?',
}).then(()=>{
if(checkedList.length==0){this.$toast.fail('提交失败,请至少选择一个问题');return}
this.$toast.loading({
message:'提交中...',
forbidClick: true,
......
......@@ -13,7 +13,7 @@
<LHeader v-bind:text="text"></LHeader>
<div class="card">
<div>问题位置:{{list.address}}</div>
<div>责任单位:{{list.deptId}}</div>
<div>责任单位:{{list.deptNames}}</div>
<div>问题描述:{{list.context}}</div>
<div>法律依据:{{list.checkBasis}}</div>
<div>图片展示:<van-uploader multiple :deletable="false" :show-upload="false" v-model="list.pictures" /></div>
......@@ -48,8 +48,22 @@ export default {
/* 获取详情列表 */
init(){
this.list={}
getFun('check/confirm/trouble/list',{planId:this.id}).then((Response)=>{
this.list=Response.data.list
getFun('check/notify/trouble/'+this.id).then((Response)=>{
this.list=JSON.parse(JSON.stringify(Response.data))
//数据处理
this.list.deptNames=this.list.deptNames.join('/')
this.list.pictures=[]
this.list.videos=[]
Response.data.pictures.forEach((item) => {
this.list.pictures.push({
url:item
})
});
Response.data.videos.forEach((item) => {
this.list.videos.push({
url:item
})
});
})
}
}
......
......@@ -20,7 +20,7 @@
<van-checkbox :name="item.id" :disabled="finish=='true'?true:item.checkSubmitId?true:false">问题{{index+1}}</van-checkbox>
<div @click="cardClick(item)">
<div>负责人姓名:{{item.realName}}</div>
<div>问题名称:{{item.title}}</div>
<!-- <div>问题名称:{{item.title}}</div> -->
<div>问题位置:{{item.address}}</div>
<div>问题内容:{{item.context}}</div>
<div>发现时间:{{item.checkTime}}</div>
......@@ -38,13 +38,15 @@
label="整改完成时间"
placeholder="请选择时间"
@click="calendarOpen"
:disabled="true"
/>
<van-popup v-model="showCalendar" position="bottom">
<van-datetime-picker v-model="currentDate" type="datehour" @confirm="onConfirm" @cancel="showCalendar=false" title="选择年月日小时"/>
</van-popup>
<div class="sign"><span>检查组负责人签字确认:</span><van-tag color="#ffe1e1" :disabled="finish=='true'?true:false"><p v-show="istext" @click="sign" >电子签字</p><img class="sign-img" v-show="isImg" :src="resultImg" alt=""></van-tag></div>
<div class="sign"><span>检查负责人签字确认:</span><van-tag color="#ffe1e1" :disabled="finish=='true'?true:false"><p v-show="istext" @click="sign" >电子签字</p><img class="sign-img" v-show="isImg" :src="resultImg" alt=""></van-tag></div>
<div class="sign"><span>现场负责人签字确认:</span><van-tag color="#ffe1e1" :disabled="finish=='true'?true:false"><p v-show="istextl" @click="signl" >电子签字</p><img class="sign-img" v-show="isImgl" :src="resultImgl" alt=""></van-tag></div>
<div class="page-footer-button">
<van-button round type="info" size="large" @click="commit" :disabled="finish=='true'?true:isFinish==true?true:false">整改确认</van-button>
<van-button round type="info" size="large" @click="commit" :disabled="finish=='true'?true:isFinish==true?true:false">确认</van-button>
</div>
<tab-bar :index="1"></tab-bar>
</div>
......@@ -62,10 +64,14 @@ export default {
},
data() {
return {
currentDate: new Date(),//当前默认时间
istextl:true,//检查组签字是否显示文字
dialogShow:false,//弹框是否显示
istext:true,//是否显示文字
isImg:false,//是否显示图片
resultImg:'',//电子签名图片
resultImgl:'',//检查组电子签名图片
isImgl:false,//是否显示检查组图片
noticeQuestionList:[],//整改通知问题记录列表
active: 0,//tab选中状态
checkedAll:false,//全选状态
......@@ -89,13 +95,17 @@ export default {
if(this.$route.params.name=='checkedConfirm'){
this.istext=true//是否显示文字
this.isImg=false//是否显示图片
this.istextl=true//检查组是否显示文字
this.isImgl=false//检查组是否显示图片
this.value=''//日期值
this.resultImg=''//电子签名图片
this.resultImgl=''//检查组电子签名图片
this.id=this.$route.params.id//请求问题记录列表的唯一id
this.noticeTableList=[];//问题记录列表数组
if(sessionStorage.getItem('ConfirmFinish')){
this.finish=sessionStorage.getItem('ConfirmFinish')
}
this.problem()
}
//判断是否从电子签名跳转过来-获取图片是否显示的布尔值
if(this.$route.query.name=='callbackSign'){
......@@ -108,6 +118,17 @@ export default {
}
}
}
//判断是否从检查组的电子签名跳转过来-获取图片是否显示的布尔值
if(this.$route.query.name=='callbackSignl'){
if(this.$route.query.confirmImgl==true||this.$route.query.confirmImgl=='true'){
this.istextl=false
this.isImgl=true
//从session中获取签名生成的图片1
if(sessionStorage.getItem('confirmImgl')){
this.resultImgl=sessionStorage.getItem('confirmImgl')
}
}
}
},
mounted() {
//刷新页面时候,从session中获取确认id
......@@ -138,26 +159,35 @@ export default {
item.show=false
})
this.$toast.clear()
//日期数据回显
if(Response.data.finishTime){
this.value=Response.data.finishTime
}
//电子签名数据回显
if(Response.data.leaderSign){
this.resultImg=Response.data.leaderSign
}
//获取选中状态数组
this.noticeQuestionList.forEach((item)=>{
if(item.checkSubmitId){
this.result.push(parseInt(item.checkSubmitId))
}
})
//判断是否有签名
if(this.resultImg){
this.istext=false
this.isImg=true
}
/* ----详情---- */
if(this.isFinish){
//获取选中状态数组
this.noticeQuestionList.forEach((item)=>{
if(item.checkSubmitId){
this.result.push(parseInt(item.checkSubmitId))
}
})
//日期数据回显
if(Response.data.finishTime){
this.value=Response.data.finishTime
}
//电子签名数据回显
if(Response.data.leaderSign){
this.resultImg=Response.data.leaderSign
//检查组电子签名数据回显
if(Response.data.managerSign){
this.resultImgl=Response.data.managerSign
}
//判断是否有签名
if(this.resultImg){
this.istext=false
this.isImg=true
if(this.resultImgl){
this.istextl=false
this.isImgl=true
}
}
})
......@@ -197,9 +227,9 @@ export default {
},
//日期输入框点击事件
calendarOpen(){
if(this.finish=='false'){
this.showCalendar = true
}
// if(this.finish=='false'){
// this.showCalendar = true
// }
},
//标签点击事件防止标签切换首次进入不执行复选框监听事件
tabClick(idx){
......@@ -224,6 +254,19 @@ export default {
this.$router.push({name:'sign',query:{name:'confirmNote',confirmImg:true}})
}
},
//电子签名2
signl(){
//点击电子签名,保存用户选择的日期和复选框回显值
if(this.finish=='false'){
//每次签名检测需要签名的模块是哪个
if(sessionStorage.getItem('IsconfirmImgl')){
sessionStorage.removeItem('IsconfirmImgl')
}else{
sessionStorage.setItem('IsconfirmImgl',true)
}
this.$router.push({name:'sign',query:{name:'confirmNotel',confirmImgl:true}})
}
},
//提交问题记录
commit(){
var checkedList=[]
......@@ -238,6 +281,7 @@ export default {
var obj={
planId:this.id,
leaderSign:this.resultImg,
managerSign:this.resultImgl
}
this.$dialog.confirm({
title: '提示',
......
......@@ -16,7 +16,6 @@
</van-search>
</van-sticky>
<!-- tab标签 -->
<van-tabs
v-model="active"
@change="
......@@ -40,9 +39,7 @@
<van-row gutter="">
<van-col span="6">隐患编号:</van-col>
<van-col span="18">
{{
item.businessId || item.id
}}
{{ item.businessId || item.id }}
</van-col>
</van-row>
<van-row gutter="">
......@@ -78,6 +75,7 @@
<van-col span="18">{{ item.taskName }}</van-col>
</van-row> -->
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null">
......@@ -91,14 +89,14 @@
round
type="info"
@click="goConfirm(item)"
v-if="active!==2"
v-if="active !== 2"
>隐患整改</van-button
>
<van-button
round
type="info"
@click="goDelay(item)"
v-if="active!==2"
v-if="active !== 2"
>申请延期</van-button
>
<!-- <van-button round type="warning " @click="goClose(item)"
......@@ -148,11 +146,11 @@ export default {
api: "/rectification/list1",
},
{
title: "隐患整改(已退回)",
title: "已退回",
api: "/rectification/list2",
},
{
title: "隐患整改(已整改)",
title: "已整改",
api: "/rectification/finishList",
},
],
......@@ -287,7 +285,7 @@ export default {
this.$router.push({
name: "normal-detail",
params: {
id: data.taskId,
id: data.taskId||data.id,
},
});
this.showIndex = null;
......@@ -368,7 +366,7 @@ export default {
/deep/.van-tab__pane-wrapper {
min-height: 8rem;
}
.van-tabs__track{
min-height: 3rem;
.van-tabs__track {
min-height: 3rem;
}
</style>
......@@ -34,7 +34,7 @@
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row> -->
</van-row> --> -->
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
......
......@@ -14,20 +14,34 @@
title-active-color="#000000"
sticky
offset-top="1.333333rem"
@click="onClick"
>
<van-tab
title="待办事项"
name="待办事项"
:badge="messageNewsNum.待办事项 > 0 ? messageNewsNum.待办事项 : ''"
>
<wait-event :actives="activeName"></wait-event>
</van-tab>
<van-tab
title="消息信息"
name="消息信息"
:badge="messageNewsNum > 0 ? messageNewsNum : ''"
:badge="messageNewsNum.消息信息 > 0 ? messageNewsNum.消息信息 : ''"
>
<message-news @messageLength="getMessageLength"></message-news>
</van-tab>
<van-tab title="" name="" disabled badge="">
<wait-event></wait-event>
<message-news
:actives="activeName"
:messageNewsNum="messageNewsNum"
></message-news>
</van-tab>
<van-tab title="" name="" disabled badge="">
<notice-info></notice-info>
<van-tab
title="通知公告"
name="通知公告"
:badge="messageNewsNum.通知公告 > 0 ? messageNewsNum.通知公告 : ''"
>
<notice-info
:actives="activeName"
:messageNewsNum="messageNewsNum"
></notice-info>
</van-tab>
</van-tabs>
</div>
......@@ -42,6 +56,7 @@ import messageNews from "./messageNews";
import waitEvent from "./waitEvent";
import noticeInfo from "./noticeInfo";
import tabBar from "@/components/TabBar";
import { badgeNumber } from "@/service/message";
export default {
components: {
messageNews,
......@@ -51,18 +66,34 @@ export default {
},
data() {
return {
activeName: "消息信息",
messageNewsNum: "",
searchValue:''
activeName: "",
messageNewsNum: {},
searchValue: "",
};
},
created() {
this.activeName = sessionStorage.getItem("activeNames")
? sessionStorage.getItem("activeNames")
: "";
// this.activeName = actives;
this.getBadgeNumber();
},
mounted() {},
methods: {
onSearch(){
onClick(e) {
this.activeName = e;
sessionStorage.setItem("activeNames", e);
sessionStorage.setItem("activeIndex", 0);
this.getBadgeNumber();
},
onSearch() {
console.log("[ 1111 ]", 1111);
},
getMessageLength(len) {
this.messageNewsNum = len;
//获取未读消息数
getBadgeNumber() {
badgeNumber().then((res) => {
this.messageNewsNum = res.data;
});
},
},
};
......
<template>
<div>
<LHeader :text="text"></LHeader>
<van-cell-group inset>
<div class="messgae-title">
<span>{{ messageList.noticeTitle }}</span>
<span>{{ messageList.sendTime }}</span>
</div>
<div class="message-content">
{{ messageList.upcomingUserName }},您好!您有一条来自{{
messageList.createUserName
}}{{ messageList.noticeTitle }}相关的待处理任务...
</div>
</van-cell-group>
</div>
</template>
<script>
import { Toast } from "vant";
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader,
},
data() {
return {
messageList: {},
text: "消息详情",
messageCategory: [
{
key: "0",
category: "全部",
},
{
key: "1",
category: "已办",
},
{
key: "2",
category: "待办",
},
],
activeIndex: 0,
searchVal: "",
waitList: [], // 待办列表
// refreshing: false, // 下拉刷新开关
// loading: false, // 列表滚动到底部会触发load事件
// finished: false // 列表数据全部加载完成
};
},
mounted() {},
created() {
this.messageList = JSON.parse(this.$route.params.id);
console.log(
"%c [ this.messageList ]",
"font-size:13px; background:pink; color:#bf2c9f;",
this.messageList
);
},
methods: {
// 点击类别
selectCategory(index, data) {
this.activeIndex = index;
},
// 搜索事件
onSearch(val) {
if (val !== "") {
console.log(this.search);
}
},
// // 下拉刷新事件
// onRefresh() {
// // 清空列表数据
// this.finished = false;
// // 重新加载数据
// // 将 loading 设置为 true,表示处于加载状态
// this.loading = true;
// this.onLoad();
// },
// // 列表初始化函数
// onLoad() {
// setTimeout(() => {
// if (this.refreshing) {
// this.refreshing = false;
// }
// // 加载完成后将loading改成 false
// this.loading = false;
// // 为什么会连续触发 load 事件? 先加上这句 this.finished = true; 以后再删
// // this.finished = true;
// // 如果列表数据全部加载完成 则将finished改为true
// // if (this.list.length >= 40) {
// // this.finished = true;
// // }
// }, 5000);
// }
},
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.message-wrap {
padding: 10px 10px 0;
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 {
margin: 10px 0;
.van-search {
border-radius: 5px;
padding: 5px 12px;
}
.van-search__content {
background-color: #ffffff;
}
}
// 内容
.con-list {
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
.message-content {
margin-top: 10px;
}
}
}
}
</style>
<template>
<div>
<div class="message-wrap">
<!-- 标签 -->
<div class="category-wrap">
<!-- <span class="my-tag-style active">全部</span>
<van-pull-refresh
v-model="isLoading"
success-text="刷新成功"
@refresh="onRefresh"
>
<div class="message-wrap">
<!-- 标签 -->
<div class="category-wrap">
<!-- <span class="my-tag-style active">全部</span>
<span class="my-tag-style">已读</span>
<span class="my-tag-style">未读</span> -->
<span
class="my-tag-style"
:class="index == activeIndex ? 'active' : ''"
v-for="(item, index) in messageCategory"
:key="item.key"
@click="selectCategory(index, item.category)"
>{{ item.category }}</span
>
</div>
<span
class="my-tag-style"
:class="index == activeIndex ? 'active' : ''"
v-for="(item, index) in messageCategory"
:key="item.key"
@click="selectCategory(index, item.category)"
>{{ item.category }}</span
>
</div>
<!-- 搜索 -->
<div class="search-wrap">
<van-search
v-model="searchVal"
show-action
placeholder="请输入检查名称"
@search="onSearch"
>
<template #action>
<div @click="onSearch">搜索</div>
</template>
</van-search>
</div>
<!-- 搜索 -->
<div class="search-wrap">
<van-search
v-model="searchVal"
show-action
placeholder="请输入检查名称"
@search="onSearch"
>
<template #action>
<div @click="onSearch">搜索</div>
</template>
</van-search>
</div>
<!-- 内容列表 -->
<div class="con-list">
<!-- <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-list
v-model="loading"
:finished="finished"
finished-text="没有更多了"
@load="onLoad"
> -->
<!-- <van-cell-group inset>
<div class="messgae-title">隐患确认信息</div>
<div class="message-content">
张大海已确认一般隐患B类,右万宝宝负责整改。
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in waitList"
:key="index"
@click="touchstart(index, item)"
>
<van-badge :dot="item.status == 0 ? true : false">
<div style="padding: 10px; min-width: calc(100vw - 1.6rem)">
<div class="messgae-title">
<span>{{ item.title }}</span>
<span>{{ item.createTime }}</span>
</div>
<div class="message-content">
{{ item.content }},{{ item.createBy }}
</div>
<div class="bot_but">
<van-button color="#33CCFF" size="mini">立即处理</van-button>
</div>
</div>
</van-cell-group> -->
<!-- </van-list>
</van-pull-refresh> -->
</van-badge>
</van-cell-group>
<van-image
v-if="waitList.length <= 0"
fit="contain"
:src="require('../../../assets/noMessage.png')"
/>
</div>
</div>
</div>
</van-pull-refresh>
</div>
</template>
<script>
import { Toast } from "vant";
import { waitList, removeWaitList } from "@/service/message";
export default {
props: {
actives: String,
default: () => "",
},
data() {
return {
isLoading: false,
messageCategory: [
{
key: "0",
category: "全部",
category: "待办",
},
{
key: "1",
category: "",
category: "",
},
{
key: "2",
category: "未读",
category: "全部",
},
],
activeIndex: 0,
searchVal: "",
waitList: [], // 待办列表
// refreshing: false, // 下拉刷新开关
// loading: false, // 列表滚动到底部会触发load事件
// finished: false // 列表数据全部加载完成
};
},
mounted() {},
created() {
this.activeIndex = sessionStorage.getItem("activeIndex")
? sessionStorage.getItem("activeIndex")
: 0;
this.getWaitSort();
this.setMessage();
},
methods: {
//下拉刷新
onRefresh() {
setTimeout(() => {
this.$toast("刷新成功");
this.isLoading = false;
this.getWaitSort();
this.$parent.$parent.$parent.$parent.getBadgeNumber();
}, 1000);
},
// 点击类别
selectCategory(index, data) {
this.activeIndex = index;
this.getWaitSort();
this.setMessage();
},
// 搜索事件
onSearch(val) {
if (val !== "") {
console.log(this.search)
if (this.activeIndex == 0) {
let formData = new FormData();
formData.append("status", 0);
formData.append("keyword", this.searchVal);
this.getWaitList(formData);
} else if (this.activeIndex == 1) {
let formData = new FormData();
formData.append("status", 1);
formData.append("keyword", this.searchVal);
this.getWaitList(formData);
} else if (this.activeIndex == 2) {
let formData = new FormData();
formData.append("keyword", this.searchVal);
this.getWaitList(formData);
}
},
setMessage() {
sessionStorage.setItem("activeNames", this.actives);
sessionStorage.setItem("activeIndex", this.activeIndex);
},
//根据类别请求接口
getWaitSort() {
if (this.activeIndex == 0) {
let formData = new FormData();
formData.append("status", 0);
this.getWaitList(formData);
} else if (this.activeIndex == 1) {
let formData = new FormData();
formData.append("status", 1);
this.getWaitList(formData);
} else if (this.activeIndex == 2) {
this.getWaitList();
}
},
// // 下拉刷新事件
// onRefresh() {
// // 清空列表数据
// this.finished = false;
// // 重新加载数据
// // 将 loading 设置为 true,表示处于加载状态
// this.loading = true;
// this.onLoad();
// },
// // 列表初始化函数
// onLoad() {
// setTimeout(() => {
// if (this.refreshing) {
// this.refreshing = false;
// }
// 请求消息接口方法
getWaitList(Data) {
waitList(Data).then((res) => {
this.waitList = res.rows;
});
},
touchstart(index, item) {
this.$router.push({
path: item.appUrl,
query: {},
});
},
// // 加载完成后将loading改成 false
// this.loading = false;
// // 为什么会连续触发 load 事件? 先加上这句 this.finished = true; 以后再删
......@@ -127,6 +194,7 @@ export default {
<style lang="less" scoped>
/* @import url(); 引入css类 */
.message-wrap {
min-height: 58vh;
padding: 10px 10px 0;
background-color: #f0f1f5;
// 标签
......@@ -164,11 +232,21 @@ export default {
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
padding: 10px;
.message-content {
margin-top: 10px;
}
.messgae-title {
display: flex;
justify-content: space-between;
align-items: center;
}
.bot_but {
display: flex;
justify-content: right;
align-items: center;
}
}
}
}
......
......@@ -13,7 +13,7 @@
<LHeader v-bind:text="text"></LHeader>
<div class="card">
<div>问题位置:{{list.address}}</div>
<div>责任单位:{{list.deptNames.join('/')}}</div>
<div>责任单位:{{list.deptNames}}</div>
<div>问题描述:{{list.context}}</div>
<div>法律依据:{{list.checkBasis}}</div>
<div>图片展示:<van-uploader multiple :deletable="false" :show-upload="false" v-model="list.pictures" /></div>
......@@ -49,7 +49,21 @@ export default {
init(){
this.list={}
getFun('check/notify/trouble/'+this.id).then((Response)=>{
this.list=Response.data
this.list=JSON.parse(JSON.stringify(Response.data))
//数据处理
this.list.deptNames=this.list.deptNames.join('/')
this.list.pictures=[]
this.list.videos=[]
Response.data.pictures.forEach((item) => {
this.list.pictures.push({
url:item
})
});
Response.data.videos.forEach((item) => {
this.list.videos.push({
url:item
})
});
})
}
}
......
......@@ -21,10 +21,10 @@
/>
<van-field
v-model="editObj.checkBasis"
name="法律依据"
label="法律依据"
placeholder="法律依据"
:rules="[{ required: true, message: '请填写法律依据' }]"
name="判定依据"
label="判定依据"
placeholder="判定依据"
:disabled="true"
/>
<van-field
v-model="editObj.address"
......@@ -53,12 +53,12 @@
/>
<!-- <van-area title="标题" :area-list="areaList" @confirm="onConfirm" /> -->
</van-popup>
<van-field name="uploader" label="图像上传" :rules="[{ required: true, message: '请上传图像' }]">
<van-field name="uploader" label="图像上传">
<template #input>
<van-uploader multiple :max-count="5" upload-text="最多上传五个" v-model="editObj.pictures" />
</template>
</van-field>
<van-field name="uploader2" label="视频上传" :rules="[{ required: true, message: '请上传视频' }]">
<van-field name="uploader2" label="视频上传">
<template #input>
<van-uploader multiple :max-count="5" upload-text="最多上传五个" v-model="editObj.videos" />
</template>
......@@ -96,14 +96,22 @@ export default {
if(this.$route.query.name=='noticeList'){
this.editObj=JSON.parse(this.$route.query.obj)
var pictures=[]
var videos=[]
this.editObj.pictures.forEach((item)=>{
pictures.push({url:item})
})
this.editObj.videos.forEach((item)=>{
videos.push({url:item})
})
this.editObj={
id:this.editObj.id,//问题ID
address:this.editObj.address,//问题位置
value:this.editObj.deptNames.join('/'),//责任单位
context:this.editObj.context,//问题描述
checkBasis:this.editObj.checkBasis,//法律依据
pictures:this.editObj.pictures,//图片
videos:this.editObj.videos//视频
pictures:pictures,//图片
videos:videos//视频
}
this.ids=this.editObj.deptIds
......@@ -138,15 +146,14 @@ export default {
/* 问题提交 */
onSubmit(value){
var pictures=[];
console.log(value)
value.uploader.forEach((item) => {
if(item.content){pictures.push(item.content)}
else if(item){pictures.push(item)}
else if(item.url){pictures.push(item.url)}
});
var videos=[];
value.uploader2.forEach((item) => {
if(item.content){videos.push(item.content)}
else if(item){videos.push(item)}
else if(item.url){videos.push(item.url)}
});
var obj={
id:this.editObj.id,//列表ID
......@@ -157,6 +164,7 @@ export default {
context:value['问题描述'],//问题描述
checkBasis:value['法律依据']//法律依据
}
console.log(obj)
this.$dialog.confirm({
title: '提示',
message: '确定提交检查问题?',
......
......@@ -60,7 +60,7 @@
<van-checkbox :name="item.id" :disabled="finish=='true'?true:item.checkSubmitId?true:false">问题{{index+1}}</van-checkbox>
<div @click="cardClick(item)">
<div>负责人姓名:{{item.realName}}</div>
<div>问题名称:{{item.title}}</div>
<!-- <div>问题名称:{{item.title}}</div> -->
<div>问题位置:{{item.address}}</div>
<div>问题内容:{{item.context}}</div>
<div>发现时间:{{item.checkTime}}</div>
......
......@@ -29,6 +29,7 @@ export default {
lineColor: 'red',
bgColor: '',
resultImg: '',
confirmImgl:'',
isCrop: false,
value:'',
result:[],
......@@ -46,6 +47,9 @@ export default {
if(this.$route.query.name=='confirmNote'){
this.confirmImg=this.$route.query.confirmImg
}
if(this.$route.query.name=='confirmNotel'){
this.confirmImgl=this.$route.query.confirmImgl
}
},
methods: {
handleReset () {
......@@ -58,6 +62,8 @@ export default {
//生成图片后存储到session中并跳转把图片是否显示的boolean带过去
if(this.confirmImg){
this.$router.push({name:'confirmNote',query:{name:'callbackSign',confirmImg:this.confirmImg}})
}else if(this.confirmImgl){
this.$router.push({name:'confirmNote',query:{name:'callbackSignl',confirmImgl:this.confirmImgl}})
}else{
this.$router.push({name:'noticeList',query:{name:'sign',img:this.img}})
}
......@@ -65,9 +71,9 @@ export default {
if(this.img){
sessionStorage.setItem('resultImg',this.resultImg)
}
// else if(this.img2){
// sessionStorage.setItem('resultImg2',this.resultImg)
// }
else if(this.confirmImgl){
sessionStorage.setItem('confirmImgl',this.resultImg)
}
else if(this.confirmImg){
sessionStorage.setItem('confirmImg',this.resultImg)
}
......
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