feat: [antd]->[bpm] 代码评审修改 20%

This commit is contained in:
jason
2025-10-26 09:10:52 +08:00
parent adcacf1ff7
commit e01fc275e1
3 changed files with 107 additions and 76 deletions

View File

@@ -6,6 +6,7 @@ import { nextTick, onMounted, ref, shallowRef, watch } from 'vue';
import { Page } from '@vben/common-ui';
import {
BpmFieldPermissionType,
BpmModelFormType,
BpmModelType,
BpmTaskStatusEnum,
@@ -44,13 +45,6 @@ const props = defineProps<{
taskId?: string; // 任务编号
}>();
// TODO @jason是不是使用全局的 FieldPermissionTypeexport enum FieldPermissionType {
enum FieldPermissionType {
NONE = '3', // 隐藏
READ = '1', // 只读
WRITE = '2', // 编辑
}
const processInstanceLoading = ref(false); // 流程实例的加载中
const processInstance = ref<BpmProcessInstanceApi.ProcessInstance>(); // 流程实例
const processDefinition = ref<any>({}); // 流程定义
@@ -131,18 +125,16 @@ async function getApprovalDetail() {
processInstance.value.formVariables,
);
}
// TODO @jason这里 await 来搞?
nextTick().then(() => {
fApi.value?.btn.show(false);
fApi.value?.resetBtn.show(false);
fApi.value?.disabled(true);
// 设置表单字段权限
if (formFieldsPermission) {
Object.keys(data.formFieldsPermission).forEach((item) => {
setFieldPermission(item, formFieldsPermission[item]);
});
}
});
await nextTick();
fApi.value?.btn.show(false);
fApi.value?.resetBtn.show(false);
fApi.value?.disabled(true);
// 设置表单字段权限
if (formFieldsPermission) {
Object.keys(data.formFieldsPermission).forEach((item) => {
setFieldPermission(item, formFieldsPermission[item]);
});
}
} else {
// 注意data.processDefinition.formCustomViewPath 是组件的全路径,例如说:/crm/contract/detail/index.vue
BusinessFormComponent.value = registerComponent(
@@ -178,15 +170,15 @@ async function getProcessModelView() {
/** 设置表单权限 */
function setFieldPermission(field: string, permission: string) {
if (permission === FieldPermissionType.READ) {
if (permission === BpmFieldPermissionType.READ) {
fApi.value?.disabled(true, field);
}
if (permission === FieldPermissionType.WRITE) {
if (permission === BpmFieldPermissionType.WRITE) {
fApi.value?.disabled(false, field);
// 加入可以编辑的字段
writableFields.push(field);
}
if (permission === FieldPermissionType.NONE) {
if (permission === BpmFieldPermissionType.NONE) {
fApi.value?.hidden(true, field);
}
}
@@ -203,13 +195,11 @@ function setFieldPermission(field: string, permission: string) {
/** 监听 Tab 切换,当切换到 "record" 标签时刷新任务列表 */
watch(
() => activeTab.value,
(newVal) => {
async (newVal) => {
if (newVal === 'record') {
// 如果切换到流转记录标签,刷新任务列表
// TODO @jasonawait nextTick 要不?
nextTick(() => {
taskListRef.value?.refresh();
});
await nextTick();
taskListRef.value?.refresh();
}
},
);

View File

@@ -548,9 +548,8 @@ async function handleCancel() {
/** 处理再次提交 */
async function handleReCreate() {
// 跳转发起流程界面
// TODO @jason这个要优化成 push 到 name 么?这样后续 path 可以按需调整;
await router.push({
path: '/bpm/task/create',
name: 'BpmProcessInstanceCreate',
query: { processInstanceId: props.processInstance?.id },
});
}