django-vue3-admin-web/node_modules/@meetjs/vant4-kit/dist/es/form-Bqq6bdYS.js
2025-10-20 21:21:14 +08:00

1236 lines
39 KiB
JavaScript

import { inject as T, toRefs as Z, computed as b, ref as D, renderSlot as E, defineComponent as k, createVNode as c, mergeProps as g, h as me, createApp as ce, nextTick as ie, isVNode as te, Fragment as w, provide as se } from "vue";
import { h as s, d as M, a as h, b as de, c as ne, F as Y, e as fe, P as ge, A as ve, f as F, C as Ve, g as O, D as _, T as G, j as L, k as he, l as ye, R as be, m as Ae, S as Ce, n as ke, o as Te, p as Se, q as Ye, r as Pe, s as Ie } from "./vendor-BuMp2M9h.js";
import { X as J } from "./datetime-picker-BvBgc-bC.js";
import { u as z } from "./hooks-BDiJ55M7.js";
import { c as De, w as xe } from "./utils-BjwmJovq.js";
const S = {
formValue: {
type: Object
},
type: {
type: String,
required: !0
},
label: {
type: String
},
name: {
type: String,
required: !0
},
options: {
type: Array,
default: () => []
},
required: {
type: Boolean,
default: !1
},
readonly: {
type: Boolean,
default: !1
},
popup: {
type: Object,
default: () => ({})
},
itemAttrs: {
type: Object,
default: () => ({})
},
orgAttrs: {
type: Object,
default: () => ({})
},
config: {
type: Object,
default: () => ({})
},
size: {
type: String,
default: "normal"
}
}, $e = ["input", "picker", "cascader", "area", "radio", "checkbox", "date-picker", "time-picker", "datetime-picker", "date-range-picker", "time-range-picker", "datetime-range-picker", "switch", "rate", "slider", "stepper", "text", "html", "slot", "input-slot"], K = ["picker", "cascader", "area", "date-picker", "time-picker", "datetime-picker", "date-range-picker", "time-range-picker", "datetime-range-picker"], B = {
change: ["rate", "switch", "stepper", "slider", "radio", "checkbox"],
blur: ["input", "stepper"],
focus: ["input", "stepper"],
click: ["input", "switch"],
confirm: [],
cancel: [],
"drag-end": ["slider"],
"drag-start": ["slider"],
plus: ["stepper"],
minus: ["stepper"]
}, ee = ["submit", "failed"], Re = ["change", "blur", "focus", "click"], je = ["click-option", "change-option"], Me = ["change", "plus", "minus", "overlimit", "focus", "blur"], Ee = ["change", "drag-start", "drag-end"], He = ["confirm", "cancel", "click-option", "scroll-into"], we = ["click-tab", "close", "finish"], Oe = ["confirm", "cancel", "open", "opened", "closed", "click-overlay"], Ue = [...new Set(ee.concat(ee, Re, je, Me, Ee, Oe, He, we))], R = (e = "") => `请选择${e}`, qe = (e, n, u) => {
const t = ["picker", "area", "cascader", "date-picker", "time-picker", "datetime-picker", "date-range-picker", "time-range-picker", "datetime-range-picker"].includes(e), a = ["input"].includes(e);
if (t) return u || `请选择${n}`;
if (a) return u || `请输入${n}`;
if (u) return u;
}, Fe = (e, n = [], u) => {
let t = [];
const a = { required: !0, message: `${u}不能为空`, trigger: ["onBlur", "onChange", "onSubmit"] };
if (n && h(n)) {
const r = n.find((l) => s(l, "required"));
e && !r && t.push(a), t = t.concat(n);
}
return t;
}, Be = (e) => K.includes(e) ? "arrow" : "", x = (e) => s(e, "slots") ? e.slots : {}, Ne = (e, n) => {
const { onEvents: u } = T("x-form");
let t = {};
return B.change.includes(e) && (t.onChange = (...a) => u("change", n, ...a)), B.blur.includes(e) && (t.onBlur = (a) => u("blur", n, a)), B.focus.includes(e) && (t.onFocus = (a) => u("focus", n, a)), B.click.includes(e) && (t.onClick = (a) => u("click", n, a)), t;
};
function $(e, n = M()) {
const u = {
year: n.format("YYYY"),
month: n.format("MM"),
day: n.format("DD"),
hour: n.format("HH"),
minute: n.format("mm"),
second: n.format("ss")
};
return e.map((t) => u[t]);
}
const P = (e) => {
const { rules: n } = T("x-form"), { type: u, required: t, name: a, itemAttrs: r, label: l, config: o } = Z(e), m = b(() => {
const v = s(r.value, "rules") && h(r.value.rules) ? r.value.rules : [], V = s(o.value, "rules") ? o.value.rules : [], y = s(n, a.value) ? n[a.value] : [];
return Fe(t.value, [...v, ...V, ...y], l.value);
}), i = b(() => {
var V;
let v = {
placeholder: qe(u.value, l.value, (V = r.value) == null ? void 0 : V.placeholder),
required: t.value,
clearable: !!(e.type == "input" || K.includes(e.type)),
...r.value,
label: l.value,
name: a.value,
rules: m.value
};
return s(o, "hiddenLabel") && de(o.value.hiddenLabel) && o.hiddenLabel && (v.class = "xform-hidden-label"), K.includes(e.type) && (v["right-icon"] = Be(e.type), v.readonly = !0), v;
}), d = b(() => e.orgAttrs);
return {
baseAttrs: i,
compAttrs: d
};
}, I = (e) => {
const { formSlots: n } = T("x-form"), { name: u, itemAttrs: t, label: a } = Z(e), r = D({}), l = (m) => {
var i;
return t.value && s(t.value, "slots") && s((i = t.value) == null ? void 0 : i.slots, m);
}, o = (m, i) => {
if (ne(t.value.slots[m]))
return t.value.slots[m](i);
throw new Error(`slots.${m} is not a function`);
};
return (a.value || s(n, `${u.value}.label`) || l("label")) && (r.value.label = () => s(n, `${u.value}.label`) ? E(n, `${u.value}.label`) : l("label") ? o("label") : a.value), (s(n, `${u.value}.left-icon`) || l("left-icon")) && (r.value["left-icon"] = () => s(n, `${u.value}.left-icon`) ? E(n, `${u.value}.left-icon`) : o("left-icon")), (s(n, `${u.value}.right-icon`) || l("right-icon")) && (r.value["right-icon"] = () => s(n, `${u.value}.right-icon`) ? E(n, `${u.value}.right-icon`) : o("right-icon")), (s(n, `${u.value}.error-message`) || l("error-message")) && (r.value["error-message"] = ({ message: m }) => s(n, `${u.value}.error-message`) ? E(n, `${u.value}.error-message`, { message: m }) : o("error-message", { message: m })), (s(n, `${u.value}.button`) || l("button")) && (r.value.button = () => s(n, `${u.value}.button`) ? E(n, `${u.value}.button`) : o("button")), (s(n, `${u.value}.extra`) || l("extra")) && (r.value.extra = () => s(n, `${u.value}.extra`) ? E(n, `${u.value}.extra`) : o("extra")), {
itemSlots: r
};
}, _e = /* @__PURE__ */ k({
name: "IInput",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e);
return () => c(Y, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (t) => e.formValue[e.name] = t
}, u.value, Ne(e.type, e.name)), n.value);
}
}), j = (e) => {
const { content: n, position: u } = e;
let t = null;
const a = D(!1), r = document.createElement("div");
document.body.appendChild(r);
const l = () => {
a.value = !1;
}, o = () => {
t == null || t.unmount(), r.remove();
}, m = k({
setup() {
return () => me(fe, {
show: a.value,
"onUpdate:show": (i) => {
a.value = i;
},
round: !0,
position: u || "bottom",
onClose: l,
onClosed: o
}, {
default: n
});
}
});
return t = ce(m), t.mount(r), ie(() => {
a.value = !0;
}), {
onClose: l,
onUnmount: o
};
}, Ge = /* @__PURE__ */ k({
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
options: t
} = z(e.options), {
onEvents: a
} = T("x-form"), r = b(() => t.value), l = b(() => {
const m = e.formValue[e.name] && h(e.formValue[e.name]) ? e.formValue[e.name] : [];
return r.value.filter((i) => m.includes(i.value)).map((i) => i.text).join("、");
}), o = () => {
const m = D(e.formValue[e.name] && h(e.formValue[e.name]) ? e.formValue[e.name] : []), {
onClose: i
} = j({
content: c(ge, g({
modelValue: m.value,
"onUpdate:modelValue": (d) => m.value = d,
title: R(e.label)
}, e.orgAttrs, {
columns: r.value,
onConfirm: (...d) => {
e.formValue[e.name] = m.value, i(), a("confirm", e.name, ...d);
},
onChange: (...d) => a("change", e.name, ...d),
onCancel: () => {
i(), a("cancel", e.name);
},
onClickOption: (...d) => a("click-option", e.name, ...d),
onScrollInto: (...d) => a("scroll-into", e.name, ...d)
}), {
...x(e.orgAttrs),
default: () => s(x(e.orgAttrs), "default") ? x(e.orgAttrs).default() : void 0
})
});
};
return () => c(Y, g({
modelValue: l.value,
"onUpdate:modelValue": (m) => l.value = m
}, u.value, {
clearable: !0,
onClickRightIcon: o,
onClickInput: o
}), n.value);
}
}), Le = /* @__PURE__ */ k({
name: "IArea",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = b(() => {
const l = e.formValue[e.name];
if (l) {
let o = [];
const m = ze(l), i = F.province_list[m];
i && o.push(i);
const d = Xe(l), v = F.city_list[d];
v && o.push(v);
const V = F.county_list[l];
return V && o.push(V), o.join("/");
}
return l;
}), r = () => {
const l = D(e.formValue[e.name] || ""), {
onClose: o
} = j({
content: c(ve, g({
modelValue: l.value,
"onUpdate:modelValue": (m) => l.value = m,
title: R(e.label),
areaList: F
}, e.orgAttrs, {
onConfirm: (...m) => {
e.formValue[e.name] = l.value, o(), t("confirm", e.name, ...m);
},
onChange: (...m) => t("change", e.name, ...m),
onCancel: () => {
o(), t("cancel", e.name);
}
}), null)
});
};
return () => c(Y, g({
modelValue: a.value,
"onUpdate:modelValue": (l) => a.value = l
}, u.value, {
clearable: !0,
onClickRightIcon: r,
onClickInput: r
}), n.value);
}
});
function ze(e) {
return String(e).padStart(6, "0").substring(0, 2) + "0000";
}
function Xe(e) {
return String(e).padStart(6, "0").substring(0, 4) + "00";
}
const We = /* @__PURE__ */ k({
name: "ICascader",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
options: t
} = z(e.config.options), {
onEvents: a
} = T("x-form"), r = b(() => {
const m = ae(t.value, e.formValue[e.name]);
return m ? h(m) ? m.join("/") : e.formValue[`${e.name}Text`] : e.formValue[`${e.name}Text`];
}), l = D(e.formValue[e.name] || ""), o = () => {
const {
onClose: m
} = j({
content: c(Ve, g({
modelValue: l.value,
"onUpdate:modelValue": (i) => l.value = i,
title: R(e.label)
}, e.orgAttrs, {
options: t.value,
onChange: (...i) => a("change", e.name, ...i),
onFinish: (...i) => {
e.formValue[e.name] = l.value, m(), a("finish", e.name, ...i);
},
onClose: () => {
m(), a("close", e.name);
},
onClickTab: (...i) => a("click-tab", name, ...i)
}), x(e.orgAttrs))
});
};
return () => c(Y, g({
modelValue: r.value,
"onUpdate:modelValue": (m) => r.value = m
}, u.value, {
clearable: !0,
onClickRightIcon: o,
onClickInput: o
}), {
...n.value
});
}
});
function ae(e, n, u = []) {
for (const t of e) {
const a = [...u, t.text];
if (t.value === n)
return a;
if (t.children && t.children.length > 0) {
const r = ae(t.children, n, a);
if (r) return r;
}
}
return null;
}
const Je = /* @__PURE__ */ k({
props: S,
setup(e, {}) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = s(e.orgAttrs, "columnsType") && h(e.orgAttrs.columnsType) ? e.orgAttrs.columnsType : ["year", "month", "day"], r = $(a), l = b(() => {
if (e.formValue[e.name]) {
if (h(e.formValue[e.name]))
return e.formValue[e.name];
if (O(e.formValue[e.name])) {
const d = M(e.formValue[e.name]);
return $(a, d);
} else
return e.formValue[e.name];
} else
return r;
}), o = D(l.value || r), m = b(() => e.formValue[e.name] && h(e.formValue[e.name]) ? e.formValue[e.name].join("-") : e.formValue[e.name]), i = () => {
const {
onClose: d
} = j({
content: c(_, g({
modelValue: o.value,
"onUpdate:modelValue": (v) => o.value = v,
title: R(e.label)
}, e.orgAttrs, {
columnsType: a,
onConfirm: (...v) => {
e.formValue[e.name] = o.value, d(), t("confirm", e.name, ...v);
},
onChange: (...v) => t("change", e.name, ...v),
onCancel: () => {
d(), t("cancel", e.name);
}
}), {
...x(e.orgAttrs),
default: () => s(x(e.orgAttrs), "default") ? x(e.orgAttrs).default() : void 0
})
});
};
return () => c(Y, g({
modelValue: m.value,
"onUpdate:modelValue": (d) => m.value = d
}, u.value, {
clearable: !0,
onClickRightIcon: i,
onClickInput: i
}), n.value);
}
}), Ke = /* @__PURE__ */ k({
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = s(e.orgAttrs, "columnsType") && h(e.orgAttrs.columnsType) ? e.orgAttrs.columnsType : ["hour", "minute", "second"], r = $(a), l = b(() => e.formValue[e.name] ? h(e.formValue[e.name]) ? e.formValue[e.name] : O(e.formValue[e.name]) ? e.formValue[e.name].split(":") : r : r), o = b(() => e.formValue[e.name] && h(e.formValue[e.name]) ? e.formValue[e.name].join(":") : e.formValue[e.name]), m = () => {
const i = D(l.value || r), {
onClose: d
} = j({
content: c(G, g({
modelValue: i.value,
"onUpdate:modelValue": (v) => i.value = v,
title: R(e.label)
}, e.orgAttrs, {
columnsType: a,
onConfirm: (...v) => {
e.formValue[e.name] = i.value, d(), t("confirm", e.name, ...v);
},
onChange: (...v) => t("change", e.name, ...v),
onCancel: () => {
d(), t("cancel", e.name);
}
}), {
...x(e.orgAttrs),
default: () => s(x(e.orgAttrs), "default") ? x(e.orgAttrs).default : void 0
})
});
};
return () => c(Y, g({
modelValue: o.value,
"onUpdate:modelValue": (i) => o.value = i
}, u.value, {
clearable: !0,
onClickRightIcon: m,
onClickInput: m
}), n.value);
}
});
function U(e) {
return typeof e != "string" ? !1 : /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])( (0\d|1\d|2[0-3])(:[0-5]\d)?(:[0-5]\d)?)?$/.test(e);
}
function X(e) {
return Array.isArray(e) ? e.every((n) => U(n)) : !1;
}
function N(e) {
if (!Array.isArray(e) || e.length !== 2) return !1;
const [n, u] = e;
if (!Array.isArray(n) || n.length !== 3 || !(typeof n[0] == "string" && /^\d{4}$/.test(n[0]) && typeof n[1] == "string" && /^(0[1-9]|1[0-2])$/.test(n[1]) && typeof n[2] == "string" && /^(0[1-9]|[12]\d|3[01])$/.test(n[2])) || !Array.isArray(u) || u.length > 3) return !1;
const a = [
/^(0\d|1\d|2[0-3])$/,
// HH
/^[0-5]\d$/,
// mm
/^[0-5]\d$/
// ss
];
return u.every(
(r, l) => typeof r == "string" && a[l].test(r)
);
}
function q(e) {
if (!Array.isArray(e) || e.length < 3 || e.length > 6) return !1;
const [n, u, t] = e;
if (!(typeof n == "string" && /^\d{4}$/.test(n) && typeof u == "string" && /^(0[1-9]|1[0-2])$/.test(u) && typeof t == "string" && /^(0[1-9]|[12]\d|3[01])$/.test(t))) return !1;
const r = e.slice(3), l = [
/^(0\d|1\d|2[0-3])$/,
// HH
/^[0-5]\d$/,
// mm
/^[0-5]\d$/
// ss
];
return r.every(
(o, m) => typeof o == "string" && l[m].test(o)
);
}
function W(e) {
return Array.isArray(e) ? e.every((n) => q(n)) : !1;
}
function Qe(e) {
return U(e) || N(e) || q(e);
}
function Q(e) {
const n = /^(\d{4})-(\d{2})-(\d{2})(?: (\d{2})(?::(\d{2})(?::(\d{2}))?)?)?$/, u = e.match(n);
if (!u)
throw new Error("Invalid date-time format. Expected YYYY-MM-DD[ HH[:mm[:ss]]]");
return u.slice(1).filter((t) => t !== void 0);
}
function le(e) {
const [n, u, t, a, r, l] = e;
let o = `${n}-${u}-${t}`;
return a !== void 0 && (o += ` ${a}`, r !== void 0 && (o += `:${r}`, l !== void 0 && (o += `:${l}`))), o;
}
const Ze = /* @__PURE__ */ k({
name: "IDateTimePicker",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = b(() => {
if (e.formValue[e.name]) {
if (U(e.formValue[e.name]))
return e.formValue[e.name];
if (N(e.formValue[e.name]))
return e.formValue[e.name][0].join("-") + " " + e.formValue[e.name][1].join(":");
if (q(e.formValue[e.name]))
return le(e.formValue[e.name]);
throw new Error(`${e.name} 默认值 格式不正确,时间格式只能是: 'YYYY-MM-DD HH:mm:ss' or [['YYYY', 'MM', 'DD'], ['HH', 'mm', 'ss']] or ['YYYY', 'MM', 'DD', 'HH', 'mm', 'ss']`);
}
return e.formValue[e.name];
}), r = () => {
if (e.formValue[e.name] && !Qe(e.formValue[e.name]))
throw new Error(`${e.name} 默认值 格式不正确,时间格式只能是: 'YYYY-MM-DD HH:mm:ss' or [['YYYY', 'MM', 'DD'], ['HH', 'mm', 'ss']] or ['YYYY', 'MM', 'DD', 'HH', 'mm', 'ss']`);
let m = s(e.orgAttrs, "showType") && ["group", "single"].includes(e.orgAttrs.showType) ? e.orgAttrs.showType : "group";
console.log("curShowType :>> ", m), m === "group" ? l() : o();
}, l = () => {
const m = s(e.orgAttrs, "startProps") ? s(e.orgAttrs.startProps, "columnsType") ? e.orgAttrs.startProps.columnsType : ["year", "month", "day"] : ["year", "month", "day"], i = s(e.orgAttrs, "endProps") ? s(e.orgAttrs.endProps, "columnsType") ? e.orgAttrs.endProps.columnsType : ["hour", "minute", "second"] : ["hour", "minute", "second"], d = b(() => {
let C = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "startProps") && Object.assign(C, e.orgAttrs.startProps), C;
}), v = b(() => {
let C = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "endProps") && Object.assign(C, e.orgAttrs.endProps), C;
}), [V, y] = M().format("YYYY-MM-DD HH:mm:ss").split(" "), A = D({
date: V.split("-").slice(0, m.length),
time: y.split(":").slice(0, i.length)
});
if (e.formValue[e.name]) {
if (U(e.formValue[e.name])) {
const [C, H] = e.formValue[e.name].split(" ");
A.value.date = C.split("-"), A.value.time = H ? C.split(":") : [];
}
if (N(e.formValue[e.name])) {
const [C, H] = e.formValue[e.name];
A.value.date = C, A.value.time = H;
}
q(e.formValue[e.name]) && (A.value.date = e.formValue[e.name].slice(0, 3), A.value.time = e.formValue[e.name].slice(3));
}
console.log("dateTimeValue.value :>> ", A.value);
const {
onClose: f
} = j({
content: c(L, g({
title: R(e.label)
}, e.orgAttrs, {
tabs: ["选择日期", "选择时间"],
onConfirm: (...C) => {
e.formValue[e.name] = A.value, f(), t("confirm", e.name, ...C);
},
onChange: (...C) => t("change", e.name, ...C),
onCancel: () => {
f(), t("cancel", e.name);
}
}), {
default: () => [c(_, g({
modelValue: A.value.date,
"onUpdate:modelValue": (C) => A.value.date = C,
columnsType: m
}, d.value), null), c(G, g({
modelValue: A.value.time,
"onUpdate:modelValue": (C) => A.value.time = C,
columnsType: i
}, v.value), null)]
})
});
}, o = () => {
const m = s(e.orgAttrs, "columnsType") && h(e.orgAttrs.columnsType) ? e.orgAttrs.columnsType : ["year", "month", "day", "hour", "minute", "second"], i = $(m), d = D(i);
e.formValue[e.name] && (U(e.formValue[e.name]) && (d.value = Q(e.formValue[e.name])), N(e.formValue[e.name]) && (d.value = e.formValue[e.name].flat()), q(e.formValue[e.name]) && (d.value = e.formValue[e.name]));
const v = j({
content: c(J, g({
modelValue: d.value,
"onUpdate:modelValue": (V) => d.value = V,
title: R(e.label)
}, e.orgAttrs, {
columnsType: m,
onConfirm: (...V) => {
e.formValue[e.name] = d.value, v.onClose(), t("confirm", e.name, ...V);
},
onChange: (...V) => t("change", e.name, ...V),
onCancel: () => {
v.onClose(), t("cancel", e.name);
}
}), null)
});
};
return () => c(Y, g({
modelValue: a.value,
"onUpdate:modelValue": (m) => a.value = m
}, u.value, {
clearable: !0,
onClickRightIcon: r,
onClickInput: r
}), n.value);
}
}), pe = /* @__PURE__ */ k({
name: "IDateRangePicker",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = b(() => e.formValue[e.name] && h(e.formValue[e.name]) ? e.formValue[e.name].map((l) => h(l) ? l.join("-") : l).join(" 至 ") : e.formValue[e.name]), r = () => {
const l = s(e.orgAttrs, "columnsType") && h(e.orgAttrs.columnsType) ? e.orgAttrs.columnsType : ["year", "month", "day"], o = $(l), m = b(() => {
let f = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "startProps") && Object.assign(f, e.orgAttrs.startProps), f;
}), i = b(() => {
let f = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "endProps") && Object.assign(f, e.orgAttrs.endProps), f;
}), d = b(() => {
if (e.formValue[e.name] && h(e.formValue[e.name]) && e.formValue[e.name].length > 0) {
if (!e.formValue[e.name][0])
return o;
const f = e.formValue[e.name][0];
return h(f) ? f : O(f) ? $(l, M(f)) : o;
} else
return o;
}), v = b(() => {
if (e.formValue[e.name] && h(e.formValue[e.name]) && e.formValue[e.name].length > 1) {
if (!e.formValue[e.name][1])
return o;
const f = e.formValue[e.name][1];
return h(f) ? f : O(f) ? $(l, M(f)) : o;
} else
return o;
}), V = D({
start: d.value,
end: v.value
}), y = e.orgAttrs, {
onClose: A
} = j({
content: c(L, g({
title: R(e.label)
}, y, {
tabs: s(y, "tabs") ? y.tabs : ["开始日期", "结束日期"],
onConfirm: (...f) => {
e.formValue[e.name] = [V.value.start, V.value.end], A(), t("confirm", e.name, ...f);
},
onChange: (...f) => t("change", e.name, ...f),
onCancel: () => {
A(), t("cancel", e.name);
}
}), {
default: () => [c(_, g({
modelValue: V.value.start,
"onUpdate:modelValue": (f) => V.value.start = f
}, m.value, {
columnsType: l
}), null), c(_, g({
modelValue: V.value.end,
"onUpdate:modelValue": (f) => V.value.end = f
}, i.value, {
columnsType: l
}), null)]
})
});
};
return () => c(Y, g({
modelValue: a.value,
"onUpdate:modelValue": (l) => a.value = l
}, u.value, {
clearable: !0,
onClickRightIcon: r,
onClickInput: r
}), n.value);
}
}), et = /* @__PURE__ */ k({
name: "ITimeRangePicker",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = b(() => e.formValue[e.name] && h(e.formValue[e.name]) ? e.formValue[e.name].map((l) => h(l) ? l.join(":") : l).join(" 至 ") : e.formValue[e.name]), r = () => {
const l = s(e.orgAttrs, "columnsType") && h(e.orgAttrs.columnsType) ? e.orgAttrs.columnsType : ["hour", "minute", "second"], o = $(l), m = b(() => {
if (e.formValue[e.name] && h(e.formValue[e.name]) && e.formValue[e.name].length > 0) {
if (!e.formValue[e.name][0])
return o;
const f = e.formValue[e.name][0];
return h(f) ? f : O(f) ? $(l, M(`${M().format("YYYY-MM-DD")} ${f}`)) : o;
} else
return o;
}), i = b(() => {
if (e.formValue[e.name] && h(e.formValue[e.name]) && e.formValue[e.name].length > 1) {
if (!e.formValue[e.name][1])
return o;
const f = e.formValue[e.name][1];
return h(f) ? f : O(f) ? $(l, M(`${M().format("YYYY-MM-DD")} ${f}`)) : o;
} else
return o;
}), d = D({
start: m.value,
end: i.value
}), v = e.orgAttrs, V = b(() => {
let f = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "startProps") && Object.assign(f, e.orgAttrs.startProps), f;
}), y = b(() => {
let f = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "endProps") && Object.assign(f, e.orgAttrs.endProps), f;
}), {
onClose: A
} = j({
content: c(L, g({
title: R(e.label)
}, e.orgAttrs, {
tabs: s(v, "tabs") ? v.tabs : ["开始时间", "结束时间"],
onConfirm: (...f) => {
e.formValue[e.name] = [d.value.start, d.value.end], A(), t("confirm", e.name, ...f);
},
onChange: (...f) => t("change", e.name, ...f),
onCancel: () => {
A(), t("cancel", e.name);
}
}), {
default: () => [c(G, g({
modelValue: d.value.start,
"onUpdate:modelValue": (f) => d.value.start = f
}, V.value, {
columnsType: l
}), null), c(G, g({
modelValue: d.value.end,
"onUpdate:modelValue": (f) => d.value.end = f
}, y.value, {
columnsType: l
}), null)]
})
});
};
return () => c(Y, g({
modelValue: a.value,
"onUpdate:modelValue": (l) => a.value = l
}, u.value, {
clearable: !0,
onClickRightIcon: r,
onClickInput: r
}), n.value);
}
}), tt = /* @__PURE__ */ k({
name: "IDatetimeRangePicker",
props: S,
setup(e, {}) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = b(() => {
if (e.formValue[e.name] && h(e.formValue[e.name])) {
if (X(e.formValue[e.name]))
return e.formValue[e.name].join(" 至 ");
if (W(e.formValue[e.name]))
return e.formValue[e.name].map((l) => le(l)).join(" 至 ");
throw new Error(`${e.name} 默认值 格式不正确,时间格式只能是:["YYYY-MM-DD HH:mm:ss","YYYY-MM-DD HH:mm:ss"] 或 [ [ "YYYY", "MM", "DD", "HH", "mm", "ss" ], [ "YYYY", "MM", "DD", "HH", "mm", "ss" ] ]`);
}
return e.formValue[e.name];
}), r = () => {
const l = s(e.orgAttrs, "columnsType") && h(e.orgAttrs.columnsType) ? e.orgAttrs.columnsType : ["year", "month", "day", "hour", "minute", "second"], o = $(l);
if (e.formValue[e.name] && !(X(e.formValue[e.name]) || W(e.formValue[e.name])))
throw new Error(`${e.name} 默认值 格式不正确,时间格式只能是:["YYYY-MM-DD HH:mm:ss","YYYY-MM-DD HH:mm:ss"] 或 [ [ "YYYY", "MM", "DD", "HH", "mm", "ss" ], [ "YYYY", "MM", "DD", "HH", "mm", "ss" ] ]`);
const m = D({
start: o,
end: o
});
e.formValue[e.name] && (X(e.formValue[e.name]) && (m.value.start = Q(e.formValue[e.name][0]), m.value.end = Q(e.formValue[e.name][1])), W(e.formValue[e.name]) && (m.value.start = e.formValue[e.name][0], m.value.end = e.formValue[e.name][1]));
const i = e.orgAttrs, d = b(() => {
let y = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "startProps") && Object.assign(y, e.orgAttrs.startProps), y;
}), v = b(() => {
let y = Object.assign({}, e.orgAttrs);
return s(e.orgAttrs, "endProps") && Object.assign(y, e.orgAttrs.endProps), y;
}), {
onClose: V
} = j({
content: c(L, g({
title: R(e.label)
}, i, {
tabs: s(i, "tabs") ? i.tabs : ["开始时间", "结束时间"],
onConfirm: (...y) => {
e.formValue[e.name] = [m.value.start, m.value.end], V(), t("confirm", e.name, ...y);
},
onChange: (...y) => t("change", e.name, ...y),
onCancel: () => {
V(), t("cancel", e.name);
}
}), {
default: () => [c(J, g({
modelValue: m.value.start,
"onUpdate:modelValue": (y) => m.value.start = y
}, d.value, {
columnsType: l
}), null), c(J, g({
modelValue: m.value.end,
"onUpdate:modelValue": (y) => m.value.end = y
}, v.value, {
columnsType: l
}), null)]
})
});
};
return () => c(Y, g({
modelValue: a.value,
"onUpdate:modelValue": (l) => a.value = l
}, u.value, {
clearable: !0,
onClickRightIcon: r,
onClickInput: r
}), n.value);
}
}), nt = /* @__PURE__ */ k({
name: "ICheckbox",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), {
options: a
} = z(e.options);
return () => c(Y, u.value, {
...n.value,
input: () => c(he, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (r) => e.formValue[e.name] = r
}, e.orgAttrs, {
class: {
"readonly-checkbox": e.readonly
},
disabled: e.readonly || s(e.orgAttrs, "disabled") && !!e.orgAttrs.disabled,
onChange: (...r) => t("change", e.name, ...r)
}), {
default: () => {
var r;
return [(r = a.value) == null ? void 0 : r.map((l) => c(ye, g({
key: l.value
}, l.attrs, {
name: l.value,
onClick: (...o) => {
t("click-option", e.name, ...o);
},
onChange: (...o) => {
t("change-option", e.name, ...o);
}
}), {
default: () => [l.text]
}))];
}
})
});
}
});
function at(e) {
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !te(e);
}
const lt = /* @__PURE__ */ k({
name: "IRadio",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), {
options: a
} = z(e.options), r = () => {
var l;
return (l = a.value) == null ? void 0 : l.map((o) => c(Ae, g({
key: o.value
}, o.attrs, {
name: o.value,
onClick: (...m) => {
t("click-option", e.name, ...m);
}
}), {
default: () => [o.text]
}));
};
return () => c(Y, u.value, {
...n.value,
input: () => {
let l;
return c(be, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (o) => e.formValue[e.name] = o
}, e.orgAttrs, {
class: {
"readonly-radio": e.readonly
},
disabled: e.readonly || s(e.orgAttrs, "disabled") && !!e.orgAttrs.disabled,
onChange: (...o) => t("change", e.name, ...o)
}), at(l = r()) ? l : {
default: () => [l]
});
}
});
}
}), ut = /* @__PURE__ */ k({
name: "ISwitch",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = x(e.orgAttrs);
return () => c(Y, u.value, {
...n.value,
input: () => c(Ce, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (r) => e.formValue[e.name] = r
}, e.orgAttrs, {
class: {
"readonly-switch": e.readonly
},
disabled: e.readonly || s(e.orgAttrs, "disabled") && !!e.orgAttrs.disabled,
onChange: (...r) => t("change", e.name, ...r),
onClick: (...r) => t("click", e.name, ...r)
}), {
node: () => s(a, "node") ? a.node() : void 0,
background: () => s(a, "background") ? a.background() : void 0
})
});
}
}), rt = /* @__PURE__ */ k({
name: "IRate",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form");
return () => c(Y, u.value, {
...n.value,
input: () => c(ke, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (a) => e.formValue[e.name] = a
}, e.orgAttrs, {
readonly: e.readonly || s(e.orgAttrs, "readonly") && !!e.orgAttrs.readonly,
onChange: (...a) => t("change", e.name, ...a)
}), null)
});
}
}), ot = /* @__PURE__ */ k({
name: "ISlider",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form"), a = x(e.orgAttrs);
return () => c(Y, u.value, {
...n.value,
input: () => c(Te, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (r) => e.formValue[e.name] = r
}, e.orgAttrs, {
class: {
"readonly-slider": e.readonly
},
disabled: e.readonly || s(e.orgAttrs, "disabled") && !!e.orgAttrs.disabled,
onDragStart: (...r) => {
t("drag-start", e.name, ...r);
},
onDragEnd: (...r) => {
t("drag-end", e.name, ...r);
},
onChange: (...r) => t("change", e.name, ...r)
}), {
// button: () => has(compSlots, 'button') ? compSlots.button() : undefined,
"left-button": () => s(a, "left-button") ? a["left-button"]() : void 0,
"right-button": () => s(a, "right-button") ? a["right-button"]() : void 0
})
});
}
}), mt = /* @__PURE__ */ k({
name: "IStepper",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
onEvents: t
} = T("x-form");
return () => c(Y, u.value, {
...n.value,
input: () => c(Se, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (a) => e.formValue[e.name] = a
}, e.orgAttrs, {
class: {
"readonly-stepper": e.readonly
},
disabled: e.readonly || s(e.orgAttrs, "disabled") && !!e.orgAttrs.disabled,
onChange: (...a) => t("change", e.name, ...a),
onFocus: (...a) => t("focus", e.name, ...a),
onBlur: (...a) => t("blur", e.name, ...a),
onPlus: (...a) => {
t("plus", e.name, ...a);
},
onMinus: (...a) => {
t("minus", e.name, ...a);
},
onOverlimit: (...a) => {
t("overlimit", e.name, ...a);
}
}), null)
});
}
}), ct = /* @__PURE__ */ k({
name: "IText",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e);
return () => c(Y, u.value, {
...n.value,
input: () => c(w, null, [e.formValue[e.name]])
});
}
}), it = /* @__PURE__ */ k({
name: "IHtml",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e);
return () => c(Y, u.value, {
...n.value,
input: () => c("div", g({
innerHTML: e.formValue[e.name]
}, e.orgAttrs), null)
});
}
}), st = /* @__PURE__ */ k({
name: "IInputSlot",
props: S,
setup(e) {
const {
itemSlots: n
} = I(e), {
baseAttrs: u
} = P(e), {
formSlots: t
} = T("x-form");
return () => c(Y, g({
modelValue: e.formValue[e.name],
"onUpdate:modelValue": (a) => e.formValue[e.name] = a
}, u.value), {
...n.value,
input: () => c(w, null, [s(t, e.name) ? E(t, e.name) : c(w, null, null)])
});
}
}), dt = /* @__PURE__ */ k({
props: S,
setup(e, {}) {
const {
formSlots: n
} = T("x-form"), u = {
input: () => c(_e, e, null),
picker: () => c(Ge, e, null),
radio: () => c(lt, e, null),
checkbox: () => c(nt, e, null),
switch: () => c(ut, e, null),
rate: () => c(rt, e, null),
slider: () => c(ot, e, null),
stepper: () => c(mt, e, null),
area: () => c(Le, e, null),
cascader: () => c(We, e, null),
/* 暂不支持异步加载 */
"date-picker": () => c(Je, e, null),
"date-range-picker": () => c(pe, e, null),
"time-picker": () => c(Ke, e, null),
"time-range-picker": () => c(et, e, null),
"datetime-picker": () => c(Ze, e, null),
"datetime-range-picker": () => c(tt, e, null),
text: () => c(ct, e, null),
html: () => c(it, e, null),
"input-slot": () => c(st, e, null),
slot: () => c(w, null, [s(n, e.name) ? E(n, e.name) : c(w, null, null)])
// 'calendar': () => <ICalendar {...props} />,
};
return () => c(w, null, [u[e.type]()]);
}
});
function ft(e) {
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !te(e);
}
const [gt] = De("form"), vt = Object.assign({}, Ye, {
model: {
type: Object,
required: !0,
default: () => ({})
},
items: {
type: Array,
required: !0,
default: () => []
},
rules: {
type: Object,
default: () => ({})
},
inset: {
type: Boolean,
default: !1
},
size: {
type: String,
default: "normal"
}
}), Vt = /* @__PURE__ */ k({
name: gt,
props: vt,
emits: Ue,
setup(e, {
slots: n,
attrs: u,
emit: t,
expose: a
}) {
const r = D(), l = (...i) => t("submit", ...i), o = (...i) => t("failed", ...i);
se("x-form", {
formSlots: n,
rules: e.rules,
onEvents: (i, ...d) => {
t(i, ...d);
}
}), a({
submit: () => r.value.submit(),
getValues: () => r.value.getValues(),
validate: async (i) => {
var d;
return await ((d = r.value) == null ? void 0 : d.validate(i));
},
resetValidation: (i) => r.value.resetValidation(i),
getValidationStatus: () => r.value.getValidationStatus(),
scrollToField: (i, d) => r.value.scrollToField(i, d)
});
const m = (i) => {
const {
itemProps: d,
name: v
} = i, V = s(e.rules, v) ? !!e.rules[v].find((f) => s(f, "required") && f.required) : !1, y = s(i, "required") ? !!i.required : !1;
return (d && s(d, "required") ? !!d.required : !1) || y || V || !!e.required;
};
return {
formRef: r,
...Z(e),
attrs: u,
getRequired: m,
onSubmit: l,
onFailed: o
};
},
render() {
let e;
const {
formRef: n,
items: u,
model: t,
size: a,
rules: r,
required: l,
readonly: o,
onSubmit: m,
onFailed: i,
attrs: d,
inset: v,
getRequired: V,
...y
} = this;
return c(Pe, g({
ref: "formRef",
onSubmit: m,
onFailed: i,
required: l,
readonly: o
}, y, d), {
default: () => [c(Ie, {
inset: v
}, ft(e = u.map((A, f) => {
const {
vif: C,
type: H,
name: p,
label: ue,
itemProps: re,
popup: oe
} = A;
if (!$e.includes(H))
throw new Error(`${H} 类型组件暂不支持`);
return (s(A, "vif") ? ne(C) ? C(t) : C : !0) ? c(dt, {
key: p + f,
formValue: t,
type: H,
name: p,
label: ue,
options: A.options,
config: A,
required: V(A),
readonly: o,
popup: oe,
itemAttrs: re,
size: a,
orgAttrs: A.attrs
}, null) : null;
})) ? e : {
default: () => [e]
})]
});
}
}), Tt = xe(Vt);
export {
Tt as X
};