安全隐患整改审批流程处理
parent
411a84e564
commit
9a41479bec
|
@ -274,6 +274,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
a.smark_url,
|
||||
a.isDel,
|
||||
CONCAT(c.nick_name,'【',c.phonenumber,'】') as createUser,
|
||||
a.createUser as updateUser,
|
||||
a.createTime,
|
||||
a.updateUser,
|
||||
a.updateTime,
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<template>
|
||||
<el-dialog :title="title" v-model="show" width="800px" append-to-body class="baidu-map-dialog"
|
||||
:close-on-click-modal="false" :close-on-press-escape="false" >
|
||||
<div class="div-info">
|
||||
<div>经度纬度:{{point?(point.lng.toFixed(5)+","+point.lat.toFixed(5)):'' }}</div>
|
||||
<div>详细地址:{{ getAddress() }}</div>
|
||||
<div style="margin-top: 10px;text-align: center;" v-if="getAddress()">
|
||||
<el-button size="small" type="primary" @click="doOk">确定</el-button>
|
||||
<el-dialog :title="title" v-model="show" width="800px" append-to-body class="baidu-map-dialog"
|
||||
:close-on-click-modal="false" :close-on-press-escape="false">
|
||||
<div class="div-info">
|
||||
<div>经度纬度:{{ point ? (point.lng.toFixed(5) + "," + point.lat.toFixed(5)) : '' }}</div>
|
||||
<div>详细地址:{{ getAddress() }}</div>
|
||||
<div style="margin-top: 10px;text-align: center;" v-if="getAddress()">
|
||||
<el-button size="small" type="primary" @click="doOk">确定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="index-map" style="width: 100%;height:600px;"></div>
|
||||
</el-dialog>
|
||||
<div id="index-map" style="width: 100%;height:600px;"></div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
|
@ -21,44 +21,44 @@ const cityInfo = ref("");
|
|||
|
||||
const emit = defineEmits(["docom"]);
|
||||
|
||||
function getCity(data,cb){
|
||||
let myPoint = new BMapGL.Point(+data.longitude,+data.latitude);
|
||||
let myGeo = new BMapGL.Geocoder({extensions_town: true});
|
||||
myGeo.getLocation(myPoint,r=>{
|
||||
let cityInfo={
|
||||
address:r.content?.address||'',
|
||||
poi_desc:r.content?.poi_desc||'',
|
||||
district:r.content?.address_detail?.district||'',
|
||||
city:r.content?.address_detail?.city||'',
|
||||
province:r.content?.address_detail?.province||''
|
||||
}
|
||||
cb && cb(myPoint,cityInfo);
|
||||
function getCity(data, cb) {
|
||||
let myPoint = new BMapGL.Point(+data.longitude, +data.latitude);
|
||||
let myGeo = new BMapGL.Geocoder({ extensions_town: true });
|
||||
myGeo.getLocation(myPoint, r => {
|
||||
let cityInfo = {
|
||||
address: r.content?.address || '',
|
||||
poi_desc: r.content?.poi_desc || '',
|
||||
district: r.content?.address_detail?.district || '',
|
||||
city: r.content?.address_detail?.city || '',
|
||||
province: r.content?.address_detail?.province || ''
|
||||
}
|
||||
cb && cb(myPoint, cityInfo);
|
||||
});
|
||||
}
|
||||
|
||||
function doOk(){
|
||||
emit("docom",point.value,cityInfo.value);
|
||||
show.value=false;
|
||||
function doOk() {
|
||||
emit("docom", point.value, cityInfo.value);
|
||||
show.value = false;
|
||||
}
|
||||
|
||||
function getAddress(){
|
||||
let addr=cityInfo.value?.address||'';
|
||||
function getAddress() {
|
||||
let addr = cityInfo.value?.address || '';
|
||||
return addr;
|
||||
}
|
||||
|
||||
function showDlg(opt){
|
||||
title.value=opt?.title||'选择地址';
|
||||
show.value=true;
|
||||
setTimeout(()=>{
|
||||
initMap(opt);
|
||||
},400);
|
||||
function showDlg(opt) {
|
||||
title.value = opt?.title || '选择地址';
|
||||
show.value = true;
|
||||
setTimeout(() => {
|
||||
initMap(opt);
|
||||
}, 400);
|
||||
}
|
||||
|
||||
function currentPoint(){
|
||||
let geolocation = new BMapGL.Geolocation();
|
||||
function currentPoint() {
|
||||
let geolocation = new BMapGL.Geolocation();
|
||||
geolocation.enableSDKLocation();
|
||||
geolocation.getCurrentPosition(e=>{
|
||||
if(e.point){
|
||||
geolocation.getCurrentPosition(e => {
|
||||
if (e.point) {
|
||||
let point = e.point
|
||||
let initMarker = new BMapGL.Marker(point);
|
||||
map.value.centerAndZoom(point, 18);
|
||||
|
@ -67,36 +67,36 @@ function currentPoint(){
|
|||
})
|
||||
}
|
||||
|
||||
function mapClick(e){
|
||||
point.value=e.latlng;
|
||||
let myGeo = new BMapGL.Geocoder({extensions_town: true});
|
||||
myGeo.getLocation(e.latlng,r=>{
|
||||
if(r){
|
||||
cityInfo.value={
|
||||
address:r.content?.address||'',
|
||||
poi_desc:r.content?.poi_desc||'',
|
||||
district:r.content?.address_detail?.district||'',
|
||||
city:r.content?.address_detail?.city||'',
|
||||
province:r.content?.address_detail?.province||''
|
||||
function mapClick(e) {
|
||||
point.value = e.latlng;
|
||||
let myGeo = new BMapGL.Geocoder({ extensions_town: true });
|
||||
myGeo.getLocation(e.latlng, r => {
|
||||
if (r) {
|
||||
cityInfo.value = {
|
||||
address: r.content?.address || '',
|
||||
poi_desc: r.content?.poi_desc || '',
|
||||
district: r.content?.address_detail?.district || '',
|
||||
city: r.content?.address_detail?.city || '',
|
||||
province: r.content?.address_detail?.province || ''
|
||||
}
|
||||
}else{
|
||||
cityInfo.value={}
|
||||
} else {
|
||||
cityInfo.value = {}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function initMap(opt) {
|
||||
function initMap(opt) {
|
||||
let imap = new BMapGL.Map("index-map");
|
||||
|
||||
|
||||
map.value = imap;
|
||||
let point = new BMapGL.Point(116.404, 39.915);
|
||||
//初始化地图,设置中心点坐标和地图级别
|
||||
map.value.centerAndZoom(point, 15);
|
||||
map.value.setDefaultCursor("crosshair");//设置地图默认的鼠标指针样式
|
||||
map.value.enableScrollWheelZoom();//启用滚轮放大缩小,默认禁用。
|
||||
|
||||
|
||||
//创建点坐标
|
||||
|
||||
|
||||
//创建标注
|
||||
let initMarker = new BMapGL.Marker(point);
|
||||
//向地图中添加单个覆盖物时会触发此事件
|
||||
|
@ -104,17 +104,16 @@ function initMap(opt) {
|
|||
//开启标注拖拽功能
|
||||
//initMarker.enableDragging();
|
||||
//将标注点移动到中心位置
|
||||
|
||||
|
||||
|
||||
//添加地图默认控件
|
||||
map.value.addControl(new BMapGL.NavigationControl());
|
||||
//开启鼠标滚轮缩放
|
||||
map.value.addEventListener("click",mapClick);
|
||||
map.value.addEventListener("click", mapClick);
|
||||
var myGeo = new BMapGL.Geocoder();
|
||||
// 将地址解析结果显示在地图上,并调整地图视野
|
||||
myGeo.getPoint('经河新城', function (point) {
|
||||
if (point) {
|
||||
console.log("--->",point)
|
||||
map.value.centerAndZoom(point, 16);
|
||||
map.value.addOverlay(new BMapGL.Marker(point, { title: '经河新城' }))
|
||||
map.value.enableScrollWheelZoom(true);
|
||||
|
@ -127,41 +126,42 @@ function initMap(opt) {
|
|||
}, '陕西省')
|
||||
currentPoint();
|
||||
}
|
||||
function initMapData(data){
|
||||
if(data.latitude && data.longitude){
|
||||
point.value={}
|
||||
point.value.lng=data.longitude*1.0;
|
||||
point.value.lat=data.latitude*1.0;
|
||||
function initMapData(data) {
|
||||
if (data.latitude && data.longitude) {
|
||||
point.value = {}
|
||||
point.value.lng = data.longitude * 1.0;
|
||||
point.value.lat = data.latitude * 1.0;
|
||||
}
|
||||
cityInfo.value={}
|
||||
cityInfo.value.address=data.projectAddress||''
|
||||
cityInfo.value.district=data.district||''
|
||||
cityInfo.value.city=data.city||''
|
||||
cityInfo.value.province=data.province||''
|
||||
cityInfo.value = {}
|
||||
cityInfo.value.address = data.projectAddress || ''
|
||||
cityInfo.value.district = data.district || ''
|
||||
cityInfo.value.city = data.city || ''
|
||||
cityInfo.value.province = data.province || ''
|
||||
}
|
||||
|
||||
/** 暴露组件 */
|
||||
defineExpose({
|
||||
showDlg,
|
||||
initMapData
|
||||
showDlg,
|
||||
initMapData
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" >
|
||||
.baidu-map-dialog{
|
||||
.el-dialog__body{
|
||||
<style lang="scss">
|
||||
.baidu-map-dialog {
|
||||
.el-dialog__body {
|
||||
position: relative;
|
||||
padding: 0px;
|
||||
.div-info{
|
||||
|
||||
.div-info {
|
||||
position: absolute;
|
||||
top:0px;
|
||||
top: 0px;
|
||||
right: 10px;
|
||||
width:300px;
|
||||
width: 300px;
|
||||
font-size: 12px;
|
||||
background: rgba(255,255,255,0.5);
|
||||
box-shadow: 6px 6px 6px rgba(0,0,0,0.2);
|
||||
background: rgba(255, 255, 255, 0.5);
|
||||
box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.2);
|
||||
z-index: 99999;
|
||||
padding: 8px;
|
||||
border:solid 1px #ccc;
|
||||
border: solid 1px #ccc;
|
||||
color: #51b5ff;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
<template>
|
||||
<div class="navbar">
|
||||
<hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
|
||||
<hamburger id="hamburger-container" :is-active="appStore.sidebar.opened" class="hamburger-container"
|
||||
@toggleClick="toggleSideBar" />
|
||||
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!settingsStore.topNav" />
|
||||
<top-nav id="topmenu-container" class="topmenu-container" v-if="settingsStore.topNav" />
|
||||
|
||||
<div class="right-menu">
|
||||
<template v-if="appStore.device !== 'mobile'">
|
||||
<el-tag class="cur-comp" v-if="data.comName">当前租户:{{ data.comName }}</el-tag>
|
||||
<current-project id="current-project" class="right-menu-item"/>
|
||||
<current-project id="current-project" class="right-menu-item" />
|
||||
|
||||
<header-search id="header-search" class="right-menu-item" />
|
||||
|
||||
|
@ -58,8 +59,8 @@ import useSettingsStore from '@/store/modules/settings'
|
|||
const appStore = useAppStore()
|
||||
const userStore = useUserStore()
|
||||
const settingsStore = useSettingsStore()
|
||||
const data=reactive({
|
||||
comName:'',
|
||||
const data = reactive({
|
||||
comName: '',
|
||||
})
|
||||
function toggleSideBar() {
|
||||
appStore.toggleSideBar();
|
||||
|
@ -95,8 +96,7 @@ const emits = defineEmits(['setLayout'])
|
|||
function setLayout() {
|
||||
emits('setLayout');
|
||||
}
|
||||
data.comName=userStore.currentComName
|
||||
console.log("---->",userStore)
|
||||
data.comName = userStore.currentComName
|
||||
</script>
|
||||
|
||||
<style lang='scss' scoped>
|
||||
|
@ -107,12 +107,13 @@ console.log("---->",userStore)
|
|||
background: #fff;
|
||||
box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
|
||||
|
||||
.cur-comp{
|
||||
.cur-comp {
|
||||
position: relative;
|
||||
top: 11px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
.hamburger-container {
|
||||
line-height: 46px;
|
||||
height: 100%;
|
||||
|
|
|
@ -1,79 +1,90 @@
|
|||
import { login, logout, getInfo } from '@/api/login'
|
||||
import { findMyTasks } from '@/api/flowable/businessKey'
|
||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||
import defAva from '@/assets/images/profile.jpg'
|
||||
import { login, logout, getInfo } from "@/api/login";
|
||||
import { findMyTasks } from "@/api/flowable/businessKey";
|
||||
import { getToken, setToken, removeToken } from "@/utils/auth";
|
||||
import defAva from "@/assets/images/profile.jpg";
|
||||
|
||||
const useUserStore = defineStore(
|
||||
'user',
|
||||
{
|
||||
state: () => ({
|
||||
token: getToken(),
|
||||
uid: '',
|
||||
name: '',
|
||||
nickName: '',
|
||||
avatar: '',
|
||||
compInfo:{},
|
||||
roles: [],
|
||||
permissions: [],
|
||||
currentComId: null,
|
||||
currentComName: null,
|
||||
currentPrjId: null,
|
||||
currentProName: null,
|
||||
}),
|
||||
actions: {
|
||||
// 登录
|
||||
login(userInfo) {
|
||||
const username = userInfo.username.trim()
|
||||
const password = userInfo.password
|
||||
const code = userInfo.code
|
||||
const uuid = userInfo.uuid
|
||||
return new Promise((resolve, reject) => {
|
||||
login(username, password, code, uuid).then(res => {
|
||||
let data = res.data
|
||||
setToken(data.access_token)
|
||||
this.token = data.access_token
|
||||
resolve()
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
const useUserStore = defineStore("user", {
|
||||
state: () => ({
|
||||
token: getToken(),
|
||||
uid: "",
|
||||
name: "",
|
||||
nickName: "",
|
||||
avatar: "",
|
||||
compInfo: {},
|
||||
roles: [],
|
||||
permissions: [],
|
||||
currentComId: null,
|
||||
currentComName: null,
|
||||
currentPrjId: null,
|
||||
currentProName: null,
|
||||
isAdmin: false,
|
||||
}),
|
||||
actions: {
|
||||
// 登录
|
||||
login(userInfo) {
|
||||
const username = userInfo.username.trim();
|
||||
const password = userInfo.password;
|
||||
const code = userInfo.code;
|
||||
const uuid = userInfo.uuid;
|
||||
return new Promise((resolve, reject) => {
|
||||
login(username, password, code, uuid)
|
||||
.then((res) => {
|
||||
let data = res.data;
|
||||
setToken(data.access_token);
|
||||
this.token = data.access_token;
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
},
|
||||
// 获取用户信息
|
||||
getInfo() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getInfo().then(res => {
|
||||
const user = res.user
|
||||
const avatar = (user.avatar == "" || user.avatar == null) ? defAva : user.avatar;
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
// 获取用户信息
|
||||
getInfo() {
|
||||
return new Promise((resolve, reject) => {
|
||||
getInfo()
|
||||
.then((res) => {
|
||||
const user = res.user;
|
||||
const avatar =
|
||||
user.avatar == "" || user.avatar == null ? defAva : user.avatar;
|
||||
|
||||
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
||||
this.roles = res.roles
|
||||
this.permissions = res.permissions
|
||||
if (res.roles && res.roles.length > 0) {
|
||||
// 验证返回的roles是否是一个非空数组
|
||||
this.roles = res.roles;
|
||||
this.permissions = res.permissions;
|
||||
} else {
|
||||
this.roles = ['ROLE_DEFAULT']
|
||||
this.roles = ["ROLE_DEFAULT"];
|
||||
}
|
||||
this.uid = user.userId;
|
||||
this.name = user.userName;
|
||||
this.nickName = user.nickName;
|
||||
this.compInfo=user.comp;
|
||||
this.compInfo = user.comp;
|
||||
this.avatar = avatar;
|
||||
this.currentComId = user.activeComId;
|
||||
this.currentComName = user.activeComName;
|
||||
this.currentPrjId = user.activeProjectId;
|
||||
this.currentProName = user.activeProjectName;
|
||||
resolve(res)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
this.isAdmin = user.roles.some(
|
||||
(item) =>
|
||||
item.roleKey.includes("admin") ||
|
||||
item.roleKey.includes("gsAdmin")
|
||||
);
|
||||
resolve(res);
|
||||
})
|
||||
})
|
||||
},
|
||||
// 获取用户代办
|
||||
getTasks(){
|
||||
return new Promise((resolve, reject) => {
|
||||
findMyTasks().then(response => {
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
// 获取用户代办
|
||||
getTasks() {
|
||||
return new Promise((resolve, reject) => {
|
||||
findMyTasks()
|
||||
.then((response) => {
|
||||
let todos = document.querySelectorAll(".tips_Todo");
|
||||
let tasks = document.querySelectorAll(".tips_Task");
|
||||
if (todos.length > 0) {
|
||||
todos.forEach(el => {
|
||||
todos.forEach((el) => {
|
||||
el.innerHTML = response.data.todo;
|
||||
if (response.data.todo > 0) {
|
||||
el.style.display = "inline";
|
||||
|
@ -83,7 +94,7 @@ const useUserStore = defineStore(
|
|||
});
|
||||
}
|
||||
if (tasks.length > 0) {
|
||||
tasks.forEach(el => {
|
||||
tasks.forEach((el) => {
|
||||
el.innerHTML = response.data.todo;
|
||||
if (response.data.todo > 0) {
|
||||
el.style.display = "inline";
|
||||
|
@ -92,27 +103,30 @@ const useUserStore = defineStore(
|
|||
}
|
||||
});
|
||||
}
|
||||
resolve(response)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
resolve(response);
|
||||
})
|
||||
})
|
||||
},
|
||||
// 退出系统
|
||||
logOut() {
|
||||
return new Promise((resolve, reject) => {
|
||||
logout(this.token).then(() => {
|
||||
this.token = ''
|
||||
this.roles = []
|
||||
this.permissions = []
|
||||
removeToken()
|
||||
resolve()
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
// 退出系统
|
||||
logOut() {
|
||||
return new Promise((resolve, reject) => {
|
||||
logout(this.token)
|
||||
.then(() => {
|
||||
this.token = "";
|
||||
this.roles = [];
|
||||
this.permissions = [];
|
||||
removeToken();
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
export default useUserStore
|
||||
export default useUserStore;
|
||||
|
|
|
@ -6,80 +6,81 @@
|
|||
<el-steps style="max-width: 600px" :active="data.stepActive" finish-status="success" simple>
|
||||
<el-step title="待整改" />
|
||||
<el-step title="待复检" />
|
||||
<el-step title="复检驳回" />
|
||||
<el-step title="复检驳回" v-if="!data.simple" />
|
||||
<el-step title="复检通过" />
|
||||
</el-steps>
|
||||
<div class="step-list">
|
||||
<div v-for="(it, idx) in data.auditinfoList" :key="idx">
|
||||
<div class="step-header" :class="data.row.checkState >= 0 ? 'is-active' : ''">
|
||||
<el-icon>
|
||||
<SuccessFilled />
|
||||
</el-icon>
|
||||
{{ it.index }}.
|
||||
<span v-if="it.processState == 0">整改处理</span>
|
||||
<span v-if="it.processState == 1">复检通过</span>
|
||||
<span v-if="it.processState == 2">复检驳回</span>
|
||||
</div>
|
||||
<el-card>
|
||||
<table border class="step-table">
|
||||
<tr>
|
||||
<td width="40%"><el-icon>
|
||||
<User />
|
||||
</el-icon>
|
||||
<span v-if="it.processState == 0">整改说明</span>
|
||||
<span v-if="it.processState == 1">复检意见</span>
|
||||
<span v-if="it.processState == 2">驳回意见</span>
|
||||
|
||||
</td>
|
||||
<td>{{ it.opinion }}</td>
|
||||
</tr>
|
||||
<tr v-if="it.processState == 0">
|
||||
<td><el-icon>
|
||||
<Picture />
|
||||
</el-icon>整改图片</td>
|
||||
<td>
|
||||
<div class="step-img"><el-image :src="file.fileUrl"
|
||||
v-for="(file, index) in it.files" :key="index"
|
||||
:preview-teleported="true"
|
||||
:preview-src-list="[file.fileUrl]"></el-image></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
<div v-for="(it, idx) in data.auditinfoList" :key="idx">
|
||||
<div class="step-header" :class="data.row.checkState >= 0 ? 'is-active' : ''">
|
||||
<el-icon>
|
||||
<SuccessFilled />
|
||||
</el-icon>
|
||||
{{ it.index }}.
|
||||
<span v-if="it.processState == 0">整改处理</span>
|
||||
<span v-if="it.processState == 1">复检通过</span>
|
||||
<span v-if="it.processState == 2">复检驳回</span>
|
||||
01.待整改
|
||||
</div>
|
||||
<el-card>
|
||||
<table border class="step-table">
|
||||
<tr>
|
||||
<td width="40%"><el-icon>
|
||||
<User />
|
||||
</el-icon>
|
||||
<span v-if="it.processState == 0">整改说明</span>
|
||||
<span v-if="it.processState == 1">复检意见</span>
|
||||
<span v-if="it.processState == 2">驳回意见</span>
|
||||
|
||||
</td>
|
||||
<td>{{ it.opinion }}</td>
|
||||
</el-icon>办理用户</td>
|
||||
<td>{{ data.row.createUser }}</td>
|
||||
</tr>
|
||||
<tr v-if="it.processState == 0">
|
||||
<tr>
|
||||
<td><el-icon>
|
||||
<Calendar />
|
||||
</el-icon>办理时间</td>
|
||||
<td>{{ data.row.createTime }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><el-icon>
|
||||
<Picture />
|
||||
</el-icon>整改图片</td>
|
||||
</el-icon>隐患图片</td>
|
||||
<td>
|
||||
<div class="step-img"><el-image :src="file.fileUrl"
|
||||
v-for="(file, index) in it.files" :key="index" :preview-teleported="true"
|
||||
:preview-src-list="[file.fileUrl]"></el-image></div>
|
||||
<el-image :src="data.row.smarkUrlPic" style="height:80px;"
|
||||
:preview-teleported="true" :preview-src-list="data.row.smarkUrlPics"></el-image>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
<div class="step-header" :class="data.row.checkState >= 0 ? 'is-active' : ''">
|
||||
<el-icon>
|
||||
<SuccessFilled />
|
||||
</el-icon>
|
||||
01.待整改
|
||||
</div>
|
||||
<el-card>
|
||||
<table border class="step-table">
|
||||
<tr>
|
||||
<td width="40%"><el-icon>
|
||||
<User />
|
||||
</el-icon>办理用户</td>
|
||||
<td>{{ data.row.createUser }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><el-icon>
|
||||
<Calendar />
|
||||
</el-icon>办理时间</td>
|
||||
<td>{{ data.row.createTime }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><el-icon>
|
||||
<Picture />
|
||||
</el-icon>隐患图片</td>
|
||||
<td>
|
||||
<el-image :src="data.row.smarkUrlPic" style="height:80px;" :preview-teleported="true"
|
||||
:preview-src-list="data.row.smarkUrlPics"></el-image>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</el-card>
|
||||
|
||||
|
||||
</el-col>
|
||||
<el-col :span="14" class="detail-right" :class="'is-' + data.mode">
|
||||
<el-form style="margin: 0px 20px;" :model="data.baseForm" ref="baseInfo">
|
||||
|
@ -211,6 +212,7 @@
|
|||
<script setup name="Problemmodify">
|
||||
import useUserStore from '@/store/modules/user'
|
||||
import { listAuditinfo, addAuditinfo } from '@/api/trouble/auditinfo'
|
||||
import { fa } from 'element-plus/es/locales.mjs';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { ssp_proble_type, ssp_proble_sub_type } = proxy.useDict('ssp_proble_type', 'ssp_proble_sub_type');
|
||||
const formStep2Ref = ref();
|
||||
|
@ -218,6 +220,7 @@ const formStep3Ref = ref();
|
|||
const userStore = useUserStore()
|
||||
const emit = defineEmits(["success"]);
|
||||
let data = reactive({
|
||||
simple: false,
|
||||
mode: '',
|
||||
loading: false,
|
||||
visible: false,
|
||||
|
@ -264,6 +267,7 @@ function validateStep2Images(rule, value, callback) {
|
|||
function showDrawer(row, mode) {
|
||||
data.mode = mode;
|
||||
data.row = row;
|
||||
|
||||
step2Form.value.images = [];
|
||||
step2Form.value.opinion = "";
|
||||
step3Form.value.opinion = "";
|
||||
|
@ -288,6 +292,15 @@ function getListAuditinfo() {
|
|||
tmps[i].index = idx < 10 ? '0' + idx : idx;
|
||||
}
|
||||
data.auditinfoList = tmps;
|
||||
if (data.row.checkState == 3) {
|
||||
if (tmps.length == 2) {
|
||||
data.simple = true;
|
||||
data.stepActive = 3;
|
||||
} else {
|
||||
data.simple = false;
|
||||
data.stepActive = 4;
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
@ -394,6 +407,11 @@ defineExpose({
|
|||
}
|
||||
}
|
||||
|
||||
.step-list {
|
||||
overflow-y: auto;
|
||||
height: calc(100vh - 128px);
|
||||
}
|
||||
|
||||
.el-card__body {
|
||||
padding: 8px !important;
|
||||
}
|
||||
|
@ -427,7 +445,7 @@ defineExpose({
|
|||
|
||||
.step-img {
|
||||
.el-image {
|
||||
width: 95px;
|
||||
width: 90px;
|
||||
height: 80px;
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
|
|
@ -180,6 +180,12 @@ function handleDetail(row) {
|
|||
detailDrawerRef.value.showDrawer(row, 'show');
|
||||
}
|
||||
function getIsVdel(row) {
|
||||
let isAdmin = userStore.isAdmin;
|
||||
if (isAdmin) {
|
||||
return true;
|
||||
} else if (row.updateUser == userStore.uid && row.checkState != 3) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function getIsModify(row) {
|
||||
|
|
Loading…
Reference in New Issue