1.uniapp 使用checkbox实现整个页面单选功能,整个页面只能选择一个选项,还是很有趣的,记录一下。
![
<view v-for="(item,checkIndex) in checkBusinessList" :key="checkIndex">
<view class="title">{{checkIndex+1}}.{{item.FixedItemDic.Text}}</view>
<view class="uni-list">
<checkbox-group @change="checkboxChange">
<label class="uni-list-cell uni-list-cell-pd"
v-for="(fixedItem,fixedIndex) in item.FixedItems" :key="fixedItem.Id">
<view>
<checkbox :value="fixedItem.Id" :checked="fixedItem.IsCheck" />
</view>
<view ><span>{{fixedItem.Text}}</span> <span style="color:#007AFF">{{fixedItem.FixedScore}}分</span></view>
</label>
</checkbox-group>
</view>
</view>
<view class="blank">
</view>
data() {
return {
checkBusinessList: [], //业态规模数组
}
},
checkboxChange(e) {
var me = this
me.checkStateStep1 = ''
me.checkBusinessList.forEach(function(data, index) {
data.FixedItems.forEach(function(item, index) {
if (item.Id == e.detail.value[e.detail.value.length - 1]) {
item.IsCheck = true
me.checkStateStep1 = e.detail.value[e.detail.value.length - 1]
} else {
item.IsCheck = false
}
})
})
}
2,使用checkbox实现页面的每一项单选功能
<view v-for="(foodItem,checkFoodIndex) in checkFoodList" :key="checkFoodIndex">
<view class="title">{{checkFoodIndex+1}}.{{foodItem.FixedItemDic.Text}}</view>
<view class="uni-list">
<checkbox-group @change="checkboxFoodChange($event,foodItem.FixedItemDic.Id)">
<label class="uni-list-cell uni-list-cell-pd"
v-for="(fixedFoodItem,fixedFoodIndex) in foodItem.FixedItems" :key="fixedFoodItem.Id">
<view>
<checkbox :value="fixedFoodItem.Id" :disabled="readOnly"
:checked="fixedFoodItem.IsCheck" />
</view>
<view ><span>{{fixedFoodItem.Text}}</span> <span style="color:#007AFF">{{fixedFoodItem.FixedScore}}分</span></view>
</label>
</checkbox-group>
</view>
data() {
return {
checkFoodList: [], //制售食品类别数组
checkStateStep2: {}, //制售食品选中状态数组
}
},
checkboxFoodChange(e, fixedItemDicId) {
var me = this
var values = e.detail.value
me.checkStateStep2[fixedItemDicId] = values.length == 0 ? '' : values[values.length - 1]
me.checkFoodList.forEach(function(data, index) {
data.FixedItems.forEach(function(item, index) {
if (item.Id == e.detail.value[e.detail.value.length - 1]) {
item.IsCheck = true
}
if (me.checkStateStep2[data.FixedItemDic.Id] != item.Id) {
item.IsCheck = false
}
})
})
},
网友评论