UNPKG

@layui/layui-vue

Version:

a component library for Vue 3 base on layui-vue

27 lines (26 loc) 2.39 kB
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 };