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

pull/240/head
jason 2025-10-26 09:10:52 +08:00
parent adcacf1ff7
commit e01fc275e1
3 changed files with 107 additions and 76 deletions

View File

@ -154,13 +154,17 @@ function handleModelSort() {
/** 处理模型的排序提交 */ /** 处理模型的排序提交 */
async function handleModelSortSubmit() { async function handleModelSortSubmit() {
// TODO @jasonloading //
if (!modelList.value || modelList.value.length === 0) {
message.error('排序数据异常,请重试');
return;
}
const hideLoading = message.loading({
content: '正在保存排序...',
duration: 0,
});
try { try {
//
if (!modelList.value || modelList.value.length === 0) {
message.error('排序数据异常,请重试');
return;
}
// //
const ids = modelList.value.map((item) => item.id); const ids = modelList.value.map((item) => item.id);
await updateModelSortBatch(ids); await updateModelSortBatch(ids);
@ -170,6 +174,8 @@ async function handleModelSortSubmit() {
emit('success'); emit('success');
} catch (error) { } catch (error) {
console.error('排序保存失败', error); console.error('排序保存失败', error);
} finally {
hideLoading();
} }
} }
@ -207,18 +213,29 @@ async function handleDeleteCategory() {
return; return;
} }
// TODO @jason await loading await confirm({
confirm({ beforeClose: async ({ isConfirm }) => {
if (!isConfirm) return;
//
const hideLoading = message.loading({
content: `正在删除分类: "${props.categoryInfo.name}"...`,
duration: 0,
});
try {
await deleteCategory(props.categoryInfo.id);
} finally {
hideLoading();
}
return true;
},
content: `确定要删除[${props.categoryInfo.name}]吗?`, content: `确定要删除[${props.categoryInfo.name}]吗?`,
}).then(async () => { icon: 'question',
//
await deleteCategory(props.categoryInfo.id);
message.success(
$t('ui.actionMessage.deleteSuccess', [props.categoryInfo.name]),
);
//
emit('success');
}); });
message.success(
$t('ui.actionMessage.deleteSuccess', [props.categoryInfo.name]),
);
//
emit('success');
} }
/** 处理表单详情点击 */ /** 处理表单详情点击 */
@ -249,21 +266,27 @@ async function modelOperation(type: string, id: number) {
/** 发布流程 */ /** 发布流程 */
async function handleDeploy(row: any) { async function handleDeploy(row: any) {
// TODO @jason await loading await confirm({
confirm({
beforeClose: async ({ isConfirm }) => { beforeClose: async ({ isConfirm }) => {
if (!isConfirm) return; if (!isConfirm) return;
// //
await deployModel(row.id); const hideLoading = message.loading({
content: `正在发布流程: "${row.name}"...`,
duration: 0,
});
try {
await deployModel(row.id);
} finally {
hideLoading();
}
return true; return true;
}, },
content: `确认要发布[${row.name}]流程吗?`, content: `确认要发布[${row.name}]流程吗?`,
icon: 'question', icon: 'question',
}).then(async () => {
message.success(`发布[${row.name}]流程成功`);
//
emit('success');
}); });
message.success(`发布[${row.name}]流程成功`);
//
emit('success');
} }
/** '更多'操作按钮 */ /** '更多'操作按钮 */
@ -300,63 +323,82 @@ function handleModelCommand(command: string, row: any) {
} }
/** 更新状态操作 */ /** 更新状态操作 */
function handleChangeState(row: any) { async function handleChangeState(row: any) {
const state = row.processDefinition.suspensionState; const state = row.processDefinition.suspensionState;
const newState = state === 1 ? 2 : 1; const newState = state === 1 ? 2 : 1;
const statusState = state === 1 ? '停用' : '启用'; const statusState = state === 1 ? '停用' : '启用';
// TODO @jason await loading await confirm({
confirm({
beforeClose: async ({ isConfirm }) => { beforeClose: async ({ isConfirm }) => {
if (!isConfirm) return; if (!isConfirm) return;
// //
await updateModelState(row.id, newState); const hideLoading = message.loading({
content: `正在${statusState}流程: "${row.name}"...`,
duration: 0,
});
try {
await updateModelState(row.id, newState);
} finally {
hideLoading();
}
return true; return true;
}, },
content: `确认要${statusState}流程: "${row.name}" 吗?`, content: `确认要${statusState}流程: "${row.name}" 吗?`,
icon: 'question', icon: 'question',
}).then(async () => {
message.success(`${statusState} 流程: "${row.name}" 成功`);
//
emit('success');
}); });
message.success(`${statusState} 流程: "${row.name}" 成功`);
//
emit('success');
} }
/** 清理流程操作 */ /** 清理流程操作 */
function handleClean(row: any) { async function handleClean(row: any) {
// TODO @jason await loading await confirm({
confirm({
beforeClose: async ({ isConfirm }) => { beforeClose: async ({ isConfirm }) => {
if (!isConfirm) return; if (!isConfirm) return;
// //
await cleanModel(row.id); const hideLoading = message.loading({
content: `正在清理流程: "${row.name}"...`,
duration: 0,
});
try {
await cleanModel(row.id);
} finally {
hideLoading();
}
return true; return true;
}, },
content: `确认要清理流程: "${row.name}" 吗?`, content: `确认要清理流程: "${row.name}" 吗?`,
icon: 'question', icon: 'question',
}).then(async () => {
message.success(`清理流程: "${row.name}" 成功`);
//
emit('success');
}); });
message.success(`清理流程: "${row.name}" 成功`);
//
emit('success');
} }
/** 删除流程操作 */ /** 删除流程操作 */
function handleDelete(row: any) { async function handleDelete(row: any) {
// TODO @jason await loading await confirm({
confirm({
beforeClose: async ({ isConfirm }) => { beforeClose: async ({ isConfirm }) => {
if (!isConfirm) return; if (!isConfirm) return;
// //
await deleteModel(row.id); const hideLoading = message.loading({
content: $t('ui.actionMessage.deleting', [row.name]),
duration: 0,
});
try {
await deleteModel(row.id);
} finally {
hideLoading();
}
return true; return true;
}, },
content: `确认要删除流程: "${row.name}" 吗?`, content: `确认要删除流程: "${row.name}" 吗?`,
icon: 'question', icon: 'question',
}).then(async () => {
message.success(`删除流程: "${row.name}" 成功`);
//
emit('success');
}); });
message.success(`删除流程: "${row.name}" 成功`);
//
emit('success');
} }
/** 跳转到指定流程定义列表 */ /** 跳转到指定流程定义列表 */

