From e96b9fa8c6d568c07801e232f3dfb789aa20db83 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 30 Sep 2022 09:35:13 +0800
Subject: [PATCH] 事件上报
---
static/images/taskinfo/map/img/dinw/dinw5.png | 0
pages.json | 53 ++++--
utils/func.js | 3
api/taskinfo/taskinfo.js | 12 +
static/images/taskinfo/map/img/dinw/dinw3.png | 0
pages/service/service.vue | 5
static/images/taskinfo/map/img/dinw/dinw1.png | 0
static/images/taskinfo/map/img/dingwei.png | 0
pages/taskinfo/detail.vue | 357 ++++++++++++++++++++++++++++++++++++++++++++
pages/taskinfo/list.vue | 10 +
static/images/taskinfo/map/img/dinw/dinw4.png | 0
static/images/taskinfo/map/img/dinw/location.png | 0
static/images/taskinfo/map/img/dinw/dinw6.png | 0
static/images/taskinfo/map/img/dinw/dinw2.png | 0
14 files changed, 417 insertions(+), 23 deletions(-)
diff --git a/api/taskinfo/list.js b/api/taskinfo/taskinfo.js
similarity index 71%
rename from api/taskinfo/list.js
rename to api/taskinfo/taskinfo.js
index d1de2b4..8141328 100644
--- a/api/taskinfo/list.js
+++ b/api/taskinfo/taskinfo.js
@@ -11,11 +11,19 @@
}
})
}
-
+export const getDetail = (id) => {
+ return http.request({
+ url: '/taskInfo/taskinfo/detail',
+ method: 'get',
+ params: {
+ id
+ }
+ })
+}
export const update = (row) =>{
return http.request({
url:'/taskInfo/taskinfo/submit',
method:'POST',
data:row
})
-}
+}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index 0f7884b..011414d 100644
--- a/pages.json
+++ b/pages.json
@@ -2,7 +2,8 @@
"easycom": {
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
},
- "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+ "pages": [
+ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/login/login-account",
"style": {
@@ -27,6 +28,20 @@
}
},
{
+ "path": "pages/home/home",
+ "style": {
+ "navigationBarTitleText": "主页",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/taskinfo/detail",
+ "style": {
+ "navigationBarTitleText": "任务详情",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
"path": "pages/taskinfo/eventsReported",
"style": {
"navigationBarTitleText": "事件上报",
@@ -46,23 +61,27 @@
"borderStyle": "white",
"backgroundColor": "#ffffff",
"list": [{
- "pagePath": "pages/service/service",
- "iconPath": "static/images/tabbar/home.png",
- "selectedIconPath": "static/images/tabbar/home_selected.png",
- "text": "首页"
- }, {
- "pagePath": "pages/demo/demo",
- "iconPath": "static/images/tabbar/demo.png",
- "selectedIconPath": "static/images/tabbar/demo_selected.png",
- "text": "示例"
- }, {
- "pagePath": "pages/user/center",
- "iconPath": "static/images/tabbar/user.png",
- "selectedIconPath": "static/images/tabbar/user_selected.png",
- "text": "我的"
- }]
+ "pagePath": "pages/service/service",
+ "iconPath": "static/images/tabbar/home.png",
+ "selectedIconPath": "static/images/tabbar/home_selected.png",
+ "text": "首页"
+ },
+ {
+ "pagePath": "pages/demo/demo",
+ "iconPath": "static/images/tabbar/demo.png",
+ "selectedIconPath": "static/images/tabbar/demo_selected.png",
+ "text": "示例"
+ },
+ {
+ "pagePath": "pages/user/center",
+ "iconPath": "static/images/tabbar/user.png",
+ "selectedIconPath": "static/images/tabbar/user_selected.png",
+ "text": "我的"
+ }
+ ]
},
- "condition": { //模式配置,仅开发期间生效
+ "condition": {
+ //模式配置,仅开发期间生效
"current": 0, //当前激活的模式(list 的索引项)
"list": [{
"name": "", //模式名称
diff --git a/pages/service/service.vue b/pages/service/service.vue
index 09942f6..c295b25 100644
--- a/pages/service/service.vue
+++ b/pages/service/service.vue
@@ -40,6 +40,11 @@
img: '/static/images/service/b5.png',
name: '维修任务',
url: ''
+ },
+ {
+ img: '/static/images/service/b1.png',
+ name: '事件上报',
+ url: ''
}
],
// 服务列表
diff --git a/pages/taskinfo/detail.vue b/pages/taskinfo/detail.vue
new file mode 100644
index 0000000..29dc7c0
--- /dev/null
+++ b/pages/taskinfo/detail.vue
@@ -0,0 +1,357 @@
+<template>
+ <view class="content">
+ <u-top-tips ref="uTips"></u-top-tips>
+ <map style="width: 100%; height: 30vh;" scale="14" :latitude="latitude" :longitude="longitude"
+ :polyline="polyline">
+ <!-- <cover-view class="dingwBut" @click="getSelfLocation">
+ <cover-image src="../../static/images/taskinfo/map/img/dingwei.png"></cover-image>
+ </cover-view> -->
+ </map>
+ <view id="Umain" style="height: 71%;z-index: 9999;">
+ <view class="once-b">
+ 巡查详情
+ </view>
+ <view class="once">
+ <span class="once-left">
+ 巡查标题
+ </span>
+ <span class="once-right">
+ {{taskinfoData.title}}
+ </span>
+ </view>
+ <view class="once">
+ <span class="once-left">
+ 巡查内容
+ </span>
+ <span class="once-right">
+ {{taskinfoData.content}}
+ </span>
+ </view>
+ <view class="once">
+ <span class="once-left">
+ 开始时间
+ </span>
+ <span class="once-right">
+ {{taskinfoData.startTime}}
+ </span>
+ </view>
+ <view class="once">
+ <span class="once-left">
+ 预计结束
+ </span>
+ <span class="once-right">
+ {{taskinfoData.endTime}}
+ </span>
+ </view>
+ <view class="once">
+ <span class="once-left">
+ 状态
+ </span>
+ <span class="once-right">
+ {{taskinfoData.state == 0?'待开始':taskinfoData.state == 1?'正在进行':'已完成'}}
+ </span>
+ </view>
+ <view class="once-c">
+ <u-button type="success">开始任务</u-button>
+ </view>
+ </view>
+ </view>
+</template>
+
+<script>
+ import {
+ getDetail
+ } from "@/api/taskinfo/taskinfo"
+ export default {
+ data() {
+ return {
+ id: 0,
+ taskinfoData: {},
+ latitude: '',
+ longitude: '',
+ polyline: [{
+ // LINESTRING(115.91024735502 28.6783047633229, 115.916073731654 28.6741777439167,
+ // 115.908426611165 28.6739956695312)
+ points: [
+ // {
+ // latitude: 28.6783047633229,
+ // longitude: 115.91024735502
+ // },
+ // {
+ // latitude: 28.6741777439167,
+ // longitude: 115.916073731654
+ // },
+ // {
+ // latitude: 28.6739956695312,
+ // longitude: 115.908426611165
+ // }
+ ],
+ color: "#10a4ff", //线的颜色
+ width: 10, //线的宽度
+ dottedLine: false, //是否虚线
+ arrowLine: false, //带箭头的线 开发者工具暂不支持该属性
+ }]
+ }
+ },
+ methods: {
+ getSelfLocation() {
+ var that = this;
+ uni.getLocation({
+ type: 'gcj02',
+ isHighAccuracy: true,
+ success(res) {
+ that.latitude = res.latitude
+ that.longitude = res.longitude
+ }
+ })
+ },
+ getTaskinfoDetail() {
+ var _that = this
+ getDetail(_that.id).then(res => {
+ _that.taskinfoData = res.data;
+ //处理地图路线 //
+ let routeRange = _that.taskinfoData.routeRange.replace('LINESTRING', '')
+ .replace('\(', '').replace('\)', '')
+ let ranges = routeRange.split(',')
+ for (var i = 0; i < ranges.length; i++) {
+ let postion = ranges[i].split(' ')
+ _that.polyline[0].points.push({
+ longitude: postion[0],
+ latitude: postion[1]
+ })
+ }
+ _that.longitude = _that.polyline[0].points[0].longitude
+ _that.latitude = _that.polyline[0].points[0].latitude
+ })
+
+ }
+ },
+ onLoad: function(options) {
+ if (options.id) {
+ this.id = options.id
+ this.getTaskinfoDetail()
+ }
+ }
+ }
+</script>
+
+<style lang="scss">
+ .content {
+ // flex: 1;
+ // height: 100%;
+ overflow: hidden;
+ // position: relative;
+ }
+
+ #Umain {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ overflow: hidden;
+ }
+
+ .once {
+ width: 100%;
+ min-height: 40px;
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ /* margin-bottom: 10px; */
+ border-bottom: 1px solid #e8e8e8;
+ padding: 0 10px;
+ }
+
+ .once-left {
+ width: 25%;
+ text-align: justify;
+ text-align-last: justify;
+ padding-right: 20px;
+ box-sizing: border-box;
+ }
+
+ .once-left::after {
+ content: ":";
+ position: absolute;
+ }
+
+ .once-right {
+ width: calc(75% - 20px);
+ height: auto;
+ /* border: 1px solid red; */
+ box-sizing: border-box;
+ word-break: break-all;
+ }
+
+ .once-right span {
+ display: inline-block;
+ padding: 0px 5px 1px;
+ margin: 0 5px;
+ background-color: #ECF5FF;
+ border: 0.5px solid #e4f1ff;
+ color: #429FFF;
+ border-radius: 8px;
+ }
+
+ .once-c {
+ width: 100%;
+ height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 8px 0;
+ background-color: #fff;
+ position: absolute;
+ bottom: 0;
+ }
+
+ .once-b {
+ width: 100%;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: #fff;
+ border-bottom: 1px solid #e8e8e8;
+ /* margin-bottom: 10px; */
+ }
+
+ .submits {
+ margin: 60rpx 90rpx 0;
+ border: none;
+ width: 572rpx;
+ height: 86rpx;
+ // line-height: 86rpx;
+ box-sizing: border-box;
+ border-radius: 15rpx;
+ background-color: #103289;
+ color: #ffffff;
+
+ &::after {
+ content: none;
+ }
+
+ &::before {
+ content: none;
+ }
+
+ &[disabled='true'] {
+ background: #e4e4e4;
+ font-size: 36rpx;
+ font-family: Source Han Sans CN;
+ font-weight: 500;
+ color: #ffffff;
+ }
+ }
+
+
+ .Info2 {
+ width: 100%;
+ // height: 100px;
+ padding: 0 10px;
+
+ .Info3 {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 50px;
+ }
+
+ .Info4 {
+ width: 100%;
+ line-height: 50px;
+ font-size: 18px;
+ text-align: center;
+ height: 50px;
+ }
+
+ .Info5 {
+ margin-bottom: 10px !important;
+ width: 70%;
+ }
+ }
+
+ .notOpens {
+ &::after {
+ content: "";
+ display: block;
+ width: 20px;
+ height: 4px;
+ background-color: rgba(202, 202, 202, 1);
+ position: absolute;
+ top: 10px;
+ left: calc(50% - 10px);
+ border-radius: 5px;
+ transition: all 0.1s;
+ }
+ }
+
+ .activeTip {
+ background-color: #fff;
+ }
+
+ .isOpens {
+ &::after {
+ content: "";
+ display: block;
+ width: 13px;
+ height: 4px;
+ background-color: rgba(202, 202, 202, 1);
+ position: absolute;
+ top: 10px;
+ left: calc(50% - 12px);
+ border-radius: 5px;
+ transform: rotate(30deg);
+ transition: all 0.1s;
+ }
+
+ &::before {
+ content: "";
+ display: block;
+ width: 13px;
+ height: 4px;
+ background-color: rgba(202, 202, 202, 1);
+ position: absolute;
+ top: 10px;
+ left: calc(50% - 4px);
+ border-radius: 5px;
+ transform: rotate(-30deg);
+ transition: all 0.1s;
+ }
+ }
+
+ .dingwBut {
+ width: 80upx;
+ height: 80upx;
+ background-color: #fff;
+ border-radius: 20upx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: absolute;
+ bottom: 40upx;
+ right: 40upx;
+ }
+
+ .oncePotion {
+ animation: mymove 0.5s infinite;
+ animation-timing-function: linear;
+ }
+
+ .dingwButtip {
+ bottom: 120 upx;
+ background-color: transparent;
+ color: #000000;
+ }
+
+ @keyframes mymove {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(1turn);
+ }
+ }
+</style>
diff --git a/pages/taskinfo/list.vue b/pages/taskinfo/list.vue
index d8a34ba..fad5fe7 100644
--- a/pages/taskinfo/list.vue
+++ b/pages/taskinfo/list.vue
@@ -10,7 +10,7 @@
<scroll-view scroll-y :style="{ height: useHeight, width: '100%' }" @scrolltolower="scrolltolower">
<view class="onveMain">
<view class="once" v-for="(item, index) in taskinfoList" :key="index">
- <view class="onve-left">
+ <view class="onve-left" @click="goToDetail(item.id)">
<!-- <view class="o-l-img">
<image src="" mode=""></image>
</view> -->
@@ -47,7 +47,7 @@
<script>
import {
getList,update
- } from "@/api/taskinfo/list.js";
+ } from "@/api/taskinfo/taskinfo";
export default {
data() {
return {
@@ -104,6 +104,12 @@
this.taskinfoList = this.taskinfoList.concat(data.records)
})
},
+ // 跳转详情页
+ goToDetail(id) {
+ uni.navigateTo({
+ url: '/pages/taskinfo/detail?id=' + id
+ })
+ },
//任务开始事件
startTask(item){
item.state = '1'
diff --git a/static/images/taskinfo/map/img/dingwei.png b/static/images/taskinfo/map/img/dingwei.png
new file mode 100644
index 0000000..58a917e
--- /dev/null
+++ b/static/images/taskinfo/map/img/dingwei.png
Binary files differ
diff --git a/static/images/taskinfo/map/img/dinw/dinw1.png b/static/images/taskinfo/map/img/dinw/dinw1.png
new file mode 100644
index 0000000..080b720
--- /dev/null
+++ b/static/images/taskinfo/map/img/dinw/dinw1.png
Binary files differ
diff --git a/static/images/taskinfo/map/img/dinw/dinw2.png b/static/images/taskinfo/map/img/dinw/dinw2.png
new file mode 100644
index 0000000..a51e5d0
--- /dev/null
+++ b/static/images/taskinfo/map/img/dinw/dinw2.png
Binary files differ
diff --git a/static/images/taskinfo/map/img/dinw/dinw3.png b/static/images/taskinfo/map/img/dinw/dinw3.png
new file mode 100644
index 0000000..76b6f88
--- /dev/null
+++ b/static/images/taskinfo/map/img/dinw/dinw3.png
Binary files differ
diff --git a/static/images/taskinfo/map/img/dinw/dinw4.png b/static/images/taskinfo/map/img/dinw/dinw4.png
new file mode 100644
index 0000000..cd5de4d
--- /dev/null
+++ b/static/images/taskinfo/map/img/dinw/dinw4.png
Binary files differ
diff --git a/static/images/taskinfo/map/img/dinw/dinw5.png b/static/images/taskinfo/map/img/dinw/dinw5.png
new file mode 100644
index 0000000..79a421a
--- /dev/null
+++ b/static/images/taskinfo/map/img/dinw/dinw5.png
Binary files differ
diff --git a/static/images/taskinfo/map/img/dinw/dinw6.png b/static/images/taskinfo/map/img/dinw/dinw6.png
new file mode 100644
index 0000000..772af08
--- /dev/null
+++ b/static/images/taskinfo/map/img/dinw/dinw6.png
Binary files differ
diff --git a/static/images/taskinfo/map/img/dinw/location.png b/static/images/taskinfo/map/img/dinw/location.png
new file mode 100644
index 0000000..52d5d19
--- /dev/null
+++ b/static/images/taskinfo/map/img/dinw/location.png
Binary files differ
diff --git a/utils/func.js b/utils/func.js
index 2b7cb00..a853946 100644
--- a/utils/func.js
+++ b/utils/func.js
@@ -7,8 +7,7 @@
vm.$u.vuex('accessToken', userInfo.access_token)
vm.$u.vuex('isLogin', true)
uni.switchTab({
- // url: '/pages/home/home'
- url:'/pages/service/service'
+ url: '/pages/service/service'
})
}
--
Gitblit v1.9.3