<template>
|
<view class="oi-form-checkbox">
|
<!-- 复选框 -->
|
<checkbox-group v-if="model" :class="data.disabled?'input-disabled':''" :disabled="data.disabled"
|
@change="onChange">
|
<label v-for="(item) in data.selections" :key="item.value" class="checkbox-item">
|
<checkbox :value="item.value" :checked="model[data.fieldId].includes(item.value)" />
|
<text>{{item.label}}</text>
|
</label>
|
</checkbox-group>
|
<checkbox-group v-else :class="data.disabled?'input-disabled':''" :disabled="data.disabled" @change="onChange">
|
<label v-for="(item) in data.selections" :key="item.value" class="checkbox-item">
|
<checkbox :value="item.value" :checked="data.value.includes(item.value)" />
|
<text>{{item.label}}</text>
|
</label>
|
</checkbox-group>
|
</view>
|
</template>
|
|
<script>
|
export default {
|
name: "OIFormCheckbox",
|
props: {
|
data: {
|
type: Object,
|
required: true,
|
},
|
model: Object,
|
},
|
methods: {
|
onChange(e) {
|
let val = this.data.value = e.detail.value || []
|
if (this.model) {
|
this.model[this.data.fieldId] = val
|
}
|
this.data.value = val
|
this.$emit("change", val)
|
},
|
|
}
|
};
|
</script>
|
|
<style lang="less" scoped>
|
.oi-form-checkbox {
|
width: 100%;
|
.checkbox-item{
|
vertical-align: middle;
|
margin-left: 10rpx
|
}
|
.input-disabled {
|
background-color: #f3f3f3 !important;
|
}
|
}
|
</style>
|