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