UNPKG

@wetspace/pro-components

Version:
175 lines (174 loc) 6.29 kB
import { defineComponent as T, useSlots as x, inject as B, computed as s, ref as U, watch as z, onMounted as D, onUnmounted as M, openBlock as a, createBlock as h, unref as o, mergeProps as C, withCtx as i, createSlots as Q, createElementVNode as b, normalizeClass as f, createElementBlock as m, renderSlot as p, createCommentVNode as d, normalizeStyle as G, createVNode as P, createTextVNode as H, toDisplayString as J, withDirectives as K, vShow as L } from "vue"; import { useNamespace as R, ElCol as X, ElFormItem as Y, ElTooltip as Z, ElIcon as ee, colProps as te, formItemProps as oe } from "element-plus"; import { wetProFormItemProps as le } from "../types.mjs"; import { SymbolState as re } from "../symbol.mjs"; import "../../../delete-button/index.mjs"; import "../../../count-down-button/index.mjs"; import { TextEllipsis as se } from "../../../ellipsis/index.mjs"; import "../../../form-fileds/index.mjs"; import "../../index.mjs"; import "../../../pro-table/index.mjs"; import "../../../pro-descriptions/index.mjs"; import "../../../pro-list/index.mjs"; import "../../../layout/index.mjs"; import "../../../page/index.mjs"; import "../../../guide/index.mjs"; import "../../../notice-menu/index.mjs"; import "../../../state/index.mjs"; import { QuestionFilled as ae } from "../../../node_modules/.pnpm/@element-plus_icons-vue@2.3.1_vue@3.5.12_typescript@5.4.2_/node_modules/@element-plus/icons-vue/dist/index.mjs"; import ne from "../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isUndefined.mjs"; import ie from "../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.mjs"; const pe = { key: 0, class: "prepend" }, ue = { key: 1, class: "append" }, me = { key: 0, class: "prepend" }, de = { key: 1, class: "append" }, Ne = /* @__PURE__ */ T({ name: "WetProFormItem", __name: "item", props: le, setup(S) { const u = R("pro-form-item"), c = x(), e = S, { setFormStateValue: y, setFieldsValue: _, registerFiledsPaths: w, registerChangeEmit: E, formState: I, globalColProps: V, labelWidth: g, clearable: W, labelPosition: j } = B(re), F = s(() => { if (e.isAction) return { span: 24 }; const t = { ...V.value }, n = Object.keys(te); return Object.keys(e).forEach((r) => { n.includes(r) && e[r] && (t[r] = e[r]); }), t; }), N = s(() => { const t = {}, n = Object.keys(oe); return Object.keys(e).forEach((r) => { n.includes(r) && (t[r] = e[r]); }), t; }), O = s(() => e.label ? k.value === "left" ? "auto" : ne(e.labelWidth) || e.labelWidth === "" ? g.value : e.labelWidth : 0), k = s(() => e.labelPosition || j.value), l = s(() => Array.isArray(e.prop) ? e.prop : e.prop ? [e.prop] : []), v = U(!1), q = s(() => { if (!v.value) return []; const t = [...e.rules || []]; return e.required && t.unshift({ required: !0, message: `${e.label || "该项"}是必填项` }), t; }), A = s(() => ie(I.value, l.value, void 0)), $ = s(() => ({ ...e.formInputProps, modelValue: A.value, onChange(t) { var n; E(e.prop || ""), (n = e.formInputProps) != null && n.onChange && e.formInputProps.onChange(t); }, "onUpdate:modelValue": (t) => { l.value && _(l.value, t); }, clearable: W.value, style: { width: "100%", maxWidth: e.fixedWidth ? "var(--wet-input-maxwidth,300px)" : "" } })); return z(l, (t) => { t && y(t); }), D(() => { l.value && y(l.value), setTimeout(() => { v.value = !0; }, 200); }), M(() => { v.value = !1, l.value && (_(l.value, void 0), delete w.value[l.value.join(".")]); }), (t, n) => (a(), h(o(X), C(F.value, { class: [o(u).b()] }), { default: i(() => [ e.noStyle ? (a(), m("div", { key: 1, class: f([o(u).e("form-iteminner")]) }, [ o(c).prepend ? (a(), m("div", me, [ p(t.$slots, "prepend") ])) : d("", !0), p(t.$slots, "default", { inputProps: $.value }), o(c).append ? (a(), m("div", de, [ p(t.$slots, "append") ])) : d("", !0) ], 2)) : (a(), h(o(Y), C({ key: 0 }, N.value, { prop: l.value.join("."), rules: q.value, "label-width": O.value, "label-position": k.value }), Q({ default: i(() => [ b("div", { class: f([o(u).e("form-iteminner")]) }, [ o(c).prepend ? (a(), m("div", pe, [ p(t.$slots, "prepend") ])) : d("", !0), p(t.$slots, "default", { inputProps: $.value }), o(c).append ? (a(), m("div", ue, [ p(t.$slots, "append") ])) : d("", !0) ], 2) ]), _: 2 }, [ e.label || e.isAction ? { name: "label", fn: i(() => [ b("div", { class: f([o(u).e("label")]), style: G({ color: e.labelColor }) }, [ P(o(se), null, { default: i(() => [ H(J(e.label), 1), K(b("span", null, ":", 512), [ [L, !1] ]) ]), _: 1 }), e.description ? (a(), h(o(Z), { key: 0, content: e.description, placement: "top", effect: "light" }, { default: i(() => [ P(o(ee), { class: f([o(u).e("question")]) }, { default: i(() => [ P(o(ae)) ]), _: 1 }, 8, ["class"]) ]), _: 1 }, 8, ["content"])) : d("", !0) ], 6) ]), key: "0" } : void 0 ]), 1040, ["prop", "rules", "label-width", "label-position"])) ]), _: 3 }, 16, ["class"])); } }); export { Ne as default };