UNPKG

@aplus-frontend/ui

Version:

247 lines (246 loc) 7 kB
import { isVNode as O, defineComponent as z, useSlots as E, ref as d, watch as $, cloneVNode as q, computed as A, createVNode as n, mergeProps as m, unref as o, createElementBlock as D, openBlock as b, Fragment as L, createBlock as T, createCommentVNode as G, withCtx as v, createElementVNode as K, normalizeClass as W, normalizeStyle as H, renderSlot as C, resolveDynamicComponent as B, createTextVNode as J, toDisplayString as Q } from "vue"; import { Button as y, Flex as X, Space as Y, Modal as Z } from "@aplus-frontend/antdv"; import "../ap-form.vue.mjs"; import "../../hooks/index.mjs"; import { getSingleVNode as ee } from "../../utils/slot.mjs"; import "../../config-provider/index.mjs"; import { omit as te } from "lodash-unified"; import { useControllableValue as le } from "../../hooks/useControllableValue.mjs"; import { useLocale as ae } from "../../config-provider/hooks/use-locale.mjs"; import { useGlobalConfig as oe } from "../../config-provider/hooks/use-global-config.mjs"; import { useNamespace as se } from "../../config-provider/hooks/use-namespace.mjs"; import ne from "../ap-form.vue2.mjs"; function k(i) { return typeof i == "function" || Object.prototype.toString.call(i) === "[object Object]" && !O(i); } const Se = /* @__PURE__ */ z({ name: "ApFormModalForm", __name: "index", props: { layout: { default: "horizontal" }, labelCol: {}, wrapperCol: {}, colon: { type: Boolean, default: !0 }, labelAlign: { default: "right" }, labelWrap: { type: Boolean }, prefixCls: {}, requiredMark: {}, hideRequiredMark: { type: Boolean, default: !1 }, rules: {}, validateMessages: {}, validateOnRuleChange: { type: Boolean, default: !0 }, scrollToFirstError: {}, onSubmit: {}, name: {}, validateTrigger: { default: "change" }, size: {}, disabled: { type: Boolean }, onFieldsChange: {}, onFinishFailed: {}, onValidate: {}, variant: {}, initialValues: {}, onValuesChange: {}, syncToUrl: { type: [Boolean, Function] }, syncToUrlPriority: { type: Boolean }, open: { type: Boolean, default: void 0 }, "onUpdate:open": {}, modalProps: { default: () => ({}) }, title: {}, width: { default: 800 }, onFinish: {}, submitter: { type: [Boolean, Object], default: () => ({ resetButtonProps: !1 }) }, showCancel: { type: Boolean, default: !0 }, submitTimeout: {} }, emits: ["update:open"], setup(i, { expose: P, emit: w }) { const t = i, c = E(), N = w, a = d(), F = d(0), r = d(), s = d(!1), { value: S, updateValue: u } = le(t, N, { valuePropName: "open", defaultValue: !1, beforeUpdateValue(e) { return e && (F.value += 1), !0; } }), { t: f } = ae(), x = oe("uiMode", "aplus"), { b: M, e: p } = se("ap-form-modal-form"); $(() => a.value, (e) => { e && r.value && (e.setFieldsValue?.(r.value), r.value = void 0); }); const g = ee(c.trigger), h = g ? q(g, { onClick: () => { u(!0); } }) : null, R = A(() => { const e = []; if (t.submitter === !1) return null; if (t.showCancel) { let l; e.push(n(y, { onClick: V, disabled: s.value }, k(l = f("ap.common.cancelText")) ? l : { default: () => [l] })); } return t.submitter?.resetButtonProps !== !1 && e.push(n(y, m(t.submitter?.resetButtonProps || {}, { key: "reset", disabled: s.value, onClick: _, htmlType: "reset" }), { default: () => [t.submitter?.resetText || f("ap.common.resetText")] })), t.submitter?.submitButtonProps !== !1 && e.push(n(y, m({ type: "primary", key: "submit", htmlType: "submit" }, t.submitter?.submitButtonProps || {}, { loading: s.value }), { default: () => [t.submitter?.submitText || f("ap.common.okText")] })), n(X, { justify: "flex-end", key: o(F), class: [p("footer"), o(x) === "admin" ? p("footer-admin") : null] }, { default: () => [c.submitter ? c.submitter(e) : n(Y, null, k(e) ? e : { default: () => [e] })] }); }); function _() { t.submitter !== !1 && (a.value?.resetFields(), t.submitter?.onReset?.()); } async function U(e) { if (t.submitter !== !1) try { t.submitter?.onSubmit?.(), s.value = !0; const l = t.onFinish?.(e); if (t.submitTimeout && l instanceof Promise) { const I = setTimeout(() => s.value = !1, t.submitTimeout); l.finally(() => { clearTimeout(I), s.value = !1; }); } await l && u(!1); } finally { s.value = !1; } } function V() { o(s) || u(!1); } function j(e) { !e && o(s) || u(e); } return P({ resetFields: async () => { a.value?.resetFields(); }, clearValidate: (e) => { a.value?.clearValidate(e); }, validateFields: (e, l) => a.value?.validateFields(e, l), getFieldsValue: (e) => a.value?.getFieldsValue(e), validate: (e, l) => a.value?.validate(e, l), scrollToField: (e, l = {}) => { a.value?.scrollToField(e, l); }, setFieldValue: (e, l) => { a.value?.setFieldValue?.(e, l); }, setFieldsValue: (e) => { if (!a.value) { r.value = e; return; } a.value?.setFieldsValue?.(e); }, getInternalInstance: (e) => a.value?.getInternalInstance(e), getFieldsValueTransformed(e) { return a.value?.getFieldsValueTransformed(e); }, validateFieldsReturnTransformed(e, l) { return a.value?.validateFieldsReturnTransformed(e, l); } }), (e, l) => (b(), D(L, null, [n(o(Z), m(e.modalProps, { open: o(S), footer: null, width: e.width, class: o(M)(), "body-style": { padding: "0px !important" }, "onUpdate:open": j, onCancel: V }), { title: v(() => [C(e.$slots, "title", {}, () => [J(Q(t.title), 1)])]), default: v(() => [n(ne, m({ ref_key: "formRef", ref: a }, o(te)(t, ["modalProps", "open", "onUpdate:open", "title", "width", "onFinish", "submitter"]), { onFinish: U }), { default: v(() => [K("div", { style: H(e.modalProps?.bodyStyle), class: W(o(p)("content")) }, [C(e.$slots, "default")], 6), (b(), T(B(R.value)))]), _: 3 }, 16)]), _: 3 }, 16, ["open", "width", "class"]), o(h) ? (b(), T(B(o(h)), { key: 0 })) : G("", !0)], 64)); } }); export { Se as default };