UNPKG

uv-ui

Version:

基于vue3的移动端组件库

95 lines (94 loc) 3.02 kB
import { ref as l, computed as F, openBlock as _, createBlock as H, unref as y, mergeProps as P } from "vue"; import w from "../picker/index.js"; import { getCurrentTime as S, getOptions as a, getMonthEndDay as j } from "./utils.js"; const $ = { name: "UvDatetimePicker" }, b = /* @__PURE__ */ Object.assign($, { props: { modelValue: { type: String, default: "" }, minDate: { type: Date, default: () => new Date(new Date().getFullYear() - 10, 0, 1) }, maxDate: { type: Date, default: () => new Date(new Date().getFullYear() + 10, 11, 31) }, mode: { type: String, default: "date" }, formatter: { type: Function, default: (d, u) => u }, filter: { type: Function }, dateConnector: { type: String, default: "-" }, timeConnector: { type: String, default: ":" } }, emits: ["update:modelValue", "cancle", "confim", "change"], setup(d, { expose: u, emit: o }) { const e = d, m = l(null), D = () => m.value.open(), x = () => m.value.close(), C = () => o("cancle"), M = (t) => o("change", t), V = (t) => { if (e.mode === "time") o("update:modelValue", t.replace(/,/g, e.timeConnector)); else if (e.mode === "date" || e.mode === "year-month") o("update:modelValue", t.replace(/,/g, e.dateConnector)); else if (e.mode === "datetime") { const n = t.split(","), c = n.slice(0, 3).join(e.dateConnector), O = n.slice(3).join(e.timeConnector); o("update:modelValue", `${c} ${O}`); } else o("update:modelValue", t); o("confim", t); }, r = l(e.modelValue || S(e.mode)), f = l(r.value.slice(0, 4)), p = l(r.value[1]), Y = (t) => { (e.mode === "date" || e.mode === "datetime") && (t.index === 0 ? f.value = t.value : t.index === 1 && (p.value = t.value)); }, s = () => { const t = e.minDate.getFullYear(), n = e.maxDate.getFullYear(); return a( t, n, "year", e.formatter, e.filter ); }, i = () => a( 1, 12, "month", e.formatter, e.filter ), g = () => { const n = j(f.value, p.value); return a(1, n, "day", e.formatter, e.filter); }, h = () => a(0, 23, "hours", e.formatter, e.filter), v = () => a(0, 59, "minutes", e.formatter, e.filter), k = F(() => e.mode === "date" ? [s(), i(), g()] : e.mode === "year-month" ? [s(), i()] : e.mode === "time" ? [h(), v()] : e.mode === "datetime" ? [s(), i(), g(), h(), v()] : []); return u({ open: D, close: x }), (t, n) => (_(), H(y(w), P({ ref_key: "uvPickerRef", ref: m, title: "\u65E5\u671F\u9009\u62E9", list: y(k) }, t.$attrs, { modelValue: r.value, "onUpdate:modelValue": n[0] || (n[0] = (c) => r.value = c), onConfim: V, onCancle: C, onChange: M, onColumnChange: Y }), null, 16, ["list", "modelValue"])); } }); export { b as default };