From 8e5874a30ae9b194968393b2399bbba193eaa313 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 20 十一月 2024 17:14:00 +0800 Subject: [PATCH] 项目管理 --- src/views/safetyReview/projectManage/components/chooseExpert.vue | 185 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 163 insertions(+), 22 deletions(-) diff --git a/src/views/safetyReview/projectManage/components/chooseExpert.vue b/src/views/safetyReview/projectManage/components/chooseExpert.vue index 59ffcd2..579d5c1 100644 --- a/src/views/safetyReview/projectManage/components/chooseExpert.vue +++ b/src/views/safetyReview/projectManage/components/chooseExpert.vue @@ -13,7 +13,11 @@ </template> </el-table-column> <el-table-column label="身份证号" prop="idCard" align="center" /> - <el-table-column label="等级" prop="level" align="center" /> + <el-table-column label="等级" prop="ratingLevel" align="center" > + <template #default="scope"> + <span>{{scope.row.ratingLevel == 1 ?'一级':scope.row.ratingLevel == 1?'二级':'三级'}}</span> + </template> + </el-table-column> <el-table-column label="专业领域" prop="domain" align="center" /> <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180"> <template #default="scope"> @@ -43,10 +47,8 @@ </el-col> <el-col :span="8"> <el-form-item label="允许级别:"> - <el-checkbox-group v-model="checkList"> - <el-checkbox label="一级" value="一级" /> - <el-checkbox label="二级" value="二级" /> - <el-checkbox label="三级" value="三级" /> + <el-checkbox-group v-model="queryParams.ratingLevel"> + <el-checkbox v-for="item in state.levelList" :label="item.id" :key="item.id">{{ item.name }}</el-checkbox> </el-checkbox-group> </el-form-item> </el-col> @@ -60,6 +62,7 @@ <el-col :span="24"> <el-form-item label="拟选用人数:"> <el-input + clearable v-model.trim="queryParams.num" placeholder="请输入拟选用人数" @input="queryParams.num = queryParams.num.replace(/[^0-9]/g,' ')" @@ -77,11 +80,15 @@ </template> </el-table-column> <el-table-column label="身份证号" prop="idCard" align="center" /> - <el-table-column label="等级" prop="level" align="center" /> + <el-table-column label="等级" prop="ratingLevel" align="center" > + <template #default="scope"> + <span>{{scope.row.ratingLevel == 1 ?'一级':scope.row.ratingLevel == 1?'二级':'三级'}}</span> + </template> + </el-table-column> <el-table-column label="专业领域" prop="domain" align="center" /> <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180"> <template #default="scope"> - <el-button link type="primary" @click="delF(scope.row)" >删除</el-button> + <el-button link type="primary" @click="delR(scope.row)" >删除</el-button> </template> </el-table-column> </el-table> @@ -91,10 +98,11 @@ </template> <script setup> -import {onMounted, ref} from "vue"; +import {onMounted, reactive, ref} from "vue"; import expertsList from './expertsList.vue' import {getExpertTypes} from "@/api/form"; import {ElMessage} from "element-plus"; +import {addProject, choose, expertRound, getCheckInfo} from "@/api/projectManage"; const emit = defineEmits(["getNextStatus"]); const fTableRef = ref(null); @@ -110,6 +118,29 @@ const expertType = ref([]) const checkList = ref([]) const domainList = ref([]) +const state = reactive({ + formData: { + id:null, + saveData: [], + delData: [] + }, + levelList: [ + { + id: 1, + name: '一级' + }, + { + id: 2, + name: '二级' + }, + { + id: 3, + name: '三级' + }, + ] +}) + + onMounted(() =>{ getDomain() @@ -122,44 +153,154 @@ return; } } - //保存按钮 if(type === 'add'){ + let fData = [] + let rData = [] //成功后自动到下一步 项目id - emit('getNextStatus', 2); + const {...data} = state.formData + data.id = val + if(fixedDataList.value && fixedDataList.value.length > 0){ + fData = fixedDataList.value.map(item => { + return { + expertId: item.id, + expertName:item.name, + selectionMode: 1, + teamLeader: null + } + }) + } + if(randomDataList.value && randomDataList.value.length > 0){ + rData = randomDataList.value.map(item => { + return { + expertId: item.id, + expertName:item.name, + selectionMode: 2, + teamLeader: null + } + }) + } + data.saveData = fData.concat(rData) + const res = await choose(data); + if(res.code == 200){ + ElMessage.success('新增成功') + emit('getNextStatus', val); + reset() + }else{ + ElMessage.warning(res.message) + } }else if(type === 'clickEdit'){ - //变更按钮 + let fData = [] + let rData = [] + const {...data} = state.formData + data.id = val + if(fixedDataList.value && fixedDataList.value.length > 0){ + fData = fixedDataList.value.map(item => { + return { + id: item.expertId ? item.id : '', + expertId: item.expertId ? item.expertId : item.id, + expertName:item.name, + selectionMode: 1, + teamLeader: null + } + }) + } + if(randomDataList.value && randomDataList.value.length > 0){ + rData = randomDataList.value.map(item => { + return { + id: item.expertId ? item.id : '', + expertId: item.expertId ? item.expertId : item.id, + expertName:item.name, + selectionMode: 2, + teamLeader: null + } + }) + } + data.saveData = fData.concat(rData) + const res = await choose(data); + if(res.code == 200){ + ElMessage.success('修改成功') + }else{ + ElMessage.warning(res.message) + } }else if(type === 'detail'){ - console.log("view222222",type,val) + const param = { + id: val + } + const res = await getCheckInfo(param); + if(res.code == 200){ + fixedDataList.value = res.data.projectExpertCheckResp.filter(item => item.selectionMode === 1) + randomDataList.value = res.data.projectExpertCheckResp.filter(item => item.selectionMode === 2) + console.log('res',fixedDataList.value) + }else{ + ElMessage.warning(res.message) + } } } const chooseExpert = (type) => { - expertsListRef.value.openDialog(type,fixedDataList.value) + expertsListRef.value.openDialog(type,fixedDataList.value,domainList.value) } const getSelected = (type,data)=>{ - fixedDataList.value = JSON.parse(JSON.stringify(data)) + const selectData = JSON.parse(JSON.stringify(data)) + if(fixedDataList.value && fixedDataList.value.length > 0){ + fixedDataList.value.forEach(item => { + if(item.expertId){ + selectData.forEach((i,index) => { + if(i.id == item.expertId){ + selectData[index] = item + } + }) + } + }) + } + fixedDataList.value = selectData } const delF = (val) => { + if(val.expertId){ + state.formData.delData.push(val.id) + } fixedDataList.value = fixedDataList.value.filter(item => item.id != val.id) } +const delR = (val) => { + if(val.expertId){ + state.formData.delData.push(val.id) + } + randomDataList.value = randomDataList.value.filter(item => item.id != val.id) +} const professionChange=(value)=> { - console.log(value,'val') + queryParams.value.domain = value.map(item => item[1]) } const getDomain = async () => { - // const res = await getExpertTypes() - // if(res.code == 200){ - // domainList.value = res.data - // }else{ - // ElMessage.warning(res.message) - // } + const res = await getExpertTypes() + if(res.code == 200){ + domainList.value = res.data + }else{ + ElMessage.warning(res.message) + } } -const random = () => { +const random = async () => { + console.log('11',randomDataList.value) + randomDataList.value.forEach(item => { + if(item.expertId){ + state.formData.delData.push(item.id) + } + }) + if(queryParams.value.num =='' || queryParams.value.num == undefined){ + ElMessage.warning('拟选用人数不能为空') + return + } rLoading.value = true + const res = await expertRound(queryParams.value) + if(res.code == 200){ + randomDataList.value = res.data + }else{ + ElMessage.warning(res.message) + } rLoading.value = false } -- Gitblit v1.9.2