antd-vue中下拉多选组件中的全选和清空

*1:对antd -vue 中下拉多选中全选,清空操作及代码
*
html部分:

 <a-form-item label="适用楼宇" :labelCol="labelCol" :wrapperCol="wrapperCol">
            <a-select
              v-decorator="['buildingsList', { rules: [{ required: true, message: '请选择适用楼宇!' }] }]"
              @change="handleChange2"
              mode="multiple"
            >
//全选,清空
              <div slot="dropdownRender" slot-scope="menu">
                <v-nodes :vnodes="menu" />
                <a-divider style="margin: 4px 0" />
                <div style="padding: 4px 8px; cursor: pointer" @mousedown="(e) => e.preventDefault()">
                  <a-button type="link" @click="selectAll">全选</a-button>
                  <a-button type="link" @click="clearAll">清空</a-button>
                </div>
              </div>
//
              <a-select-option v-for="(item, index) in LYlist" :key="index" :value="item.buildingId">
                {{ item.buildingName }}
              </a-select-option>
            </a-select>

js部分:

 // 楼宇全选和清空
 this.LYlist就是数据源
 buildingId是后需要的数据
 this.buildingsType是后端和我要求的,全选是1,清空是0.
    selectAll() {
      this.buildingsType = 1
      const arr = []
      this.LYlist.forEach((item) => {
        arr.push(item.buildingId)
      })
      this.form.setFieldsValue({
        buildingsList: arr,
      })
    },
    clearAll() {
      this.buildingsType = 0
      this.form.setFieldsValue({
        buildingsList: [],
      })
    },
     handleChange2(val) {
    //刷新一下组件的方法,要是你门碰见明明修改了组件的值,
    //但是显示没有变化,试试组件强制刷新这个方法
      this.$forceUpdate()
    },

注: 使用的 v-decorator 并不是v-modal。
上图:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值