@ued_fpi/data-visual
Version:
<br /> <br /> <div style="text-align:center"> <b style="font-size:30px">@ued_fpi/data-visual</b> <p>基于Vite4+TypeScript的Vue3大屏组件库开发框架</p> <img style="display:inline" src="https://img.shields.io/npm/v/@ued_fpi/data-visual" />
73 lines (68 loc) • 1.95 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
const vue = require('vue');
const _hoisted_1 = { class: "comm-btns" };
const _hoisted_2 = ["onClick"];
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "comm-btns",
props: {
/**
* 按钮数据
*/
tabs: {
type: Array,
default: () => {
return [];
}
},
/**
* 标题名称
*/
selected: {
type: Object,
default: () => {
return {};
}
},
/**
* 面板宽度
*/
width: {
type: Number,
default: void 0
}
},
emits: ["switchTab"],
setup(__props, { emit: $emit }) {
const props = __props;
const data = vue.reactive({
selectedTab: {}
});
const switchTab = (item) => {
if (data.selectedTab.value === item.value)
return;
data.selectedTab = item;
$emit("switchTab", item);
};
vue.watch(() => props.selected, () => {
data.selectedTab = props.selected;
});
vue.onMounted(() => {
data.selectedTab = props.selected?.value ? props.selected : {};
});
const { selectedTab } = vue.toRefs(data);
return (_ctx, _cache) => {
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.tabs, (item, index) => {
return vue.openBlock(), vue.createElementBlock("span", {
key: index,
class: vue.normalizeClass(["comm-btn", { active: vue.unref(selectedTab).value === item.value }]),
style: vue.normalizeStyle({ width: __props.width ? `${__props.width}px` : "auto" }),
onClick: ($event) => switchTab(item)
}, vue.toDisplayString(item.label), 15, _hoisted_2);
}), 128))
]);
};
}
});
exports.default = _sfc_main;