From 86de762a663d5f7b324846ebe7594fec7fddf913 Mon Sep 17 00:00:00 2001 From: junleea <354425203@qq.com> Date: Wed, 8 May 2024 19:58:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0device=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8F=8A=E9=87=8D=E5=90=AF=E8=AE=BE=E5=A4=87=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=B7=BB=E5=8A=A0device.js=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E8=AF=B7=E6=B1=82=E7=9A=84=E5=A4=84=E7=90=86=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8request=E6=B7=BB=E5=8A=A0=E6=9C=AC=E5=9C=B0=E8=B0=83?= =?UTF-8?q?=E8=AF=95url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- public/favicon.ico | Bin 4286 -> 15406 bytes src/api/device.js | 40 +++++++ src/router/index.js | 6 ++ src/utils/request.js | 1 + src/views/DeviceList.vue | 228 +++++++++++++++++++++++++++++++++++++++ src/views/Login.vue | 2 + src/views/VideoList.vue | 42 +++++++- 8 files changed, 318 insertions(+), 3 deletions(-) create mode 100644 src/api/device.js create mode 100644 src/views/DeviceList.vue diff --git a/index.html b/index.html index 99f583a..5935a10 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - Vite App + VP
diff --git a/public/favicon.ico b/public/favicon.ico index df36fcfb72584e00488330b560ebcf34a41c64c2..1c835255096b42ff3ec3f6afcb47e9c8a7f05c37 100644 GIT binary patch literal 15406 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 F{sY2)&|v@o literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S diff --git a/src/api/device.js b/src/api/device.js new file mode 100644 index 0000000..d6cd7a6 --- /dev/null +++ b/src/api/device.js @@ -0,0 +1,40 @@ +import request from '@/utils/request.js' + +export const restartDeviceService = (data) => { + const params = new URLSearchParams(); + for (let key in data) { + params.append(key, data[key]) + } + return request.post('/camera/restart', params, Headers = {Authorization: data.Authorization }); +} + +export const updateDeviceService = (data) => { + const params = new URLSearchParams(); + for (let key in data) { + params.append(key, data[key]) + } + return request.post('/device/update', params, Headers = {Authorization: data.Authorization }); +} + +export const addDeviceService = (data) => { + const params = new URLSearchParams(); + for (let key in data) { + params.append(key, data[key]) + } + return request.post('/device/add', params, Headers = {Authorization: data.Authorization }); +} + +export const getDeviceListService = (data) => { + const params = new URLSearchParams(); + for(let d in data) { + params.append(d, data[d]); + } + // request.headers["Content-Type"] = "application/json"; + request.defaults.headers["token"] = data.token.value; + return request.post('/camera/list', params, { + headers: { + 'token': data.token, // 将 token 替换为您的令牌值 + } + } + ); +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index aeb904a..461ae51 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -3,6 +3,7 @@ import {createWebHistory, createRouter} from "vue-router"; import LoginVue from "@/views/Login.vue"; import VideoVue from "@/views/Video.vue"; import VideoListVue from "@/views/VideoList.vue"; +import DeviceListVue from "@/views/DeviceList.vue"; const routes = [ { @@ -20,6 +21,11 @@ const routes = [ name: 'VideoList', component: VideoListVue }, + { + path: '/device', + name: 'Device', + component: DeviceListVue + }, { path: '/', redirect: '/login' diff --git a/src/utils/request.js b/src/utils/request.js index 5249918..3774c35 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,6 +1,7 @@ import axios from "axios"; import router from "@/router/index.js"; const baseURL = "https://jp.ljsea.top/"; +//const baseURL= "http://localhost:8082"; const request = axios.create({ baseURL: baseURL, }); diff --git a/src/views/DeviceList.vue b/src/views/DeviceList.vue new file mode 100644 index 0000000..409f49c --- /dev/null +++ b/src/views/DeviceList.vue @@ -0,0 +1,228 @@ + + + + \ No newline at end of file diff --git a/src/views/Login.vue b/src/views/Login.vue index 65a74e5..35e8ad6 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -169,6 +169,8 @@ const getIpClient= async() => { try { const response = await axios.get("https://ipinfo.io/json"); loginData.value.ip =response.data.ip; + localStorage.setItem("ip", response.data.ip); + localStorage.setItem("city", response.data.city); // console.log("ip:",response.data.ip); // console.log("login ip:",loginData.ip); // console.log(response.data); diff --git a/src/views/VideoList.vue b/src/views/VideoList.vue index d55531f..948ba17 100644 --- a/src/views/VideoList.vue +++ b/src/views/VideoList.vue @@ -55,6 +55,11 @@ export default { console.log("file_size", this.file_sum_size, "len=", len); this.tableData = data; }, + logout(){ + //退出登录 + localStorage.clear(); + router.push("/login"); + }, onSubmit() { getVideoList({ token: token }); }, @@ -120,9 +125,31 @@ export default { }, async delayVideo(index) { var id = this.tableData[index].id; - var days = 10; + var days = 15; var delay_data = { id: id, + option:"one", + ip:this.ip, + delay: days, + userId: this.tokenData.userId, + token: this.tokenData.token, + }; + try { + var d_re = await delayVideoService(delay_data); + if (d_re.code == 0) { + alert("延迟成功"); + } else { + alert("操作失败"); + } + } catch (e) { + console.log(e); + } + }, + async delayAllVideo() { + var days = 15; + var delay_data = { + id: -1, + option:"all", ip:this.ip, delay: days, userId: this.tokenData.userId, @@ -149,7 +176,9 @@ export default { console.error(error); } }, - + toDeviceM(){ + router.push("/device"); + }, // 修改条纹颜色 tableRowClassName({ row, rowIndex }) { if (row.human === 1) { @@ -228,6 +257,15 @@ export default { 查询 + + 退出登录 + + + 全部延迟删除 + + + 设备信息 +