爱简收旧衣按件回收前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

251 lines
7.1 KiB

"use strict";
const common_vendor = require("../../common/vendor.js");
const _sfc_main$1 = {
name: "AdminTabBar",
data() {
return {
currentPath: "",
tabList: [
{
pagePath: "/pages/component/admin_home",
text: "首页",
icon: "/static/logo.png",
selectedIcon: "/static/111.png"
},
{
pagePath: "/pages/component/role_management",
text: "角色管理",
icon: "/static/logo.png",
selectedIcon: "/static/111.png"
},
{
pagePath: "/pages/component/admin_my",
text: "我的",
icon: "/static/logo.png",
selectedIcon: "/static/111.png"
}
]
};
},
methods: {
switchTab(path) {
this.currentPath = path;
common_vendor.index.__f__("log", "at wxcomponents/admin-tabr/admin-tabar.vue:54", path);
common_vendor.index.switchTab({
url: path,
fail: () => {
common_vendor.index.navigateTo({
url: path
});
}
});
this.currentPath = path;
},
// 初始化当前页面路径
initCurrentPath() {
const pages = getCurrentPages();
if (pages.length > 0) {
const currentPage = pages[pages.length - 1];
this.currentPath = `/${currentPage.route}`;
}
}
},
mounted() {
this.initCurrentPath();
},
onShow() {
this.initCurrentPath();
}
};
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($data.tabList, (item, index, i0) => {
return {
a: $data.currentPath === item.pagePath ? item.selectedIcon : item.icon,
b: common_vendor.t(item.text),
c: index,
d: $data.currentPath === item.pagePath ? 1 : "",
e: common_vendor.o(($event) => $options.switchTab(item.pagePath), index)
};
})
};
}
const AdminTabBar = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-74645b33"]]);
const _sfc_main = {
name: "UserTabBar",
data() {
return {
currentTab: "/pages/component/home",
tabList: [
{
pagePath: "/pages/component/home",
text: "首页",
iconPath: "/static/logo.png",
selectedIconPath: "/static/logo.png"
},
{
pagePath: "/pages/component/recycle",
text: "回收",
iconPath: "/static/logo.png",
selectedIconPath: "/static/logo.png"
},
{
pagePath: "/pages/component/my",
text: "我的",
iconPath: "/static/logo.png",
selectedIconPath: "/static/logo.png"
}
]
};
},
methods: {
switchTab(path) {
if (this.currentTab === path)
return;
const oldPath = this.currentTab;
this.currentTab = path;
common_vendor.index.switchTab({
url: path,
success: () => {
common_vendor.index.__f__("log", "at wxcomponents/user-tabar/user-tabar.vue:60", "切换成功");
},
fail: () => {
common_vendor.index.navigateTo({
url: path,
success: () => {
common_vendor.index.__f__("log", "at wxcomponents/user-tabar/user-tabar.vue:67", "导航成功");
},
fail: () => {
this.currentTab = oldPath;
common_vendor.index.__f__("log", "at wxcomponents/user-tabar/user-tabar.vue:72", "切换失败");
}
});
}
});
},
updateCurrentTab() {
const pages = getCurrentPages();
if (pages.length > 0) {
const currentPage = pages[pages.length - 1];
const newPath = "/" + currentPage.route;
if (this.currentTab !== newPath) {
this.currentTab = newPath;
}
}
}
},
created() {
this.updateCurrentTab();
},
onShow() {
this.updateCurrentTab();
},
onLoad() {
this.updateCurrentTab();
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.f($data.tabList, (item, index, i0) => {
return {
a: $data.currentTab === item.pagePath ? item.selectedIconPath : item.iconPath,
b: common_vendor.t(item.text),
c: index,
d: $data.currentTab === item.pagePath ? 1 : "",
e: common_vendor.o(($event) => $options.switchTab(item.pagePath), index)
};
})
};
}
const UserTabBar = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d2bf226b"]]);
const tabBarMixin = {
components: {
AdminTabBar,
UserTabBar
},
data() {
return {
userRole: "",
isTabBarVisible: true,
currentPath: "",
tabBarIndex: 0
};
},
computed: {
isAdmin() {
return this.userRole === "admin";
},
shouldShowTabBar() {
const tabBarPages = [
"/pages/component/admin_home",
"/pages/component/role_management",
"/pages/component/admin_my"
];
return tabBarPages.includes(this.currentPath);
}
},
methods: {
async checkUserRole() {
try {
const userInfo = common_vendor.index.getStorageSync("userInfo");
if (userInfo && userInfo.role) {
this.userRole = userInfo.role;
} else {
this.userRole = "user";
}
} catch (e) {
common_vendor.index.__f__("error", "at pages/mixins/tabBarMixin.js:40", "获取用户角色失败:", e);
this.userRole = "user";
}
},
updateCurrentPath() {
const pages = getCurrentPages();
if (pages.length > 0) {
const currentPage = pages[pages.length - 1];
common_vendor.index.__f__("log", "at pages/mixins/tabBarMixin.js:48", currentPage, "text");
this.currentPath = "/" + currentPage.route;
this.isTabBarVisible = this.shouldShowTabBar;
common_vendor.index.__f__("log", "at pages/mixins/tabBarMixin.js:51", "当前页面路径:", this.currentPath);
}
},
hideTabBar() {
this.isTabBarVisible = false;
},
showTabBar() {
this.isTabBarVisible = this.shouldShowTabBar;
},
switchTab(index) {
const routes = ["pages/index/index", "pages/role-management/role-management", "pages/my/my"];
if (!this.isAdmin && index === 1) {
common_vendor.index.showToast({
title: "无权限访问",
icon: "none"
});
return;
}
this.tabBarIndex = index;
common_vendor.index.switchTab({
url: "/" + routes[index]
});
}
},
onShow() {
this.checkUserRole();
this.updateCurrentPath();
const pages = getCurrentPages();
const currentPage = pages[pages.length - 1];
const route = currentPage.route;
const routes = ["pages/index/index", "pages/role-management/role-management", "pages/my/my"];
this.tabBarIndex = routes.findIndex((r) => r === route);
},
onLoad() {
this.checkUserRole();
this.updateCurrentPath();
},
mounted() {
this.checkUserRole();
this.updateCurrentPath();
}
};
exports.tabBarMixin = tabBarMixin;
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/mixins/tabBarMixin.js.map