219 lines
8.1 KiB
JavaScript
219 lines
8.1 KiB
JavaScript
"use strict";
|
|
const common_vendor = require("../../../../common/vendor.js");
|
|
require("../../../adapter-vue.js");
|
|
const common_assets = require("../../../../common/assets.js");
|
|
const TUIKit_utils_env = require("../../../utils/env.js");
|
|
if (!Math) {
|
|
(Icon + DateTable)();
|
|
}
|
|
const DateTable = () => "./date-table.js";
|
|
const Icon = () => "../Icon.js";
|
|
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
|
__name: "date-picker-panel",
|
|
props: {
|
|
type: {
|
|
type: String,
|
|
default: "range"
|
|
// "single"/"range"
|
|
},
|
|
// Unique attribute when type is single
|
|
date: {
|
|
type: common_vendor.dayjs_minExports.Dayjs,
|
|
default: () => common_vendor.dayjs()
|
|
},
|
|
// Unique attribute when type is range
|
|
startDate: {
|
|
type: common_vendor.dayjs_minExports.Dayjs,
|
|
default: null
|
|
},
|
|
endDate: {
|
|
type: common_vendor.dayjs_minExports.Dayjs,
|
|
default: null
|
|
},
|
|
rangeType: {
|
|
type: String,
|
|
default: ""
|
|
// "left"/"right"
|
|
},
|
|
currentOtherPanelValue: {
|
|
type: common_vendor.dayjs_minExports.Dayjs,
|
|
default: null
|
|
}
|
|
},
|
|
emits: ["pick", "change"],
|
|
setup(__props, { emit: __emit }) {
|
|
const props = __props;
|
|
const emit = __emit;
|
|
const n = (className) => {
|
|
return className ? [
|
|
"tui-date-picker-panel-" + className,
|
|
!TUIKit_utils_env.isPC && "tui-date-picker-panel-h5-" + className
|
|
] : ["tui-date-picker-panel", !TUIKit_utils_env.isPC && "tui-date-picker-panel-h5"];
|
|
};
|
|
const currentPanelDate = common_vendor.ref();
|
|
const year = common_vendor.computed(() => {
|
|
var _a;
|
|
return (_a = currentPanelDate.value) == null ? void 0 : _a.get("year");
|
|
});
|
|
const month = common_vendor.computed(() => {
|
|
var _a;
|
|
return (_a = currentPanelDate.value) == null ? void 0 : _a.format("MMMM");
|
|
});
|
|
const canYearMore = common_vendor.computed(() => {
|
|
var _a, _b, _c;
|
|
const prevYearNumber = ((_a = props.currentOtherPanelValue) == null ? void 0 : _a.year()) - 1;
|
|
const prevYear = (_b = props.currentOtherPanelValue) == null ? void 0 : _b.year(prevYearNumber);
|
|
return props.rangeType === "right" || ((_c = currentPanelDate.value) == null ? void 0 : _c.isBefore(prevYear, "year"));
|
|
});
|
|
const canMonthMore = common_vendor.computed(() => {
|
|
var _a, _b, _c;
|
|
const prevMonthNumber = ((_a = props.currentOtherPanelValue) == null ? void 0 : _a.month()) - 1;
|
|
const prevMonth = (_b = props.currentOtherPanelValue) == null ? void 0 : _b.month(prevMonthNumber);
|
|
return props.rangeType === "right" || ((_c = currentPanelDate.value) == null ? void 0 : _c.isBefore(prevMonth, "month"));
|
|
});
|
|
const canYearLess = common_vendor.computed(() => {
|
|
var _a, _b, _c;
|
|
const nextYearNumber = ((_a = props.currentOtherPanelValue) == null ? void 0 : _a.year()) + 1;
|
|
const nextYear = (_b = props.currentOtherPanelValue) == null ? void 0 : _b.year(nextYearNumber);
|
|
return props.rangeType === "left" || ((_c = currentPanelDate.value) == null ? void 0 : _c.isAfter(nextYear, "year"));
|
|
});
|
|
const canMonthLess = common_vendor.computed(() => {
|
|
var _a, _b, _c;
|
|
const nextMonthNumber = ((_a = props.currentOtherPanelValue) == null ? void 0 : _a.month()) + 1;
|
|
const nextMonth = (_b = props.currentOtherPanelValue) == null ? void 0 : _b.month(nextMonthNumber);
|
|
return props.rangeType === "left" || ((_c = currentPanelDate.value) == null ? void 0 : _c.isAfter(nextMonth, "month"));
|
|
});
|
|
const handleSingleDate = () => {
|
|
var _a;
|
|
if (props.date && ((_a = common_vendor.dayjs(props.date)) == null ? void 0 : _a.isValid())) {
|
|
return {
|
|
date: props == null ? void 0 : props.date
|
|
};
|
|
}
|
|
return {
|
|
date: common_vendor.dayjs()
|
|
};
|
|
};
|
|
const handleRangeDate = () => {
|
|
var _a;
|
|
switch (props.rangeType) {
|
|
case "left":
|
|
if (props.startDate && common_vendor.dayjs.isDayjs(props.startDate)) {
|
|
return {
|
|
date: props == null ? void 0 : props.startDate
|
|
};
|
|
} else {
|
|
return {
|
|
date: common_vendor.dayjs()
|
|
};
|
|
}
|
|
case "right":
|
|
if (props.endDate && common_vendor.dayjs.isDayjs(props.endDate) && ((_a = props == null ? void 0 : props.endDate) == null ? void 0 : _a.isAfter(props.startDate, "month"))) {
|
|
return {
|
|
date: props == null ? void 0 : props.endDate
|
|
};
|
|
} else {
|
|
const _month = (props.startDate || common_vendor.dayjs()).month();
|
|
return {
|
|
date: (props.startDate || common_vendor.dayjs()).month(_month + 1)
|
|
};
|
|
}
|
|
default:
|
|
return {
|
|
date: common_vendor.dayjs()
|
|
};
|
|
}
|
|
};
|
|
function handlePick(cell) {
|
|
emit("pick", cell);
|
|
}
|
|
function change(type, num) {
|
|
currentPanelDate.value = common_vendor.dayjs(currentPanelDate.value.toDate()).add(
|
|
num,
|
|
type
|
|
);
|
|
emit("change", currentPanelDate.value);
|
|
}
|
|
common_vendor.onBeforeMount(() => {
|
|
switch (props.type) {
|
|
case "single":
|
|
currentPanelDate.value = handleSingleDate().date;
|
|
emit("change", currentPanelDate.value);
|
|
break;
|
|
case "range":
|
|
currentPanelDate.value = handleRangeDate().date;
|
|
emit("change", currentPanelDate.value);
|
|
break;
|
|
}
|
|
});
|
|
return (_ctx, _cache) => {
|
|
return common_vendor.e({
|
|
a: common_vendor.unref(canYearLess)
|
|
}, common_vendor.unref(canYearLess) ? {
|
|
b: common_vendor.p({
|
|
file: common_vendor.unref(common_assets.dLeftArrowIcon),
|
|
width: "12px",
|
|
height: "12px"
|
|
}),
|
|
c: common_vendor.n(n("icon")),
|
|
d: common_vendor.o$1(($event) => change("year", -1))
|
|
} : {}, {
|
|
e: common_vendor.unref(canMonthLess)
|
|
}, common_vendor.unref(canMonthLess) ? {
|
|
f: common_vendor.p({
|
|
file: common_vendor.unref(common_assets.leftArrowIcon),
|
|
width: "10px",
|
|
height: "10px"
|
|
}),
|
|
g: common_vendor.n(n("icon")),
|
|
h: common_vendor.o$1(($event) => change("month", -1))
|
|
} : {}, {
|
|
i: common_vendor.n(n("body-header-prev")),
|
|
j: common_vendor.t(common_vendor.unref(year)),
|
|
k: common_vendor.n(n("body-header-label-item")),
|
|
l: common_vendor.t(common_vendor.unref(common_vendor.Wt).t(`time.${common_vendor.unref(month)}`)),
|
|
m: common_vendor.n(n("body-header-label-item")),
|
|
n: common_vendor.n(n("body-header-label")),
|
|
o: common_vendor.unref(canMonthMore)
|
|
}, common_vendor.unref(canMonthMore) ? {
|
|
p: common_vendor.p({
|
|
file: common_vendor.unref(common_assets.rightArrowIcon),
|
|
width: "10px",
|
|
height: "10px"
|
|
}),
|
|
q: common_vendor.n(n("icon")),
|
|
r: common_vendor.o$1(($event) => change("month", 1))
|
|
} : {}, {
|
|
s: common_vendor.unref(canYearMore)
|
|
}, common_vendor.unref(canYearMore) ? {
|
|
t: common_vendor.p({
|
|
file: common_vendor.unref(common_assets.dRightArrowIcon),
|
|
width: "12px",
|
|
height: "12px"
|
|
}),
|
|
v: common_vendor.n(n("icon")),
|
|
w: common_vendor.o$1(($event) => change("year", 1))
|
|
} : {}, {
|
|
x: common_vendor.n(n("body-header-next")),
|
|
y: common_vendor.n(n("body-header")),
|
|
z: common_vendor.o$1(handlePick),
|
|
A: common_vendor.p({
|
|
type: props.type,
|
|
date: props.date,
|
|
startDate: props.startDate,
|
|
endDate: props.endDate,
|
|
currentPanelDate: common_vendor.unref(currentPanelDate)
|
|
}),
|
|
B: common_vendor.n(n("body-content")),
|
|
C: common_vendor.n(n("body")),
|
|
D: common_vendor.n(n("")),
|
|
E: common_vendor.o$1(() => {
|
|
})
|
|
});
|
|
};
|
|
}
|
|
});
|
|
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-389108a1"]]);
|
|
wx.createComponent(Component);
|
|
//# sourceMappingURL=../../../../../.sourcemap/mp-weixin/TUIKit/components/common/DatePicker/date-picker-panel.js.map
|