diff --git a/apps/web-antd/src/views/bpm/processInstance/detail/index.vue b/apps/web-antd/src/views/bpm/processInstance/detail/index.vue index 5f2e11629..6f60bf4c6 100644 --- a/apps/web-antd/src/views/bpm/processInstance/detail/index.vue +++ b/apps/web-antd/src/views/bpm/processInstance/detail/index.vue @@ -11,6 +11,12 @@ import { BpmTaskStatusEnum, DICT_TYPE, } from '@vben/constants'; +import { + SvgBpmApproveIcon, + SvgBpmCancelIcon, + SvgBpmRejectIcon, + SvgBpmRunningIcon, +} from '@vben/icons'; import { formatDateTime } from '@vben/utils'; import { Avatar, Card, Col, message, Row, TabPane, Tabs } from 'ant-design-vue'; @@ -23,12 +29,6 @@ import { getSimpleUserList } from '#/api/system/user'; import DictTag from '#/components/dict-tag/dict-tag.vue'; import { setConfAndFields2 } from '#/components/form-create'; import { registerComponent } from '#/utils'; -import { - SvgBpmApproveIcon, - SvgBpmCancelIcon, - SvgBpmRejectIcon, - SvgBpmRunningIcon, -} from '#/views/bpm/processInstance/detail/modules/icons'; import ProcessInstanceBpmnViewer from './modules/bpm-viewer.vue'; import ProcessInstanceOperationButton from './modules/operation-button.vue'; @@ -44,22 +44,11 @@ const props = defineProps<{ taskId?: string; // 任务编号 }>(); +// TODO @jason:是不是使用全局的 FieldPermissionType?export enum FieldPermissionType { enum FieldPermissionType { - /** - * 隐藏 - */ - // eslint-disable-next-line no-unused-vars - NONE = '3', - /** - * 只读 - */ - // eslint-disable-next-line no-unused-vars - READ = '1', - /** - * 编辑 - */ - // eslint-disable-next-line no-unused-vars - WRITE = '2', + NONE = '3', // 隐藏 + READ = '1', // 只读 + WRITE = '2', // 编辑 } const processInstanceLoading = ref(false); // 流程实例的加载中 @@ -67,6 +56,8 @@ const processInstance = ref(); // 流程 const processDefinition = ref({}); // 流程定义 const processModelView = ref({}); // 流程模型视图 const operationButtonRef = ref(); // 操作按钮组件 ref +const activeTab = ref('form'); +const taskListRef = ref(); const auditIconsMap: { [key: string]: | typeof SvgBpmApproveIcon @@ -82,29 +73,28 @@ const auditIconsMap: { [BpmTaskStatusEnum.RETURN]: SvgBpmRejectIcon, [BpmTaskStatusEnum.WAIT]: SvgBpmRunningIcon, }; +const activityNodes = ref([]); // 审批节点信息 +const userOptions = ref([]); // 用户列表 -// ========== 申请信息 ========== -const fApi = ref(); // +const fApi = ref(); const detailForm = ref({ rule: [], option: {}, value: {}, }); // 流程实例的表单详情 - const writableFields: Array = []; // 表单可以编辑的字段 -/** 加载流程实例 */ -const BusinessFormComponent = shallowRef(null); // 异步组件 +const BusinessFormComponent = shallowRef(null); // 异步组件(业务表单) /** 获取详情 */ async function getDetail() { // 获得审批详情 - getApprovalDetail(); - + await getApprovalDetail(); // 获得流程模型视图 - getProcessModelView(); + await getProcessModelView(); } +/** 获得审批详情 */ async function getApprovalDetail() { processInstanceLoading.value = true; try { @@ -114,11 +104,9 @@ async function getApprovalDetail() { taskId: props.taskId, }; const data = await getApprovalDetailApi(param); - if (!data) { message.error('查询不到审批详情信息!'); } - if (!data.processDefinition || !data.processInstance) { message.error('查询不到流程信息!'); } @@ -143,6 +131,7 @@ async function getApprovalDetail() { processInstance.value.formVariables, ); } + // TODO @jason:这里 await 来搞? nextTick().then(() => { fApi.value?.btn.show(false); fApi.value?.resetBtn.show(false); @@ -187,11 +176,7 @@ async function getProcessModelView() { } } -// 审批节点信息 -const activityNodes = ref([]); -/** - * 设置表单权限 - */ +/** 设置表单权限 */ function setFieldPermission(field: string, permission: string) { if (permission === FieldPermissionType.READ) { fApi.value?.disabled(true, field); @@ -206,6 +191,7 @@ function setFieldPermission(field: string, permission: string) { } } +// TODO @jason:这个还要么? /** * 操作成功后刷新 */ @@ -214,16 +200,13 @@ function setFieldPermission(field: string, permission: string) { // getDetail(); // }; -/** 当前的Tab */ -const activeTab = ref('form'); -const taskListRef = ref(); - /** 监听 Tab 切换,当切换到 "record" 标签时刷新任务列表 */ watch( () => activeTab.value, (newVal) => { if (newVal === 'record') { // 如果切换到流转记录标签,刷新任务列表 + // TODO @jason:await nextTick 要不? nextTick(() => { taskListRef.value?.refresh(); }); @@ -232,7 +215,6 @@ watch( ); /** 初始化 */ -const userOptions = ref([]); // 用户列表 onMounted(async () => { await getDetail(); // 获得用户列表 @@ -281,9 +263,9 @@ onMounted(async () => { > {{ processInstance?.startUser?.nickname.substring(0, 1) }} - {{ - processInstance?.startUser?.nickname - }} + + {{ processInstance?.startUser?.nickname }} +
{{ formatDateTime(processInstance?.startTime) }} 提交 @@ -324,9 +306,8 @@ onMounted(async () => { :rule="detailForm.rule" />
-
{ - { />
-
{ />
- { diff --git a/apps/web-antd/src/views/bpm/processInstance/detail/modules/task-list.vue b/apps/web-antd/src/views/bpm/processInstance/detail/modules/task-list.vue index 7762b45d5..c3fb1050d 100644 --- a/apps/web-antd/src/views/bpm/processInstance/detail/modules/task-list.vue +++ b/apps/web-antd/src/views/bpm/processInstance/detail/modules/task-list.vue @@ -1,10 +1,10 @@ - @@ -191,14 +174,13 @@ defineExpose({
{{ row.reason }} - -
-
diff --git a/packages/icons/src/svg/icons/gpt.svg b/packages/icons/src/svg/icons/ai/gpt.svg similarity index 100% rename from packages/icons/src/svg/icons/gpt.svg rename to packages/icons/src/svg/icons/ai/gpt.svg diff --git a/packages/icons/src/svg/icons/bpm-approve.svg b/packages/icons/src/svg/icons/bpm/bpm-approve.svg similarity index 100% rename from packages/icons/src/svg/icons/bpm-approve.svg rename to packages/icons/src/svg/icons/bpm/bpm-approve.svg diff --git a/packages/icons/src/svg/icons/bpm-cancel.svg b/packages/icons/src/svg/icons/bpm/bpm-cancel.svg similarity index 100% rename from packages/icons/src/svg/icons/bpm-cancel.svg rename to packages/icons/src/svg/icons/bpm/bpm-cancel.svg diff --git a/packages/icons/src/svg/icons/bpm-reject.svg b/packages/icons/src/svg/icons/bpm/bpm-reject.svg similarity index 100% rename from packages/icons/src/svg/icons/bpm-reject.svg rename to packages/icons/src/svg/icons/bpm/bpm-reject.svg diff --git a/packages/icons/src/svg/icons/bpm-running.svg b/packages/icons/src/svg/icons/bpm/bpm-running.svg similarity index 100% rename from packages/icons/src/svg/icons/bpm-running.svg rename to packages/icons/src/svg/icons/bpm/bpm-running.svg diff --git a/packages/icons/src/svg/icons/alipay-app.svg b/packages/icons/src/svg/icons/pay/alipay-app.svg similarity index 100% rename from packages/icons/src/svg/icons/alipay-app.svg rename to packages/icons/src/svg/icons/pay/alipay-app.svg diff --git a/packages/icons/src/svg/icons/alipay-bar.svg b/packages/icons/src/svg/icons/pay/alipay-bar.svg similarity index 100% rename from packages/icons/src/svg/icons/alipay-bar.svg rename to packages/icons/src/svg/icons/pay/alipay-bar.svg diff --git a/packages/icons/src/svg/icons/alipay-pc.svg b/packages/icons/src/svg/icons/pay/alipay-pc.svg similarity index 100% rename from packages/icons/src/svg/icons/alipay-pc.svg rename to packages/icons/src/svg/icons/pay/alipay-pc.svg diff --git a/packages/icons/src/svg/icons/alipay-qr.svg b/packages/icons/src/svg/icons/pay/alipay-qr.svg similarity index 100% rename from packages/icons/src/svg/icons/alipay-qr.svg rename to packages/icons/src/svg/icons/pay/alipay-qr.svg diff --git a/packages/icons/src/svg/icons/alipay-wap.svg b/packages/icons/src/svg/icons/pay/alipay-wap.svg similarity index 100% rename from packages/icons/src/svg/icons/alipay-wap.svg rename to packages/icons/src/svg/icons/pay/alipay-wap.svg diff --git a/packages/icons/src/svg/icons/mock.svg b/packages/icons/src/svg/icons/pay/mock.svg similarity index 100% rename from packages/icons/src/svg/icons/mock.svg rename to packages/icons/src/svg/icons/pay/mock.svg diff --git a/packages/icons/src/svg/icons/wallet.svg b/packages/icons/src/svg/icons/pay/wallet.svg similarity index 100% rename from packages/icons/src/svg/icons/wallet.svg rename to packages/icons/src/svg/icons/pay/wallet.svg diff --git a/packages/icons/src/svg/icons/wx-app.svg b/packages/icons/src/svg/icons/pay/wx-app.svg similarity index 100% rename from packages/icons/src/svg/icons/wx-app.svg rename to packages/icons/src/svg/icons/pay/wx-app.svg diff --git a/packages/icons/src/svg/icons/wx-bar.svg b/packages/icons/src/svg/icons/pay/wx-bar.svg similarity index 100% rename from packages/icons/src/svg/icons/wx-bar.svg rename to packages/icons/src/svg/icons/pay/wx-bar.svg diff --git a/packages/icons/src/svg/icons/wx-lite.svg b/packages/icons/src/svg/icons/pay/wx-lite.svg similarity index 100% rename from packages/icons/src/svg/icons/wx-lite.svg rename to packages/icons/src/svg/icons/pay/wx-lite.svg diff --git a/packages/icons/src/svg/icons/wx-native.svg b/packages/icons/src/svg/icons/pay/wx-native.svg similarity index 100% rename from packages/icons/src/svg/icons/wx-native.svg rename to packages/icons/src/svg/icons/pay/wx-native.svg diff --git a/packages/icons/src/svg/icons/wx-pub.svg b/packages/icons/src/svg/icons/pay/wx-pub.svg similarity index 100% rename from packages/icons/src/svg/icons/wx-pub.svg rename to packages/icons/src/svg/icons/pay/wx-pub.svg diff --git a/packages/icons/src/svg/index.ts b/packages/icons/src/svg/index.ts index 0da85d1fd..00fe7e65d 100644 --- a/packages/icons/src/svg/index.ts +++ b/packages/icons/src/svg/index.ts @@ -34,6 +34,12 @@ const SvgWxBarIcon = createIconifyIcon('svg:wx-bar'); const SvgWalletIcon = createIconifyIcon('svg:wallet'); const SvgMockIcon = createIconifyIcon('svg:mock'); +/** BPM */ +const SvgBpmRunningIcon = createIconifyIcon('svg:bpm-running'); +const SvgBpmApproveIcon = createIconifyIcon('svg:bpm-approve'); +const SvgBpmRejectIcon = createIconifyIcon('svg:bpm-reject'); +const SvgBpmCancelIcon = createIconifyIcon('svg:bpm-cancel'); + export { SvgAlipayAppIcon, SvgAlipayBarIcon, @@ -46,6 +52,10 @@ export { SvgAvatar3Icon, SvgAvatar4Icon, SvgBellIcon, + SvgBpmApproveIcon, + SvgBpmCancelIcon, + SvgBpmRejectIcon, + SvgBpmRunningIcon, SvgCakeIcon, SvgCardIcon, SvgDingDingIcon,