vue-admin-core
Version:
A Component Library for Vue 3
58 lines (55 loc) • 1.9 kB
JavaScript
import { h, defineComponent, createVNode } from 'vue';
import { createForm, FragmentComponent, FormProvider } from '@formily/vue';
import { observer } from '@formily/reactive-vue';
import '../../formily/index.mjs';
import { getPopupProps, useCorePopup } from '../__shared__/useCorePopup.mjs';
import { ElDialog } from 'element-plus';
import { Reset } from '../../formily/reset/src/index.mjs';
function useFormilyDialog(title, content, options) {
const form = createForm(options);
const props = getPopupProps(title);
const [dialog, ContextHolder] = useCorePopup({
okText: "\u63D0\u4EA4",
addonCenter: h(Reset, {
...props == null ? void 0 : props.resetButtonProps,
onClick: (e) => {
var _a;
(_a = props == null ? void 0 : props.onReset) == null ? void 0 : _a.call(props, e);
dialog.reset(form);
}
}, {
default: () => (props == null ? void 0 : props.resetText) || "\u91CD\u7F6E"
}),
...props
}, ElDialog, content);
const _originResolve = dialog.resolve.bind(dialog);
const _originReject = dialog.reject.bind(dialog);
const _originOpen = dialog.open.bind(dialog);
const _originBeforeOpen = dialog.beforeOpen.bind(dialog);
dialog.resolve = async () => {
_originResolve(form);
};
dialog.reject = async () => {
_originReject(form);
};
dialog.beforeOpen = async () => {
return _originBeforeOpen(form);
};
dialog.open = async (props2) => {
return _originOpen(props2);
};
const Component = observer(defineComponent({
setup() {
return () => createVNode(FragmentComponent, null, {
default: () => [createVNode(FormProvider, {
"form": form
}, {
default: () => [createVNode(ContextHolder, null, null)]
})]
});
}
}));
return [dialog, Component];
}
export { useFormilyDialog };
//# sourceMappingURL=useFormilyDialog.mjs.map