From e1034e8661e811215809a2a375767d50ccd32541 Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期二, 14 十月 2025 08:51:38 +0800
Subject: [PATCH] 修改新增
---
src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue | 202 +++++++++++++++++++++-----------------------------
1 files changed, 85 insertions(+), 117 deletions(-)
diff --git a/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
index eff87b8..89b0a24 100644
--- a/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/riskManage/control/components/editDialog.vue
@@ -3,12 +3,12 @@
<el-dialog
v-model="dialogVisible"
:title="title"
- width="50%"
+ width="1220px"
:before-close="handleClose"
:close-on-press-escape="false"
:close-on-click-modal="false"
>
- <el-form :model="state.form" size="default" ref="busRef" :rules="state.rules" label-position="right" label-width="130">
+ <el-form :model="state.form" size="default" ref="busRef" :rules="state.rules" label-position="top" label-width="130">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="企业名称:" prop="companyId" v-if="state.isAdmin">
@@ -29,6 +29,7 @@
<el-select
v-model="state.form.year"
placeholder="请选择年份"
+ :disabled="title === '查看'"
style="width: 100%"
filterable
allow-create
@@ -46,10 +47,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="部门名称:" prop="departId" >
+ <el-form-item label="部门名称:" prop="deptId" >
<el-select
:disabled="title === '查看'"
- v-model="state.form.departId"
+ v-model="state.form.deptId"
placeholder="请选择部门"
style="width: 240px"
>
@@ -65,100 +66,100 @@
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="文件编号:" prop="departId" >
- <el-input :disabled="title === '查看'" v-model="state.form.content" placeholder="请输入"></el-input>
+ <el-form-item label="文件编号:" prop="document" >
+ <el-input :disabled="title === '查看'" v-model="state.form.document" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="风险管理控制:" prop="outEnvironment" >
- <div style="display: flex;width: 100%;">
- <el-table :data="state.form.outEnvironment" :border="true" >
+ <el-form-item label="风险管理控制表:" prop="riskContents" >
+ <div style="display: flex;width: 100%;margin-top: 10px">
+ <el-table :data="state.form.riskContents" :border="true" >
<el-table-column type="index" label="序号" align="center"></el-table-column>
- <el-table-column label="质量管理活动/流程/项目管理过程" prop="content" align="center" >
+ <el-table-column label="质量管理活动/流程/项目管理过程" prop="process" align="center" width="130">
<template #default="{row,$index}">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + ']' + '.content'" :rules="state.rules.out.content">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.remark" placeholder="请输入"></el-input>
+ <el-form-item :prop="'riskContents.' + '[' + $index + ']' + '.process'" :rules="state.rules.process">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.process" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="风险识别-潜在的风险事件" prop="content" align="center" >
+ <el-table-column label="风险识别-潜在的风险事件" prop="content" align="center" width="150">
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.riskEvent'" :rules="state.rules.riskEvent">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" :rows="3" type="textarea" v-model="i.riskEvent" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="风险识别-风险发生的后果" prop="remark" align="center" >
+ <el-table-column label="风险识别-风险发生的后果" prop="riskConsequence" align="center" width="130">
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.riskConsequence'" :rules="state.rules.riskConsequence">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.riskConsequence" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="风险评估-严重度" prop="remark" align="center" >
+ <el-table-column label="风险评估-严重度" prop="severity" align="center" >
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.severity'" :rules="state.rules.severity">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.severity" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="风险评估-发生频率" prop="remark" align="center" >
+ <el-table-column label="风险评估-发生频率" prop="frequency" align="center" >
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.frequency'" :rules="state.rules.frequency">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.frequency" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="风险评估-RPN" prop="remark" align="center" >
+ <el-table-column label="风险评估-RPN" prop="rpn" align="center" >
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.rpn'" :rules="state.rules.rpn">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.rpn" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="风险评估-风险等级" prop="remark" align="center" >
+ <el-table-column label="风险评估-风险等级" prop="riskLevel" align="center" >
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.riskLevel'" :rules="state.rules.riskLevel">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.riskLevel" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="风险对应措施-预防措施" prop="remark" align="center" >
+ <el-table-column label="风险对应措施-预防措施" prop="measures" align="center" width="130">
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.measures'" :rules="state.rules.measures">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.measures" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="风险对应措施-责任人" prop="remark" align="center" >
+ <el-table-column label="风险对应措施-责任人" prop="chargeUser" align="center" width="120">
<template #default="{row,$index}">
- <div v-for="(i,index) in row.mess" :key="index">
- <el-form-item :prop="'outEnvironment.' + '[' + $index + '].' +'mess.' + '[' + index + ']' + '.num'" :rules="state.rules.num">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="i.num" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contentMesses" :key="index">
+ <el-form-item :prop="'riskContents.' + '[' + $index + '].' +'contentMesses.' + '[' + index + ']' + '.chargeUser'" :rules="state.rules.chargeUser">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="3" v-model="i.chargeUser" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="120" v-if="title !== '查看'" >
<template #default="scope">
- <el-button link type="primary" @click="addObject(scope.row)" >添加</el-button>
- <el-button link type="danger" @click="delObject(scope.row)" >删除</el-button>
+ <el-button link type="primary" @click="addObject(scope.row,scope.$index)" >添加</el-button>
+ <el-button link type="danger" @click="delObject(scope.row,scope.$index)" >删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -174,8 +175,8 @@
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="编制:" prop="compilationId" >
- <el-select clearable v-model="state.form.compilationId" :disabled="title =='查看'" filterable style="width: 240px">
+ <el-form-item label="编制:" prop="fictionId" >
+ <el-select clearable v-model="state.form.fictionId" :disabled="title =='查看'" filterable style="width: 240px">
<el-option
v-for="item in state.peopleList"
:key="item.id"
@@ -232,6 +233,7 @@
import {getUser} from "@/api/onlineEducation/user";
import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object";
import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
+import {addRiskControl, editRiskControl} from "@/api/riskManage/risk";
const dialogVisible = ref(false);
const title = ref("");
@@ -244,32 +246,33 @@
form: {
id: '',
companyId: null,
- departId: null,
+ deptId: null,
year: '',
- compilationId: null,
+ fictionId: null,
checkId: null,
ratifyId: null,
- dateTime: null,
- outEnvironment:[],
- inEnvironment: []
+ document: null,
+ riskContents: []
},
rules: {
companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
- departId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
+ deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
year: [{ required: true, message: '请选择年份', trigger: 'blur' }],
- compilationId: [{ required: true, message: '请选择编制人', trigger: 'blur' }],
+ fictionId: [{ required: true, message: '请选择编制人', trigger: 'blur' }],
ratifyId: [{ required: true, message: '请选择批准人', trigger: 'blur' }],
checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
- dateTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
- out: {
- reason: [{required: true, message: "", trigger: "blur"}],
- content: [{required: true, message: "", trigger: "blur"}],
- },
- in: {
- reason: [{required: true, message: "", trigger: "blur"}],
- content: [{required: true, message: "", trigger: "blur"}],
- },
+ document: [{ required: true, message: '请输入文件编号', trigger: 'blur' }],
+ riskContents: [{ required: true, message: '请输入风险管理控制表', trigger: 'blur' }],
num:[{required: true, message: "", trigger: "blur"}],
+ riskEvent:[{required: true, message: "", trigger: "blur"}],
+ riskConsequence:[{required: true, message: "", trigger: "blur"}],
+ severity:[{required: true, message: "", trigger: "blur"}],
+ frequency:[{required: true, message: "", trigger: "blur"}],
+ rpn:[{required: true, message: "", trigger: "blur"}],
+ riskLevel:[{required: true, message: "", trigger: "blur"}],
+ measures:[{required: true, message: "", trigger: "blur"}],
+ chargeUser:[{required: true, message: "", trigger: "blur"}],
+ process:[{required: true, message: "", trigger: "blur"}],
},
peopleList: [],
isAdmin: false,
@@ -297,42 +300,6 @@
label: '2021'
},
],
- outReasonList:[
- {
- id: 1,
- name: '政治经济因素'
- },
- {
- id: 2,
- name: '法律法规因素'
- },
- {
- id: 3,
- name: '宏观政策因素'
- },
- {
- id: 4,
- name: '文化氛围'
- },
- ],
- inReasonList:[
- {
- id: 1,
- name: '公司价值观'
- },
- {
- id: 2,
- name: '企业文化'
- },
- {
- id: 3,
- name: '过程能力'
- },
- {
- id: 4,
- name: '制度流程因素'
- },
- ],
})
onMounted(() => {
@@ -349,6 +316,7 @@
state.form.companyName = value.companyName
state.companyList = companyList
}
+ state.form.year = new Date().getFullYear().toString()
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ;
if(type === 'edit' || type === 'review') {
state.form = JSON.parse(JSON.stringify(value));
@@ -382,7 +350,7 @@
if(title.value === '新增'){
console.log('sta',state.form)
const {id, ...data} = JSON.parse(JSON.stringify(state.form))
- const res = await addTable(data)
+ const res = await addRiskControl(data)
if(res.code === 200){
ElMessage({
type: 'success',
@@ -397,7 +365,7 @@
dialogVisible.value = false;
}else if(title.value === '编辑'){
const {...data} = JSON.parse(JSON.stringify(state.form))
- const res = await editTable(data)
+ const res = await editRiskControl(data)
if(res.code === 200){
ElMessage({
type: 'success',
@@ -435,7 +403,7 @@
ratifyId:'',
ratifyName: '',
ratifyTime: '',
- outEnvironment:[],
+ riskContents:[],
}
state.peopleList = []
state.companyList = []
@@ -462,10 +430,10 @@
const selectValueCom = (val) => {
- state.form.compilationId = null
+ state.form.fictionId = null
state.form.checkId = null
state.form.ratifyId = null
- state.form.departId = null
+ state.form.deptId = null
state.companyList.forEach(item => {
if(item.name === val){
state.form.companyId = item.id
@@ -484,25 +452,25 @@
}
}
const addTableData = () => {
- state.form.outEnvironment.push({mess: [{id: null}]})
+ state.form.riskContents.push({contentMesses: [{riskEvent: '',riskConsequence: '',severity: '',frequency: '',rpn: '',riskLevel: '',measures: '',chargeUser: ''}],process: ''})
}
-const addObject = (val) => {
- state.form.outEnvironment.forEach(item => {
- if(item.id == val.id){
- item.mess.push({id: item.id})
+const addObject = (val,itemIndex) => {
+ state.form.riskContents.forEach((item,index) => {
+ if(itemIndex == index){
+ item.contentMesses.push({id: item.id})
}
})
}
-const delObject = (val) => {
- state.form.outEnvironment.forEach(item => {
- if(item.id == val.id){
- if(item.mess.length == 1){
- ElMessage.warning('至少保留一组数据')
- return
+const delObject = (val,itemIndex) => {
+ state.form.riskContents.forEach((item,index) => {
+ if(index == itemIndex){
+ if(item.contentMesses.length == 1){
+ state.form.riskContents.splice(index,1)
+ }else {
+ item.contentMesses.pop()
}
- item.mess.pop()
}
})
}
--
Gitblit v1.9.2