From 01ad8bbb87e6af83adfb3c75b85d6533abef32de Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期二, 05 八月 2025 17:29:16 +0800 Subject: [PATCH] 修改 --- src/views/build/conpanyFunctionConsult/need/evaluate/components/editDialog.vue | 244 +++++++++++++++++++----------------------------- 1 files changed, 95 insertions(+), 149 deletions(-) diff --git a/src/views/build/conpanyFunctionConsult/need/evaluate/components/editDialog.vue b/src/views/build/conpanyFunctionConsult/need/evaluate/components/editDialog.vue index b73e826..1af9422 100644 --- a/src/views/build/conpanyFunctionConsult/need/evaluate/components/editDialog.vue +++ b/src/views/build/conpanyFunctionConsult/need/evaluate/components/editDialog.vue @@ -8,7 +8,7 @@ :close-on-press-escape="false" :close-on-click-modal="false" > - <el-form :model="state.form" size="default" ref="busRef" :rules="state.rules" label-position="right" label-width="130"> + <el-form :model="state.form" size="default" ref="busRef" :rules="state.rules" label-position="right" > <el-row :gutter="24"> <el-col :span="24"> <el-form-item label="企业名称:" prop="companyId" v-if="state.isAdmin"> @@ -25,17 +25,19 @@ </el-row> <el-row :gutter="24"> <el-col :span="24"> - <el-form-item label="相关方期望或要求识别表:" prop="year" > + <el-form-item label="相关方期望或要求识别表:" prop="expectDiscrenId" > <el-select - v-model="state.form.year" + v-model="state.form.expectDiscrenId" placeholder="请选择" style="width: 100%" + @change="changeDiscren" + :disabled="title === '查看'" > <el-option - v-for="item in state.yearList" - :key="item.value" - :label="item.label" - :value="item.label" + v-for="item in state.needList" + :key="item.id" + :label="item.name" + :value="item.id" /> </el-select> </el-form-item> @@ -43,40 +45,56 @@ </el-row> <el-row :gutter="24"> <el-col :span="24"> - <el-form-item label="相关方期望或要求识别表:" prop="outEnvironment" > + <el-form-item label="相关方期望或要求评价表:" :label-width="110" prop="expectContents" > <div style="display: flex;width: 100%;"> - <el-table :data="state.form.outEnvironment" :border="true" > + <el-table :data="state.form.expectContents" :border="true" > <el-table-column type="index" label="序号" align="center"></el-table-column> - <el-table-column label="相关方" prop="message" align="center" /> - <el-table-column label="期望或要求" prop="message" align="center" /> - <el-table-column label="应对措施" prop="message" align="center" /> - <el-table-column label="评价结果" prop="remark" align="center" > - <template #default="{row,$index}"> - <el-form-item :prop="'outEnvironment.' + '[' + $index + ']' + '.content'" :rules="state.rules.out.content"> - <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" v-model="row.content" placeholder="请输入"></el-input> - </el-form-item> + <el-table-column label="相关方" prop="stakeholder" align="center" /> + <el-table-column label="期望或要求" prop="message" align="center"> + <template #default="{row,$index}"> + <div v-for="(i,index) in row.expectContentMesses" :key="index"> +<!-- <span>{{ i.expectation }}</span>--> + <el-input style="margin-bottom: 5px" disabled v-model="i.expectation"></el-input> + </div> </template> </el-table-column> - <el-table-column label="操作" align="center" width="120" v-if="title !== '查看'" > - <template #default="scope"> - <el-button link type="danger" @click="delTable(scope.row)" >删除</el-button> + <el-table-column label="应对措施" prop="message" align="center"> + <template #default="{row,$index}"> + <div v-for="(i,index) in row.expectContentMesses" :key="index"> +<!-- <span>{{ i.solutions }}</span>--> + <el-input disabled style="margin-bottom: 5px" v-model="i.solutions"></el-input> + </div> </template> </el-table-column> + <el-table-column label="评价结果" prop="review" align="center" > + <template #default="{row,$index}"> + <div v-for="(i,index) in row.expectContentMesses" :key="index"> + <el-form-item :prop="'expectContents.' + '[' + $index + '].' +'expectContentMesses.' + '[' + index + ']' + '.review'" :rules="state.rules.review"> + <el-input style="margin-bottom: 5px" :disabled="title === '查看'" v-model="i.review" placeholder="请输入"></el-input> + </el-form-item> + </div> + </template> + </el-table-column> +<!-- <el-table-column label="操作" align="center" width="120" v-if="title !== '查看'" >--> +<!-- <template #default="scope">--> +<!-- <el-button link type="danger" @click="delTable(scope.row)" >删除</el-button>--> +<!-- </template>--> +<!-- </el-table-column>--> </el-table> - <el-button - :disabled="title === '查看'" - type="primary" - @click="addTableData" - style="margin-left: 10px" - >新增</el-button> +<!-- <el-button--> +<!-- :disabled="title === '查看'"--> +<!-- type="primary"--> +<!-- @click="addTableData"--> +<!-- style="margin-left: 10px"--> +<!-- >新增</el-button>--> </div> </el-form-item> </el-col> </el-row> <el-row :gutter="24"> <el-col :span="24"> - <el-form-item label="评价人:" prop="compilationId" > - <el-select clearable v-model="state.form.compilationId" :disabled="title =='查看'" filterable style="width: 240px"> + <el-form-item label="评价人:" prop="evaluateId" > + <el-select clearable v-model="state.form.evaluateId" :disabled="title =='查看'" filterable style="width: 240px"> <el-option v-for="item in state.peopleList" :key="item.id" @@ -89,8 +107,8 @@ </el-row> <el-row :gutter="24"> <el-col :span="12"> - <el-form-item label="确认人:" prop="ratifyId" > - <el-select clearable v-model="state.form.ratifyId" :disabled="title =='查看'" filterable style="width: 240px"> + <el-form-item label="确认人:" prop="confirmId" > + <el-select clearable v-model="state.form.confirmId" :disabled="title =='查看'" filterable style="width: 240px"> <el-option v-for="item in state.peopleList" :key="item.id" @@ -101,10 +119,10 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="日期:" prop="dateTime" > + <el-form-item label="日期:" prop="evaluateTime" > <el-date-picker :disabled="title === '查看'" - v-model="state.form.dateTime" + v-model="state.form.evaluateTime" type="date" placeholder="请选择日期" /> @@ -129,6 +147,7 @@ import {getUser} from "@/api/onlineEducation/user"; import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object"; import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table"; +import {addNeedEvaluate, editNeedEvaluate, getNeedEvaluateAll} from "@/api/need/need"; const dialogVisible = ref(false); const title = ref(""); @@ -141,94 +160,26 @@ form: { id: '', companyId: null, - departId: null, - year: '', - compilationId: null, - checkId: null, - ratifyId: null, - dateTime: null, - outEnvironment:[], - inEnvironment: [] + expectDiscrenId: null, + evaluateId: null, + confirmId: null, + evaluateTime: null, + expectContents:[] }, rules: { companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }], - departId: [{ required: true, message: '请选择部门', trigger: 'blur' }], - year: [{ required: true, message: '请选择年份', trigger: 'blur' }], - compilationId: [{ required: true, message: '请选择编制人', trigger: 'blur' }], - ratifyId: [{ required: true, message: '请选择批准人', trigger: 'blur' }], + expectDiscrenId: [{ required: true, message: '请选择相关方期望或要求识别表', trigger: 'blur' }], + evaluateId: [{ required: true, message: '请选择评价人', trigger: 'blur' }], + confirmId: [{ required: true, message: '请选择确认人', trigger: 'blur' }], + evaluateTime: [{ required: true, message: '请选择时间', trigger: 'blur' }], checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }], dateTime: [{ required: true, message: '请选择日期', trigger: 'blur' }], - out: { - reason: [{required: true, message: "", trigger: "blur"}], - content: [{required: true, message: "", trigger: "blur"}], - }, - in: { - reason: [{required: true, message: "", trigger: "blur"}], - content: [{required: true, message: "", trigger: "blur"}], - }, + review: [{required: true, message: "", trigger: "blur"}], }, peopleList: [], isAdmin: false, companyList: [], - deptList: [], - yearList: [ - { - value: 1, - label: '2025' - }, - { - value: 2, - label: '2024' - }, - { - value: 3, - label: '2023' - }, - { - value: 4, - label: '2022' - }, - { - value: 5, - label: '2021' - }, - ], - outReasonList:[ - { - id: 1, - name: '政治经济因素' - }, - { - id: 2, - name: '法律法规因素' - }, - { - id: 3, - name: '宏观政策因素' - }, - { - id: 4, - name: '文化氛围' - }, - ], - inReasonList:[ - { - id: 1, - name: '公司价值观' - }, - { - id: 2, - name: '企业文化' - }, - { - id: 3, - name: '过程能力' - }, - { - id: 4, - name: '制度流程因素' - }, - ], + needList: [], }) onMounted(() => { @@ -248,28 +199,32 @@ title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; if(type === 'edit' || type === 'review') { state.form = JSON.parse(JSON.stringify(value)); + state.form.confirmId = Number(state.form.confirmId) if(state.isAdmin){ state.form.companyId = value.companyId state.form.companyName = value.companyName } } - await getDeptList() + + await getNeedList() await getPeopleList() dialogVisible.value = true; } -const getDeptList = async () => { +const getNeedList = async () => { if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){ return } - const param = { - pageNum: 1, - pageSize: 999, - companyId: state.form.companyId - } - const res = await getDept(param) + const res = await getNeedEvaluateAll({companyId: state.form.companyId}) if(res.code === 200){ - state.deptList = res.data + state.needList = res.data.map(item => { + return { + ...item, + name: item.year + '年度' + item.deptName + '相关方期望或要求识别表' + } + }) + }else{ + ElMessage.warning(res.message) } } const onSubmit = async () => { @@ -278,7 +233,7 @@ if(title.value === '新增'){ console.log('sta',state.form) const {id, ...data} = JSON.parse(JSON.stringify(state.form)) - const res = await addTable(data) + const res = await addNeedEvaluate(data) if(res.code === 200){ ElMessage({ type: 'success', @@ -293,7 +248,7 @@ dialogVisible.value = false; }else if(title.value === '编辑'){ const {...data} = JSON.parse(JSON.stringify(state.form)) - const res = await editTable(data) + const res = await editNeedEvaluate(data) if(res.code === 200){ ElMessage({ type: 'success', @@ -320,22 +275,16 @@ const reset = () => { state.form = { id: '', - qualityId: '', - - fictionId : '', - fictionName: '', - fictionTime:'', - checkId :'', - checkName: '', - checkTime:'', - ratifyId:'', - ratifyName: '', - ratifyTime: '', - outEnvironment:[], + companyId: null, + expectDiscrenId: null, + evaluateId: null, + confirmId: null, + evaluateTime: null, + expectContents:[] } state.peopleList = [] state.companyList = [] - state.qualityList = [] + state.needList = [] } const getPeopleList = async ()=> { if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){ @@ -353,32 +302,29 @@ ElMessage.warning(res.message) } }; - +const changeDiscren = (val) => { + state.needList.forEach(item => { + if(item.id == val){ + state.form.expectContents = item.expectContents + } + }) +} const selectValueCom = (val) => { - state.form.compilationId = null - state.form.checkId = null - state.form.ratifyId = null - state.form.departId = null + state.form.confirmId = null + state.form.evaluateId = null + state.form.expectDiscrenId = null state.companyList.forEach(item => { if(item.name === val){ state.form.companyId = item.id } }) - getDeptList() + getNeedList() getPeopleList() } -const handleChangeNum = (value) => { - if (!/^\d+$/.test(value)) { // 验证是否为数字 - ElMessage.warning('只能输入数字') - state.form.year = '' // 重置选择,避免非法值被添加到options中 - } else if (!state.yearList.some(option => option.label === value)) { // 确保不是已存在的选项 - state.yearList.push({ value, label: value }); // 添加新选项(这里简单地将值和标签设为相同) - } -} const addTableData = () => { state.form.outEnvironment.push({}) } -- Gitblit v1.9.2