From 5036880fc037e5d112206b93a729f60be12bf8ab Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 07 十一月 2024 17:03:13 +0800 Subject: [PATCH] 2024.11.07 bug修复 --- 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