Commit 6476a59a authored by 罗新东's avatar 罗新东

工单状态

parent 1196c373
...@@ -607,15 +607,32 @@ const routes = [{ ...@@ -607,15 +607,32 @@ const routes = [{
component:()=>import('@/views/danger/insertDanger/list') component:()=>import('@/views/danger/insertDanger/list')
}, },
{ {
path:'/video', path:'/insert-risk',
name:'video-play', name:'insert-risk',
meta:{ meta:{
title:'视屏播放', title:'我的风险上报',
index:1 index:1
}, },
component:()=>import('@/components/video') component:()=>import('@/views/risk/my-insert/index')
},
{
path:'/my-role',
name:'my-role',
meta:{
title:'我的权限',
index:1
},
component:()=>import('@/views/my/role')
},
{
path:'/my-reset-pas',
name:'my-reset-pas',
meta:{
title:'重置密码',
index:1
},
component:()=>import('@/views/my/resetPas')
}, },
] ]
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<!-- 视屏 -->
<div v-if="videoUrl">
<custom-player :videoUrl="videoUrl" :videoImg="videoImg" @close="videoUrl=''"/>
</div>
<van-form <van-form
@submit="onSubmit" @submit="onSubmit"
:scroll-to-error="true" :scroll-to-error="true"
...@@ -280,6 +284,7 @@ ...@@ -280,6 +284,7 @@
upload-text="最多上传五个" upload-text="最多上传五个"
v-model="uploaderVideo" v-model="uploaderVideo"
accept="video/*" accept="video/*"
@click-preview="clickPre"
> >
<template slot="default"> <template slot="default">
<!-- 11111111111 --> <!-- 11111111111 -->
...@@ -362,6 +367,7 @@ ...@@ -362,6 +367,7 @@
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js"; import { getFun, postFun } from "@/service/table.js";
import { timestampToTime } from "@/utils/format"; import { timestampToTime } from "@/utils/format";
import customPlayer from "@/components/video"
import { import {
getFormList, getFormList,
postHdTyp, postHdTyp,
...@@ -376,6 +382,7 @@ export default { ...@@ -376,6 +382,7 @@ export default {
name: "add-danger", name: "add-danger",
components: { components: {
LHeader, LHeader,
customPlayer
}, },
activated() { activated() {
this.taskId = this.taskId =
...@@ -444,6 +451,9 @@ export default { ...@@ -444,6 +451,9 @@ export default {
data() { data() {
return { return {
// 视频预览地址
videoUrl:'',
id: 0, id: 0,
text: "新增隐患", text: "新增隐患",
taskId: "", taskId: "",
...@@ -486,6 +496,15 @@ export default { ...@@ -486,6 +496,15 @@ export default {
}, },
methods: { methods: {
// 点击预览图
clickPre(e){
console.log(e)
if(e.filePath){
this.videoUrl=e.filePath;
}else{
this.videoUrl=e.content;
}
},
async deleteFile(val,detail,key){ async deleteFile(val,detail,key){
// console.log(val,detail) // console.log(val,detail)
if(val.fileId){ if(val.fileId){
......
...@@ -31,10 +31,10 @@ ...@@ -31,10 +31,10 @@
<van-col span="6">超期标识:</van-col> <van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item.dueDate | formatTime }}</van-col> <van-col span="18">{{ item.dueDate | formatTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 详情 --> <!-- 详情 -->
<div class="detail">详情</div> <div class="detail">详情</div>
</van-cell-group> </van-cell-group>
......
...@@ -60,10 +60,10 @@ ...@@ -60,10 +60,10 @@
<van-col span="6">超期标识:</van-col> <van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item.dueDate | formatTime }}</van-col> <van-col span="18">{{ item.dueDate | formatTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 长按显示遮罩层 --> <!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index"> <van-overlay :show="showIndex == index">
...@@ -136,10 +136,10 @@ ...@@ -136,10 +136,10 @@
<van-col span="6">超期标识:</van-col> <van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item.dueDate | formatTime }}</van-col> <van-col span="18">{{ item.dueDate | formatTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 长按显示遮罩层 --> <!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index"> <van-overlay :show="showIndex == index">
......
...@@ -27,10 +27,10 @@ ...@@ -27,10 +27,10 @@
<van-col span="6">隐患类型:</van-col> <van-col span="6">隐患类型:</van-col>
<van-col span="18">{{ item.hdType }}</van-col> <van-col span="18">{{ item.hdType }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- <van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">发现时间:</van-col> <van-col span="6">发现时间:</van-col>
<van-col span="18">{{ item.hdDiscoveryTime }}</van-col> <van-col span="18">{{ item.hdDiscoveryTime }}</van-col>
......
...@@ -45,10 +45,10 @@ ...@@ -45,10 +45,10 @@
<van-col span="6">隐患类型:</van-col> <van-col span="6">隐患类型:</van-col>
<van-col span="18">{{ item.hdType }}</van-col> <van-col span="18">{{ item.hdType }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 长按显示遮罩层 --> <!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index"> <van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null"> <div class="wrapper" @click.stop="showIndex = null">
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
position: fixed; position: fixed;
top: 30%; top: 30%;
" "
v-if="isHaveNews" v-if="messageList['length']==0"
> >
暂无数据 暂无数据
</div> </div>
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<van-col span="18">{{ item.hdDiscoveryTime }}</van-col> <van-col span="18">{{ item.hdDiscoveryTime }}</van-col>
</van-row> --> </van-row> -->
<!-- <van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> --> </van-row> -->
......
<template> <template>
<div> <div>
<LHeader :text="text"></LHeader> <LHeader :text="text"></LHeader>
<van-cell-group <van-cell-group
inset inset
v-for="(item, index) in messageList" v-for="(item, index) in messageList"
:key="index" :key="index"
@click="goDetail(item.taskId)" @click="goDetail(item.taskId)"
> >
<!-- {{item}} -->
<van-row gutter="">
<van-col span="7">隐患编号:</van-col>
<van-col span="17">{{ item.businessId }}</van-col>
</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.businessId }}</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.hdLev | dangerText }}</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="17">{{ item.hdLev | dangerText }}</van-col>
</van-row>
<!-- <van-row gutter="">
<van-col span="7">发现时间:</van-col> <van-col span="7">发现时间:</van-col>
<van-col span="17">{{ item.startDate }}</van-col> <van-col span="17">{{ item.startDate }}</van-col>
</van-row> --> </van-row> -->
<!-- 详情 --> <!-- 详情 -->
<div class="detail">详情</div> <div class="detail">详情</div>
</van-cell-group> </van-cell-group>
<van-form <!-- {{messageList[0]}} -->
@submit="onSubmit" <van-form
:show-error='false' @submit="onSubmit"
:scroll-to-error="true" :show-error="false"
validate-trigger="onSubmit" :scroll-to-error="true"
> validate-trigger="onSubmit"
<van-field name="isResult" label="审批结果"> >
<template #input> <van-field name="isResult" label="审批结果">
<van-radio-group <template #input>
v-model="radio" <van-radio-group
direction="horizontal" v-model="radio"
@change="selectResult" direction="horizontal"
> @change="selectResult"
<van-radio name="1">同意</van-radio> >
<van-radio name="0">退回</van-radio> <!-- <van-radio name="1">同意</van-radio>
</van-radio-group> <van-radio name="0">退回</van-radio> -->
</template> <van-radio name="1" style="margin-bottom:0.3rem">{{name=='项目经理二次认定'?'退回到发起人':'同意'}}</van-radio>
</van-field> <van-radio name="0" style="margin-bottom:0.3rem">{{name=='项目经理二次认定'?'重新发起重大隐患审批':'退回'}}</van-radio>
<!-- 同意时的选项 --> </van-radio-group>
<!-- <div class="agree" v-if="radio == 1"> </template>
<van-field </van-field>
v-model="agreeOpinion"
label="审批意见"
name="details"
rows="3"
type="textarea"
placeholder="请输入"
/>
</div> -->
<!-- 退回是的选项 --> <div class="disagree">
<div class="disagree"> <van-field
<van-field readonly
readonly v-if="radio == 1"
v-if="radio==0" clickable
clickable required
name="thinkHdLev" name="thinkHdLev"
:value="thinkLevel" :value="thinkLevel"
label="认定的隐患级别" label="认定的隐患级别"
placeholder="请选择认定隐患级别" placeholder="请选择认定隐患级别"
@click="showThinkLevel = true" @click="showThinkLevel = true"
:rules="[{ required: true, message: '认定隐患级别不能为空' }]" :rules="[
/> { required: true, message: '认定隐患级别不能为空' },
<van-popup v-model="showThinkLevel" position="bottom"> ]"
<van-picker />
show-toolbar <van-popup v-model="showThinkLevel" position="bottom">
value-key="projectName" <van-picker
:default-index="0" show-toolbar
:columns="columnsThinkLevel" value-key="projectName"
@confirm="onConThinkLevel" :default-index="0"
@cancel="showThinkLevel = false" :columns="columnsThinkLevel"
/> @confirm="onConThinkLevel"
</van-popup> @cancel="showThinkLevel = false"
/>
</van-popup>
<van-field <van-field
v-model="disagreeOpinion" v-model="disagreeOpinion"
label="审批意见" label="审批意见"
name="details" name="details"
rows="3" rows="3"
type="textarea" type="textarea"
placeholder="请输入" placeholder="请输入"
:rules="[{ required: true, message: '退回原因不能为空' }]" required
/> :rules="[{ required: true, message: '审批意见不能为空' }]"
</div> />
</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
> >
</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
> >
</div>
</div> </div>
</div>
</template> </template>
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import {getFun,postFun} from "@/service/table.js"; import { getFun, postFun } from "@/service/table.js";
import { majorAdd } from "@/service/danger"; import { majorAdd } from "@/service/danger";
export default { export default {
name:"major-survey", name: "major-survey",
components: { components: {
LHeader LHeader,
},
data() {
return {
taskId: "",
messageList: [],
radio: "1",
text: "重大隐患审批",
agreeOpinion: "",
disagreeOpinion: "",
thinkLevel:'', //因为隐患级别
thinkHdLev:'',
showThinkLevel: false,
columnsThinkLevel:["建议为严重隐患","建议为较大隐患","建议为危险隐患",]
};
},
beforeRouteEnter(to, from, next) {
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: {
selectResult(val) {
this.radio = val;
}, },
data() {
onSubmit(values) { return {
this.$toast.loading({ name:'',
message: "提交中...", taskId: "",
forbidClick: true, messageList: [],
loadingType: "spinner", radio: "1",
duration: 0 text: "重大隐患审批",
}); agreeOpinion: "",
let formdata = new FormData() disagreeOpinion: "",
formdata.append('isResult', values.isResult) thinkLevel: "", //因为隐患级别
formdata.append('details', values.details) thinkHdLev: "",
formdata.append('thinkHdLev',values.isResult==1?'':values.thinkHdLev) showThinkLevel: false,
formdata.append('taskId', this.taskId) columnsThinkLevel: [
majorAdd(`/majorapprove/add`,formdata) "建议为严重隐患",
.then(res => { "建议为较大隐患",
this.$toast.clear(); "建议为危险隐患",
this.$toast.success({ ],
message: "提交成功", };
duration: 2000
});
history.go(-1);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试");
});
}, },
beforeRouteEnter(to, from, next) {
// 所属项目 next((vm) => {
onConThinkLevel(value) { if (from.name === "major-danger") {
this.thinkLevel = value; vm.messageList = [];
this.showProjectName = false; let paramsData = to.params.data;
this.showThinkLevel = false; vm.taskId = paramsData.taskId;
vm.messageList.push(paramsData);
vm.radio = "1";
vm.agreeOpinion = "";
vm.disagreeOpinion = "";
vm.thinkLevel = "";
}
});
}, },
// 详情 mounted() {
goDetail(taskId) { this.getName()
this.$router.push({ console.log(1)
name: "normal-detail",
params: {
id: taskId
}
});
}, },
methods: {
selectResult(val) {
this.radio = val;
},
getName(){
let id=this.$route.params.data.taskId
let fd = new FormData()
fd.append('taskId',id);
getFun('/majorapprove/add',{
taskId:id
}).then(data=>{
this.name=data.msg;
}).catch(err=>{
this.$toast.fail("提交失败,请稍后再试");
})
},
onSubmit(values) {
this.$toast.loading({
message: "提交中...",
forbidClick: true,
loadingType: "spinner",
duration: 0,
});
let formdata = new FormData();
formdata.append("isResult", values.isResult);
formdata.append("details", values.details);
formdata.append(
"thinkHdLev",
values.isResult == 1 ? "" : values.thinkHdLev
);
formdata.append("taskId", this.taskId);
majorAdd(`/majorapprove/add`, formdata)
.then((res) => {
this.$toast.clear();
this.$toast.success({
message: "提交成功",
duration: 2000,
});
history.go(-1);
})
.catch(() => {
this.$toast.clear();
this.$toast.fail("提交失败,请稍后再试");
});
},
// 所属项目
onConThinkLevel(value) {
this.thinkLevel = value;
this.showProjectName = false;
this.showThinkLevel = false;
},
// 详情
goDetail(taskId) {
this.$router.push({
name: "normal-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 { .van-cell-group--inset {
margin: 0; margin: 0;
margin-bottom: 10px; margin-bottom: 10px;
padding: 10px; padding: 10px;
font-size: 13px; font-size: 13px;
position: relative; position: relative;
.van-row { .van-row {
margin-bottom: 0.133333rem; margin-bottom: 0.133333rem;
line-height: 0.64rem; line-height: 0.64rem;
} }
.van-overlay { .van-overlay {
position: absolute; position: absolute;
.wrapper { .wrapper {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-evenly; justify-content: space-evenly;
height: 100%; height: 100%;
}
} }
}
} }
.detail { .detail {
position: absolute; position: absolute;
bottom: 0.32rem; bottom: 0.32rem;
right: 15px; right: 15px;
color: #2a80f7; color: #2a80f7;
font-weight: none; font-weight: none;
z-index: 99; z-index: 99;
} }
</style> </style>
...@@ -45,10 +45,10 @@ ...@@ -45,10 +45,10 @@
<van-col span="6">隐患类型:</van-col> <van-col span="6">隐患类型:</van-col>
<van-col span="18">{{ item.hdType }}</van-col> <van-col span="18">{{ item.hdType }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- {{ item.taskName }} --> <!-- {{ item.taskName }} -->
<!-- 长按显示遮罩层 --> <!-- 长按显示遮罩层 -->
......
...@@ -49,10 +49,10 @@ ...@@ -49,10 +49,10 @@
<van-col span="6">超期标识:</van-col> <van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item | formatTime }}</van-col> <van-col span="18">{{ item | formatTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 长按显示遮罩层 --> <!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index"> <van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null"> <div class="wrapper" @click.stop="showIndex = null">
......
...@@ -31,10 +31,10 @@ ...@@ -31,10 +31,10 @@
<van-col span="6">超期标识:</van-col> <van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item | formatTime }}</van-col> <van-col span="18">{{ item | formatTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 详情 --> <!-- 详情 -->
<div class="detail">详情</div> <div class="detail">详情</div>
</van-cell-group> </van-cell-group>
......
...@@ -56,10 +56,10 @@ ...@@ -56,10 +56,10 @@
<van-col span="6">超期标识:</van-col> <van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item | formatTime }}</van-col> <van-col span="18">{{ item | formatTime }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态</van-col> <van-col span="6">工单状态</van-col>
<van-col span="18">{{ item | formatTime }}</van-col> <van-col span="18">{{ item | formatTime }}</van-col>
</van-row> </van-row> -->
<!-- 长按显示遮罩层 --> <!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index"> <van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null"> <div class="wrapper" @click.stop="showIndex = null">
......
<template> <template>
<div> <div>
<div v-if="videoUrl"> <div v-if="videoUrl">
<custom-player :videoUrl="videoUrl" :videoImg="videoImg" @close="videoUrl=''"/> <custom-player
</div> :videoUrl="videoUrl"
:videoImg="videoImg"
<LHeader :text="text"></LHeader> @close="videoUrl = ''"
<!-- 内容列表 --> />
<div class="con-list"> </div>
<div class="cell-wrap">
<p>隐患上报</p>
<van-cell-group inset>
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患编号</span></van-col
>
<van-col span="17">{{ hdReport.id }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">所属项目:</span></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">{{ hdReport.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">适用范围:</span></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">{{ hdReport.hdType }}</van-col>
</van-row>
<!-- 隐藏的字段 --> <LHeader :text="text"></LHeader>
<div v-show="reportOpen"> <!-- 内容列表 -->
<van-row gutter=""> <div class="con-list">
<van-col span="7" <div class="cell-wrap">
><span class="field-title">隐患项目名称:</span></van-col <p>隐患上报</p>
> <van-cell-group inset>
<van-col span="17">{{ hdReport.hdProjectName }}</van-col> <van-row gutter="">
</van-row> <van-col span="7"
<van-row gutter=""> ><span class="field-title">隐患编号</span
<van-col span="7" ></van-col
><span class="field-title">隐患发现时间:</span></van-col >
> <van-col span="17">{{ hdReport.id }}</van-col>
<van-col span="17">{{ hdReport.hdDiscoveryTime }}</van-col> </van-row>
</van-row> <van-row gutter="">
<van-col span="7"
><span class="field-title"
>所属项目:</span
></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">{{ hdReport.hdLev }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title"
>适用范围:</span
></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">{{ hdReport.hdType }}</van-col>
</van-row>
<van-row gutter=""> <!-- 隐藏的字段 -->
<van-col span="7" <div v-show="reportOpen">
><span class="field-title">风险源:</span></van-col <van-row gutter="">
> <van-col span="7"
<van-col span="17">{{ hdReport.dangerSource }}</van-col> ><span class="field-title"
</van-row> >隐患项目名称:</span
<van-row gutter=""> ></van-col
<van-col span="7" >
><span class="field-title">风险源因素:</span></van-col <van-col span="17">{{
> hdReport.hdProjectName
<van-col span="17">{{ hdReport.dangerId }}</van-col> }}</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 span="17">{{ hdReport.hdPosition }}</van-col> ></van-col
</van-row> >
<van-row gutter=""> <van-col span="17">{{
<van-col span="7" hdReport.hdDiscoveryTime
><span class="field-title">隐患描述:</span></van-col }}</van-col>
> </van-row>
<van-col span="17">{{ hdReport.hdDescribe }}</van-col>
</van-row> <van-row gutter="">
<van-row gutter="" v-if="hdReport.hdPictureList"> <van-col span="7"
<van-col span="7" ><span class="field-title"
><span class="field-title">隐患照片:</span></van-col >风险源:</span
> ></van-col
<van-col span="17"> >
<div <van-col span="17">{{
class="detail_pic" hdReport.dangerSource
v-for="(item, index) in hdReport.hdPictureList" }}</van-col>
:key="index" </van-row>
> <van-row gutter="">
<van-image width="100" height="100" :src="item.filePath" @click="imagePreview(item.filePath)"/> <van-col span="7"
><span class="field-title"
>风险源因素:</span
></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">{{
hdReport.hdPosition
}}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title"
>隐患描述:</span
></van-col
>
<van-col span="17">{{
hdReport.hdDescribe
}}</van-col>
</van-row>
<van-row gutter="" v-if="hdReport.hdPictureList">
<van-col span="7"
><span class="field-title"
>隐患照片:</span
></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"
@click="imagePreview(item.filePath)"
/>
</div>
</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title"
>隐患视频:</span
></van-col
>
<van-col span="17">
<div
class="detail_video"
v-for="(
item, index
) in hdReport.hdVideoList"
:key="index"
style="position: relative"
>
<van-icon
name="play"
size="1rem"
style="
border: solid 3px black;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
"
/>
<video
:src="item.filePath"
@click="videoUrl = item.filePath"
/>
</div>
</van-col>
</van-row>
<van-row gutter="" v-if="hdReport.hdExpirationTime">
<van-col span="7"
><span class="field-title"
>隐患到期时间:</span
></van-col
>
<van-col span="17">{{
hdReport.hdExpirationTime
}}</van-col>
</van-row>
<van-row gutter="" v-if="hdReport.rectificationUser">
<van-col span="7"
><span class="field-title"
>隐患整改人:</span
></van-col
>
<van-col span="17">{{
hdReport.rectificationUser
}}</van-col>
</van-row>
</div>
</van-cell-group>
<!-- 展开 -->
<div class="more" @click="reportReverse">
{{ reportOpenText }}
</div> </div>
</van-col> </div>
</van-row> <!-- {{hdConfirm}} -->
<van-row gutter=""> <div class="journal-wrap" v-if="hdConfirm.length > 0">
<van-col span="7" <p>隐患认定</p>
><span class="field-title">隐患视频:</span></van-col <van-cell-group inset>
> <van-steps direction="vertical" :active="99999">
<van-col span="17"> <van-step
<div v-for="(item, index) in hdConfirm"
class="detail_video" :key="index"
v-for="(item, index) in hdReport.hdVideoList" >
:key="index" <div class="step-wrap">
style="position:relative" <van-row>
> <van-col span="24"
<van-icon name="play" size="1rem" style="border:solid 3px black;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)"/> ><div class="info-title">
<video :src="item.filePath" @click="videoUrl=item.filePath"/> 隐患认定
</div></van-col
>
</van-row>
<van-row
gutter=""
v-if="item.rectificationUser"
>
<van-col span="7"
><span class="field-title"
>隐患整改人:</span
></van-col
>
<van-col span="17">{{
item.rectificationUser
}}</van-col>
</van-row>
<van-row
gutter=""
v-if="item.rectificationReview"
>
<van-col span="7"
><span class="field-title"
>隐患复查人:</span
></van-col
>
<van-col span="17">{{
item.rectificationReview
}}</van-col>
</van-row>
<van-row gutter="" v-if="item.endTime">
<van-col span="8"
><span class="field-title"
>整改截止时间:</span
></van-col
>
<van-col span="16">{{
item.endTime
}}</van-col>
</van-row>
<van-row gutter="">
<van-col span="4"
><span class="field-title"
>意见:</span
></van-col
>
<van-col span="20">{{
item.confirmOpinion
}}</van-col>
</van-row>
<van-row gutter="">
<van-col span="9"
><span class="field-title"
>隐患确认信息:</span
></van-col
>
<van-col span="15">{{
item.confirmResult == 0
? "退回"
: "通过"
}}</van-col>
</van-row>
</div>
</van-step>
</van-steps>
</van-cell-group>
<div class="more" @click="confirmReverse">
{{ confirmOpenText }}
</div> </div>
</van-col> </div>
</van-row> <div class="journal-wrap" v-if="hdMajorApproveList.length > 0">
<van-row gutter="" v-if="hdReport.hdExpirationTime"> <p>审批信息</p>
<van-col span="7" <van-cell-group inset>
><span class="field-title">隐患到期时间:</span></van-col <van-steps direction="vertical" :active="99999">
> <van-step
<van-col span="17">{{ hdReport.hdExpirationTime }}</van-col> v-for="(item, index) in hdMajorApproveList"
</van-row> :key="index"
<van-row gutter="" v-if="hdReport.rectificationUser"> >
<van-col span="7" <div class="step-wrap">
><span class="field-title">隐患整改人:</span></van-col <van-row>
> <van-col span="24"
<van-col span="17">{{ hdReport.rectificationUser }}</van-col> ><div class="info-title">
</van-row> 审批信息
</div> </div></van-col
</van-cell-group> >
<!-- 展开 --> </van-row>
<div class="more" @click="reportReverse"> <van-row>
{{ reportOpenText }} <van-col span="6"
</div> ><span class="field-title"
</div> >操作人:</span
<!-- {{hdConfirm}} --> ></van-col
<div class="journal-wrap" v-if="hdConfirm.length > 0"> >
<p>隐患认定</p> <van-col span="18">{{
<van-cell-group inset> item.userName
<van-steps direction="vertical" :active="99999"> }}</van-col>
<van-step v-for="(item, index) in hdConfirm" :key="index"> </van-row>
<div class="step-wrap"> <van-row>
<van-row> <van-col span="6"
<van-col span="24" ><span class="field-title"
><div class="info-title">隐患认定</div></van-col >结果:</span
> ></van-col
</van-row> >
<van-row gutter="" v-if="item.rectificationUser"> <van-col span="18">{{
<van-col span="7" item.isResult == 1 ? "通过" : "退回"
><span class="field-title">隐患整改人:</span></van-col }}</van-col>
> </van-row>
<van-col span="17">{{ item.rectificationUser }}</van-col> <van-row>
</van-row> <van-col span="6"
<van-row gutter="" v-if="item.rectificationReview"> ><span class="field-title"
<van-col span="7" >部门:</span
><span class="field-title">隐患复查人:</span></van-col ></van-col
> >
<van-col span="17">{{ item.rectificationReview }}</van-col> <van-col span="18">{{
</van-row> item.deptName
<van-row gutter="" v-if="item.endTime"> }}</van-col>
<van-col span="8" </van-row>
><span class="field-title">整改截止时间:</span></van-col <van-row>
> <van-col span="6"
<van-col span="16">{{ item.endTime }}</van-col> ><span class="field-title"
</van-row> >时间:</span
<van-row gutter=""> ></van-col
<van-col span="4" >
><span class="field-title">意见:</span></van-col <van-col span="18">{{
> item.createTime
<van-col span="20">{{ item.confirmOpinion }}</van-col> }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <van-row v-if="item.thinkHdLev">
<van-col span="9" <van-col span="9"
><span class="field-title">隐患确认信息:</span></van-col ><span class="field-title"
> >认定隐患级别:</span
<van-col span="15">{{ ></van-col
item.confirmResult == 0 ? "退回" : "通过" >
}}</van-col> <van-col
</van-row> span="10
</div>
</van-step>
</van-steps>
</van-cell-group>
<div class="more" @click="confirmReverse">
{{ confirmOpenText }}
</div>
</div>
<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="6"
><span class="field-title">操作人:</span></van-col
>
<van-col span="18">{{ item.userName }}</van-col>
</van-row>
<van-row>
<van-col span="6"
><span class="field-title">结果:</span></van-col
>
<van-col span="18">{{
item.isResult == 1 ? "通过" : "退回"
}}</van-col>
</van-row>
<van-row>
<van-col span="6"
><span class="field-title">部门:</span></van-col
>
<van-col span="18">{{ item.deptName }}</van-col>
</van-row>
<van-row>
<van-col span="6"
><span class="field-title">时间:</span></van-col
>
<van-col span="18">{{ item.createTime }}</van-col>
</van-row>
<van-row v-if="item.thinkHdLev">
<van-col span="9"
><span class="field-title">认定隐患级别:</span></van-col
>
<van-col
span="10
" "
>{{ item.thinkHdLev }}</van-col >{{ item.thinkHdLev }}</van-col
> >
</van-row> </van-row>
<van-row v-if="item.details"> <van-row v-if="item.details">
<van-col span="8" <van-col span="8"
><span class="field-title">审批意见:</span></van-col ><span class="field-title"
> >审批意见:</span
<van-col ></van-col
span="16 >
<van-col
span="16
" "
>{{ item.details }}</van-col >{{ item.details }}</van-col
> >
</van-row> </van-row>
</div> </div>
</van-step> </van-step>
</van-steps> </van-steps>
</van-cell-group> </van-cell-group>
<!-- 展开 --> <!-- 展开 -->
<div <div
class="more" class="more"
@click="majorReverse" @click="majorReverse"
v-show="hdMajorApproveList.length > 0" v-show="hdMajorApproveList.length > 0"
> >
{{ majorOpenText }} {{ majorOpenText }}
</div> </div>
</div> </div>
<div class="change-wrap" v-if="hdRectificationList.length > 0"> <div class="change-wrap" v-if="hdRectificationList.length > 0">
<p>隐患整改</p> <p>隐患整改</p>
<van-cell-group <van-cell-group
inset inset
v-for="(item, index) in hdRectificationList" v-for="(item, index) in hdRectificationList"
:key="index" :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 span="17">{{ item.details }}</van-col> ></van-col
</van-row> >
<van-row gutter=""> <van-col span="17">{{ item.details }}</van-col>
<van-col span="7" </van-row>
><span class="field-title">隐患照片:</span></van-col <van-row gutter="">
> <van-col span="7"
<van-col span="17"> ><span class="field-title"
<div >隐患照片:</span
class="detail_pic" ></van-col
v-for="(itemTwo, index) in item.hdPictureList" >
:key="index" <van-col span="17">
> <div
<van-image width="100" height="100" :src="itemTwo.filePath" @click="imagePreview(itemTwo.filePath)"/> class="detail_pic"
</div> v-for="(itemTwo, index) in item.hdPictureList"
</van-col> :key="index"
</van-row> >
<van-row gutter="" v-if="item.hdVideoList"> <van-image
<van-col span="7" width="100"
><span class="field-title">隐患视频:</span></van-col height="100"
> :src="itemTwo.filePath"
<van-col span="17"> @click="imagePreview(itemTwo.filePath)"
<div />
class="detail_video" </div>
v-for="(itemTwo, index) in item.hdVideoList" </van-col>
:key="index" </van-row>
> <van-row gutter="" v-if="item.hdVideoList">
<video :src="itemTwo.filePath" @click="videoUrl=itemTwo.filePath"></video> <van-col span="7"
</div> ><span class="field-title"
</van-col> >隐患视频:</span
</van-row> ></van-col
<van-row gutter=""> >
<van-col span="7" <van-col span="17">
><span class="field-title">创建时间:</span></van-col <div
> class="detail_video"
<van-col span="17">{{ item.creatTime }}</van-col> v-for="(itemTwo, index) in item.hdVideoList"
</van-row> :key="index"
</van-cell-group> >
</div> <video
:src="itemTwo.filePath"
<div class="review-wrap" v-if="hdReviewList.length > 0"> @click="videoUrl = itemTwo.filePath"
<p>整改复查</p> ></video>
<van-cell-group </div>
inset </van-col>
v-for="(item, index) in hdReviewList" </van-row>
:key="index" <van-row gutter="">
> <van-col span="7"
<van-row gutter="" v-if="item.hdPictureList"> ><span class="field-title"
<van-col span="7" >创建时间:</span
><span class="field-title">隐患照片:</span></van-col ></van-col
> >
<van-col span="17"> <van-col span="17">{{ item.creatTime }}</van-col>
<div </van-row>
class="detail_pic" </van-cell-group>
v-for="(itemTwo, index) in item.hdPictureList" </div>
:key="index"
>
<van-image width="100" height="100" :src="itemTwo.filePath" @click="imagePreview(itemTwo.filePath)"/>
</div>
</van-col>
</van-row>
<van-row gutter="" v-if="item.reviewDetails">
<van-col span="7"
><span class="field-title">详情描述:</span></van-col
>
<van-col span="17">{{ item.reviewDetails }}</van-col>
</van-row>
<van-row gutter=""> <div class="review-wrap" v-if="hdReviewList.length > 0">
<van-col span="7" <p>整改复查</p>
><span class="field-title">复查结果:</span></van-col <van-cell-group
> inset
<van-col span="17">{{ v-for="(item, index) in hdReviewList"
item.reviewResult == 1 ? "合格" : "不合格" :key="index"
}}</van-col> >
</van-row> <van-row gutter="">
</van-cell-group> <van-col span="7">
</div> <span class="field-title"> 复查结果 </span>
</van-col>
<van-col span="17">{{
item.reviewResult == 1 ? "合格" : "不合格"
}}</van-col>
</van-row>
<van-row gutter="" v-if="item.reviewDetails">
<van-col span="7"
><span class="field-title">
{{
item.reviewResult == 1
? "复查结论:"
: " 退回原因:"
}}
</span></van-col
>
<van-col span="17">{{ item.reviewDetails }}</van-col>
</van-row>
<van-row gutter="" v-if="item.hdPictureList['length']">
<van-col span="7"
><span class="field-title"
>复查照片:</span
></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"
@click="imagePreview(itemTwo.filePath)"
/>
</div>
</van-col>
</van-row>
</van-cell-group>
</div>
<div class="journal-wrap"> <div class="journal-wrap">
<p>日志信息</p> <p>日志信息</p>
<van-cell-group inset> <van-cell-group inset>
<van-steps <van-steps
direction="vertical" direction="vertical"
:active="99999" :active="99999"
v-if="hdLogList.length > 0" v-if="hdLogList.length > 0"
> >
<van-step v-for="(item, index) in hdLogList" :key="index"> <van-step
<div class="step-wrap"> v-for="(item, index) in hdLogList"
<van-row> :key="index"
<van-col span="24" >
><div class="info-title"> <div class="step-wrap">
{{ item.createTime }} <van-row>
</div></van-col <van-col span="24"
> ><div class="info-title">
</van-row> {{ item.createTime }}
<van-row> </div></van-col
<van-col span="6" >
><span class="field-title">操作人:</span></van-col </van-row>
> <van-row>
<van-col span="18">{{ item.userName }}</van-col> <van-col span="6"
</van-row> ><span class="field-title"
<van-row> >操作人:</span
<van-col span="6" ></van-col
><span class="field-title">节点:</span></van-col >
> <van-col span="18">{{
<van-col span="18">{{ item.logNode }}</van-col> item.userName
</van-row> }}</van-col>
<van-row> </van-row>
<van-col span="6" <van-row>
><span class="field-title">结果:</span></van-col <van-col span="6"
> ><span class="field-title"
<van-col span="18">{{ item.logResult }}</van-col> >节点:</span
</van-row> ></van-col
<van-row> >
<van-col span="6" <van-col span="18">{{
><span class="field-title">部门:</span></van-col item.logNode
> }}</van-col>
<van-col span="18">{{ item.deptName }}</van-col> </van-row>
</van-row> <van-row>
</div> <van-col span="6"
</van-step> ><span class="field-title"
</van-steps> >结果:</span
<div style="text-align: center" v-if="hdLogList.length == 0"> ></van-col
暂无数据 >
</div> <van-col span="18">{{
</van-cell-group> item.logResult
<!-- 展开 --> }}</van-col>
<div class="more" @click="journalReverse" v-show="hdLogList.length > 0"> </van-row>
{{ journalOpenText }} <van-row>
</div> <van-col span="6"
</div> ><span class="field-title"
>部门:</span
></van-col
>
<van-col span="18">{{
item.deptName
}}</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"
v-show="hdLogList.length > 0"
>
{{ journalOpenText }}
</div>
</div>
<div class="supervise-wrap"> <div class="supervise-wrap">
<p>督办信息</p> <p>督办信息</p>
<van-cell-group inset> <van-cell-group inset>
<van-steps <van-steps
direction="vertical" direction="vertical"
:active="99999" :active="99999"
v-if="instructionsList.length > 0" v-if="instructionsList.length > 0"
> >
<van-step v-for="(item, index) in instructionsList" :key="index"> <van-step
<div class="step-wrap"> v-for="(item, index) in instructionsList"
<van-row> :key="index"
<van-col span="24" >
><div class="info-title">督办信息</div></van-col <div class="step-wrap">
> <van-row>
</van-row> <van-col span="24"
<van-row> ><div class="info-title">
<van-col span="6" 督办信息
><span class="field-title">操作人:</span></van-col </div></van-col
> >
<van-col span="18">{{ item.userName }}</van-col> </van-row>
</van-row> <van-row>
<van-row> <van-col span="6"
<van-col span="6" ><span class="field-title"
><span class="field-title">时间:</span></van-col >操作人:</span
> ></van-col
<van-col span="18">{{ item.createTime }}</van-col> >
</van-row> <van-col span="18">{{
<van-row> item.userName
<van-col span="6" }}</van-col>
><span class="field-title">部门:</span></van-col </van-row>
> <van-row>
<van-col span="18">{{ item.deptName }}</van-col> <van-col span="6"
</van-row> ><span class="field-title"
<van-row> >时间:</span
<van-col span="6" ></van-col
><span class="field-title">结果:</span></van-col >
> <van-col span="18">{{
<van-col span="18">{{ item.instructionsContent }}</van-col> item.createTime
</van-row> }}</van-col>
</div> </van-row>
</van-step> <van-row>
</van-steps> <van-col span="6"
><span class="field-title"
>部门:</span
></van-col
>
<van-col span="18">{{
item.deptName
}}</van-col>
</van-row>
<van-row>
<van-col span="6"
><span class="field-title"
>结果:</span
></van-col
>
<van-col span="18">{{
item.instructionsContent
}}</van-col>
</van-row>
</div>
</van-step>
</van-steps>
<div style="text-align: center" v-if="instructionsList.length == 0"> <div
暂无数据 style="text-align: center"
</div> v-if="instructionsList.length == 0"
</van-cell-group> >
<!-- 展开 --> 暂无数据
<div </div>
class="more" </van-cell-group>
@click="superviseReverse" <!-- 展开 -->
v-show="instructionsList.length > 0" <div
> class="more"
{{ superviseOpenText }} @click="superviseReverse"
v-show="instructionsList.length > 0"
>
{{ superviseOpenText }}
</div>
</div>
</div> </div>
</div>
</div> </div>
</div>
</template> </template>
<script> <script>
import LHeader from "@/components/header.vue"; import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js"; import { getFun, postFun } from "@/service/table.js";
import {ImagePreview} from 'vant'; import { ImagePreview } from "vant";
import { standBookDetail, deal } from "@/service/danger"; import { standBookDetail, deal } from "@/service/danger";
import customPlayer from "@/components/video" import customPlayer from "@/components/video";
export default { export default {
components: { components: {
LHeader, LHeader,
customPlayer customPlayer,
},
data() {
return {
videoImg:'12',
// 视屏播放
videoUrl:'',
id: "",
text: "隐患详情",
reportOpen: false,
reportOpenText: "展开 ▼",
journalOpen: false,
journalOpenText: "展开 ▼",
superviseOpen: false,
superviseOpenText: "展开 ▼",
confirmOpen: false,
confirmOpenText: "展开 ▼",
majorOpen: false,
majorOpenText: "展开 ▼",
hdReport: "",
hdConfirm: [],
hdMajorApproveList: [], // 重大隐患审批
beifenhdMajorList: [],
hdRectificationList: [],
hdReviewList: [],
hdLogList: [],
beifenhdLogList: [],
instructionsList: [],
beifeninstructionsList: [],
};
},
created() {
if (this.$route.params.detailTitle) {
this.text = this.$route.params.detailTitle;
}
this.id = this.$route.params.id;
if (this.id) {
this.postDetail();
}
},
methods: {
imagePreview(item){
ImagePreview({closeable:true,images:[item]})
},
// 请求台账信息
postDetail() {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0,
});
(this.$route.params.method == "get" ? getFun : postFun)(
`${
this.$route.params.api
? this.$route.params.api
: "/hdreport/hdDetailsApp/"
}${this.id}`
)
.then((res) => {
this.$toast.clear();
this.hdReport = res.data.hdReport;
this.hdLogListAll = res.data.hdConfirm;
this.hdConfirm = this.hdLogListAll.slice(-1);
this.hdRectificationList = res.data.hdRectificationList;
this.hdReviewList = res.data.hdReviewList;
this.beifenhdMajorList = res.data.hdMajorApproveList;
this.hdMajorApproveList = this.beifenhdMajorList.slice(-1);
this.beifenhdLogList = res.data.hdLogList;
this.hdLogList = this.beifenhdLogList.slice(-1);
this.beifeninstructionsList = res.data.instructionsList;
this.instructionsList = this.beifeninstructionsList.slice(-1);
})
.catch((err) => {
console.log(err);
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
}, },
data() {
return {
videoImg: "12",
// 视屏播放
videoUrl: "",
id: "",
text: "隐患详情",
reportOpen: false,
reportOpenText: "展开 ▼",
journalOpen: false,
journalOpenText: "展开 ▼",
superviseOpen: false,
superviseOpenText: "展开 ▼",
confirmOpen: false,
confirmOpenText: "展开 ▼",
majorOpen: false,
majorOpenText: "展开 ▼",
// 上报信息显示或隐藏 hdReport: "",
reportReverse() { hdConfirm: [],
this.reportOpen = !this.reportOpen; hdMajorApproveList: [], // 重大隐患审批
if (this.reportOpen) { beifenhdMajorList: [],
this.reportOpenText = "收起 ▲"; hdRectificationList: [],
} else { hdReviewList: [],
this.reportOpenText = "展开 ▼"; hdLogList: [],
} beifenhdLogList: [],
instructionsList: [],
beifeninstructionsList: [],
};
}, },
// 隐患认定显示或隐藏 created() {
confirmReverse() { if (this.$route.params.detailTitle) {
this.confirmOpen = !this.confirmOpen; this.text = this.$route.params.detailTitle;
if (this.confirmOpen) { }
// 显示所有数据 this.id = this.$route.params.id;
this.confirmOpenText = "收起 ▲"; if (this.id) {
// 显示所有数据 this.postDetail();
this.hdConfirm = this.hdLogListAll; }
} else {
this.confirmOpenText = "展开 ▼";
// 只显示第一个数据
this.hdConfirm = this.hdLogListAll.slice(-1);
}
},
// 重大隐患信息显示或隐藏
majorReverse() {
this.majorOpen = !this.majorOpen;
if (this.majorOpen) {
// 显示所有数据
this.majorOpenText = "收起 ▲";
// 显示所有数据
this.hdMajorApproveList = this.beifenhdMajorList;
} else {
this.majorOpenText = "展开 ▼";
// 只显示第一个数据
this.hdMajorApproveList = this.beifenhdMajorList.slice(-1);
}
}, },
methods: {
imagePreview(item) {
ImagePreview({ closeable: true, images: [item] });
},
// 请求台账信息
postDetail() {
this.$toast.loading({
message: "加载中...",
forbidClick: true,
loadingType: "spinner",
duration: 0,
});
(this.$route.params.method == "get" ? getFun : postFun)(
`${
this.$route.params.api
? this.$route.params.api
: "/hdreport/hdDetailsApp/"
}${this.id}`
)
.then((res) => {
this.$toast.clear();
this.hdReport = res.data.hdReport;
this.hdLogListAll = res.data.hdConfirm;
this.hdConfirm = this.hdLogListAll.slice(-1);
this.hdRectificationList = res.data.hdRectificationList;
this.hdReviewList = res.data.hdReviewList;
this.beifenhdMajorList = res.data.hdMajorApproveList;
this.hdMajorApproveList = this.beifenhdMajorList.slice(-1);
this.beifenhdLogList = res.data.hdLogList;
this.hdLogList = this.beifenhdLogList.slice(-1);
this.beifeninstructionsList = res.data.instructionsList;
this.instructionsList =
this.beifeninstructionsList.slice(-1);
})
.catch((err) => {
console.log(err);
this.$toast.clear();
this.$toast.fail("加载失败,请稍后再试");
});
},
// 日志信息显示或隐藏 // 上报信息显示或隐藏
journalReverse() { reportReverse() {
this.journalOpen = !this.journalOpen; this.reportOpen = !this.reportOpen;
if (this.journalOpen) { if (this.reportOpen) {
// 显示所有数据 this.reportOpenText = "收起 ▲";
this.journalOpenText = "收起 ▲"; } else {
// 显示所有数据 this.reportOpenText = "展开 ▼";
this.hdLogList = this.beifenhdLogList; }
} else { },
this.journalOpenText = "展开 ▼"; // 隐患认定显示或隐藏
// 只显示第一个数据 confirmReverse() {
this.hdLogList = this.beifenhdLogList.slice(-1); this.confirmOpen = !this.confirmOpen;
} if (this.confirmOpen) {
}, // 显示所有数据
// 督办信息显示或隐藏 this.confirmOpenText = "收起 ▲";
superviseReverse() { // 显示所有数据
this.superviseOpen = !this.superviseOpen; this.hdConfirm = this.hdLogListAll;
if (this.superviseOpen) { } else {
// 显示所有数据 this.confirmOpenText = "展开 ▼";
this.superviseOpenText = "收起 ▲"; // 只显示第一个数据
this.instructionsList = this.beifeninstructionsList; this.hdConfirm = this.hdLogListAll.slice(-1);
} else { }
// 只渲染一条数据 },
this.superviseOpenText = "展开 ▼"; // 重大隐患信息显示或隐藏
this.instructionsList = this.beifeninstructionsList.slice(-1); majorReverse() {
} this.majorOpen = !this.majorOpen;
if (this.majorOpen) {
// 显示所有数据
this.majorOpenText = "收起 ▲";
// 显示所有数据
this.hdMajorApproveList = this.beifenhdMajorList;
} else {
this.majorOpenText = "展开 ▼";
// 只显示第一个数据
this.hdMajorApproveList = this.beifenhdMajorList.slice(-1);
}
},
// 日志信息显示或隐藏
journalReverse() {
this.journalOpen = !this.journalOpen;
if (this.journalOpen) {
// 显示所有数据
this.journalOpenText = "收起 ▲";
// 显示所有数据
this.hdLogList = this.beifenhdLogList;
} else {
this.journalOpenText = "展开 ▼";
// 只显示第一个数据
this.hdLogList = this.beifenhdLogList.slice(-1);
}
},
// 督办信息显示或隐藏
superviseReverse() {
this.superviseOpen = !this.superviseOpen;
if (this.superviseOpen) {
// 显示所有数据
this.superviseOpenText = "收起 ▲";
this.instructionsList = this.beifeninstructionsList;
} else {
// 只渲染一条数据
this.superviseOpenText = "展开 ▼";
this.instructionsList = this.beifeninstructionsList.slice(-1);
}
},
}, },
},
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.con-list { .con-list {
padding: 10px 10px 0.533333rem; padding: 10px 10px 0.533333rem;
background-color: #f0f1f5; background-color: #f0f1f5;
.cell-wrap { .cell-wrap {
position: relative; position: relative;
} }
p { p {
font-size: 0.4rem; font-size: 0.4rem;
font-weight: none; font-weight: none;
padding-left: 0.16rem; padding-left: 0.16rem;
margin: 0.186667rem 0; margin: 0.186667rem 0;
color: #7f7f7f; color: #7f7f7f;
} }
.van-cell-group--inset { .van-cell-group--inset {
margin: 0; margin: 0;
margin-bottom: 10px; margin-bottom: 10px;
padding: 10px; padding: 10px;
font-size: 13px; font-size: 13px;
position: relative; position: relative;
.van-row { .van-row {
margin-bottom: 0.133333rem; margin-bottom: 0.133333rem;
line-height: 0.64rem; line-height: 0.64rem;
}
}
.confirm-wrap {
position: relative;
}
.journal-wrap {
position: relative;
}
.supervise-wrap {
position: relative;
}
.info-title {
color: #2980f7;
font-weight: none;
}
.field-title {
color: black;
font-weight: none;
}
.more {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: none;
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;
overflow: hidden;
// video {
// width: 2.666667rem;
// height: 2.666667rem;
// }
} }
}
.confirm-wrap {
position: relative;
}
.journal-wrap {
position: relative;
}
.supervise-wrap {
position: relative;
}
.info-title {
color: #2980f7;
font-weight: none;
}
.field-title {
color: black;
font-weight: none;
}
.more {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: none;
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;
overflow: hidden;
// video {
// width: 2.666667rem;
// height: 2.666667rem;
// }
}
} }
// 调整播放器样式 // 调整播放器样式
.video-js .vjs-icon-placeholder { .video-js .vjs-icon-placeholder {
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
// display: block; // display: block;
} }
.vjs_video_1251-dimensions.vjs-fluid { .vjs_video_1251-dimensions.vjs-fluid {
padding-top: 4.25%; padding-top: 4.25%;
} }
</style> </style>
<template> <template>
<div> <div>
<!-- 头部标签 --> <!-- 头部标签 -->
<van-sticky> <van-sticky>
<header class="header-wrap"> <header class="header-wrap">首开集团安全管理平台</header>
首开集团安全管理平台 </van-sticky>
</header>
</van-sticky>
<!-- 内容 --> <!-- 内容 -->
<div class="con"> <div class="con">
<!-- 个人信息 --> <!-- 个人信息 -->
<van-cell-group inset> <van-cell-group inset>
<van-row gutter="20"> <van-row gutter="20">
<van-col span="6"> <van-col span="6">
<div> <div>
<van-image <van-image
width="2rem" width="2rem"
height="2rem" height="2rem"
fit="fill" fit="fill"
:src="userInfo.portrait" :src="userInfo.portrait"
/> />
</div> </div>
</van-col> </van-col>
<van-col span="18"> <van-col span="18">
<div class="user-info-wrap"> <div class="user-info-wrap">
<div class="user-name">{{ userInfo.name }}</div> <div class="user-name">{{ userInfo.name }}</div>
<p>{{ userInfo.position }}</p> <p>{{ userInfo.position }}</p>
<div class="tag-wrap"> <div class="tag-wrap">
<van-tag color="#cbcdfb">隐患上报人</van-tag> <van-tag color="#cbcdfb">隐患上报人</van-tag>
<van-tag color="#b5e2f1">隐患整改人</van-tag> <van-tag color="#b5e2f1">隐患整改人</van-tag>
<van-tag color="#bed9fd">检查专员</van-tag> <van-tag color="#bed9fd">检查专员</van-tag>
</div> </div>
</div> </div>
</van-col> </van-col>
</van-row> </van-row>
</van-cell-group> </van-cell-group>
<!-- 设置 --> <!-- 设置 -->
<van-cell-group inset class="my-cell-group"> <van-cell-group inset class="my-cell-group">
<div class="set-wrap"> <div
<van-image class="set-wrap"
width="0.613rem" v-for="(item, key) in menus"
height="0.613rem" :key="key"
fit="fill" @click="$router.push({ name: item['name'] })"
:src="require('@/assets/myTerritory/set.png')" >
/> <van-image
<span>设置</span> width="0.613rem"
height="0.613rem"
fit="fill"
:src="item['img']"
/>
<span>{{ item["title"] }}</span>
</div>
</van-cell-group>
<!-- 退出系统 -->
<footer class="sign-out">
<van-button type="info" block @click="logout"
>退出系统</van-button
>
</footer>
</div> </div>
</van-cell-group>
<!-- 退出系统 --> <!-- tanBar -->
<footer class="sign-out"> <tab-bar :index="2"></tab-bar>
<van-button type="info" block @click="logout">退出系统</van-button>
</footer>
</div> </div>
<!-- tanBar -->
<tab-bar :index="2"></tab-bar>
</div>
</template> </template>
<script> <script>
import tabBar from "@/components/TabBar"; import tabBar from "@/components/TabBar";
import { removeToken } from '@/utils/auth' // get token from cookie import { removeToken } from "@/utils/auth"; // get token from cookie
import { getUserInfo} from '@/utils/userInfo' import { getUserInfo } from "@/utils/userInfo";
export default { export default {
components: { components: {
tabBar tabBar,
}, },
data() { data() {
return { return {
userInfo: { menus: [
portrait: require("@/assets/myTerritory/touxiang.png"), // 菜单
name: getUserInfo()?getUserInfo().userName:"刘华强", {
position: getUserInfo()?getUserInfo().deptName:"技术安全部", title: "我的权限",
// name: "刘华强", img:require("@/assets/myTerritory/role.png"),
// position: "技术安全部" name: "my-role",
// jurisdiction: [ },
// '隐患上报人', {
// '隐患整改人', title: "修改密码",
// '检查专员' img: require("@/assets/myTerritory/set.png"),
// ] name: "my-reset-pas",
} },
}; ],
}, userInfo: {
mounted() {}, portrait: require("@/assets/myTerritory/touxiang.png"),
methods: { name: getUserInfo() ? getUserInfo().userName : "刘华强",
logout() { position: getUserInfo() ? getUserInfo().deptName : "技术安全部",
// localStorage.removeItem('admin_token'); // name: "刘华强",
this.$router.push("/Login2"); // position: "技术安全部"
removeToken() // jurisdiction: [
// location.reload(); // '隐患上报人',
} // '隐患整改人',
} // '检查专员'
// ]
},
};
},
mounted() {},
methods: {
logout() {
// localStorage.removeItem('admin_token');
this.$router.push("/Login2");
removeToken();
// location.reload();
},
},
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/* @import url(); 引入css类 */ /* @import url(); 引入css类 */
.header-wrap { .header-wrap {
width: 100%; width: 100%;
height: 50px; height: 50px;
background-color: #2980f7; background-color: #2980f7;
font-size: 17px; font-size: 17px;
line-height: 50px; line-height: 50px;
color: white; color: white;
font-weight: none; font-weight: none;
text-align: center; text-align: center;
} }
.con { .con {
height: calc(100% - 110px); height: calc(100% - 110px);
padding: 10px 0 50px 0; padding: 10px 0 50px 0;
background-color: #f0f1f5; background-color: #f0f1f5;
position: relative; position: relative;
.user-info-wrap { .user-info-wrap {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
.user-name { .user-name {
font-size: 17px; font-size: 17px;
font-weight: none; font-weight: none;
} }
.tag-wrap { .tag-wrap {
.van-tag { .van-tag {
margin-right: 10px; margin-right: 10px;
margin-top: 3px; margin-top: 3px;
padding: 2px 4px; padding: 2px 4px;
} }
}
} }
}
.my-cell-group { .my-cell-group {
padding: 10px 10px !important; padding: 10px 10px !important;
.set-wrap { .set-wrap {
height: 0.8rem; height: 1.1rem;
display: flex; display: flex;
align-items: center; align-items: center;
span { border-bottom: 1px solid #e8e8e8;
margin-left: 0.2666rem; &:last-child {
font-size: 15px; border-bottom: none;
font-weight: none; }
} span {
margin-left: 0.2666rem;
font-size: 13px;
font-weight: none;
}
}
} }
}
} }
.sign-out { .sign-out {
width: 96%; width: 96%;
position: absolute; position: absolute;
bottom: 1.86667rem; bottom: 1.86667rem;
left: 0px; left: 0px;
right: 0; right: 0;
margin: auto; margin: auto;
overflow: hidden; overflow: hidden;
border-radius: 5px; border-radius: 5px;
button { button {
font-size: 15px; font-size: 15px;
font-weight: none; font-weight: none;
} }
} }
.van-cell-group--inset { .van-cell-group--inset {
margin: 0 10px 10px; margin: 0 10px 10px;
padding: 10px 10px 15px; padding: 10px 10px 15px;
} }
</style> </style>
<template>
<div>
<!-- 重置密码页面 -->
<!-- 头部标签 -->
<LHeader :text="$route.meta.title"></LHeader>
<van-form
@submit="onSubmit"
:scroll-to-error="true"
:show-error="false"
validate-trigger="onSubmit"
>
<van-field
v-model="form.oldPassword"
required
type="text"
name="oldPassword"
label="旧密码"
placeholder="请输入旧密码"
:rules="[
{ required: true, message: '请填写密码' }
]"
/>
<van-field
required
v-model="form.newPassword"
type="password"
name="newPassword"
label="新密码"
placeholder="请输入新密码"
:rules="[
{ required: true, message: '请填写密码' },
{
message: '密码必须大于6个字符小于20个字符',
validator: (val) => {
return val['length'] > 6 && val['length'] < 20;
},
},
]"
/>
<van-field
required
v-model="form.confirm"
type="password"
name="confirm"
label="再次输入"
placeholder="再次输入新密码"
:rules="[
{ validator, required: true, message: '二次输入不正确' },
{
message: '密码必须大于6个字符小于20个字符',
validator: (val) => {
return val['length'] > 6 && val['length'] < 20;
},
},
]"
/>
<div style="margin: 16px">
<van-button round block type="info" native-type="submit"
>提交
</van-button>
</div>
</van-form>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
import { getUserInfo } from "@/utils/userInfo";
import { removeToken } from "@/utils/auth"; // get token from cookie
export default {
components: {
LHeader,
},
data() {
return {
form: {
oldPassword: "",
newPassword: "",
confirm: "",
}
};
},
mounted(){
console.log(getUserInfo())
},
methods: {
validator(val) {
return this.form.newPassword == val;
},
onSubmit(val) {
this.$toast.loading({
message: "请求中...",
forbidClick: true,
loadingType: "spinner",
duration: 0,
});
postFun(
"/mobile/resetPwd",
this.obj2formdata(val)
)
.then((data) => {
this.$toast.clear();
this.$dialog.alert({
title:'提示',
message:'密码重置成功,请重新登录',
}).then(
res=>{
removeToken();
this.$router.push('/login2')
}
)
})
.catch((err) => {
this.$toast.clear();
this.$toast.fail("操作失败,请稍后再试");
});
},
obj2formdata(data) {
console.log(data,'fasfasdfsd')
let fd = new FormData();
for (let k in data) {
if (data[k]) {
fd.append(k, data[k]);
}
}
return fd;
},
},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div>
<!-- 我的权限页面 my-role -->
<LHeader :text="$route.meta.title"></LHeader>
<!-- 通知 -->
<van-sticky offset-top="1.5rem">
<van-notice-bar
left-icon="volume-o"
text="提示:系统使用时请核实应用权限如有问题请联系管理员。"
/>
</van-sticky>
<!-- 权限卡片 -->
<div v-for="(item, key) in role_list" :key="key">
<template v-if="item">
<div class="title">{{ key }}</div>
<van-cell-group inset>
<div class="tag-wrap">
<van-tag
:color="getColor()"
v-for="(i, index) in item"
:key="index"
plain
round
>
<template v-if="i">
{{ i }}
</template>
</van-tag>
</div>
</van-cell-group>
</template>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
export default {
components: {
LHeader,
},
data() {
return {
tabColor: ["red", "orange", "skyblue",'yellowgreen'],
role_list: {
"政务大数据项目cs-401": [],
"政务大数据项目cs-801": [],
朝阳区和平街14区简易住宅楼改造项目: [],
"项目工程cs-001": [],
"项目工程cs-002": [],
},
};
},
methods: {
async getRoleList() {
let res = await postFun("/mobile/userRoler");
// console.log(res)
if (res) {
this.role_list = res.data;
}else{
this.$toast.fail("加载失败,请稍后再试");
}
},
// 获得一个随机色
getColor() {
return this.tabColor[
Math.floor(Math.random() * [this.tabColor["length"]])
];
},
},
mounted() {
this.getRoleList();
},
};
</script>
<style scoped lang="less">
/* @import url(); 引入css类 */
.header-wrap {
width: 100%;
height: 50px;
background-color: #2980f7;
font-size: 17px;
line-height: 50px;
color: white;
font-weight: none;
text-align: center;
}
.con {
height: calc(100% - 110px);
padding: 10px 0 50px 0;
background-color: #f0f1f5;
position: relative;
.user-info-wrap {
display: flex;
flex-direction: column;
justify-content: space-between;
.user-name {
font-size: 17px;
font-weight: none;
}
.tag-wrap {
.van-tag {
margin-right: 10px;
margin-top: 3px;
padding: 2px 4px;
}
}
}
.my-cell-group {
padding: 10px 10px !important;
.set-wrap {
height: 1.1rem;
display: flex;
align-items: center;
border-bottom: 1px solid #e8e8e8;
&:last-child {
border-bottom: none;
}
span {
margin-left: 0.2666rem;
font-size: 13px;
font-weight: none;
}
}
}
}
.sign-out {
width: 96%;
position: absolute;
bottom: 1.86667rem;
left: 0px;
right: 0;
margin: auto;
overflow: hidden;
border-radius: 5px;
button {
font-size: 15px;
font-weight: none;
}
}
.van-cell-group--inset {
margin: 0 10px 10px;
padding: 10px 10px 8px;
min-height: 1.5rem;
}
.title {
padding: 0.2rem 0.5rem;
font-size: 0.4rem;
}
.tag-wrap > span {
margin-right: 0.3rem;
margin-bottom: 0.3rem;
}
.van-tag{
padding: 0.03rem 0.2rem;
font-size: 0.25rem;
}
</style>
\ No newline at end of file
...@@ -36,10 +36,10 @@ ...@@ -36,10 +36,10 @@
<van-col span="6">主责人员:</van-col> <van-col span="6">主责人员:</van-col>
<van-col span="18">{{ item.responsibilityMember }}</van-col> <van-col span="18">{{ item.responsibilityMember }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 详情 --> <!-- 详情 -->
<div class="detail">详情</div> <div class="detail">详情</div>
</van-cell-group> </van-cell-group>
......
...@@ -57,10 +57,10 @@ ...@@ -57,10 +57,10 @@
<van-col span="6">主责人员:</van-col> <van-col span="6">主责人员:</van-col>
<van-col span="18">{{ item.responsibilityMember }}</van-col> <van-col span="18">{{ item.responsibilityMember }}</van-col>
</van-row> </van-row>
<van-row gutter=""> <!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col> <van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col> <van-col span="18">{{ item.taskName }}</van-col>
</van-row> </van-row> -->
<!-- 长按显示遮罩层 --> <!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index"> <van-overlay :show="showIndex == index">
......
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