180 lines
4.3 KiB
Vue
180 lines
4.3 KiB
Vue
<template>
|
||
<div id="app">
|
||
<router-view class="page" />
|
||
<ChatWidget v-if="!$route.path.includes('/customerService') && !$isMobile && jurisdiction.roleKey !== 'back_admin'" />
|
||
</div>
|
||
</template>
|
||
<script >
|
||
import ChatWidget from "../src/components/ChatWidget.vue";
|
||
import { Debounce, throttle } from "@/utils/publicMethods";
|
||
import Vue from "vue";
|
||
export default {
|
||
name: "App",
|
||
|
||
components: {
|
||
ChatWidget,
|
||
},
|
||
|
||
data() {
|
||
return {
|
||
flag: false,
|
||
isMobile: false,
|
||
jurisdiction: {
|
||
roleKey: "",
|
||
},
|
||
};
|
||
},
|
||
|
||
created() {
|
||
window.addEventListener("resize", Debounce(this.updateWindowWidth, 10));
|
||
let jurisdiction = localStorage.getItem("jurisdiction");
|
||
try {
|
||
jurisdiction = jurisdiction ? JSON.parse(jurisdiction) : { roleKey: "" };
|
||
} catch (e) {
|
||
jurisdiction = { roleKey: "" };
|
||
}
|
||
this.jurisdiction = jurisdiction;
|
||
|
||
window.addEventListener("setItem", () => {
|
||
let jurisdiction = localStorage.getItem("jurisdiction");
|
||
try {
|
||
jurisdiction = jurisdiction
|
||
? JSON.parse(jurisdiction)
|
||
: { roleKey: "" };
|
||
} catch (e) {
|
||
jurisdiction = { roleKey: "" };
|
||
}
|
||
this.jurisdiction = jurisdiction;
|
||
});
|
||
},
|
||
mounted() {
|
||
let jurisdiction = localStorage.getItem("jurisdiction");
|
||
try {
|
||
jurisdiction = jurisdiction ? JSON.parse(jurisdiction) : { roleKey: "" };
|
||
} catch (e) {
|
||
jurisdiction = { roleKey: "" };
|
||
}
|
||
this.jurisdiction = jurisdiction;
|
||
|
||
window.addEventListener("setItem", () => {
|
||
let jurisdiction = localStorage.getItem("jurisdiction");
|
||
try {
|
||
jurisdiction = jurisdiction
|
||
? JSON.parse(jurisdiction)
|
||
: { roleKey: "" };
|
||
} catch (e) {
|
||
jurisdiction = { roleKey: "" };
|
||
}
|
||
this.jurisdiction = jurisdiction;
|
||
});
|
||
},
|
||
beforeDestroy() {
|
||
window.removeEventListener("resize", this.updateWindowWidth); // 移除监听器
|
||
},
|
||
methods: {
|
||
updateWindowWidth() {
|
||
console.log(
|
||
window.innerWidth ||
|
||
document.documentElement.clientWidth ||
|
||
document.body.clientWidth
|
||
);
|
||
//取到了屏幕宽度
|
||
|
||
const screenWidth =
|
||
window.innerWidth ||
|
||
document.documentElement.clientWidth ||
|
||
document.body.clientWidth;
|
||
const isNarrowScreen = screenWidth < 1280;
|
||
Vue.prototype.$isMobile = isNarrowScreen;
|
||
location.reload();
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
:root {
|
||
--background-color: #ffffff;
|
||
--text-color: #000000;
|
||
}
|
||
|
||
.dark-mode {
|
||
--background-color: #000000;
|
||
--text-color: #ffffff;
|
||
}
|
||
* {
|
||
margin: 0;
|
||
padding: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
html,
|
||
body {
|
||
//隐藏滚动条
|
||
scrollbar-width: none;
|
||
-ms-overflow-style: none;
|
||
border-right: none;
|
||
box-sizing: border-box;
|
||
overflow: hidden;
|
||
}
|
||
#app {
|
||
// font-family: Avenir, Helvetica, Arial, sans-serif;
|
||
// -webkit-font-smoothing: antialiased;
|
||
// -moz-osx-font-smoothing: grayscale;
|
||
// text-align: center;
|
||
// color: #2c3e50;
|
||
overflow-x: hidden;
|
||
|
||
// font-size: 1.1em;
|
||
/* 滚动条整体部分 */
|
||
font-size: 1rem;
|
||
::-webkit-scrollbar {
|
||
width: 5px; /* 宽度 */
|
||
height: 6px; /* 高度 */
|
||
}
|
||
|
||
/* 滚动条滑块 */
|
||
::-webkit-scrollbar-thumb {
|
||
background-color: #d2c3e9; /* 滑块颜色 */
|
||
border-radius: 20px; /* 圆角 */
|
||
}
|
||
|
||
/* 滚动条轨道 */
|
||
::-webkit-scrollbar-track {
|
||
background-color: #f0f0f0; /* 轨道颜色 */
|
||
}
|
||
|
||
/* input type="number" 时去除上下按钮样式 */
|
||
input::-webkit-outer-spin-button,
|
||
input::-webkit-inner-spin-button {
|
||
-webkit-appearance: none;
|
||
}
|
||
input[type="number"] {
|
||
-moz-appearance: textfield;
|
||
}
|
||
}
|
||
|
||
.el-message {
|
||
//提示信息的层级设置
|
||
|
||
z-index: 99999 !important;
|
||
min-width: 300px !important;
|
||
}
|
||
|
||
.dynamic-content {
|
||
|
||
:deep(p) {
|
||
text-align: justify !important;
|
||
text-justify: inter-ideograph !important;
|
||
line-height: 2 !important;
|
||
margin: 0.8em 0 !important;
|
||
/* 英文按单词换行,避免拆词;超长连续单词在必要时断行 */
|
||
white-space: normal !important;
|
||
word-break: normal !important;
|
||
overflow-wrap: break-word !important; /* 现代浏览器 */
|
||
word-wrap: break-word !important; /* 旧版兼容 */
|
||
hyphens: none;
|
||
|
||
}
|
||
}
|
||
</style>
|