cnhis-design-vue 3.1.4 → 3.1.5

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.
Files changed (162) hide show
  1. package/README.md +22 -22
  2. package/env.d.ts +26 -26
  3. package/es/packages/big-table/index.mjs +1 -1
  4. package/es/packages/big-table/index2.mjs +1 -14
  5. package/es/packages/big-table/src/BigTable.mjs +1 -2
  6. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.mjs +1 -2315
  7. package/es/packages/big-table/src/BigTable2.mjs +1 -4
  8. package/es/packages/big-table/src/bigTableEmits.mjs +1 -1
  9. package/es/packages/big-table/src/bigTableEmits2.mjs +1 -48
  10. package/es/packages/big-table/src/bigTableProps.mjs +1 -1
  11. package/es/packages/big-table/src/bigTableProps2.mjs +1 -116
  12. package/es/packages/big-table/src/bigTableState.mjs +1 -1
  13. package/es/packages/big-table/src/bigTableState2.mjs +1 -51
  14. package/es/packages/big-table/src/components/NoData.mjs +1 -2
  15. package/es/packages/big-table/src/components/NoData.vue_vue_type_script_setup_true_lang.mjs +1 -72
  16. package/es/packages/big-table/src/components/NoData2.mjs +1 -4
  17. package/es/packages/big-table/src/components/SvgIcon.mjs +1 -2
  18. package/es/packages/big-table/src/components/SvgIcon.vue_vue_type_script_setup_true_lang.mjs +1 -34
  19. package/es/packages/big-table/src/components/SvgIcon2.mjs +1 -4
  20. package/es/packages/big-table/src/components/TextOverTooltip.mjs +1 -2
  21. package/es/packages/big-table/src/components/TextOverTooltip.vue_vue_type_script_setup_true_lang.mjs +1 -74
  22. package/es/packages/big-table/src/components/TextOverTooltip2.mjs +1 -4
  23. package/es/packages/big-table/src/components/edit-form/edit-date.mjs +1 -88
  24. package/es/packages/big-table/src/components/edit-form/edit-input.mjs +1 -51
  25. package/es/packages/big-table/src/components/edit-form/edit-select.mjs +1 -89
  26. package/es/packages/big-table/src/hooks/useBatchEditing.mjs +1 -1
  27. package/es/packages/big-table/src/hooks/useBatchEditing2.mjs +1 -284
  28. package/es/packages/big-table/src/hooks/useEdit.mjs +1 -1
  29. package/es/packages/big-table/src/hooks/useEdit2.mjs +1 -108
  30. package/es/packages/big-table/src/hooks/useFormat.mjs +1 -1
  31. package/es/packages/big-table/src/hooks/useFormat2.mjs +1 -480
  32. package/es/packages/big-table/src/hooks/useNestTable.mjs +1 -1
  33. package/es/packages/big-table/src/hooks/useNestTable2.mjs +1 -84
  34. package/es/packages/big-table/src/hooks/useTableParse.mjs +1 -1
  35. package/es/packages/big-table/src/hooks/useTableParse2.mjs +1 -135
  36. package/es/packages/big-table/src/utils.mjs +1 -1
  37. package/es/packages/big-table/src/utils2.mjs +1 -597
  38. package/es/packages/big-table/style/index.css +3 -5
  39. package/es/packages/big-table/style/index.less +557 -559
  40. package/es/packages/button-print/index.mjs +1 -1
  41. package/es/packages/button-print/index2.mjs +1 -11
  42. package/es/packages/button-print/src/ButtonPrint.mjs +1 -2
  43. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.mjs +1 -452
  44. package/es/packages/button-print/src/ButtonPrint2.mjs +1 -4
  45. package/es/packages/button-print/src/components/IdentityVerification.mjs +1 -2
  46. package/es/packages/button-print/src/components/IdentityVerification.vue_vue_type_script_setup_true_lang.mjs +1 -126
  47. package/es/packages/button-print/src/components/IdentityVerification2.mjs +1 -4
  48. package/es/packages/button-print/src/utils/print.es.min.mjs +1 -1
  49. package/es/packages/button-print/src/utils/print.es.min2.mjs +1 -2080
  50. package/es/packages/button-print/style/index.css +1 -3
  51. package/es/packages/button-print/style/index.less +30 -32
  52. package/es/packages/drag-layout/index.mjs +1 -1
  53. package/es/packages/drag-layout/index2.mjs +1 -11
  54. package/es/packages/drag-layout/src/DragFormLeftItem.mjs +1 -2
  55. package/es/packages/drag-layout/src/DragFormLeftItem.vue_vue_type_script_setup_true_lang.mjs +1 -122
  56. package/es/packages/drag-layout/src/DragFormLeftItem2.mjs +1 -4
  57. package/es/packages/drag-layout/src/DragFormRightItem.mjs +1 -2
  58. package/es/packages/drag-layout/src/DragFormRightItem.vue_vue_type_script_setup_true_lang.mjs +1 -267
  59. package/es/packages/drag-layout/src/DragFormRightItem2.mjs +1 -4
  60. package/es/packages/drag-layout/src/DragLayout.mjs +1 -2
  61. package/es/packages/drag-layout/src/DragLayout.vue.d.ts +2 -10
  62. package/es/packages/drag-layout/src/DragLayout.vue_vue_type_script_setup_true_lang.mjs +1 -657
  63. package/es/packages/drag-layout/src/DragLayout2.mjs +1 -4
  64. package/es/packages/drag-layout/style/index.less +208 -208
  65. package/es/packages/field-set/index.mjs +1 -1
  66. package/es/packages/field-set/index2.mjs +1 -11
  67. package/es/packages/field-set/src/FieldSet.mjs +1 -2
  68. package/es/packages/field-set/src/FieldSet.vue_vue_type_script_setup_true_lang.mjs +1 -330
  69. package/es/packages/field-set/src/FieldSet2.mjs +1 -4
  70. package/es/packages/field-set/style/index.less +172 -172
  71. package/es/packages/form-table/index.d.ts +3 -0
  72. package/es/packages/form-table/index.mjs +1 -0
  73. package/es/packages/form-table/index2.mjs +1 -0
  74. package/es/packages/form-table/src/FormTable.mjs +1 -0
  75. package/es/packages/form-table/src/FormTable.vue.d.ts +2 -0
  76. package/es/packages/form-table/src/FormTable.vue_vue_type_script_setup_true_lang.mjs +1 -0
  77. package/es/packages/form-table/src/FormTable2.mjs +1 -0
  78. package/es/packages/form-table/src/configs/index.d.ts +35 -0
  79. package/es/packages/form-table/src/configs/index.mjs +1 -0
  80. package/es/packages/form-table/src/configs/index2.mjs +1 -0
  81. package/es/packages/form-table/src/hooks/index.d.ts +4 -0
  82. package/es/packages/form-table/src/hooks/index.mjs +1 -0
  83. package/es/packages/form-table/src/hooks/useBoundDate.d.ts +21 -0
  84. package/es/packages/form-table/src/hooks/useBoundDate.mjs +1 -0
  85. package/es/packages/form-table/src/hooks/useBoundDate2.mjs +1 -0
  86. package/es/packages/form-table/src/hooks/useDateType.d.ts +17 -0
  87. package/es/packages/form-table/src/hooks/useDateType.mjs +1 -0
  88. package/es/packages/form-table/src/hooks/useDateType2.mjs +1 -0
  89. package/es/packages/form-table/src/hooks/useFormCommon.d.ts +14 -0
  90. package/es/packages/form-table/src/hooks/useFormCommon.mjs +1 -0
  91. package/es/packages/form-table/src/hooks/useFormCommon2.mjs +1 -0
  92. package/es/packages/form-table/src/hooks/useFormEvent.d.ts +9 -0
  93. package/es/packages/form-table/src/hooks/useFormEvent.mjs +1 -0
  94. package/es/packages/form-table/src/hooks/useFormEvent2.mjs +1 -0
  95. package/es/packages/form-table/src/hooks/useItemDefault.d.ts +73 -0
  96. package/es/packages/form-table/src/hooks/useItemDefault.mjs +1 -0
  97. package/es/packages/form-table/src/hooks/useItemDefault2.mjs +1 -0
  98. package/es/packages/form-table/src/hooks/useSearch.d.ts +1 -0
  99. package/es/packages/form-table/src/hooks/useSearch.mjs +1 -0
  100. package/es/packages/form-table/src/hooks/useSearch2.mjs +1 -0
  101. package/es/packages/form-table/src/hooks/useValidate.d.ts +24 -0
  102. package/es/packages/form-table/src/hooks/useValidate.mjs +1 -0
  103. package/es/packages/form-table/src/hooks/useValidate2.mjs +1 -0
  104. package/es/packages/form-table/src/types/index.d.ts +9 -0
  105. package/es/packages/form-table/src/types/index.mjs +1 -0
  106. package/es/packages/form-table/style/index.css +98 -0
  107. package/es/packages/form-table/style/index.less +122 -0
  108. package/es/packages/grid/index.mjs +1 -1
  109. package/es/packages/grid/index2.mjs +1 -11
  110. package/es/packages/grid/src/Grid.mjs +1 -28
  111. package/es/packages/grid/src/hooks.mjs +1 -1
  112. package/es/packages/grid/src/hooks2.mjs +1 -165
  113. package/es/packages/grid/style/index.less +1 -1
  114. package/es/packages/index.css +4 -8
  115. package/es/packages/index.less +1201 -1205
  116. package/es/packages/index.mjs +1 -7
  117. package/es/packages/index2.mjs +1 -37
  118. package/es/packages/select-label/src/SelectLabel.mjs +1 -0
  119. package/es/packages/select-label/src/SelectLabel.vue.d.ts +7445 -0
  120. package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.mjs +1 -0
  121. package/es/packages/select-label/src/SelectLabel2.mjs +1 -0
  122. package/es/packages/select-label/src/components/label-classify.mjs +1 -0
  123. package/es/packages/select-label/src/components/label-classify.vue.d.ts +3570 -0
  124. package/es/packages/select-label/src/components/label-classify.vue_vue_type_script_setup_true_lang.mjs +1 -0
  125. package/es/packages/select-label/src/components/label-classify2.mjs +1 -0
  126. package/es/packages/select-label/src/components/label-form-content.mjs +1 -0
  127. package/es/packages/select-label/src/components/label-form-content.vue.d.ts +4572 -0
  128. package/es/packages/select-label/src/components/label-form-content.vue_vue_type_script_setup_true_lang.mjs +1 -0
  129. package/es/packages/select-label/src/components/label-form-content2.mjs +1 -0
  130. package/es/packages/select-label/style/index.css +80 -0
  131. package/es/packages/select-label/style/index.less +85 -0
  132. package/es/packages/select-person/index.mjs +1 -1
  133. package/es/packages/select-person/index2.mjs +1 -11
  134. package/es/packages/select-person/src/SearchTree.mjs +1 -2
  135. package/es/packages/select-person/src/SearchTree.vue_vue_type_script_setup_true_lang.mjs +1 -231
  136. package/es/packages/select-person/src/SearchTree2.mjs +1 -4
  137. package/es/packages/select-person/src/SelectPerson.mjs +1 -2
  138. package/es/packages/select-person/src/SelectPerson.vue.d.ts +7 -3
  139. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.mjs +1 -892
  140. package/es/packages/select-person/src/SelectPerson2.mjs +1 -4
  141. package/es/packages/select-person/src/utils/index.mjs +1 -1
  142. package/es/packages/select-person/src/utils/index2.mjs +1 -57
  143. package/es/packages/select-person/style/index.less +229 -229
  144. package/es/src/core/create.mjs +1 -1
  145. package/es/src/core/create2.mjs +1 -8
  146. package/es/src/global/variable.mjs +1 -1
  147. package/es/src/global/variable2.mjs +1 -4
  148. package/es/src/types/index.d.ts +4 -0
  149. package/es/src/utils/clickoutside.mjs +1 -1
  150. package/es/src/utils/clickoutside2.mjs +1 -48
  151. package/es/src/utils/crypto.mjs +1 -1
  152. package/es/src/utils/crypto2.mjs +1 -25
  153. package/es/src/utils/index.d.ts +1 -1
  154. package/es/src/utils/index.mjs +1 -1
  155. package/es/src/utils/index2.mjs +1 -27
  156. package/es/src/utils/vexutils.d.ts +5 -0
  157. package/es/src/utils/vexutils.mjs +1 -3
  158. package/es/src/utils/vexutils2.mjs +1 -729
  159. package/global.d.ts +8 -8
  160. package/package.json +104 -99
  161. package/yarn-error.log +8067 -103
  162. package/CHANGELOG.md +0 -208
