102 lines
3.6 KiB
JavaScript
102 lines
3.6 KiB
JavaScript
"use strict";
|
|
var common_vendor = require("../../../common/vendor.js");
|
|
if (!Array) {
|
|
const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
|
|
_easycom_uni_popup2();
|
|
}
|
|
const _easycom_uni_popup = () => "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
|
|
if (!Math) {
|
|
_easycom_uni_popup();
|
|
}
|
|
const _sfc_main = {
|
|
__name: "getTimePicker",
|
|
emits: ["@getTime"],
|
|
setup(__props, { expose, emit: emits }) {
|
|
const popup = common_vendor.ref();
|
|
let scrollTop = common_vendor.ref(0);
|
|
let selectedDay = common_vendor.ref(0);
|
|
let selectedDayLabel = common_vendor.ref("\u4ECA\u5929");
|
|
let selectedTime = common_vendor.ref(0);
|
|
let selectedTimeLabel = common_vendor.ref();
|
|
const selectDay = common_vendor.reactive(["\u4ECA\u5929", "\u660E\u5929", "\u540E\u5929"]);
|
|
let todayList = common_vendor.reactive({
|
|
todos: [{
|
|
label: "\u4E00\u5C0F\u65F6\u5185",
|
|
value: 1
|
|
}]
|
|
});
|
|
common_vendor.onMounted(() => {
|
|
todayList.todos = [...todayList.todos.concat(dateList.filter((item) => item.value > new Date().getHours()))];
|
|
});
|
|
const dateList = common_vendor.reactive(Array.from({
|
|
length: 11
|
|
}, (v, k) => ({
|
|
label: `${k + 9}:00-${k + 10}:00`,
|
|
value: k + 9
|
|
})));
|
|
const scroll = (e) => {
|
|
scrollTop.value = e.detail.scrollTop;
|
|
};
|
|
const handleSelectTime = (index, item) => {
|
|
selectedTime.value = index;
|
|
selectedTimeLabel.value = item;
|
|
popup.value.close("bottom");
|
|
emits("getTime", {
|
|
selectedDay: selectedDay.value,
|
|
selectedDayLabel: selectedDayLabel.value,
|
|
selectedTime: selectedTime.value,
|
|
selectedTimeLabel: selectedTimeLabel.value
|
|
});
|
|
};
|
|
const handleSelectDay = (index, item) => {
|
|
selectedDay.value = index;
|
|
scrollTop.value = 0;
|
|
selectedTime.value = 0;
|
|
selectedDayLabel.value = item;
|
|
};
|
|
const handleOpen = () => {
|
|
popup.value.open("bottom");
|
|
};
|
|
const handleCancel = () => {
|
|
popup.value.close("bottom");
|
|
};
|
|
expose({
|
|
handleOpen
|
|
});
|
|
return (_ctx, _cache) => {
|
|
return {
|
|
a: common_vendor.o(handleCancel),
|
|
b: common_vendor.f(selectDay, (item, index, i0) => {
|
|
return {
|
|
a: common_vendor.t(item),
|
|
b: common_vendor.n(common_vendor.unref(selectedDay) === index ? "active" : ""),
|
|
c: common_vendor.o(($event) => handleSelectDay(index, item), index),
|
|
d: index
|
|
};
|
|
}),
|
|
c: common_vendor.f(common_vendor.unref(selectedDay) === 0 ? common_vendor.unref(todayList).todos : dateList, (item, index, i0) => {
|
|
return common_vendor.e({
|
|
a: common_vendor.t(item.label),
|
|
b: common_vendor.unref(selectedTime) === item.value
|
|
}, common_vendor.unref(selectedTime) === item.value ? {} : {}, {
|
|
c: common_vendor.n(common_vendor.unref(selectedTime) === item.value ? "active" : ""),
|
|
d: index,
|
|
e: common_vendor.o(($event) => handleSelectTime(item.value, item.label), index)
|
|
});
|
|
}),
|
|
d: common_vendor.unref(scrollTop),
|
|
e: common_vendor.o(scroll),
|
|
f: common_vendor.sr(popup, "d7737426-0", {
|
|
"k": "popup"
|
|
}),
|
|
g: common_vendor.p({
|
|
type: "bottom",
|
|
["safe-area"]: false
|
|
})
|
|
};
|
|
};
|
|
}
|
|
};
|
|
var Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-d7737426"], ["__file", "E:/project/project-wl-yonghuduan-uniapp-vue3/pages/express-delivery/components/getTimePicker.vue"]]);
|
|
wx.createComponent(Component);
|