@cqmcui/cqmcui
Version:
轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)
78 lines (77 loc) • 2.52 kB
JavaScript
import { inject, reactive, computed, toRefs, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, toDisplayString } from "vue";
import { c as createComponent } from "./component-81a4c1d0.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-cc2b3d55.js";
import "../locale/lang";
const { componentName, create } = createComponent("time-detail");
const _sfc_main = create({
name: "timedetail",
props: {
times: {
type: Array,
default: () => {
return [];
}
}
},
emits: ["select"],
setup: (props, context) => {
const currentKey = inject("currentKey");
const currentTime = inject("currentTime");
const state = reactive({
currentKey,
currentTime
});
const classes = computed(() => {
const prefixCls = componentName;
return {
[prefixCls]: true
};
});
const getClass = (item) => {
let find = state.currentTime.find((item2) => item2.key == state.currentKey);
if (find) {
return {
"cqmc-time-detail__detail__list__item": true,
"cqmc-time-detail__detail__list__item--curr": find.list.filter((value) => value === item).length > 0
};
}
};
const renderData = computed(() => {
return props.times.find((time) => time.key == state.currentKey)["list"];
});
const handleTime = (time) => {
context.emit("select", time);
};
return {
classes,
...toRefs(state),
getClass,
renderData,
handleTime
};
}
});
const _hoisted_1 = { class: "cqmc-time-detail__detail cqmc-time-detail__detail--moring" };
const _hoisted_2 = { class: "cqmc-time-detail__detail__list" };
const _hoisted_3 = ["onClick"];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("view", {
class: normalizeClass(_ctx.classes)
}, [
createElementVNode("view", _hoisted_1, [
createElementVNode("view", _hoisted_2, [
(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.renderData, (item) => {
return openBlock(), createElementBlock("view", {
class: normalizeClass(_ctx.getClass(item)),
key: item,
onClick: ($event) => _ctx.handleTime(item)
}, toDisplayString(item), 11, _hoisted_3);
}), 128))
])
])
], 2);
}
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
index as default
};