@@ -1,892 +1 @@
1
- import { defineComponent, ref, reactive, computed, nextTick, watch, onMounted, openBlock, createElementBlock, createVNode, unref, withCtx, createElementVNode, createCommentVNode, createTextVNode, toDisplayString, createBlock, withDirectives, vShow, mergeProps, renderSlot, Fragment, renderList, normalizeClass } from 'vue';
2
- import { useMessage, NSpin, NInputGroup, NInput, NButton, NCheckbox, NTree, NIcon, NTooltip } from 'naive-ui';
3
- import { CloseCircleSharp } from '@vicons/ionicons5';
4
- import vexutils from 'cnhis-design-vue/es/src/utils/vexutils';
5
- import './SearchTree2.mjs';
6
- import { filterTree } from './utils/index2.mjs';
7
- import script$1 from './SearchTree.vue_vue_type_script_setup_true_lang.mjs';
8
-
9
- const _hoisted_1 = {
10
- class: "personnel"
11
- };
12
- const _hoisted_2 = {
13
- class: "people-tree"
14
- };
15
- const _hoisted_3 = {
16
- class: "people-tree-item people-tree-left"
17
- };
18
- const _hoisted_4 = /* @__PURE__ */ createTextVNode("\u5168\u9009 ");
19
- const _hoisted_5 = /* @__PURE__ */ createTextVNode("\u5168\u9009 ");
20
- const _hoisted_6 = {
21
- class: "people-tree-item tags-box"
22
- };
23
- var script = /* @__PURE__ */ defineComponent({
24
- name: "SelectPerson",
25
- props: {
26
- visible: {
27
- type: Boolean,
28
- default: false
29
- },
30
- isDetail: {
31
- type: Boolean,
32
- default: false
33
- },
34
- defaultList: {
35
- type: Array,
36
- default: () => []
37
- },
38
- data: {
39
- type: Array,
40
- default: () => []
41
- },
42
- searchPlaceholder: {
43
- type: String,
44
- default: "\u8F93\u5165\u5173\u952E\u5B57\u641C\u7D22"
45
- },
46
- searchButtonText: {
47
- type: String,
48
- default: "\u641C\u7D22"
49
- },
50
- wordbook: {
51
- type: Object,
52
- default: () => ({})
53
- },
54
- wordbookChild: {
55
- type: Object,
56
- default: () => ({})
57
- },
58
- SearchLoadMore: {
59
- type: Boolean,
60
- default: false
61
- },
62
- queryMainTreeData: {
63
- type: Function
64
- },
65
- queryLoadChildData: {
66
- type: Function
67
- },
68
- queryTreeSearch: {
69
- type: Function
70
- }
71
- },
72
- emits: ["check", "pubCheckedTreeItem", "handleOk", "change", "submitData", "update:visible"],
73
- setup(__props, {
74
- emit
75
- }) {
76
- const props = __props;
77
- const $message = useMessage();
78
- const FIXEDKEY = "8982eeb4-0439-4100-9805-8cdd12b2256c-front-end-fixed-key";
79
- const searchTree = ref(null);
80
- const state = reactive({
81
- treeData: {
82
- main: [],
83
- search: []
84
- },
85
- expandedKeys: [],
86
- autoExpandParent: true,
87
- dataList: {
88
- main: [],
89
- other: []
90
- },
91
- checkedKeys: {
92
- main: [],
93
- other: []
94
- },
95
- search: {
96
- defaultExpandedKeys: [],
97
- status: 0,
98
- dataListKeys: {
99
- main: [],
100
- other: []
101
- },
102
- records: 0
103
- },
104
- searchValue: "",
105
- searchPage: 1,
106
- searchNoMore: false,
107
- title: "",
108
- checkedLeafKeys: [],
109
- spinning: false,
110
- loadMorenLoadinng: false,
111
- errorMsg: "",
112
- defaultShowList: [],
113
- checkedKeysMain: [],
114
- cacheParentIdObj: {},
115
- singleChecked: false,
116
- indeterminate: false,
117
- searchIndeterminate: false,
118
- searchChecked: false
119
- });
120
- const searchTreeVisable = computed(() => state.search.status == 2);
121
- const dataListMainKeys = computed(() => {
122
- if (!state.dataList.main.length)
123
- return [];
124
- return state.dataList.main.map((i) => i.key);
125
- });
126
- const dataListOtherKeys = computed(() => {
127
- if (!state.dataList.other.length)
128
- return [];
129
- return state.dataList.other.map((i) => i.key);
130
- });
131
- const checkedTreeItem = computed(() => {
132
- let otherItems = state.dataList.other.filter((item) => {
133
- return state.checkedKeys.other.includes(item.key);
134
- });
135
- let mainItems = state.dataList.main.filter((item) => {
136
- let {
137
- isLeaf,
138
- key
139
- } = item;
140
- let parentId = getParentId(item);
141
- let showKeys = [...state.checkedKeys.main, ...otherItems];
142
- let checked = showKeys.includes(key);
143
- if (isLeaf && parentId && state.checkedKeys.main.some((v) => v == parentId)) {
144
- checked = false;
145
- }
146
- return checked;
147
- });
148
- let list = uniqArrObj([...mainItems, ...otherItems], "key");
149
- return list;
150
- });
151
- const wordbookConfig = computed(() => {
152
- const {
153
- parent_id_obj,
154
- parent_name_obj
155
- } = props.wordbook || {};
156
- const {
157
- user_id_obj,
158
- user_name_obj
159
- } = props.wordbookChild || {};
160
- return {
161
- parent_id_obj,
162
- parent_name_obj,
163
- user_id_obj,
164
- user_name_obj
165
- };
166
- });
167
- const getLoadChildData = computed(() => {
168
- if (typeof props.queryLoadChildData == "function") {
169
- return onLoadData;
170
- }
171
- return null;
172
- });
173
- const renderLabel = ({
174
- option
175
- }) => {
176
- if (option.isLeaf || !option.children) {
177
- return createVNode(NTooltip, {
178
- "trigger": "hover"
179
- }, {
180
- default: () => `${option.title} ${option.sub_title || ""}`,
181
- trigger: () => createVNode("span", null, [createVNode("span", {
182
- "class": "c-title"
183
- }, [option.title || option.key, createTextVNode("\u2009 ")]), createVNode("span", {
184
- "class": "c-sub-title"
185
- }, [option.sub_title])])
186
- });
187
- } else {
188
- return createVNode("span", {
189
- "class": "p-title"
190
- }, [createVNode("span", null, [option.title || option.key]), treeCount(option.count)]);
191
- }
192
- };
193
- const initDefault = () => {
194
- if (getLoadChildData.value) {
195
- getDefaultList();
196
- } else {
197
- nextTick(() => {
198
- state.checkedKeys.main = [...props.defaultList];
199
- });
200
- }
201
- };
202
- const getDefaultList = () => {
203
- let copy = JSON.parse(JSON.stringify(props.defaultList));
204
- if (Array.isArray(copy)) {
205
- copy.forEach((v) => {
206
- handleDefMapping(v);
207
- getuniqKey(v);
208
- let pId = getParentId(v);
209
- state.cacheParentIdObj[pId] = pId;
210
- });
211
- state.defaultShowList = copy;
212
- }
213
- };
214
- const handleDefMapping = (v) => {
215
- const {
216
- parent_id_obj,
217
- parent_name_obj,
218
- user_id_obj,
219
- user_name_obj
220
- } = wordbookConfig.value || {};
221
- const {
222
- parent_id_obj_key,
223
- parent_name_obj_key
224
- } = props.wordbook;
225
- const {
226
- user_id_obj_key,
227
- user_name_obj_key
228
- } = props.wordbookChild;
229
- v[parent_id_obj] = v[parent_id_obj_key] || v.parent_id;
230
- v[parent_name_obj] = v[parent_name_obj_key] || v.parent_name;
231
- v[user_id_obj] = v[user_id_obj_key] || v.user_id;
232
- v[user_name_obj] = v[user_name_obj_key] || v.user_name;
233
- };
234
- const staticDataInit = () => {
235
- if (!Array.isArray(props.data) || props.data.length == 0)
236
- return;
237
- state.treeData.main = JSON.parse(JSON.stringify(props.data));
238
- generateDataList(state.treeData.main, state.dataList.main);
239
- };
240
- const getcheckedKeys = () => {
241
- let checkedKeysMain = [], checkedKeysOther = [];
242
- let copy = JSON.parse(JSON.stringify(props.defaultList));
243
- if (Array.isArray(copy)) {
244
- copy.forEach((v) => {
245
- handleDefMapping(v);
246
- let key = getuniqKey(v);
247
- checkedKeysMain.push(key);
248
- if (String(key).includes(FIXEDKEY)) {
249
- checkedKeysOther.push(key);
250
- }
251
- });
252
- }
253
- return {
254
- checkedKeysMain,
255
- checkedKeysOther
256
- };
257
- };
258
- const loadSelected = async () => {
259
- try {
260
- let list = await Promise.all(state.treeData.main.map(async (v) => {
261
- const {
262
- parent_id_obj
263
- } = props.wordbook || {};
264
- if ([v.key, v[parent_id_obj], String(v[parent_id_obj])].includes(state.cacheParentIdObj[v[parent_id_obj]])) {
265
- await onLoadData(v);
266
- return v;
267
- }
268
- }));
269
- return list;
270
- } catch (error) {
271
- return Promise.resolve();
272
- }
273
- };
274
- const onLoadData = (option) => {
275
- return new Promise(async (resolve) => {
276
- if (option.children) {
277
- resolve();
278
- return;
279
- }
280
- option.children = await handleLoadChildData(option.key, option);
281
- hanldeFilterDefaultShowList(option.children);
282
- nextTick(() => {
283
- state.treeData.main = [...state.treeData.main];
284
- });
285
- addCheckedKeysChildrenMain(option);
286
- generateDataList(option.children || [], state.dataList.main);
287
- resolve();
288
- });
289
- };
290
- const getUsers = async () => {
291
- try {
292
- if (typeof props.queryMainTreeData !== "function") {
293
- return;
294
- }
295
- state.spinning = true;
296
- const {
297
- parent_id_obj
298
- } = wordbookConfig.value || {};
299
- let rows = await props.queryMainTreeData();
300
- let list = uniqArrObj(rows || [], parent_id_obj);
301
- state.treeData.main = list;
302
- generateDataList(state.treeData.main, state.dataList.main);
303
- await loadSelected();
304
- let {
305
- checkedKeysMain,
306
- checkedKeysOther
307
- } = getcheckedKeys();
308
- state.checkedKeys.main.push(...checkedKeysMain);
309
- state.checkedKeys.other = [...checkedKeysOther];
310
- state.treeData.main.forEach((f) => {
311
- if (f && f.children && f.children.length) {
312
- let flag = f.children.every((c) => checkedKeysMain.includes(c.key));
313
- if (flag && f.key) {
314
- state.checkedKeys.main.push(f.key);
315
- }
316
- }
317
- });
318
- state.spinning = false;
319
- } catch (error) {
320
- state.spinning = false;
321
- $message.error("\u67E5\u8BE2\u5F02\u5E38");
322
- }
323
- };
324
- const loadMainChildData = (searchResultTreeData) => {
325
- return new Promise(async (resolve) => {
326
- let promises = searchResultTreeData.map(async (item) => {
327
- if (item.users) {
328
- let mainTreeItem = state.treeData.main.find((mainItem) => mainItem.key == item.key);
329
- if (!mainTreeItem || mainTreeItem && !mainTreeItem.children) {
330
- if (!mainTreeItem) {
331
- mainTreeItem = {
332
- ...item
333
- };
334
- }
335
- mainTreeItem.children = await handleLoadChildData(item.key, mainTreeItem);
336
- generateDataList(mainTreeItem.children, state.dataList.main);
337
- addCheckedKeysChildrenMain(mainTreeItem);
338
- }
339
- }
340
- });
341
- await Promise.all(promises);
342
- resolve();
343
- });
344
- };
345
- const handleLoadChildData = async (key, option) => {
346
- let rows = props.queryLoadChildData && await props.queryLoadChildData(key, option);
347
- let list = rows;
348
- return list;
349
- };
350
- const generateDataList = (data, dataList) => {
351
- for (let i = 0; i < data.length; i++) {
352
- const node = data[i];
353
- dataList.push({
354
- parentId: getParentId(node),
355
- ...node
356
- });
357
- if (node.children) {
358
- generateDataList(node.children, dataList);
359
- }
360
- }
361
- };
362
- const addCheckedKeysChildrenMain = (item) => {
363
- if (!item.key)
364
- return;
365
- if (!state.checkedKeys.main.includes(String(item.key)))
366
- return false;
367
- if (!Array.isArray(item.children))
368
- return false;
369
- item.children.forEach(({
370
- key
371
- }) => {
372
- if (state.checkedKeys.main.includes(key) || !key)
373
- return false;
374
- state.checkedKeys.main.push(key);
375
- });
376
- };
377
- const hanldeFilterDefaultShowList = (list) => {
378
- state.defaultShowList = state.defaultShowList.filter((d) => list.findIndex((l) => getuniqKey(d) == getuniqKey(l)) == -1);
379
- };
380
- const searchFetch = async (data = {}, config = {}) => {
381
- if (typeof props.queryTreeSearch !== "function") {
382
- staticDataSearch();
383
- state.spinning = false;
384
- isSearchAllCheck();
385
- return;
386
- }
387
- if (!state.searchValue) {
388
- state.search.status = 0;
389
- state.search.defaultExpandedKeys = [];
390
- state.expandedKeys = [];
391
- state.spinning = false;
392
- state.searchNoMore = false;
393
- return false;
394
- }
395
- if (!config.loadMoren) {
396
- state.search.status = 1;
397
- } else {
398
- state.loadMorenLoadinng = true;
399
- }
400
- let rows = await props.queryTreeSearch(state.searchValue, data);
401
- let searchResultTreeData = rows;
402
- state.loadMorenLoadinng = false;
403
- if (!searchResultTreeData || !searchResultTreeData.length) {
404
- if (state.searchPage == 1) {
405
- state.search.defaultExpandedKeys = [];
406
- state.search.status = 3;
407
- } else {
408
- state.search.status = 2;
409
- state.searchNoMore = true;
410
- }
411
- state.spinning = false;
412
- isSearchAllCheck();
413
- return false;
414
- }
415
- const {
416
- parent_id_obj,
417
- parent_name_obj,
418
- user_count_obj
419
- } = props.wordbook || {};
420
- props.wordbookChild || {};
421
- let pObj = {};
422
- searchResultTreeData.forEach((item) => {
423
- item[parent_id_obj] && (pObj[item[parent_id_obj]] = {
424
- key: item[parent_id_obj],
425
- users: []
426
- });
427
- if (item.users) {
428
- insertSearchTreeData(item);
429
- } else {
430
- insertSearchTreeDataOther(item);
431
- }
432
- });
433
- let pList = [];
434
- Object.keys(pObj || {}).forEach((v) => {
435
- if (v) {
436
- pList.push({
437
- ...pObj[v]
438
- });
439
- }
440
- });
441
- state.treeData.search.length || 0;
442
- if (props.SearchLoadMore) {
443
- state.searchNoMore = false;
444
- } else {
445
- state.searchNoMore = true;
446
- }
447
- await loadMainChildData(pList);
448
- generateSearchDataListKeys(searchResultTreeData);
449
- hanldeFilterDefaultShowList(searchResultTreeData);
450
- refreshSearchTree();
451
- state.search.status = 2;
452
- state.spinning = false;
453
- isSearchAllCheck();
454
- };
455
- const refreshSearchTree = () => {
456
- if (!searchTreeVisable.value)
457
- return false;
458
- searchTree.value.setDefaultCheckedKeys();
459
- nextTick(() => {
460
- isSearchAllCheck();
461
- });
462
- };
463
- const generateSearchDataListKeys = (searchResultTreeData) => {
464
- searchResultTreeData.forEach((item) => {
465
- if (!dataListMainKeys.value.includes(item.key)) {
466
- state.search.dataListKeys.other.push(item.key);
467
- item.children && item.children.forEach((childItem) => {
468
- state.search.dataListKeys.other.push(childItem.key);
469
- });
470
- return;
471
- }
472
- state.search.dataListKeys.main.push(item.key);
473
- item.children && item.children.forEach((childItem) => {
474
- state.search.dataListKeys.main.push(childItem.key);
475
- });
476
- });
477
- };
478
- const insertSearchTreeData = (item) => {
479
- const {
480
- user_count_obj
481
- } = props.wordbook || {};
482
- state.search.defaultExpandedKeys.push(item.key);
483
- hanldeFilterDefaultShowList(item.children || []);
484
- if (item[user_count_obj] == item.children.length) {
485
- item.disableCheckbox = false;
486
- }
487
- state.treeData.search.push(item);
488
- };
489
- const insertSearchTreeDataOther = (item) => {
490
- let formatItem = Object.assign({}, item, {
491
- isLeaf: true
492
- });
493
- state.treeData.search.push(formatItem);
494
- if (dataListOtherKeys.value.includes(formatItem.key))
495
- return false;
496
- generateDataList([formatItem], state.dataList.other);
497
- };
498
- const isSearchAllCheck = () => {
499
- nextTick(() => {
500
- let skeyArr = state.treeData.search.map((item) => item.key);
501
- let serchCheckedKeys = searchTree.value.checkedKeys;
502
- state.searchIndeterminate = !!serchCheckedKeys.length && serchCheckedKeys.length < skeyArr.length;
503
- state.searchChecked = serchCheckedKeys.length === skeyArr.length;
504
- });
505
- };
506
- const staticDataSearch = () => {
507
- if (!state.title) {
508
- state.treeData.main = JSON.parse(JSON.stringify(props.data));
509
- return;
510
- }
511
- let copyData = JSON.parse(JSON.stringify(state.treeData.main));
512
- filterTree({
513
- value: state.title,
514
- data: copyData,
515
- prop: "title"
516
- });
517
- const expandedKeys = [];
518
- vexutils.searchTree(copyData, (item) => {
519
- if (item.visible) {
520
- expandedKeys.push(item.key);
521
- }
522
- if (item.children?.length) {
523
- item.children = item.children.filter((child) => child.visible);
524
- }
525
- });
526
- state.treeData.main = copyData;
527
- state.expandedKeys = expandedKeys;
528
- };
529
- const onExpand = (expandedKeys) => {
530
- state.expandedKeys = expandedKeys;
531
- state.autoExpandParent = false;
532
- };
533
- const searchClick = () => {
534
- state.searchValue = state.title;
535
- state.treeData.search = [];
536
- state.search.dataListKeys.other = [];
537
- state.search.dataListKeys.main = [];
538
- state.search.defaultExpandedKeys = [];
539
- state.spinning = true;
540
- state.searchPage = 1;
541
- searchFetch();
542
- };
543
- const isAllCheck = (checkedKeys = []) => {
544
- if (!checkedKeys || checkedKeys.length == 0) {
545
- state.indeterminate = false;
546
- state.singleChecked = false;
547
- } else {
548
- let keyArr = state.treeData.main.map((item) => item.key);
549
- let keyArrTemp = keyArr.filter((item) => checkedKeys.indexOf(item) !== -1);
550
- state.indeterminate = !(keyArr.length == keyArrTemp.length);
551
- state.singleChecked = keyArr.length == keyArrTemp.length;
552
- }
553
- };
554
- const addCheckedkeysMain = (keys) => {
555
- let checkedKeys = state.checkedKeys.main;
556
- let filterKey = (keys || {}).filter(Boolean);
557
- filterKey.forEach((key) => {
558
- checkedKeys.push(key);
559
- let _getParentKey = getParentKey(key, state.treeData.main);
560
- if (!_getParentKey)
561
- return;
562
- let parent = state.treeData.main.filter((item) => {
563
- return item.key == _getParentKey;
564
- });
565
- let allCheck = (parent[0]?.children || []).every((item) => {
566
- return checkedKeys.includes(item.key);
567
- });
568
- allCheck && checkedKeys.push(_getParentKey);
569
- });
570
- };
571
- const getParentKey = (key, tree) => {
572
- let parentKey;
573
- for (let i = 0; i < tree.length; i++) {
574
- const node = tree[i];
575
- if (node.key == key) {
576
- parentKey = node.key;
577
- return parentKey;
578
- }
579
- if (node.children) {
580
- if (node.children.some((item) => item.key == key)) {
581
- parentKey = node.key;
582
- } else if (getParentKey(key, node.children)) {
583
- parentKey = getParentKey(key, node.children);
584
- }
585
- }
586
- }
587
- return parentKey;
588
- };
589
- const radioChange = (checked) => {
590
- if (searchTreeVisable.value) {
591
- state.singleChecked = checked;
592
- } else {
593
- state.searchChecked = checked;
594
- }
595
- checkAll(checked ? 1 : 2);
596
- };
597
- const checkAll = (type) => {
598
- if (checkAllSearchTree(type))
599
- return false;
600
- if (type == 1) {
601
- state.expandedKeys = [];
602
- state.checkedKeys.main = dataListMainKeys.value;
603
- } else if (type == 2) {
604
- state.checkedKeys.main = [];
605
- state.autoExpandParent = true;
606
- }
607
- };
608
- const checkAllSearchTree = (type) => {
609
- if (!searchTreeVisable.value)
610
- return false;
611
- if (type == 1) {
612
- let allSearchkeysMain = state.search.dataListKeys.main.filter((key) => {
613
- return !state.search.defaultExpandedKeys.includes(key);
614
- });
615
- let allSearchkeysOther = state.search.dataListKeys.other;
616
- state.checkedKeys.main = vexutils.uniq([...state.checkedKeys.main, ...allSearchkeysMain]);
617
- state.checkedKeys.other = vexutils.uniq([...state.checkedKeys.other, ...allSearchkeysOther]);
618
- state.search.dataListKeys.main.forEach((key) => {
619
- let parentKey = getParentKey(key, state.treeData.main);
620
- let parent = state.treeData.main.filter((item) => {
621
- return item.key == parentKey;
622
- });
623
- let allCheck = parent[0].children.every((item) => {
624
- return state.checkedKeys.main.includes(item.key);
625
- });
626
- allCheck && state.checkedKeys.main.push(parentKey);
627
- });
628
- refreshSearchTree();
629
- } else if (type == 2) {
630
- searchTree.value.emptyCheckedKeys();
631
- state.autoExpandParent = true;
632
- }
633
- isSearchAllCheck();
634
- return true;
635
- };
636
- const removeCheckedkeysMain = (keys) => {
637
- let checkedKeysMain = vexutils.clone(state.checkedKeys.main, true);
638
- keys.forEach((key) => {
639
- let index = checkedKeysMain.findIndex((mainKey) => mainKey == key);
640
- if (index !== -1) {
641
- checkedKeysMain.splice(index, 1);
642
- state.checkedKeys.main = [...checkedKeysMain];
643
- }
644
- let parentKey = getParentKey(key, state.treeData.main);
645
- let parentIndex = checkedKeysMain.findIndex((mainKey) => mainKey == parentKey);
646
- if (parentIndex !== -1) {
647
- checkedKeysMain.splice(parentIndex, 1);
648
- }
649
- });
650
- state.checkedKeys.main = [...checkedKeysMain];
651
- };
652
- const addCheckedkeysOther = (keys) => {
653
- state.checkedKeys.other.push(...keys);
654
- };
655
- const removeCheckedkeysOther = (keys) => {
656
- let checkedKeys = state.checkedKeys.other;
657
- keys.forEach((key) => {
658
- let index = checkedKeys.findIndex((otherKey) => otherKey == key);
659
- checkedKeys.splice(index, 1);
660
- handleDeldefaultShowList(key);
661
- });
662
- removeCheckedkeysMain(keys);
663
- };
664
- const handleDeldefaultShowList = (key) => {
665
- let len = state?.defaultShowList?.length || 0;
666
- if (len > 0) {
667
- for (let i = len - 1; i >= 0; i--) {
668
- let d = state.defaultShowList[i];
669
- if (`${d.parent_id}_${d.user_id}` == key) {
670
- closeDefaultTag(d, i);
671
- }
672
- }
673
- }
674
- };
675
- const closeDefaultTag = (tag, i) => {
676
- state.defaultShowList.splice(i, 1);
677
- closeTag({
678
- parentId: getParentId(tag),
679
- ...tag
680
- });
681
- };
682
- const closeTag = (removedTag) => {
683
- removedCheckedkeysMain(removedTag);
684
- removedCheckedkeysOther(removedTag);
685
- refreshSearchTree();
686
- };
687
- const removeCheckedkeysIncludeChildren = (parentKey) => {
688
- let needRemoveChildKeys = state.dataList.main.filter((i) => {
689
- let parentId = getParentId(i);
690
- return parentId == parentKey || i.key == parentKey;
691
- }).map((i) => {
692
- return i.key;
693
- });
694
- state.checkedKeys.main = state.checkedKeys.main.filter((i) => {
695
- return !needRemoveChildKeys.includes(i);
696
- });
697
- };
698
- const removedCheckedkeysMain = (tag) => {
699
- let checkedKeys = state.checkedKeys.main;
700
- let parentId = getParentId(tag);
701
- for (let i = 0; i < checkedKeys.length; i++) {
702
- if (tag.key == checkedKeys[i] && tag.key == parentId) {
703
- removeCheckedkeysIncludeChildren(tag.key);
704
- return false;
705
- } else if (tag.key == checkedKeys[i]) {
706
- checkedKeys.splice(i, 1);
707
- return false;
708
- }
709
- }
710
- };
711
- const removedCheckedkeysOther = (tag) => {
712
- let checkedKeys = state.checkedKeys.other;
713
- if (checkedKeys.includes(tag.key)) {
714
- for (let i = 0; i < checkedKeys.length; i++) {
715
- if (tag.key == checkedKeys[i]) {
716
- checkedKeys.splice(i, 1);
717
- return false;
718
- }
719
- }
720
- } else {
721
- OtherRemoveCheckedkeysIncludeChildren(tag.key);
722
- }
723
- };
724
- const OtherRemoveCheckedkeysIncludeChildren = (parentKey) => {
725
- let needRemoveChildKeys = state.dataList.main.filter((i) => {
726
- let parentId = getParentId(i);
727
- return parentId == parentKey || i.key == parentKey;
728
- }).map((i) => {
729
- return i.key;
730
- });
731
- state.checkedKeys.other = state.checkedKeys.other.filter((i) => {
732
- return !needRemoveChildKeys.includes(i);
733
- });
734
- };
735
- const searchOnloadMore = () => {
736
- state.searchPage = state.searchPage + 1;
737
- searchFetch({
738
- page: state.searchPage
739
- }, {
740
- loadMoren: true
741
- });
742
- };
743
- const treeCount = (count) => {
744
- if (!count)
745
- return "";
746
- return `(${count})`;
747
- };
748
- const getParentId = (v) => {
749
- const {
750
- parent_id_obj
751
- } = wordbookConfig.value || {};
752
- return `${v[parent_id_obj]}`;
753
- };
754
- const uniqArrObj = (arr, name) => {
755
- let obj = {};
756
- return arr.reduce((cur, next) => {
757
- obj[next[name]] ? "" : obj[next[name]] = cur.push(next);
758
- return cur;
759
- }, []);
760
- };
761
- const getuniqKey = (v) => {
762
- const {
763
- user_id_obj
764
- } = wordbookConfig.value || {};
765
- return `${getParentId(v)}_${v[user_id_obj]}`;
766
- };
767
- watch(() => props.defaultList, (val) => {
768
- if (!val)
769
- return;
770
- initDefault();
771
- }, {
772
- immediate: true
773
- });
774
- watch(() => state.checkedKeys.main, (val) => {
775
- isAllCheck(val);
776
- isSearchAllCheck();
777
- emit("check", val);
778
- }, {
779
- immediate: true,
780
- deep: true
781
- });
782
- watch(() => props.data, (val) => {
783
- staticDataInit();
784
- }, {
785
- immediate: true
786
- });
787
- onMounted(() => {
788
- getUsers();
789
- });
790
- return (_ctx, _cache) => {
791
- return openBlock(), createElementBlock("div", _hoisted_1, [createVNode(unref(NSpin), {
792
- show: state.spinning
793
- }, {
794
- default: withCtx(() => [createElementVNode("div", _hoisted_2, [createCommentVNode(" \u6811\u4E3B\u4F53\u4E0E\u68C0\u7D22 "), createElementVNode("div", _hoisted_3, [createVNode(unref(NInputGroup), {
795
- style: {
796
- "margin-bottom": "12px"
797
- }
798
- }, {
799
- default: withCtx(() => [createVNode(unref(NInput), {
800
- style: {
801
- "text-align": "left"
802
- },
803
- clearable: "",
804
- value: state.title,
805
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => state.title = $event),
806
- placeholder: __props.searchPlaceholder
807
- }, null, 8, ["value", "placeholder"]), createVNode(unref(NButton), {
808
- type: "primary",
809
- onClick: searchClick
810
- }, {
811
- default: withCtx(() => [createTextVNode(toDisplayString(__props.searchButtonText), 1)]),
812
- _: 1
813
- })]),
814
- _: 1
815
- }), unref(searchTreeVisable) ? (openBlock(), createBlock(unref(NCheckbox), {
816
- key: 0,
817
- checked: state.searchChecked,
818
- "onUpdate:checked": [_cache[1] || (_cache[1] = ($event) => state.searchChecked = $event), radioChange],
819
- indeterminate: state.searchIndeterminate
820
- }, {
821
- default: withCtx(() => [_hoisted_4]),
822
- _: 1
823
- }, 8, ["checked", "indeterminate"])) : (openBlock(), createBlock(unref(NCheckbox), {
824
- key: 1,
825
- checked: state.singleChecked,
826
- "onUpdate:checked": [_cache[2] || (_cache[2] = ($event) => state.singleChecked = $event), radioChange],
827
- indeterminate: state.searchIndeterminate
828
- }, {
829
- default: withCtx(() => [_hoisted_5]),
830
- _: 1
831
- }, 8, ["checked", "indeterminate"])), createCommentVNode(' <div v-show="state.search.status == 3 || (state.search.status == 0 && state.treeData.main && state.treeData.main.length == 0)" class="no-data-tips">\r\n \u67E5\u65E0\u7ED3\u679C\r\n </div> '), createCommentVNode(" main tree "), withDirectives(createVNode(unref(NTree), {
832
- class: "main-tree-container",
833
- "checked-keys": state.checkedKeys.main,
834
- "onUpdate:checked-keys": _cache[3] || (_cache[3] = ($event) => state.checkedKeys.main = $event),
835
- "expanded-keys": state.expandedKeys,
836
- checkable: "",
837
- cascade: "",
838
- "allow-checking-not-loaded": "",
839
- selectable: false,
840
- data: state.treeData.main,
841
- "check-strategy": __props.queryMainTreeData ? "all" : "child",
842
- "onUpdate:expandedKeys": onExpand,
843
- "on-load": onLoadData,
844
- "render-label": renderLabel
845
- }, null, 8, ["checked-keys", "expanded-keys", "data", "check-strategy"]), [[vShow, state.search.status == 0]]), createCommentVNode(" search tree "), createVNode(script$1, mergeProps(_ctx.$attrs, {
846
- ref_key: "searchTree",
847
- ref: searchTree,
848
- visible: unref(searchTreeVisable),
849
- formatTreeData: state.treeData.search,
850
- searchValue: state.searchValue,
851
- allCheckedKeys: state.checkedKeys,
852
- defaultExpandedKeys: state.search.defaultExpandedKeys,
853
- dataListKeys: state.search.dataListKeys,
854
- searchNoMore: state.searchNoMore,
855
- loadMorenLoadinng: state.loadMorenLoadinng,
856
- onAddCheckedkeysMain: addCheckedkeysMain,
857
- onRemoveCheckedkeysMain: removeCheckedkeysMain,
858
- onAddCheckedkeysOther: addCheckedkeysOther,
859
- onRemoveCheckedkeysOther: removeCheckedkeysOther,
860
- onSearchOnloadMore: searchOnloadMore
861
- }), null, 16, ["visible", "formatTreeData", "searchValue", "allCheckedKeys", "defaultExpandedKeys", "dataListKeys", "searchNoMore", "loadMorenLoadinng"])]), createCommentVNode(" \u6811\u5DF2\u9009\u7684\u6570\u636E "), createElementVNode("div", _hoisted_6, [state.defaultShowList && state.defaultShowList.length ? renderSlot(_ctx.$slots, "default", {
862
- key: 0
863
- }, () => [(openBlock(true), createElementBlock(Fragment, null, renderList(state.defaultShowList, (tag, i) => {
864
- return openBlock(), createElementBlock("div", {
865
- class: "tag-item def-item",
866
- key: i
867
- }, [createTextVNode(toDisplayString(tag.title || tag[__props.wordbookChild.user_name_obj]) + " ", 1), !__props.isDetail ? (openBlock(), createBlock(unref(NIcon), {
868
- key: 0,
869
- class: "tag-close",
870
- component: unref(CloseCircleSharp),
871
- onClick: ($event) => closeDefaultTag(tag, i)
872
- }, null, 8, ["component", "onClick"])) : createCommentVNode("v-if", true)]);
873
- }), 128))]) : createCommentVNode("v-if", true), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(checkedTreeItem), (tag) => {
874
- return openBlock(), createElementBlock("div", {
875
- class: normalizeClass(["tag-item", {
876
- isRoot: !tag.isLeaf
877
- }]),
878
- key: tag.key
879
- }, [createTextVNode(toDisplayString(tag.title || tag.key) + " " + toDisplayString(treeCount(tag.count)) + " ", 1), !__props.isDetail ? (openBlock(), createBlock(unref(NIcon), {
880
- key: 0,
881
- class: "tag-close",
882
- component: unref(CloseCircleSharp),
883
- onClick: ($event) => closeTag(tag)
884
- }, null, 8, ["component", "onClick"])) : createCommentVNode("v-if", true)], 2);
885
- }), 128))])])]),
886
- _: 3
887
- }, 8, ["show"])]);
888
- };
889
- }
890
- });
891
-
892
- export { script as default };
1
+ import{defineComponent as e,ref as a,reactive as t,computed as r,nextTick as n,watch as s,onMounted as i,openBlock as c,createElementBlock as d,createVNode as l,unref as h,withCtx as o,createElementVNode as u,createCommentVNode as y,createTextVNode as k,toDisplayString as p,createBlock as m,withDirectives as f,vShow as g,mergeProps as _,renderSlot as K,Fragment as b,renderList as L,normalizeClass as v}from"vue";import{useMessage as D,NSpin as w,NInputGroup as x,NInput as j,NButton as C,NCheckbox as S,NTree as M,NIcon as E,NTooltip as O}from"naive-ui";import{CloseCircleSharp as P}from"@vicons/ionicons5";import N from"cnhis-design-vue/es/src/utils/vexutils";import"./SearchTree2.mjs";import{filterTree as T}from"./utils/index2.mjs";import I from"./SearchTree.vue_vue_type_script_setup_true_lang.mjs";const q={class:"personnel"},A={class:"people-tree"},J={class:"people-tree-item people-tree-left"},$=k("全选 "),V=k("全选 "),B={class:"people-tree-item tags-box"};var U=e({name:"SelectPerson",props:{visible:{type:Boolean,default:!1},isDetail:{type:Boolean,default:!1},defaultList:{type:Array,default:()=>[]},data:{type:Array,default:()=>[]},searchPlaceholder:{type:String,default:"输入关键字搜索"},searchButtonText:{type:String,default:"搜索"},wordbook:{type:Object,default:()=>({})},wordbookChild:{type:Object,default:()=>({})},SearchLoadMore:{type:Boolean,default:!1},queryMainTreeData:{type:Function},queryLoadChildData:{type:Function},queryTreeSearch:{type:Function}},emits:["check","pubCheckedTreeItem","handleOk","change","submitData","update:visible"],setup(e,{emit:U}){const F=e,R=D(),z=a(null),G=t({treeData:{main:[],search:[]},expandedKeys:[],autoExpandParent:!0,dataList:{main:[],other:[]},checkedKeys:{main:[],other:[]},search:{defaultExpandedKeys:[],status:0,dataListKeys:{main:[],other:[]},records:0},searchValue:"",searchPage:1,searchNoMore:!1,title:"",checkedLeafKeys:[],spinning:!1,loadMorenLoadinng:!1,errorMsg:"",defaultShowList:[],checkedKeysMain:[],cacheParentIdObj:{},singleChecked:!1,indeterminate:!1,searchIndeterminate:!1,searchChecked:!1}),H=r((()=>2==G.search.status)),Q=r((()=>G.dataList.main.length?G.dataList.main.map((e=>e.key)):[])),W=r((()=>G.dataList.other.length?G.dataList.other.map((e=>e.key)):[])),X=r((()=>{let e=G.dataList.other.filter((e=>G.checkedKeys.other.includes(e.key))),a=G.dataList.main.filter((a=>{let{isLeaf:t,key:r}=a,n=Te(a),s=[...G.checkedKeys.main,...e].includes(r);return t&&n&&G.checkedKeys.main.some((e=>e==n))&&(s=!1),s}));return Ie([...a,...e],"key")})),Y=r((()=>{const{parent_id_obj:e,parent_name_obj:a}=F.wordbook||{},{user_id_obj:t,user_name_obj:r}=F.wordbookChild||{};return{parent_id_obj:e,parent_name_obj:a,user_id_obj:t,user_name_obj:r}})),Z=r((()=>"function"==typeof F.queryLoadChildData?re:null)),ee=({option:e})=>e.isLeaf||!e.children?l(O,{trigger:"hover"},{default:()=>`${e.title} ${e.sub_title||""}`,trigger:()=>l("span",null,[l("span",{class:"c-title"},[e.title||e.key,k("  ")]),l("span",{class:"c-sub-title"},[e.sub_title])])}):l("span",{class:"p-title"},[l("span",null,[e.title||e.key]),Ne(e.count)]),ae=()=>{let e=JSON.parse(JSON.stringify(F.defaultList));Array.isArray(e)&&(e.forEach((e=>{te(e),qe(e);let a=Te(e);G.cacheParentIdObj[a]=a})),G.defaultShowList=e)},te=e=>{const{parent_id_obj:a,parent_name_obj:t,user_id_obj:r,user_name_obj:n}=Y.value||{},{parent_id_obj_key:s,parent_name_obj_key:i}=F.wordbook,{user_id_obj_key:c,user_name_obj_key:d}=F.wordbookChild;e[a]=e[s]||e.parent_id,e[t]=e[i]||e.parent_name,e[r]=e[c]||e.user_id,e[n]=e[d]||e.user_name},re=e=>new Promise((async a=>{e.children||(e.children=await se(e.key,e),de(e.children),n((()=>{G.treeData.main=[...G.treeData.main]})),ce(e),ie(e.children||[],G.dataList.main)),a()})),ne=async()=>{try{if("function"!=typeof F.queryMainTreeData)return;G.spinning=!0;const{parent_id_obj:e}=Y.value||{};let a=await F.queryMainTreeData(),t=Ie(a||[],e);G.treeData.main=t,ie(G.treeData.main,G.dataList.main),await(async()=>{try{return await Promise.all(G.treeData.main.map((async e=>{const{parent_id_obj:a}=F.wordbook||{};if([e.key,e[a],String(e[a])].includes(G.cacheParentIdObj[e[a]]))return await re(e),e})))}catch(e){return Promise.resolve()}})();let{checkedKeysMain:r,checkedKeysOther:n}=(()=>{let e=[],a=[],t=JSON.parse(JSON.stringify(F.defaultList));return Array.isArray(t)&&t.forEach((t=>{te(t);let r=qe(t);e.push(r),String(r).includes("8982eeb4-0439-4100-9805-8cdd12b2256c-front-end-fixed-key")&&a.push(r)})),{checkedKeysMain:e,checkedKeysOther:a}})();G.checkedKeys.main.push(...r),G.checkedKeys.other=[...n],G.treeData.main.forEach((e=>{if(e&&e.children&&e.children.length){e.children.every((e=>r.includes(e.key)))&&e.key&&G.checkedKeys.main.push(e.key)}})),G.spinning=!1}catch(e){G.spinning=!1,R.error("查询异常")}},se=async(e,a)=>F.queryLoadChildData&&await F.queryLoadChildData(e,a),ie=(e,a)=>{for(let t=0;t<e.length;t++){const r=e[t];a.push({parentId:Te(r),...r}),r.children&&ie(r.children,a)}},ce=e=>{if(e.key)return!!G.checkedKeys.main.includes(String(e.key))&&(!!Array.isArray(e.children)&&void e.children.forEach((({key:e})=>{if(G.checkedKeys.main.includes(e)||!e)return!1;G.checkedKeys.main.push(e)})))},de=e=>{G.defaultShowList=G.defaultShowList.filter((a=>-1==e.findIndex((e=>qe(a)==qe(e)))))},le=async(e={},a={})=>{if("function"!=typeof F.queryTreeSearch)return pe(),G.spinning=!1,void ke();if(!G.searchValue)return G.search.status=0,G.search.defaultExpandedKeys=[],G.expandedKeys=[],G.spinning=!1,G.searchNoMore=!1,!1;a.loadMoren?G.loadMorenLoadinng=!0:G.search.status=1;let t=await F.queryTreeSearch(G.searchValue,e);if(G.loadMorenLoadinng=!1,!t||!t.length)return 1==G.searchPage?(G.search.defaultExpandedKeys=[],G.search.status=3):(G.search.status=2,G.searchNoMore=!0),G.spinning=!1,ke(),!1;const{parent_id_obj:r,parent_name_obj:n,user_count_obj:s}=F.wordbook||{};F.wordbookChild;let i={};t.forEach((e=>{e[r]&&(i[e[r]]={key:e[r],users:[]}),e.users?ue(e):ye(e)}));let c=[];Object.keys(i||{}).forEach((e=>{e&&c.push({...i[e]})})),G.treeData.search.length,F.SearchLoadMore?G.searchNoMore=!1:G.searchNoMore=!0,await(e=>new Promise((async a=>{let t=e.map((async e=>{if(e.users){let a=G.treeData.main.find((a=>a.key==e.key));(!a||a&&!a.children)&&(a||(a={...e}),a.children=await se(e.key,a),ie(a.children,G.dataList.main),ce(a))}}));await Promise.all(t),a()})))(c),oe(t),de(t),he(),G.search.status=2,G.spinning=!1,ke()},he=()=>{if(!H.value)return!1;z.value.setDefaultCheckedKeys(),n((()=>{ke()}))},oe=e=>{e.forEach((e=>{if(!Q.value.includes(e.key))return G.search.dataListKeys.other.push(e.key),void(e.children&&e.children.forEach((e=>{G.search.dataListKeys.other.push(e.key)})));G.search.dataListKeys.main.push(e.key),e.children&&e.children.forEach((e=>{G.search.dataListKeys.main.push(e.key)}))}))},ue=e=>{const{user_count_obj:a}=F.wordbook||{};G.search.defaultExpandedKeys.push(e.key),de(e.children||[]),e[a]==e.children.length&&(e.disableCheckbox=!1),G.treeData.search.push(e)},ye=e=>{let a=Object.assign({},e,{isLeaf:!0});if(G.treeData.search.push(a),W.value.includes(a.key))return!1;ie([a],G.dataList.other)},ke=()=>{n((()=>{let e=G.treeData.search.map((e=>e.key)),a=z.value.checkedKeys;G.searchIndeterminate=!!a.length&&a.length<e.length,G.searchChecked=a.length===e.length}))},pe=()=>{if(!G.title)return void(G.treeData.main=JSON.parse(JSON.stringify(F.data)));let e=JSON.parse(JSON.stringify(G.treeData.main));T({value:G.title,data:e,prop:"title"});const a=[];N.searchTree(e,(e=>{e.visible&&a.push(e.key),e.children?.length&&(e.children=e.children.filter((e=>e.visible)))})),G.treeData.main=e,G.expandedKeys=a},me=e=>{G.expandedKeys=e,G.autoExpandParent=!1},fe=()=>{G.searchValue=G.title,G.treeData.search=[],G.search.dataListKeys.other=[],G.search.dataListKeys.main=[],G.search.defaultExpandedKeys=[],G.spinning=!0,G.searchPage=1,le()},ge=e=>{let a=G.checkedKeys.main;(e||{}).filter(Boolean).forEach((e=>{a.push(e);let t=_e(e,G.treeData.main);t&&(G.treeData.main.filter((e=>e.key==t))[0]?.children||[]).every((e=>a.includes(e.key)))&&a.push(t)}))},_e=(e,a)=>{let t;for(let r=0;r<a.length;r++){const n=a[r];if(n.key==e)return t=n.key,t;n.children&&(n.children.some((a=>a.key==e))?t=n.key:_e(e,n.children)&&(t=_e(e,n.children)))}return t},Ke=e=>{H.value?G.singleChecked=e:G.searchChecked=e,be(e?1:2)},be=e=>{if(Le(e))return!1;1==e?(G.expandedKeys=[],G.checkedKeys.main=Q.value):2==e&&(G.checkedKeys.main=[],G.autoExpandParent=!0)},Le=e=>{if(!H.value)return!1;if(1==e){let e=G.search.dataListKeys.main.filter((e=>!G.search.defaultExpandedKeys.includes(e))),a=G.search.dataListKeys.other;G.checkedKeys.main=N.uniq([...G.checkedKeys.main,...e]),G.checkedKeys.other=N.uniq([...G.checkedKeys.other,...a]),G.search.dataListKeys.main.forEach((e=>{let a=_e(e,G.treeData.main);G.treeData.main.filter((e=>e.key==a))[0].children.every((e=>G.checkedKeys.main.includes(e.key)))&&G.checkedKeys.main.push(a)})),he()}else 2==e&&(z.value.emptyCheckedKeys(),G.autoExpandParent=!0);return ke(),!0},ve=e=>{let a=N.clone(G.checkedKeys.main,!0);e.forEach((e=>{let t=a.findIndex((a=>a==e));-1!==t&&(a.splice(t,1),G.checkedKeys.main=[...a]);let r=_e(e,G.treeData.main),n=a.findIndex((e=>e==r));-1!==n&&a.splice(n,1)})),G.checkedKeys.main=[...a]},De=e=>{G.checkedKeys.other.push(...e)},we=e=>{let a=G.checkedKeys.other;e.forEach((e=>{let t=a.findIndex((a=>a==e));a.splice(t,1),xe(e)})),ve(e)},xe=e=>{let a=G?.defaultShowList?.length||0;if(a>0)for(let t=a-1;t>=0;t--){let a=G.defaultShowList[t];`${a.parent_id}_${a.user_id}`==e&&je(a,t)}},je=(e,a)=>{G.defaultShowList.splice(a,1),Ce({parentId:Te(e),...e})},Ce=e=>{Me(e),Ee(e),he()},Se=e=>{let a=G.dataList.main.filter((a=>Te(a)==e||a.key==e)).map((e=>e.key));G.checkedKeys.main=G.checkedKeys.main.filter((e=>!a.includes(e)))},Me=e=>{let a=G.checkedKeys.main,t=Te(e);for(let r=0;r<a.length;r++){if(e.key==a[r]&&e.key==t)return Se(e.key),!1;if(e.key==a[r])return a.splice(r,1),!1}},Ee=e=>{let a=G.checkedKeys.other;if(a.includes(e.key)){for(let t=0;t<a.length;t++)if(e.key==a[t])return a.splice(t,1),!1}else Oe(e.key)},Oe=e=>{let a=G.dataList.main.filter((a=>Te(a)==e||a.key==e)).map((e=>e.key));G.checkedKeys.other=G.checkedKeys.other.filter((e=>!a.includes(e)))},Pe=()=>{G.searchPage=G.searchPage+1,le({page:G.searchPage},{loadMoren:!0})},Ne=e=>e?`(${e})`:"",Te=e=>{const{parent_id_obj:a}=Y.value||{};return`${e[a]}`},Ie=(e,a)=>{let t={};return e.reduce(((e,r)=>(!t[r[a]]&&(t[r[a]]=e.push(r)),e)),[])},qe=e=>{const{user_id_obj:a}=Y.value||{};return`${Te(e)}_${e[a]}`};return s((()=>F.defaultList),(e=>{e&&(Z.value?ae():n((()=>{G.checkedKeys.main=[...F.defaultList]})))}),{immediate:!0}),s((()=>G.checkedKeys.main),(e=>{((e=[])=>{if(e&&0!=e.length){let a=G.treeData.main.map((e=>e.key)),t=a.filter((a=>-1!==e.indexOf(a)));G.indeterminate=!(a.length==t.length),G.singleChecked=a.length==t.length}else G.indeterminate=!1,G.singleChecked=!1})(e),ke(),U("check",e)}),{immediate:!0,deep:!0}),s((()=>F.data),(e=>{Array.isArray(F.data)&&0!=F.data.length&&(G.treeData.main=JSON.parse(JSON.stringify(F.data)),ie(G.treeData.main,G.dataList.main))}),{immediate:!0}),i((()=>{ne()})),(a,t)=>(c(),d("div",q,[l(h(w),{show:G.spinning},{default:o((()=>[u("div",A,[y(" 树主体与检索 "),u("div",J,[l(h(x),{style:{"margin-bottom":"12px"}},{default:o((()=>[l(h(j),{style:{"text-align":"left"},clearable:"",value:G.title,"onUpdate:value":t[0]||(t[0]=e=>G.title=e),placeholder:e.searchPlaceholder},null,8,["value","placeholder"]),l(h(C),{type:"primary",onClick:fe},{default:o((()=>[k(p(e.searchButtonText),1)])),_:1})])),_:1}),h(H)?(c(),m(h(S),{key:0,checked:G.searchChecked,"onUpdate:checked":[t[1]||(t[1]=e=>G.searchChecked=e),Ke],indeterminate:G.searchIndeterminate},{default:o((()=>[$])),_:1},8,["checked","indeterminate"])):(c(),m(h(S),{key:1,checked:G.singleChecked,"onUpdate:checked":[t[2]||(t[2]=e=>G.singleChecked=e),Ke],indeterminate:G.searchIndeterminate},{default:o((()=>[V])),_:1},8,["checked","indeterminate"])),y(' <div v-show="state.search.status == 3 || (state.search.status == 0 && state.treeData.main && state.treeData.main.length == 0)" class="no-data-tips">\n 查无结果\n </div> '),y(" main tree "),f(l(h(M),{class:"main-tree-container","checked-keys":G.checkedKeys.main,"onUpdate:checked-keys":t[3]||(t[3]=e=>G.checkedKeys.main=e),"expanded-keys":G.expandedKeys,checkable:"",cascade:"","allow-checking-not-loaded":"",selectable:!1,data:G.treeData.main,"check-strategy":e.queryMainTreeData?"all":"child","onUpdate:expandedKeys":me,"on-load":re,"render-label":ee},null,8,["checked-keys","expanded-keys","data","check-strategy"]),[[g,0==G.search.status]]),y(" search tree "),l(I,_(a.$attrs,{ref_key:"searchTree",ref:z,visible:h(H),formatTreeData:G.treeData.search,searchValue:G.searchValue,allCheckedKeys:G.checkedKeys,defaultExpandedKeys:G.search.defaultExpandedKeys,dataListKeys:G.search.dataListKeys,searchNoMore:G.searchNoMore,loadMorenLoadinng:G.loadMorenLoadinng,onAddCheckedkeysMain:ge,onRemoveCheckedkeysMain:ve,onAddCheckedkeysOther:De,onRemoveCheckedkeysOther:we,onSearchOnloadMore:Pe}),null,16,["visible","formatTreeData","searchValue","allCheckedKeys","defaultExpandedKeys","dataListKeys","searchNoMore","loadMorenLoadinng"])]),y(" 树已选的数据 "),u("div",B,[G.defaultShowList&&G.defaultShowList.length?K(a.$slots,"default",{key:0},(()=>[(c(!0),d(b,null,L(G.defaultShowList,((a,t)=>(c(),d("div",{class:"tag-item def-item",key:t},[k(p(a.title||a[e.wordbookChild.user_name_obj])+" ",1),e.isDetail?y("v-if",!0):(c(),m(h(E),{key:0,class:"tag-close",component:h(P),onClick:e=>je(a,t)},null,8,["component","onClick"]))])))),128))])):y("v-if",!0),(c(!0),d(b,null,L(h(X),(a=>(c(),d("div",{class:v(["tag-item",{isRoot:!a.isLeaf}]),key:a.key},[k(p(a.title||a.key)+" "+p(Ne(a.count))+" ",1),e.isDetail?y("v-if",!0):(c(),m(h(E),{key:0,class:"tag-close",component:h(P),onClick:e=>Ce(a)},null,8,["component","onClick"]))],2)))),128))])])])),_:3},8,["show"])]))}});export{U as default};