From 9a6d064918db3c4f4c5785964eb9accf793bf97f Mon Sep 17 00:00:00 2001 From: donghao Date: Fri, 14 Mar 2025 16:41:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=92=91=E6=9D=86=E7=9B=91=E6=B5=8B?= =?UTF-8?q?=E8=A7=86=E9=A2=91mock=E6=95=B0=E6=8D=AE=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mock/deviceStatus.ts | 3 +- mock/poleMonitor.ts | 14 +- mock/pools/poleMonitorData.ts | 111 +++++++++++----- src/assets/common/load_file_error.png | Bin 0 -> 40305 bytes src/assets/common/player_icon_1.png | Bin 0 -> 1117 bytes src/assets/common/player_icon_2.png | Bin 0 -> 955 bytes src/components/videoPlayer/Player.vue | 37 +++++- src/views/dashboard/PoleMonitor.scss | 14 +- src/views/dashboard/PoleMonitor.vue | 120 ++++++++++-------- .../dashboard/components/SwiperPlayer.vue | 49 +++++++ 10 files changed, 257 insertions(+), 91 deletions(-) create mode 100644 src/assets/common/load_file_error.png create mode 100644 src/assets/common/player_icon_1.png create mode 100644 src/assets/common/player_icon_2.png create mode 100644 src/views/dashboard/components/SwiperPlayer.vue diff --git a/mock/deviceStatus.ts b/mock/deviceStatus.ts index 11f3a50..efb548e 100644 --- a/mock/deviceStatus.ts +++ b/mock/deviceStatus.ts @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2025-03-07 14:57:20 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2025-03-13 14:34:44 + * @LastEditTime: 2025-03-14 15:11:04 * @FilePath: \5G-Loading-Bay-Web\mock\deviceStatus.ts * @Description: 设备状态 */ @@ -33,7 +33,6 @@ export default [ url: "/api/v1/device/device_history/", method: "post", response: req => { - const { page, pageSize } = req.body; // console.log(req); return {...fetchMockSuccessFullByOther(deviceHistoryListData)} } diff --git a/mock/poleMonitor.ts b/mock/poleMonitor.ts index e9c45c5..49e3483 100644 --- a/mock/poleMonitor.ts +++ b/mock/poleMonitor.ts @@ -2,13 +2,13 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2025-03-11 11:29:02 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2025-03-11 11:39:31 + * @LastEditTime: 2025-03-14 15:10:47 * @FilePath: \5G-Loading-Bay-Web\mock\poleMonitor.ts * @Description: 撑杆监测 */ import { MockMethod } from "vite-plugin-mock"; -import { poleMonitorListData } from "./pools/poleMonitorData"; -import { fetchCurrPageByList } from "./utils/apiMock"; +import { poleMonitorListData, fileListData } from "./pools/poleMonitorData"; +import { fetchCurrPageByList, fetchMockSuccessFullByOther } from "./utils/apiMock"; export default [ { @@ -28,5 +28,13 @@ export default [ }) }; } + }, + { + url: "/api/v1/record/record_detail_list/", + method: "post", + response: req => { + // console.log(req); + return {...fetchMockSuccessFullByOther(fileListData)} + } } ] as MockMethod[]; \ No newline at end of file diff --git a/mock/pools/poleMonitorData.ts b/mock/pools/poleMonitorData.ts index 8e4e463..c858676 100644 --- a/mock/pools/poleMonitorData.ts +++ b/mock/pools/poleMonitorData.ts @@ -2,43 +2,96 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2025-03-11 11:30:09 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2025-03-11 14:37:36 + * @LastEditTime: 2025-03-14 15:18:42 * @FilePath: \5G-Loading-Bay-Web\mock\pools\poleMonitorData.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ -import Mock from 'mockjs'; +import Mock from "mockjs"; +// const images = [ +// 'https://picsum.photos/300/200?random=1', +// 'https://picsum.photos/300/200?random=2', +// 'https://picsum.photos/300/200?random=3', +// 'https://picsum.photos/300/200?random=4', +// 'https://picsum.photos/300/200?random=5' +// ]; +const videoUrls = [ + "https://www.learningcontainer.com/wp-content/uploads/2020/05/sample-mp4-file.mp4", + "https://www.sample-videos.com/video123/mp4/1080/big_buck_bunny_1080p_100mb.mp4", + "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4", + "https://www.sample-videos.com/video123/mp4/360/big_buck_bunny_360p_5mb.mp4", + "https://media.w3.org/2010/05/video/movie_300.mp4", + "https://www.w3schools.com/html/mov_bbb.mp4", + "https://media.w3.org/2010/05/sintel/trailer.mp4", + "https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/360/Big_Buck_Bunny_360_10s_1MB.mp4", + "https://archive.org/download/Popeye_forPresident/Popeye_forPresident_512kb.mp4", + "https://archive.org/download/Sita_Sings_the_Blues/Sita_Sings_the_Blues_small.mp4", +]; +const mockListData = Mock.mock({ + // 生成 10 条数据,可以根据需要调整数量 + "data|140": [ + { + // 车号,生成随机的 4 位字母和数字组合 + train_number: /[A-Z0-9]{10}/, + // 车型,从预定义的数组中随机选择一个 + train_model: () => Mock.Random.pick(["轿车", "SUV", "客车", "货车"]), + // 车厢号,生成 1 到 10 的随机整数 + "train_carriage_number|1-10": 1, + // 告警类型,从预定义的数组中随机选择一个 + alarm_type: () => + Mock.Random.pick(["超速告警", "碰撞告警", "低电量告警"]), + // 故障类型,从预定义的数组中随机选择一个 + faultType: () => Mock.Random.pick(["撑杆弯曲", "撑杆断折"]), + // 等级,生成 1 到 3 的随机整数 + "level|1-3": 1, + // 复核,随机生成 '是' 或 '否' + is_reviewed: () => Mock.Random.pick([true, false]), + // 时间,生成过去一个月内的随机日期和时间 + created_at: () => + Mock.Random.date("yyyy-MM-dd") + " " + Mock.Random.time("HH:mm:ss"), + }, + ], +}); -// // 定义模拟数据生成规则 -const mockData = Mock.mock({ - // 生成 10 条数据,可以根据需要调整数量 - 'data|140': [ - { - // 车号,生成随机的 4 位字母和数字组合 - 'carNo': /[A-Z0-9]{4}/, - // 车型,从预定义的数组中随机选择一个 - 'carType': () => Mock.Random.pick(['轿车', 'SUV', '客车', '货车']), - // 车厢号,生成 1 到 10 的随机整数 - 'carriageNo|1-10': 1, - // 告警类型,从预定义的数组中随机选择一个 - 'warnType': () => Mock.Random.pick(['超速告警', '碰撞告警', '低电量告警']), - // 故障类型,从预定义的数组中随机选择一个 - 'faultType': () => Mock.Random.pick(['电路故障', '机械故障', '传感器故障']), - // 等级,生成 1 到 3 的随机整数 - 'level|1-3': 1, - // 复核,随机生成 '是' 或 '否' - 'review': () => Mock.Random.pick(['是', '否']), - // 时间,生成过去一个月内的随机日期和时间 - 'date': () => Mock.Random.date('yyyy-MM-dd') + ' ' + Mock.Random.time('HH:mm:ss') - } - ] +const mockFilesData = Mock.mock({ + [`list|${videoUrls.length}`]: [ + { + "id|+1": 10, + key: "@id", + name: "@animal", + video_url: function () { + // 依次取出视频链接 + return videoUrls[this.id - 10]; + }, + image_url: null, + created_at: '@datetime("yyyy-MM-dd HH:mm:ss")', + updated_at: '@datetime("yyyy-MM-dd HH:mm:ss")', + length: "@float(0.1, 10, 2, 2)", + width: "@float(0.1, 10, 2, 2)", + height: "@float(0.1, 10, 2, 2)", + weight: "@float(0.1, 1000, 1, 2)", + volume: function () { + return (this.length * this.width * this.height).toFixed(2); + }, + record: 1, + }, + ], }); -// console.log(mockData, 'mockData'); -const currentData = mockData.data; + +// console.log(mockListData, 'mockListData'); +const currentData = mockListData.data; +const currentFilesData = mockFilesData.list; + export const poleMonitorListData = { data: { list: currentData, total: currentData.length, page: 1, - pageSize: 10 - } + pageSize: 10, + }, +}; + +export const fileListData = { + data: { + data: currentFilesData + }, }; diff --git a/src/assets/common/load_file_error.png b/src/assets/common/load_file_error.png new file mode 100644 index 0000000000000000000000000000000000000000..2f26e2744cf08d0d337d71ae1aad5bd01837d358 GIT binary patch literal 40305 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%0Aw?Y1xfxgm+39z-`!1K4}`p+5w z`J>mV-Ydu}%N0<2O7{mqxIAuZJMcY;7na5K!K%^BI<$!2ARoztcUzq<8Lz`hyv=x- zGMX&YEa?@Duk%XuI$IA8<(CJ<6P>qu>y>Nf+Ra+lD}-~|p4yD4sxt$uk1p!h+sOod zqEjJG_nT{sBiy{?KCK|*8t%O~T?DnV^Lcv4{bn25*N}akkKle$bkZ4L=k)4m)4*9X zQMa=}=71~lK=m`gdhz<3!S)bs!9Qcofux0g+2Y@RasD)$`5=x8rz3B}8Pj6lZ3TJ( zXY?(mG1#Cx>Ue@UVK&JgK3x(0GK>f2*ZE_pU+b({IU&Fd()S|yF(&+Dw2t(huB;mm zeC>1rGcn+>pLpLu+}JMqA@w60qE1F(JdxdLGP#k)f3>USm~-#X9X<`~j_}M33=!%4 zc)jw2i*DVn8$#-@XMlvDKN4s-@D5&Kd*|?uEVgOS`nI7Ddt8S;Kjv_IN2LDF(Oc`` zIO_%gwb^huy#lMTslXY~E0J-|_tssx<2#fOV|~Eyl!>>i2kWul(8++fkRSS+NBmvE zYejh7sn-X!@w{Rk^3@S|JE5G*$SBS+u>a7Vd%C`C#*rXgB$MYKfa!JytRHU!u5-N2 z%mCBmbJu^}>y>cQHOo)^J1ziWT`TY(9Igtwb+#lO1Uaa!ubT;a_dIl4VAvm6#*OGB zGr+nc8RvUwtC=JZ;U>OF52WYLLeNhTd)Q)K`g*3F>;X|$-*3hZ*eIj0h4h7C@KL9q z1uv)fO)m@Eh5ah>-1dIWcK3YdJ{;Mak+KIJ&9EI!C4I0H>=Wq$+rm`d=El)13wPfXW9RvUT>iB|JH9f?*U&LaORAdcWBc_KhH>p(FQvSX$QQ`RQ7Q)3v4bbhu``Yiqn77Yp&wU(#kA zbVW4R1e>$jwt(a#;f$Nr%tKhJB)+t~5+u*5Z!;u*(>{!3c1@-7UbnoQXydHf38{M0 z55#@DbOVGR(~x$6h`WR31Kz`!6};;D*fwmG~n5q)e>48)5vL zwq1EEE>GP#GyTdpe`==N@7~-AON4c?noEm0QN|O?ddNg)C>36FPQl9Oc3$E143u}e zj$D?7tRhTYFc_8ZAQE2#OuxCmZ=VM)#=%EcHsfTTxt{v1BhQ3~j=6m32qP={r8aJL zBKXjEJw0EL+RxFWWjwN+<&%7s_=JL8*8QZ7nU>dCvO&;8MQWlS>?td9h)i=t=d_!1qMj!M?_8;kc)ZYh*wTwpe zXJCI%w&Qj+y#+kkUG*?1wLg1YVNVSEtV3PTQZIwBt&+w`%PS>mt zc6R0`A26XV00(EOL(ZnCj_lO*$VtwN4+aB~{XxM_8g~g7`-j9m$;Kre$#R)#>j6;r z2NU%p1B!=aTWKfeH_7Vdm;UXc&ST;=_X~-$)Q0$C9ZG%W8A)nW(vjpf51<~{SCYI* zFEd!+{kg15zP=vEzunl___^=+oF}+{C6TSd!NsJYS+{>e${>N-;f@QPa~aheOyQ}H z{&vmJx*2mg+=xu?nm5>{s;CdQ^W`2tU6TUXINZjU&o~9}H3`Azgp=CSk$B~Lo*kGb z3(vT@Or8@B)2k|yh3WCk<7Nw-W~hwlxNR4K!?*D~(Yd7S@g<%;4#;F-ep#Qxp>aAL z%~P9oBXLn3>zw{bhk51*Zr{T_3xx7`I_sJ2?RIiB!ol*d2R(Jd{us9>JnRS5p3bRE z;^I1PFXiOEl0M6naHcw`CvRKG_?9|hyL&(J`lovCL+30L>&4@li2<7Ylks_<^z>(g zKe+u#_ct45)jq^F=Rei~`-&egsXyDt+bhZI{7cw|^~`ce+Qci<`UUh zBpZ*1iGJFky9h#0TIQ_)>2MhQzQ#vSEI~J#+g=ajzddfPzv0^to|gS;N`2*m0vV5z+{W&#eJitzQ88|ni#c4E`GYt+9Tu$vQ?g0(?&JMO)2uo6p zQ=gaW9W4$%Ta=0Wv*DRPtrxl`XWR_03uut;zs0+AN*AyVV132_Lv#d=7({7u2zJ#x zwOtmqk=aGcuXVvVi1r%Vs6D|38sbDykX8GJ1nHw&0miRokO5cgq6tcT75h^rM|C5Z z=$G4(!QoK8cD;@Nz0W@M=@TzCLs?ct`r4oW%z>)ccE3|o+D~93ID>RBD(f9k0xXmL zq~S{Vv~hiUx?zemafb2d8@TT7*}PrP`YCC>MyJG!dSG;j)h8 zS6s*TftMOC!a?OY%??(;(UbNeU91PWHJyxi%|k&Sa(_tU&iE?Wj(3)u_}I*+>g6-Q zx{bWBE>v6XHzi)R%q3gt+16=jJZ`tC#OO3kr&Yov^lA{*^O#;C=n76_^=0BlTQ;YtT2NK#=Mw zOQf1nr)zZ`_v7+drhv=c5%JKvq(nQcq4MJdT(N)DoWLU?;41Z%JZJn1`o0|b7CG~< zMW3YcP|^bgok_aBb-pIabW=EL`H61Zl}kKGyVcM2x$Z4D#PYVLt#vEf`w3*DKriRL zi9cPZZJ&IIap^T$k|oL`%C#THazRh_E%90Oos4hKQ?rarGxv!msO!V`<8t<;qWy(m zHR;w7iN4QN#Td){F!6jnjQ??GG~9Lg*3andji51df8XysG2ec&x)p>{xlUg<0SiuP z=*FNsmQKm_?Vyx|8?Uo=`5@KK!b*i6)@^JQ`j`1FwbL+ZpQg-T9Y!_zwx+wS(SCa1 za(EeGpVoH!C|%X+gYHWFB)v|y2SD;m32Fb%`_Z-_^wE6zYoBe5@D5)t+va>KBE|Nb z+a~qfiXC;Za=c&T+?T%yv~? z7Ww*oKfx=zhl3%c=y=ToBkn^5oVBB%FE`$qQ)(mmW=ErPdOoa0vtovm=xw-X$Lzq4 z6Mc_c@=vt=2J(g*P-$a3@k4U-GXAAZ;yf%pr7rbeoGg!cOZpG#dQbJq25+F{^|9ds z5lpaMDHyoEaTC4XC%1 zGJQ1!OUa+~OHH3`(}P^6TDML3x3m8@39jYwKQ{K#kAB^uGtdB&0~{_@TlZhQV`I>F z@2qlQkm8O)wCxr84_&J3D@Vh=>)Ted?68e(He`hMID1ktdQ%#43C}B;cwNJaH)Tyn=daSek^Yzj-lX-b>nyvGL3i-3;VFH9BrQU3o~Jo&Es!}Wk4(F zQ|d>ym3_3X^f}2cWf+O&bfa9VZ{pYMN$W@Jv5AI;njD;+hyJoI`9RW3F0a?Sq{}iT zf6jd>w|y`AI6(46DXWxSdNR|h^EAnyrLJ=uX@8Zt6F;FX>Ws%+iEfc5j~kk-u`gY_ zqwtYyY5ey(4T48pHxCD*K%M7s>rFg0H zmIFCPuhXxZM)#qiq@K3;Y|QU0dmWD9UnM)%VM?eZYcUwS1*I9&AvAE$TY6 zU70=|sePH3T))H6KG#k1<5ev0DL!(%au_ElWtx%)4oD?kHv5L}>-+RuW>Q;o*W8Fj*Y?Tr70&Ve)E`!ch*8P8ib?umC@I?(O+4>*Q;{;r6xp%1_G zV>>!)jd=-143=lzk#Gz@Nc+ITQlEan?Cz-0@&wy*;VoA~I4 z{iF@ZFqZRZa@#p&Q zirG2!%XB7iu}))uWgjV9E8uo`GkZ_sWdpRnCfTpnznApH{4y_|4_vb1u`77w>&xZc zw=>Z<0Fv*H27cgje-2O*AM?~I;+Hzd^BMZ?Qokm5Y$ISVCg z{N=WZc)|0~Oi%Xf3Lg7vOQj1^Us=8KKej8=aCQv5l;}Pa;~&|3>ifQG_m+Yi!M2wv zKlb*shoNWo$P6k9RY+J+0>z6ADhc$Wv3YMR@gSbB z;*3V(4m@XkZnAGCaa~TEt@Par$SgDA?OH!}1OHLK^v^~kA5He!whR;eS=(cC$bI#h z82@vl>f(2O_59bj==}$!MrB@{V;@B>Hr*ywByq(P_qTv$0CU zn`p%PS|*Ty=&XgMVvV-|j;V6$oLo;ukhFoN*#vtp-?WjA*ECyEv0kDq1!Po zq9YwZw`V-Ejl@5L(VB4ZfUBxzy)e&`mg9kNPM{g}5YGF;d8E9u-)6i|;?d#n5>Mr} za->3SPGZrO0=4E zx6|XlYT1kb_g5bH3|t0Wc7P-J>Hl)})~eUq-)eWFFa%^&Kg)+ZO;}II(QptqKYd$2 z$kR4JaEaQsfDZ_Iqj%J{LD_j98ribF3@B8_{Q3?wgZVO+%gaLi`f}ns>jQ}=I#Ru+ z!;pCJ#JH`j%a>#zx1cf{b(~4xBm?70JX_29llqr3@saDboRY`f&V8pJDYrZ(JtkYY z{)$&=Pv)bP)k&OMH;#AGkK20ff|O0_EwfLsyQItQqrL+^Ntb<6+l2Y!wpw2@JC}Uv zg@@Lq$3q+IM)axcIq~4_B6U>D_QSYgAK~$m$q>eHlTWj3b-&oz@xMA6o%_fC$IVZ` zWx^E&ID&uoJ4-kB2ZNhsS+~;(X9MU@cuJ+)fmmM|oE>b)ibA=^Q^!H&NON1b5?}rz zm4)+;&vvL^6Mkw$p|jI+nU9)k}PBa&#f9)_>BC@5=+1+6;$vezGPUXn9h)xkq@ZEa55JzUg6K zI+9dfp>Ij*Aho=$JZS7`I?=^LmD>yaEn{gCg6O|2cZ*H95FXP5;c zWs}#uZ>9Tse#$p;lI+4a6h9?Da(qUk_l2Cuhv}R34X|?AmBMJ!f7DyFe|YUn*j4f_ zWz@2i`e|89e#0_)yx~zE!JoV-Lb@8;Zpc9U(f?ha=qrhrCvp@E8itPA4Jxu$@VV^*QZ{LXq^pN%zD%=C0S>Myvy}KE0>HM;d&q(}I z%I{am{^3p!)mg0T2%H3+e4m5bbMWhQ(q57468bQo72+H_oQW3c(=SJ@b-Gk^=rr+| z_G5f|$#eeP5%WcDMsZ&%$D?83mQ3>QT-x``_AZfj)$?}9^d)qeUx#3Y$Vt3ny8#HB zaUX6oP`D)1s1GCMOFC*vKMGqGEN7>a;~}5$yd{}ZpKi9-2}STWAphMU+ko#YWtKeU zdR32M&}ZzyXNkFfF>4Cr$&W)C>%xvvhamj0-^hR7#>=U73(9}CJN|n(^k*(CeB$LV zH(ShMH-{Y!a0Ksohixq#UOj{}>%kziQ$8uEBbEV89J1pXZb=X~u>7cZdthz9Eb_o! zGl+4B`d4y^mg%e$4B=;ygu4@#A=EF?bI@R~1ipQw+tt_QJ_D4E$AxQ4v;$9ZN#x`g z^+E@-jCn{|S=t<7xm>^aaHpctBwx+f7_ZMD2uG)zmnZ#&qrj16zD2!CyXHLPIudP> zuFuMFuW>x6H2#!*7H~H}uH!HUGFxD_BJ5WJ*{&u0+v7$b5B7=v2n{-kej2#nBHe6r zOz1260|vC=s54GJ?-POzXHzu>fcp;wA2i-XnY4=-w=C~?jCYyC^KRUBJLBK9dgm9; z%s!66Z3H_AJ09Q|{-5_P9mECrVO9VKC3kL8fJ#A4K^Q}Ai);JPo;TwC5;iD`>h!e& zhlA*6S)4GQn6a6T$3;tEo(Y-nu$~g*oZH0y6L?|TZKTl$zwym7@{#am{Rd&c$<4xp z8t+=Cgr_fblg}5Oq(=(WHqFvi)RB;p_0G#1B{zWHybpsZ+9lbH`+8ZDY^<}$FEF12 zJ7YR#-SI2ylAK9zL}TD^v+U6>Q4UWd-O%x}&)|97jL-Za>DBk?1fB==c8-o0F#4?W zONlS%C&{jTC;5M}d5%BHQbpehHVO95gITy1b(x-O{-XMc@~C&lp>##|+jRWX%`)hm z{^l>Ke~ou1;Hm{U0$Q^6&-d>fj8<_q?l-Hw0}lLyo@0Mb(B(UhoXx3vH^9QCtix4_ z;L&Ht7^LT`Xrnu{iO(I0GI`FBwd3q8Y>*QlOt;OO-Qk?&@v~FT1Gi(oEBD@Pzb1#r z<0r|ytW39#zhimgFV#!=_~t>>3ab>I_@x=!`;Wo^0nFS0QyV{Q-6t1Ra}x*g+@ z_LF>Q{F%<!t#(H+H59$d!R!Y%y;ZK*G*6Yf`+rT(lP(_*?(XAJTANaf4SgB};G zTj_67mrWpjs^mX4+lO%`q3A~J6*3Z(bi+)bC0vl8A@$s z>hInSnI9?}Bs`oMNcwbi`(n(GyQLoZ0l5N6dAh_?Nqz!wz0dsnPOgMA^^a`@uTY>T zWrLtU#>4!VWbBHzj6?G4Gs}8k=s3mFXx0OQuseR3?5C)nN73H!K%zS;?vIuFmS zK|iaDHdi`{ekFV$-l-4vOYOr=IVE?a&kDJj{~_Cwb?@*iytHK9SU>v@Ub_D=xXSRf z1UQ19efP(E2X^0br>QC@x#5(4AlDr}_q8}PP(9a>LijqrSHNw8|b1xx0d+g-bxr8WA#W3*D)`QgYKHPnEwLk z{S7+GC;7c9{6K1j8N2krC_AOp^|)Z4T#h;)Ss!|Y0daR4_+;8~FR3tz$$rsJ>VaLV zko!NQ5cm>5^!Ugi3+fTC2y!Jqi#iNt()KmJ#H3x4mmedVkeW)R!%!bL>jZ=NNiFmZK`WL+3QO|6O!?+ON6ze>PITr`nAIS#lFyD71hDW|pAtoE{&lv>E8}CReeQSAq%t$iDM{i&dZ(=-;F0gmBa@40lq&Q^!Pn696B{W6e%2hMmj ztlI6iQ)nx+@!7CQhwBfyMUc+SZR0E)oQ0j+42NOKWUX%}mXM(nZXuXz+#bt*d{@oj z282ak0id?jkPAV|q@=6^(Vt`;A|He&^3%4?nO%9{jdA8nsL%%cQYoFc13wubL4T2> zIJjk9j@!#-Y$zLw3FS{t>a>w4WlmFSukOpxa+7F8LXuoX|j|2C*B|i z9?cgN@cD;qeTI_J6h2v#N6IhCO|Vs&-v)Wq-CVidAv+u6Wo;TOdScJIt3HF;SW5C} zzup+xjox_e)K~x2@-JRJ9q^0>IEHurua(1{QRmQ_U2Aus9m_{(bU#!1vH=XipARtz zVIV*+jaiGck*|Z$COJmi^=)Gxzc)3^wh!6?m&QTuIN*32dp>B7ivlmM9mjtEYZ&Vi z3^NCfw1o_^50?{e;>GbqgSu1iYeVoiwZS)x@@l-yx7#NQN3By3dM2hh0C+v;I+SvP zmeJ|At@My^`*y>OcPsFE{;0l*W?5EQJ`i@5wDn_2+=h-?)}$97_edX-54OWF$Rcsc zc8OQzb0MhZeS+@^InuFRlfCW>{L`RqNOsQ00*|Y<7(-C-5vr5h8Fjtn<8lya&vx6x z(W-g!f&V^x=ERBmZGKe&pp3_Od?Fk5yG-QJ(K#VE+r z&UlmjC|Lp>NuTkwgC3mT9j?@l>m~ogKsV{z%P4tH=ZU{uCZP*pK5|*uFNOu%MZciF z*uJIgma^kKgD?63`%1?1z|zDr2)4EE?FXp~fZPv#(B=ez%Z4=@mBvicMK(SwbLM~j z=IrCobYNq+W&#|;yFZSBZf*TGyI~LbyJTPoVH276TL=arvcwf)hxfz$(n4n91GZqX zJ-BlJj$GK^>VSBq3i9oeLVte1RX#+@oBX`T$AK{ITXiBn4e}-dx7F?B5+dGB46?>O zy$-j@=_LOBLz?=P9QmMe+%pV%D(N8|2aq11RZE+JANVxznD-H9Q`|oYR>cRJJ;)m- z`eEWGTDmN+1J%ENon%ikGXL3Lo}iWE2E#W_65n2jxnA|c(6?d#;thM&uh)Gi+9~eI zc5?f1du}WDhV|#Mq+TLjF%Hrg7zo~yjR?nZG+L^5FMRULKi53%`)rfonhS6Y6zJgM z#*tQMe83ebUl_SZ8N9Q%J6k{~`rG(|GS1>+5DbHr+Z-7Lt>Sxy0Vnlqi$@gFq75?q zHtg9Du5q|KDwm7Q1NVvii0gL9irSsYLd&*{gUjkP!Rb(!M?66vnjhU?zQd?_%<<&( zhGB5A9f#`Cp^}Yc-6%e8LQg|qV@ZRB=Jsq0_RmN&>agyIZmVWIT84iAu`mBi`!B&Y2-j?Y zW1v9S!Hf>Id9#Qf9@=u3q7H*$xYaJ?90TN!J767`Ief#g{fp5Y`5rCI$+p_BT##(AgQQRAtyXKP z-|Iex8QV1(*ch()0LMUquG+YCJ8tVAwAm(Z+U#tFXQ13n4(TxuYLPZ@{azREflwRz zFqZpBR@|@^dkP@;gLs49Z-CRXmi=rb_+k8xmfI7OJjs2G#JA%S2ahjm2U!vw_ab{} z$6$o4yu~&Oyh@%VF4mVT3-of?lAahyo@`!W-8#NJUe=wIv5o%?qdszbwbX|aqZPv* zn=RbTU_R1bP`jpY2HrE`I>y%uOX8@T`1zj1XVhtsll7u`9u;ni@HGTJwd^gi4>uHc zEcvdM9TbcN&CIUMv$JoyDJT7y%h+CikGTWV50ZVoEupf*wLx|E&V`xNpL>lhMVsKd z32+P_$3XYk#>VZfs@gp^!yZq7a?^Gs9N7UUdVCHL6F{8~~CY140^^$*15aq2o84xo)DZaD5?%GRV z>Q~}h28WtHN=f)Y$rLyCQ_$9YmF{JyNp9!^iF!07OO}-k(mq)qkU@zy@!Q!lwh2Z? z*e}qFb{gbJm^^9+>2;SVCYCE)4pXpB6rp=nrTYN%J)(!I@?G*2%;`wZ^JskFj zPmG_MJ^j*`UK=+LwhGr>fRph1A6mM3+^udOgQ@+%ceG1LDL5Y=d9=ROk_D4IW4XA(NeT>6ShrP=xa>=`hF`K0WJgrrSfXvFPXIY_-dQCX*@G zfeWDAFH||Yn&$w~kJ@$qov&fPV*hsDHt*byazvel?09>A=k->r*K}*Vhkk-z++Vx2 zt5cm@Ix~0ndJAj}*L8qn_}x#O-!s29cW~GqA8NbjcX*!*ZPgOj03hqz{LZHIuTUS` z1srnnqa(M;`ip^6!XqbD4!%^z1C@D=16Me9Tg|L|PVH#Wno*ER$*Xa<tkr zNB`DyZn_B9IouEdj^RC@`qa$q^1(f$u6b5vO_yhEqXwnFb#_C?#tH7CgtakfdWG&z)bmce5ZeWvHz@)tMi za%g-h+x0r>LDr|Xgc&BjN^(j5`8>(tzPY73Ko*c=8_sOP=F<>Bt(0S_y9004L!OKWPs^f8`Lm*q(O7&45;T0-oBpRav`}kIdQ=9&sbrx07)|wj)S5 za~}1xV9}$=zdQLVjcy7M4)WeA{Cr?LKI3P@X1uA{wiO;!m9(0k645eBXg54t6=O%k zlM{R=Pk!3m{YpH`Kn3yUN7`_=$~G*&yURxJQ*4F)eDfmeEATN4x}cjTZI=QKqwZWe>!-$7-5$Bl%Ch-( zX;)sh)%=w<|1+Bg-^uw?G=rQY!SgU?u4Q{koC%+2M$)zIWFrF`m(aD&Uc7zo$s0YW zN%*V^a1uU+!EV{Yo&gMQ!OfYyl*7{Z9+vjbbe0dfKoRc-$Ta-GLj12PeXv zDE|U=ext$f1=ZKXX|F2KBH-uB0#8hX`^R>`drYF8L+|gX%C@mCv~x$gyUHxda^|hj zFXAMf5brJb;&`OzbWxI9tj*I4>Kstgnh!SF4~vQmIJ28btS4z3!7u1NDdsWiBiU#e z*8j0i*dWs>(*qG21#Mn?4k6)#QIgZY=pRBk@yE7j8Mk6X7=re(YPfN6*r}enaAfw( zXH!s<@L3z+Bv7zh0oXel^$(aHz3iU`YNy>!j}Ph1FYkfiBO2rzWT9Q`*Ou)d?91@8 zYVGiXHH0tr`V5lm0yBw5I5*;P1YX9uWnEyQ(@tL}i9BgH&$1AGyVA=O`HXv3AvQM{ywA&IRW4hY_+`Gyzu9mY=-!DOP}s!N z7=qLvs4pJXF>lYwstk&Z`W7|v9qCq`9o@$(MD;xwq`Fb!~+WueWh1=;;;# zueMVm6$PCt=bvQ?kA|@Bg$<>g+Bc}}7#Fvl$}X+J@TpdJcJT{tetLe};Ch8=fZHZ~ z>Vn-n9&8+3A5;r1JK9HOVd+Ch*GBA*#Ih#PZFEM|fY%?PmQ-f@WPB}o1n_%i5b%b2 zoAIFVbH8@eTLMM7yfj%qLn~NU=IGVpYR;?CM+n)O+^d|#(=f_N?HY9xv#d>U<@_5sq1B z?v0A@(Cbj}INU^b=A~?FsP&b1n~O4LZzrIgd#%Nm9WSkq28(yzvT$J<&@LaQ0d9xk zkw+Hyt@nESdaaqgxbE3i;qV;Bfy1H02QdrsW&4!5$z2@&qC@;LNBBAk2wW1lo`;xx z4>a!8gMYk$gA{)eM28XCo&s-thAeIbB}lv_ob<>7GGZ_l^p8Ij+Az;_*F_$5-0n0|TUE@Ve!5 z$(NJ4qR--v7stcVh0btx`B~3`rD;IhIhY2xs|7~=^?W_!4(0Iy+eCxTY`_Ddj+a{u z{yO1>$m@`^P=1~(`cy`9B>Bo@{Ez67CrnYi_J7$ITJ?|p!Ekk$;0(abzhn9FwEnUkePvjE~v0bZW zvnL%w--v_u>o8nVJ9Wd=@8wzl-L#r+CdtY-hvc($oZTT^x96a=v6+4%zf$k?R>c?w zt&Uw9SDmHt1}xux0M46fFniiz8sM%Gps{uFBJ5fj!>-E0F54Q+8f$iq$27*>=Z_5d z0q@$ou@pDY6|$Jh6oBhmJ|i*w2197y4ryG(DcZ|^BmRJaD35_=M0Wy1Rx`q+1%s3h z(6#|bb_9>dWrbyVbf%fwd;P?Erzc+qNuNnx<~!aZ0LiRS=z48wNUuJzY8mRsG0 zOY;>h?b$P3W?m~W4RF^uaNt|D>$^KGGh;`+S=$=U+Hrdp*K00r(14t2we>S^VQJ)_ z*YZXFra-=t9`3Blb}HD2;Aj1vKS_h%px~m2N4I63eBf!N8yfM=i55T8){r$ZU;OOb z2=cFEv=p7_-%ZNoIc zUB^Jd@3Bj;dv68p)zQW-J2rD|41)BqK5j_O8rpfv0)T&|%D*lI{#mlxYf9h((2$pL ze8&^QL#Cs`t5@poZhTcsJ^~?LaT_*#0!hAVl)bVhUS(taycW%5V;KT2S1x$X%UpL? z)~ecrv1?$L+%G{^-L?L3ZGGLWEzPX14sO5w_BEKobqUh|cLRfajOG0KxtrTJwFe!T z9S=5UXL`NXXf&9spwq^H&>0)(;GN!?=8Za0o-!zRx6sHZ@Ke^u%g*pVW&VtxZx?Wm z!ZUfCO^(v*NrXy0izl)^=1bK{9`G77uXTD8VWU4-ud2@K*!G8m(RjVnn;CQluy*MZ ztQ|Q5gJ~9a z@u%zQw>D=bE?V`Ok$b(<-+6_Y>G{{VxS{xX0Y$l1t361M%M58m2uy?46g>R@1|)WEPwEav00000NkvXXu0mjf DC8_)e literal 0 HcmV?d00001 diff --git a/src/assets/common/player_icon_1.png b/src/assets/common/player_icon_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a453f2fd67b5962312807fa905a16a7126ff4044 GIT binary patch literal 1117 zcmV-j1fu(iP)(Go@|iJB+DQiWwH|4Iv+_83u%BHH_0}HdY1UN zkyIjdTxORnkEB2sV`y?*W>whjO03Qo$o56N+=FiDPcy>414)6eC2S*mK;Sb!8b?_eQ>2!RBs=GPY_-+2d%EK4Gk{VEn)ka%FPs9|M(u%L1Ux~y;kK(`D%2G~*zenE z41F2yqnPzRteXP#B@TT9tpRtZhrB-UjDV_Q1{AXMZ5Mk#ej+9sMnMf!d08l=f8e$_ zdOUYv^9yf9Ol)}hdc?zdgATW#i1!~pQ#p&3qx;gKSqy?BR+ zsqyWQ0F)yh>Wcq+v8U0u02A(>_F)76a}=;skKuDB$*ChN42T z5Qe*uSOFXssa@dqL19`L?t&~pEcx$;lNQ`QD2RqbQ*uEEL=piDvG`o=lOk0DL_w+q zxP0*}rY1+Al1{1YJBSzu-N(8xJ2OVkUxNZF?t(0Ug@jR@wjIxOcR>-ByO3A`INV<@ z7I3P!2a2)W1z7+st1=qVd$NZdzl$rE&LJW!cj1r#JbFs+%G?fUe;?pHpPI~3uHQt2 zl;x#2ogS4o$&|Dq8&QV4%$j_{OMqo4oDb;s zxT~D!j~|XBcl81^Qwmf|C|vSVF8>mz&)b8dCyX)i;L#hgPv>GF&|IM-fGHHSxwR9Q z;|`{muZ<=~co^A4YrqRH`@BAA)EAgT>rmGhzuDndh=O&x`*laUgG`U}%8*13lmw)& z>FM$67t@>ybAD@ug02x-Mf#@7*U0(newEsbq!57W4-FxK;{_gAu$RdN8r*3wltf4p zEP{n5mdb`66s`V279KsT7~yNlYTs2t(QseH3oq3#AWnq6VPZ|_rzGOuFyV$SCNJ#m zEIJ%FkyM1;l~%gQDoV$r+%{*x?nv<)B(Kb9X4@Q(;g!gigFe^8qI2VKnSVj1Wn5U8bDoBLD$p` z8^VSJscZ9$Cuqi*&&cy(XMWOC;u(7~?;qPUwx5BTnuVr;g5aDx^sz?fc($x$nUJxm zH5!c*6hLkQki$*-=#sU`T(TyzF(w<39f(g7guw*JahL3f>t|P78&xGo$5qbAx~K|t zGfqK{tL$^xuaxS1kL))umuDy%`q3tr|3Fm`_mZ`f{YU1f0GHM72=Y-@B^X&J>(e5W z02OwA3PVN_QVU>!^HUfyh>%JEuYG+%^_`!>$XX=AI4R>Lq+=K6I4^J@?>Uh~0l0k3 zY{EP?>E3%unPQuO*Y3|?E}{vv;`)Q68t?*UBl@n`rVuFrm+#vqR(%yQMscG~Mm7N| zB&xmxI}pR^PS}ai8sI7Bz#bxNK~xjy!ahO=O)~;`J^uq}VEAK%dmGzWy0(F*+wW4B zdqR0dncM9iUE>!t;f4*E!fJpEO}u>l0iTb*$?tCt|9_9;)A1=@QC`8<)9-YRLujO{ z9taaaThBk9Tm;hR!{mQ+I2;A9@#g{>an%E10<>W-Grk1`pf)0=t>>CpFoY&orqR?I z;J|*?{E0;r!0{()0hE(AxBn@DCAqW{BGyt1fCWbtAaN4W0w(^1DgcB1Fn^*JKsi}R zR7S}#eaY#9;DG-9$eHdm%i|(4#N>&R)w!3) zy@Dn;g`K2Wp|mkV`!H{*yid;GPs&sWNg)N^g*q@}xXd8KOe_kq{1RF%n>S^ zc~aE-ffmw?tcpY2ORMl*B~%-p^KucP`aP5hmm4Pfym$t@>A$=cimP~kHA#POLbh;Wd3c4Evv d!I~Pg`3u?q-C4SE8UFwP002ovPDHLkV1gRwum}JE literal 0 HcmV?d00001 diff --git a/src/components/videoPlayer/Player.vue b/src/components/videoPlayer/Player.vue index 821d18a..6f4bcf8 100644 --- a/src/components/videoPlayer/Player.vue +++ b/src/components/videoPlayer/Player.vue @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2025-03-12 13:48:31 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2025-03-13 15:01:16 + * @LastEditTime: 2025-03-14 16:37:49 * @FilePath: \5G-Loading-Bay-Web\src\components\videoPlayer\player.vue * @Description: 视频播放器 --> @@ -11,7 +11,7 @@
@@ -21,6 +21,9 @@
+
+ +
@@ -54,9 +57,14 @@ const emit = defineEmits<{ }>() const videoRef = ref(null) -const loading = ref(false) +const loading = ref(false) +const isVideoError = ref(false); + let currentDuration = 0 + + + // 监听播放状态变化 watch(() => props.isPlaying, (newVal) => { if (!videoRef.value) return @@ -66,6 +74,7 @@ watch(() => props.isPlaying, (newVal) => { // 监听视频源变化 watch(() => props.src, (newVal) => { if (!videoRef.value) return + isVideoError.value = false videoRef.value.pause() videoRef.value.src = newVal videoRef.value.load() @@ -97,6 +106,11 @@ const handleLoadedMetadata = () => { emit('update:duration', currentDuration) } +const handleVideoError = () => { + console.log('handleVideoError') + isVideoError.value = true; +}; + // 播放状态处理 const handlePlay = () => emit('play') const handlePause = () => emit('pause') @@ -107,6 +121,7 @@ const handleCanPlay = () => loading.value = false onMounted(() => { + console.log('onMounted', props.src) if (videoRef.value) { videoRef.value.src = props.src } @@ -140,8 +155,24 @@ defineExpose({ .video-player-box { position: relative; width: 100%; + height: 100%; margin: 0 auto; + .bg_error_img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 99999999; + background-color: #090F48; + background-image: url("@/assets/common/load_file_error.png"); + background-position: center; + background-repeat: no-repeat; + background-size: 50%; + border: 1px dashed red; + } + .video-element { width: 100%; height: auto; diff --git a/src/views/dashboard/PoleMonitor.scss b/src/views/dashboard/PoleMonitor.scss index b649619..6de28d5 100644 --- a/src/views/dashboard/PoleMonitor.scss +++ b/src/views/dashboard/PoleMonitor.scss @@ -25,12 +25,23 @@ } .pole-monitor-main { .left-panel { + width: 870px; + margin-right: 16px; + &.empty-bg { + background-image: url("@/assets/common/emptyBg.png"); + background-size: 312px 204px; + background-position: center; + background-repeat: no-repeat; + } .main-image { box-sizing: border-box; - min-height: 511px; + height: 511px; position: relative; background-color: #090F48; border-radius: 4px; + .video-screen{ + height: calc(100% - 52px); + } // img { // width: 100%; // max-height: 460px; @@ -60,6 +71,7 @@ .swiper-slide { width: 20%; border-radius: 4px; + height: 144px; img { width: 100%; height: 144px; diff --git a/src/views/dashboard/PoleMonitor.vue b/src/views/dashboard/PoleMonitor.vue index 2b65536..efca17b 100644 --- a/src/views/dashboard/PoleMonitor.vue +++ b/src/views/dashboard/PoleMonitor.vue @@ -1,11 +1,3 @@ -