@yimou6/common-ui 1.11.7 → 1.11.8
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/cdn/index.cdn.js +10 -10
- package/cdn/index.cdn.js.map +1 -1
- package/cdn/index.cdn.mjs +11 -11
- package/cdn/index.cdn.mjs.map +1 -1
- package/es/components/tenant-enterprise/index.d.ts +5 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue.d.ts +5 -0
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs +50 -325
- package/es/components/tenant-enterprise/src/tenant-enterprise.vue2.mjs.map +1 -1
- package/lib/components/tenant-enterprise/index.d.ts +5 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue.d.ts +5 -0
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js +50 -325
- package/lib/components/tenant-enterprise/src/tenant-enterprise.vue2.js.map +1 -1
- package/package.json +1 -1
|
@@ -76,326 +76,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
76
76
|
}, true);
|
|
77
77
|
async function GetTenantEnterpriseTree() {
|
|
78
78
|
if (props.isOnDuty) {
|
|
79
|
-
return [
|
|
80
|
-
{
|
|
81
|
-
id: 23,
|
|
82
|
-
enterpriseName: "\u7279\u81F4\u73C8",
|
|
83
|
-
enterpriseNameShort: null,
|
|
84
|
-
enterpriseLogoImage: null,
|
|
85
|
-
sort: null,
|
|
86
|
-
parentId: 0,
|
|
87
|
-
tenantId: 32,
|
|
88
|
-
condition: null,
|
|
89
|
-
latLud: null,
|
|
90
|
-
enterpriseTreeVoList: [
|
|
91
|
-
{
|
|
92
|
-
id: 3377298,
|
|
93
|
-
enterpriseName: "\u7279\u81F4\u73C8\u5B50\u5355\u4F4D",
|
|
94
|
-
enterpriseNameShort: null,
|
|
95
|
-
enterpriseLogoImage: "",
|
|
96
|
-
sort: null,
|
|
97
|
-
parentId: 23,
|
|
98
|
-
tenantId: 32,
|
|
99
|
-
condition: "0",
|
|
100
|
-
latLud: "113.015141,28.23635",
|
|
101
|
-
enterpriseTreeVoList: [],
|
|
102
|
-
fileNum: 0,
|
|
103
|
-
auth: false,
|
|
104
|
-
imgUrl: null,
|
|
105
|
-
dutyName: null,
|
|
106
|
-
dutyPhone: null,
|
|
107
|
-
enterpriseStr: null,
|
|
108
|
-
tenantTreeVoList: null,
|
|
109
|
-
deptList: null,
|
|
110
|
-
type: null
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
id: 3152351,
|
|
114
|
-
enterpriseName: "\u6570\u636E\u4E2D\u53F0\u6D41\u7A0B\u6D4B\u8BD5\u5355\u4F4D",
|
|
115
|
-
enterpriseNameShort: "string",
|
|
116
|
-
enterpriseLogoImage: null,
|
|
117
|
-
sort: 0,
|
|
118
|
-
parentId: 23,
|
|
119
|
-
tenantId: 32,
|
|
120
|
-
condition: "0",
|
|
121
|
-
latLud: null,
|
|
122
|
-
enterpriseTreeVoList: [],
|
|
123
|
-
fileNum: 0,
|
|
124
|
-
auth: false,
|
|
125
|
-
imgUrl: null,
|
|
126
|
-
dutyName: null,
|
|
127
|
-
dutyPhone: null,
|
|
128
|
-
enterpriseStr: null,
|
|
129
|
-
tenantTreeVoList: null,
|
|
130
|
-
deptList: null,
|
|
131
|
-
type: null
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
id: 3171158,
|
|
135
|
-
enterpriseName: "\u51FD\u8C37\u5173",
|
|
136
|
-
enterpriseNameShort: null,
|
|
137
|
-
enterpriseLogoImage: "",
|
|
138
|
-
sort: null,
|
|
139
|
-
parentId: 23,
|
|
140
|
-
tenantId: 32,
|
|
141
|
-
condition: "0",
|
|
142
|
-
latLud: "110.928567,34.636828",
|
|
143
|
-
enterpriseTreeVoList: [],
|
|
144
|
-
fileNum: 0,
|
|
145
|
-
auth: false,
|
|
146
|
-
imgUrl: null,
|
|
147
|
-
dutyName: null,
|
|
148
|
-
dutyPhone: null,
|
|
149
|
-
enterpriseStr: null,
|
|
150
|
-
tenantTreeVoList: null,
|
|
151
|
-
deptList: null,
|
|
152
|
-
type: null
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
id: 3168952,
|
|
156
|
-
enterpriseName: "\u96C1\u95E8\u5173",
|
|
157
|
-
enterpriseNameShort: null,
|
|
158
|
-
enterpriseLogoImage: "",
|
|
159
|
-
sort: null,
|
|
160
|
-
parentId: 23,
|
|
161
|
-
tenantId: 32,
|
|
162
|
-
condition: "0",
|
|
163
|
-
latLud: "112.91643,28.23202",
|
|
164
|
-
enterpriseTreeVoList: [],
|
|
165
|
-
fileNum: 0,
|
|
166
|
-
auth: false,
|
|
167
|
-
imgUrl: null,
|
|
168
|
-
dutyName: null,
|
|
169
|
-
dutyPhone: null,
|
|
170
|
-
enterpriseStr: null,
|
|
171
|
-
tenantTreeVoList: null,
|
|
172
|
-
deptList: null,
|
|
173
|
-
type: null
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
id: 3153517,
|
|
177
|
-
enterpriseName: "\u6279\u91CF\u5BFC\u5165\u5355\u4F4D\u6D4B\u8BD5\u5355\u4F4D",
|
|
178
|
-
enterpriseNameShort: null,
|
|
179
|
-
enterpriseLogoImage: null,
|
|
180
|
-
sort: null,
|
|
181
|
-
parentId: 23,
|
|
182
|
-
tenantId: 32,
|
|
183
|
-
condition: "0",
|
|
184
|
-
latLud: "100,60",
|
|
185
|
-
enterpriseTreeVoList: [
|
|
186
|
-
{
|
|
187
|
-
id: 3168546,
|
|
188
|
-
enterpriseName: "\u6279\u91CF\u5BFC\u5165\u5355\u4F4D\u6D4B\u8BD5\u5355\u4F4D06",
|
|
189
|
-
enterpriseNameShort: null,
|
|
190
|
-
enterpriseLogoImage: null,
|
|
191
|
-
sort: null,
|
|
192
|
-
parentId: 3153517,
|
|
193
|
-
tenantId: 32,
|
|
194
|
-
condition: "0",
|
|
195
|
-
latLud: "112.931795,28.233940",
|
|
196
|
-
enterpriseTreeVoList: [],
|
|
197
|
-
fileNum: 0,
|
|
198
|
-
auth: false,
|
|
199
|
-
imgUrl: null,
|
|
200
|
-
dutyName: null,
|
|
201
|
-
dutyPhone: null,
|
|
202
|
-
enterpriseStr: null,
|
|
203
|
-
tenantTreeVoList: null,
|
|
204
|
-
deptList: null,
|
|
205
|
-
type: null
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
id: 3168521,
|
|
209
|
-
enterpriseName: "\u6279\u91CF\u5BFC\u5165\u5355\u4F4D\u6D4B\u8BD5\u5355\u4F4D04",
|
|
210
|
-
enterpriseNameShort: null,
|
|
211
|
-
enterpriseLogoImage: null,
|
|
212
|
-
sort: null,
|
|
213
|
-
parentId: 3153517,
|
|
214
|
-
tenantId: 32,
|
|
215
|
-
condition: "0",
|
|
216
|
-
latLud: "112.931796,28.233940",
|
|
217
|
-
enterpriseTreeVoList: [],
|
|
218
|
-
fileNum: 0,
|
|
219
|
-
auth: false,
|
|
220
|
-
imgUrl: null,
|
|
221
|
-
dutyName: null,
|
|
222
|
-
dutyPhone: null,
|
|
223
|
-
enterpriseStr: null,
|
|
224
|
-
tenantTreeVoList: null,
|
|
225
|
-
deptList: null,
|
|
226
|
-
type: null
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
id: 3168496,
|
|
230
|
-
enterpriseName: "\u6279\u91CF\u5BFC\u5165\u5355\u4F4D\u6D4B\u8BD5\u5355\u4F4D03",
|
|
231
|
-
enterpriseNameShort: null,
|
|
232
|
-
enterpriseLogoImage: null,
|
|
233
|
-
sort: null,
|
|
234
|
-
parentId: 3153517,
|
|
235
|
-
tenantId: 32,
|
|
236
|
-
condition: "0",
|
|
237
|
-
latLud: "112.931797,28.233940",
|
|
238
|
-
enterpriseTreeVoList: [],
|
|
239
|
-
fileNum: 0,
|
|
240
|
-
auth: false,
|
|
241
|
-
imgUrl: null,
|
|
242
|
-
dutyName: null,
|
|
243
|
-
dutyPhone: null,
|
|
244
|
-
enterpriseStr: null,
|
|
245
|
-
tenantTreeVoList: null,
|
|
246
|
-
deptList: null,
|
|
247
|
-
type: null
|
|
248
|
-
}
|
|
249
|
-
],
|
|
250
|
-
fileNum: 0,
|
|
251
|
-
auth: false,
|
|
252
|
-
imgUrl: null,
|
|
253
|
-
dutyName: null,
|
|
254
|
-
dutyPhone: null,
|
|
255
|
-
enterpriseStr: null,
|
|
256
|
-
tenantTreeVoList: null,
|
|
257
|
-
deptList: null,
|
|
258
|
-
type: null
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
id: 24703,
|
|
262
|
-
enterpriseName: "\u6D4B\u8BD5\u5355\u4F4D4",
|
|
263
|
-
enterpriseNameShort: "",
|
|
264
|
-
enterpriseLogoImage: "",
|
|
265
|
-
sort: null,
|
|
266
|
-
parentId: 23,
|
|
267
|
-
tenantId: 32,
|
|
268
|
-
condition: "0",
|
|
269
|
-
latLud: "106.633906,28.583602",
|
|
270
|
-
enterpriseTreeVoList: [],
|
|
271
|
-
fileNum: 0,
|
|
272
|
-
auth: false,
|
|
273
|
-
imgUrl: null,
|
|
274
|
-
dutyName: null,
|
|
275
|
-
dutyPhone: null,
|
|
276
|
-
enterpriseStr: null,
|
|
277
|
-
tenantTreeVoList: null,
|
|
278
|
-
deptList: null,
|
|
279
|
-
type: null
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
id: 4171794,
|
|
283
|
-
enterpriseName: "\u91CD\u5E86\u4E07\u5DDE\u4E45\u4E45\u517B\u8001\u9662",
|
|
284
|
-
enterpriseNameShort: "",
|
|
285
|
-
enterpriseLogoImage: "",
|
|
286
|
-
sort: null,
|
|
287
|
-
parentId: 23,
|
|
288
|
-
tenantId: 32,
|
|
289
|
-
condition: "1",
|
|
290
|
-
latLud: "108.38312,30.806462",
|
|
291
|
-
enterpriseTreeVoList: [],
|
|
292
|
-
fileNum: 0,
|
|
293
|
-
auth: false,
|
|
294
|
-
imgUrl: null,
|
|
295
|
-
dutyName: null,
|
|
296
|
-
dutyPhone: null,
|
|
297
|
-
enterpriseStr: null,
|
|
298
|
-
tenantTreeVoList: null,
|
|
299
|
-
deptList: null,
|
|
300
|
-
type: null
|
|
301
|
-
}
|
|
302
|
-
],
|
|
303
|
-
fileNum: 0,
|
|
304
|
-
auth: false,
|
|
305
|
-
imgUrl: null,
|
|
306
|
-
dutyName: null,
|
|
307
|
-
dutyPhone: null,
|
|
308
|
-
enterpriseStr: null,
|
|
309
|
-
tenantTreeVoList: null,
|
|
310
|
-
deptList: null,
|
|
311
|
-
type: null
|
|
312
|
-
},
|
|
313
|
-
{
|
|
314
|
-
id: 92218,
|
|
315
|
-
enterpriseName: "\u5317\u4EAC\u603B\u90E8",
|
|
316
|
-
enterpriseNameShort: null,
|
|
317
|
-
enterpriseLogoImage: null,
|
|
318
|
-
sort: null,
|
|
319
|
-
parentId: 346801,
|
|
320
|
-
tenantId: 92216,
|
|
321
|
-
condition: null,
|
|
322
|
-
latLud: null,
|
|
323
|
-
enterpriseTreeVoList: [
|
|
324
|
-
{
|
|
325
|
-
id: 92221,
|
|
326
|
-
enterpriseName: "\u534E\u5929\u603B\u5E97",
|
|
327
|
-
enterpriseNameShort: null,
|
|
328
|
-
enterpriseLogoImage: null,
|
|
329
|
-
sort: null,
|
|
330
|
-
parentId: 92218,
|
|
331
|
-
tenantId: 92216,
|
|
332
|
-
condition: "0",
|
|
333
|
-
latLud: "112.998684,28.191206",
|
|
334
|
-
enterpriseTreeVoList: [],
|
|
335
|
-
fileNum: 0,
|
|
336
|
-
auth: false,
|
|
337
|
-
imgUrl: null,
|
|
338
|
-
dutyName: null,
|
|
339
|
-
dutyPhone: null,
|
|
340
|
-
enterpriseStr: null,
|
|
341
|
-
tenantTreeVoList: null,
|
|
342
|
-
deptList: null,
|
|
343
|
-
type: null
|
|
344
|
-
},
|
|
345
|
-
{
|
|
346
|
-
id: 92220,
|
|
347
|
-
enterpriseName: "\u5317\u4EAC\u6F47\u6E58\u534E\u5929",
|
|
348
|
-
enterpriseNameShort: "\u5355\u4F4D\u7B80\u79F0",
|
|
349
|
-
enterpriseLogoImage: "",
|
|
350
|
-
sort: null,
|
|
351
|
-
parentId: 92218,
|
|
352
|
-
tenantId: 92216,
|
|
353
|
-
condition: "0",
|
|
354
|
-
latLud: "112.986417,28.19887",
|
|
355
|
-
enterpriseTreeVoList: [],
|
|
356
|
-
fileNum: 0,
|
|
357
|
-
auth: false,
|
|
358
|
-
imgUrl: null,
|
|
359
|
-
dutyName: null,
|
|
360
|
-
dutyPhone: null,
|
|
361
|
-
enterpriseStr: null,
|
|
362
|
-
tenantTreeVoList: null,
|
|
363
|
-
deptList: null,
|
|
364
|
-
type: null
|
|
365
|
-
}
|
|
366
|
-
],
|
|
367
|
-
fileNum: 0,
|
|
368
|
-
auth: false,
|
|
369
|
-
imgUrl: null,
|
|
370
|
-
dutyName: null,
|
|
371
|
-
dutyPhone: null,
|
|
372
|
-
enterpriseStr: null,
|
|
373
|
-
tenantTreeVoList: null,
|
|
374
|
-
deptList: null,
|
|
375
|
-
type: null
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
id: 4147992,
|
|
379
|
-
enterpriseName: "\u96C5\u5C45\u4E50\u82B1\u56ED",
|
|
380
|
-
enterpriseNameShort: null,
|
|
381
|
-
enterpriseLogoImage: null,
|
|
382
|
-
sort: null,
|
|
383
|
-
parentId: 4147971,
|
|
384
|
-
tenantId: 4147420,
|
|
385
|
-
condition: null,
|
|
386
|
-
latLud: null,
|
|
387
|
-
enterpriseTreeVoList: [],
|
|
388
|
-
fileNum: 0,
|
|
389
|
-
auth: false,
|
|
390
|
-
imgUrl: null,
|
|
391
|
-
dutyName: null,
|
|
392
|
-
dutyPhone: null,
|
|
393
|
-
enterpriseStr: null,
|
|
394
|
-
tenantTreeVoList: null,
|
|
395
|
-
deptList: null,
|
|
396
|
-
type: null
|
|
397
|
-
}
|
|
398
|
-
];
|
|
399
79
|
return await (tenantStore == null ? void 0 : tenantStore.getTenantListByEnterpriseId()) || [];
|
|
400
80
|
} else {
|
|
401
81
|
return await (tenantStore == null ? void 0 : tenantStore.getEnterprise()) || [];
|
|
@@ -403,7 +83,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
403
83
|
}
|
|
404
84
|
__name(GetTenantEnterpriseTree, "GetTenantEnterpriseTree");
|
|
405
85
|
async function setDefaultCheck() {
|
|
406
|
-
var _a2, _b2, _c2, _d2, _e, _f, _g, _h;
|
|
86
|
+
var _a2, _b2, _c2, _d2, _e, _f, _g, _h, _i, _j, _k;
|
|
407
87
|
await clearChecked();
|
|
408
88
|
defaultCheck.value.enterpriseId = (_b2 = (_a2 = simpleModeBaseInfo == null ? void 0 : simpleModeBaseInfo.value) == null ? void 0 : _a2.enterpriseId) != null ? _b2 : userStore == null ? void 0 : userStore.userInfo.tenantEnterpriseId;
|
|
409
89
|
defaultCheck.value.tenantId = (_d2 = (_c2 = simpleModeBaseInfo == null ? void 0 : simpleModeBaseInfo.value) == null ? void 0 : _c2.tenantId) != null ? _d2 : userStore == null ? void 0 : userStore.userInfo.tenantId;
|
|
@@ -431,10 +111,20 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
431
111
|
console.error("\u672A\u627E\u5230\u5355\u4F4D!", defaultCheck.value.enterpriseId);
|
|
432
112
|
}
|
|
433
113
|
if (props.isOnDuty) {
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
114
|
+
const treeNodes = collectTreeNodes(treeData.value);
|
|
115
|
+
console.log("\u{1F680} ~ setDefaultCheck ~ treeNodes:", treeNodes);
|
|
116
|
+
if (props.multiple) {
|
|
117
|
+
defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
|
|
118
|
+
defaultCheck.value.name = (_h = treeNodes == null ? void 0 : treeNodes.names) == null ? void 0 : _h.toString();
|
|
119
|
+
defaultCheck.value.enterpriseId = (_i = treeNodes == null ? void 0 : treeNodes.ids) == null ? void 0 : _i.toString();
|
|
120
|
+
(_j = treeRef.value) == null ? void 0 : _j.setCheckedKeys(treeNodes == null ? void 0 : treeNodes.ids, true);
|
|
121
|
+
} else {
|
|
122
|
+
const firstNode = treeData.value[0];
|
|
123
|
+
defaultCheck.value.name = (firstNode == null ? void 0 : firstNode.enterpriseName) || "";
|
|
124
|
+
defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;
|
|
125
|
+
defaultCheck.value.enterpriseId = (firstNode == null ? void 0 : firstNode.id) || null;
|
|
126
|
+
(_k = treeRef.value) == null ? void 0 : _k.setCheckedKeys([firstNode == null ? void 0 : firstNode.id].filter(Boolean), true);
|
|
127
|
+
}
|
|
438
128
|
await handleCheckChange();
|
|
439
129
|
handleVisibleChange(false);
|
|
440
130
|
}
|
|
@@ -466,6 +156,41 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
466
156
|
return enterprise;
|
|
467
157
|
}
|
|
468
158
|
__name(findEnterprise, "findEnterprise");
|
|
159
|
+
function getFirstTenantId(tree) {
|
|
160
|
+
for (let i = 0; i < tree.length; i++) {
|
|
161
|
+
if (tree[i].tenantId) {
|
|
162
|
+
return tree[i].tenantId;
|
|
163
|
+
}
|
|
164
|
+
if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {
|
|
165
|
+
const tenantId = getFirstTenantId(tree[i][CHILDREN_KEY]);
|
|
166
|
+
if (tenantId) {
|
|
167
|
+
return tenantId;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
__name(getFirstTenantId, "getFirstTenantId");
|
|
174
|
+
function collectTreeNodes(tree) {
|
|
175
|
+
const result = { names: [], ids: [] };
|
|
176
|
+
function traverse(nodes) {
|
|
177
|
+
for (const node of nodes) {
|
|
178
|
+
if (node.enterpriseName) {
|
|
179
|
+
result.names.push(node.enterpriseName);
|
|
180
|
+
}
|
|
181
|
+
if (node.id) {
|
|
182
|
+
result.ids.push(node.id);
|
|
183
|
+
}
|
|
184
|
+
if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length) {
|
|
185
|
+
traverse(node[CHILDREN_KEY]);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
__name(traverse, "traverse");
|
|
190
|
+
traverse(tree);
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
__name(collectTreeNodes, "collectTreeNodes");
|
|
469
194
|
async function handleCheckChange() {
|
|
470
195
|
var _a2;
|
|
471
196
|
await vue.nextTick();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-enterprise.vue2.js","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ElInput, ElSelect, ElTreeV2 } from \"element-plus\";\nimport {\n inject,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n useId,\n watch,\n} from \"vue\";\nimport { SERVER_CONFIG, SITE_UNIT_STORE, USER_INFO } from \"../../../utils\";\nimport {\n TenantEnterpriseEmits,\n TenantEnterpriseProps,\n} from \"./tenant-enterprise\";\nimport TreeLine from \"./tree-line\";\n\ndefineOptions({\n name: \"ITenantEnterprise\",\n});\n\nconst props = defineProps(TenantEnterpriseProps);\nconst emits = defineEmits(TenantEnterpriseEmits);\n\nconst simpleModeBaseInfo = ref<any>({});\nconst systemConfig = props?.action?.serverConfig || inject(SERVER_CONFIG);\nconst isSimple = systemConfig?.menuMode === \"simple\";\nconst tenantStore = props?.action?.tenantStore || inject(SITE_UNIT_STORE);\nconst userStore = props?.action?.user || inject(USER_INFO);\n\nconst CHILDREN_KEY = \"enterpriseTreeVoList\";\nconst NODE_KEY = \"id\";\n\nconst modelValue = ref();\nconst loading = ref(false);\nconst treeRef = shallowRef();\nconst treeContainerId = useId();\nconst selectRef = shallowRef();\nconst searchValue = ref(\"\");\nconst treeData = ref<any[]>([]);\n// 默认选中\n// 1、选中用户当前单位站点及其子节点;\n// 2、simple模式下,默认选中接收到的单位站点(大屏那边目前都是单选)\nconst defaultCheck = ref<Record<string, any>>({\n enterpriseId: null,\n tenantId: null,\n name: null,\n});\nlet cacheChangeKeys: any[] = [];\n\nonMounted(async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n});\n\nwatch(\n () => tenantStore?.currentTenantId,\n async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n },\n);\n\nwindow.microApp?.addDataListener((val: any) => {\n // 只在 simple 模式下运行\n // simple 模式下不显示单位选择框,所以无需更新视图,只需要触发emits.change,让组件调用者知道单位发生了变更即可。\n if (isSimple && val) {\n const obj = {\n name: val.enterpriseName,\n enterpriseId: val.enterpriseId,\n tenantId: val.tenantId,\n };\n emits(\"change\", {\n arr: [obj],\n obj,\n });\n }\n}, true);\n\n/**\n * 获取租户下的所有单位树\n */\nasync function GetTenantEnterpriseTree(): Promise<any[]> {\n if (props.isOnDuty) {\n return [\n {\n id: 23,\n enterpriseName: \"特致珈\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 0,\n tenantId: 32,\n condition: null,\n latLud: null,\n enterpriseTreeVoList: [\n {\n id: 3377298,\n enterpriseName: \"特致珈子单位\",\n enterpriseNameShort: null,\n enterpriseLogoImage: \"\",\n sort: null,\n parentId: 23,\n tenantId: 32,\n condition: \"0\",\n latLud: \"113.015141,28.23635\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 3152351,\n enterpriseName: \"数据中台流程测试单位\",\n enterpriseNameShort: \"string\",\n enterpriseLogoImage: null,\n sort: 0,\n parentId: 23,\n tenantId: 32,\n condition: \"0\",\n latLud: null,\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 3171158,\n enterpriseName: \"函谷关\",\n enterpriseNameShort: null,\n enterpriseLogoImage: \"\",\n sort: null,\n parentId: 23,\n tenantId: 32,\n condition: \"0\",\n latLud: \"110.928567,34.636828\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 3168952,\n enterpriseName: \"雁门关\",\n enterpriseNameShort: null,\n enterpriseLogoImage: \"\",\n sort: null,\n parentId: 23,\n tenantId: 32,\n condition: \"0\",\n latLud: \"112.91643,28.23202\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 3153517,\n enterpriseName: \"批量导入单位测试单位\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 23,\n tenantId: 32,\n condition: \"0\",\n latLud: \"100,60\",\n enterpriseTreeVoList: [\n {\n id: 3168546,\n enterpriseName: \"批量导入单位测试单位06\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 3153517,\n tenantId: 32,\n condition: \"0\",\n latLud: \"112.931795,28.233940\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 3168521,\n enterpriseName: \"批量导入单位测试单位04\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 3153517,\n tenantId: 32,\n condition: \"0\",\n latLud: \"112.931796,28.233940\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 3168496,\n enterpriseName: \"批量导入单位测试单位03\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 3153517,\n tenantId: 32,\n condition: \"0\",\n latLud: \"112.931797,28.233940\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n ],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 24703,\n enterpriseName: \"测试单位4\",\n enterpriseNameShort: \"\",\n enterpriseLogoImage: \"\",\n sort: null,\n parentId: 23,\n tenantId: 32,\n condition: \"0\",\n latLud: \"106.633906,28.583602\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 4171794,\n enterpriseName: \"重庆万州久久养老院\",\n enterpriseNameShort: \"\",\n enterpriseLogoImage: \"\",\n sort: null,\n parentId: 23,\n tenantId: 32,\n condition: \"1\",\n latLud: \"108.38312,30.806462\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n ],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 92218,\n enterpriseName: \"北京总部\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 346801,\n tenantId: 92216,\n condition: null,\n latLud: null,\n enterpriseTreeVoList: [\n {\n id: 92221,\n enterpriseName: \"华天总店\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 92218,\n tenantId: 92216,\n condition: \"0\",\n latLud: \"112.998684,28.191206\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 92220,\n enterpriseName: \"北京潇湘华天\",\n enterpriseNameShort: \"单位简称\",\n enterpriseLogoImage: \"\",\n sort: null,\n parentId: 92218,\n tenantId: 92216,\n condition: \"0\",\n latLud: \"112.986417,28.19887\",\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n ],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n {\n id: 4147992,\n enterpriseName: \"雅居乐花园\",\n enterpriseNameShort: null,\n enterpriseLogoImage: null,\n sort: null,\n parentId: 4147971,\n tenantId: 4147420,\n condition: null,\n latLud: null,\n enterpriseTreeVoList: [],\n fileNum: 0,\n auth: false,\n imgUrl: null,\n dutyName: null,\n dutyPhone: null,\n enterpriseStr: null,\n tenantTreeVoList: null,\n deptList: null,\n type: null,\n },\n ];\n return (await tenantStore?.getTenantListByEnterpriseId()) || [];\n } else {\n return (await tenantStore?.getEnterprise()) || [];\n }\n}\n\n/**\n * 设置默认选中\n */\nasync function setDefaultCheck() {\n await clearChecked();\n // 当前用户站点是否在当前站点树中\n // 在:默认选中当前\n defaultCheck.value.enterpriseId =\n simpleModeBaseInfo?.value?.enterpriseId ??\n userStore?.userInfo.tenantEnterpriseId;\n defaultCheck.value.tenantId =\n simpleModeBaseInfo?.value?.tenantId ?? userStore?.userInfo.tenantId;\n defaultCheck.value.name =\n simpleModeBaseInfo?.value?.enterpriseName ??\n userStore?.userInfo.enterpriseName;\n // 不在:选中第一项\n if (\n String(tenantStore?.getCurrentTenantId) !==\n String(userStore?.userInfo.tenantId)\n ) {\n if (treeData.value.length > 0) {\n console.log(\"非当前用户所在站点\");\n defaultCheck.value.name = treeData.value[0].enterpriseName;\n defaultCheck.value.tenantId = treeData.value[0].tenantId;\n defaultCheck.value.enterpriseId = treeData.value[0].id;\n }\n }\n\n // 选中的单位节点\n const current = findEnterprise(\n defaultCheck.value.enterpriseId,\n treeData.value,\n );\n if (current) {\n treeRef.value?.setCheckedKeys([current.id], true);\n if (props.defaultMode === \"all-child\") {\n recursionSetChecked(current, true);\n }\n await handleCheckChange();\n handleVisibleChange(false);\n } else {\n console.error(\"未找到单位!\", defaultCheck.value.enterpriseId);\n }\n if (props.isOnDuty) {\n defaultCheck.value.name = treeData.value[0].enterpriseName;\n defaultCheck.value.tenantId = treeData.value[0].tenantId;\n defaultCheck.value.enterpriseId = treeData.value[0].id;\n treeRef.value?.setCheckedKeys([treeData.value[0].id], true);\n await handleCheckChange();\n handleVisibleChange(false);\n }\n}\n\n/**\n * 清空所有选中\n */\nasync function clearChecked() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (checkedList.length > 0) {\n treeRef.value?.setCheckedKeys(checkedList, false);\n }\n}\n\n/**\n * 根据单位ID在tree中查找单位\n */\nfunction findEnterprise(enterpriseId: number, tree: any[]): any {\n let enterprise = null;\n for (let i = 0; i < tree.length; i++) {\n if (tree[i].id === enterpriseId) {\n enterprise = tree[i];\n break;\n }\n if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {\n enterprise = findEnterprise(enterpriseId, tree[i][CHILDREN_KEY]);\n if (enterprise) {\n break;\n }\n }\n }\n return enterprise;\n}\n/**\n * 节点选中状态变化\n */\nasync function handleCheckChange() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedNodes(false) || [];\n const val = checkedList.map(\n (item: any) => item.enterpriseName || item.tenantName,\n );\n modelValue.value = props.multiple ? val : val[0];\n if (!props.multiple) {\n // 单选时,选中之后就隐藏下拉框\n selectRef.value.blur();\n }\n}\n\n/**\n * el-select 面板 显示、隐藏\n */\nfunction handleVisibleChange(visible: boolean) {\n if (!visible) {\n const diff = diffChecked();\n if (!diff) {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n if (checkedList.length === 0) {\n setDefaultCheck();\n } else {\n const arrObj: Record<string, any[]> = {\n name: [],\n enterpriseId: [],\n tenantId: [],\n };\n const arr = checkedList.map((item: any) => {\n arrObj.name.push(item.enterpriseName || item.tenantName);\n arrObj.enterpriseId.push(item.id);\n if (!arrObj.tenantId.includes(item.tenantId)) {\n arrObj.tenantId.push(item.tenantId);\n }\n return {\n name: item.enterpriseName || item.tenantName,\n enterpriseId: item.id,\n tenantId: item.tenantId || item.id,\n };\n });\n emits(\"change\", {\n arr,\n obj: {\n name: arrObj.name.join(\",\"),\n enterpriseId: arrObj.enterpriseId.join(\",\"),\n tenantId: arrObj.tenantId.join(\",\"),\n },\n });\n }\n }\n } else {\n // 重置过滤\n searchValue.value = \"\";\n handleSearch();\n }\n}\n\n/**\n * 比较选中节点是否发生变化\n */\nfunction diffChecked() {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n const checkedKeys = checkedList\n .map((item: any) => item[NODE_KEY])\n .filter(Boolean);\n // 比较 checkedKeys 和 cacheChangeKeys\n const diff = diffArr(checkedKeys, cacheChangeKeys);\n cacheChangeKeys = checkedKeys;\n return diff;\n}\n\n/**\n * 比较两个数组是否相等\n * 数组下标不影响结果,即 [1,2] 等于 [2,1] 返回true\n */\nfunction diffArr(arr1: number[], arr2: number[]): boolean {\n if (arr1.length !== arr2.length) {\n return false;\n }\n const sortedArr1 = [...arr1].sort();\n const sortedArr2 = [...arr2].sort();\n for (let i = 0; i < sortedArr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * 触发过滤\n */\nfunction handleSearch() {\n treeRef.value?.filter(searchValue.value);\n if (!searchValue.value) {\n // 如果过滤为空,则展开默认选中的节点\n setDefaultExpanded();\n }\n // 实现搜索高亮\n highlightNodes(treeData.value, searchValue.value);\n}\n\n/**\n * 高亮节点标签\n * @param nodes - 节点数组\n * @param query - 搜索关键词\n */\nfunction highlightNodes(nodes: any[], query: string) {\n nodes.forEach((node: any) => {\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n highlightNodes(node[CHILDREN_KEY], query);\n }\n if (query && (node.enterpriseName || node.tenantName)) {\n const label = node.enterpriseName || node.tenantName;\n const regex = new RegExp(`(${query})`, \"gi\");\n node.label = label.replace(regex, '<span class=\"highlight\">$1</span>');\n } else {\n // 如果没有搜索关键词,则恢复节点标签\n node.label = node.enterpriseName || node.tenantName;\n }\n });\n}\n\n/**\n * 点击checkbox选择框\n */\nconst handleCheck = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n const isChecked = checkedList.includes(data[NODE_KEY]);\n if (props.multiple) {\n // 多选\n recursionSetChecked(data, isChecked);\n } else {\n // 单选\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n};\n\n/**\n * 递归设置选中/取消选中\n * @param data\n * @param isChecked\n */\nfunction recursionSetChecked(data: any, isChecked: boolean) {\n if (data[CHILDREN_KEY] && data[CHILDREN_KEY].length > 0) {\n // 选中/取消子节点\n data[CHILDREN_KEY].forEach((item: any) => {\n treeRef.value?.setChecked(item[NODE_KEY], isChecked);\n recursionSetChecked(item, isChecked);\n });\n }\n}\n\n/**\n * 点击树节点\n */\nconst handleNodeClick = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (props.multiple) {\n const isChecked = checkedList.includes(data[NODE_KEY]);\n treeRef.value?.setChecked(data[NODE_KEY], !isChecked);\n } else {\n // 单选\n treeRef.value?.setChecked(data[NODE_KEY], true);\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n await handleCheckChange();\n};\n\n/**\n * 节点过滤\n */\nconst filterMethod = (query: string, node: any) => {\n const label = node?.enterpriseName || node?.tenantName;\n return new RegExp(query, \"i\").test(label);\n};\n\n/**\n * 根据当前选中节点,设置展开的节点\n */\nfunction setDefaultExpanded() {\n const checkedKeys = treeRef.value?.getCheckedKeys() || [];\n if (checkedKeys.length === 0) return;\n // 1、调用 findParentEnterprise 查找父节点数组\n // 2、过滤掉无效数组,最上层的节点找不到父节点会返回null\n // 3、展开二维数组\n // 4、得到 单位ID 数组\n const expandedKeys = checkedKeys\n .map((item: any) => {\n return findParentEnterprise(item, treeData.value);\n })\n .filter(Boolean)\n .flat()\n .map((item: any) => item[NODE_KEY]);\n treeRef.value?.setExpandedKeys([...checkedKeys, ...expandedKeys]);\n\n if (treeRef.value && treeRef.value?.scrollTo) {\n const top = getNodeTop(checkedKeys[0]);\n treeRef.value.scrollTo(top);\n }\n}\n\n/**\n * 根据单位ID在tree中查找父级单位\n * @param enterpriseId - 要查找的单位ID\n * @param tree - 当前树数据\n * @returns {Array|null} - 返回从根到子的父级单位数组,未找到则返回 null\n */\nfunction findParentEnterprise(enterpriseId: number, tree: any[]): any[] | null {\n const traverse = (node: any, path: any[], targetId: number): any[] | null => {\n // 如果当前节点是目标节点,则返回当前路径(不包含自己)\n if (node.id === targetId) {\n return path.length > 0 ? [...path] : null;\n }\n\n // 如果有子节点,继续递归查找\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n for (let i = 0; i < node[CHILDREN_KEY].length; i++) {\n const result = traverse(\n node[CHILDREN_KEY][i],\n [...path, node],\n targetId,\n );\n if (result) {\n return result;\n }\n }\n }\n\n return null;\n };\n\n // 遍历整个树,尝试在每个顶级节点下查找\n for (let i = 0; i < tree.length; i++) {\n const result = traverse(tree[i], [], enterpriseId);\n if (result) {\n return result;\n }\n }\n\n return null;\n}\n\n/**\n * 根据选中的key值,获取到节点离顶端的距离\n * @param key\n */\nfunction getNodeTop(key: number | string) {\n // 节点高度\n const LINE_HEIGHT = 32;\n const node = treeRef.value?.getNode(key);\n const level = node.level;\n let top = 0;\n let _node = node;\n for (let i = 1; i < level; i++) {\n const children = _node?.parent?.children || [];\n const index = children.findIndex((item: any) => item.key === _node.key);\n top += index * LINE_HEIGHT;\n _node = _node.parent;\n }\n return top;\n}\n// todo element-plus 需升级为 2.9.0+\n// @ts-ignore\nconst nodeClass = (data: any, node: any) => {\n if (node.children && node.children?.length > 0) {\n return \"\";\n }\n return \"tenant-e-empty-node\";\n};\n</script>\n\n<template>\n <div v-show=\"!isSimple\" class=\"t-tenant-enterprise\">\n <label v-if=\"showLabel\" class=\"t-tenant-enterprise__label\">{{\n label\n }}</label>\n <ElSelect\n ref=\"selectRef\"\n v-model=\"modelValue\"\n :multiple=\"multiple\"\n collapse-tags\n :clearable=\"false\"\n style=\"width: 240px\"\n placement=\"bottom-end\"\n :popper-class=\"`tenant-enterprise-popper ${popperClass}`\"\n @visible-change=\"handleVisibleChange\"\n >\n <template #empty>\n <div class=\"t-tenant-enterprise__search\">\n <ElInput\n v-model=\"searchValue\"\n placeholder=\"输入关键词,按Enter键搜索...\"\n clearable\n maxlength=\"30\"\n @change=\"handleSearch\"\n />\n </div>\n <div :id=\"treeContainerId\" v-loading=\"loading\" class=\"p-2\">\n <ElTreeV2\n ref=\"treeRef\"\n :height=\"300\"\n class=\"tenant-enterprise-tree\"\n :class=\"{\n 'tenant-enterprise-tree__only': !multiple,\n }\"\n :data=\"treeData\"\n :props=\"{\n children: CHILDREN_KEY,\n class: nodeClass,\n }\"\n highlight-current\n :expand-on-click-node=\"false\"\n check-on-click-node\n :default-expanded-keys=\"[]\"\n show-checkbox\n check-strictly\n :default-checked-keys=\"[]\"\n :filter-method=\"filterMethod\"\n :indent=\"30\"\n :item-size=\"32\"\n :node-key=\"NODE_KEY\"\n @check=\"handleCheck\"\n @check-change=\"handleCheckChange\"\n >\n <template #default=\"{ node }\">\n <TreeLine\n :node=\"node\"\n show-label-line\n @click.stop=\"handleNodeClick(node.data)\"\n >\n <template #node-label>\n <span\n :title=\"node.data?.enterpriseName || node?.data.tenantName\"\n v-html=\"\n node.data?.label ||\n node.data?.enterpriseName ||\n node?.data.tenantName\n \"\n />\n </template>\n </TreeLine>\n </template>\n </ElTreeV2>\n </div>\n </template>\n </ElSelect>\n </div>\n</template>\n"],"names":["ref","inject","SERVER_CONFIG","SITE_UNIT_STORE","USER_INFO","shallowRef","useId","onMounted","watch","_b","_a","_d","_c","nextTick","_withDirectives","_openBlock","_createElementBlock","showLabel","_toDisplayString","label","_createVNode","_unref","ElSelect","multiple","popperClass","_createElementVNode","ElInput","ElTreeV2","_withCtx","TreeLine","_withModifiers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tenant-enterprise.vue2.js","sources":["../../../../../../../packages/components/tenant-enterprise/src/tenant-enterprise.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ElInput, ElSelect, ElTreeV2 } from \"element-plus\";\nimport {\n inject,\n nextTick,\n onMounted,\n ref,\n shallowRef,\n useId,\n watch,\n} from \"vue\";\nimport { SERVER_CONFIG, SITE_UNIT_STORE, USER_INFO } from \"../../../utils\";\nimport {\n TenantEnterpriseEmits,\n TenantEnterpriseProps,\n} from \"./tenant-enterprise\";\nimport TreeLine from \"./tree-line\";\n\ndefineOptions({\n name: \"ITenantEnterprise\",\n});\n\nconst props = defineProps(TenantEnterpriseProps);\nconst emits = defineEmits(TenantEnterpriseEmits);\n\nconst simpleModeBaseInfo = ref<any>({});\nconst systemConfig = props?.action?.serverConfig || inject(SERVER_CONFIG);\nconst isSimple = systemConfig?.menuMode === \"simple\";\nconst tenantStore = props?.action?.tenantStore || inject(SITE_UNIT_STORE);\nconst userStore = props?.action?.user || inject(USER_INFO);\n\nconst CHILDREN_KEY = \"enterpriseTreeVoList\";\nconst NODE_KEY = \"id\";\n\nconst modelValue = ref();\nconst loading = ref(false);\nconst treeRef = shallowRef();\nconst treeContainerId = useId();\nconst selectRef = shallowRef();\nconst searchValue = ref(\"\");\nconst treeData = ref<any[]>([]);\n// 默认选中\n// 1、选中用户当前单位站点及其子节点;\n// 2、simple模式下,默认选中接收到的单位站点(大屏那边目前都是单选)\nconst defaultCheck = ref<Record<string, any>>({\n enterpriseId: null,\n tenantId: null,\n name: null,\n});\nlet cacheChangeKeys: any[] = [];\n\nonMounted(async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n});\n\nwatch(\n () => tenantStore?.currentTenantId,\n async () => {\n treeData.value = await GetTenantEnterpriseTree();\n await setDefaultCheck();\n },\n);\n\nwindow.microApp?.addDataListener((val: any) => {\n // 只在 simple 模式下运行\n // simple 模式下不显示单位选择框,所以无需更新视图,只需要触发emits.change,让组件调用者知道单位发生了变更即可。\n if (isSimple && val) {\n const obj = {\n name: val.enterpriseName,\n enterpriseId: val.enterpriseId,\n tenantId: val.tenantId,\n };\n emits(\"change\", {\n arr: [obj],\n obj,\n });\n }\n}, true);\n\n/**\n * 获取租户下的所有单位树\n */\nasync function GetTenantEnterpriseTree(): Promise<any[]> {\n if (props.isOnDuty) {\n return (await tenantStore?.getTenantListByEnterpriseId()) || [];\n } else {\n return (await tenantStore?.getEnterprise()) || [];\n }\n}\n\n/**\n * 设置默认选中\n */\nasync function setDefaultCheck() {\n await clearChecked();\n // 当前用户站点是否在当前站点树中\n // 在:默认选中当前\n defaultCheck.value.enterpriseId =\n simpleModeBaseInfo?.value?.enterpriseId ??\n userStore?.userInfo.tenantEnterpriseId;\n defaultCheck.value.tenantId =\n simpleModeBaseInfo?.value?.tenantId ?? userStore?.userInfo.tenantId;\n defaultCheck.value.name =\n simpleModeBaseInfo?.value?.enterpriseName ??\n userStore?.userInfo.enterpriseName;\n // 不在:选中第一项\n if (\n String(tenantStore?.getCurrentTenantId) !==\n String(userStore?.userInfo.tenantId)\n ) {\n if (treeData.value.length > 0) {\n console.log(\"非当前用户所在站点\");\n defaultCheck.value.name = treeData.value[0].enterpriseName;\n defaultCheck.value.tenantId = treeData.value[0].tenantId;\n defaultCheck.value.enterpriseId = treeData.value[0].id;\n }\n }\n\n // 选中的单位节点\n const current = findEnterprise(\n defaultCheck.value.enterpriseId,\n treeData.value,\n );\n if (current) {\n treeRef.value?.setCheckedKeys([current.id], true);\n if (props.defaultMode === \"all-child\") {\n recursionSetChecked(current, true);\n }\n await handleCheckChange();\n handleVisibleChange(false);\n } else {\n console.error(\"未找到单位!\", defaultCheck.value.enterpriseId);\n }\n if (props.isOnDuty) {\n const treeNodes = collectTreeNodes(treeData.value);\n console.log(\"🚀 ~ setDefaultCheck ~ treeNodes:\", treeNodes);\n if (props.multiple) {\n defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;\n defaultCheck.value.name = treeNodes?.names?.toString();\n defaultCheck.value.enterpriseId = treeNodes?.ids?.toString();\n treeRef.value?.setCheckedKeys(treeNodes?.ids, true);\n } else {\n const firstNode = treeData.value[0];\n defaultCheck.value.name = firstNode?.enterpriseName || \"\";\n defaultCheck.value.tenantId = getFirstTenantId(treeData.value) || null;\n defaultCheck.value.enterpriseId = firstNode?.id || null;\n treeRef.value?.setCheckedKeys([firstNode?.id].filter(Boolean), true);\n }\n\n await handleCheckChange();\n handleVisibleChange(false);\n }\n}\n\n/**\n * 清空所有选中\n */\nasync function clearChecked() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (checkedList.length > 0) {\n treeRef.value?.setCheckedKeys(checkedList, false);\n }\n}\n\n/**\n * 根据单位ID在tree中查找单位\n */\nfunction findEnterprise(enterpriseId: number, tree: any[]): any {\n let enterprise = null;\n for (let i = 0; i < tree.length; i++) {\n if (tree[i].id === enterpriseId) {\n enterprise = tree[i];\n break;\n }\n if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {\n enterprise = findEnterprise(enterpriseId, tree[i][CHILDREN_KEY]);\n if (enterprise) {\n break;\n }\n }\n }\n return enterprise;\n}\n\n/**\n * 树形遍历获取第一个tenantId\n */\nfunction getFirstTenantId(tree: any[]): number | null {\n for (let i = 0; i < tree.length; i++) {\n if (tree[i].tenantId) {\n return tree[i].tenantId;\n }\n if (tree[i][CHILDREN_KEY] && tree[i][CHILDREN_KEY].length) {\n const tenantId = getFirstTenantId(tree[i][CHILDREN_KEY]);\n if (tenantId) {\n return tenantId;\n }\n }\n }\n return null;\n}\n\n/**\n * 树形遍历收集所有节点的名称和ID\n */\nfunction collectTreeNodes(tree: any[]): { names: string[]; ids: number[] } {\n const result: { names: string[]; ids: number[] } = { names: [], ids: [] };\n\n function traverse(nodes: any[]) {\n for (const node of nodes) {\n if (node.enterpriseName) {\n result.names.push(node.enterpriseName);\n }\n if (node.id) {\n result.ids.push(node.id);\n }\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length) {\n traverse(node[CHILDREN_KEY]);\n }\n }\n }\n\n traverse(tree);\n return result;\n}\n/**\n * 节点选中状态变化\n */\nasync function handleCheckChange() {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedNodes(false) || [];\n const val = checkedList.map(\n (item: any) => item.enterpriseName || item.tenantName,\n );\n modelValue.value = props.multiple ? val : val[0];\n if (!props.multiple) {\n // 单选时,选中之后就隐藏下拉框\n selectRef.value.blur();\n }\n}\n\n/**\n * el-select 面板 显示、隐藏\n */\nfunction handleVisibleChange(visible: boolean) {\n if (!visible) {\n const diff = diffChecked();\n if (!diff) {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n if (checkedList.length === 0) {\n setDefaultCheck();\n } else {\n const arrObj: Record<string, any[]> = {\n name: [],\n enterpriseId: [],\n tenantId: [],\n };\n const arr = checkedList.map((item: any) => {\n arrObj.name.push(item.enterpriseName || item.tenantName);\n arrObj.enterpriseId.push(item.id);\n if (!arrObj.tenantId.includes(item.tenantId)) {\n arrObj.tenantId.push(item.tenantId);\n }\n return {\n name: item.enterpriseName || item.tenantName,\n enterpriseId: item.id,\n tenantId: item.tenantId || item.id,\n };\n });\n emits(\"change\", {\n arr,\n obj: {\n name: arrObj.name.join(\",\"),\n enterpriseId: arrObj.enterpriseId.join(\",\"),\n tenantId: arrObj.tenantId.join(\",\"),\n },\n });\n }\n }\n } else {\n // 重置过滤\n searchValue.value = \"\";\n handleSearch();\n }\n}\n\n/**\n * 比较选中节点是否发生变化\n */\nfunction diffChecked() {\n const checkedList = treeRef.value?.getCheckedNodes() || [];\n const checkedKeys = checkedList\n .map((item: any) => item[NODE_KEY])\n .filter(Boolean);\n // 比较 checkedKeys 和 cacheChangeKeys\n const diff = diffArr(checkedKeys, cacheChangeKeys);\n cacheChangeKeys = checkedKeys;\n return diff;\n}\n\n/**\n * 比较两个数组是否相等\n * 数组下标不影响结果,即 [1,2] 等于 [2,1] 返回true\n */\nfunction diffArr(arr1: number[], arr2: number[]): boolean {\n if (arr1.length !== arr2.length) {\n return false;\n }\n const sortedArr1 = [...arr1].sort();\n const sortedArr2 = [...arr2].sort();\n for (let i = 0; i < sortedArr1.length; i++) {\n if (sortedArr1[i] !== sortedArr2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * 触发过滤\n */\nfunction handleSearch() {\n treeRef.value?.filter(searchValue.value);\n if (!searchValue.value) {\n // 如果过滤为空,则展开默认选中的节点\n setDefaultExpanded();\n }\n // 实现搜索高亮\n highlightNodes(treeData.value, searchValue.value);\n}\n\n/**\n * 高亮节点标签\n * @param nodes - 节点数组\n * @param query - 搜索关键词\n */\nfunction highlightNodes(nodes: any[], query: string) {\n nodes.forEach((node: any) => {\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n highlightNodes(node[CHILDREN_KEY], query);\n }\n if (query && (node.enterpriseName || node.tenantName)) {\n const label = node.enterpriseName || node.tenantName;\n const regex = new RegExp(`(${query})`, \"gi\");\n node.label = label.replace(regex, '<span class=\"highlight\">$1</span>');\n } else {\n // 如果没有搜索关键词,则恢复节点标签\n node.label = node.enterpriseName || node.tenantName;\n }\n });\n}\n\n/**\n * 点击checkbox选择框\n */\nconst handleCheck = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n const isChecked = checkedList.includes(data[NODE_KEY]);\n if (props.multiple) {\n // 多选\n recursionSetChecked(data, isChecked);\n } else {\n // 单选\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n};\n\n/**\n * 递归设置选中/取消选中\n * @param data\n * @param isChecked\n */\nfunction recursionSetChecked(data: any, isChecked: boolean) {\n if (data[CHILDREN_KEY] && data[CHILDREN_KEY].length > 0) {\n // 选中/取消子节点\n data[CHILDREN_KEY].forEach((item: any) => {\n treeRef.value?.setChecked(item[NODE_KEY], isChecked);\n recursionSetChecked(item, isChecked);\n });\n }\n}\n\n/**\n * 点击树节点\n */\nconst handleNodeClick = async (data: any) => {\n await nextTick();\n const checkedList = treeRef.value?.getCheckedKeys() || [];\n if (props.multiple) {\n const isChecked = checkedList.includes(data[NODE_KEY]);\n treeRef.value?.setChecked(data[NODE_KEY], !isChecked);\n } else {\n // 单选\n treeRef.value?.setChecked(data[NODE_KEY], true);\n // 取消其他选中\n checkedList.forEach((item: any) => {\n if (item !== data[NODE_KEY]) {\n treeRef.value?.setChecked(item, false);\n }\n });\n }\n await handleCheckChange();\n};\n\n/**\n * 节点过滤\n */\nconst filterMethod = (query: string, node: any) => {\n const label = node?.enterpriseName || node?.tenantName;\n return new RegExp(query, \"i\").test(label);\n};\n\n/**\n * 根据当前选中节点,设置展开的节点\n */\nfunction setDefaultExpanded() {\n const checkedKeys = treeRef.value?.getCheckedKeys() || [];\n if (checkedKeys.length === 0) return;\n // 1、调用 findParentEnterprise 查找父节点数组\n // 2、过滤掉无效数组,最上层的节点找不到父节点会返回null\n // 3、展开二维数组\n // 4、得到 单位ID 数组\n const expandedKeys = checkedKeys\n .map((item: any) => {\n return findParentEnterprise(item, treeData.value);\n })\n .filter(Boolean)\n .flat()\n .map((item: any) => item[NODE_KEY]);\n treeRef.value?.setExpandedKeys([...checkedKeys, ...expandedKeys]);\n\n if (treeRef.value && treeRef.value?.scrollTo) {\n const top = getNodeTop(checkedKeys[0]);\n treeRef.value.scrollTo(top);\n }\n}\n\n/**\n * 根据单位ID在tree中查找父级单位\n * @param enterpriseId - 要查找的单位ID\n * @param tree - 当前树数据\n * @returns {Array|null} - 返回从根到子的父级单位数组,未找到则返回 null\n */\nfunction findParentEnterprise(enterpriseId: number, tree: any[]): any[] | null {\n const traverse = (node: any, path: any[], targetId: number): any[] | null => {\n // 如果当前节点是目标节点,则返回当前路径(不包含自己)\n if (node.id === targetId) {\n return path.length > 0 ? [...path] : null;\n }\n\n // 如果有子节点,继续递归查找\n if (node[CHILDREN_KEY] && node[CHILDREN_KEY].length > 0) {\n for (let i = 0; i < node[CHILDREN_KEY].length; i++) {\n const result = traverse(\n node[CHILDREN_KEY][i],\n [...path, node],\n targetId,\n );\n if (result) {\n return result;\n }\n }\n }\n\n return null;\n };\n\n // 遍历整个树,尝试在每个顶级节点下查找\n for (let i = 0; i < tree.length; i++) {\n const result = traverse(tree[i], [], enterpriseId);\n if (result) {\n return result;\n }\n }\n\n return null;\n}\n\n/**\n * 根据选中的key值,获取到节点离顶端的距离\n * @param key\n */\nfunction getNodeTop(key: number | string) {\n // 节点高度\n const LINE_HEIGHT = 32;\n const node = treeRef.value?.getNode(key);\n const level = node.level;\n let top = 0;\n let _node = node;\n for (let i = 1; i < level; i++) {\n const children = _node?.parent?.children || [];\n const index = children.findIndex((item: any) => item.key === _node.key);\n top += index * LINE_HEIGHT;\n _node = _node.parent;\n }\n return top;\n}\n// todo element-plus 需升级为 2.9.0+\n// @ts-ignore\nconst nodeClass = (data: any, node: any) => {\n if (node.children && node.children?.length > 0) {\n return \"\";\n }\n return \"tenant-e-empty-node\";\n};\n</script>\n\n<template>\n <div v-show=\"!isSimple\" class=\"t-tenant-enterprise\">\n <label v-if=\"showLabel\" class=\"t-tenant-enterprise__label\">{{\n label\n }}</label>\n <ElSelect\n ref=\"selectRef\"\n v-model=\"modelValue\"\n :multiple=\"multiple\"\n collapse-tags\n :clearable=\"false\"\n style=\"width: 240px\"\n placement=\"bottom-end\"\n :popper-class=\"`tenant-enterprise-popper ${popperClass}`\"\n @visible-change=\"handleVisibleChange\"\n >\n <template #empty>\n <div class=\"t-tenant-enterprise__search\">\n <ElInput\n v-model=\"searchValue\"\n placeholder=\"输入关键词,按Enter键搜索...\"\n clearable\n maxlength=\"30\"\n @change=\"handleSearch\"\n />\n </div>\n <div :id=\"treeContainerId\" v-loading=\"loading\" class=\"p-2\">\n <ElTreeV2\n ref=\"treeRef\"\n :height=\"300\"\n class=\"tenant-enterprise-tree\"\n :class=\"{\n 'tenant-enterprise-tree__only': !multiple,\n }\"\n :data=\"treeData\"\n :props=\"{\n children: CHILDREN_KEY,\n class: nodeClass,\n }\"\n highlight-current\n :expand-on-click-node=\"false\"\n check-on-click-node\n :default-expanded-keys=\"[]\"\n show-checkbox\n check-strictly\n :default-checked-keys=\"[]\"\n :filter-method=\"filterMethod\"\n :indent=\"30\"\n :item-size=\"32\"\n :node-key=\"NODE_KEY\"\n @check=\"handleCheck\"\n @check-change=\"handleCheckChange\"\n >\n <template #default=\"{ node }\">\n <TreeLine\n :node=\"node\"\n show-label-line\n @click.stop=\"handleNodeClick(node.data)\"\n >\n <template #node-label>\n <span\n :title=\"node.data?.enterpriseName || node?.data.tenantName\"\n v-html=\"\n node.data?.label ||\n node.data?.enterpriseName ||\n node?.data.tenantName\n \"\n />\n </template>\n </TreeLine>\n </template>\n </ElTreeV2>\n </div>\n </template>\n </ElSelect>\n </div>\n</template>\n"],"names":["ref","inject","SERVER_CONFIG","SITE_UNIT_STORE","USER_INFO","shallowRef","useId","onMounted","watch","_b","_a","_d","_c","nextTick","_withDirectives","_openBlock","_createElementBlock","showLabel","_toDisplayString","label","_createVNode","_unref","ElSelect","multiple","popperClass","_createElementVNode","ElInput","ElTreeV2","_withCtx","TreeLine","_withModifiers"],"mappings":"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"}
|