diff --git a/package.json b/package.json index acd032f..82373b7 100644 --- a/package.json +++ b/package.json @@ -22,22 +22,19 @@ "@bpmn-io/properties-panel": "^3.16.0", "@element-plus/icons-vue": "2.3.1", "@highlightjs/vue-plugin": "2.1.0", + "@lezer/common": "1.2.1", "@vueup/vue-quill": "1.2.0", "@vueuse/core": "10.7.2", - "@lezer/common": "1.2.1", "animate.css": "4.1.1", "await-to-js": "3.0.0", "axios": "1.6.5", "bpmn-js": "13.2.2", "bpmn-js-properties-panel": "2.1.0", - "camunda-bpmn-moddle": "7.0.1", "camunda-bpmn-js-behaviors": "1.2.2", - "zeebe-bpmn-moddle": "1.0.0", - "diagram-js": "12.3.0", - "moddle": "6.2.3", - "didi": "9.0.2", - "preact": "10.19.3", + "camunda-bpmn-moddle": "7.0.1", "crypto-js": "4.2.0", + "diagram-js": "12.3.0", + "didi": "9.0.2", "echarts": "5.4.3", "element-plus": "2.4.4", "file-saver": "2.0.5", @@ -45,17 +42,21 @@ "highlight.js": "11.9.0", "js-cookie": "3.0.5", "jsencrypt": "3.3.2", + "moddle": "6.2.3", "nprogress": "0.2.0", "path-browserify": "1.0.1", "path-to-regexp": "6.2.1", "pinia": "2.1.7", + "preact": "10.19.3", "screenfull": "6.0.2", "vform3-builds": "3.0.10", "vue": "3.4.13", "vue-cropper": "1.1.1", "vue-i18n": "9.9.0", "vue-router": "4.2.5", - "vue-types": "5.1.1" + "vue-types": "5.1.1", + "vxe-table": "4.5.18", + "zeebe-bpmn-moddle": "1.0.0" }, "devDependencies": { "@iconify/json": "2.2.168", @@ -71,16 +72,16 @@ "@unocss/preset-attributify": "0.58.3", "@unocss/preset-icons": "0.58.3", "@unocss/preset-uno": "0.58.3", - "@vue/compiler-sfc": "3.4.13", "@vitejs/plugin-vue": "5.0.3", + "@vue/compiler-sfc": "3.4.13", "autoprefixer": "10.4.16", "eslint": "8.56.0", "eslint-config-prettier": "9.1.0", "eslint-define-config": "2.1.0", + "eslint-plugin-import": "2.29.1", + "eslint-plugin-node": "11.1.0", "eslint-plugin-prettier": "5.1.3", "eslint-plugin-promise": "6.1.1", - "eslint-plugin-node": "11.1.0", - "eslint-plugin-import": "2.29.1", "eslint-plugin-vue": "9.20.1", "fast-glob": "3.3.2", "husky": "8.0.3", @@ -93,11 +94,11 @@ "unplugin-icons": "0.18.2", "unplugin-vue-components": "0.26.0", "unplugin-vue-setup-extend-plus": "1.0.0", + "vite": "5.0.11", "vite-plugin-compression": "0.5.1", "vite-plugin-svg-icons": "2.0.1", "vitest": "1.2.0", "vue-eslint-parser": "9.4.0", - "vue-tsc": "1.8.27", - "vite": "5.0.11" + "vue-tsc": "1.8.27" } } diff --git a/src/components/BpmnDesign/PropertyPanel.vue b/src/components/BpmnDesign/PropertyPanel.vue index 2c3d45a..28af024 100644 --- a/src/components/BpmnDesign/PropertyPanel.vue +++ b/src/components/BpmnDesign/PropertyPanel.vue @@ -1,12 +1,14 @@ + + diff --git a/src/components/BpmnDesign/assets/showConfig.ts b/src/components/BpmnDesign/assets/showConfig.ts new file mode 100644 index 0000000..07effb0 --- /dev/null +++ b/src/components/BpmnDesign/assets/showConfig.ts @@ -0,0 +1,51 @@ +export default { + 'bpmn:EndEvent': {}, + 'bpmn:StartEvent': { + initiator: true, + formKey: true + }, + 'bpmn:UserTask': { + userType: true, + assignee: true, + candidateUsers: true, + candidateGroups: true, + async: true, + priority: true, + formKey: true, + skipExpression: true, + dueDate: true, + taskListener: true + }, + 'bpmn:ServiceTask': { + async: true, + skipExpression: true, + isForCompensation: true, + triggerable: true, + class: true + }, + 'bpmn:ScriptTask': { + async: true, + isForCompensation: true, + autoStoreVariables: true + }, + 'bpmn:ManualTask': { + async: true, + isForCompensation: true + }, + 'bpmn:ReceiveTask': { + async: true, + isForCompensation: true + }, + 'bpmn:SendTask': { + async: true, + isForCompensation: true + }, + 'bpmn:BusinessRuleTask': { + async: true, + isForCompensation: true, + ruleVariablesInput: true, + rules: true, + resultVariable: true, + exclude: true + } +}; diff --git a/src/components/BpmnDesign/index.vue b/src/components/BpmnDesign/index.vue index dbcb264..68dc9c8 100644 --- a/src/components/BpmnDesign/index.vue +++ b/src/components/BpmnDesign/index.vue @@ -61,7 +61,7 @@ + + diff --git a/src/components/BpmnDesign/panel/property/ListenerParam.vue b/src/components/BpmnDesign/panel/property/ListenerParam.vue new file mode 100644 index 0000000..1c869c2 --- /dev/null +++ b/src/components/BpmnDesign/panel/property/ListenerParam.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/src/components/BpmnDesign/panel/property/TaskListener.vue b/src/components/BpmnDesign/panel/property/TaskListener.vue new file mode 100644 index 0000000..1f7379e --- /dev/null +++ b/src/components/BpmnDesign/panel/property/TaskListener.vue @@ -0,0 +1,217 @@ + + + + diff --git a/src/main.ts b/src/main.ts index f0a3fdd..dc7c438 100644 --- a/src/main.ts +++ b/src/main.ts @@ -30,6 +30,10 @@ import './permission'; // 国际化 import i18n from '@/lang/index'; +// vxeTable +import VXETable from 'vxe-table'; +import 'vxe-table/lib/style.css'; + const app = createApp(App); app.use(HighLight); @@ -37,6 +41,7 @@ app.use(ElementIcons); app.use(router); app.use(store); app.use(i18n); +app.use(VXETable); app.use(plugins); // 自定义指令 directive(app); diff --git a/src/types/bpmn.d.ts b/src/types/bpmn.d.ts new file mode 100644 index 0000000..983ef08 --- /dev/null +++ b/src/types/bpmn.d.ts @@ -0,0 +1,15 @@ +declare module 'bpmnDesign' { + export interface ParamVO { + type: string; + name: string; + value: string; + } + + export interface TaskListenerVO { + event: string; + type: string; + name: string; + className: string; + params: ParamVO[]; + } +} diff --git a/vite.config.ts b/vite.config.ts index 28342df..166e229 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -71,6 +71,10 @@ export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => { 'bpmn-js/lib/features/palette/PaletteProvider', 'bpmn-js/lib/features/context-pad/ContextPadProvider', + 'element-plus/es/components/container/style/css', + 'element-plus/es/components/aside/style/css', + 'element-plus/es/components/main/style/css', + 'element-plus/es/components/header/style/css', 'element-plus/es/components/button-group/style/css', 'element-plus/es/components/radio-button/style/css', 'element-plus/es/components/checkbox-group/style/css',