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