From c015452ae3670fa790d73b9a8cfd9cf4c4be4fce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BE=9A=E7=A5=96=E6=9C=9B?= <573413756@qq.com> Date: Tue, 29 Aug 2023 09:22:52 +0800 Subject: [PATCH] add ota page & plc export file function --- xiuosiot-frontend/package-lock.json | 40 +- xiuosiot-frontend/package.json | 3 +- xiuosiot-frontend/src/api/terminal/ota.js | 82 ++ .../src/assets/images/ota_file.png | Bin 0 -> 306 bytes .../src/assets/images/ota_md5.png | Bin 0 -> 348 bytes .../src/assets/images/ota_time.png | Bin 0 -> 823 bytes .../assets/images/ota_verify_failed_big.png | Bin 0 -> 621 bytes .../assets/images/ota_verify_failed_small.png | Bin 0 -> 201 bytes .../src/assets/images/ota_verify_not_big.png | Bin 0 -> 780 bytes .../assets/images/ota_verify_not_small.png | Bin 0 -> 201 bytes .../assets/images/ota_verify_success_big.png | Bin 0 -> 921 bytes .../images/ota_verify_success_small.png | Bin 0 -> 215 bytes .../src/assets/images/ota_version.png | Bin 0 -> 268 bytes .../src/icons/svg/ota_arrow_up.svg | 1 + xiuosiot-frontend/src/icons/svg/ota_close.svg | 1 + .../src/icons/svg/ota_refresh.svg | 1 + xiuosiot-frontend/src/layout/index.vue | 2 +- xiuosiot-frontend/src/router/index.js | 2 +- xiuosiot-frontend/src/utils/request.js | 58 +- .../src/views/terminal/OTA/index.vue | 835 +++++++++++++++++- .../src/views/terminal/PLC/index.vue | 351 ++++++-- xiuosiot-frontend/vue.config.js | 2 +- 22 files changed, 1248 insertions(+), 130 deletions(-) create mode 100644 xiuosiot-frontend/src/api/terminal/ota.js create mode 100644 xiuosiot-frontend/src/assets/images/ota_file.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_md5.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_time.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_verify_failed_big.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_verify_failed_small.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_verify_not_big.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_verify_not_small.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_verify_success_big.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_verify_success_small.png create mode 100644 xiuosiot-frontend/src/assets/images/ota_version.png create mode 100644 xiuosiot-frontend/src/icons/svg/ota_arrow_up.svg create mode 100644 xiuosiot-frontend/src/icons/svg/ota_close.svg create mode 100644 xiuosiot-frontend/src/icons/svg/ota_refresh.svg diff --git a/xiuosiot-frontend/package-lock.json b/xiuosiot-frontend/package-lock.json index b45f6c5..601ed4f 100644 --- a/xiuosiot-frontend/package-lock.json +++ b/xiuosiot-frontend/package-lock.json @@ -10,9 +10,10 @@ "license": "MIT", "dependencies": { "axios": "0.18.1", - "core-js": "^3.6.5", + "core-js": "^3.23.4", "echarts": "^5.3.3", - "element-ui": "^2.15.8", + "element-ui": "2.15.13", + "file-saver": "^2.0.5", "html-loader": "^4.2.0", "js-cookie": "2.2.0", "markdown-loader": "^8.0.0", @@ -6028,10 +6029,9 @@ } }, "node_modules/core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "version": "3.23.4", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.23.4.tgz", + "integrity": "sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ==", "hasInstallScript": true }, "node_modules/core-js-compat": { @@ -7198,9 +7198,9 @@ "dev": true }, "node_modules/element-ui": { - "version": "2.15.10", - "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.10.tgz", - "integrity": "sha512-jmD++mU2wKXbisvx4fxOl2mHaU+HWHTAq/3Wf8x9Bwyu4GdDZPLABb+CGi3DWN6fPqdgRcd74aX39DO+YHObLw==", + "version": "2.15.13", + "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.13.tgz", + "integrity": "sha512-LJoatEYX6WV74FqXBss8Xfho9fh9rjDSzrDrTyREdGb1h1R3uRvmLh5jqp2JU137aj4/BgqA3K06RQpQBX33Bg==", "dependencies": { "async-validator": "~1.8.1", "babel-helper-vue-jsx-merge-props": "^2.0.0", @@ -8482,6 +8482,11 @@ "node": ">=4.0.0" } }, + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", @@ -25192,9 +25197,9 @@ } }, "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + "version": "3.23.4", + "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.23.4.tgz", + "integrity": "sha512-vjsKqRc1RyAJC3Ye2kYqgfdThb3zYnx9CrqoCcjMOENMtQPC7ZViBvlDxwYU/2z2NI/IPuiXw5mT4hWhddqjzQ==" }, "core-js-compat": { "version": "3.25.1", @@ -26188,9 +26193,9 @@ "dev": true }, "element-ui": { - "version": "2.15.10", - "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.10.tgz", - "integrity": "sha512-jmD++mU2wKXbisvx4fxOl2mHaU+HWHTAq/3Wf8x9Bwyu4GdDZPLABb+CGi3DWN6fPqdgRcd74aX39DO+YHObLw==", + "version": "2.15.13", + "resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.13.tgz", + "integrity": "sha512-LJoatEYX6WV74FqXBss8Xfho9fh9rjDSzrDrTyREdGb1h1R3uRvmLh5jqp2JU137aj4/BgqA3K06RQpQBX33Bg==", "requires": { "async-validator": "~1.8.1", "babel-helper-vue-jsx-merge-props": "^2.0.0", @@ -27229,6 +27234,11 @@ } } }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" + }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", diff --git a/xiuosiot-frontend/package.json b/xiuosiot-frontend/package.json index 9e05975..64beef3 100644 --- a/xiuosiot-frontend/package.json +++ b/xiuosiot-frontend/package.json @@ -15,9 +15,10 @@ }, "dependencies": { "axios": "0.18.1", - "core-js": "^3.6.5", + "core-js": "^3.23.4", "echarts": "^5.3.3", "element-ui": "2.15.13", + "file-saver": "^2.0.5", "html-loader": "^4.2.0", "js-cookie": "2.2.0", "markdown-loader": "^8.0.0", diff --git a/xiuosiot-frontend/src/api/terminal/ota.js b/xiuosiot-frontend/src/api/terminal/ota.js new file mode 100644 index 0000000..83b3cd7 --- /dev/null +++ b/xiuosiot-frontend/src/api/terminal/ota.js @@ -0,0 +1,82 @@ +import request from '@/utils/request' + +export function remove(data) { + return request({ + url: '/firmware/delete', + method: 'post', + data + }) +} + +export function upload(data) { + return request({ + url: '/firmware/upload', + method: 'post', + data + }) +} + +export function add(data) { + return request({ + url: '/firmware/add', + method: 'post', + data + }) +} + +export function verify(data) { + return request({ + url: '/firmware/verify', + method: 'post', + data + }) +} + +export function download(data) { + return request({ + url: '/firmware/download', + method: 'get', + params: data || {}, + responseType: 'blob' + }) +} + +export function getList(data) { + return request({ + url: '/firmware/getAll', + method: 'get', + params: data || {} + }) +} + +export function getByVerify(data) { + return request({ + url: '/firmware/getVerify', + method: 'get', + params: data || {} + }) +} + +export function getByName(data) { + return request({ + url: '/firmware/getByName', + method: 'get', + params: data || {} + }) +} + +export function addTask(data) { + return request({ + url: '/ota/addJob', + method: 'post', + data + }) +} + +export function getTaskList(data) { + return request({ + url: '/ota/getAll', + method: 'get', + params: data || {} + }) +} diff --git a/xiuosiot-frontend/src/assets/images/ota_file.png b/xiuosiot-frontend/src/assets/images/ota_file.png new file mode 100644 index 0000000000000000000000000000000000000000..944955e4ad11cb43e4f58fc3baa42f5115cc3dbd GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H3?x5i&EW)6jKx9jP7LeL$-D$|JOX?|T!A#h z`Tq>(zcZZw!f@_0!)YM;#Bk;l!&xBu$Z#5nJ~NyFBCsHk1j+&hL0ljSN1u|?KE?r! z5-$nz3uX{dFtB&<4@f9z=%27){e}bQFWi6d{zLicS^t1aNCab@{K*k{1FAe6vnC`W7Z$U|xP{qSA%( zZCj4J`PxeF`P0m6R$tu0GxKVGdgHp4`%`BBJO22`@0DSTo*TQ){CS~l)r>=z>TjuN d@*GXQB<%Tu|L;8GDg%&zJzf1=);T3K0RRv7iE;n{ literal 0 HcmV?d00001 diff --git a/xiuosiot-frontend/src/assets/images/ota_md5.png b/xiuosiot-frontend/src/assets/images/ota_md5.png new file mode 100644 index 0000000000000000000000000000000000000000..f27d0e4c5e668632fe0e6c6146601fd772b303b0 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^qChOk!3-o{a!Bp4a)G%xB4P*RVyV)H+oC*-u}#t*Xr6~=N$C)OHx#S`OSKFDL&Wk z#hk1f-;(HszUSWk>*|_wcbEI}Id|i;<}cj-;*Px%@kvBMR5(wSluw9NWf;bv=R0%%oO79y(9}`q+|&?}KvTkjFwYs>7(^0|NQ**r z)1QSP>Y`O{A{0>qLBTc!EuzAOXwE&8i!u6(E?h(--g7mlWJb!GbM9s4eovgiJ2>N+ z!f*M$&-eS@@BQBABXZV?;nFJ8GH;RCAaOH+dlJer{Mo>stq196dHXmw*c-Vg2o4Zj zBH6nn7f2WrP$bYTYRbSQl6^JqPp>?@e-_M-D%Sxm15lCl-c-qcg>viGolQuVU%^vO z)7=W-HG zeQ|6HM(JNHKZ7pw9f>FEVN#ykL%-(z2KI@<%_W&&42lZtfrmxeF++zga zwXp9r!shA6fn{1h@_q$SC6jJeBey1S-4wOyw;;X!xUk+@`4oxW7WNHRBQKRujQbNO zZ+8Ccnwh>jR5>Jz4`A#8`jK}BP!fmf>Ri~M_mgPXkoWt9Y+lZ* zZsjFB`FGdsgW4&~z3sT~N8Yy}*Advl-f!HUXyaoToM{B<{yf-xv238ruMspqdEkJ;MyhZg#8ez6nK%D;`H}k}z`dZZ z#z7j+*lBwB2D|#e!q+fn60&>aF#RHzD3}MJJs^IG!=&#KqfdKuu(FLtry(o?aZ|FN zgJx7{{|-4lhTI8gt)OlaKXfX}g=N9T!+5&fa*qPs4cHVgE~pfuE1*f?hKxO$^=NM8 zk9>|Zg6k-*xLe$A;H(0Tk=0*@{JtJcT%E6>{{on%N>sdtlBECu002ovPDHLkV1nb2 BjmQ81 literal 0 HcmV?d00001 diff --git a/xiuosiot-frontend/src/assets/images/ota_verify_failed_big.png b/xiuosiot-frontend/src/assets/images/ota_verify_failed_big.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3c8267c3163da241ed87179e3f6b4388a088c1 GIT binary patch literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^+91rq3?#2LH+}+AjKx9jP7LeL$-D$|UIqAsxB}__ zK;*#i-HUyKsJPd#>J&3fcbwQ>;GW(|6x4;!+HNl z3j9x$`JbxvKU3p>mgfI_{r?4q|4YpOms$O@W0OWe}m`$&anU8k^g%l|Ig0< zzqsoE(%S!P+W&8!_Ft}JeT^vI!PQRUcJcub!#HHGS$Az^;(s4%mxumd= zGdDl~-~ZUjOT4_`-X+$(Hl?q^*5`RoG6`Je9y@(bUW9h)*U3(&|IQ6d%wQ|lv)$aN zvhq<)(6l8pZ=CL3zVuDg!P(pM{g=17Nj~L`sbjILZhIbTnj_z!eRy@2R2j>G-iN-r zRl9R7^RM^b-8lP^9FxI^B6B;2b9-aT8Ew}5+?n_OP0G>AUCN*G?=D?i8o&MfnQHr! zZzZ<;Vk*d~aG#jS&JZIlmvwK0EQ6l#zsQTEZSwl{bcYa6xVHGx6^ZZ4c{U%dT5NkL+dS*&`@4Ubw)6j)>JXPU0~mM=p00i_ I>zopr0H6UdBme*a literal 0 HcmV?d00001 diff --git a/xiuosiot-frontend/src/assets/images/ota_verify_failed_small.png b/xiuosiot-frontend/src/assets/images/ota_verify_failed_small.png new file mode 100644 index 0000000000000000000000000000000000000000..cd73b894952828e1ea5cabe3e40a7b779e5838d7 GIT binary patch literal 201 zcmeAS@N?(olHy`uVBq!ia0vp^tUxTm!VDx2aB58kQjEnx?oJHr&dIz4a&!ZHLR^9L z{{S%ZV)*aF@ZT4V{9q(9!;j(D`6OYW2ELLYzhDLd1p|kKf(0AS-+%D_!_nze_5fuJ zJY5_^IIbsuusU^M!~3~Rhj*9rxje3Z&m-|^p0R;}q`?A)(@PaLvnYJhmynntE5UI0 WqVl00uk;q6UItHBKbLh*2~7aT@z&l@49(+rG@IB|@_xh(lx}N{&e*UB9`H#LAKPJBTIqBuk$uECSdHHk3 ztDkdT|6K6;*Wx$7*1r3-?%l8T?|y9nq2C+d|Jw5Y_qGqecYOGL=+p1RpMM|u{QKzV z-^V`xKK13#?eBjd|NQ&p=ileQ{(k-Y@8>@d`2YX^qQHGifgz(=666=mz{JAJ%I4$a z>lYXl92^!N(caO~+qZbh(xuBUU%z?t=B?Xz?|%6B>C->i>q`59;hN{^;uvCay7%h! zutN?4Y!5h-rmJyjbp$GJXj3X%bAvnV&93+VWhT8@_SWyjIbXH^KhMReJU_z_VLE5t zWo?%Ar-JNc*|$$xol>w?W#^SN&yuql+vciiP2Kn+CG=#NIz!vE&Zw7$9s*ZqHO<*{ z)^TF_*UNFYryM+X+JF1WTS{v_erO7+(tmg@-TvK%dkpG-U$lQY=b};jD1Y7FB}Qpe z-gR#Kmh*i3G8b!?ElczsT??P^YfXphtL=_Dmm9t&x3H~kH`Iz?w@(V$!gp*%N^QiF zO{!nb-OhV#x%(^a+pV50e69v9L6Xc~{#D-|ACpP2v{mYrGm;GO3gEGDHEapsah7o1 zkZtbz>S5`{eYbxmKG!)6*yfbx~)#U%%BIBD_=b81( zmrYa+%Z`7$wnv^6gU@g&3)uJ4a@S6E!9?{M19e_fhs-B!1+9J?$Y$sVrA j+LzE`v3P?2#@#>pcZr7^alAR614_xBu6{1-oD!M3KQf&81VX2Q2+GduTV4#5`PLfTywlV@1fBJXZa8IhRbxW9KWuh#vQPp@s#0#?fe?r l$3B>TUC90Dso911%uUnz3-YfCGyu(H@O1TaS?83{1OW50NG1RP literal 0 HcmV?d00001 diff --git a/xiuosiot-frontend/src/assets/images/ota_verify_success_big.png b/xiuosiot-frontend/src/assets/images/ota_verify_success_big.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9e666e14ff7009bef9aa282e8068af7a417f7d GIT binary patch literal 921 zcmV;K17`e*P)Px$k5EihMF0Q*0Du4hzW@N4007JY0IC2Uyayh?2Ohu&9li$~y$Kw?2_L%&AHE45 zz6l+_2_U=)9=!=3y$K+_2_L=*AH4}5y$K(_2_L-)AHE46y$K(_3Lm}+AiWD9z6&6| z3m?7;AH516z6v0|3n0A!yz`rBR9k(ImISA#V0?i~8 zeT&_IjNO5c-i4Lmi<#k%o#K?Hae-$vc2oK$L_+&?!(LP#?0`? z&+y97@yyck&D8SI)$-BV^VZt**WL8m;r8C)_TS?6-{tq?=J(|1_vGpL=j!-p*K z`t9%f?eO~U@cQra`|$Mp^Y#4n_Wbqt{Py_$`1$?#`~Lg={{8;`{{R2~J<8fg0000d zbW%=J00IOB1qMt^O-@l#Q&Uz~Sciy+jgF(FrKP9S*V)F?}qv`knQ^+*}FV*lgVUuiL?Yn zCE4uIkKLLW8KsZFfq!Ww!BBDK#Uqb*D_%3MIDskm+_Q1h#ya>0Si{wq%p( zQ7r_vV1?;ZIl8{y5W@ zA?Voyestgey*{>uGqi$e-8nYB`tP zk6g{dy9Fj+nd~>9{g&?wPM;P74~%YxulVYA!M8>0nR?H1K8!4CwmfvB7{(SwOH6ml zAhF1udR(va@`sRJ+#l>@6I&~#{G*>)#5RJ=R_QC4i9&>ZJy;t8(eimgrdZ>X9Wkbl vsTE}O;nD-YhoQeEIW^l`i%w0nywA-y6=Om4MO>ow00000NkvXXu0mjfg16J% literal 0 HcmV?d00001 diff --git a/xiuosiot-frontend/src/assets/images/ota_verify_success_small.png b/xiuosiot-frontend/src/assets/images/ota_verify_success_small.png new file mode 100644 index 0000000000000000000000000000000000000000..7a2d7df2635aaa0f91994c943d954862b4f26a96 GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp@K+MI$3?%0sIQbn&F%}28J29*~C-V}>F$nMpaRt%} z`+-7ms4Rc7ns4Vu#XFhfFk>VT<)9}TM3{Z{*oZSU)5S4_<9c!e1LHd0gsz2l3_ctGH5EJ-H!x6f-1(hH;!k4?+syT6 s@>v>89{<|coZvdAo<(65uOkb?B`zLo>&d#ufTl2by85}Sb4q9e0QlWNWdHyG literal 0 HcmV?d00001 diff --git a/xiuosiot-frontend/src/assets/images/ota_version.png b/xiuosiot-frontend/src/assets/images/ota_version.png new file mode 100644 index 0000000000000000000000000000000000000000..12bc7df09425c4e313e6fad42a52dac0111dcbcf GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^k|4~%3?x6Bmj(hU#^NA%Cx&(BWL^R}_5nU2u0Z<# z5r+Tg1^yr7`*no>_i=&WNBMsr;|G#|jtYX=KoTej76+0?fDE7r6n)CenFKUKq$J2M zn1NS7$i%_P+0DDWqQ0TEcmJ^uA45H#umI(wJzX3_G|nd{G%(l+nkbxc2x#jSXXWVP zXmptwagkBk-i6xm$4#d`d|JR5=C^{U&2!I@6CaEe8WnX9A3WXb%yw!? q6OXZhpP~=r6AOo+4#{gQsSK~VB \ No newline at end of file diff --git a/xiuosiot-frontend/src/icons/svg/ota_close.svg b/xiuosiot-frontend/src/icons/svg/ota_close.svg new file mode 100644 index 0000000..76399f1 --- /dev/null +++ b/xiuosiot-frontend/src/icons/svg/ota_close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/xiuosiot-frontend/src/icons/svg/ota_refresh.svg b/xiuosiot-frontend/src/icons/svg/ota_refresh.svg new file mode 100644 index 0000000..186c8fc --- /dev/null +++ b/xiuosiot-frontend/src/icons/svg/ota_refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/xiuosiot-frontend/src/layout/index.vue b/xiuosiot-frontend/src/layout/index.vue index 95a9f59..17f90f8 100644 --- a/xiuosiot-frontend/src/layout/index.vue +++ b/xiuosiot-frontend/src/layout/index.vue @@ -48,7 +48,7 @@ export default { } }, showBreadcrumb() { - const whiteList = ['overview', 'terminal/add', 'terminal/plc', 'terminal/stock', 'data/value', 'configuration/development', 'dashboard', 'log/accessLog', 'log/systemLog', 'rule/manage', 'rule/dataTransfer'] + const whiteList = ['overview', 'terminal/add', 'terminal/plc', 'terminal/stock', 'terminal/ota', 'data/value', 'configuration/development', 'dashboard', 'log/accessLog', 'log/systemLog', 'rule/manage', 'rule/dataTransfer'] return whiteList.every((item) => this.$route.path.indexOf(item) === -1) } }, diff --git a/xiuosiot-frontend/src/router/index.js b/xiuosiot-frontend/src/router/index.js index 31ad718..3d41bfd 100644 --- a/xiuosiot-frontend/src/router/index.js +++ b/xiuosiot-frontend/src/router/index.js @@ -219,7 +219,7 @@ export const asyncRouter = [ path: 'ota', name: 'OTA', component: () => import('@/views/terminal/OTA/index'), - meta: { title: 'OTA升级', disabled: true, permission: ['dashengda', 'hangxiao', 'qianjiangdianqi'] } + meta: { title: 'OTA升级', permission: ['dashengda', 'hangxiao', 'qianjiangdianqi'] } }, { path: 'stock', diff --git a/xiuosiot-frontend/src/utils/request.js b/xiuosiot-frontend/src/utils/request.js index f4cfcaf..a1ea20a 100644 --- a/xiuosiot-frontend/src/utils/request.js +++ b/xiuosiot-frontend/src/utils/request.js @@ -2,7 +2,7 @@ * @Author: 龚祖望 573413756@qq.com * @Date: 2022-05-16 09:16:41 * @LastEditors: 龚祖望 573413756@qq.com - * @LastEditTime: 2022-11-10 15:09:14 + * @LastEditTime: 2023-08-23 15:32:34 * @FilePath: \dashengda\src\utils\request.js * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -56,35 +56,35 @@ service.interceptors.response.use( */ response => { const res = response.data - - // if the custom code is not 20000, it is judged as an error. - if (res.code !== '200000') { - Message({ - message: res.message || 'Error', - type: 'error', - duration: 5 * 1000 - }) + if (res instanceof Blob) { + return response + } else { + if (res.code !== '200000') { + Message({ + message: res.message || 'Error', + type: 'error', + duration: 5 * 1000 + }) + } + if (res.code === '200300') {} + // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; + // if (res.code === 50008 || res.code === 50012 || res.code === 50014) { + // // to re-login + // MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { + // confirmButtonText: 'Re-Login', + // cancelButtonText: 'Cancel', + // type: 'warning' + // }).then(() => { + // store.dispatch('user/resetToken').then(() => { + // location.reload() + // }) + // }) + // } + // return Promise.reject(new Error(res.message || 'Error')) + // } else { + return res + // } } - if (res.code === '200300') { - - } - // // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; - // if (res.code === 50008 || res.code === 50012 || res.code === 50014) { - // // to re-login - // MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', { - // confirmButtonText: 'Re-Login', - // cancelButtonText: 'Cancel', - // type: 'warning' - // }).then(() => { - // store.dispatch('user/resetToken').then(() => { - // location.reload() - // }) - // }) - // } - // return Promise.reject(new Error(res.message || 'Error')) - // } else { - return res - // } }, error => { Message({ diff --git a/xiuosiot-frontend/src/views/terminal/OTA/index.vue b/xiuosiot-frontend/src/views/terminal/OTA/index.vue index a5c1833..8a66203 100644 --- a/xiuosiot-frontend/src/views/terminal/OTA/index.vue +++ b/xiuosiot-frontend/src/views/terminal/OTA/index.vue @@ -1,3 +1,836 @@ + + + diff --git a/xiuosiot-frontend/src/views/terminal/PLC/index.vue b/xiuosiot-frontend/src/views/terminal/PLC/index.vue index 57d5a95..516b236 100644 --- a/xiuosiot-frontend/src/views/terminal/PLC/index.vue +++ b/xiuosiot-frontend/src/views/terminal/PLC/index.vue @@ -6,7 +6,7 @@ style="align-items: baseline; margin-bottom: 30px" >
-

{{ abbrCorpName+'PLC管理' }}

+

{{ abbrCorpName + "PLC管理" }}

{{ date }}
@@ -26,15 +26,32 @@
-
x
+
+ x +

{{ formula.productName }}

{{ formula.brandName }}

{{ formula.protocolType }}

-

{{ '工业设备ID:' + formula.deviceId }}

-

{{ '工业设备名称:' + formula.deviceName }}

-

{{ '扫描间隔:' + formula.readPeriod + 'ms' }}

+

{{ "工业设备ID:" + formula.deviceId }}

+

{{ "工业设备名称:" + formula.deviceName }}

+

{{ "扫描间隔:" + formula.readPeriod + "ms" }}

+

+ 文件导出 +

+

+ 在线烧录 +

@@ -153,7 +170,7 @@ - {{ form.readPeriod + 'ms' }} + {{ form.readPeriod + "ms" }}
@@ -228,50 +245,82 @@ -
+

读取数据设置

- + - + - + - + - + - + - + - + @@ -288,7 +337,11 @@ - + @@ -297,30 +350,105 @@
- - - - - - - - - - - - + + + + + + + + + + + + - +
- +

添加

- +

删除

- +

清空