persagy-vant 0.0.43 → 0.0.45
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/es/index.d.ts +1 -1
- package/es/index.mjs +1 -1
- package/es/location-select/LocationSelect.d.ts +19 -1
- package/es/location-select/LocationSelect.mjs +123 -19
- package/es/location-select/index.css +1 -1
- package/es/location-select/index.d.ts +14 -1
- package/es/location-select/index.less +1 -0
- package/es/location-select/style/index.mjs +1 -0
- package/es/location-select/style/less.mjs +1 -0
- package/es/location-select/types.d.ts +2 -0
- package/es/location-select/types.mjs +0 -0
- package/es/material-add/MaterialAdd.d.ts +19 -2
- package/es/material-add/MaterialAdd.mjs +99 -8
- package/es/material-add/index.css +1 -1
- package/es/material-add/index.d.ts +14 -2
- package/es/material-add/index.less +1 -1
- package/es/material-add/style/index.mjs +1 -0
- package/es/material-add/style/less.mjs +1 -0
- package/es/material-add/types.d.ts +7 -6
- package/es/object-select/ObjectSelect.d.ts +25 -3
- package/es/object-select/ObjectSelect.mjs +163 -30
- package/es/object-select/index.css +1 -1
- package/es/object-select/index.d.ts +18 -2
- package/es/object-select/index.less +1 -0
- package/es/object-select/style/index.mjs +1 -0
- package/es/object-select/style/less.mjs +1 -0
- package/es/object-select/types.d.ts +1 -0
- package/es/tree-select/TreeSelect.d.ts +7 -1
- package/es/tree-select/TreeSelect.mjs +107 -54
- package/es/tree-select/index.css +1 -1
- package/es/tree-select/index.d.ts +6 -2
- package/es/tree-select/index.less +6 -0
- package/es/tree-select/style/index.mjs +1 -0
- package/es/tree-select/style/less.mjs +1 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.less +2 -2
- package/lib/location-select/LocationSelect.d.ts +19 -1
- package/lib/location-select/LocationSelect.js +121 -17
- package/lib/location-select/index.css +1 -1
- package/lib/location-select/index.d.ts +14 -1
- package/lib/location-select/index.less +1 -0
- package/lib/location-select/style/index.js +1 -0
- package/lib/location-select/style/less.js +1 -0
- package/lib/location-select/types.d.ts +2 -0
- package/lib/location-select/types.js +15 -0
- package/lib/material-add/MaterialAdd.d.ts +19 -2
- package/lib/material-add/MaterialAdd.js +97 -6
- package/lib/material-add/index.css +1 -1
- package/lib/material-add/index.d.ts +14 -2
- package/lib/material-add/index.less +1 -1
- package/lib/material-add/style/index.js +1 -0
- package/lib/material-add/style/less.js +1 -0
- package/lib/material-add/types.d.ts +7 -6
- package/lib/object-select/ObjectSelect.d.ts +25 -3
- package/lib/object-select/ObjectSelect.js +161 -28
- package/lib/object-select/index.css +1 -1
- package/lib/object-select/index.d.ts +18 -2
- package/lib/object-select/index.less +1 -0
- package/lib/object-select/style/index.js +1 -0
- package/lib/object-select/style/less.js +1 -0
- package/lib/object-select/types.d.ts +1 -0
- package/lib/tree-select/TreeSelect.d.ts +7 -1
- package/lib/tree-select/TreeSelect.js +107 -52
- package/lib/tree-select/index.css +1 -1
- package/lib/tree-select/index.d.ts +6 -2
- package/lib/tree-select/index.less +6 -0
- package/lib/tree-select/style/index.js +1 -0
- package/lib/tree-select/style/less.js +1 -0
- package/lib/vant.cjs.js +492 -118
- package/lib/vant.es.js +493 -119
- package/lib/vant.js +492 -118
- package/lib/vant.min.js +1 -1
- package/lib/web-types.json +1 -1
- package/package.json +1 -1
- package/skills/use-persagy-vant/references/business-component-catalog.md +3 -3
- package/skills/use-persagy-vant/references/component-catalog.md +1 -1
package/lib/vant.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { unref, ref, reactive, inject, watch, onMounted, nextTick, createVNode, defineComponent, getCurrentInstance, computed, provide, watchEffect, mergeProps, onDeactivated, onBeforeUnmount, Transition, withDirectives, vShow, onActivated, Teleport, Fragment, createTextVNode, createApp, onUnmounted, onBeforeUpdate, resolveDirective, onUpdated, withKeys, TransitionGroup, h } from "vue";
|
|
1
|
+
import { unref, ref, reactive, inject, watch, onMounted, nextTick, createVNode, defineComponent, getCurrentInstance, computed, provide, watchEffect, mergeProps, onDeactivated, onBeforeUnmount, Transition, withDirectives, vShow, onActivated, Teleport, Fragment, createTextVNode, createApp, onUnmounted, onBeforeUpdate, resolveDirective, onUpdated, withKeys, shallowReactive, TransitionGroup, h } from "vue";
|
|
2
2
|
import { useWindowSize, useRect, useChildren, useParent, onMountedOrActivated, getScrollParent, useEventListener, useClickAway, useCustomFieldValue, CUSTOM_FIELD_INJECTION_KEY, useToggle, raf, useScrollParent, usePageVisibility, doubleRaf, cancelRaf, useCountDown, inBrowser as inBrowser$1 } from "@vant/use";
|
|
3
3
|
import { offsetModifier, createPopper } from "@vant/popperjs";
|
|
4
4
|
import Plyr from "plyr";
|
|
@@ -7608,21 +7608,21 @@ var stdin_default$1o = defineComponent({
|
|
|
7608
7608
|
}, [renderChildren()]);
|
|
7609
7609
|
}
|
|
7610
7610
|
});
|
|
7611
|
-
var __defProp
|
|
7611
|
+
var __defProp = Object.defineProperty;
|
|
7612
7612
|
var __defProps = Object.defineProperties;
|
|
7613
7613
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7614
|
-
var __getOwnPropSymbols
|
|
7615
|
-
var __hasOwnProp
|
|
7616
|
-
var __propIsEnum
|
|
7617
|
-
var __defNormalProp
|
|
7618
|
-
var __spreadValues
|
|
7614
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
7615
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7616
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7617
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7618
|
+
var __spreadValues = (a, b) => {
|
|
7619
7619
|
for (var prop in b || (b = {}))
|
|
7620
|
-
if (__hasOwnProp
|
|
7621
|
-
__defNormalProp
|
|
7622
|
-
if (__getOwnPropSymbols
|
|
7623
|
-
for (var prop of __getOwnPropSymbols
|
|
7624
|
-
if (__propIsEnum
|
|
7625
|
-
__defNormalProp
|
|
7620
|
+
if (__hasOwnProp.call(b, prop))
|
|
7621
|
+
__defNormalProp(a, prop, b[prop]);
|
|
7622
|
+
if (__getOwnPropSymbols)
|
|
7623
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
7624
|
+
if (__propIsEnum.call(b, prop))
|
|
7625
|
+
__defNormalProp(a, prop, b[prop]);
|
|
7626
7626
|
}
|
|
7627
7627
|
return a;
|
|
7628
7628
|
};
|
|
@@ -7878,7 +7878,7 @@ var stdin_default$1n = defineComponent({
|
|
|
7878
7878
|
name: tab.title,
|
|
7879
7879
|
disabled: tab.disabled
|
|
7880
7880
|
}));
|
|
7881
|
-
return actions.map((action, index) => __spreadProps(__spreadValues
|
|
7881
|
+
return actions.map((action, index) => __spreadProps(__spreadValues({}, action), {
|
|
7882
7882
|
color: index === state.currentIndex ? "var(--van-primary-color)" : action.color,
|
|
7883
7883
|
className: [action.className, bem$1d("more-option", {
|
|
7884
7884
|
active: index === state.currentIndex
|
|
@@ -13032,21 +13032,25 @@ var stdin_default$K = defineComponent({
|
|
|
13032
13032
|
}
|
|
13033
13033
|
});
|
|
13034
13034
|
const InfoCard = withInstall(stdin_default$K);
|
|
13035
|
-
var
|
|
13036
|
-
|
|
13037
|
-
var
|
|
13038
|
-
|
|
13039
|
-
|
|
13040
|
-
|
|
13041
|
-
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
|
|
13035
|
+
var __async$5 = (__this, __arguments, generator) => {
|
|
13036
|
+
return new Promise((resolve, reject) => {
|
|
13037
|
+
var fulfilled = (value) => {
|
|
13038
|
+
try {
|
|
13039
|
+
step(generator.next(value));
|
|
13040
|
+
} catch (e) {
|
|
13041
|
+
reject(e);
|
|
13042
|
+
}
|
|
13043
|
+
};
|
|
13044
|
+
var rejected = (value) => {
|
|
13045
|
+
try {
|
|
13046
|
+
step(generator.throw(value));
|
|
13047
|
+
} catch (e) {
|
|
13048
|
+
reject(e);
|
|
13049
|
+
}
|
|
13050
|
+
};
|
|
13051
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
13052
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
13053
|
+
});
|
|
13050
13054
|
};
|
|
13051
13055
|
const [name$B, bem$B] = createNamespace("tree-select");
|
|
13052
13056
|
const treeSelectProps = {
|
|
@@ -13058,20 +13062,31 @@ const treeSelectProps = {
|
|
|
13058
13062
|
selectableParent: Boolean,
|
|
13059
13063
|
showParentSelect: Boolean,
|
|
13060
13064
|
showSelectLevels: Array,
|
|
13061
|
-
showDivider: truthProp
|
|
13065
|
+
showDivider: truthProp,
|
|
13066
|
+
loadChildren: Function
|
|
13062
13067
|
};
|
|
13063
13068
|
var stdin_default$J = defineComponent({
|
|
13064
13069
|
name: name$B,
|
|
13065
13070
|
props: treeSelectProps,
|
|
13066
|
-
emits: ["update:modelValue", "update:expandedKeys", "select", "expand"],
|
|
13071
|
+
emits: ["update:modelValue", "update:expandedKeys", "select", "expand", "load", "load-error"],
|
|
13067
13072
|
setup(props2, {
|
|
13068
13073
|
emit,
|
|
13069
13074
|
slots
|
|
13070
13075
|
}) {
|
|
13071
13076
|
const selectedKeys = computed(() => props2.modelValue);
|
|
13072
13077
|
const expandedKeys = computed(() => props2.expandedKeys);
|
|
13078
|
+
const resolvedChildren = shallowReactive(/* @__PURE__ */ new Map());
|
|
13079
|
+
const loadingKeys = shallowReactive(/* @__PURE__ */ new Set());
|
|
13080
|
+
const loadedKeys = shallowReactive(/* @__PURE__ */ new Set());
|
|
13073
13081
|
const isExpanded = (id) => expandedKeys.value.includes(id);
|
|
13074
13082
|
const isSelected = (id) => selectedKeys.value.includes(id);
|
|
13083
|
+
const isLoading = (id) => loadingKeys.has(id);
|
|
13084
|
+
const getChildren = (item) => {
|
|
13085
|
+
var _a;
|
|
13086
|
+
return ((_a = item.children) == null ? void 0 : _a.length) ? item.children : resolvedChildren.get(item.id) || item.children || [];
|
|
13087
|
+
};
|
|
13088
|
+
const isLoadable = (item) => !!props2.loadChildren && Array.isArray(item.children) && !item.children.length && !loadedKeys.has(item.id);
|
|
13089
|
+
const isBranch = (item) => !!getChildren(item).length || isLoadable(item) || isLoading(item.id);
|
|
13075
13090
|
const isSelectionVisible = (hasChildren, level) => {
|
|
13076
13091
|
var _a;
|
|
13077
13092
|
const configuredVisibility = (_a = props2.showSelectLevels) == null ? void 0 : _a[level];
|
|
@@ -13083,10 +13098,7 @@ var stdin_default$J = defineComponent({
|
|
|
13083
13098
|
paddingLeft: `calc(var(--van-padding-md) + ${level * 16}px)`,
|
|
13084
13099
|
"--van-tree-select-divider-left": `calc(var(--van-padding-md) + ${level * 16}px)`
|
|
13085
13100
|
});
|
|
13086
|
-
const getDescendantIds = (item) =>
|
|
13087
|
-
var _a;
|
|
13088
|
-
return ((_a = item.children) == null ? void 0 : _a.flatMap((child) => [child.id, ...getDescendantIds(child)])) || [];
|
|
13089
|
-
};
|
|
13101
|
+
const getDescendantIds = (item) => getChildren(item).flatMap((child) => [child.id, ...getDescendantIds(child)]);
|
|
13090
13102
|
const getSelectionState = (item) => {
|
|
13091
13103
|
const descendantIds = getDescendantIds(item);
|
|
13092
13104
|
if (!props2.cascade || !descendantIds.length) {
|
|
@@ -13101,11 +13113,11 @@ var stdin_default$J = defineComponent({
|
|
|
13101
13113
|
};
|
|
13102
13114
|
const syncParentSelection = (items, values) => {
|
|
13103
13115
|
items.forEach((item) => {
|
|
13104
|
-
|
|
13105
|
-
if (!
|
|
13116
|
+
const children = getChildren(item);
|
|
13117
|
+
if (!children.length)
|
|
13106
13118
|
return;
|
|
13107
|
-
syncParentSelection(
|
|
13108
|
-
const childIds =
|
|
13119
|
+
syncParentSelection(children, values);
|
|
13120
|
+
const childIds = children.map((child) => child.id);
|
|
13109
13121
|
const index = values.indexOf(item.id);
|
|
13110
13122
|
const allChildrenSelected = childIds.every((id) => values.includes(id));
|
|
13111
13123
|
if (allChildrenSelected && index === -1)
|
|
@@ -13114,13 +13126,45 @@ var stdin_default$J = defineComponent({
|
|
|
13114
13126
|
values.splice(index, 1);
|
|
13115
13127
|
});
|
|
13116
13128
|
};
|
|
13117
|
-
const
|
|
13129
|
+
const updateExpanded = (id, expanded) => {
|
|
13118
13130
|
const next = expandedKeys.value.slice();
|
|
13119
13131
|
const index = next.indexOf(id);
|
|
13120
|
-
|
|
13132
|
+
if (expanded && index === -1)
|
|
13133
|
+
next.push(id);
|
|
13134
|
+
if (!expanded && index !== -1)
|
|
13135
|
+
next.splice(index, 1);
|
|
13121
13136
|
emit("update:expandedKeys", next);
|
|
13122
|
-
emit("expand", id,
|
|
13137
|
+
emit("expand", id, expanded);
|
|
13123
13138
|
};
|
|
13139
|
+
const toggleExpanded = (item) => __async$5(this, null, function* () {
|
|
13140
|
+
const {
|
|
13141
|
+
id
|
|
13142
|
+
} = item;
|
|
13143
|
+
if (isLoading(id))
|
|
13144
|
+
return;
|
|
13145
|
+
if (isExpanded(id)) {
|
|
13146
|
+
updateExpanded(id, false);
|
|
13147
|
+
return;
|
|
13148
|
+
}
|
|
13149
|
+
if (isLoadable(item)) {
|
|
13150
|
+
loadingKeys.add(id);
|
|
13151
|
+
try {
|
|
13152
|
+
const result = yield props2.loadChildren(item);
|
|
13153
|
+
const children = Array.isArray(result) ? result : [];
|
|
13154
|
+
resolvedChildren.set(id, children);
|
|
13155
|
+
loadedKeys.add(id);
|
|
13156
|
+
emit("load", item, children);
|
|
13157
|
+
if (children.length)
|
|
13158
|
+
updateExpanded(id, true);
|
|
13159
|
+
} catch (error) {
|
|
13160
|
+
emit("load-error", item, error);
|
|
13161
|
+
} finally {
|
|
13162
|
+
loadingKeys.delete(id);
|
|
13163
|
+
}
|
|
13164
|
+
return;
|
|
13165
|
+
}
|
|
13166
|
+
updateExpanded(id, true);
|
|
13167
|
+
});
|
|
13124
13168
|
const updateSelected = (item, selected) => {
|
|
13125
13169
|
if (item.disabled || item.selectable === false)
|
|
13126
13170
|
return;
|
|
@@ -13139,12 +13183,13 @@ var stdin_default$J = defineComponent({
|
|
|
13139
13183
|
emit("select", item, selected);
|
|
13140
13184
|
};
|
|
13141
13185
|
const renderNodes = (items, level = 0) => items.map((item) => {
|
|
13142
|
-
|
|
13143
|
-
const hasChildren =
|
|
13186
|
+
const children = getChildren(item);
|
|
13187
|
+
const hasChildren = isBranch(item);
|
|
13144
13188
|
const expanded = isExpanded(item.id);
|
|
13189
|
+
const loading = isLoading(item.id);
|
|
13145
13190
|
const renderTitle = () => {
|
|
13146
|
-
var
|
|
13147
|
-
return ((
|
|
13191
|
+
var _a;
|
|
13192
|
+
return ((_a = slots.title) == null ? void 0 : _a.call(slots, {
|
|
13148
13193
|
item,
|
|
13149
13194
|
level,
|
|
13150
13195
|
hasChildren
|
|
@@ -13164,36 +13209,29 @@ var stdin_default$J = defineComponent({
|
|
|
13164
13209
|
}
|
|
13165
13210
|
const selectable = item.selectable !== false && isSelectionVisible(hasChildren, level);
|
|
13166
13211
|
const selectionState = getSelectionState(item);
|
|
13167
|
-
|
|
13168
|
-
"key": item.id,
|
|
13169
|
-
"class": bem$B("node")
|
|
13170
|
-
}, [createVNode(Cell, {
|
|
13171
|
-
"class": bem$B("cell", {
|
|
13172
|
-
branch: hasChildren
|
|
13173
|
-
}),
|
|
13174
|
-
"title": item.text,
|
|
13175
|
-
"border": props2.showDivider,
|
|
13176
|
-
"style": getNodeStyle(level),
|
|
13177
|
-
"rightSelect": selectable && selectionState !== "indeterminate" ? selectionState === "checked" : void 0,
|
|
13178
|
-
"selectType": props2.multiple ? "checkbox" : "radio",
|
|
13179
|
-
"onUpdate:rightSelect": (value) => updateSelected(item, value)
|
|
13180
|
-
}, __spreadValues({
|
|
13212
|
+
const cellSlots = {
|
|
13181
13213
|
title: () => [hasChildren ? createVNode("button", {
|
|
13182
13214
|
"type": "button",
|
|
13183
13215
|
"class": bem$B("expand-control"),
|
|
13184
13216
|
"disabled": item.disabled,
|
|
13217
|
+
"aria-busy": loading,
|
|
13218
|
+
"aria-disabled": loading,
|
|
13185
13219
|
"onClick": (event) => {
|
|
13186
13220
|
event.stopPropagation();
|
|
13187
|
-
toggleExpanded(item
|
|
13221
|
+
toggleExpanded(item);
|
|
13188
13222
|
}
|
|
13189
|
-
}, [createVNode(
|
|
13223
|
+
}, [loading ? createVNode(Loading, {
|
|
13224
|
+
"class": bem$B("loading"),
|
|
13225
|
+
"size": "var(--van-tree-select-arrow-size)"
|
|
13226
|
+
}, null) : createVNode(Icon, {
|
|
13190
13227
|
"name": "trangle-down",
|
|
13191
13228
|
"class": bem$B("arrow", {
|
|
13192
13229
|
expanded
|
|
13193
13230
|
})
|
|
13194
13231
|
}, null), createVNode("span", null, [renderTitle()])]) : createVNode("span", null, [renderTitle()])]
|
|
13195
|
-
}
|
|
13196
|
-
|
|
13232
|
+
};
|
|
13233
|
+
if (selectable && selectionState === "indeterminate") {
|
|
13234
|
+
cellSlots["right-select"] = () => createVNode("button", {
|
|
13197
13235
|
"type": "button",
|
|
13198
13236
|
"class": bem$B("indeterminate"),
|
|
13199
13237
|
"aria-label": `部分选中${item.text}`,
|
|
@@ -13201,13 +13239,27 @@ var stdin_default$J = defineComponent({
|
|
|
13201
13239
|
event.stopPropagation();
|
|
13202
13240
|
updateSelected(item, true);
|
|
13203
13241
|
}
|
|
13204
|
-
}, null)
|
|
13205
|
-
}
|
|
13242
|
+
}, null);
|
|
13243
|
+
}
|
|
13244
|
+
return createVNode("div", {
|
|
13245
|
+
"key": item.id,
|
|
13246
|
+
"class": bem$B("node")
|
|
13247
|
+
}, [createVNode(Cell, {
|
|
13248
|
+
"class": bem$B("cell", {
|
|
13249
|
+
branch: hasChildren
|
|
13250
|
+
}),
|
|
13251
|
+
"title": item.text,
|
|
13252
|
+
"border": props2.showDivider,
|
|
13253
|
+
"style": getNodeStyle(level),
|
|
13254
|
+
"rightSelect": selectable && selectionState !== "indeterminate" ? selectionState === "checked" : void 0,
|
|
13255
|
+
"selectType": props2.multiple ? "checkbox" : "radio",
|
|
13256
|
+
"onUpdate:rightSelect": (value) => updateSelected(item, value)
|
|
13257
|
+
}, cellSlots), createVNode(Transition, {
|
|
13206
13258
|
"name": "van-tree-select-expand"
|
|
13207
13259
|
}, {
|
|
13208
13260
|
default: () => [hasChildren && expanded && createVNode("div", {
|
|
13209
13261
|
"class": bem$B("children")
|
|
13210
|
-
}, [renderNodes(
|
|
13262
|
+
}, [renderNodes(children, level + 1)])]
|
|
13211
13263
|
})]);
|
|
13212
13264
|
});
|
|
13213
13265
|
return () => createVNode("div", {
|
|
@@ -13217,6 +13269,26 @@ var stdin_default$J = defineComponent({
|
|
|
13217
13269
|
});
|
|
13218
13270
|
const TreeSelect = withInstall(stdin_default$J);
|
|
13219
13271
|
var stdin_default$I = TreeSelect;
|
|
13272
|
+
var __async$4 = (__this, __arguments, generator) => {
|
|
13273
|
+
return new Promise((resolve, reject) => {
|
|
13274
|
+
var fulfilled = (value) => {
|
|
13275
|
+
try {
|
|
13276
|
+
step(generator.next(value));
|
|
13277
|
+
} catch (e) {
|
|
13278
|
+
reject(e);
|
|
13279
|
+
}
|
|
13280
|
+
};
|
|
13281
|
+
var rejected = (value) => {
|
|
13282
|
+
try {
|
|
13283
|
+
step(generator.throw(value));
|
|
13284
|
+
} catch (e) {
|
|
13285
|
+
reject(e);
|
|
13286
|
+
}
|
|
13287
|
+
};
|
|
13288
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
13289
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
13290
|
+
});
|
|
13291
|
+
};
|
|
13220
13292
|
const [name$A, bem$A] = createNamespace("location-select");
|
|
13221
13293
|
const locations = [[{
|
|
13222
13294
|
id: "basement",
|
|
@@ -13351,12 +13423,14 @@ const props$1 = {
|
|
|
13351
13423
|
type: Array,
|
|
13352
13424
|
default: () => locations
|
|
13353
13425
|
},
|
|
13354
|
-
tabTitles: makeArrayProp()
|
|
13426
|
+
tabTitles: makeArrayProp(),
|
|
13427
|
+
search: Function,
|
|
13428
|
+
searchDebounce: makeNumericProp(300)
|
|
13355
13429
|
};
|
|
13356
13430
|
var stdin_default$H = defineComponent({
|
|
13357
13431
|
name: name$A,
|
|
13358
13432
|
props: props$1,
|
|
13359
|
-
emits: ["update:show", "update:modelValue", "change"],
|
|
13433
|
+
emits: ["update:show", "update:modelValue", "change", "search-error"],
|
|
13360
13434
|
setup(props2, {
|
|
13361
13435
|
emit
|
|
13362
13436
|
}) {
|
|
@@ -13366,6 +13440,12 @@ var stdin_default$H = defineComponent({
|
|
|
13366
13440
|
const customValue = ref("");
|
|
13367
13441
|
const expandedKeys = ref(["basement", "b3"]);
|
|
13368
13442
|
const query = ref("");
|
|
13443
|
+
const asyncSearchResults = ref([]);
|
|
13444
|
+
const searchLoading = ref(false);
|
|
13445
|
+
const searchFailed = ref(false);
|
|
13446
|
+
const searchedItems = shallowReactive(/* @__PURE__ */ new Map());
|
|
13447
|
+
let searchTimer;
|
|
13448
|
+
let searchRequestId = 0;
|
|
13369
13449
|
const titles = computed(() => props2.tabTitles.length ? props2.tabTitles : ["ABC座地下室", "A座", "B座", "C座", "D座"]);
|
|
13370
13450
|
const allItems = computed(() => props2.items.flatMap(flatten));
|
|
13371
13451
|
const currentRoot = computed(() => {
|
|
@@ -13376,7 +13456,48 @@ var stdin_default$H = defineComponent({
|
|
|
13376
13456
|
var _a;
|
|
13377
13457
|
return ((_a = currentRoot.value) == null ? void 0 : _a.children) || [];
|
|
13378
13458
|
});
|
|
13379
|
-
const searchResults = computed(() =>
|
|
13459
|
+
const searchResults = computed(() => {
|
|
13460
|
+
if (!query.value.trim())
|
|
13461
|
+
return [];
|
|
13462
|
+
if (props2.search)
|
|
13463
|
+
return asyncSearchResults.value;
|
|
13464
|
+
return allItems.value.filter((item) => item.text.includes(query.value));
|
|
13465
|
+
});
|
|
13466
|
+
const runSearch = (..._0) => __async$4(this, [..._0], function* (keyword = query.value.trim()) {
|
|
13467
|
+
if (!props2.search || !keyword)
|
|
13468
|
+
return;
|
|
13469
|
+
const requestId = ++searchRequestId;
|
|
13470
|
+
searchLoading.value = true;
|
|
13471
|
+
searchFailed.value = false;
|
|
13472
|
+
try {
|
|
13473
|
+
const results = yield props2.search(keyword);
|
|
13474
|
+
if (requestId !== searchRequestId)
|
|
13475
|
+
return;
|
|
13476
|
+
asyncSearchResults.value = results;
|
|
13477
|
+
results.forEach((item) => searchedItems.set(item.id, item));
|
|
13478
|
+
} catch (error) {
|
|
13479
|
+
if (requestId !== searchRequestId)
|
|
13480
|
+
return;
|
|
13481
|
+
asyncSearchResults.value = [];
|
|
13482
|
+
searchFailed.value = true;
|
|
13483
|
+
emit("search-error", keyword, error);
|
|
13484
|
+
} finally {
|
|
13485
|
+
if (requestId === searchRequestId)
|
|
13486
|
+
searchLoading.value = false;
|
|
13487
|
+
}
|
|
13488
|
+
});
|
|
13489
|
+
const scheduleSearch = () => {
|
|
13490
|
+
if (searchTimer)
|
|
13491
|
+
clearTimeout(searchTimer);
|
|
13492
|
+
searchRequestId += 1;
|
|
13493
|
+
searchLoading.value = false;
|
|
13494
|
+
searchFailed.value = false;
|
|
13495
|
+
asyncSearchResults.value = [];
|
|
13496
|
+
if (props2.search && query.value.trim()) {
|
|
13497
|
+
searchTimer = setTimeout(runSearch, Number(props2.searchDebounce));
|
|
13498
|
+
}
|
|
13499
|
+
};
|
|
13500
|
+
watch([query, () => props2.search], scheduleSearch);
|
|
13380
13501
|
watch(() => props2.show, (show) => {
|
|
13381
13502
|
if (show) {
|
|
13382
13503
|
active.value = 0;
|
|
@@ -13384,11 +13505,16 @@ var stdin_default$H = defineComponent({
|
|
|
13384
13505
|
expandedKeys.value = ["basement", "b3"];
|
|
13385
13506
|
}
|
|
13386
13507
|
});
|
|
13508
|
+
onBeforeUnmount(() => {
|
|
13509
|
+
searchRequestId += 1;
|
|
13510
|
+
if (searchTimer)
|
|
13511
|
+
clearTimeout(searchTimer);
|
|
13512
|
+
});
|
|
13387
13513
|
const close = () => emit("update:show", false);
|
|
13388
13514
|
const select = (value) => {
|
|
13389
13515
|
const selected = value[0];
|
|
13390
13516
|
if (selected !== void 0) {
|
|
13391
|
-
const selectedItem = allItems.value.find((item) => item.id === selected);
|
|
13517
|
+
const selectedItem = allItems.value.find((item) => item.id === selected) || searchedItems.get(selected);
|
|
13392
13518
|
emit("update:modelValue", selected);
|
|
13393
13519
|
emit("change", selected, selectedItem == null ? void 0 : selectedItem.text);
|
|
13394
13520
|
close();
|
|
@@ -13403,6 +13529,37 @@ var stdin_default$H = defineComponent({
|
|
|
13403
13529
|
showCustom.value = false;
|
|
13404
13530
|
close();
|
|
13405
13531
|
};
|
|
13532
|
+
const renderSearchContent = () => {
|
|
13533
|
+
if (searchLoading.value)
|
|
13534
|
+
return createVNode("div", {
|
|
13535
|
+
"class": bem$A("search-state")
|
|
13536
|
+
}, [createVNode(Loading, {
|
|
13537
|
+
"vertical": true
|
|
13538
|
+
}, {
|
|
13539
|
+
default: () => [createTextVNode("加载中...")]
|
|
13540
|
+
})]);
|
|
13541
|
+
if (searchFailed.value)
|
|
13542
|
+
return createVNode(Empty, {
|
|
13543
|
+
"image": "network",
|
|
13544
|
+
"description": "搜索失败,请重试"
|
|
13545
|
+
}, null);
|
|
13546
|
+
if (!searchResults.value.length)
|
|
13547
|
+
return createVNode(Empty, {
|
|
13548
|
+
"description": "暂无搜索结果"
|
|
13549
|
+
}, null);
|
|
13550
|
+
return createVNode("div", {
|
|
13551
|
+
"class": bem$A("card")
|
|
13552
|
+
}, [searchResults.value.map((item, index) => createVNode(Cell, {
|
|
13553
|
+
"key": item.id,
|
|
13554
|
+
"title": item.text,
|
|
13555
|
+
"rightSelect": props2.modelValue === item.id,
|
|
13556
|
+
"selectType": "radio",
|
|
13557
|
+
"border": index < searchResults.value.length - 1,
|
|
13558
|
+
"clickable": true,
|
|
13559
|
+
"onClick": () => select([item.id]),
|
|
13560
|
+
"onUpdate:rightSelect": () => select([item.id])
|
|
13561
|
+
}, null))]);
|
|
13562
|
+
};
|
|
13406
13563
|
return () => createVNode(ActionSheet, {
|
|
13407
13564
|
"show": props2.show,
|
|
13408
13565
|
"class": bem$A(),
|
|
@@ -13433,23 +13590,20 @@ var stdin_default$H = defineComponent({
|
|
|
13433
13590
|
"modelValue": query.value,
|
|
13434
13591
|
"onUpdate:modelValue": ($event) => query.value = $event,
|
|
13435
13592
|
"class": bem$A("search"),
|
|
13593
|
+
"variant": "pure",
|
|
13436
13594
|
"shape": "round",
|
|
13437
13595
|
"inputAlign": "left",
|
|
13438
|
-
"placeholder": "请输入搜索关键词"
|
|
13596
|
+
"placeholder": "请输入搜索关键词",
|
|
13597
|
+
"onSearch": () => {
|
|
13598
|
+
if (props2.search) {
|
|
13599
|
+
if (searchTimer)
|
|
13600
|
+
clearTimeout(searchTimer);
|
|
13601
|
+
runSearch();
|
|
13602
|
+
}
|
|
13603
|
+
}
|
|
13439
13604
|
}, null), query.value ? createVNode("div", {
|
|
13440
13605
|
"class": bem$A("body")
|
|
13441
|
-
}, [createVNode(
|
|
13442
|
-
"class": bem$A("card")
|
|
13443
|
-
}, [searchResults.value.map((item) => createVNode(Cell, {
|
|
13444
|
-
"key": item.id,
|
|
13445
|
-
"title": item.text,
|
|
13446
|
-
"rightSelect": props2.modelValue === item.id,
|
|
13447
|
-
"selectType": "radio",
|
|
13448
|
-
"border": true,
|
|
13449
|
-
"clickable": true,
|
|
13450
|
-
"onClick": () => select([item.id]),
|
|
13451
|
-
"onUpdate:rightSelect": () => select([item.id])
|
|
13452
|
-
}, null))])]) : createVNode(Fragment, null, [createVNode(Tabs, {
|
|
13606
|
+
}, [renderSearchContent()]) : createVNode(Fragment, null, [createVNode(Tabs, {
|
|
13453
13607
|
"active": active.value,
|
|
13454
13608
|
"onUpdate:active": ($event) => active.value = $event,
|
|
13455
13609
|
"showMore": showMore.value,
|
|
@@ -14117,6 +14271,26 @@ var stdin_default$D = defineComponent({
|
|
|
14117
14271
|
});
|
|
14118
14272
|
const MaterialDetail = withInstall(stdin_default$D);
|
|
14119
14273
|
var stdin_default$C = MaterialDetail;
|
|
14274
|
+
var __async$3 = (__this, __arguments, generator) => {
|
|
14275
|
+
return new Promise((resolve, reject) => {
|
|
14276
|
+
var fulfilled = (value) => {
|
|
14277
|
+
try {
|
|
14278
|
+
step(generator.next(value));
|
|
14279
|
+
} catch (e) {
|
|
14280
|
+
reject(e);
|
|
14281
|
+
}
|
|
14282
|
+
};
|
|
14283
|
+
var rejected = (value) => {
|
|
14284
|
+
try {
|
|
14285
|
+
step(generator.throw(value));
|
|
14286
|
+
} catch (e) {
|
|
14287
|
+
reject(e);
|
|
14288
|
+
}
|
|
14289
|
+
};
|
|
14290
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
14291
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
14292
|
+
});
|
|
14293
|
+
};
|
|
14120
14294
|
const [name$w, bem$w] = createNamespace("material-add");
|
|
14121
14295
|
const defaultItems = [{
|
|
14122
14296
|
id: "refrigerant",
|
|
@@ -14424,12 +14598,14 @@ const materialAddProps = {
|
|
|
14424
14598
|
commonTabText: makeStringProp("常用物料"),
|
|
14425
14599
|
allTabText: makeStringProp("全部物料"),
|
|
14426
14600
|
materialTabText: makeStringProp("物资"),
|
|
14427
|
-
toolTabText: makeStringProp("工具")
|
|
14601
|
+
toolTabText: makeStringProp("工具"),
|
|
14602
|
+
search: Function,
|
|
14603
|
+
searchDebounce: makeNumericProp(300)
|
|
14428
14604
|
};
|
|
14429
14605
|
var stdin_default$B = defineComponent({
|
|
14430
14606
|
name: name$w,
|
|
14431
14607
|
props: materialAddProps,
|
|
14432
|
-
emits: ["update:show", "update:modelValue", "change", "confirm"],
|
|
14608
|
+
emits: ["update:show", "update:modelValue", "change", "confirm", "search-error"],
|
|
14433
14609
|
setup(props2, {
|
|
14434
14610
|
emit
|
|
14435
14611
|
}) {
|
|
@@ -14445,6 +14621,10 @@ var stdin_default$B = defineComponent({
|
|
|
14445
14621
|
const activeKind = ref(getDefaultKind());
|
|
14446
14622
|
const keyword = ref("");
|
|
14447
14623
|
const searching = ref(false);
|
|
14624
|
+
const searchLoading = ref(false);
|
|
14625
|
+
const searchFailed = ref(false);
|
|
14626
|
+
let searchTimer;
|
|
14627
|
+
let searchRequestId = 0;
|
|
14448
14628
|
const expandedKeys = ref([]);
|
|
14449
14629
|
const expandedSelected = ref(false);
|
|
14450
14630
|
const detailItem = ref();
|
|
@@ -14516,6 +14696,11 @@ var stdin_default$B = defineComponent({
|
|
|
14516
14696
|
activeTab.value = getDefaultTab();
|
|
14517
14697
|
activeKind.value = getDefaultKind();
|
|
14518
14698
|
keyword.value = "";
|
|
14699
|
+
searchLoading.value = false;
|
|
14700
|
+
searchFailed.value = false;
|
|
14701
|
+
searchRequestId += 1;
|
|
14702
|
+
if (searchTimer)
|
|
14703
|
+
clearTimeout(searchTimer);
|
|
14519
14704
|
searching.value = false;
|
|
14520
14705
|
expandedKeys.value = getDefaultExpandedKeys();
|
|
14521
14706
|
expandedSelected.value = false;
|
|
@@ -14533,6 +14718,40 @@ var stdin_default$B = defineComponent({
|
|
|
14533
14718
|
expandedKeys.value = getDefaultExpandedKeys();
|
|
14534
14719
|
}
|
|
14535
14720
|
});
|
|
14721
|
+
const runSearch = (..._0) => __async$3(this, [..._0], function* (query = keyword.value.trim()) {
|
|
14722
|
+
if (!props2.search || !query)
|
|
14723
|
+
return;
|
|
14724
|
+
const requestId = ++searchRequestId;
|
|
14725
|
+
searchLoading.value = true;
|
|
14726
|
+
searchFailed.value = false;
|
|
14727
|
+
try {
|
|
14728
|
+
yield props2.search(query);
|
|
14729
|
+
} catch (error) {
|
|
14730
|
+
if (requestId !== searchRequestId)
|
|
14731
|
+
return;
|
|
14732
|
+
searchFailed.value = true;
|
|
14733
|
+
emit("search-error", query, error);
|
|
14734
|
+
} finally {
|
|
14735
|
+
if (requestId === searchRequestId)
|
|
14736
|
+
searchLoading.value = false;
|
|
14737
|
+
}
|
|
14738
|
+
});
|
|
14739
|
+
const scheduleSearch = () => {
|
|
14740
|
+
if (searchTimer)
|
|
14741
|
+
clearTimeout(searchTimer);
|
|
14742
|
+
searchRequestId += 1;
|
|
14743
|
+
searchLoading.value = false;
|
|
14744
|
+
searchFailed.value = false;
|
|
14745
|
+
if (props2.search && keyword.value.trim()) {
|
|
14746
|
+
searchTimer = setTimeout(runSearch, Number(props2.searchDebounce));
|
|
14747
|
+
}
|
|
14748
|
+
};
|
|
14749
|
+
watch([keyword, () => props2.search], scheduleSearch);
|
|
14750
|
+
onBeforeUnmount(() => {
|
|
14751
|
+
searchRequestId += 1;
|
|
14752
|
+
if (searchTimer)
|
|
14753
|
+
clearTimeout(searchTimer);
|
|
14754
|
+
});
|
|
14536
14755
|
const setActiveTab = (tab) => {
|
|
14537
14756
|
activeTab.value = tab;
|
|
14538
14757
|
if (tab === "all") {
|
|
@@ -14599,9 +14818,25 @@ var stdin_default$B = defineComponent({
|
|
|
14599
14818
|
}, null);
|
|
14600
14819
|
const renderList = () => createVNode("div", {
|
|
14601
14820
|
"class": bem$w("material-list")
|
|
14602
|
-
}, [visibleItems.value.length ? visibleItems.value.map((item) => renderMaterialCell(item, props2.items.indexOf(item))) : createVNode(
|
|
14603
|
-
"
|
|
14604
|
-
},
|
|
14821
|
+
}, [visibleItems.value.length ? visibleItems.value.map((item) => renderMaterialCell(item, props2.items.indexOf(item))) : createVNode(Empty, {
|
|
14822
|
+
"description": "暂无匹配物料"
|
|
14823
|
+
}, null)]);
|
|
14824
|
+
const renderSearchContent = () => {
|
|
14825
|
+
if (searchLoading.value)
|
|
14826
|
+
return createVNode("div", {
|
|
14827
|
+
"class": bem$w("search-state")
|
|
14828
|
+
}, [createVNode(Loading, {
|
|
14829
|
+
"vertical": true
|
|
14830
|
+
}, {
|
|
14831
|
+
default: () => [createTextVNode("加载中...")]
|
|
14832
|
+
})]);
|
|
14833
|
+
if (searchFailed.value)
|
|
14834
|
+
return createVNode(Empty, {
|
|
14835
|
+
"image": "network",
|
|
14836
|
+
"description": "搜索失败,请重试"
|
|
14837
|
+
}, null);
|
|
14838
|
+
return renderList();
|
|
14839
|
+
};
|
|
14605
14840
|
const renderCatalog = () => {
|
|
14606
14841
|
const catalogItems = getCatalogItems();
|
|
14607
14842
|
const defaultExpandedKeys = getDefaultExpandedKeys();
|
|
@@ -14658,11 +14893,19 @@ var stdin_default$B = defineComponent({
|
|
|
14658
14893
|
"modelValue": keyword.value,
|
|
14659
14894
|
"onUpdate:modelValue": ($event) => keyword.value = $event,
|
|
14660
14895
|
"class": bem$w("search"),
|
|
14896
|
+
"variant": "pure",
|
|
14661
14897
|
"shape": "round",
|
|
14662
14898
|
"inputAlign": "left",
|
|
14663
14899
|
"autofocus": true,
|
|
14664
14900
|
"showAction": true,
|
|
14665
14901
|
"placeholder": "搜索物资/工具名称",
|
|
14902
|
+
"onSearch": () => {
|
|
14903
|
+
if (props2.search) {
|
|
14904
|
+
if (searchTimer)
|
|
14905
|
+
clearTimeout(searchTimer);
|
|
14906
|
+
runSearch();
|
|
14907
|
+
}
|
|
14908
|
+
},
|
|
14666
14909
|
"onCancel": () => {
|
|
14667
14910
|
searching.value = false;
|
|
14668
14911
|
keyword.value = "";
|
|
@@ -14716,7 +14959,7 @@ var stdin_default$B = defineComponent({
|
|
|
14716
14959
|
default: () => [props2.toolTabText]
|
|
14717
14960
|
})])]), createVNode("div", {
|
|
14718
14961
|
"class": bem$w("body")
|
|
14719
|
-
}, [searching.value && !keyword.value.trim() ? null : searching.value
|
|
14962
|
+
}, [searching.value && !keyword.value.trim() ? null : searching.value ? renderSearchContent() : activeTab.value === "common" ? renderList() : renderCatalog()]), createVNode("div", {
|
|
14720
14963
|
"class": bem$w("footer")
|
|
14721
14964
|
}, [renderSelectPanel(), createVNode(BottomActionBar, {
|
|
14722
14965
|
"fixed": false,
|
|
@@ -15812,6 +16055,26 @@ var stdin_default$u = defineComponent({
|
|
|
15812
16055
|
}
|
|
15813
16056
|
});
|
|
15814
16057
|
const NumberKeyboard = withInstall(stdin_default$u);
|
|
16058
|
+
var __async$2 = (__this, __arguments, generator) => {
|
|
16059
|
+
return new Promise((resolve, reject) => {
|
|
16060
|
+
var fulfilled = (value) => {
|
|
16061
|
+
try {
|
|
16062
|
+
step(generator.next(value));
|
|
16063
|
+
} catch (e) {
|
|
16064
|
+
reject(e);
|
|
16065
|
+
}
|
|
16066
|
+
};
|
|
16067
|
+
var rejected = (value) => {
|
|
16068
|
+
try {
|
|
16069
|
+
step(generator.throw(value));
|
|
16070
|
+
} catch (e) {
|
|
16071
|
+
reject(e);
|
|
16072
|
+
}
|
|
16073
|
+
};
|
|
16074
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
16075
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
16076
|
+
});
|
|
16077
|
+
};
|
|
15815
16078
|
const [name$o, bem$o] = createNamespace("object-select");
|
|
15816
16079
|
const spaceItems = [{
|
|
15817
16080
|
id: "shenzhen-hq",
|
|
@@ -15847,13 +16110,7 @@ const spaceItems = [{
|
|
|
15847
16110
|
id: "high-voltage",
|
|
15848
16111
|
text: "高压计量柜",
|
|
15849
16112
|
selectable: false,
|
|
15850
|
-
children: [
|
|
15851
|
-
id: "metering-cabinet-1",
|
|
15852
|
-
text: "B3_高压计量柜_1#"
|
|
15853
|
-
}, {
|
|
15854
|
-
id: "metering-cabinet-2",
|
|
15855
|
-
text: "B3_高压计量柜_2#"
|
|
15856
|
-
}]
|
|
16113
|
+
children: []
|
|
15857
16114
|
}]
|
|
15858
16115
|
}, {
|
|
15859
16116
|
id: "chiller-room",
|
|
@@ -16173,13 +16430,16 @@ const objectSelectProps = {
|
|
|
16173
16430
|
specialties: {
|
|
16174
16431
|
type: Array,
|
|
16175
16432
|
default: () => specialties
|
|
16176
|
-
}
|
|
16433
|
+
},
|
|
16434
|
+
loadChildren: Function,
|
|
16435
|
+
search: Function,
|
|
16436
|
+
searchDebounce: makeNumericProp(300)
|
|
16177
16437
|
};
|
|
16178
16438
|
const flattenItems$1 = (items) => items.flatMap((item) => [item, ...item.children ? flattenItems$1(item.children) : []]);
|
|
16179
16439
|
var stdin_default$t = defineComponent({
|
|
16180
16440
|
name: name$o,
|
|
16181
16441
|
props: objectSelectProps,
|
|
16182
|
-
emits: ["update:show", "update:modelValue", "change", "confirm"],
|
|
16442
|
+
emits: ["update:show", "update:modelValue", "change", "confirm", "load", "load-error", "search-error"],
|
|
16183
16443
|
setup(props2, {
|
|
16184
16444
|
emit
|
|
16185
16445
|
}) {
|
|
@@ -16192,6 +16452,20 @@ var stdin_default$t = defineComponent({
|
|
|
16192
16452
|
const expandedSelected = ref(false);
|
|
16193
16453
|
const searching = ref(false);
|
|
16194
16454
|
const keyword = ref("");
|
|
16455
|
+
const asyncSearchResults = ref([]);
|
|
16456
|
+
const searchLoading = ref(false);
|
|
16457
|
+
const searchFailed = ref(false);
|
|
16458
|
+
const searchedItems = shallowReactive(/* @__PURE__ */ new Map());
|
|
16459
|
+
let searchTimer;
|
|
16460
|
+
let searchRequestId = 0;
|
|
16461
|
+
const loadedChildren = shallowReactive(/* @__PURE__ */ new Map());
|
|
16462
|
+
const getChildren = (item) => loadedChildren.get(item.id) || item.children || [];
|
|
16463
|
+
const hydrateItems = (items) => items.map((item) => {
|
|
16464
|
+
const children = getChildren(item);
|
|
16465
|
+
return children.length ? extend({}, item, {
|
|
16466
|
+
children: hydrateItems(children)
|
|
16467
|
+
}) : item;
|
|
16468
|
+
});
|
|
16195
16469
|
const currentSpecialtyItems = (specialty) => specialtyType.value === 0 ? specialty.deviceItems : specialty.systemItems;
|
|
16196
16470
|
const expandOnlySpecialty = () => {
|
|
16197
16471
|
if (props2.specialties.length === 1) {
|
|
@@ -16205,6 +16479,12 @@ var stdin_default$t = defineComponent({
|
|
|
16205
16479
|
view.value = 0;
|
|
16206
16480
|
specialtyType.value = 0;
|
|
16207
16481
|
keyword.value = "";
|
|
16482
|
+
asyncSearchResults.value = [];
|
|
16483
|
+
searchLoading.value = false;
|
|
16484
|
+
searchFailed.value = false;
|
|
16485
|
+
searchRequestId += 1;
|
|
16486
|
+
if (searchTimer)
|
|
16487
|
+
clearTimeout(searchTimer);
|
|
16208
16488
|
searching.value = false;
|
|
16209
16489
|
expandedSelected.value = false;
|
|
16210
16490
|
expandedSpecialties.value = {
|
|
@@ -16216,14 +16496,65 @@ var stdin_default$t = defineComponent({
|
|
|
16216
16496
|
immediate: true
|
|
16217
16497
|
});
|
|
16218
16498
|
const selected = computed(() => props2.modelValue);
|
|
16219
|
-
const allItems = computed(() => flattenItems$1([...props2.spaceItems, ...props2.specialties.flatMap((specialty) => [...specialty.deviceItems, ...specialty.systemItems])]));
|
|
16220
|
-
const selectedItems = computed(() =>
|
|
16499
|
+
const allItems = computed(() => flattenItems$1(hydrateItems([...props2.spaceItems, ...props2.specialties.flatMap((specialty) => [...specialty.deviceItems, ...specialty.systemItems])])));
|
|
16500
|
+
const selectedItems = computed(() => {
|
|
16501
|
+
const items = /* @__PURE__ */ new Map();
|
|
16502
|
+
allItems.value.forEach((item) => items.set(item.id, item));
|
|
16503
|
+
searchedItems.forEach((item) => items.set(item.id, item));
|
|
16504
|
+
return selected.value.flatMap((id) => {
|
|
16505
|
+
const item = items.get(id);
|
|
16506
|
+
return item ? [item] : [];
|
|
16507
|
+
});
|
|
16508
|
+
});
|
|
16221
16509
|
const searchResults = computed(() => {
|
|
16222
16510
|
const query = keyword.value.trim().toLowerCase();
|
|
16223
16511
|
if (!query)
|
|
16224
16512
|
return [];
|
|
16513
|
+
if (props2.search)
|
|
16514
|
+
return asyncSearchResults.value;
|
|
16225
16515
|
return allItems.value.filter((item) => item.text.toLowerCase().includes(query));
|
|
16226
16516
|
});
|
|
16517
|
+
const runSearch = (..._0) => __async$2(this, [..._0], function* (query = keyword.value.trim()) {
|
|
16518
|
+
if (!props2.search || !query)
|
|
16519
|
+
return;
|
|
16520
|
+
const requestId = ++searchRequestId;
|
|
16521
|
+
searchLoading.value = true;
|
|
16522
|
+
searchFailed.value = false;
|
|
16523
|
+
try {
|
|
16524
|
+
const results = yield props2.search(query);
|
|
16525
|
+
if (requestId !== searchRequestId)
|
|
16526
|
+
return;
|
|
16527
|
+
asyncSearchResults.value = results;
|
|
16528
|
+
results.forEach((item) => searchedItems.set(item.id, item));
|
|
16529
|
+
} catch (error) {
|
|
16530
|
+
if (requestId !== searchRequestId)
|
|
16531
|
+
return;
|
|
16532
|
+
asyncSearchResults.value = [];
|
|
16533
|
+
searchFailed.value = true;
|
|
16534
|
+
emit("search-error", query, error);
|
|
16535
|
+
} finally {
|
|
16536
|
+
if (requestId === searchRequestId)
|
|
16537
|
+
searchLoading.value = false;
|
|
16538
|
+
}
|
|
16539
|
+
});
|
|
16540
|
+
const scheduleSearch = () => {
|
|
16541
|
+
if (searchTimer)
|
|
16542
|
+
clearTimeout(searchTimer);
|
|
16543
|
+
searchRequestId += 1;
|
|
16544
|
+
searchLoading.value = false;
|
|
16545
|
+
searchFailed.value = false;
|
|
16546
|
+
asyncSearchResults.value = [];
|
|
16547
|
+
const query = keyword.value.trim();
|
|
16548
|
+
if (!props2.search || !query)
|
|
16549
|
+
return;
|
|
16550
|
+
searchTimer = setTimeout(runSearch, Number(props2.searchDebounce));
|
|
16551
|
+
};
|
|
16552
|
+
watch([keyword, () => props2.search], scheduleSearch);
|
|
16553
|
+
onBeforeUnmount(() => {
|
|
16554
|
+
searchRequestId += 1;
|
|
16555
|
+
if (searchTimer)
|
|
16556
|
+
clearTimeout(searchTimer);
|
|
16557
|
+
});
|
|
16227
16558
|
const renderHighlightedText = (text) => {
|
|
16228
16559
|
const query = keyword.value.trim();
|
|
16229
16560
|
if (!query)
|
|
@@ -16261,19 +16592,29 @@ var stdin_default$t = defineComponent({
|
|
|
16261
16592
|
update([]);
|
|
16262
16593
|
expandedSelected.value = false;
|
|
16263
16594
|
};
|
|
16595
|
+
const onLoad = (item, children) => {
|
|
16596
|
+
loadedChildren.set(item.id, children);
|
|
16597
|
+
emit("load", item, children);
|
|
16598
|
+
};
|
|
16599
|
+
const onLoadError = (item, error) => {
|
|
16600
|
+
emit("load-error", item, error);
|
|
16601
|
+
};
|
|
16264
16602
|
const renderTree = (items) => createVNode("div", {
|
|
16265
16603
|
"class": bem$o("tree-card")
|
|
16266
16604
|
}, [createVNode(TreeSelect, {
|
|
16267
16605
|
"modelValue": selected.value,
|
|
16268
16606
|
"expandedKeys": expandedKeys.value,
|
|
16269
|
-
"items": items,
|
|
16607
|
+
"items": hydrateItems(items),
|
|
16270
16608
|
"multiple": true,
|
|
16271
16609
|
"showParentSelect": true,
|
|
16272
16610
|
"cascade": false,
|
|
16611
|
+
"loadChildren": props2.loadChildren,
|
|
16273
16612
|
"onUpdate:modelValue": update,
|
|
16274
16613
|
"onUpdate:expandedKeys": (value) => {
|
|
16275
16614
|
expandedKeys.value = value;
|
|
16276
|
-
}
|
|
16615
|
+
},
|
|
16616
|
+
"onLoad": onLoad,
|
|
16617
|
+
"onLoad-error": onLoadError
|
|
16277
16618
|
}, null)]);
|
|
16278
16619
|
const renderSpecialty = (specialty) => {
|
|
16279
16620
|
var _a;
|
|
@@ -16294,6 +16635,45 @@ var stdin_default$t = defineComponent({
|
|
|
16294
16635
|
}, null), expanded && renderTree(items)]);
|
|
16295
16636
|
};
|
|
16296
16637
|
const close = () => emit("update:show", false);
|
|
16638
|
+
const renderSearchContent = () => {
|
|
16639
|
+
if (!keyword.value.trim())
|
|
16640
|
+
return;
|
|
16641
|
+
if (searchLoading.value) {
|
|
16642
|
+
return createVNode("div", {
|
|
16643
|
+
"class": bem$o("search-state")
|
|
16644
|
+
}, [createVNode(Loading, {
|
|
16645
|
+
"vertical": true
|
|
16646
|
+
}, {
|
|
16647
|
+
default: () => [createTextVNode("加载中...")]
|
|
16648
|
+
})]);
|
|
16649
|
+
}
|
|
16650
|
+
if (searchFailed.value) {
|
|
16651
|
+
return createVNode(Empty, {
|
|
16652
|
+
"image": "network",
|
|
16653
|
+
"description": "搜索失败,请重试"
|
|
16654
|
+
}, null);
|
|
16655
|
+
}
|
|
16656
|
+
if (!searchResults.value.length) {
|
|
16657
|
+
return createVNode(Empty, {
|
|
16658
|
+
"description": "暂无搜索结果"
|
|
16659
|
+
}, null);
|
|
16660
|
+
}
|
|
16661
|
+
return createVNode("div", {
|
|
16662
|
+
"class": bem$o("tree-card", {
|
|
16663
|
+
search: true
|
|
16664
|
+
})
|
|
16665
|
+
}, [searchResults.value.map((item) => createVNode(Cell, {
|
|
16666
|
+
"key": item.id,
|
|
16667
|
+
"rightSelect": selected.value.includes(item.id),
|
|
16668
|
+
"selectType": "checkbox",
|
|
16669
|
+
"border": true,
|
|
16670
|
+
"clickable": true,
|
|
16671
|
+
"onClick": () => toggleSearchItem(item),
|
|
16672
|
+
"onUpdate:rightSelect": () => toggleSearchItem(item)
|
|
16673
|
+
}, {
|
|
16674
|
+
title: () => renderHighlightedText(item.text)
|
|
16675
|
+
}))]);
|
|
16676
|
+
};
|
|
16297
16677
|
return () => createVNode(ActionSheet, {
|
|
16298
16678
|
"show": props2.show,
|
|
16299
16679
|
"class": bem$o(),
|
|
@@ -16304,10 +16684,18 @@ var stdin_default$t = defineComponent({
|
|
|
16304
16684
|
"modelValue": keyword.value,
|
|
16305
16685
|
"onUpdate:modelValue": ($event) => keyword.value = $event,
|
|
16306
16686
|
"class": bem$o("search"),
|
|
16687
|
+
"variant": "pure",
|
|
16307
16688
|
"shape": "round",
|
|
16308
16689
|
"inputAlign": "left",
|
|
16309
16690
|
"autofocus": true,
|
|
16310
16691
|
"placeholder": "搜索对象",
|
|
16692
|
+
"onSearch": () => {
|
|
16693
|
+
if (props2.search) {
|
|
16694
|
+
if (searchTimer)
|
|
16695
|
+
clearTimeout(searchTimer);
|
|
16696
|
+
runSearch();
|
|
16697
|
+
}
|
|
16698
|
+
},
|
|
16311
16699
|
"onCancel": () => {
|
|
16312
16700
|
searching.value = false;
|
|
16313
16701
|
keyword.value = "";
|
|
@@ -16346,21 +16734,7 @@ var stdin_default$t = defineComponent({
|
|
|
16346
16734
|
}, null)]
|
|
16347
16735
|
})]), createVNode("div", {
|
|
16348
16736
|
"class": bem$o("body")
|
|
16349
|
-
}, [searching.value ?
|
|
16350
|
-
"class": bem$o("tree-card", {
|
|
16351
|
-
search: true
|
|
16352
|
-
})
|
|
16353
|
-
}, [searchResults.value.map((item) => createVNode(Cell, {
|
|
16354
|
-
"key": item.id,
|
|
16355
|
-
"rightSelect": selected.value.includes(item.id),
|
|
16356
|
-
"selectType": "checkbox",
|
|
16357
|
-
"border": true,
|
|
16358
|
-
"clickable": true,
|
|
16359
|
-
"onClick": () => toggleSearchItem(item),
|
|
16360
|
-
"onUpdate:rightSelect": () => toggleSearchItem(item)
|
|
16361
|
-
}, {
|
|
16362
|
-
title: () => renderHighlightedText(item.text)
|
|
16363
|
-
}))]) : view.value === 0 ? renderTree(props2.spaceItems) : createVNode(Fragment, null, [createVNode("div", {
|
|
16737
|
+
}, [searching.value ? renderSearchContent() : view.value === 0 ? renderTree(props2.spaceItems) : createVNode(Fragment, null, [createVNode("div", {
|
|
16364
16738
|
"class": bem$o("type-tabs")
|
|
16365
16739
|
}, [createVNode(FilterTag, {
|
|
16366
16740
|
"selected": specialtyType.value === 0,
|
|
@@ -21398,7 +21772,7 @@ const Lazyload = {
|
|
|
21398
21772
|
});
|
|
21399
21773
|
}
|
|
21400
21774
|
};
|
|
21401
|
-
const version = "0.0.
|
|
21775
|
+
const version = "0.0.45";
|
|
21402
21776
|
function install(app) {
|
|
21403
21777
|
const components = [
|
|
21404
21778
|
ActionBar,
|