Commit 18ecb9b8 authored by 胡占生's avatar 胡占生 🇨🇳

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

parents 6950f8e5 0e8d5dad
Pipeline #7906 passed with stage
in 19 seconds
...@@ -47,6 +47,8 @@ export default { ...@@ -47,6 +47,8 @@ export default {
"noticeList", "noticeList",
"confirmNote", "confirmNote",
], ],
// 不需要展示底部tabbar的页面
noTab:["login", "login2", "choose-people","scan",'success','fail','warn','center'],
// cachePage预先定义的缓存页面 // cachePage预先定义的缓存页面
otherCache: [], otherCache: [],
// 专门处理列表缓存的页面,这些页面缓存逻辑与其他缓存不一样去详情返回列表缓存,但是进入列表必须刷新,如何有需要缓存的列表请放到这里来。 // 专门处理列表缓存的页面,这些页面缓存逻辑与其他缓存不一样去详情返回列表缓存,但是进入列表必须刷新,如何有需要缓存的列表请放到这里来。
...@@ -74,7 +76,7 @@ export default { ...@@ -74,7 +76,7 @@ export default {
}, },
computed: { computed: {
showTab() { showTab() {
return !["login", "login2", "choose-people","scan",'success','fail','warn'].includes( return !this.noTab.includes(
this.$route.name this.$route.name
); );
}, },
...@@ -107,6 +109,7 @@ export default { ...@@ -107,6 +109,7 @@ export default {
}; };
</script> </script>
<style lang="less"> <style lang="less">
#app { #app {
font-family: "Avenir", Helvetica, Arial, sans-serif; font-family: "Avenir", Helvetica, Arial, sans-serif;
......
<template> <template>
<div> <div>
<!-- 占位导航栏div,防止导航栏挡住内容 --> <!-- 占位导航栏div,防止导航栏挡住内容 -->
<!-- <div></div> -->
<van-tabbar v-model="active" @change="onChange" route> <van-tabbar v-model="active" @change="onChange" route>
<van-tabbar-item <van-tabbar-item
v-for="(item, index) in tabBarList" v-for="(item, index) in tabBarList"
......
...@@ -16,8 +16,10 @@ import util from './api/util.js' ...@@ -16,8 +16,10 @@ import util from './api/util.js'
import './permission' import './permission'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import { prefix } from '@/common/js/utils' import { prefix } from '@/common/js/utils'
import { Divider, Popup, Overlay, Loading, Dialog, ContactCard, Form, AddressEdit, AddressList, Field, CellGroup, Cell, SwipeCell, Icon, Stepper, Card, Checkbox, CheckboxGroup, Button, Swipe, SwipeItem, PullRefresh, List, Tab, Tabs, GoodsAction, GoodsActionIcon, GoodsActionButton, SubmitBar, Toast ,Search,Picker,Uploader,Notify ,ContactList,Calendar,Radio,RadioGroup,Tag,Tabbar,TabbarItem,Sticky, Grid, GridItem,Skeleton,Col,Row, Image as VanImage, Badge,NoticeBar,DatetimePicker, import { Divider, Popup, Overlay, Loading, Dialog, ContactCard, Form, AddressEdit, AddressList, Field, CellGroup, Cell,
Step, Steps, ImagePreview } from 'vant' SwipeCell, Icon, Stepper, Card, Checkbox, CheckboxGroup, Button, Swipe, SwipeItem, PullRefresh, List,
Tab, Tabs, GoodsAction, GoodsActionIcon, GoodsActionButton, SubmitBar, Toast ,Search,Picker,Uploader,Notify ,ContactList,Calendar,Radio,RadioGroup,Tag,Tabbar,TabbarItem,Sticky, Grid, GridItem,Skeleton,Col,Row, Image as VanImage, Badge,NoticeBar,DatetimePicker,
Step, Steps, ImagePreview,progress} from 'vant'
import 'lib-flexible/flexible' import 'lib-flexible/flexible'
import vueEsign from 'vue-esign' import vueEsign from 'vue-esign'
import VideoPlayer from 'vue-video-player' import VideoPlayer from 'vue-video-player'
...@@ -30,7 +32,7 @@ Vue.use(VideoPlayer) ...@@ -30,7 +32,7 @@ Vue.use(VideoPlayer)
Vue.use(Divider).use(Popup).use(Overlay).use(Loading).use(Dialog).use(Toast).use(ContactCard).use(Form).use(AddressEdit).use(AddressList).use(Field).use(CellGroup).use(Cell).use(SwipeCell).use(Icon).use(Stepper).use(Card).use(Button).use(Swipe).use(SwipeItem).use(PullRefresh).use(List).use(Tab).use(Tabs).use(GoodsAction).use(GoodsActionIcon).use(GoodsActionButton).use(SubmitBar).use(Checkbox).use(CheckboxGroup).use(Search).use(Picker).use(Uploader).use(Notify) Vue.use(Divider).use(Popup).use(Overlay).use(Loading).use(Dialog).use(Toast).use(ContactCard).use(Form).use(AddressEdit).use(AddressList).use(Field).use(CellGroup).use(Cell).use(SwipeCell).use(Icon).use(Stepper).use(Card).use(Button).use(Swipe).use(SwipeItem).use(PullRefresh).use(List).use(Tab).use(Tabs).use(GoodsAction).use(GoodsActionIcon).use(GoodsActionButton).use(SubmitBar).use(Checkbox).use(CheckboxGroup).use(Search).use(Picker).use(Uploader).use(Notify)
.use(ContactList).use(Calendar).use(Radio).use(RadioGroup).use(Tag).use(Tabbar).use(TabbarItem).use(Sticky) .use(ContactList).use(Calendar).use(Radio).use(RadioGroup).use(Tag).use(Tabbar).use(TabbarItem).use(Sticky)
.use(Grid).use(GridItem).use(Skeleton).use(Col).use(Row).use(VanImage).use(Badge).use(NoticeBar).use(DatetimePicker) .use(Grid).use(GridItem).use(Skeleton).use(Col).use(Row).use(VanImage).use(Badge).use(NoticeBar).use(DatetimePicker)
.use(Step).use(Steps).use(ImagePreview) .use(Step).use(Steps).use(ImagePreview).use(progress)
Vue.config.productionTip = false Vue.config.productionTip = false
new Vue({ new Vue({
router, router,
......
...@@ -710,6 +710,15 @@ const routes = [{ ...@@ -710,6 +710,15 @@ const routes = [{
}, },
component: () => import('@/views/common/warn') component: () => import('@/views/common/warn')
}, },
{
path: '/center',
name: 'center',
meta: {
title: '',
index: 1
},
component: () => import('@/views/common/center')
},
] ]
const router = new VueRouter({ const router = new VueRouter({
......
...@@ -21,20 +21,24 @@ ...@@ -21,20 +21,24 @@
<div @click="onSearch" >搜索</div> <div @click="onSearch" >搜索</div>
</template> </template>
</van-search> </van-search>
<div class="card" v-for="(item,index) in checkedList" :key="index" @click="cardLocation(item)"> <van-tabs v-model="active" :swipe-threshold="3" @change="tabChange">
<div>检查编号:{{item.no}}</div> <van-tab v-for="(item,index) in checkedConfirmList" :key="index" :title="item.title">
<div>检查名称:{{item.name}}</div> <div class="card" v-for="(it,index) in item.list" :key="index" @click="cardLocation(it)">
<div>检查类型:{{item.type}}</div> <div>检查编号:{{it.no}}</div>
<div v-show="item.isOpen"> <div>检查名称:{{it.name}}</div>
<div>开始时间:{{item.planStartTime}}</div> <div>检查类型:{{it.type}}</div>
<div>结束时间:{{item.planEndTime}}</div> <div v-show="it.isOpen">
<div>检查地点:{{item.address}}</div> <div>开始时间:{{it.planStartTime}}</div>
<div>是否提交:{{item.finish?'已提交':'未提交'}}</div> <div>结束时间:{{it.planEndTime}}</div>
</div> <div>检查地点:{{it.address}}</div>
<div class="more" @click.stop="toggle(item)"> <div>是否提交:{{it.finish?'已提交':'未提交'}}</div>
{{ item.OpenText }} </div>
</div> <div class="more" @click.stop="toggle(it)">
</div> {{ it.OpenText }}
</div>
</div>
</van-tab>
</van-tabs>
<tab-bar :index="1"></tab-bar> <tab-bar :index="1"></tab-bar>
</div> </div>
</template> </template>
...@@ -51,9 +55,21 @@ export default { ...@@ -51,9 +55,21 @@ export default {
}, },
data() { data() {
return { return {
title:'待提交',//默认选中状态的tab页签
active:'0',//默认选中状态
status:'unconfirm',//默认提交状态
goback:'save-workbench',//返回工作台 goback:'save-workbench',//返回工作台
value:'',//列表搜索关键字值 value:'',//列表搜索关键字值
checkedList:[],//检查列表 checkedConfirmList:[
{
title:'待提交',
list:[]
},
{
title:'已提交',
list:[]
}
],//检查列表
text:'检查执行',//顶部文本 text:'检查执行',//顶部文本
finish:'',//问题是否提交 finish:'',//问题是否提交
} }
...@@ -64,19 +80,24 @@ export default { ...@@ -64,19 +80,24 @@ export default {
methods: { methods: {
/* 首次进入页面请求检查执行列表接口 */ /* 首次进入页面请求检查执行列表接口 */
list(){ list(){
this.checkedList=[] // this.checkedList=[]
this.clearTab()
this.$toast.loading({ this.$toast.loading({
message:'加载中...', message:'加载中...',
forbidClick: true, forbidClick: true,
loadingType: 'spinner', loadingType: 'spinner',
duration: 0 duration: 0
}) })
getFun('check/carry/user/list',{name:this.value}).then((Response)=>{ getFun('check/carry/user/list',{select:this.value,status:this.status}).then((Response)=>{
this.$toast.clear() this.$toast.clear()
this.checkedList=Response.data this.checkedConfirmList.forEach((item)=>{
this.checkedList.forEach((item)=>{ if(item.title==this.title){
item.isOpen=false item.list=Response.data[0].list
item.OpenText="展开 ▼"; item.list.forEach((it)=>{
it.isOpen=false
it.OpenText="展开 ▼";
})
}
}) })
}).catch(()=>{ }).catch(()=>{
this.$toast.clear() this.$toast.clear()
...@@ -103,6 +124,21 @@ export default { ...@@ -103,6 +124,21 @@ export default {
// 只显示第一个数据 // 只显示第一个数据
} }
this.$forceUpdate() this.$forceUpdate()
},
//清空tab列表数据
clearTab(){
this.checkedConfirmList.forEach((it)=>{
it.list=[]
})
},
tabChange(name,title){
if(name=='0'){
this.status='unconfirm'
}else{
this.status='confirmed'
}
this.title=title
this.list()
} }
} }
} }
......
...@@ -41,6 +41,7 @@ export default { ...@@ -41,6 +41,7 @@ export default {
}, },
data() { data() {
return { return {
noTroubleFlag:false,//是否有问题提交参数
id:'',//问题上报清单列表列表id id:'',//问题上报清单列表列表id
nums:{},//问题上报清单列表 nums:{},//问题上报清单列表
text:'问题上报',//顶部文本 text:'问题上报',//顶部文本
...@@ -103,11 +104,16 @@ export default { ...@@ -103,11 +104,16 @@ export default {
return return
} }
} }
if(this.submitTroubleNumber==0){
this.noTroubleFlag=true
}else{
this.noTroubleFlag=false
}
this.$dialog.confirm({ this.$dialog.confirm({
title: '提示', title: '提示',
message: '您已提交'+this.submitTroubleNumber+'个问题'+'确定结束检查上报?', message: '您已提交'+this.submitTroubleNumber+'个问题'+'确定结束检查上报?',
}).then(()=>{ }).then(()=>{
postFun('check/carry/trouble/finish',{planId:this.id}).then((Response)=>{ postFun('check/carry/trouble/finish',{planId:this.id,noTroubleFlag:this.noTroubleFlag}).then((Response)=>{
this.$toast.clear() this.$toast.clear()
this.$router.push('/checked') this.$router.push('/checked')
}).catch(()=>{ }).catch(()=>{
......
...@@ -19,13 +19,14 @@ ...@@ -19,13 +19,14 @@
placeholder="问题名称" placeholder="问题名称"
:rules="[{ required: true, message: '请填写问题名称' }]" :rules="[{ required: true, message: '请填写问题名称' }]"
/> --> /> -->
<van-field <van-field
v-model="problemDescribe" v-model="problemDescribe"
name="问题描述" name="问题描述"
label="问题描述" label="问题描述"
placeholder="问题描述" placeholder="问题描述"
:rules="[{ required: true, message: '请填写问题描述' }]" :rules="[{ required: true, message: '请填写问题描述' }]"
:disabled="isFormwork" :disabled="isFormwork"
:required="!isFormwork?true:false"
@input="numInput" @input="numInput"
/> />
<van-field <van-field
...@@ -42,6 +43,7 @@ ...@@ -42,6 +43,7 @@
label="问题位置" label="问题位置"
placeholder="问题位置" placeholder="问题位置"
:rules="[{ required: true, message: '请填写问题位置' }]" :rules="[{ required: true, message: '请填写问题位置' }]"
required
/> />
<van-field <van-field
readonly readonly
...@@ -82,7 +84,7 @@ ...@@ -82,7 +84,7 @@
</template> </template>
</van-field> </van-field>
<div style="margin: 0.5rem"> <div style="margin: 0.5rem">
<van-button round block type="info" native-type="submit">保存</van-button> <van-button round block type="info" native-type="submit">提 交</van-button>
</div> </div>
</van-form> </van-form>
<tab-bar :index="1"></tab-bar> <tab-bar :index="1"></tab-bar>
...@@ -294,4 +296,7 @@ export default { ...@@ -294,4 +296,7 @@ export default {
0% { transform: translateX(100%); } 0% { transform: translateX(100%); }
100% { transform: translateX(-100%); } 100% { transform: translateX(-100%); }
} }
/deep/ .van-field__label {
color: #646566 !important;
}
</style> </style>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div>视频展示: <div>视频展示:
<van-uploader multiple :deletable="false" :show-upload="false" v-model="list.videos" > <van-uploader multiple :deletable="false" :show-upload="false" v-model="list.videos" >
<template #preview-cover="{ url }"> <template #preview-cover="{ url }">
<video muted autoplay :src="url" style="width:80px;height:80px;object-fit:cover;"></video> <video muted autoplay :src="url" style="width:100%;height:100%;object-fit:cover;"></video>
</template> </template>
</van-uploader> </van-uploader>
</div> </div>
......
...@@ -61,7 +61,7 @@ export default { ...@@ -61,7 +61,7 @@ export default {
this.id=sessionStorage.getItem('noteId') this.id=sessionStorage.getItem('noteId')
} }
if(sessionStorage.getItem('checkedFinish')){ if(sessionStorage.getItem('checkedFinish')){
this.finish=sessionStorage.getItem('checkedFinish')=='false'?false:true this.finish=sessionStorage.getItem('checkedFinish')!='true'?false:true
} }
this.init() this.init()
}, },
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div>视频展示: <div>视频展示:
<van-uploader multiple :deletable="false" :show-upload="false" v-model="list.videos" > <van-uploader multiple :deletable="false" :show-upload="false" v-model="list.videos" >
<template #preview-cover="{ url }"> <template #preview-cover="{ url }">
<video muted autoplay :src="url" style="width:80px;height:80px;object-fit:cover;"></video> <video muted autoplay :src="url" style="width:100%;height:100%;object-fit:cover;"></video>
</template> </template>
</van-uploader> </van-uploader>
</div> </div>
......
...@@ -269,6 +269,7 @@ export default { ...@@ -269,6 +269,7 @@ export default {
}, },
//提交问题记录 //提交问题记录
commit(){ commit(){
if(!this.resultImgl){this.$toast.fail("提交失败,请检查组签字!");return;}
var checkedList=[] var checkedList=[]
/* 禁用状态下的(已选过)问题不进行提交,进行清空处理 */ /* 禁用状态下的(已选过)问题不进行提交,进行清空处理 */
this.result.forEach((it)=>{ this.result.forEach((it)=>{
......
...@@ -11,19 +11,23 @@ ...@@ -11,19 +11,23 @@
<template> <template>
<div> <div>
<LHeader v-bind:text="text" :goback="goback"></LHeader> <LHeader v-bind:text="text" :goback="goback"></LHeader>
<div class="card" v-for="(item,index) in checkedConfirmList" :key="index" @click="cardLocation(item)"> <van-tabs v-model="active" :swipe-threshold="3" @change="tabChange">
<div>负责人:{{item.name}}</div> <van-tab v-for="(item,index) in checkedConfirmList" :key="index" :title="item.title">
<div>部门名称:{{item.realName}}</div> <div class="card" v-for="(it,index) in item.list" :key="index" @click="cardLocation(it)">
<div>开始时间:{{item.planStartTime}}</div> <div>负责人:{{it.realName}}</div>
<div v-show="item.isOpen"> <div>检查名称:{{it.name}}</div>
<div>结束时间:{{item.planEndTime}}</div> <div>开始时间:{{it.planStartTime}}</div>
<div>检查地点:{{item.address}}</div> <div v-show="it.isOpen">
<div>检查类型:{{item.type}}</div> <div>结束时间:{{it.planEndTime}}</div>
</div> <div>检查地点:{{it.address}}</div>
<div class="more" @click.stop="toggle(item)"> <div>检查类型:{{it.type}}</div>
{{ item.OpenText }} </div>
</div> <div class="more" @click.stop="toggle(it)">
</div> {{ it.OpenText }}
</div>
</div>
</van-tab>
</van-tabs>
<tab-bar :index="1"></tab-bar> <tab-bar :index="1"></tab-bar>
</div> </div>
</template> </template>
...@@ -40,8 +44,20 @@ export default { ...@@ -40,8 +44,20 @@ export default {
}, },
data() { data() {
return { return {
title:'待确认',//默认选中状态的tab页签
status:'unconfirm',//默认确认状态
active:'0',//默认选中状态
goback:'save-workbench',//返回工作台 goback:'save-workbench',//返回工作台
checkedConfirmList:[],//检查确认列表 checkedConfirmList:[
{
title:'待确认',
list:[]
},
{
title:'已确认',
list:[]
}
],//检查确认列表
text:'检查确认列表',//顶部文本 text:'检查确认列表',//顶部文本
} }
}, },
...@@ -51,23 +67,27 @@ export default { ...@@ -51,23 +67,27 @@ export default {
methods: { methods: {
/* 首次进入页面请求检查执行列表接口 */ /* 首次进入页面请求检查执行列表接口 */
list(){ list(){
this.checkedConfirmList=[] // this.checkedConfirmList=[]
this.clearTab()
this.$toast.loading({ this.$toast.loading({
message:'加载中...', message:'加载中...',
forbidClick: true, forbidClick: true,
loadingType: 'spinner', loadingType: 'spinner',
duration: 0 duration: 0
}) })
getFun('check/confirm/list').then((Response)=>{ getFun('check/confirm/list',{status:this.status}).then((Response)=>{
this.checkedConfirmList=Response.data
this.checkedConfirmList.forEach((item)=>{ this.checkedConfirmList.forEach((item)=>{
item.isOpen=false if(item.title==this.title){
item.OpenText="展开 ▼"; item.list=Response.data[0].list
item.list.forEach((it)=>{
it.isOpen=false
it.OpenText="展开 ▼";
})
}
}) })
this.$toast.clear() this.$toast.clear()
}).catch(()=>{ }).catch(()=>{
this.$toast.clear() this.$toast.clear()
this.$toast.fail('加载失败,请稍后再试')
}) })
}, },
cardLocation(item){ cardLocation(item){
...@@ -86,6 +106,21 @@ export default { ...@@ -86,6 +106,21 @@ export default {
// 只显示第一个数据 // 只显示第一个数据
} }
this.$forceUpdate() this.$forceUpdate()
},
//清空tab列表数据
clearTab(){
this.checkedConfirmList.forEach((it)=>{
it.list=[]
})
},
tabChange(name,title){
if(name=='0'){
this.status='unconfirm'
}else{
this.status='confirmed'
}
this.title=title
this.list()
} }
} }
} }
...@@ -110,6 +145,5 @@ export default { ...@@ -110,6 +145,5 @@ export default {
right: 15px; right: 15px;
color: #2a80f7; color: #2a80f7;
font-weight: none; font-weight: none;
z-index: 99;
} }
</style> </style>
<template>
<div>
<van-progress :percentage="num" :show-pivot="false"/>
<div style='text-align:center;margin-top:40px'>
跳转中...
</div>
</div>
</template>
<script>
import { getFun,postFun } from '@/service/table'
export default {
data(){
return {
num:0,
params:{
id:0,
path:'',
theme:'隐患'
},
api:{
隐患:'/hdreport/hdDetailsApp',
风险:'/riskMain/riskDetailsApp',
安全监督检查:'/check/notify/trouble'
}
}
},
methods:{
},
mounted(){
postFun(`${this.api[this.params.theme]}/${this.params.id}`)
.then(res=>{
let data = res.data.hdReport||res.data.riskMain;
this.num=100
// return false;
this.$router.replace({
name: this.params.path,
params: {
id:this.params.id,
data: {
...data,
taskId:this.params.id
},
taskId:this.params.id
},
});
})
.catch(err=>{
this.num=100;
this.$router.replace({
name:'fail',
query:{
text:'响应错误',
content:'请联系管理员'
}
})
})
},
created(){
let time = setInterval(()=>{
if(this.time>=80){
clearInterval(time)
return false;
}
this.num++
},10)
if(this.$route.params.id&&this.$route.params.path){
this.params=this.$route.params;
} else {
this.num=100;
this.$router.replace({
name:'fail',
query:{
text:'参数错误',
content:'请联系管理员'
}
})
}
}
}
</script>
<style>
</style>
\ No newline at end of file
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
<van-col span="7">发现时间:</van-col> <van-col span="7">发现时间:</van-col>
<van-col span="17">{{ item.hdDiscoveryTime }}</van-col> <van-col span="17">{{ item.hdDiscoveryTime }}</van-col>
</van-row> --> </van-row> -->
<van-row gutter=""> <van-row gutter="" v-if="item.dueDate">
<van-col span="7">超期标识:</van-col> <van-col span="7">超期标识:</van-col>
<van-col span="17">{{ item.dueDate | formatTime }}</van-col> <van-col span="17">{{ item.dueDate | formatTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="" v-if="item.taskName">
<van-col span="7">工单状态:</van-col> <van-col span="7">工单状态:</van-col>
<van-col span="17">{{ item.taskName }}</van-col> <van-col span="17">{{ item.taskName }}</van-col>
</van-row> </van-row>
...@@ -176,7 +176,7 @@ export default { ...@@ -176,7 +176,7 @@ export default {
}, },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
next((vm) => { next((vm) => {
if (from.name === "change-danger") { if (from.name === "center"||from.name === "change-danger") {
vm.messageList = []; vm.messageList = [];
let paramsData = to.params.data; let paramsData = to.params.data;
vm.taskId = paramsData.taskId; vm.taskId = paramsData.taskId;
......
...@@ -201,7 +201,9 @@ export default { ...@@ -201,7 +201,9 @@ export default {
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
next((vm) => { next((vm) => {
if (from.name === "confirme-danger") { console.log(from.name,'进入页面',to.params.data)
if (from.name === "confirme-danger"||from.name === "center") {
console.log(from.name,'进入判断条件')
vm.messageList = []; vm.messageList = [];
let paramsData = to.params.data; let paramsData = to.params.data;
vm.taskId = paramsData.taskId; vm.taskId = paramsData.taskId;
...@@ -223,6 +225,7 @@ export default { ...@@ -223,6 +225,7 @@ export default {
created() {}, created() {},
methods: { methods: {
getFormList() { getFormList() {
console.log(this.taskId)
if (!this.taskId) { if (!this.taskId) {
return; return;
} }
...@@ -238,7 +241,8 @@ export default { ...@@ -238,7 +241,8 @@ export default {
this.columnsRect = res.data.rectificationUser; this.columnsRect = res.data.rectificationUser;
this.columnsReview = res.data.rectificationReview; this.columnsReview = res.data.rectificationReview;
}) })
.catch(() => { .catch((err) => {
console.log(err);
this.$toast.clear(); this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试"); this.$toast.fail("加载失败,请稍后再试");
}); });
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<!-- {{item}} --> <!-- {{item}} -->
<van-row gutter=""> <van-row gutter="">
<van-col span="7">隐患单编号:</van-col> <van-col span="7">隐患单编号:</van-col>
<van-col span="17">{{ item.businessId }}</van-col> <van-col span="17">{{ item.businessId||item.id}}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
......
...@@ -75,7 +75,7 @@ export default { ...@@ -75,7 +75,7 @@ export default {
}, },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
next(vm => { next(vm => {
if (from.name === "manager-danger") { if (from.name === "center"||from.name === "manager-danger") {
vm.messageList = []; vm.messageList = [];
let paramsData = to.params.data; let paramsData = to.params.data;
vm.taskId = paramsData.taskId; vm.taskId = paramsData.taskId;
......
...@@ -132,7 +132,7 @@ export default { ...@@ -132,7 +132,7 @@ export default {
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
console.log("执行了此钩子"); console.log("执行了此钩子");
next((vm) => { next((vm) => {
if (from.name === "review-danger" || from.name == "normal-detail") { if (from.name === "center"||from.name === "review-danger" || from.name == "normal-detail") {
vm.messageList = []; vm.messageList = [];
// 修改bug回退获取不到参数有参数的用参数没参数的话用本地缓存 // 修改bug回退获取不到参数有参数的用参数没参数的话用本地缓存
let paramsData = let paramsData =
......
...@@ -748,13 +748,7 @@ export default { ...@@ -748,13 +748,7 @@ export default {
loadingType: "spinner", loadingType: "spinner",
duration: 0, duration: 0,
}); });
(this.$route.params.method == "get" ? getFun : postFun)( postFun(`/hdreport/hdDetailsApp/${this.id}`)
`${
this.$route.params.api
? this.$route.params.api
: "/hdreport/hdDetailsApp/"
}${this.id}`
)
.then((res) => { .then((res) => {
this.$toast.clear(); this.$toast.clear();
this.hdReport = res.data.hdReport; this.hdReport = res.data.hdReport;
......
...@@ -77,7 +77,7 @@ export default { ...@@ -77,7 +77,7 @@ export default {
}, },
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
next(vm => { next(vm => {
if (from.name === "supervise-danger") { if (from.name === "center"||from.name === "supervise-danger") {
vm.messageList = []; vm.messageList = [];
let paramsData = to.params.data; let paramsData = to.params.data;
vm.taskId = paramsData.taskId; vm.taskId = paramsData.taskId;
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
v-for="(item, index) in waitList" v-for="(item, index) in waitList"
@click="touchstart(index, item)" @click="touchstart(index, item)"
:key="index" :key="index"
@click="touchstart(index, item)"
> >
<van-badge :dot="item.status == 0 ? true : false"> <van-badge :dot="item.status == 0 ? true : false">
...@@ -177,18 +178,28 @@ export default { ...@@ -177,18 +178,28 @@ export default {
this.waitList = res.rows; this.waitList = res.rows;
}); });
}, },
touchstart(index, item) {
touchstart(index, item) {
if(item.appUrl){ if(item.appUrl){
this.$router.push({ this.$router.push({
name: item.appUrl, name: 'center',
params: { params: {
id: item.pid, id: item.pid,
path:item.appUrl,
theme:item.theme
}, },
}); });
} }
}, },
// touchstart(index, item) {
// if(item.appUrl){
// this.$router.push({
// name: item.appUrl,
// params: {
// id: item.pid,
// },
// });
// }
// },
// // 加载完成后将loading改成 false // // 加载完成后将loading改成 false
// this.loading = false; // this.loading = false;
// // 为什么会连续触发 load 事件? 先加上这句 this.finished = true; 以后再删 // // 为什么会连续触发 load 事件? 先加上这句 this.finished = true; 以后再删
......
...@@ -21,21 +21,25 @@ ...@@ -21,21 +21,25 @@
<div @click="onSearch" >搜索</div> <div @click="onSearch" >搜索</div>
</template> </template>
</van-search> </van-search>
<div class="card" v-for="(item,index) in noticeList" :key="index" @click="cardLocation(item)"> <van-tabs v-model="active" :swipe-threshold="3" @change="tabChange">
<div>负责人姓名:{{item.realName}}</div> <van-tab v-for="(item,index) in checkedConfirmList" :key="index" :title="item.title">
<div>检查名称:{{item.name}}</div> <div class="card" v-for="(it,index) in item.list" :key="index" @click="cardLocation(it)">
<div>检查类型:{{item.type}}</div> <div>负责人姓名:{{it.realName}}</div>
<div v-show="item.isOpen"> <div>检查名称:{{it.name}}</div>
<div>检查开始时间:{{item.planStartTime}}</div> <div>检查类型:{{it.type}}</div>
<div>检查结束时间:{{item.planEndTime}}</div> <div v-show="it.isOpen">
<div>检查地点:{{item.address}}</div> <div>检查开始时间:{{it.planStartTime}}</div>
<div>是否完成检查:{{item.finish?'是':'否'}}</div> <div>检查结束时间:{{it.planEndTime}}</div>
<div>问题数量:{{item.troubleNumber}}</div> <div>检查地点:{{it.address}}</div>
</div> <div>是否完成检查:{{it.finish?'是':'否'}}</div>
<div class="more" @click.stop="toggle(item)"> <div>问题数量:{{it.troubleNumber}}</div>
{{ item.OpenText }} </div>
</div> <div class="more" @click.stop="toggle(it)">
</div> {{ it.OpenText }}
</div>
</div>
</van-tab>
</van-tabs>
<tab-bar :index="1"></tab-bar> <tab-bar :index="1"></tab-bar>
</div> </div>
</template> </template>
...@@ -52,9 +56,21 @@ export default { ...@@ -52,9 +56,21 @@ export default {
}, },
data() { data() {
return { return {
title:'待完成',//默认选中状态的tab页签
active:'0',//默认选中状态
status:'unconfirm',//默认完成状态
value:'',//列表搜索关键字值 value:'',//列表搜索关键字值
goback:'save-workbench',//返回工作台 goback:'save-workbench',//返回工作台
noticeList:[],//整改通知管理列表 checkedConfirmList:[
{
title:'待完成',
list:[]
},
{
title:'已完成',
list:[]
}
],//整改通知管理列表
text:'整改通知管理', text:'整改通知管理',
} }
}, },
...@@ -64,20 +80,32 @@ export default { ...@@ -64,20 +80,32 @@ export default {
methods: { methods: {
/* 请求整改通知列表 */ /* 请求整改通知列表 */
init(){ init(){
this.noticeList=[] // this.noticeList=[]
this.clearTab()
this.$toast.loading({ this.$toast.loading({
message:'加载中...', message:'加载中...',
forbidClick: true, forbidClick: true,
loadingType: 'spinner', loadingType: 'spinner',
duration: 0 duration: 0
}) })
getFun('check/notify/list',{select:this.value}).then((Response)=>{ getFun('check/notify/list',{select:this.value,status:this.status}).then((Response)=>{
this.$toast.clear() this.$toast.clear()
this.noticeList=Response.data this.checkedConfirmList.forEach((item)=>{
this.noticeList.forEach((item)=>{ if(item.title==this.title){
item.isOpen=false item.list=Response.data[0].list
item.OpenText="展开 ▼"; item.list.forEach((it)=>{
it.isOpen=false
it.OpenText="展开 ▼";
})
}
}) })
// this.checkedConfirmList=Response.data
// this.checkedConfirmList.forEach((item)=>{
// item.list.forEach((it)=>{
// it.isOpen=false
// it.OpenText="展开 ▼";
// })
// })
}) })
}, },
/* 搜索查询列表接口 */ /* 搜索查询列表接口 */
...@@ -107,6 +135,21 @@ export default { ...@@ -107,6 +135,21 @@ export default {
// 只显示第一个数据 // 只显示第一个数据
} }
this.$forceUpdate() this.$forceUpdate()
},
//清空tab列表数据
clearTab(){
this.checkedConfirmList.forEach((it)=>{
it.list=[]
})
},
tabChange(name,title){
if(name=='0'){
this.status='unconfirm'
}else{
this.status='confirmed'
}
this.title=title
this.init()
} }
} }
} }
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<div>视频展示: <div>视频展示:
<van-uploader multiple :deletable="false" :show-upload="false" v-model="list.videos" > <van-uploader multiple :deletable="false" :show-upload="false" v-model="list.videos" >
<template #preview-cover="{ url }"> <template #preview-cover="{ url }">
<video muted autoplay :src="url" style="width:80px;height:80px;object-fit:cover;"></video> <video muted autoplay :src="url" style="width:100%;height:100%;object-fit:cover;"></video>
</template> </template>
</van-uploader> </van-uploader>
</div> </div>
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
</div> </div>
</van-checkbox-group> </van-checkbox-group>
<div class="page-footer"> <div class="page-footer">
<van-checkbox v-model="checkedAll" @change="checkedAllEvent" @click="checkedAllClick" :disabled="finish=='true'?true:false">全选</van-checkbox> <van-checkbox v-model="checkedAll" @change="checkedAllEvent" @click="checkedAllClick" v-if="noticeQuestionList.length>0" :disabled="finish=='true'?true:false">全选</van-checkbox>
</div> </div>
<van-field <van-field
readonly readonly
...@@ -94,6 +94,14 @@ ...@@ -94,6 +94,14 @@
<van-popup v-model="showCalendar2" position="bottom"> <van-popup v-model="showCalendar2" position="bottom">
<van-picker ref="apicker" title="人员匹配" show-toolbar :columns="columns" @confirm="personOnConfirm" @cancel="showCalendar2=false"/> <van-picker ref="apicker" title="人员匹配" show-toolbar :columns="columns" @confirm="personOnConfirm" @cancel="showCalendar2=false"/>
</van-popup> </van-popup>
<van-field name="notifyType" label="确认次数">
<template #input>
<van-radio-group v-model="notifyType" :disabled="notifyTypes" direction="horizontal">
<van-radio name="1">一次确认</van-radio>
<van-radio name="2">二次确认</van-radio>
</van-radio-group>
</template>
</van-field>
<!-- <van-calendar v-model="showCalendar" @confirm="onConfirm" /> --> <!-- <van-calendar v-model="showCalendar" @confirm="onConfirm" /> -->
<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="sign2"><span>项目经理签字确认:</span><van-tag color="#ffe1e1" :disabled="finish=='true'?true:false"><p v-show="istext2" @click="sign2" >电子签字</p><img class="sign-img2" v-show="isImg2" :src="resultImg2" alt=""></van-tag></div> --> <!-- <div class="sign2"><span>项目经理签字确认:</span><van-tag color="#ffe1e1" :disabled="finish=='true'?true:false"><p v-show="istext2" @click="sign2" >电子签字</p><img class="sign-img2" v-show="isImg2" :src="resultImg2" alt=""></van-tag></div> -->
...@@ -122,6 +130,7 @@ ...@@ -122,6 +130,7 @@
<div class="card"> <div class="card">
<div>整改完成时间:{{value}}</div> <div>整改完成时间:{{value}}</div>
<div>人员组:{{person}}</div> <div>人员组:{{person}}</div>
<div>确认类别:{{notifyType+'次确认'}}</div>
</div> </div>
<!-- </van-checkbox-group> --> <!-- </van-checkbox-group> -->
<!-- <div class="page-footer"> <!-- <div class="page-footer">
...@@ -177,6 +186,8 @@ export default { ...@@ -177,6 +186,8 @@ export default {
}, },
data() { data() {
return { return {
notifyTypeS:false,//是否禁用确认选择
notifyType:'1',//确认次数
currentDate: new Date(),//当前默认时间 currentDate: new Date(),//当前默认时间
dialogShow:false,//弹框是否显示 dialogShow:false,//弹框是否显示
istext:true,//是否显示文字 istext:true,//是否显示文字
...@@ -221,6 +232,8 @@ export default { ...@@ -221,6 +232,8 @@ export default {
if(this.$route.params.name=='notice'){ if(this.$route.params.name=='notice'){
//清空表单 //清空表单
this.value="" this.value=""
this.notifyTypes=false
this.notifyType="1"
this.person="" this.person=""
this.active=0 this.active=0
this.checkedAll=false this.checkedAll=false
...@@ -353,6 +366,9 @@ export default { ...@@ -353,6 +366,9 @@ export default {
this.noticeQuestionList.forEach((item)=>{ this.noticeQuestionList.forEach((item)=>{
item.show=false item.show=false
}) })
this.notifyType=Response.data.notifyType
this.notifyType=this.notifyType?this.notifyType.toString():'1'
this.notifyTypes=Response.data.notifyTypeEq2
/* ----详情---- */ /* ----详情---- */
if(this.isFinish){ if(this.isFinish){
this.person=Response.data.userName this.person=Response.data.userName
...@@ -466,7 +482,9 @@ export default { ...@@ -466,7 +482,9 @@ export default {
troubleIds:checkedList, troubleIds:checkedList,
finishTime:this.value, finishTime:this.value,
leaderSign:this.resultImg, leaderSign:this.resultImg,
notifyType:this.notifyType
} }
console.log()
//判断projectId是否为null决定id传值类别 //判断projectId是否为null决定id传值类别
if(this.projectId!='null'){ if(this.projectId!='null'){
obj.checkUserId=this.ids[0] obj.checkUserId=this.ids[0]
...@@ -482,7 +500,9 @@ export default { ...@@ -482,7 +500,9 @@ export default {
title: '提示', title: '提示',
message: '确定生成整改通知单?', message: '确定生成整改通知单?',
}).then(()=>{ }).then(()=>{
if(checkedList.length==0){this.$toast.fail('提交失败,请至少选择一个问题');return} if(this.noticeQuestionList.length>0){
if(checkedList.length==0){this.$toast.fail('提交失败,请至少选择一个问题');return}
}
var success=true var success=true
var num=0 var num=0
this.noticeTableList.forEach((item)=>{ this.noticeTableList.forEach((item)=>{
......
...@@ -455,7 +455,7 @@ export default { ...@@ -455,7 +455,7 @@ export default {
}, },
activated() { activated() {
this.showSetRank = false; // 再次关闭弹出层 以防万一 this.showSetRank = false; // 再次关闭弹出层 以防万一
if (this.$route.params.status) { if (this.$route.params.taskId) {
this.isShowreturnCause = true; this.isShowreturnCause = true;
this.text = "风险上报退回"; this.text = "风险上报退回";
this.taskId = this.$route.params.taskId; this.taskId = this.$route.params.taskId;
...@@ -579,7 +579,7 @@ export default { ...@@ -579,7 +579,7 @@ export default {
}; };
}, },
created() { created() {
if (this.$route.params.status) { if (this.$route.params.taskId) {
this.isShowreturnCause = true; this.isShowreturnCause = true;
this.text = "风险上报退回"; this.text = "风险上报退回";
this.taskId = this.$route.params.taskId; this.taskId = this.$route.params.taskId;
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
> >
<van-row gutter=""> <van-row gutter="">
<van-col span="7">所属项目:</van-col> <van-col span="7">所属项目:</van-col>
<van-col span="17">{{ item.proId }}</van-col> <van-col span="17">{{ item.proId || item.pId }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7">风险等级:</van-col> <van-col span="7">风险等级:</van-col>
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7">管控层级:</van-col> <van-col span="7">管控层级:</van-col>
<van-col span="17">{{ item.controllevel }}</van-col> <van-col span="17">{{ item.controllevel || item.controlLevel}}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7">主责部门:</van-col> <van-col span="7">主责部门:</van-col>
...@@ -36,9 +36,9 @@ ...@@ -36,9 +36,9 @@
<van-col span="7">主责人员:</van-col> <van-col span="7">主责人员:</van-col>
<van-col span="17">{{ item.responsibilityMember }}</van-col> <van-col span="17">{{ item.responsibilityMember }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="" v-if="item.taskName">
<van-col span="7">工单状态:</van-col> <van-col span="7">工单状态:</van-col>
<van-col span="17">{{ item.taskName }}</van-col> <van-col span="17">{{ item.taskName}}</van-col>
</van-row> </van-row>
<!-- 详情 --> <!-- 详情 -->
<div class="detail">详情</div> <div class="detail">详情</div>
...@@ -126,7 +126,7 @@ export default { ...@@ -126,7 +126,7 @@ export default {
beforeRouteEnter(to, from, next) { beforeRouteEnter(to, from, next) {
next((vm) => { next((vm) => {
if (from.name === "risk-confirme") { if (from.name === "center"||from.name === "risk-confirme") {
vm.messageList = []; vm.messageList = [];
let paramsData = to.params.data; let paramsData = to.params.data;
vm.taskId = paramsData.taskId; vm.taskId = paramsData.taskId;
......
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