From b4b0eba2284d24a82732f01eab6bedb370cc4342 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期六, 06 四月 2024 21:06:59 +0800 Subject: [PATCH] update 调整流程定义配置逻辑 --- src/views/workflow/processDefinition/index.vue | 121 +++++++++++++++++++++++----------------- 1 files changed, 70 insertions(+), 51 deletions(-) diff --git a/src/views/workflow/processDefinition/index.vue b/src/views/workflow/processDefinition/index.vue index 6dfee4f..376182b 100644 --- a/src/views/workflow/processDefinition/index.vue +++ b/src/views/workflow/processDefinition/index.vue @@ -56,29 +56,36 @@ <el-table border v-loading="loading" :data="processDefinitionList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> <el-table-column align="center" type="index" label="搴忓彿" width="60"></el-table-column> - <el-table-column align="center" prop="name" label="娴佺▼瀹氫箟鍚嶇О"></el-table-column> + <el-table-column align="center" prop="name" label="娴佺▼瀹氫箟鍚嶇О" :show-overflow-tooltip="true"></el-table-column> <el-table-column align="center" prop="key" label="鏍囪瘑KEY" width="80"></el-table-column> <el-table-column align="center" prop="version" label="鐗堟湰鍙�" width="80"> <template #default="scope"> v{{ scope.row.version }}.0</template> </el-table-column> - <el-table-column align="center" prop="resourceName" label="娴佺▼XML" min-width="80" :show-overflow-tooltip="true"> + <el-table-column align="center" prop="resourceName" label="娴佺▼XML" width="100" :show-overflow-tooltip="true"> <template #default="scope"> <el-link type="primary" @click="clickPreviewXML(scope.row.id)">{{ scope.row.resourceName }}</el-link> </template> </el-table-column> - <el-table-column align="center" prop="diagramResourceName" label="娴佺▼鍥剧墖" min-width="80" :show-overflow-tooltip="true"> + <el-table-column align="center" prop="diagramResourceName" label="娴佺▼鍥剧墖" width="100" :show-overflow-tooltip="true"> <template #default="scope"> <el-link type="primary" @click="clickPreviewImg(scope.row.id)">{{ scope.row.diagramResourceName }}</el-link> </template> </el-table-column> - <el-table-column align="center" prop="suspensionState" label="鐘舵��" min-width="50"> + <el-table-column align="center" prop="suspensionState" label="鐘舵��" width="80"> <template #default="scope"> <el-tag v-if="scope.row.suspensionState == 1" type="success">婵�娲�</el-tag> <el-tag v-else type="danger">鎸傝捣</el-tag> </template> </el-table-column> - <el-table-column align="center" prop="deploymentTime" label="閮ㄧ讲鏃堕棿" :show-overflow-tooltip="true"></el-table-column> - <el-table-column fixed="right" label="鎿嶄綔" align="center" width="170" class-name="small-padding fixed-width"> + <el-table-column align="center" prop="deploymentTime" label="閮ㄧ讲鏃堕棿" width="120" :show-overflow-tooltip="true"></el-table-column> + <el-table-column align="center" label="琛ㄥ悕/琛ㄥ崟KEY" width="120" :show-overflow-tooltip="true"> + <template #default="scope"> + <span v-if="scope.row.wfDefinitionConfigVo"> + {{ scope.row.wfDefinitionConfigVo.tableName }} + </span> + </template> + </el-table-column> + <el-table-column fixed="right" label="鎿嶄綔" align="center" width="220" class-name="small-padding fixed-width"> <template #default="scope"> <el-row :gutter="10" class="mb8"> <el-col :span="1.5"> @@ -93,6 +100,9 @@ </el-button> </el-col> <el-col :span="1.5"> + <el-button type="text" size="small" icon="Document" @click="getProcessDefinitionHitoryList(scope.row.id, scope.row.key)">鍘嗗彶鐗堟湰</el-button> + </el-col> + <el-col :span="1.5"> <el-button link type="primary" size="small" icon="Delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button> </el-col> </el-row> @@ -101,17 +111,7 @@ <el-button link type="primary" size="small" icon="Sort" @click="handleConvertToModel(scope.row)"> 杞崲妯″瀷 </el-button> </el-col> <el-col :span="1.5"> - <el-dropdown> - <el-button type="text" size="small"> - 鏇村<el-icon class="el-icon--right"><arrow-down /></el-icon> - </el-button> - <template #dropdown> - <el-dropdown-menu> - <el-dropdown-item @click="getProcessDefinitionHitoryList(scope.row.id, scope.row.key)">鍘嗗彶鐗堟湰</el-dropdown-item> - <el-dropdown-item @click="handleFormOpen(scope.row)">琛ㄥ崟閰嶇疆</el-dropdown-item> - </el-dropdown-menu> - </template> - </el-dropdown> + <el-button type="text" size="small" icon="Tickets" @click="handleDefinitionConfigOpen(scope.row)">缁戝畾涓氬姟</el-button> </el-col> </el-row> </template> @@ -167,8 +167,8 @@ <el-table v-loading="loading" :data="processDefinitionHistoryList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center" /> <el-table-column align="center" type="index" label="搴忓彿" width="60"></el-table-column> - <el-table-column align="center" prop="name" label="娴佺▼瀹氫箟鍚嶇О"></el-table-column> - <el-table-column align="center" prop="key" label="鏍囪瘑Key"></el-table-column> + <el-table-column align="center" prop="name" label="娴佺▼瀹氫箟鍚嶇О" :show-overflow-tooltip="true" min-width="80"></el-table-column> + <el-table-column align="center" prop="key" label="鏍囪瘑KEY"></el-table-column> <el-table-column align="center" prop="version" label="鐗堟湰鍙�" width="90"> <template #default="scope"> v{{ scope.row.version }}.0</template> </el-table-column> @@ -204,7 +204,7 @@ </el-button> </el-col> <el-col :span="1.5"> - <el-button link type="primary" icon="Delete" size="small" @click="handleDelete(scope.row)">鍒犻櫎</el-button> + <el-button type="text" size="small" icon="Tickets" @click="handleDefinitionConfigOpen(scope.row)">缁戝畾涓氬姟</el-button> </el-col> </el-row> <el-row :gutter="10" class="mb8"> @@ -212,33 +212,32 @@ <el-button link type="primary" icon="Sort" size="small" @click="handleConvertToModel(scope.row)"> 杞崲妯″瀷 </el-button> </el-col> <el-col :span="1.5"> - <el-button link type="primary" icon="Setting" size="small" @click="handleFormOpen(scope.row)"> 琛ㄥ崟閰嶇疆 </el-button> + <el-button link type="primary" icon="Delete" size="small" @click="handleDelete(scope.row)">鍒犻櫎</el-button> </el-col> </el-row> </template> </el-table-column> </el-table> </el-dialog> + <!-- 琛ㄥ崟閰嶇疆 --> - <el-dialog v-model="formDialog.visible" :title="formDialog.title" width="650px" append-to-body :close-on-click-modal="false"> - <el-form :model="formDefinitionForm" label-width="auto"> + <el-dialog v-model="definitionConfigDialog.visible" :title="definitionConfigDialog.title" width="650px" append-to-body :close-on-click-modal="false"> + <el-form :model="definitionConfigForm" label-width="auto"> <el-form-item label="娴佺▼KEY"> - <el-input v-model="formDefinitionForm.processKey" disabled/> + <el-input v-model="definitionConfigForm.processKey" disabled/> </el-form-item> - <el-form-item label="璺敱鍦板潃"> - <el-input v-model="formDefinitionForm.path" placeholder="璇峰亣绀轰緥璺敱璇峰~鍐欙細/demo/leaveEdit/index"/> + <el-form-item label="琛ㄥ悕" prop="formId"> + <el-input v-model="definitionConfigForm.tableName" placeholder="绀轰緥:test_leave"/> </el-form-item> <el-form-item label="澶囨敞"> - <el-input v-model="formDefinitionForm.remark" type="textarea" resize="none"/> + <el-input v-model="definitionConfigForm.remark" type="textarea" resize="none"/> </el-form-item> </el-form> <template #footer> <div class="dialog-footer"> - <el-button @click="formDialog.visible = false">鍙栨秷</el-button> - <el-button type="primary" @click="handlerSaveForm"> - 淇濆瓨 - </el-button> + <el-button @click="definitionConfigDialog.visible = false">鍙栨秷</el-button> + <el-button type="primary" @click="handlerSaveForm">淇濆瓨</el-button> </div> </template> </el-dialog> @@ -256,19 +255,20 @@ deployProcessFile, getListByKey } from '@/api/workflow/processDefinition'; +import { getByTableNameNotDefId,getByDefId,saveOrUpdate } from '@/api/workflow/definitionConfig'; import ProcessPreview from './components/processPreview.vue'; import { listCategory } from '@/api/workflow/category'; -import { getByDefId,saveOrUpdate } from '@/api/workflow/formDefinition'; import { CategoryVO } from '@/api/workflow/category/types'; import { ProcessDefinitionQuery, ProcessDefinitionVO } from '@/api/workflow/processDefinition/types'; -import { FormDefinitionForm } from '@/api/workflow/formDefinition/types'; -import { UploadRequestOptions } from 'element-plus'; +import { definitionConfigForm } from '@/api/workflow/definitionConfig/types'; +import { UploadRequestOptions, ElMessage, ElMessageBox } from 'element-plus'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const previewRef = ref<InstanceType<typeof ProcessPreview>>(); const queryFormRef = ref<ElFormInstance>(); const categoryTreeRef = ref<ElTreeInstance>(); +const definitionConfigForm = ref<definitionConfigForm>({}); type CategoryOption = { categoryCode: string; @@ -290,7 +290,6 @@ const categoryName = ref(''); /** 閮ㄧ讲鏂囦欢鍒嗙被閫夋嫨 */ const selectCategory = ref(); -const formDefinitionForm = ref<FormDefinitionForm>({}); const uploadDialog = reactive<DialogOption>({ visible: false, @@ -302,9 +301,9 @@ title: '鍘嗗彶鐗堟湰' }); -const formDialog = reactive<DialogOption>({ +const definitionConfigDialog = reactive<DialogOption>({ visible: false, - title: '琛ㄥ崟閰嶇疆' + title: '娴佺▼瀹氫箟閰嶇疆' }); // 鏌ヨ鍙傛暟 @@ -471,28 +470,48 @@ }); return; }; -//鎵撳紑琛ㄥ崟閰嶇疆 -const handleFormOpen = async (row: ProcessDefinitionVO) => { - formDialog.visible = true - formDefinitionForm.value.processKey = row.key - formDefinitionForm.value.definitionId = row.id +//鎵撳紑娴佺▼瀹氫箟閰嶇疆 +const handleDefinitionConfigOpen = async (row: ProcessDefinitionVO) => { + definitionConfigDialog.visible = true + definitionConfigForm.value.processKey = row.key + definitionConfigForm.value.definitionId = row.id + definitionConfigForm.value.version = row.version const resp = await getByDefId(row.id) if(resp.data){ - formDefinitionForm.value = resp.data + definitionConfigForm.value = resp.data }else{ - formDefinitionForm.value.path = undefined - formDefinitionForm.value.remark = undefined + definitionConfigForm.value.tableName = undefined + definitionConfigForm.value.remark = undefined } } //淇濆瓨琛ㄥ崟 const handlerSaveForm = async () => { - await proxy?.$modal.confirm('鏄惁纭淇濆瓨锛�'); - saveOrUpdate(formDefinitionForm.value).then(resp=>{ - if(resp.code === 200){ - proxy?.$modal.msgSuccess('鎿嶄綔鎴愬姛'); - formDialog.visible = false - getList(); + getByTableNameNotDefId(definitionConfigForm.value.tableName,definitionConfigForm.value.definitionId).then(res => { + if(res.data && res.data.length > 0){ + ElMessageBox.confirm('琛ㄥ悕宸茶銆�'+res.data[0].processKey+'銆戠増鏈瑅'+res.data[0].version+'.0缁戝畾纭鍚庡皢浼氬垹闄ょ粦瀹氱殑娴佺▼KEY!','鎻愮ず',{ + confirmButtonText: '纭', + cancelButtonText: '鍙栨秷', + type: 'warning', + } + ).then(() => { + saveOrUpdate(definitionConfigForm.value).then(resp=>{ + if(resp.code === 200){ + proxy?.$modal.msgSuccess('鎿嶄綔鎴愬姛'); + definitionConfigDialog.visible = false + getList(); + } + }) + }) + }else{ + saveOrUpdate(definitionConfigForm.value).then(resp=>{ + if(resp.code === 200){ + proxy?.$modal.msgSuccess('鎿嶄綔鎴愬姛'); + definitionConfigDialog.visible = false + getList(); + } + }) } }) + } </script> -- Gitblit v1.9.3