UNPKG

birdpaper-ui

Version:

一个通用的 vue3 UI组件库。A common vue3 UI component library.

83 lines (82 loc) 2.74 kB
import { defineComponent, ref, inject, computed, resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createBlock, resolveDynamicComponent, unref, createVNode, withCtx, createTextVNode, createCommentVNode } from "vue"; import dateTable from "./components/date-table.vue.js"; import monthTable from "./components/month-table.vue.js"; import yearTable from "./components/year-table.vue.js"; import { dateInjectionKey } from "./types.js"; const name = "bp-date-picker-panel"; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "pickerPanel", setup(__props) { const currentTable = ref("date"); const tableMap = { date: dateTable, month: monthTable, year: yearTable }; let ctx = null; ctx = inject(dateInjectionKey); const tableRef = ref(); const onChangePicker = (typeName) => { currentTable.value = typeName; }; const setNowTime = () => { tableRef.value.setNow(); }; const confirmBtnDisabled = computed(() => { if (tableRef.value) { const { currentVal, currentTimeVal } = tableRef.value; return !currentVal || !currentTimeVal; } return true; }); const onConfirm = () => { const val = tableRef.value.getValue() || ""; ctx.onSelect(val, {}, true); }; return (_ctx, _cache) => { const _component_bp_button = resolveComponent("bp-button"); return openBlock(), createElementBlock("div", { class: normalizeClass(name) }, [ createElementVNode("div", { class: normalizeClass(`${name}-wrapper`) }, [ (openBlock(), createBlock(resolveDynamicComponent(tableMap[currentTable.value]), { ref_key: "tableRef", ref: tableRef, onChangePicker }, null, 544)) ], 2), unref(ctx).showTime && currentTable.value === "date" ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(`${name}-footer`) }, [ createVNode(_component_bp_button, { size: "mini", onClick: setNowTime }, { default: withCtx(() => [ createTextVNode("此刻") ]), _: 1 }), createVNode(_component_bp_button, { size: "mini", type: "primary", disabled: confirmBtnDisabled.value, status: "primary", onClick: onConfirm }, { default: withCtx(() => [ createTextVNode("确定") ]), _: 1 }, 8, ["disabled"]) ], 2)) : createCommentVNode("", true) ]); }; } }); export { _sfc_main as default };