From 0dc7572deb7ce400af7b447ed133d79216680368 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 10 十二月 2024 11:49:45 +0800
Subject: [PATCH] 流程设计:扩展属性重构

---
 src/components/Process/panel/PropertiesPanel.vue |   72 ++++++++++++++++++++++++++----------
 1 files changed, 52 insertions(+), 20 deletions(-)

diff --git a/src/components/Process/panel/PropertiesPanel.vue b/src/components/Process/panel/PropertiesPanel.vue
index 5a4f9f1..5ecc92a 100644
--- a/src/components/Process/panel/PropertiesPanel.vue
+++ b/src/components/Process/panel/PropertiesPanel.vue
@@ -13,21 +13,31 @@
       </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 +56,19 @@
   },
   data() {
     return {
-      elementPropertyList: [],
+      canConfigPropertyList: [
+        {
+          name: '璇ヨ妭鐐规槸瀹℃壒鑺傜偣',
+          value: '鏄�',
+          vueType: 'switch',
+          method: (name, value) => {
+            this.propertyForm.name = name
+            this.propertyForm.value = value
+            this.saveAttribute()
+          }
+        }
+      ], // 鍙互閰嶇疆鐨勫睘鎬у垪琛�
+      elementPropertyList: [], // 鎵╁睍灞炴�у垪琛�
       otherExtensionList: [],
       propertyForm: {},
       editingPropertyIndex: -1,
@@ -114,15 +136,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