View File

@ -6,6 +6,7 @@ import { nextTick, onMounted, ref, shallowRef, watch } from 'vue';
import { Page } from '@vben/common-ui'; import { Page } from '@vben/common-ui';
import { import {
BpmFieldPermissionType,
BpmModelFormType, BpmModelFormType,
BpmModelType, BpmModelType,
BpmTaskStatusEnum, BpmTaskStatusEnum,
@ -44,13 +45,6 @@ const props = defineProps<{
taskId?: string; // taskId?: string; //
}>(); }>();
// TODO @jason使 FieldPermissionTypeexport enum FieldPermissionType {
enum FieldPermissionType {
NONE = '3', //
READ = '1', //
WRITE = '2', //
}
const processInstanceLoading = ref(false); // const processInstanceLoading = ref(false); //
const processInstance = ref<BpmProcessInstanceApi.ProcessInstance>(); // const processInstance = ref<BpmProcessInstanceApi.ProcessInstance>(); //
const processDefinition = ref<any>({}); // const processDefinition = ref<any>({}); //
@ -131,18 +125,16 @@ async function getApprovalDetail() {
processInstance.value.formVariables, processInstance.value.formVariables,
); );
} }
// TODO @jason await await nextTick();
nextTick().then(() => { fApi.value?.btn.show(false);
fApi.value?.btn.show(false); fApi.value?.resetBtn.show(false);
fApi.value?.resetBtn.show(false); fApi.value?.disabled(true);
fApi.value?.disabled(true); //
// if (formFieldsPermission) {
if (formFieldsPermission) { Object.keys(data.formFieldsPermission).forEach((item) => {
Object.keys(data.formFieldsPermission).forEach((item) => { setFieldPermission(item, formFieldsPermission[item]);
setFieldPermission(item, formFieldsPermission[item]); });
}); }
}
});
} else { } else {
// data.processDefinition.formCustomViewPath /crm/contract/detail/index.vue // data.processDefinition.formCustomViewPath /crm/contract/detail/index.vue
BusinessFormComponent.value = registerComponent( BusinessFormComponent.value = registerComponent(
@ -178,15 +170,15 @@ async function getProcessModelView() {
/** 设置表单权限 */ /** 设置表单权限 */
function setFieldPermission(field: string, permission: string) { function setFieldPermission(field: string, permission: string) {
if (permission === FieldPermissionType.READ) { if (permission === BpmFieldPermissionType.READ) {
fApi.value?.disabled(true, field); fApi.value?.disabled(true, field);
} }
if (permission === FieldPermissionType.WRITE) { if (permission === BpmFieldPermissionType.WRITE) {
fApi.value?.disabled(false, field); fApi.value?.disabled(false, field);
// //
writableFields.push(field); writableFields.push(field);
} }
if (permission === FieldPermissionType.NONE) { if (permission === BpmFieldPermissionType.NONE) {
fApi.value?.hidden(true, field); fApi.value?.hidden(true, field);
} }
} }
@ -203,13 +195,11 @@ function setFieldPermission(field: string, permission: string) {
/** 监听 Tab 切换,当切换到 "record" 标签时刷新任务列表 */ /** 监听 Tab 切换,当切换到 "record" 标签时刷新任务列表 */
watch( watch(
() => activeTab.value, () => activeTab.value,
(newVal) => { async (newVal) => {
if (newVal === 'record') { if (newVal === 'record') {
// //
// TODO @jasonawait nextTick await nextTick();
nextTick(() => { taskListRef.value?.refresh();
taskListRef.value?.refresh();
});
} }
}, },
); );

View File

@ -548,9 +548,8 @@ async function handleCancel() {
/** 处理再次提交 */ /** 处理再次提交 */
async function handleReCreate() { async function handleReCreate() {
// //
// TODO @jason push name path
await router.push({ await router.push({
path: '/bpm/task/create', name: 'BpmProcessInstanceCreate',
query: { processInstanceId: props.processInstance?.id }, query: { processInstanceId: props.processInstance?.id },
}); });
} }