Commit d6833a60b211f26ed0c8c084b7bb389049cd73d5

Authored by ww
1 parent b34542b3

feat: add Enable_Oss config to manage should load script from oss server

Too many changes to show.

To preserve performance only 5 of 9 files are displayed.

... ... @@ -73,15 +73,18 @@ function generatoreVersion(cb) {
73 73 }
74 74
75 75 function copyFileUsageOssServer(cb) {
76   - // const shapesMinSrc = 'js/shapes-14-6-5.min.js'
77   - // const stenclisMinSrc = 'js/stencils.min.js'
78   - // const extensionsMinSrc = 'js/extensions.min.js'
79 76
80 77 const copyFileList = [
81 78 './src/main/webapp/js/app.min.js',
82 79 './src/main/webapp/js/shapes-14-6-5.min.js',
83 80 './src/main/webapp/js/stencils.min.js',
84 81 './src/main/webapp/js/extensions.min.js',
  82 + './src/main/webapp/js/plugin/crypto-js/crypto-js.js',
  83 + './src/main/webapp/js/plugin/ace/ace.js',
  84 + './src/main/webapp/js/plugin/ace/mode-json.js',
  85 + './src/main/webapp/js/plugin/ace/worker-json.js',
  86 + './src/main/webapp/js/plugin/video/video-js.min.css',
  87 + './src/main/webapp/js/plugin/video/video.min.js',
85 88 ]
86 89
87 90 const outPath = './build/oss'
... ...
... ... @@ -21,31 +21,36 @@
21 21 <meta name="msapplication-config" content="images/browserconfig.xml">
22 22 <meta name="mobile-web-app-capable" content="yes">
23 23 <meta name="theme-color" content="#d89000">
  24 + <!-- load configure file -->
  25 + <script src="./js/config/config.js"></script>
  26 +
24 27 <!-- crypto-js -->
25   - <!-- <script src="./js/plugin/crypto-js/crypto-js.js"></script> -->
26   - <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/crypto-js.js"></script>
27   - <!-- 持续话存储 -->
  28 + <script src="./js/plugin/crypto-js/crypto-js.js"></script>
  29 +
  30 + <!-- storage persistent -->
28 31 <script src="./js/const/persistentStorage.js"></script>
29   - <!-- 全局变量 -->
  32 + <!-- Global const -->
30 33 <script src="./js/const/const.js"></script>
31   - <!-- echarts -->
32   - <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/echarts.js"></script>
33 34
34   - <script src="./plugins/axios.min.js"></script>
  35 + <!-- Axios -->
  36 + <script src="./js/plugin/axios/axios.min.js"></script>
  37 + <script src="./js/plugin/axios/DefHttp.js"></script>
  38 + <script src="./js/api/index.js"></script>
  39 +
  40 + <!-- load script -->
  41 + <script src="./js/config/loadScript.js"></script>
  42 +
  43 + <!-- act editor -->
  44 + <!-- <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/ace.js"></script> -->
  45 +
  46 + <!-- echarts -->
  47 + <!-- <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/echarts.js"></script> -->
35 48
36 49 <!-- video.js import -->
37   - <link href="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/video-js.min.css" rel="stylesheet">
  50 + <!-- <link href="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/video-js.min.css" rel="stylesheet"> -->
38 51 <!-- <script src="https://vjs.zencdn.net/7.10.2/video.min.js"></script> -->
39   - <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/video.min.js"></script>
  52 + <!-- <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/video.min.js"></script> -->
40 53
41   - <!-- <script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script> -->
42   - <!-- <script src="./js/jquery/jquery-3.3.1.min.js"></script>-->
43   - <!-- <link rel="stylesheet" href="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/layui.min.css"
44   - integrity="sha512-iQBJbsNHXUcgEIgWThd2dr8tOdKPvICwqjPEZYY81z3eMya44A5MiAqfWSCh+Ee1YzNYkdrI982Qhwgr8LEYOQ=="
45   - crossorigin="anonymous" referrerpolicy="no-referrer" />
46   - <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/layui.min.js"
47   - integrity="sha512-EKrFvch3qTzLFQgjbcjpsRmF8T3UCtc9ojtMAu6dvvP+bV8qYUDOaQ84nwYCkSLT7lbqGoya/Kf+8fyCBE0vRg=="
48   - crossorigin="anonymous" referrerpolicy="no-referrer"></script> -->
49 54 <link rel="stylesheet" href="https://cdnjs.loli.net/ajax/libs/layui/2.6.8/css/layui.min.css"
50 55 integrity="sha512-iQBJbsNHXUcgEIgWThd2dr8tOdKPvICwqjPEZYY81z3eMya44A5MiAqfWSCh+Ee1YzNYkdrI982Qhwgr8LEYOQ=="
51 56 crossorigin="anonymous" referrerpolicy="no-referrer" />
... ... @@ -56,21 +61,6 @@
56 61 <!-- 引入修改样式 -->
57 62 <link rel="stylesheet" href="./styles/formatChange.css">
58 63
59   - <!-- 引入select.zTree及相关依赖 -->
60   - <!-- <link rel="stylesheet" href="./styles/zTreeStyle.css" type="text/css">-->
61   - <!-- <link rel="stylesheet" href="./styles/jquery.select.zTree.v1.5.css" type="text/css">-->
62   - <!-- <script type="text/javascript" src="./js/jquery.ztree.core.min.js"></script>-->
63   - <!-- <script type="text/javascript" src="./js/jquery.ztree.exhide.min.js"></script>-->
64   - <!-- <script type="text/javascript" src="./js/jquery.select.zTree.v1.5.min.js"></script>-->
65   -
66   - <!-- Axios -->
67   - <script src="./plugins/DefHttp.js"></script>
68   -
69   - <script src="./js/api/index.js"></script>
70   -
71   - <!-- act editor -->
72   - <script src="https://oss.yuntengcloud.com/iotdocs/thingskit-scada/ace.js"></script>
73   -
74 64 <script type="text/javascript">
75 65 /**
76 66 * URL Parameters and protocol description are here:
... ...
  1 +/**
  2 + * @description load script from oss server prefix
  3 + */
  4 +const OSS_Prefix = 'https://oss.yuntengcloud.com/iotdocs/thingskit-scada/'
  5 +
  6 +/**
  7 + * @description enable load script form oss server
  8 + */
  9 +const Enable_OSS = true
... ...
  1 +; (function () {
  2 + /**
  3 + * Synchronously adds scripts to the page.
  4 + */
  5 + function loadScript(src, onLoad) {
  6 + const script = document.createElement('script')
  7 + script.setAttribute('type', 'text/javascript');
  8 + script.setAttribute('defer', 'true');
  9 + script.setAttribute('src', src);
  10 + const top = document.getElementsByTagName('script')[0];
  11 +
  12 + if (onLoad != null) {
  13 + var ready = false;
  14 +
  15 + script.onload = script.onreadystatechange = function () {
  16 + if (!ready && (!this.readyState || this.readyState == 'complete')) {
  17 + ready = true;
  18 + onLoad();
  19 + }
  20 + };
  21 + }
  22 +
  23 + if (top != null) {
  24 + top.parentNode.insertBefore(script, top);
  25 + }
  26 + };
  27 +
  28 +
  29 + function loadStyleLink(href) {
  30 + const link = document.createElement('link')
  31 + link.setAttribute('href', href)
  32 + link.setAttribute('rel', 'stylesheet')
  33 + const top = document.getElementsByTagName('link')[0];
  34 + if (top != null) {
  35 + top.parentNode.insertBefore(link, top);
  36 + }
  37 + }
  38 +
  39 + let loadScriptList = [
  40 + { path: './js/plugin/echarts/echarts.js' },
  41 + { path: './js/plugin/video/video.min.js' },
  42 + { path: './js/plugin/ace/ace.js' },
  43 + ]
  44 +
  45 +
  46 + let loadStyleList = [
  47 + { path: './js/plugin/video/video-js.min.css' }
  48 + ]
  49 +
  50 + const getFileNameFromPath = (path) => {
  51 + const reg = /.*\/(.*)/g
  52 + return path.replace(reg, '$1')
  53 + }
  54 +
  55 + if (Enable_OSS) {
  56 + loadScriptList = loadScriptList.map((item) => ({ ...item, path: OSS_Prefix + getFileNameFromPath(item.path) }))
  57 + loadStyleList = loadStyleList.map((item) => ({ ...item, path: OSS_Prefix + getFileNameFromPath(item.path) }))
  58 + }
  59 +
  60 + console.log(loadScriptList)
  61 +
  62 + for (const { path } of loadStyleList) {
  63 + loadStyleLink(path)
  64 + }
  65 +
  66 + for (const { path } of loadScriptList) {
  67 + loadScript(path)
  68 + }
  69 +
  70 +})();
... ...
... ... @@ -1019,13 +1019,22 @@ App.main = function(callback, createUi)
1019 1019 else
1020 1020 {
1021 1021 mxStencilRegistry.allowEval = false;
  1022 + let loadScriptList = [
  1023 + 'js/shapes-14-6-5.min.js',
  1024 + 'js/stencils.min.js',
  1025 + 'js/extensions.min.js'
  1026 + ]
  1027 + if (Enable_OSS) {
  1028 + loadScriptList = [
  1029 + `${OSS_Prefix}/shapes-14-6-5.min.js`,
  1030 + `${OSS_Prefix}/stencils.min.js`,
  1031 + `${OSS_Prefix}/extensions.min.js`
  1032 + ]
  1033 + }
1022 1034 // const shapesMinSrc = 'js/shapes-14-6-5.min.js'
1023 1035 // const stenclisMinSrc = 'js/stencils.min.js'
1024 1036 // const extensionsMinSrc = 'js/extensions.min.js'
1025   - const shapesMinSrc = 'https://oss.yuntengcloud.com/iotdocs/thingskit-scada/shapes-14-6-5.min.js'
1026   - const stenclisMinSrc = 'https://oss.yuntengcloud.com/iotdocs/thingskit-scada/stencils.min.js'
1027   - const extensionsMinSrc = 'https://oss.yuntengcloud.com/iotdocs/thingskit-scada/extensions.min.js'
1028   - App.loadScripts([shapesMinSrc, stenclisMinSrc, extensionsMinSrc], realMain);
  1037 + App.loadScripts(loadScriptList, realMain);
1029 1038 }
1030 1039 }, function(xhr)
1031 1040 {
... ...