提交 2924ae86 编写于 作者: T tinyu

Mon Apr 29 10:02:00 CST 2024 inscode

上级 cd2bd384
文件已删除
<template> <template>
<div> <div>
<el-popover placement="bottom" width="400" trigger="click"> <el-popover placement="bottom-start" width="200" trigger="click">
<el-select slot="reference" ref="selectBox" :value="allcheck" multiple collapse-tags placeholder="请选择" <el-select slot="reference" ref="selectBox" :value="selectKey" multiple collapse-tags
@visible-change="$refs['selectBox'].blur()"> placeholder="请选择" @visible-change="$refs['selectBox'].blur()" @remove-tag="delTag">
<el-option label="1" value="a"></el-option> <el-option label="1" value="a"></el-option>
<template #suffix>AAAA</template>
</el-select> </el-select>
<div> <div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-checkbox-group v-model="checkValue.category1" class="flex-col" <el-checkbox-group v-model="checkValue.category1" class="flex-col"
@change="checkChange($event, 'category1')"> @change="checkChange()">
<el-checkbox v-for="item in listData.category1" :label="item" :key="item"></el-checkbox> <el-checkbox v-for="item in listData.category1" :label="item" :key="item"></el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-checkbox-group v-model="checkValue.category2" class="flex-col" <el-checkbox-group v-model="checkValue.category2" class="flex-col"
@change="checkChange($event, 'category2')"> @change="checkChange()">
<el-checkbox v-for="item in listData.category2" :label="item" :key="item"></el-checkbox> <el-checkbox v-for="item in listData.category2" :label="item" :key="item"></el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-col> </el-col>
...@@ -27,12 +28,12 @@ ...@@ -27,12 +28,12 @@
<script> <script>
export default { export default {
name: 'SelectPanel', name: 'SelectPanel',
props:{ props: {
value:Array value: Array
}, },
model:{ model: {
prop:'value', prop: 'value',
event:'change' event: 'change'
}, },
data() { data() {
return { return {
...@@ -50,11 +51,15 @@ export default { ...@@ -50,11 +51,15 @@ export default {
computed: { computed: {
allcheck: { allcheck: {
get() { get() {
return this.value.map(v => v.value) return this.value;
}, },
set(val){ set(val) {
this.$emit('change',val) this.$emit('change', val)
} }
},
selectKey(){
return this.allcheck.map(v => v.value)
} }
}, },
...@@ -64,11 +69,18 @@ export default { ...@@ -64,11 +69,18 @@ export default {
}, },
methods: { methods: {
checkChange(value, type) { //删除标签
this.checkValue[type] = value; delTag(tag){
console.log(this.checkValue) this.allcheck = this.allcheck.filter(v =>{
this.allcheck = (this.checkValue.category1.map(value => ({ label: 'category1', value }))).concat(this.checkValue.category2).map(value => ({ label: 'category2', value })) if(v.value===tag){
console.log(this.allcheck, 'ALL') this.checkValue[v.type]= this.checkValue[v.type].filter(val => val!==tag);
}
return v.value!==tag;
})
},
//监听勾选
checkChange() {
this.allcheck = (this.checkValue.category1.map(value => ({ type:'category1', value }))).concat((this.checkValue.category2).map(value => ({ type:'category2', value })))
} }
}, },
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册