安全隐患整改审批流程处理
parent
411a84e564
commit
9a41479bec
|
@ -274,6 +274,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
a.smark_url,
|
a.smark_url,
|
||||||
a.isDel,
|
a.isDel,
|
||||||
CONCAT(c.nick_name,'【',c.phonenumber,'】') as createUser,
|
CONCAT(c.nick_name,'【',c.phonenumber,'】') as createUser,
|
||||||
|
a.createUser as updateUser,
|
||||||
a.createTime,
|
a.createTime,
|
||||||
a.updateUser,
|
a.updateUser,
|
||||||
a.updateTime,
|
a.updateTime,
|
||||||
|
|
|
@ -114,7 +114,6 @@ function initMap(opt) {
|
||||||
// 将地址解析结果显示在地图上,并调整地图视野
|
// 将地址解析结果显示在地图上,并调整地图视野
|
||||||
myGeo.getPoint('经河新城', function (point) {
|
myGeo.getPoint('经河新城', function (point) {
|
||||||
if (point) {
|
if (point) {
|
||||||
console.log("--->",point)
|
|
||||||
map.value.centerAndZoom(point, 16);
|
map.value.centerAndZoom(point, 16);
|
||||||
map.value.addOverlay(new BMapGL.Marker(point, { title: '经河新城' }))
|
map.value.addOverlay(new BMapGL.Marker(point, { title: '经河新城' }))
|
||||||
map.value.enableScrollWheelZoom(true);
|
map.value.enableScrollWheelZoom(true);
|
||||||
|
@ -151,6 +150,7 @@ defineExpose({
|
||||||
.el-dialog__body {
|
.el-dialog__body {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
|
|
||||||
.div-info {
|
.div-info {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="navbar">
|
<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" />
|
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!settingsStore.topNav" />
|
||||||
<top-nav id="topmenu-container" class="topmenu-container" v-if="settingsStore.topNav" />
|
<top-nav id="topmenu-container" class="topmenu-container" v-if="settingsStore.topNav" />
|
||||||
|
|
||||||
|
@ -96,7 +97,6 @@ function setLayout() {
|
||||||
emits('setLayout');
|
emits('setLayout');
|
||||||
}
|
}
|
||||||
data.comName = userStore.currentComName
|
data.comName = userStore.currentComName
|
||||||
console.log("---->",userStore)
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang='scss' scoped>
|
<style lang='scss' scoped>
|
||||||
|
@ -113,6 +113,7 @@ console.log("---->",userStore)
|
||||||
height: 32px;
|
height: 32px;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hamburger-container {
|
.hamburger-container {
|
||||||
line-height: 46px;
|
line-height: 46px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
import { login, logout, getInfo } from '@/api/login'
|
import { login, logout, getInfo } from "@/api/login";
|
||||||
import { findMyTasks } from '@/api/flowable/businessKey'
|
import { findMyTasks } from "@/api/flowable/businessKey";
|
||||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
import { getToken, setToken, removeToken } from "@/utils/auth";
|
||||||
import defAva from '@/assets/images/profile.jpg'
|
import defAva from "@/assets/images/profile.jpg";
|
||||||
|
|
||||||
const useUserStore = defineStore(
|
const useUserStore = defineStore("user", {
|
||||||
'user',
|
|
||||||
{
|
|
||||||
state: () => ({
|
state: () => ({
|
||||||
token: getToken(),
|
token: getToken(),
|
||||||
uid: '',
|
uid: "",
|
||||||
name: '',
|
name: "",
|
||||||
nickName: '',
|
nickName: "",
|
||||||
avatar: '',
|
avatar: "",
|
||||||
compInfo: {},
|
compInfo: {},
|
||||||
roles: [],
|
roles: [],
|
||||||
permissions: [],
|
permissions: [],
|
||||||
|
@ -19,37 +17,43 @@ const useUserStore = defineStore(
|
||||||
currentComName: null,
|
currentComName: null,
|
||||||
currentPrjId: null,
|
currentPrjId: null,
|
||||||
currentProName: null,
|
currentProName: null,
|
||||||
|
isAdmin: false,
|
||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
// 登录
|
// 登录
|
||||||
login(userInfo) {
|
login(userInfo) {
|
||||||
const username = userInfo.username.trim()
|
const username = userInfo.username.trim();
|
||||||
const password = userInfo.password
|
const password = userInfo.password;
|
||||||
const code = userInfo.code
|
const code = userInfo.code;
|
||||||
const uuid = userInfo.uuid
|
const uuid = userInfo.uuid;
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
login(username, password, code, uuid).then(res => {
|
login(username, password, code, uuid)
|
||||||
let data = res.data
|
.then((res) => {
|
||||||
setToken(data.access_token)
|
let data = res.data;
|
||||||
this.token = data.access_token
|
setToken(data.access_token);
|
||||||
resolve()
|
this.token = data.access_token;
|
||||||
}).catch(error => {
|
resolve();
|
||||||
reject(error)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 获取用户信息
|
// 获取用户信息
|
||||||
getInfo() {
|
getInfo() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
getInfo().then(res => {
|
getInfo()
|
||||||
const user = res.user
|
.then((res) => {
|
||||||
const avatar = (user.avatar == "" || user.avatar == null) ? defAva : user.avatar;
|
const user = res.user;
|
||||||
|
const avatar =
|
||||||
|
user.avatar == "" || user.avatar == null ? defAva : user.avatar;
|
||||||
|
|
||||||
if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
if (res.roles && res.roles.length > 0) {
|
||||||
this.roles = res.roles
|
// 验证返回的roles是否是一个非空数组
|
||||||
this.permissions = res.permissions
|
this.roles = res.roles;
|
||||||
|
this.permissions = res.permissions;
|
||||||
} else {
|
} else {
|
||||||
this.roles = ['ROLE_DEFAULT']
|
this.roles = ["ROLE_DEFAULT"];
|
||||||
}
|
}
|
||||||
this.uid = user.userId;
|
this.uid = user.userId;
|
||||||
this.name = user.userName;
|
this.name = user.userName;
|
||||||
|
@ -60,20 +64,27 @@ const useUserStore = defineStore(
|
||||||
this.currentComName = user.activeComName;
|
this.currentComName = user.activeComName;
|
||||||
this.currentPrjId = user.activeProjectId;
|
this.currentPrjId = user.activeProjectId;
|
||||||
this.currentProName = user.activeProjectName;
|
this.currentProName = user.activeProjectName;
|
||||||
resolve(res)
|
this.isAdmin = user.roles.some(
|
||||||
}).catch(error => {
|
(item) =>
|
||||||
reject(error)
|
item.roleKey.includes("admin") ||
|
||||||
})
|
item.roleKey.includes("gsAdmin")
|
||||||
|
);
|
||||||
|
resolve(res);
|
||||||
})
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 获取用户代办
|
// 获取用户代办
|
||||||
getTasks() {
|
getTasks() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
findMyTasks().then(response => {
|
findMyTasks()
|
||||||
|
.then((response) => {
|
||||||
let todos = document.querySelectorAll(".tips_Todo");
|
let todos = document.querySelectorAll(".tips_Todo");
|
||||||
let tasks = document.querySelectorAll(".tips_Task");
|
let tasks = document.querySelectorAll(".tips_Task");
|
||||||
if (todos.length > 0) {
|
if (todos.length > 0) {
|
||||||
todos.forEach(el => {
|
todos.forEach((el) => {
|
||||||
el.innerHTML = response.data.todo;
|
el.innerHTML = response.data.todo;
|
||||||
if (response.data.todo > 0) {
|
if (response.data.todo > 0) {
|
||||||
el.style.display = "inline";
|
el.style.display = "inline";
|
||||||
|
@ -83,7 +94,7 @@ const useUserStore = defineStore(
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (tasks.length > 0) {
|
if (tasks.length > 0) {
|
||||||
tasks.forEach(el => {
|
tasks.forEach((el) => {
|
||||||
el.innerHTML = response.data.todo;
|
el.innerHTML = response.data.todo;
|
||||||
if (response.data.todo > 0) {
|
if (response.data.todo > 0) {
|
||||||
el.style.display = "inline";
|
el.style.display = "inline";
|
||||||
|
@ -92,27 +103,30 @@ const useUserStore = defineStore(
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
resolve(response)
|
resolve(response);
|
||||||
}).catch(error => {
|
|
||||||
reject(error)
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 退出系统
|
// 退出系统
|
||||||
logOut() {
|
logOut() {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
logout(this.token).then(() => {
|
logout(this.token)
|
||||||
this.token = ''
|
.then(() => {
|
||||||
this.roles = []
|
this.token = "";
|
||||||
this.permissions = []
|
this.roles = [];
|
||||||
removeToken()
|
this.permissions = [];
|
||||||
resolve()
|
removeToken();
|
||||||
}).catch(error => {
|
resolve();
|
||||||
reject(error)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
export default useUserStore
|
export default useUserStore;
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
<el-steps style="max-width: 600px" :active="data.stepActive" finish-status="success" simple>
|
<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="待复检" />
|
||||||
<el-step title="复检驳回" />
|
<el-step title="复检驳回" v-if="!data.simple" />
|
||||||
<el-step title="复检通过" />
|
<el-step title="复检通过" />
|
||||||
</el-steps>
|
</el-steps>
|
||||||
|
<div class="step-list">
|
||||||
<div v-for="(it, idx) in data.auditinfoList" :key="idx">
|
<div v-for="(it, idx) in data.auditinfoList" :key="idx">
|
||||||
<div class="step-header" :class="data.row.checkState >= 0 ? 'is-active' : ''">
|
<div class="step-header" :class="data.row.checkState >= 0 ? 'is-active' : ''">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
|
@ -39,7 +39,8 @@
|
||||||
</el-icon>整改图片</td>
|
</el-icon>整改图片</td>
|
||||||
<td>
|
<td>
|
||||||
<div class="step-img"><el-image :src="file.fileUrl"
|
<div class="step-img"><el-image :src="file.fileUrl"
|
||||||
v-for="(file, index) in it.files" :key="index" :preview-teleported="true"
|
v-for="(file, index) in it.files" :key="index"
|
||||||
|
:preview-teleported="true"
|
||||||
:preview-src-list="[file.fileUrl]"></el-image></div>
|
:preview-src-list="[file.fileUrl]"></el-image></div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -72,13 +73,13 @@
|
||||||
<Picture />
|
<Picture />
|
||||||
</el-icon>隐患图片</td>
|
</el-icon>隐患图片</td>
|
||||||
<td>
|
<td>
|
||||||
<el-image :src="data.row.smarkUrlPic" style="height:80px;" :preview-teleported="true"
|
<el-image :src="data.row.smarkUrlPic" style="height:80px;"
|
||||||
:preview-src-list="data.row.smarkUrlPics"></el-image>
|
:preview-teleported="true" :preview-src-list="data.row.smarkUrlPics"></el-image>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="14" class="detail-right" :class="'is-' + data.mode">
|
<el-col :span="14" class="detail-right" :class="'is-' + data.mode">
|
||||||
|
@ -211,6 +212,7 @@
|
||||||
<script setup name="Problemmodify">
|
<script setup name="Problemmodify">
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
import { listAuditinfo, addAuditinfo } from '@/api/trouble/auditinfo'
|
import { listAuditinfo, addAuditinfo } from '@/api/trouble/auditinfo'
|
||||||
|
import { fa } from 'element-plus/es/locales.mjs';
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { ssp_proble_type, ssp_proble_sub_type } = proxy.useDict('ssp_proble_type', 'ssp_proble_sub_type');
|
const { ssp_proble_type, ssp_proble_sub_type } = proxy.useDict('ssp_proble_type', 'ssp_proble_sub_type');
|
||||||
const formStep2Ref = ref();
|
const formStep2Ref = ref();
|
||||||
|
@ -218,6 +220,7 @@ const formStep3Ref = ref();
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const emit = defineEmits(["success"]);
|
const emit = defineEmits(["success"]);
|
||||||
let data = reactive({
|
let data = reactive({
|
||||||
|
simple: false,
|
||||||
mode: '',
|
mode: '',
|
||||||
loading: false,
|
loading: false,
|
||||||
visible: false,
|
visible: false,
|
||||||
|
@ -264,6 +267,7 @@ function validateStep2Images(rule, value, callback) {
|
||||||
function showDrawer(row, mode) {
|
function showDrawer(row, mode) {
|
||||||
data.mode = mode;
|
data.mode = mode;
|
||||||
data.row = row;
|
data.row = row;
|
||||||
|
|
||||||
step2Form.value.images = [];
|
step2Form.value.images = [];
|
||||||
step2Form.value.opinion = "";
|
step2Form.value.opinion = "";
|
||||||
step3Form.value.opinion = "";
|
step3Form.value.opinion = "";
|
||||||
|
@ -288,6 +292,15 @@ function getListAuditinfo() {
|
||||||
tmps[i].index = idx < 10 ? '0' + idx : idx;
|
tmps[i].index = idx < 10 ? '0' + idx : idx;
|
||||||
}
|
}
|
||||||
data.auditinfoList = tmps;
|
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 {
|
.el-card__body {
|
||||||
padding: 8px !important;
|
padding: 8px !important;
|
||||||
}
|
}
|
||||||
|
@ -427,7 +445,7 @@ defineExpose({
|
||||||
|
|
||||||
.step-img {
|
.step-img {
|
||||||
.el-image {
|
.el-image {
|
||||||
width: 95px;
|
width: 90px;
|
||||||
height: 80px;
|
height: 80px;
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,6 +180,12 @@ function handleDetail(row) {
|
||||||
detailDrawerRef.value.showDrawer(row, 'show');
|
detailDrawerRef.value.showDrawer(row, 'show');
|
||||||
}
|
}
|
||||||
function getIsVdel(row) {
|
function getIsVdel(row) {
|
||||||
|
let isAdmin = userStore.isAdmin;
|
||||||
|
if (isAdmin) {
|
||||||
|
return true;
|
||||||
|
} else if (row.updateUser == userStore.uid && row.checkState != 3) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
function getIsModify(row) {
|
function getIsModify(row) {
|
||||||
|
|
Loading…
Reference in New Issue