@cqmcui/cqmcui
Version:
轻量级移动端 Vue2、Vue3 组件库(支持小程序开发)
56 lines (55 loc) • 1.88 kB
JavaScript
import { inject, getCurrentInstance, reactive, computed, onUnmounted, openBlock, createElementBlock, normalizeClass, normalizeStyle, renderSlot } from "vue";
import { c as createComponent } from "./component-81a4c1d0.js";
import { u as useExpose } from "./index-79c5dc33.js";
import { _ as _export_sfc } from "./_plugin-vue_export-helper-cc2b3d55.js";
import "../locale/lang";
const { create, componentName } = createComponent("swiper-item");
const _sfc_main = create({
setup(props, { slots }) {
const parent = inject("parent");
parent["relation"](getCurrentInstance());
const state = reactive({
offset: 0
});
const classes = computed(() => {
const prefixCls = componentName;
return {
[prefixCls]: true
};
});
const style = computed(() => {
const style2 = {};
const direction = parent == null ? void 0 : parent.props.direction;
if (parent == null ? void 0 : parent.size.value) {
style2[direction === "horizontal" ? "width" : "height"] = `${parent == null ? void 0 : parent.size.value}px`;
}
if (state.offset) {
style2["transform"] = `translate${direction === "horizontal" ? "X" : "Y"}(${state.offset}px)`;
}
return style2;
});
const setOffset = (offset) => {
state.offset = offset;
};
onUnmounted(() => {
parent["relation"](getCurrentInstance(), "unmount");
});
useExpose({ setOffset });
return {
style,
classes
};
}
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("view", {
class: normalizeClass(_ctx.classes),
style: normalizeStyle(_ctx.style)
}, [
renderSlot(_ctx.$slots, "default")
], 6);
}
const SwiperItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
SwiperItem as default
};