dacce6fd2d81cd880f252bb13fbd7c0b.json 13 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\layout\\navBars\\breadcrumb\\user.vue?vue&type=style&index=0&id=2dffddff&scoped=true&lang=scss","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\layout\\navBars\\breadcrumb\\user.vue","mtime":1761185180055},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\css-loader\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQoubGF5b3V0LW5hdmJhcnMtYnJlYWRjcnVtYi11c2VyIHsNCiAgZGlzcGxheTogZmxleDsNCiAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsNCiAgLmVsLWljb24tYmVsbCB7DQogICAgY29sb3I6IHZhcigtLXByZXYtYmctdG9wQmFyQ29sb3IpOw0KICB9DQogICYtbGluayB7DQogICAgaGVpZ2h0OiAxMDAlOw0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICYtcGhvdG8gew0KICAgICAgd2lkdGg6IDMwcHg7DQogICAgICBoZWlnaHQ6IDMwcHg7DQogICAgICBib3JkZXItcmFkaXVzOiAxMDAlOw0KICAgIH0NCiAgfQ0KICAmLWljb24gew0KICAgIHBhZGRpbmc6IDAgMTBweDsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgY29sb3I6IHZhcigtLXByZXYtYmctdG9wQmFyQ29sb3IpOw0KICAgIGhlaWdodDogNTBweDsNCiAgICBsaW5lLWhlaWdodDogNTBweDsNCiAgICBkaXNwbGF5OiBmbGV4Ow0KICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgJjpob3ZlciB7DQogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcmV2LWNvbG9yLWhvdmVyKTsNCiAgICAgIGkgew0KICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7DQogICAgICAgIGFuaW1hdGlvbjogbG9nb0FuaW1hdGlvbiAwLjNzIGVhc2UtaW4tb3V0Ow0KICAgICAgfQ0KICAgIH0NCiAgfQ0KICAmIDo6di1kZWVwIC5lbC1kcm9wZG93biB7DQogICAgY29sb3I6IHZhcigtLXByZXYtYmctdG9wQmFyQ29sb3IpOw0KICAgIGN1cnNvcjogcG9pbnRlcjsNCiAgfQ0KICAmIDo6di1kZWVwIC5lbC1iYWRnZSB7DQogICAgaGVpZ2h0OiA0MHB4Ow0KICAgIGxpbmUtaGVpZ2h0OiA0MHB4Ow0KICAgIGRpc3BsYXk6IGZsZXg7DQogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgfQ0KICAmIDo6di1kZWVwIC5lbC1iYWRnZV9fY29udGVudC5pcy1maXhlZCB7DQogICAgdG9wOiAxMnB4Ow0KICB9DQp9DQo="},{"version":3,"sources":["user.vue"],"names":[],"mappings":";AA6PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"user.vue","sourceRoot":"src/layout/navBars/breadcrumb","sourcesContent":["<template>\r\n <div class=\"layout-navbars-breadcrumb-user\" :style=\"{ flex: layoutUserFlexNum }\">\r\n <div class=\"layout-navbars-breadcrumb-user-icon\" v-db-click @click=\"refresh\">\r\n <i class=\"el-icon-refresh-right\" :title=\"$t('message.user.title7')\"></i>\r\n </div>\r\n <el-popover ref=\"searchPopover\" placement=\"bottom\" title=\"\" width=\"325\" trigger=\"click\">\r\n <Search ref=\"searchRef\" @close=\"closePopover\" />\r\n <i\r\n class=\"el-icon-search layout-navbars-breadcrumb-user-icon\"\r\n slot=\"reference\"\r\n :title=\"$t('message.user.title2')\"\r\n ></i>\r\n </el-popover>\r\n\r\n <div class=\"layout-navbars-breadcrumb-user-icon\">\r\n <el-tooltip\r\n effect=\"light\"\r\n placement=\"bottom\"\r\n trigger=\"click\"\r\n v-model=\"isShowUserNewsPopover\"\r\n :width=\"300\"\r\n popper-class=\"el-tooltip-pupop-user-news\"\r\n >\r\n <el-badge :is-dot=\"isDot\" v-db-click @click.stop=\"openNews\">\r\n <i class=\"el-icon-bell\" :title=\"$t('message.user.title4')\"></i>\r\n </el-badge>\r\n <transition name=\"el-zoom-in-top\" slot=\"content\">\r\n <UserNews :vm=\"this\" v-show=\"isShowUserNewsPopover\" @haveNews=\"initIsDot\"></UserNews>\r\n </transition>\r\n </el-tooltip>\r\n </div>\r\n <div class=\"layout-navbars-breadcrumb-user-icon\" v-db-click @click=\"onScreenfullClick\">\r\n <i\r\n :title=\"isScreenfull ? $t('message.user.title6') : $t('message.user.title5')\"\r\n :class=\"!isScreenfull ? 'el-icon-full-screen' : 'el-icon-crop'\"\r\n ></i>\r\n </div>\r\n <div class=\"layout-navbars-breadcrumb-user-icon mr10\" v-db-click @click=\"openMobelPage\">\r\n <i\r\n title=\"商城页面\"\r\n class=\"el-icon-mobile-phone\"\r\n ></i>\r\n </div>\r\n <el-dropdown :show-timeout=\"70\" @command=\"onDropdownCommand\">\r\n <span class=\"layout-navbars-breadcrumb-user-link\">\r\n <img :src=\"getUserInfos.head_pic\" class=\"layout-navbars-breadcrumb-user-link-photo mr5\" />\r\n {{ getUserInfos.account === '' ? 'test' : getUserInfos.account }}\r\n <i class=\"el-icon-arrow-down el-icon--right\"></i>\r\n </span>\r\n <el-dropdown-menu slot=\"dropdown\">\r\n <el-dropdown-item command=\"user\">{{ $t('message.user.dropdown6') }}</el-dropdown-item>\r\n <el-dropdown-item divided command=\"logOut\">{{ $t('message.user.dropdown5') }}</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n <div class=\"layout-navbars-breadcrumb-user-icon\" v-db-click @click=\"onLayoutSetingClick\">\r\n <i class=\"el-icon-setting\" :title=\"$t('message.user.title3')\"></i>\r\n </div>\r\n <!-- <Search ref=\"searchRef\" /> -->\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport screenfull from 'screenfull';\r\nimport { AccountLogout } from '@/api/account';\r\nimport { removeCookies } from '@/libs/util';\r\nimport { Session, Local } from '@/utils/storage.js';\r\nimport UserNews from '@/layout/navBars/breadcrumb/userNews.vue';\r\nimport Search from '@/layout/navBars/breadcrumb/search.vue';\r\nexport default {\r\n name: 'layoutBreadcrumbUser',\r\n components: { UserNews, Search },\r\n data() {\r\n return {\r\n isScreenfull: false,\r\n isShowUserNewsPopover: false,\r\n disabledI18n: 'zh-cn',\r\n disabledSize: '',\r\n isDot: false,\r\n };\r\n },\r\n computed: {\r\n // 获取用户信息\r\n getUserInfos() {\r\n return this.$store.state.userInfo.userInfo;\r\n },\r\n // 设置弹性盒子布局 flex\r\n layoutUserFlexNum() {\r\n let { layout, isClassicSplitMenu } = this.$store.state.themeConfig.themeConfig;\r\n let num = '';\r\n if (layout === 'defaults' || (layout === 'classic' && !isClassicSplitMenu) || layout === 'columns') num = 1;\r\n else num = null;\r\n return num;\r\n },\r\n },\r\n mounted() {\r\n if (Local.get('themeConfigPrev')) {\r\n this.initI18n();\r\n this.initComponentSize();\r\n }\r\n },\r\n methods: {\r\n closePopover() {\r\n this.$refs.searchPopover.doClose();\r\n },\r\n /**\r\n * 初始化 isDot 属性\r\n * @param {boolean} status - 状态值\r\n */\r\n initIsDot(status) {\r\n this.isDot = status;\r\n },\r\n openMobelPage(){\r\n // 获取域名\r\n window.open(window.location.origin, '_blank')\r\n },\r\n /**\r\n * 打开新弹窗\r\n */\r\n openNews() {\r\n // 切换 isShowUserNewsPopover 属性值\r\n this.isShowUserNewsPopover = !this.isShowUserNewsPopover;\r\n // 将 isDot 属性设置为 false\r\n this.isDot = false;\r\n },\r\n\r\n // 搜索点击\r\n onSearchClick() {\r\n this.$refs.searchRef.openSearch();\r\n },\r\n // 布局配置点击\r\n onLayoutSetingClick() {\r\n this.bus.$emit('openSetingsDrawer');\r\n },\r\n refresh() {\r\n this.bus.$emit('onTagsViewRefreshRouterView', this.$route.path);\r\n },\r\n // 全屏点击\r\n onScreenfullClick() {\r\n if (!screenfull.isEnabled) {\r\n this.$message.warning('暂不不支持全屏');\r\n return false;\r\n }\r\n screenfull.toggle();\r\n screenfull.on('change', () => {\r\n if (screenfull.isFullscreen) this.isScreenfull = true;\r\n else this.isScreenfull = false;\r\n });\r\n // 监听菜单 horizontal.vue 滚动条高度更新\r\n this.bus.$emit('updateElScrollBar');\r\n },\r\n // 组件大小改变\r\n onComponentSizeChange(size) {\r\n Local.remove('themeConfigPrev');\r\n this.$store.state.themeConfig.themeConfig.globalComponentSize = size;\r\n Local.set('themeConfigPrev', this.$store.state.themeConfig.themeConfig);\r\n this.$ELEMENT.size = size;\r\n this.initComponentSize();\r\n window.location.reload();\r\n },\r\n // 语言切换\r\n onLanguageChange(lang) {\r\n Local.remove('themeConfigPrev');\r\n this.$store.state.themeConfig.themeConfig.globalI18n = lang;\r\n Local.set('themeConfigPrev', this.$store.state.themeConfig.themeConfig);\r\n this.$i18n.locale = lang;\r\n this.initI18n();\r\n },\r\n // 初始化言语国际化\r\n initI18n() {\r\n switch (Local.get('themeConfigPrev').globalI18n) {\r\n case 'zh-cn':\r\n this.disabledI18n = 'zh-cn';\r\n break;\r\n case 'en':\r\n this.disabledI18n = 'en';\r\n break;\r\n case 'zh-tw':\r\n this.disabledI18n = 'zh-tw';\r\n break;\r\n }\r\n },\r\n // 初始化全局组件大小\r\n initComponentSize() {\r\n switch (Local.get('themeConfigPrev').globalComponentSize) {\r\n case '':\r\n this.disabledSize = '';\r\n break;\r\n case 'medium':\r\n this.disabledSize = 'medium';\r\n break;\r\n case 'small':\r\n this.disabledSize = 'small';\r\n break;\r\n case 'mini':\r\n this.disabledSize = 'mini';\r\n break;\r\n }\r\n },\r\n // `dropdown 下拉菜单` 当前项点击\r\n onDropdownCommand(path) {\r\n if (path === 'logOut') {\r\n setTimeout(() => {\r\n this.$msgbox({\r\n closeOnClickModal: false,\r\n closeOnPressEscape: false,\r\n title: this.$t('message.user.logOutTitle'),\r\n message: this.$t('message.user.logOutMessage'),\r\n showCancelButton: true,\r\n confirmButtonText: this.$t('message.user.logOutConfirm'),\r\n cancelButtonText: this.$t('message.user.logOutCancel'),\r\n beforeClose: (action, instance, done) => {\r\n if (action === 'confirm') {\r\n instance.confirmButtonLoading = true;\r\n instance.confirmButtonText = this.$t('message.user.logOutExit');\r\n AccountLogout().then((res) => {\r\n done();\r\n this.$message.success('您已成功退出');\r\n this.$store.commit('clearAll');\r\n // localStorage.clear();\r\n // sessionStorage.clear();\r\n removeCookies('token');\r\n removeCookies('expires_time');\r\n removeCookies('uuid');\r\n // this.$router.replace({ path: `${settings.routePre}/login` });\r\n setTimeout(() => {\r\n this.$router.replace({ name: 'login' });\r\n instance.confirmButtonLoading = false;\r\n }, 1500);\r\n });\r\n } else {\r\n done();\r\n }\r\n },\r\n })\r\n .then(() => {\r\n // 清除缓存/token等\r\n Session.clear();\r\n // 使用 reload 时,不需要调用 resetRoute() 重置路由\r\n window.location.reload();\r\n })\r\n .catch(() => {});\r\n }, 150);\r\n } else if (path === 'user') {\r\n this.$router.push({ name: 'systemUser' });\r\n } else {\r\n this.$router.push(path);\r\n }\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.layout-navbars-breadcrumb-user {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n .el-icon-bell {\r\n color: var(--prev-bg-topBarColor);\r\n }\r\n &-link {\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n white-space: nowrap;\r\n &-photo {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 100%;\r\n }\r\n }\r\n &-icon {\r\n padding: 0 10px;\r\n cursor: pointer;\r\n color: var(--prev-bg-topBarColor);\r\n height: 50px;\r\n line-height: 50px;\r\n display: flex;\r\n align-items: center;\r\n &:hover {\r\n background: var(--prev-color-hover);\r\n i {\r\n display: inline-block;\r\n animation: logoAnimation 0.3s ease-in-out;\r\n }\r\n }\r\n }\r\n & ::v-deep .el-dropdown {\r\n color: var(--prev-bg-topBarColor);\r\n cursor: pointer;\r\n }\r\n & ::v-deep .el-badge {\r\n height: 40px;\r\n line-height: 40px;\r\n display: flex;\r\n align-items: center;\r\n }\r\n & ::v-deep .el-badge__content.is-fixed {\r\n top: 12px;\r\n }\r\n}\r\n</style>\r\n"]}]}