element ui中select下拉框动态添加,共用数据实现ID不重复选择

在业务实现上,碰到了这个问题,数据选择联动,而且选择的id不重复问题困扰好久,好在最后解决了,话不多说上代码:

<template>
    <div>
        <div>{{selectData}}</div>
        <div v-for="(item,index) in selectData" :key="index">
            <el-select class="select_css" v-model="item.Select" @change="select_chang">
                <el-option v-for="itm in filterOpData" :key="itm.id" :value="itm.id" :label="itm.name" :disabled="itm.disabled"></el-option>
            </el-select>
            <button @click="del(index)">删除</button>
        </div>
        <div style="margin-top:10px">
            <button @click="add">新增一条</button>
        </div>
    </div>
</template>

<script>
export default{
    data(){
        return{
            opData:[
                {name:'王毅',id:1},
                {name:'李二',id:2},
                {name:'张武',id:3},
                {name:'四平',id:4},
                {name:'吉林',id:5},
                {name:'天山',id:6},
                {name:'如来',id:7}
            ],
            selectData:[]
        }
    },
    computed:{
        filterOpData(){
            let getSels = []
            this.selectData.map(item =>{
                item.Select && getSels.push(item.Select)
            })
            return this.opData.filter(item => {
                getSels.includes(item.id) && (item.disabled=true)
                return true
            })
        },
        select_chang(){
            let getSels = []
            this.selectData.map(item => {
                item.Select && getSels.push(item.Select)
            })
            return this.opData.filter(item => {
                item.disabled=false
            // getSels.includes(item.id) && (item.disabled=false)
                return false
            })
        },
    },
    methods:{
        //添加一行
        add: function (){
            this.selectData.push({ Select:''});
        },
        //删除一行
        del: function(index){
            this.selectData.splice(index,1);
        },
    }
}
</script>

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用 Element UI 实现选择下拉框,可以按照以下步骤进行: 1. 首先确保你已经安装了 Element UI 库。 2. 在需要使用选择下拉框的组件,引入 Select 组件。 ```javascript <template> <div> <el-select v-model="selectedValue" placeholder="请选择"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </div> </template> <script> export default { data() { return { selectedValue: '', options: [ { value: 'option1', label: '选项1' }, { value: 'option2', label: '选项2' }, { value: 'option3', label: '选项3' }, { value: 'option4', label: '选项4' } ] } } } </script> ``` 在上述代码,我们使用了 `el-select` 和 `el-option` 标签来创建选择下拉框,并通过 `v-model` 实现了双向数据绑定。`options` 数组存储了下拉框的选项,`label` 属性用于显示选项的文字描述,`value` 属性用于存储选项的。 3. 最后,可以根据需要设置选择下拉框的其他属性,例如 `placeholder`、`disabled`、`clearable` 等等,具体可参考 Element UI 官方文档。 以上就是使用 Element UI 实现选择下拉框的基本方法。 ### 回答2: 要使用 Element UI 实现选择下拉框,您可以按照以下步骤进行: 1. 首先,在项目安装 Element UI。可以通过 npm 或 yarn 进行安装,例如使用以下命令:`npm install element-ui` 或 `yarn add element-ui`。 2. 在使用的文件引入 Element UI选择下拉框组件。可以使用 `import` 语句引入需要的组件,例如:`import { Select, Option } from 'element-ui'`。 3. 在需要使用选择下拉框的地方,使用 `<el-select>` 标签包裹需要的选项。 4. 在 `<el-select>` 标签内部,使用 `<el-option>` 标签定义下拉选择的每个选项,并设置对应的和标签内容。例如: ```html <el-select v-model="selectedValue"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> ``` 5. 在对应的 Vue 实例,定义 `selectedValue` 数据绑定到 `v-model` 上,以便获取用户选择。 6. 您还可以根据需要设置更多的属性,例如可搜索属性、禁用状态、多选等。可以参考 Element UI 官方文档 Select 组件的 API 说明。 7. 最后,确保您的项目已经正确引入了 Element UI 的样式文件,可以在项目的入口文件(如 `main.js` 或 `App.vue`)使用 `import 'element-ui/lib/theme-chalk/index.css'` 进行引入。 通过以上步骤,您就可以成功使用 Element UI 实现选择下拉框了。请根据自己的实际情况进行相应的调整和修改。 ### 回答3: Element UI 是基于 Vue.js 的一套桌面端组件库,其包含了很多常用的 UI 组件,包括选择下拉框。 要实现选择下拉框,首先需要引入 Element UI,并正确配置 Vue.js。 在 HTML ,可以使用 `<el-select>` 标签来创建一个选择下拉框,通过 `v-model` 属性来绑定选择。例如: ``` <el-select v-model="selectedValue"> <el-option label="选项一" value="1"></el-option> <el-option label="选项二" value="2"></el-option> <el-option label="选项三" value="3"></el-option> </el-select> ``` 在 Vue.js 的 `data` 属性,定义 `selectedValue` 变量来存储选择。例如: ``` data() { return { selectedValue: '' } }, ``` 这样就可以在页面创建一个简单的选择下拉框,其有三个选项可以选择:选项一、选项二和选项三。当选择一个选项时,`selectedValue` 的就会自动更新。 如果需要获取选择,可以在 Vue.js 的 `methods` 属性定义一个方法,并在选择下拉框的 `change` 事件调用该方法。例如: ``` methods: { handleSelectChange(value) { console.log('选择是:', value); } } ``` 然后在选择下拉框添加 `@change` 属性来指定选择变化时调用的方法。例如: ``` <el-select v-model="selectedValue" @change="handleSelectChange"> ``` 这样就能够在选择下拉框实现选择的监听,并获取选择。 除了基本的功能外,Element UI选择下拉框还提供了很多自定义的属性和事件,可以根据需求进行配置和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值