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

工单状态

parent 1196c373
......@@ -607,15 +607,32 @@ const routes = [{
component:()=>import('@/views/danger/insertDanger/list')
},
{
path:'/video',
name:'video-play',
path:'/insert-risk',
name:'insert-risk',
meta:{
title:'视屏播放',
title:'我的风险上报',
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>
<div>
<LHeader :text="text"></LHeader>
<!-- 视屏 -->
<div v-if="videoUrl">
<custom-player :videoUrl="videoUrl" :videoImg="videoImg" @close="videoUrl=''"/>
</div>
<van-form
@submit="onSubmit"
:scroll-to-error="true"
......@@ -280,6 +284,7 @@
upload-text="最多上传五个"
v-model="uploaderVideo"
accept="video/*"
@click-preview="clickPre"
>
<template slot="default">
<!-- 11111111111 -->
......@@ -362,6 +367,7 @@
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
import { timestampToTime } from "@/utils/format";
import customPlayer from "@/components/video"
import {
getFormList,
postHdTyp,
......@@ -376,6 +382,7 @@ export default {
name: "add-danger",
components: {
LHeader,
customPlayer
},
activated() {
this.taskId =
......@@ -444,6 +451,9 @@ export default {
data() {
return {
// 视频预览地址
videoUrl:'',
id: 0,
text: "新增隐患",
taskId: "",
......@@ -486,6 +496,15 @@ export default {
},
methods: {
// 点击预览图
clickPre(e){
console.log(e)
if(e.filePath){
this.videoUrl=e.filePath;
}else{
this.videoUrl=e.content;
}
},
async deleteFile(val,detail,key){
// console.log(val,detail)
if(val.fileId){
......
......@@ -31,10 +31,10 @@
<van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item.dueDate | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
......
......@@ -60,10 +60,10 @@
<van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item.dueDate | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
......@@ -136,10 +136,10 @@
<van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item.dueDate | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
......
......@@ -27,10 +27,10 @@
<van-col span="6">隐患类型:</van-col>
<van-col span="18">{{ item.hdType }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- <van-row gutter="">
<van-col span="6">发现时间:</van-col>
<van-col span="18">{{ item.hdDiscoveryTime }}</van-col>
......
......@@ -45,10 +45,10 @@
<van-col span="6">隐患类型:</van-col>
<van-col span="18">{{ item.hdType }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null">
......@@ -72,7 +72,7 @@
position: fixed;
top: 30%;
"
v-if="isHaveNews"
v-if="messageList['length']==0"
>
暂无数据
</div>
......
......@@ -51,7 +51,7 @@
<van-col span="18">{{ item.hdDiscoveryTime }}</van-col>
</van-row> -->
<!-- <van-row gutter="">
<van-col span="6">状态:</van-col>
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row> -->
......
<template>
<div>
<LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@click="goDetail(item.taskId)"
>
<div>
<LHeader :text="text"></LHeader>
<van-cell-group
inset
v-for="(item, index) in messageList"
:key="index"
@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-col span="7">隐患编号:</van-col>
<van-col span="17">{{ item.businessId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.proId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.hdLev | dangerText }}</van-col>
</van-row>
<!-- <van-row gutter="">
<van-row gutter="">
<van-col span="7">隐患项目名称:</van-col>
<van-col span="17">{{ item.proId }}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7">隐患级别:</van-col>
<van-col span="17">{{ item.hdLev | dangerText }}</van-col>
</van-row>
<!-- <van-row gutter="">
<van-col span="7">发现时间:</van-col>
<van-col span="17">{{ item.startDate }}</van-col>
</van-row> -->
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<van-form
@submit="onSubmit"
:show-error='false'
:scroll-to-error="true"
validate-trigger="onSubmit"
>
<van-field name="isResult" label="审批结果">
<template #input>
<van-radio-group
v-model="radio"
direction="horizontal"
@change="selectResult"
>
<van-radio name="1">同意</van-radio>
<van-radio name="0">退回</van-radio>
</van-radio-group>
</template>
</van-field>
<!-- 同意时的选项 -->
<!-- <div class="agree" v-if="radio == 1">
<van-field
v-model="agreeOpinion"
label="审批意见"
name="details"
rows="3"
type="textarea"
placeholder="请输入"
/>
</div> -->
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
<!-- {{messageList[0]}} -->
<van-form
@submit="onSubmit"
:show-error="false"
:scroll-to-error="true"
validate-trigger="onSubmit"
>
<van-field name="isResult" label="审批结果">
<template #input>
<van-radio-group
v-model="radio"
direction="horizontal"
@change="selectResult"
>
<!-- <van-radio name="1">同意</van-radio>
<van-radio name="0">退回</van-radio> -->
<van-radio name="1" style="margin-bottom:0.3rem">{{name=='项目经理二次认定'?'退回到发起人':'同意'}}</van-radio>
<van-radio name="0" style="margin-bottom:0.3rem">{{name=='项目经理二次认定'?'重新发起重大隐患审批':'退回'}}</van-radio>
</van-radio-group>
</template>
</van-field>
<!-- 退回是的选项 -->
<div class="disagree">
<van-field
readonly
v-if="radio==0"
clickable
name="thinkHdLev"
:value="thinkLevel"
label="认定的隐患级别"
placeholder="请选择认定隐患级别"
@click="showThinkLevel = true"
:rules="[{ required: true, message: '认定隐患级别不能为空' }]"
/>
<van-popup v-model="showThinkLevel" position="bottom">
<van-picker
show-toolbar
value-key="projectName"
:default-index="0"
:columns="columnsThinkLevel"
@confirm="onConThinkLevel"
@cancel="showThinkLevel = false"
/>
</van-popup>
<div class="disagree">
<van-field
readonly
v-if="radio == 1"
clickable
required
name="thinkHdLev"
:value="thinkLevel"
label="认定的隐患级别"
placeholder="请选择认定隐患级别"
@click="showThinkLevel = true"
:rules="[
{ required: true, message: '认定隐患级别不能为空' },
]"
/>
<van-popup v-model="showThinkLevel" position="bottom">
<van-picker
show-toolbar
value-key="projectName"
:default-index="0"
:columns="columnsThinkLevel"
@confirm="onConThinkLevel"
@cancel="showThinkLevel = false"
/>
</van-popup>
<van-field
v-model="disagreeOpinion"
label="审批意见"
name="details"
rows="3"
type="textarea"
placeholder="请输入"
:rules="[{ required: true, message: '退回原因不能为空' }]"
/>
</div>
<van-field
v-model="disagreeOpinion"
label="审批意见"
name="details"
rows="3"
type="textarea"
placeholder="请输入"
required
:rules="[{ required: true, message: '审批意见不能为空' }]"
/>
</div>
<div style="margin: 16px;">
<van-button round block type="info" native-type="submit"
>保存</van-button
>
</div>
</van-form>
<div style="margin:10px 16px 0px;padding-bottom:16px">
<van-button round block type="warning" @click.native="cancel"
>取消</van-button
>
<div style="margin: 16px">
<van-button round block type="info" native-type="submit"
>保存</van-button
>
</div>
</van-form>
<div style="margin: 10px 16px 0px; padding-bottom: 16px">
<van-button round block type="warning" @click.native="cancel"
>取消</van-button
>
</div>
</div>
</div>
</template>
<script>
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";
export default {
name:"major-survey",
components: {
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;
name: "major-survey",
components: {
LHeader,
},
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("提交失败,请稍后再试");
});
data() {
return {
name:'',
taskId: "",
messageList: [],
radio: "1",
text: "重大隐患审批",
agreeOpinion: "",
disagreeOpinion: "",
thinkLevel: "", //因为隐患级别
thinkHdLev: "",
showThinkLevel: false,
columnsThinkLevel: [
"建议为严重隐患",
"建议为较大隐患",
"建议为危险隐患",
],
};
},
// 所属项目
onConThinkLevel(value) {
this.thinkLevel = value;
this.showProjectName = false;
this.showThinkLevel = false;
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 = "";
}
});
},
// 详情
goDetail(taskId) {
this.$router.push({
name: "normal-detail",
params: {
id: taskId
}
});
mounted() {
this.getName()
console.log(1)
},
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() {
this.$router.go(-1);
}
}
cancel() {
this.$router.go(-1);
},
},
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.van-cell-group--inset {
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
margin: 0;
margin-bottom: 10px;
padding: 10px;
font-size: 13px;
position: relative;
.van-row {
margin-bottom: 0.133333rem;
line-height: 0.64rem;
}
.van-overlay {
position: absolute;
.wrapper {
display: flex;
align-items: center;
justify-content: space-evenly;
height: 100%;
}
}
}
}
.detail {
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: none;
z-index: 99;
position: absolute;
bottom: 0.32rem;
right: 15px;
color: #2a80f7;
font-weight: none;
z-index: 99;
}
</style>
......@@ -45,10 +45,10 @@
<van-col span="6">隐患类型:</van-col>
<van-col span="18">{{ item.hdType }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- {{ item.taskName }} -->
<!-- 长按显示遮罩层 -->
......
......@@ -49,10 +49,10 @@
<van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null">
......
......@@ -31,10 +31,10 @@
<van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
......
......@@ -56,10 +56,10 @@
<van-col span="6">超期标识:</van-col>
<van-col span="18">{{ item | formatTime }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态</van-col>
<van-col span="18">{{ item | formatTime }}</van-col>
</van-row>
</van-row> -->
<!-- 长按显示遮罩层 -->
<van-overlay :show="showIndex == index">
<div class="wrapper" @click.stop="showIndex = null">
......
<template>
<div>
<div v-if="videoUrl">
<custom-player :videoUrl="videoUrl" :videoImg="videoImg" @close="videoUrl=''"/>
</div>
<LHeader :text="text"></LHeader>
<!-- 内容列表 -->
<div class="con-list">
<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>
<div>
<div v-if="videoUrl">
<custom-player
:videoUrl="videoUrl"
:videoImg="videoImg"
@close="videoUrl = ''"
/>
</div>
<!-- 隐藏的字段 -->
<div v-show="reportOpen">
<van-row gutter="">
<van-col span="7"
><span class="field-title">隐患项目名称:</span></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">{{ hdReport.hdDiscoveryTime }}</van-col>
</van-row>
<LHeader :text="text"></LHeader>
<!-- 内容列表 -->
<div class="con-list">
<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>
<van-row gutter="">
<van-col span="7"
><span class="field-title">风险源:</span></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">{{ 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 v-show="reportOpen">
<van-row gutter="">
<van-col span="7"
><span class="field-title"
>隐患项目名称:</span
></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">{{
hdReport.hdDiscoveryTime
}}</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title"
>风险源:</span
></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">{{ 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>
</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>
<!-- {{hdConfirm}} -->
<div class="journal-wrap" v-if="hdConfirm.length > 0">
<p>隐患认定</p>
<van-cell-group inset>
<van-steps direction="vertical" :active="99999">
<van-step
v-for="(item, index) in hdConfirm"
:key="index"
>
<div class="step-wrap">
<van-row>
<van-col span="24"
><div class="info-title">
隐患认定
</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>
</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>
<!-- {{hdConfirm}} -->
<div class="journal-wrap" v-if="hdConfirm.length > 0">
<p>隐患认定</p>
<van-cell-group inset>
<van-steps direction="vertical" :active="99999">
<van-step v-for="(item, index) in hdConfirm" :key="index">
<div class="step-wrap">
<van-row>
<van-col span="24"
><div class="info-title">隐患认定</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>
<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
</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
>
</van-row>
<van-row v-if="item.details">
<van-col span="8"
><span class="field-title">审批意见:</span></van-col
>
<van-col
span="16
>{{ item.thinkHdLev }}</van-col
>
</van-row>
<van-row v-if="item.details">
<van-col span="8"
><span class="field-title"
>审批意见:</span
></van-col
>
<van-col
span="16
"
>{{ item.details }}</van-col
>
</van-row>
</div>
</van-step>
</van-steps>
</van-cell-group>
<!-- 展开 -->
<div
class="more"
@click="majorReverse"
v-show="hdMajorApproveList.length > 0"
>
{{ majorOpenText }}
</div>
</div>
<div class="change-wrap" v-if="hdRectificationList.length > 0">
<p>隐患整改</p>
<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.details }}</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_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-row gutter="" v-if="item.hdVideoList">
<van-col span="7"
><span class="field-title">隐患视频:</span></van-col
>
<van-col span="17">
<div
class="detail_video"
v-for="(itemTwo, index) in item.hdVideoList"
:key="index"
>
<video :src="itemTwo.filePath" @click="videoUrl=itemTwo.filePath"></video>
</div>
</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title">创建时间:</span></van-col
>
<van-col span="17">{{ item.creatTime }}</van-col>
</van-row>
</van-cell-group>
</div>
<div class="review-wrap" v-if="hdReviewList.length > 0">
<p>整改复查</p>
<van-cell-group
inset
v-for="(item, index) in hdReviewList"
:key="index"
>
<van-row gutter="" v-if="item.hdPictureList">
<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-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>
>{{ item.details }}</van-col
>
</van-row>
</div>
</van-step>
</van-steps>
</van-cell-group>
<!-- 展开 -->
<div
class="more"
@click="majorReverse"
v-show="hdMajorApproveList.length > 0"
>
{{ majorOpenText }}
</div>
</div>
<div class="change-wrap" v-if="hdRectificationList.length > 0">
<p>隐患整改</p>
<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.details }}</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_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-row gutter="" v-if="item.hdVideoList">
<van-col span="7"
><span class="field-title"
>隐患视频:</span
></van-col
>
<van-col span="17">
<div
class="detail_video"
v-for="(itemTwo, index) in item.hdVideoList"
:key="index"
>
<video
:src="itemTwo.filePath"
@click="videoUrl = itemTwo.filePath"
></video>
</div>
</van-col>
</van-row>
<van-row gutter="">
<van-col span="7"
><span class="field-title"
>创建时间:</span
></van-col
>
<van-col span="17">{{ item.creatTime }}</van-col>
</van-row>
</van-cell-group>
</div>
<van-row gutter="">
<van-col span="7"
><span class="field-title">复查结果:</span></van-col
>
<van-col span="17">{{
item.reviewResult == 1 ? "合格" : "不合格"
}}</van-col>
</van-row>
</van-cell-group>
</div>
<div class="review-wrap" v-if="hdReviewList.length > 0">
<p>整改复查</p>
<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.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">
<p>日志信息</p>
<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"
><div class="info-title">
{{ item.createTime }}
</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.logNode }}</van-col>
</van-row>
<van-row>
<van-col span="6"
><span class="field-title">结果:</span></van-col
>
<van-col span="18">{{ item.logResult }}</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>
</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="journal-wrap">
<p>日志信息</p>
<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"
><div class="info-title">
{{ item.createTime }}
</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.logNode
}}</van-col>
</van-row>
<van-row>
<van-col span="6"
><span class="field-title"
>结果:</span
></van-col
>
<van-col span="18">{{
item.logResult
}}</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>
</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">
<p>督办信息</p>
<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="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.createTime }}</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.instructionsContent }}</van-col>
</van-row>
</div>
</van-step>
</van-steps>
<div class="supervise-wrap">
<p>督办信息</p>
<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="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.createTime
}}</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.instructionsContent
}}</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="instructionsList.length > 0"
>
{{ superviseOpenText }}
<div
style="text-align: center"
v-if="instructionsList.length == 0"
>
暂无数据
</div>
</van-cell-group>
<!-- 展开 -->
<div
class="more"
@click="superviseReverse"
v-show="instructionsList.length > 0"
>
{{ superviseOpenText }}
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
import {ImagePreview} from 'vant';
import { ImagePreview } from "vant";
import { standBookDetail, deal } from "@/service/danger";
import customPlayer from "@/components/video"
import customPlayer from "@/components/video";
export default {
components: {
LHeader,
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("加载失败,请稍后再试");
});
components: {
LHeader,
customPlayer,
},
data() {
return {
videoImg: "12",
// 视屏播放
videoUrl: "",
id: "",
text: "隐患详情",
reportOpen: false,
reportOpenText: "展开 ▼",
journalOpen: false,
journalOpenText: "展开 ▼",
superviseOpen: false,
superviseOpenText: "展开 ▼",
confirmOpen: false,
confirmOpenText: "展开 ▼",
majorOpen: false,
majorOpenText: "展开 ▼",
// 上报信息显示或隐藏
reportReverse() {
this.reportOpen = !this.reportOpen;
if (this.reportOpen) {
this.reportOpenText = "收起 ▲";
} else {
this.reportOpenText = "展开 ▼";
}
hdReport: "",
hdConfirm: [],
hdMajorApproveList: [], // 重大隐患审批
beifenhdMajorList: [],
hdRectificationList: [],
hdReviewList: [],
hdLogList: [],
beifenhdLogList: [],
instructionsList: [],
beifeninstructionsList: [],
};
},
// 隐患认定显示或隐藏
confirmReverse() {
this.confirmOpen = !this.confirmOpen;
if (this.confirmOpen) {
// 显示所有数据
this.confirmOpenText = "收起 ▲";
// 显示所有数据
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);
}
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("加载失败,请稍后再试");
});
},
// 日志信息显示或隐藏
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);
}
// 上报信息显示或隐藏
reportReverse() {
this.reportOpen = !this.reportOpen;
if (this.reportOpen) {
this.reportOpenText = "收起 ▲";
} else {
this.reportOpenText = "展开 ▼";
}
},
// 隐患认定显示或隐藏
confirmReverse() {
this.confirmOpen = !this.confirmOpen;
if (this.confirmOpen) {
// 显示所有数据
this.confirmOpenText = "收起 ▲";
// 显示所有数据
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);
}
},
// 日志信息显示或隐藏
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>
<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: none;
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;
padding: 10px 10px 0.533333rem;
background-color: #f0f1f5;
.cell-wrap {
position: relative;
}
p {
font-size: 0.4rem;
font-weight: none;
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: 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 {
width: 100%;
height: 100%;
overflow: hidden;
// display: block;
width: 100%;
height: 100%;
overflow: hidden;
// display: block;
}
.vjs_video_1251-dimensions.vjs-fluid {
padding-top: 4.25%;
padding-top: 4.25%;
}
</style>
<template>
<div>
<!-- 头部标签 -->
<van-sticky>
<header class="header-wrap">
首开集团安全管理平台
</header>
</van-sticky>
<div>
<!-- 头部标签 -->
<van-sticky>
<header class="header-wrap">首开集团安全管理平台</header>
</van-sticky>
<!-- 内容 -->
<div class="con">
<!-- 个人信息 -->
<van-cell-group inset>
<van-row gutter="20">
<van-col span="6">
<div>
<van-image
width="2rem"
height="2rem"
fit="fill"
:src="userInfo.portrait"
/>
</div>
</van-col>
<van-col span="18">
<div class="user-info-wrap">
<div class="user-name">{{ userInfo.name }}</div>
<p>{{ userInfo.position }}</p>
<div class="tag-wrap">
<van-tag color="#cbcdfb">隐患上报人</van-tag>
<van-tag color="#b5e2f1">隐患整改人</van-tag>
<van-tag color="#bed9fd">检查专员</van-tag>
</div>
</div>
</van-col>
</van-row>
</van-cell-group>
<!-- 内容 -->
<div class="con">
<!-- 个人信息 -->
<van-cell-group inset>
<van-row gutter="20">
<van-col span="6">
<div>
<van-image
width="2rem"
height="2rem"
fit="fill"
:src="userInfo.portrait"
/>
</div>
</van-col>
<van-col span="18">
<div class="user-info-wrap">
<div class="user-name">{{ userInfo.name }}</div>
<p>{{ userInfo.position }}</p>
<div class="tag-wrap">
<van-tag color="#cbcdfb">隐患上报人</van-tag>
<van-tag color="#b5e2f1">隐患整改人</van-tag>
<van-tag color="#bed9fd">检查专员</van-tag>
</div>
</div>
</van-col>
</van-row>
</van-cell-group>
<!-- 设置 -->
<van-cell-group inset class="my-cell-group">
<div class="set-wrap">
<van-image
width="0.613rem"
height="0.613rem"
fit="fill"
:src="require('@/assets/myTerritory/set.png')"
/>
<span>设置</span>
<!-- 设置 -->
<van-cell-group inset class="my-cell-group">
<div
class="set-wrap"
v-for="(item, key) in menus"
:key="key"
@click="$router.push({ name: item['name'] })"
>
<van-image
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>
</van-cell-group>
<!-- 退出系统 -->
<footer class="sign-out">
<van-button type="info" block @click="logout">退出系统</van-button>
</footer>
<!-- tanBar -->
<tab-bar :index="2"></tab-bar>
</div>
<!-- tanBar -->
<tab-bar :index="2"></tab-bar>
</div>
</template>
<script>
import tabBar from "@/components/TabBar";
import { removeToken } from '@/utils/auth' // get token from cookie
import { getUserInfo} from '@/utils/userInfo'
import { removeToken } from "@/utils/auth"; // get token from cookie
import { getUserInfo } from "@/utils/userInfo";
export default {
components: {
tabBar
},
data() {
return {
userInfo: {
portrait: require("@/assets/myTerritory/touxiang.png"),
name: getUserInfo()?getUserInfo().userName:"刘华强",
position: getUserInfo()?getUserInfo().deptName:"技术安全部",
// name: "刘华强",
// position: "技术安全部"
// jurisdiction: [
// '隐患上报人',
// '隐患整改人',
// '检查专员'
// ]
}
};
},
mounted() {},
methods: {
logout() {
// localStorage.removeItem('admin_token');
this.$router.push("/Login2");
removeToken()
// location.reload();
}
}
components: {
tabBar,
},
data() {
return {
menus: [
// 菜单
{
title: "我的权限",
img:require("@/assets/myTerritory/role.png"),
name: "my-role",
},
{
title: "修改密码",
img: require("@/assets/myTerritory/set.png"),
name: "my-reset-pas",
},
],
userInfo: {
portrait: require("@/assets/myTerritory/touxiang.png"),
name: getUserInfo() ? getUserInfo().userName : "刘华强",
position: getUserInfo() ? getUserInfo().deptName : "技术安全部",
// name: "刘华强",
// position: "技术安全部"
// jurisdiction: [
// '隐患上报人',
// '隐患整改人',
// '检查专员'
// ]
},
};
},
mounted() {},
methods: {
logout() {
// localStorage.removeItem('admin_token');
this.$router.push("/Login2");
removeToken();
// location.reload();
},
},
};
</script>
<style lang="less" scoped>
/* @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;
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;
}
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;
}
.tag-wrap {
.van-tag {
margin-right: 10px;
margin-top: 3px;
padding: 2px 4px;
}
}
}
}
.my-cell-group {
padding: 10px 10px !important;
.set-wrap {
height: 0.8rem;
display: flex;
align-items: center;
span {
margin-left: 0.2666rem;
font-size: 15px;
font-weight: none;
}
.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;
}
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 15px;
margin: 0 10px 10px;
padding: 10px 10px 15px;
}
</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 @@
<van-col span="6">主责人员:</van-col>
<van-col span="18">{{ item.responsibilityMember }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 详情 -->
<div class="detail">详情</div>
</van-cell-group>
......
......@@ -57,10 +57,10 @@
<van-col span="6">主责人员:</van-col>
<van-col span="18">{{ item.responsibilityMember }}</van-col>
</van-row>
<van-row gutter="">
<!-- <van-row gutter="">
<van-col span="6">工单状态:</van-col>
<van-col span="18">{{ item.taskName }}</van-col>
</van-row>
</van-row> -->
<!-- 长按显示遮罩层 -->
<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