utils.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. export const clearToken = () => {
  2. localStorage.setItem('JWT-TOKEN', '');
  3. };
  4. export const storeToken = (token) => {
  5. localStorage.setItem('JWT-TOKEN', token);
  6. };
  7. export const getToken = () => {
  8. return localStorage.getItem('JWT-TOKEN');
  9. };
  10. /**
  11. *
  12. * @param {String} url
  13. *
  14. * create a DOM Element
  15. * <a href="url" download/>
  16. */
  17. export const downloadFile = (url, fileName, encode = true) => {
  18. const downloadLink = document.createElement('a');
  19. const body = document.documentElement || document.body;
  20. body.appendChild(downloadLink);
  21. let tempUrl = url;
  22. if (encode) {
  23. let urlArr = tempUrl.split('/');
  24. urlArr[urlArr.length - 1] = encodeURIComponent(urlArr[urlArr.length - 1]);
  25. tempUrl = urlArr.join('/');
  26. }
  27. downloadLink.href = tempUrl;
  28. downloadLink.download = fileName;
  29. downloadLink.click();
  30. body.removeChild(downloadLink);
  31. // }
  32. };
  33. window.downloadFile = downloadFile;
  34. export function IsImageFile(fileName) {
  35. return (
  36. fileName.lastIndexOf('.jpg') !== -1 ||
  37. fileName.lastIndexOf('.png') !== -1 ||
  38. fileName.lastIndexOf('.JPG') !== -1 ||
  39. fileName.lastIndexOf('.PNG') !== -1
  40. );
  41. }
  42. export function IsVedio(fileName) {
  43. return (
  44. fileName.lastIndexOf('.mp4') !== -1 || fileName.lastIndexOf('.avi') !== -1
  45. );
  46. }
  47. export function GetTokenFromUrl() {
  48. const params = GetRequest(window.location.href);
  49. if (!params['JWT-TOKEN'] || params['JWT-TOKEN'] == 'undefined') return '';
  50. return params['JWT-TOKEN'];
  51. }
  52. /**
  53. * [获取URL中的参数名及参数值的集合]
  54. * 示例URL:http://htmlJsTest/getrequest.html?uid=admin&rid=1&fid=2&name=小明
  55. * @param {[string]} urlStr [当该参数不为空的时候,则解析该url中的参数集合]
  56. * @return {[string]} [参数集合]
  57. */
  58. function GetRequest(urlStr) {
  59. if (typeof urlStr === 'undefined') {
  60. var url = decodeURI(location.search); //获取url中"?"符后的字符串
  61. } else {
  62. var url = '?' + urlStr.split('?')[1];
  63. }
  64. let theRequest = new Object();
  65. if (url.indexOf('?') != -1) {
  66. let str = url.substr(1);
  67. let strs = str.split('&');
  68. for (let i = 0; i < strs.length; i++) {
  69. theRequest[strs[i].split('=')[0]] = decodeURI(strs[i].split('=')[1]);
  70. }
  71. }
  72. return theRequest;
  73. }
  74. export function GetFileType(url) {
  75. if (!url) return;
  76. if (url.match('pid-list')) {
  77. return 18;
  78. } else if (url.match('layout-plan')) {
  79. return 19;
  80. }
  81. }
  82. export function getUser(params) {
  83. let arr = [];
  84. if (!params) {
  85. return;
  86. } else {
  87. return (arr = params
  88. .map((item) => {
  89. return item.Operator?.CName;
  90. })
  91. .join(','));
  92. }
  93. }
  94. export const UnityAction = {
  95. event: {},
  96. on(type, callback) {
  97. if (!UnityAction.event[type]) {
  98. UnityAction.event[type] = [];
  99. }
  100. UnityAction.event[type].push(callback);
  101. console.log(UnityAction.event);
  102. },
  103. off(type, callback) {
  104. if (callback) {
  105. let index = UnityAction.event[type].indexOf(callback);
  106. if (index == -1) return;
  107. UnityAction.event[type].splice(index, 1);
  108. } else {
  109. UnityAction.event[type] = [];
  110. }
  111. window[type] = null;
  112. },
  113. emit(type, e) {
  114. if (!UnityAction.event[type]) return;
  115. console.log('emit====== type:', type, '====== event:', e);
  116. UnityAction.event[type].forEach((item) => {
  117. item && item(e);
  118. });
  119. },
  120. addEventListener(type, callback) {
  121. if (window.vuplex) {
  122. UnityAction.on(type, callback);
  123. } else {
  124. window[type] = callback;
  125. }
  126. },
  127. sendMsg(type, message) {
  128. console.log(`type====${type}`);
  129. console.log('message====', message);
  130. alert(window.vuplex);
  131. if (window.vuplex) {
  132. window.vuplex.postMessage({ type, message });
  133. } else if (window[type]) {
  134. window[type](message);
  135. }
  136. },
  137. };
  138. alert(window.vuplex);
  139. if (window.vuplex) {
  140. window.vuplex.addEventListener('message', (e) => {
  141. console.log(
  142. '============================getMessageForUnity============================',
  143. );
  144. const data = JSON.parse(e.data);
  145. console.log(data);
  146. UnityAction.emit(data.type, data.message);
  147. });
  148. }
  149. export function getGlobalData(key) {
  150. let data;
  151. try {
  152. data = JSON.parse(localStorage.GLOBAL_DATA);
  153. } catch (error) {
  154. data = {};
  155. }
  156. return key ? data[key] : data;
  157. }
  158. export function setGlobalData(key, value) {
  159. let data;
  160. if (!key) return;
  161. try {
  162. data = JSON.parse(localStorage.GLOBAL_DATA);
  163. } catch (error) {
  164. data = {};
  165. }
  166. data[key] = value;
  167. localStorage.GLOBAL_DATA = JSON.stringify(data);
  168. }
  169. // 根据token缓存数据
  170. export function saveData(key, data) {
  171. let token = GetTokenFromUrl() || getToken();
  172. let cache = JSON.stringify({
  173. data,
  174. token,
  175. });
  176. localStorage.setItem(key, cache);
  177. }
  178. // 根据token获取缓存数据
  179. export function getData(key) {
  180. let token = GetTokenFromUrl() || getToken();
  181. let oldData = {};
  182. try {
  183. oldData = JSON.parse(localStorage.getItem(key)) || {};
  184. } catch (error) {}
  185. // token不一致时认为数据失效,返回null
  186. if (oldData.token != token) return null;
  187. return oldData.data;
  188. }
  189. // 清空缓存
  190. export function clearData(key) {
  191. localStorage.setItem(key, '');
  192. }