提交 cd2bd384 编写于 作者: T tinyu

Sun Apr 28 16:44:00 CST 2024 inscode

上级 84b8d11a
<template> <template>
<div> <div>
<el-dropdown> <el-popover placement="bottom" width="400" trigger="click">
<el-select v-model="modelValue" multiple collapse-tags placeholder="请选择"></el-select> <el-select slot="reference" ref="selectBox" :value="allcheck" multiple collapse-tags placeholder="请选择"
<div slot="dropdown"> @visible-change="$refs['selectBox'].blur()">
<el-option label="1" value="a"></el-option>
</el-select>
<div>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-check-group> <el-checkbox-group v-model="checkValue.category1" class="flex-col"
<el-checkbox v-for="item in listData.category1" :key="item">{{ item }}</el-checkbox> @change="checkChange($event, 'category1')">
</el-check-group> <el-checkbox v-for="item in listData.category1" :label="item" :key="item"></el-checkbox>
</el-checkbox-group>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-check-group> <el-checkbox-group v-model="checkValue.category2" class="flex-col"
<el-checkbox v-for="item in listData.category2" :key="item">{{ item }}</el-checkbox> @change="checkChange($event, 'category2')">
</el-check-group> <el-checkbox v-for="item in listData.category2" :label="item" :key="item"></el-checkbox>
</el-checkbox-group>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</el-dropdown> </el-popover>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: 'SelectPanel', name: 'SelectPanel',
props:{
value:Array
},
model:{
prop:'value',
event:'change'
},
data() { data() {
return { return {
modelValue: [], checkValue: {
category1: [],
category2: []
},
listData: { listData: {
category1: ['1', '2', '3', '4', '5', '6'], category1: ['1', '2', '3', '4', '5', '6'],
category2: ['A', 'B', 'C', 'D', 'E', 'F', 'G'] category2: ['A', 'B', 'C', 'D', 'E', 'F', 'G']
...@@ -32,14 +47,38 @@ export default { ...@@ -32,14 +47,38 @@ export default {
} }
}, },
computed: {
allcheck: {
get() {
return this.value.map(v => v.value)
},
set(val){
this.$emit('change',val)
}
}
},
mounted() { mounted() {
}, },
methods: { methods: {
checkChange(value, type) {
this.checkValue[type] = value;
console.log(this.checkValue)
this.allcheck = (this.checkValue.category1.map(value => ({ label: 'category1', value }))).concat(this.checkValue.category2).map(value => ({ label: 'category2', value }))
console.log(this.allcheck, 'ALL')
}
}, },
} }
</script> </script>
<style lang="less" scoped></style> <style lang="less" scoped>
\ No newline at end of file .flex-col {
display: flex;
flex-flow: column nowrap;
justify-content: flex-start;
align-items: baseline;
}
</style>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册