@tencentcloud/roomkit-web-vue3
Version:
<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,
63 lines (62 loc) • 1.92 kB
JavaScript
import { defineComponent, ref, watch, createElementBlock, openBlock, createVNode, unref, withCtx, Fragment, renderList, createBlock } from "vue";
import Select from "../Select/index.mjs";
import OPtion from "../Option/index.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
__name: "TimepickerH5",
props: {
value: {}
},
emits: ["input"],
setup(__props, { emit: __emit }) {
const props = __props;
const emit = __emit;
const currentValue = ref();
watch(
() => props.value,
(val) => {
if (!val) return;
currentValue.value = val;
},
{ immediate: true }
);
watch(currentValue, (val) => emit("input", val), { immediate: true });
const getTimeList = () => {
const options = [];
for (let i = 0; i < 24; i++) {
for (let j = 0; j < 60; j += 15) {
const hour = i < 10 ? `0${i}` : `${i}`;
const minute = j < 10 ? `0${j}` : `${j}`;
options.push(`${hour}:${minute}`);
}
}
return options;
};
const timeOptions = getTimeList();
const list = timeOptions.map((item) => ({
label: item,
value: item
}));
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", null, [
createVNode(unref(Select), {
value: currentValue.value,
onInput: _cache[0] || (_cache[0] = ($event) => currentValue.value = $event)
}, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(list), (item) => {
return openBlock(), createBlock(unref(OPtion), {
key: item.value,
value: item.value,
label: item.label
}, null, 8, ["value", "label"]);
}), 128))
]),
_: 1
}, 8, ["value"])
]);
};
}
});
export {
_sfc_main as default
};