@cmstops/pro-compo
Version:
[物料平台文档中心](https://arco.design/docs/material/guide)
30 lines (29 loc) • 783 B
JavaScript
import { ref, computed } from "vue";
function useResourceSelect(props) {
const selected = ref([]);
const selectedKeys = computed(
() => selected.value.map((item) => item.id || item.url)
);
const disableSelect = computed(() => props.maxcount && selected.value.length >= props.maxcount);
function handleSelect(params) {
const { id, url } = params;
const index = selected.value.findIndex((item) => {
return item.id && item.id === id || item.url === url;
});
if (index > -1)
selected.value.splice(index, 1);
else
selected.value.push(params);
}
function handleClear() {
selected.value = [];
}
return {
selected,
selectedKeys,
disableSelect,
handleSelect,
handleClear
};
}
export { useResourceSelect };