Commit 4ace7efc authored by 王李辉's avatar 王李辉

风险模块接口对接(70%)

parent 6bd8da6a
......@@ -31,6 +31,7 @@ new Vue({
Vue.prototype.$md5 = md5;
Vue.prototype.prefix = prefix;
Vue.prototype.$bus = new Vue;
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
......
......@@ -263,6 +263,16 @@ const routes = [
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/addDanger/addDanger'),
},
{
path: '/choose-people',
name: 'choose-people',
meta: {
title:'新增隐患',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/addDanger/manyChoosePeo'),
},
{
path: '/report-return',
name: 'report-return',
......@@ -283,15 +293,6 @@ const routes = [
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/confirmeDanger'),
},
{
path: '/con-detail',
name: 'con-detail',
meta: {
title:'隐患确认详情',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/confirmeDanger/conDetail.vue'),
},
{
path: '/affirm-danger',
name: 'affirm-danger',
......@@ -319,15 +320,6 @@ const routes = [
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/changeDanger/changeInfo'),
},
{
path: '/change-detail',
name: 'change-detail',
meta: {
title:'隐患整改详情',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/changeDanger/changeDetail'),
},
{
path: '/review-danger',
......@@ -338,15 +330,6 @@ const routes = [
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/reviewDanger'),
},
{
path: '/review-detail',
name: 'review-detail',
meta: {
title:'隐患复查详情',
index: 1
},
component: () => import(/* webpackChunkName: "SaveWorkbench" */ '../views/danger/reviewDanger/reviewDetail'),
},
{
......
......@@ -86,6 +86,15 @@ export function dangerReturnEcho(url,data) {
})
}
// 隐患上报已退回 保存接口
export function dangerReturnAdd(url,data) {
return request({
url: url,
method: 'get',
data
})
}
// 隐患确认模块
// 隐患确认列表
......@@ -165,3 +174,17 @@ export function dangerStandBook(url,data) {
data
})
}
// 隐患各种台账详情模块
export function standBookDetail(url,data) {
return request({
url: url,
method: 'post',
data
})
}
/*接口对接1 START*/
/*接口对接1 END*/
import request from '@/utils/axios'
// 风险上报模块
// 请求新增表单数据信息的
export function getFormList(url,params) {
return request({
url: url,
method: 'get',
params
})
}
// 风险源
export function postHdSource(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 事故类型
export function postHdType(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 主责人员
export function postHdPeople(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 风险上报提交
export function postReAdd(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 风险确认列表
export function postriskConList(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 风险确认保存
export function postriskConAdd(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 风险退回列表
export function postriskConReturn(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 风险退回列表 删除
export function postriskConReDel(url,data) {
return request({
url: url,
method: 'post',
data
})
}
// 风险退回重新上报 退回原因接口
export function postriskConiCause(url,data) {
return request({
url: url,
method: 'get',
data
})
}
// 风险台账
export function postriskBook(url,data) {
return request({
url: url,
method: 'post',
data
})
}
/*接口对接1 START*/
/*接口对接1 END*/
......@@ -97,8 +97,8 @@ export default {
.login {
background-size: cover;
background-repeat: no-repeat;
// background-position: center;
// background-attachment: fixed;
background-position: center;
background-attachment: fixed;
.login-logo {
width: 120px;
margin: 22% auto 0px;
......
......@@ -159,10 +159,12 @@
name="dangerSource"
:value="source1"
label=" "
placeholder="请选择"
@click="showSource1 = true"
placeholder="请选择"
:rules="[{ required: true, message: '风险源不能为空' }]"
/>
<!-- @click="goSelectTwo" -->
<van-popup v-model="showSource1" position="bottom">
<van-picker
show-toolbar
......@@ -194,7 +196,6 @@
<van-field
name="hdPicture1"
label="隐患照片"
:rules="[{ required: true, message: '请上传图像' }]"
>
<template #input>
<van-uploader v-model="uploaderImg" />
......@@ -267,7 +268,7 @@ import {
postHdRiskSource,
postHdShowPeople,
postHdReportAdd,
dangerReturnEcho
dangerReturnEcho,
} from "@/service/danger";
export default {
components: {
......@@ -320,10 +321,14 @@ export default {
showRecPeople: false,
columnsRecPeople: [],
isShowreturnCause: false,
returnCause: "你这不行啊" // 退回原因
returnCause: "" // 退回原因
};
},
mounted(){
// this.$bus.$on("sourceAyy", res =>{
// console.log(res.join(","));
// })
},
methods: {
onSubmit(values) {
console.log("submit", values);
......@@ -349,6 +354,11 @@ export default {
loadingType: "spinner",
duration: 0
});
url =
// if(this.taskId){
// url = `/hdreport/editSave/${this.taskId}`
// }
postHdReportAdd("/hdreport/add", formdata)
.then(res => {
this.$toast.clear();
......@@ -395,7 +405,31 @@ export default {
dangerReturnEcho(`/hdreport/edit/${this.taskId}`)
.then(res => {
this.$toast.clear();
console.log(res);
let msg = res.data.hdReport
// 对数据进行赋值
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(() => {
this.$toast.clear();
......@@ -417,6 +451,10 @@ export default {
onConRange(value) {
this.range = value.hdRange;
this.showRange = false;
this.type = ""
this.dangerName = ""
this.dangerNum = ""
this.dangerLevel = ""
// 去请求隐患类型的数据
postHdTyp(`/hdreport/showHdType/${this.range}`).then(res => {
this.columnsType = res.data;
......@@ -426,6 +464,9 @@ export default {
onConType(value) {
this.type = value.hdType;
this.showType = false;
this.dangerName = ""
this.dangerNum = ""
this.dangerLevel = ""
// 请求隐患项目名称的数据
console.log(this.range);
postHdName(`/hdreport/showHdName/${this.range}/${this.type}`).then(
......@@ -467,6 +508,19 @@ export default {
this.source1 = value.riskSource;
this.showSource1 = false;
},
// goSelectTwo(){
// if(this.source){
// // 跳转到多选页面
// this.$router.push({
// name: "choose-people",
// params:{
// source:this.source
// }
// })
// }else{
// this.$toast("请先选择风险源");
// }
// },
// 隐患到期时间
onConExpireTime(date) {
this.expireTime = timestampToTime(date, "DT1", true);
......
<template>
<div>
<LHeader :text="text"></LHeader>
<!-- 内容列表 -->
<van-checkbox-group v-model="result">
<van-cell-group>
<van-cell
v-for="(item, index) in messageList"
clickable
:key="item.index"
:title="item.riskSource"
@click="toggle(index)"
>
<template #right-icon>
<van-checkbox :name="item.riskSource" ref="checkboxes" />
</template>
</van-cell>
</van-cell-group>
</van-checkbox-group>
<div class="footer-con">
<div style="color: #1989fa;">已选择: {{result.length}}</div>
<div>
<van-button type="info" @click="confirm">确定</van-button>
</div>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import { postHdRiskSource } from "@/service/danger";
export default {
components: {
LHeader
},
data() {
return {
text: "选择风险源",
source: "",
messageList: [],
result: []
};
},
created() {
this.source = this.$route.params.source
console.log(this.source);
if(this.source){
this.getList()
}
},
methods: {
// 请求数据
getList(){
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
let formdata = new FormData();
formdata.append("factor", this.source);
postHdRiskSource("/riskSource/list", formdata).then(res => {
this.$toast.clear();
this.messageList = res.data;
}).catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
toggle(index) {
this.$refs.checkboxes[index].toggle();
},
confirm() {
console.log(this.result);
this.$bus.$emit("sourceAyy",this.result)
this.$router.go(-1)
},
// 请求风险源对应的数据
}
};
</script>
<style lang="less" scoped>
.footer-con {
height: 1.333333rem;
width: 100%;
background-color: white;
padding: 0 0.266667rem;
box-sizing: border-box;
position: fixed;
bottom: 0;
display: flex;
align-items: center;
justify-content: space-between;
}
</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="confirm-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="confirmOpen">
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患确认信息:</span></van-col
>
<van-col span="17">{{ item.range }}</van-col>
</van-row>
</div>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="confirmReverse">
{{ confirmOpenText }}
</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: "展开 ▼",
confirmOpen: false,
confirmOpenText: "展开 ▼",
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 = "展开 ▼";
}
},
// 隐患认定显示或隐藏
confirmReverse () {
this.confirmOpen = !this.confirmOpen;
if (this.confirmOpen) {
this.confirmOpenText = "收起 ▲";
} else {
this.confirmOpenText = "展开 ▼";
}
},
// 日志信息显示或隐藏
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;
}
}
.confirm-wrap {
position: relative;
}
.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>
......@@ -115,6 +115,12 @@ export default {
// 详情
goDetail(data) {
console.log(data);
this.$router.push({
name: "normal-detail",
params: {
id: data.taskId
}
});
this.showIndex = null;
},
// 确认
......
<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 .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: .133333rem;
line-height: .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>
......@@ -93,7 +93,6 @@ export default {
dangerConfirm("/confirm/list").then(res =>{
this.$toast.clear();
this.messageList = res.rows
console.log(this.messageList);
}).catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
......@@ -117,7 +116,12 @@ export default {
// 详情
goDetail(data) {
console.log(data);
this.$router.push("/con-detail");
this.$router.push({
name: "normal-detail",
params: {
id: data.taskId
}
});
this.showIndex = null;
},
// 确认
......
......@@ -33,7 +33,7 @@
</van-row>
<van-row gutter="">
<van-col span="5">超期标识:</van-col>
<van-col span="19">{{ item.dueDate | formatTime }}</van-col>
<van-col span="19">{{ item | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="5">状态:</van-col>
......@@ -116,7 +116,12 @@ export default {
// 详情
goDetail(data) {
console.log(data);
this.$router.push("/review-detail");
this.$router.push({
name: "normal-detail",
params: {
id: data.taskId
}
});
this.showIndex = null;
},
// 确认
......@@ -132,13 +137,14 @@ export default {
}
},
filters: {
formatTime: function(val) {
if (new Date(val).getTime() <= new Date().getTime()) {
formatTime: function(row) {
if (new Date(row.dueDate).getTime() <= row.rectificationTime) {
return "超期";
} else if (
new Date(val).getTime() >= new Date().getTime() &&
new Date(val).getTime() <= new Date().getTime() + 259200000
new Date(row.dueDate).getTime() >= row.rectificationTime &&
new Date(row.dueDate).getTime() - 259200000 <= row.rectificationTime
) {
//三天
return "临期";
} else {
return "正常";
......
<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="confirm-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="confirmOpen">
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患确认信息:</span></van-col
>
<van-col span="17">{{ item.range }}</van-col>
</van-row>
</div>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="confirmReverse">
{{ confirmOpenText }}
</div>
</div>
<div class="change-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.level }}</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-cell-group>
</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: "展开 ▼",
confirmOpen: false,
confirmOpenText: "展开 ▼",
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 = "展开 ▼";
}
},
// 隐患认定显示或隐藏
confirmReverse () {
this.confirmOpen = !this.confirmOpen;
if (this.confirmOpen) {
this.confirmOpenText = "收起 ▲";
} else {
this.confirmOpenText = "展开 ▼";
}
},
// 日志信息显示或隐藏
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;
}
}
.confirm-wrap {
position: relative;
}
.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>
......@@ -8,7 +8,6 @@
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
......@@ -34,14 +33,13 @@
</van-row>
<van-row gutter="">
<van-col span="5">超期标识:</van-col>
<van-col span="19">{{ item.dueDate | formatTime }}</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>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
......@@ -60,7 +58,7 @@ import LHeader from "@/components/header.vue";
import { dangerStandBook } from "@/service/danger";
export default {
components: {
LHeader,
LHeader
},
data() {
return {
......@@ -86,7 +84,7 @@ export default {
loadingType: "spinner",
duration: 0
});
dangerStandBook("/review/list")
dangerStandBook("/hdreport/doneList")
.then(res => {
this.$toast.clear();
this.messageList = res.rows;
......@@ -115,16 +113,36 @@ export default {
// 详情
goDetail(data) {
console.log(data);
this.$router.push("/normal-detail");
this.$router.push({
name: "normal-detail",
params: {
id: data.businessId
}
});
this.showIndex = null;
}
},
filters: {
formatTime: function(row) {
if (row.dueDate <= row.rectificationTime) {
return "超期";
} else if (
row.dueDate >= row.rectificationTime &&
row.dueDate - 259200000 <= row.rectificationTime
) {
//三天
return "临期";
} else {
return "正常";
}
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px .533333rem;
padding: 10px 10px 0.533333rem;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
......@@ -132,9 +150,9 @@ export default {
padding: 10px;
font-size: 13px;
position: relative;
.van-row{
margin-bottom: .133333rem;
line-height: .64rem;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
......
......@@ -5,30 +5,30 @@
<div class="con-list">
<div class="cell-wrap">
<p>隐患上报</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
<van-cell-group inset>
<van-row gutter="">
<van-col span="7"
><span class="field-title">所属工程名称:</span></van-col
>
<van-col span="17">{{ item.project }}</van-col>
<van-col span="17">{{ hdReport.proId }}</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-col span="17">{{ hdReport.hdProjectName }}</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-col span="17">{{ hdReport.hdDiscoveryTime }}</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-col span="17">{{ hdReport.hdLev }}</van-col>
</van-row>
<!-- 隐藏的字段 -->
......@@ -37,73 +37,67 @@
<van-col span="7"
><span class="field-title">试用范围:</span></van-col
>
<van-col span="17">{{ item.range }}</van-col>
<van-col span="17">{{ hdReport.hdRange }}</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-col span="17">{{ hdReport.hdType }}</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-col span="17">{{ hdReport.hdProjectId }}</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-col span="17">{{ hdReport.dangerSource }}</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-col span="17">{{ hdReport.dangerId }}</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-col span="17">{{ hdReport.hdPosition }}</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-col span="17">{{ hdReport.hdDescribe }}</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-col span="17">{{ hdReport.hdPicture }}</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-col span="17">{{ hdReport.hdVideo }}</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-col span="17">{{ hdReport.hdExpirationTime }}</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-col span="17">{{ hdReport.rectificationUser }}</van-col>
</van-row>
</div>
</van-cell-group>
......@@ -113,117 +107,109 @@
</div>
</div>
<div class="confirm-wrap">
<div class="confirm-wrap" v-if="hdConfirm">
<p>隐患认定</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
<van-cell-group inset >
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患整改人:</span></van-col
>
<van-col span="17">{{ item.project }}</van-col>
<van-col span="17">{{ hdConfirm.rectificationUser }}</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-col span="17">{{ hdConfirm.rectificationReview }}</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-col span="17">{{ hdConfirm.endTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患复查人:</span></van-col
><span class="field-title">意见:</span></van-col
>
<van-col span="17">{{ item.level }}</van-col>
<van-col span="17">{{ hdConfirm.confirmOpinion }}</van-col>
</van-row>
<!-- 隐藏的字段 -->
<div v-show="confirmOpen">
<!-- <div v-show="confirmOpen">
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患确认信息:</span></van-col
>
<van-col span="17">{{ item.range }}</van-col>
<van-col span="17">{{ hdConfirm.confirmOpinion }}</van-col>
</van-row>
</div>
</div> -->
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="confirmReverse">
<!-- <div class="more" @click="confirmReverse">
{{ confirmOpenText }}
</div>
</div> -->
</div>
<div class="change-wrap">
<div class="change-wrap" v-if="hdRectificationList.length>0">
<p>隐患整改</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
<van-cell-group inset v-for="(item, index) in hdRectificationList" :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-col span="17">{{ item.details }}</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-col span="17">{{ item.rePicture }}</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-col span="17">{{ item.reVideo }}</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-col span="17">{{ item.creatTime }}</van-col>
</van-row>
</van-cell-group>
</div>
<div class="review-wrap">
<div class="review-wrap" v-if="hdReviewList.length>0">
<p>整改复查</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
<van-cell-group inset v-for="(item, index) in hdReviewList" :key="index">
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患照片:</span></van-col
>
<van-col span="17">{{ item.subject }}</van-col>
<van-col span="17">{{ item.reviewPicture }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">详情描述:</span></van-col
>
<van-col span="17">{{ item.project }}</van-col>
<van-col span="17">{{ item.reviewDetails }}</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-col span="17">{{ item.reviewResult == 1? "合格":"不合格"}}</van-col>
</van-row>
</van-cell-group>
</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>
<van-cell-group inset >
<van-steps direction="vertical" :active="99999" v-if="hdLogList.length>0">
<van-step v-for="(item, index) in hdLogList" :key="index">
<div class="step-wrap">
<van-row>
<van-col span="24"
......@@ -234,49 +220,92 @@
<van-col span="5"
><span class="field-title">审批人:</span></van-col
>
<van-col span="19">首华建设项目</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
><span class="field-title">节点</span></van-col
>
<van-col span="19">隐患上报</van-col>
<van-col span="19">{{item.logNode}}</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">结果:</span></van-col
>
<van-col span="19">通过</van-col>
<van-col span="19">{{item.logResult}}</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">部门:</span></van-col
>
<van-col span="19">首华建设项目部</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">2021-10-26 16:30:00</van-col>
<van-col span="19">{{item.createTime}}</van-col>
</van-row>
</div>
</van-step>
</van-steps>
<div style="text-align: center;" v-if="hdLogList.length == 0">暂无数据</div>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="journalReverse">
<div class="more" @click="journalReverse" v-show="hdLogList.length>0">
{{ 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 inset >
<van-steps direction="vertical" :active="99999" v-if="instructionsList.length>0">
<van-step v-for="(item, index) in instructionsList" :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.logNode}}</van-col>
</van-row>
<van-row>
<van-col span="5"
><span class="field-title">结果:</span></van-col
>
<van-col span="19">{{item.logResult}}</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>
</div>
</van-step>
</van-steps>
<div style="text-align: center;" v-if="instructionsList.length == 0">暂无数据</div>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="superviseReverse" v-show="false">
<div class="more" @click="superviseReverse" v-show="instructionsList.length>0">
{{ superviseOpenText }}
</div>
</div>
......@@ -286,12 +315,14 @@
<script>
import LHeader from "@/components/header.vue";
import { standBookDetail } from "@/service/danger";
export default {
components: {
LHeader
},
data() {
return {
id: "",
text: "隐患历史台账详情",
reportOpen: false,
reportOpenText: "展开 ▼",
......@@ -302,31 +333,50 @@ export default {
confirmOpen: false,
confirmOpenText: "展开 ▼",
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: []
hdReport:"",
hdConfirm:"",
hdMajorApproveList:[], // 重大隐患审批 先不做
hdRectificationList:[],
hdReviewList:[],
hdLogList:[],
beifenhdLogList:[],
instructionsList:[],
beifeninstructionsList:[]
};
},
mounted() {},
created() {
this.id = this.$route.params.id;
if (this.id) {
this.postDetail();
}
},
methods: {
// 请求台账信息
postDetail() {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
standBookDetail(`/hdreport/hdDetailsApp/${this.id}`)
.then(res => {
this.$toast.clear();
this.hdReport = res.data.hdReport
this.hdConfirm = res.data.hdConfirm
this.hdRectificationList = res.data.hdRectificationList
this.hdReviewList = res.data.hdReviewList
this.beifenhdLogList = res.data.hdLogList
this.hdLogList = this.beifenhdLogList.slice(0,1)
this.beifeninstructionsList = res.data.instructionsList
this.instructionsList = this.beifeninstructionsList.slice(0,1)
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
// 上报信息显示或隐藏
reportReverse() {
this.reportOpen = !this.reportOpen;
......@@ -337,7 +387,7 @@ export default {
}
},
// 隐患认定显示或隐藏
confirmReverse () {
confirmReverse() {
this.confirmOpen = !this.confirmOpen;
if (this.confirmOpen) {
this.confirmOpenText = "收起 ▲";
......@@ -352,9 +402,13 @@ export default {
if (this.journalOpen) {
// 显示所有数据
this.journalOpenText = "收起 ▲";
// 显示所有数据
this.hdLogList = this.beifenhdLogList
} else {
// 只渲染一条数据
this.journalOpenText = "展开 ▼";
// 只显示第一个数据
this.hdLogList = this.beifenhdLogList.slice(0,1)
}
},
// 督办信息显示或隐藏
......@@ -363,9 +417,11 @@ export default {
if (this.superviseOpen) {
// 显示所有数据
this.superviseOpenText = "收起 ▲";
this.instructionsList = this.beifeninstructionsList
} else {
// 只渲染一条数据
this.superviseOpenText = "展开 ▼";
this.instructionsList = this.beifeninstructionsList.slice(0,1)
}
}
}
......
......@@ -2,44 +2,166 @@
<div>
<LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<van-tabs
v-model="active"
color="#247df7"
title-inactive-colo="#d0d1d1"
title-active-color="#000000"
<!-- 内容列表 -->
<!-- 接口对接4 START -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<van-tab title="重大风险">
<risk-big-list></risk-big-list>
</van-tab>
<van-tab title="一般风险">一般风险</van-tab>
</van-tabs>
<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.subject }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患发现时间:</van-col>
<van-col span="17">{{ item.findTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.level }}</van-col>
</van-row>
<!-- *接口对接4 END -->
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import riskBigList from './riskBigList.vue';
import { postriskBook } from "@/service/risk";
/*接口对接2 START*/
// 例子:
// import {
// getFormList,
// postHdTyp,
// postHdName,
// postHdInventories,
// postHdRiskSource,
// postHdShowPeople,
// postHdReportAdd,
// dangerReturnEcho,
// } from "@/service/danger";
/*接口对接2 END*/
export default {
components: {
LHeader,
riskBigList
},
data() {
return {
text: "风险历史台账",
active: "1",
searchValue: ""
searchValue: "",
messageList: [],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
created() {
this.getList();
},
methods: {
getList() {
/*接口对接3 START*/
// 例子:
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
postriskBook("/riskMain/doneList")
.then(res => {
this.$toast.clear();
this.messageList = res.rows
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
/*接口对接3 END*/
},
onSearch(val) {
console.log(val);
},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if (this.showIndex != null) {
this.showIndex = null;
return;
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.$router.push({
name: "risk-big-detail",
params: {
id: data.businessId
}
});
this.showIndex = null;
},
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row{
margin-bottom: .133333rem;
line-height: .64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
......@@ -7,11 +7,15 @@
<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="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="7"
><span class="field-title">风险因素:</span></van-col
>
<van-col span="17">{{ item.subject }}</van-col>
</van-row>
<van-row gutter="">
......@@ -19,58 +23,84 @@
<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="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="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="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="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="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="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="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="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="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="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="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="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="7"
><span class="field-title">应急措施(附件):</span></van-col
>
<van-col span="17">{{ item.recPeople }}</van-col>
</van-row>
</div>
......@@ -81,7 +111,6 @@
</div>
</div>
<div class="confirme-wrap">
<p>风险确认</p>
<van-cell-group inset v-for="(item, index) in reportList" :key="index">
......@@ -152,7 +181,6 @@
<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>
<!-- 展开 -->
......@@ -166,6 +194,7 @@
<script>
import LHeader from "@/components/header.vue";
export default {
components: {
LHeader
......@@ -203,8 +232,11 @@ export default {
journalList: []
};
},
mounted() {},
created() {
},
methods: {
// 上报信息显示或隐藏
reportReverse() {
this.reportOpen = !this.reportOpen;
......@@ -236,15 +268,13 @@ export default {
this.superviseOpenText = "展开 ▼";
}
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px .533333rem;
padding: 10px 10px 0.533333rem;
background-color: #f0f1f5;
.cell-wrap {
position: relative;
......@@ -263,14 +293,14 @@ export default {
font-size: 13px;
position: relative;
.van-row {
margin-bottom: .133333rem;
line-height: .64rem;
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
}
.journal-wrap {
position: relative;
}
.supervise-wrap{
.supervise-wrap {
position: relative;
}
.info-title {
......
<template>
<div>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<van-row gutter="">
<van-col span="7">所属工程名称:</van-col>
<van-col span="17">{{ item.project }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.subject }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患发现时间:</van-col>
<van-col span="17">{{ item.findTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.level }}</van-col>
</van-row>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
messageList: [
{
project: "朝阳区和平街14区简易住宅楼改造项目",
subject: "临时用电施工组织设计未对盾构施工用电进行专项说明。",
findTime: "2021-10-26 16:30:00",
level: "一般隐患A"
}
],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
methods: {
read() {},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if (this.showIndex != null) {
this.showIndex = null;
return;
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.$router.push("/risk-big-detail");
this.showIndex = null;
},
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row{
margin-bottom: .133333rem;
line-height: .64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
......@@ -14,13 +14,14 @@
rows="1"
autosize=""
label="退回原因"
name="退回原因"
name="returnCause"
type="textarea"
/>
<van-field
v-if="!isShowreturnCause"
readonly
clickable
name="所属工程名称"
name="projectName"
:value="projectName"
label="所属工程名称"
placeholder="请选择"
......@@ -30,6 +31,7 @@
<van-popup v-model="showProjectName" position="bottom">
<van-picker
show-toolbar
value-key="projectName"
:columns="columnsProjectName"
@confirm="onConProjectName"
@cancel="showProjectName = false"
......@@ -39,7 +41,7 @@
<van-field
readonly
clickable
name="风险因素"
name="factor"
:value="factor"
label="风险因素"
placeholder="请选择"
......@@ -49,6 +51,7 @@
<van-popup v-model="showFactor" position="bottom">
<van-picker
show-toolbar
value-key="factorType"
:columns="columnsFactor"
@confirm="onConFactor"
@cancel="showFactor = false"
......@@ -58,7 +61,7 @@
<van-field
readonly
clickable
name="风险源"
name="source"
:value="source"
label="风险源"
placeholder="请选择"
......@@ -68,6 +71,7 @@
<van-popup v-model="showSource" position="bottom">
<van-picker
show-toolbar
value-key="sourceName"
:columns="columnsSource"
@confirm="onConSource"
@cancel="showSource = false"
......@@ -77,7 +81,7 @@
<van-field
readonly
clickable
name="事故类型"
name="trouble"
:value="trouble"
label="事故类型"
placeholder="请选择"
......@@ -87,6 +91,7 @@
<van-popup v-model="showTrouble" position="bottom">
<van-picker
show-toolbar
value-key="accidentType"
:columns="columnsTrouble"
@confirm="onConTrouble"
@cancel="showTrouble = false"
......@@ -96,7 +101,7 @@
<van-field
readonly
clickable
name="风险定级"
name="setRank"
:value="setRank"
label="风险定级"
placeholder="请选择"
......@@ -115,7 +120,7 @@
<van-field
v-model="riskRank"
readonly
name="风险等级"
name="riskRank"
label="风险等级"
placeholder="请选择"
:rules="[{ required: true, message: '风险等级不能为空' }]"
......@@ -123,7 +128,7 @@
<van-field
v-model="setRankMode"
name="定级方式"
name="setRankMode"
label="定级方式"
type="textarea"
rows="1"
......@@ -141,7 +146,7 @@
<van-field
v-model="location"
name="风险部位"
name="location"
label="风险部位"
type="textarea"
rows="1"
......@@ -153,7 +158,7 @@
<van-field
readonly
clickable
name="管控层级"
name="control"
:value="control"
label="管控层级"
placeholder="请选择"
......@@ -172,16 +177,16 @@
<van-field
readonly
clickable
name="主责部门"
name="mainDutyDept"
:value="mainDutyDept"
label="主责部门"
placeholder="请选择"
@click="showMainDutyDept = true"
:rules="[{ required: true, message: '主责部门不能为空' }]"
/>
<van-popup v-model="showMainDutyDept" position="bottom">
<van-picker
show-toolbar
value-key="deptName"
:columns="columnsMainDutyDept"
@confirm="onConMainDutyDept"
@cancel="showMainDutyDept = false"
......@@ -191,16 +196,16 @@
<van-field
readonly
clickable
name="主责人员"
name="mainDutyPeopLe"
:value="mainDutyPeopLe"
label="主责人员"
placeholder="请选择"
@click="showMainDutyPeopLe = true"
:rules="[{ required: true, message: '主责人员不能为空' }]"
/>
<van-popup v-model="showMainDutyPeopLe" position="bottom">
<van-picker
show-toolbar
value-key="userName"
:columns="columnsMainDutyPeopLe"
@confirm="onConMainDutyPeopLe"
@cancel="showMainDutyPeopLe = false"
......@@ -209,7 +214,7 @@
<van-field
v-model="technology"
name="技术措施"
name="technology"
label="技术措施"
type="textarea"
rows="1"
......@@ -227,7 +232,7 @@
<van-field
v-model="administration"
name="管理措施"
name="administration"
label="管理措施"
type="textarea"
rows="1"
......@@ -245,7 +250,7 @@
<van-field
v-model="urgent"
name="应急措施"
name="urgent"
label="应急措施"
type="textarea"
rows="1"
......@@ -277,26 +282,28 @@
<script>
import LHeader from "@/components/header.vue";
import { timestampToTime } from "@/utils/format";
import { getFormList, postHdSource, postHdType, postHdPeople, postReAdd, postriskConiCause } from "@/service/risk";
export default {
components: {
LHeader
},
data() {
return {
taskId:"",
text: "新增风险",
projectId: "", // 所属工程
projectName: "", // 所属工程
showProjectName: false,
columnsProjectName: ["工程1", "工程2", "工程3", "工程4"],
columnsProjectName: [],
factor: "", //风险因素
showFactor: false,
columnsFactor: ["风险因素1", "风险因素2", "风险因素3", "风险因素4"],
columnsFactor: [],
source: "", //风险源
showSource: false,
columnsSource: ["风险源1", "风险源2", "风险源3", "风险源4"],
columnsSource: [],
trouble: "", //事故类型
showTrouble: false,
columnsTrouble: ["风险源1", "风险源2", "风险源3", "风险源4"],
columnsTrouble: [],
setRank: "", //风险定级
showSetRank: false,
columnsSetRank: ["一般风险", "较小风险", "较大风险", "重大风险"],
......@@ -308,57 +315,185 @@ export default {
showControl: false,
columnsControl: ["项目级", "企业级"],
mainDutyDept: "", // 主责部门
mainDutyDeptId: "",
showMainDutyDept: false,
columnsMainDutyDept: ["首华建设项目部"],
columnsMainDutyDept: [],
mainDutyPeopLe: "", // 主责人员
mainDutyPeopLeId :"",
showMainDutyPeopLe: false,
columnsMainDutyPeopLe: ["张三", "李四", "王五"],
columnsMainDutyPeopLe: [],
technology:"", //技术措施文字
technologyImg:[],//技术措施图片
administration:"", //管理措施文字
administrationImg:[],//管理措施图片
urgent:"", //应急措施文字
urgentImg:[],//应急措施图片
returnCause: "你这不行啊", // 退回原因
returnCause: "", // 退回原因
isShowreturnCause: false
};
},
created() {
console.log(this.$route.params);
if (this.$route.params.status) {
this.isShowreturnCause = true;
this.text = "风险上报退回"
this.taskId = this.$route.params.taskId
this.postReturnEcho()
}
this.getList();
},
methods: {
onSubmit(values) {
console.log("submit", values);
let formdata = new FormData()
formdata.append("pId", this.projectId)
formdata.append("riskFactor", this.factor)
formdata.append("riskSource", this.source)
formdata.append("accidentType", this.trouble)
formdata.append("level", this.setRank)
formdata.append("riskLevel", this.riskRank)
formdata.append("gradingMethod", this.setRankMode)
formdata.append("riskPosition", this.location)
formdata.append("controlLevel", this.control)
formdata.append("responsibilityDept", this.mainDutyDeptId)
formdata.append("responsibilityMember", this.mainDutyPeopLeId)
formdata.append("technicalMeasures", this.technology)
formdata.append("managementMeasures", this.administration)
formdata.append("emergencyMeasure", this.urgent)
this.$toast.loading({
message: "提交中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
postReAdd("/riskMain/add", formdata)
.then(res => {
this.$toast.clear();
this.$toast.success({
message: "提交成功",
duration: 2000
});
history.go(-1);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试");
});
},
// 请求表单数据
getList() {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
getFormList("/riskMain/add")
.then(res => {
this.$toast.clear();
this.columnsProjectName = res.data.projectInformations;
this.columnsFactor = res.data.riskInventories;
this.columnsMainDutyDept = res.data.organizationList
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
// 请求已退回详情数据
postReturnEcho(){
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
postriskConiCause(`/riskMain/edit/${this.taskId}`)
.then(res => {
this.$toast.clear();
// let msg = res.data.hdReport
// // 对数据进行赋值
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(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
// 所属工程名称
onConProjectName(value) {
this.projectName = value;
this.projectId = value.id;
this.projectName = value.projectName;
this.showProjectName = false;
},
// 风险因素
onConFactor(value) {
this.factor = value;
this.factor = value.factorType;
this.showFactor = false;
this.source = "";
this.trouble = "";
// 请求风险源
postHdSource(`/riskMain/showSourceName/${this.factor}`).then(res =>{
this.columnsSource = res.data
})
},
// 风险源
onConSource(value) {
this.source = value;
this.source = value.sourceName;
this.showSource = false;
this.trouble = "";
// 请求事故类型
postHdType(`/riskMain/showaccidentType/${this.factor}/${this.source}`).then(res =>{
this.columnsTrouble = res.data
})
},
// 事故类型
onConTrouble(value) {
this.trouble = value;
this.trouble = value.accidentType;
this.showTrouble = false;
},
// 风险定级
onConSetRank(value) {
this.setRank = value;
this.riskRank = value;
if(value == "重大风险" || value == "较大风险"){
this.control = "企业级"
}else{
this.control = "项目级"
}
this.showSetRank = false;
},
// 管控层级
......@@ -368,12 +503,24 @@ export default {
},
// 主责部门
onConMainDutyDept(value) {
this.mainDutyDept = value;
this.mainDutyDeptId = value.deptId
this.mainDutyDept = value.deptName;
this.showMainDutyDept = false;
this.mainDutyPeopLe = ""
// 请求主责人员
// 请求事故类型
let formdata = new FormData()
formdata.append("organizationId",this.mainDutyDeptId)
postHdPeople(`/riskMain/getUserList`,formdata).then(res =>{
this.columnsMainDutyPeopLe = res.data
})
},
// 主责人员
onConMainDutyPeopLe(value) {
this.mainDutyPeopLe = value;
this.mainDutyPeopLeId = value.userId
this.mainDutyPeopLe = value.userName;
this.showMainDutyPeopLe = false;
},
......
......@@ -3,54 +3,166 @@
<LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<van-tabs
v-model="active"
color="#247df7"
title-inactive-colo="#d0d1d1"
title-active-color="#000000"
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<van-tab title="待确认">
<wait-confirme></wait-confirme>
</van-tab>
<van-tab title="已确认">
已确认
<!-- <committed></committed> -->
</van-tab>
<van-tab title="已退回">
已退回
<!-- <returned></returned> -->
</van-tab>
</van-tabs>
<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>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="info" @touchstart="goConfirm(item)"
>确认</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import WaitConfirme from "./waitConfirme";
// import Returned from "./returned";
// import Committed from './committed';
import { postriskConList } from "@/service/risk";
export default {
components: {
LHeader: LHeader,
WaitConfirme
// Returned,
// Committed
},
data() {
return {
text: "风险确认",
active: "1",
searchValue: ""
searchValue: "",
messageList:[],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
created() {
this.postList()
},
methods: {
postList(){
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
postriskConList("/riskConfirm/list")
.then(res => {
this.$toast.clear();
this.messageList = res.rows
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
onSearch(val) {
console.log(val);
},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if (this.showIndex != null) {
this.showIndex = null;
return;
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.$router.push("/affirm-detail");
this.showIndex = null;
},
// 确认
goConfirm(data) {
console.log(data);
this.$router.push({
name:"risk-affirm",
params:{
"taskId":data.taskId
}
});
this.showIndex = null;
}
}
};
</script>
<style scoped>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.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%;
}
}
}
}
</style>
......@@ -15,7 +15,7 @@
@change="selectResult"
>
<van-radio name="1">同意</van-radio>
<van-radio name="2">退回</van-radio>
<van-radio name="0">退回</van-radio>
</van-radio-group>
</template>
</van-field>
......@@ -25,7 +25,7 @@
<van-field
v-model="agreeIdea"
label="意见"
name ="意见"
name ="confirmOpinion"
rows="3"
type="textarea"
placeholder="请输入"
......@@ -38,7 +38,7 @@
<van-field
v-model="disagreeIdea"
label="退回原因"
name ="退回原因"
name ="confirmOpinion"
rows="3"
type="textarea"
placeholder="请输入"
......@@ -62,13 +62,14 @@
<script>
import LHeader from "@/components/header.vue";
import { timestampToTime } from '@/utils/format'
import { postriskConAdd } from "@/service/risk";
export default {
components: {
LHeader
},
data() {
return {
taskId: "",
radio: "1",
text: "风险确认",
agreeIdea:"", // 同意意见
......@@ -76,7 +77,9 @@ export default {
};
},
mounted() {},
created() {
this.taskId = this.$route.params.taskId;
},
methods: {
selectResult(val) {
this.radio = val;
......@@ -84,6 +87,31 @@ export default {
onSubmit(values) {
console.log("submit", values);
if (!this.taskId) {
return;
}
let formdata = new FormData()
formdata.append("confirmResult", values.radio)
formdata.append("confirmOpinion", values.confirmOpinion)
this.$toast.loading({
message: "提交中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
postriskConAdd(`/riskConfirm/add/${this.taskId}`,formdata)
.then(res => {
this.$toast.clear();
this.$toast.success({
message: "提交成功",
duration: 2000
});
history.go(-1);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试");
});
},
cancel() {
this.$router.go(-1);
......
<template>
<div>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<van-row gutter="">
<van-col span="7">所属工程名称:</van-col>
<van-col span="17">{{ item.project }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.subject }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患发现时间:</van-col>
<van-col span="17">{{ item.findTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.level }}</van-col>
</van-row>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="info" @touchstart="goConfirm(item)"
>确认</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
messageList: [
{
project: "朝阳区和平街14区简易住宅楼改造项目",
subject: "临时用电施工组织设计未对盾构施工用电进行专项说明。",
findTime: "2021-10-26 16:30:00",
level: "一般隐患A"
}
],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
methods: {
read() {},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if (this.showIndex != null) {
this.showIndex = null;
return;
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.$router.push("/affirm-detail");
this.showIndex = null;
},
// 确认
goConfirm(data) {
console.log(data);
this.$router.push("/risk-affirm");
this.showIndex = null;
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row{
margin-bottom: .133333rem;
line-height: .64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
......@@ -2,33 +2,185 @@
<div>
<LHeader :text="text"></LHeader>
<van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
<risk-returned></risk-returned>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<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>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>上报</van-button
>
<van-button round type="warning" @touchstart="goDelete(item)"
>删除</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import RiskReturned from "./riskReturned";
import { postriskConReturn, postriskConReDel } from "@/service/risk";
export default {
components: {
LHeader: LHeader,
RiskReturned,
},
data() {
return {
text: "上报退回",
searchValue: ""
searchValue: "",
messageList: [],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
created() {
this.postList();
},
methods: {
postList() {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
postriskConReturn("/riskMain/list")
.then(res => {
this.$toast.clear();
this.messageList = res.rows;
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
onSearch(val) {
console.log(val);
},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if (this.showIndex != null) {
this.showIndex = null;
return;
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.$router.push({
name: 'risk-add',
params: {
status: "退回",
taskId: data.taskId
}
});
this.showIndex = null;
},
// 删除
goDelete(data) {
console.log(data);
this.$toast.loading({
message: "删除中...",
forbidClick: true,
loadingType: "spinner",
duration: 0
});
postriskConReDel(`/riskMain/delete/${data.taskId}`)
.then(res => {
this.$toast.clear();
this.$toast.success({
message: "删除成功",
duration: 2000
});
this.postList();
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("删除失败,请稍后再试");
});
this.showIndex = null;
}
}
};
</script>
<style scoped>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row{
margin-bottom: .133333rem;
line-height: .64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
<template>
<div>
<!-- 内容列表 -->
<div class="con-list">
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="read(item)"
@touchstart="touchstart(index, item)"
@touchend.prevent="touchend(index)"
>
<van-row gutter="">
<van-col span="7">所属工程名称:</van-col>
<van-col span="17">{{ item.project }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.subject }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患发现时间:</van-col>
<van-col span="17">{{ item.findTime }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.level }}</van-col>
</van-row>
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop>
<van-button round type="primary" @touchstart="goDetail(item)"
>详情</van-button
>
<van-button round type="warning" @touchstart="goDelete(item)"
>删除</van-button
>
</div>
</van-overlay>
</van-cell-group>
</div>
</div>
</template>
<script>
export default {
data() {
return {
messageList: [
{
project: "朝阳区和平街14区简易住宅楼改造项目",
subject: "临时用电施工组织设计未对盾构施工用电进行专项说明。",
findTime: "2021-10-26 16:30:00",
level: "一般隐患A"
}
],
Loop: "", // 定时器
showIndex: null // 是否显示遮罩层
};
},
mounted() {},
methods: {
read() {},
touchstart(index, item) {
clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
if (this.showIndex != null) {
this.showIndex = null;
return;
}
this.Loop = setTimeout(() => {
this.showIndex = index;
}, 300); // 这里的1000是指需要长按的时间,单位为ms
},
touchend(index) {
// 这个方法主要是用来将每次手指移出之后将计时器清零
clearInterval(this.Loop);
},
// 详情
goDetail(data) {
console.log(data);
this.$router.push({
name: 'risk-add',
params: {status: "退回"}
});
this.showIndex = null;
},
// 删除
goDelete(data) {
console.log(data);
this.showIndex = null;
}
}
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
padding: 10px 10px 0;
background-color: #f0f1f5;
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row{
margin-bottom: .133333rem;
line-height: .64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
</style>
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