From befd1f21839939b54254bd316bbd158b136fcd15 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 12 十一月 2024 16:54:25 +0800
Subject: [PATCH] 简化主页

---
 components/form/index.js |   46 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 34 insertions(+), 12 deletions(-)

diff --git a/components/form/index.js b/components/form/index.js
index c699b42..ef2114e 100644
--- a/components/form/index.js
+++ b/components/form/index.js
@@ -1,4 +1,9 @@
+import { cascaderNote } from './form-util.js';
+
 Component({
+  options: {
+    multipleSlots: true, // 鍦ㄧ粍浠跺畾涔夋椂鐨勯�夐」涓惎鐢ㄥslot鏀寔
+  },
   properties: {
     /**
      * 琛ㄥ崟杈撳叆妗嗛噰鐢═-design妗嗘灦涓嬬殑Input缁勪欢
@@ -10,7 +15,7 @@
      * value: 鐪熷疄鍊�,
      * status: 杈撳叆妗嗙姸鎬併�傚彲閫夐」锛歴uccess/warning/error,
      * tips: 杈撳叆妗嗕笅鏂规彁绀烘枃鏈紝浼氭牴鎹笉鍚岀殑 status 鍛堢幇涓嶅悓鐨勬牱寮�,
-     * inputType: 杈撳叆绫诲瀷 锛坱ext: 杈撳叆妗嗭紱switch锛氬垏鎹㈡寜閽�; picker: 涓嬫媺妗嗛�夐」; cascader: 绾ц仈閫夋嫨锛�,
+     * inputType: 杈撳叆绫诲瀷 (text: 杈撳叆妗�; switch: 鍒囨崲鎸夐挳; picker: 涓嬫媺妗嗛�夐」; cascader: 绾ц仈閫夋嫨),
      * options: 褰撹緭鍏ョ被鍨嬩负picker鎴朿ascader鏃讹紝鎻愪緵鍙�夐」,
      * cascaderTitles: 褰撹緭鍏ョ被鍨嬩负cascader鏃讹紝鎻愪緵姣忎釜閫夐」鐨勬爣棰�,
      */
@@ -20,6 +25,14 @@
       observer(v) {
         this.setData({ formArray: v });
       },
+    },
+    submitText: {
+      type: String,
+      value: '淇濆瓨',
+    },
+    cancelText: {
+      type: String,
+      value: '鍙栨秷',
     },
   },
 
@@ -40,9 +53,6 @@
     onSwitchChange(e) {
       const { index } = e.currentTarget.dataset;
       const { value } = e.detail;
-      // const { formArray } = this.data;
-      // formArray[index].value = value;
-      // this.setData({ formArray });
       this.setData({
         [`formArray[${index}].value`]: value,
       });
@@ -57,10 +67,9 @@
       const { label, value } = e.detail;
       this.setData({
         [`formArray[${index}].visible`]: false,
-        [`formArray[${index}].value`]: {
-          label: label[0],
-          value: value[0],
-        },
+        [`formArray[${index}]._value`]: value,
+        [`formArray[${index}]._label`]: label[0],
+        [`formArray[${index}].value`]: value[0],
       });
     },
     onPickerCancel(e) {
@@ -75,9 +84,18 @@
       this.setData({ [`formArray[${index}].visible`]: true });
     },
     onCascaderChange(e) {
+      const { index } = e.currentTarget.dataset;
       const { selectedOptions, value } = e.detail;
-      console.log(selectedOptions);
-      console.log(value);
+      const note = cascaderNote(selectedOptions);
+      const v = selectedOptions.map(v => {
+        return v.value;
+      });
+      this.setData({
+        [`formArray[${index}].visible`]: false,
+        [`formArray[${index}]._value`]: value,
+        [`formArray[${index}].note`]: note,
+        [`formArray[${index}].value`]: v,
+      });
     },
 
     // 淇濆瓨
@@ -85,7 +103,11 @@
       const formObj = {};
       this.data.formArray.forEach(e => {
         if (e.inputType == 'picker') {
-          formObj[e.name] = e.value.value;
+          formObj[e.name] = e.value;
+        } else if (e.inputType == 'cascader') {
+          e.referItems.forEach((r, i) => {
+            formObj[r] = e.value[i];
+          });
         } else {
           formObj[e.name] = e.value;
         }
@@ -100,7 +122,7 @@
     _note(v) {
       let note = '';
       v.forEach(o => {
-        if (note != o.label && o.value > 0) {
+        if (note != o.label) {
           if (note != '') {
             note += '/';
           }

--
Gitblit v1.9.3