vue-admin-core
Version:
A Component Library for Vue 3
57 lines (54 loc) • 1.91 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 { ElDrawer } from 'element-plus';
import { Reset } from '../../formily/reset/src/index.mjs';
function useFormilyDrawer(title, content, options) {
const form = createForm(options);
const props = getPopupProps(title);
const [drawer, ContextHolder] = useCorePopup({
okText: "\u63D0\u4EA4",
addonCenter: h(Reset, {
...props == null ? void 0 : props.resetButtonProps,
onClick: (e) => {
var _a;
return (_a = props == null ? void 0 : props.onReset) == null ? void 0 : _a.call(props, e);
}
}, {
default: () => (props == null ? void 0 : props.resetText) || "\u91CD\u7F6E"
}),
...props
}, ElDrawer, content);
const _originResolve = drawer.resolve.bind(drawer);
const _originReject = drawer.reject.bind(drawer);
const _originOpen = drawer.open.bind(drawer);
const _originBeforeOpen = drawer.beforeOpen.bind(drawer);
drawer.resolve = async () => {
form.submit(async () => _originResolve(form));
};
drawer.reject = async () => {
return _originReject(form);
};
drawer.beforeOpen = async () => {
return await _originBeforeOpen(form);
};
drawer.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 [drawer, Component];
}
export { useFormilyDrawer };
//# sourceMappingURL=useFormilyDrawer.mjs.map