App.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <div id="app">
  3. <router-view />
  4. </div>
  5. </template>
  6. <script>
  7. export default {
  8. name: 'App',
  9. metaInfo() {
  10. return {
  11. title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
  12. titleTemplate: title => {
  13. return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
  14. },
  15. }
  16. },
  17. mounted(){
  18. this.banZoom();
  19. //根据当前浏览器宽度与额定尺寸计算transform缩放值
  20. document.getElementById('app').style.transform = `scale(${document.documentElement.clientWidth / 1920})`;
  21. //根据当前浏览器宽度与额定尺寸计算当前浏览器可观看尺寸高度
  22. document.getElementById('app').style.height = (window.innerHeight/(document.documentElement.clientWidth / 1920*100))*100+'px';
  23. //当尺寸改变后从新计算
  24. window.onresize = () => {
  25. return (() => {
  26. document.getElementById('app').style.transform = `scale(${document.documentElement.clientWidth / 1920})`;
  27. document.getElementById('app').style.height = (window.innerHeight/(document.documentElement.clientWidth / 1920*100))*100+'px';
  28. })();
  29. };
  30. },
  31. methods:{
  32. banZoom(){
  33. // 禁止通过 ctrl + +/- 和 ctrl + 滚轮 对页面进行缩放
  34. document.addEventListener('keydown', function (event) {
  35. if ((event.ctrlKey === true || event.metaKey === true) &&
  36. (event.which === 61 || event.which === 107 ||
  37. event.which === 173 || event.which === 109 ||
  38. event.which === 187 || event.which === 189)) {
  39. event.preventDefault()
  40. }
  41. }, false)
  42. // Chrome IE 360
  43. window.addEventListener('mousewheel', function (event) {
  44. if (event.ctrlKey === true || event.metaKey) {
  45. event.preventDefault()
  46. }
  47. }, {
  48. passive: false
  49. })
  50. // firefox
  51. window.addEventListener('DOMMouseScroll', function (event) {
  52. if (event.ctrlKey === true || event.metaKey) {
  53. event.preventDefault()
  54. }
  55. }, {
  56. passive: false
  57. })
  58. },
  59. }
  60. }
  61. </script>
  62. <style>
  63. html,body{
  64. margin:0;
  65. padding:0;
  66. height:100%;
  67. width:100%;
  68. overflow: hidden;
  69. }
  70. #app{
  71. transform-origin: left top;
  72. width:1920px;
  73. display: flex;
  74. flex-direction: column;
  75. flex:1;
  76. }
  77. body::-webkit-scrollbar{ display: none; }
  78. .v-modal{
  79. display: none;
  80. }
  81. .el-drawer__container,.el-dialog__wrapper,.el-message-box__wrapper{
  82. background: rgba(0,0,0,0.4);
  83. }
  84. </style>