From bd63da40b4f5a5130bbb73fc654e7aaa25cacce6 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期二, 10 十二月 2024 18:11:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/Process/panel/PropertiesPanel.vue |   88 ++++++++++++++++++++++++++++++++------------
 1 files changed, 64 insertions(+), 24 deletions(-)

diff --git a/src/components/Process/panel/PropertiesPanel.vue b/src/components/Process/panel/PropertiesPanel.vue
index 5a4f9f1..959fc1a 100644
--- a/src/components/Process/panel/PropertiesPanel.vue
+++ b/src/components/Process/panel/PropertiesPanel.vue
@@ -6,28 +6,36 @@
       <el-table-column label="灞炴�у��" prop="value" min-width="100px" show-overflow-tooltip />
       <el-table-column label="鎿嶄綔" width="90px">
         <template slot-scope="{ row, $index }">
-          <el-button size="mini" type="text" @click="openAttributesForm(row, $index)">缂栬緫</el-button>
-          <el-divider direction="vertical" />
           <el-button size="mini" type="text" style="color: #ff4d4f" @click="removeAttributes(row, $index)">绉婚櫎</el-button>
         </template>
       </el-table-column>
     </el-table>
     <div class="element-drawer__button">
-      <el-button size="mini" type="primary" icon="el-icon-plus" @click="openAttributesForm(null, -1)">娣诲姞灞炴��</el-button>
+      <el-button size="mini" type="primary" icon="el-icon-setting" @click="openAttributesForm(null, -1)">灞炴�ц缃�</el-button>
     </div>
 
     <el-dialog :visible.sync="propertyFormModelVisible" title="灞炴�ч厤缃�" width="600px" append-to-body destroy-on-close>
-      <el-form :model="propertyForm" label-width="80px" size="mini" ref="attributeFormRef" @submit.native.prevent>
-        <el-form-item label="灞炴�у悕锛�" prop="name">
-          <el-input v-model="propertyForm.name" clearable />
-        </el-form-item>
-        <el-form-item label="灞炴�у�硷細" prop="value">
-          <el-input v-model="propertyForm.value" clearable />
-        </el-form-item>
-      </el-form>
+      <div v-for="item in canConfigPropertyList">
+        <div v-if="item.vueType === 'switch'">
+          <el-switch
+              v-model="item.value"
+              :inactive-text="item.name"
+              @change="(val) => item.method(item.name, val === true ? '鏄�' : '鍚�')"
+              active-color="#13ce66"
+              inactive-color="#ff4949">
+          </el-switch>
+        </div>
+      </div>
+<!--      <el-form :model="propertyForm" label-width="80px" size="mini" ref="attributeFormRef" @submit.native.prevent>-->
+<!--        <el-form-item label="灞炴�у悕锛�" prop="name">-->
+<!--          <el-input v-model="propertyForm.name" clearable />-->
+<!--        </el-form-item>-->
+<!--        <el-form-item label="灞炴�у�硷細" prop="value">-->
+<!--          <el-input v-model="propertyForm.value" clearable />-->
+<!--        </el-form-item>-->
+<!--      </el-form>-->
       <template slot="footer">
-        <el-button size="mini" @click="propertyFormModelVisible = false">鍙� 娑�</el-button>
-        <el-button size="mini" type="primary" @click="saveAttribute">纭� 瀹�</el-button>
+        <el-button size="mini" @click="propertyFormModelVisible = false">鍏� 闂�</el-button>
       </template>
     </el-dialog>
   </div>
@@ -46,7 +54,19 @@
   },
   data() {
     return {
-      elementPropertyList: [],
+      canConfigPropertyList: [
+        {
+          name: '璇ヨ妭鐐规槸瀹℃壒鑺傜偣',
+          value: false,
+          vueType: 'switch',
+          method: (name, value) => {
+            this.propertyForm.name = name
+            this.propertyForm.value = value
+            this.saveAttribute()
+          }
+        }
+      ], // 鍙互閰嶇疆鐨勫睘鎬у垪琛�
+      elementPropertyList: [], // 鎵╁睍灞炴�у垪琛�
       otherExtensionList: [],
       propertyForm: {},
       editingPropertyIndex: -1,
@@ -74,10 +94,20 @@
           }
           return ex.$type === `flowable:Properties`;
         }) ?? [];
-
       // 淇濆瓨鎵�鏈夌殑 鎵╁睍灞炴�у瓧娈�
       this.bpmnElementPropertyList = this.bpmnElementProperties.reduce((pre, current) => pre.concat(current.values), []);
-      // 澶嶅埗 鏄剧ず
+
+      // 鍥炴樉
+      this.canConfigPropertyList.forEach(item => {
+        const find = this.bpmnElementPropertyList.find(el => el.name === item.name);
+        if (find) {
+          if (item.vueType === 'switch') {
+            item.value = find.value === '鏄�' ? true : false
+          }
+
+        }
+      })
+      console.log(this.canConfigPropertyList, "杩欐槸浠�涔堥")
       this.elementPropertyList = JSON.parse(JSON.stringify(this.bpmnElementPropertyList ?? []));
     },
     openAttributesForm(attr, index) {
@@ -114,15 +144,25 @@
           value
         });
       } else {
-        // 鏂板缓灞炴�у瓧娈�
-        const newPropertyObject = this.modelerStore.moddle.create(`flowable:Property`, { name, value });
-        // 鏂板缓涓�涓睘鎬у瓧娈电殑淇濆瓨鍒楄〃
-        const propertiesObject = this.modelerStore.moddle.create(`flowable:Properties`, {
-          values: this.bpmnElementPropertyList.concat([newPropertyObject])
-        });
-        this.updateElementExtensions(propertiesObject);
+        // 濡傛灉宸茬粡瀛樺湪杩欎釜灞炴��,灏卞仛淇敼
+        const find = this.bpmnElementPropertyList.find(item => item.name === name);
+        if (find) {
+          this.modelerStore.modeling.updateModdleProperties(this.bpmnElement, this.bpmnElementPropertyList[this.bpmnElementPropertyList.indexOf(find)], {
+            name,
+            value
+          });
+        } else {
+          // 鏂板缓灞炴�у瓧娈�
+          const newPropertyObject = this.modelerStore.moddle.create(`flowable:Property`, { name, value });
+          // 鏂板缓涓�涓睘鎬у瓧娈电殑淇濆瓨鍒楄〃
+          const propertiesObject = this.modelerStore.moddle.create(`flowable:Properties`, {
+            values: this.bpmnElementPropertyList.concat([newPropertyObject])
+          });
+          this.updateElementExtensions(propertiesObject);
+        }
       }
-      this.propertyFormModelVisible = false;
+      // this.propertyFormModelVisible = false;
+      this.$message.success("鎿嶄綔鎴愬姛")
       this.resetAttributesList();
     },
     updateElementExtensions(properties) {

--
Gitblit v1.8.0