|
|
- "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
|