|
|
@@ -188,7 +188,7 @@
|
|
188
|
188
|
<el-col :span="12">
|
|
189
|
189
|
<el-form-item label="部门名称" prop="deptId" :rules="rules.deptId">
|
|
190
|
190
|
<el-select v-model="form.deptId" placeholder="请选择部门" style="width:100%" clearable filterable
|
|
191
|
|
- @change="handleDeptChange">
|
|
|
191
|
+ :disabled="form.org !== '1'" @change="handleBrigadeChange">
|
|
192
|
192
|
<el-option v-for="d in deptOptions" :key="d.deptId" :label="d.deptName" :value="d.deptId" />
|
|
193
|
193
|
</el-select>
|
|
194
|
194
|
</el-form-item>
|
|
|
@@ -196,7 +196,7 @@
|
|
196
|
196
|
<el-col :span="12">
|
|
197
|
197
|
<el-form-item label="队室/班组" prop="teamId" :rules="rules.teamId">
|
|
198
|
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="handleDepartmentChange">
|
|
200
|
200
|
<el-option v-for="t in teamOptions" :key="t.id" :label="t.label" :value="t.id" />
|
|
201
|
201
|
</el-select>
|
|
202
|
202
|
</el-form-item>
|
|
|
@@ -204,7 +204,7 @@
|
|
204
|
204
|
<el-col :span="12">
|
|
205
|
205
|
<el-form-item label="通道/小组" prop="groupId" :rules="rules.groupId">
|
|
206
|
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
|
208
|
<el-option v-for="g in groupOptions" :key="g.id" :label="g.label" :value="g.id" />
|
|
209
|
209
|
</el-select>
|
|
210
|
210
|
</el-form-item>
|
|
|
@@ -212,7 +212,7 @@
|
|
212
|
212
|
<el-col :span="12">
|
|
213
|
213
|
<el-form-item label="责任人" prop="personId" :rules="rules.personId">
|
|
214
|
214
|
<el-select v-model="form.personId" placeholder="请选择责任人" style="width:100%" clearable filterable
|
|
215
|
|
- :disabled="form.org < 4">
|
|
|
215
|
+ :disabled="form.org !== '4'" @change="handlePersonChange">
|
|
216
|
216
|
<el-option v-for="p in personOptions" :key="p.userId" :label="p.nickName" :value="p.userId" />
|
|
217
|
217
|
</el-select>
|
|
218
|
218
|
</el-form-item>
|
|
|
@@ -250,7 +250,7 @@
|
|
250
|
250
|
<script setup>
|
|
251
|
251
|
import { ref, reactive, computed, onMounted, getCurrentInstance } from 'vue'
|
|
252
|
252
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
253
|
|
-import { listUser } from '@/api/system/user'
|
|
|
253
|
+import { listUser, getDeptOrgInfo, getUserOrgInfo } from '@/api/system/user'
|
|
254
|
254
|
import {
|
|
255
|
255
|
listScoreEvent, addScoreEvent, updateScoreEvent, delScoreEvent,
|
|
256
|
256
|
exportScoreEvent, importScoreEvent
|
|
|
@@ -289,13 +289,12 @@ const rules = computed(() => {
|
|
289
|
289
|
return {
|
|
290
|
290
|
org: [{ required: true, message: '请选择配分层级', trigger: 'submit' }],
|
|
291
|
291
|
dimensionId: [{ required: true, message: '请选择维度', trigger: 'submit' }],
|
|
292
|
|
- personName: [{ required: true, message: '请输入责任人', trigger: 'submit' }],
|
|
293
|
292
|
eventTime: [{ required: true, message: '请选择事件时间', trigger: 'submit' }],
|
|
294
|
293
|
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' }] : [],
|
|
|
294
|
+ deptId: form.org === '1' ? [{ required: true, message: '请选择部门', trigger: 'submit' }] : [],
|
|
|
295
|
+ teamId: form.org === '2' ? [{ required: true, message: '请选择队室/班组', trigger: 'submit' }] : [],
|
|
|
296
|
+ groupId: form.org === '3' ? [{ required: true, message: '请选择通道/小组', trigger: 'submit' }] : [],
|
|
|
297
|
+ personId: form.org === '4' ? [{ required: true, message: '请选择责任人', trigger: 'submit' }] : [],
|
|
299
|
298
|
}
|
|
300
|
299
|
})
|
|
301
|
300
|
|
|
|
@@ -321,56 +320,73 @@ async function handleFormLevelChange() {
|
|
321
|
320
|
indicatorTree.value = []
|
|
322
|
321
|
level2Options.value = []; level3Options.value = []; level4Options.value = []
|
|
323
|
322
|
teamOptions.value = []; groupOptions.value = []; personOptions.value = []
|
|
324
|
|
- const r = await getDimensionAll({ pageNum: 1, pageSize: 100, org: form.org })
|
|
|
323
|
+
|
|
|
324
|
+ const org = form.org
|
|
|
325
|
+ // if (org === '2') {
|
|
|
326
|
+ await loadAllTeams()
|
|
|
327
|
+ // } else if (org === '3') {
|
|
|
328
|
+ await loadAllGroups()
|
|
|
329
|
+ // } else if (org === '4') {
|
|
|
330
|
+ await loadAllPersons()
|
|
|
331
|
+ // }
|
|
|
332
|
+
|
|
|
333
|
+ const r = await getDimensionAll({ pageNum: 1, pageSize: 100, org })
|
|
325
|
334
|
dimensionOptions.value = r.data || []
|
|
326
|
335
|
}
|
|
327
|
336
|
|
|
|
337
|
+async function loadAllTeams() {
|
|
|
338
|
+ const r = await listDept({ deptType: 'MANAGER' })
|
|
|
339
|
+ teamOptions.value = (r.data || []).map(d => ({ id: d.deptId, label: d.deptName }))
|
|
|
340
|
+}
|
|
|
341
|
+
|
|
328
|
342
|
async function loadDepts() {
|
|
329
|
343
|
const r = await listDept()
|
|
330
|
344
|
deptOptions.value = (r.data || []).filter(d => d.deptType === 'BRIGADE')
|
|
331
|
345
|
}
|
|
332
|
346
|
|
|
333
|
|
-async function handleDeptChange(deptId, preserve) {
|
|
334
|
|
- if (!preserve) {
|
|
335
|
|
- form.teamId = null; form.groupId = null; form.personId = null
|
|
336
|
|
- groupOptions.value = []; personOptions.value = []
|
|
337
|
|
- }
|
|
338
|
|
- if (deptId) {
|
|
339
|
|
- const r = await deptTreeSelect({ parentId: deptId })
|
|
340
|
|
- teamOptions.value = r.data || []
|
|
341
|
|
- if (preserve && form.teamId) {
|
|
342
|
|
- await handleTeamChange(form.teamId, true)
|
|
|
347
|
+async function loadAllGroups() {
|
|
|
348
|
+ const r = await listDept({ deptType: 'TEAMS' })
|
|
|
349
|
+ groupOptions.value = (r.data || []).map(d => ({ id: d.deptId, label: d.deptName }))
|
|
|
350
|
+}
|
|
|
351
|
+
|
|
|
352
|
+async function loadAllPersons() {
|
|
|
353
|
+ const r = await listUser({ pageSize: 9999 })
|
|
|
354
|
+ personOptions.value = r.rows || []
|
|
|
355
|
+}
|
|
|
356
|
+
|
|
|
357
|
+function handleBrigadeChange() {
|
|
|
358
|
+}
|
|
|
359
|
+
|
|
|
360
|
+async function handleDepartmentChange(val) {
|
|
|
361
|
+ form.deptId = null
|
|
|
362
|
+ if (val) {
|
|
|
363
|
+ const r = await getDeptOrgInfo({ deptId: val })
|
|
|
364
|
+ if (r.data) {
|
|
|
365
|
+ form.deptId = r.data.brigadeId
|
|
343
|
366
|
}
|
|
344
|
|
- } else {
|
|
345
|
|
- teamOptions.value = []
|
|
346
|
367
|
}
|
|
347
|
368
|
}
|
|
348
|
369
|
|
|
349
|
|
-async function handleTeamChange(val, preserve) {
|
|
350
|
|
- if (!preserve) {
|
|
351
|
|
- form.groupId = null; form.personId = null
|
|
352
|
|
- personOptions.value = []
|
|
353
|
|
- }
|
|
354
|
|
- const team = teamOptions.value.find(t => t.id === val)
|
|
355
|
|
- if (team) {
|
|
356
|
|
- const r = await deptTreeSelect({ parentId: team.id })
|
|
357
|
|
- groupOptions.value = r.data || []
|
|
358
|
|
- if (preserve && form.groupId) {
|
|
359
|
|
- await handleGroupChange(form.groupId, true)
|
|
|
370
|
+async function handleGroupChange(val) {
|
|
|
371
|
+ form.deptId = null; form.teamId = null
|
|
|
372
|
+ if (val) {
|
|
|
373
|
+ const r = await getDeptOrgInfo({ deptId: val })
|
|
|
374
|
+ if (r.data) {
|
|
|
375
|
+ form.deptId = r.data.brigadeId
|
|
|
376
|
+ form.teamId = r.data.departmentId
|
|
360
|
377
|
}
|
|
361
|
|
- } else {
|
|
362
|
|
- groupOptions.value = []
|
|
363
|
378
|
}
|
|
364
|
379
|
}
|
|
365
|
380
|
|
|
366
|
|
-async function handleGroupChange(val, preserve) {
|
|
367
|
|
- if (!preserve) form.personId = null
|
|
368
|
|
- const group = groupOptions.value.find(g => g.id === val)
|
|
369
|
|
- if (group) {
|
|
370
|
|
- const r = await listUser({ deptId: group.id })
|
|
371
|
|
- personOptions.value = r.rows || []
|
|
372
|
|
- } else {
|
|
373
|
|
- personOptions.value = []
|
|
|
381
|
+async function handlePersonChange(val) {
|
|
|
382
|
+ form.deptId = null; form.teamId = null; form.groupId = null
|
|
|
383
|
+ if (val) {
|
|
|
384
|
+ const r = await getUserOrgInfo({ userId: val })
|
|
|
385
|
+ if (r.data) {
|
|
|
386
|
+ form.deptId = r.data.deptInfo.brigadeId
|
|
|
387
|
+ form.teamId = r.data.deptInfo.departmentId
|
|
|
388
|
+ form.groupId = r.data.deptInfo.teamId
|
|
|
389
|
+ }
|
|
374
|
390
|
}
|
|
375
|
391
|
}
|
|
376
|
392
|
|
|
|
@@ -440,14 +456,30 @@ function handleUpdate(row) {
|
|
440
|
456
|
const record = row?.id ? row : list.value.find(r => r.id === ids.value[0])
|
|
441
|
457
|
if (record) {
|
|
442
|
458
|
Object.assign(form, record)
|
|
|
459
|
+ const org = String(record.org)
|
|
|
460
|
+ form.org = org
|
|
|
461
|
+ if (org === '1') {
|
|
|
462
|
+ form.deptId = record.deptId || null
|
|
|
463
|
+ } else if (org === '2') {
|
|
|
464
|
+ loadAllTeams().then(() => {
|
|
|
465
|
+ form.teamId = record.teamId || null
|
|
|
466
|
+ if (form.teamId) handleDepartmentChange(form.teamId)
|
|
|
467
|
+ })
|
|
|
468
|
+ } else if (org === '3') {
|
|
|
469
|
+ loadAllGroups().then(() => {
|
|
|
470
|
+ form.groupId = record.groupId || null
|
|
|
471
|
+ if (form.groupId) handleGroupChange(form.groupId)
|
|
|
472
|
+ })
|
|
|
473
|
+ } else if (org === '4') {
|
|
|
474
|
+ loadAllPersons().then(() => {
|
|
|
475
|
+ form.personId = record.personId || null
|
|
|
476
|
+ if (form.personId) handlePersonChange(form.personId)
|
|
|
477
|
+ })
|
|
|
478
|
+ }
|
|
443
|
479
|
if (record.dimensionId) onDimensionChange(record.dimensionId, true)
|
|
444
|
480
|
if (record.level2Id) onLevel2Change(record.level2Id, true)
|
|
445
|
481
|
if (record.level3Id) onLevel3Change(record.level3Id, true)
|
|
446
|
482
|
if (record.level4Id) onLevel4Change(record.level4Id, true)
|
|
447
|
|
- if (record.deptId) handleDeptChange(record.deptId, true)
|
|
448
|
|
- if (record.teamId) handleTeamChange(record.teamId, true)
|
|
449
|
|
- if (record.groupId) handleGroupChange(record.groupId, true)
|
|
450
|
|
-
|
|
451
|
483
|
}
|
|
452
|
484
|
dialogTitle.value = '修改配分事项'; dialogVisible.value = true
|
|
453
|
485
|
}
|