mine-h5-ui
Version: 
一款轻量级、模块化基于 Vue3.x 的 H5 前端 UI 组件库 👍
112 lines (111 loc) • 3.76 kB
JavaScript
import { defineComponent as A, mergeModels as w, useModel as x, createElementBlock as l, openBlock as n, Fragment as c, createCommentVNode as g, unref as e, withModifiers as M, normalizeStyle as F, normalizeClass as m, createElementVNode as t, createVNode as i, toDisplayString as a, renderList as V } from "vue";
import { useHandle as H, useShow as L } from "./hooks.js";
import { name as u } from "./config.js";
import { MeIcon as d } from "../MeIcon/index.js";
/*!
          * mine-h5-ui v2.16.0
          * Copyright (c) 2025 biaov
          * @license MIT
          */
const R = { class: "calendar-year" }, Y = { class: "year-center" }, j = { class: "month" }, q = { class: "calendar-week" }, G = { class: "item-box fixed" }, J = { class: "calendar-day" }, K = ["onClick"], X = /* @__PURE__ */ A({
  name: u,
  __name: "index",
  props: /* @__PURE__ */ w({
    themeColor: { default: "#409eff" },
    closable: { type: Boolean, default: !1 },
    style: {}
  }, {
    modelValue: { default: "" },
    modelModifiers: {},
    visible: { type: Boolean, default: !1 },
    visibleModifiers: {}
  }),
  emits: /* @__PURE__ */ w(["change"], ["update:modelValue", "update:visible"]),
  setup(r, { emit: h }) {
    const z = h, $ = r, I = x(r, "modelValue"), v = x(r, "visible"), { days: B, getStyle: S, week: _, dateInfo: f, onDayItem: D, initData: N, onYearItem: y, onMonthItem: p } = H({ props: $, emit: z, modelValue: I, visible: v }), { showAnimation: E, destroy: k, onClose: C } = L({ visible: v }, N);
    return (O, s) => (n(), l(c, null, [
      e(k) ? (n(), l("div", {
        key: 0,
        class: m([e(u), e(E) ? "show" : ""]),
        style: F(e(S)),
        ref: "calendarRef",
        onClick: s[4] || (s[4] = M(() => {
        }, ["stop"]))
      }, [
        t("div", R, [
          t("view", {
            class: "icon",
            onClick: s[0] || (s[0] = (o) => e(y)(-1))
          }, [
            i(e(d), {
              name: "icon-left-double",
              size: "18px"
            })
          ]),
          t("view", {
            class: "icon",
            onClick: s[1] || (s[1] = (o) => e(p)(-1))
          }, [
            i(e(d), {
              name: "icon-left",
              size: "14px"
            })
          ]),
          t("div", Y, [
            t("div", j, a(e(f).m) + "月", 1),
            t("div", null, a(e(f).y), 1)
          ]),
          t("view", {
            class: "icon",
            onClick: s[2] || (s[2] = (o) => e(p)(1))
          }, [
            i(e(d), {
              name: "icon-right1",
              size: "14px"
            })
          ]),
          t("view", {
            class: "icon",
            onClick: s[3] || (s[3] = (o) => e(y)(1))
          }, [
            i(e(d), {
              name: "icon-right-double",
              size: "18px"
            })
          ])
        ]),
        t("div", q, [
          (n(!0), l(c, null, V(e(_), (o) => (n(), l("div", {
            class: "item",
            key: o
          }, [
            t("div", G, a(o), 1)
          ]))), 128))
        ]),
        t("div", J, [
          (n(!0), l(c, null, V(e(B), (o, b) => (n(), l("div", {
            class: "item",
            key: b,
            onClick: (P) => e(D)(o, b)
          }, [
            t("div", {
              class: m(["item-box", { disabled: o.disabled, selected: o.selected, today: o.today }])
            }, a(o.value), 3)
          ], 8, K))), 128))
        ])
      ], 6)) : g("", !0),
      e(k) ? (n(), l("div", {
        key: 1,
        class: m(`${e(u)}-mask`),
        onClick: s[5] || (s[5] = M(
          //@ts-ignore
          (...o) => e(C) && e(C)(...o),
          ["stop"]
        ))
      }, null, 2)) : g("", !0)
    ], 64));
  }
});
export {
  X as default
};