vue实现绑定select以及多选,清空检索条件

1、最近支援前端开发遇到select绑定数据,页面代码细节如下:

    <el-form :inline="true" :model="params" class="demo-form-inline" ref="demandRef" >

      <el-form-item label="需求名称" prop="demandName" >

        <el-input v-model="params.demandName" clearable placeholder="请输入" />

      </el-form-item >

      <el-form-item label="需求企业" prop="supplierCompanyName" >

        <el-input v-model="params.supplierCompanyName" clearable placeholder="请输入" />

      </el-form-item >

      <el-form-item label="报价单号" prop="quotationNumber" >

        <el-input v-model="params.quotationNumber" clearable aria-placeholder="请输入" />

      </el-form-item >

      <el-form-item label="报价状态" prop="quotationStatus" >

        <el-select v-model="params.quotationStatus" class="m-2" >

          <el-option

              v-for="item in options"

              :key="item.value"

              :label="item.label"

              :value="item.value"

          />

        </el-select >

      </el-form-item >

      <el-form-item >

        <el-button type="primary" @click="handleGetQuotation" >搜索</el-button>

        <el-button type="primary" @click="resetDemandFields">重置</el-button>

      </el-form-item >

    </el-form >

js如下:

<script setup >

import { getDemandQuotationListApi,getDemandQuotationDetailApi,updateDemandQuoteStatusApi } from "@/api/supplyChain/manage/quotation/index"

import { getDictDetails} from "@/api/common"

import TabNav from 'element-plus/es/components/tabs/src/tab-nav'

import { ref } from 'vue'

//全局检索条件对象,主要用于清空重置功能

const demandRef = ref(null)

//下拉框数据存放数组对象

const options = ref([])

/*获取报价管理列表*/

const tableList=ref([])

const total=ref(0)

const params=ref({

    quotationStatus: "",

    supplierCompanyName: "",

    quotationNumber:"",

    demandName:"",

    pageIndex: 1,

    pageSize: 10

})

async function handleGetQuotation(){

    let res = await getDemandQuotationListApi(params.value)

    tableList.value=res.items;

    total.value=res.totalCount;

}

/**获取状态下拉框数据 */

GetQuotationStatus()

async function GetQuotationStatus(){

  //options.value.push({label:"", value: "全部", sort: 0});

  options.value=await getDictDetails("QuotationStatus");

  options.value.splice(0,0,{label:"全部", value: "", sort: 0}); //根据索引位置向数组中插入数据

}

</script >

2、如果想多选,则在select中加入multiple,如下:

<el-form-item label="报价状态" prop="quotationStatus" >

        <el-select v-model="params.quotationStatus" class="m-2" multiple >

          <el-option

              v-for="item in options"

              :key="item.value"

              :label="item.label"

              :value="item.value"

          />

        </el-select >

      </el-form-item >

3、重置功能

需配置ref="demandRef",且必须放到<el-form>标签中,

其他检索条件,最好也放到<el-form-item prop="demandName">中,且加入prop属性,prop值要与

js中定义得全局搜索对象里定义得字段一致,

function resetDemandFields(){

  demandRef.value.resetFields();//重置所有得输入、下拉框

}

 4、第二种重置

直接在标签中使用resetFields(),需要配置全局定义得检索对象demandRef

      <el-button type="primary" @click="demandRef.resetFields()">重置</el-button >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
实现Vue Select多选全选功能,你可以使用以下步骤: 1. 在Vue组件中,使用`v-model`指令将选择的值绑定到一个数据属性上,例如`selectedOptions`。 2. 添加一个全选的复选框,用于选择或取消选择所有选项。你可以使用一个单独的数据属性,例如`selectAll`,来保存全选复选框的状态。 3. 在Vue的模板中,为每个选项添加一个复选框,并将其选择状态与对应的选项绑定。使用`v-model`指令将选中状态绑定到一个临时的`isChecked`属性上。 4. 监听全选复选框的变化,当全选复选框的状态改变时,更新每个选项的选择状态。 下面是一个示例代码: ```html <template> <div> <input type="checkbox" v-model="selectAll" @change="selectAllOptions"> <label for="select-all">全选</label> <select multiple v-model="selectedOptions"> <option v-for="option in options" :value="option.value" :key="option.value"> <input type="checkbox" :value="option.value" v-model="option.isChecked"> {{ option.label }} </option> </select> </div> </template> <script> export default { data() { return { options: [ { label: '选项1', value: 'option1', isChecked: false }, { label: '选项2', value: 'option2', isChecked: false }, { label: '选项3', value: 'option3', isChecked: false }, // 添加更多选项... ], selectedOptions: [], selectAll: false, }; }, methods: { selectAllOptions() { this.options.forEach((option) => { option.isChecked = this.selectAll; }); if (this.selectAll) { this.selectedOptions = this.options.map((option) => option.value); } else { this.selectedOptions = []; } }, }, }; </script> ``` 在上面的示例中,我们使用了一个`options`数组来存储所有的选项。每个选项都有一个`isChecked`属性来表示其选择状态。当全选复选框改变时,我们遍历所有选项并更新它们的选择状态。同时,我们根据选择状态更新`selectedOptions`数组,以便在多选框中显示被选择的选项。 希望这能帮助到你实现Vue Select多选全选功能!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吱吱喔喔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值