weixin_57808501 2021-11-11 15:28 采纳率: 47.4%
浏览 37
已结题

vue + element 多选与反选 反选功能不成功怎么解决

img

img


 <div class="area-dialog">
          <el-checkbox style="margin-bottom: 20px" :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
        <el-row>
          <template v-for="(province, index) in areaList">
            <el-col v-if="province.list.length > 0" :key="index" class="province-wrap" :span="8">
              <el-checkbox-group v-model="province.selected" @change="checkboxChange(province.keyId, province.selected)">
                <el-checkbox>{{ province.provinceName }}</el-checkbox>
              </el-checkbox-group>
              <el-cascader v-model="province.selectCity" :options="province.list" :props="{multiple: true,children: 'list',label: 'city',value: 'city',checkStrictly: true,}" collapse-tags filterable />
            </el-col>
          </template>
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="areaVisible = false">取 消</el-button>
        <el-button type="primary" @click="getSelectData">确 定</el-button>
      </div>
// 单选省级
    checkboxChange(provincekeyId, selected) {
      this.areaList.map((item) => {
        this.isIndeterminate = true
        this.checkAll = true
        const { keyId, list } = item;
        const allCity = list.map((cityItem) => {
          const { city } = cityItem;
          return [city];
        });
        if (keyId === provincekeyId && selected) {
          item.list.map(v => {
            v.selected = true
          })
          item.selectCity = allCity; 
        }
        if (keyId === provincekeyId && !selected) {
          item.selectCity = [];
        }
        return item;
      });

    },
    // 全选监听事件
    handleCheckAllChange(value) {
      console.log(value);
      if (value === true) {
        let tempArr = [].concat(this.areaList)
        tempArr.map((item, index) => {
          const { list } = item;
          const allCity = list.map((cityItem) => {
            const { city } = cityItem;
            return [city];
          });
          item.selectCity = allCity;
          item.selected = true
        })
        this.areaList = tempArr
      } else {
        this.areaList.map((item) => {
          item.selectCity = []
          return item.selected = false
        })
      }
      this.isIndeterminate = false;
      
    },

  • 写回答

1条回答 默认 最新

  • 我爱吃西瓜喵 2021-11-12 09:43
    关注

    全选的checkAll 在子项每次做选中的时候判断 目前 所有选中的内容长度是否与全部子项数据长度一致,一致的话就手动吧checkAll改成true

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月20日
  • 已采纳回答 11月12日
  • 创建了问题 11月11日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog