Эх сурвалжийг харах

:zap: 增加流程部署功能

smallchill 7 жил өмнө
parent
commit
8af7d66399

+ 16 - 0
src/api/flow/flow.js

@@ -63,6 +63,22 @@ export const changeState = (params) => {
   })
 }
 
+export const deployUpload = (category, files) => {
+  const formData = new FormData();
+  formData.append('category', category);
+  files.forEach(file => {
+    formData.append('files', file);
+  });
+  return request({
+    headers: {
+      "Content-Type": "multipart/form-data"
+    },
+    url: '/api/blade-flow/manager/deploy-upload',
+    method: 'post',
+    data: formData
+  })
+}
+
 export const deleteDeployment = (deploymentIds) => {
   return request({
     url: '/api/blade-flow/manager/delete-deployment',

+ 20 - 0
src/util/flow.js

@@ -0,0 +1,20 @@
+/**
+ * 工作流统一分类格式
+ * @param category 分类字典号
+ * @returns {string}
+ */
+export function flowCategory(category) {
+  return `flow_${category}`;
+}
+
+/**
+ * 根据key获取流程路由
+ * @param routes
+ * @param key
+ */
+export function flowRoute(routes, key) {
+  const data = routes.filter(d => {
+    return d.routeKey === key;
+  });
+  return data.length === 0 ? [] : data[0].routeValue;
+}

+ 0 - 12
src/util/func.js

@@ -78,15 +78,3 @@ export function split(str) {
   return str ? String(str).split(',') : '';
 }
 
-/**
- * 根据key获取流程路由
- * @param routes
- * @param key
- */
-export function getFlowRoute(routes, key) {
-  const data = routes.filter(d => {
-    return d.routeKey === key;
-  });
-  return data.length === 0 ? [] : data[0].routeValue;
-}
-

+ 32 - 10
src/views/flow/deploy.vue

@@ -5,14 +5,20 @@
 </template>
 
 <script>
+  import {deployUpload} from "@/api/flow/flow";
+  import {flowCategory} from "@/util/flow";
+
   export default {
     data() {
       return {
         form: {
+          flowCategory: '',
           imgUrl: [],
+          file: {},
         },
         option: {
           labelWidth: 120,
+          menuBtn: false,
           column: [
             {
               label: '流程类型',
@@ -38,28 +44,44 @@
               loadText: '附件上传中,请稍等',
               span: 24,
               propsHttp: {
-                res: 'data.0'
+                res: 'data'
               },
               tip: '请上传 bpmn20.xml 标准格式文件',
+              action: '/api/blade-flow/manager/check-upload'
             },
           ]
         }
       }
     },
     methods: {
-      uploadBefore(file, done, loading) {
-        console.log(file)
+      uploadBefore(file, done) {
+        this.$message.success('部署开始')
+        this.file = file;
         done()
-        this.$message.success('上传前的方法')
       },
       uploadAfter(res, done, loading) {
-        console.log(res)
-        done()
-        this.$message.success('上传后的方法')
+        if (!this.form.flowCategory) {
+          this.$message.warning('清先选择流程类型');
+          loading()
+          return false;
+        }
+        if (res.success) {
+          deployUpload(flowCategory(this.form.flowCategory), [this.file]).then(res => {
+            const data = res.data;
+            if (data.success) {
+              this.$message.success('部署结束')
+              done()
+            } else {
+              this.$message.error(data.msg);
+              loading()
+            }
+          })
+        } else {
+          this.$message.warning('请上传 bpmn20.xml 标准格式文件');
+          loading()
+          return false;
+        }
       },
-      submit() {
-        this.$message.success('当前数据' + JSON.stringify(this.form))
-      }
     }
   }
 </script>

+ 1 - 1
src/views/flow/follow.vue

@@ -34,8 +34,8 @@
 </template>
 
 <script>
-  import {followList, deleteProcessInstance} from "@/api/flow/flow";
   import {mapGetters} from "vuex";
+  import {followList, deleteProcessInstance} from "@/api/flow/flow";
 
   export default {
     data() {

+ 3 - 2
src/views/flow/manager.vue

@@ -103,8 +103,9 @@
 </template>
 
 <script>
-  import {managerList, changeState, deleteDeployment} from "@/api/flow/flow";
   import {mapGetters} from "vuex";
+  import {managerList, changeState, deleteDeployment} from "@/api/flow/flow";
+  import {flowCategory} from "@/util/flow";
 
   export default {
     data() {
@@ -292,7 +293,7 @@
       onLoad(page, params = {}) {
         const values = {
           ...params,
-          category: (params.category) ? `flow_${params.category}` : null
+          category: (params.category) ? flowCategory(params.category) : null
         }
         managerList(page.currentPage, page.pageSize, values).then(res => {
           const data = res.data.data;

+ 4 - 3
src/views/flow/model.vue

@@ -110,10 +110,11 @@
 </template>
 
 <script>
-  import {getDictionary} from "@/api/system/dict";
-  import {modelList, removeModel, deployModel} from "@/api/flow/flow";
   import {mapGetters} from "vuex";
   import website from '@/config/website';
+  import {getDictionary} from "@/api/system/dict";
+  import {modelList, removeModel, deployModel} from "@/api/flow/flow";
+  import {flowCategory} from "@/util/flow";
 
   export default {
     data() {
@@ -237,7 +238,7 @@
           });
           return;
         }
-        deployModel({ modelId: this.selectionId, category: `flow_${this.categoryValue}` }).then(res =>{
+        deployModel({ modelId: this.selectionId, category: flowCategory(this.categoryValue) }).then(res =>{
           const data = res.data;
           if (data.success) {
             this.$message({

+ 3 - 3
src/views/work/claim.vue

@@ -63,7 +63,7 @@
 <script>
   import {mapGetters} from "vuex";
   import {claimList, claimTask} from "@/api/work/work";
-  import {getFlowRoute} from "@/util/func";
+  import {flowCategory, flowRoute} from "@/util/flow";
 
   export default {
     data() {
@@ -165,7 +165,7 @@
           });
       },
       handleDetail(row) {
-        this.$router.push({path: `/work/process/${getFlowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`});
+        this.$router.push({path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`});
       },
       handleImage(row) {
         this.flowUrl = `/api/blade-flow/process/diagram-view?processInstanceId=${row.processInstanceId}`;
@@ -174,7 +174,7 @@
       onLoad(page, params = {}) {
         const values = {
           ...params,
-          category: (params.category) ? `flow_${params.category}` : null
+          category: (params.category) ? flowCategory(params.category) : null
         }
         claimList(page.currentPage, page.pageSize, values).then(res => {
           const data = res.data.data;

+ 3 - 3
src/views/work/done.vue

@@ -56,7 +56,7 @@
 <script>
   import {mapGetters} from "vuex";
   import {doneList} from "@/api/work/work";
-  import {getFlowRoute} from "@/util/func";
+  import {flowCategory, flowRoute} from "@/util/flow";
 
   export default {
     data() {
@@ -141,7 +141,7 @@
         this.selectionList = list;
       },
       handleDetail(row) {
-        this.$router.push({ path: `/work/process/${getFlowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}` });
+        this.$router.push({path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}`});
       },
       handleImage(row) {
         this.flowUrl = `/api/blade-flow/process/diagram-view?processInstanceId=${row.processInstanceId}`;
@@ -150,7 +150,7 @@
       onLoad(page, params = {}) {
         const values = {
           ...params,
-          category: (params.category) ? `flow_${params.category}` : null
+          category: (params.category) ? flowCategory(params.category) : null
         }
         doneList(page.currentPage, page.pageSize, values).then(res => {
           const data = res.data.data;

+ 3 - 3
src/views/work/send.vue

@@ -60,7 +60,7 @@
 <script>
   import {mapGetters} from "vuex";
   import {sendList} from "@/api/work/work";
-  import {getFlowRoute} from "@/util/func";
+  import {flowCategory,flowRoute} from "@/util/flow";
 
   export default {
     data() {
@@ -150,7 +150,7 @@
         this.selectionList = list;
       },
       handleDetail(row) {
-        this.$router.push({ path: `/work/process/${getFlowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}` });
+        this.$router.push({ path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}` });
       },
       handleImage(row) {
         this.flowUrl = `/api/blade-flow/process/diagram-view?processInstanceId=${row.processInstanceId}`;
@@ -159,7 +159,7 @@
       onLoad(page, params = {}) {
         const values = {
           ...params,
-          category: (params.category) ? `flow_${params.category}` : null
+          category: (params.category) ? flowCategory(params.category) : null
         }
         sendList(page.currentPage, page.pageSize, values).then(res => {
           const data = res.data.data;

+ 3 - 3
src/views/work/start.vue

@@ -64,7 +64,7 @@
 <script>
   import {mapGetters} from "vuex";
   import {startList} from "@/api/work/work";
-  import {getFlowRoute} from "@/util/func";
+  import {flowCategory,flowRoute} from "@/util/flow";
 
   export default {
     data() {
@@ -154,7 +154,7 @@
       },
       handleStart(row) {
         console.log(this.flowRoutes)
-        this.$router.push({path: `/work/process/${getFlowRoute(this.flowRoutes, row.category)}/form/${row.id}`});
+        this.$router.push({path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/form/${row.id}`});
       },
       handleImage(row) {
         this.flowUrl = `/api/blade-flow/process/resource-view?processDefinitionId=${row.id}`;
@@ -163,7 +163,7 @@
       onLoad(page, params = {}) {
         const values = {
           ...params,
-          category: (params.category) ? `flow_${params.category}` : null
+          category: (params.category) ? flowCategory(params.category) : null
         }
         startList(page.currentPage, page.pageSize, values).then(res => {
           const data = res.data.data;

+ 4 - 4
src/views/work/todo.vue

@@ -63,7 +63,7 @@
 <script>
   import {mapGetters} from "vuex";
   import {todoList} from "@/api/work/work";
-  import {getFlowRoute} from "@/util/func";
+  import {flowCategory,flowRoute} from "@/util/flow";
 
   export default {
     data() {
@@ -148,10 +148,10 @@
         this.selectionList = list;
       },
       handleWork(row) {
-        this.$router.push({ path: `/work/process/${getFlowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}` });
+        this.$router.push({ path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/handle/${row.taskId}/${row.processInstanceId}/${row.businessId}` });
       },
       handleDetail(row) {
-        this.$router.push({ path: `/work/process/${getFlowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}` });
+        this.$router.push({ path: `/work/process/${flowRoute(this.flowRoutes, row.category)}/detail/${row.processInstanceId}/${row.businessId}` });
       },
       handleImage(row) {
         this.flowUrl = `/api/blade-flow/process/diagram-view?processInstanceId=${row.processInstanceId}`;
@@ -160,7 +160,7 @@
       onLoad(page, params = {}) {
         const values = {
           ...params,
-          category: (params.category) ? `flow_${params.category}` : null
+          category: (params.category) ? flowCategory(params.category) : null
         }
         todoList(page.currentPage, page.pageSize, values).then(res => {
           const data = res.data.data;