From 31f4cb4c98684b3324399b5468d955919fc8de88 Mon Sep 17 00:00:00 2001
From: wangting <wangting@vci-tech.com>
Date: 星期四, 16 一月 2025 10:41:03 +0800
Subject: [PATCH] 调整样式,修改流程模板定义

---
 Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue |  123 ++++++++++++++++++++++++++++++++++------
 Source/plt-web/plt-web-ui/src/styles/ui.scss                               |   14 +++-
 Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue   |    2 
 3 files changed, 114 insertions(+), 25 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/styles/ui.scss b/Source/plt-web/plt-web-ui/src/styles/ui.scss
index de021e8..7336bb7 100644
--- a/Source/plt-web/plt-web-ui/src/styles/ui.scss
+++ b/Source/plt-web/plt-web-ui/src/styles/ui.scss
@@ -371,17 +371,18 @@
 }
 .avue-dialog .el-dialog{
   top:50%;
-  max-height: calc(100% - 80px);
+  max-height: calc(100% - 50px);
+  max-width: calc(100% - 50px);
   -webkit-transform: translate(-50%, 0);
   transform: translate(-50%, -50%);
   margin-top: 0 !important;
 }
 .avue-dialog .el-dialog__body{
   padding: 15px 15px 0px 15px; // 涓婂彸涓嬪乏 鍙栨秷琛ㄦ牸涓嬭竟璺濓紙浼氬嚭鐜版粴鍔ㄦ潯锛�
-  margin-bottom: 10px !important;
+  margin-bottom: 5px !important;
 }
 .avue-dialog .el-dialog__body .avue-form{
-  margin: 0px auto 40px; // 鍗曠嫭缁欏璇濇閲岀殑avue琛ㄥ崟鍔犱笂涓嬭竟璺�
+  margin: 0px auto 45px; // 鍗曠嫭缁欏璇濇閲岀殑avue琛ㄥ崟鍔犱笂涓嬭竟璺�
 }
 .dialog-footer{
   background-color: #ffffff;
@@ -408,15 +409,18 @@
 .avue-crud table td{
   line-height: 22px;
 }
+.avue-crud__header{
+  min-height: 35px;
+}
 /**宸︿晶鎿嶄綔鏍�**/
 .avue-crud__left{
   display: flex;
-  align-items: center;
+  align-items: start;
 }
 /**鍙充晶渚ф搷浣滄爮**/
 .avue-crud__right{
   display: flex;
-  align-items: center;
+  align-items: start;
 }
 /**琛ㄥ唴鎿嶄綔鏍�**/
 .avue-crud .avue-crud__menu{
diff --git a/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue
index 5e25bd7..35701d4 100644
--- a/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/processTemplate/customDefine/index.vue
@@ -1,7 +1,7 @@
 <template>
   <!--娴佺▼妯℃澘瀹氫箟-->
   <basic-container style="height: calc(100vh - 123px)">
-    <div style="margin-bottom: 5px;">
+    <div style="margin-bottom: 10px;">
       娴佺▼鍒嗙被锛�
       <el-select v-model="tempType" :clearable="true" placeholder="璇烽�夋嫨" size="small"
                  style="width: 300px;margin-right: 20px;"
@@ -77,22 +77,45 @@
                 </span>
             </el-button>
           </template>
-
         </avue-crud>
         <!-- 鍒涘缓缂栬緫鑷畾涔夊璇濇    -->
         <el-dialog
           v-dialogDrag
           v-loading="dialogLoading"
-          :title="dialogType === 'add' ? ' 鍒涘缓' : '缂栬緫'"
+          title="娴佺▼鑷畾涔�"
           :visible.sync="dialogVisible"
           append-to-body="true"
           class="avue-dialog"
-          width="1000px"
-          @close="dialogClose"
+          :close-on-press-escape="false"
+          :fullscreen="true"
+          :before-close="handleNutflowClose"
+          custom-class="wf-dialog"
         >
+          <wf-design-base v-if="nutflowOption.step === 1"
+                          class="animated fadeIn"
+                          style="height: calc(100vh - 178px);"
+                          ref="wf-design"
+                          :options="nutflowOption.step1"></wf-design-base>
+          <wf-design-base v-if="nutflowOption.step === 2"
+                          class="animated fadeIn"
+                          style="height: calc(100vh - 178px);"
+                          ref="wf-design-view"
+                          :options="nutflowOption.step2"></wf-design-base>
             <span slot="footer" class="dialog-footer">
-              <el-button size="small" type="primary" @click="saveHandler">纭� 瀹�</el-button>
-              <el-button size="small" @click="dialogClose">鍙� 娑�</el-button>
+              <el-button v-if="nutflowOption.step === 1"
+                         size="small"
+                         type="success"
+                         @click="handleStep(1)">涓� 涓� 姝�</el-button>
+              <el-button v-if="nutflowOption.step === 2"
+                         size="small"
+                         type="success"
+                         @click="handleStep(-1)">涓� 涓� 姝�</el-button>
+              <el-button v-if="nutflowOption.step === 2"
+                         size="small"
+                         type="primary"
+                         @click="handleSubmitModel">纭� 瀹�</el-button>
+              <el-button size="small"
+                         @click="handleNutflowClose(() => {}, true)">鍙� 娑�</el-button>
             </span>
         </el-dialog>
         <!-- 瀵煎叆   -->
@@ -103,7 +126,7 @@
 
       <el-main width="60%">
         <div style="height: 100%;position: relative;">
-          <flow-design style="padding-top: 5px" :is-display.sync="flowBox" :process-definition-id="processDefinitionId" height="calc(100vh - 190px)"></flow-design>
+          <flow-design style="padding-top: 5px" :is-display.sync="flowBox" :process-definition-id="processDefinitionId" height="calc(100vh - 195px)"></flow-design>
           <div style="position: absolute;top:0;left: 0;height: 100%;width: 100%"></div>
         </div>
       </el-main>
@@ -138,6 +161,18 @@
       dialogType:'add',
       processDefinitionId: '',
       flowBox: false,
+      nutflowOption: {
+        process: {},
+        step: 1,
+        step1: {
+          toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'],
+        },
+        step2: {
+          mode: 'view',
+          simulation: true,
+          minimap: true,
+        }
+      }
     }
   },
   computed: {
@@ -225,29 +260,75 @@
       this.dialogVisible = true;
       this.dialogType = 'edit'
     },
