123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- "use strict";
- const common_vendor = require("../../../common/vendor.js");
- const sheep_helper_index = require("../../helper/index.js");
- const sheep_index = require("../../index.js");
- require("../../helper/test.js");
- require("../../helper/digit.js");
- require("../../api/index.js");
- require("../../api/distri/score.js");
- require("../../request/index.js");
- require("../../config/index.js");
- require("../../store/index.js");
- require("../../store/app.js");
- require("../../api/promotion/diy.js");
- require("../../platform/index.js");
- require("../../platform/provider/wechat/index.js");
- require("../../platform/provider/wechat/miniProgram.js");
- require("../../api/member/auth.js");
- require("../../api/member/social.js");
- require("../../api/member/user.js");
- require("../../platform/provider/apple/index.js");
- require("../../platform/share.js");
- require("../../router/index.js");
- require("../../hooks/useModal.js");
- require("../../api/member/signin.js");
- require("../../helper/throttle.js");
- require("../../url/index.js");
- require("../../platform/pay.js");
- require("../../api/pay/order.js");
- require("../../store/user.js");
- require("../../store/cart.js");
- require("../../api/trade/cart.js");
- require("../../api/pay/wallet.js");
- require("../../api/trade/order.js");
- require("../../api/promotion/coupon.js");
- require("../../store/sys.js");
- require("../../store/modal.js");
- require("../../api/distri/share.js");
- require("../../api/distri/team.js");
- require("../../api/infra/file.js");
- require("../../api/member/address.js");
- require("../../api/member/point.js");
- require("../../api/migration/app.js");
- require("../../api/migration/chat.js");
- require("../../api/migration/index.js");
- require("../../api/migration/third.js");
- require("../../api/pay/channel.js");
- require("../../api/product/category.js");
- require("../../api/product/comment.js");
- require("../../api/product/favorite.js");
- require("../../api/product/history.js");
- require("../../api/product/spu.js");
- require("../../api/promotion/activity.js");
- require("../../api/promotion/article.js");
- require("../../api/promotion/bargain.js");
- require("../../api/promotion/combination.js");
- require("../../api/promotion/rewardActivity.js");
- require("../../api/promotion/seckill.js");
- require("../../api/system/area.js");
- require("../../api/system/voice.js");
- require("../../api/trade/afterSale.js");
- require("../../api/trade/brokerage.js");
- require("../../api/trade/config.js");
- require("../../api/trade/delivery.js");
- require("../../config/zIndex.js");
- const _sfc_main = {
- name: "su-tabbar",
- props: {
- customStyle: {
- type: [Object, String],
- default: () => ({})
- },
- customClass: {
- type: String,
- default: ""
- },
- // 跳转的页面路径
- url: {
- type: String,
- default: ""
- },
- // 页面跳转的类型
- linkType: {
- type: String,
- default: "navigateTo"
- },
- // 当前匹配项的name
- value: {
- type: [String, Number, null],
- default: ""
- },
- // 是否为iPhoneX留出底部安全距离
- safeAreaInsetBottom: {
- type: Boolean,
- default: true
- },
- // 是否显示上方边框
- border: {
- type: Boolean,
- default: true
- },
- // 元素层级z-index
- zIndex: {
- type: [String, Number],
- default: 10
- },
- // 选中标签的颜色
- activeColor: {
- type: String,
- default: "#1989fa"
- },
- // 未选中标签的颜色
- inactiveColor: {
- type: String,
- default: "#7d7e80"
- },
- // 是否固定在底部
- fixed: {
- type: Boolean,
- default: true
- },
- // fixed定位固定在底部时,是否生成一个等高元素防止塌陷
- placeholder: {
- type: Boolean,
- default: true
- },
- midTabBar: {
- type: Boolean,
- default: false
- }
- },
- data() {
- return {
- placeholderHeight: 0,
- safeBottomHeight: sheep_index.sheep.$platform.device.safeAreaInsets.bottom
- };
- },
- computed: {
- tabbarStyle() {
- const style = {
- zIndex: this.zIndex
- };
- return sheep_helper_index.deepMerge(style, sheep_helper_index.addStyle(this.customStyle));
- },
- // 监听多个参数的变化,通过在computed执行对应的操作
- updateChild() {
- return [this.value, this.activeColor, this.inactiveColor];
- },
- updatePlaceholder() {
- return [this.fixed, this.placeholder];
- }
- },
- watch: {
- updateChild() {
- this.updateChildren();
- },
- updatePlaceholder() {
- this.setPlaceholderHeight();
- }
- },
- created() {
- this.children = [];
- },
- mounted() {
- this.setPlaceholderHeight();
- },
- methods: {
- updateChildren() {
- this.children.length && this.children.map((child) => child.updateFromParent());
- },
- getRect(selector, all) {
- return new Promise((resolve) => {
- common_vendor.index.createSelectorQuery().in(this)[all ? "selectAll" : "select"](selector).boundingClientRect((rect) => {
- if (all && Array.isArray(rect) && rect.length) {
- resolve(rect);
- }
- if (!all && rect) {
- resolve(rect);
- }
- }).exec();
- });
- },
- // 设置用于防止塌陷元素的高度
- async setPlaceholderHeight() {
- if (!this.fixed || !this.placeholder)
- return;
- await sheep_helper_index.sleep(20);
- this.getRect(".u-tabbar__content").then(({ height = 50 }) => {
- this.placeholderHeight = height;
- });
- }
- }
- };
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- return common_vendor.e({
- a: $props.safeAreaInsetBottom
- }, $props.safeAreaInsetBottom ? {
- b: common_vendor.s({
- height: $data.safeBottomHeight + "px"
- })
- } : {}, {
- c: common_vendor.o(() => {
- }),
- d: common_vendor.n($props.border && "u-border-top"),
- e: common_vendor.n($props.fixed && "u-tabbar--fixed"),
- f: common_vendor.n({
- "mid-tabbar": $props.midTabBar
- }),
- g: common_vendor.s($options.tabbarStyle),
- h: $props.placeholder
- }, $props.placeholder ? {
- i: $data.placeholderHeight + "px"
- } : {});
- }
- const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-b5af0eb7"], ["__file", "D:/zx/mall-front-app/sheep/ui/su-tabbar/su-tabbar.vue"]]);
- wx.createComponent(Component);
|