yxk-20260430-党委会流程办理页面改造,将流程审批相关页面集成到表单下方一起办理

This commit is contained in:
ye1023
2026-04-30 11:15:04 +08:00
parent 8238acce55
commit cff7086134
5 changed files with 75 additions and 15 deletions
@@ -13,6 +13,7 @@ enum Api {
importExcel = '/bgpartymatter/bgPartymatter/importExcel',
exportXls = '/bgpartymatter/bgPartymatter/exportXls',
saveBpmForm = '/bgpartymatter/bgPartymatter/saveBpmForm',
setProcessVariable = '/act/process/setProcessVariable',
bgPartymatterFeedbackList = '/bgpartymatter/bgPartymatter/listBgPartymatterFeedbackByMainId',
bgPartymatterFeedbackSave= '/bgpartymatter/bgPartymatter/addBgPartymatterFeedback',
bgPartymatterFeedbackEdit= '/bgpartymatter/bgPartymatter/editBgPartymatterFeedback',
@@ -78,6 +79,10 @@ export const saveBpmForm = (params) => {
return defHttp.post({ url: Api.saveBpmForm, params }, { isTransformResponse: false });
}
export const setProcessVariable = (params) => {
return defHttp.post({ url: Api.setProcessVariable, params }, { isTransformResponse: false });
}
/**
* 列表接口
* @param params
@@ -144,6 +144,17 @@
<a-button type="primary" :loading="savingFeedback" @click="saveFeedback">保存反馈</a-button>
</div>
</a-form>
<template v-if="showProcessHandle">
<a-divider />
<div class="section-title">流程办理</div>
<TaskHandleInnerContent
:form-data="formData"
:claim="claim"
@success="handleProcessSuccess"
@claimSuccess="handleClaimSuccess"
/>
</template>
</div>
</a-spin>
</template>
@@ -155,18 +166,20 @@
import JSelectDept from '/@/components/Form/src/jeecg/components/JSelectDept.vue';
import { bgPartymatterFeedbackList, bgPartymatterFeedbackSaveOrUpdate, saveBpmForm } from '../BgPartymatter.api';
import { usePermission } from '/@/hooks/web/usePermission';
import TaskHandleInnerContent from '/@/views/super/bpm/process/personalOffice/myHandleTask/content/TaskHandleInnerContent.vue';
const { isDisabledAuth, hasPermission, initBpmFormData} = usePermission();
const props = defineProps({
formDisabled: { type: Boolean, default: false },
formData: { type: Object, default: () => ({}) },
formBpm: { type: Boolean, default: true },
claim: { type: Boolean, default: false },
});
initBpmFormData(props.formData);
const emit = defineEmits(['ok']);
const emit = defineEmits(['ok', 'success', 'claimSuccess']);
const { createMessage } = useMessage();
const queryByIdUrl = '/bgpartymatter/bgPartymatter/queryById';
@@ -238,6 +251,8 @@
return props.formDisabled;
});
const showProcessHandle = computed(() => props.formBpm && !!props.formData?.taskId);
const processInfo = computed(() => ({
taskId: props.formData?.taskId,
taskDefKey: props.formData?.taskDefKey,
@@ -341,6 +356,14 @@
}
}
function handleProcessSuccess() {
emit('success');
}
function handleClaimSuccess() {
emit('claimSuccess');
}
defineExpose({
submitForm,
initFormData,
@@ -15,7 +15,15 @@
<div v-else class="component_div">
<Suspense v-if="path">
<template #default>
<component v-if="path" :is="currentComponent" :formData="formData" form-bpm></component>
<component
v-if="path"
:is="currentComponent"
:formData="formData"
:claim="claim"
form-bpm
@success="handleSuccess"
@claimSuccess="handleClaimSuccess"
></component>
</template>
<template #fallback>
<div style="width: 100%; text-align: center; padding-top: 60px">
@@ -51,8 +59,13 @@
},
// 父级html
parentNode: { type: Object as PropType<HTMLElement> },
claim: {
type: Boolean,
default: false,
},
setup(props) {
},
emits: ['success', 'claimSuccess'],
setup(props, { emit }) {
const height = window.innerHeight - 120 + 'px';
/**
@@ -136,11 +149,21 @@
return /^http[s]?:\/\/.*/.test(s);
}
function handleSuccess() {
emit('success');
}
function handleClaimSuccess() {
emit('claimSuccess');
}
return {
height,
iframeUrl,
currentComponent,
designFormInfo
designFormInfo,
handleSuccess,
handleClaimSuccess
};
},
};
@@ -1,6 +1,6 @@
<template>
<a-card style="margin-top: 10px">
<template #title> <audit-outlined /><span style="margin-left: 10px">我的审批</span> </template>
<!-- <template #title> <audit-outlined /><span style="margin-left: 10px">我的审批</span> </template>-->
<a-spin :spinning="loading">
<a-list itemLayout="vertical">
<a-list-item>
@@ -20,9 +20,9 @@
</div>
</a-list-item>
<a-list-item>
<j-upload text="添加文件" bizPath="bpm" :returnUrl="false" v-model:value="model.fileList"></j-upload>
</a-list-item>
<!-- <a-list-item>-->
<!-- <j-upload text="添加文件" bizPath="bpm" :returnUrl="false" v-model:value="model.fileList"></j-upload>-->
<!-- </a-list-item>-->
<!-- 选择分支 -->
<a-list-item>
@@ -41,7 +41,7 @@
</span>
<span v-show="model.processModel == 3" v-if="historyCount > 0">
<a-select v-model:value="model.rejectModelNode" :getPopupContainer="(target) => target?.parentNode" style="width: 150px">
<a-select v-model:value="model.rejectModelNode" :getPopupContainer="(target) => target?.parentNode" style="width: 250px">
<template v-for="(item, index) in historyList">
<a-select-option v-if="item.NAME_ != currentTaskName" :value="item.TASK_DEF_KEY_">{{ item.NAME_ }}</a-select-option>
</template>
@@ -14,13 +14,20 @@
<a-tabs v-model="activeKey" tabPosition="left">
<a-tab-pane key="1">
<template #tab> <file-text-outlined /><span>附加单据</span> </template>
<BpmDynamicForm :path="taskFormUrl" :form-data="taskFormData" :parentNode="parentNode"/>
<BpmDynamicForm
:path="taskFormUrl"
:form-data="taskFormData"
:claim="claimStatus"
:parentNode="parentNode"
@success="handleSuccess"
@claimSuccess="claimSuccess"
/>
</a-tab-pane>
<a-tab-pane key="2">
<template #tab> <user-outlined /><span>任务处理</span> </template>
<task-handle-inner-content @success="handleSuccess" :form-data="taskFormData" :claim="claimStatus" @claimSuccess="claimSuccess"></task-handle-inner-content>
</a-tab-pane>
<!-- <a-tab-pane v-if="!isEmbeddedHandleForm" key="2">-->
<!-- <template #tab> <user-outlined /><span>任务处理</span> </template>-->
<!-- <task-handle-inner-content @success="handleSuccess" :form-data="taskFormData" :claim="claimStatus" @claimSuccess="claimSuccess"></task-handle-inner-content>-->
<!-- </a-tab-pane>-->
<a-tab-pane key="3">
<template #tab> <partition-outlined /><span>流程图</span> </template>
@@ -73,6 +80,7 @@
});
const activeKey = ref('1');
const isEmbeddedHandleForm = computed(() => taskFormUrl.value?.includes('BgPartymatterBPMForm'));
// desformView 父级滚动条,只有传了此参数才会突破内部弹窗
const modalRef = ref();
@@ -100,7 +108,8 @@
claimStatus,
claimSuccess,
modalRef,
parentNode
parentNode,
isEmbeddedHandleForm
};
},
};