From fc58c47e9270e181e4d2a657a3ec0822253b6a6c Mon Sep 17 00:00:00 2001 From: lishenfeng Date: Fri, 8 Nov 2024 15:39:26 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E9=A6=96=E9=A1=B5=E6=9C=AA=E8=AF=BB?= =?UTF-8?q?=E5=B7=B2=E8=AF=BB=E5=8A=9F=E8=83=BD=E6=A8=A1=E5=9D=97=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages.json | 12 +-- pages/homeIndex/index.vue | 105 +++++++++++++++++--- pages/login/login.vue | 76 +++++++------- pages/mypage/compents/xcrw/detail/index.vue | 89 ++++++++++------- pages/mypage/mypage.vue | 4 +- pages/xcrw/detail/dbForm.vue | 7 +- pages/xcrw/detail/index.vue | 47 ++++++++- pages/xcrw/index.vue | 7 ++ pages/ylzList/index.vue | 18 +--- static/images/info.png | Bin 723 -> 2933 bytes static/images/password.png | Bin 826 -> 1746 bytes 11 files changed, 244 insertions(+), 121 deletions(-) diff --git a/pages.json b/pages.json index 413d923..92ec95c 100644 --- a/pages.json +++ b/pages.json @@ -128,37 +128,37 @@ } }, { - "path": "pages/mypage/compents/wtcl/index",//问题处理 + "path": "pages/mypage/compents/wtcl/index", "style": { "navigationBarTitleText": "" } }, { - "path": "pages/mypage/compents/wxyh/index",//问题处理 + "path": "pages/mypage/compents/wxyh/index", "style": { "navigationBarTitleText": "" } }, { - "path": "pages/mypage/compents/wxyh/formZdy/index",//问题处理 + "path": "pages/mypage/compents/wxyh/formZdy/index", "style": { "navigationBarTitleText": "" } }, { - "path": "pages/mypage/compents/xcrw/index",//问题处理 + "path": "pages/mypage/compents/xcrw/index", "style": { "navigationBarTitleText": "" } }, { - "path": "pages/mypage/compents/wtcl/detail/index",//问题处理 + "path": "pages/mypage/compents/wtcl/detail/index", "style": { "navigationBarTitleText": "" } }, { - "path": "pages/mypage/compents/xcrw/detail/index",//巡查任务 + "path": "pages/mypage/compents/xcrw/detail/index", "style": { "navigationBarTitleText": "" } diff --git a/pages/homeIndex/index.vue b/pages/homeIndex/index.vue index 8e1be6a..603746b 100644 --- a/pages/homeIndex/index.vue +++ b/pages/homeIndex/index.vue @@ -29,8 +29,8 @@ @@ -54,6 +54,10 @@ @@ -262,11 +335,13 @@ text-align: left; margin-bottom: 12rpx; } + .info_24 { - padding: 15px; + // padding: 15px; background-color: #fff; - margin-bottom: 12rpx; + // margin-bottom: 12rpx; } + .title .line { border: 2px solid #3380ff; border-radius: 3rpx; diff --git a/pages/login/login.vue b/pages/login/login.vue index 33d6cef..944ade7 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -4,9 +4,9 @@ - 用户登录 + 用户登录 - + @@ -26,7 +26,6 @@ @@ -149,10 +152,10 @@ const imgUrl = uni.getStorageSync("imgUrl"); } .img { - - width: 100vw; + + width: 100vw; height: 40vh; - margin-top: 0vh; + margin-top: 0vh; /* background-color: red; */ } @@ -166,27 +169,24 @@ const imgUrl = uni.getStorageSync("imgUrl"); .user-title { position: relative; - padding: 4px; - text-align: center; - display: flex; - flex-direction: column; - .sub{ - font-size: 28px; - color: #000; - } - .line{ + padding: 4px; + text-align: center; + display: flex; + flex-direction: column; + + .sub { + font-size: 28px; + color: #000; + } + + .line { position: absolute; width: 80px; height: 5px; - left:20px; + left: 20px; bottom: -10px; background-color: #00a8ff; border-radius: 15%; } - } - - - - - + } \ No newline at end of file diff --git a/pages/mypage/compents/xcrw/detail/index.vue b/pages/mypage/compents/xcrw/detail/index.vue index a1f96c6..175e26f 100644 --- a/pages/mypage/compents/xcrw/detail/index.vue +++ b/pages/mypage/compents/xcrw/detail/index.vue @@ -5,8 +5,9 @@ fontSize:'18px' }" :height='44' :safeAreaInsetTop=true leftIconSize='20' leftIconColor='rgb(153, 153, 153)'> - - + + @@ -14,7 +15,7 @@ - + 任务标题1 {{taskTitle}} @@ -35,13 +36,13 @@ {{endDate}} - + - - + + 巡检项 @@ -50,7 +51,7 @@ - + @@ -59,22 +60,22 @@ import moment from 'moment' import DbForm from './dbForm.vue' export default { - components:{ + components: { DbForm }, data() { return { - taskTitle:'', - taskType:'', - taskContent:'', - startDate:'', - endDate:'', - status:'', - id:'', + taskTitle: '', + taskType: '', + taskContent: '', + startDate: '', + endDate: '', + status: '', + id: '', btnStatus: 0, - xjItem:[], - list:["正常","异常"], - current:3 + xjItem: [], + list: ["正常", "异常"], + current: 3 }; }, mounted() { @@ -82,7 +83,7 @@ }, methods: { // 开始巡查 - async startXc(){ + async startXc() { try { this.btnStatus = 1; this.getXjItem(this.id) @@ -90,25 +91,27 @@ uni.$showMsg(); } }, - // 获取巡查项 - async getXjItem(id){ + // 获取巡查项 + async getXjItem(id) { try { - const {data} = await uni.$http.get(`/gunshiApp/xyt/inspect/detail/info?taskId=${this.id}`) - if(data.code == 200){ + const { + data + } = await uni.$http.get(`/gunshiApp/xyt/inspect/detail/info?taskId=${this.id}`) + if (data.code == 200) { this.xjItem = data.data } } catch (error) { uni.$showMsg(); } }, - change(e){ - this.current = e; + change(e) { + this.current = e; } }, - onLoad(option){ + onLoad(option) { this.taskTitle = option.taskTitle this.taskType = option.taskType - this.taskContent = option.taskContent + this.taskContent = option.taskContent == "null" ? null : option.taskContent this.startDate = (option.startDate) this.endDate = option.endDate == "null" ? "" : option.endDate this.status = option.status @@ -133,17 +136,19 @@ } .item { - + padding-bottom: 10px; display: flex; align-items: center; + // justify-content: space-between; - .blueTiao{ + .blueTiao { background-color: #007aff; width: 5px; height: 16px; margin-right: 10px; } + .title { border-width: 0px; font-family: '微软雅黑 Bold', '微软雅黑 Regular', '微软雅黑', sans-serif; @@ -155,6 +160,7 @@ .titleRight { display: flex; + .border { border-width: 0px; background-color: rgba(236, 245, 255, 1); @@ -172,8 +178,9 @@ } } - .contentItem{ - .itemC{ + + .contentItem { + .itemC { display: flex; justify-content: space-between; display: flex; @@ -181,21 +188,24 @@ padding: 10px; border-bottom: 1px solid #f0f0f0; } - .itemNo{ + + .itemNo { color: #666666; padding: 10px; } } - .circle-btn{ + + .circle-btn { width: 120px; height: 120px; background-color: #007aff; border-radius: 50%; - color:#fff; + color: #fff; text-align: center; line-height: 120px; } - .yuandian{ + + .yuandian { display: inline-block; width: 10px; height: 10px; @@ -203,15 +213,18 @@ border-radius: 50%; margin-right: 10px; } - .xj-content{ + + .xj-content { height: 300px; overflow-y: auto; } - .xj-text{ + + .xj-text { margin-left: 10%; margin-top: 2%; } - .subsectioin{ + + .subsectioin { display: flex; column-gap: 10px; align-items: center; diff --git a/pages/mypage/mypage.vue b/pages/mypage/mypage.vue index a9cf404..a3c1a6b 100644 --- a/pages/mypage/mypage.vue +++ b/pages/mypage/mypage.vue @@ -13,7 +13,7 @@
-
+
@@ -25,7 +25,7 @@ 历史记录 - +
diff --git a/pages/xcrw/detail/dbForm.vue b/pages/xcrw/detail/dbForm.vue index d0237cc..49e1b95 100644 --- a/pages/xcrw/detail/dbForm.vue +++ b/pages/xcrw/detail/dbForm.vue @@ -60,7 +60,7 @@ - { diff --git a/pages/xcrw/detail/index.vue b/pages/xcrw/detail/index.vue index f40e1a1..2aa6f52 100644 --- a/pages/xcrw/detail/index.vue +++ b/pages/xcrw/detail/index.vue @@ -90,17 +90,17 @@ // 开始巡查 async startXc(){ try { - if(status == 0){ + if(this.status == 0){ const {data} = await uni.$http.get(`/gunshiApp/xyt/inspect/task/startInspect/${this.id}`) if(data.code == 200){ this.btnStatus = 1; this.getXjItem(this.id) } - }else if(status == 1){ + }else if(this.status == 1){ this.btnStatus = 1; this.getXjItem(this.id) } - + this.getLocationWithInterval(); } catch (error) { uni.$showMsg(); @@ -117,15 +117,52 @@ uni.$showMsg(); } }, + + getLocationWithInterval() { + this.getLocation(); // 首次获取经纬度信息 + // 设置定时器,每隔5秒获取一次经纬度信息 + let timer= setInterval(() => { + this.getLocation(); + }, 300000); // 五分钟 + uni.setStorageSync("timer", timer); + }, + // 获取经纬度 + getLocation() { + uni.getLocation({ + type: 'gcj02', + success: (res) => { + this.latitude = res.latitude; + this.longitude = res.longitude; + this.sendLocation(res.latitude,res.longitude) + }, + fail: (err) => { + console.log('Failed to get location:', err); + } + }); + }, + // 将经纬度传给服务器 + async sendLocation(latitude, longitude) { + try { + const { data } = await uni.$http.post(`/gunshiApp/xyt/inspectTaskTrack/insert`, { + taskId: this.id, + lttd: latitude, + lgtd: longitude + }) + if (data.code == 200) { + console.log('Location sent successfully') + } + } catch (error) { + uni.$showMsg(); + } + } }, onLoad(option){ this.taskTitle = option.taskTitle this.taskType = option.taskType - this.taskContent = option.taskContent + this.taskContent = option.taskContent== "null" ? null:option.taskContent this.startDate = (option.startDate) this.endDate = option.endDate == "null" ? "" : option.endDate - this.status = option.status this.id = option.id } diff --git a/pages/xcrw/index.vue b/pages/xcrw/index.vue index a071958..12e76f7 100644 --- a/pages/xcrw/index.vue +++ b/pages/xcrw/index.vue @@ -129,6 +129,13 @@ url:`/pages/xcrw/detail/index?taskTitle=${record.taskTitle}&taskType=${record.taskType}&taskContent=${record.taskContent}&startDate=${record.startDate}&endDate=${record.endDate}&status=${record.status}&id=${record.id}` }) } + }, + onShow(){ + const timer =uni.getStorageSync('timer'); + if(timer){ + clearInterval(timer); + uni.removeStorageSync('timer'); + } } } diff --git a/pages/ylzList/index.vue b/pages/ylzList/index.vue index f2fc9a8..3088436 100644 --- a/pages/ylzList/index.vue +++ b/pages/ylzList/index.vue @@ -39,7 +39,6 @@ h12:22, h24:35, }, - ylzList:[] } }, methods:{ @@ -60,27 +59,14 @@ // #eb20f5 100-250 // #761e50 >=250 }, - // 获取雨量站 - async getYlzData(){ - try { - const {data} = await uni.$http.post( - "/gunshiApp/xyt/stPptnRReal/list") - if(data.code == 200){ - this.ylzList = [...data.data]; - } - } catch (error) { - uni.$showMsg(); - } - }, + toDetail(){ uni.navigateTo({ url:`/pages/ylzList/detail/index?stnm=${this.item.stnm}` }) }, }, - mounted() { - this.getYlzData(); - }, + } diff --git a/static/images/info.png b/static/images/info.png index 40c7fdaf03223b245902f9160a90eeff1bc3dd2e..69e253749505f15563091d918073f95cede4ccaf 100644 GIT binary patch literal 2933 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 literal 723 zcmeAS@N?(olHy`uVBq!ia0vp^4nSNn{1`ISV`@iy0V%Nq1;ub zg7f?KGuS-cZ}aGGp15%J-g|G$s(0VL^wK13(n%H5mF}$#r=K=;n@aIYt#;h`eTJOY zg6UpMH$<$zzOlElUU9*l>i*-4m-wp)MVv`7`jDHT&OD2|W|o~;ccS6+)3vI$3)UVu z{$)d6kq>`{#)2j7%u~Ni^kC_Zxx^gBX|w!(j#+@^T)#V)nP+hvFzRxgf0@16Q3t5@ zgZPT8SrQ?h^%gQFUi<}O68*=4JpSD}Z?;D0O!ca{%&f&ypq^(o+vFclMDBv)4-3{@ z&z5*sX1)LZe~x^O>8Ecr9|+lfci!1FleE_52a0wcS@Xg6fPm5=YyPkYPbI5Gtmg7v zSsSL^8~N}j$3fdRw(g^wqSmrCH(q{Ob3V@?L`(El1=G3a%|P9=8Q!c<+bk*Nqc-_s zMomif@~E{z$Irj;OE8+5puoEO?!EWlGk-Df67D$uSb{@NF(UWbXG`BdYieB$39 zxa{)FuT@Jg$zPn?5VeFsku_o>Q;SG~>x={4|GEE84bV_=Yp^aU3k%^m&}|YsS^j6u pymRNexEO1d(38NCqW$|B({7zxU^CNM3YZWXJYD@<);T3K0RTn~E1UoT diff --git a/static/images/password.png b/static/images/password.png index 1d5261db931fb0c9348bc7f1dd67cbc7aee8a63e..a6a4eaca5c856ab623614fe24cc23eaa50bbd198 100644 GIT binary patch literal 1746 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 Ef>3aHSO5S3