Commit e3ccbb71 authored by 13841799530's avatar 13841799530

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

parents 7fb88e49 833cb49a
...@@ -11,7 +11,9 @@ ...@@ -11,7 +11,9 @@
<template> <template>
<div id="app"> <div id="app">
<transition :name="transitionName"> <transition :name="transitionName">
<keep-alive :include="cachePage">
<router-view class="router-view" /> <router-view class="router-view" />
</keep-alive>
</transition> </transition>
</div> </div>
</template> </template>
...@@ -20,7 +22,8 @@ ...@@ -20,7 +22,8 @@
export default { export default {
data () { data () {
return { return {
transitionName: 'slide-left' transitionName: 'slide-left',
cachePage:["add-danger","change-info","affirm-danger","risk-affirm","manager-survey","super-survey","major-survey"]
} }
}, },
watch: { watch: {
......
...@@ -464,29 +464,31 @@ const routes = [{ ...@@ -464,29 +464,31 @@ const routes = [{
// 风险模块
{ {
path: '/risk', path: '/risk-add',
name: 'risk', name: 'risk-add',
meta: { meta: {
title: '风险', title: '风险上报',
index: 1 index: 1
}, },
component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk'), component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskAdd'),
}, },
{ {
path: '/risk-add', path: '/matrix-grad',
name: 'risk-add', name: 'matrix-grad',
meta: { meta: {
title: '风险上报', title: '矩阵式定级',
index: 1 index: 1
}, },
component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskAdd'), component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskAdd/matrixGrad'),
}, },
{ {
path: '/risk-return', path: '/risk-return',
name: 'risk-return', name: 'risk-return',
meta: { meta: {
title: '风险上报', title: '风险上报退回列表',
index: 1 index: 1
}, },
component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskReturn'), component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskReturn'),
...@@ -511,15 +513,6 @@ const routes = [{ ...@@ -511,15 +513,6 @@ const routes = [{
}, },
component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskConfirme/riskAffirm'), component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskConfirme/riskAffirm'),
}, },
{
path: '/affirm-detail',
name: 'affirm-detail',
meta: {
title: '风险确认详情',
index: 1
},
component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/risk/riskConfirme/affirmDetail'),
},
{ {
path: '/risk-account', path: '/risk-account',
name: 'risk-account', name: 'risk-account',
......
...@@ -193,6 +193,15 @@ export function majorList(url, data) { ...@@ -193,6 +193,15 @@ export function majorList(url, data) {
}) })
} }
//重大隐患添加
export function majorAdd(url, data) {
return request({
url: url,
method: 'post',
data
})
}
//隐患督办 //隐患督办
export function superviseList(url, data) { export function superviseList(url, data) {
return request({ return request({
...@@ -203,7 +212,7 @@ export function superviseList(url, data) { ...@@ -203,7 +212,7 @@ export function superviseList(url, data) {
} }
//经理督办 //经理督办
export function superviseSABList(url, data) { export function superviseSABlist(url, data) {
return request({ return request({
url: url, url: url,
method: 'post', method: 'post',
...@@ -211,6 +220,54 @@ export function superviseSABList(url, data) { ...@@ -211,6 +220,54 @@ export function superviseSABList(url, data) {
}) })
} }
//经理督办添加
export function superviseAdd(url, data) {
return request({
url: url,
method: 'post',
data
})
}
//延期审批
export function delayList(url, data) {
return request({
url: url,
method: 'post',
data
})
}
//延期审批退回回显
export function delayReturn(url, data) {
return request({
url: url,
method: 'get',
data
})
}
//延期审批添加
export function delayAdd(url, data) {
return request({
url: url,
method: 'post',
data
})
}
//延期审批添加
export function delayEdit(url, data) {
return request({
url: url,
method: 'post',
data
})
}
/*接口对接1 START*/ /*接口对接1 START*/
......
...@@ -26,6 +26,17 @@ export function postHdType(url,data) { ...@@ -26,6 +26,17 @@ export function postHdType(url,data) {
data data
}) })
} }
// 各种措施
export function postMeasures(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 主责人员 // 主责人员
export function postHdPeople(url,data) { export function postHdPeople(url,data) {
return request({ return request({
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
欢迎登录<span>首开集团安全隐患排查治理体系</span>! 欢迎登录<span>首开集团安全隐患排查治理体系</span>!
</div> </div>
<div class="login-form"> <div class="login-form">
<van-form @submit="onSubmit"> <van-form @submit="onSubmit" :show-error-message="false" >
<div class="username-wrap"> <div class="username-wrap">
<div class="username-icon"> <div class="username-icon">
<van-image :src="require('@/assets/login/login-username.png')" /> <van-image :src="require('@/assets/login/login-username.png')" />
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
name="username" name="username"
label="" label=""
placeholder="账号" placeholder="账号"
:rules="[{ required: true, message: '请填写用户名' }]" :rules="[{ required: true, message: '请填写账号' }]"
/> />
</div> </div>
<div class="passworld-wrap"> <div class="passworld-wrap">
......
...@@ -130,6 +130,7 @@ ...@@ -130,6 +130,7 @@
type="datetime" type="datetime"
@confirm="onConFindTime" @confirm="onConFindTime"
@cancel="showFindTime = false" @cancel="showFindTime = false"
v-model="findDateTime"
/> />
</van-popup> </van-popup>
...@@ -143,6 +144,7 @@ ...@@ -143,6 +144,7 @@
@click="showSource = true" @click="showSource = true"
:rules="[{ required: true, message: '风险源不能为空' }]" :rules="[{ required: true, message: '风险源不能为空' }]"
/> />
<van-popup v-model="showSource" position="bottom"> <van-popup v-model="showSource" position="bottom">
<van-picker <van-picker
show-toolbar show-toolbar
...@@ -153,7 +155,7 @@ ...@@ -153,7 +155,7 @@
/> />
</van-popup> </van-popup>
<van-field <!-- <van-field
readonly readonly
clickable clickable
name="dangerSource" name="dangerSource"
...@@ -163,7 +165,6 @@ ...@@ -163,7 +165,6 @@
placeholder="请选择" placeholder="请选择"
:rules="[{ required: true, message: '风险源不能为空' }]" :rules="[{ required: true, message: '风险源不能为空' }]"
/> />
<!-- @click="goSelectTwo" -->
<van-popup v-model="showSource1" position="bottom"> <van-popup v-model="showSource1" position="bottom">
<van-picker <van-picker
...@@ -173,7 +174,20 @@ ...@@ -173,7 +174,20 @@
@confirm="onConSource1" @confirm="onConSource1"
@cancel="showSource1 = false" @cancel="showSource1 = false"
/> />
</van-popup> </van-popup> -->
<van-field
v-model="source1"
readonly
rows="3"
autosize
label=" "
name="dangerSource"
type="textarea"
@click="goSelectTwo"
placeholder="请选择"
:rules="[{ required: true, message: '隐患描述不能为空' }]"
/>
<van-field <van-field
v-model="location" v-model="location"
...@@ -193,10 +207,7 @@ ...@@ -193,10 +207,7 @@
:rules="[{ required: true, message: '隐患描述不能为空' }]" :rules="[{ required: true, message: '隐患描述不能为空' }]"
/> />
<van-field <van-field name="hdPicture1" label="隐患照片">
name="hdPicture1"
label="隐患照片"
>
<template #input> <template #input>
<van-uploader v-model="uploaderImg" /> <van-uploader v-model="uploaderImg" />
</template> </template>
...@@ -204,7 +215,7 @@ ...@@ -204,7 +215,7 @@
<van-field name="hdVideo1" label="隐患视频"> <van-field name="hdVideo1" label="隐患视频">
<template #input> <template #input>
<van-uploader v-model="uploaderVideo" /> <van-uploader v-model="uploaderVideo" accept="video/*" />
</template> </template>
</van-field> </van-field>
<van-field <van-field
...@@ -249,7 +260,7 @@ ...@@ -249,7 +260,7 @@
> >
</div> </div>
</van-form> </van-form>
<div style="margin:10px 16px 0px;padding-bottom:16px"> <div style="margin: 10px 16px 0px; padding-bottom: 16px">
<van-button round block type="warning" @click.native="cancel" <van-button round block type="warning" @click.native="cancel"
>取消</van-button >取消</van-button
> >
...@@ -271,25 +282,69 @@ import { ...@@ -271,25 +282,69 @@ import {
dangerReturnEcho, dangerReturnEcho,
} from "@/service/danger"; } from "@/service/danger";
export default { export default {
name: "add-danger",
components: { components: {
LHeader LHeader,
}, },
created() { activated() {
this.taskId = this.$route.params.taskId this.taskId = this.$route.params.taskId;
if (this.taskId) { if (this.taskId) {
this.isShowreturnCause = true; this.isShowreturnCause = true;
this.text = "隐患上报退回"; this.text = "隐患上报退回";
this.postReturnEcho() this.postReturnEcho();
console.log(this.taskId);
console.log(Boolean( this.taskId));
} }
console.log("taskid"+this.taskId);
this.getList(); this.getList();
this.$bus.$on("sourceAyy", res => {
this.source1 = res.join(",");
});
},
beforeRouteLeave(to, from, next) {
if (to.name != "choose-people") {
// 如果去的路由是
this.projectId = ""; // 所属工程
this.taskId = "";
this.projectName = "";
this.showProjectName = false;
this.columnsProjectName = [];
this.range = ""; //适用范围
this.showRange = false;
this.columnsRange = [];
this.type = ""; //隐患类型
this.showType = false;
this.columnsType = [];
this.dangerName = ""; //隐患项目名称
this.showDangerName = false;
this.columnsDangerName = [];
this.dangerNum = ""; //隐患项目编号
this.dangerLevel = ""; //隐患项目级别
this.findTime = ""; //隐患发现时间
this.showFindTime = false;
this.source = ""; // 风险源
this.showSource = false;
this.columnsSource = [];
this.source1 = ""; // 风险源第二个字段
this.showSource1 = false;
this.columnsSource1 = [];
this.location = ""; // 检查部位
this.describe = ""; // 隐患描述
this.uploaderImg = []; //图像上传
this.uploaderVideo = []; //视频上传
this.expireTime = ""; // 隐患到期时间
this.showExpireTime = false;
this.recPeople = "";
this.showRecPeople = false;
this.columnsRecPeople = [];
this.isShowreturnCause = false;
this.returnCause = ""; // 退回原因
}
next();
}, },
data() { data() {
return { return {
text: "新增隐患", text: "新增隐患",
taskId:"", taskId: "",
projectId: "", // 所属工程 projectId: "", // 所属工程
projectName: "", projectName: "",
showProjectName: false, showProjectName: false,
...@@ -323,50 +378,55 @@ export default { ...@@ -323,50 +378,55 @@ export default {
showRecPeople: false, showRecPeople: false,
columnsRecPeople: [], columnsRecPeople: [],
isShowreturnCause: false, isShowreturnCause: false,
returnCause: "" // 退回原因 returnCause: "", // 退回原因
findDateTime : new Date()
}; };
}, },
mounted(){ created() {
// this.$bus.$on("sourceAyy", res =>{
// console.log(res.join(","));
// })
}, },
methods: { methods: {
onSubmit(values) { onSubmit(values) {
console.log("submit", values); console.log("submit", values);
let formdata = new FormData() let formdata = new FormData();
formdata.append("proId", this.projectId)
formdata.append("hdRange", values.hdRange) formdata.append("proId", this.projectId);
formdata.append("hdType", values.hdType) formdata.append("hdRange", values.hdRange);
formdata.append("hdProjectName", values.hdProjectName) formdata.append("hdType", values.hdType);
formdata.append("hdProjectId", values.hdProjectId) formdata.append("hdProjectName", values.hdProjectName);
formdata.append("hdLev", values.hdLev) formdata.append("hdProjectId", values.hdProjectId);
formdata.append("hdDiscoveryTime", values.hdDiscoveryTime) formdata.append("hdLev", values.hdLev);
formdata.append("dangerId", values.dangerId) formdata.append("hdDiscoveryTime", values.hdDiscoveryTime);
formdata.append("dangerSource", values.dangerSource) formdata.append("dangerId", values.dangerId);
formdata.append("hdPosition", values.hdPosition) formdata.append("dangerSource", values.dangerSource);
formdata.append("hdDescribe", values.hdDescribe) formdata.append("hdPosition", values.hdPosition);
formdata.append("hdPicture1[]", values.hdPicture1) formdata.append("hdDescribe", values.hdDescribe);
formdata.append("hdVideo1[]", values.hdVideo1) formdata.append("hdExpirationTime", values.hdExpirationTime);
formdata.append("hdExpirationTime", values.hdExpirationTime) formdata.append("rectificationUser", values.rectificationUser);
formdata.append("rectificationUser", values.rectificationUser) // 放图片路径 因为formdat存数组会自动变成字符串所以次用这种追加字段的方式
values.hdPicture1.forEach((item) => {
formdata.append("hdPicture1[]", item.file);
});
values.hdVideo1.forEach((item) => {
formdata.append("hdVideo1[]", item.file);
});
this.$toast.loading({ this.$toast.loading({
message: "提交中...", message: "提交中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0,
}); });
let url = "/hdreport/add" let url = "/hdreport/add";
if(this.taskId){ if (this.taskId) {
url = `/hdreport/editSave/${this.taskId}` url = `/hdreport/editSave/${this.taskId}`;
} }
postHdReportAdd(url, formdata) postHdReportAdd(url, formdata)
.then(res => { .then((res) => {
this.$toast.clear(); this.$toast.clear();
this.$toast.success({ this.$toast.success({
message: "提交成功", message: "提交成功",
duration: 2000 duration: 2000,
}); });
history.go(-1); history.go(-1);
}) })
...@@ -381,10 +441,10 @@ export default { ...@@ -381,10 +441,10 @@ export default {
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0,
}); });
getFormList("/hdreport/add") getFormList("/hdreport/add")
.then(res => { .then((res) => {
this.$toast.clear(); this.$toast.clear();
this.columnsProjectName = res.data.projectInformations; this.columnsProjectName = res.data.projectInformations;
this.columnsRange = res.data.hdInventories; this.columnsRange = res.data.hdInventories;
...@@ -397,41 +457,18 @@ export default { ...@@ -397,41 +457,18 @@ export default {
}, },
// 请求已退回详情数据 // 请求已退回详情数据
postReturnEcho(){ postReturnEcho() {
this.$toast.loading({ this.$toast.loading({
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0,
}); });
dangerReturnEcho(`/hdreport/edit/${this.taskId}`) dangerReturnEcho(`/hdreport/edit/${this.taskId}`)
.then(res => { .then((res) => {
this.$toast.clear(); this.$toast.clear();
let msg = res.data.hdReport
// 对数据进行赋值 // 对数据进行赋值
this.returnCause = res.data.reason; this.returnCause = res.data.reason;
this.projectId = msg.proId;
// 对所属工程数组筛选出 相同id 的工程名
let name = this.columnsProjectName.filter(item =>{
return item.id == msg.proId
})
this.projectName = name[0].projectName
this.range = msg.hdRange
this.type = msg.hdType
this.dangerName = msg.hdProjectName
this.dangerNum = msg.hdProjectId
this.dangerLevel = msg.hdLev
this.findTime = msg.hdDiscoveryTime
this.source = msg.dangerId
this.source1 = msg.dangerSource
this.location = msg.hdPosition
this.describe = msg.hdDescribe
this.hdPicture1 = msg.hdPicture1
this.hdVideo1 = msg.hdVideo1
this.expireTime = msg.hdExpirationTime
this.recPeople = msg.rectificationUser
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -441,50 +478,66 @@ export default { ...@@ -441,50 +478,66 @@ export default {
// 所属工程名称 // 所属工程名称
onConProjectName(value) { onConProjectName(value) {
if(!value){
this.showProjectName = false;
return
}
this.projectId = value.id; this.projectId = value.id;
this.projectName = value.projectName; this.projectName = value.projectName;
this.showProjectName = false; this.showProjectName = false;
// 这里请求隐患整改人接口 // 这里请求隐患整改人接口
postHdShowPeople(`/hdreport/showPeople/${this.projectId}`).then(res => { postHdShowPeople(`/hdreport/showPeople/${this.projectId}`).then((res) => {
this.columnsRecPeople = res.data; this.columnsRecPeople = res.data;
}); });
}, },
// 适用范围 // 适用范围
onConRange(value) { onConRange(value) {
if(!value){
this.showRange = false;
return
}
this.range = value.hdRange; this.range = value.hdRange;
this.showRange = false; this.showRange = false;
this.type = "" this.type = "";
this.dangerName = "" this.dangerName = "";
this.dangerNum = "" this.dangerNum = "";
this.dangerLevel = "" this.dangerLevel = "";
// 去请求隐患类型的数据 // 去请求隐患类型的数据
postHdTyp(`/hdreport/showHdType/${this.range}`).then(res => { postHdTyp(`/hdreport/showHdType/${this.range}`).then((res) => {
this.columnsType = res.data; this.columnsType = res.data;
}); });
}, },
// 隐患类型 // 隐患类型
onConType(value) { onConType(value) {
if(!value){
this.showType = false;
return
}
this.type = value.hdType; this.type = value.hdType;
this.showType = false; this.showType = false;
this.dangerName = "" this.dangerName = "";
this.dangerNum = "" this.dangerNum = "";
this.dangerLevel = "" this.dangerLevel = "";
// 请求隐患项目名称的数据 // 请求隐患项目名称的数据
console.log(this.range); console.log(this.range);
postHdName(`/hdreport/showHdName/${this.range}/${this.type}`).then( postHdName(`/hdreport/showHdName/${this.range}/${this.type}`).then(
res => { (res) => {
this.columnsDangerName = res.data; this.columnsDangerName = res.data;
} }
); );
}, },
// 隐患项目名称 // 隐患项目名称
onConDangerName(value) { onConDangerName(value) {
if(!value){
this.showDangerName = false;
return
}
this.dangerName = value.hdName; this.dangerName = value.hdName;
this.showDangerName = false; this.showDangerName = false;
// 请求隐患项目编号和隐患级别 // 请求隐患项目编号和隐患级别
postHdInventories( postHdInventories(
`/hdreport/showHdInventories/${this.range}/${this.type}/${this.dangerName}` `/hdreport/showHdInventories/${this.range}/${this.type}/${this.dangerName}`
).then(res => { ).then((res) => {
this.dangerNum = res.data[0].hdId; this.dangerNum = res.data[0].hdId;
this.dangerLevel = res.data[0].hdLev; this.dangerLevel = res.data[0].hdLev;
}); });
...@@ -496,12 +549,16 @@ export default { ...@@ -496,12 +549,16 @@ export default {
}, },
// 风险源 // 风险源
onConSource(value) { onConSource(value) {
if(!value){
this.showSource = false;
return
}
this.source = value.factor; this.source = value.factor;
this.showSource = false; this.showSource = false;
// 请求风险源第二个字段 // 请求风险源第二个字段
let formdata = new FormData(); let formdata = new FormData();
formdata.append("factor", this.source); formdata.append("factor", this.source);
postHdRiskSource("/riskSource/list", formdata).then(res => { postHdRiskSource("/riskSource/list", formdata).then((res) => {
this.columnsSource1 = res.data; this.columnsSource1 = res.data;
}); });
}, },
...@@ -510,19 +567,19 @@ export default { ...@@ -510,19 +567,19 @@ export default {
this.source1 = value.riskSource; this.source1 = value.riskSource;
this.showSource1 = false; this.showSource1 = false;
}, },
// goSelectTwo(){ goSelectTwo() {
// if(this.source){ if (this.source) {
// // 跳转到多选页面 // 跳转到多选页面
// this.$router.push({ this.$router.push({
// name: "choose-people", name: "choose-people",
// params:{ params: {
// source:this.source source: this.source,
// } },
// }) });
// }else{ } else {
// this.$toast("请先选择风险源"); this.$toast("请先选择风险源");
// } }
// }, },
// 隐患到期时间 // 隐患到期时间
onConExpireTime(date) { onConExpireTime(date) {
this.expireTime = timestampToTime(date, "DT1", true); this.expireTime = timestampToTime(date, "DT1", true);
...@@ -530,6 +587,10 @@ export default { ...@@ -530,6 +587,10 @@ export default {
}, },
// 隐患整改人 // 隐患整改人
onConRecPeople(value) { onConRecPeople(value) {
if(!value){
this.showRecPeople = false;
return
}
this.recPeople = value.userName; this.recPeople = value.userName;
this.showRecPeople = false; this.showRecPeople = false;
}, },
...@@ -537,8 +598,7 @@ export default { ...@@ -537,8 +598,7 @@ export default {
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
}, },
},
}
}; };
</script> </script>
<style scoped> <style scoped>
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
</van-checkbox-group> </van-checkbox-group>
<div class="footer-con"> <div class="footer-con">
<div style="color: #1989fa;">已选择: {{result.length}}</div> <div style="color: #1989fa;">已选择: {{result.length}}</div>
<div> <div>
<van-button type="info" @click="confirm">确定</van-button> <van-button type="info" @click="confirm">确定</van-button>
</div> </div>
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group
v-for="(item, index) in messageList"
:key="index"
inset
@click="goDetail(item.taskId)"
>
<van-row gutter="">
<van-col span="5">所属项目:</van-col>
<van-col span="19">{{ item.proId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">隐患级别:</van-col>
<van-col span="19">{{ item.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">适用范围:</van-col>
<van-col span="19">{{ item.hdRange }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">隐患类型:</van-col>
<van-col span="19">{{ item.hdType }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">发现时间:</van-col>
<van-col span="19">{{ item.hdDiscoveryTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">超期标识:</van-col>
<van-col span="19">{{ item.dueDate | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">状态:</van-col>
<van-col span="19">{{ item.taskName }}</van-col>
</van-row>
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:show-error="false" :show-error="false"
...@@ -27,10 +65,7 @@ ...@@ -27,10 +65,7 @@
:rules="[{ required: true, message: '隐患整改详情描述不能为空' }]" :rules="[{ required: true, message: '隐患整改详情描述不能为空' }]"
/> />
<van-field <van-field name="uploader" label="整改照片" :rules="[{ required: true, message: '整改照片不能为空' }]">
name="uploader"
label="整改照片"
>
<template #input> <template #input>
<van-uploader v-model="uploaderImg" /> <van-uploader v-model="uploaderImg" />
</template> </template>
...@@ -38,7 +73,7 @@ ...@@ -38,7 +73,7 @@
<van-field name="uploader2" label="整改视频"> <van-field name="uploader2" label="整改视频">
<template #input> <template #input>
<van-uploader v-model="uploaderVideo" /> <van-uploader v-model="uploaderVideo" accept="video/*" />
</template> </template>
</van-field> </van-field>
...@@ -60,6 +95,7 @@ ...@@ -60,6 +95,7 @@
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { dangerRectReturn, dangerRectAdd } from "@/service/danger"; import { dangerRectReturn, dangerRectAdd } from "@/service/danger";
export default { export default {
name: "change-info",
components: { components: {
LHeader LHeader
}, },
...@@ -68,6 +104,7 @@ export default { ...@@ -68,6 +104,7 @@ export default {
text: "整改确认", text: "整改确认",
taskId: "", taskId: "",
taskName: "", taskName: "",
messageList: [],
returnCause: "", returnCause: "",
isShowreturnCause: false, isShowreturnCause: false,
value: "", value: "",
...@@ -75,15 +112,28 @@ export default { ...@@ -75,15 +112,28 @@ export default {
uploaderVideo: [] //视频上传 uploaderVideo: [] //视频上传
}; };
}, },
created() { beforeRouteEnter(to, from, next) {
this.taskId = this.$route.params.taskId; next(vm => {
this.taskName = this.$route.params.taskName; if (from.name === "change-danger") {
if (this.taskName == "隐患整改(已退回)") { vm.messageList = []
this.isShowreturnCause = true; let paramsData = to.params.data;
vm.taskId = paramsData.taskId;
vm.taskName = paramsData.taskName;
vm.messageList.push(paramsData);
if (vm.taskName == "隐患整改(已退回)") {
vm.isShowreturnCause = true;
// 请求退回原因 // 请求退回原因
this.getRectReturn(); vm.getRectReturn();
} }
// 清空数据
vm.value="",
vm.uploaderImg=[]; //图像上传
vm.uploaderVideo=[] //视频上传
}
});
}, },
activated() {},
methods: { methods: {
onSubmit(values) { onSubmit(values) {
console.log("submit", values); console.log("submit", values);
...@@ -95,14 +145,19 @@ export default { ...@@ -95,14 +145,19 @@ export default {
}); });
let formdata = new FormData(); let formdata = new FormData();
formdata.append("details", this.value); formdata.append("details", this.value);
// formdata.append("rePicture[]", values.uploader); // 放图片路径 因为formdat存数组会自动变成字符串所以次用这种追加字段的方式
// formdata.append("reVideo[]", values.uploader2); values.uploader.forEach(item => {
formdata.append("rePicture1[]", item.file);
});
values.uploader2.forEach(item => {
formdata.append("reVideo1[]", item.file);
});
// 判断保存的url // 判断保存的url
let url = `/rectification/add1/${this.taskId}`; let url = `/rectification/add1/${this.taskId}`;
if (this.taskName == "隐患整改(已退回)") { if (this.taskName == "隐患整改(已退回)") {
url = `/rectification/add2/${this.taskId}`; url = `/rectification/add2/${this.taskId}`;
} }
dangerRectAdd(url,formdata) dangerRectAdd(url, formdata)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.$toast.success({ this.$toast.success({
...@@ -134,13 +189,64 @@ export default { ...@@ -134,13 +189,64 @@ export default {
this.$toast.fail("加载失败,请稍后再试"); this.$toast.fail("加载失败,请稍后再试");
}); });
}, },
// 详情
goDetail(taskId) {
this.$router.push({
name: "normal-detail",
params: {
id: taskId
}
});
},
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
} }
},
filters: {
formatTime: function(val) {
if (new Date(val).getTime() <= new Date().getTime()) {
return "超期";
} else if (
new Date(val).getTime() >= new Date().getTime() &&
new Date(val).getTime() <= new Date().getTime() + 259200000
) {
return "临期";
} else {
return "正常";
}
}
} }
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0.266667rem 0;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
</style> </style>
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<van-field <van-field
readonly readonly
clickable clickable
name="delayTime" name="applyDate"
:value="delayTime" :value="delayTime"
label="延期时间" label="延期时间"
placeholder="点击选择日期" placeholder="点击选择日期"
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<van-field <van-field
v-model="delayApply" v-model="delayApply"
label="延期理由" label="延期理由"
name="delayApply" name="applyReason"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { timestampToTime } from "@/utils/format"; import { timestampToTime } from "@/utils/format";
import { delayAdd } from "@/service/danger";
export default { export default {
components: { components: {
LHeader LHeader
...@@ -72,8 +73,30 @@ export default { ...@@ -72,8 +73,30 @@ export default {
methods: { methods: {
onSubmit(values) { onSubmit(values) {
console.log("submit", values); console.log("submit", values);
this.$toast.loading({
message: "提交中...",
forbidClick: true,
loadingType: "spinner",
duration: 0,
});
let formdata = new FormData();
formdata.append("applyDate", values.applyDate);
formdata.append("applyReason", values.applyReason);
formdata.append("taskId", this.taskId);
delayAdd(`/delayApply/add`, formdata)
.then((res) => {
this.$toast.clear();
this.$toast.success({
message: "提交成功",
duration: 2000,
});
history.go(-1);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试");
});
}, },
// 延期时间 // 延期时间
onConDelayTime(date) { onConDelayTime(date) {
this.delayTime = timestampToTime(date, "DT1", true); this.delayTime = timestampToTime(date, "DT1", true);
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="read(item)"
@touchstart="touchstart(index, item)" @touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)" @touchend.prevent="touchend(index)"
> >
...@@ -58,6 +57,13 @@ ...@@ -58,6 +57,13 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -72,6 +78,7 @@ export default { ...@@ -72,6 +78,7 @@ export default {
return { return {
text: "隐患整改", text: "隐患整改",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -94,6 +101,10 @@ export default { ...@@ -94,6 +101,10 @@ export default {
dangerRect("/rectification/list").then(res =>{ dangerRect("/rectification/list").then(res =>{
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows this.messageList = res.rows
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}).catch(() => { }).catch(() => {
this.$toast.clear(); this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试"); this.$toast.fail("加载失败,请稍后再试");
...@@ -132,8 +143,7 @@ export default { ...@@ -132,8 +143,7 @@ export default {
this.$router.push({ this.$router.push({
name:"change-info", name:"change-info",
params:{ params:{
"taskId":data.taskId, data: data,
"taskName":data.taskName
} }
}); });
this.showIndex = null; this.showIndex = null;
...@@ -167,7 +177,7 @@ export default { ...@@ -167,7 +177,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="goDetail(item.taskId)"
>
<van-row gutter="">
<van-col span="5">所属项目:</van-col>
<van-col span="19">{{ item.proId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">隐患级别:</van-col>
<van-col span="19">{{ item.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">适用范围:</van-col>
<van-col span="19">{{ item.hdRange }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">隐患类型:</van-col>
<van-col span="19">{{ item.hdType }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">发现时间:</van-col>
<van-col span="19">{{ item.hdDiscoveryTime }}</van-col>
</van-row>
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:show-error="false" :show-error="false"
...@@ -37,6 +67,7 @@ ...@@ -37,6 +67,7 @@
type="datetime" type="datetime"
@confirm="onConfirm" @confirm="onConfirm"
@cancel="showCalendar = false" @cancel="showCalendar = false"
v-model="endDateTime"
/> />
</van-popup> </van-popup>
...@@ -123,12 +154,14 @@ import LHeader from "@/components/header.vue"; ...@@ -123,12 +154,14 @@ import LHeader from "@/components/header.vue";
import { timestampToTime } from "@/utils/format"; import { timestampToTime } from "@/utils/format";
import { getConfirmFormList, dangerConSub } from "@/service/danger"; import { getConfirmFormList, dangerConSub } from "@/service/danger";
export default { export default {
name: "affirm-danger",
components: { components: {
LHeader LHeader
}, },
data() { data() {
return { return {
taskId: "", taskId: "",
messageList: [],
radio: "1", radio: "1",
text: "隐患确认", text: "隐患确认",
value: "", value: "",
...@@ -142,13 +175,33 @@ export default { ...@@ -142,13 +175,33 @@ export default {
columnsReview: [], columnsReview: [],
showPickerReview: false, showPickerReview: false,
valueIdea: "", valueIdea: "",
returnReason: "" returnReason: "",
endDateTime: new Date()
}; };
}, },
created() {
this.taskId = this.$route.params.taskId; beforeRouteEnter(to, from, next) {
this.getFormList(); next(vm => {
if (from.name === "confirme-danger") {
vm.messageList = [];
let paramsData = to.params.data;
vm.taskId = paramsData.taskId;
vm.messageList.push(paramsData);
vm.radio= "1",
vm.value = "";
vm.rectId = ""; // 隐患整改人
vm.valueRect = "";
vm.reviewId = ""; // 隐患复查人
vm.valueReview = "";
vm.valueIdea = "";
vm.returnReason = "";
vm.getFormList();
// 清空数据
}
});
}, },
created() {},
methods: { methods: {
getFormList() { getFormList() {
if (!this.taskId) { if (!this.taskId) {
...@@ -178,19 +231,19 @@ export default { ...@@ -178,19 +231,19 @@ export default {
if (!this.taskId) { if (!this.taskId) {
return; return;
} }
let formdata = new FormData() let formdata = new FormData();
formdata.append('confirmResult', this.radio) formdata.append("confirmResult", this.radio);
formdata.append('endTime', values.endTime) formdata.append("endTime", values.endTime);
formdata.append('rectificationUser', this.rectId) formdata.append("rectificationUser", this.rectId);
formdata.append('rectificationReview', this.reviewId) formdata.append("rectificationReview", this.reviewId);
formdata.append('confirmOpinion', values.confirmOpinion) formdata.append("confirmOpinion", values.confirmOpinion);
this.$toast.loading({ this.$toast.loading({
message: "提交中...", message: "提交中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
dangerConSub(`/confirm/add1/${this.taskId}`,formdata) dangerConSub(`/confirm/add1/${this.taskId}`, formdata)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.$toast.success({ this.$toast.success({
...@@ -216,15 +269,32 @@ export default { ...@@ -216,15 +269,32 @@ export default {
}, },
onConRect(value) { onConRect(value) {
if(!value){
this.showPickerRect = false;
return
}
this.valueRect = value.userName; this.valueRect = value.userName;
this.rectId = value.userId; this.rectId = value.userId;
this.showPickerRect = false; this.showPickerRect = false;
}, },
onConReview(value) { onConReview(value) {
if(!value){
this.showPickerReview = false;
return
}
this.valueReview = value.userName; this.valueReview = value.userName;
this.reviewId = value.userId; this.reviewId = value.userId;
this.showPickerReview = false; this.showPickerReview = false;
}, },
// 详情
goDetail(taskId) {
this.$router.push({
name: "normal-detail",
params: {
id: taskId
}
});
},
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
...@@ -234,4 +304,32 @@ export default { ...@@ -234,4 +304,32 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0.266667rem 0;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
</style> </style>
...@@ -2,13 +2,7 @@ ...@@ -2,13 +2,7 @@
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" /> <van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<van-tabs
v-model="active"
color="#247df7"
title-inactive-colo="#d0d1d1"
title-active-color="#000000"
>
<van-tab title="待确认">
<!-- 内容列表 --> <!-- 内容列表 -->
<div class="con-list"> <div class="con-list">
<van-cell-group <van-cell-group
...@@ -32,7 +26,7 @@ ...@@ -32,7 +26,7 @@
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="5">隐患类型:</van-col> <van-col span="5">隐患类型:</van-col>
<van-col span="19">{{ item.hdTdueDateype }}</van-col> <van-col span="19">{{ item.hdType }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="5">发现时间:</van-col> <van-col span="5">发现时间:</van-col>
...@@ -52,10 +46,13 @@ ...@@ -52,10 +46,13 @@
</van-cell-group> </van-cell-group>
</div> </div>
</van-tab> <!-- 暂无数据 -->
<van-tab title="已确认">已确认</van-tab> <div
<van-tab title="已退回">已退回</van-tab> style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
</van-tabs> v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -64,12 +61,12 @@ import LHeader from "@/components/header.vue"; ...@@ -64,12 +61,12 @@ import LHeader from "@/components/header.vue";
import { dangerConfirm } from "@/service/danger"; import { dangerConfirm } from "@/service/danger";
export default { export default {
components: { components: {
LHeader, LHeader
}, },
data() { data() {
return { return {
text: "隐患确认", text: "隐患确认",
active: "1", isHaveNews: false,
searchValue: "", searchValue: "",
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
...@@ -77,23 +74,29 @@ export default { ...@@ -77,23 +74,29 @@ export default {
}; };
}, },
created() { created() {
this.postList() this.postList();
}, },
methods: { methods: {
onSearch(val) { onSearch(val) {
console.log(val); console.log(val);
}, },
postList(){ postList() {
this.$toast.loading({ this.$toast.loading({
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
dangerConfirm("/confirm/list").then(res =>{ dangerConfirm("/confirm/list")
.then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows this.messageList = res.rows;
}).catch(() => { // 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
})
.catch(() => {
this.$toast.clear(); this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试"); this.$toast.fail("加载失败,请稍后再试");
}); });
...@@ -128,9 +131,9 @@ export default { ...@@ -128,9 +131,9 @@ export default {
goConfirm(data) { goConfirm(data) {
console.log(data); console.log(data);
this.$router.push({ this.$router.push({
name:"affirm-danger", name: "affirm-danger",
params:{ params: {
"taskId":data.taskId data: data,
} }
}); });
this.showIndex = null; this.showIndex = null;
...@@ -141,7 +144,7 @@ export default { ...@@ -141,7 +144,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px .533333rem; padding: 10px 10px 0.533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
...@@ -149,9 +152,9 @@ export default { ...@@ -149,9 +152,9 @@ export default {
padding: 10px; padding: 10px;
font-size: 13px; font-size: 13px;
position: relative; position: relative;
.van-row{ .van-row {
margin-bottom: .133333rem; margin-bottom: 0.133333rem;
line-height: .64rem; line-height: 0.64rem;
} }
.van-overlay { .van-overlay {
position: absolute; position: absolute;
......
...@@ -9,27 +9,26 @@ ...@@ -9,27 +9,26 @@
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="read(item)"
@touchstart="touchstart(index, item)" @touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)" @touchend.prevent="touchend(index)"
> >
<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.businessId }}</van-col>
</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.subject }}</van-col> <van-col span="17">{{ item.proId }}</van-col>
</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.findTime }}</van-col> <van-col span="17">{{ item.hdLev }}</van-col>
</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.level }}</van-col> <van-col span="17">{{ item.startDate }}</van-col>
</van-row> </van-row>
<!-- *接口对接4 END --> <!-- *接口对接4 END -->
...@@ -46,13 +45,20 @@ ...@@ -46,13 +45,20 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { delayList } from "@/service/danger";
...@@ -64,6 +70,7 @@ export default { ...@@ -64,6 +70,7 @@ export default {
return { return {
text: "延期审批", text: "延期审批",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -74,7 +81,29 @@ export default { ...@@ -74,7 +81,29 @@ export default {
}, },
methods: { methods: {
getList() { getList() {
/*接口对接3 START*/
// 例子:
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
delayList("/delayApply/list")
.then(res => {
this.$toast.clear();
this.messageList = res.rows
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
/*接口对接3 END*/
}, },
onSearch(val) { onSearch(val) {
console.log(val); console.log(val);
...@@ -123,7 +152,7 @@ export default { ...@@ -123,7 +152,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
......
...@@ -8,19 +8,18 @@ ...@@ -8,19 +8,18 @@
validate-trigger="onSubmit" validate-trigger="onSubmit"
> >
<van-field <van-field
v-model="delayTime" v-model="applyDate"
name="delayTime" name="applyDate"
label="延期时间" label="延期时间"
placeholder="请输入" placeholder="请输入"
:rules="[{ required: true, message: '延期时间不能为空' }]" :rules="[{ required: true, message: '延期时间不能为空' }]"
/> />
<van-field <van-field
v-model="delayApply" v-model="applyReason"
readonly readonly
label="延期理由" label="延期理由"
name="delayApply" name="applyReason"
rows="1" rows="1"
autosize autosize
type="textarea" type="textarea"
...@@ -42,21 +41,20 @@ ...@@ -42,21 +41,20 @@
<van-field <van-field
v-model="opinion" v-model="opinion"
label="理由或者意见" label="理由或者意见"
name="opinion" name="examineReason"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
:rules="[{ required: true, message: '理由或者意见不能为空' }]" :rules="[{ required: true, message: '理由或者意见不能为空' }]"
/> />
<div style="margin: 16px">
<div style="margin: 16px;">
<van-button round block type="info" native-type="submit" <van-button round block type="info" native-type="submit"
>保存</van-button >保存</van-button
> >
</div> </div>
</van-form> </van-form>
<div style="margin:10px 16px 0px;padding-bottom:16px"> <div style="margin: 10px 16px 0px; padding-bottom: 16px">
<van-button round block type="warning" @click.native="cancel" <van-button round block type="warning" @click.native="cancel"
>取消</van-button >取消</van-button
> >
...@@ -66,10 +64,11 @@ ...@@ -66,10 +64,11 @@
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { timestampToTime } from "@/utils/format"; import { delayReturn } from "@/service/danger";
import { delayEdit } from "@/service/danger";
export default { export default {
components: { components: {
LHeader LHeader,
}, },
data() { data() {
return { return {
...@@ -80,27 +79,71 @@ export default { ...@@ -80,27 +79,71 @@ export default {
delayApply: "", // 延迟理由 delayApply: "", // 延迟理由
isAgree: 1, // 延期是否通过 isAgree: 1, // 延期是否通过
opinion: "", //理由或者意见 opinion: "", //理由或者意见
applyDate: "", //延期时间
applyReason: "", //延期理由
}; };
}, },
created() { created() {
this.taskId = this.$route.params.taskId; this.taskId = this.$route.params.taskId;
this.getReturnEcho();
}, },
methods: { methods: {
onSubmit(values) { onSubmit(values) {
console.log("submit", values); console.log("submit", values);
this.$toast.loading({
message: "提交中...",
forbidClick: true,
loadingType: "spinner",
duration: 0,
});
let formdata = new FormData();
formdata.append("examineResult", values.examineResult);
formdata.append("examineReason", values.examineReason);
formdata.append("taskId", this.taskId);
delayEdit(`/delayApply/edit`, formdata)
.then((res) => {
this.$toast.clear();
this.$toast.success({
message: "提交成功",
duration: 2000,
});
history.go(-1);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试");
});
},
// 请求已退回详情数据
getReturnEcho() {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0,
});
delayReturn(`/delayApply/edit/${this.taskId}`)
.then((res) => {
this.$toast.clear();
// 对数据进行赋值
this.applyDate = res.data.delayApply.applyDate;
this.applyReason = res.data.delayApply.applyReason;
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
}, },
selectResult(val) { selectResult(val) {
this.isAgree = val; this.isAgree = val;
}, },
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
} },
} },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="read(item)"
@touchstart="touchstart(index, item)" @touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)" @touchend.prevent="touchend(index)"
> >
...@@ -47,7 +46,13 @@ ...@@ -47,7 +46,13 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -79,6 +84,7 @@ export default { ...@@ -79,6 +84,7 @@ export default {
return { return {
text: "重大隐患", text: "重大隐患",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -101,6 +107,10 @@ export default { ...@@ -101,6 +107,10 @@ export default {
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows this.messageList = res.rows
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
...@@ -143,9 +153,9 @@ export default { ...@@ -143,9 +153,9 @@ export default {
goConfirm(data) { goConfirm(data) {
console.log(data); console.log(data);
this.$router.push({ this.$router.push({
name:"major-survey", name: "major-survey",
params:{ params: {
"taskId":data.taskId data: data,
} }
}); });
this.showIndex = null; this.showIndex = null;
...@@ -156,7 +166,7 @@ export default { ...@@ -156,7 +166,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="goDetail(item.taskId)"
>
<van-row gutter="">
<van-col span="7">隐患编号:</van-col>
<van-col span="17">{{ item.businessId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.proId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">发现时间:</van-col>
<van-col span="17">{{ item.startDate }}</van-col>
</van-row>
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:show-error='false' :show-error='false'
:scroll-to-error="true" :scroll-to-error="true"
validate-trigger="onSubmit" validate-trigger="onSubmit"
> >
<van-field name="radio" label="隐患复查结果"> <van-field name="isResult" label="隐患复查结果">
<template #input> <template #input>
<van-radio-group <van-radio-group
v-model="radio" v-model="radio"
...@@ -25,7 +54,7 @@ ...@@ -25,7 +54,7 @@
<van-field <van-field
v-model="agreeOpinion" v-model="agreeOpinion"
label="审批意见" label="审批意见"
name="reviewDetails" name="details"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
...@@ -37,7 +66,7 @@ ...@@ -37,7 +66,7 @@
<van-field <van-field
readonly readonly
clickable clickable
name="level" name="thinkHdLev"
:value="thinkLevel" :value="thinkLevel"
label="认为隐患级别" label="认为隐患级别"
placeholder="请选择" placeholder="请选择"
...@@ -57,7 +86,7 @@ ...@@ -57,7 +86,7 @@
<van-field <van-field
v-model="disagreeOpinion" v-model="disagreeOpinion"
label="审批意见" label="审批意见"
name="reviewDetails" name="details"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
...@@ -81,14 +110,16 @@ ...@@ -81,14 +110,16 @@
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { dangerReviewAdd } from "@/service/danger"; import { majorAdd } from "@/service/danger";
export default { export default {
name:"major-survey",
components: { components: {
LHeader LHeader
}, },
data() { data() {
return { return {
taskId: "", taskId: "",
messageList: [],
radio: "1", radio: "1",
text: "重大隐患审批", text: "重大隐患审批",
agreeOpinion: "", agreeOpinion: "",
...@@ -99,9 +130,21 @@ export default { ...@@ -99,9 +130,21 @@ export default {
}; };
}, },
created() { beforeRouteEnter(to, from, next) {
this.taskId = this.$route.params.taskId; next(vm => {
if (from.name === "major-danger") {
vm.messageList = [];
let paramsData = to.params.data;
vm.taskId = paramsData.taskId;
vm.messageList.push(paramsData);
vm.radio = "1";
vm.agreeOpinion = "";
vm.disagreeOpinion = "";
vm.thinkLevel = ""
}
});
}, },
created() {},
methods: { methods: {
selectResult(val) { selectResult(val) {
this.radio = val; this.radio = val;
...@@ -115,22 +158,24 @@ export default { ...@@ -115,22 +158,24 @@ export default {
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
// let formdata = new FormData() let formdata = new FormData()
// formdata.append('reviewResult', this.radio) formdata.append('isResult', values.isResult)
// formdata.append('reviewDetails', values.reviewDetails) formdata.append('details', values.details)
// dangerReviewAdd(`/review/add1/${this.taskId}`,formdata) formdata.append('thinkHdLev', values.thinkHdLev)
// .then(res => { formdata.append('taskId', this.taskId)
// this.$toast.clear(); majorAdd(`/majorapprove/add`,formdata)
// this.$toast.success({ .then(res => {
// message: "提交成功", this.$toast.clear();
// duration: 2000 this.$toast.success({
// }); message: "提交成功",
// history.go(-1); duration: 2000
// }) });
// .catch(() => { history.go(-1);
// this.$toast.clear(); })
// this.$toast.fail("提交失败,请稍后再试"); .catch(() => {
// }); this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试");
});
}, },
// 所属工程名称 // 所属工程名称
...@@ -138,7 +183,15 @@ export default { ...@@ -138,7 +183,15 @@ export default {
this.thinkLevel = value; this.thinkLevel = value;
this.showProjectName = false; this.showProjectName = false;
}, },
// 详情
goDetail(taskId) {
this.$router.push({
name: "normal-detail",
params: {
id: taskId
}
});
},
cancel() { cancel() {
...@@ -149,4 +202,32 @@ export default { ...@@ -149,4 +202,32 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
</style> </style>
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="read(item)"
@touchstart="touchstart(index, item)" @touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)" @touchend.prevent="touchend(index)"
> >
...@@ -45,14 +44,20 @@ ...@@ -45,14 +44,20 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { superviseSABList } from "@/service/danger"; import { superviseList } from "@/service/danger";
/*接口对接2 START*/ /*接口对接2 START*/
// 例子: // 例子:
...@@ -77,6 +82,7 @@ export default { ...@@ -77,6 +82,7 @@ export default {
return { return {
text: "项目经理督办", text: "项目经理督办",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -95,10 +101,14 @@ export default { ...@@ -95,10 +101,14 @@ export default {
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
superviseSABList("/supervise/list") superviseList("/supervise/list")
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.data this.messageList = res.data
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
...@@ -141,9 +151,9 @@ export default { ...@@ -141,9 +151,9 @@ export default {
goConfirm(data) { goConfirm(data) {
console.log(data); console.log(data);
this.$router.push({ this.$router.push({
name:"manager-survey", name: "manager-survey",
params:{ params: {
"taskId":data.taskId data: data,
} }
}); });
this.showIndex = null; this.showIndex = null;
...@@ -154,7 +164,7 @@ export default { ...@@ -154,7 +164,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="goDetail(item.pid)"
>
<van-row gutter="">
<van-col span="7">隐患编号:</van-col>
<van-col span="17">{{ item.hdProjectId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.projectName }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患发现时间:</van-col>
<van-col span="17">{{ item.createTime }}</van-col>
</van-row>
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:show-error='false' :show-error="false"
:scroll-to-error="true" :scroll-to-error="true"
validate-trigger="onSubmit" validate-trigger="onSubmit"
> >
<van-field <van-field
v-model="opinion" v-model="opinion"
label="批示内容" label="批示内容"
name="reviewDetails" name="instructionsContent"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
...@@ -31,23 +57,32 @@ ...@@ -31,23 +57,32 @@
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { dangerReviewAdd } from "@/service/danger"; import { superviseAdd } from "@/service/danger";
export default { export default {
name: "manager-survey",
components: { components: {
LHeader LHeader
}, },
data() { data() {
return { return {
taskId: "", taskId: "",
messageList: [],
text: "项目经理督办批示", text: "项目经理督办批示",
opinion: "", opinion: ""
}; };
}, },
created() { beforeRouteEnter(to, from, next) {
this.taskId = this.$route.params.taskId; next(vm => {
if (from.name === "manager-danger") {
vm.messageList = [];
let paramsData = to.params.data;
vm.taskId = paramsData.taskId;
vm.messageList.push(paramsData);
vm.opinion = "";
}
});
}, },
created() {},
methods: { methods: {
onSubmit(values) { onSubmit(values) {
console.log("submit", values); console.log("submit", values);
...@@ -57,22 +92,30 @@ export default { ...@@ -57,22 +92,30 @@ export default {
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
// let formdata = new FormData() let formdata = new FormData();
// formdata.append('reviewResult', this.radio) formdata.append("instructionsContent", values.instructionsContent);
// formdata.append('reviewDetails', values.reviewDetails) superviseAdd(`/instructions/add`, formdata)
// dangerReviewAdd(`/review/add1/${this.taskId}`,formdata) .then(res => {
// .then(res => { this.$toast.clear();
// this.$toast.clear(); this.$toast.success({
// this.$toast.success({ message: "提交成功",
// message: "提交成功", duration: 2000
// duration: 2000 });
// }); history.go(-1);
// history.go(-1); })
// }) .catch(() => {
// .catch(() => { this.$toast.clear();
// this.$toast.clear(); this.$toast.fail("提交失败,请稍后再试");
// this.$toast.fail("提交失败,请稍后再试"); });
// }); },
// 详情
goDetail(pid) {
this.$router.push({
name: "normal-detail",
params: {
id: pid
}
});
}, },
cancel() { cancel() {
...@@ -83,4 +126,32 @@ export default { ...@@ -83,4 +126,32 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
</style> </style>
...@@ -49,6 +49,13 @@ ...@@ -49,6 +49,13 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -63,6 +70,7 @@ export default { ...@@ -63,6 +70,7 @@ export default {
return { return {
text: "上报退回", text: "上报退回",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -83,6 +91,10 @@ export default { ...@@ -83,6 +91,10 @@ export default {
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows; this.messageList = res.rows;
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
......
...@@ -53,6 +53,13 @@ ...@@ -53,6 +53,13 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -66,6 +73,7 @@ export default { ...@@ -66,6 +73,7 @@ export default {
data() { data() {
return { return {
text: "隐患复查", text: "隐患复查",
isHaveNews: false,
searchValue: "", searchValue: "",
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
...@@ -91,6 +99,10 @@ export default { ...@@ -91,6 +99,10 @@ export default {
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows; this.messageList = res.rows;
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -130,7 +142,7 @@ export default { ...@@ -130,7 +142,7 @@ export default {
this.$router.push({ this.$router.push({
name: "review-add", name: "review-add",
params: { params: {
taskId: data.taskId data: data,
} }
}); });
this.showIndex = null; this.showIndex = null;
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="goDetail(item.taskId)"
>
<van-row gutter="">
<van-col span="5">所属项目:</van-col>
<van-col span="19">{{ item.proId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">隐患级别:</van-col>
<van-col span="19">{{ item.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">适用范围:</van-col>
<van-col span="19">{{ item.hdRange }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">隐患类型:</van-col>
<van-col span="19">{{ item.hdType }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">发现时间:</van-col>
<van-col span="19">{{ item.hdDiscoveryTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">超期标识:</van-col>
<van-col span="19">{{ item | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">状态:</van-col>
<van-col span="19">{{ item.taskName }}</van-col>
</van-row>
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:show-error='false' :show-error='false'
...@@ -34,6 +74,7 @@ ...@@ -34,6 +74,7 @@
<van-field <van-field
name="uploader" name="uploader"
label="隐患复查照片" label="隐患复查照片"
:rules="[{ required: true, message: '隐患复查照片不能为空' }]"
> >
<template #input> <template #input>
<van-uploader v-model="uploaderImg" /> <van-uploader v-model="uploaderImg" />
...@@ -78,6 +119,7 @@ export default { ...@@ -78,6 +119,7 @@ export default {
data() { data() {
return { return {
taskId: "", taskId: "",
messageList: [],
radio: "1", radio: "1",
text: "隐患复查", text: "隐患复查",
detail: "", detail: "",
...@@ -85,9 +127,21 @@ export default { ...@@ -85,9 +127,21 @@ export default {
returnReason: "" returnReason: ""
}; };
}, },
created() { beforeRouteEnter(to, from, next) {
this.taskId = this.$route.params.taskId; next(vm => {
if (from.name === "review-danger") {
vm.messageList = [];
let paramsData = to.params.data;
vm.taskId = paramsData.taskId;
vm.messageList.push(paramsData);
vm.radio= "1";
vm.detail = "";
vm.uploaderImg = []; // 隐患整改人
vm.returnReason = "";
}
});
}, },
created() {},
methods: { methods: {
selectResult(val) { selectResult(val) {
this.radio = val; this.radio = val;
...@@ -103,8 +157,12 @@ export default { ...@@ -103,8 +157,12 @@ export default {
}); });
let formdata = new FormData() let formdata = new FormData()
formdata.append('reviewResult', this.radio) formdata.append('reviewResult', this.radio)
// formdata.append('reviewPicture[]', values.uploader)
formdata.append('reviewDetails', values.reviewDetails) formdata.append('reviewDetails', values.reviewDetails)
// 放图片路径 因为formdat存数组会自动变成字符串所以次用这种追加字段的方式
values.uploader.forEach(item => {
formdata.append("reviewPicture1[]", item.file);
});
dangerReviewAdd(`/review/add1/${this.taskId}`,formdata) dangerReviewAdd(`/review/add1/${this.taskId}`,formdata)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
...@@ -119,12 +177,64 @@ export default { ...@@ -119,12 +177,64 @@ export default {
this.$toast.fail("提交失败,请稍后再试"); this.$toast.fail("提交失败,请稍后再试");
}); });
}, },
// 详情
goDetail(taskId) {
this.$router.push({
name: "normal-detail",
params: {
id: taskId
}
});
},
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
} }
},
filters: {
formatTime: function(row) {
if (new Date(row.dueDate).getTime() <= row.rectificationTime) {
return "超期";
} else if (
new Date(row.dueDate).getTime() >= row.rectificationTime &&
new Date(row.dueDate).getTime() - 259200000 <= row.rectificationTime
) {
//三天
return "临期";
} else {
return "正常";
}
}
} }
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
</style> </style>
...@@ -51,6 +51,13 @@ ...@@ -51,6 +51,13 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -65,6 +72,7 @@ export default { ...@@ -65,6 +72,7 @@ export default {
return { return {
text: "隐患历史台账", text: "隐患历史台账",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -89,6 +97,10 @@ export default { ...@@ -89,6 +97,10 @@ export default {
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows; this.messageList = res.rows;
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
......
...@@ -79,13 +79,29 @@ ...@@ -79,13 +79,29 @@
<van-col span="7" <van-col span="7"
><span class="field-title">隐患照片:</span></van-col ><span class="field-title">隐患照片:</span></van-col
> >
<van-col span="17">{{ hdReport.hdPicture }}</van-col> <van-col span="17">
<div
class="detail_pic"
v-for="(item, index) in hdReport.hdPictureList"
:key="index"
>
<van-image width="100" height="100" :src="item.filePath" />
</div>
</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
><span class="field-title">隐患视频:</span></van-col ><span class="field-title">隐患视频:</span></van-col
> >
<van-col span="17">{{ hdReport.hdVideo }}</van-col> <van-col span="17">
<div
class="detail_video"
v-for="(item, index) in hdReport.hdVideoList"
:key="index"
>
<video :src="item.filePath"></video>
</div>
</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
...@@ -109,7 +125,7 @@ ...@@ -109,7 +125,7 @@
<div class="confirm-wrap" v-if="hdConfirm"> <div class="confirm-wrap" v-if="hdConfirm">
<p>隐患认定</p> <p>隐患认定</p>
<van-cell-group inset > <van-cell-group inset>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
><span class="field-title">隐患整改人:</span></van-col ><span class="field-title">隐患整改人:</span></van-col
...@@ -129,13 +145,11 @@ ...@@ -129,13 +145,11 @@
<van-col span="17">{{ hdConfirm.endTime }}</van-col> <van-col span="17">{{ hdConfirm.endTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"><span class="field-title">意见:</span></van-col>
><span class="field-title">意见:</span></van-col
>
<van-col span="17">{{ hdConfirm.confirmOpinion }}</van-col> <van-col span="17">{{ hdConfirm.confirmOpinion }}</van-col>
</van-row> </van-row>
<!-- <div v-show="confirmOpen"> <!-- <div v-show="confirmOpen">hdMajorApproveList
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
><span class="field-title">隐患确认信息:</span></van-col ><span class="field-title">隐患确认信息:</span></van-col
...@@ -149,9 +163,75 @@ ...@@ -149,9 +163,75 @@
</div> --> </div> -->
</div> </div>
<div class="change-wrap" v-if="hdRectificationList.length>0"> <div class="journal-wrap" v-if="hdMajorApproveList.length > 0">
<p>审批信息</p>
<van-cell-group inset>
<van-steps
direction="vertical"
:active="99999"
>
<van-step v-for="(item, index) in hdMajorApproveList" :key="index">
<div class="step-wrap">
<van-row>
<van-col span="24"
><div class="info-title">审批信息</div></van-col
>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">审批人:</span></van-col
>
<van-col span="19">{{ item.userName }}</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">结果:</span></van-col
>
<van-col span="19">{{ item.isResult }}</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">部门:</span></van-col
>
<van-col span="19">{{ item.deptName }}</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">时间:</span></van-col
>
<van-col span="19">{{ item.createTime }}</van-col>
</van-row>
<van-row>
<van-col span="9"
><span class="field-title">认为隐患级别:</span></van-col
>
<van-col span="10
">{{ item.thinkHdLev }}</van-col>
</van-row>
<van-row v-if="item.details">
<van-col span="8"
><span class="field-title">审批意见:</span></van-col
>
<van-col span="16
">{{ item.details }}</van-col>
</van-row>
</div>
</van-step>
</van-steps>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="majorReverse" v-show="hdMajorApproveList.length > 0">
{{ majorOpenText }}
</div>
</div>
<div class="change-wrap" v-if="hdRectificationList.length > 0">
<p>隐患整改</p> <p>隐患整改</p>
<van-cell-group inset v-for="(item, index) in hdRectificationList" :key="index"> <van-cell-group
inset
v-for="(item, index) in hdRectificationList"
:key="index"
>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
><span class="field-title">整改详情描述:</span></van-col ><span class="field-title">整改详情描述:</span></van-col
...@@ -162,13 +242,29 @@ ...@@ -162,13 +242,29 @@
<van-col span="7" <van-col span="7"
><span class="field-title">隐患照片:</span></van-col ><span class="field-title">隐患照片:</span></van-col
> >
<van-col span="17">{{ item.rePicture }}</van-col> <van-col span="17">
<div
class="detail_pic"
v-for="(itemTwo, index) in item.hdPictureList"
:key="index"
>
<van-image width="100" height="100" :src="itemTwo.filePath" />
</div>
</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
><span class="field-title">隐患视频:</span></van-col ><span class="field-title">隐患视频:</span></van-col
> >
<van-col span="17">{{ item.reVideo }}</van-col> <van-col span="17">
<div
class="detail_video"
v-for="(itemTwo, index) in item.hdVideoList"
:key="index"
>
<video :src="itemTwo.filePath"></video>
</div>
</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
...@@ -179,14 +275,26 @@ ...@@ -179,14 +275,26 @@
</van-cell-group> </van-cell-group>
</div> </div>
<div class="review-wrap" v-if="hdReviewList.length>0"> <div class="review-wrap" v-if="hdReviewList.length > 0">
<p>整改复查</p> <p>整改复查</p>
<van-cell-group inset v-for="(item, index) in hdReviewList" :key="index"> <van-cell-group
inset
v-for="(item, index) in hdReviewList"
:key="index"
>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
><span class="field-title">隐患照片:</span></van-col ><span class="field-title">隐患照片:</span></van-col
> >
<van-col span="17">{{ item.reviewPicture }}</van-col> <van-col span="17">
<div
class="detail_pic"
v-for="(itemTwo, index) in item.hdPictureList"
:key="index"
>
<van-image width="100" height="100" :src="itemTwo.filePath" />
</div>
</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
...@@ -200,15 +308,21 @@ ...@@ -200,15 +308,21 @@
<van-col span="7" <van-col span="7"
><span class="field-title">复查结果:</span></van-col ><span class="field-title">复查结果:</span></van-col
> >
<van-col span="17">{{ item.reviewResult == 1? "合格":"不合格"}}</van-col> <van-col span="17">{{
item.reviewResult == 1 ? "合格" : "不合格"
}}</van-col>
</van-row> </van-row>
</van-cell-group> </van-cell-group>
</div> </div>
<div class="journal-wrap"> <div class="journal-wrap">
<p>日志信息</p> <p>日志信息</p>
<van-cell-group inset > <van-cell-group inset>
<van-steps direction="vertical" :active="99999" v-if="hdLogList.length>0"> <van-steps
direction="vertical"
:active="99999"
v-if="hdLogList.length > 0"
>
<van-step v-for="(item, index) in hdLogList" :key="index"> <van-step v-for="(item, index) in hdLogList" :key="index">
<div class="step-wrap"> <div class="step-wrap">
<van-row> <van-row>
...@@ -220,47 +334,53 @@ ...@@ -220,47 +334,53 @@
<van-col span="5" <van-col span="5"
><span class="field-title">审批人:</span></van-col ><span class="field-title">审批人:</span></van-col
> >
<van-col span="19">{{item.userName}}</van-col> <van-col span="19">{{ item.userName }}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="5" <van-col span="5"
><span class="field-title">节点:</span></van-col ><span class="field-title">节点:</span></van-col
> >
<van-col span="19">{{item.logNode}}</van-col> <van-col span="19">{{ item.logNode }}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="5" <van-col span="5"
><span class="field-title">结果:</span></van-col ><span class="field-title">结果:</span></van-col
> >
<van-col span="19">{{item.logResult}}</van-col> <van-col span="19">{{ item.logResult }}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="5" <van-col span="5"
><span class="field-title">部门:</span></van-col ><span class="field-title">部门:</span></van-col
> >
<van-col span="19">{{item.deptName}}</van-col> <van-col span="19">{{ item.deptName }}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="5" <van-col span="5"
><span class="field-title">时间:</span></van-col ><span class="field-title">时间:</span></van-col
> >
<van-col span="19">{{item.createTime}}</van-col> <van-col span="19">{{ item.createTime }}</van-col>
</van-row> </van-row>
</div> </div>
</van-step> </van-step>
</van-steps> </van-steps>
<div style="text-align: center;" v-if="hdLogList.length == 0">暂无数据</div> <div style="text-align: center;" v-if="hdLogList.length == 0">
暂无数据
</div>
</van-cell-group> </van-cell-group>
<!-- 展开 --> <!-- 展开 -->
<div class="more" @click="journalReverse" v-show="hdLogList.length>0"> <div class="more" @click="journalReverse" v-show="hdLogList.length > 0">
{{ journalOpenText }} {{ journalOpenText }}
</div> </div>
</div> </div>
<div class="supervise-wrap"> <div class="supervise-wrap">
<p>督办信息</p> <p>督办信息</p>
<van-cell-group inset > <van-cell-group inset>
<van-steps direction="vertical" :active="99999" v-if="instructionsList.length>0"> <van-steps
direction="vertical"
:active="99999"
v-if="instructionsList.length > 0"
>
<van-step v-for="(item, index) in instructionsList" :key="index"> <van-step v-for="(item, index) in instructionsList" :key="index">
<div class="step-wrap"> <div class="step-wrap">
<van-row> <van-row>
...@@ -272,34 +392,40 @@ ...@@ -272,34 +392,40 @@
<van-col span="5" <van-col span="5"
><span class="field-title">审批人:</span></van-col ><span class="field-title">审批人:</span></van-col
> >
<van-col span="19">{{item.userName}}</van-col> <van-col span="19">{{ item.userName }}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="5" <van-col span="5"
><span class="field-title">时间:</span></van-col ><span class="field-title">时间:</span></van-col
> >
<van-col span="19">{{item.createTime}}</van-col> <van-col span="19">{{ item.createTime }}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="5" <van-col span="5"
><span class="field-title">部门:</span></van-col ><span class="field-title">部门:</span></van-col
> >
<van-col span="19">{{item.deptName}}</van-col> <van-col span="19">{{ item.deptName }}</van-col>
</van-row> </van-row>
<van-row> <van-row>
<van-col span="5" <van-col span="5"
><span class="field-title">结果:</span></van-col ><span class="field-title">结果:</span></van-col
> >
<van-col span="19">{{item.instructionsContent}}</van-col> <van-col span="19">{{ item.instructionsContent }}</van-col>
</van-row> </van-row>
</div> </div>
</van-step> </van-step>
</van-steps> </van-steps>
<div style="text-align: center;" v-if="instructionsList.length == 0">暂无数据</div> <div style="text-align: center;" v-if="instructionsList.length == 0">
暂无数据
</div>
</van-cell-group> </van-cell-group>
<!-- 展开 --> <!-- 展开 -->
<div class="more" @click="superviseReverse" v-show="instructionsList.length>0"> <div
class="more"
@click="superviseReverse"
v-show="instructionsList.length > 0"
>
{{ superviseOpenText }} {{ superviseOpenText }}
</div> </div>
</div> </div>
...@@ -326,16 +452,19 @@ export default { ...@@ -326,16 +452,19 @@ export default {
superviseOpenText: "展开 ▼", superviseOpenText: "展开 ▼",
confirmOpen: false, confirmOpen: false,
confirmOpenText: "展开 ▼", confirmOpenText: "展开 ▼",
majorOpen: false,
majorOpenText: "展开 ▼",
hdReport:"", hdReport: "",
hdConfirm:"", hdConfirm: "",
hdMajorApproveList:[], // 重大隐患审批 先不做 hdMajorApproveList: [], // 重大隐患审批
hdRectificationList:[], beifenhdMajorList: [],
hdReviewList:[], hdRectificationList: [],
hdLogList:[], hdReviewList: [],
beifenhdLogList:[], hdLogList: [],
instructionsList:[], beifenhdLogList: [],
beifeninstructionsList:[] instructionsList: [],
beifeninstructionsList: []
}; };
}, },
created() { created() {
...@@ -356,14 +485,16 @@ export default { ...@@ -356,14 +485,16 @@ export default {
standBookDetail(`/hdreport/hdDetailsApp/${this.id}`) standBookDetail(`/hdreport/hdDetailsApp/${this.id}`)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.hdReport = res.data.hdReport this.hdReport = res.data.hdReport;
this.hdConfirm = res.data.hdConfirm this.hdConfirm = res.data.hdConfirm;
this.hdRectificationList = res.data.hdRectificationList this.hdRectificationList = res.data.hdRectificationList;
this.hdReviewList = res.data.hdReviewList this.hdReviewList = res.data.hdReviewList;
this.beifenhdLogList = res.data.hdLogList this.beifenhdMajorList = res.data.hdMajorApproveList;
this.hdLogList = this.beifenhdLogList.slice(0,1) this.hdMajorApproveList = this.beifenhdMajorList.slice(-1);
this.beifeninstructionsList = res.data.instructionsList this.beifenhdLogList = res.data.hdLogList;
this.instructionsList = this.beifeninstructionsList.slice(0,1) this.hdLogList = this.beifenhdLogList.slice(-1);
this.beifeninstructionsList = res.data.instructionsList;
this.instructionsList = this.beifeninstructionsList.slice(-1);
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -390,6 +521,21 @@ export default { ...@@ -390,6 +521,21 @@ export default {
} }
}, },
// 重大隐患信息显示或隐藏
majorReverse() {
this. majorOpen = !this. majorOpen;
if (this. majorOpen) {
// 显示所有数据
this. majorOpenText = "收起 ▲";
// 显示所有数据
this.hdMajorApproveList = this.beifenhdMajorList;
} else {
this. majorOpenText = "展开 ▼";
// 只显示第一个数据
this.hdMajorApproveList = this.beifenhdMajorList.slice(-1);
}
},
// 日志信息显示或隐藏 // 日志信息显示或隐藏
journalReverse() { journalReverse() {
this.journalOpen = !this.journalOpen; this.journalOpen = !this.journalOpen;
...@@ -397,12 +543,11 @@ export default { ...@@ -397,12 +543,11 @@ export default {
// 显示所有数据 // 显示所有数据
this.journalOpenText = "收起 ▲"; this.journalOpenText = "收起 ▲";
// 显示所有数据 // 显示所有数据
this.hdLogList = this.beifenhdLogList this.hdLogList = this.beifenhdLogList;
} else { } else {
this.journalOpenText = "展开 ▼"; this.journalOpenText = "展开 ▼";
// 只显示第一个数据 // 只显示第一个数据
this.hdLogList = this.beifenhdLogList.slice(0,1) this.hdLogList = this.beifenhdLogList.slice(-1);
} }
}, },
// 督办信息显示或隐藏 // 督办信息显示或隐藏
...@@ -411,11 +556,11 @@ export default { ...@@ -411,11 +556,11 @@ export default {
if (this.superviseOpen) { if (this.superviseOpen) {
// 显示所有数据 // 显示所有数据
this.superviseOpenText = "收起 ▲"; this.superviseOpenText = "收起 ▲";
this.instructionsList = this.beifeninstructionsList this.instructionsList = this.beifeninstructionsList;
} else { } else {
// 只渲染一条数据 // 只渲染一条数据
this.superviseOpenText = "展开 ▼"; this.superviseOpenText = "展开 ▼";
this.instructionsList = this.beifeninstructionsList.slice(0,1) this.instructionsList = this.beifeninstructionsList.slice(-1);
} }
} }
} }
...@@ -472,5 +617,19 @@ export default { ...@@ -472,5 +617,19 @@ export default {
font-weight: bolder; font-weight: bolder;
z-index: 99; z-index: 99;
} }
.detail_pic {
margin-right: 0.266667rem;
float: left;
}
.detail_video {
width: 2.666667rem;
height: 2.666667rem;
margin-right: 0.266667rem;
float: left;
video {
width: 2.666667rem;
height: 2.666667rem;
}
}
} }
</style> </style>
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
@touchstart="touchstart(index, item)" @touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)" @touchend.prevent="touchend(index)"
> >
<van-row gutter=""> <van-row gutter="">
<van-col span="7">隐患编号:</van-col> <van-col span="7">隐患编号:</van-col>
<van-col span="17">{{ item.processInstanceId }}</van-col> <van-col span="17">{{ item.processInstanceId }}</van-col>
...@@ -44,14 +43,19 @@ ...@@ -44,14 +43,19 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { superviseList } from "@/service/danger"; import { superviseSABlist } from "@/service/danger";
/*接口对接2 START*/ /*接口对接2 START*/
// 例子: // 例子:
...@@ -70,13 +74,14 @@ import { superviseList } from "@/service/danger"; ...@@ -70,13 +74,14 @@ import { superviseList } from "@/service/danger";
export default { export default {
components: { components: {
LHeader, LHeader
}, },
data() { data() {
return { return {
text: "隐患督办", text: "隐患督办",
searchValue: "", searchValue: "",
messageList: [], messageList: [],
isHaveNews: false,
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
}; };
...@@ -86,10 +91,28 @@ export default { ...@@ -86,10 +91,28 @@ export default {
}, },
methods: { methods: {
getList() { getList() {
/*接口对接3 START*/ this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
superviseSABlist("/supervise/SABlist")
.then(res => {
this.$toast.clear();
this.messageList = res.data
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
/*接口对接3 END*/ })
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
}, },
onSearch(val) { onSearch(val) {
console.log(val); console.log(val);
}, },
...@@ -114,7 +137,7 @@ export default { ...@@ -114,7 +137,7 @@ export default {
console.log(data); console.log(data);
this.$router.push({ this.$router.push({
name: "normal-detail", name: "normal-detail",
params:{ params: {
id: data.pid id: data.pid
} }
}); });
...@@ -124,9 +147,9 @@ export default { ...@@ -124,9 +147,9 @@ export default {
goConfirm(data) { goConfirm(data) {
console.log(data); console.log(data);
this.$router.push({ this.$router.push({
name:"super-survey", name: "super-survey",
params:{ params: {
"taskId":data.taskId data: data,
} }
}); });
this.showIndex = null; this.showIndex = null;
...@@ -137,7 +160,7 @@ export default { ...@@ -137,7 +160,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
...@@ -145,9 +168,9 @@ export default { ...@@ -145,9 +168,9 @@ export default {
padding: 10px; padding: 10px;
font-size: 13px; font-size: 13px;
position: relative; position: relative;
.van-row{ .van-row {
margin-bottom: .133333rem; margin-bottom: 0.133333rem;
line-height: .64rem; line-height: 0.64rem;
} }
.van-overlay { .van-overlay {
position: absolute; position: absolute;
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="goDetail(item.pid)"
>
<van-row gutter="">
<van-col span="7">隐患编号:</van-col>
<van-col span="17">{{ item.processInstanceId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.projectName }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患发现时间:</van-col>
<van-col span="17">{{ item.createTime }}</van-col>
</van-row>
<!-- *接口对接4 END -->
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:show-error='false' :show-error='false'
:scroll-to-error="true" :scroll-to-error="true"
validate-trigger="onSubmit" validate-trigger="onSubmit"
> >
<div class="agree" v-if="radio == 1">
<van-field <van-field
v-model="opinion" v-model="opinion"
label="批示内容" label="批示内容"
name="reviewDetails" name="superviseAdd"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
/> />
</div>
<div style="margin: 16px;"> <div style="margin: 16px;">
<van-button round block type="info" native-type="submit" <van-button round block type="info" native-type="submit"
>保存</van-button >保存</van-button
...@@ -33,8 +58,9 @@ ...@@ -33,8 +58,9 @@
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { dangerReviewAdd } from "@/service/danger"; import { superviseAdd } from "@/service/danger";
export default { export default {
name:"super-survey",
components: { components: {
LHeader LHeader
}, },
...@@ -42,14 +68,24 @@ export default { ...@@ -42,14 +68,24 @@ export default {
return { return {
taskId: "", taskId: "",
text: "隐患督办批示", text: "隐患督办批示",
messageList: [],
opinion: "", opinion: "",
}; };
}, },
created() { beforeRouteEnter(to, from, next) {
this.taskId = this.$route.params.taskId; next(vm => {
if (from.name === "supervise-danger") {
vm.messageList = [];
let paramsData = to.params.data;
vm.taskId = paramsData.taskId;
vm.messageList.push(paramsData);
vm.opinion = "";
}
});
}, },
created() {},
methods: { methods: {
onSubmit(values) { onSubmit(values) {
console.log("submit", values); console.log("submit", values);
...@@ -59,22 +95,30 @@ export default { ...@@ -59,22 +95,30 @@ export default {
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
// let formdata = new FormData() let formdata = new FormData()
// formdata.append('reviewResult', this.radio) formdata.append('instructionsContent', values.instructionsContent)
// formdata.append('reviewDetails', values.reviewDetails) superviseAdd(`/instructions/add`,formdata)
// dangerReviewAdd(`/review/add1/${this.taskId}`,formdata) .then(res => {
// .then(res => { this.$toast.clear();
// this.$toast.clear(); this.$toast.success({
// this.$toast.success({ message: "提交成功",
// message: "提交成功", duration: 2000
// duration: 2000 });
// }); history.go(-1);
// history.go(-1); })
// }) .catch(() => {
// .catch(() => { this.$toast.clear();
// this.$toast.clear(); this.$toast.fail("提交失败,请稍后再试");
// this.$toast.fail("提交失败,请稍后再试"); });
// }); },
// 详情
goDetail(pid) {
this.$router.push({
name: "normal-detail",
params: {
id: pid
}
});
}, },
cancel() { cancel() {
...@@ -85,4 +129,32 @@ export default { ...@@ -85,4 +129,32 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
</style> </style>
...@@ -158,8 +158,6 @@ export default { ...@@ -158,8 +158,6 @@ export default {
margin-bottom: 10px; margin-bottom: 10px;
padding: 10px; padding: 10px;
font-size: 13px; font-size: 13px;
.messgae-title {
}
.message-content { .message-content {
margin-top: 10px; margin-top: 10px;
} }
......
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="read(item)"
@touchstart="touchstart(index, item)" @touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)" @touchend.prevent="touchend(index)"
> >
...@@ -46,7 +45,13 @@ ...@@ -46,7 +45,13 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -79,6 +84,7 @@ export default { ...@@ -79,6 +84,7 @@ export default {
text: "风险历史台账", text: "风险历史台账",
searchValue: "", searchValue: "",
messageList: [], messageList: [],
isHaveNews: false,
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
}; };
...@@ -100,6 +106,10 @@ export default { ...@@ -100,6 +106,10 @@ export default {
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows this.messageList = res.rows
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
...@@ -144,7 +154,7 @@ export default { ...@@ -144,7 +154,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
......
...@@ -67,6 +67,16 @@ ...@@ -67,6 +67,16 @@
> >
<van-col span="17">{{ riskMain.gradingMethod }}</van-col> <van-col span="17">{{ riskMain.gradingMethod }}</van-col>
</van-row> </van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">定级方式(附件):</span></van-col
>
<van-col span="17">
<div class="enclosure" v-for="(item, index) in riskMain.riskFileList1" :key="index">
<a :href="item.filePath" target="_blank">{{item.fileName}}</a>
</div>
</van-col>
</van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
><span class="field-title">技术措施:</span></van-col ><span class="field-title">技术措施:</span></van-col
...@@ -77,7 +87,11 @@ ...@@ -77,7 +87,11 @@
<van-col span="7" <van-col span="7"
><span class="field-title">技术措施(附件):</span></van-col ><span class="field-title">技术措施(附件):</span></van-col
> >
<van-col span="17">{{ riskMain.technicalMeasures }}</van-col> <van-col span="17">
<div class="enclosure" v-for="(item, index) in riskMain.riskFileList2" :key="index">
<a :href="item.filePath" target="_blank">{{item.fileName}}</a>
</div>
</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
...@@ -89,7 +103,11 @@ ...@@ -89,7 +103,11 @@
<van-col span="7" <van-col span="7"
><span class="field-title">管理措施(附件):</span></van-col ><span class="field-title">管理措施(附件):</span></van-col
> >
<van-col span="17">{{ riskMain.managementMeasures }}</van-col> <van-col span="17">
<div class="enclosure" v-for="(item, index) in riskMain.riskFileList3" :key="index">
<a :href="item.filePath" target="_blank">{{item.fileName}}</a>
</div>
</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row gutter="">
<van-col span="7" <van-col span="7"
...@@ -101,7 +119,11 @@ ...@@ -101,7 +119,11 @@
<van-col span="7" <van-col span="7"
><span class="field-title">应急措施(附件):</span></van-col ><span class="field-title">应急措施(附件):</span></van-col
> >
<van-col span="17">{{ riskMain.emergencyMeasure }}</van-col> <van-col span="17">
<div class="enclosure" v-for="(item, index) in riskMain.riskFileList4" :key="index">
<a :href="item.filePath" target="_blank">{{item.fileName}}</a>
</div>
</van-col>
</van-row> </van-row>
</div> </div>
</van-cell-group> </van-cell-group>
...@@ -242,7 +264,7 @@ export default { ...@@ -242,7 +264,7 @@ export default {
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
postriskDetail(`/riskMain/postriskDetailsApp/${this.id}`) postriskDetail(`/riskMain/riskDetailsApp/${this.id}`)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.riskMain = res.data.riskMain this.riskMain = res.data.riskMain
......
...@@ -118,13 +118,32 @@ ...@@ -118,13 +118,32 @@
</van-popup> </van-popup>
<van-field <van-field
readonly
clickable
name="setRank"
:value="riskRank"
label="风险等级"
placeholder="请选择"
@click="myRiskRank"
:rules="[{ required: true, message: '风险等级不能为空' }]"
/>
<van-popup v-model="showRiskRank" position="bottom">
<van-picker
show-toolbar
:columns="columnsRiskRank"
@confirm="onConRiskRank"
@cancel="showRiskRank = false"
/>
</van-popup>
<!-- <van-field
v-model="riskRank" v-model="riskRank"
readonly readonly
name="riskRank" name="riskRank"
label="风险等级" label="风险等级"
placeholder="请选择" placeholder="请选择"
:rules="[{ required: true, message: '风险等级不能为空' }]" :rules="[{ required: true, message: '风险等级不能为空' }]"
/> /> -->
<van-field <van-field
v-model="setRankMode" v-model="setRankMode"
...@@ -135,12 +154,9 @@ ...@@ -135,12 +154,9 @@
autosize autosize
placeholder="请输入" placeholder="请输入"
/> />
<van-field <van-field name="setRankModeFile" label=" ">
name="定级方式"
label=" "
>
<template #input> <template #input>
<van-uploader v-model="setRankModeImg" /> <van-uploader v-model="setRankModeImg" accept="file" />
</template> </template>
</van-field> </van-field>
...@@ -221,12 +237,9 @@ ...@@ -221,12 +237,9 @@
autosize autosize
placeholder="请输入" placeholder="请输入"
/> />
<van-field <van-field name="technologyFile" label=" ">
name="技术措施"
label=" "
>
<template #input> <template #input>
<van-uploader v-model="technologyImg" /> <van-uploader v-model="technologyImg" accept="file" />
</template> </template>
</van-field> </van-field>
...@@ -239,12 +252,9 @@ ...@@ -239,12 +252,9 @@
autosize autosize
placeholder="请输入" placeholder="请输入"
/> />
<van-field <van-field name="administrationFile" label=" ">
name="管理措施"
label=" "
>
<template #input> <template #input>
<van-uploader v-model="administrationImg" /> <van-uploader v-model="administrationImg" accept="file" />
</template> </template>
</van-field> </van-field>
...@@ -257,12 +267,9 @@ ...@@ -257,12 +267,9 @@
autosize autosize
placeholder="请输入" placeholder="请输入"
/> />
<van-field <van-field name="urgentFile" label=" ">
name="应急措施"
label=" "
>
<template #input> <template #input>
<van-uploader v-model="urgentImg" /> <van-uploader v-model="urgentImg" accept="file" />
</template> </template>
</van-field> </van-field>
...@@ -282,15 +289,24 @@ ...@@ -282,15 +289,24 @@
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { getFormList, postHdSource, postHdType, postHdPeople, postReAdd, postriskConiCause,postRiskShowMeasures } from "@/service/risk"; import {
getFormList,
postHdSource,
postHdType,
postHdPeople,
postReAdd,
postriskConiCause,
postRiskShowMeasures
} from "@/service/risk";
export default { export default {
components: { components: {
LHeader LHeader
}, },
data() { data() {
return { return {
taskId:"", taskId: "",
text: "新增风险", text: "新增风险",
id: "",
projectId: "", // 所属工程 projectId: "", // 所属工程
projectName: "", // 所属工程 projectName: "", // 所属工程
showProjectName: false, showProjectName: false,
...@@ -306,8 +322,10 @@ export default { ...@@ -306,8 +322,10 @@ export default {
columnsTrouble: [], columnsTrouble: [],
setRank: "", //风险定级 setRank: "", //风险定级
showSetRank: false, showSetRank: false,
columnsSetRank: ["一般风险", "较小风险", "较大风险", "重大风险"], columnsSetRank: ["矩阵式定级", "其他定级方式"],
riskRank: "", // 风险等级 riskRank: "", // 风险等级
showRiskRank: false,
columnsRiskRank: ["一般风险", "较小风险", "较大风险", "重大风险"],
setRankMode: "", // 定级方式文字 setRankMode: "", // 定级方式文字
setRankModeImg: [], // 定级方式图片 setRankModeImg: [], // 定级方式图片
location: "", //风险部位 location: "", //风险部位
...@@ -319,15 +337,15 @@ export default { ...@@ -319,15 +337,15 @@ export default {
showMainDutyDept: false, showMainDutyDept: false,
columnsMainDutyDept: [], columnsMainDutyDept: [],
mainDutyPeopLe: "", // 主责人员 mainDutyPeopLe: "", // 主责人员
mainDutyPeopLeId :"", mainDutyPeopLeId: "",
showMainDutyPeopLe: false, showMainDutyPeopLe: false,
columnsMainDutyPeopLe: [], columnsMainDutyPeopLe: [],
technology:"", //技术措施文字 technology: "", //技术措施文字
technologyImg:[],//技术措施图片 technologyImg: [], //技术措施图片
administration:"", //管理措施文字 administration: "", //管理措施文字
administrationImg:[],//管理措施图片 administrationImg: [], //管理措施图片
urgent:"", //应急措施文字 urgent: "", //应急措施文字
urgentImg:[],//应急措施图片 urgentImg: [], //应急措施图片
returnCause: "", // 退回原因 returnCause: "", // 退回原因
isShowreturnCause: false isShowreturnCause: false
}; };
...@@ -335,37 +353,62 @@ export default { ...@@ -335,37 +353,62 @@ export default {
created() { created() {
if (this.$route.params.status) { if (this.$route.params.status) {
this.isShowreturnCause = true; this.isShowreturnCause = true;
this.text = "风险上报退回" this.text = "风险上报退回";
this.taskId = this.$route.params.taskId this.taskId = this.$route.params.taskId;
this.postReturnEcho() this.postReturnEcho();
} }
this.getList(); this.getList();
}, },
methods: { methods: {
onSubmit(values) { onSubmit(values) {
console.log("submit", values); console.log("submit", values);
let formdata = new FormData() let formdata = new FormData();
formdata.append("pId", this.projectId) formdata.append("pId", this.projectId);
formdata.append("riskFactor", this.factor) formdata.append("riskFactor", this.factor);
formdata.append("riskSource", this.source) formdata.append("riskSource", this.source);
formdata.append("accidentType", this.trouble) formdata.append("accidentType", this.trouble);
formdata.append("level", this.setRank) formdata.append("level", this.setRank);
formdata.append("riskLevel", this.riskRank) formdata.append("riskLevel", this.riskRank);
formdata.append("gradingMethod", this.setRankMode) formdata.append("gradingMethod", this.setRankMode);
formdata.append("riskPosition", this.location) formdata.append("riskPosition", this.location);
formdata.append("controlLevel", this.control) formdata.append("controlLevel", this.control);
formdata.append("responsibilityDept", this.mainDutyDeptId) formdata.append("responsibilityDept", this.mainDutyDeptId);
formdata.append("responsibilityMember", this.mainDutyPeopLeId) formdata.append("responsibilityMember", this.mainDutyPeopLeId);
formdata.append("technicalMeasures", this.technology) formdata.append("technicalMeasures", this.technology);
formdata.append("managementMeasures", this.administration) formdata.append("managementMeasures", this.administration);
formdata.append("emergencyMeasure", this.urgent) formdata.append("emergencyMeasure", this.urgent);
// 放图片路径 因为formdat存数组会自动变成字符串所以次用这种追加字段的方式
values.setRankModeFile.forEach(item => {
// 定级方式
formdata.append("risk1[]", item.file);
});
values.technologyFile.forEach(item => {
// 技术措施
formdata.append("risk2[]", item.file);
});
values.administrationFile.forEach(item => {
// 管理措施
formdata.append("risk3[]", item.file);
});
values.urgentFile.forEach(item => {
// 应急措施
formdata.append("risk4[]", item.file);
});
this.$toast.loading({ this.$toast.loading({
message: "提交中...", message: "提交中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
postReAdd("/riskMain/add", formdata) let url = "/riskMain/add";
if (this.taskId) {
formdata.append("id", this.id);
url = `/riskMain/editSave/${this.taskId}`;
}
postReAdd(url, formdata)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.$toast.success({ this.$toast.success({
...@@ -378,7 +421,6 @@ export default { ...@@ -378,7 +421,6 @@ export default {
this.$toast.clear(); this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试"); this.$toast.fail("提交失败,请稍后再试");
}); });
}, },
// 请求表单数据 // 请求表单数据
...@@ -391,12 +433,10 @@ export default { ...@@ -391,12 +433,10 @@ export default {
}); });
getFormList("/riskMain/add") getFormList("/riskMain/add")
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.columnsProjectName = res.data.projectInformations; this.columnsProjectName = res.data.projectInformations;
this.columnsFactor = res.data.riskInventories; this.columnsFactor = res.data.riskInventories;
this.columnsMainDutyDept = res.data.organizationList this.columnsMainDutyDept = res.data.organizationList;
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -405,7 +445,7 @@ export default { ...@@ -405,7 +445,7 @@ export default {
}, },
// 请求已退回详情数据 // 请求已退回详情数据
postReturnEcho(){ postReturnEcho() {
this.$toast.loading({ this.$toast.loading({
message: "加载中...", message: "加载中...",
forbidClick: true, forbidClick: true,
...@@ -415,95 +455,97 @@ export default { ...@@ -415,95 +455,97 @@ export default {
postriskConiCause(`/riskMain/edit/${this.taskId}`) postriskConiCause(`/riskMain/edit/${this.taskId}`)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
// let msg = res.data.hdReport
// // 对数据进行赋值
this.returnCause = res.data.reason; this.returnCause = res.data.reason;
// this.projectId = msg.proId;
// // 对所属工程数组筛选出 相同id 的工程名
// let name = this.columnsProjectName.filter(item =>{
// return item.id == msg.proId
// })
// this.projectName = name[0].projectName
// this.range = msg.hdRange
// this.type = msg.hdType
// this.dangerName = msg.hdProjectName
// this.dangerNum = msg.hdProjectId
// this.dangerLevel = msg.hdLev
// this.findTime = msg.hdDiscoveryTime
// this.source = msg.dangerId
// this.source1 = msg.dangerSource
// this.location = msg.hdPosition
// this.describe = msg.hdDescribe
// this.hdPicture1 = msg.hdPicture1
// this.hdVideo1 = msg.hdVideo1
// this.expireTime = msg.hdExpirationTime
// this.recPeople = msg.rectificationUser
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
}); });
}, },
// 所属工程名称 // 所属工程名称
onConProjectName(value) { onConProjectName(value) {
if (!value) {
this.showProjectName = false;
return;
}
this.projectId = value.id; this.projectId = value.id;
this.projectName = value.projectName; this.projectName = value.projectName;
this.showProjectName = false; this.showProjectName = false;
}, },
// 风险因素 // 风险因素
onConFactor(value) { onConFactor(value) {
if (!value) {
this.showFactor = false;
return;
}
this.factor = value.factorType; this.factor = value.factorType;
this.showFactor = false; this.showFactor = false;
this.source = ""; this.source = "";
this.trouble = ""; this.trouble = "";
// 请求风险源 // 请求风险源
postHdSource(`/riskMain/showSourceName/${this.factor}`).then(res =>{ postHdSource(`/riskMain/showSourceName/${this.factor}`).then(res => {
this.columnsSource = res.data this.columnsSource = res.data;
}) });
}, },
// 风险源 // 风险源
onConSource(value) { onConSource(value) {
if (!value) {
this.showSource = false;
return;
}
this.source = value.sourceName; this.source = value.sourceName;
this.showSource = false; this.showSource = false;
this.trouble = ""; this.trouble = "";
// 请求事故类型 // 请求事故类型
postHdType(`/riskMain/showaccidentType/${this.factor}/${this.source}`).then(res =>{ postHdType(
this.columnsTrouble = res.data `/riskMain/showaccidentType/${this.factor}/${this.source}`
}) ).then(res => {
this.columnsTrouble = res.data;
});
}, },
// 事故类型 // 事故类型
onConTrouble(value) { onConTrouble(value) {
if (!value) {
this.showTrouble = false;
return;
}
this.trouble = value.accidentType; this.trouble = value.accidentType;
this.showTrouble = false; this.showTrouble = false;
// 请求三个措施 // 请求三个措施
postRiskShowMeasures(`/riskMain/showmeasures/${this.factor}/${this.source}/${this.trouble}`).then(res =>{ postRiskShowMeasures(
console.log(res.data) `/riskMain/showmeasures/${this.factor}/${this.source}/${this.trouble}`
this.technology = res.data[0].measuresProject ).then(res => {
this.administration = res.data[0].measuresAdministration console.log(res.data);
this.urgent = res.data[0].measuresEmergency this.technology = res.data[0].measuresProject;
}) this.administration = res.data[0].measuresAdministration;
this.urgent = res.data[0].measuresEmergency;
});
}, },
// 风险定级 // 风险定级
onConSetRank(value) { onConSetRank(value) {
this.setRank = value; this.setRank = value;
this.riskRank = value; this.riskRank = "";
if(value == "重大风险" || value == "较大风险"){
this.control = "企业级"
}else{
this.control = "项目级"
}
this.showSetRank = false; this.showSetRank = false;
if (this.setRank == "矩阵式定级") {
this.$router.push({
name: "matrix-grad"
});
}
},
// 自己定义风险等级点击方法
myRiskRank() {
if (this.setRank == "") {
this.$toast("请先选择风险定级");
} else if (this.setRank == "其他定级方式") {
this.showRiskRank = true;
}
}, },
// 风险等级
onConRiskRank(value) {
this.riskRank = value;
this.showRiskRank = false;
},
// 管控层级 // 管控层级
onConControl(value) { onConControl(value) {
this.control = value; this.control = value;
...@@ -511,23 +553,20 @@ export default { ...@@ -511,23 +553,20 @@ export default {
}, },
// 主责部门 // 主责部门
onConMainDutyDept(value) { onConMainDutyDept(value) {
this.mainDutyDeptId = value.deptId this.mainDutyDeptId = value.deptId;
this.mainDutyDept = value.deptName; this.mainDutyDept = value.deptName;
this.showMainDutyDept = false; this.showMainDutyDept = false;
this.mainDutyPeopLe = "" this.mainDutyPeopLe = "";
// 请求主责人员 // 请求主责人员
// 请求事故类型 let formdata = new FormData();
let formdata = new FormData() formdata.append("organizationId", this.mainDutyDeptId);
formdata.append("organizationId",this.mainDutyDeptId) postHdPeople(`/riskMain/getUserList`, formdata).then(res => {
postHdPeople(`/riskMain/getUserList`,formdata).then(res =>{ this.columnsMainDutyPeopLe = res.data;
this.columnsMainDutyPeopLe = res.data });
})
}, },
// 主责人员 // 主责人员
onConMainDutyPeopLe(value) { onConMainDutyPeopLe(value) {
this.mainDutyPeopLeId = value.userId this.mainDutyPeopLeId = value.userId;
this.mainDutyPeopLe = value.userName; this.mainDutyPeopLe = value.userName;
this.showMainDutyPeopLe = false; this.showMainDutyPeopLe = false;
}, },
......
<template>
<div>
<!-- 发生可能性 -->
<div class="content-wrap">
<van-checkbox-group v-model="happenSelect">
<van-cell-group>
<van-cell title="发生可能性" is-link arrow-direction="down" />
<van-cell
v-for="(item, index) in happenList"
clickable
:key="item"
:title="item"
@click="happenToggle(index)"
>
<template #right-icon>
<van-checkbox :name="item" ref="happen" />
</template>
</van-cell>
</van-cell-group>
</van-checkbox-group>
</div>
<!-- 后果严重性 -->
<div class="content-wrap">
<van-checkbox-group v-model="resultSelect">
<van-cell-group>
<van-cell title="发生可能性" is-link arrow-direction="down" />
<van-cell
v-for="(item, index) in resultList"
clickable
:key="item"
:title="item"
@click="resultToggle(index)"
>
<template #right-icon>
<van-checkbox :name="item" ref="result" />
</template>
</van-cell>
</van-cell-group>
</van-checkbox-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
happenList: [
"企业半年内发生2起一般安全生产事故的",
"企业1年内发生3起一般安全生产事故的",
"企业1年内发生1起较大及其以上生产安全事故的",
"超限高层建筑",
"采用新技术、新工艺、新设备、新材料、尚无国家、行业及地方技术标准",
"工程项目施工工期压缩超过30%或者工期压缩未采用技术措施的",
],
happenSelect: [],
resultList: [
"企业半年内发生2起一般安全生产事故的",
"企业1年内发生3起一般安全生产事故的",
"企业1年内发生1起较大及其以上生产安全事故的",
"超限高层建筑",
"采用新技术、新工艺、新设备、新材料、尚无国家、行业及地方技术标准",
"工程项目施工工期压缩超过30%或者工期压缩未采用技术措施的",
],
resultSelect: [],
};
},
mounted() {},
methods: {
happenToggle(index, val) {
this.$refs.happen[index].toggle();
console.log(this.$refs.happen[index].name);
},
resultToggle(index, val) {
this.$refs.result[index].toggle();
console.log(this.$refs.result[index].name);
},
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.content-wrap{
margin-bottom: .266667rem;
}
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<van-tabs v-model="active" @click="onClick" title-inactive-colo="#d0d1d1" color="#247df7"
title-active-color="#000000">
<van-tab title="指标评估">
<target></target>
</van-tab>
<van-tab title="条件评估">
<condition></condition>
</van-tab>
</van-tabs>
<!-- <div style="margin:10px 16px 0px;padding-bottom:16px">
<van-button round block type="info" @click.native="onDefine"
>确认</van-button
>
<br>
<van-button round block type="warning" @click.native="cancel"
>取消</van-button
>
</div> -->
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import Target from './target.vue';
import Condition from './condition.vue';
export default {
name: "matrix-grad",
components: {
LHeader,
Target,
Condition
},
data() {
return {
text: "矩阵式定级",
active: "0"
};
},
mounted() {},
methods: {
onClick(val) {
console.log(val);
},
onDefine(){
},
cancel() {
this.$router.go(-1);
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
</style>
<template>
<div>
<!-- 发生可能性 -->
<div class="content-wrap">
<van-cell-group>
<van-cell title="发生可能性" is-link arrow-direction="down" />
<van-row>
<van-col span="10">指标</van-col>
<van-col span="8">分级</van-col>
<van-col span="4">可能性</van-col>
<van-col span="2">等级</van-col>
</van-row>
<van-row v-for="(item, index) in happenList" :key="index">
<van-col span="10">{{ item.target }}</van-col>
<van-col span="8">{{ item.grade }}</van-col>
<van-col span="4">{{ item.possibility }}</van-col>
<van-col span="2">{{ item.level }}</van-col>
</van-row>
<van-row>
<van-col span="10">项目部管理能力和水平</van-col>
<van-col span="8" class="border" @click="onClickTarget"
>请选择</van-col
>
<van-col span="4"></van-col>
<van-col span="2"></van-col>
</van-row>
</van-cell-group>
</div>
<!-- 后果严重性 -->
<div class="content-wrap">
<van-cell-group>
<van-cell title="后果严重性" is-link arrow-direction="down" />
<van-row>
<van-col span="10"></van-col>
<van-col span="8">潜在后果</van-col>
<van-col span="4">描述</van-col>
<van-col span="2">等级</van-col>
</van-row>
<van-row>
<van-col span="10">人员伤亡严重性</van-col>
<van-col span="8" class="border" @click="onClickTarget"
>请选择</van-col>
<van-col span="4"></van-col>
<van-col span="2"></van-col>
</van-row>
<van-row v-for="(item, index) in resultList" :key="index">
<van-col span="10">{{ item.target }}</van-col>
<van-col span="8" class="border" @click="onClickTarget"
>请选择</van-col>
<van-col span="4">{{ item.possibility }}</van-col>
<van-col span="2">{{ item.level }}</van-col>
</van-row>
</van-cell-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
happenList: [
{
target: "全国行业历史发生概率",
grade: "过去2年发生一次以上",
possibility: "很可能",
level: "2"
},
{
target: "本市行业历史发生概率",
grade: "过去5年发生一次以上",
possibility: "很可能",
level: "2"
},
{
target: "本企业历史发生概率",
grade: "过去从未发生",
possibility: "基本很可能",
level: "2"
},
{
target: "企业安全生产管理水平",
grade: "企业安全生产标准化",
possibility: "很可能",
level: "2"
},
{
target: "项目经理管理能力和水平",
grade: "项目经理信用评分比",
possibility: "可能",
level: "2"
}
],
resultList: [
{
target: "经济损失严重性",
grade: "",
possibility: "",
level: ""
},
{
target: "周边敏感目标影响严重性",
grade: "",
possibility: "",
level: ""
},
{
target: "社会关注度",
grade: "",
possibility: "",
level: ""
},
{
target: "基础设施影响",
grade: "",
possibility: "",
level: ""
},
],
value: "",
columns: ["杭州", "宁波", "温州", "嘉兴", "湖州"],
showPicker: false
};
},
mounted() {},
methods: {
onConfirm(value) {
this.value = value;
this.showPicker = false;
},
onClickTarget() {}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.van-cell::after {
right: 0;
left: 0;
}
.content-wrap {
margin-bottom: 0.266667rem;
.van-row {
display: flex;
align-items: center;
.van-col {
height: 0.693333rem;
font-size: 0.3334rem;
padding: 0.106667rem 0;
margin: 0.106667rem 0;
text-align: center;
}
.border {
border: 1px solid #e5e6e7;
}
}
}
</style>
<template>
<div>
<LHeader :text="text"></LHeader>
<!-- 内容列表 -->
<div class="con-list">
<div class="cell-wrap">
<p>风险上报</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
<van-row gutter="">
<van-col span="7"
><span class="field-title">所属工程名称:</span></van-col
>
<van-col span="17">{{ item.project }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">风险因素:</span></van-col
>
<van-col span="17">{{ item.subject }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"><span class="field-title">风险源:</span></van-col>
<van-col span="17">{{ item.findTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">事故类型:</span></van-col
>
<van-col span="17">{{ item.level }}</van-col>
</van-row>
<!-- 隐藏的字段 -->
<div v-show="reportOpen">
<van-row gutter="">
<van-col span="7"
><span class="field-title">风险等级:</span></van-col
>
<van-col span="17">{{ item.range }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">风险部位:</span></van-col
>
<van-col span="17">{{ item.type }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">管控层级:</span></van-col
>
<van-col span="17">{{ item.dangerNum }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">主责部门:</span></van-col
>
<van-col span="17">{{ item.source }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">主责人员:</span></van-col
>
<van-col span="17">{{ item.source1 }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">定级方式:</span></van-col
>
<van-col span="17">{{ item.location }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">技术措施:</span></van-col
>
<van-col span="17">{{ item.dangerNum }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">技术措施(附件):</span></van-col
>
<van-col span="17">{{ item.describe }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">管理措施:</span></van-col
>
<van-col span="17">{{ item.uploaderImg }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">管理措施(附件):</span></van-col
>
<van-col span="17">{{ item.uploaderVideo }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">应急措施:</span></van-col
>
<van-col span="17">{{ item.expireTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">应急措施(附件):</span></van-col
>
<van-col span="17">{{ item.recPeople }}</van-col>
</van-row>
</div>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="reportReverse">
{{ reportOpenText }}
</div>
</div>
<div class="journal-wrap">
<p>日志信息</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
<van-steps direction="vertical" :active="999">
<van-step>
<div class="step-wrap">
<van-row>
<van-col span="24"
><div class="info-title">日志信息</div></van-col
>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">审批人:</span></van-col
>
<van-col span="19">首华建设项目</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">节点</span></van-col
>
<van-col span="19">隐患上报</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">结果:</span></van-col
>
<van-col span="19">通过</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">部门:</span></van-col
>
<van-col span="19">首华建设项目部</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">时间:</span></van-col
>
<van-col span="19">2021-10-26 16:30:00</van-col>
</van-row>
</div>
</van-step>
</van-steps>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="journalReverse">
{{ journalOpenText }}
</div>
</div>
<div class="supervise-wrap">
<p>督办信息</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
<div style="text-align: center;">暂无数据</div>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="superviseReverse" v-show="false">
{{ superviseOpenText }}
</div>
</div>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader
},
data() {
return {
text: "风险确认详情",
reportOpen: false,
reportOpenText: "展开 ▼",
journalOpen: false,
journalOpenText: "展开 ▼",
superviseOpen: false,
superviseOpenText: "展开 ▼",
reportList: [
{
project: "朝阳区和平街14区简易住宅楼改造项目",
subject: "临时用电施工组织设计未对盾构施工用电进行专项说明。",
findTime: "2021-10-26 16:30:00",
level: "一般隐患A",
range: "城市轨道交通工程",
type: "临时用电",
dangerNum: "0-03-06-0003",
source: "违规活动",
source1: "人的因素",
location: "临时用电",
describe: "没按规定放置插排",
uploaderImg: [],
uploaderVideo: [],
expireTime: "2021-10-26 16:30:00",
recPeople: "张三"
}
],
journalList: []
};
},
mounted() {},
methods: {
// 上报信息显示或隐藏
reportReverse() {
this.reportOpen = !this.reportOpen;
if (this.reportOpen) {
this.reportOpenText = "收起 ▲";
} else {
this.reportOpenText = "展开 ▼";
}
},
// 日志信息显示或隐藏
journalReverse() {
this.journalOpen = !this.journalOpen;
if (this.journalOpen) {
// 显示所有数据
this.journalOpenText = "收起 ▲";
} else {
// 只渲染一条数据
this.journalOpenText = "展开 ▼";
}
},
// 督办信息显示或隐藏
superviseReverse() {
this.superviseOpen = !this.superviseOpen;
if (this.superviseOpen) {
// 显示所有数据
this.superviseOpenText = "收起 ▲";
} else {
// 只渲染一条数据
this.superviseOpenText = "展开 ▼";
}
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0.533333rem;
background-color: #f0f1f5;
.cell-wrap {
position: relative;
}
p {
font-size: 0.4rem;
font-weight: 600;
padding-left: 0.16rem;
margin: 0.186667rem 0;
color: #7f7f7f;
}
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
}
.journal-wrap {
position: relative;
}
.supervise-wrap {
position: relative;
}
.info-title {
color: #2980f7;
font-weight: bolder;
}
.field-title {
color: black;
font-weight: bolder;
}
.more {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
}
</style>
...@@ -57,6 +57,13 @@ ...@@ -57,6 +57,13 @@
</van-overlay> </van-overlay>
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -72,6 +79,7 @@ export default { ...@@ -72,6 +79,7 @@ export default {
text: "风险确认", text: "风险确认",
active: "1", active: "1",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList:[], messageList:[],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -92,6 +100,10 @@ export default { ...@@ -92,6 +100,10 @@ export default {
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows this.messageList = res.rows
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -134,9 +146,9 @@ export default { ...@@ -134,9 +146,9 @@ export default {
goConfirm(data) { goConfirm(data) {
console.log(data); console.log(data);
this.$router.push({ this.$router.push({
name:"risk-affirm", name: "risk-affirm",
params:{ params: {
"taskId":data.taskId data: data,
} }
}); });
this.showIndex = null; this.showIndex = null;
...@@ -147,7 +159,7 @@ export default { ...@@ -147,7 +159,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="goDetail(item.taskId)"
>
<van-row gutter="">
<van-col span="5">所属项目:</van-col>
<van-col span="19">{{ item.proId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">风险等级:</van-col>
<van-col span="19">{{ item.riskLevel }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">风险源:</van-col>
<van-col span="19">{{ item.riskSource }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">事故类型:</van-col>
<van-col span="19">{{ item.accidentType }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">管控层级:</van-col>
<van-col span="19">{{ item.controllevel }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">主责部门:</van-col>
<van-col span="19">{{ item.responsibilityDept }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">主责人员:</van-col>
<van-col span="19">{{ item.responsibilityMember }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">工单状态:</van-col>
<van-col span="19">{{ item.taskName }}</van-col>
</van-row>
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:show-error='false' :show-error="false"
:scroll-to-error="true" :scroll-to-error="true"
validate-trigger="onSubmit" validate-trigger="onSubmit"
> >
...@@ -25,7 +68,7 @@ ...@@ -25,7 +68,7 @@
<van-field <van-field
v-model="agreeIdea" v-model="agreeIdea"
label="意见" label="意见"
name ="confirmOpinion" name="confirmOpinion"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
...@@ -38,7 +81,7 @@ ...@@ -38,7 +81,7 @@
<van-field <van-field
v-model="disagreeIdea" v-model="disagreeIdea"
label="退回原因" label="退回原因"
name ="confirmOpinion" name="confirmOpinion"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
...@@ -64,22 +107,34 @@ ...@@ -64,22 +107,34 @@
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { postriskConAdd } from "@/service/risk"; import { postriskConAdd } from "@/service/risk";
export default { export default {
name: "risk-affirm",
components: { components: {
LHeader LHeader
}, },
data() { data() {
return { return {
taskId: "", taskId: "",
messageList: [],
radio: "1", radio: "1",
text: "风险确认", text: "风险确认",
agreeIdea:"", // 同意意见 agreeIdea: "", // 同意意见
disagreeIdea: "", //退回意见 disagreeIdea: "" //退回意见
}; };
}, },
created() {
this.taskId = this.$route.params.taskId; beforeRouteEnter(to, from, next) {
next(vm => {
if (from.name === "risk-confirme") {
vm.messageList = [];
let paramsData = to.params.data;
vm.taskId = paramsData.taskId;
vm.messageList.push(paramsData);
vm.agreeIdea = "";
vm.disagreeIdea = []; // 隐患整改人
}
});
}, },
created() {},
methods: { methods: {
selectResult(val) { selectResult(val) {
this.radio = val; this.radio = val;
...@@ -90,16 +145,16 @@ export default { ...@@ -90,16 +145,16 @@ export default {
if (!this.taskId) { if (!this.taskId) {
return; return;
} }
let formdata = new FormData() let formdata = new FormData();
formdata.append("confirmResult", values.radio) formdata.append("confirmResult", values.radio);
formdata.append("confirmOpinion", values.confirmOpinion) formdata.append("confirmOpinion", values.confirmOpinion);
this.$toast.loading({ this.$toast.loading({
message: "提交中...", message: "提交中...",
forbidClick: true, forbidClick: true,
loadingType: "spinner", loadingType: "spinner",
duration: 0 duration: 0
}); });
postriskConAdd(`/riskConfirm/add/${this.taskId}`,formdata) postriskConAdd(`/riskConfirm/add/${this.taskId}`, formdata)
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.$toast.success({ this.$toast.success({
...@@ -113,12 +168,49 @@ export default { ...@@ -113,12 +168,49 @@ export default {
this.$toast.fail("提交失败,请稍后再试"); this.$toast.fail("提交失败,请稍后再试");
}); });
}, },
// 详情
goDetail(taskId) {
this.$router.push({
name: "risk-big-detail",
params: {
id: taskId
}
});
},
cancel() { cancel() {
this.$router.go(-1); this.$router.go(-1);
}, }
} }
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: bolder;
z-index: 99;
}
</style> </style>
...@@ -59,6 +59,14 @@ ...@@ -59,6 +59,14 @@
</van-cell-group> </van-cell-group>
</div> </div>
<!-- 暂无数据 -->
<div
style="width: 100%;text-align: center; font-size: .48rem;position: fixed; top: 30%;"
v-if="isHaveNews"
>
暂无数据
</div>
</div> </div>
</template> </template>
...@@ -73,6 +81,7 @@ export default { ...@@ -73,6 +81,7 @@ export default {
return { return {
text: "上报退回", text: "上报退回",
searchValue: "", searchValue: "",
isHaveNews: false,
messageList: [], messageList: [],
Loop: "", // 定时器 Loop: "", // 定时器
showIndex: null // 是否显示遮罩层 showIndex: null // 是否显示遮罩层
...@@ -93,6 +102,10 @@ export default { ...@@ -93,6 +102,10 @@ export default {
.then(res => { .then(res => {
this.$toast.clear(); this.$toast.clear();
this.messageList = res.rows; this.messageList = res.rows;
// 判断有无数据返回
if (this.messageList.length == 0) {
this.isHaveNews = true;
}
}) })
.catch(() => { .catch(() => {
this.$toast.clear(); this.$toast.clear();
...@@ -160,7 +173,7 @@ export default { ...@@ -160,7 +173,7 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0; padding: 10px 10px .533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
......
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