@ibiz-template/vue3-components 0.6.0-alpha.4 → 0.6.0
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/dist/index-UyccsQgR.js +4 -0
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/dist/{xlsx-util-HHmyYumg.js → xlsx-util-G9ywpMYa.js} +1 -1
- package/es/common/data-import2/data-import2.css +1 -1
- package/es/control/tree/index.d.ts +1 -0
- package/es/control/tree/tree.d.ts +1 -0
- package/es/control/tree/tree.mjs +7 -2
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.css +1 -1
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +6 -8
- package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.mjs +139 -48
- package/es/editor/data-picker/picker-editor.controller.mjs +9 -2
- package/es/view-engine/pickup-tree-view.engine.d.ts +15 -0
- package/es/view-engine/pickup-tree-view.engine.mjs +60 -3
- package/lib/common/data-import2/data-import2.css +1 -1
- package/lib/control/tree/tree.cjs +6 -1
- package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.cjs +138 -47
- package/lib/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.css +1 -1
- package/lib/editor/data-picker/picker-editor.controller.cjs +8 -1
- package/lib/view-engine/pickup-tree-view.engine.cjs +59 -2
- package/package.json +6 -6
- package/dist/index-wFXNmg_E.js +0 -4
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var vue = require('vue');
|
|
4
4
|
var vue3Util = require('@ibiz-template/vue3-util');
|
|
5
5
|
require('./ibiz-picker-select-view.css');
|
|
6
|
-
var ramda = require('ramda');
|
|
7
6
|
var runtime = require('@ibiz-template/runtime');
|
|
7
|
+
var ramda = require('ramda');
|
|
8
8
|
|
|
9
9
|
"use strict";
|
|
10
10
|
function _isSlot(s) {
|
|
@@ -32,9 +32,24 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
32
32
|
const queryValue = vue.ref("");
|
|
33
33
|
const visible = vue.ref(false);
|
|
34
34
|
const pickViewWidth = vue.ref("auto");
|
|
35
|
-
const context = vue.ref(
|
|
36
|
-
const params = vue.ref(
|
|
35
|
+
const context = vue.ref(c.context);
|
|
36
|
+
const params = vue.ref(c.params);
|
|
37
|
+
vue.watch(() => props.data, (newVal) => {
|
|
38
|
+
const {
|
|
39
|
+
context: tempContext,
|
|
40
|
+
params: tempParams
|
|
41
|
+
} = c.handlePublicParams(newVal, c.context, c.params);
|
|
42
|
+
Object.assign(context.value, tempContext);
|
|
43
|
+
Object.assign(params.value, tempParams);
|
|
44
|
+
}, {
|
|
45
|
+
immediate: true,
|
|
46
|
+
deep: true
|
|
47
|
+
});
|
|
37
48
|
const isEditable = vue.ref(false);
|
|
49
|
+
const multipleTempValue = vue.ref(null);
|
|
50
|
+
const multipleTempText = vue.ref(null);
|
|
51
|
+
const multipleObjs = vue.ref(null);
|
|
52
|
+
const showView = vue.ref(false);
|
|
38
53
|
const showFormDefaultContent = vue.computed(() => {
|
|
39
54
|
if (props.controlParams && props.controlParams.editmode === "hover") {
|
|
40
55
|
return true;
|
|
@@ -50,12 +65,6 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
50
65
|
}, 100);
|
|
51
66
|
}
|
|
52
67
|
};
|
|
53
|
-
const onInputChange = () => {
|
|
54
|
-
context.value = {
|
|
55
|
-
query: queryValue.value,
|
|
56
|
-
...context.value
|
|
57
|
-
};
|
|
58
|
-
};
|
|
59
68
|
const triggerMenu = (show) => {
|
|
60
69
|
if (props.disabled) {
|
|
61
70
|
return;
|
|
@@ -86,10 +95,30 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
86
95
|
params.value.selectedData = selectedData.value;
|
|
87
96
|
}
|
|
88
97
|
} else {
|
|
89
|
-
keySet.value = [];
|
|
90
98
|
const selectItems = [];
|
|
99
|
+
keySet.value = [];
|
|
100
|
+
items.value = [];
|
|
91
101
|
if (newVal) {
|
|
92
|
-
if (
|
|
102
|
+
if (c.model.valueType === "OBJECTS") {
|
|
103
|
+
newVal.forEach((item) => {
|
|
104
|
+
const _item = ramda.clone(item);
|
|
105
|
+
Object.assign(_item, {
|
|
106
|
+
[c.keyName]: item[c.objectIdField],
|
|
107
|
+
[c.textName]: item[c.objectNameField]
|
|
108
|
+
});
|
|
109
|
+
if (c.objectValueField) {
|
|
110
|
+
Object.assign(_item, {
|
|
111
|
+
...item[c.objectValueField]
|
|
112
|
+
});
|
|
113
|
+
delete _item[c.objectValueField];
|
|
114
|
+
}
|
|
115
|
+
if (_item[c.keyName]) {
|
|
116
|
+
items.value.push(_item);
|
|
117
|
+
keySet.value.push(_item[c.keyName]);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
selectItems.push(...newVal);
|
|
121
|
+
} else if (!props.data || !c.valueItem || !props.data[c.valueItem]) {
|
|
93
122
|
ibiz.log.error("\u503C\u9879\u5F02\u5E38");
|
|
94
123
|
} else {
|
|
95
124
|
const tempValue = props.data[c.valueItem].split(",");
|
|
@@ -100,7 +129,6 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
100
129
|
srfkey
|
|
101
130
|
});
|
|
102
131
|
});
|
|
103
|
-
items.value = [];
|
|
104
132
|
selectItems.forEach((item) => {
|
|
105
133
|
keySet.value.push(item.srfkey);
|
|
106
134
|
const index = items.value.findIndex((i) => Object.is(i.srfkey, item.srfkey));
|
|
@@ -114,10 +142,10 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
114
142
|
}
|
|
115
143
|
}
|
|
116
144
|
selectedData.value = selectItems;
|
|
117
|
-
|
|
145
|
+
multipleObjs.value = selectItems;
|
|
118
146
|
}
|
|
119
147
|
}, {
|
|
120
|
-
immediate:
|
|
148
|
+
immediate: true,
|
|
121
149
|
deep: true
|
|
122
150
|
});
|
|
123
151
|
vue.onMounted(() => {
|
|
@@ -137,9 +165,26 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
137
165
|
}
|
|
138
166
|
emit("change", null);
|
|
139
167
|
};
|
|
168
|
+
const onInputChange = (e) => {
|
|
169
|
+
if (!e) {
|
|
170
|
+
onClear();
|
|
171
|
+
}
|
|
172
|
+
};
|
|
140
173
|
const onViewDataChange = (event) => {
|
|
141
174
|
if (event.length === 0) {
|
|
142
|
-
|
|
175
|
+
if (singleSelect.value) {
|
|
176
|
+
onClear();
|
|
177
|
+
} else {
|
|
178
|
+
items.value = [];
|
|
179
|
+
if (c.model.valueType === "OBJECTS") {
|
|
180
|
+
multipleObjs.value = null;
|
|
181
|
+
} else {
|
|
182
|
+
if (c.valueItem) {
|
|
183
|
+
multipleTempValue.value = null;
|
|
184
|
+
}
|
|
185
|
+
multipleTempText.value = null;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
143
188
|
return;
|
|
144
189
|
}
|
|
145
190
|
if (singleSelect.value) {
|
|
@@ -154,6 +199,15 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
154
199
|
} else {
|
|
155
200
|
emit("change", tempText);
|
|
156
201
|
}
|
|
202
|
+
} else if (c.model.valueType === "OBJECTS") {
|
|
203
|
+
if (event && Array.isArray(event)) {
|
|
204
|
+
const objs = [];
|
|
205
|
+
event.forEach((item) => {
|
|
206
|
+
const obj = c.handleObjectParams(item);
|
|
207
|
+
objs.push(obj);
|
|
208
|
+
});
|
|
209
|
+
multipleObjs.value = objs;
|
|
210
|
+
}
|
|
157
211
|
} else {
|
|
158
212
|
let tempValue = "";
|
|
159
213
|
let tempText = "";
|
|
@@ -176,9 +230,9 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
176
230
|
tempValue = tempValue.substring(0, tempValue.length - 1);
|
|
177
231
|
tempText = tempText.substring(0, tempText.length - 1);
|
|
178
232
|
if (c.valueItem) {
|
|
179
|
-
|
|
233
|
+
multipleTempValue.value = tempValue;
|
|
180
234
|
}
|
|
181
|
-
|
|
235
|
+
multipleTempText.value = tempText;
|
|
182
236
|
}
|
|
183
237
|
};
|
|
184
238
|
const openLinkView = async (e) => {
|
|
@@ -198,20 +252,31 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
198
252
|
}
|
|
199
253
|
});
|
|
200
254
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
255
|
+
if (c.model.valueType === "OBJECTS") {
|
|
256
|
+
const objs = [];
|
|
257
|
+
val.forEach((item) => {
|
|
258
|
+
const obj = c.handleObjectParams(item);
|
|
259
|
+
objs.push(obj);
|
|
260
|
+
});
|
|
261
|
+
emit("change", objs);
|
|
262
|
+
} else {
|
|
263
|
+
let tempValue = "";
|
|
264
|
+
let tempText = "";
|
|
265
|
+
val.forEach((select) => {
|
|
266
|
+
const srfkey = select[c.keyName] ? select[c.keyName] : select.srfkey;
|
|
267
|
+
tempValue += "".concat(srfkey, ",");
|
|
268
|
+
const srfmajortext = select[c.textName] ? select[c.textName] : select.srfmajortext;
|
|
269
|
+
tempText += "".concat(srfmajortext, ",");
|
|
270
|
+
});
|
|
271
|
+
tempValue = tempValue.substring(0, tempValue.length - 1);
|
|
272
|
+
tempText = tempText.substring(0, tempText.length - 1);
|
|
273
|
+
if (c.valueItem) {
|
|
274
|
+
multipleTempValue.value = tempValue;
|
|
275
|
+
emit("change", tempValue, c.valueItem);
|
|
276
|
+
}
|
|
277
|
+
multipleTempText.value = tempText;
|
|
278
|
+
emit("change", tempText);
|
|
213
279
|
}
|
|
214
|
-
emit("change", tempText);
|
|
215
280
|
};
|
|
216
281
|
const remoteMethod = (e) => {
|
|
217
282
|
queryValue.value = e;
|
|
@@ -219,6 +284,9 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
219
284
|
const onSelectionChange = (event) => {
|
|
220
285
|
if (event.data) {
|
|
221
286
|
onViewDataChange(event.data);
|
|
287
|
+
if (singleSelect.value && editorRef.value) {
|
|
288
|
+
editorRef.value.handleClose();
|
|
289
|
+
}
|
|
222
290
|
}
|
|
223
291
|
};
|
|
224
292
|
const modal = new runtime.Modal({
|
|
@@ -245,8 +313,21 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
245
313
|
if (singleSelect.value) {
|
|
246
314
|
return queryValue.value;
|
|
247
315
|
}
|
|
248
|
-
return selectedData.value.map((item) => item.
|
|
316
|
+
return selectedData.value.map((item) => item[c.textName]).join(",");
|
|
249
317
|
});
|
|
318
|
+
const onVisibleChange = (e) => {
|
|
319
|
+
showView.value = e;
|
|
320
|
+
if (!e && !singleSelect.value) {
|
|
321
|
+
if (c.model.valueType === "OBJECTS") {
|
|
322
|
+
emit("change", multipleObjs.value);
|
|
323
|
+
} else {
|
|
324
|
+
if (c.valueItem) {
|
|
325
|
+
emit("change", multipleTempValue.value, c.valueItem);
|
|
326
|
+
}
|
|
327
|
+
emit("change", multipleTempText.value);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
};
|
|
250
331
|
return {
|
|
251
332
|
ns,
|
|
252
333
|
c,
|
|
@@ -274,7 +355,10 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
274
355
|
valueText,
|
|
275
356
|
isEditable,
|
|
276
357
|
setEditable,
|
|
277
|
-
showFormDefaultContent
|
|
358
|
+
showFormDefaultContent,
|
|
359
|
+
onVisibleChange,
|
|
360
|
+
showView,
|
|
361
|
+
selectedData
|
|
278
362
|
};
|
|
279
363
|
},
|
|
280
364
|
render() {
|
|
@@ -283,7 +367,8 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
283
367
|
"trigger": "click",
|
|
284
368
|
"teleported": false,
|
|
285
369
|
"class": this.ns.b("select"),
|
|
286
|
-
"popper-class": this.ns.b("popper")
|
|
370
|
+
"popper-class": this.ns.b("popper"),
|
|
371
|
+
"onVisibleChange": this.onVisibleChange
|
|
287
372
|
}, {
|
|
288
373
|
default: () => {
|
|
289
374
|
let _slot;
|
|
@@ -294,6 +379,7 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
294
379
|
"disabled": this.disabled,
|
|
295
380
|
"readonly": this.readonly,
|
|
296
381
|
"onChange": this.onInputChange,
|
|
382
|
+
"clearable": true,
|
|
297
383
|
"onFocus": (e) => {
|
|
298
384
|
this.onFocus(e);
|
|
299
385
|
},
|
|
@@ -304,13 +390,13 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
304
390
|
return [this.queryValue && !this.disabled && !this.readonly && vue.createVNode("ion-icon", {
|
|
305
391
|
"onClick": this.onClear,
|
|
306
392
|
"name": "clear"
|
|
307
|
-
}, null), this.c.model.linkAppViewId &&
|
|
393
|
+
}, null), this.c.model.linkAppViewId && vue.createVNode("ion-icon", {
|
|
308
394
|
"onClick": this.openLinkView,
|
|
309
395
|
"name": "link-arrow"
|
|
310
396
|
}, null)];
|
|
311
397
|
}
|
|
312
398
|
}) : vue.createVNode(vue.resolveComponent("el-select"), {
|
|
313
|
-
"popper-class": "select",
|
|
399
|
+
"popper-class": this.ns.b("select-popover"),
|
|
314
400
|
"model-value": this.keySet,
|
|
315
401
|
"placeholder": this.c.placeHolder ? this.c.placeHolder : " ",
|
|
316
402
|
"multiple": true,
|
|
@@ -335,19 +421,24 @@ const IBizPickerSelectView = /* @__PURE__ */ vue.defineComponent({
|
|
|
335
421
|
});
|
|
336
422
|
},
|
|
337
423
|
dropdown: () => {
|
|
424
|
+
if (!this.showView) {
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
338
427
|
const viewShell = vue.resolveComponent("IBizViewShell");
|
|
339
|
-
return
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
}
|
|
428
|
+
return this.c.pickupView && vue.h(viewShell, {
|
|
429
|
+
context: this.context,
|
|
430
|
+
params: this.params,
|
|
431
|
+
viewId: this.c.pickupView.id,
|
|
432
|
+
style: {
|
|
433
|
+
height: "100%",
|
|
434
|
+
width: this.pickViewWidth
|
|
435
|
+
},
|
|
436
|
+
state: {
|
|
437
|
+
singleSelect: this.singleSelect,
|
|
438
|
+
selectedData: this.selectedData
|
|
439
|
+
},
|
|
440
|
+
onSelectionChange: this.onSelectionChange,
|
|
441
|
+
modal: this.modal
|
|
351
442
|
});
|
|
352
443
|
}
|
|
353
444
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ibiz-picker-select-view{width:100%}.ibiz-picker-select-view .el-dropdown{width:100%}.ibiz-picker-select-view .el-select{width:100%}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper{width:100%;max-height:500px;overflow:auto}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .el-dropdown-menu{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-select{display:block}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content{display:flex;align-items:center;width:100%;height:var(--ibiz-editor-default-line-height);padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content .ibiz-picker-select-view-content-item{height:22px;padding:0 9px;margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:22px;color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-select{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-select{display:block}
|
|
1
|
+
.ibiz-picker-select-view{width:100%}.ibiz-picker-select-view .el-dropdown{width:100%}.ibiz-picker-select-view .el-select{width:100%}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper{width:100%;min-height:100px;max-height:500px;overflow:auto}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-popper.el-popper.el-dropdown__popper .el-scrollbar .el-dropdown__list .el-dropdown-menu{background:var(--ibiz-color-primary-text)}.ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default:hover .ibiz-picker-select-view-select{display:block}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content{display:flex;align-items:center;width:100%;height:var(--ibiz-editor-default-line-height);padding:var(--ibiz-form-item-hover-edit-padding);font-family:Arial,sans-serif;font-size:var(--ibiz-form-item-font-size);line-height:var(--ibiz-editor-default-line-height);color:var(--ibiz-form-item-text-color)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-form-default-content .ibiz-picker-select-view-content-item{height:22px;padding:0 9px;margin:2px 6px 2px 0;font-size:var(--ibiz-font-size-small);line-height:22px;color:var(--ibiz-editor-default-text-color);background-color:var(--ibiz-color-fill-0);border:1px solid transparent;border-radius:var(--ibiz-border-radius-small)}.ibiz-form-item .ibiz-picker-select-view.is-show-default .ibiz-picker-select-view-select{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-form-default-content{display:none}.ibiz-form-item .ibiz-picker-select-view.is-show-default.is-editable .ibiz-picker-select-view-select{display:block}.ibiz-picker-select-view-select-popover{display:none}
|
|
@@ -295,7 +295,14 @@ class PickerEditorController extends runtime.EditorController {
|
|
|
295
295
|
}
|
|
296
296
|
if (this.objectValueField) {
|
|
297
297
|
Object.assign(object, {
|
|
298
|
-
[this.objectValueField]:
|
|
298
|
+
[this.objectValueField]: {
|
|
299
|
+
...select
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
if (select.srfnodeid) {
|
|
304
|
+
Object.assign(object, {
|
|
305
|
+
srfnodeid: select.srfnodeid
|
|
299
306
|
});
|
|
300
307
|
}
|
|
301
308
|
return object;
|
|
@@ -4,7 +4,23 @@ var runtime = require('@ibiz-template/runtime');
|
|
|
4
4
|
var treeView_engine = require('./tree-view.engine.cjs');
|
|
5
5
|
|
|
6
6
|
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
9
|
+
var __publicField = (obj, key, value) => {
|
|
10
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
11
|
+
return value;
|
|
12
|
+
};
|
|
7
13
|
class PickupTreeViewEngine extends treeView_engine.TreeViewEngine {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
/**
|
|
17
|
+
* 选中数据
|
|
18
|
+
*
|
|
19
|
+
* @type {IData[]}
|
|
20
|
+
* @memberof PickupViewEngine
|
|
21
|
+
*/
|
|
22
|
+
__publicField(this, "selectData", []);
|
|
23
|
+
}
|
|
8
24
|
/**
|
|
9
25
|
* 创建完成
|
|
10
26
|
*
|
|
@@ -18,6 +34,41 @@ class PickupTreeViewEngine extends treeView_engine.TreeViewEngine {
|
|
|
18
34
|
this.view.slotProps.tree = {};
|
|
19
35
|
}
|
|
20
36
|
this.view.slotProps.tree.singleSelect = this.view.state.singleSelect;
|
|
37
|
+
if (this.view.state.selectedData) {
|
|
38
|
+
this.selectData = this.view.state.selectedData.map((item) => {
|
|
39
|
+
return {
|
|
40
|
+
...item,
|
|
41
|
+
_id: item.srfnodeid
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
const set = /* @__PURE__ */ new Set();
|
|
45
|
+
this.selectData.forEach((item) => {
|
|
46
|
+
if (item.srfnodeid) {
|
|
47
|
+
const keys = this.calcExpandKeys(item.srfnodeid);
|
|
48
|
+
keys.forEach((key) => set.add(key));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
this.view.slotProps.tree.defaultExpandedKeys = Array.from(set);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 根据key计算需要展开的节点标识
|
|
56
|
+
* @author lxm
|
|
57
|
+
* @date 2023-11-07 02:42:45
|
|
58
|
+
* @param {string} key
|
|
59
|
+
* @return {*} {string[]}
|
|
60
|
+
*/
|
|
61
|
+
calcExpandKeys(key) {
|
|
62
|
+
const expandedKeys = [];
|
|
63
|
+
key.split(":").forEach((item, index) => {
|
|
64
|
+
if (index === 0) {
|
|
65
|
+
expandedKeys.push(item);
|
|
66
|
+
} else {
|
|
67
|
+
expandedKeys.push("".concat(expandedKeys[index - 1], ":").concat(item));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
expandedKeys.pop();
|
|
71
|
+
return expandedKeys;
|
|
21
72
|
}
|
|
22
73
|
/**
|
|
23
74
|
* 挂载完成
|
|
@@ -28,15 +79,21 @@ class PickupTreeViewEngine extends treeView_engine.TreeViewEngine {
|
|
|
28
79
|
*/
|
|
29
80
|
async onMounted() {
|
|
30
81
|
const { model } = this.view;
|
|
82
|
+
let forbiddenSelectionChange = false;
|
|
31
83
|
this.xdataControl.evt.on("onSelectionChange", async (event) => {
|
|
32
|
-
if (
|
|
33
|
-
|
|
84
|
+
if (forbiddenSelectionChange) {
|
|
85
|
+
return;
|
|
34
86
|
}
|
|
35
87
|
this.view.evt.emit("onSelectionChange", { ...event });
|
|
36
88
|
});
|
|
37
89
|
this.xdataControl.evt.on("onActive", async (event) => {
|
|
38
90
|
this.view.evt.emit("onDataActive", { ...event });
|
|
39
91
|
});
|
|
92
|
+
this.xdataControl.evt.on("onLoadSuccess", () => {
|
|
93
|
+
forbiddenSelectionChange = true;
|
|
94
|
+
this.xdataControl.setSelection(this.selectData);
|
|
95
|
+
forbiddenSelectionChange = false;
|
|
96
|
+
});
|
|
40
97
|
if (!this.view.state.noLoadDefault && model.loadDefault) {
|
|
41
98
|
this.load();
|
|
42
99
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibiz-template/vue3-components",
|
|
3
|
-
"version": "0.6.0
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "使用 rollup 编译 vue 组件或者 jsx",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.mjs",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"@floating-ui/dom": "^1.5.3",
|
|
28
28
|
"@ibiz-template-plugin/ai-chat": "^0.0.1",
|
|
29
29
|
"@ibiz-template-plugin/gantt": "0.1.1",
|
|
30
|
-
"@ibiz-template/core": "^0.6.0
|
|
31
|
-
"@ibiz-template/devtool": "0.0.1-
|
|
32
|
-
"@ibiz-template/model-helper": "^0.6.0
|
|
33
|
-
"@ibiz-template/runtime": "^0.6.0
|
|
30
|
+
"@ibiz-template/core": "^0.6.0",
|
|
31
|
+
"@ibiz-template/devtool": "0.0.1-alpha.0",
|
|
32
|
+
"@ibiz-template/model-helper": "^0.6.0",
|
|
33
|
+
"@ibiz-template/runtime": "^0.6.0",
|
|
34
34
|
"@ibiz-template/theme": "^0.5.0",
|
|
35
|
-
"@ibiz-template/vue3-util": "^0.6.0
|
|
35
|
+
"@ibiz-template/vue3-util": "^0.6.0",
|
|
36
36
|
"@ibiz-template/web-theme": "^1.1.8",
|
|
37
37
|
"@ibiz/model-core": "^0.1.11",
|
|
38
38
|
"@imengyu/vue3-context-menu": "^1.3.5",
|