var menu_index = $('#menu_index').val(); //检查menulist变量是否定义 if (menu_list === undefined) { menu_list = []; } const sharedMixin = { data() { return { menu_index: menu_index, side_menu_collapse: false, default_aside_width: "250px", el_aside_width: "250px", side_menu_show_type: 1,/////左侧菜单收放状态,1=展开,2=收缩 breadcrumbList: [], menuList: menu_list,///菜单列表 url: '', currentLang: localStorage.getItem('lang') || 'zh-cn', langPag: {},// 存储加载后的语言包 languageList: [ { id: 1, name_loc: '简体中文', symbol: 'zh-cn' }, { id: 2, name_loc: 'English', symbol: 'en-us' }, { id: 3, name_loc: 'ar', symbol: 'ar' }, ], } }, mounted() { this.getLanguage(); if (this.currentLang == 'en-us') { this.el_aside_width = this.default_aside_width = "270px" } else if (this.currentLang == 'zh-cn') { this.el_aside_width = this.default_aside_width = "250px"; } else { this.el_aside_width = this.default_aside_width = "250px"; } }, created() { // this.sharedMethod() // console.log(this.$data.menu_index); this.loadLanguage(); this.getMenu(); //this.changeLang(this.currentLang, false); }, methods: { getLanguage() { const that = this; const url = "/seller/login/getLanguage.html"; postRequest(url, {}).then((res) => { if (res.data.code === 200) { that.languageList = res.data.list } }).catch((error) => { }); }, // 异步加载语言包的方法 async loadLanguage() { try { //获取默认语言 let lang = localStorage.getItem('lang') || 'zh-cn'; const response = await fetch(`/static/lang/1/${lang}.json`); this.langPag = await response.json(); } catch (error) { // 回退到中文 const zhResponse = await fetch('/static/lang/1/zh-cn.json'); this.langPag = await zhResponse.json(); } }, // 切换语言 async changeLang(lang, ifreload) { if (!['zh-cn', 'en-us', 'ar'].includes(lang)) { lang = 'zh-cn'; } this.currentLang = lang; this.setLanguage(lang, ifreload); //await this.loadLanguage(lang, ifreload); }, //重写消息弹窗方法,加入语言包 dhknofity(code, msg) { if (code == '200') { this.$notify.success({ title: this.t('common.success', 'Success'), message: this.t(msg), position: "top-left" }); } else { this.$notify.error({ title: this.t('common.error', 'Error'), message: this.t(msg), position: "top-left" }); } }, // 翻译方法 t(key, value = '') { if (value == '') { value = key } return key.split('.').reduce((obj, k) => obj?.[k], this.langPag) || value; }, setLanguage(lang, ifreload) { let url = "/seller/login/setLang.html" postRequest(url, { lang: lang }).then(res => { if (res.data.code == 200) { localStorage.setItem('lang', lang); window.location.reload(); } }); }, sharedMethod() { // 共享的方法逻辑 // console.log(1213213123123); }, /////切换语言///// switchLanguage(type) { /////提交保存到数据库默认语言类型///// /////切换语言////// window.switchLanguage(type); }, /////左侧菜单跳转///// goto_menu(url) { window.location.href = url; }, /////左侧菜单收放状态 show_side_menu() { if (this.side_menu_show_type == 1) { /////设置为收缩状态///// this.el_aside_width = "auto"; this.side_menu_show_type = 2; this.side_menu_collapse = true; } else { /////设置为展开状态///// this.el_aside_width = this.default_aside_width; this.side_menu_show_type = 1; this.side_menu_collapse = false; } }, getMenu() { //左侧菜单加载体验优化 let that = this; if (this.menuList.length > 0) { this.url = new URL(window.location.href) let menus = this.getMenus(that.menuList) let home = [{ title: that.menuList[0].title, menu_url: '/seller/index/index.html' }] if (menus !== undefined) { if (this.url.pathname !== '/seller/index/index.html' && this.url.href !== '/seller/index/index.html') { menus = home.concat(menus) } } else { menus = home } this.breadcrumbList = menus return; } let url = "/seller/index/getMenu.html" postRequest(url, { menuindex: menu_index }).then(res => { console.log(res); if (res.data.code == 200) { that.menuList = res.data.data; that.menu_index = menu_index this.url = new URL(window.location.href) let menus = this.getMenus(that.menuList) let home = [{ title: that.menuList[0].title, menu_url: '/seller/index/index.html' }] if (menus !== undefined) { if (this.url.pathname !== '/seller/index/index.html' && this.url.href !== '/seller/index/index.html') { menus = home.concat(menus) } } else { menus = home } this.breadcrumbList = menus console.log(this.breadcrumbList) } }); }, getMenus(menuList, arr, z) { arr = arr || [] z = z || 0 for (let i = 0; i < menuList.length; i++) { let item = menuList[i] arr[z] = item if (menuList[i].menu_url != null && menuList[i].menu_url != '') { if (this.url.pathname === menuList[i].menu_url || this.url.pathname.includes(menuList[i].menu_url.slice(0, -5))) { return arr.slice(0, z + 1) } } if (menuList[i].children && menuList[i].children.length) { let res = this.getMenus(menuList[i].children, arr, z + 1) if (res) { return res } } } }, curentTime() { var now = new Date(); var year = now.getFullYear(); // 年 var month = now.getMonth() + 1; // 月 var day = now.getDate(); // 日 var hh = now.getHours(); // 时 var mm = now.getMinutes(); // 分 var ss = now.getSeconds(); // 秒 var clock = year + "-"; if (month < 10) clock += "0"; clock += month + "-"; if (day < 10) clock += "0"; clock += day + " "; if (hh < 10) clock += "0"; clock += hh + ":"; if (mm < 10) clock += "0"; clock += mm + ":"; if (ss < 10) clock += "0"; clock += ss; return clock; }, //获取表格中最后一列的宽度 observeLastColumnWidth() { // 获取表格的 DOM 元素 if (typeof this.$refs.tableRef == 'undefined') { return false; } try { const tableHeader = this.$refs.tableRef.$el.querySelector('.el-table__header-wrapper').querySelector('colgroup'); if (tableHeader) { // 获取最后一列的 DOM 元素 const lastColumn = tableHeader.querySelector('col:last-child'); if (lastColumn) { // 创建 ResizeObserver 实例 const observer = new ResizeObserver((entries) => { for (const entry of entries) { const columnWidth = entry.contentRect.width; // 获取列宽 this.lastColumn = columnWidth; // console.log(columnWidth); } }); // 监听最后一列的宽度变化 observer.observe(lastColumn); } } } catch (error) { // console.log(error) return false; } }, //设置最后一列的对齐方式 alignValue(width) { // console.log(this.lastColumn, width); if (this.lastColumn > width) { return 'left'; } else { return 'center'; } }, } }