App.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. <script>
  2. import {
  3. isMemo
  4. } from '@/utils/passwordMemo.js'
  5. import ScanCode from '@/mixins/ScanCode.js'
  6. import {
  7. getLatestVersion
  8. } from '@/api/common.js'
  9. import Vue from 'vue'
  10. export default {
  11. mixins: [ScanCode],
  12. onLaunch: function() {
  13. //console.log('App Launch')
  14. // 配置1秒后自动关闭启动页
  15. console.log('Vue version:~~~', Vue.version);
  16. // #ifdef APP-PLUS
  17. const apiInfo = uni.getStorageSync('apiInfo')
  18. // console.log('apiInfo:', apiInfo)
  19. if (apiInfo.protocal) {
  20. Vue.prototype.apiUrl = `${apiInfo.protocal}${apiInfo.hostname}:${apiInfo.port}/api`
  21. Vue.prototype.webviewUrl = `${apiInfo.protocal}${apiInfo.hostname}:${apiInfo.port}`
  22. }
  23. setTimeout(() => {
  24. plus.navigator.closeSplashscreen()
  25. }, 1000)
  26. let token = uni.getStorageSync('token')
  27. // 记住密码
  28. if (isMemo() && token) {
  29. console.log('redirectTo')
  30. uni.reLaunch({
  31. url: '/pages/home/home'
  32. })
  33. }
  34. getLatestVersion().then(res => {
  35. // console.log('res:', res)
  36. const {
  37. appVersion
  38. } = uni.getAppBaseInfo()
  39. if (appVersion != res.versionCode) {
  40. uni.showModal({
  41. title: `发现新版本(${res.versionCode})`,
  42. content: '更新说明:' + res.releaseNotes,
  43. confirmText: '立即更新',
  44. showCancel: false,
  45. success: (val) => {
  46. if (val.confirm) {
  47. const downloadTask = uni.downloadFile({
  48. url: `${Vue.prototype.webviewUrl}/kd-aiot/${res.fileStorePath}`,
  49. success: (data) => {
  50. if (data.statusCode === 200) {
  51. uni.saveFile({
  52. tempFilePath: data
  53. .tempFilePath,
  54. success: (saveRes) => {
  55. // uni.showToast({
  56. // title: '下载成功',
  57. // icon: 'success'
  58. // });
  59. // uni.hideLoading();
  60. // uni.showLoading({
  61. // title: "正在更新...",
  62. // mask: true,
  63. // });
  64. // 调用安装逻辑
  65. plus.runtime.install(
  66. saveRes
  67. .savedFilePath, {
  68. force: true
  69. },
  70. function() {
  71. // uni
  72. // .hideLoading();
  73. },
  74. function() {
  75. // uni
  76. // .hideLoading();
  77. uni.showToast({
  78. title: '更新失败',
  79. icon: 'error'
  80. });
  81. });
  82. }
  83. });
  84. }
  85. }
  86. });
  87. // 先显示初始的loading提示
  88. uni.showLoading({
  89. title: "正在下载安装包: 0%",
  90. mask: true,
  91. });
  92. // 记录上次显示的进度,避免频繁更新
  93. let lastProgress = 0;
  94. let loadingVisible = true;
  95. downloadTask.onProgressUpdate((ress) => {
  96. console.log('下载进度:', ress)
  97. // 只在进度有明显变化(每10%)或者达到100%时更新提示
  98. if ((ress.progress > lastProgress && ress.progress %
  99. 10 === 0) || ress.progress === 100) {
  100. // 先隐藏再显示以更新内容
  101. if (loadingVisible) {
  102. uni.hideLoading();
  103. }
  104. if (ress.progress < 100) {
  105. uni.showLoading({
  106. title: "正在下载安装包: " + (ress
  107. .progress > lastProgress ? ress.progress : lastProgress) + "%",
  108. mask: true,
  109. });
  110. loadingVisible = true;
  111. } else {
  112. loadingVisible = false;
  113. }
  114. lastProgress = ress.progress > lastProgress ? ress.progress : lastProgress;
  115. }
  116. })
  117. // 确保任务完成时隐藏loading
  118. if (downloadTask && typeof downloadTask.onStop === 'function') {
  119. downloadTask.onStop(() => {
  120. if (loadingVisible) {
  121. uni.hideLoading();
  122. loadingVisible = false;
  123. }
  124. })
  125. }
  126. if (downloadTask && typeof downloadTask.onError === 'function') {
  127. downloadTask.onError(() => {
  128. if (loadingVisible) {
  129. uni.hideLoading();
  130. loadingVisible = false;
  131. }
  132. })
  133. }
  134. }
  135. }
  136. });
  137. }
  138. }).catch(err => {
  139. console.log('err:', err)
  140. })
  141. // #endif
  142. // getLatestVersion
  143. },
  144. onShow: function() {
  145. console.log('App Show')
  146. },
  147. onHide: function() {
  148. //console.log('App Hide')
  149. }
  150. }
  151. </script>
  152. <style src="@/static/iconFont/iconfont.css"></style>
  153. <style lang="scss">
  154. @import "@/uni_modules/uview-ui/index.scss";
  155. @import '@/static/common.scss';
  156. /*每个页面公共css */
  157. /*icon-font */
  158. @font-face {
  159. font-family: 'iconfont';
  160. /* Project id 3211415 */
  161. src: url('~@/static/font/iconfont.eot?t=1648783395722');
  162. /* IE9 */
  163. src: url('~@/static/font/iconfont.eot?t=1648783395722#iefix') format('embedded-opentype'),
  164. /* IE6-IE8 */
  165. url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
  166. url('~@/static/font/iconfont.woff?t=1648783395722') format('woff'),
  167. url('~@/static/font/iconfont.ttf?t=1648783395722') format('truetype'),
  168. url('~@/static/font/iconfont.svg?t=1648783395722#iconfont') format('svg');
  169. }
  170. .uni-system-preview-image {
  171. z-index: 99999 !important;
  172. }
  173. .iconfont {
  174. font-family: 'iconfont' !important;
  175. font-size: 16px;
  176. font-style: normal;
  177. -webkit-font-smoothing: antialiased;
  178. -moz-osx-font-smoothing: grayscale;
  179. }
  180. .required-mark-new::before {
  181. content: "*";
  182. color: red;
  183. position:absolute;
  184. left:7rpx;
  185. }
  186. .footerButton {
  187. background: #fff
  188. }
  189. .icon-chanpinchuku:before {
  190. content: '\e6a1';
  191. }
  192. .icon-chanpinruku:before {
  193. content: '\e6a2';
  194. }
  195. .icon-guanbi:before {
  196. content: '\e6a0';
  197. }
  198. .icon-benyuewancheng:before {
  199. content: '\e697';
  200. }
  201. .icon-yijingfenpai:before {
  202. content: '\e698';
  203. }
  204. .icon-zhengzaichuli:before {
  205. content: '\e699';
  206. }
  207. .icon-gongzuoliangzhishushushi:before {
  208. content: '\e69a';
  209. }
  210. .icon-dangqiangaojing:before {
  211. content: '\e69b';
  212. }
  213. .icon-yizhihang_1:before {
  214. content: '\e69c';
  215. }
  216. .icon-benyuezaizhi:before {
  217. content: '\e69d';
  218. }
  219. .icon-dangqianyanshi:before {
  220. content: '\e69e';
  221. }
  222. .icon-chexiao:before {
  223. content: '\e69f';
  224. }
  225. .icon-shanchu:before {
  226. content: '\e696';
  227. }
  228. .icon-jiahao:before {
  229. content: '\e694';
  230. }
  231. .icon-jianhao:before {
  232. content: '\e695';
  233. }
  234. .icon-xiajiantou1:before {
  235. content: '\e681';
  236. }
  237. .icon-cuiban:before {
  238. content: '\e682';
  239. }
  240. .icon-shaixuan:before {
  241. content: '\e683';
  242. }
  243. .icon-youjiantou1:before {
  244. content: '\e684';
  245. }
  246. .icon-bianji:before {
  247. content: '\e685';
  248. }
  249. .icon-pifu:before {
  250. content: '\e686';
  251. }
  252. .icon-a-youjiantou1:before {
  253. content: '\e687';
  254. }
  255. .icon-tongjibaobiao:before {
  256. content: '\e688';
  257. }
  258. .icon-kuneipandian:before {
  259. content: '\e689';
  260. }
  261. .icon-zichanruku:before {
  262. content: '\e68a';
  263. }
  264. .icon-zuojiantou1:before {
  265. content: '\e68b';
  266. }
  267. .icon-shangjiantou1:before {
  268. content: '\e68c';
  269. }
  270. .icon-tuichu:before {
  271. content: '\e68d';
  272. }
  273. .icon-ditu:before {
  274. content: '\e68e';
  275. }
  276. .icon-tijiao:before {
  277. content: '\e68f';
  278. }
  279. .icon-wenjian:before {
  280. content: '\e690';
  281. }
  282. .icon-mokuai-sousuo:before {
  283. content: '\e691';
  284. }
  285. .icon-kuneitiaobo:before {
  286. content: '\e692';
  287. }
  288. .icon-zichanchuku:before {
  289. content: '\e693';
  290. }
  291. .icon-gouxuan:before {
  292. content: '\e680';
  293. }
  294. .icon-dayintiaoma:before {
  295. content: '\e67e';
  296. }
  297. .icon-saoyisao:before {
  298. content: '\e67f';
  299. }
  300. .icon-caozuo:before {
  301. content: '\e65b';
  302. }
  303. .icon-gongdanguanli:before {
  304. content: '\e65c';
  305. }
  306. .icon-shangchuanzhaopian:before {
  307. content: '\e65d';
  308. }
  309. .icon-shangjiantou:before {
  310. content: '\e65e';
  311. }
  312. .icon-daizhihangrenwu:before {
  313. content: '\e65f';
  314. }
  315. .icon-mima:before {
  316. content: '\e660';
  317. }
  318. .icon-gongzuo:before {
  319. content: '\e661';
  320. }
  321. .icon-weixiugongdan:before {
  322. content: '\e662';
  323. }
  324. .icon-shebeichuku:before {
  325. content: '\e663';
  326. }
  327. .icon-shebeikucun:before {
  328. content: '\e664';
  329. }
  330. .icon-wodegongdan:before {
  331. content: '\e665';
  332. }
  333. .icon-shebeiruku:before {
  334. content: '\e666';
  335. }
  336. .icon-shebeikucuntongji:before {
  337. content: '\e667';
  338. }
  339. .icon-xiajiantou:before {
  340. content: '\e668';
  341. }
  342. .icon-wodeyiban:before {
  343. content: '\e669';
  344. }
  345. .icon-shixiangxinzeng:before {
  346. content: '\e66a';
  347. }
  348. .icon-shouye:before {
  349. content: '\e66b';
  350. }
  351. .icon-xundianjian:before {
  352. content: '\e66c';
  353. }
  354. .icon-wodedaiban:before {
  355. content: '\e66d';
  356. }
  357. .icon-wuliaoruku:before {
  358. content: '\e66e';
  359. }
  360. .icon-pandiangongdan:before {
  361. content: '\e66f';
  362. }
  363. .icon-yichangfankui:before {
  364. content: '\e670';
  365. }
  366. .icon-zhanghao-wode:before {
  367. content: '\e671';
  368. }
  369. .icon-wodexiaoxi:before {
  370. content: '\e672';
  371. }
  372. .icon-zihangchuzhi:before {
  373. content: '\e673';
  374. }
  375. .icon-youjiantou:before {
  376. content: '\e674';
  377. }
  378. .icon-a-baoyangputong:before {
  379. content: '\e675';
  380. }
  381. .icon-xundianjianditu:before {
  382. content: '\e676';
  383. }
  384. .icon-yizhihang:before {
  385. content: '\e677';
  386. }
  387. .icon-zhuanpai:before {
  388. content: '\e678';
  389. }
  390. .icon-baogong:before {
  391. content: '\e679';
  392. }
  393. .icon-beijian:before {
  394. content: '\e67a';
  395. }
  396. .icon-zuojiantou:before {
  397. content: '\e67b';
  398. }
  399. .icon-baoxiu:before {
  400. content: '\e67c';
  401. }
  402. .icon-a-baoyangrunhua:before {
  403. content: '\e67d';
  404. }
  405. </style>