GuLiMmo
2023-12-29 462b2f149d02b9e7ecca82922a68dfbba4b4baa5
src/views/evaluate/components/addCandidate.vue
@@ -1,16 +1,17 @@
<template>
    <el-dialog v-model="props.dialogParams.visible" title="添加候选人" @close="dialogClose">
    <el-dialog v-model="props.dialogParams.visible" :title="`${curType ? '添加候选部门' : '添加候选人'}`" @close="dialogClose">
        <div style="margin-bottom: 20px;" v-if="!form.deptId">
            <el-alert title="请先选择部门信息" type="warning" />
        </div>
        <el-form :model="form" ref="formRef" :rules="rules" label-width="70px">
            <el-row>
                <el-col :span="12">
                <el-col :span="!curType ? 12 : 24">
                    <el-form-item label="部门" prop="deptId">
                        <el-cascader v-model="form.deptId" :props="cascaderProps" placeholder="请选择部门" @change="deptChange" style="width: 100%;" />
                        <el-cascader v-model="form.deptId" :props="cascaderProps" placeholder="请选择部门" @change="deptChange"
                            style="width: 100%;" />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                <el-col :span="12" v-if="!curType">
                    <el-form-item label="候选人" prop="userId">
                        <el-select v-model="form.userId" placeholder="请选择候选人"
                            :disabled="userSelectOption.length > 0 ? false : true" @change="userSelectChange"
@@ -21,7 +22,7 @@
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                <el-col :span="12" v-if="!curType">
                    <el-form-item label="职务">
                        <el-input v-model="form.postName" placeholder="请填写职务" disabled />
                    </el-form-item>
@@ -36,7 +37,7 @@
</template>
<script setup>
import { computed, markRaw, reactive, ref, watch } from 'vue';
import { computed, inject, markRaw, reactive, ref, watch } from 'vue';
import { getDeptLazyTree } from '@/api/system/dept.js'
import { getList } from '@/api/system/user.js'
import { addCandidate } from '@/api/evaluate/evaluateTask'
@@ -60,6 +61,9 @@
    deptName: '',
    postName: ''
})
const type = inject('type')
const curType = computed(() => type())
const rules = markRaw({
    userId: [
@@ -88,8 +92,18 @@
    postName: ''
})
const requestSectionParams = reactive({
    evaluateTaskId: '',
    evaluateTaskName: '',
    deptId: '',
    deptName: ''
})
// 当前部门
const currentDeptId = ref('')
const deptList = ref([])
// options 数据
const userSelectOption = ref([])
@@ -144,12 +158,20 @@
    })
}
// 选择部门改变
const deptChange = async (value) => {
    const id = value[value.length - 1]
    currentDeptId.value = id
    const userList = await initUserList(id)
    userSelectOption.value = userList
    if (!curType) {
        const userList = await initUserList(id)
        userSelectOption.value = userList
    } else {
        const dept = deptList.value.find(item => item.id == id)
        requestSectionParams.deptId = dept.value || ''
        requestSectionParams.deptName = dept.title || ''
        console.log(requestSectionParams);
    }
}
// 级联配置
@@ -162,10 +184,12 @@
        const level = node.level || 0
        if (level == 0) {
            const res = await initDept(level)
            deptList.value = res
            resovle(res)
        } else {
            const { value } = node
            const res = await initDept(value)
            deptList.value = res
            resovle(res)
        }
    },
@@ -191,7 +215,8 @@
const submit = () => {
    formRef.value.validate(valid => {
        if (!valid) return ElMessage.error('添加候选人失败')
        addCandidate(requestParams).then(res => {
        const params = curType? requestSectionParams : requestParams
        addCandidate(params).then(res => {
            ElMessage.success('添加候选人成功')
            props.dialogParams.visible = false
            emits('refresh')
@@ -208,8 +233,14 @@
watch(() => props.dialogParams.visible, (val) => {
    if (!val) return
    const { evaluateTaskId, evaluateTaskName } = props.dialogParams.taskParams
    requestParams.evaluateTaskName = evaluateTaskName
    requestParams.evaluateTaskId = evaluateTaskId
    if (!curType) {
        requestParams.evaluateTaskName = evaluateTaskName
        requestParams.evaluateTaskId = evaluateTaskId
    } else {
        requestSectionParams.evaluateTaskName = evaluateTaskName
        requestSectionParams.evaluateTaskId = evaluateTaskId
    }
}, {
    deep: true
})