uni-ticket-system/dist/dev/mp-weixin/tmui/components/tm-tabbar/tm-tabbar.js

208 lines
6.6 KiB
JavaScript
Raw Normal View History

2023-12-05 02:11:10 +00:00
"use strict";
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
const common_vendor = require("../../../common/vendor.js");
const tmui_tool_lib_minxs = require("../../tool/lib/minxs.js");
const tmui_tool_lib_tmpinia = require("../../tool/lib/tmpinia.js");
require("../../tool/theme/theme.js");
require("../../tool/theme/colortool.js");
require("../../tool/lib/interface.js");
require("../../tool/function/util.js");
require("../../tool/function/preview.js");
if (!Math) {
tmSheet();
}
const tmSheet = () => "../tm-sheet/tm-sheet.js";
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
__name: "tm-tabbar",
props: __spreadProps(__spreadValues({}, tmui_tool_lib_minxs.custom_props), {
transprent: {
type: [Boolean],
default: false
},
color: {
type: [String],
default: "white"
},
text: {
type: [Boolean],
default: false
},
round: {
type: [Number],
default: 0
},
shadow: {
type: [Number],
default: 0
},
//如果为0取当前窗口宽度。
width: {
type: [Number],
default: 0
},
//底部偏移
bottom: {
type: [Number],
default: 0
},
//是否显示安全区域
showSafe: {
type: [Boolean],
default: false
},
//动态激活项的索引-1表示不激活任何项。
active: {
type: Number,
default: -1
},
//是否自动选中。如果禁用则用户通过active来切换选中值否则点击项目时自动选中。
autoSelect: {
type: Boolean,
default: true
},
/** 在nvue上没有用处请自行放到最尾部的地方。 */
zIndex: {
type: [Number],
default: 200
},
/**是否占位底部填充空白view */
place: {
type: Boolean,
default: false
}
}),
emits: ["change", "update:active"],
setup(__props, { expose, emit: emits }) {
var _a, _b;
const props = __props;
tmui_tool_lib_tmpinia.useTmpiniaStore();
let sys = common_vendor.index.getSystemInfoSync();
const _width = common_vendor.computed(() => common_vendor.index.upx2px(props.width) || (sys == null ? void 0 : sys.windowWidth) || 750);
const _blur = common_vendor.computed(() => props.blur);
const _place = common_vendor.computed(() => props.place);
const _activeUrl = common_vendor.ref("");
const _activeUid = common_vendor.ref("");
const tmTabbarId = "tmTabbarId";
const _cachlist = common_vendor.ref([]);
const _showSafe = common_vendor.ref(props.showSafe);
const _activeIndex = common_vendor.ref(props.active);
const win_bottom = (_b = (_a = sys == null ? void 0 : sys.safeAreaInsets) == null ? void 0 : _a.bottom) != null ? _b : 0;
if (win_bottom > 0) {
_showSafe.value = true;
}
const _totalBarHeight = common_vendor.computed(() => {
if (_showSafe.value)
return 90;
return 75;
});
const _BarHeight = common_vendor.computed(() => {
if (_showSafe.value)
return 75;
return 60;
});
function setNowurl(url, nowuid) {
_activeUrl.value = url;
_activeUid.value = String(nowuid);
}
function pushKey(uid) {
_cachlist.value = [.../* @__PURE__ */ new Set([..._cachlist.value, uid])];
}
function delKey(uid) {
_cachlist.value = _cachlist.value.filter((el) => el != uid);
}
expose({ tmTabbarId, setNowurl, pushKey, delKey });
common_vendor.provide(
"tmTabbarUrl",
common_vendor.computed(() => _activeUrl.value)
);
common_vendor.provide(
"tmTabbarUid",
common_vendor.computed(() => _activeUid.value)
);
common_vendor.provide(
"tmTabbarWidth",
common_vendor.computed(() => Math.ceil(_width / _cachlist.value.length))
);
common_vendor.provide(
"tmTabbarItemList",
common_vendor.computed(() => _cachlist.value)
);
common_vendor.provide(
"tmTabbarItemActive",
common_vendor.computed(() => _activeIndex.value)
);
common_vendor.provide("tmTabbarItemSafe", _showSafe.value);
common_vendor.provide(
"tmTabbarItemAutoSelect",
common_vendor.computed(() => props.autoSelect)
);
common_vendor.watch(
() => props.active,
() => {
if (props.active == _activeIndex.value)
return;
_activeIndex.value = props.active;
}
);
common_vendor.watch(_activeIndex, () => {
emits("change", _activeIndex.value);
emits("update:active", _activeIndex.value);
});
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.p({
blur: common_vendor.unref(_blur),
color: props.color,
parenClass: "relative",
followTheme: props.followTheme,
dark: props.dark,
round: props.round,
shadow: props.shadow,
outlined: props.outlined,
border: 0,
borderDirection: "top",
text: props.text,
transprent: false,
linear: props.linear,
linearDeep: props.linearDeep,
margin: [0, 0],
padding: [0, 0],
height: common_vendor.unref(_BarHeight),
width: common_vendor.unref(_width),
unit: "px"
}),
b: common_vendor.unref(_width) + "px",
c: common_vendor.unref(_width) + "px",
d: common_vendor.unref(_totalBarHeight) + "px",
e: common_vendor.unref(_width) + "px",
f: common_vendor.unref(_totalBarHeight) + "px",
g: `translateY(${props.bottom}rpx)`,
h: props.zIndex,
i: common_vendor.unref(_place)
}, common_vendor.unref(_place) ? {
j: common_vendor.unref(_totalBarHeight) + "px"
} : {});
};
}
});
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/WebstormProjects/uni-ticket-system/src/tmui/components/tm-tabbar/tm-tabbar.vue"]]);
wx.createComponent(Component);