fast-element-plus 1.0.1 → 1.0.2
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/README.md +4 -4
- package/README.zh.md +4 -4
- package/dist/index.full.js +9 -41
- package/dist/index.full.js.map +1 -1
- package/dist/index.full.min.js +1 -35
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +1 -35
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +9 -41
- package/dist/index.full.mjs.map +1 -1
- package/es/component.mjs +1 -51
- package/es/component.mjs.map +1 -1
- package/es/components/avatar/index.mjs +1 -7
- package/es/components/avatar/index.mjs.map +1 -1
- package/es/components/avatar/src/avatar.mjs +1 -75
- package/es/components/avatar/src/avatar.mjs.map +1 -1
- package/es/components/button/index.mjs +1 -10
- package/es/components/button/index.mjs.map +1 -1
- package/es/components/button/src/button.mjs +1 -117
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/carNumber/index.mjs +1 -11
- package/es/components/carNumber/index.mjs.map +1 -1
- package/es/components/carNumber/src/carNumber.d.ts +5 -5
- package/es/components/carNumber/src/carNumber.mjs +1 -163
- package/es/components/carNumber/src/carNumber.mjs.map +1 -1
- package/es/components/carNumber/src/common.mjs +1 -74
- package/es/components/carNumber/src/common.mjs.map +1 -1
- package/es/components/contextMenu/index.mjs +1 -8
- package/es/components/contextMenu/index.mjs.map +1 -1
- package/es/components/contextMenu/src/contextMenu.mjs +1 -84
- package/es/components/contextMenu/src/contextMenu.mjs.map +1 -1
- package/es/components/dialog/index.mjs +1 -10
- package/es/components/dialog/index.mjs.map +1 -1
- package/es/components/dialog/src/dialog.mjs +1 -284
- package/es/components/dialog/src/dialog.mjs.map +1 -1
- package/es/components/drawer/index.mjs +1 -7
- package/es/components/drawer/index.mjs.map +1 -1
- package/es/components/drawer/src/drawer.d.ts +9 -0
- package/es/components/drawer/src/drawer.mjs +1 -283
- package/es/components/drawer/src/drawer.mjs.map +1 -1
- package/es/components/form/index.mjs +1 -18
- package/es/components/form/index.mjs.map +1 -1
- package/es/components/form/src/form.mjs +1 -108
- package/es/components/form/src/form.mjs.map +1 -1
- package/es/components/form/src/formItem.mjs +1 -116
- package/es/components/form/src/formItem.mjs.map +1 -1
- package/es/components/form/utils/form.mjs +1 -216
- package/es/components/form/utils/form.mjs.map +1 -1
- package/es/components/formItemTip/index.mjs +1 -9
- package/es/components/formItemTip/index.mjs.map +1 -1
- package/es/components/formItemTip/src/formItemTip.mjs +1 -37
- package/es/components/formItemTip/src/formItemTip.mjs.map +1 -1
- package/es/components/icon/index.mjs +1 -7
- package/es/components/icon/index.mjs.map +1 -1
- package/es/components/icon/src/icon.mjs +1 -68
- package/es/components/icon/src/icon.mjs.map +1 -1
- package/es/components/iconSelector/index.mjs +1 -7
- package/es/components/iconSelector/index.mjs.map +1 -1
- package/es/components/iconSelector/src/iconSelector.mjs +1 -142
- package/es/components/iconSelector/src/iconSelector.mjs.map +1 -1
- package/es/components/image/index.mjs +1 -9
- package/es/components/image/index.mjs.map +1 -1
- package/es/components/image/src/image.mjs +1 -89
- package/es/components/image/src/image.mjs.map +1 -1
- package/es/components/index.mjs +1 -99
- package/es/components/index.mjs.map +1 -1
- package/es/components/layoutGrid/index.mjs +1 -13
- package/es/components/layoutGrid/index.mjs.map +1 -1
- package/es/components/layoutGrid/src/layoutGrid.mjs +1 -177
- package/es/components/layoutGrid/src/layoutGrid.mjs.map +1 -1
- package/es/components/layoutGrid/src/layoutGridItem.mjs +1 -96
- package/es/components/layoutGrid/src/layoutGridItem.mjs.map +1 -1
- package/es/components/select/index.mjs +1 -16
- package/es/components/select/index.mjs.map +1 -1
- package/es/components/select/src/select.mjs +1 -558
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/selectOption.mjs +1 -70
- package/es/components/select/src/selectOption.mjs.map +1 -1
- package/es/components/selectPage/index.mjs +1 -10
- package/es/components/selectPage/index.mjs.map +1 -1
- package/es/components/selectPage/src/selectPage.mjs +1 -380
- package/es/components/selectPage/src/selectPage.mjs.map +1 -1
- package/es/components/selectV2/index.mjs +1 -10
- package/es/components/selectV2/index.mjs.map +1 -1
- package/es/components/selectV2/src/selectV2.mjs +1 -605
- package/es/components/selectV2/src/selectV2.mjs.map +1 -1
- package/es/components/table/images/artwork.png.mjs +1 -4
- package/es/components/table/images/artwork.png.mjs.map +1 -1
- package/es/components/table/images/notImage.png.mjs +1 -4
- package/es/components/table/images/notImage.png.mjs.map +1 -1
- package/es/components/table/index.mjs +1 -31
- package/es/components/table/index.mjs.map +1 -1
- package/es/components/table/src/page.type.mjs +1 -15
- package/es/components/table/src/page.type.mjs.map +1 -1
- package/es/components/table/src/table.mjs +1 -1045
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.type.mjs +1 -13
- package/es/components/table/src/table.type.mjs.map +1 -1
- package/es/components/table/src/tableColumn.mjs +1 -603
- package/es/components/table/src/tableColumn.mjs.map +1 -1
- package/es/components/table/src/tableColumnSettingDialog.mjs +1 -429
- package/es/components/table/src/tableColumnSettingDialog.mjs.map +1 -1
- package/es/components/table/src/tablePagination.mjs +1 -55
- package/es/components/table/src/tablePagination.mjs.map +1 -1
- package/es/components/table/src/tableSearchForm.mjs +1 -268
- package/es/components/table/src/tableSearchForm.mjs.map +1 -1
- package/es/components/table/src/tableSearchFormItem.mjs +1 -120
- package/es/components/table/src/tableSearchFormItem.mjs.map +1 -1
- package/es/components/table/src/useTable.mjs +1 -373
- package/es/components/table/src/useTable.mjs.map +1 -1
- package/es/components/table/utils/table.mjs +1 -121
- package/es/components/table/utils/table.mjs.map +1 -1
- package/es/components/tree/index.mjs +1 -11
- package/es/components/tree/index.mjs.map +1 -1
- package/es/components/tree/src/tree.mjs +1 -363
- package/es/components/tree/src/tree.mjs.map +1 -1
- package/es/components/tree/src/tree.props.mjs +1 -70
- package/es/components/tree/src/tree.props.mjs.map +1 -1
- package/es/components/treeSelect/index.mjs +1 -10
- package/es/components/treeSelect/index.mjs.map +1 -1
- package/es/components/treeSelect/src/treeSelect.mjs +1 -491
- package/es/components/treeSelect/src/treeSelect.mjs.map +1 -1
- package/es/components/upload/index.mjs +1 -10
- package/es/components/upload/index.mjs.map +1 -1
- package/es/components/upload/src/upload.mjs +1 -139
- package/es/components/upload/src/upload.mjs.map +1 -1
- package/es/components/upload/src/useUpload.mjs +1 -149
- package/es/components/upload/src/useUpload.mjs.map +1 -1
- package/es/components/upload/utils/upload.mjs +1 -118
- package/es/components/upload/utils/upload.mjs.map +1 -1
- package/es/components/uploadImage/index.mjs +1 -10
- package/es/components/uploadImage/index.mjs.map +1 -1
- package/es/components/uploadImage/src/uploadImage.mjs +1 -206
- package/es/components/uploadImage/src/uploadImage.mjs.map +1 -1
- package/es/components/uploadImages/index.mjs +1 -7
- package/es/components/uploadImages/index.mjs.map +1 -1
- package/es/components/uploadImages/src/uploadImages.mjs +1 -193
- package/es/components/uploadImages/src/uploadImages.mjs.map +1 -1
- package/es/constants/index.mjs +1 -6
- package/es/constants/index.mjs.map +1 -1
- package/es/constants/mime.mjs +1 -61
- package/es/constants/mime.mjs.map +1 -1
- package/es/constants/regex.mjs +1 -78
- package/es/constants/regex.mjs.map +1 -1
- package/es/directive.mjs +1 -10
- package/es/directive.mjs.map +1 -1
- package/es/directives/click-copy/index.mjs +1 -35
- package/es/directives/click-copy/index.mjs.map +1 -1
- package/es/directives/click-debounce/index.mjs +1 -19
- package/es/directives/click-debounce/index.mjs.map +1 -1
- package/es/directives/click-draggable/index.mjs +1 -37
- package/es/directives/click-draggable/index.mjs.map +1 -1
- package/es/directives/click-icon-copy/index.mjs +1 -53
- package/es/directives/click-icon-copy/index.mjs.map +1 -1
- package/es/directives/click-longpress/index.mjs +1 -41
- package/es/directives/click-longpress/index.mjs.map +1 -1
- package/es/directives/click-throttle/index.mjs +1 -30
- package/es/directives/click-throttle/index.mjs.map +1 -1
- package/es/directives/index.mjs +1 -14
- package/es/directives/index.mjs.map +1 -1
- package/es/element-plus.mjs +1 -303
- package/es/element-plus.mjs.map +1 -1
- package/es/hooks/index.mjs +1 -8
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-loading/index.mjs +1 -33
- package/es/hooks/use-loading/index.mjs.map +1 -1
- package/es/hooks/use-overlay/index.mjs +1 -25
- package/es/hooks/use-overlay/index.mjs.map +1 -1
- package/es/hooks/use-screenFull/index.mjs +1 -44
- package/es/hooks/use-screenFull/index.mjs.map +1 -1
- package/es/index.mjs +1 -137
- package/es/index.mjs.map +1 -1
- package/es/make-installer.mjs +1 -26
- package/es/make-installer.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -4
- package/es/version.mjs.map +1 -1
- package/lib/components/carNumber/src/carNumber.d.ts +5 -5
- package/lib/components/drawer/src/drawer.d.ts +9 -0
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/tablePagination.js +1 -1
- package/lib/components/table/src/tablePagination.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,285 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { dialogProps, dialogEmits, useGlobalSize, ElMessage, ElMessageBox, ElDialog, ElButton, ElScrollbar, ElIcon } from "element-plus";
|
|
3
|
-
import { Eleme, Refresh, FullScreen, Close } from "@element-plus/icons-vue";
|
|
4
|
-
import { FullScreenExit } from "@fast-element-plus/icons-vue";
|
|
5
|
-
import { definePropType, execFunction, consoleError, useProps, useRender, useExpose, makeSlots } from "@fast-china/utils";
|
|
6
|
-
import { isBoolean } from "lodash-unified";
|
|
7
|
-
const faDialogProps = {
|
|
8
|
-
...dialogProps,
|
|
9
|
-
/** @description whether to align the dialog both horizontally and vertically*/
|
|
10
|
-
alignCenter: {
|
|
11
|
-
type: Boolean,
|
|
12
|
-
default: true
|
|
13
|
-
},
|
|
14
|
-
/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */
|
|
15
|
-
appendToBody: {
|
|
16
|
-
type: Boolean,
|
|
17
|
-
default: true
|
|
18
|
-
},
|
|
19
|
-
/** @description enable dragging feature for Dialog */
|
|
20
|
-
draggable: {
|
|
21
|
-
type: Boolean,
|
|
22
|
-
default: true
|
|
23
|
-
},
|
|
24
|
-
/** @description destroy elements in Dialog when closed */
|
|
25
|
-
destroyOnClose: {
|
|
26
|
-
type: Boolean,
|
|
27
|
-
default: true
|
|
28
|
-
},
|
|
29
|
-
/** @description draggable Dialog can overflow the viewport */
|
|
30
|
-
overflow: {
|
|
31
|
-
type: Boolean,
|
|
32
|
-
default: true
|
|
33
|
-
},
|
|
34
|
-
/** @description value for `margin-top` of Dialog CSS, default is 15vh */
|
|
35
|
-
top: {
|
|
36
|
-
type: String,
|
|
37
|
-
default: "5vh"
|
|
38
|
-
},
|
|
39
|
-
/** @description width of Dialog, default is 50% */
|
|
40
|
-
width: {
|
|
41
|
-
type: [String, Number],
|
|
42
|
-
default: "90%"
|
|
43
|
-
},
|
|
44
|
-
/** @description 显示刷新按钮 */
|
|
45
|
-
showRefresh: {
|
|
46
|
-
type: Boolean,
|
|
47
|
-
default: true
|
|
48
|
-
},
|
|
49
|
-
/** @description 显示全屏图标 */
|
|
50
|
-
showFullscreen: {
|
|
51
|
-
type: Boolean,
|
|
52
|
-
default: true
|
|
53
|
-
},
|
|
54
|
-
/** @description 显示关闭按钮 */
|
|
55
|
-
showCloseButton: {
|
|
56
|
-
type: Boolean,
|
|
57
|
-
default: true
|
|
58
|
-
},
|
|
59
|
-
/** @description 显示确认按钮 */
|
|
60
|
-
showConfirmButton: {
|
|
61
|
-
type: Boolean,
|
|
62
|
-
default: true
|
|
63
|
-
},
|
|
64
|
-
/** @description 禁用确认按钮 */
|
|
65
|
-
disabledConfirmButton: Boolean,
|
|
66
|
-
/** @description 关闭按钮文字,默认取消 */
|
|
67
|
-
closeButtonText: {
|
|
68
|
-
type: String,
|
|
69
|
-
default: "取消"
|
|
70
|
-
},
|
|
71
|
-
/** @description 确认按钮文字,默认确认 */
|
|
72
|
-
confirmButtonText: {
|
|
73
|
-
type: String,
|
|
74
|
-
default: "确认"
|
|
75
|
-
},
|
|
76
|
-
/** @description 隐藏底部操作 */
|
|
77
|
-
hideFooter: Boolean,
|
|
78
|
-
/** @description 撑满高度 */
|
|
79
|
-
fillHeight: Boolean,
|
|
80
|
-
/** @description 显示关闭回调 */
|
|
81
|
-
showBeforeClose: Boolean,
|
|
82
|
-
/** @description 打开之后 */
|
|
83
|
-
afterOpen: {
|
|
84
|
-
type: definePropType(Function)
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
const faDialogEmits = {
|
|
88
|
-
...dialogEmits,
|
|
89
|
-
/** @description v-model 回调 */
|
|
90
|
-
"update:modelValue": (value) => isBoolean(value),
|
|
91
|
-
/** @description 确认按钮点击事件 */
|
|
92
|
-
confirmClick: () => true
|
|
93
|
-
};
|
|
94
|
-
const Dialog = /* @__PURE__ */ defineComponent({
|
|
95
|
-
name: "FaDialog",
|
|
96
|
-
props: faDialogProps,
|
|
97
|
-
emits: faDialogEmits,
|
|
98
|
-
slots: makeSlots(),
|
|
99
|
-
setup(props, {
|
|
100
|
-
attrs,
|
|
101
|
-
slots,
|
|
102
|
-
emit,
|
|
103
|
-
expose
|
|
104
|
-
}) {
|
|
105
|
-
const _globalSize = useGlobalSize();
|
|
106
|
-
const state = reactive({
|
|
107
|
-
loading: false,
|
|
108
|
-
visible: false,
|
|
109
|
-
fullscreen: false,
|
|
110
|
-
refreshing: false
|
|
111
|
-
});
|
|
112
|
-
const dialogRef = ref();
|
|
113
|
-
let cacheOpenFunction = void 0;
|
|
114
|
-
const handleOpen = (openFunction) => {
|
|
115
|
-
state.visible = true;
|
|
116
|
-
cacheOpenFunction = openFunction;
|
|
117
|
-
nextTick(() => {
|
|
118
|
-
state.loading = true;
|
|
119
|
-
execFunction(props.afterOpen ?? openFunction).then(() => {
|
|
120
|
-
emit("open");
|
|
121
|
-
}).catch((error) => {
|
|
122
|
-
consoleError("FaDialog", error);
|
|
123
|
-
state.visible = false;
|
|
124
|
-
}).finally(() => {
|
|
125
|
-
state.loading = false;
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
};
|
|
129
|
-
const handleClose = (closeFunction) => {
|
|
130
|
-
state.loading = true;
|
|
131
|
-
execFunction(closeFunction).then(() => {
|
|
132
|
-
emit("close");
|
|
133
|
-
state.visible = false;
|
|
134
|
-
}).catch((error) => {
|
|
135
|
-
consoleError("FaDialog", error);
|
|
136
|
-
}).finally(() => {
|
|
137
|
-
state.loading = false;
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
const handleLoading = (loadingFunction) => {
|
|
141
|
-
state.loading = true;
|
|
142
|
-
execFunction(loadingFunction).then().catch((error) => {
|
|
143
|
-
consoleError("FaDialog", error);
|
|
144
|
-
}).finally(() => {
|
|
145
|
-
state.loading = false;
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
const handleRefresh = () => {
|
|
149
|
-
if (state.loading) return;
|
|
150
|
-
state.refreshing = true;
|
|
151
|
-
state.loading = true;
|
|
152
|
-
setTimeout(() => {
|
|
153
|
-
state.refreshing = false;
|
|
154
|
-
handleOpen(cacheOpenFunction);
|
|
155
|
-
ElMessage.success("刷新成功");
|
|
156
|
-
}, 500);
|
|
157
|
-
};
|
|
158
|
-
const handleBeforeClose = (done) => {
|
|
159
|
-
if (state.loading) return;
|
|
160
|
-
if (document.querySelector(".el-image-viewer__wrapper")) return;
|
|
161
|
-
const newDone = () => {
|
|
162
|
-
execFunction(props.beforeClose).then(() => {
|
|
163
|
-
emit("close");
|
|
164
|
-
done();
|
|
165
|
-
}).catch((error) => {
|
|
166
|
-
consoleError("FaDialog", error);
|
|
167
|
-
});
|
|
168
|
-
};
|
|
169
|
-
if (props.showBeforeClose) {
|
|
170
|
-
ElMessageBox.confirm("确定关闭?", {
|
|
171
|
-
type: "warning"
|
|
172
|
-
}).then(() => {
|
|
173
|
-
newDone();
|
|
174
|
-
});
|
|
175
|
-
} else {
|
|
176
|
-
newDone();
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
const handleFullscreen = () => {
|
|
180
|
-
if (state.loading) return;
|
|
181
|
-
state.fullscreen = !state.fullscreen;
|
|
182
|
-
};
|
|
183
|
-
const handleConfirmClick = () => {
|
|
184
|
-
if (state.loading) return;
|
|
185
|
-
emit("confirmClick");
|
|
186
|
-
};
|
|
187
|
-
const handleCloseClick = () => {
|
|
188
|
-
if (state.loading) return;
|
|
189
|
-
handleClose();
|
|
190
|
-
};
|
|
191
|
-
watch(() => state.visible, (newValue) => {
|
|
192
|
-
emit("update:modelValue", newValue);
|
|
193
|
-
});
|
|
194
|
-
const elDialogProps = useProps(props, dialogProps, ["modelValue", "fullscreen", "showClose", "beforeClose"]);
|
|
195
|
-
useRender(() => createVNode(ElDialog, mergeProps(elDialogProps.value, {
|
|
196
|
-
"ref": dialogRef,
|
|
197
|
-
"class": ["fa-dialog", `fa-dialog-${_globalSize.value}`, {
|
|
198
|
-
"fa-dialog__fill-height": props.fillHeight,
|
|
199
|
-
"fa-dialog__fullscreen": state.fullscreen
|
|
200
|
-
}],
|
|
201
|
-
"modelValue": state.visible,
|
|
202
|
-
"onUpdate:modelValue": ($event) => state.visible = $event,
|
|
203
|
-
"fullscreen": state.fullscreen,
|
|
204
|
-
"showClose": false,
|
|
205
|
-
"beforeClose": handleBeforeClose,
|
|
206
|
-
"onOpened": () => emit("opened"),
|
|
207
|
-
"onClosed": () => emit("closed"),
|
|
208
|
-
"onOpenAutoFocus": () => emit("openAutoFocus"),
|
|
209
|
-
"onCloseAutoFocus": () => emit("closeAutoFocus")
|
|
210
|
-
}), {
|
|
211
|
-
header: () => createVNode(Fragment, null, [createVNode("div", {
|
|
212
|
-
"class": "fa-dialog__header-title"
|
|
213
|
-
}, [props.title, slots.header && slots.header({
|
|
214
|
-
loading: state.loading,
|
|
215
|
-
close: handleCloseClick
|
|
216
|
-
})]), props.showRefresh && createVNode("div", {
|
|
217
|
-
"title": "刷新",
|
|
218
|
-
"class": ["fa-dialog__header-icon", state.loading ? "fa__click__disabled fa__click__disabled__cursor " : "fa__hover__twinkle"],
|
|
219
|
-
"onClick": handleRefresh
|
|
220
|
-
}, [createVNode(ElIcon, null, {
|
|
221
|
-
default: () => [createVNode(Refresh, null, null)]
|
|
222
|
-
})]), props.showFullscreen && createVNode("div", {
|
|
223
|
-
"title": state.fullscreen ? "关闭全屏显示" : "全屏显示",
|
|
224
|
-
"class": ["fa-dialog__header-icon", state.loading ? "fa__click__disabled fa__click__disabled__cursor " : "fa__hover__twinkle"],
|
|
225
|
-
"onClick": handleFullscreen
|
|
226
|
-
}, [createVNode(ElIcon, null, {
|
|
227
|
-
default: () => [state.fullscreen ? createVNode(FullScreenExit, null, null) : createVNode(FullScreen, null, null)]
|
|
228
|
-
})]), props.showClose && createVNode("div", {
|
|
229
|
-
"title": "关闭",
|
|
230
|
-
"class": ["fa-dialog__header-icon", state.loading ? "fa__click__disabled fa__click__disabled__cursor " : "fa__hover__twinkle"],
|
|
231
|
-
"onClick": handleCloseClick
|
|
232
|
-
}, [createVNode(ElIcon, null, {
|
|
233
|
-
default: () => [createVNode(Close, null, null)]
|
|
234
|
-
})])]),
|
|
235
|
-
default: () => withDirectives(createVNode(ElScrollbar, {
|
|
236
|
-
"element-loading-text": "加载中..."
|
|
237
|
-
}, {
|
|
238
|
-
default: () => [!state.refreshing && slots.default && slots.default(state)]
|
|
239
|
-
}), [[resolveDirective("loading"), state.loading]]),
|
|
240
|
-
...!props.hideFooter && {
|
|
241
|
-
footer: () => createVNode(Fragment, null, [slots.footer && slots.footer({
|
|
242
|
-
loading: state.loading,
|
|
243
|
-
close: handleCloseClick
|
|
244
|
-
}), props.showCloseButton && createVNode(ElButton, {
|
|
245
|
-
"disabled": state.loading,
|
|
246
|
-
"onClick": handleCloseClick
|
|
247
|
-
}, {
|
|
248
|
-
default: () => [props.closeButtonText]
|
|
249
|
-
}), props.showConfirmButton && createVNode(ElButton, {
|
|
250
|
-
"loading": state.loading,
|
|
251
|
-
"loadingIcon": Eleme,
|
|
252
|
-
"disabled": props.disabledConfirmButton,
|
|
253
|
-
"type": "primary",
|
|
254
|
-
"onClick": handleConfirmClick
|
|
255
|
-
}, {
|
|
256
|
-
default: () => [state.loading ? "加载中..." : props.confirmButtonText]
|
|
257
|
-
})])
|
|
258
|
-
}
|
|
259
|
-
}));
|
|
260
|
-
return useExpose(expose, {
|
|
261
|
-
/** @description 弹窗内容引用 */
|
|
262
|
-
dialogContentRef: computed(() => dialogRef.value?.dialogContentRef),
|
|
263
|
-
/** @description 重置位置 */
|
|
264
|
-
resetPosition: computed(() => dialogRef.value?.resetPosition),
|
|
265
|
-
/** @description 加载状态 */
|
|
266
|
-
loading: computed(() => state.loading),
|
|
267
|
-
/** @description 是否显示 */
|
|
268
|
-
visible: computed(() => state.visible),
|
|
269
|
-
/** @description 打开弹窗 */
|
|
270
|
-
open: handleOpen,
|
|
271
|
-
/** @description 关闭弹窗 */
|
|
272
|
-
close: handleClose,
|
|
273
|
-
/** @description 刷新弹窗 */
|
|
274
|
-
refresh: handleRefresh,
|
|
275
|
-
/** @description 弹窗加载 */
|
|
276
|
-
doLoading: handleLoading
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
});
|
|
280
|
-
export {
|
|
281
|
-
Dialog as default,
|
|
282
|
-
faDialogEmits,
|
|
283
|
-
faDialogProps
|
|
284
|
-
};
|
|
1
|
+
import{defineComponent as e,reactive as l,ref as o,nextTick as a,watch as n,createVNode as i,mergeProps as t,Fragment as s,withDirectives as d,resolveDirective as r,computed as u}from"vue";import{dialogProps as f,dialogEmits as c,useGlobalSize as g,ElMessage as _,ElMessageBox as h,ElDialog as p,ElButton as m,ElScrollbar as C,ElIcon as v}from"element-plus";import{Eleme as B,Refresh as b,FullScreen as y,Close as w}from"@element-plus/icons-vue";import{FullScreenExit as k}from"@fast-element-plus/icons-vue";import{definePropType as F,execFunction as x,consoleError as T,useProps as D,useRender as O,useExpose as S,makeSlots as V}from"@fast-china/utils";import{isBoolean as A}from"lodash-unified";const R={...f,alignCenter:{type:Boolean,default:!0},appendToBody:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},destroyOnClose:{type:Boolean,default:!0},overflow:{type:Boolean,default:!0},top:{type:String,default:"5vh"},width:{type:[String,Number],default:"90%"},showRefresh:{type:Boolean,default:!0},showFullscreen:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showConfirmButton:{type:Boolean,default:!0},disabledConfirmButton:Boolean,closeButtonText:{type:String,default:"取消"},confirmButtonText:{type:String,default:"确认"},hideFooter:Boolean,fillHeight:Boolean,showBeforeClose:Boolean,afterOpen:{type:F(Function)}},H={...c,"update:modelValue":e=>A(e),confirmClick:()=>!0},P=/* @__PURE__ */e({name:"FaDialog",props:R,emits:H,slots:V(),setup(e,{attrs:c,slots:F,emit:V,expose:A}){const R=g(),H=l({loading:!1,visible:!1,fullscreen:!1,refreshing:!1}),P=o();let q;const I=l=>{H.visible=!0,q=l,a(()=>{H.loading=!0,x(e.afterOpen??l).then(()=>{V("open")}).catch(e=>{T("FaDialog",e),H.visible=!1}).finally(()=>{H.loading=!1})})},L=e=>{H.loading=!0,x(e).then(()=>{V("close"),H.visible=!1}).catch(e=>{T("FaDialog",e)}).finally(()=>{H.loading=!1})},N=()=>{H.loading||(H.refreshing=!0,H.loading=!0,setTimeout(()=>{H.refreshing=!1,I(q),_.success("刷新成功")},500))},U=l=>{if(H.loading)return;if(document.querySelector(".el-image-viewer__wrapper"))return;const o=()=>{x(e.beforeClose).then(()=>{V("close"),l()}).catch(e=>{T("FaDialog",e)})};e.showBeforeClose?h.confirm("确定关闭?",{type:"warning"}).then(()=>{o()}):o()},$=()=>{H.loading||(H.fullscreen=!H.fullscreen)},j=()=>{H.loading||V("confirmClick")},z=()=>{H.loading||L()};n(()=>H.visible,e=>{V("update:modelValue",e)});const E=D(e,f,["modelValue","fullscreen","showClose","beforeClose"]);return O(()=>i(p,t(E.value,{ref:P,class:["fa-dialog",`fa-dialog-${R.value}`,{"fa-dialog__fill-height":e.fillHeight,"fa-dialog__fullscreen":H.fullscreen}],modelValue:H.visible,"onUpdate:modelValue":e=>H.visible=e,fullscreen:H.fullscreen,showClose:!1,beforeClose:U,onOpened:()=>V("opened"),onClosed:()=>V("closed"),onOpenAutoFocus:()=>V("openAutoFocus"),onCloseAutoFocus:()=>V("closeAutoFocus")}),{header:()=>i(s,null,[i("div",{class:"fa-dialog__header-title"},[e.title,F.header&&F.header({loading:H.loading,close:z})]),e.showRefresh&&i("div",{title:"刷新",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:N},[i(v,null,{default:()=>[i(b,null,null)]})]),e.showFullscreen&&i("div",{title:H.fullscreen?"关闭全屏显示":"全屏显示",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:$},[i(v,null,{default:()=>[H.fullscreen?i(k,null,null):i(y,null,null)]})]),e.showClose&&i("div",{title:"关闭",class:["fa-dialog__header-icon",H.loading?"fa__click__disabled fa__click__disabled__cursor ":"fa__hover__twinkle"],onClick:z},[i(v,null,{default:()=>[i(w,null,null)]})])]),default:()=>d(i(C,{"element-loading-text":"加载中..."},{default:()=>[!H.refreshing&&F.default&&F.default(H)]}),[[r("loading"),H.loading]]),...!e.hideFooter&&{footer:()=>i(s,null,[F.footer&&F.footer({loading:H.loading,close:z}),e.showCloseButton&&i(m,{disabled:H.loading,onClick:z},{default:()=>[e.closeButtonText]}),e.showConfirmButton&&i(m,{loading:H.loading,loadingIcon:B,disabled:e.disabledConfirmButton,type:"primary",onClick:j},{default:()=>[H.loading?"加载中...":e.confirmButtonText]})])}})),S(A,{dialogContentRef:u(()=>P.value?.dialogContentRef),resetPosition:u(()=>P.value?.resetPosition),loading:u(()=>H.loading),visible:u(()=>H.visible),open:I,close:L,refresh:N,doLoading:e=>{H.loading=!0,x(e).then().catch(e=>{T("FaDialog",e)}).finally(()=>{H.loading=!1})}})}});export{P as default,H as faDialogEmits,R as faDialogProps};
|
|
285
2
|
//# sourceMappingURL=dialog.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog.mjs","sources":["../../../../../packages/components/dialog/src/dialog.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDialog, ElIcon, ElMessage, ElMessageBox, ElScrollbar, dialogEmits, dialogProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, FullScreen, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { DialogInstance } from \"element-plus\";\nimport type { VNode } from \"vue\";\n\nexport const faDialogProps = {\n\t...dialogProps,\n\t/** @description whether to align the dialog both horizontally and vertically*/\n\talignCenter: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description draggable Dialog can overflow the viewport */\n\toverflow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description value for `margin-top` of Dialog CSS, default is 15vh */\n\ttop: {\n\t\ttype: String,\n\t\tdefault: \"5vh\",\n\t},\n\t/** @description width of Dialog, default is 50% */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"90%\",\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 撑满高度 */\n\tfillHeight: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDialogEmits = {\n\t...dialogEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDialogSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDialog\",\n\tprops: faDialogProps,\n\temits: faDialogEmits,\n\tslots: makeSlots<FaDialogSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst dialogRef = ref<DialogInstance>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elDialogProps = useProps(props, dialogProps, [\"modelValue\", \"fullscreen\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDialog\n\t\t\t\t{...elDialogProps.value}\n\t\t\t\tref={dialogRef}\n\t\t\t\tclass={[\n\t\t\t\t\t\"fa-dialog\",\n\t\t\t\t\t`fa-dialog-${_globalSize.value}`,\n\t\t\t\t\t{ \"fa-dialog__fill-height\": props.fillHeight, \"fa-dialog__fullscreen\": state.fullscreen },\n\t\t\t\t]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tfullscreen={state.fullscreen}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-dialog__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 弹窗内容引用 */\n\t\t\tdialogContentRef: computed(() => dialogRef.value?.dialogContentRef),\n\t\t\t/** @description 重置位置 */\n\t\t\tresetPosition: computed(() => dialogRef.value?.resetPosition),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDialogProps","dialogProps","alignCenter","type","Boolean","default","appendToBody","draggable","destroyOnClose","overflow","top","String","width","Number","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","confirmButtonText","hideFooter","fillHeight","showBeforeClose","afterOpen","definePropType","Function","faDialogEmits","dialogEmits","value","isBoolean","confirmClick","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","refreshing","dialogRef","ref","cacheOpenFunction","undefined","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleLoading","loadingFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","elDialogProps","useProps","useRender","_createVNode","ElDialog","_mergeProps","$event","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","ElIcon","Refresh","FullScreenExit","FullScreen","showClose","Close","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","Eleme","useExpose","dialogContentRef","computed","resetPosition","open","refresh","doLoading"],"mappings":";;;;;;AASO,MAAMA,gBAAgB;AAAA,EAC5B,GAAGC;AAAAA;AAAAA,EAEHC,aAAa;AAAA,IACZC,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVC,cAAc;AAAA,IACbH,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVE,WAAW;AAAA,IACVJ,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVG,gBAAgB;AAAA,IACfL,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVI,UAAU;AAAA,IACTN,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVK,KAAK;AAAA,IACJP,MAAMQ;AAAAA,IACNN,SAAS;AAAA;;EAGVO,OAAO;AAAA,IACNT,MAAM,CAACQ,QAAQE,MAAM;AAAA,IACrBR,SAAS;AAAA;;EAGVS,aAAa;AAAA,IACZX,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVU,gBAAgB;AAAA,IACfZ,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVW,iBAAiB;AAAA,IAChBb,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVY,mBAAmB;AAAA,IAClBd,MAAMC;AAAAA,IACNC,SAAS;AAAA;;EAGVa,uBAAuBd;AAAAA;AAAAA,EAEvBe,iBAAiB;AAAA,IAChBhB,MAAMQ;AAAAA,IACNN,SAAS;AAAA;;EAGVe,mBAAmB;AAAA,IAClBjB,MAAMQ;AAAAA,IACNN,SAAS;AAAA;;EAGVgB,YAAYjB;AAAAA;AAAAA,EAEZkB,YAAYlB;AAAAA;AAAAA,EAEZmB,iBAAiBnB;AAAAA;AAAAA,EAEjBoB,WAAW;AAAA,IACVrB,MAAMsB,eAA2BC,QAAQ;AAAA,EAC1C;AACD;AAEO,MAAMC,gBAAgB;AAAA,EAC5B,GAAGC;AAAAA;AAAAA,EAEH,qBAAsBC,WAA4BC,UAAUD,KAAK;AAAA;AAAA,EAEjEE,cAAcA,MAAe;AAC9B;AAWA,MAAA,yCAA+B;AAAA,EAC9BC,MAAM;AAAA,EACNC,OAAOjC;AAAAA,EACPkC,OAAOP;AAAAA,EACPQ,OAAOC,UAAS;AAAA,EAChBC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,IAAOH;AAAAA,IAAOI;AAAAA,IAAMC;AAAAA,EAAO,GAAG;AAC5C,UAAMC,cAAcC,cAAa;AAEjC,UAAMC,QAAQC,SAAS;AAAA,MACtBC,SAAS;AAAA,MACTC,SAAS;AAAA,MACTC,YAAY;AAAA,MACZC,YAAY;AAAA,IACb,CAAC;AAED,UAAMC,YAAYC,IAAG;AAErB,QAAIC,oBAAoBC;AAExB,UAAMC,aAAcC,kBAAoD;AACvEX,YAAMG,UAAU;AAChBK,0BAAoBG;AACpBC,eAAS,MAAM;AACdZ,cAAME,UAAU;AAChBW,qBAAavB,MAAMT,aAAa8B,YAAY,EAC1CG,KAAK,MAAM;AACXlB,eAAK,MAAM;AAAA,QACZ,CAAC,EACAmB,MAAOC,WAAU;AACjBC,uBAAa,YAAYD,KAAK;AAE9BhB,gBAAMG,UAAU;AAAA,QACjB,CAAC,EACAe,QAAQ,MAAM;AACdlB,gBAAME,UAAU;AAAA,QACjB,CAAC;AAAA,MACH,CAAC;AAAA,IACF;AAEA,UAAMiB,cAAeC,mBAAqD;AACzEpB,YAAME,UAAU;AAChBW,mBAAaO,aAAa,EACxBN,KAAK,MAAM;AACXlB,aAAK,OAAO;AACZI,cAAMG,UAAU;AAAA,MACjB,CAAC,EACAY,MAAOC,WAAU;AACjBC,qBAAa,YAAYD,KAAK;AAAA,MAC/B,CAAC,EACAE,QAAQ,MAAM;AACdlB,cAAME,UAAU;AAAA,MACjB,CAAC;AAAA,IACH;AAEA,UAAMmB,gBAAiBC,qBAAsD;AAC5EtB,YAAME,UAAU;AAChBW,mBAAaS,eAAe,EAC1BR,KAAI,EACJC,MAAOC,WAAU;AACjBC,qBAAa,YAAYD,KAAK;AAAA,MAC/B,CAAC,EACAE,QAAQ,MAAM;AACdlB,cAAME,UAAU;AAAA,MACjB,CAAC;AAAA,IACH;AAEA,UAAMqB,gBAAgBA,MAAY;AACjC,UAAIvB,MAAME,QAAS;AACnBF,YAAMK,aAAa;AACnBL,YAAME,UAAU;AAChBsB,iBAAW,MAAM;AAChBxB,cAAMK,aAAa;AACnBK,mBAAWF,iBAAiB;AAC5BiB,kBAAUC,QAAQ,MAAM;AAAA,MACzB,GAAG,GAAG;AAAA,IACP;AAEA,UAAMC,oBAAqBC,UAA2B;AACrD,UAAI5B,MAAME,QAAS;AAEnB,UAAI2B,SAASC,cAAc,2BAA2B,EAAG;AAEzD,YAAMC,UAAUA,MAAY;AAC3BlB,qBAAavB,MAAM0C,WAAW,EAC5BlB,KAAK,MAAM;AACXlB,eAAK,OAAO;AACZgC,eAAI;AAAA,QACL,CAAC,EACAb,MAAOC,WAAU;AACjBC,uBAAa,YAAYD,KAAK;AAAA,QAC/B,CAAC;AAAA,MACH;AAEA,UAAI1B,MAAMV,iBAAiB;AAC1BqD,qBAAaC,QAAQ,SAAS;AAAA,UAAE1E,MAAM;AAAA,QAAU,CAAC,EAAEsD,KAAK,MAAM;AAC7DiB,kBAAO;AAAA,QACR,CAAC;AAAA,MACF,OAAO;AACNA,gBAAO;AAAA,MACR;AAAA,IACD;AAEA,UAAMI,mBAAmBA,MAAY;AACpC,UAAInC,MAAME,QAAS;AACnBF,YAAMI,aAAa,CAACJ,MAAMI;AAAAA,IAC3B;AAEA,UAAMgC,qBAAqBA,MAAY;AACtC,UAAIpC,MAAME,QAAS;AACnBN,WAAK,cAAc;AAAA,IACpB;AAEA,UAAMyC,mBAAmBA,MAAY;AACpC,UAAIrC,MAAME,QAAS;AACnBiB,kBAAW;AAAA,IACZ;AAEAmB,UACC,MAAMtC,MAAMG,SACXoC,cAAa;AACb3C,WAAK,qBAAqB2C,QAAQ;AAAA,IACnC,CACD;AAEA,UAAMC,gBAAgBC,SAASnD,OAAOhC,aAAa,CAAC,cAAc,cAAc,aAAa,aAAa,CAAC;AAE3GoF,cAAU,MAAAC,YAAAC,UAAAC,WAEJL,cAActD,OAAK;AAAA,MAAA,OAClBoB;AAAAA,MAAS,SACP,CACN,aACA,aAAaR,YAAYZ,KAAK,IAC9B;AAAA,QAAE,0BAA0BI,MAAMX;AAAAA,QAAY,yBAAyBqB,MAAMI;AAAAA,MAAW,CAAC;AAAA,MACzF,cACOJ,MAAMG;AAAAA,MAAO,uBAAA2C,YAAb9C,MAAMG,UAAO2C;AAAAA,MAAA,cACT9C,MAAMI;AAAAA,MAAU,aACjB;AAAA,MAAK,eACHuB;AAAAA,MAAiB,YACpBoB,MAAMnD,KAAK,QAAQ;AAAA,MAAC,YACpBoD,MAAMpD,KAAK,QAAQ;AAAA,MAAC,mBACbqD,MAAMrD,KAAK,eAAe;AAAA,MAAC,oBAC1BsD,MAAMtD,KAAK,gBAAgB;AAAA,IAAC,CAAA,GAAA;AAAA,MAG7CuD,QAAQA,MAAAR,YAAAS,iBAAAT,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAAA,CAGJrD,MAAM+D,OACN7D,MAAM2D,UAAU3D,MAAM2D,OAAO;AAAA,QAAEjD,SAASF,MAAME;AAAAA,QAASoD,OAAOjB;AAAAA,MAAiB,CAAC,CAAC,CAAA,GAElF/C,MAAMnB,eAAWwE,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,SAGT,CACN,0BACA3C,MAAME,UAAU,qDAAqD,oBAAoB;AAAA,QACzF,WACQqB;AAAAA,SAAa,CAAAoB,YAAAY,QAAA,MAAA;AAAA,QAAA7F,SAAAA,MAAA,CAAAiF,YAAAa,SAAA,MAAA,IAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,GAOvBlE,MAAMlB,kBAAcuE,YAAA,OAAA;AAAA,QAAA,SAEZ3C,MAAMI,aAAa,WAAW;AAAA,QAAM,SACpC,CACN,0BACAJ,MAAME,UAAU,qDAAqD,oBAAoB;AAAA,QACzF,WACQiC;AAAAA,SAAgB,CAAAQ,YAAAY,QAAA,MAAA;AAAA,QAAA7F,SAAAA,MAAA,CAEhBsC,MAAMI,aAAUuC,YAAAc,gBAAA,MAAA,IAAA,IAAAd,YAAAe,YAAA,MAAA,IAAA,CAAsC;AAAA,MAAA,CAAA,CAAA,CAAA,GAGhEpE,MAAMqE,aAAShB,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,QAAA,SAGP,CACN,0BACA3C,MAAME,UAAU,qDAAqD,oBAAoB;AAAA,QACzF,WACQmC;AAAAA,SAAgB,CAAAM,YAAAY,QAAA,MAAA;AAAA,QAAA7F,SAAAA,MAAA,CAAAiF,YAAAiB,OAAA,MAAA,IAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA,CAM1B,CAAA;AAAA,MAGHlG,SAASA,MAAAmG,eAAAlB,YAAAmB,aAAA;AAAA,QAAA,wBAAA;AAAA,MAAA,GAAA;AAAA,QAAApG,SAAAA,MAAA,CAEN,CAACsC,MAAMK,cAAcb,MAAM9B,WAAW8B,MAAM9B,QAAQsC,KAAK,CAAC;AAAA,MAAA,CAAA,GAAA,CAAA,CAAA+D,iBAAA,SAAA,GADrC/D,MAAME,OAAO,CAAA,CAAA;AAAA,MAIrC,GAAI,CAACZ,MAAMZ,cAAc;AAAA,QACxBsF,QAAQA,MAAArB,YAAAS,UAAA,MAAA,CAEL5D,MAAMwE,UAAUxE,MAAMwE,OAAO;AAAA,UAAE9D,SAASF,MAAME;AAAAA,UAASoD,OAAOjB;AAAAA,SAAkB,GAChF/C,MAAMjB,mBAAesE,YAAAsB,UAAA;AAAA,UAAA,YACDjE,MAAME;AAAAA,UAAO,WAAWmC;AAAAA,QAAgB,GAAA;AAAA,UAAA3E,SAAAA,MAAA,CAC1D4B,MAAMd,eAAe;AAAA,QAAA,CAAA,GAGvBc,MAAMhB,qBAAiBqE,YAAAsB,UAAA;AAAA,UAAA,WAEbjE,MAAME;AAAAA,UAAO,eACTgE;AAAAA,UAAK,YACR5E,MAAMf;AAAAA,UAAqB,QAAA;AAAA,UAAA,WAE5B6D;AAAAA,QAAkB,GAAA;AAAA,UAAA1E,SAAAA,MAAA,CAE1BsC,MAAME,UAAU,WAAWZ,MAAMb,iBAAiB;AAAA,SAAA,CAEpD,CAAA;AAAA;IAGF,CAAA,CAGJ;AAED,WAAO0F,UAAUtE,QAAQ;AAAA;AAAA,MAExBuE,kBAAkBC,SAAS,MAAM/D,UAAUpB,OAAOkF,gBAAgB;AAAA;AAAA,MAElEE,eAAeD,SAAS,MAAM/D,UAAUpB,OAAOoF,aAAa;AAAA;AAAA,MAE5DpE,SAASmE,SAAS,MAAMrE,MAAME,OAAO;AAAA;AAAA,MAErCC,SAASkE,SAAS,MAAMrE,MAAMG,OAAO;AAAA;AAAA,MAErCoE,MAAM7D;AAAAA;AAAAA,MAEN4C,OAAOnC;AAAAA;AAAAA,MAEPqD,SAASjD;AAAAA;AAAAA,MAETkD,WAAWpD;AAAAA,IACZ,CAAC;AAAA,EACF;AACD,CAAC;"}
|
|
1
|
+
{"version":3,"file":"dialog.mjs","sources":["../../../../../packages/components/dialog/src/dialog.tsx"],"sourcesContent":["import { Fragment, computed, defineComponent, nextTick, reactive, ref, watch } from \"vue\";\nimport { ElButton, ElDialog, ElIcon, ElMessage, ElMessageBox, ElScrollbar, dialogEmits, dialogProps, useGlobalSize } from \"element-plus\";\nimport { Close, Eleme, FullScreen, Refresh } from \"@element-plus/icons-vue\";\nimport { FullScreenExit } from \"@fast-element-plus/icons-vue\";\nimport { consoleError, definePropType, execFunction, makeSlots, useExpose, useProps, useRender } from \"@fast-china/utils\";\nimport { isBoolean } from \"lodash-unified\";\nimport type { DialogInstance } from \"element-plus\";\nimport type { VNode } from \"vue\";\n\nexport const faDialogProps = {\n\t...dialogProps,\n\t/** @description whether to align the dialog both horizontally and vertically*/\n\talignCenter: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description whether to append Dialog itself to body. A nested Dialog should have this attribute set to `true` */\n\tappendToBody: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description enable dragging feature for Dialog */\n\tdraggable: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description destroy elements in Dialog when closed */\n\tdestroyOnClose: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description draggable Dialog can overflow the viewport */\n\toverflow: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description value for `margin-top` of Dialog CSS, default is 15vh */\n\ttop: {\n\t\ttype: String,\n\t\tdefault: \"5vh\",\n\t},\n\t/** @description width of Dialog, default is 50% */\n\twidth: {\n\t\ttype: [String, Number],\n\t\tdefault: \"90%\",\n\t},\n\t/** @description 显示刷新按钮 */\n\tshowRefresh: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示全屏图标 */\n\tshowFullscreen: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示关闭按钮 */\n\tshowCloseButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 显示确认按钮 */\n\tshowConfirmButton: {\n\t\ttype: Boolean,\n\t\tdefault: true,\n\t},\n\t/** @description 禁用确认按钮 */\n\tdisabledConfirmButton: Boolean,\n\t/** @description 关闭按钮文字,默认取消 */\n\tcloseButtonText: {\n\t\ttype: String,\n\t\tdefault: \"取消\",\n\t},\n\t/** @description 确认按钮文字,默认确认 */\n\tconfirmButtonText: {\n\t\ttype: String,\n\t\tdefault: \"确认\",\n\t},\n\t/** @description 隐藏底部操作 */\n\thideFooter: Boolean,\n\t/** @description 撑满高度 */\n\tfillHeight: Boolean,\n\t/** @description 显示关闭回调 */\n\tshowBeforeClose: Boolean,\n\t/** @description 打开之后 */\n\tafterOpen: {\n\t\ttype: definePropType<() => void>(Function),\n\t},\n};\n\nexport const faDialogEmits = {\n\t...dialogEmits,\n\t/** @description v-model 回调 */\n\t\"update:modelValue\": (value: boolean): boolean => isBoolean(value),\n\t/** @description 确认按钮点击事件 */\n\tconfirmClick: (): boolean => true,\n};\n\ntype FaDialogSlots = {\n\t/** @description 默认内容插槽 */\n\tdefault: { loading: boolean };\n\t/** @description 头部插槽 */\n\theader: { loading: boolean; close: () => void };\n\t/** @description 底部插槽 */\n\tfooter: { loading: boolean; close: () => void };\n};\n\nexport default defineComponent({\n\tname: \"FaDialog\",\n\tprops: faDialogProps,\n\temits: faDialogEmits,\n\tslots: makeSlots<FaDialogSlots>(),\n\tsetup(props, { attrs, slots, emit, expose }) {\n\t\tconst _globalSize = useGlobalSize();\n\n\t\tconst state = reactive({\n\t\t\tloading: false,\n\t\t\tvisible: false,\n\t\t\tfullscreen: false,\n\t\t\trefreshing: false,\n\t\t});\n\n\t\tconst dialogRef = ref<DialogInstance>();\n\n\t\tlet cacheOpenFunction = undefined;\n\n\t\tconst handleOpen = (openFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.visible = true;\n\t\t\tcacheOpenFunction = openFunction;\n\t\t\tnextTick(() => {\n\t\t\t\tstate.loading = true;\n\t\t\t\texecFunction(props.afterOpen ?? openFunction)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"open\");\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t\t// 自动关闭\n\t\t\t\t\t\tstate.visible = false;\n\t\t\t\t\t})\n\t\t\t\t\t.finally(() => {\n\t\t\t\t\t\tstate.loading = false;\n\t\t\t\t\t});\n\t\t\t});\n\t\t};\n\n\t\tconst handleClose = (closeFunction?: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(closeFunction)\n\t\t\t\t.then(() => {\n\t\t\t\t\temit(\"close\");\n\t\t\t\t\tstate.visible = false;\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleLoading = (loadingFunction: () => void | Promise<void>): void => {\n\t\t\tstate.loading = true;\n\t\t\texecFunction(loadingFunction)\n\t\t\t\t.then()\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tstate.loading = false;\n\t\t\t\t});\n\t\t};\n\n\t\tconst handleRefresh = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.refreshing = true;\n\t\t\tstate.loading = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tstate.refreshing = false;\n\t\t\t\thandleOpen(cacheOpenFunction);\n\t\t\t\tElMessage.success(\"刷新成功\");\n\t\t\t}, 500);\n\t\t};\n\n\t\tconst handleBeforeClose = (done: () => void): void => {\n\t\t\tif (state.loading) return;\n\t\t\t// 解决 image 预览摁下 ese 会关闭弹窗的问题\n\t\t\tif (document.querySelector(\".el-image-viewer__wrapper\")) return;\n\n\t\t\tconst newDone = (): void => {\n\t\t\t\texecFunction(props.beforeClose)\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\temit(\"close\");\n\t\t\t\t\t\tdone();\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsoleError(\"FaDialog\", error);\n\t\t\t\t\t});\n\t\t\t};\n\n\t\t\tif (props.showBeforeClose) {\n\t\t\t\tElMessageBox.confirm(\"确定关闭?\", { type: \"warning\" }).then(() => {\n\t\t\t\t\tnewDone();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tnewDone();\n\t\t\t}\n\t\t};\n\n\t\tconst handleFullscreen = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\tstate.fullscreen = !state.fullscreen;\n\t\t};\n\n\t\tconst handleConfirmClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\temit(\"confirmClick\");\n\t\t};\n\n\t\tconst handleCloseClick = (): void => {\n\t\t\tif (state.loading) return;\n\t\t\thandleClose();\n\t\t};\n\n\t\twatch(\n\t\t\t() => state.visible,\n\t\t\t(newValue) => {\n\t\t\t\temit(\"update:modelValue\", newValue);\n\t\t\t}\n\t\t);\n\n\t\tconst elDialogProps = useProps(props, dialogProps, [\"modelValue\", \"fullscreen\", \"showClose\", \"beforeClose\"]);\n\n\t\tuseRender(() => (\n\t\t\t<ElDialog\n\t\t\t\t{...elDialogProps.value}\n\t\t\t\tref={dialogRef}\n\t\t\t\tclass={[\n\t\t\t\t\t\"fa-dialog\",\n\t\t\t\t\t`fa-dialog-${_globalSize.value}`,\n\t\t\t\t\t{ \"fa-dialog__fill-height\": props.fillHeight, \"fa-dialog__fullscreen\": state.fullscreen },\n\t\t\t\t]}\n\t\t\t\tvModel={state.visible}\n\t\t\t\tfullscreen={state.fullscreen}\n\t\t\t\tshowClose={false}\n\t\t\t\tbeforeClose={handleBeforeClose}\n\t\t\t\tonOpened={() => emit(\"opened\")}\n\t\t\t\tonClosed={() => emit(\"closed\")}\n\t\t\t\tonOpenAutoFocus={() => emit(\"openAutoFocus\")}\n\t\t\t\tonCloseAutoFocus={() => emit(\"closeAutoFocus\")}\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\theader: () => (\n\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t<div class=\"fa-dialog__header-title\">\n\t\t\t\t\t\t\t\t{props.title}\n\t\t\t\t\t\t\t\t{slots.header && slots.header({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{props.showRefresh && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"刷新\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleRefresh}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Refresh />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showFullscreen && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle={state.fullscreen ? \"关闭全屏显示\" : \"全屏显示\"}\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleFullscreen}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>{state.fullscreen ? <FullScreenExit /> : <FullScreen />}</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{props.showClose && (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\ttitle=\"关闭\"\n\t\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t\t\"fa-dialog__header-icon\",\n\t\t\t\t\t\t\t\t\t\tstate.loading ? \"fa__click__disabled fa__click__disabled__cursor \" : \"fa__hover__twinkle\",\n\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\tonClick={handleCloseClick}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<ElIcon>\n\t\t\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t\t\t</ElIcon>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t),\n\t\t\t\t\tdefault: () => (\n\t\t\t\t\t\t<ElScrollbar vLoading={state.loading} element-loading-text=\"加载中...\">\n\t\t\t\t\t\t\t{!state.refreshing && slots.default && slots.default(state)}\n\t\t\t\t\t\t</ElScrollbar>\n\t\t\t\t\t),\n\t\t\t\t\t...(!props.hideFooter && {\n\t\t\t\t\t\tfooter: (): VNode[] => (\n\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t{slots.footer && slots.footer({ loading: state.loading, close: handleCloseClick })}\n\t\t\t\t\t\t\t\t{props.showCloseButton && (\n\t\t\t\t\t\t\t\t\t<ElButton disabled={state.loading} onClick={handleCloseClick}>\n\t\t\t\t\t\t\t\t\t\t{props.closeButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{props.showConfirmButton && (\n\t\t\t\t\t\t\t\t\t<ElButton\n\t\t\t\t\t\t\t\t\t\tloading={state.loading}\n\t\t\t\t\t\t\t\t\t\tloadingIcon={Eleme}\n\t\t\t\t\t\t\t\t\t\tdisabled={props.disabledConfirmButton}\n\t\t\t\t\t\t\t\t\t\ttype=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={handleConfirmClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{state.loading ? \"加载中...\" : props.confirmButtonText}\n\t\t\t\t\t\t\t\t\t</ElButton>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t),\n\t\t\t\t\t}),\n\t\t\t\t}}\n\t\t\t</ElDialog>\n\t\t));\n\n\t\treturn useExpose(expose, {\n\t\t\t/** @description 弹窗内容引用 */\n\t\t\tdialogContentRef: computed(() => dialogRef.value?.dialogContentRef),\n\t\t\t/** @description 重置位置 */\n\t\t\tresetPosition: computed(() => dialogRef.value?.resetPosition),\n\t\t\t/** @description 加载状态 */\n\t\t\tloading: computed(() => state.loading),\n\t\t\t/** @description 是否显示 */\n\t\t\tvisible: computed(() => state.visible),\n\t\t\t/** @description 打开弹窗 */\n\t\t\topen: handleOpen,\n\t\t\t/** @description 关闭弹窗 */\n\t\t\tclose: handleClose,\n\t\t\t/** @description 刷新弹窗 */\n\t\t\trefresh: handleRefresh,\n\t\t\t/** @description 弹窗加载 */\n\t\t\tdoLoading: handleLoading,\n\t\t});\n\t},\n});\n"],"names":["faDialogProps","dialogProps","alignCenter","type","Boolean","default","appendToBody","draggable","destroyOnClose","overflow","top","String","width","Number","showRefresh","showFullscreen","showCloseButton","showConfirmButton","disabledConfirmButton","closeButtonText","confirmButtonText","hideFooter","fillHeight","showBeforeClose","afterOpen","definePropType","Function","faDialogEmits","dialogEmits","value","isBoolean","confirmClick","Dialog","name","props","emits","slots","makeSlots","setup","attrs","emit","expose","_globalSize","useGlobalSize","state","reactive","loading","visible","fullscreen","refreshing","dialogRef","ref","cacheOpenFunction","handleOpen","openFunction","nextTick","execFunction","then","catch","error","consoleError","finally","handleClose","closeFunction","handleRefresh","setTimeout","ElMessage","success","handleBeforeClose","done","document","querySelector","newDone","beforeClose","ElMessageBox","confirm","handleFullscreen","handleConfirmClick","handleCloseClick","watch","newValue","elDialogProps","useProps","useRender","_createVNode","ElDialog","_mergeProps","class","modelValue","$event","showClose","onOpened","onClosed","onOpenAutoFocus","onCloseAutoFocus","header","_Fragment","title","close","onClick","ElIcon","Refresh","FullScreenExit","FullScreen","Close","_withDirectives","ElScrollbar","_resolveDirective","footer","ElButton","disabled","loadingIcon","Eleme","useExpose","dialogContentRef","computed","resetPosition","open","refresh","doLoading","loadingFunction"],"mappings":"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"}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
import Drawer from "./src/drawer.mjs";
|
|
3
|
-
const FaDrawer = withInstall(Drawer);
|
|
4
|
-
export {
|
|
5
|
-
FaDrawer,
|
|
6
|
-
FaDrawer as default
|
|
7
|
-
};
|
|
1
|
+
import{withInstall as r}from"@fast-china/utils";import t from"./src/drawer.mjs";const o=r(t);export{o as FaDrawer,o as default};
|
|
8
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/drawer/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport Drawer from \"./src/drawer\";\nimport type { faDrawerEmits, faDrawerProps } from \"./src/drawer\";\nimport type { ExtractPropTypes } from \"vue\";\n\nexport const FaDrawer = withInstall(Drawer);\nexport default FaDrawer;\n\nexport { faDrawerProps, faDrawerEmits };\n\nexport type FaDrawerInstance = InstanceType<typeof Drawer>;\n\nexport type FaDrawerProps = ExtractPropTypes<typeof faDrawerProps>;\n\nexport type FaDrawerEmits = typeof faDrawerEmits;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../packages/components/drawer/index.ts"],"sourcesContent":["import { withInstall } from \"@fast-china/utils\";\nimport Drawer from \"./src/drawer\";\nimport type { faDrawerEmits, faDrawerProps } from \"./src/drawer\";\nimport type { ExtractPropTypes } from \"vue\";\n\nexport const FaDrawer = withInstall(Drawer);\nexport default FaDrawer;\n\nexport { faDrawerProps, faDrawerEmits };\n\nexport type FaDrawerInstance = InstanceType<typeof Drawer>;\n\nexport type FaDrawerProps = ExtractPropTypes<typeof faDrawerProps>;\n\nexport type FaDrawerEmits = typeof faDrawerEmits;\n"],"names":["FaDrawer","withInstall","Drawer"],"mappings":"gFAKO,MAAMA,EAAWC,EAAYC"}
|
|
@@ -118,6 +118,9 @@ export declare const faDrawerEmits: {
|
|
|
118
118
|
"update:modelValue": (value: boolean) => boolean;
|
|
119
119
|
/** @description 确认按钮点击事件 */
|
|
120
120
|
confirmClick: () => boolean;
|
|
121
|
+
'resize-start': (evt: MouseEvent, size: number) => boolean;
|
|
122
|
+
resize: (evt: MouseEvent, size: number) => boolean;
|
|
123
|
+
'resize-end': (evt: MouseEvent, size: number) => boolean;
|
|
121
124
|
open: () => boolean;
|
|
122
125
|
opened: () => boolean;
|
|
123
126
|
close: () => boolean;
|
|
@@ -279,6 +282,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
279
282
|
"update:modelValue": (value: boolean) => boolean;
|
|
280
283
|
/** @description 确认按钮点击事件 */
|
|
281
284
|
confirmClick: () => boolean;
|
|
285
|
+
'resize-start': (evt: MouseEvent, size: number) => boolean;
|
|
286
|
+
resize: (evt: MouseEvent, size: number) => boolean;
|
|
287
|
+
'resize-end': (evt: MouseEvent, size: number) => boolean;
|
|
282
288
|
open: () => boolean;
|
|
283
289
|
opened: () => boolean;
|
|
284
290
|
close: () => boolean;
|
|
@@ -401,6 +407,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
401
407
|
ariaLevel: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "2", boolean>;
|
|
402
408
|
}>> & Readonly<{
|
|
403
409
|
"onUpdate:modelValue"?: (value: boolean) => any;
|
|
410
|
+
onResize?: (evt: MouseEvent, size: number) => any;
|
|
404
411
|
onOpen?: () => any;
|
|
405
412
|
onClose?: () => any;
|
|
406
413
|
onConfirmClick?: () => any;
|
|
@@ -408,6 +415,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
408
415
|
onClosed?: () => any;
|
|
409
416
|
onOpenAutoFocus?: () => any;
|
|
410
417
|
onCloseAutoFocus?: () => any;
|
|
418
|
+
"onResize-start"?: (evt: MouseEvent, size: number) => any;
|
|
419
|
+
"onResize-end"?: (evt: MouseEvent, size: number) => any;
|
|
411
420
|
}>, {
|
|
412
421
|
size: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
|
|
413
422
|
title: string;
|