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 = () => {
- 待实现
+
+
+
+
+
+
+
+
+
+
+
+