App.vue 4.8 KB

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