workdesktop-ai 1.2.0 → 1.2.1
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/CHANGELOG.md +12 -0
- package/README.md +11 -8
- package/dist/api-button/index.mjs +1 -1
- package/dist/auto-complete/index.mjs +1 -1
- package/dist/checkbox-list/index.mjs +1 -1
- package/dist/chunks/{ApiButton.vue_vue_type_script_setup_true_lang-CH_B3jbO.mjs → ApiButton.vue_vue_type_script_setup_true_lang-3BjZSAPZ.mjs} +2 -2
- package/dist/chunks/{ApiButton.vue_vue_type_script_setup_true_lang-CH_B3jbO.mjs.map → ApiButton.vue_vue_type_script_setup_true_lang-3BjZSAPZ.mjs.map} +1 -1
- package/dist/chunks/{AutoComplete-6yrCFGZ5.mjs → AutoComplete-C6Nxatvt.mjs} +2 -2
- package/dist/chunks/{AutoComplete-6yrCFGZ5.mjs.map → AutoComplete-C6Nxatvt.mjs.map} +1 -1
- package/dist/chunks/{CheckboxList-ChmfF6zs.mjs → CheckboxList-5AEx33r5.mjs} +2 -2
- package/dist/chunks/{CheckboxList-ChmfF6zs.mjs.map → CheckboxList-5AEx33r5.mjs.map} +1 -1
- package/dist/chunks/{ConfirmButton.vue_vue_type_script_setup_true_lang-D9ZUQB7V.mjs → ConfirmButton.vue_vue_type_script_setup_true_lang-CXYH1Rlc.mjs} +2 -2
- package/dist/chunks/{ConfirmButton.vue_vue_type_script_setup_true_lang-D9ZUQB7V.mjs.map → ConfirmButton.vue_vue_type_script_setup_true_lang-CXYH1Rlc.mjs.map} +1 -1
- package/dist/chunks/{DataForm-Rsa1PT-X.mjs → DataForm-C6VLTSOm.mjs} +3 -3
- package/dist/chunks/{DataForm-Rsa1PT-X.mjs.map → DataForm-C6VLTSOm.mjs.map} +1 -1
- package/dist/chunks/{DataGrid-DzbJpT43.mjs → DataGrid-Dd7n5JM7.mjs} +3 -3
- package/dist/chunks/{DataGrid-DzbJpT43.mjs.map → DataGrid-Dd7n5JM7.mjs.map} +1 -1
- package/dist/chunks/{EditableGrid-C-0uy89H.mjs → EditableGrid-CDeeVkaX.mjs} +3 -3
- package/dist/chunks/{EditableGrid-C-0uy89H.mjs.map → EditableGrid-CDeeVkaX.mjs.map} +1 -1
- package/dist/chunks/{ImageUpload-CrDyIjWC.mjs → ImageUpload-CQA9XQ7Q.mjs} +2 -2
- package/dist/chunks/{ImageUpload-CrDyIjWC.mjs.map → ImageUpload-CQA9XQ7Q.mjs.map} +1 -1
- package/dist/chunks/Path-C_oyo6Dg.mjs +200 -0
- package/dist/chunks/Path-C_oyo6Dg.mjs.map +1 -0
- package/dist/chunks/{PromptButton.vue_vue_type_script_setup_true_lang-ClrF3C2w.mjs → PromptButton.vue_vue_type_script_setup_true_lang-oYaMH-CI.mjs} +2 -2
- package/dist/chunks/{PromptButton.vue_vue_type_script_setup_true_lang-ClrF3C2w.mjs.map → PromptButton.vue_vue_type_script_setup_true_lang-oYaMH-CI.mjs.map} +1 -1
- package/dist/chunks/{RadioList-BIwUZ6lm.mjs → RadioList-BUWcP_Pk.mjs} +2 -2
- package/dist/chunks/{RadioList-BIwUZ6lm.mjs.map → RadioList-BUWcP_Pk.mjs.map} +1 -1
- package/dist/chunks/{Requester.vue_vue_type_script_setup_true_lang-Bu10N1Hj.mjs → Requester.vue_vue_type_script_setup_true_lang-DkLqAjug.mjs} +2 -2
- package/dist/chunks/{Requester.vue_vue_type_script_setup_true_lang-Bu10N1Hj.mjs.map → Requester.vue_vue_type_script_setup_true_lang-DkLqAjug.mjs.map} +1 -1
- package/dist/chunks/{Select-DlJ9U0nE.mjs → Select-uvFy7_NU.mjs} +2 -2
- package/dist/chunks/{Select-DlJ9U0nE.mjs.map → Select-uvFy7_NU.mjs.map} +1 -1
- package/dist/chunks/Station-DLV19USa.mjs +780 -0
- package/dist/chunks/Station-DLV19USa.mjs.map +1 -0
- package/dist/chunks/{Switch.vue_vue_type_script_setup_true_lang-BxJdsReQ.mjs → Switch.vue_vue_type_script_setup_true_lang-DUhXAGs2.mjs} +2 -2
- package/dist/chunks/{Switch.vue_vue_type_script_setup_true_lang-BxJdsReQ.mjs.map → Switch.vue_vue_type_script_setup_true_lang-DUhXAGs2.mjs.map} +1 -1
- package/dist/chunks/{Upload.vue_vue_type_script_setup_true_lang-DORizGEF.mjs → Upload.vue_vue_type_script_setup_true_lang-CHGCjpKK.mjs} +2 -2
- package/dist/chunks/{Upload.vue_vue_type_script_setup_true_lang-DORizGEF.mjs.map → Upload.vue_vue_type_script_setup_true_lang-CHGCjpKK.mjs.map} +1 -1
- package/dist/chunks/{Viewer-DcMSN3_1.mjs → Viewer-CjLSQTrw.mjs} +2 -2
- package/dist/chunks/{Viewer-DcMSN3_1.mjs.map → Viewer-CjLSQTrw.mjs.map} +1 -1
- package/dist/chunks/{http-9ToPNkWJ.mjs → http-C06mNpwY.mjs} +1180 -1065
- package/dist/chunks/http-C06mNpwY.mjs.map +1 -0
- package/dist/chunks/station-linkage-D54-_iyL.mjs +77 -0
- package/dist/chunks/station-linkage-D54-_iyL.mjs.map +1 -0
- package/dist/chunks/{useApiAction-BetCGQrx.mjs → useApiAction-DxVQWWxv.mjs} +2 -2
- package/dist/chunks/{useApiAction-BetCGQrx.mjs.map → useApiAction-DxVQWWxv.mjs.map} +1 -1
- package/dist/chunks/{useColumnSettings-CnXeA0k7.mjs → useColumnSettings-BwG2V9xp.mjs} +2 -2
- package/dist/chunks/{useColumnSettings-CnXeA0k7.mjs.map → useColumnSettings-BwG2V9xp.mjs.map} +1 -1
- package/dist/chunks/{useOptionsLoader-BwRdHDPL.mjs → useOptionsLoader-DEVCYhrp.mjs} +2 -2
- package/dist/chunks/{useOptionsLoader-BwRdHDPL.mjs.map → useOptionsLoader-DEVCYhrp.mjs.map} +1 -1
- package/dist/confirm-button/index.mjs +1 -1
- package/dist/data-form/index.mjs +1 -1
- package/dist/data-form/style.css +1 -1
- package/dist/data-grid/index.mjs +1 -1
- package/dist/editable-grid/index.mjs +1 -1
- package/dist/image-upload/index.mjs +1 -1
- package/dist/index.esm.js +86 -80
- package/dist/index.esm.js.map +1 -1
- package/dist/index.umd.js +124 -21
- package/dist/index.umd.js.map +1 -1
- package/dist/path/index.mjs +7 -0
- package/dist/path/index.mjs.map +1 -0
- package/dist/path/style.css +1 -0
- package/dist/prompt-button/index.mjs +1 -1
- package/dist/radio-list/index.mjs +1 -1
- package/dist/requester/index.mjs +1 -1
- package/dist/select/index.mjs +1 -1
- package/dist/station/index.mjs +1 -1
- package/dist/station/style.css +1 -1
- package/dist/style.css +1 -1
- package/dist/switch/index.mjs +1 -1
- package/dist/upload/index.mjs +1 -1
- package/dist/viewer/index.mjs +1 -1
- package/llms.txt +69 -9
- package/package.json +6 -1
- package/dist/chunks/Station-CrMTjqfa.mjs +0 -796
- package/dist/chunks/Station-CrMTjqfa.mjs.map +0 -1
- package/dist/chunks/http-9ToPNkWJ.mjs.map +0 -1
- package/dist/types/src/components/buttons/ApiButton.vue.d.ts +0 -134
- package/dist/types/src/components/buttons/ConfirmButton.vue.d.ts +0 -169
- package/dist/types/src/components/buttons/DialogButton.vue.d.ts +0 -167
- package/dist/types/src/components/buttons/DrawerButton.vue.d.ts +0 -186
- package/dist/types/src/components/buttons/PopconfirmButton.vue.d.ts +0 -317
- package/dist/types/src/components/buttons/PromptButton.vue.d.ts +0 -180
- package/dist/types/src/components/buttons/RouteButton.vue.d.ts +0 -122
- package/dist/types/src/components/buttons/TipsButton.vue.d.ts +0 -66
- package/dist/types/src/components/buttons/useApiAction.d.ts +0 -20
- package/dist/types/src/components/common/props.d.ts +0 -122
- package/dist/types/src/components/containers/Drawer.vue.d.ts +0 -172
- package/dist/types/src/components/containers/Iframe.vue.d.ts +0 -81
- package/dist/types/src/components/containers/containerContext.d.ts +0 -15
- package/dist/types/src/components/containers/useContainerController.d.ts +0 -24
- package/dist/types/src/components/containers/useIframeContainer.d.ts +0 -20
- package/dist/types/src/components/core/Requester.vue.d.ts +0 -41
- package/dist/types/src/components/data/datagrid/DataGrid.vue.d.ts +0 -542
- package/dist/types/src/components/data/datagrid/useColumnSettings.d.ts +0 -62
- package/dist/types/src/components/data/editable-grid/EditableGrid.vue.d.ts +0 -586
- package/dist/types/src/components/data/viewer/Viewer.vue.d.ts +0 -187
- package/dist/types/src/components/form/FormItem.vue.d.ts +0 -62
- package/dist/types/src/components/form/SearchItem.vue.d.ts +0 -62
- package/dist/types/src/components/form/SearchPanel.vue.d.ts +0 -167
- package/dist/types/src/components/form/data-form/DataForm.vue.d.ts +0 -311
- package/dist/types/src/components/index.d.ts +0 -31
- package/dist/types/src/components/inputs/AutoComplete.vue.d.ts +0 -166
- package/dist/types/src/components/inputs/CheckboxList.vue.d.ts +0 -166
- package/dist/types/src/components/inputs/RadioList.vue.d.ts +0 -166
- package/dist/types/src/components/inputs/Select.vue.d.ts +0 -176
- package/dist/types/src/components/inputs/Switch.vue.d.ts +0 -116
- package/dist/types/src/components/inputs/useOptionsLoader.d.ts +0 -32
- package/dist/types/src/components/layout/Station.vue.d.ts +0 -302
- package/dist/types/src/components/layout/StationMenuNode.vue.d.ts +0 -20
- package/dist/types/src/components/layout/types.d.ts +0 -54
- package/dist/types/src/components/styles/Panel.vue.d.ts +0 -94
- package/dist/types/src/components/styles/Tips.vue.d.ts +0 -60
- package/dist/types/src/components/upload/ImageUpload.vue.d.ts +0 -176
- package/dist/types/src/components/upload/Upload.vue.d.ts +0 -235
- package/dist/types/src/entries/api-button.d.ts +0 -9
- package/dist/types/src/entries/auto-complete.d.ts +0 -9
- package/dist/types/src/entries/checkbox-list.d.ts +0 -9
- package/dist/types/src/entries/components-map.d.ts +0 -8
- package/dist/types/src/entries/confirm-button.d.ts +0 -9
- package/dist/types/src/entries/data-form.d.ts +0 -9
- package/dist/types/src/entries/data-grid.d.ts +0 -9
- package/dist/types/src/entries/dialog-button.d.ts +0 -9
- package/dist/types/src/entries/drawer-button.d.ts +0 -9
- package/dist/types/src/entries/drawer.d.ts +0 -9
- package/dist/types/src/entries/editable-grid.d.ts +0 -9
- package/dist/types/src/entries/form-item.d.ts +0 -9
- package/dist/types/src/entries/iframe.d.ts +0 -9
- package/dist/types/src/entries/image-upload.d.ts +0 -9
- package/dist/types/src/entries/panel.d.ts +0 -9
- package/dist/types/src/entries/prompt-button.d.ts +0 -9
- package/dist/types/src/entries/radio-list.d.ts +0 -9
- package/dist/types/src/entries/requester.d.ts +0 -9
- package/dist/types/src/entries/route-button.d.ts +0 -9
- package/dist/types/src/entries/search-item.d.ts +0 -9
- package/dist/types/src/entries/search-panel.d.ts +0 -9
- package/dist/types/src/entries/select.d.ts +0 -9
- package/dist/types/src/entries/station.d.ts +0 -9
- package/dist/types/src/entries/switch.d.ts +0 -9
- package/dist/types/src/entries/tips-button.d.ts +0 -9
- package/dist/types/src/entries/tips.d.ts +0 -9
- package/dist/types/src/entries/upload.d.ts +0 -9
- package/dist/types/src/entries/viewer.d.ts +0 -9
- package/dist/types/src/index.d.ts +0 -23
- package/dist/types/src/lib/composables/useConfig.d.ts +0 -19
- package/dist/types/src/lib/composables/useDataGrid.d.ts +0 -69
- package/dist/types/src/lib/composables/useEventBus.d.ts +0 -16
- package/dist/types/src/lib/composables/useGlobalState.d.ts +0 -5
- package/dist/types/src/lib/composables/useRequest.d.ts +0 -42
- package/dist/types/src/lib/configs/default-config.d.ts +0 -6
- package/dist/types/src/lib/core/config.d.ts +0 -28
- package/dist/types/src/lib/core/http.d.ts +0 -100
- package/dist/types/src/lib/core/linkage.d.ts +0 -48
- package/dist/types/src/lib/core/skins/apple.d.ts +0 -3
- package/dist/types/src/lib/core/skins/business.d.ts +0 -3
- package/dist/types/src/lib/core/skins/chinese.d.ts +0 -3
- package/dist/types/src/lib/core/skins/cool.d.ts +0 -3
- package/dist/types/src/lib/core/skins/cyberpunk.d.ts +0 -3
- package/dist/types/src/lib/core/skins/default.d.ts +0 -3
- package/dist/types/src/lib/core/skins/fashion.d.ts +0 -3
- package/dist/types/src/lib/core/skins/flat.d.ts +0 -3
- package/dist/types/src/lib/core/skins/governance.d.ts +0 -3
- package/dist/types/src/lib/core/skins/index.d.ts +0 -15
- package/dist/types/src/lib/core/skins/tech-brain.d.ts +0 -5
- package/dist/types/src/lib/core/skins/tech.d.ts +0 -3
- package/dist/types/src/lib/core/skins/types.d.ts +0 -19
- package/dist/types/src/lib/core/station-linkage.d.ts +0 -41
- package/dist/types/src/lib/core/theme.d.ts +0 -11
- package/dist/types/src/lib/core/utils.d.ts +0 -28
- package/dist/types/src/lib/install.d.ts +0 -11
- package/dist/types/src/types/config.d.ts +0 -130
- package/dist/types/src/types/index.d.ts +0 -4
- package/dist/types/vite.config.d.ts +0 -7
package/dist/index.esm.js
CHANGED
|
@@ -1,41 +1,42 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
-
import { i as k, r as P } from "./chunks/http-
|
|
3
|
-
import { R as
|
|
4
|
-
import { W as G } from "./chunks/DataGrid-
|
|
5
|
-
import { W as E } from "./chunks/EditableGrid-
|
|
6
|
-
import { W as j } from "./chunks/Viewer-
|
|
7
|
-
import { W as q } from "./chunks/DataForm-
|
|
2
|
+
import { i as k, r as P } from "./chunks/http-C06mNpwY.mjs";
|
|
3
|
+
import { R as ye, S as Be, d as Se, g as we, a as Ce, b as ve, l as Pe, m as De, c as Re, s as Te } from "./chunks/http-C06mNpwY.mjs";
|
|
4
|
+
import { W as G } from "./chunks/DataGrid-Dd7n5JM7.mjs";
|
|
5
|
+
import { W as E } from "./chunks/EditableGrid-CDeeVkaX.mjs";
|
|
6
|
+
import { W as j } from "./chunks/Viewer-CjLSQTrw.mjs";
|
|
7
|
+
import { W as q } from "./chunks/DataForm-C6VLTSOm.mjs";
|
|
8
8
|
import { W as I } from "./chunks/SearchPanel-DPlWWuXb.mjs";
|
|
9
9
|
import { W as L } from "./chunks/FormItem-C1q0opnk.mjs";
|
|
10
10
|
import { W as _ } from "./chunks/SearchItem-pFO57lEO.mjs";
|
|
11
|
-
import { _ as N } from "./chunks/ApiButton.vue_vue_type_script_setup_true_lang-
|
|
12
|
-
import { _ as
|
|
13
|
-
import { _ as
|
|
11
|
+
import { _ as N } from "./chunks/ApiButton.vue_vue_type_script_setup_true_lang-3BjZSAPZ.mjs";
|
|
12
|
+
import { _ as M } from "./chunks/ConfirmButton.vue_vue_type_script_setup_true_lang-CXYH1Rlc.mjs";
|
|
13
|
+
import { _ as F } from "./chunks/DialogButton.vue_vue_type_script_setup_true_lang-CTXP79zc.mjs";
|
|
14
14
|
import { defineComponent as V, ref as A, resolveComponent as S, openBlock as D, createElementBlock as U, Fragment as H, createVNode as R, mergeProps as z, unref as K, withCtx as J, renderSlot as Q, createTextVNode as X, toDisplayString as Y, createBlock as Z, createCommentVNode as tt, shallowRef as T, onUnmounted as $, isReactive as et, reactive as ot } from "vue";
|
|
15
|
-
import { u as rt } from "./chunks/useApiAction-
|
|
15
|
+
import { u as rt } from "./chunks/useApiAction-DxVQWWxv.mjs";
|
|
16
16
|
import { t as nt, b as at, a as st, h as it, f as lt } from "./chunks/props-DAytpx7D.mjs";
|
|
17
|
-
import { _ as ft } from "./chunks/PromptButton.vue_vue_type_script_setup_true_lang-
|
|
17
|
+
import { _ as ft } from "./chunks/PromptButton.vue_vue_type_script_setup_true_lang-oYaMH-CI.mjs";
|
|
18
18
|
import { _ as ct } from "./chunks/RouteButton.vue_vue_type_script_setup_true_lang-Da0D3tKA.mjs";
|
|
19
19
|
import { _ as ut } from "./chunks/TipsButton.vue_vue_type_script_setup_true_lang-DvcpRSV1.mjs";
|
|
20
20
|
import { _ as pt } from "./chunks/DrawerButton.vue_vue_type_script_setup_true_lang-DUda4p7_.mjs";
|
|
21
21
|
import { W as dt } from "./chunks/Drawer-ucXKUecL.mjs";
|
|
22
22
|
import { W as mt } from "./chunks/Iframe-CeSiMnvR.mjs";
|
|
23
|
-
import { W as gt } from "./chunks/Select-
|
|
24
|
-
import { W as Wt } from "./chunks/AutoComplete-
|
|
25
|
-
import { W as ht } from "./chunks/CheckboxList-
|
|
26
|
-
import { W as bt } from "./chunks/RadioList-
|
|
27
|
-
import { _ as yt } from "./chunks/Switch.vue_vue_type_script_setup_true_lang-
|
|
28
|
-
import { _ as Bt } from "./chunks/Upload.vue_vue_type_script_setup_true_lang-
|
|
29
|
-
import { W as St } from "./chunks/ImageUpload-
|
|
23
|
+
import { W as gt } from "./chunks/Select-uvFy7_NU.mjs";
|
|
24
|
+
import { W as Wt } from "./chunks/AutoComplete-C6Nxatvt.mjs";
|
|
25
|
+
import { W as ht } from "./chunks/CheckboxList-5AEx33r5.mjs";
|
|
26
|
+
import { W as bt } from "./chunks/RadioList-BUWcP_Pk.mjs";
|
|
27
|
+
import { _ as yt } from "./chunks/Switch.vue_vue_type_script_setup_true_lang-DUhXAGs2.mjs";
|
|
28
|
+
import { _ as Bt } from "./chunks/Upload.vue_vue_type_script_setup_true_lang-CHGCjpKK.mjs";
|
|
29
|
+
import { W as St } from "./chunks/ImageUpload-CQA9XQ7Q.mjs";
|
|
30
30
|
import { W as wt } from "./chunks/Panel-BHqAeBaH.mjs";
|
|
31
|
+
import { W as Ct } from "./chunks/Path-C_oyo6Dg.mjs";
|
|
31
32
|
import { W as vt } from "./chunks/Tips-IWCZcR1K.mjs";
|
|
32
|
-
import { W as
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import { u as
|
|
38
|
-
const
|
|
33
|
+
import { W as Pt } from "./chunks/Station-DLV19USa.mjs";
|
|
34
|
+
import { _ as Dt } from "./chunks/Requester.vue_vue_type_script_setup_true_lang-DkLqAjug.mjs";
|
|
35
|
+
import { u as $e, a as Oe } from "./chunks/Requester.vue_vue_type_script_setup_true_lang-DkLqAjug.mjs";
|
|
36
|
+
import { c as ke, g as Ge, r as Ee, a as je, b as qe, s as Ie } from "./chunks/linkage-FbL1mcz3.mjs";
|
|
37
|
+
import { g as _e, n as Ne, r as Me, a as Fe, s as Ve, b as Ue } from "./chunks/station-linkage-D54-_iyL.mjs";
|
|
38
|
+
import { u as ze } from "./chunks/useColumnSettings-BwG2V9xp.mjs";
|
|
39
|
+
const Rt = /* @__PURE__ */ V({
|
|
39
40
|
name: "WdPopconfirmButton",
|
|
40
41
|
inheritAttrs: !1,
|
|
41
42
|
__name: "PopconfirmButton",
|
|
@@ -178,15 +179,15 @@ const Dt = /* @__PURE__ */ V({
|
|
|
178
179
|
], 64);
|
|
179
180
|
};
|
|
180
181
|
}
|
|
181
|
-
}),
|
|
182
|
+
}), Tt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
182
183
|
__proto__: null,
|
|
183
184
|
WdApiButton: N,
|
|
184
185
|
WdAutoComplete: Wt,
|
|
185
186
|
WdCheckboxList: ht,
|
|
186
|
-
WdConfirmButton:
|
|
187
|
+
WdConfirmButton: M,
|
|
187
188
|
WdDataForm: q,
|
|
188
189
|
WdDataGrid: G,
|
|
189
|
-
WdDialogButton:
|
|
190
|
+
WdDialogButton: F,
|
|
190
191
|
WdDrawer: dt,
|
|
191
192
|
WdDrawerButton: pt,
|
|
192
193
|
WdEditableGrid: E,
|
|
@@ -194,26 +195,27 @@ const Dt = /* @__PURE__ */ V({
|
|
|
194
195
|
WdIframe: mt,
|
|
195
196
|
WdImageUpload: St,
|
|
196
197
|
WdPanel: wt,
|
|
197
|
-
|
|
198
|
+
WdPath: Ct,
|
|
199
|
+
WdPopconfirmButton: Rt,
|
|
198
200
|
WdPromptButton: ft,
|
|
199
201
|
WdRadioList: bt,
|
|
200
|
-
WdRequester:
|
|
202
|
+
WdRequester: Dt,
|
|
201
203
|
WdRouteButton: ct,
|
|
202
204
|
WdSearchItem: _,
|
|
203
205
|
WdSearchPanel: I,
|
|
204
206
|
WdSelect: gt,
|
|
205
|
-
WdStation:
|
|
207
|
+
WdStation: Pt,
|
|
206
208
|
WdSwitch: yt,
|
|
207
209
|
WdTips: vt,
|
|
208
210
|
WdTipsButton: ut,
|
|
209
211
|
WdUpload: Bt,
|
|
210
212
|
WdViewer: j
|
|
211
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
212
|
-
k(o),
|
|
213
|
+
}, Symbol.toStringTag, { value: "Module" })), At = Object.values(Tt), $t = (t, o) => {
|
|
214
|
+
k(o), At.forEach((e) => {
|
|
213
215
|
e != null && e.name && t.component(e.name, e);
|
|
214
216
|
});
|
|
215
|
-
},
|
|
216
|
-
function
|
|
217
|
+
}, de = { install: $t };
|
|
218
|
+
function me(t, o = {}) {
|
|
217
219
|
const {
|
|
218
220
|
method: e = "post",
|
|
219
221
|
immediate: a = !0,
|
|
@@ -229,14 +231,14 @@ function pe(t, o = {}) {
|
|
|
229
231
|
}
|
|
230
232
|
async function g(W) {
|
|
231
233
|
r.value = !0, u.value = null, l && l.abort(), l = new AbortController();
|
|
232
|
-
const
|
|
234
|
+
const C = { ...s, signal: l.signal };
|
|
233
235
|
try {
|
|
234
236
|
let n;
|
|
235
|
-
const
|
|
237
|
+
const v = b();
|
|
236
238
|
return e === "get" || e === "delete" ? n = await P.request(
|
|
237
|
-
{ url:
|
|
238
|
-
|
|
239
|
-
) : n = await P.request({ url:
|
|
239
|
+
{ url: v, method: e, params: W },
|
|
240
|
+
C
|
|
241
|
+
) : n = await P.request({ url: v, method: e, data: W }, C), n.success ? (h.value = n.data, f == null || f(n.data, n)) : d == null || d(n), n;
|
|
240
242
|
} catch (n) {
|
|
241
243
|
return u.value = n instanceof Error ? n : new Error((n == null ? void 0 : n.message) || "请求失败"), m == null || m(n), null;
|
|
242
244
|
} finally {
|
|
@@ -261,7 +263,7 @@ function pe(t, o = {}) {
|
|
|
261
263
|
};
|
|
262
264
|
}
|
|
263
265
|
const p = /* @__PURE__ */ new Map();
|
|
264
|
-
function
|
|
266
|
+
function Ot(t, o) {
|
|
265
267
|
const e = p.get(t);
|
|
266
268
|
e && e.forEach((a) => {
|
|
267
269
|
try {
|
|
@@ -271,19 +273,19 @@ function $t(t, o) {
|
|
|
271
273
|
}
|
|
272
274
|
});
|
|
273
275
|
}
|
|
274
|
-
function
|
|
276
|
+
function xt(t, o) {
|
|
275
277
|
return p.has(t) || p.set(t, /* @__PURE__ */ new Set()), p.get(t).add(o), () => O(t, o);
|
|
276
278
|
}
|
|
277
279
|
function O(t, o) {
|
|
278
280
|
var e;
|
|
279
281
|
(e = p.get(t)) == null || e.delete(o);
|
|
280
282
|
}
|
|
281
|
-
function
|
|
283
|
+
function kt(t) {
|
|
282
284
|
t ? p.delete(t) : p.clear();
|
|
283
285
|
}
|
|
284
|
-
function
|
|
286
|
+
function ge() {
|
|
285
287
|
const t = [], o = (e, a) => {
|
|
286
|
-
const i =
|
|
288
|
+
const i = xt(e, a);
|
|
287
289
|
return t.push(i), i;
|
|
288
290
|
};
|
|
289
291
|
try {
|
|
@@ -293,14 +295,14 @@ function de() {
|
|
|
293
295
|
} catch {
|
|
294
296
|
}
|
|
295
297
|
return {
|
|
296
|
-
emit:
|
|
298
|
+
emit: Ot,
|
|
297
299
|
on: o,
|
|
298
300
|
off: O,
|
|
299
|
-
clear:
|
|
301
|
+
clear: kt
|
|
300
302
|
};
|
|
301
303
|
}
|
|
302
304
|
const c = ot({});
|
|
303
|
-
function
|
|
305
|
+
function We(t, o) {
|
|
304
306
|
if (!(t in c))
|
|
305
307
|
c[t] = o ? et(o) ? o : { ...o } : {};
|
|
306
308
|
else if (o && typeof o == "object")
|
|
@@ -316,15 +318,15 @@ function me(t, o) {
|
|
|
316
318
|
} };
|
|
317
319
|
}
|
|
318
320
|
export {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
+
ye as RequestAPI,
|
|
322
|
+
Be as SKIN_PRESETS,
|
|
321
323
|
N as WdApiButton,
|
|
322
324
|
Wt as WdAutoComplete,
|
|
323
325
|
ht as WdCheckboxList,
|
|
324
|
-
|
|
326
|
+
M as WdConfirmButton,
|
|
325
327
|
q as WdDataForm,
|
|
326
328
|
G as WdDataGrid,
|
|
327
|
-
|
|
329
|
+
F as WdDialogButton,
|
|
328
330
|
dt as WdDrawer,
|
|
329
331
|
pt as WdDrawerButton,
|
|
330
332
|
E as WdEditableGrid,
|
|
@@ -332,47 +334,51 @@ export {
|
|
|
332
334
|
mt as WdIframe,
|
|
333
335
|
St as WdImageUpload,
|
|
334
336
|
wt as WdPanel,
|
|
335
|
-
|
|
337
|
+
Ct as WdPath,
|
|
338
|
+
Rt as WdPopconfirmButton,
|
|
336
339
|
ft as WdPromptButton,
|
|
337
340
|
bt as WdRadioList,
|
|
338
|
-
|
|
341
|
+
Dt as WdRequester,
|
|
339
342
|
ct as WdRouteButton,
|
|
340
343
|
_ as WdSearchItem,
|
|
341
344
|
I as WdSearchPanel,
|
|
342
345
|
gt as WdSelect,
|
|
343
|
-
|
|
346
|
+
Pt as WdStation,
|
|
344
347
|
yt as WdSwitch,
|
|
345
348
|
vt as WdTips,
|
|
346
349
|
ut as WdTipsButton,
|
|
347
350
|
Bt as WdUpload,
|
|
348
351
|
j as WdViewer,
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
352
|
+
de as WorkDesktop,
|
|
353
|
+
ke as clearLinkageRegistry,
|
|
354
|
+
Se as deepMerge,
|
|
355
|
+
de as default,
|
|
356
|
+
we as getComponentDefault,
|
|
357
|
+
Ge as getDataGrids,
|
|
358
|
+
Ce as getGlobalConfig,
|
|
359
|
+
ve as getSkinPreset,
|
|
360
|
+
_e as getStationMenuChain,
|
|
357
361
|
P as http,
|
|
358
362
|
k as initConfig,
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
363
|
+
Pe as listSkins,
|
|
364
|
+
De as mergeConfig,
|
|
365
|
+
Ne as notifyStationChange,
|
|
366
|
+
Ee as refreshDataGrid,
|
|
367
|
+
Me as refreshStationView,
|
|
368
|
+
je as registerDataGrid,
|
|
369
|
+
Fe as registerStation,
|
|
365
370
|
P as request,
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
371
|
+
Re as resetConfig,
|
|
372
|
+
qe as resetSearchDataGrid,
|
|
373
|
+
Ie as searchDataGrid,
|
|
374
|
+
Te as setGlobalConfig,
|
|
375
|
+
Ve as setStationFooter,
|
|
376
|
+
Ue as subscribeStationChange,
|
|
377
|
+
$e as useConfig,
|
|
378
|
+
ze as useDataGrid,
|
|
379
|
+
ge as useEventBus,
|
|
380
|
+
Oe as useGlobalConfig,
|
|
381
|
+
We as useGlobalState,
|
|
382
|
+
me as useRequest
|
|
377
383
|
};
|
|
378
384
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/components/buttons/PopconfirmButton.vue","../src/lib/install.ts","../src/lib/composables/useRequest.ts","../src/lib/composables/useEventBus.ts","../src/lib/composables/useGlobalState.ts"],"sourcesContent":["<template>\n <!-- 悬停提示(el-tooltip)与气泡确认(el-popconfirm)平级,均以 virtual-ref 指向同一按钮:\n hover 显示提示、click 弹出确认,互不嵌套、互不冲突 -->\n <el-button ref=\"btnRef\" v-bind=\"$attrs\" :loading=\"loading\" @click=\"onClick\">\n <slot>{{ label }}</slot>\n </el-button>\n\n <el-tooltip\n v-if=\"tips\"\n :virtual-ref=\"btnRef\"\n virtual-triggering\n :content=\"tips\"\n :effect=\"tipsType\"\n :placement=\"placement\"\n />\n\n <el-popconfirm\n :virtual-ref=\"btnRef\"\n virtual-triggering\n :title=\"title\"\n :confirm-button-text=\"confirmButtonText\"\n :cancel-button-text=\"cancelButtonText\"\n :confirm-button-type=\"confirmButtonType\"\n :cancel-button-type=\"cancelButtonType\"\n :icon=\"popIcon\"\n :icon-color=\"popIconColor\"\n :hide-after=\"hideAfter\"\n :disabled=\"popDisabled\"\n :width=\"width\"\n :trigger=\"trigger\"\n :placement=\"placement\"\n :popper-class=\"popperClass\"\n :popper-options=\"popperOptions\"\n :show-after=\"showAfter\"\n :teleported=\"teleported\"\n :persistent=\"persistent\"\n @confirm=\"onConfirm\"\n @cancel=\"onCancel\"\n @show=\"emit('show')\"\n @hide=\"emit('hide')\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, type Component, type PropType } from 'vue'\nimport { useApiAction } from './useApiAction'\nimport { filterProp, headRefreshDatagridProp, apiProps, buttonTextProp, tipsProp } from '../common/props'\n\ndefineOptions({ name: 'WdPopconfirmButton', inheritAttrs: false })\n\nconst props = defineProps({\n ...filterProp,\n ...headRefreshDatagridProp,\n ...apiProps,\n ...buttonTextProp,\n ...tipsProp,\n // ---------- el-popconfirm 集成属性 ----------\n /** 确认提示标题 */\n title: { type: String, default: '' },\n /** 确定按钮文案 */\n confirmButtonText: { type: String, default: '确定' },\n /** 取消按钮文案 */\n cancelButtonText: { type: String, default: '取消' },\n /** 确定按钮类型 */\n confirmButtonType: {\n type: String as PropType<'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'>,\n default: 'primary'\n },\n /** 取消按钮类型 */\n cancelButtonType: {\n type: String as PropType<'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'>,\n default: 'text'\n },\n /** 弹层图标(命名 popIcon 避免与 el-button 的 icon 透传冲突) */\n popIcon: { type: [String, Object] as PropType<string | Component>, default: undefined },\n /** 弹层图标颜色 */\n popIconColor: { type: String, default: undefined },\n /** 关闭动画时长(ms,继承自 el-popconfirm) */\n hideAfter: { type: Number, default: undefined },\n /** 禁用确认弹层(命名 popDisabled 避免与 el-button 的 disabled 透传冲突) */\n popDisabled: { type: Boolean, default: false },\n /** 弹层宽度 */\n width: { type: [String, Number], default: undefined },\n /** 触发方式 */\n trigger: {\n type: String as PropType<'click' | 'hover' | 'focus' | 'contextmenu'>,\n default: 'click'\n },\n /** 弹层自定义类名 */\n popperClass: { type: String, default: '' },\n /** popper 配置 */\n popperOptions: { type: Object, default: undefined },\n /** 显示延迟(ms) */\n showAfter: { type: Number, default: undefined },\n /** 是否挂载到 body */\n teleported: { type: Boolean, default: true },\n /** 关闭时是否保留内容 */\n persistent: { type: Boolean, default: false },\n // ---------- 请求相关 ----------\n /** 按钮级 loading(默认 true);false 时按钮不转圈 */\n buttonLoading: { type: Boolean, default: true },\n /** 页面级 loading(全局遮罩 ElLoading) */\n pageLoading: { type: Boolean, default: false }\n})\n\nconst emit = defineEmits([\n 'click',\n 'confirm',\n 'cancel',\n 'show',\n 'hide',\n 'apiBefore',\n 'apiSuccess',\n 'apiFail',\n 'apiException',\n 'apiAfter'\n])\n\n/** 按钮引用:el-tooltip / el-popconfirm 通过 virtual-ref 指向它 */\nconst btnRef = ref<InstanceType<typeof import('element-plus').ElButton>>()\n\nconst { loading, doRequest } = useApiAction({\n getApi: () => props.api,\n getMethod: () => props.apiMethod,\n getParam: () => props.apiParam,\n getFilter: () => props.filter,\n getHeadRefresh: () => props.headRefreshDatagrid,\n emit,\n buttonLoading: () => props.buttonLoading,\n getReqOptions: () => ({ showLoading: props.pageLoading })\n})\n\n/** 点击按钮(弹层触发由 el-popconfirm 接管) */\nfunction onClick(event: MouseEvent) {\n emit('click', event)\n}\n\n/** 用户点击「确定」→ 自动请求 API */\nasync function onConfirm() {\n emit('confirm')\n await doRequest()\n}\n\n/** 用户点击「取消」 */\nfunction onCancel() {\n emit('cancel')\n}\n</script>\n","/**\n * Vue 插件入口(PRD 8.2 双入口)\n *\n * npm:app.use(WorkDesktop, config)\n * script:window.workDesktopConfig 配置 + window.WorkDesktop 自动安装\n */\nimport type { App, Plugin } from 'vue'\nimport type { DeepPartial, WorkDesktopConfig } from '../types/config'\nimport { initConfig } from './core/config'\nimport * as components from '../components'\n\nconst componentList = Object.values(components)\n\nconst install: Plugin['install'] = (app: App, config?: DeepPartial<WorkDesktopConfig>) => {\n // 双入口配置汇入同一套 merge 逻辑\n initConfig(config)\n componentList.forEach((comp: any) => {\n if (comp?.name) app.component(comp.name, comp)\n })\n}\n\nconst WorkDesktop: Plugin = { install }\n\nexport default WorkDesktop\nexport { install }\n","import { ref, shallowRef, isRef, onUnmounted } from 'vue'\nimport { request, type ApiResult } from '../core/http'\nimport type { ReqOptions } from '../../types/config'\n\n/**\n * useRequest(PRD 5.3)\n * 封装请求逻辑,返回 data/loading/error + 请求方法。\n *\n * @example\n * const { data, loading, run } = useRequest<User[]>('/api/users', {\n * method: 'post',\n * immediate: false,\n * reqConfig: { showTips: false }\n * })\n * run({ page: 1 })\n */\n\nexport interface UseRequestOptions {\n /** 请求方法,默认 post */\n method?: 'get' | 'post' | 'put' | 'delete'\n /** 是否立即自动请求,默认 true */\n immediate?: boolean\n /** 自动请求时的初始参数 */\n initialParams?: any\n /** 请求级覆盖项(透传给 http) */\n reqOptions?: ReqOptions\n /** 成功回调(data 为解封后的业务数据) */\n onSuccess?: (data: any, result: ApiResult) => void\n /** 业务失败回调 */\n onFail?: (result: ApiResult) => void\n /** 异常回调 */\n onError?: (error: any) => void\n}\n\nexport function useRequest<T = any>(api: string | (() => string), options: UseRequestOptions = {}) {\n const {\n method = 'post',\n immediate = true,\n initialParams,\n reqOptions,\n onSuccess,\n onFail,\n onError\n } = options\n\n const data = shallowRef<T | null>(null)\n const loading = ref(false)\n const error = shallowRef<Error | null>(null)\n\n let controller: AbortController | null = null\n\n function resolveApi(): string {\n return typeof api === 'function' ? api() : api\n }\n\n async function run(params?: any): Promise<ApiResult<T> | null> {\n loading.value = true\n error.value = null\n // 支持中断:上一个未完成则中止\n if (controller) controller.abort()\n controller = new AbortController()\n\n const opts: ReqOptions = { ...reqOptions, signal: controller.signal }\n try {\n let result: ApiResult<T>\n const url = resolveApi()\n if (method === 'get' || method === 'delete') {\n result = await request.request<T>(\n { url, method, params },\n opts\n )\n } else {\n result = await request.request<T>({ url, method, data: params }, opts)\n }\n\n if (result.success) {\n data.value = result.data\n onSuccess?.(result.data, result)\n } else {\n onFail?.(result)\n }\n return result\n } catch (e: any) {\n error.value = e instanceof Error ? e : new Error(e?.message || '请求失败')\n onError?.(e)\n return null\n } finally {\n loading.value = false\n controller = null\n }\n }\n\n function refresh() {\n return run(lastParams)\n }\n\n function abort() {\n if (controller) {\n controller.abort()\n controller = null\n loading.value = false\n }\n }\n\n let lastParams: any = initialParams\n\n // 包装 run 记录最后参数供 refresh\n const runWrap = (params?: any) => {\n lastParams = params ?? lastParams\n return run(params)\n }\n\n if (immediate) {\n run(initialParams)\n }\n\n onUnmounted(abort)\n\n return {\n data,\n loading,\n error,\n run: runWrap,\n refresh,\n abort\n }\n}\n\n/** 工具:解包可能为 ref 的值 */\nexport function unrefValue<T>(v: T | { value: T }): T {\n return isRef(v) ? (v as any).value : (v as T)\n}\n","import { onUnmounted } from 'vue'\n\n/**\n * 轻量事件总线(PRD 5.3 / 6.3)\n * 跨组件事件联动。组件卸载自动 off。\n */\n\ntype Handler = (payload?: any) => void\n\nconst channel: Map<string, Set<Handler>> = new Map()\n\nfunction emit(event: string, payload?: any) {\n const set = channel.get(event)\n if (!set) return\n set.forEach((fn) => {\n try {\n fn(payload)\n } catch (e) {\n console.error(`[WorkDesktop] eventBus[${event}] handler error:`, e)\n }\n })\n}\n\nfunction on(event: string, handler: Handler): () => void {\n if (!channel.has(event)) channel.set(event, new Set())\n channel.get(event)!.add(handler)\n return () => off(event, handler)\n}\n\nfunction off(event: string, handler: Handler) {\n channel.get(event)?.delete(handler)\n}\n\nfunction clear(event?: string) {\n if (event) channel.delete(event)\n else channel.clear()\n}\n\nexport function useEventBus() {\n const disposers: Array<() => void> = []\n\n const autoOn = (event: string, handler: Handler) => {\n const dispose = on(event, handler)\n disposers.push(dispose)\n return dispose\n }\n\n // 组件卸载时自动 off(setup 上下文中)\n try {\n onUnmounted(() => {\n disposers.forEach((d) => d())\n disposers.length = 0\n })\n } catch {\n // 组件外使用时无生命周期,忽略\n }\n\n return {\n emit,\n on: autoOn,\n off,\n clear\n }\n}\n\nexport type EventBus = ReturnType<typeof useEventBus>\n","import { reactive, isReactive } from 'vue'\n\n/**\n * 全局响应式状态单例(PRD 5.3,替代 Pinia 的轻量方案)\n * 相同 key 共享同一份状态,跨组件/跨层级复用。\n */\n\nconst globalStore: Record<string, any> = reactive({})\n\nexport function useGlobalState<T extends object = Record<string, any>>(\n key: string,\n initial?: T\n): { state: T; set: (partial: Partial<T> | ((prev: T) => Partial<T>)) => void; reset: () => void } {\n if (!(key in globalStore)) {\n globalStore[key] = initial ? (isReactive(initial) ? initial : { ...initial }) : {}\n } else if (initial && typeof initial === 'object') {\n // 已存在则补齐缺失的初始字段\n for (const k of Object.keys(initial)) {\n if (globalStore[key][k] === undefined) {\n globalStore[key][k] = (initial as any)[k]\n }\n }\n }\n\n const state = globalStore[key] as T\n\n const set = (partial: Partial<T> | ((prev: T) => Partial<T>)) => {\n const patch = typeof partial === 'function' ? (partial as (p: T) => Partial<T>)(state) : partial\n Object.assign(globalStore[key], patch)\n }\n\n const reset = () => {\n const fresh = initial ? { ...initial } : {}\n Object.keys(globalStore[key]).forEach((k) => delete globalStore[key][k])\n Object.assign(globalStore[key], fresh)\n }\n\n return { state, set, reset }\n}\n"],"names":["props","__props","emit","__emit","btnRef","ref","loading","doRequest","useApiAction","onClick","event","onConfirm","onCancel","_createVNode","_component_el_button","_mergeProps","$attrs","_unref","_renderSlot","_ctx","label","tips","_createBlock","_component_el_tooltip","tipsType","placement","_component_el_popconfirm","componentList","components","install","app","config","initConfig","comp","WorkDesktop","useRequest","api","options","method","immediate","initialParams","reqOptions","onSuccess","onFail","onError","data","shallowRef","error","controller","resolveApi","run","params","opts","result","url","request","e","refresh","lastParams","abort","runWrap","onUnmounted","channel","payload","set","fn","on","handler","off","_a","clear","useEventBus","disposers","autoOn","dispose","d","globalStore","reactive","useGlobalState","key","initial","isReactive","k","state","partial","patch","fresh"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/buttons/PopconfirmButton.vue","../src/lib/install.ts","../src/lib/composables/useRequest.ts","../src/lib/composables/useEventBus.ts","../src/lib/composables/useGlobalState.ts"],"sourcesContent":["<template>\n <!-- 悬停提示(el-tooltip)与气泡确认(el-popconfirm)平级,均以 virtual-ref 指向同一按钮:\n hover 显示提示、click 弹出确认,互不嵌套、互不冲突 -->\n <el-button ref=\"btnRef\" v-bind=\"$attrs\" :loading=\"loading\" @click=\"onClick\">\n <slot>{{ label }}</slot>\n </el-button>\n\n <el-tooltip\n v-if=\"tips\"\n :virtual-ref=\"btnRef\"\n virtual-triggering\n :content=\"tips\"\n :effect=\"tipsType\"\n :placement=\"placement\"\n />\n\n <el-popconfirm\n :virtual-ref=\"btnRef\"\n virtual-triggering\n :title=\"title\"\n :confirm-button-text=\"confirmButtonText\"\n :cancel-button-text=\"cancelButtonText\"\n :confirm-button-type=\"confirmButtonType\"\n :cancel-button-type=\"cancelButtonType\"\n :icon=\"popIcon\"\n :icon-color=\"popIconColor\"\n :hide-after=\"hideAfter\"\n :disabled=\"popDisabled\"\n :width=\"width\"\n :trigger=\"trigger\"\n :placement=\"placement\"\n :popper-class=\"popperClass\"\n :popper-options=\"popperOptions\"\n :show-after=\"showAfter\"\n :teleported=\"teleported\"\n :persistent=\"persistent\"\n @confirm=\"onConfirm\"\n @cancel=\"onCancel\"\n @show=\"emit('show')\"\n @hide=\"emit('hide')\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, type Component, type PropType } from 'vue'\nimport { useApiAction } from './useApiAction'\nimport { filterProp, headRefreshDatagridProp, apiProps, buttonTextProp, tipsProp } from '../common/props'\n\ndefineOptions({ name: 'WdPopconfirmButton', inheritAttrs: false })\n\nconst props = defineProps({\n ...filterProp,\n ...headRefreshDatagridProp,\n ...apiProps,\n ...buttonTextProp,\n ...tipsProp,\n // ---------- el-popconfirm 集成属性 ----------\n /** 确认提示标题 */\n title: { type: String, default: '' },\n /** 确定按钮文案 */\n confirmButtonText: { type: String, default: '确定' },\n /** 取消按钮文案 */\n cancelButtonText: { type: String, default: '取消' },\n /** 确定按钮类型 */\n confirmButtonType: {\n type: String as PropType<'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'>,\n default: 'primary'\n },\n /** 取消按钮类型 */\n cancelButtonType: {\n type: String as PropType<'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'>,\n default: 'text'\n },\n /** 弹层图标(命名 popIcon 避免与 el-button 的 icon 透传冲突) */\n popIcon: { type: [String, Object] as PropType<string | Component>, default: undefined },\n /** 弹层图标颜色 */\n popIconColor: { type: String, default: undefined },\n /** 关闭动画时长(ms,继承自 el-popconfirm) */\n hideAfter: { type: Number, default: undefined },\n /** 禁用确认弹层(命名 popDisabled 避免与 el-button 的 disabled 透传冲突) */\n popDisabled: { type: Boolean, default: false },\n /** 弹层宽度 */\n width: { type: [String, Number], default: undefined },\n /** 触发方式 */\n trigger: {\n type: String as PropType<'click' | 'hover' | 'focus' | 'contextmenu'>,\n default: 'click'\n },\n /** 弹层自定义类名 */\n popperClass: { type: String, default: '' },\n /** popper 配置 */\n popperOptions: { type: Object, default: undefined },\n /** 显示延迟(ms) */\n showAfter: { type: Number, default: undefined },\n /** 是否挂载到 body */\n teleported: { type: Boolean, default: true },\n /** 关闭时是否保留内容 */\n persistent: { type: Boolean, default: false },\n // ---------- 请求相关 ----------\n /** 按钮级 loading(默认 true);false 时按钮不转圈 */\n buttonLoading: { type: Boolean, default: true },\n /** 页面级 loading(全局遮罩 ElLoading) */\n pageLoading: { type: Boolean, default: false }\n})\n\nconst emit = defineEmits([\n 'click',\n 'confirm',\n 'cancel',\n 'show',\n 'hide',\n 'apiBefore',\n 'apiSuccess',\n 'apiFail',\n 'apiException',\n 'apiAfter'\n])\n\n/** 按钮引用:el-tooltip / el-popconfirm 通过 virtual-ref 指向它 */\nconst btnRef = ref<InstanceType<typeof import('element-plus').ElButton>>()\n\nconst { loading, doRequest } = useApiAction({\n getApi: () => props.api,\n getMethod: () => props.apiMethod,\n getParam: () => props.apiParam,\n getFilter: () => props.filter,\n getHeadRefresh: () => props.headRefreshDatagrid,\n emit,\n buttonLoading: () => props.buttonLoading,\n getReqOptions: () => ({ showLoading: props.pageLoading })\n})\n\n/** 点击按钮(弹层触发由 el-popconfirm 接管) */\nfunction onClick(event: MouseEvent) {\n emit('click', event)\n}\n\n/** 用户点击「确定」→ 自动请求 API */\nasync function onConfirm() {\n emit('confirm')\n await doRequest()\n}\n\n/** 用户点击「取消」 */\nfunction onCancel() {\n emit('cancel')\n}\n</script>\n","/**\n * Vue 插件入口(PRD 8.2 双入口)\n *\n * npm:app.use(WorkDesktop, config)\n * script:window.workDesktopConfig 配置 + window.WorkDesktop 自动安装\n */\nimport type { App, Plugin } from 'vue'\nimport type { DeepPartial, WorkDesktopConfig } from '../types/config'\nimport { initConfig } from './core/config'\nimport * as components from '../components'\n\nconst componentList = Object.values(components)\n\nconst install: Plugin['install'] = (app: App, config?: DeepPartial<WorkDesktopConfig>) => {\n // 双入口配置汇入同一套 merge 逻辑\n initConfig(config)\n componentList.forEach((comp: any) => {\n if (comp?.name) app.component(comp.name, comp)\n })\n}\n\nconst WorkDesktop: Plugin = { install }\n\nexport default WorkDesktop\nexport { install }\n","import { ref, shallowRef, isRef, onUnmounted } from 'vue'\nimport { request, type ApiResult } from '../core/http'\nimport type { ReqOptions } from '../../types/config'\n\n/**\n * useRequest(PRD 5.3)\n * 封装请求逻辑,返回 data/loading/error + 请求方法。\n *\n * @example\n * const { data, loading, run } = useRequest<User[]>('/api/users', {\n * method: 'post',\n * immediate: false,\n * reqConfig: { showTips: false }\n * })\n * run({ page: 1 })\n */\n\nexport interface UseRequestOptions {\n /** 请求方法,默认 post */\n method?: 'get' | 'post' | 'put' | 'delete'\n /** 是否立即自动请求,默认 true */\n immediate?: boolean\n /** 自动请求时的初始参数 */\n initialParams?: any\n /** 请求级覆盖项(透传给 http) */\n reqOptions?: ReqOptions\n /** 成功回调(data 为解封后的业务数据) */\n onSuccess?: (data: any, result: ApiResult) => void\n /** 业务失败回调 */\n onFail?: (result: ApiResult) => void\n /** 异常回调 */\n onError?: (error: any) => void\n}\n\nexport function useRequest<T = any>(api: string | (() => string), options: UseRequestOptions = {}) {\n const {\n method = 'post',\n immediate = true,\n initialParams,\n reqOptions,\n onSuccess,\n onFail,\n onError\n } = options\n\n const data = shallowRef<T | null>(null)\n const loading = ref(false)\n const error = shallowRef<Error | null>(null)\n\n let controller: AbortController | null = null\n\n function resolveApi(): string {\n return typeof api === 'function' ? api() : api\n }\n\n async function run(params?: any): Promise<ApiResult<T> | null> {\n loading.value = true\n error.value = null\n // 支持中断:上一个未完成则中止\n if (controller) controller.abort()\n controller = new AbortController()\n\n const opts: ReqOptions = { ...reqOptions, signal: controller.signal }\n try {\n let result: ApiResult<T>\n const url = resolveApi()\n if (method === 'get' || method === 'delete') {\n result = await request.request<T>(\n { url, method, params },\n opts\n )\n } else {\n result = await request.request<T>({ url, method, data: params }, opts)\n }\n\n if (result.success) {\n data.value = result.data\n onSuccess?.(result.data, result)\n } else {\n onFail?.(result)\n }\n return result\n } catch (e: any) {\n error.value = e instanceof Error ? e : new Error(e?.message || '请求失败')\n onError?.(e)\n return null\n } finally {\n loading.value = false\n controller = null\n }\n }\n\n function refresh() {\n return run(lastParams)\n }\n\n function abort() {\n if (controller) {\n controller.abort()\n controller = null\n loading.value = false\n }\n }\n\n let lastParams: any = initialParams\n\n // 包装 run 记录最后参数供 refresh\n const runWrap = (params?: any) => {\n lastParams = params ?? lastParams\n return run(params)\n }\n\n if (immediate) {\n run(initialParams)\n }\n\n onUnmounted(abort)\n\n return {\n data,\n loading,\n error,\n run: runWrap,\n refresh,\n abort\n }\n}\n\n/** 工具:解包可能为 ref 的值 */\nexport function unrefValue<T>(v: T | { value: T }): T {\n return isRef(v) ? (v as any).value : (v as T)\n}\n","import { onUnmounted } from 'vue'\n\n/**\n * 轻量事件总线(PRD 5.3 / 6.3)\n * 跨组件事件联动。组件卸载自动 off。\n */\n\ntype Handler = (payload?: any) => void\n\nconst channel: Map<string, Set<Handler>> = new Map()\n\nfunction emit(event: string, payload?: any) {\n const set = channel.get(event)\n if (!set) return\n set.forEach((fn) => {\n try {\n fn(payload)\n } catch (e) {\n console.error(`[WorkDesktop] eventBus[${event}] handler error:`, e)\n }\n })\n}\n\nfunction on(event: string, handler: Handler): () => void {\n if (!channel.has(event)) channel.set(event, new Set())\n channel.get(event)!.add(handler)\n return () => off(event, handler)\n}\n\nfunction off(event: string, handler: Handler) {\n channel.get(event)?.delete(handler)\n}\n\nfunction clear(event?: string) {\n if (event) channel.delete(event)\n else channel.clear()\n}\n\nexport function useEventBus() {\n const disposers: Array<() => void> = []\n\n const autoOn = (event: string, handler: Handler) => {\n const dispose = on(event, handler)\n disposers.push(dispose)\n return dispose\n }\n\n // 组件卸载时自动 off(setup 上下文中)\n try {\n onUnmounted(() => {\n disposers.forEach((d) => d())\n disposers.length = 0\n })\n } catch {\n // 组件外使用时无生命周期,忽略\n }\n\n return {\n emit,\n on: autoOn,\n off,\n clear\n }\n}\n\nexport type EventBus = ReturnType<typeof useEventBus>\n","import { reactive, isReactive } from 'vue'\n\n/**\n * 全局响应式状态单例(PRD 5.3,替代 Pinia 的轻量方案)\n * 相同 key 共享同一份状态,跨组件/跨层级复用。\n */\n\nconst globalStore: Record<string, any> = reactive({})\n\nexport function useGlobalState<T extends object = Record<string, any>>(\n key: string,\n initial?: T\n): { state: T; set: (partial: Partial<T> | ((prev: T) => Partial<T>)) => void; reset: () => void } {\n if (!(key in globalStore)) {\n globalStore[key] = initial ? (isReactive(initial) ? initial : { ...initial }) : {}\n } else if (initial && typeof initial === 'object') {\n // 已存在则补齐缺失的初始字段\n for (const k of Object.keys(initial)) {\n if (globalStore[key][k] === undefined) {\n globalStore[key][k] = (initial as any)[k]\n }\n }\n }\n\n const state = globalStore[key] as T\n\n const set = (partial: Partial<T> | ((prev: T) => Partial<T>)) => {\n const patch = typeof partial === 'function' ? (partial as (p: T) => Partial<T>)(state) : partial\n Object.assign(globalStore[key], patch)\n }\n\n const reset = () => {\n const fresh = initial ? { ...initial } : {}\n Object.keys(globalStore[key]).forEach((k) => delete globalStore[key][k])\n Object.assign(globalStore[key], fresh)\n }\n\n return { state, set, reset }\n}\n"],"names":["props","__props","emit","__emit","btnRef","ref","loading","doRequest","useApiAction","onClick","event","onConfirm","onCancel","_createVNode","_component_el_button","_mergeProps","$attrs","_unref","_renderSlot","_ctx","label","tips","_createBlock","_component_el_tooltip","tipsType","placement","_component_el_popconfirm","componentList","components","install","app","config","initConfig","comp","WorkDesktop","useRequest","api","options","method","immediate","initialParams","reqOptions","onSuccess","onFail","onError","data","shallowRef","error","controller","resolveApi","run","params","opts","result","url","request","e","refresh","lastParams","abort","runWrap","onUnmounted","channel","payload","set","fn","on","handler","off","_a","clear","useEventBus","disposers","autoOn","dispose","d","globalStore","reactive","useGlobalState","key","initial","isReactive","k","state","partial","patch","fresh"],"mappings":"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"}
|