-    // 缂栬緫淇濆瓨
-    saveHandler() {
+    //淇濆瓨娴佺▼閰嶇疆
+    handleSubmitModel() {
+      const registry = this.$refs['wf-design-view'].getElementRegistry().getAll()
+      const {businessObject} = registry[0]
+      const {id, name, documentation} = businessObject
+      const description = (documentation && documentation.length > 0) ? documentation[0].text : null
+      const params = {
+        ...this.nutflowOption.process,
+        modelKey: id,
+        name,
+        description,
+        modelEditorXml: this.nutflowOption.process.xml
+      }
       if(this.dialogType=='add'){
-        saveProcessTemp(this.form).then(res => {
+        saveProcessTemp(params).then(res => {
           if (res.data.code === 200) {
             this.$message.success(res.data.obj);
             this.getTableList();
+            this.handleNutflowClose()
           }
         });
       }else{
-        updateProcessTemp(this.form).then(res => {
+        updateProcessTemp(params).then(res => {
           if (res.data.code === 200) {
             this.$message.success(res.data.obj);
             this.getTableList();
+            this.handleNutflowClose()
           }
         })
       }
-
     },
-    dialogClose(){
-      this.form={};
-      this.dialogLoading=false;
-      this.dialogVisible=false;
+    handleStep(step) {
+      if (step === 1) { // 涓嬩竴姝�
+        this.$refs['wf-design'].getData('xml').then(data => {
+          this.$set(this.nutflowOption.step1, 'xml', data)
+          this.$set(this.nutflowOption.step2, 'xml', data)
+          this.$set(this.nutflowOption.process, 'xml', data)
+          this.$set(this.nutflowOption, 'step', 2)
+        })
+      } else {
+        this.$set(this.nutflowOption, 'step', 1)
+      }
+    },
+    handleNutflowClose(done, flag) {
+      const initOption = {
+        process: {},
+        step: 1,
+        step1: {
+          toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'],
+        },
+        step2: {
+          mode: 'view',
+          simulation: true,
+          minimap: true,
+        }
+      }
+      if (done || flag) {
+        this.$confirm('纭畾瑕佸叧闂悧锛熷叧闂湭淇濆瓨鐨勪慨鏀归兘浼氫涪澶便��', '璀﹀憡', {
+          type: 'warning'
+        }).then(() => {
+          this.$set(this, 'nutflowOption', initOption)
+          if (typeof done == 'function') done()
+          this.dialogVisible = false
+        }).catch(() => {
+        })
+      } else {
+        this.$set(this, 'nutflowOption', initOption)
+        this.dialogVisible = false
+      }
     },
     // 鍒犻櫎
     handleDel(row,index) {
@@ -340,6 +421,10 @@
 }
 </script>
 
-<style scoped>
-
+<style lang="scss" scoped>
+::v-deep {
+  .avue-dialog .el-dialog__body{
+    margin-bottom: 0 !important;
+  }
+}
 </style>
diff --git a/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue b/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue
index 8c4b080..f13558c 100644
--- a/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/processTemplate/customType/index.vue
@@ -88,7 +88,7 @@
         addBtn:false,
         editBtn:false,
         delBtn:false,
-        calcHeight: -60,
+        calcHeight: -55,
         align:'left',
         headerAlign:'center',
         menuWidth:160,

--
Gitblit v1.9.3