@layui/layui-vue
Version:
a component library for Vue 3 base on layui-vue
27 lines (26 loc) • 2.39 kB
JavaScript
import { defineComponent as g, ref as m, computed as C, watch as w, openBlock as V, createElementBlock as j, createElementVNode as l, createVNode as r, unref as i, toDisplayString as u } from "vue";
import f from "dayjs";
import { useI18n as x } from "../../../language/index.js";
import c from "../../../icon/index.js";
import { setDateList as O } from "../../util.js";
import B from "./DateContent.js";
const E = { class: "layui-laydate-main layui-laydate-main-date" }, N = { class: "layui-laydate-header" }, _ = { class: "laydate-set-ym" }, z = g({ name: "DatePanel", __name: "Date", props: { modelValue: {}, showDate: {}, dateType: {}, classes: {} }, emits: ["year-month-change", "type-change", "pick"], setup(v, { emit: P }) {
const s = v, d = P, { t: a } = x(), y = m(f()), p = m(), k = m([]), D = C(() => [a("datePicker.january"), a("datePicker.february"), a("datePicker.march"), a("datePicker.april"), a("datePicker.may"), a("datePicker.june"), a("datePicker.july"), a("datePicker.august"), a("datePicker.september"), a("datePicker.october"), a("datePicker.november"), a("datePicker.december")]);
function n(t, e) {
const o = s.showDate[t](1, e);
d("year-month-change", o);
}
function h(t) {
d("type-change", t);
}
function b(t) {
const e = f(t), o = y.value.clone().set("year", e.year()).set("month", e.month()).set("date", e.date());
d("pick", o);
}
return w([() => s.modelValue, () => s.showDate], ([t, e]) => {
k.value = O(e.year(), e.month()), y.value = t || e, p.value = t ? t.startOf("day").valueOf() : null;
}, { immediate: !0 }), (t, e) => (V(), j("div", E, [l("div", N, [r(i(c), { type: "layui-icon-prev", onClick: e[0] || (e[0] = (o) => n("subtract", "year")) }), r(i(c), { type: "layui-icon-left", onClick: e[1] || (e[1] = (o) => n("subtract", "month")) }), l("div", _, [l("span", { onClick: e[2] || (e[2] = (o) => h("year")) }, u(t.showDate.year()) + " " + u(i(a)("datePicker.year")), 1), l("span", { onClick: e[3] || (e[3] = (o) => h("month")) }, u(D.value[t.showDate.month()]), 1)]), r(i(c), { type: "layui-icon-right", onClick: e[4] || (e[4] = (o) => n("add", "month")) }), r(i(c), { type: "layui-icon-next", onClick: e[5] || (e[5] = (o) => n("add", "year")) })]), r(B, { "date-list": k.value, "model-value": p.value, "onUpdate:modelValue": b }, null, 8, ["date-list", "model-value"])]));
} });
export {
z as default
};