mirror of
https://github.com/kuaifan/dootask.git
synced 2026-09-17 01:16:21 +00:00
新增到期、排期、逾期与未排期分组,按项目缓存显示选择并至少保留一项。 统一分组复选下拉菜单,接入 Cascader 桌面悬停展开,增加勾选后的滚动定位校正。 升级 view-design-hi 至 4.7.0-81,同步多语言、知识库和回归测试。
57 lines
1.8 KiB
Vue
57 lines
1.8 KiB
Vue
<template>
|
|
<Dropdown
|
|
:visible="open"
|
|
@on-visible-change="open = $event"
|
|
:trigger="touch ? 'click' : 'hover'"
|
|
:placement="placement"
|
|
transfer
|
|
transfer-class-name="project-table-groups-dropdown">
|
|
<div
|
|
@keydown.enter.prevent="open = true"
|
|
@keydown.space.prevent="open = true"
|
|
@keydown.esc="open = false">
|
|
<slot/>
|
|
</div>
|
|
<div slot="list" class="project-table-group-options" @click.stop @keydown.esc="open = false">
|
|
<Checkbox
|
|
v-for="group in groups"
|
|
:key="group.key"
|
|
class="ivu-dropdown-item"
|
|
:class="{'ivu-dropdown-item-disabled': selected.length === 1 && selected.includes(group.key)}"
|
|
:value="selected.includes(group.key)"
|
|
:disabled="selected.length === 1 && selected.includes(group.key)"
|
|
:title="selected.length === 1 && selected.includes(group.key) ? $L('至少保留一项') : ''"
|
|
@on-change="$emit('change', group, $event)">
|
|
{{$L(group.title)}}
|
|
</Checkbox>
|
|
</div>
|
|
</Dropdown>
|
|
</template>
|
|
|
|
<script>
|
|
import {projectTableGroups} from "../../../utils/projectTableGroups";
|
|
|
|
export default {
|
|
name: 'ProjectTableGroupDropdown',
|
|
props: {
|
|
value: {type: Boolean, default: false},
|
|
touch: {type: Boolean, default: false},
|
|
selected: {type: Array, required: true},
|
|
placement: {type: String, default: 'bottom-start'},
|
|
},
|
|
computed: {
|
|
groups() {
|
|
return projectTableGroups;
|
|
},
|
|
open: {
|
|
get() {
|
|
return this.value;
|
|
},
|
|
set(value) {
|
|
this.$emit('input', value);
|
|
},
|
|
},
|
|
},
|
|
};
|
|
</script>
|