记录项目中实际出现的问题。
项目背景 :后台返回数据,需要checkbox回显。一般来说直接遍历回显,但是出现的问题是checkbox的选项太多,还涉及到切换选项,checkbox的选项也会有改变。
解决办法: 再尝试了许多传值办法后无果,最后决定使用vuex存后台返回数据
1.vuex存入后台拿到的数据

computed:{
   * 获取vuex数据
   * @returns {any}
  checkAllList(){
    return this.$store.getters.getSelectForecastObj;

2.checklist存储checkbox所选择的选项。因为要后台返回所有选项,切换选项重新调用接口,所以直接每次接口返回的时候遍历vuex中是否有此选项,然后放入checklist。(就会显示已勾选状态,可能会重复自己处理数据)
3.选择新的数据,watch监听自己的checklist 放入vuex。

checkBox change

场景:因为每次都要监听自己所选的选项是否在vuex中有重复,所以这个事件可以返回自己的处理的选项。

<el-checkbox v-model="checkList" @change="checked=>handleCheckEvent(checked,item)>
</el-checkbox>

checked 是自己操作的状态 item是你操作的选项(更方便操作)

记录项目中实际出现的问题。项目背景:后台返回数据,需要checkbox回显。一般来说直接遍历回显,但是出现的问题是checkbox的选项太多,还涉及到切换选项,checkbox的选项也会有改变。解决办法: 再尝试了许多传值办法后无果,最后决定使用vuex存后台返回数据1.vuex存入后台拿到的数据computed:{ /** * 获取vuex数据 * @returns {any} */ checkAllList(){ return this.$store.gette
碰到了一个问题,写了一个el-checkbox的group,需要点击其中的一个项,在页面暂存,所以需要动态改变数组中某个对象的状态。 element官方文档中的@change事件默认下有两种传值方法,如果写成 默认参 @change="selecteChange" selecteChange(val,e){ //... 还有一种: @change="selecteChange(a,b,c,d...)" selecteChange(a,b,c,d...){ //......
<el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange">全选</el-checkbox> <div style="margin: 15px 0;" /> <el-checkbox-group v-model="checke...
<template> <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox> <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
由于需要个性化checkbox的点击事件,不得以研究了一下点击事件。奈何这个项目组居然没有checkbox的样式,看着这原生的样式丑到爆,不得以研究了一下checkbox。(radio也是同理,区别是最好通过条件控制只能单选。) 这里先附上样式灵感来源地址 如果有需要变更图标的,可以在上述地址选取。 <el-checkbox @change="(val) => handleCheckAllChange(val, scope.row)">{{ scope.row.label }}</el-checkbox> :indeterminate="isIndeterminate" v-model="checkAll" @change="checked=>handleCheckAllChange(checked, val, i)" >{{key}}</el-checkbox> {{checkList}} <el-checkbox-group v-model="checkList"> <el-checkbox :label="item.name" v-for="(item,index) in checkListArray"></el-checkbox> </el-checkbox-group> <span @click=.
el-checkbox勾选后逻辑取消勾选,点击后参数递和显示不一致的异常错误 问题描述: 父组件递数据给子组件,用来控制el-checkbox的勾选,勾选后递参数给父组件进行逻辑处理,比如某种条件下需要取消勾选,讲数据修改后再次点击勾选,发现递过来的勾选的数据和当前勾选状态不一致,虽然勾选框没有勾选,但是递的数据是一直在进行勾选的操作。 解决方法:在勾选change事件中用this.$nextTick。 父组件代码 <template> <template> <el-checkbox-group v-model="checkedList"> <el-checkbox v-for="item in options" :label="item.value" :key="item.id"> {{ item.label }} </el-checkbox> </el-checkbox-group> </template> <script> export default { data() { return { checkedList: [], // 选中的值将存储在这个数组中 options: [ { id: 1, label: '选项1', value: 'option1' }, { id: 2, label: '选项2', value: 'option2' }, { id: 3, label: '选项3', value: 'option3' } </script> 在上面的代码中,我们使用了el-checkbox-group和el-checkbox组件来创建多选框。我们使用v-model指令将选中的值存储在checkedList数组中。在el-checkbox组件中,我们使用label属性来指定每个选项的值。 接下来,我们可以在组件中使用computed属性来获取选中的值: ```javascript computed: { selectedOptions() { return this.options.filter(option => this.checkedList.indexOf(option.value) !== -1) 在上面的代码中,我们使用filter()方法过滤出选中的选项,并将它们存储在selectedOptions数组中。 最后,我们可以在模板中使用selectedOptions数组来显示选中的选项: ```javascript <template> <el-checkbox-group v-model="checkedList"> <el-checkbox v-for="item in options" :label="item.value" :key="item.id"> {{ item.label }} </el-checkbox> </el-checkbox-group> <div v-if="selectedOptions.length > 0"> <h4>选中的选项:</h4> <li v-for="option in selectedOptions" :key="option.id">{{ option.label }}</li> </template> 在上面的代码中,我们使用v-if指令来检查selectedOptions数组是否为空,如果不为空,则显示选中的选项列表。我们使用v-for指令来循环遍历selectedOptions数组,并显示每个选项的标签。