mirror of
https://github.com/iczer/vue-antd-admin
synced 2025-04-25 19:25:23 +08:00
fix: problem of img-check-box component in radio mode; 🐛
修复:img-check-box 组件在单选模式下的问题;
This commit is contained in:
parent
09348fd627
commit
ee3265a151
@ -36,22 +36,25 @@ const Group = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
'values': function (newVal, oldVal) {
|
'values': function (value) {
|
||||||
// 此条件是为解决单选时,触发两次chang事件问题
|
this.$emit('change', value)
|
||||||
if (!(newVal.length === 1 && oldVal.length === 1 && newVal[0] === oldVal[0])) {
|
// // 此条件是为解决单选时,触发两次chang事件问题
|
||||||
this.$emit('change', this.values)
|
// if (!(newVal.length === 1 && oldVal.length === 1 && newVal[0] === oldVal[0])) {
|
||||||
}
|
// this.$emit('change', this.values)
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleChange (option) {
|
handleChange (option) {
|
||||||
if (!option.checked) {
|
if (!option.checked) {
|
||||||
this.values = this.values.filter(item => item !== option.value)
|
if (this.values.indexOf(option.value) > -1) {
|
||||||
|
this.values = this.values.filter(item => item != option.value)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!this.multiple) {
|
if (!this.multiple) {
|
||||||
this.values = [option.value]
|
this.values = [option.value]
|
||||||
this.options.forEach(item => {
|
this.options.forEach(item => {
|
||||||
if (item.value !== option.value) {
|
if (item.value != option.value) {
|
||||||
item.sChecked = false
|
item.sChecked = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -92,7 +95,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
sChecked: this.checked
|
sChecked: this.initChecked()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
inject: ['groupContext'],
|
inject: ['groupContext'],
|
||||||
@ -118,8 +121,20 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toggle () {
|
toggle () {
|
||||||
|
if (this.groupContext.multiple || !this.sChecked) {
|
||||||
this.sChecked = !this.sChecked
|
this.sChecked = !this.sChecked
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
initChecked() {
|
||||||
|
let groupContext = this.groupContext
|
||||||
|
if (!groupContext) {
|
||||||
|
return this.checked
|
||||||
|
}else if (groupContext.multiple) {
|
||||||
|
return groupContext.defaultValues.indexOf(this.value) > -1
|
||||||
|
} else {
|
||||||
|
return groupContext.defaultValues[0] == this.value
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user