|
|
@@ -6,7 +6,7 @@
|
|
|
width="700"
|
|
|
@close="clearData"
|
|
|
>
|
|
|
- <el-form label-width="140px" :model="formData" ref="ruleFormRef" :rules="rules">
|
|
|
+ <el-form label-width="auto" :model="formData" ref="ruleFormRef" :rules="rules">
|
|
|
<!-- <el-form-item label="下发部门名称" prop="deptId">
|
|
|
<el-cascader
|
|
|
ref="cascadeRef"
|
|
|
@@ -56,13 +56,12 @@
|
|
|
filterable
|
|
|
:remote-method="(q) => remoteMethod(q, 'signPersonList')"
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.signPersonList" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.signPersonList" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<template v-if="currentDepartmentKey === 'A'">
|
|
|
<el-form-item label="党委书记" prop="leader1">
|
|
|
<el-select
|
|
|
- :disabled="!userList.length"
|
|
|
size="large"
|
|
|
v-model="formData.leader1"
|
|
|
placeholder="请选择党委书记"
|
|
|
@@ -71,12 +70,11 @@
|
|
|
remote
|
|
|
:remote-method="(q) => remoteMethod(q, 'leader1List')"
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="院长" prop="leader2">
|
|
|
<el-select
|
|
|
- :disabled="!userList.length"
|
|
|
size="large"
|
|
|
v-model="formData.leader2"
|
|
|
placeholder="请选择院长"
|
|
|
@@ -85,28 +83,26 @@
|
|
|
remote
|
|
|
:remote-method="(q) => remoteMethod(q, 'leader2List')"
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.leader2List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.leader2List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
<template v-if="currentDepartmentKey === 'B'">
|
|
|
- <el-form-item label="党支部书记" prop="leader1">
|
|
|
+ <el-form-item label="党委书记" prop="leader1">
|
|
|
<el-select
|
|
|
- :disabled="!userList.length"
|
|
|
size="large"
|
|
|
v-model="formData.leader1"
|
|
|
- placeholder="请选择党支部书记"
|
|
|
+ placeholder="请选择党委书记"
|
|
|
style="width: 100%"
|
|
|
filterable
|
|
|
remote
|
|
|
:remote-method="(q) => remoteMethod(q, 'leader1List')"
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="院长" prop="leader2">
|
|
|
<el-select
|
|
|
- :disabled="!userList.length"
|
|
|
size="large"
|
|
|
v-model="formData.leader2"
|
|
|
placeholder="请选择院长"
|
|
|
@@ -115,44 +111,41 @@
|
|
|
remote
|
|
|
:remote-method="(q) => remoteMethod(q, 'leader2List')"
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.leader2List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.leader2List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
<template v-if="currentDepartmentKey === 'C'">
|
|
|
- <el-form-item label="党支部书记(一级部门)" prop="leader1">
|
|
|
+ <el-form-item label="党委书记" prop="leader1">
|
|
|
<el-select
|
|
|
- :disabled="!userList.length"
|
|
|
size="large"
|
|
|
v-model="formData.leader1"
|
|
|
- placeholder="请选择党支部书记(一级部门)"
|
|
|
+ placeholder="请选择党委书记"
|
|
|
style="width: 100%"
|
|
|
filterable
|
|
|
:remote-method="(q) => remoteMethod(q, 'leader1List')"
|
|
|
remote
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所长/部长(一级部门)" prop="leader2">
|
|
|
+ <el-form-item label="所长/部长" prop="leader2">
|
|
|
<el-select
|
|
|
- :disabled="!userList.length"
|
|
|
size="large"
|
|
|
v-model="formData.leader2"
|
|
|
- placeholder="请选择所长/部长(一级部门)"
|
|
|
+ placeholder="请选择所长/部长"
|
|
|
style="width: 100%"
|
|
|
filterable
|
|
|
:remote-method="(q) => remoteMethod(q, 'leader2List')"
|
|
|
remote
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.leader2List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.leader2List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
<template v-if="currentDepartmentKey === 'D'">
|
|
|
<el-form-item label="部门负责人" prop="leader1">
|
|
|
<el-select
|
|
|
- :disabled="!userList.length"
|
|
|
size="large"
|
|
|
v-model="formData.leader1"
|
|
|
placeholder="部门负责人"
|
|
|
@@ -161,7 +154,7 @@
|
|
|
:remote-method="(q) => remoteMethod(q, 'leader1List')"
|
|
|
remote
|
|
|
>
|
|
|
- <el-option v-for="l in optionsGroups.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
+ <el-option v-for="l in userList.leader1List" :key="l.value" :label="l.label" :value="l.value" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
@@ -204,7 +197,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
- import { ref, reactive, watch, computed } from 'vue';
|
|
|
+ import { ref, reactive, watch } from 'vue';
|
|
|
import type { FormInstance } from 'element-plus';
|
|
|
import dayjs from 'dayjs';
|
|
|
import { queryAvailableUserList } from '@/api/production-safety/responsibility-implementation';
|
|
|
@@ -220,7 +213,13 @@
|
|
|
const submitLoading = ref(false);
|
|
|
const ruleFormRef = ref<FormInstance>();
|
|
|
|
|
|
- const userList = ref<any[]>([]);
|
|
|
+ const userList = reactive<{
|
|
|
+ [key: string]: any[];
|
|
|
+ }>({
|
|
|
+ signPersonList: [],
|
|
|
+ leader1List: [],
|
|
|
+ leader2List: [],
|
|
|
+ });
|
|
|
|
|
|
const formData = reactive<any>({
|
|
|
signConfig: 0,
|
|
|
@@ -233,15 +232,6 @@
|
|
|
isUrgent: 0,
|
|
|
});
|
|
|
|
|
|
- const optionsGroups = computed(() => {
|
|
|
- const newList = [...userList.value];
|
|
|
- return {
|
|
|
- signPersonList: newList,
|
|
|
- leader1List: newList,
|
|
|
- leader2List: newList,
|
|
|
- };
|
|
|
- });
|
|
|
-
|
|
|
watch(
|
|
|
() => props.currentDepartmentKey,
|
|
|
(a) => {
|
|
|
@@ -262,7 +252,7 @@
|
|
|
};
|
|
|
|
|
|
const remoteMethod = (query: string, dataName) => {
|
|
|
- if (!query) return;
|
|
|
+ // if (!query) return;
|
|
|
getUserData(dataName, query);
|
|
|
};
|
|
|
|
|
|
@@ -285,6 +275,7 @@
|
|
|
leader1: [{ required: true, message: '请选择相关责任负责人/领导', trigger: 'change' }],
|
|
|
|
|
|
leader2: [
|
|
|
+ { required: true, message: '请选择相关责任负责人/领导', trigger: 'change' },
|
|
|
{
|
|
|
validator: (_: any, value: any, callback: any) => {
|
|
|
const needLeader2 = ['A', 'B', 'C'].includes(props.currentDepartmentKey);
|
|
|
@@ -335,12 +326,14 @@
|
|
|
queryParam: { realname },
|
|
|
}).then((res: any) => {
|
|
|
if (dataName === null) {
|
|
|
- userList.value = (res.records || [])?.map((u: any) => ({
|
|
|
- value: u.id,
|
|
|
- label: u.realname,
|
|
|
- }));
|
|
|
+ Object.keys(userList).forEach((key) => {
|
|
|
+ userList[key] = (res.records || [])?.map((u: any) => ({
|
|
|
+ value: u.id,
|
|
|
+ label: u.realname,
|
|
|
+ }));
|
|
|
+ });
|
|
|
} else {
|
|
|
- optionsGroups.value[dataName] = (res.records || [])?.map((u: any) => ({
|
|
|
+ userList[dataName] = (res.records || [])?.map((u: any) => ({
|
|
|
value: u.id,
|
|
|
label: u.realname,
|
|
|
}));
|