123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- "use strict";
- const sheep_helper_index = require("../../helper/index.js");
- const common_vendor = require("../../../common/vendor.js");
- require("../../helper/test.js");
- require("../../helper/digit.js");
- const _sfc_main = {
- name: "su-tabbar-item",
- props: {
- customStyle: {
- type: [Object, String],
- default: () => ({})
- },
- customClass: {
- type: String,
- default: ""
- },
- // 跳转的页面路径
- url: {
- type: String,
- default: ""
- },
- // 页面跳转的类型
- linkType: {
- type: String,
- default: "navigateTo"
- },
- // item标签的名称,作为与u-tabbar的value参数匹配的标识符
- name: {
- type: [String, Number, null],
- default: ""
- },
- // uView内置图标或者绝对路径的图片
- icon: {
- icon: String,
- default: ""
- },
- // 右上角的角标提示信息
- badge: {
- type: [String, Number, null],
- default: ""
- },
- // 是否显示圆点,将会覆盖badge参数
- dot: {
- type: Boolean,
- default: false
- },
- // 描述文本
- text: {
- type: String,
- default: ""
- },
- // 控制徽标的位置,对象或者字符串形式,可以设置top和right属性
- badgeStyle: {
- type: [Object, String],
- default: ""
- },
- isCenter: {
- type: Boolean,
- default: false
- },
- centerImage: {
- type: String,
- default: ""
- }
- },
- data() {
- return {
- isActive: false,
- // 是否处于激活状态
- addStyle: sheep_helper_index.addStyle,
- parentData: {
- value: null,
- activeColor: "",
- color: ""
- },
- parent: {}
- };
- },
- created() {
- this.init();
- },
- methods: {
- getParentData(parentName = "") {
- if (!this.parent)
- this.parent = {};
- this.parent = sheep_helper_index.$parent.call(this, parentName);
- if (this.parent.children) {
- this.parent.children.indexOf(this) === -1 && this.parent.children.push(this);
- }
- if (this.parent && this.parentData) {
- Object.keys(this.parentData).map((key) => {
- this.parentData[key] = this.parent[key];
- });
- }
- },
- init() {
- this.updateParentData();
- if (!this.parent) {
- console.log("u-tabbar-item必须搭配u-tabbar组件使用");
- }
- const index = this.parent.children.indexOf(this);
- this.isActive = (this.name.split("?")[0] || index) === this.parentData.value;
- },
- updateParentData() {
- this.getParentData("su-tabbar");
- },
- // 此方法将会被父组件u-tabbar调用
- updateFromParent() {
- this.init();
- },
- clickHandler() {
- this.$nextTick(() => {
- const index = this.parent.children.indexOf(this);
- const name = this.name || index;
- if (name !== this.parent.value) {
- this.parent.$emit("change", name);
- }
- this.$emit("click", name);
- });
- }
- }
- };
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- return common_vendor.e({
- a: $props.isCenter
- }, $props.isCenter ? {
- b: $props.centerImage
- } : common_vendor.e({
- c: $props.icon
- }, $props.icon ? {
- d: $props.icon,
- e: $data.isActive ? $data.parentData.activeColor : $data.parentData.color
- } : common_vendor.e({
- f: $data.isActive
- }, $data.isActive ? {} : {}), {
- g: common_vendor.t($props.text),
- h: $data.isActive ? $data.parentData.activeColor : $data.parentData.color
- }), {
- i: common_vendor.s($data.addStyle($props.customStyle))
- });
- }
- const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-a62e13d6"], ["__file", "D:/zx/mall-front-app/sheep/ui/su-tabbar-item/su-tabbar-item.vue"]]);
- wx.createComponent(Component);
|