diff --git a/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue b/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue
index 2583fc867..631ff9adb 100644
--- a/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue
+++ b/apps/web-antd/src/views/bpm/model/modules/category-draggable-model.vue
@@ -2,8 +2,10 @@
import type { BpmModelApi, ModelCategoryInfo } from '#/api/bpm/model';
import { computed, ref, watchEffect } from 'vue';
+import { useRouter } from 'vue-router';
import { confirm, useVbenModal } from '@vben/common-ui';
+import { useUserStore } from '@vben/stores';
import { cloneDeep, formatDateTime, isEqual } from '@vben/utils';
import { useDebounceFn } from '@vueuse/core';
@@ -21,7 +23,7 @@ import {
} from 'ant-design-vue';
import { deleteCategory } from '#/api/bpm/category';
-import { updateModelSortBatch } from '#/api/bpm/model';
+import { deployModel, updateModelSortBatch } from '#/api/bpm/model';
import { DictTag } from '#/components/dict-tag';
import { $t } from '#/locales';
import { DICT_TYPE } from '#/utils';
@@ -36,6 +38,10 @@ const props = defineProps<{
const emit = defineEmits(['success']);
+const router = useRouter();
+// 获取当前登录用户Id
+const userStore = useUserStore();
+const userId = userStore.userInfo?.id;
const isModelSorting = ref(false);
const originalData = ref
([]);
const modelList = ref([]);
@@ -55,7 +61,7 @@ const columns = [
key: 'name',
align: 'left' as const,
ellipsis: true,
- width: 250,
+ width: 230,
},
{
title: '可见范围',
@@ -71,7 +77,7 @@ const columns = [
key: 'type',
align: 'center' as const,
ellipsis: true,
- width: 120,
+ width: 150,
},
{
title: '表单信息',
@@ -178,6 +184,68 @@ const handleFormDetail = (row: any) => {
console.warn('待实现', row);
};
+/** 判断是否是流程管理员 */
+function isManagerUser(row: any) {
+ return row.managerUserIds && row.managerUserIds.includes(userId);
+}
+
+async function modelOperation(type: string, id: number) {
+ await router.push({
+ name: 'BpmModelUpdate',
+ params: { id, type },
+ });
+}
+
+/** 发布流程 */
+async function handleDeploy(row: any) {
+ confirm({
+ beforeClose: async ({ isConfirm }) => {
+ if (!isConfirm) return;
+ // 发起部署
+ await deployModel(row.id);
+ return true;
+ },
+ content: `确认要发布[${row.name}]流程吗?`,
+ icon: 'question',
+ }).then(async () => {
+ message.success(`发布[${row.name}]流程成功`);
+ // 刷新列表
+ emit('success');
+ });
+}
+
+/** '更多'操作按钮 */
+function handleModelCommand(command: string, row: any) {
+ switch (command) {
+ case 'handleChangeState': {
+ console.warn('停用/启用待实现', row);
+ break;
+ }
+ case 'handleClean': {
+ console.warn('清理待实现', row);
+ break;
+ }
+ case 'handleCopy': {
+ modelOperation('copy', row.id);
+ break;
+ }
+ case 'handleDefinitionList': {
+ console.warn('历史待实现', row);
+ break;
+ }
+ case 'handleDelete': {
+ console.warn('删除待实现', row);
+ break;
+ }
+ case 'handleReport': {
+ console.warn('报表待实现', row);
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+}
/** 更新 modelList 模型列表 */
const updateModelList = useDebounceFn(() => {
const newModelList = props.categoryInfo.modelList;
@@ -435,7 +503,72 @@ const handleRenameSuccess = () => {
- 待实现
+
+
+
+
+
+
+
+
+
+
+
+
From a2424e13d50f8230083bdb2202189d8ed738baf4 Mon Sep 17 00:00:00 2001
From: jason <2667446@qq.com>
Date: Mon, 9 Jun 2025 09:02:13 +0800
Subject: [PATCH 3/3] =?UTF-8?q?fix:=20[BPM=20=E5=B7=A5=E4=BD=9C=E6=B5=81]?=
=?UTF-8?q?=20-=20=E6=B5=81=E7=A8=8B=E8=AE=BE=E8=AE=A1=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E7=9A=84=E6=AD=A5=E9=AA=A4=E6=9D=A1=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/views/bpm/model/form/index.vue | 146 +++++++++---------
.../bpm/model/form/modules/basic-info.vue | 16 +-
2 files changed, 85 insertions(+), 77 deletions(-)
diff --git a/apps/web-antd/src/views/bpm/model/form/index.vue b/apps/web-antd/src/views/bpm/model/form/index.vue
index 9a8886d98..8f9f79b3b 100644
--- a/apps/web-antd/src/views/bpm/model/form/index.vue
+++ b/apps/web-antd/src/views/bpm/model/form/index.vue
@@ -397,9 +397,11 @@ onBeforeUnmount(() => {
-
-
-
+
+
+
{
{{ formData.name || '创建流程' }}
-
-
-
-
-
-
-
-
-
+
+
+
+
- {{ index + 1 }}
+
+ {{ index + 1 }}
+
+
{{
+ step.title
+ }}
-
{{
- step.title
- }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/web-antd/src/views/bpm/model/form/modules/basic-info.vue b/apps/web-antd/src/views/bpm/model/form/modules/basic-info.vue
index 52e3fc3d3..5ec5a0802 100644
--- a/apps/web-antd/src/views/bpm/model/form/modules/basic-info.vue
+++ b/apps/web-antd/src/views/bpm/model/form/modules/basic-info.vue
@@ -326,12 +326,12 @@ defineExpose({ validate });
@@ -364,17 +364,17 @@ defineExpose({ validate });
{{ dept.name }}
@@ -395,7 +395,7 @@ defineExpose({ validate });