| | |
| | | import { cascaderNote } from './form-util.js'; |
| | | |
| | | Component({ |
| | | options: { |
| | | multipleSlots: true, // 在组件定义时的选项中启用多slot支持 |
| | | }, |
| | | properties: { |
| | | /** |
| | | * 表单输入框采用T-design框架下的Input组件 |
| | |
| | | * value: 真实值, |
| | | * status: 输入框状态。可选项:success/warning/error, |
| | | * tips: 输入框下方提示文本,会根据不同的 status 呈现不同的样式, |
| | | * inputType: 输入类型 (text: 输入框;switch:切换按钮; picker: 下拉框选项; cascader: 级联选择), |
| | | * inputType: 输入类型 (text: 输入框; switch: 切换按钮; picker: 下拉框选项; cascader: 级联选择), |
| | | * options: 当输入类型为picker或cascader时,提供可选项, |
| | | * cascaderTitles: 当输入类型为cascader时,提供每个选项的标题, |
| | | */ |
| | |
| | | observer(v) { |
| | | this.setData({ formArray: v }); |
| | | }, |
| | | }, |
| | | submitText: { |
| | | type: String, |
| | | value: '保存', |
| | | }, |
| | | cancelText: { |
| | | type: String, |
| | | value: '取消', |
| | | }, |
| | | }, |
| | | |
| | |
| | | this.setData({ |
| | | [`formArray[${index}].visible`]: false, |
| | | [`formArray[${index}]._value`]: value, |
| | | [`formArray[${index}].value`]: { |
| | | label: label[0], |
| | | value: value[0], |
| | | }, |
| | | [`formArray[${index}]._label`]: label[0], |
| | | [`formArray[${index}].value`]: value[0], |
| | | }); |
| | | }, |
| | | onPickerCancel(e) { |
| | |
| | | onCascaderChange(e) { |
| | | const { index } = e.currentTarget.dataset; |
| | | const { selectedOptions, value } = e.detail; |
| | | const note = this._note(selectedOptions); |
| | | const note = cascaderNote(selectedOptions); |
| | | const v = selectedOptions.map(v => { |
| | | return { label: v.label, value: v.value }; |
| | | return v.value; |
| | | }); |
| | | this.setData({ |
| | | [`formArray[${index}].visible`]: false, |
| | |
| | | const formObj = {}; |
| | | this.data.formArray.forEach(e => { |
| | | if (e.inputType == 'picker') { |
| | | formObj[e.name] = e.value ? e.value.value : e.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; |
| | | } |