|
@@ -134,17 +134,17 @@
|
|
134
|
|
134
|
|
|
135
|
<!-- 新增/修改对话框 -->
|
135
|
<!-- 新增/修改对话框 -->
|
|
136
|
<el-dialog :title="dialogTitle" v-model="dialogVisible" width="680px" append-to-body>
|
136
|
<el-dialog :title="dialogTitle" v-model="dialogVisible" width="680px" append-to-body>
|
|
137
|
- <el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
|
|
|
|
|
|
137
|
+ <el-form ref="formRef" :model="form" label-width="100px">
|
|
138
|
<el-row :gutter="16">
|
138
|
<el-row :gutter="16">
|
|
139
|
<el-col :span="12">
|
139
|
<el-col :span="12">
|
|
140
|
- <el-form-item label="配分层级" prop="org">
|
|
|
|
|
|
140
|
+ <el-form-item label="配分层级" prop="org" :rules="rules.org">
|
|
141
|
<el-select v-model="form.org" placeholder="请选择层级" style="width:100%" @change="handleFormLevelChange">
|
141
|
<el-select v-model="form.org" placeholder="请选择层级" style="width:100%" @change="handleFormLevelChange">
|
|
142
|
<el-option v-for="dict in score_level" :key="dict.value" :label="dict.label" :value="dict.value" />
|
142
|
<el-option v-for="dict in score_level" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
143
|
</el-select>
|
143
|
</el-select>
|
|
144
|
</el-form-item>
|
144
|
</el-form-item>
|
|
145
|
</el-col>
|
145
|
</el-col>
|
|
146
|
<el-col :span="12">
|
146
|
<el-col :span="12">
|
|
147
|
- <el-form-item label="维度" prop="dimensionId">
|
|
|
|
|
|
147
|
+ <el-form-item label="维度" prop="dimensionId" :rules="rules.dimensionId">
|
|
148
|
<el-select v-model="form.dimensionId" placeholder="请选择维度" style="width:100%" @change="onDimensionChange">
|
148
|
<el-select v-model="form.dimensionId" placeholder="请选择维度" style="width:100%" @change="onDimensionChange">
|
|
149
|
<el-option v-for="d in dimensionOptions" :key="d.id" :label="d.name" :value="d.id" />
|
149
|
<el-option v-for="d in dimensionOptions" :key="d.id" :label="d.name" :value="d.id" />
|
|
150
|
</el-select>
|
150
|
</el-select>
|
|
@@ -175,7 +175,7 @@
|
|
175
|
</el-form-item>
|
175
|
</el-form-item>
|
|
176
|
</el-col>
|
176
|
</el-col>
|
|
177
|
<el-col :span="12">
|
177
|
<el-col :span="12">
|
|
178
|
- <el-form-item label="事件时间" prop="eventTime">
|
|
|
|
|
|
178
|
+ <el-form-item label="事件时间" prop="eventTime" :rules="rules.eventTime">
|
|
179
|
<el-date-picker v-model="form.eventTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
179
|
<el-date-picker v-model="form.eventTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
|
180
|
placeholder="请选择事件时间" style="width:100%" />
|
180
|
placeholder="请选择事件时间" style="width:100%" />
|
|
181
|
</el-form-item>
|
181
|
</el-form-item>
|
|
@@ -186,7 +186,7 @@
|
|
186
|
</el-form-item>
|
186
|
</el-form-item>
|
|
187
|
</el-col>
|
187
|
</el-col>
|
|
188
|
<el-col :span="12">
|
188
|
<el-col :span="12">
|
|
189
|
- <el-form-item label="部门名称">
|
|
|
|
|
|
189
|
+ <el-form-item label="部门名称" prop="deptId" :rules="rules.deptId">
|
|
190
|
<el-select v-model="form.deptId" placeholder="请选择部门" style="width:100%" clearable filterable
|
190
|
<el-select v-model="form.deptId" placeholder="请选择部门" style="width:100%" clearable filterable
|
|
191
|
@change="handleDeptChange">
|
191
|
@change="handleDeptChange">
|
|
192
|
<el-option v-for="d in deptOptions" :key="d.deptId" :label="d.deptName" :value="d.deptId" />
|
192
|
<el-option v-for="d in deptOptions" :key="d.deptId" :label="d.deptName" :value="d.deptId" />
|
|
@@ -194,7 +194,7 @@
|
|
194
|
</el-form-item>
|
194
|
</el-form-item>
|
|
195
|
</el-col>
|
195
|
</el-col>
|
|
196
|
<el-col :span="12">
|
196
|
<el-col :span="12">
|
|
197
|
- <el-form-item label="队室/班组">
|
|
|
|
|
|
197
|
+ <el-form-item label="队室/班组" prop="teamId" :rules="rules.teamId">
|
|
198
|
<el-select v-model="form.teamId" placeholder="请选择队室/班组" style="width:100%" clearable filterable
|
198
|
<el-select v-model="form.teamId" placeholder="请选择队室/班组" style="width:100%" clearable filterable
|
|
199
|
:disabled="form.org < 2" @change="handleTeamChange">
|
199
|
:disabled="form.org < 2" @change="handleTeamChange">
|
|
200
|
<el-option v-for="t in teamOptions" :key="t.id" :label="t.label" :value="t.id" />
|
200
|
<el-option v-for="t in teamOptions" :key="t.id" :label="t.label" :value="t.id" />
|
|
@@ -202,7 +202,7 @@
|
|
202
|
</el-form-item>
|
202
|
</el-form-item>
|
|
203
|
</el-col>
|
203
|
</el-col>
|
|
204
|
<el-col :span="12">
|
204
|
<el-col :span="12">
|
|
205
|
- <el-form-item label="通道/小组">
|
|
|
|
|
|
205
|
+ <el-form-item label="通道/小组" prop="groupId" :rules="rules.groupId">
|
|
206
|
<el-select v-model="form.groupId" placeholder="请选择通道/小组" style="width:100%" clearable filterable
|
206
|
<el-select v-model="form.groupId" placeholder="请选择通道/小组" style="width:100%" clearable filterable
|
|
207
|
:disabled="form.org < 3" @change="handleGroupChange">
|
207
|
:disabled="form.org < 3" @change="handleGroupChange">
|
|
208
|
<el-option v-for="g in groupOptions" :key="g.id" :label="g.label" :value="g.id" />
|
208
|
<el-option v-for="g in groupOptions" :key="g.id" :label="g.label" :value="g.id" />
|
|
@@ -210,7 +210,7 @@
|
|
210
|
</el-form-item>
|
210
|
</el-form-item>
|
|
211
|
</el-col>
|
211
|
</el-col>
|
|
212
|
<el-col :span="12">
|
212
|
<el-col :span="12">
|
|
213
|
- <el-form-item label="责任人">
|
|
|
|
|
|
213
|
+ <el-form-item label="责任人" prop="personId" :rules="rules.personId">
|
|
214
|
<el-select v-model="form.personId" placeholder="请选择责任人" style="width:100%" clearable filterable
|
214
|
<el-select v-model="form.personId" placeholder="请选择责任人" style="width:100%" clearable filterable
|
|
215
|
:disabled="form.org < 4">
|
215
|
:disabled="form.org < 4">
|
|
216
|
<el-option v-for="p in personOptions" :key="p.userId" :label="p.nickName" :value="p.userId" />
|
216
|
<el-option v-for="p in personOptions" :key="p.userId" :label="p.nickName" :value="p.userId" />
|
|
@@ -285,12 +285,19 @@ const queryPersonOptions = ref([])
|
|
285
|
|
285
|
|
|
286
|
const queryParams = reactive({ pageNum: 1, pageSize: 10, personId: null, personName: '', deptId: null, deptName: '', teamId: null, teamName: '', groupId: null, groupName: '', dimensionId: null, sourceType: '', org: '' })
|
286
|
const queryParams = reactive({ pageNum: 1, pageSize: 10, personId: null, personName: '', deptId: null, deptName: '', teamId: null, teamName: '', groupId: null, groupName: '', dimensionId: null, sourceType: '', org: '' })
|
|
287
|
const form = reactive({ id: null, dimensionId: null, dimensionName: '', indicatorId: null, level2Id: null, level2Name: '', level3Id: null, level3Name: '', level4Id: null, level4Name: '', eventTime: '', location: '', personId: null, deptName: '', deptId: null, teamId: null, groupId: null, scoreValue: 0, cascadeScore: 0, eventDesc: '', remark: '', org: '' })
|
287
|
const form = reactive({ id: null, dimensionId: null, dimensionName: '', indicatorId: null, level2Id: null, level2Name: '', level3Id: null, level3Name: '', level4Id: null, level4Name: '', eventTime: '', location: '', personId: null, deptName: '', deptId: null, teamId: null, groupId: null, scoreValue: 0, cascadeScore: 0, eventDesc: '', remark: '', org: '' })
|
|
288
|
-const rules = {
|
|
|
|
289
|
- dimensionId: [{ required: true, message: '请选择维度', trigger: 'change' }],
|
|
|
|
290
|
- personName: [{ required: true, message: '请输入责任人', trigger: 'blur' }],
|
|
|
|
291
|
- eventTime: [{ required: true, message: '请选择事件时间', trigger: 'change' }],
|
|
|
|
292
|
- scoreValue: [{ required: true, message: '请输入分值', trigger: 'blur' }]
|
|
|
|
293
|
-}
|
|
|
|
|
|
288
|
+const rules = computed(() => {
|
|
|
|
289
|
+ return {
|
|
|
|
290
|
+ org: [{ required: true, message: '请选择配分层级', trigger: 'submit' }],
|
|
|
|
291
|
+ dimensionId: [{ required: true, message: '请选择维度', trigger: 'submit' }],
|
|
|
|
292
|
+ personName: [{ required: true, message: '请输入责任人', trigger: 'submit' }],
|
|
|
|
293
|
+ eventTime: [{ required: true, message: '请选择事件时间', trigger: 'submit' }],
|
|
|
|
294
|
+ scoreValue: [{ required: true, message: '请输入分值', trigger: 'submit' }],
|
|
|
|
295
|
+ deptId: ['1', '2', '3', '4'].includes(form.org) ? [{ required: true, message: '请选择部门', trigger: 'submit' }] : [],
|
|
|
|
296
|
+ teamId: ['2', '3', '4'].includes(form.org) ? [{ required: true, message: '请选择队室/班组', trigger: 'submit' }] : [],
|
|
|
|
297
|
+ groupId: ['3', '4'].includes(form.org) ? [{ required: true, message: '请选择通道/小组', trigger: 'submit' }] : [],
|
|
|
|
298
|
+ personId: ['4'].includes(form.org) ? [{ required: true, message: '请选择责任人', trigger: 'submit' }] : [],
|
|
|
|
299
|
+ }
|
|
|
|
300
|
+})
|
|
294
|
|
301
|
|
|
295
|
|
302
|
|
|
296
|
|
303
|
|
|
@@ -450,7 +457,7 @@ async function onDimensionChange(dimId, preserveSelection) {
|
|
450
|
if (dim) form.dimensionName = dim.name
|
457
|
if (dim) form.dimensionName = dim.name
|
|
451
|
const r = await treeIndicator({ dimensionId: dimId, org: form.org })
|
458
|
const r = await treeIndicator({ dimensionId: dimId, org: form.org })
|
|
452
|
indicatorTree.value = r.data || []
|
459
|
indicatorTree.value = r.data || []
|
|
453
|
- level2Options.value = indicatorTree.value.map(n => ({ name: n.name, id: n.id, scoreValue: n.scoreValue }))
|
|
|
|
|
|
460
|
+ level2Options.value = indicatorTree.value.filter(item => item.type !== '3').map(n => ({ name: n.name, id: n.id, scoreValue: n.scoreValue }))
|
|
454
|
if (!preserveSelection) { form.level2Id = null; form.level2Name = ''; form.level3Id = null; form.level3Name = ''; form.level4Id = null; form.level4Name = ''; form.scoreValue = 0 }
|
461
|
if (!preserveSelection) { form.level2Id = null; form.level2Name = ''; form.level3Id = null; form.level3Name = ''; form.level4Id = null; form.level4Name = ''; form.scoreValue = 0 }
|
|
455
|
level3Options.value = []; level4Options.value = []
|
462
|
level3Options.value = []; level4Options.value = []
|
|
456
|
if (preserveSelection && form.level2Id) onLevel2Change(form.level2Id, true)
|
463
|
if (preserveSelection && form.level2Id) onLevel2Change(form.level2Id, true)
|