From 715b0f45cf00a6ae98594d8463298646ee4c0b07 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 14 八月 2024 16:37:28 +0800
Subject: [PATCH] 业务类型整合代码&&对话框表格 表单边距调整

---
 Source/plt-web/plt-web-ui/src/App.vue                                            |   10 
 Source/plt-web/plt-web-ui/src/components/flow-cycle/flowchartEditor.vue          |   17 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue     |   57 +++-
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue    |    4 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue |  551 +++++++++++++++++++++++++++++++++++++++++++------
 5 files changed, 535 insertions(+), 104 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/App.vue b/Source/plt-web/plt-web-ui/src/App.vue
index 5dd0d0d..edaa14d 100644
--- a/Source/plt-web/plt-web-ui/src/App.vue
+++ b/Source/plt-web/plt-web-ui/src/App.vue
@@ -39,8 +39,14 @@
   margin-top: 0 !important;
 }
 .avue-dialog .el-dialog__body{
-  padding: 20px 20px 30px 20px; // 涓婂彸涓嬪乏
-  margin-bottom: 20px !important;
+  padding: 20px 20px 0px 20px; // 涓婂彸涓嬪乏 鍙栨秷琛ㄦ牸涓嬭竟璺濓紙浼氬嚭鐜版粴鍔ㄦ潯锛�
+  margin-bottom: 10px !important;
+}
+.avue-dialog .el-dialog__body .avue-form{
+  margin: 0px auto 40px; // 鍗曠嫭缁欏璇濇閲岀殑avue琛ㄥ崟鍔犱笂涓嬭竟璺�
+}
+.avue-crud .avue-form {
+  margin: 0px auto !important; // 琛ㄦ牸鍐呯殑琛ㄥ崟锛堟瘮濡�:鎼滅储鏍忥級 鍙栨秷涓嬭竟璺�
 }
 .avue--detail .el-col{
   margin-bottom: 0;
diff --git a/Source/plt-web/plt-web-ui/src/components/flow-cycle/flowchartEditor.vue b/Source/plt-web/plt-web-ui/src/components/flow-cycle/flowchartEditor.vue
index 2555966..7e2245e 100644
--- a/Source/plt-web/plt-web-ui/src/components/flow-cycle/flowchartEditor.vue
+++ b/Source/plt-web/plt-web-ui/src/components/flow-cycle/flowchartEditor.vue
@@ -25,7 +25,7 @@
           </div>
         </div>
 
-        <div v-if="type !== 'detail'" class="vfe-chart-panel">
+        <div  class="vfe-chart-panel">
           <div class="vfe-chart-panel-detail">
             <editor-detail-panel
               ref="EditorDetailPanel"
@@ -131,13 +131,13 @@
     onAfterChange(e) {
       console.log(e)
       try {
-        if('edit' === this.$store.state.flow.type){
-          this.$refs.flowChart.propsAPI.remove(e.item);
-          if(e.action === 'remove'){
-            this.$message.error('缂栬緫鐘舵�佷笅涓嶈兘鍒囨崲閫変腑椤癸紒');
-          }
-          return;
-        }
+        // if('edit' === this.$store.state.flow.type){
+        //   this.$refs.flowChart.propsAPI.remove(e.item);
+        //   if(e.action === 'remove'){
+        //     this.$message.error('缂栬緫鐘舵�佷笅涓嶈兘鍒囨崲閫変腑椤癸紒');
+        //   }
+        //   return;
+        // }
         // 濡傛灉娣诲姞浜嗚妭鐐逛笖鑺傜偣娌℃湁琚洿鏀硅繃
         if (e.action === "add" && e.model.type === "node") {
           if (!e.model.change) {
@@ -148,7 +148,6 @@
           }
         }
       } catch (err) {
-        console.log(err)
         // 澶勭悊鑺傜偣 ID 鍐茬獊閿欒
         if (
           err.message ===
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
index c137fde..b5c03e9 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/businessType/index.vue
@@ -48,150 +48,413 @@
     </el-aside>
     <el-main>
       <basic-container>
-        <div style="display: flex;justify-content: center">
-          <div class="descBox">
-            <el-descriptions  :column="1" border class="margin-top" size="medium" title="灞炴�т俊鎭�">
+        <div style="display: flex;justify-content: center; height: 230px">
+          <div class="descBox" style="max-height: 100px">
+            <el-descriptions :column="1" border class="margin-top" size="medium" title="灞炴�т俊鎭�">
               <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.name"></i>
                   鍚嶇О
+                </template>
+                <el-tag v-if="nodeRow.id">{{ nodeRow.id }}</el-tag>
+              </el-descriptions-item>
+              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
+                                    :labelStyle="descriptionOption.labelStyle">
+                <template slot="label">
+                  鏍囩
                 </template>
                 <el-tag v-if="nodeRow.name">{{ nodeRow.name }}</el-tag>
               </el-descriptions-item>
               <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.label"></i>
-                  鏍囩
-                </template>
-                <el-tag v-if="nodeRow.label">{{ nodeRow.label }}</el-tag>
-              </el-descriptions-item>
-              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
-                                    :labelStyle="descriptionOption.labelStyle">
-                <template slot="label">
-                  <i :class="icons.implClass"></i>
                   瀹炵幇绫�
                 </template>
-                <el-tooltip class="item" effect="dark" :content="nodeRow.implClass" placement="top-start">
-                  <el-tag v-if="nodeRow.implClass">{{ nodeRow.implClass }}</el-tag>
+                <el-tooltip v-if="nodeRow.implClass" :content="nodeRow.implClass" class="item" effect="dark"
+                            placement="top-start">
+                  <el-tag style="max-width: 250px;overflow: hidden">{{ nodeRow.implClass }}
+                  </el-tag>
                 </el-tooltip>
               </el-descriptions-item>
               <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.desc"></i>
                   鎻忚堪
                 </template>
-                <el-tag v-if="nodeRow.description">{{ nodeRow.description }}</el-tag>
+                <span v-if="nodeRow.description">{{ nodeRow.description }}</span>
               </el-descriptions-item>
             </el-descriptions>
           </div>
           <div class="descBox">
-            <el-descriptions  :column="1" border class="margin-top" size="medium" title="灞炴�т俊鎭�">
+            <el-descriptions :column="1" border class="margin-top" size="medium" title="鐗堟湰瑙勫垯">
               <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.name"></i>
-                  鍚嶇О
+                  鐗堟湰瑙勫垯
                 </template>
-                <el-tag v-if="nodeRow.name">{{ nodeRow.name }}</el-tag>
+                <el-tag v-if="nodeRow.revLevel"
+                        :type="nodeRow.revLevel === '0' ? 'warning' : nodeRow.revLevel === '1' ? '' : 'success'">
+                  {{
+                    nodeRow.revLevel === '0'
+                      ? '涓嶅彲淇'
+                      : nodeRow.revLevel === '1'
+                      ? '閲囩敤涓�绾х増鏈鐞�'
+                      : '閲囩敤浜岀骇鐗堟湰绠$悊'
+                  }}
+                </el-tag>
               </el-descriptions-item>
-              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
+              <el-descriptions-item v-if="nodeRow.revLevel !== '0'" :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.label"></i>
-                  鏍囩
+                  鐗堟湰鍙疯鍒�
                 </template>
-                <el-tag v-if="nodeRow.label">{{ nodeRow.label }}</el-tag>
+                <el-tag v-if="nodeRow.revRuleName">{{ nodeRow.revRuleName }}</el-tag>
               </el-descriptions-item>
-              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
+              <el-descriptions-item v-if="nodeRow.revLevel !== '0'" :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.implClass"></i>
-                  瀹炵幇绫�
+                  鍒嗛殧绗�
                 </template>
-                <el-tag v-if="nodeRow.implClass">{{ nodeRow.implClass }}</el-tag>
+                <el-tag v-if="nodeRow.delimiter">{{ nodeRow.delimiter }}</el-tag>
               </el-descriptions-item>
-              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
+              <el-descriptions-item v-if="nodeRow.revLevel !== '0' && nodeRow.revLevel !== '1'"
+                                    :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.desc"></i>
-                  鎻忚堪
+                  鐗堟鍙疯鍒�
                 </template>
-                <el-tag v-if="nodeRow.description">{{ nodeRow.description }}</el-tag>
+                <el-tag v-if="nodeRow.verRuleName"
+                        :type="nodeRow.verRuleName === '0' ? 'warning' : nodeRow.revLevel === '1' ? '' : 'success'">
+                  {{
+                    nodeRow.verRuleName === '0'
+                      ? '1.2.3...'
+                      : nodeRow.revLevel === '1'
+                      ? 'a.b.c...'
+                      : '0.1.2...'
+                  }}
+                </el-tag>
               </el-descriptions-item>
+
             </el-descriptions>
           </div>
           <div class="descBox">
-            <el-descriptions  :column="1" border class="margin-top" size="medium" title="灞炴�т俊鎭�">
+            <el-descriptions :column="1" border class="margin-top" size="medium" title="鐢熷懡鍛ㄦ湡">
               <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                     :labelStyle="descriptionOption.labelStyle">
                 <template slot="label">
-                  <i :class="icons.name"></i>
-                  鍚嶇О
+                  鐢熷懡鍛ㄦ湡
                 </template>
-                <el-tag v-if="nodeRow.name">{{ nodeRow.name }}</el-tag>
-              </el-descriptions-item>
-              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
-                                    :labelStyle="descriptionOption.labelStyle">
-                <template slot="label">
-                  <i :class="icons.label"></i>
-                  鏍囩
-                </template>
-                <el-tag v-if="nodeRow.label">{{ nodeRow.label }}</el-tag>
-              </el-descriptions-item>
-              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
-                                    :labelStyle="descriptionOption.labelStyle">
-                <template slot="label">
-                  <i :class="icons.implClass"></i>
-                  瀹炵幇绫�
-                </template>
-                <el-tag v-if="nodeRow.implClass">{{ nodeRow.implClass }}</el-tag>
-              </el-descriptions-item>
-              <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
-                                    :labelStyle="descriptionOption.labelStyle">
-                <template slot="label">
-                  <i :class="icons.desc"></i>
-                  鎻忚堪
-                </template>
-                <el-tag v-if="nodeRow.description">{{ nodeRow.description }}</el-tag>
+                <el-tag v-if="nodeRow.lifeCycle">{{ nodeRow.lifeCycle }}</el-tag>
               </el-descriptions-item>
             </el-descriptions>
           </div>
         </div>
-
+        <div style="margin-top: 30px">
+          <h3>灞炴�у垪琛�</h3>
+          <avue-crud
+            :data="attrData"
+            :option="attrOption">
+          </avue-crud>
+        </div>
       </basic-container>
     </el-main>
+
+    <!-- 鏂板 && 缂栬緫 -->
+    <el-dialog
+      v-dialogDrag
+      :title="title === 'add' ? '鍒涘缓' : '淇敼'"
+      :visible.sync="visible"
+      append-to-body="true"
+      class="avue-dialog"
+      width="75%"
+      @close="addDialogClose">
+      <el-form ref="form" :model="form" :rules="rules" label-width="90px">
+        <div class="dialogForm">
+          <div class="leftForm">
+            <el-form-item label="绫诲瀷鍚嶇О锛�" prop="name">
+              <el-input v-model="form.id" :readOnly="title === 'edit'"></el-input>
+            </el-form-item>
+            <el-form-item label="鏍囩锛�">
+              <el-input v-model="form.name"></el-input>
+            </el-form-item>
+            <el-form-item label="缁ф壙鑷細">
+              <el-input v-model="form.name" :readOnly="title === 'edit'"></el-input>
+            </el-form-item>
+            <el-form-item label="瀹炵幇绫伙細">
+              <el-input v-model="form.implClass"></el-input>
+            </el-form-item>
+            <el-form-item label="鎻忚堪">
+              <el-input v-model="form.description" :rows="2" type="textarea"></el-input>
+            </el-form-item>
+          </div>
+          <div class="centerForm">
+            <el-form-item label="鐗堟湰瑙勫垯锛�" label-width="100px" prop="revLevel">
+              <el-select v-model="form.revLevel">
+                <el-option label="涓嶅彲淇" value="0"></el-option>
+                <el-option label="閲囩敤涓�绾х増鏈鐞�" value="1"></el-option>
+                <el-option label="閲囩敤浜岀骇鐗堟湰绠$悊" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item v-if="form.revLevel !== '0'" label="鐗堟湰鍙疯鍒欙細" label-width="100px" prop="revLevel">
+              <div style="display: flex;gap: 5px;align-items: center">
+                <el-input v-model="form.revRuleName" :readOnly="true"></el-input>
+                <el-button plain size="small" style="margin-left: 5px;height: 30px" type="success" @click="versionAddHandler">娣诲姞</el-button>
+              </div>
+            </el-form-item>
+            <el-form-item v-if="form.revLevel !== '0'" label="鍒嗛殧绗︼細" label-width="100px" prop="revLevel">
+              <el-select v-model="form.delimiter" clearable>
+                <el-option label="." value="."></el-option>
+                <el-option label="-" value="-"></el-option>
+              </el-select>
+            </el-form-item>
+            <el-form-item v-if="form.revLevel !== '0' && form.revLevel !== '1'" label="鐗堟鍙疯鍒欙細" label-width="100px"
+                          prop="revLevel">
+              <el-select v-model="form.verRuleName" clearable>
+                <el-option label="1.2.3..." value="1.2.3..."></el-option>
+                <el-option label="a.b.c..." value="a.b.c..."></el-option>
+                <el-option label="0.1.2..." value="0.1.2..."></el-option>
+              </el-select>
+            </el-form-item>
+          </div>
+          <div class="rightForm">
+            <el-form-item label="鐢熷懡鍛ㄦ湡锛�" label-width="138px" prop="revLevel">
+              <div style="display: flex;gap: 5px;align-items: center">
+                <el-input v-model="form.lifeCycle" :readOnly="true"></el-input>
+                <el-button plain size="small" style="margin-left: 5px;height: 30px" type="success">娣诲姞</el-button>
+              </div>
+            </el-form-item>
+
+            <el-form-item label="澶囬�夌敓鍛藉懆鏈熷垪琛細" label-width="138px">
+              <div style="display: flex; align-items: center">
+                <div style="height: 200px; width: 280px; border: 1px solid #bdbbbb;overflow-y: auto">
+                  <!-- 鍐呭 -->
+                  <el-table
+                    :data="bizFormData"
+                    :show-header="false"
+                    style="width: 100%">
+                    <el-table-column
+                      align="center"
+                      prop="name">
+                    </el-table-column>
+                    <el-table-column
+                      fixed="right"
+                      label="鎿嶄綔"
+                      width="60">
+                      <template slot-scope="scope">
+                        <el-button
+                          size="small"
+                          style="color:#F56C6C;"
+                          type="text"
+                          @click.native.prevent="bizTypeDeleteRow('form',scope.$index)">
+                          绉婚櫎
+                        </el-button>
+                      </template>
+                    </el-table-column>
+                  </el-table>
+                </div>
+                <el-button plain size="mini" style="margin-left: 5px" type="success"
+                           @click="FormItemReferChange('form')">娣诲姞
+                </el-button>
+
+              </div>
+            </el-form-item>
+          </div>
+        </div>
+      </el-form>
+      <div class="bottomForm">
+        <h3>灞炴�ф睜鍒楄〃</h3>
+        <avue-crud
+          :data="dialogAttrData"
+          :option="dialogAttrOption">
+          <template slot="menuLeft">
+            <el-button icon="el-icon-plus" size="small" type="primary" @click="addDialogClickHandler">鍒涘缓</el-button>
+          </template>
+        </avue-crud>
+      </div>
+      <span slot="footer" class="dialog-footer">
+         <el-button @click="addDialogClose">鍙� 娑�</el-button>
+         <el-button type="primary" @click="addDialogSavaHandler">纭� 瀹�</el-button>
+        </span>
+    </el-dialog>
+    <el-dialog
+      v-dialogDrag
+      :visible.sync="attrPollDialogVisible"
+      append-to-body="true"
+      class="avue-dialog"
+      title="灞炴�ф睜"
+      width="60%"
+      @close="dialogAttrClose"
+    >
+      <avue-crud
+        :key="dialogAttrReload"
+        ref="dialogAttrCrud"
+        :data="dialogAttrSaveData"
+        :option="dialogAttrSaveOption"
+        :page.sync="attrPage"
+        :table-loading="dialogAttrLoading"
+        @selection-change="dialogAttrSelectChange"
+        @row-click="dialogAttrRowClickHandler"
+        @size-change="attrSizeChange"
+        @current-change="attrCurrentChange"
+        @search-change="attrHandleSearch"
+        @search-reset="attrHandleReset"
+      >
+      </avue-crud>
+      <span slot="footer" class="dialog-footer">
+         <el-button @click="dialogAttrClose">鍙� 娑�</el-button>
+         <el-button type="primary" @click="dialogAttrAddClickHandler">纭� 瀹�</el-button>
+        </span>
+    </el-dialog>
+
   </el-container>
 </template>
 
 <script>
+import basicOption from '@/util/basic-option'
 import {getBizTypes} from "@/api/modeling/businessType/api"
+import {gridAttribute} from "@/api/modeling/attributePool/api";
+import func from "@/util/func";
 
 export default {
   name: "index",
   data() {
     return {
-      form:{
-
+      dialogAttrSelectList: [],
+      searchAttrParams: {},
+      dialogAttrLoading: false,
+      dialogAttrReload: Math.random(),
+      attrPage: {
+        currentPage: 1,
+        pageSize: 30,
+        total: 0,
+        pageSizes: [30, 50, 100, 200],
       },
-      nodeRow:{},
+      dialogAttrSaveOption: {
+        ...basicOption,
+        calcHeight: -60,
+        addBtn: false,
+        menu: false,
+        refreshBtn: false,
+        index: false,
+        highlightCurrentRow: true,
+        height: 450,
+        searchMenuSpan: 8,
+        column: [
+          {
+            label: '灞炴�у悕',
+            prop: 'id',
+            sortable: true,
+            search: true,
+          },
+          {
+            label: '灞炴�х被鍨�',
+            prop: 'attributeDataType',
+            sortable: true,
+          },
+          {
+            label: '鍒濆鍊�',
+            prop: 'defaultValue',
+            sortable: true,
+          },
+          {
+            label: '璇存槑',
+            prop: 'description',
+            sortable: true,
+            overHidden: true
+          }
+        ]
+      },
+      dialogAttrSaveData: [],
+      attrPollDialogVisible: false,
+      rules: [],
+      dialogAttrData: [],
+      dialogAttrOption: {
+        ...basicOption,
+        editBtn: false,
+        refreshBtn: false,
+        selection: false,
+        height: 210,
+        addBtn: false,
+        // index:false,
+        column: [
+          {
+            label: '灞炴�у悕',
+            prop: 'id',
+            sortable: true,
+          },
+          {
+            label: '灞炴�х被鍨�',
+            prop: 'attributeDataType',
+            sortable: true,
+          },
+          {
+            label: '鍒濆鍊�',
+            prop: 'defaultValue',
+            sortable: true,
+          },
+          {
+            label: '璇存槑',
+            prop: 'description',
+            overHidden: true
+          }
+        ]
+      },
+      title: '',
+      visible: false,
+      attrData: [],
+      attrOption: {
+        ...basicOption,
+        calcHeight: -40,
+        addBtn: false,
+        menu: false,
+        index: false,
+        selection: false,
+        refreshBtn: false,
+        column: [
+          {
+            prop: 'id',
+            label: '灞炴�у悕',
+            sortable: true
+          },
+          {
+            prop: 'btmTypeId',
+            label: '涓氬姟绫诲瀷',
+            sortable: true
+          },
+          {
+            prop: 'attrDataType',
+            label: '灞炴�х被鍨�',
+            sortable: true
+          },
+          {
+            prop: 'defaultValue',
+            label: '榛樿鍊�',
+            sortable: true
+          },
+          {
+            prop: 'description',
+            label: '璇存槑',
+            overHidden: true
+          }
+        ]
+      },
+      form: {},
+      nodeRow: {},
       treeOption: {
         height: 'auto',
         defaultExpandAll: false,
         menu: false,
         addBtn: false,
         props: {
-          label: 'name',
-          value: 'name',
+          label: 'id',
+          value: 'id',
           children: 'children'
         }
       },
       treeData: [],
       descriptionOption: {
-        labelStyle: 'text-align:center;min-width:80px;',
-        contentStyle: 'width:200px;text-align:center;word-break;break-all;'
+        labelStyle: 'text-align:center;width:100px;',
+        contentStyle: 'max-width:200px;text-align:center;word-break;break-all;'
       },
       icons: {
         id: 'el-icon-finished',
@@ -204,6 +467,7 @@
     this.getTreeList();
   },
   methods: {
+    //鏍戣〃鏌ヨ
     getTreeList() {
       getBizTypes().then(res => {
         const data = res.data.data.map(item => {
@@ -214,16 +478,144 @@
     },
 
     // 鏍戠偣鍑�
-    nodeClick(row){
-      console.log(row);
+    nodeClick(row) {
+      this.attrData = JSON.parse(row.attributes);
       this.nodeRow = row;
     },
+
+    // 鍒涘缓鎸夐挳
+    addClickHandler() {
+      this.title = 'add';
+      this.visible = true;
+    },
+
+    // 瀵硅瘽妗� 灞炴�ф睜鍒楄〃澧炲姞鎸夐挳
+    addDialogClickHandler() {
+      this.dialogAttrLoading = true;
+      this.attrPollDialogVisible = true;
+      this.dialogAttrReload = Math.random(); // 寮哄埗鍒锋柊琛ㄦ牸 瑙e喅琛ㄦ牸閿欒
+      this.getAttrDialogDta();
+    },
+
+    // 鏌ヨ灞炴�ф睜鍒楄〃鏁版嵁
+    getAttrDialogDta() {
+      gridAttribute(this.attrPage.currentPage, this.attrPage.pageSize, this.searchAttrParams).then(res => {
+        const data = res.data.data;
+        this.dialogAttrSaveData = data;
+        this.attrPage.total = res.data.total;
+        this.dialogAttrLoading = false;
+      }).catch(err => {
+        this.$message.error(err);
+      });
+    },
+
+    // 鏂板灞炴�ф睜鍒楄〃鍏抽棴瀵硅瘽妗�
+    dialogAttrClose() {
+      this.attrPollDialogVisible = false;
+      this.searchAttrParams = {};
+    },
+
+    // 娣诲姞灞炴�ф睜琛ㄦ牸閫夋嫨妗�
+    dialogAttrSelectChange(row) {
+      this.dialogAttrSelectList = row;
+    },
+
+    // 娣诲姞灞炴�ф睜 琛岀偣鍑�
+    dialogAttrRowClickHandler(row) {
+
+      func.rowClickHandler(
+        row,
+        this.$refs.dialogAttrCrud,
+        this.attrLastIndex,
+        (newIndex) => {
+          this.attrLastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [];
+        }
+      );
+    },
+
+    //娣诲姞灞炴�ф睜 鏉℃暟
+    attrSizeChange(val) {
+      this.attrPage.pageSize = val;
+      this.getAttrDialogDta()
+    },
+
+    //娣诲姞灞炴�ф睜 椤电爜
+    attrCurrentChange(val) {
+      this.attrPage.currentPage = val;
+      this.getAttrDialogDta();
+    },
+
+    //娣诲姞灞炴�ф睜 鎼滅储
+    attrHandleSearch(params, done) {
+      if (func.isEmptyObject(params)) {
+        this.searchAttrParams = {};
+      } else {
+        this.searchAttrParams = {
+          "conditionMap[id]": "*" + params.id + "*"
+        };
+      }
+
+      this.getAttrDialogDta();
+      done();
+    },
+
+    //娣诲姞灞炴�ф睜 娓呯┖鎼滅储
+    attrHandleReset() {
+      this.searchAttrParams = {};
+      this.getAttrDialogDta();
+    },
+
+    // 娣诲姞灞炴�ф睜 淇濆瓨
+    dialogAttrAddClickHandler() {
+      let hasDuplicate = false;
+
+      // 鍏堝垱寤轰竴涓复鏃舵暟缁勬潵瀛樺偍涓嶉噸澶嶇殑椤�
+      const newItems = [];
+
+      this.dialogAttrSelectList.forEach(item => {
+        const exists = this.dialogAttrData.some(existingItem => existingItem.id === item.id);
+
+        if (exists) {
+          hasDuplicate = true;
+          return;
+        }
+
+        // 濡傛灉娌℃湁閲嶅椤癸紝鍒欏皢璇ラ」娣诲姞鍒颁复鏃舵暟缁勪腑
+        newItems.push({
+          id: item.id,
+          attributeDataType: item.attributeDataType,
+          defaultValue: item.defaultValue,
+          description: item.description
+        });
+      });
+
+      if (hasDuplicate) {
+        this.$message.error('璇锋鏌ユ槸鍚︽湁娣诲姞閲嶅椤癸紒');
+      } else {
+        // 濡傛灉娌℃湁閲嶅椤癸紝灏嗘柊椤规坊鍔犲埌 dialogAttrData
+        this.dialogAttrData.push(...newItems);
+        this.attrPollDialogVisible = false;
+      }
+    },
+
+    // 鐗堟湰瑙勫垯绠$悊娣诲姞
+    versionAddHandler(){
+
+    }
   }
 }
 </script>
 
 <style lang="scss" scoped>
 ::v-deep {
+  .avue-dialog .el-dialog__body{
+    padding: 20px 20px 0px 20px; // 涓婂彸涓嬪乏
+    margin-bottom: 10px !important;
+  }
+
   .el-scrollbar__wrap {
     overflow: auto !important;
   }
@@ -276,8 +668,23 @@
   text-align: center;
   padding-left: 4.5px;
 }
-.descBox{
+
+.descBox {
   width: 32%;
   margin-left: 20px;
 }
+
+.dialogForm {
+  display: flex;
+  justify-content: space-around;
+}
+
+.dialogForm > div {
+  width: 29%;
+  border: 1px solid #eee;
+  padding: 25px 20px 5px 10px; /* 涓� 鍙� 涓� 宸� */
+  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2); /* 娣诲姞闃村奖鏁堟灉 */
+}
+
+
 </style>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue
index 719c75d..142b70c 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/lifeCycle/index.vue
@@ -374,6 +374,8 @@
         startStatus: params.startStatus,
         startStatusName: params.startStatusName,
         description: params.description,
+        ts:params.ts,
+        oid:params.oid,
         bounds: params.nodes.map(node => ({
           name: node.id,
           cellx: String(node.x),
@@ -392,10 +394,12 @@
         : () => addLifeCycle(transformedData);
 
       getFunction().then(res => {
+        console.log(res);
         if (res.data.code === 200) {
           this.$message.success(res.data.obj);
           this.createdHandler();
           // this.handleResetTree();
+          this.rowData = {};
           this.$store.dispatch('updateMethodBtn', Object.keys(this.rowData).length > 0);
         }
       });
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue
index 706fd41..9d717d3 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/modeling/linkType/index.vue
@@ -41,7 +41,7 @@
 
     <el-main>
       <basic-container>
-        <div>
+        <div style="height: 380px">
           <el-descriptions :column="2" border class="margin-top" size="medium">
             <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                   :labelStyle="descriptionOption.labelStyle">
@@ -94,11 +94,13 @@
                 <i :class="icons.from"></i>
                 From绔被鍨�
               </template>
-              <span v-for="item in nodeRow.btmItemsFrom" style="margin-left:2px;">
-              <el-tag effect="plain" style="margin-top: 2px;">
+              <div style="height: 60px;overflow-y: auto;display: flex;flex-wrap: wrap">
+                <span v-for="item in nodeRow.btmItemsFrom" style="margin-left:3px;">
+              <el-tag effect="plain" style="margin-top: 3px;">
                   {{ item }}
               </el-tag>
-            </span>
+                </span>
+              </div>
             </el-descriptions-item>
             <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                   :labelStyle="descriptionOption.labelStyle">
@@ -128,11 +130,13 @@
                 <i :class="icons.to"></i>
                 To绔被鍨�
               </template>
-              <span v-for="item in nodeRow.btmItemsTo" style="margin-left:2px;">
-              <el-tag effect="plain" style="margin-top: 2px;">
+              <div style="height: 60px;overflow-y: auto;display: flex;flex-wrap: wrap">
+                <span v-for="item in nodeRow.btmItemsTo" style="margin-left:2px;">
+                 <el-tag effect="plain" style="margin-top: 2px;">
                   {{ item }}
-              </el-tag>
-            </span>
+                 </el-tag>
+                </span>
+              </div>
             </el-descriptions-item>
             <el-descriptions-item :contentStyle="descriptionOption.contentStyle"
                                   :labelStyle="descriptionOption.labelStyle">
@@ -155,7 +159,7 @@
 
           </el-descriptions>
         </div>
-        <div style="margin-top: 20px">
+        <div style="margin-top: 30px">
           <h3>灞炴�ф睜鍒楄〃</h3>
           <avue-crud
             :data="tableData"
@@ -197,10 +201,6 @@
 
           <div class="centerForm">
             <el-form-item label="Form绔被鍨嬶細" label-width="110px">
-              <!--              <el-button v-if="!form.btmItemsFrom" plain size="mini" type="success"-->
-              <!--                         @click="FormItemReferChange('form')">娣诲姞-->
-              <!--              </el-button>-->
-              <!--              <el-input v-if="form.btmItemsFrom" v-model="form.btmItemsFrom"></el-input>-->
               <div style="display: flex; align-items: center">
                 <div style="height: 200px; width: 280px; border: 1px solid #bdbbbb;overflow-y: auto">
                   <!-- 鍐呭 -->
@@ -597,6 +597,7 @@
           {
             label: '璇存槑',
             prop: 'description',
+            overHidden: true
           }
         ]
       },
@@ -623,6 +624,7 @@
         // index:false,
         addBtn: false,
         menu: false,
+        calcHeight: -40,
         column: [
           {
             label: '灞炴�у悕',
@@ -642,6 +644,7 @@
           {
             label: '璇存槑',
             prop: 'description',
+            overHidden: true
           }
         ]
       },
@@ -661,7 +664,7 @@
         desc: 'el-icon-chat-line-square'
       },
       bizLastIndex: null,
-      attrLastIndex:null
+      attrLastIndex: null
     }
   },
   created() {
@@ -873,8 +876,12 @@
         row,
         this.$refs.dialogAttrCrud,
         this.attrLastIndex,
-        (newIndex) => { this.attrLastIndex = newIndex; },
-        () => { this.selectList = []; }
+        (newIndex) => {
+          this.attrLastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [];
+        }
       );
     },
 
@@ -955,9 +962,13 @@
 
     //娣诲姞灞炴�ф睜 鎼滅储
     attrHandleSearch(params, done) {
-      this.searchAttrParams = {
-        "conditionMap[id]": "*" + params.id + "*"
-      };
+      if (func.isEmptyObject(params)) {
+        this.searchAttrParams = {};
+      } else {
+        this.searchAttrParams = {
+          "conditionMap[id]": "*" + params.id + "*"
+        };
+      }
       this.getAttrDialogDta();
       done();
     },
@@ -1011,8 +1022,12 @@
         row,
         this.$refs.bizTypeCrud,
         this.bizLastIndex,
-        (newIndex) => { this.bizLastIndex = newIndex; },
-        () => { this.selectList = []; }
+        (newIndex) => {
+          this.bizLastIndex = newIndex;
+        },
+        () => {
+          this.selectList = [];
+        }
       );
     },
 

--
Gitblit v1.9.3