@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
package/README.md
CHANGED
|
@@ -171,5 +171,7 @@ const open = ref(false);
|
|
|
171
171
|
| 序号 | 组件名称 |
|
|
172
172
|
| :---: | :--- |
|
|
173
173
|
| 1 | `FcDataTable` |
|
|
174
|
-
|
|
|
175
|
-
|
|
|
174
|
+
| 2 | `FcProForm` |
|
|
175
|
+
| 3 | `FcSidebarMainLayout` |
|
|
176
|
+
| 4 | `FcProTreeCheckFilter` |
|
|
177
|
+
| 5 | `FcProTreeTransfer` |
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const vue = require('vue');
|
|
6
|
+
const useNamespace = require('../../hooks/use-namespace.js');
|
|
7
|
+
require('../../components/Button/index.js');
|
|
8
|
+
require('../../components/Dialog/index.js');
|
|
9
|
+
require('../../components/ConfigProvider/index.js');
|
|
10
|
+
const index$1 = require('../../components/Input/index.js');
|
|
11
|
+
const index$3 = require('../../components/Tree/index.js');
|
|
12
|
+
require('../../components/Tabs/index.js');
|
|
13
|
+
require('../../components/TabPane/index.js');
|
|
14
|
+
require('../../components/Steps/index.js');
|
|
15
|
+
require('../../components/Step/index.js');
|
|
16
|
+
require('../../components/InputNumber/index.js');
|
|
17
|
+
require('../../components/Select/index.js');
|
|
18
|
+
require('../../components/Option/index.js');
|
|
19
|
+
require('../../components/DatePicker/index.js');
|
|
20
|
+
require('../../components/DatePickerPanel/index.js');
|
|
21
|
+
require('../../components/Tooltip/index.js');
|
|
22
|
+
require('../../components/Icon/index.js');
|
|
23
|
+
require('../../components/Notification/index.js');
|
|
24
|
+
require('../../components/Link/index.js');
|
|
25
|
+
require('../../components/Text/index.js');
|
|
26
|
+
const index$2 = require('../../components/Scrollbar/index.js');
|
|
27
|
+
require('../../components/Splitter/index.js');
|
|
28
|
+
require('../../components/SplitterPanel/index.js');
|
|
29
|
+
require('../../components/Autocomplete/index.js');
|
|
30
|
+
require('../../components/Cascader/index.js');
|
|
31
|
+
require('../../components/CascaderPanel/index.js');
|
|
32
|
+
const index = require('../../components/Checkbox/index.js');
|
|
33
|
+
require('../../components/CheckboxGroup/index.js');
|
|
34
|
+
require('../../components/CheckboxButton/index.js');
|
|
35
|
+
require('../../components/Form/index.js');
|
|
36
|
+
require('../../components/FormItem/index.js');
|
|
37
|
+
require('../../components/InputTag/index.js');
|
|
38
|
+
require('../../components/Radio/index.js');
|
|
39
|
+
require('../../components/RadioGroup/index.js');
|
|
40
|
+
require('../../components/SelectV2/index.js');
|
|
41
|
+
require('../../components/Switch/index.js');
|
|
42
|
+
require('../../components/TimePicker/index.js');
|
|
43
|
+
require('../../components/TimeSelect/index.js');
|
|
44
|
+
require('../../components/TreeSelect/index.js');
|
|
45
|
+
require('../../components/Upload/index.js');
|
|
46
|
+
require('../../components/Avatar/index.js');
|
|
47
|
+
require('../../components/AvatarGroup/index.js');
|
|
48
|
+
require('../../components/Badge/index.js');
|
|
49
|
+
require('../../components/Card/index.js');
|
|
50
|
+
require('../../components/Descriptions/index.js');
|
|
51
|
+
require('../../components/DescriptionsItem/index.js');
|
|
52
|
+
require('../../components/Empty/index.js');
|
|
53
|
+
require('../../components/Image/index.js');
|
|
54
|
+
require('../../components/ImageViewer/index.js');
|
|
55
|
+
require('../../components/Pagination/index.js');
|
|
56
|
+
require('../../components/Table/index.js');
|
|
57
|
+
require('../../components/TableColumn/index.js');
|
|
58
|
+
require('../../components/TableV2/index.js');
|
|
59
|
+
require('../../components/Tag/index.js');
|
|
60
|
+
require('../../components/Breadcrumb/index.js');
|
|
61
|
+
require('../../components/BreadcrumbItem/index.js');
|
|
62
|
+
require('../../components/Drawer/index.js');
|
|
63
|
+
require('../../components/Popconfirm/index.js');
|
|
64
|
+
require('../../components/IconComponent/index.js');
|
|
65
|
+
require('../../components/Popover/index.js');
|
|
66
|
+
require('../../components/Result/index.js');
|
|
67
|
+
require('../../components/Progress/index.js');
|
|
68
|
+
require('../../components/Divider/index.js');
|
|
69
|
+
require('../../components/Dropdown/index.js');
|
|
70
|
+
require('../../components/DropdownMenu/index.js');
|
|
71
|
+
require('../../components/DropdownItem/index.js');
|
|
72
|
+
require('../../components/Menu/index.js');
|
|
73
|
+
require('../../components/SubMenu/index.js');
|
|
74
|
+
require('../../components/MenuItem/index.js');
|
|
75
|
+
require('../../components/RadioButton/index.js');
|
|
76
|
+
require('../../components/MenuItemGroup/index.js');
|
|
77
|
+
require('../../components/Collapse/index.js');
|
|
78
|
+
require('../../components/CollapseItem/index.js');
|
|
79
|
+
require('../../components/ContextMenu/index.js');
|
|
80
|
+
require('../../components/CodeEditor/index.js');
|
|
81
|
+
require('../../components/RichEditor/index.js');
|
|
82
|
+
const Icons = require('@funcho/icons-vue');
|
|
83
|
+
const core = require('@vueuse/core');
|
|
84
|
+
|
|
85
|
+
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
86
|
+
...{
|
|
87
|
+
name: "FcProTreeCheckFilter",
|
|
88
|
+
inheritAttrs: false
|
|
89
|
+
},
|
|
90
|
+
__name: "TreeCheckFilter",
|
|
91
|
+
props: {
|
|
92
|
+
border: { type: Boolean, default: true },
|
|
93
|
+
label: { default: "全选" },
|
|
94
|
+
data: { default: () => [] },
|
|
95
|
+
nodeKey: { default: "value" },
|
|
96
|
+
showCheckbox: { type: Boolean, default: true },
|
|
97
|
+
showSearch: { type: Boolean, default: true }
|
|
98
|
+
},
|
|
99
|
+
setup(__props, { expose: __expose }) {
|
|
100
|
+
const ns = useNamespace.useNamespace("pro-tree-check-filter");
|
|
101
|
+
const treeCheckFilterHeader = vue.ref(null);
|
|
102
|
+
const { height: treeCheckFilterHeaderHeight } = core.useElementSize(treeCheckFilterHeader, void 0, {
|
|
103
|
+
box: "border-box"
|
|
104
|
+
});
|
|
105
|
+
const props = __props;
|
|
106
|
+
const checkAll = vue.ref(false);
|
|
107
|
+
const indeterminate = vue.ref(false);
|
|
108
|
+
const queryValue = vue.ref("");
|
|
109
|
+
const treeRef = vue.ref();
|
|
110
|
+
const handelSearch = () => {
|
|
111
|
+
treeRef.value?.filter(queryValue.value);
|
|
112
|
+
};
|
|
113
|
+
const filterNode = (value, data) => {
|
|
114
|
+
if (!value) return true;
|
|
115
|
+
return data.label.includes(value);
|
|
116
|
+
};
|
|
117
|
+
const handleCheckAllChange = () => {
|
|
118
|
+
if (checkAll.value) {
|
|
119
|
+
treeRef.value?.setCheckedNodes([]);
|
|
120
|
+
checkAll.value = false;
|
|
121
|
+
indeterminate.value = false;
|
|
122
|
+
} else {
|
|
123
|
+
const currentCheckedKeys = treeRef.value?.getCheckedKeys();
|
|
124
|
+
const nodesMap = treeRef.value?.store.nodesMap || {};
|
|
125
|
+
const visibleKeys = [];
|
|
126
|
+
Object.values(nodesMap).forEach((node) => {
|
|
127
|
+
if (node.level > 0 && node.visible && node.isLeaf && !node.disabled) {
|
|
128
|
+
visibleKeys.push(node.data[props.nodeKey]);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
const finalKeys = Array.from(/* @__PURE__ */ new Set([...currentCheckedKeys, ...visibleKeys]));
|
|
132
|
+
treeRef.value?.setCheckedKeys(finalKeys);
|
|
133
|
+
checkAll.value = isAllAvailableChecked();
|
|
134
|
+
indeterminate.value = !checkAll.value && finalKeys.length > 0;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const handleTreeCheckChange = () => {
|
|
138
|
+
const currentCheckedKeys = treeRef.value?.getCheckedKeys();
|
|
139
|
+
checkAll.value = isAllAvailableChecked();
|
|
140
|
+
indeterminate.value = !checkAll.value && currentCheckedKeys.length > 0;
|
|
141
|
+
};
|
|
142
|
+
const isAllAvailableChecked = () => {
|
|
143
|
+
const nodesMap = treeRef.value?.store.nodesMap || {};
|
|
144
|
+
const availableNodes = Object.values(nodesMap).filter((node) => node.level > 0 && !node.disabled);
|
|
145
|
+
if (availableNodes.length === 0) return false;
|
|
146
|
+
return availableNodes.every((node) => node.checked);
|
|
147
|
+
};
|
|
148
|
+
__expose(
|
|
149
|
+
new Proxy(
|
|
150
|
+
{},
|
|
151
|
+
{
|
|
152
|
+
get(_, key) {
|
|
153
|
+
return treeRef.value?.[key];
|
|
154
|
+
},
|
|
155
|
+
has(_, key) {
|
|
156
|
+
return key in treeRef.value;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
);
|
|
161
|
+
return (_ctx, _cache) => {
|
|
162
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
163
|
+
class: vue.normalizeClass({ [vue.unref(ns).b()]: true, [vue.unref(ns).is("border")]: __props.border })
|
|
164
|
+
}, [
|
|
165
|
+
__props.showCheckbox || __props.showSearch ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
166
|
+
key: 0,
|
|
167
|
+
ref_key: "treeCheckFilterHeader",
|
|
168
|
+
ref: treeCheckFilterHeader,
|
|
169
|
+
class: vue.normalizeClass(vue.unref(ns).e("header"))
|
|
170
|
+
}, [
|
|
171
|
+
__props.showCheckbox ? (vue.openBlock(), vue.createBlock(vue.unref(index.FcCheckbox), {
|
|
172
|
+
key: 0,
|
|
173
|
+
"model-value": checkAll.value,
|
|
174
|
+
label: __props.label,
|
|
175
|
+
indeterminate: indeterminate.value,
|
|
176
|
+
onClick: handleCheckAllChange
|
|
177
|
+
}, null, 8, ["model-value", "label", "indeterminate"])) : vue.createCommentVNode("", true),
|
|
178
|
+
__props.showSearch ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.FcInput), {
|
|
179
|
+
key: 1,
|
|
180
|
+
modelValue: queryValue.value,
|
|
181
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => queryValue.value = $event),
|
|
182
|
+
placeholder: "请输入关键词",
|
|
183
|
+
"prefix-icon": vue.unref(Icons.Search),
|
|
184
|
+
onClear: handelSearch,
|
|
185
|
+
onKeyup: vue.withKeys(handelSearch, ["enter"])
|
|
186
|
+
}, null, 8, ["modelValue", "prefix-icon"])) : vue.createCommentVNode("", true)
|
|
187
|
+
], 2)) : vue.createCommentVNode("", true),
|
|
188
|
+
vue.createElementVNode("div", {
|
|
189
|
+
class: vue.normalizeClass(vue.unref(ns).e("body")),
|
|
190
|
+
style: vue.normalizeStyle({ height: `calc(100% - ${vue.unref(treeCheckFilterHeaderHeight)}px)` })
|
|
191
|
+
}, [
|
|
192
|
+
vue.createVNode(vue.unref(index$2.FcScrollbar), { height: "100%" }, {
|
|
193
|
+
default: vue.withCtx(() => [
|
|
194
|
+
vue.createVNode(vue.unref(index$3.FcTree), vue.mergeProps(_ctx.$attrs, {
|
|
195
|
+
ref_key: "treeRef",
|
|
196
|
+
ref: treeRef,
|
|
197
|
+
"show-checkbox": __props.showCheckbox,
|
|
198
|
+
data: __props.data,
|
|
199
|
+
"filter-node-method": filterNode,
|
|
200
|
+
"node-key": __props.nodeKey,
|
|
201
|
+
onCheck: handleTreeCheckChange
|
|
202
|
+
}), null, 16, ["show-checkbox", "data", "node-key"])
|
|
203
|
+
]),
|
|
204
|
+
_: 1
|
|
205
|
+
})
|
|
206
|
+
], 6)
|
|
207
|
+
], 2);
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
exports.default = _sfc_main;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const TreeCheckFilter_vue_vue_type_script_setup_true_lang = require('./TreeCheckFilter.vue.js');
|
|
6
|
+
;/* empty css */
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.default = TreeCheckFilter_vue_vue_type_script_setup_true_lang.default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const TreeCheckFilter_vue_vue_type_script_setup_true_lang = require('./TreeCheckFilter.vue.js');
|
|
6
|
+
;/* empty css */
|
|
7
|
+
const withInstall = require('../../_utils/with-install.js');
|
|
8
|
+
|
|
9
|
+
const FcProTreeCheckFilter = withInstall.withInstall(TreeCheckFilter_vue_vue_type_script_setup_true_lang.default);
|
|
10
|
+
|
|
11
|
+
exports.FcProTreeCheckFilter = FcProTreeCheckFilter;
|
|
12
|
+
exports.default = FcProTreeCheckFilter;
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const vue = require('vue');
|
|
6
|
+
const useNamespace = require('../../hooks/use-namespace.js');
|
|
7
|
+
const TreeCheckFilter_vue_vue_type_script_setup_true_lang = require('../TreeCheckFilter/TreeCheckFilter.vue.js');
|
|
8
|
+
;/* empty css */
|
|
9
|
+
require('../../components/Button/index.js');
|
|
10
|
+
require('../../components/Dialog/index.js');
|
|
11
|
+
require('../../components/ConfigProvider/index.js');
|
|
12
|
+
require('../../components/Input/index.js');
|
|
13
|
+
require('../../components/Tree/index.js');
|
|
14
|
+
require('../../components/Tabs/index.js');
|
|
15
|
+
require('../../components/TabPane/index.js');
|
|
16
|
+
require('../../components/Steps/index.js');
|
|
17
|
+
require('../../components/Step/index.js');
|
|
18
|
+
require('../../components/InputNumber/index.js');
|
|
19
|
+
require('../../components/Select/index.js');
|
|
20
|
+
require('../../components/Option/index.js');
|
|
21
|
+
require('../../components/DatePicker/index.js');
|
|
22
|
+
require('../../components/DatePickerPanel/index.js');
|
|
23
|
+
const index = require('../../components/Tooltip/index.js');
|
|
24
|
+
require('../../components/Icon/index.js');
|
|
25
|
+
const index$2 = require('../../components/Notification/index.js');
|
|
26
|
+
require('../../components/Link/index.js');
|
|
27
|
+
require('../../components/Text/index.js');
|
|
28
|
+
require('../../components/Scrollbar/index.js');
|
|
29
|
+
require('../../components/Splitter/index.js');
|
|
30
|
+
require('../../components/SplitterPanel/index.js');
|
|
31
|
+
require('../../components/Autocomplete/index.js');
|
|
32
|
+
require('../../components/Cascader/index.js');
|
|
33
|
+
require('../../components/CascaderPanel/index.js');
|
|
34
|
+
require('../../components/Checkbox/index.js');
|
|
35
|
+
require('../../components/CheckboxGroup/index.js');
|
|
36
|
+
require('../../components/CheckboxButton/index.js');
|
|
37
|
+
require('../../components/Form/index.js');
|
|
38
|
+
require('../../components/FormItem/index.js');
|
|
39
|
+
require('../../components/InputTag/index.js');
|
|
40
|
+
require('../../components/Radio/index.js');
|
|
41
|
+
require('../../components/RadioGroup/index.js');
|
|
42
|
+
require('../../components/SelectV2/index.js');
|
|
43
|
+
require('../../components/Switch/index.js');
|
|
44
|
+
require('../../components/TimePicker/index.js');
|
|
45
|
+
require('../../components/TimeSelect/index.js');
|
|
46
|
+
require('../../components/TreeSelect/index.js');
|
|
47
|
+
require('../../components/Upload/index.js');
|
|
48
|
+
require('../../components/Avatar/index.js');
|
|
49
|
+
require('../../components/AvatarGroup/index.js');
|
|
50
|
+
require('../../components/Badge/index.js');
|
|
51
|
+
require('../../components/Card/index.js');
|
|
52
|
+
require('../../components/Descriptions/index.js');
|
|
53
|
+
require('../../components/DescriptionsItem/index.js');
|
|
54
|
+
require('../../components/Empty/index.js');
|
|
55
|
+
require('../../components/Image/index.js');
|
|
56
|
+
require('../../components/ImageViewer/index.js');
|
|
57
|
+
require('../../components/Pagination/index.js');
|
|
58
|
+
require('../../components/Table/index.js');
|
|
59
|
+
require('../../components/TableColumn/index.js');
|
|
60
|
+
require('../../components/TableV2/index.js');
|
|
61
|
+
require('../../components/Tag/index.js');
|
|
62
|
+
require('../../components/Breadcrumb/index.js');
|
|
63
|
+
require('../../components/BreadcrumbItem/index.js');
|
|
64
|
+
require('../../components/Drawer/index.js');
|
|
65
|
+
require('../../components/Popconfirm/index.js');
|
|
66
|
+
const index$1 = require('../../components/IconComponent/index.js');
|
|
67
|
+
require('../../components/Popover/index.js');
|
|
68
|
+
require('../../components/Result/index.js');
|
|
69
|
+
require('../../components/Progress/index.js');
|
|
70
|
+
require('../../components/Divider/index.js');
|
|
71
|
+
require('../../components/Dropdown/index.js');
|
|
72
|
+
require('../../components/DropdownMenu/index.js');
|
|
73
|
+
require('../../components/DropdownItem/index.js');
|
|
74
|
+
require('../../components/Menu/index.js');
|
|
75
|
+
require('../../components/SubMenu/index.js');
|
|
76
|
+
require('../../components/MenuItem/index.js');
|
|
77
|
+
require('../../components/RadioButton/index.js');
|
|
78
|
+
require('../../components/MenuItemGroup/index.js');
|
|
79
|
+
require('../../components/Collapse/index.js');
|
|
80
|
+
require('../../components/CollapseItem/index.js');
|
|
81
|
+
require('../../components/ContextMenu/index.js');
|
|
82
|
+
require('../../components/CodeEditor/index.js');
|
|
83
|
+
require('../../components/RichEditor/index.js');
|
|
84
|
+
|
|
85
|
+
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
86
|
+
...{
|
|
87
|
+
name: "FcProTreeTransfer",
|
|
88
|
+
inheritAttrs: false
|
|
89
|
+
},
|
|
90
|
+
__name: "TreeTransfer",
|
|
91
|
+
props: {
|
|
92
|
+
leftProps: { default: () => ({}) },
|
|
93
|
+
rightProps: { default: () => ({}) }
|
|
94
|
+
},
|
|
95
|
+
emits: ["add", "remove"],
|
|
96
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
97
|
+
const ns = useNamespace.useNamespace("pro-tree-transfer");
|
|
98
|
+
const leftTreeRef = vue.ref();
|
|
99
|
+
const rightTreeRef = vue.ref();
|
|
100
|
+
const emits = __emit;
|
|
101
|
+
const handleAddClick = () => {
|
|
102
|
+
const keys = leftTreeRef.value?.getCheckedKeys(false) || [];
|
|
103
|
+
if (keys.length === 0) {
|
|
104
|
+
index$2.FcNotification({
|
|
105
|
+
type: "warning",
|
|
106
|
+
message: "请选择左侧内容"
|
|
107
|
+
});
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const nodes = leftTreeRef.value?.getCheckedNodes(false, false) || [];
|
|
111
|
+
emits("add", leftTreeRef.value, nodes, keys);
|
|
112
|
+
};
|
|
113
|
+
const handleRemoveClick = () => {
|
|
114
|
+
const keys = rightTreeRef.value?.getCheckedKeys(false) || [];
|
|
115
|
+
if (keys.length === 0) {
|
|
116
|
+
index$2.FcNotification({
|
|
117
|
+
type: "warning",
|
|
118
|
+
message: "请选择右侧内容"
|
|
119
|
+
});
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const nodes = rightTreeRef.value?.getCheckedNodes(false, false) || [];
|
|
123
|
+
emits("remove", rightTreeRef.value, nodes, keys);
|
|
124
|
+
};
|
|
125
|
+
__expose({
|
|
126
|
+
leftTreeRef,
|
|
127
|
+
rightTreeRef
|
|
128
|
+
});
|
|
129
|
+
return (_ctx, _cache) => {
|
|
130
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
131
|
+
class: vue.normalizeClass(vue.unref(ns).b())
|
|
132
|
+
}, [
|
|
133
|
+
vue.createElementVNode("div", {
|
|
134
|
+
class: vue.normalizeClass(vue.unref(ns).e("left"))
|
|
135
|
+
}, [
|
|
136
|
+
vue.createVNode(TreeCheckFilter_vue_vue_type_script_setup_true_lang.default, vue.mergeProps({
|
|
137
|
+
ref_key: "leftTreeRef",
|
|
138
|
+
ref: leftTreeRef
|
|
139
|
+
}, __props.leftProps), null, 16)
|
|
140
|
+
], 2),
|
|
141
|
+
vue.createElementVNode("div", {
|
|
142
|
+
class: vue.normalizeClass(vue.unref(ns).e("center"))
|
|
143
|
+
}, [
|
|
144
|
+
!__props.leftProps.hiddenBtn ? (vue.openBlock(), vue.createBlock(vue.unref(index.FcTooltip), {
|
|
145
|
+
key: 0,
|
|
146
|
+
content: __props.leftProps.tooltip || "新增",
|
|
147
|
+
placement: "top",
|
|
148
|
+
"fallback-placements": ["top", "bottom", "left", "right"]
|
|
149
|
+
}, {
|
|
150
|
+
default: vue.withCtx(() => [
|
|
151
|
+
vue.createElementVNode("div", {
|
|
152
|
+
class: vue.normalizeClass(vue.unref(ns).e("right")),
|
|
153
|
+
onClick: handleAddClick
|
|
154
|
+
}, [
|
|
155
|
+
vue.createVNode(vue.unref(index$1.FcIconComponent), {
|
|
156
|
+
name: "FcRightArrow",
|
|
157
|
+
size: "32",
|
|
158
|
+
color: "#165dff"
|
|
159
|
+
})
|
|
160
|
+
], 2)
|
|
161
|
+
]),
|
|
162
|
+
_: 1
|
|
163
|
+
}, 8, ["content"])) : vue.createCommentVNode("", true),
|
|
164
|
+
!__props.rightProps.hiddenBtn ? (vue.openBlock(), vue.createBlock(vue.unref(index.FcTooltip), {
|
|
165
|
+
key: 1,
|
|
166
|
+
content: __props.rightProps.tooltip || "删除",
|
|
167
|
+
placement: "top",
|
|
168
|
+
"fallback-placements": ["top", "bottom", "left", "right"]
|
|
169
|
+
}, {
|
|
170
|
+
default: vue.withCtx(() => [
|
|
171
|
+
vue.createElementVNode("div", {
|
|
172
|
+
class: vue.normalizeClass(vue.unref(ns).e("left")),
|
|
173
|
+
onClick: handleRemoveClick
|
|
174
|
+
}, [
|
|
175
|
+
vue.createVNode(vue.unref(index$1.FcIconComponent), {
|
|
176
|
+
name: "FcLeftArrow",
|
|
177
|
+
size: "32",
|
|
178
|
+
color: "#ff3232"
|
|
179
|
+
})
|
|
180
|
+
], 2)
|
|
181
|
+
]),
|
|
182
|
+
_: 1
|
|
183
|
+
}, 8, ["content"])) : vue.createCommentVNode("", true)
|
|
184
|
+
], 2),
|
|
185
|
+
vue.createElementVNode("div", {
|
|
186
|
+
class: vue.normalizeClass(vue.unref(ns).e("right"))
|
|
187
|
+
}, [
|
|
188
|
+
vue.createVNode(TreeCheckFilter_vue_vue_type_script_setup_true_lang.default, vue.mergeProps({
|
|
189
|
+
ref_key: "rightTreeRef",
|
|
190
|
+
ref: rightTreeRef
|
|
191
|
+
}, __props.rightProps), null, 16)
|
|
192
|
+
], 2)
|
|
193
|
+
], 2);
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
exports.default = _sfc_main;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const TreeTransfer_vue_vue_type_script_setup_true_lang = require('./TreeTransfer.vue.js');
|
|
6
|
+
;/* empty css */
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
exports.default = TreeTransfer_vue_vue_type_script_setup_true_lang.default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
4
|
+
|
|
5
|
+
const TreeTransfer_vue_vue_type_script_setup_true_lang = require('./TreeTransfer.vue.js');
|
|
6
|
+
;/* empty css */
|
|
7
|
+
const withInstall = require('../../_utils/with-install.js');
|
|
8
|
+
|
|
9
|
+
const FcProTreeTransfer = withInstall.withInstall(TreeTransfer_vue_vue_type_script_setup_true_lang.default);
|
|
10
|
+
|
|
11
|
+
exports.FcProTreeTransfer = FcProTreeTransfer;
|
|
12
|
+
exports.default = FcProTreeTransfer;
|
|
@@ -5,9 +5,13 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const index = require('./SidebarMainLayout/index.js');
|
|
6
6
|
const index$1 = require('./DataTable/index.js');
|
|
7
7
|
const index$2 = require('./ProForm/index.js');
|
|
8
|
+
const index$3 = require('./TreeCheckFilter/index.js');
|
|
9
|
+
const index$4 = require('./TreeTransfer/index.js');
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
|
|
11
13
|
exports.FcProSidebarMainLayout = index.FcProSidebarMainLayout;
|
|
12
14
|
exports.FcProDataTable = index$1.FcProDataTable;
|
|
13
15
|
exports.FcProForm = index$2.FcProForm;
|
|
16
|
+
exports.FcProTreeCheckFilter = index$3.FcProTreeCheckFilter;
|
|
17
|
+
exports.FcProTreeTransfer = index$4.FcProTreeTransfer;
|
|
@@ -12,6 +12,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
12
12
|
},
|
|
13
13
|
__name: "SelectV2",
|
|
14
14
|
setup(__props, { expose: __expose }) {
|
|
15
|
+
const attrs = vue.useAttrs();
|
|
16
|
+
const selectBindProps = vue.computed(() => attrs);
|
|
15
17
|
const elRef = vue.ref();
|
|
16
18
|
__expose(
|
|
17
19
|
new Proxy(
|
|
@@ -27,7 +29,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
27
29
|
)
|
|
28
30
|
);
|
|
29
31
|
return (_ctx, _cache) => {
|
|
30
|
-
return vue.openBlock(), vue.createBlock(vue.unref(index.ElSelectV2), vue.mergeProps(
|
|
32
|
+
return vue.openBlock(), vue.createBlock(vue.unref(index.ElSelectV2), vue.mergeProps(selectBindProps.value, {
|
|
31
33
|
ref_key: "elRef",
|
|
32
34
|
ref: elRef
|
|
33
35
|
}), vue.createSlots({ _: 2 }, [
|
|
@@ -12,6 +12,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
12
12
|
},
|
|
13
13
|
__name: "SubMenu",
|
|
14
14
|
setup(__props, { expose: __expose }) {
|
|
15
|
+
const attrs = vue.useAttrs();
|
|
16
|
+
const subMenuBindProps = vue.computed(() => attrs);
|
|
15
17
|
const elRef = vue.ref();
|
|
16
18
|
__expose(
|
|
17
19
|
new Proxy(
|
|
@@ -27,7 +29,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
27
29
|
)
|
|
28
30
|
);
|
|
29
31
|
return (_ctx, _cache) => {
|
|
30
|
-
return vue.openBlock(), vue.createBlock(vue.unref(index.ElSubMenu), vue.mergeProps(
|
|
32
|
+
return vue.openBlock(), vue.createBlock(vue.unref(index.ElSubMenu), vue.mergeProps(subMenuBindProps.value, {
|
|
31
33
|
ref_key: "elRef",
|
|
32
34
|
ref: elRef
|
|
33
35
|
}), vue.createSlots({ _: 2 }, [
|
|
@@ -16,6 +16,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
16
16
|
headerHeight: { default: 40 }
|
|
17
17
|
},
|
|
18
18
|
setup(__props, { expose: __expose }) {
|
|
19
|
+
const attrs = vue.useAttrs();
|
|
20
|
+
const tableBindProps = vue.computed(() => attrs);
|
|
19
21
|
const elRef = vue.ref();
|
|
20
22
|
__expose(
|
|
21
23
|
new Proxy(
|
|
@@ -31,7 +33,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
31
33
|
)
|
|
32
34
|
);
|
|
33
35
|
return (_ctx, _cache) => {
|
|
34
|
-
return vue.openBlock(), vue.createBlock(vue.unref(index.ElTableV2), vue.mergeProps(
|
|
36
|
+
return vue.openBlock(), vue.createBlock(vue.unref(index.ElTableV2), vue.mergeProps(tableBindProps.value, {
|
|
35
37
|
ref_key: "elRef",
|
|
36
38
|
ref: elRef,
|
|
37
39
|
"row-height": __props.rowHeight,
|
package/dist/cjs/index.js
CHANGED
|
@@ -7,8 +7,8 @@ const directive = require('./node_modules/.pnpm/element-plus@2.13.5_patch_hash_4
|
|
|
7
7
|
const dayjs_min = require('./_virtual/dayjs.min.js');
|
|
8
8
|
;/* empty css */
|
|
9
9
|
const lovIdRequestProvide = require('./config/lovId-request-provide.js');
|
|
10
|
-
const index$
|
|
11
|
-
const index$
|
|
10
|
+
const index$1k = require('./components/index.js');
|
|
11
|
+
const index$1l = require('./business/index.js');
|
|
12
12
|
const version = require('./version.js');
|
|
13
13
|
const index$1 = require('./components/Button/index.js');
|
|
14
14
|
const index$2 = require('./components/Dialog/index.js');
|
|
@@ -91,12 +91,14 @@ const index$1e = require('./components/RichEditor/index.js');
|
|
|
91
91
|
const index$1f = require('./business/SidebarMainLayout/index.js');
|
|
92
92
|
const index$1g = require('./business/DataTable/index.js');
|
|
93
93
|
const index$1h = require('./business/ProForm/index.js');
|
|
94
|
+
const index$1i = require('./business/TreeCheckFilter/index.js');
|
|
95
|
+
const index$1j = require('./business/TreeTransfer/index.js');
|
|
94
96
|
|
|
95
|
-
const components = Object.keys(index$
|
|
96
|
-
return index$
|
|
97
|
+
const components = Object.keys(index$1k).map((key) => {
|
|
98
|
+
return index$1k[key];
|
|
97
99
|
});
|
|
98
|
-
const proComponents = Object.keys(index$
|
|
99
|
-
return index$
|
|
100
|
+
const proComponents = Object.keys(index$1l).map((key) => {
|
|
101
|
+
return index$1l[key];
|
|
100
102
|
});
|
|
101
103
|
const installComponents = [...components, ...proComponents].filter((comp) => {
|
|
102
104
|
return typeof comp === "object" && comp.name && typeof comp.install === "function";
|
|
@@ -224,5 +226,7 @@ exports.FcRichEditorInput = index$1e.FcRichEditorInput;
|
|
|
224
226
|
exports.FcProSidebarMainLayout = index$1f.FcProSidebarMainLayout;
|
|
225
227
|
exports.FcProDataTable = index$1g.FcProDataTable;
|
|
226
228
|
exports.FcProForm = index$1h.FcProForm;
|
|
229
|
+
exports.FcProTreeCheckFilter = index$1i.FcProTreeCheckFilter;
|
|
230
|
+
exports.FcProTreeTransfer = index$1j.FcProTreeTransfer;
|
|
227
231
|
exports.default = index;
|
|
228
232
|
exports.install = install;
|