安全隐患功能
parent
2fbf85a62b
commit
bc4d6e14ca
|
@ -58,4 +58,5 @@ public interface SmzSspProblemmodifyMapper
|
|||
* @return 结果
|
||||
*/
|
||||
public int deleteSmzSspProblemmodifyByIds(Long[] ids);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.yanzhu.manage.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import com.yanzhu.common.core.context.SecurityContextHolder;
|
||||
import com.yanzhu.common.core.utils.DateUtils;
|
||||
|
@ -100,10 +101,14 @@ public class SmzSspProblemmodifyServiceImpl implements ISmzSspProblemmodifyServi
|
|||
|
||||
@Override
|
||||
public int insertSmzSspProblemmodifies(List<SmzSspProblemmodify> list) {
|
||||
AtomicInteger count = new AtomicInteger();
|
||||
list.stream().forEach(it->{
|
||||
it.setCheckState(0L);
|
||||
it.setIsDel(0L);
|
||||
it.setCreateTime(DateUtils.getNowDate());
|
||||
it.setCreateBy(SecurityContextHolder.getUserName());
|
||||
count.addAndGet(smzSspProblemmodifyMapper.insertSmzSspProblemmodify(it));
|
||||
});
|
||||
return 0;
|
||||
return count.get();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,44 +1,52 @@
|
|||
import request from '@/utils/request'
|
||||
import request from "@/utils/request";
|
||||
|
||||
// 查询安全隐患整改列表
|
||||
export function listProblemmodify(query) {
|
||||
return request({
|
||||
url: '/trouble/problemmodify/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
url: "/manage/problemmodify/list",
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询安全隐患整改详细
|
||||
export function getProblemmodify(id) {
|
||||
return request({
|
||||
url: '/trouble/problemmodify/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
url: "/manage/problemmodify/" + id,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 新增安全隐患整改
|
||||
export function addProblemmodify(data) {
|
||||
return request({
|
||||
url: '/trouble/problemmodify',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
url: "/manage/problemmodify",
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 修改安全隐患整改
|
||||
export function updateProblemmodify(data) {
|
||||
return request({
|
||||
url: '/trouble/problemmodify',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
url: "/manage/problemmodify",
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除安全隐患整改
|
||||
export function delProblemmodify(id) {
|
||||
return request({
|
||||
url: '/trouble/problemmodify/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
url: "/manage/problemmodify/" + id,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
||||
export function batchAddProblemmodify(datas) {
|
||||
return request({
|
||||
url: "/manage/problemmodify/batchAdd",
|
||||
method: "post",
|
||||
data: datas,
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1,44 +1,44 @@
|
|||
import request from '@/utils/request'
|
||||
import request from "@/utils/request";
|
||||
|
||||
// 查询安全问题草稿列表
|
||||
export function listProblemmodifyDraft(query) {
|
||||
return request({
|
||||
url: '/trouble/problemmodifyDraft/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
url: "/manage/problemmodifyDraft/list",
|
||||
method: "get",
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询安全问题草稿详细
|
||||
export function getProblemmodifyDraft(id) {
|
||||
return request({
|
||||
url: '/trouble/problemmodifyDraft/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
url: "/manage/problemmodifyDraft/" + id,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
// 新增安全问题草稿
|
||||
export function addProblemmodifyDraft(data) {
|
||||
return request({
|
||||
url: '/trouble/problemmodifyDraft',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
url: "/manage/problemmodifyDraft",
|
||||
method: "post",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 修改安全问题草稿
|
||||
export function updateProblemmodifyDraft(data) {
|
||||
return request({
|
||||
url: '/trouble/problemmodifyDraft',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
url: "/manage/problemmodifyDraft",
|
||||
method: "put",
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除安全问题草稿
|
||||
export function delProblemmodifyDraft(id) {
|
||||
return request({
|
||||
url: '/trouble/problemmodifyDraft/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
url: "/manage/problemmodifyDraft/" + id,
|
||||
method: "delete",
|
||||
});
|
||||
}
|
||||
|
|
|
@ -13,14 +13,14 @@
|
|||
<!--表单信息-->
|
||||
<el-tab-pane label="表单信息" name="1">
|
||||
<el-col :span="16" :offset="4">
|
||||
<v-form-render ref="vFormRef"/>
|
||||
<v-form-render ref="vFormRef" />
|
||||
<div style="margin-left:15%;margin-bottom: 20px;font-size: 14px;">
|
||||
<el-button icon="Check" type="primary" @click="handleComplete">审 批</el-button>
|
||||
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">委派</el-button>-->
|
||||
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleAssign">转办</el-button>-->
|
||||
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>-->
|
||||
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="small" @click="handleDelegate">委派</el-button>-->
|
||||
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="small" @click="handleAssign">转办</el-button>-->
|
||||
<!-- <el-button icon="el-icon-edit-outline" type="primary" size="small" @click="handleDelegate">签收</el-button>-->
|
||||
<!-- <el-button icon="el-icon-refresh-left" type="warning" @click="handleReturn">退回</el-button>-->
|
||||
<!-- <el-button icon="el-icon-circle-close" type="danger" size="mini" @click="handleReject">驳回</el-button>-->
|
||||
<!-- <el-button icon="el-icon-circle-close" type="danger" size="small" @click="handleReject">驳回</el-button>-->
|
||||
</div>
|
||||
</el-col>
|
||||
</el-tab-pane>
|
||||
|
@ -31,69 +31,77 @@
|
|||
<el-col :span="16" :offset="4">
|
||||
<div class="block">
|
||||
<el-timeline>
|
||||
<el-timeline-item
|
||||
v-for="(item,index ) in flowRecordList"
|
||||
:key="index"
|
||||
:icon="setIcon(item.finishTime)"
|
||||
:color="setColor(item.finishTime)"
|
||||
>
|
||||
<el-timeline-item v-for="(item, index) in flowRecordList" :key="index" :icon="setIcon(item.finishTime)"
|
||||
:color="setColor(item.finishTime)">
|
||||
<p style="font-weight: 700">{{ item.taskName }}</p>
|
||||
<el-card :body-style="{ padding: '10px' }">
|
||||
<el-descriptions class="margin-top" :column="1" size="small" border>
|
||||
<el-descriptions-item v-if="item.assigneeName" >
|
||||
<el-descriptions-item v-if="item.assigneeName">
|
||||
<template #label>
|
||||
<div class="cell-item">
|
||||
<el-icon :style="iconStyle"><User /></el-icon>
|
||||
<el-icon :style="iconStyle">
|
||||
<User />
|
||||
</el-icon>
|
||||
办理人
|
||||
</div>
|
||||
</template>
|
||||
{{item.assigneeName}}
|
||||
<el-tag type="info" size="small">{{item.deptName}}</el-tag>
|
||||
{{ item.assigneeName }}
|
||||
<el-tag type="info" size="small">{{ item.deptName }}</el-tag>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="item.candidate" >
|
||||
<el-descriptions-item v-if="item.candidate">
|
||||
<template #label>
|
||||
<div class="cell-item">
|
||||
<el-icon :style="iconStyle"><User /></el-icon>
|
||||
<el-icon :style="iconStyle">
|
||||
<User />
|
||||
</el-icon>
|
||||
候选办理
|
||||
</div>
|
||||
</template>
|
||||
{{item.candidate}}
|
||||
{{ item.candidate }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item >
|
||||
<el-descriptions-item>
|
||||
<template #label>
|
||||
<div class="cell-item">
|
||||
<el-icon :style="iconStyle"><Calendar /></el-icon>
|
||||
<el-icon :style="iconStyle">
|
||||
<Calendar />
|
||||
</el-icon>
|
||||
接收时间
|
||||
</div>
|
||||
</template>
|
||||
{{item.createTime}}
|
||||
{{ item.createTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="item.finishTime" >
|
||||
<el-descriptions-item v-if="item.finishTime">
|
||||
<template #label>
|
||||
<div class="cell-item">
|
||||
<el-icon :style="iconStyle"><Calendar /></el-icon>
|
||||
<el-icon :style="iconStyle">
|
||||
<Calendar />
|
||||
</el-icon>
|
||||
处理时间
|
||||
</div>
|
||||
</template>
|
||||
{{item.finishTime}}
|
||||
{{ item.finishTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="item.duration" >
|
||||
<el-descriptions-item v-if="item.duration">
|
||||
<template #label>
|
||||
<div class="cell-item">
|
||||
<el-icon :style="iconStyle"><Timer /></el-icon>
|
||||
<el-icon :style="iconStyle">
|
||||
<Timer />
|
||||
</el-icon>
|
||||
耗时
|
||||
</div>
|
||||
</template>
|
||||
{{item.duration}}
|
||||
{{ item.duration }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item v-if="item.comment" >
|
||||
<el-descriptions-item v-if="item.comment">
|
||||
<template #label>
|
||||
<div class="cell-item">
|
||||
<el-icon :style="iconStyle"><ChatDotSquare /></el-icon>
|
||||
<el-icon :style="iconStyle">
|
||||
<ChatDotSquare />
|
||||
</el-icon>
|
||||
处理意见
|
||||
</div>
|
||||
</template>
|
||||
{{item.comment.comment}}
|
||||
{{ item.comment.comment }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
|
@ -105,7 +113,7 @@
|
|||
|
||||
<!--流程图-->
|
||||
<el-tab-pane label="流程图" name="3">
|
||||
<bpmn-viewer :flowData="flowData" :procInsId="taskForm.procInsId"/>
|
||||
<bpmn-viewer :flowData="flowData" :procInsId="taskForm.procInsId" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
|
@ -118,7 +126,7 @@
|
|||
</el-form-item>
|
||||
<el-form-item label="处理意见" label-width="80px" prop="comment"
|
||||
:rules="[{ required: true, message: '请输入处理意见', trigger: 'blur' }]">
|
||||
<el-input type="textarea" v-model="taskForm.comment" placeholder="请输入处理意见"/>
|
||||
<el-input type="textarea" v-model="taskForm.comment" placeholder="请输入处理意见" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
@ -134,17 +142,12 @@
|
|||
<el-form ref="taskFormRef" :model="taskForm" label-width="80px">
|
||||
<el-form-item label="退回节点" prop="targetKey">
|
||||
<el-radio-group v-model="taskForm.targetKey">
|
||||
<el-radio-button
|
||||
v-for="item in returnTaskList"
|
||||
:key="item.id"
|
||||
:label="item.id"
|
||||
>{{ item.name }}
|
||||
<el-radio-button v-for="item in returnTaskList" :key="item.id" :label="item.id">{{ item.name }}
|
||||
</el-radio-button>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="退回意见" prop="comment"
|
||||
:rules="[{ required: true, message: '请输入意见', trigger: 'blur' }]">
|
||||
<el-input style="width: 50%" type="textarea" v-model="taskForm.comment" placeholder="请输入意见"/>
|
||||
<el-form-item label="退回意见" prop="comment" :rules="[{ required: true, message: '请输入意见', trigger: 'blur' }]">
|
||||
<el-input style="width: 50%" type="textarea" v-model="taskForm.comment" placeholder="请输入意见" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
@ -158,9 +161,8 @@
|
|||
<!--驳回流程-->
|
||||
<el-dialog :title="rejectTitle" v-model="rejectOpen" width="40%" append-to-body>
|
||||
<el-form ref="taskFormRef" :model="taskForm" label-width="80px">
|
||||
<el-form-item label="驳回意见" prop="comment"
|
||||
:rules="[{ required: true, message: '请输入意见', trigger: 'blur' }]">
|
||||
<el-input style="width: 50%" type="textarea" v-model="taskForm.comment" placeholder="请输入意见"/>
|
||||
<el-form-item label="驳回意见" prop="comment" :rules="[{ required: true, message: '请输入意见', trigger: 'blur' }]">
|
||||
<el-input style="width: 50%" type="textarea" v-model="taskForm.comment" placeholder="请输入意见" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
|
@ -176,11 +178,11 @@
|
|||
|
||||
|
||||
<script setup name="TodoDetail">
|
||||
import {flowRecord} from "@/api/flowable/finished";
|
||||
import { flowRecord } from "@/api/flowable/finished";
|
||||
import FlowUser from '@/components/flow/User';
|
||||
import FlowRole from '@/components/flow/Role';
|
||||
import BpmnViewer from '@/components/Process/viewer';
|
||||
import {flowXmlAndNode} from "@/api/flowable/definition";
|
||||
import { flowXmlAndNode } from "@/api/flowable/definition";
|
||||
import {
|
||||
complete,
|
||||
rejectTask,
|
||||
|
@ -285,7 +287,7 @@ if (route.query) {
|
|||
/** tab点击 */
|
||||
function handleClick(tab, event) {
|
||||
if (tab.props.name === '3') {
|
||||
flowXmlAndNode({procInsId: taskForm.value.procInsId, deployId: taskForm.value.deployId}).then(res => {
|
||||
flowXmlAndNode({ procInsId: taskForm.value.procInsId, deployId: taskForm.value.deployId }).then(res => {
|
||||
flowData.value = res.data;
|
||||
})
|
||||
}
|
||||
|
@ -339,7 +341,7 @@ const roleSelect = (selection, name) => {
|
|||
|
||||
/** 流程流转记录 */
|
||||
function getFlowRecordList(procInsId, deployId) {
|
||||
const params = {procInsId: procInsId, deployId: deployId}
|
||||
const params = { procInsId: procInsId, deployId: deployId }
|
||||
flowRecord(params).then(res => {
|
||||
flowRecordList.value = res.data.flowList;
|
||||
}).catch(res => {
|
||||
|
@ -351,7 +353,7 @@ function getFlowRecordList(procInsId, deployId) {
|
|||
function getFlowTaskForm(taskId) {
|
||||
if (taskId) {
|
||||
// 提交流程申请时填写的表单存入了流程变量中后续任务处理时需要展示
|
||||
flowTaskForm({taskId: taskId}).then(res => {
|
||||
flowTaskForm({ taskId: taskId }).then(res => {
|
||||
// 回显表单
|
||||
vFormRef.value.setFormJson(res.data.formJson);
|
||||
formJson.value = res.data.formJson;
|
||||
|
@ -481,7 +483,7 @@ function taskComplete() {
|
|||
/** 申请流程表单数据提交 */
|
||||
function submitForm() {
|
||||
// 根据当前任务或者流程设计配置的下一步节点 todo 暂时未涉及到考虑网关、表达式和多节点情况
|
||||
getNextFlowNode({taskId: taskForm.value.taskId}).then(res => {
|
||||
getNextFlowNode({ taskId: taskForm.value.taskId }).then(res => {
|
||||
const data = res.data;
|
||||
if (data) {
|
||||
vFormRef.value.getFormData().then(formData => {
|
||||
|
@ -516,7 +518,7 @@ function goBack() {
|
|||
checkSendUser.value = false;
|
||||
completeOpen.value = false;
|
||||
checkSendRole.value = false;
|
||||
const obj = {path: "/task/todo", query: { t: Date.now()}};
|
||||
const obj = { path: "/task/todo", query: { t: Date.now() } };
|
||||
proxy.$tab.closeOpenPage(obj);
|
||||
}
|
||||
</script>
|
||||
|
@ -543,7 +545,7 @@ function goBack() {
|
|||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.el-tag + .el-tag {
|
||||
.el-tag+.el-tag {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,18 +8,20 @@
|
|||
</el-date-picker>
|
||||
</div>
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button size="mini" type="text" @click="data.showPop2 = false">取消</el-button>
|
||||
<el-button type="primary" size="mini" @click="doAddYear">确定</el-button>
|
||||
<el-button size="small" type="text" @click="data.showPop2 = false">取消</el-button>
|
||||
<el-button type="primary" size="small" @click="doAddYear">确定</el-button>
|
||||
</div>
|
||||
<template #reference>
|
||||
<el-button size="mini" type="success" @click="data.showPop2=true" style="margin-right: 12px;" class="btn-add-year" round>增加年份</el-button>
|
||||
<el-button size="small" type="success" @click="data.showPop2 = true" style="margin-right: 12px;"
|
||||
class="btn-add-year" round>增加年份</el-button>
|
||||
</template>
|
||||
</el-popover>
|
||||
<el-tabs type="card" v-model="data.activeName">
|
||||
<el-tab-pane v-for="(it, idx) in data.monthInv" :label="'' + it.year" :name="'' + it.year" :key="idx">
|
||||
<el-row>
|
||||
<el-col v-for="(item, idxx) in it.value" :key="idxx" :span="12">
|
||||
<el-form-item :label="data.names[item.month]" class="w200" :class="item.money * 1 < 0 ? 'txt-error' : ''">
|
||||
<el-form-item :label="data.names[item.month]" class="w200"
|
||||
:class="item.money * 1 < 0 ? 'txt-error' : ''">
|
||||
<el-input-number :precision="2" v-model="item.money" placeholder="年度投资">
|
||||
</el-input-number>
|
||||
<span class="sp-unit">万元</span>
|
||||
|
@ -32,9 +34,9 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {addMonthInvestment} from '@/api/manage/costOutput.js'
|
||||
import { addMonthInvestment } from '@/api/manage/costOutput.js'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const $emit=defineEmits(["success"])
|
||||
const $emit = defineEmits(["success"])
|
||||
const data = reactive({
|
||||
prj: null,
|
||||
selYear: '',
|
||||
|
@ -47,13 +49,14 @@ function doPick(a, b) {
|
|||
return data.monthInv.filter(d => d.year == a.getFullYear()).length > 0;
|
||||
}
|
||||
function doAddYear() {
|
||||
addMonthInvestment({comId:data.prj.comId,
|
||||
year:proxy.$dt(data.selYear).$y,
|
||||
projectId:data.prj.id,
|
||||
costType:9
|
||||
}).then(d=>{
|
||||
addMonthInvestment({
|
||||
comId: data.prj.comId,
|
||||
year: proxy.$dt(data.selYear).$y,
|
||||
projectId: data.prj.id,
|
||||
costType: 9
|
||||
}).then(d => {
|
||||
$emit("success");
|
||||
data.showPop2=false;
|
||||
data.showPop2 = false;
|
||||
});
|
||||
}
|
||||
function init(d, prj) {
|
||||
|
@ -73,11 +76,11 @@ defineExpose({
|
|||
})
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.cost-month{
|
||||
.btn-add-year{
|
||||
.cost-month {
|
||||
.btn-add-year {
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
z-index: 9;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -9,11 +9,12 @@
|
|||
</el-date-picker>
|
||||
</div>
|
||||
<div style="text-align: right; margin: 0">
|
||||
<el-button size="mini" type="text" @click="doCancel">取消</el-button>
|
||||
<el-button type="primary" size="mini" @click="doAddYear">确定</el-button>
|
||||
<el-button size="small" type="text" @click="doCancel">取消</el-button>
|
||||
<el-button type="primary" size="small" @click="doAddYear">确定</el-button>
|
||||
</div>
|
||||
<template #reference>
|
||||
<el-button class="btn-add-year" size="mini" @click="data.showPop2=true" type="success" style="margin-right: 12px;" round>增加年份</el-button>
|
||||
<el-button class="btn-add-year" size="small" @click="data.showPop2 = true" type="success"
|
||||
style="margin-right: 12px;" round>增加年份</el-button>
|
||||
</template>
|
||||
|
||||
</el-popover>
|
||||
|
@ -32,9 +33,9 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import {addYearInvestment} from '@/api/manage/costOutput.js'
|
||||
import { addYearInvestment } from '@/api/manage/costOutput.js'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const $emit=defineEmits(["success"])
|
||||
const $emit = defineEmits(["success"])
|
||||
const data = reactive({
|
||||
selYear: '',
|
||||
activeName: '',
|
||||
|
@ -43,21 +44,21 @@ const data = reactive({
|
|||
prj: null
|
||||
})
|
||||
|
||||
function doCancel(){
|
||||
data.showPop2=false;
|
||||
function doCancel() {
|
||||
data.showPop2 = false;
|
||||
}
|
||||
function doPick(a, b) {
|
||||
return data.yearInv.filter(d => d.year == a.getFullYear()).length > 0;
|
||||
}
|
||||
function doAddYear() {
|
||||
addYearInvestment({
|
||||
comId:data.prj.comId,
|
||||
year:proxy.$dt(data.selYear).$y,
|
||||
projectId:data.prj.id,
|
||||
costType:2
|
||||
}).then(d=>{
|
||||
comId: data.prj.comId,
|
||||
year: proxy.$dt(data.selYear).$y,
|
||||
projectId: data.prj.id,
|
||||
costType: 2
|
||||
}).then(d => {
|
||||
$emit("success");
|
||||
data.showPop2=false;
|
||||
data.showPop2 = false;
|
||||
})
|
||||
}
|
||||
function init(d, prj) {
|
||||
|
@ -76,11 +77,11 @@ defineExpose({
|
|||
})
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.cost-year{
|
||||
.btn-add-year{
|
||||
.cost-year {
|
||||
.btn-add-year {
|
||||
position: absolute;
|
||||
right: 0px;
|
||||
z-index: 9;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -2,220 +2,91 @@
|
|||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="租户ID" prop="comId">
|
||||
<el-input
|
||||
v-model="queryParams.comId"
|
||||
placeholder="请输入租户ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.comId" placeholder="请输入租户ID" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目id" prop="projectId">
|
||||
<el-input
|
||||
v-model="queryParams.projectId"
|
||||
placeholder="请输入项目id"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.projectId" placeholder="请输入项目id" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="留痕图片" prop="marksPicture">
|
||||
<el-input
|
||||
v-model="queryParams.marksPicture"
|
||||
placeholder="请输入留痕图片"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.marksPicture" placeholder="请输入留痕图片" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="留痕视频" prop="marksVideo">
|
||||
<el-input
|
||||
v-model="queryParams.marksVideo"
|
||||
placeholder="请输入留痕视频"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.marksVideo" placeholder="请输入留痕视频" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="整改图片" prop="correctionPicture">
|
||||
<el-input
|
||||
v-model="queryParams.correctionPicture"
|
||||
placeholder="请输入整改图片"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.correctionPicture" placeholder="请输入整改图片" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="拍摄位置" prop="problemArea">
|
||||
<el-input
|
||||
v-model="queryParams.problemArea"
|
||||
placeholder="请输入拍摄位置"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.problemArea" placeholder="请输入拍摄位置" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="施工部位" prop="workParts">
|
||||
<el-input
|
||||
v-model="queryParams.workParts"
|
||||
placeholder="请输入施工部位"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.workParts" placeholder="请输入施工部位" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="整改要求" prop="changeInfo">
|
||||
<el-input
|
||||
v-model="queryParams.changeInfo"
|
||||
placeholder="请输入整改要求"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.changeInfo" placeholder="请输入整改要求" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="主送人姓名" prop="lordSent">
|
||||
<el-input
|
||||
v-model="queryParams.lordSent"
|
||||
placeholder="请输入主送人姓名"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.lordSent" placeholder="请输入主送人姓名" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="主送人手机号" prop="lordSentUser">
|
||||
<el-input
|
||||
v-model="queryParams.lordSentUser"
|
||||
placeholder="请输入主送人手机号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.lordSentUser" placeholder="请输入主送人手机号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="抄送人姓名" prop="copySend">
|
||||
<el-input
|
||||
v-model="queryParams.copySend"
|
||||
placeholder="请输入抄送人姓名"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.copySend" placeholder="请输入抄送人姓名" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="抄送人手机号" prop="copySendUser">
|
||||
<el-input
|
||||
v-model="queryParams.copySendUser"
|
||||
placeholder="请输入抄送人手机号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.copySendUser" placeholder="请输入抄送人手机号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="流程状态" prop="checkState">
|
||||
<el-input
|
||||
v-model="queryParams.checkState"
|
||||
placeholder="请输入流程状态"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.checkState" placeholder="请输入流程状态" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="整改定位" prop="nickedArea">
|
||||
<el-input
|
||||
v-model="queryParams.nickedArea"
|
||||
placeholder="请输入整改定位"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.nickedArea" placeholder="请输入整改定位" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="整改截至时间" prop="nickedTime">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.nickedTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
<el-date-picker clearable v-model="queryParams.nickedTime" type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择整改截至时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="工序名称" prop="processName">
|
||||
<el-input
|
||||
v-model="queryParams.processName"
|
||||
placeholder="请输入工序名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.processName" placeholder="请输入工序名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工程名称" prop="projectName">
|
||||
<el-input
|
||||
v-model="queryParams.projectName"
|
||||
placeholder="请输入工程名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.projectName" placeholder="请输入工程名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="留痕说明" prop="nickedInfo">
|
||||
<el-input
|
||||
v-model="queryParams.nickedInfo"
|
||||
placeholder="请输入留痕说明"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.nickedInfo" placeholder="请输入留痕说明" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核人" prop="checkUser">
|
||||
<el-input
|
||||
v-model="queryParams.checkUser"
|
||||
placeholder="请输入审核人"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.checkUser" placeholder="请输入审核人" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="审核人手机号" prop="checkUserPhone">
|
||||
<el-input
|
||||
v-model="queryParams.checkUserPhone"
|
||||
placeholder="请输入审核人手机号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.checkUserPhone" placeholder="请输入审核人手机号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除状态" prop="isDel">
|
||||
<el-input
|
||||
v-model="queryParams.isDel"
|
||||
placeholder="请输入删除状态"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.isDel" placeholder="请输入删除状态" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建人" prop="createUser">
|
||||
<el-input
|
||||
v-model="queryParams.createUser"
|
||||
placeholder="请输入创建人"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.createUser" placeholder="请输入创建人" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.createTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
<el-date-picker clearable v-model="queryParams.createTime" type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择创建时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="修改人" prop="updateUser">
|
||||
<el-input
|
||||
v-model="queryParams.updateUser"
|
||||
placeholder="请输入修改人"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.updateUser" placeholder="请输入修改人" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修改时间" prop="updateTime">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.updateTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
<el-date-picker clearable v-model="queryParams.updateTime" type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择修改时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="复检人" prop="recheckSend">
|
||||
<el-input
|
||||
v-model="queryParams.recheckSend"
|
||||
placeholder="请输入复检人"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.recheckSend" placeholder="请输入复检人" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="复检人手机号" prop="recheckSendUser">
|
||||
<el-input
|
||||
v-model="queryParams.recheckSendUser"
|
||||
placeholder="请输入复检人手机号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
<el-input v-model="queryParams.recheckSendUser" placeholder="请输入复检人手机号" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
|
@ -225,42 +96,20 @@
|
|||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['trouble:problemmodify:add']"
|
||||
>新增</el-button>
|
||||
<el-button type="primary" plain icon="Plus" @click="handleAdd"
|
||||
v-hasPermi="['trouble:problemmodify:add']">新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['trouble:problemmodify:edit']"
|
||||
>修改</el-button>
|
||||
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
|
||||
v-hasPermi="['trouble:problemmodify:edit']">修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['trouble:problemmodify:remove']"
|
||||
>删除</el-button>
|
||||
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
|
||||
v-hasPermi="['trouble:problemmodify:remove']">删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['trouble:problemmodify:export']"
|
||||
>导出</el-button>
|
||||
<el-button type="warning" plain icon="Download" @click="handleExport"
|
||||
v-hasPermi="['trouble:problemmodify:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
@ -315,19 +164,16 @@
|
|||
<el-table-column label="问题类型" align="center" prop="problemType" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['trouble:problemmodify:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['trouble:problemmodify:remove']">删除</el-button>
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['trouble:problemmodify:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['trouble:problemmodify:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
|
||||
<!-- 添加或修改安全隐患整改对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
|
@ -375,10 +221,7 @@
|
|||
<el-input v-model="form.nickedArea" placeholder="请输入整改定位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="整改截至时间" prop="nickedTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.nickedTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
<el-date-picker clearable v-model="form.nickedTime" type="date" value-format="YYYY-MM-DD"
|
||||
placeholder="请选择整改截至时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
@ -427,7 +270,7 @@
|
|||
</template>
|
||||
|
||||
<script setup name="Problemmodify">
|
||||
import { listProblemmodify, getProblemmodify, delProblemmodify, addProblemmodify, updateProblemmodify } from "@/api/trouble/problemmodify";
|
||||
import { listProblemmodify, getProblemmodify, delProblemmodify, addProblemmodify, updateProblemmodify } from "@/api/manage/problemmodify";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
|
@ -607,12 +450,12 @@ function submitForm() {
|
|||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除安全隐患整改编号为"' + _ids + '"的数据项?').then(function() {
|
||||
proxy.$modal.confirm('是否确认删除安全隐患整改编号为"' + _ids + '"的数据项?').then(function () {
|
||||
return delProblemmodify(_ids);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
}).catch(() => { });
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
|
|
|
@ -20,14 +20,14 @@
|
|||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain size="mini" @click="handleAdd"
|
||||
<el-button type="primary" plain size="small" @click="handleAdd"
|
||||
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']">
|
||||
<el-icon>
|
||||
<Plus />
|
||||
</el-icon>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="warning" plain size="mini" @click="dataSynchronization" :disabled="single"
|
||||
<el-button type="warning" plain size="small" @click="dataSynchronization" :disabled="single"
|
||||
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']">
|
||||
<el-icon>
|
||||
<CopyDocument />
|
||||
|
@ -36,7 +36,7 @@
|
|||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-tooltip content="批量提交选择的数据!" placement="bottom">
|
||||
<el-button type="success" plain size="mini" @click="batchSubmitForm" :disabled="multiple"
|
||||
<el-button type="success" plain size="small" @click="batchSubmitForm" :disabled="multiple"
|
||||
v-hasPermi="['trouble:smzSspProblemmodifyDraft:add']">
|
||||
<el-icon>
|
||||
<Check />
|
||||
|
@ -59,22 +59,26 @@
|
|||
|
||||
<el-table-column align="center" width="180" class-name="td-up-img" label="问题图片">
|
||||
<template #default="scope">
|
||||
<div :class="scope.row.errSmarkUrl?'is-err':''">
|
||||
<image-upload v-model="scope.row.smarkUrl" previewAll :limit="5" :isShowTip="false" @change="scope.row.errSmarkUrl=scope.row.smarkUrl?false:true"/>
|
||||
<div :class="scope.row.errSmarkUrl ? 'is-err' : ''">
|
||||
<image-upload v-model="scope.row.smarkUrl" previewAll :limit="5" :isShowTip="false"
|
||||
@change="scope.row.errSmarkUrl = scope.row.smarkUrl ? false : true" />
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" width="180" class-name="td-proble-type" label="隐患类型">
|
||||
<template #default="scope">
|
||||
<div :class="scope.row.errProblemType?'is-err':''">
|
||||
<el-select v-model="scope.row.problemType" placeholder="请选择检查类型" clearable @change="scope.row.errProblemType=scope.row.problemType?false:true">
|
||||
<div :class="scope.row.errProblemType ? 'is-err' : ''">
|
||||
<el-select v-model="scope.row.problemType" placeholder="请选择检查类型" clearable
|
||||
@change="scope.row.errProblemType = scope.row.problemType ? false : true">
|
||||
<el-option v-for="dict in ssp_proble_type" :key="dict.value" :label="dict.label" :value="dict.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div :class="scope.row.errDangerType?'is-err':''">
|
||||
<el-select v-model="scope.row.dangerType" placeholder="请选择隐患类型" clearable style="margin-top:80px;" @change="scope.row.errDangerType=scope.row.dangerType?false:true">
|
||||
<el-option v-for="dict in ssp_proble_sub_type" :key="dict.value" :label="dict.label" :value="dict.value">
|
||||
<div :class="scope.row.errDangerType ? 'is-err' : ''">
|
||||
<el-select v-model="scope.row.dangerType" placeholder="请选择隐患类型" clearable style="margin-top:80px;"
|
||||
@change="scope.row.errDangerType = scope.row.dangerType ? false : true">
|
||||
<el-option v-for="dict in ssp_proble_sub_type" :key="dict.value" :label="dict.label"
|
||||
:value="dict.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
|
@ -82,46 +86,54 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="施工部位" align="center" prop="workParts" min-width="240" class-name="td-textarea">
|
||||
<template #default="scope">
|
||||
<div :class="scope.row.errWorkParts?'is-err':''">
|
||||
<el-input v-model="scope.row.workParts" placeholder="请输入施工部位" type="textarea" :rows="3" @change="scope.row.errWorkParts=scope.row.workParts?false:true" />
|
||||
<div :class="scope.row.errWorkParts ? 'is-err' : ''">
|
||||
<el-input v-model="scope.row.workParts" placeholder="请输入施工部位" type="textarea" :rows="3"
|
||||
@change="scope.row.errWorkParts = scope.row.workParts ? false : true" />
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="整改要求" align="center" prop="changeInfo" min-width="240" class-name="td-textarea">
|
||||
<template #default="scope">
|
||||
<div :class="scope.row.errChangeInfo?'is-err':''">
|
||||
<el-input v-model="scope.row.changeInfo" placeholder="请输入整改要求" type="textarea" :rows="3" @change="scope.row.errChangeInfo=scope.row.changeInfo?false:true" />
|
||||
<div :class="scope.row.errChangeInfo ? 'is-err' : ''">
|
||||
<el-input v-model="scope.row.changeInfo" placeholder="请输入整改要求" type="textarea" :rows="3"
|
||||
@change="scope.row.errChangeInfo = scope.row.changeInfo ? false : true" />
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="问题人员" align="center" width="300" class-name="td-select">
|
||||
<template #default="scope">
|
||||
<el-form-item label="整改人">
|
||||
<div :class="scope.row.errLordSent?'is-err':''" style="width: 100%;">
|
||||
<el-select v-model="scope.row.lordSent" placeholder="请选择人员" clearable @change="scope.row.errLordSent=scope.row.lordSent?false:true"
|
||||
<div :class="scope.row.errLordSent ? 'is-err' : ''" style="width: 100%;">
|
||||
<el-select v-model="scope.row.lordSent" placeholder="请选择人员" clearable
|
||||
@change="scope.row.errLordSent = scope.row.lordSent ? false : true"
|
||||
popper-class="select-popper-group-pd">
|
||||
<el-option-group v-for="group in data.modUserList" :key="group.label" :label="group.label">
|
||||
<el-option v-for="item in group.options" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in group.options" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-option-group>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="抄送人">
|
||||
<div :class="scope.row.errCopySend?'is-err':''" style="width: 100%;">
|
||||
<el-select v-model="scope.row.copySend" placeholder="请选择人员" clearable multiple collapse-tags @change="scope.row.errCopySend=scope.row.copySend?false:true"
|
||||
<div :class="scope.row.errCopySend ? 'is-err' : ''" style="width: 100%;">
|
||||
<el-select v-model="scope.row.copySend" placeholder="请选择人员" clearable multiple collapse-tags
|
||||
@change="scope.row.errCopySend = scope.row.copySend ? false : true"
|
||||
popper-class="select-popper-group-pd" collapse-tags-tooltip>
|
||||
<el-option-group v-for="group in data.ccUserList" :key="group.label" :label="group.label">
|
||||
<el-option v-for="item in group.options" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in group.options" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-option-group>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="复检人">
|
||||
<div :class="scope.row.errRecheckSend?'is-err':''" style="width: 100%;">
|
||||
<el-select v-model="scope.row.recheckSend" placeholder="请选择人员" clearable @change="scope.row.errRecheckSend=scope.row.recheckSend?false:true"
|
||||
<div :class="scope.row.errRecheckSend ? 'is-err' : ''" style="width: 100%;">
|
||||
<el-select v-model="scope.row.recheckSend" placeholder="请选择人员" clearable
|
||||
@change="scope.row.errRecheckSend = scope.row.recheckSend ? false : true"
|
||||
popper-class="select-popper-group-pd" collapse-tags-tooltip>
|
||||
<el-option-group v-for="group in data.recheckUserList" :key="group.label" :label="group.label">
|
||||
<el-option v-for="item in group.options" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<el-option v-for="item in group.options" :key="item.value" :label="item.label"
|
||||
:value="item.value" />
|
||||
</el-option-group>
|
||||
</el-select>
|
||||
</div>
|
||||
|
@ -132,9 +144,9 @@
|
|||
<el-table-column label="整改截至时间" align="center" prop="nickedTime" width="180" class-name="td-select">
|
||||
<template #default="scope">
|
||||
<el-form-item label="">
|
||||
<div :class="scope.row.errNickedTime?'is-err':''" style="width: 100%;">
|
||||
<el-date-picker v-model="scope.row.nickedTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd" @change="scope.row.errNickedTime=scope.row.nickedTime?false:true"
|
||||
style="width: 100%" />
|
||||
<div :class="scope.row.errNickedTime ? 'is-err' : ''" style="width: 100%;">
|
||||
<el-date-picker v-model="scope.row.nickedTime" type="date" placeholder="选择日期" value-format="YYYY-MM-DD"
|
||||
@change="scope.row.errNickedTime = scope.row.nickedTime ? false : true" style="width: 100%" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
</template>
|
||||
|
@ -160,6 +172,8 @@ import {
|
|||
addProblemmodifyDraft,
|
||||
updateProblemmodifyDraft,
|
||||
} from "@/api/trouble/problemmodifyDraft";
|
||||
import { batchAddProblemmodify } from '@/api/trouble/problemmodify'
|
||||
|
||||
import useUserStore from '@/store/modules/user'
|
||||
import { listProProjectInfoSubdeptsUsers } from "@/api/manage/proProjectInfoSubdeptsUsers";
|
||||
const userStore = useUserStore()
|
||||
|
@ -188,6 +202,7 @@ const data = reactive({
|
|||
|
||||
},
|
||||
selData: [],
|
||||
users: [],
|
||||
modUserList: [],//整改人
|
||||
ccUserList: [],//抄送人
|
||||
recheckUserList: [],//复检人
|
||||
|
@ -263,63 +278,94 @@ function dataSynchronization() {
|
|||
}
|
||||
function submitRow(row) {
|
||||
if (checkRow(row)) {
|
||||
|
||||
doBatchAdd([row]);
|
||||
}
|
||||
}
|
||||
function batchSubmitForm(){
|
||||
function batchSubmitForm() {
|
||||
let cnt = 0;
|
||||
data.selData.forEach(it => {
|
||||
if (checkRow(it)) {
|
||||
data.showList.splice(it,1);
|
||||
data.dataList.splice(it,1);
|
||||
if (!checkRow(it)) {
|
||||
cnt++;
|
||||
//data.showList.splice(it, 1);
|
||||
//data.dataList.splice(it, 1);
|
||||
}
|
||||
});
|
||||
if (cnt > 0) {
|
||||
return;
|
||||
}
|
||||
doBatchAdd(data.selData);
|
||||
}
|
||||
function doBatchAdd(datas) {
|
||||
datas.forEach(it => {
|
||||
it.projectId = userStore.currentPrjId;
|
||||
it.comId = userStore.currentComId;
|
||||
it.infoType = 0;
|
||||
let users = data.users.filter(u => u.userId == it.lordSent);
|
||||
it.lordSent = users.map(u => u.userName).join(",");
|
||||
it.lordSentUser = users.map(u => u.userPhone).join(",");
|
||||
users = data.users.filter(u => it.copySend.includes(u.userId));
|
||||
it.copySend = users.map(u => u.userName).join(",");
|
||||
it.copySendUser = users.map(u => u.userPhone).join(",");
|
||||
users = data.users.filter(u => u.userId == it.recheckSend);
|
||||
it.recheckSend = users.map(u => u.userName).join(",");
|
||||
it.recheckSendUser = users.map(u => u.userPhone).join(",");
|
||||
});
|
||||
batchAddProblemmodify(datas).then(res => {
|
||||
if (res.code == 200) {
|
||||
proxy.$modal.msgSuccess("提交成功!");
|
||||
datas.forEach(it => {
|
||||
data.showList.splice(it, 1);
|
||||
data.dataList.splice(it, 1);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
function checkRow(row) {
|
||||
row.errSmarkUrl=false;
|
||||
row.errProblemType=false;
|
||||
row.errDangerType=false;
|
||||
row.errWorkParts=false;
|
||||
row.errChangeInfo=false;
|
||||
row.errLordSent=false;
|
||||
row.errCopySend=false;
|
||||
row.errRecheckSend=false;
|
||||
row.errNickedTime=false;
|
||||
row.errSmarkUrl = false;
|
||||
row.errProblemType = false;
|
||||
row.errDangerType = false;
|
||||
row.errWorkParts = false;
|
||||
row.errChangeInfo = false;
|
||||
row.errLordSent = false;
|
||||
row.errCopySend = false;
|
||||
row.errRecheckSend = false;
|
||||
row.errNickedTime = false;
|
||||
let ret = true;
|
||||
if (!row.smarkUrl) {
|
||||
row.errSmarkUrl=true;
|
||||
ret= false;
|
||||
row.errSmarkUrl = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.problemType) {
|
||||
row.errProblemType=true;
|
||||
ret= false;
|
||||
row.errProblemType = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.dangerType ) {
|
||||
row.errDangerType=true;
|
||||
ret= false;
|
||||
if (!row.dangerType) {
|
||||
row.errDangerType = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.workParts ) {
|
||||
row.errWorkParts=true;
|
||||
ret= false;
|
||||
if (!row.workParts) {
|
||||
row.errWorkParts = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.changeInfo ) {
|
||||
row.errChangeInfo=true;
|
||||
ret= false;
|
||||
if (!row.changeInfo) {
|
||||
row.errChangeInfo = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.lordSent ) {
|
||||
row.errLordSent=true;
|
||||
ret= false;
|
||||
if (!row.lordSent) {
|
||||
row.errLordSent = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.copySend ) {
|
||||
row.errCopySend=true;
|
||||
ret= false;
|
||||
if (!row.copySend) {
|
||||
row.errCopySend = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.recheckSend ) {
|
||||
row.errRecheckSend=true;
|
||||
ret= false;
|
||||
if (!row.recheckSend) {
|
||||
row.errRecheckSend = true;
|
||||
ret = false;
|
||||
}
|
||||
if (!row.nickedTime ) {
|
||||
row.errNickedTime=true;
|
||||
ret= false;
|
||||
if (!row.nickedTime) {
|
||||
row.errNickedTime = true;
|
||||
ret = false;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -418,6 +464,7 @@ function getUserTree() {
|
|||
data.showList.push(row);
|
||||
listProProjectInfoSubdeptsUsers({ projectId: userStore.currentPrjId, pageNum: 1, pageSize: 1000 }).then(d => {
|
||||
let users = d.rows || [];
|
||||
data.users = users;
|
||||
data.modUserList = makeSelectData(users.filter(it => it.subDeptType == 4 || it.subDeptType == 5).filter(it => it.userPost == 2 || it.userPost == 3), true);
|
||||
data.ccUserList = makeSelectData(users.filter(it => it.userPost != 4 && it.userPost != 5));
|
||||
data.recheckUserList = makeSelectData(users.filter(it => it.subDeptType == 1));
|
||||
|
@ -459,27 +506,34 @@ getUserTree();
|
|||
.el-select {
|
||||
width: 100%;
|
||||
}
|
||||
.is-err{
|
||||
&::after{
|
||||
bottom:-15px;
|
||||
|
||||
.is-err {
|
||||
&::after {
|
||||
bottom: -15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.is-err{
|
||||
|
||||
.is-err {
|
||||
position: relative;
|
||||
padding-bottom:12px;
|
||||
.el-upload--picture-card{
|
||||
padding-bottom: 12px;
|
||||
|
||||
.el-upload--picture-card {
|
||||
border-color: red;
|
||||
}
|
||||
&::after{
|
||||
|
||||
&::after {
|
||||
content: "不为空";
|
||||
color: red;
|
||||
left: 0px;
|
||||
font-size:12px;
|
||||
position:absolute;
|
||||
font-size: 12px;
|
||||
position: absolute;
|
||||
bottom: -7px;
|
||||
}
|
||||
.el-select__wrapper,.el-textarea__inner,.el-input__wrapper{
|
||||
|
||||
.el-select__wrapper,
|
||||
.el-textarea__inner,
|
||||
.el-input__wrapper {
|
||||
box-shadow: inset 0 0 0 1px red;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue