项目:《有家问卷调查》 时间: 2018年1月10日 问题:通过选择的级联菜单选项来赋值给变量,然后传给后台 原代码:
- 子组件处(级联菜单)
this.cascadePicker = this.$createCascadePicker({
title: '',
data: this.data,
onSelect: (selectedVal, selectedIndex, selectedText) => {
this.wedding = `${selectedText[0]}-${selectedText[1]}`
this.$emit('update:wedding', this.wedding)
this.content = `${selectedText[0]} ${selectedText[1]}`
}
})
this.wedding是用户选中的值,现在值为"第n段婚姻-婚前/内获取"
- 父组件处
if (this.wedding === '第一段婚姻 婚前获取' || '第一段婚姻 婚后获取') {
time = 1
} else (this.wedding === '第二段婚姻 婚前获取' || '第二段婚姻 婚后获取') {
time = 2
} ……
分析:因为文案可能变化,维护起来不方便,此处可用数字来做比较,给this.wedding赋值数字,以数字作标志来判断,拼接wedding的字符串中有两个变量,第一个变量代表是第几段婚姻,第2个变量代表产权获取时间
优化:
- 子组件处(级联菜单)
this.cascadePicker = this.$createCascadePicker({
title: '',
data: this.data,
onSelect: (selectedVal, selectedIndex, selectedText) => {
this.wedding = `${selectedVal[0]}-${selectedVal[1]}`
this.$emit('update:wedding', this.wedding)
this.content = `${selectedText[0]} ${selectedText[1]}`
}
})
this.wedding是用户选中的值,现在值为"1-0 1-1 2-0 2-1 3-0 3-1"
- 父组件处
let tempAry = this.wedding.split('-')
// 第几段婚姻
let time = tempAry[0]
// 获取时间段
let event = tempAry[1] === '0' ? '婚前获取' : '婚内获取'
// 选择后要显示的文案
let desc = `第${time}段${event}`