From dccb2410b6ba3942acd6a46efd620505112ffb2c Mon Sep 17 00:00:00 2001 From: pch <75729660@qq.com> Date: Tue, 17 Dec 2024 13:53:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A1=A8=E5=8D=95=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Home/qjgl/QjglDetail.vue | 87 ++++++++++--------- .../bpm/processInstance/detail/index.vue | 18 ++-- 2 files changed, 53 insertions(+), 52 deletions(-) diff --git a/src/views/Home/qjgl/QjglDetail.vue b/src/views/Home/qjgl/QjglDetail.vue index 1e3431b..1375221 100644 --- a/src/views/Home/qjgl/QjglDetail.vue +++ b/src/views/Home/qjgl/QjglDetail.vue @@ -28,24 +28,25 @@ - + - + @@ -160,29 +161,21 @@ const isEditable = (field) => { } /** 提交表单 */ const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 -const submitForm = async () => { +const updatetForm = async () => { // 校验表单 - alert("update.....") await formRef.value.validate() // 提交请求 formLoading.value = true try { const data = formData.value as unknown as QjglVO - if (formType.value === 'create') { - await QjglApi.createQjgl(data) - message.success(t('common.createSuccess')) - } else { - await QjglApi.updateQjgl(data) - message.success(t('common.updateSuccess')) - } - dialogVisible.value = false + await QjglApi.updateQjgl(data) // 发送操作成功的事件 - emit('success') + //emit('success') } finally { formLoading.value = false } } - +defineExpose({updatetForm}) /** 重置表单 */ const resetForm = () => { formData.value = { @@ -202,6 +195,41 @@ const resetForm = () => { } formRef.value?.resetFields() } +const itemControl = async () => { + // console.log(userId,"userId") + // console.log(queryId,"queryId") + let flag = false + let itemType = "" + let itemContent = "" + if (queryId.length > 33 ) { //流程中打开表单 + const taskids = await TaskApi.getTaskIdsForProcessInstance( queryId ) //通过流程实例id得到待办任务列表 + const token = getAccessToken() + for (const taskid of taskids) { + // 在 for...of 中可以使用 await + const assignee = await TaskApi.getTaskAssignee(taskid); //通过待办任务id得到审批人 + //console.log(assignee, "assignee"); + if ( assignee == userId ) { + flag = true + itemType = await TaskApi.getTaskConfigFromBpmn( taskid ,"itemType") + //console.log(itemType,"itemType") + if ( itemType == "1") { + itemContent = await TaskApi.getTaskConfigFromBpmn( taskid ,"itemContent") + } + } + } + if ( flag ) { //当然用户是审批人 + if ( itemType == "1") { //表单字段0:禁用,1:允许 + //editableFields.value.push("userName") + const parsedObject = JSON.parse(itemContent); + Object.entries(parsedObject).forEach(([key, value]) => { + editableFields.value.push( key ) + //console.log(key); + }); + } + + } + } +} onMounted(async () => { const id = props.id || queryId console.log("id",id) @@ -209,32 +237,7 @@ onMounted(async () => { formLoading.value = true try { formData.value = await QjglApi.getQjgl(id) - console.log(userId,"userId") - console.log(queryId,"queryId") - let flag = false - let itemType = "" - if (queryId.length > 33 ) { //流程中打开表单 - const taskids = await TaskApi.getTaskIdsForProcessInstance( queryId ) //通过流程实例id得到待办任务列表 - const token = getAccessToken() - for (const taskid of taskids) { - // 在 for...of 中可以使用 await - const assignee = await TaskApi.getTaskAssignee(taskid); //通过待办任务id得到审批人 - console.log(assignee, "assignee"); - if ( assignee == userId ) { - flag = true - itemType = await TaskApi.getTaskConfigFromBpmn( taskid ,"itemType") - console.log(itemType,"itemType") - } - } - if ( flag ) { //当然用户是审批人 - if ( itemType == "1") { //表单字段0:禁用,1:允许 - editableFields.value.push("title") - - } - - } - } - + await itemControl() // TaskApi.getTaskAssignee() } finally { formLoading.value = false diff --git a/src/views/bpm/processInstance/detail/index.vue b/src/views/bpm/processInstance/detail/index.vue index 4deea84..2456a9d 100644 --- a/src/views/bpm/processInstance/detail/index.vue +++ b/src/views/bpm/processInstance/detail/index.vue @@ -18,7 +18,7 @@
- +
@@ -253,7 +253,7 @@ watch( deep: true } ) - +const businessForm = ref() /** 处理审批通过和不通过的操作 */ const handleAudit = async (task, pass) => { // 1.1 获得对应表单 @@ -265,13 +265,7 @@ const handleAudit = async (task, pass) => { if (!elForm) return const valid = await elForm.validate() if (!valid) return - console.log( BusinessFormComponent.value,"BusinessFormComponent.value" ) - console.log(BusinessFormComponent.value.submit,"BusinessFormComponent.value.submit") - if (BusinessFormComponent.value && BusinessFormComponent.value.submit) { - console.log("submit.....") - BusinessFormComponent.value.submit() // 调用表单的提交方法 - } - return + // 2.1 提交审批 const data = { id: task.id, @@ -287,6 +281,10 @@ const handleAudit = async (task, pass) => { data.variables = approveForms.value[index].value } + if (businessForm.value && businessForm.value.updatetForm) { + businessForm.value.updatetForm() // 调用异步组件的提交方法 + } + await TaskApi.approveTask(data) message.success('审批通过成功') } else { @@ -294,7 +292,7 @@ const handleAudit = async (task, pass) => { message.success('审批不通过成功') } // 2.2 加载最新数据 - getDetail() + //getDetail() delView(unref(currentRoute)) back() }