From d9bb98ca91dc00e852ce2a8477c3e4957afa7183 Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期四, 18 八月 2022 19:16:14 +0800 Subject: [PATCH] shenpiguize --- src/views/specialWorkSystem/workFlow/approveRule/components/approveLevelDialog.vue | 169 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 137 insertions(+), 32 deletions(-) diff --git a/src/views/specialWorkSystem/workFlow/approveRule/components/approveLevelDialog.vue b/src/views/specialWorkSystem/workFlow/approveRule/components/approveLevelDialog.vue index 9cb42c3..647d35b 100644 --- a/src/views/specialWorkSystem/workFlow/approveRule/components/approveLevelDialog.vue +++ b/src/views/specialWorkSystem/workFlow/approveRule/components/approveLevelDialog.vue @@ -8,22 +8,22 @@ </el-form-item> </el-col> <el-col :span="24" style="margin-bottom: 24px"> - <el-form-item label="审批层级" prop="depId"> + <el-form-item label="审批层级" prop="type"> <el-select v-model="approveLevelForm.type" placeholder="请选择审批层级" class="input-add"> <el-option v-for="item in typeList" :key="item.id" :value="item.id" :label="item.name"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" style="margin-bottom: 24px"> - <el-form-item label="审批人" prop="unitAddReqDTOList"> - <el-select v-model="approveLevelForm.unitAddReqDTOList" multiple placeholder="请选择审批人" class="input-add"> + <el-form-item label="审批人" prop="unitList"> + <el-select v-model="approveLevelForm.unitList" multiple placeholder="请选择审批人" class="input-add"> <el-option v-for="item in userList" :key="item.uid" :value="item.uid" :label="item.realName"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="24" style="margin-bottom: 20px"> <el-form-item label="审批有效时间" prop="continueTime"> - <el-input v-model="approveLevelForm.continueTime" placeholder="请输入审批有效时间" class="input-add"> + <el-input type="number" v-model="approveLevelForm.continueTime" placeholder="请输入审批有效时间" class="input-add"> <template #prepend> <el-select v-model="approveLevelForm.continueTimeUnit" placeholder="选择单位"> <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option> @@ -36,19 +36,37 @@ <el-tabs class="active" v-model="activeName"> <el-tab-pane label="审批流程息" name="ApproveAction"> <div class="filter-container"> - <el-button size="default" type="success" @click="openApproveActionDialog('新增', '', 0)"> + <el-button size="default" type="primary" @click="openApproveActionDialog('新增', '', 0)"> <el-icon> <ele-FolderAdd /> </el-icon> - 新增审批流程 + 新增审批项 </el-button> </div> - <el-table ref="table" :data="approveLevelForm.itemAddReqDTOList" style="width: 100%"> + <el-table ref="table" :data="approveLevelForm.itemList" style="width: 100%"> <el-table-column property="itemName" label="审批项名称" show-overflow-tooltip> </el-table-column> - <el-table-column property="type" label="审批项类型" show-overflow-tooltip> </el-table-column> - <el-table-column property="measureId" label="措施名称" show-overflow-tooltip></el-table-column> - <el-table-column property="standId" label="标准名称" show-overflow-tooltip> </el-table-column> + <el-table-column property="type" label="审批项类型" show-overflow-tooltip> + <template #default="scope"> + <span> + {{ parseNumber(scope.row.type, '审批项类型') }} + </span> + </template> + </el-table-column> + <el-table-column property="measureId" label="措施名称" show-overflow-tooltip> + <template #default="scope"> + <span> + {{ parseNumber(scope.row.measureId, '措施名称') }} + </span> + </template> + </el-table-column> + <el-table-column property="standId" label="标准名称" show-overflow-tooltip> + <template #default="scope"> + <span> + {{ parseNumber(scope.row.standId, '标准名称') }} + </span> + </template> + </el-table-column> <el-table-column label="操作" width="150" align="center"> <template #default="scope"> <el-button type="text" size="small" @click="openApproveActionDialog('修改', scope.row, scope.$index)">修改</el-button> @@ -71,31 +89,47 @@ </template> <script lang="ts"> -import { reactive, toRefs, ref } from 'vue'; +import { reactive, toRefs, ref, nextTick, onMounted } from 'vue'; import approveItemDialog from '/@/views/specialWorkSystem/workFlow/approveRule/components/approveItemDialog.vue'; import { ElMessage } from 'element-plus/es'; +import { safetyActionApi } from '/@/api/specialWorkSystem/safetyAction'; +import { approveBasicApi } from '/@/api/specialWorkSystem/approveBasic'; interface dataState { title: string; activeName: string; approveLevelDialog: boolean; - approveLevelForm: stepAddReqDTO; + approveLevelForm: step; approveLevelFormRule: {}; departmentList: []; userList: []; timeList: Array<type>; typeList: Array<type>; workLevelList: []; + standardList: Array<stand>; + actionList: Array<action>; } -interface stepAddReqDTO { +interface action { + id: number; + context: string; +} +interface stand { + ruleStandId: number; + title: string; +} +interface step { id: number | null; stepName: null; stepSerial: number | null; type: number | null; continueTime: number | null; continueTimeUnit: number | null; - unitAddReqDTOList: []; - itemAddReqDTOList: []; + unitList: Array<personType>; + itemList: Array<item>; } +interface personType { + bindUid: number | {}; +} +interface item {} interface type { id: number; name: string; @@ -117,10 +151,15 @@ type: null, continueTime: null, continueTimeUnit: null, - unitAddReqDTOList: [], - itemAddReqDTOList: [] + unitList: [], + itemList: [] }, - approveLevelFormRule: {}, + approveLevelFormRule: { + stepName: [{ required: true, message: '请填写层次名称', trigger: 'blur' }], + type: [{ required: true, message: '请选择审批层级', trigger: 'change' }], + unitList: [{ required: true, message: '请选择审批人', trigger: 'change' }], + continueTime: [{ required: true, message: '请填写有效时间', trigger: 'blur' }] + }, departmentList: [], userList: [], timeList: [ @@ -133,12 +172,17 @@ { id: 2, name: '多人' }, { id: 3, name: '分析人' } ], - workLevelList: [] + workLevelList: [], + actionList: [], + standardList: [] }); const showApproveLevelDialog = (type: string, value: {}, userList: []) => { data.approveLevelDialog = true; data.userList = userList; + nextTick(() => { + approveLevelFormRef.value.clearValidate(); + }); if (type === '新增') { data.title = '新增审批层级'; data.approveLevelForm = { @@ -148,43 +192,104 @@ type: null, continueTime: null, continueTimeUnit: null, - unitAddReqDTOList: [], - itemAddReqDTOList: [] + unitList: [], + itemList: [] }; } else { data.title = '修改审批层级'; data.approveLevelForm = JSON.parse(JSON.stringify(value)); + data.approveLevelForm.unitList = data.approveLevelForm.unitList.map((item) => { + return item.bindUid; + }) as []; } }; const openApproveActionDialog = (type: string, value: {}, index: number) => { - approveItemDialogRef.value.showApproveItemDialog(type, value, index); + approveLevelFormRef.value.validate((valid: Boolean) => { + if (valid) { + approveItemDialogRef.value.showApproveItemDialog(type, value, index, data.approveLevelForm, data.standardList, data.actionList); + } else { + ElMessage({ + type: 'warning', + message: '请先完善审批层级信息,才能选择审批项' + }); + } + }); }; const submitApproveLevel = async () => { - data.approveLevelForm.unitAddReqDTOList = data.approveLevelForm.unitAddReqDTOList.map((item) => { - return { - bindUid: item - }; + approveLevelFormRef.value.validate((valid: Boolean) => { + if (valid) { + data.approveLevelForm.unitList = data.approveLevelForm.unitList.map((item) => { + return { bindUid: item }; + }); + context.emit('addApprovalLevel', data.approveLevelForm, data.title); + data.approveLevelDialog = false; + } else { + ElMessage({ + type: 'warning', + message: '请完善审批层级基本信息' + }); + } }); - context.emit('addApprovalLevel', data.approveLevelForm, data.title); - data.approveLevelDialog = false; }; - const achieveApprovalItem = (value: stepAddReqDTO, title: string, index: number) => { + const achieveApprovalItem = (value: {}, title: string, index: number) => { if (title === '新增审批项') { - data.approveLevelForm.itemAddReqDTOList.push(value); + data.approveLevelForm.itemList.push(value); } else { - data.approveLevelForm.itemAddReqDTOList[index] = JSON.parse(JSON.stringify(value)); + data.approveLevelForm.itemList[index] = JSON.parse(JSON.stringify(value)); } }; const deleteApproveItem = async (index: number) => { - data.approveLevelForm.itemAddReqDTOList.splice(index, 1); + data.approveLevelForm.itemList.splice(index, 1); }; + + //获取措施项 + const getActionData = async () => { + let res = await safetyActionApi().getAllSafetyActionList({ workType: null, type: null, context: null }); + if (res.data.code === '200') { + data.actionList = res.data.data; + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + + //获取标准 + const getStandardData = async () => { + let res = await approveBasicApi().getAllApproveBasicList({ ruleStandType: null, title: null }); + if (res.data.code === '200') { + data.standardList = res.data.data; + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + + const parseNumber = (value: number, type: string) => { + if (type === '审批项类型') { + return data.typeList.find((item) => item.id === value)?.name; + } else if (type === '措施名称') { + return data.actionList.find((item) => item.id === value)?.context; + } else { + return data.standardList.find((item) => item.ruleStandId === value)?.title; + } + }; + + onMounted(() => { + getActionData(); + getStandardData(); + }); return { ...toRefs(data), + parseNumber, approveLevelFormRef, approveItemDialogRef, deleteApproveItem, -- Gitblit v1.9.2