django-vue3-admin-web/node_modules/vant4-kit/dist/es/datetime-picker-CcyYpp0V.js
2025-10-20 21:21:14 +08:00

146 lines
3.6 KiB
JavaScript

import { c as M, w as V } from "./utils-CTHIEenF.js";
import { defineComponent as N, computed as h, ref as T, createVNode as k, mergeProps as C } from "vue";
import { i as b, P as B } from "./vendor-BQjPAPzR.js";
const F = {
type: Boolean,
default: !0
}, H = [Number, String], g = (e) => ({
type: H,
default: e
}), A = Object.assign(
{},
{
modelValue: {
type: Array,
default: () => []
},
filter: Function,
formatter: {
type: Function,
default: (e, n) => n
},
loading: Boolean,
readonly: Boolean,
allowHtml: Boolean,
title: String,
cancelButtonText: String,
confirmButtonText: String,
optionHeight: g(44),
showToolbar: F,
swipeDuration: g(1e3),
visibleOptionNum: g(6)
}
);
function j(e, n) {
if (e < 0)
return [];
const r = Array(e);
let u = -1;
for (; ++u < e; )
r[u] = n(u);
return r;
}
function E(e, n = 2) {
let r = e + "";
for (; r.length < n; )
r = "0" + r;
return r;
}
const l = (e, n, r, u, c, f) => {
const o = j(n - e + 1, (s) => {
const m = E(e + s);
return u(r, {
text: m,
value: m
});
});
return c ? c(r, o, f) : o;
}, X = (e, n) => 32 - new Date(e, n - 1, 32).getDate(), i = (e) => e < 10 ? `0${e}` : `${e}`, [$] = M("datetime-picker"), I = Object.assign({}, A, {
minYear: {
type: Number,
validator: (e) => e > 1970,
default: (/* @__PURE__ */ new Date()).getFullYear() - 10
},
maxYear: {
type: Number,
default: (/* @__PURE__ */ new Date()).getFullYear()
},
columnsType: {
type: Array,
default: () => ["hour", "minute"]
}
}), R = /* @__PURE__ */ N({
name: $,
props: I,
emits: ["confirm", "cancel", "change", "update:modelValue"],
setup(e, {
emit: n,
slots: r,
expose: u
}) {
const c = /* @__PURE__ */ new Date(), f = [String(c.getFullYear()), i(c.getMonth() + 1), i(c.getDate()), i(c.getHours()), i(c.getMinutes()), i(c.getSeconds())], o = h({
get: () => b(e.modelValue) ? f : e.modelValue,
set(t) {
n("update:modelValue", t);
}
}), s = T(), m = () => {
const t = e.minYear, a = e.maxYear;
return l(t, a, "year", e.formatter, e.filter, o.value);
}, y = () => l(1, 12, "month", e.formatter, e.filter, o.value), v = () => {
const t = o.value[0], a = o.value[1], d = 1, S = X(t ? +t : e.minYear, a ? +a : 1);
return l(d, S, "day", e.formatter, e.filter, o.value);
}, D = () => {
const {
filter: t,
formatter: a
} = e;
return l(0, 23, "hour", a, t, o.value);
}, p = () => {
const {
filter: t,
formatter: a
} = e;
return l(0, 59, "minute", a, t, o.value);
}, w = () => {
const {
filter: t,
formatter: a
} = e;
return l(0, 59, "second", a, t, o.value);
}, x = h(() => {
const t = [m(), y(), v()], a = e.columnsType.map((d) => {
switch (d) {
case "hour":
return D();
case "minute":
return p();
case "second":
return w();
default:
return [];
}
});
return t.concat(a);
}), P = (...t) => n("change", ...t), Y = (...t) => n("cancel", ...t), O = (...t) => n("confirm", ...t);
return u({
confirm: () => {
var t;
return (t = s.value) == null ? void 0 : t.confirm();
},
getSelectedDate: () => o.value
}), () => k(B, C({
ref: s,
modelValue: o.value,
"onUpdate:modelValue": (t) => o.value = t,
columns: x.value
}, e, {
onConfirm: O,
onCancel: Y,
onChange: P
}), r);
}
}), J = V(R);
export {
J as X
};