@funcho/ui 1.1.9 → 1.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/cjs/business/TreeCheckFilter/TreeCheckFilter.vue.js +212 -0
- package/dist/cjs/business/TreeCheckFilter/TreeCheckFilter.vue3.js +10 -0
- package/dist/cjs/business/TreeCheckFilter/index.js +12 -0
- package/dist/cjs/business/TreeTransfer/TreeTransfer.vue.js +198 -0
- package/dist/cjs/business/TreeTransfer/TreeTransfer.vue3.js +10 -0
- package/dist/cjs/business/TreeTransfer/index.js +12 -0
- package/dist/cjs/business/index.js +4 -0
- package/dist/cjs/components/SelectV2/SelectV2.vue.js +3 -1
- package/dist/cjs/components/SubMenu/SubMenu.vue.js +3 -1
- package/dist/cjs/components/TableV2/TableV2.vue.js +3 -1
- package/dist/cjs/index.js +10 -6
- package/dist/cjs/packages/ui/package.json.js +1 -1
- package/dist/esm/business/TreeCheckFilter/TreeCheckFilter.vue.mjs +208 -0
- package/dist/esm/business/TreeCheckFilter/TreeCheckFilter.vue3.mjs +6 -0
- package/dist/esm/business/TreeCheckFilter/index.mjs +7 -0
- package/dist/esm/business/TreeTransfer/TreeTransfer.vue.mjs +194 -0
- package/dist/esm/business/TreeTransfer/TreeTransfer.vue3.mjs +6 -0
- package/dist/esm/business/TreeTransfer/index.mjs +7 -0
- package/dist/esm/business/index.mjs +2 -0
- package/dist/esm/components/SelectV2/SelectV2.vue.mjs +4 -2
- package/dist/esm/components/SubMenu/SubMenu.vue.mjs +4 -2
- package/dist/esm/components/TableV2/TableV2.vue.mjs +4 -2
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/packages/ui/package.json.mjs +1 -1
- package/dist/style.css +61 -0
- package/dist/types/business/TreeCheckFilter/TreeCheckFilter.types.d.ts +1 -0
- package/dist/types/business/TreeCheckFilter/TreeCheckFilter.vue.d.ts +4133 -0
- package/dist/types/business/TreeCheckFilter/index.d.ts +6217 -0
- package/dist/types/business/TreeTransfer/TreeTransfer.types.d.ts +9 -0
- package/dist/types/business/TreeTransfer/TreeTransfer.vue.d.ts +10369 -0
- package/dist/types/business/TreeTransfer/index.d.ts +10406 -0
- package/dist/types/business/index.d.ts +2 -0
- package/dist/types/components/Menu/Menu.vue.d.ts +2 -2
- package/dist/types/components/Menu/index.d.ts +6 -6
- package/dist/types/components/SelectV2/SelectV2.vue.d.ts +7 -6
- package/dist/types/components/Table/Table.vue.d.ts +4611 -0
- package/dist/types/components/TableV2/TableV2.vue.d.ts +11 -4
- package/dist/types/components/TableV2/index.d.ts +33 -12
- package/package.json +4 -4
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import { defineComponent, ref, createElementBlock, openBlock, normalizeClass, unref, createCommentVNode, createElementVNode, createBlock, withKeys, normalizeStyle, createVNode, withCtx, mergeProps } from 'vue';
|
|
2
|
+
import { useNamespace } from '../../hooks/use-namespace.mjs';
|
|
3
|
+
import '../../components/Button/index.mjs';
|
|
4
|
+
import '../../components/Dialog/index.mjs';
|
|
5
|
+
import '../../components/ConfigProvider/index.mjs';
|
|
6
|
+
import { FcInput } from '../../components/Input/index.mjs';
|
|
7
|
+
import { FcTree } from '../../components/Tree/index.mjs';
|
|
8
|
+
import '../../components/Tabs/index.mjs';
|
|
9
|
+
import '../../components/TabPane/index.mjs';
|
|
10
|
+
import '../../components/Steps/index.mjs';
|
|
11
|
+
import '../../components/Step/index.mjs';
|
|
12
|
+
import '../../components/InputNumber/index.mjs';
|
|
13
|
+
import '../../components/Select/index.mjs';
|
|
14
|
+
import '../../components/Option/index.mjs';
|
|
15
|
+
import '../../components/DatePicker/index.mjs';
|
|
16
|
+
import '../../components/DatePickerPanel/index.mjs';
|
|
17
|
+
import '../../components/Tooltip/index.mjs';
|
|
18
|
+
import '../../components/Icon/index.mjs';
|
|
19
|
+
import '../../components/Notification/index.mjs';
|
|
20
|
+
import '../../components/Link/index.mjs';
|
|
21
|
+
import '../../components/Text/index.mjs';
|
|
22
|
+
import { FcScrollbar } from '../../components/Scrollbar/index.mjs';
|
|
23
|
+
import '../../components/Splitter/index.mjs';
|
|
24
|
+
import '../../components/SplitterPanel/index.mjs';
|
|
25
|
+
import '../../components/Autocomplete/index.mjs';
|
|
26
|
+
import '../../components/Cascader/index.mjs';
|
|
27
|
+
import '../../components/CascaderPanel/index.mjs';
|
|
28
|
+
import { FcCheckbox } from '../../components/Checkbox/index.mjs';
|
|
29
|
+
import '../../components/CheckboxGroup/index.mjs';
|
|
30
|
+
import '../../components/CheckboxButton/index.mjs';
|
|
31
|
+
import '../../components/Form/index.mjs';
|
|
32
|
+
import '../../components/FormItem/index.mjs';
|
|
33
|
+
import '../../components/InputTag/index.mjs';
|
|
34
|
+
import '../../components/Radio/index.mjs';
|
|
35
|
+
import '../../components/RadioGroup/index.mjs';
|
|
36
|
+
import '../../components/SelectV2/index.mjs';
|
|
37
|
+
import '../../components/Switch/index.mjs';
|
|
38
|
+
import '../../components/TimePicker/index.mjs';
|
|
39
|
+
import '../../components/TimeSelect/index.mjs';
|
|
40
|
+
import '../../components/TreeSelect/index.mjs';
|
|
41
|
+
import '../../components/Upload/index.mjs';
|
|
42
|
+
import '../../components/Avatar/index.mjs';
|
|
43
|
+
import '../../components/AvatarGroup/index.mjs';
|
|
44
|
+
import '../../components/Badge/index.mjs';
|
|
45
|
+
import '../../components/Card/index.mjs';
|
|
46
|
+
import '../../components/Descriptions/index.mjs';
|
|
47
|
+
import '../../components/DescriptionsItem/index.mjs';
|
|
48
|
+
import '../../components/Empty/index.mjs';
|
|
49
|
+
import '../../components/Image/index.mjs';
|
|
50
|
+
import '../../components/ImageViewer/index.mjs';
|
|
51
|
+
import '../../components/Pagination/index.mjs';
|
|
52
|
+
import '../../components/Table/index.mjs';
|
|
53
|
+
import '../../components/TableColumn/index.mjs';
|
|
54
|
+
import '../../components/TableV2/index.mjs';
|
|
55
|
+
import '../../components/Tag/index.mjs';
|
|
56
|
+
import '../../components/Breadcrumb/index.mjs';
|
|
57
|
+
import '../../components/BreadcrumbItem/index.mjs';
|
|
58
|
+
import '../../components/Drawer/index.mjs';
|
|
59
|
+
import '../../components/Popconfirm/index.mjs';
|
|
60
|
+
import '../../components/IconComponent/index.mjs';
|
|
61
|
+
import '../../components/Popover/index.mjs';
|
|
62
|
+
import '../../components/Result/index.mjs';
|
|
63
|
+
import '../../components/Progress/index.mjs';
|
|
64
|
+
import '../../components/Divider/index.mjs';
|
|
65
|
+
import '../../components/Dropdown/index.mjs';
|
|
66
|
+
import '../../components/DropdownMenu/index.mjs';
|
|
67
|
+
import '../../components/DropdownItem/index.mjs';
|
|
68
|
+
import '../../components/Menu/index.mjs';
|
|
69
|
+
import '../../components/SubMenu/index.mjs';
|
|
70
|
+
import '../../components/MenuItem/index.mjs';
|
|
71
|
+
import '../../components/RadioButton/index.mjs';
|
|
72
|
+
import '../../components/MenuItemGroup/index.mjs';
|
|
73
|
+
import '../../components/Collapse/index.mjs';
|
|
74
|
+
import '../../components/CollapseItem/index.mjs';
|
|
75
|
+
import '../../components/ContextMenu/index.mjs';
|
|
76
|
+
import '../../components/CodeEditor/index.mjs';
|
|
77
|
+
import '../../components/RichEditor/index.mjs';
|
|
78
|
+
import { Search } from '@funcho/icons-vue';
|
|
79
|
+
import { useElementSize } from '@vueuse/core';
|
|
80
|
+
|
|
81
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
82
|
+
...{
|
|
83
|
+
name: "FcProTreeCheckFilter",
|
|
84
|
+
inheritAttrs: false
|
|
85
|
+
},
|
|
86
|
+
__name: "TreeCheckFilter",
|
|
87
|
+
props: {
|
|
88
|
+
border: { type: Boolean, default: true },
|
|
89
|
+
label: { default: "全选" },
|
|
90
|
+
data: { default: () => [] },
|
|
91
|
+
nodeKey: { default: "value" },
|
|
92
|
+
showCheckbox: { type: Boolean, default: true },
|
|
93
|
+
showSearch: { type: Boolean, default: true }
|
|
94
|
+
},
|
|
95
|
+
setup(__props, { expose: __expose }) {
|
|
96
|
+
const ns = useNamespace("pro-tree-check-filter");
|
|
97
|
+
const treeCheckFilterHeader = ref(null);
|
|
98
|
+
const { height: treeCheckFilterHeaderHeight } = useElementSize(treeCheckFilterHeader, void 0, {
|
|
99
|
+
box: "border-box"
|
|
100
|
+
});
|
|
101
|
+
const props = __props;
|
|
102
|
+
const checkAll = ref(false);
|
|
103
|
+
const indeterminate = ref(false);
|
|
104
|
+
const queryValue = ref("");
|
|
105
|
+
const treeRef = ref();
|
|
106
|
+
const handelSearch = () => {
|
|
107
|
+
treeRef.value?.filter(queryValue.value);
|
|
108
|
+
};
|
|
109
|
+
const filterNode = (value, data) => {
|
|
110
|
+
if (!value) return true;
|
|
111
|
+
return data.label.includes(value);
|
|
112
|
+
};
|
|
113
|
+
const handleCheckAllChange = () => {
|
|
114
|
+
if (checkAll.value) {
|
|
115
|
+
treeRef.value?.setCheckedNodes([]);
|
|
116
|
+
checkAll.value = false;
|
|
117
|
+
indeterminate.value = false;
|
|
118
|
+
} else {
|
|
119
|
+
const currentCheckedKeys = treeRef.value?.getCheckedKeys();
|
|
120
|
+
const nodesMap = treeRef.value?.store.nodesMap || {};
|
|
121
|
+
const visibleKeys = [];
|
|
122
|
+
Object.values(nodesMap).forEach((node) => {
|
|
123
|
+
if (node.level > 0 && node.visible && node.isLeaf && !node.disabled) {
|
|
124
|
+
visibleKeys.push(node.data[props.nodeKey]);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
const finalKeys = Array.from(/* @__PURE__ */ new Set([...currentCheckedKeys, ...visibleKeys]));
|
|
128
|
+
treeRef.value?.setCheckedKeys(finalKeys);
|
|
129
|
+
checkAll.value = isAllAvailableChecked();
|
|
130
|
+
indeterminate.value = !checkAll.value && finalKeys.length > 0;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const handleTreeCheckChange = () => {
|
|
134
|
+
const currentCheckedKeys = treeRef.value?.getCheckedKeys();
|
|
135
|
+
checkAll.value = isAllAvailableChecked();
|
|
136
|
+
indeterminate.value = !checkAll.value && currentCheckedKeys.length > 0;
|
|
137
|
+
};
|
|
138
|
+
const isAllAvailableChecked = () => {
|
|
139
|
+
const nodesMap = treeRef.value?.store.nodesMap || {};
|
|
140
|
+
const availableNodes = Object.values(nodesMap).filter((node) => node.level > 0 && !node.disabled);
|
|
141
|
+
if (availableNodes.length === 0) return false;
|
|
142
|
+
return availableNodes.every((node) => node.checked);
|
|
143
|
+
};
|
|
144
|
+
__expose(
|
|
145
|
+
new Proxy(
|
|
146
|
+
{},
|
|
147
|
+
{
|
|
148
|
+
get(_, key) {
|
|
149
|
+
return treeRef.value?.[key];
|
|
150
|
+
},
|
|
151
|
+
has(_, key) {
|
|
152
|
+
return key in treeRef.value;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
)
|
|
156
|
+
);
|
|
157
|
+
return (_ctx, _cache) => {
|
|
158
|
+
return openBlock(), createElementBlock("div", {
|
|
159
|
+
class: normalizeClass({ [unref(ns).b()]: true, [unref(ns).is("border")]: __props.border })
|
|
160
|
+
}, [
|
|
161
|
+
__props.showCheckbox || __props.showSearch ? (openBlock(), createElementBlock("div", {
|
|
162
|
+
key: 0,
|
|
163
|
+
ref_key: "treeCheckFilterHeader",
|
|
164
|
+
ref: treeCheckFilterHeader,
|
|
165
|
+
class: normalizeClass(unref(ns).e("header"))
|
|
166
|
+
}, [
|
|
167
|
+
__props.showCheckbox ? (openBlock(), createBlock(unref(FcCheckbox), {
|
|
168
|
+
key: 0,
|
|
169
|
+
"model-value": checkAll.value,
|
|
170
|
+
label: __props.label,
|
|
171
|
+
indeterminate: indeterminate.value,
|
|
172
|
+
onClick: handleCheckAllChange
|
|
173
|
+
}, null, 8, ["model-value", "label", "indeterminate"])) : createCommentVNode("", true),
|
|
174
|
+
__props.showSearch ? (openBlock(), createBlock(unref(FcInput), {
|
|
175
|
+
key: 1,
|
|
176
|
+
modelValue: queryValue.value,
|
|
177
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => queryValue.value = $event),
|
|
178
|
+
placeholder: "请输入关键词",
|
|
179
|
+
"prefix-icon": unref(Search),
|
|
180
|
+
onClear: handelSearch,
|
|
181
|
+
onKeyup: withKeys(handelSearch, ["enter"])
|
|
182
|
+
}, null, 8, ["modelValue", "prefix-icon"])) : createCommentVNode("", true)
|
|
183
|
+
], 2)) : createCommentVNode("", true),
|
|
184
|
+
createElementVNode("div", {
|
|
185
|
+
class: normalizeClass(unref(ns).e("body")),
|
|
186
|
+
style: normalizeStyle({ height: `calc(100% - ${unref(treeCheckFilterHeaderHeight)}px)` })
|
|
187
|
+
}, [
|
|
188
|
+
createVNode(unref(FcScrollbar), { height: "100%" }, {
|
|
189
|
+
default: withCtx(() => [
|
|
190
|
+
createVNode(unref(FcTree), mergeProps(_ctx.$attrs, {
|
|
191
|
+
ref_key: "treeRef",
|
|
192
|
+
ref: treeRef,
|
|
193
|
+
"show-checkbox": __props.showCheckbox,
|
|
194
|
+
data: __props.data,
|
|
195
|
+
"filter-node-method": filterNode,
|
|
196
|
+
"node-key": __props.nodeKey,
|
|
197
|
+
onCheck: handleTreeCheckChange
|
|
198
|
+
}), null, 16, ["show-checkbox", "data", "node-key"])
|
|
199
|
+
]),
|
|
200
|
+
_: 1
|
|
201
|
+
})
|
|
202
|
+
], 6)
|
|
203
|
+
], 2);
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
export { _sfc_main as default };
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { defineComponent, ref, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createVNode, mergeProps, createBlock, createCommentVNode, withCtx } from 'vue';
|
|
2
|
+
import { useNamespace } from '../../hooks/use-namespace.mjs';
|
|
3
|
+
import _sfc_main$1 from '../TreeCheckFilter/TreeCheckFilter.vue.mjs';
|
|
4
|
+
/* empty css */
|
|
5
|
+
import '../../components/Button/index.mjs';
|
|
6
|
+
import '../../components/Dialog/index.mjs';
|
|
7
|
+
import '../../components/ConfigProvider/index.mjs';
|
|
8
|
+
import '../../components/Input/index.mjs';
|
|
9
|
+
import '../../components/Tree/index.mjs';
|
|
10
|
+
import '../../components/Tabs/index.mjs';
|
|
11
|
+
import '../../components/TabPane/index.mjs';
|
|
12
|
+
import '../../components/Steps/index.mjs';
|
|
13
|
+
import '../../components/Step/index.mjs';
|
|
14
|
+
import '../../components/InputNumber/index.mjs';
|
|
15
|
+
import '../../components/Select/index.mjs';
|
|
16
|
+
import '../../components/Option/index.mjs';
|
|
17
|
+
import '../../components/DatePicker/index.mjs';
|
|
18
|
+
import '../../components/DatePickerPanel/index.mjs';
|
|
19
|
+
import { FcTooltip } from '../../components/Tooltip/index.mjs';
|
|
20
|
+
import '../../components/Icon/index.mjs';
|
|
21
|
+
import { FcNotification } from '../../components/Notification/index.mjs';
|
|
22
|
+
import '../../components/Link/index.mjs';
|
|
23
|
+
import '../../components/Text/index.mjs';
|
|
24
|
+
import '../../components/Scrollbar/index.mjs';
|
|
25
|
+
import '../../components/Splitter/index.mjs';
|
|
26
|
+
import '../../components/SplitterPanel/index.mjs';
|
|
27
|
+
import '../../components/Autocomplete/index.mjs';
|
|
28
|
+
import '../../components/Cascader/index.mjs';
|
|
29
|
+
import '../../components/CascaderPanel/index.mjs';
|
|
30
|
+
import '../../components/Checkbox/index.mjs';
|
|
31
|
+
import '../../components/CheckboxGroup/index.mjs';
|
|
32
|
+
import '../../components/CheckboxButton/index.mjs';
|
|
33
|
+
import '../../components/Form/index.mjs';
|
|
34
|
+
import '../../components/FormItem/index.mjs';
|
|
35
|
+
import '../../components/InputTag/index.mjs';
|
|
36
|
+
import '../../components/Radio/index.mjs';
|
|
37
|
+
import '../../components/RadioGroup/index.mjs';
|
|
38
|
+
import '../../components/SelectV2/index.mjs';
|
|
39
|
+
import '../../components/Switch/index.mjs';
|
|
40
|
+
import '../../components/TimePicker/index.mjs';
|
|
41
|
+
import '../../components/TimeSelect/index.mjs';
|
|
42
|
+
import '../../components/TreeSelect/index.mjs';
|
|
43
|
+
import '../../components/Upload/index.mjs';
|
|
44
|
+
import '../../components/Avatar/index.mjs';
|
|
45
|
+
import '../../components/AvatarGroup/index.mjs';
|
|
46
|
+
import '../../components/Badge/index.mjs';
|
|
47
|
+
import '../../components/Card/index.mjs';
|
|
48
|
+
import '../../components/Descriptions/index.mjs';
|
|
49
|
+
import '../../components/DescriptionsItem/index.mjs';
|
|
50
|
+
import '../../components/Empty/index.mjs';
|
|
51
|
+
import '../../components/Image/index.mjs';
|
|
52
|
+
import '../../components/ImageViewer/index.mjs';
|
|
53
|
+
import '../../components/Pagination/index.mjs';
|
|
54
|
+
import '../../components/Table/index.mjs';
|
|
55
|
+
import '../../components/TableColumn/index.mjs';
|
|
56
|
+
import '../../components/TableV2/index.mjs';
|
|
57
|
+
import '../../components/Tag/index.mjs';
|
|
58
|
+
import '../../components/Breadcrumb/index.mjs';
|
|
59
|
+
import '../../components/BreadcrumbItem/index.mjs';
|
|
60
|
+
import '../../components/Drawer/index.mjs';
|
|
61
|
+
import '../../components/Popconfirm/index.mjs';
|
|
62
|
+
import { FcIconComponent } from '../../components/IconComponent/index.mjs';
|
|
63
|
+
import '../../components/Popover/index.mjs';
|
|
64
|
+
import '../../components/Result/index.mjs';
|
|
65
|
+
import '../../components/Progress/index.mjs';
|
|
66
|
+
import '../../components/Divider/index.mjs';
|
|
67
|
+
import '../../components/Dropdown/index.mjs';
|
|
68
|
+
import '../../components/DropdownMenu/index.mjs';
|
|
69
|
+
import '../../components/DropdownItem/index.mjs';
|
|
70
|
+
import '../../components/Menu/index.mjs';
|
|
71
|
+
import '../../components/SubMenu/index.mjs';
|
|
72
|
+
import '../../components/MenuItem/index.mjs';
|
|
73
|
+
import '../../components/RadioButton/index.mjs';
|
|
74
|
+
import '../../components/MenuItemGroup/index.mjs';
|
|
75
|
+
import '../../components/Collapse/index.mjs';
|
|
76
|
+
import '../../components/CollapseItem/index.mjs';
|
|
77
|
+
import '../../components/ContextMenu/index.mjs';
|
|
78
|
+
import '../../components/CodeEditor/index.mjs';
|
|
79
|
+
import '../../components/RichEditor/index.mjs';
|
|
80
|
+
|
|
81
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
82
|
+
...{
|
|
83
|
+
name: "FcProTreeTransfer",
|
|
84
|
+
inheritAttrs: false
|
|
85
|
+
},
|
|
86
|
+
__name: "TreeTransfer",
|
|
87
|
+
props: {
|
|
88
|
+
leftProps: { default: () => ({}) },
|
|
89
|
+
rightProps: { default: () => ({}) }
|
|
90
|
+
},
|
|
91
|
+
emits: ["add", "remove"],
|
|
92
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
93
|
+
const ns = useNamespace("pro-tree-transfer");
|
|
94
|
+
const leftTreeRef = ref();
|
|
95
|
+
const rightTreeRef = ref();
|
|
96
|
+
const emits = __emit;
|
|
97
|
+
const handleAddClick = () => {
|
|
98
|
+
const keys = leftTreeRef.value?.getCheckedKeys(false) || [];
|
|
99
|
+
if (keys.length === 0) {
|
|
100
|
+
FcNotification({
|
|
101
|
+
type: "warning",
|
|
102
|
+
message: "请选择左侧内容"
|
|
103
|
+
});
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const nodes = leftTreeRef.value?.getCheckedNodes(false, false) || [];
|
|
107
|
+
emits("add", leftTreeRef.value, nodes, keys);
|
|
108
|
+
};
|
|
109
|
+
const handleRemoveClick = () => {
|
|
110
|
+
const keys = rightTreeRef.value?.getCheckedKeys(false) || [];
|
|
111
|
+
if (keys.length === 0) {
|
|
112
|
+
FcNotification({
|
|
113
|
+
type: "warning",
|
|
114
|
+
message: "请选择右侧内容"
|
|
115
|
+
});
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const nodes = rightTreeRef.value?.getCheckedNodes(false, false) || [];
|
|
119
|
+
emits("remove", rightTreeRef.value, nodes, keys);
|
|
120
|
+
};
|
|
121
|
+
__expose({
|
|
122
|
+
leftTreeRef,
|
|
123
|
+
rightTreeRef
|
|
124
|
+
});
|
|
125
|
+
return (_ctx, _cache) => {
|
|
126
|
+
return openBlock(), createElementBlock("div", {
|
|
127
|
+
class: normalizeClass(unref(ns).b())
|
|
128
|
+
}, [
|
|
129
|
+
createElementVNode("div", {
|
|
130
|
+
class: normalizeClass(unref(ns).e("left"))
|
|
131
|
+
}, [
|
|
132
|
+
createVNode(_sfc_main$1, mergeProps({
|
|
133
|
+
ref_key: "leftTreeRef",
|
|
134
|
+
ref: leftTreeRef
|
|
135
|
+
}, __props.leftProps), null, 16)
|
|
136
|
+
], 2),
|
|
137
|
+
createElementVNode("div", {
|
|
138
|
+
class: normalizeClass(unref(ns).e("center"))
|
|
139
|
+
}, [
|
|
140
|
+
!__props.leftProps.hiddenBtn ? (openBlock(), createBlock(unref(FcTooltip), {
|
|
141
|
+
key: 0,
|
|
142
|
+
content: __props.leftProps.tooltip || "新增",
|
|
143
|
+
placement: "top",
|
|
144
|
+
"fallback-placements": ["top", "bottom", "left", "right"]
|
|
145
|
+
}, {
|
|
146
|
+
default: withCtx(() => [
|
|
147
|
+
createElementVNode("div", {
|
|
148
|
+
class: normalizeClass(unref(ns).e("right")),
|
|
149
|
+
onClick: handleAddClick
|
|
150
|
+
}, [
|
|
151
|
+
createVNode(unref(FcIconComponent), {
|
|
152
|
+
name: "FcRightArrow",
|
|
153
|
+
size: "32",
|
|
154
|
+
color: "#165dff"
|
|
155
|
+
})
|
|
156
|
+
], 2)
|
|
157
|
+
]),
|
|
158
|
+
_: 1
|
|
159
|
+
}, 8, ["content"])) : createCommentVNode("", true),
|
|
160
|
+
!__props.rightProps.hiddenBtn ? (openBlock(), createBlock(unref(FcTooltip), {
|
|
161
|
+
key: 1,
|
|
162
|
+
content: __props.rightProps.tooltip || "删除",
|
|
163
|
+
placement: "top",
|
|
164
|
+
"fallback-placements": ["top", "bottom", "left", "right"]
|
|
165
|
+
}, {
|
|
166
|
+
default: withCtx(() => [
|
|
167
|
+
createElementVNode("div", {
|
|
168
|
+
class: normalizeClass(unref(ns).e("left")),
|
|
169
|
+
onClick: handleRemoveClick
|
|
170
|
+
}, [
|
|
171
|
+
createVNode(unref(FcIconComponent), {
|
|
172
|
+
name: "FcLeftArrow",
|
|
173
|
+
size: "32",
|
|
174
|
+
color: "#ff3232"
|
|
175
|
+
})
|
|
176
|
+
], 2)
|
|
177
|
+
]),
|
|
178
|
+
_: 1
|
|
179
|
+
}, 8, ["content"])) : createCommentVNode("", true)
|
|
180
|
+
], 2),
|
|
181
|
+
createElementVNode("div", {
|
|
182
|
+
class: normalizeClass(unref(ns).e("right"))
|
|
183
|
+
}, [
|
|
184
|
+
createVNode(_sfc_main$1, mergeProps({
|
|
185
|
+
ref_key: "rightTreeRef",
|
|
186
|
+
ref: rightTreeRef
|
|
187
|
+
}, __props.rightProps), null, 16)
|
|
188
|
+
], 2)
|
|
189
|
+
], 2);
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
export { _sfc_main as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { FcProSidebarMainLayout } from './SidebarMainLayout/index.mjs';
|
|
2
2
|
export { FcProDataTable } from './DataTable/index.mjs';
|
|
3
3
|
export { FcProForm } from './ProForm/index.mjs';
|
|
4
|
+
export { FcProTreeCheckFilter } from './TreeCheckFilter/index.mjs';
|
|
5
|
+
export { FcProTreeTransfer } from './TreeTransfer/index.mjs';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
|
|
1
|
+
import { defineComponent, useAttrs, computed, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
|
|
2
2
|
import { ElSelectV2 } from '../../node_modules/.pnpm/element-plus@2.13.5_patch_hash_415fe9eaeb4c26121ef1304c7dfbfaa75441fcd0d7ca1a8beb1acd12_87ac520f28bb40f5a8b03aa48269c150/node_modules/element-plus/es/components/select-v2/index.mjs';
|
|
3
3
|
import '../../_virtual/dayjs.min.mjs';
|
|
4
4
|
|
|
@@ -8,6 +8,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
8
8
|
},
|
|
9
9
|
__name: "SelectV2",
|
|
10
10
|
setup(__props, { expose: __expose }) {
|
|
11
|
+
const attrs = useAttrs();
|
|
12
|
+
const selectBindProps = computed(() => attrs);
|
|
11
13
|
const elRef = ref();
|
|
12
14
|
__expose(
|
|
13
15
|
new Proxy(
|
|
@@ -23,7 +25,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
23
25
|
)
|
|
24
26
|
);
|
|
25
27
|
return (_ctx, _cache) => {
|
|
26
|
-
return openBlock(), createBlock(unref(ElSelectV2), mergeProps(
|
|
28
|
+
return openBlock(), createBlock(unref(ElSelectV2), mergeProps(selectBindProps.value, {
|
|
27
29
|
ref_key: "elRef",
|
|
28
30
|
ref: elRef
|
|
29
31
|
}), createSlots({ _: 2 }, [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
|
|
1
|
+
import { defineComponent, useAttrs, computed, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
|
|
2
2
|
import { ElSubMenu } from '../../node_modules/.pnpm/element-plus@2.13.5_patch_hash_415fe9eaeb4c26121ef1304c7dfbfaa75441fcd0d7ca1a8beb1acd12_87ac520f28bb40f5a8b03aa48269c150/node_modules/element-plus/es/components/menu/index.mjs';
|
|
3
3
|
import '../../_virtual/dayjs.min.mjs';
|
|
4
4
|
|
|
@@ -8,6 +8,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
8
8
|
},
|
|
9
9
|
__name: "SubMenu",
|
|
10
10
|
setup(__props, { expose: __expose }) {
|
|
11
|
+
const attrs = useAttrs();
|
|
12
|
+
const subMenuBindProps = computed(() => attrs);
|
|
11
13
|
const elRef = ref();
|
|
12
14
|
__expose(
|
|
13
15
|
new Proxy(
|
|
@@ -23,7 +25,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
23
25
|
)
|
|
24
26
|
);
|
|
25
27
|
return (_ctx, _cache) => {
|
|
26
|
-
return openBlock(), createBlock(unref(ElSubMenu), mergeProps(
|
|
28
|
+
return openBlock(), createBlock(unref(ElSubMenu), mergeProps(subMenuBindProps.value, {
|
|
27
29
|
ref_key: "elRef",
|
|
28
30
|
ref: elRef
|
|
29
31
|
}), createSlots({ _: 2 }, [
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
|
|
1
|
+
import { defineComponent, useAttrs, computed, ref, createBlock, openBlock, unref, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from 'vue';
|
|
2
2
|
import { ElTableV2 } from '../../node_modules/.pnpm/element-plus@2.13.5_patch_hash_415fe9eaeb4c26121ef1304c7dfbfaa75441fcd0d7ca1a8beb1acd12_87ac520f28bb40f5a8b03aa48269c150/node_modules/element-plus/es/components/table-v2/index.mjs';
|
|
3
3
|
import '../../_virtual/dayjs.min.mjs';
|
|
4
4
|
|
|
@@ -12,6 +12,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
12
12
|
headerHeight: { default: 40 }
|
|
13
13
|
},
|
|
14
14
|
setup(__props, { expose: __expose }) {
|
|
15
|
+
const attrs = useAttrs();
|
|
16
|
+
const tableBindProps = computed(() => attrs);
|
|
15
17
|
const elRef = ref();
|
|
16
18
|
__expose(
|
|
17
19
|
new Proxy(
|
|
@@ -27,7 +29,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
27
29
|
)
|
|
28
30
|
);
|
|
29
31
|
return (_ctx, _cache) => {
|
|
30
|
-
return openBlock(), createBlock(unref(ElTableV2), mergeProps(
|
|
32
|
+
return openBlock(), createBlock(unref(ElTableV2), mergeProps(tableBindProps.value, {
|
|
31
33
|
ref_key: "elRef",
|
|
32
34
|
ref: elRef,
|
|
33
35
|
"row-height": __props.rowHeight,
|
package/dist/esm/index.mjs
CHANGED
|
@@ -87,6 +87,8 @@ export { FcRichEditor, FcRichEditorInput } from './components/RichEditor/index.m
|
|
|
87
87
|
export { FcProSidebarMainLayout } from './business/SidebarMainLayout/index.mjs';
|
|
88
88
|
export { FcProDataTable } from './business/DataTable/index.mjs';
|
|
89
89
|
export { FcProForm } from './business/ProForm/index.mjs';
|
|
90
|
+
export { FcProTreeCheckFilter } from './business/TreeCheckFilter/index.mjs';
|
|
91
|
+
export { FcProTreeTransfer } from './business/TreeTransfer/index.mjs';
|
|
90
92
|
|
|
91
93
|
const components = Object.keys(index$1).map((key) => {
|
|
92
94
|
return index$1[key];
|
package/dist/style.css
CHANGED
|
@@ -17136,4 +17136,65 @@ to {
|
|
|
17136
17136
|
}
|
|
17137
17137
|
.fc-mkui-data-table__actions .fc-ui-button {
|
|
17138
17138
|
margin: 0;
|
|
17139
|
+
}.fc-mkui-pro-tree-check-filter {
|
|
17140
|
+
height: 100%;
|
|
17141
|
+
}
|
|
17142
|
+
.fc-mkui-pro-tree-check-filter.is-border {
|
|
17143
|
+
border: 1px solid #c5d6ff;
|
|
17144
|
+
border-radius: 2px;
|
|
17145
|
+
}
|
|
17146
|
+
.fc-mkui-pro-tree-check-filter__header {
|
|
17147
|
+
display: flex;
|
|
17148
|
+
align-items: center;
|
|
17149
|
+
gap: 30%;
|
|
17150
|
+
padding: 10px;
|
|
17151
|
+
border-bottom: 1px solid #c5d6ff;
|
|
17152
|
+
}.fc-mkui-pro-tree-transfer {
|
|
17153
|
+
display: flex;
|
|
17154
|
+
width: 100%;
|
|
17155
|
+
height: 100%;
|
|
17156
|
+
}
|
|
17157
|
+
.fc-mkui-pro-tree-transfer__left {
|
|
17158
|
+
flex: 1;
|
|
17159
|
+
}
|
|
17160
|
+
.fc-mkui-pro-tree-transfer__left .fc-mkui-pro-tree-check-filter.is-border {
|
|
17161
|
+
border-top-right-radius: 0;
|
|
17162
|
+
border-bottom-right-radius: 0;
|
|
17163
|
+
}
|
|
17164
|
+
.fc-mkui-pro-tree-transfer__right {
|
|
17165
|
+
flex: 1;
|
|
17166
|
+
}
|
|
17167
|
+
.fc-mkui-pro-tree-transfer__right .fc-mkui-pro-tree-check-filter.is-border {
|
|
17168
|
+
border-top-left-radius: 0;
|
|
17169
|
+
border-bottom-left-radius: 0;
|
|
17170
|
+
}
|
|
17171
|
+
.fc-mkui-pro-tree-transfer__center {
|
|
17172
|
+
display: flex;
|
|
17173
|
+
flex-direction: column;
|
|
17174
|
+
width: 52px;
|
|
17175
|
+
flex-shrink: 0;
|
|
17176
|
+
border-top: 1px solid #c5d6ff;
|
|
17177
|
+
border-bottom: 1px solid #c5d6ff;
|
|
17178
|
+
}
|
|
17179
|
+
.fc-mkui-pro-tree-transfer__center .fc-mkui-pro-tree-transfer__right {
|
|
17180
|
+
flex: 1;
|
|
17181
|
+
display: flex;
|
|
17182
|
+
align-items: center;
|
|
17183
|
+
justify-content: center;
|
|
17184
|
+
transition: all 0.3s;
|
|
17185
|
+
}
|
|
17186
|
+
.fc-mkui-pro-tree-transfer__center .fc-mkui-pro-tree-transfer__right:hover {
|
|
17187
|
+
background: #f5f7fa;
|
|
17188
|
+
cursor: pointer;
|
|
17189
|
+
}
|
|
17190
|
+
.fc-mkui-pro-tree-transfer__center .fc-mkui-pro-tree-transfer__left {
|
|
17191
|
+
flex: 1;
|
|
17192
|
+
display: flex;
|
|
17193
|
+
align-items: center;
|
|
17194
|
+
justify-content: center;
|
|
17195
|
+
transition: all 0.3s;
|
|
17196
|
+
}
|
|
17197
|
+
.fc-mkui-pro-tree-transfer__center .fc-mkui-pro-tree-transfer__left:hover {
|
|
17198
|
+
background: #f5f7fa;
|
|
17199
|
+
cursor: pointer;
|
|
17139
17200
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|