App.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <template>
  2. <div class="main">
  3. <!-- <Header @scroll-update="scrollUpdate"></Header> -->
  4. <el-scrollbar ref="pagescrollbar" view-style="height:100%">
  5. <router-view />
  6. <!-- <Footer></Footer> -->
  7. </el-scrollbar>
  8. </div>
  9. </template>
  10. <script>
  11. import { defineAsyncComponent } from "vue";
  12. import api from "@/api/common";
  13. export default {
  14. name: "App",
  15. data() {
  16. return {
  17. loadedScripts: [],
  18. }
  19. },
  20. components: {
  21. Header: defineAsyncComponent(() =>
  22. import("@/components/AppVue/Header.vue")
  23. ),
  24. Footer: defineAsyncComponent(() => import("@/components/AppVue/Footer.vue"))
  25. },
  26. mounted() {
  27. let that = this;
  28. window.loadScripts = this.loadScripts
  29. // document.querySelector("#app").style.transform = `scale(${this.getScale()}) translate(-50%, 0%)`
  30. // document.querySelector("#app").style.height = window.innerHeight / this.getScale() + "px"
  31. // window.onresize = () => {
  32. // document.querySelector("#app").style.transform = `scale(${this.getScale()}) translate(-50%, 0%)`
  33. // document.querySelector("#app").style.height = window.innerHeight / this.getScale() + "px"
  34. // }
  35. // this.$nextTick(() => {
  36. // this.scrollUpdate();
  37. // });
  38. // 默认登录
  39. api.login({
  40. userName: systemConfig.defaultAccount.userName,
  41. password: systemConfig.defaultAccount.password,
  42. clientId: "1",
  43. serviceId: "0",
  44. }).then((result) => {
  45. if (result.code == 200) {
  46. that.$store.commit("setUserInfo", result.content);
  47. that.$store.commit("setToken", result.message);
  48. that.$store.commit("setUserState", true);
  49. } else {
  50. that.$message({
  51. type: "error",
  52. message: result.content,
  53. });
  54. }
  55. }).catch((err) => {
  56. that.$message({
  57. type: "error",
  58. message: "服务器忙碌,请稍后重试!",
  59. });
  60. });
  61. },
  62. methods: {
  63. scrollUpdate() {
  64. let that = this;
  65. setTimeout(() => {
  66. that.$refs.pagescrollbar.update();
  67. }, 1000);
  68. },
  69. getScale() {
  70. const ww = window.innerWidth / 1920
  71. // const wh = window.innerHeight / 945
  72. // return ww < wh ? ww : wh;
  73. return ww
  74. },
  75. initScript() {
  76. let that = this;
  77. window.SkySceneryConfig = {
  78. authUrl: systemConfig.oauthServiceUrlOrigin,
  79. token: localStorage.getItem("token")
  80. };
  81. return new Promise((resolve, reject) => {
  82. const str = systemConfig.scriptMain;
  83. let strArr = str.split("/")
  84. if (that.loadedScripts.indexOf(strArr[strArr.length - 1]) == -1) {
  85. // SkyScenery.js
  86. that.loadedScripts.push(strArr[strArr.length - 1]);
  87. that.addScripts(systemConfig.scriptMain).then(function () {
  88. resolve();
  89. })
  90. } else {
  91. resolve();
  92. }
  93. })
  94. },
  95. loadScripts(scriptArr) {
  96. // 初始化 SkyScenery.js
  97. let that = this;
  98. return new Promise((resolve, reject) => {
  99. that.initScript().then(function () {
  100. let arr = []
  101. for (let i = 0; i < scriptArr.length; i++) {
  102. const str = scriptArr[i];
  103. let strArr = str.split("/")
  104. if (that.loadedScripts.indexOf(strArr[strArr.length - 1]) == -1) {
  105. let pro = that.addScripts(str);
  106. that.loadedScripts.push(strArr[strArr.length - 1]);
  107. arr.push(pro)
  108. }
  109. }
  110. Promise.all(arr).then(function () {
  111. resolve()
  112. });
  113. })
  114. })
  115. },
  116. addScripts(src) {
  117. return new Promise((resolve, reject) => {
  118. // 创建一个新的script标签
  119. var script = document.createElement("script");
  120. // 设置script标签的src属性为要引入的JavaScript文件的URL
  121. script.src = src;
  122. // 将script标签添加到页面的head部分或者其他合适的位置
  123. document.head.appendChild(script);
  124. if (script.readyState) {
  125. // IE
  126. script.onreadystatechange = function () {
  127. if (
  128. script.readyState === "loaded" ||
  129. script.readyState === "complete"
  130. ) {
  131. script.onreadystatechange = null;
  132. resolve();
  133. }
  134. };
  135. } else {
  136. // 其他浏览器
  137. script.onload = function () {
  138. resolve();
  139. };
  140. }
  141. });
  142. },
  143. }
  144. };
  145. </script>
  146. <style lang="less">
  147. body,
  148. html {
  149. width: 100vw;
  150. height: 100vh;
  151. margin: 0 0;
  152. padding: 0 0;
  153. overflow: hidden;
  154. }
  155. #app {
  156. // width: 100vw;
  157. // height: 100vw;
  158. width: 1920px;
  159. height: 100%;
  160. position: fixed;
  161. left: 50%;
  162. top: 0%;
  163. transform-origin: left top;
  164. transform: translate(-50%, 0%);
  165. }
  166. .main {
  167. width: 100%;
  168. height: 100%;
  169. margin: 0 auto;
  170. overflow: hidden;
  171. .el-scrollbar {
  172. width: 100%;
  173. // height: calc(100% - 90px);
  174. box-sizing: border-box;
  175. overflow: hidden;
  176. }
  177. }
  178. </style>