From ae6d20ec4a30b7e796feb05958bcfc80e55f247b Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期四, 20 七月 2023 15:21:45 +0800
Subject: [PATCH] 整合代码部署

---
 Source/UBCS-WEB/dist/src/views/flow/manager.vue |  338 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 338 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS-WEB/dist/src/views/flow/manager.vue b/Source/UBCS-WEB/dist/src/views/flow/manager.vue
new file mode 100644
index 0000000..11d8184
--- /dev/null
+++ b/Source/UBCS-WEB/dist/src/views/flow/manager.vue
@@ -0,0 +1,338 @@
+<template>
+  <basic-container>
+    <avue-crud :option="option"
+               :table-loading="loading"
+               :data="data"
+               ref="crud"
+               v-model="form"
+               :page.sync="page"
+               :permission="permissionList"
+               @search-change="searchChange"
+               @search-reset="searchReset"
+               @selection-change="selectionChange"
+               @current-change="currentChange"
+               @size-change="sizeChange"
+               @refresh-change="refreshChange"
+               @on-load="onLoad">
+      <template slot="menuLeft">
+        <el-radio-group v-model="mode" size="small">
+          <el-radio-button label="1">閫氱敤娴佺▼</el-radio-button>
+          <el-radio-button label="2">瀹氬埗娴佺▼</el-radio-button>
+        </el-radio-group>
+      </template>
+      <template slot-scope="scope" slot="menu">
+        <el-button type="text"
+                   size="small"
+                   icon="el-icon-refresh"
+                   v-if="permission.flow_manager_state"
+                   @click.stop="handleState(scope.row,scope.index)">鍙樻洿鐘舵��
+        </el-button>
+        <el-button type="text"
+                   size="small"
+                   icon="el-icon-search"
+                   v-if="permission.flow_manager_image"
+                   @click.stop="handleImage(scope.row,scope.index)">娴佺▼鍥�
+        </el-button>
+        <el-button type="text"
+                   size="small"
+                   icon="el-icon-delete"
+                   v-if="permission.flow_manager_remove"
+                   @click.stop="handleSlotDelete(scope.row,scope.index)">鍒犻櫎
+        </el-button>
+      </template>
+      <template slot-scope="{row}"
+                slot="tenantId">
+        <el-tag>{{row.tenantId===''?'閫氱敤':row.tenantId}}</el-tag>
+      </template>
+      <template slot-scope="{row}"
+                slot="version">
+        <el-tag>v{{row.version}}</el-tag>
+      </template>
+      <template slot-scope="{row}"
+                slot="suspensionState">
+        <el-tag>{{row.suspensionState===1?'婵�娲�':'鎸傝捣'}}</el-tag>
+      </template>
+      <template slot-scope="{row}"
+                slot="category">
+        <el-tag>{{row.categoryName}}</el-tag>
+      </template>
+    </avue-crud>
+    <flow-design is-dialog :is-display.sync="flowBox" :process-definition-id="processDefinitionId"></flow-design>
+    <el-dialog title="娴佺▼鍙樻洿"
+               append-to-body
+               :visible.sync="stateBox"
+               width="20%">
+      <el-form :model="form"
+               ref="form"
+               label-width="80px">
+        <el-form-item label="娴佺▼鐘舵��">
+          <el-select v-model="flowState" placeholder="璇烽�夋嫨" value="">
+            <el-option
+              v-for="item in stateOptions"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <span slot="footer"
+            class="dialog-footer">
+        <el-button @click="stateBox = false">鍏� 闂�</el-button>
+        <el-button type="primary"
+                   @click="handleDoState">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+  </basic-container>
+</template>
+
+<script>
+  import {mapGetters} from "vuex";
+  import {managerList, changeState, deleteDeployment} from "@/api/flow/flow";
+  import {flowCategory} from "@/util/flow";
+
+  export default {
+    data() {
+      return {
+        form: {},
+        mode: '1',
+        selectionId: '',
+        selectionList: [],
+        query: {},
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        processDefinitionId: '',
+        flowBox: false,
+        stateBox: false,
+        flowState: '',
+        stateOptions: [{
+          value: 'active',
+          label: '婵�娲�'
+        }, {
+          value: 'suspend',
+          label: '鎸傝捣'
+        }],
+        option: {
+          height: 'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          selection: true,
+          editBtn: false,
+          addBtn: false,
+          viewBtn: false,
+          delBtn: false,
+          dialogWidth: 900,
+          menuWidth: 250,
+          dialogClickModal: false,
+          column: [
+            {
+              label: '绉熸埛缂栧彿',
+              prop: 'tenantId',
+              slot: true,
+              width: 120,
+            },
+            {
+              label: '娴佺▼涓婚敭',
+              prop: 'id',
+            },
+            {
+              label: '娴佺▼鏍囪瘑',
+              prop: 'key',
+              search: true,
+              width: 150,
+            },
+            {
+              label: '娴佺▼鍚嶇О',
+              prop: 'name',
+              width: 150,
+            },
+            {
+              label: "娴佺▼鍒嗙被",
+              type: "select",
+              row: true,
+              dicUrl: "/api/ubcs-system/dict/dictionary?code=flow",
+              props: {
+                label: "dictValue",
+                value: "dictKey"
+              },
+              dataType: "number",
+              slot: true,
+              prop: "category",
+              search: true,
+              width: 100,
+            },
+            {
+              label: '娴佺▼鐗堟湰',
+              prop: 'version',
+              slot: true,
+              width: 80,
+            },
+            {
+              label: '鐘舵��',
+              prop: 'suspensionState',
+              slot: true,
+              width: 80,
+            },
+            {
+              label: '閮ㄧ讲鏃堕棿',
+              prop: 'deploymentTime',
+              width: 165,
+            },
+          ]
+        },
+        data: []
+      };
+    },
+    watch: {
+      'mode'() {
+        this.onLoad(this.page);
+      }
+    },
+    computed: {
+      ...mapGetters(["permission"]),
+      permissionList() {
+        return {
+          delBtn: this.vaildData(this.permission.flow_manager_remove, false),
+        };
+      },
+      ids() {
+        let ids = [];
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id);
+        });
+        return ids.join(",");
+      },
+      deploymentIds() {
+        let ids = [];
+        this.selectionList.forEach(ele => {
+          ids.push(ele.deploymentId);
+        });
+        return ids.join(",");
+      }
+    },
+    methods: {
+      searchReset() {
+        this.query = {};
+        this.onLoad(this.page);
+      },
+      searchChange(params, done) {
+        this.query = params;
+        this.page.currentPage = 1;
+        this.onLoad(this.page, params);
+        done();
+      },
+      selectionChange(list) {
+        this.selectionList = list;
+      },
+      selectionClear() {
+        this.selectionList = [];
+        this.$refs.crud.toggleSelection();
+      },
+      handleDelete() {
+        if (this.selectionList.length === 0) {
+          this.$message.warning("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+          return;
+        }
+        this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+          confirmButtonText: "纭畾",
+          cancelButtonText: "鍙栨秷",
+          type: "warning"
+        })
+          .then(() => {
+            return deleteDeployment(this.deploymentIds);
+          })
+          .then(() => {
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+            this.$refs.crud.toggleSelection();
+            this.onLoad(this.page);
+          });
+      },
+      handleSlotDelete(row) {
+        this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
+          confirmButtonText: "纭畾",
+          cancelButtonText: "鍙栨秷",
+          type: "warning"
+        })
+          .then(() => {
+            return deleteDeployment(row.deploymentId);
+          })
+          .then(() => {
+            this.$message({
+              type: "success",
+              message: "鎿嶄綔鎴愬姛!"
+            });
+            this.$refs.crud.toggleSelection();
+            this.onLoad(this.page);
+          });
+      },
+      handleState(row) {
+        this.stateBox = true;
+        this.selectionId = row.id;
+      },
+      handleDoState() {
+        if (!this.flowState) {
+          this.$message({
+            type: "warn",
+            message: "璇峰厛閫夋嫨娴佺▼鐘舵��!"
+          });
+          return;
+        }
+        changeState({processId: this.selectionId, state: this.flowState}).then(res => {
+          const data = res.data;
+          if (data.success) {
+            this.$message({
+              type: "success",
+              message: data.msg
+            });
+            this.stateBox = false;
+            this.onLoad(this.page);
+          } else {
+            this.$message({
+              type: "warn",
+              message: data.msg
+            });
+          }
+        })
+      },
+      handleImage(row) {
+        this.processDefinitionId = row.id;
+        this.flowBox = true;
+      },
+      currentChange(currentPage) {
+        this.page.currentPage = currentPage;
+      },
+      sizeChange(pageSize) {
+        this.page.pageSize = pageSize;
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query);
+      },
+      onLoad(page, params = {}) {
+        const values = {
+          ...params,
+          category: (params.category) ? flowCategory(params.category) : null,
+          mode: this.mode
+        };
+        this.loading = true;
+        managerList(page.currentPage, page.pageSize, Object.assign(values, this.query)).then(res => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.data = data.records;
+          this.loading = false;
+          this.selectionClear();
+        });
+      }
+    }
+  };
+</script>

--
Gitblit v1.9.3