From cb8dc011962cd1e96ab6f1a3df53be302faf4a72 Mon Sep 17 00:00:00 2001
From: liuyg <liuyg@qq.com>
Date: Mon, 07 Mar 2022 15:08:01 +0800
Subject: [PATCH] +

---
 pages/grabOrders/grabOrdersZAFFPX - 副本/feedback.vue              |  412 ++++++
 pages/grabOrders/grabOrdersZAFFPX - 副本/task.vue                  |   88 +
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dinw/dinw3.png    |    0 
 pages/grabOrders/grabOrdersZAFFPX - 副本/inPage/page0.vue          |  221 +++
 pages/grabOrders/grabOrdersZAFFPX/inPage/page1.vue               |   20 
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dinw/dinw2.png    |    0 
 pages/grabOrders/grabOrdersZAXC/inPage/page2.vue                 |  200 +++
 pages/grabOrders/grabOrdersZAFFPX - 副本/grabOrders.vue            |  408 ++++++
 pages/grabOrders/grabOrdersZAYWXC/grabOrders.vue                 |   22 
 pages/grabOrders/grabOrdersZAFFPX - 副本/map.vue                   | 1187 ++++++++++++++++++
 pages/grabOrders/grabOrdersZAYWXC/inPage/page2.vue               |  206 +++
 pages/grabOrders/grabOrdersMain/business.vue                     |    6 
 pages/grabOrders/grabOrdersZAFFPX - 副本/inPage/page2.vue          |  178 ++
 store/positions.js                                               |    6 
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dinw/dinw5.png    |    0 
 store/apiConfig.js                                               |    9 
 pages/grabOrders/grabOrdersZAXC/grabOrders.vue                   |   26 
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dinw/dinw6.png    |    0 
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/js/move.js            |  173 ++
 pages/grabOrders/grabOrdersZAFFPX/map.vue                        |   16 
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dinw/dinw4.png    |    0 
 pages/grabOrders/grabOrdersZAXC/map.vue                          |    5 
 pages/grabOrders/grabOrdersZAFFPX - 副本/inPage/page1.vue          |  178 ++
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dinw/dinw1.png    |    0 
 pages/grabOrders/grabOrdersZAFFPX/inPage/page2.vue               |  179 ++
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dingwei.png       |    0 
 pages/grabOrders/grabOrdersZAFFPX/grabOrders.vue                 |   55 
 pages/grabOrders/grabOrdersZAFFPX - 副本/once.vue                  |    0 
 pages/grabOrders/grabOrdersZAYWXC/inPage/page0.vue               |   10 
 pages/grabOrders/grabOrdersZAFFPX - 副本/task - 副本.vue             |   88 +
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/img/dinw/location.png |    0 
 pages/grabOrders/grabOrdersZAFFPX - 副本/map/js/moveUniAppMap.js   |  128 ++
 32 files changed, 3,759 insertions(+), 62 deletions(-)

diff --git a/pages/grabOrders/grabOrdersMain/business.vue b/pages/grabOrders/grabOrdersMain/business.vue
index 3105822..cb89a3a 100644
--- a/pages/grabOrders/grabOrdersMain/business.vue
+++ b/pages/grabOrders/grabOrdersMain/business.vue
@@ -50,17 +50,17 @@
 				tabbar: this.$store.state.tabbar,
 				bashow: false,
 				dataOne: [{
-					title: '治安巡查',
+					title: '参与治安防范巡查',
 					img: '/static/workbench/task2.png',
 					url: '../grabOrdersZAXC/grabOrders?detailData=0',
 					cout: 0
 				}, {
-					title: '治安义务宣传',
+					title: '参与治安防范宣传',
 					img: '/static/workbench/task1.png',
 					url: '../grabOrdersZAYWXC/grabOrders?detailData=0',
 					cout: 0
 				}, {
-					title: '治安防范培训',
+					title: '参与治安防范培训',
 					img: '/static/workbench/task3.png',
 					url: '../grabOrdersZAFFPX/grabOrders?detailData=0',
 					cout: 0
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/feedback.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/feedback.vue"
new file mode 100644
index 0000000..7957dd8
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/feedback.vue"
@@ -0,0 +1,412 @@
+<template>
+	<view class="mapJQtijiao">
+		<u-top-tips ref="uTips"></u-top-tips>
+		<!-- <view class="head">
+			<u-navbar :is-fixed="false" :border-bottom="false" :is-back="false" title=""
+				:background="{ background: '#0cd7e5' }">
+				<div>
+					处理结果
+				</div>
+			</u-navbar>
+		</view> -->
+		<view class="mapJQtijiaomain">
+			<view class="title" style="padding-top: 0.5rem;">请输入任务心得:</view>
+			<view class="f">
+				<view class="main" style="margin:0 1rem;">
+					<textarea rows="9" cols="27" placeholder="请输入任务心得。" class="textareas" v-model="content"></textarea>
+				</view>
+			</view>
+			<view class="title" style="padding-top: 0.5rem;">请输入任务意见:</view>
+			<view class="f">
+				<view class="main" style="margin:0 1rem;">
+					<textarea rows="9" cols="27" placeholder="请输入任务意见。" class="textareas" v-model="yj"></textarea>
+				</view>
+			</view>
+			<view class="title">照片上传:</view>
+			<view class="t">
+				<view class="main">
+					<image @tap="takePhoto" src="/static/JQimg/xiangji.png" mode=""></image>
+				</view>
+				<view class="mains">
+					<seeImgs class="seeImgs" :imgs="imgs" :videos="[]" @del="delImg" :type="'imgs'"></seeImgs>
+				</view>
+			</view>
+			<view class="title">视频上传:</view>
+			<view class="s">
+				<view class="main">
+					<image @tap="takeVideo" src="/static/JQimg/shiping.png" mode=""></image>
+				</view>
+				<view class="mains">
+					<seeImgs class="seeImgsVideo" :imgs="[]" :videos="videos" @del="delVideo" :type="'videos'">
+					</seeImgs>
+				</view>
+			</view>
+			<view class="butb">
+				<!-- custom-style -->
+				<button class="submits" type="primary" @click="upData">我反馈</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import seeImgs from 'components/seeImges/seeImges.vue'
+	export default {
+		components: {
+			seeImgs
+		},
+		data() {
+			return {
+				content: '', //心得
+				yj: '', //意见
+				imgs: [],
+				videos: [],
+				data: {}
+			}
+		},
+		onBackPress(e) {
+			console.log("监听返回按钮事件1", e);
+			uni.redirectTo({
+				url: "/pages/grabOrders/grabOrdersZAFFPX/grabOrders?detailData=0"
+			})
+			// 此处一定姚要return为true,否则页面不会返回到指定路径
+			return true;
+		},
+		methods: {
+			onLoad: function(option) {
+				var b;
+				if (option.data == undefined) {
+					this.data = {
+						rname: '无数据',
+						content: '无数据',
+						district: '无数据',
+						place: '无数据',
+						time: '无数据',
+						num: "无数据",
+						ourNum: "无数据",
+						inNum: "无数据",
+						infor: "无数据"
+					}
+					return;
+				}
+				try {
+					b = JSON.parse(option.data);
+				} catch (e) {
+					//TODO handle the exception
+				}
+				// console.log(b);
+				console.log(b, "bbbbbbbb")
+				this.data = b;
+			},
+			upData() {
+				// console.log('开始上传');
+				let video = "",
+					imgs = "",
+					that = this;
+				for (let k in this.imgs) {
+					imgs += this.imgs[k].src;
+					if (k != this.imgs.length - 1) {
+						imgs += ","
+					}
+				}
+				for (let y in this.videos) {
+					video += this.videos[y].src;
+					if (y != this.videos.length - 1) {
+						video += ","
+					}
+				}
+				var dataList = {
+					content: this.content,
+					yj: this.yj,
+					tpurl: imgs,
+					spurl: video,
+					hdid: this.data.id,
+					serid: uni.getStorageSync("ids") || that.$store.state.puserID
+					// result: this.content,
+				};
+				wx.showLoading({
+					title: "提交中...",
+					mask: true
+				})
+				// console.log(dataList);
+				wx.request({
+					url: this.$store.state.piAPI + 'taskfk/save', //仅为示例,并非真实接口地址。
+					data: dataList,
+					method: 'POST',
+					header: {
+						// "Content-Type": "application/x-www-form-urlencoded",
+						"content-type": "application/json"
+					},
+					success: (res) => {
+						// console.log(res)
+						if (res.data.code == 200) {
+							wx.showToast({
+								title: '提交成功!',
+								duration: 1000
+							});
+							var time = setTimeout(() => {
+								clearTimeout(time);
+								time = null;
+								uni.redirectTo({
+									url: './grabOrders?from="feedback"'
+								});
+							}, 1000)
+						}
+						wx.showToast({
+							title: 'over',
+							duration: 1000
+						});
+					}
+				});
+				let d = {
+					rid: this.data.id,
+					serid: this.data.serid,
+					type: "stop",
+					that: that
+				}
+				that.$store.commit('useWebScoketApi', d);
+			},
+			takePhoto() {
+				var that = this;
+				wx.chooseImage({
+					count: 4, //可选择数量,默认9
+					sizeType: ['compressed', 'original'], //上传压缩图,原图
+					sourceType: ['album', 'camera'], //从相册选择或从使用相机
+					success: async (res) => {
+						for (var i = 0; i < res.tempFiles.length; i++) {
+							if (res.tempFiles[i].size > 10 * 1024 * 1000) { //上传图片大小限制
+								uni.showToast({
+									title: "照片大小不能10MB",
+									icon: "none"
+								})
+								return
+							}
+						}
+						var tempFilePath = res.tempFilePaths;
+						// try {
+						wx.showLoading({
+							title: "上传中...",
+							mask: true
+						})
+						var that = this;
+						// 循环调用uni.uploadFile ,因微信小程序只支持单文件上传
+						for (var i = 0; i < tempFilePath.length; i++) {
+							wx.uploadFile({
+								// url: 'https://web.byisf.com/api/depl/put-depl', //仅为示例,非真实的接口地址
+								url: that.$store.state.piAPI + '/depl/put-depl',
+								filePath: tempFilePath[i],
+								name: 'file',
+								formData: {
+									'user': 'test' // 上传附带参数
+								},
+								success: (data) => {
+									wx.showToast({
+										title: '上传图片成功!',
+										duration: 1000
+									});
+									// 根据接口具体返回格式   赋值具体对应url
+									that.imgs.push({
+										id: i,
+										src: JSON.parse(data.data).data
+									})
+								}
+							});
+						}
+					}
+				});
+			},
+			delImg(index) {
+				this.imgs.splice(index, 1);
+				// console.log(this.imgs)
+			},
+			takeVideo() {
+				var that = this;
+				wx.chooseVideo({
+					sourceType: ['album', 'camera'],
+					maxDuration: 60,
+					camera: 'back',
+					success(res) {
+						var tempFilePath = res.tempFilePath;
+						// try {
+						wx.showLoading({
+							title: "上传中...",
+							mask: true
+						})
+						wx.uploadFile({
+							// url: 'https://web.byisf.com/api/depl/put-depl', //仅为示例,非真实的接口地址
+							url: that.$store.state.piAPI + '/depl/put-depl',
+							filePath: tempFilePath,
+							name: 'file',
+							formData: {
+								'user': 'test' // 上传附带参数
+							},
+							success: (data) => {
+								wx.showToast({
+									title: '上传视频成功!',
+									duration: 1000
+								});
+								// 		// 根据接口具体返回格式   赋值具体对应url
+								that.videos.push({
+									id: that.videos.length,
+									src: JSON.parse(data.data).data
+								})
+								// console.log(JSON.parse(data.data).data)
+							}
+						});
+					}
+				})
+			},
+			delVideo(index) {
+				this.videos.splice(index, 1);
+				// console.log(this.imgs)
+			},
+			beforeDestroy() {
+				this.$store.commit("changegotuGrabOrders");
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		width: 100%;
+		height: 100%;
+	}
+
+	.mapJQtijiao {
+		width: 100%;
+		height: 100%;
+		margin: 0 auto;
+
+		// .head {
+		// 	position: relative;
+		// 	top: 0;
+		// 	left: 0;
+		// 	z-index: 1;
+		// 	font-size: 16px;
+		// 	font-weight: 600;
+		// 	text-align: center;
+
+		// 	div {
+		// 		width: 100%;
+		// 		border: 1px solid rgba($color: #000000, $alpha: 0);
+		// 	}
+		// }
+
+		.mapJQtijiaomain {
+			width: 100%;
+			height: 100%;
+			// border: 1px solid #000000;
+			box-sizing: border-box;
+			background-color: #F7F7F7;
+
+			.title {
+				margin-left: 1rem;
+				margin-bottom: 0.5rem;
+			}
+		}
+
+		.f {
+			background-color: #fff;
+			padding: 0.5rem 0 0.5rem 0;
+			margin-bottom: 0.5rem;
+
+			.main {
+				margin: 0.5rem;
+				// border: 1px solid rgba($color: #000000, $alpha: 0.5);
+				height: 8rem;
+			}
+		}
+
+		.t,
+		.s {
+			background-color: #fff;
+			padding: 0.5rem 0 0.5rem 0;
+			// margin-bottom: 0.5rem;
+			display: flex;
+			align-items: center;
+			// border: 1px solid green;
+			height: 95px;
+			width: 100%;
+
+			.main {
+				// border: 1px solid red;
+
+				image {
+					width: 3rem;
+					height: 3rem;
+					margin-left: 1rem;
+				}
+			}
+
+			.mains {
+				// border: 1px solid red;
+				width: calc(100% - 3rem);
+				height: 75px;
+			}
+		}
+
+		.butb {
+			// margin: 1rem auto;
+			// width: 6rem;
+			height: 3rem;
+			// // border: 1px solid rgb(46, 118, 228);
+			// border-radius: 1rem;
+			// display: flex;
+			// font-size: 18px;
+			// align-items: cent1er;
+			// justify-con1tent: center;
+			// color: #fff;
+			// background-image: linear-gradient(to right, #4adeff, #55ffff);
+		}
+	}
+
+	// .seeImgs{
+	// 	width: 80%;
+	// 	position:absolute ;
+	// 	top: 13.3rem;
+	// 	right: 0;
+	// }
+	// .seeImgsVideo{
+	// 	width: 80%;
+	// 	position:absolute ;
+	// 	top: 19.8rem;
+	// 	right: 0;
+	// }
+	.custom-style {
+		background-image: linear-gradient(to right, #08EFF6, #0693FD);
+		border-radius: 20px;
+	}
+
+	.submits {
+		margin: 60rpx 90rpx 0;
+		border: none;
+		width: 572rpx;
+		height: 86rpx;
+		// line-height: 86rpx;
+		box-sizing: border-box;
+		border-radius: 15rpx;
+		background-color: #103289 !important;
+		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;
+		}
+	}
+
+	// .main{
+	// 	border: 1px solid transparent;
+	// }
+</style>
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/grabOrders.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/grabOrders.vue"
new file mode 100644
index 0000000..c366cd3
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/grabOrders.vue"
@@ -0,0 +1,408 @@
+<template>
+	<view class="grabOrders">
+		<u-top-tips ref="uTips"></u-top-tips>
+		<view>
+			<u-tabs-swiper ref="uTabs" :list="list" :current="current" @change="tabsChange" :is-scroll="false"
+				swiperWidth="750"></u-tabs-swiper>
+		</view>
+		<!-- @animationfinish="animationfinish" -->
+		<swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish"
+			:style="{ height: 'calc(' + useHeight + ' - 40px)', width: '100%' }">
+			<swiper-item v-for="(item, index) in list" :key="index" :style="{ height: useHeight, width: '100%' }">
+				<view class="swiper-item">
+					<scroll-view scroll-y :style="{ height: useHeight, width: '100%' }" @scrolltolower="onreachBottom">
+						<page0 :listData="rightdata" :swiperCurrent="1" v-if="item.name == '正在进行'" @openOnce="openOnce"
+							@getOrders="getOrders">
+						</page0>
+						<page1 :listData="leftdata" :swiperCurrent="0" v-if="item.name == '可参与'" @openOnce="openOnce"
+							@getOrders="getOrders">
+						</page1>
+						<page2 :listData="overdata" :swiperCurrent="2" v-if="item.name == '已完成'" @openOnce="openOnce"
+							@getOrders="getOrders"></page2>
+						<!-- <view class="a" v-if="item.name == '正在进行'">
+						 	{{leftdata}}
+						 </view>
+						 <view class="b" v-if="item.name == '可参与'">
+						 	{{rightdata}}
+                    </view>-->
+					</scroll-view>
+				</view>
+			</swiper-item>
+		</swiper>
+		<view>
+			<u-modal v-model="showPopup" :content="appdetitle" :show-cancel-button="true" @confirm="confirms"></u-modal>
+			<!-- <u-button @click="open">
+				打开模态框
+            </u-button>-->
+		</view>
+	</view>
+</template>
+<script>
+	import page0 from "./inPage/page0.vue";
+	import page1 from "./inPage/page1.vue";
+	import page2 from "./inPage/page2.vue";
+	export default {
+		components: {
+			page0,
+			page1,
+			page2
+		},
+		data() {
+			return {
+				list: [{
+						name: "可参与",
+					}, {
+						name: "正在进行",
+					},
+					{
+						name: "已完成",
+					},
+				],
+				// 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值
+				current: 0, // tabs组件的current值,表示当前活动的tab选项
+				swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的
+				leftdata: [],
+				rightdata: [],
+				overdata: [],
+				showPopup: false,
+				appdetitle: "",
+				popupData: {},
+				useHeight: "100%",
+			};
+		},
+		onBackPress(e) {
+			console.log("监听返回按钮事件2", e);
+			uni.redirectTo({
+				url: "/pages/grabOrders/grabOrdersMain/business"
+			})
+			// 此处一定姚要return为true,否则页面不会返回到指定路径
+			return true;
+		},
+		watch: {
+			current() {
+				console.log(this.current)
+				// if (this.current == 0) {
+				// 	console.log(1)
+				// this.getGrabOrders(0);			
+				this.getGrabOrders(this.current);
+				// }
+			},
+			change() {
+				this.getGrabOrders(this.current);
+			},
+
+		},
+		mounted() {
+			// this.getGrabOrders(this.current);
+			let type = uni.getSystemInfoSync().platform;
+			if (type == "android") {
+				this.useHeight = "calc(100vh - 40px)";
+			}
+		},
+		computed: {
+			change() {
+				return this.$store.state.gotuGrabOrders;
+			},
+		},
+		onLoad: function(options) {
+			// debugger
+			// console.log(options)
+			if (options.detailData == 0) {
+				this.current = 0;
+				this.swiperCurrent = 0;
+			} else {
+				this.current = 1;
+				this.swiperCurrent = 1;
+			}
+			if (options.in) {
+				this.current = 0;
+				this.swiperCurrent = 0;
+			}
+			this.getGrabOrders(this.current);
+
+			if (options.from == "feedback") {
+				that.useWebScoketApi(item.id, item.serid, "stop");
+			}
+		},
+		methods: {
+			//实时位置传递
+			setNowposition(rid, jd, wd) {
+				console.log(uni.getStorageSync("ids") || this.$store.state.puserID, rid, jd, wd);
+			},
+			// tabs通知swiper切换
+			tabsChange(index) {
+				this.swiperCurrent = index;
+			},
+			// swiper-item左右移动,通知tabs的滑块跟随移动
+			transition(e) {
+				let dx = e.detail.dx;
+				this.$refs.uTabs.setDx(dx);
+			},
+			// 由于swiper的内部机制问题,快速切换swiper不会触发dx的连续变化,需要在结束时重置状态
+			// swiper滑动结束,分别设置tabs和swiper的状态
+			animationfinish(e) {
+				let current = e.detail.current;
+				this.$refs.uTabs.setFinishCurrent(current);
+				this.swiperCurrent = current;
+				this.current = current;
+			},
+			// scroll-view到底部加载更多
+			onreachBottom() {},
+			openOnce(val) {
+				//打开地图
+				// console.log(this.swiperCurrent)
+				val["buttype"] = this.swiperCurrent == 1 ? 0 : 1; //tab标识,0正在进行,1可参与
+				val["serid"] = (uni.getStorageSync("ids") || this.$store.state.puserID) + ",";
+				val["appenUrl"] = this.$store.state.piAPI;
+				//打开地图
+
+				// if (val.iscation == 1) {
+				if (val.type == 0) {
+					//是队长-上传反馈
+					val["butCT"] = "beginUp";
+				} else if (val.type == 2) {
+					//是队长-开始任务
+					val["butCT"] = "begin";
+				} else {
+					//是队长-完成任务任务
+					val["butCT"] = "over";
+				}
+				// } else {
+				// 	if (val.type == 0) {
+				// 		//不是队长-上传反馈
+				// 		val["butCT"] = "over";
+				// 	} else if (val.type == 2) {
+				// 		//不是队长-开始任务
+				// 		val["butCT"] = "over";
+				// 	} else {
+				// 		//不是队长-完成任务任务
+				// 		val["butCT"] = "over";
+				// 	}
+				// }
+				val["myid"] = uni.getStorageSync("ids") || this.$store.state.puserID;
+				val["myName"] = uni.getStorageSync("name") || this.$store.state.puserName;
+				console.log(val);
+				// return
+				uni.navigateTo({
+					url: "./map?data=" + JSON.stringify(val),
+				});
+			},
+			getGrabOrders(val = 0) {
+				//获取全部的数据
+				let that = this,
+					d = {
+						serid: uni.getStorageSync("ids") || that.$store.state.puserID,
+						type: val + "",
+						tasktype: '2'
+					};
+				let isWhere = val == 0 ? "可参与" : val == 1 ? "正在进行" : "已完成";
+				if (val == 1) {
+					d.jurisdiction = this.$store.state.UserData.jurisdiction;
+					d.workjurisdiction = this.$store.state.UserData.workjurisdiction;
+				}
+				// console.log(that.$store.state.puserID)
+				console.log(d)
+				uni.request({
+					url: this.$store.state.piAPI + "taskqd/selectLi",
+					method: "POST",
+					data: d,
+					header: {
+						"content-type": "application/x-www-form-urlencoded",
+					},
+					success(res) {
+						const data = res.data.data;
+						console.log(data);
+						if (isWhere == "可参与") {
+							that.rightdata = data;
+						} else if (isWhere == "正在进行") {
+							let no = [],
+								ok = [],
+								begin = [],
+								no1 = [],
+								ok1 = [],
+								begin1 = [];
+							for (var k in data) {
+								data[k].type = data[k].rtype;
+								if (data[k].iscation == 1) {
+									if (data[k].type == 0) {
+										//是队长-上传反馈
+										no1.push(data[k]);
+									} else if (data[k].type == 2) {
+										//是队长-开始任务
+										begin1.push(data[k]); //是队长-上传反馈
+									} else {
+										//是队长-完成任务任务
+										ok1.push(data[k]);
+									}
+								} else {
+									if (data[k].type == 0) {
+										//不是队长-上传反馈
+										no.push(data[k]);
+									} else if (data[k].type == 2) {
+										//不是队长-开始任务
+										begin.push(data[k]);
+									} else {
+										//不是队长-完成任务任务
+										ok.push(data[k]);
+									}
+								}
+							}
+
+							that.leftdata = [...begin1, ...begin, ...no1, ...no, ...ok1, ...ok];
+							// console.log(that.leftdata)
+							// for (let k in begin) {
+							// 	let id = begin[k].id;
+							// 	that.isBeginTask[id] = {
+							// 		id: id,
+							// 		// position: that.createPosition(id)
+							// 	}
+							// }
+							// for (let k in begin1) {
+							// 	let id = begin1[k].id;
+							// 	that.isBeginTask[id] = {
+							// 		id: id,
+							// 		// position: that.createPosition(id)
+							// 	}
+							// }
+							// for (let k in no1) {
+							// 	let id = no1[k].id;
+							// 	that.$store.commit("addTask", id)
+							// }
+							// for (let k in no) {
+							// 	let id = no[k].id;
+							// 	that.$store.commit("addTask", id)
+							// }
+							// that.isOnTask[44].position.continuedTime();
+						} else {
+							that.overdata = data;
+						}
+					},
+				});
+			},
+			createPosition(id) {
+				return new $getPositions({
+					id: id,
+					fn: function(res) {
+						console.log(res);
+						// that.setNowposition(re)
+					}
+				})
+			},
+			// tips(type, title) {
+			// 	this.$refs.uTips.show({
+			// 		title: title,
+			// 		type: type,
+			// 		duration: '2300'
+			// 	})
+			// 	this.getGrabOrders(this.current); //重获取数据
+			// },
+			// useWebScoketApi(rid, serid, type) {
+			// 	let that = this;
+			// 	uni.request({
+			// 		url: this.$store.state.piAPI + "taskqd/startTask?" + `rid=${rid}&serid=${serid}&type=${type}`,
+			// 		method: "GET",
+			// 		success(res) {
+			// 			let type = res.data.data.type;
+			// 			if (type == 'start') { //开启成功
+			// 				that.tips('success', '开启任务成功')
+			// 				return;
+			// 			}
+			// 			if (type == 'stop') { //开启成功
+			// 				that.tips('success', '反馈任务成功')
+			// 				return;
+			// 			}
+			// 		},
+			// 	});
+			// },
+			getOrders(b) {
+				let val = b.val,
+					item = b.item,
+					that = this;
+				console.log(val, item)
+
+				if (val == 0) { //正在进行
+					if (item.type == "2") { //开始任务按钮
+						// that.useWebScoketApi(item.id, item.serid, "start");
+						let d = {
+							rid: item.id,
+							serid: item.serid,
+							type: "start",
+							// data: JSON.stringify(item),
+							that: that,
+							fn: () => {
+								that.getGrabOrders(that.current); //重获取数据
+								// setTimeout(() => {
+								// 	that.openOnce(item);
+								// }, 500)
+							}
+						}
+						that.$store.commit('useWebScoketApi', d);
+					}
+					if (item.type == "0") { //上传反馈
+						//反馈
+						uni.navigateTo({
+							url: "./feedback?data=" + JSON.stringify(item),
+							// url: "./feedback"
+						});
+					}
+				} else { //可参与
+					//接单
+					this.appdetitle = "是否参与任务:" + item.rname;
+					this.showPopup = true;
+					this.popupData = item;
+				}
+			},
+			confirms() {
+				let that = this;
+				this.popupData["serid"] = (uni.getStorageSync("ids") || that.$store.state.puserID) + ",";
+				this.popupData["captain"] = uni.getStorageSync("name") || that.$store.state.puserName;
+				// console.log(item)
+				// return;
+				uni.request({
+					url: this.$store.state.piAPI + "taskqd/Graborder",
+					method: "POST",
+					// data: {
+					// 	securityId: this.$store.state.puserID,
+					// 	status: tab
+					// },
+					header: {
+						"content-type": "application/json",
+					},
+					data: this.popupData,
+					success(res) {
+						const data = res.data.msg;
+						// console.log(data);
+						if (data == "抢单成功") {
+							uni.showToast({
+								title: data,
+								duration: 2000,
+							});
+						}
+						// that.listData = data;
+						// that.getGrabOrders(this.);
+						that.current = 0;
+						that.swiperCurrent = 0;
+						that.$store.commit("changegotuGrabOrders");
+
+					},
+				});
+			},
+		},
+	};
+</script>
+
+<style scoped lang="scss">
+	page,
+	.grabOrders {
+		height: 100% !important;
+		width: 100% !important;
+	}
+
+	page {
+		overflow: hidden !important;
+	}
+
+	.swiper-item {
+		flex: 1;
+	}
+</style>
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page0.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page0.vue"
new file mode 100644
index 0000000..aee0871
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page0.vue"
@@ -0,0 +1,221 @@
+<template>
+	<view class="onveMain">
+		<view class="once" v-for="(item,index) in listData" :key="index" @click="openOnce(item)">
+			<view class="onve-left">
+				<view class="o-l-img">
+					<image :src="item.url" mode=""></image>
+				</view>
+				<view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<!-- <view class="o-l-m-center">
+						<u-icon name="account" color="#d0d0d0" size="28"></u-icon>
+						培训讲师:<span>{{item.fname}}</span>
+					</view> -->
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						培训开始时间:
+					</view>
+					<view class="o-l-m-center" style="padding-left: 13px;">
+						<!-- <u-icon name="volume" color="#d0d0d0" size="28"></u-icon> -->
+					<!-- 	时间: -->
+						{{item.time}}
+					</view>
+				</view>
+			</view>
+			<view class="onve-right">
+				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" :disabled="true"
+					v-if="item.iscation == 0" @click="getOrders(swiperCurrent,item)">
+					<!-- <span class="Cation notCation">队员</span> -->
+					{{item.type == 1?"完成反馈":item.type == 0?"正在进行":"还未开始"}}
+				</u-button>
+				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini"
+					:disabled="item.type == 1" v-if="item.iscation == 1" @click="getOrders(swiperCurrent,item)">
+					<!-- <span class="Cation">队长</span> -->
+					{{item.type == 1?"完成反馈":item.type == 0?"上传反馈":"开始任务"}}
+				</u-button>
+				<view class="o-r-$">
+					积分:{{item.integral}}
+				</view>
+			</view>
+		</view>
+		<u-divider>没有更多了</u-divider>
+		<view class="">
+			{{res}}
+		</view>
+		<br />
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["listData", "swiperCurrent"],
+		data() {
+			return {
+				res: ''
+			}
+		},
+		computed: {
+			changes() {
+				return this.$store.state.changes;
+			}
+		},
+		watch: {
+			changes() {
+				console.log(this.$store.state.isOnTaskValue)
+				this.res = this.$store.state.isOnTaskValue.intlat;
+			}
+		},
+		methods: {
+			openOnce(val) {
+				this.$emit("openOnce", val);
+			},
+			getOrders(val, item) {
+				let b = {
+					val: val,
+					item: item
+				}
+				this.$emit("getOrders", b);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.onveMain {
+		width: 100%;
+		height: auto;
+	}
+
+	.once {
+		width: calc(100% - 10px);
+		height: 100px;
+		border: 1px solid #d0d0d0;
+		padding: 8px;
+		box-sizing: border-box;
+		margin: 5px;
+		border-radius: 8px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		.onve-left {
+			width: 75%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.o-l-img {
+				width: 80px;
+				height: 80px;
+				background-color: #d0d0d0;
+				margin-right: 5px;
+				border-radius: 7px;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 7px;
+				}
+			}
+
+			.o-l-main {
+				width: calc(100% - 85px);
+				height: 80px;
+				display: flex;
+				// align-items: center;
+				justify-content: center;
+				flex-direction: column;
+
+				.o-l-m-up {
+					height: 30px;
+					font-size: 16px;
+				}
+			}
+		}
+
+		.onve-right {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-direction: column;
+
+			view {
+				margin-top: 10px;
+			}
+		}
+
+		.o-l-m-center span {
+			display: inline-block;
+			padding: 0px 5px 1px;
+			margin: 0 5px;
+			background-color: #ECF5FF;
+			border: 0.5px solid #e4f1ff;
+			color: #429FFF;
+			border-radius: 8px;
+		}
+
+		// .onceUp {
+		// 	width: 100%;
+		// 	height: 25%;
+		// 	padding-bottom: 5px !important;
+		// 	border-bottom: 1px solid #d0d0d0;
+		// }
+
+		// .onceMain {
+		// 	width: 100%;
+		// 	height: 80%;
+		// 	display: flex;
+		// 	align-items: center;
+		// 	justify-content: center;
+
+		// 	.o-m-left {
+		// 		width: 80%;
+		// 		height: 100%;
+		// 		border: 1 solid #d0d0d0;
+		// 		display: flex;
+		// 		// align-items: center;
+		// 		justify-content: center;
+		// 		flex-direction: column;
+
+		// 		view {
+		// 			margin-top: 2.5px;
+		// 			padding-bottom: 2.5px;
+		// 		}
+		// 	}
+		// }
+
+	}
+
+	.orange {
+		color: #FF7B15;
+	}
+
+	.green {
+		color: #00e713;
+	}
+
+	.greens {
+		color: #18a655 !important;
+	}
+
+	.blues {
+		color: #2680F0 !important;
+	}
+
+	.Cation {
+		display: inline-block;
+		position: absolute;
+		left: -35px;
+
+		&::after {
+			content: "";
+		}
+	}
+
+	.notCation {
+		color: #18a655;
+	}
+</style>
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page1.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page1.vue"
new file mode 100644
index 0000000..1efb40b
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page1.vue"
@@ -0,0 +1,178 @@
+<template>
+	<view class="onveMain">
+
+		<view class="once" v-for="(item,index) in listData" :key="index" @click="openOnce(item)">
+			<view class="onve-left">
+				<view class="o-l-img">
+					<image :src="item.url" mode=""></image>
+				</view>
+				<!-- <view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="order" color="#d0d0d0" size="28"></u-icon>
+						人数:{{item.num}}/ {{item.jnum}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						时间:{{item.time.slice(0,10)}}
+					</view>
+				</view> -->
+				<view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<!-- <view class="o-l-m-center">
+						<u-icon name="account" color="#d0d0d0" size="28"></u-icon>
+						培训讲师:<span>{{item.fname}}</span>
+					</view> -->
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						培训开始时间:
+					</view>
+					<view class="o-l-m-center" style="padding-left: 13px;">
+						<!-- <u-icon name="volume" color="#d0d0d0" size="28"></u-icon> -->
+						<!-- 	时间: -->
+						{{item.time}}
+					</view>
+				</view>
+			</view>
+			<view class="onve-right">
+				<u-button :class="[swiperCurrent == 0?'orange':'green']" size="mini" :disabled="item.num==item.jnum"
+					@click="getOrders(swiperCurrent,item)">
+					{{item.num==item.jnum?"人数已满":"我要参与"}}
+				</u-button>
+				<view class="o-r-$">
+					积分:{{item.integral}}
+				</view>
+			</view>
+		</view>
+		<u-divider>没有更多了</u-divider>
+		<br />
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["listData", "swiperCurrent"],
+		methods: {
+			openOnce(val) {
+				this.$emit("openOnce", val);
+			},
+			getOrders(val, item) {
+				let b = {
+					val: val,
+					item: item
+				}
+				this.$emit("getOrders", b);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.onveMain {
+		width: 100%;
+		height: auto;
+	}
+
+	.once {
+		width: calc(100% - 10px);
+		height: 100px;
+		border: 1px solid #d0d0d0;
+		padding: 8px;
+		box-sizing: border-box;
+		margin: 5px;
+		border-radius: 8px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		.onve-left {
+			width: 75%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.o-l-img {
+				width: 80px;
+				height: 80px;
+				background-color: #d0d0d0;
+				margin-right: 5px;
+				border-radius: 7px;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 7px;
+				}
+			}
+
+			.o-l-main {
+				width: calc(100% - 85px);
+				height: 80px;
+				display: flex;
+				// align-items: center;
+				justify-content: center;
+				flex-direction: column;
+
+				.o-l-m-up {
+					height: 30px;
+					font-size: 16px;
+				}
+			}
+		}
+
+		.onve-right {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-direction: column;
+
+			view {
+				margin-top: 10px;
+			}
+		}
+
+		// .onceUp {
+		// 	width: 100%;
+		// 	height: 25%;
+		// 	padding-bottom: 5px !important;
+		// 	border-bottom: 1px solid #d0d0d0;
+		// }
+
+		// .onceMain {
+		// 	width: 100%;
+		// 	height: 80%;
+		// 	display: flex;
+		// 	align-items: center;
+		// 	justify-content: center;
+
+		// 	.o-m-left {
+		// 		width: 80%;
+		// 		height: 100%;
+		// 		border: 1 solid #d0d0d0;
+		// 		display: flex;
+		// 		// align-items: center;
+		// 		justify-content: center;
+		// 		flex-direction: column;
+
+		// 		view {
+		// 			margin-top: 2.5px;
+		// 			padding-bottom: 2.5px;
+		// 		}
+		// 	}
+		// }
+
+	}
+
+	.orange {
+		color: orange;
+	}
+
+	.green {
+		color: #00ba15;
+	}
+</style>
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page2.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page2.vue"
new file mode 100644
index 0000000..1efb40b
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/inPage/page2.vue"
@@ -0,0 +1,178 @@
+<template>
+	<view class="onveMain">
+
+		<view class="once" v-for="(item,index) in listData" :key="index" @click="openOnce(item)">
+			<view class="onve-left">
+				<view class="o-l-img">
+					<image :src="item.url" mode=""></image>
+				</view>
+				<!-- <view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="order" color="#d0d0d0" size="28"></u-icon>
+						人数:{{item.num}}/ {{item.jnum}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						时间:{{item.time.slice(0,10)}}
+					</view>
+				</view> -->
+				<view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<!-- <view class="o-l-m-center">
+						<u-icon name="account" color="#d0d0d0" size="28"></u-icon>
+						培训讲师:<span>{{item.fname}}</span>
+					</view> -->
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						培训开始时间:
+					</view>
+					<view class="o-l-m-center" style="padding-left: 13px;">
+						<!-- <u-icon name="volume" color="#d0d0d0" size="28"></u-icon> -->
+						<!-- 	时间: -->
+						{{item.time}}
+					</view>
+				</view>
+			</view>
+			<view class="onve-right">
+				<u-button :class="[swiperCurrent == 0?'orange':'green']" size="mini" :disabled="item.num==item.jnum"
+					@click="getOrders(swiperCurrent,item)">
+					{{item.num==item.jnum?"人数已满":"我要参与"}}
+				</u-button>
+				<view class="o-r-$">
+					积分:{{item.integral}}
+				</view>
+			</view>
+		</view>
+		<u-divider>没有更多了</u-divider>
+		<br />
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["listData", "swiperCurrent"],
+		methods: {
+			openOnce(val) {
+				this.$emit("openOnce", val);
+			},
+			getOrders(val, item) {
+				let b = {
+					val: val,
+					item: item
+				}
+				this.$emit("getOrders", b);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.onveMain {
+		width: 100%;
+		height: auto;
+	}
+
+	.once {
+		width: calc(100% - 10px);
+		height: 100px;
+		border: 1px solid #d0d0d0;
+		padding: 8px;
+		box-sizing: border-box;
+		margin: 5px;
+		border-radius: 8px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		.onve-left {
+			width: 75%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.o-l-img {
+				width: 80px;
+				height: 80px;
+				background-color: #d0d0d0;
+				margin-right: 5px;
+				border-radius: 7px;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 7px;
+				}
+			}
+
+			.o-l-main {
+				width: calc(100% - 85px);
+				height: 80px;
+				display: flex;
+				// align-items: center;
+				justify-content: center;
+				flex-direction: column;
+
+				.o-l-m-up {
+					height: 30px;
+					font-size: 16px;
+				}
+			}
+		}
+
+		.onve-right {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-direction: column;
+
+			view {
+				margin-top: 10px;
+			}
+		}
+
+		// .onceUp {
+		// 	width: 100%;
+		// 	height: 25%;
+		// 	padding-bottom: 5px !important;
+		// 	border-bottom: 1px solid #d0d0d0;
+		// }
+
+		// .onceMain {
+		// 	width: 100%;
+		// 	height: 80%;
+		// 	display: flex;
+		// 	align-items: center;
+		// 	justify-content: center;
+
+		// 	.o-m-left {
+		// 		width: 80%;
+		// 		height: 100%;
+		// 		border: 1 solid #d0d0d0;
+		// 		display: flex;
+		// 		// align-items: center;
+		// 		justify-content: center;
+		// 		flex-direction: column;
+
+		// 		view {
+		// 			margin-top: 2.5px;
+		// 			padding-bottom: 2.5px;
+		// 		}
+		// 	}
+		// }
+
+	}
+
+	.orange {
+		color: orange;
+	}
+
+	.green {
+		color: #00ba15;
+	}
+</style>
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map.vue"
new file mode 100644
index 0000000..477f73a
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map.vue"
@@ -0,0 +1,1187 @@
+<template>
+	<view class="content">
+		<u-top-tips ref="uTips"></u-top-tips>
+		<!-- <u-button type="info" @click="acc">测试</u-button> -->
+		<!-- <web-view :src="urls" @message="message"></web-view> -->
+		<!-- <map :scale='18' id="myMap" style="width: 100%" :style="{height: mapHeight + 'px'}" :markers="markersCom"
+			:longitude="longitude" :latitude="latitude" :circles="circlesCom" :polyline="mypolylines"
+			show-location="true">
+			<cover-view class="dingwBut" @click="mapControlsBack">
+				<cover-image src="./map/img/dingwei.png" @click="mapControlsBack">
+				</cover-image>
+			</cover-view>
+
+		</map> -->
+		<view id="Umain" :style="{ height: activeHeight}" @touchstart="touchstart" @touchend="touchend"
+			@touchmove="touchmove">
+			<!-- <view :class="['activeTip',activeTip?'isOpens':'notOpens'] " :style="{height:'30px'}"></view> -->
+			<!-- <view class="once-b">
+				任务详情
+			</view> -->
+			<view class="once">
+				<span class="once-left">
+					培训标题
+				</span>
+				<span class="once-right">
+					{{ourData.rname}}
+				</span>
+			</view>
+			<view class="once">
+				<span class="once-left">
+					培训内容
+				</span>
+				<span class="once-right">
+					{{ourData.content}}
+				</span>
+			</view>
+			<view class="once">
+				<span class="once-left">
+					培训讲师
+				</span>
+				<span class="once-right">
+					<span>{{ourData.fname}}</span>
+				</span>
+			</view>
+			<view class="once">
+				<span class="once-left">
+					联系方式
+				</span>
+				<span class="once-right">
+					<span>{{ourData.phone}}</span>
+				</span>
+			</view>
+			<view class="once">
+				<span class="once-left">
+					培训地点
+				</span>
+				<span class="once-right">
+					{{ourData.gathername}}
+				</span>
+			</view>
+			<view class="once">
+				<span class="once-left">
+					开始时间
+				</span>
+				<span class="once-right">
+					{{ourData.time}}
+				</span>
+			</view>
+			<view class="once">
+				<span class="once-left">
+					参培队伍
+				</span>
+				<span class="once-right">
+					保安员队伍
+				</span>
+			</view>
+			<!-- <view class="once">
+				<span class="once-left">
+					队长
+				</span>
+				<span class="once-right">
+					<span>{{ourData.captain}}</span>
+				</span>
+			</view> -->
+			<view class="once">
+				<span class="once-left">
+					参与者
+				</span>
+				<span class="once-right">
+					<span v-for="(item,index) in ourData.teams">{{item}}</span>
+				</span>
+			</view>
+			<view class="once-c" v-if="ourData.buttype == 0">
+				<u-button :type="ourData.butCT == 'beginUp'?'primary':ourData.butCT == 'begin'?'success':'info'"
+					@click="openAPP(ourData.buttype)" :disabled="ourData.butCT== 'over' || ourData.iscation == '0'">
+					{{ourData.butCT == 'beginUp'?(ourData.iscation == '0'?'正在培训':'上传反馈'):ourData.butCT == 'begin'?(ourData.iscation == '0'?'还未开始':'开始培训'):'培训结束'}}
+				</u-button>
+			</view>
+			<view class="once-c" v-if="ourData.buttype == 1">
+				<!-- <u-button :type="ourData.num==ourData.jnum?'info':'success'" @click="openAPP(ourData.buttype)"
+					:disabled="(ourData.num==ourData.jnum)&& ourData.buttype==1 ||ourData.type == 1">
+					{{ourData.num==ourData.jnum?"人数已满":'我参与'}}
+				</u-button> -->
+				<u-button type="success" @click="openAPP(ourData.buttype)">
+					我参与
+				</u-button>
+			</view>
+
+		</view>
+		<u-popup v-model="showIn" mode="bottom" border-radius="14" z-index='1000001' :mask-close-able="true">
+			<view class="Info2">
+				<view class="Info4">是否参加活动</view>
+				<u-button class="Info5" type="primary" @click="openAPP('oks')">参加</u-button>
+				<u-button class="Info5" type="error" @click="openAPP('nos')">取消</u-button>
+				<!--<view  class="Info3">
+				</view> -->
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script>
+	import $moveUniAppMap from "./map/js/moveUniAppMap.js"
+	export default {
+		data() {
+			return {
+				urls: '',
+				// dataList: [],
+				fn: null,
+				rid: '',
+				webV: null,
+				wv: null,
+				mapHeight: 0,
+				latitude: 28.687205773173343,
+				longitude: 115.8995839881188,
+				circles: [], //圆
+				markers: [], //标记点
+				mypolylines: [{ //指定一系列坐标点,从数组第一项连线至最后一项
+						points: [],
+						color: "#FE0000", //线的颜色
+						width: 10, //线的宽度
+						dottedLine: false, //是否虚线
+						arrowLine: false, //带箭头的线 开发者工具暂不支持该属性
+					},
+					{ //指定一系列坐标点,从数组第一项连线至最后一项
+						points: [],
+						color: "#10a4ff", //线的颜色
+						width: 10, //线的宽度
+						dottedLine: false, //是否虚线
+						arrowLine: false, //带箭头的线 开发者工具暂不支持该属性
+					},
+				],
+				useTime: null,
+				useTimeSet: null,
+				times: 3000,
+				setTimes: 30000,
+				ourData: {},
+				map: null,
+				domMove: null,
+				query: null,
+				showIn: false,
+				customStyle: {
+					backgroundColor: "#FFF",
+				},
+				bye: true,
+				types: '', //android?
+				moveDom: null, //移动实体类
+				activeHeight: "auto ", //活动高度  默认自动
+				afterClass: {},
+				activeTip: false, //是否展开
+
+				mapControls: [{
+					id: "1",
+					position: 20,
+					iconPath: "/static/tabbar/addSelectedIcon.png",
+					clickable: true,
+				}], //地图控件
+			}
+		},
+		methods: {
+			mapControlsBack() {
+				// console.log(1111)
+				this.getLocationInfo("notSet");
+				// this.bye = false;
+				// this.timeBegin(1);
+			},
+			touchstart(e) {
+				// console.log(e.changedTouches[0].clientY)
+				if (this.moveDom) {
+					this.moveDom.ListenerTouchstart(e)
+				}
+			},
+			touchmove(e) {
+				// console.log(e.changedTouches[0].clientY)
+				if (this.moveDom) {
+					this.moveDom.ListenerTouchmove(e)
+				}
+			},
+			touchend(e) {
+				// console.log(e.changedTouches[0].clientY)
+				if (this.moveDom) {
+					this.moveDom.ListenerTouchend(e)
+				}
+			},
+			openAPP(type) {
+				let that = this;
+				if (type == "oks") {
+					let dataAppend = that.ourData;
+					dataAppend["serid"] = (uni.getStorageSync("ids") || that.$store.state.puserID) + ",";
+					dataAppend["captain"] = uni.getStorageSync("name") || that.$store.state.puserName;
+					uni.request({
+						url: that.$store.state.piAPI + "taskqd/Graborder",
+						method: "POST",
+						data: dataAppend,
+						header: {
+							"content-type": "application/json",
+						},
+						success(res) {
+							if (res.data.msg == "抢单成功") {
+								// appenUrl: "http://192.168.0.108:83/",
+								// butCT: "beginUp",
+								// buttype: 0,
+								// captain: "我",
+								// city: "南昌市",
+								// content: "测试",
+								// district: "西湖区",
+								// id: 37,
+								// integral: "222",
+								// iscation: "1",
+								// jnum: 3,
+								// line: "LINESTRING(115.8995839881188 28.687205773173343,115.89391916267935 28.678966027079593,115.90404718391959 28.673644524394046,115.91211526863638 28.681369286356936)",
+								// num: 1,
+								// nums: 0,
+								// province: "江西省",
+								// publisher: "管理",
+								// raddress: null,
+								// rname: "测试1",
+								// rtype: "0",
+								// serid: "1123598821738675201,",
+								// team: "你,他,它",
+								// time: "2022-02-18 14:15:52",
+								// type: "2",
+								// fname: "管理者",
+								// url: "http://2
+								// myid:111
+								//myName:222
+								// that.ourData.rtype = 2;
+								// that.ourData.type = 2;
+								// that.ourData.buttype = 0;
+								// that.ourData.butCT = "begin";
+								// if (that.ourData.num == 0) {
+								// 	that.ourData.iscation = "1";
+								// 	that.ourData.serid += that.ourData.myid + ',';
+								// 	that.ourData.captain = that.ourData.myName;
+								// } else {
+								// 	that.ourData.iscation = "0";
+								// 	that.ourData.serid += that.ourData.myid + ',';
+								// 	that.ourData.team += ',' + that.ourData.myid;
+								// }
+								// that.ourData.butCT = "begin";
+								uni.showToast({
+									title: res.data.msg,
+									duration: 2000,
+								});
+								setTimeout(function() {
+									uni.redirectTo({
+										url: "/pages/grabOrders/grabOrdersZAFFPX/grabOrders?in=true"
+									})
+								}, 2200)
+							}
+						},
+						complete() {
+							that.showIn = false;
+						}
+					})
+					return
+				} else if (type == "nos") {
+					this.showIn = false;
+					return
+				}
+				// console.log(type)
+				if (type != 1) {
+					if (that.ourData.butCT == "beginUp") {
+						// 反馈
+						// if (that.onPosition) {
+						// 	that.onPosition.overContinued();
+						// }
+						this.bye = true;
+						uni.redirectTo({
+							url: '/pages/grabOrders/grabOrdersZAFFPX/feedback?data=' + JSON.stringify(this
+									.ourData) +
+								'&other="11111"'
+						});
+					} else if (that.ourData.butCT == "begin") {
+						that.bye = true; //点击开始 这个页面就不用了
+						// 开始任务
+						// that.setUniAppMsg("hBackMsg", {
+						// 	type: "start",
+						// 	ourData: {
+						// 		id: that.ourData.id,
+						// 		serid: that.ourData.serid
+						// 	},
+						// 	fn: function(val) {
+						// 		if (val == "success") {
+						// 			// console.log("成功开启任务")
+						// 			that.ourData.butCT = "beginUp";
+						// 			that.ourData.rtype = '0';
+						// 			that.ourData.type = "0";
+						// 		}
+						// 	}
+						// })
+						let rid = that.ourData.id,
+							serid = that.ourData.serid,
+							type = 'start',
+							url = that.$store.state.piAPI + "taskqd/startTask?" +
+							`rid=${rid}&serid=${serid}&type=${type}`;
+						// uni.request({
+						// 	url: url,
+						// 	method: "get",
+						// 	// header: {
+						// 	// 	"content-type": "application/json",
+						// 	// },
+						// 	success(res) {
+						// 		// that.timeBegin(1);
+						// 		// that.ourData.butCT = "beginUp";
+						// 		// that.ourData.rtype = '0';
+						// 		// that.ourData.type = "0";
+						// 	},
+						// 	complete() {
+						// 		that.showIn = false;
+						// 	}
+						// })
+						let d = {
+							rid: rid,
+							serid: serid,
+							type: type,
+							// data: JSON.stringify(item),
+							goto: "grabOrdersZAFFPX",
+							that: that,
+							fn: () => {
+								// that.getGrabOrders(that.current); //重获取数据
+								// setTimeout(() => {
+								// 	that.openOnce(item);
+								// }, 500)
+							}
+						}
+						that.$store.commit('useWebScoketApi', d);
+						// axios.get(url).then((res) => {
+						// 	// console.log(res);
+
+						// })
+					}
+				} else {
+					this.showIn = true;
+					// this.openAPP('oks')
+					// this.$confirm('是否参与活动:' + this.ourData.rname + "?", '提示', {
+					// 	confirmButtonText: '确定',
+					// 	cancelButtonText: '取消',
+					// 	type: 'success',
+					// 	center: true,
+					// 	customClass: "customClass"
+					// }).then(() => {
+					// 	let url = that.ourData.appenUrl + "taskqd/Graborder",
+					// 		ourDataAppend = that.ourData;
+					// 	console.log(url, ourDataAppend)
+
+					// }).catch(() => {
+
+					// });
+				}
+			},
+			// message(event) {
+			// 	let data = event.detail.data;
+
+			// 	console.log(data);
+			// },
+			// sendRequestData(res, plt = 0) {
+			// 	let param = JSON.stringify(res)
+			// 	console.log(param);
+			// 	if (plt == 1) {
+			// 		this.webV.postMessage({
+			// 			type: 'new',
+			// 			data: param
+			// 		})
+			// 	} else {
+			// 		this.wv.evalJS(`requestData(${param})`);
+			// 	}
+			// },
+			timeBegin(val) {
+				// console.log(this.bye)
+				let that = this;
+				if (this.bye) {
+					console.log("再见")
+					if (that.useTime) {
+						clearTimeout(that.useTime);
+						that.useTime = null;
+					}
+					if (that.useTimeSet) {
+						clearTimeout(that.useTimeSet);
+						that.useTimeSet = null;
+					}
+					return
+				}
+				if (this.useTime) {
+					return
+				} else {
+					//加入自己的路线基础  索引1
+					// this.mypolylines[1] = { //指定一系列坐标点,从数组第一项连线至最后一项
+					// 	points: [],
+					// 	color: "#10a4ff", //线的颜色
+					// 	width: 10, //线的宽度
+					// 	dottedLine: false, //是否虚线
+					// 	arrowLine: false, //带箭头的线 开发者工具暂不支持该属性
+					// }
+					if (val == 1) {
+						that.getLocationInfo();
+					}
+					this.useTime = setTimeout(() => {
+						that.getLocationInfo();
+						clearTimeout(this.useTime);
+						that.useTime = null;
+						that.timeBegin();
+					}, that.times)
+				}
+			},
+			timeBeginSet(d) {
+				let that = this;
+				if (this.useTimeSet) {
+					return
+				} else {
+					that.$store.commit("setMsg", d)
+					this.useTimeSet = setTimeout(() => {
+						clearTimeout(this.useTimeSet);
+						that.useTimeSet = null;
+					}, that.setTimes)
+				}
+			},
+			mover(o, a) {
+				let that = this;
+				uni.createMapContext("myMap", this).moveToLocation({
+					longitude: o,
+					latitude: a,
+				});
+			},
+			getLocationInfo(val) {
+				var that = this;
+				uni.getLocation({
+					type: 'gcj02',
+					isHighAccuracy: true,
+					success(res) {
+						// console.log(res, "当前位置");
+						that.latitude = res.latitude
+						that.longitude = res.longitude
+						// console.log(that.latitude)
+						// console.log(that.longitude)
+						that.map.moveToLocation({
+							latitude: res.latitude,
+							longitude: res.longitude
+						});
+						// that.mover(res.longitude, res.latitude); //移动
+						// that.$store.commit("setMsg",d)
+						//标记点
+						that.markers = [{
+							id: 1,
+							latitude: res.latitude,
+							longitude: res.longitude,
+							iconPath: './map/img/dinw/dinw1.png',
+						}]
+						that.circles = [{ //在地图上显示圆
+							latitude: res.latitude,
+							longitude: res.longitude,
+							fillColor: "#D9E6EF", //填充颜色
+							color: "#A7B6CB", //描边的颜色
+							radius: 10, //半径
+							strokeWidth: 2 //描边的宽度
+						}]
+						if (val != "notSet") {
+							let d = {
+								id: that.ourData.id,
+								intlat: [res.longitude, res.latitude]
+							}
+							that.timeBeginSet(d) //30秒送数据
+							//加入绘制路线
+							let useDataPosition = {
+								latitude: res.latitude,
+								longitude: res.longitude
+							}
+							let lat = useDataPosition.latitude + '';
+							let long = useDataPosition.longitude + '';
+							let oldLat = that.mypolylines[1].points.length == 0 ? 1 : that.mypolylines[1].points[
+								that.mypolylines[1].points.length -
+								1].latitude + '';
+							let oldLong = that.mypolylines[1].points.length == 0 ? 1 : that.mypolylines[1].points[
+								that.mypolylines[1].points.length -
+								1].longitude + '';
+							if (lat != oldLat && long != oldLong) { //判断如果两次位置不一样  那就添加
+								that.mypolylines[1].points.push(useDataPosition);
+							}
+							// console.log(lat != oldLat && long != oldLong, 222222222222);
+							// console.log(that.mypolylines[1].points.length)
+						}
+					}
+				});
+			},
+			getDom(name, fn) {
+				this.query.select('#Umain').boundingClientRect(data => {
+					if (fn) {
+						fn(data);
+					}
+				}).exec()
+			},
+			checkDomHeight(data) {
+				//  声明定时器
+				var timer = null,
+					that = this;
+				//  检查dom是否执行完成
+				function checkDom() {
+					let useData;
+					that.query.select(data.name).boundingClientRect(data => {
+						// console.log('11111111')
+						// console.log(data);
+						if (data.fn) {
+							//回调函数
+							data.fn(data);
+							return;
+						} else {
+							return data;
+						}
+					}).exec()
+					return;
+
+				}
+				//  首次执行
+				checkDom();
+			},
+			showWindow() {
+				return
+				let sub = uni.getSubNVueById("myMap");
+				sub.show('slide-in-left', 200, () => {
+					console.log('subNVue 原生子窗体显示成功');
+				});
+				sub.setStyle({
+					"position": "absolute",
+					"width": "100%",
+					"height": "50%",
+					"left": "0px",
+					"bottom": "0px",
+					"background-color": "#FFF000",
+					"border-top-left-radius": "15px",
+					"border-top-right-radius": "15px"
+				});
+			},
+			sendMsg(data) {
+				uni.$emit('sub', {
+					project: data
+				});
+			},
+			hideWindow() {
+				let sub = uni.getSubNVueById("sub");
+				sub.hide('fade-out', 300)
+			},
+		},
+		computed: {
+			isOnTaskValue() {
+				if (this.$store.state.changes) {
+					return this.$store.state.isOnTaskValue;
+				} else {
+					return this.$store.state.isOnTaskValue;
+				}
+			},
+			circlesCom() {
+				return this.circles.slice(0);
+			},
+			markersCom() {
+				return this.markers.slice(0);
+			},
+			// mypolylinesCom() {
+			// 	// console.log(this.mypolylines,"333333333333333333333")
+			// 	return this.mypolylines.slice(0);
+			// },
+			socketValue() {
+				return this.$store.state.socketValue;
+			}
+		},
+		watch: {
+			socketValue() {
+				console.log(this.socketValue)
+				if (this.socketValue.type === "stop") {
+					// console.log("任务结束vuevueveu")
+					// this.$store.commit("stopTask", this.socketValue.rid);
+					this.bye = true;
+					uni.redirectTo({
+						url: "/pages/grabOrders/grabOrders"
+					});
+				}
+			},
+			isOnTaskValue: {
+				handler(newName, oldName) {
+					// console.log("map", this.isOnTaskValue);
+					for (let k in this.isOnTaskValue) {
+						if (this.isOnTaskValue[k].id == this.rid) {
+							if (this.fn) {
+								this.fn(this.isOnTaskValue[k].intlat);
+							}
+						}
+					}
+				},
+				deep: true
+			}
+		},
+		mounted() {},
+		onReady() {
+			let that = this;
+			return
+			this.types = uni.getSystemInfoSync();
+
+			var animation = uni.createAnimation({
+				duration: 1000,
+				timingFunction: 'linear',
+			})
+
+			this.animation = animation;
+
+			let activeHeight = 0;
+			this.getDom("#Umain", (res) => {
+				// console.log(res, 1111111111111111111111111111)
+				that.mapHeight = that.types.windowHeight - res.height + 30;
+				// that.mapHeight = 30;
+				that.activeHeight = res.height;
+				activeHeight = res.height;
+				let minHeight = 4 * 40 + 30
+				let d = {
+					activeDom: "#Umain",
+					adaptDom: "#myMap",
+					uni: uni,
+					maxHeight: activeHeight, //在外面获取活动区域的高度,
+					//在构造中动态获取会实时改变这个值
+					//导致改变固定的最高高度
+					useHeight: minHeight, //缩小后的高度、、可设置成保留高度
+					critical: (activeHeight - minHeight) / 3, //收缩程度,,可设置成总滑动距离的1/2 (maxHeight - useHeight) / 2
+					fn: (res) => {
+						// console.log(res)
+						if (res.state != 'on') {
+							that.mapHeight = that.types.windowHeight - res.height + 30;
+						} else {
+							if (res.translate) {
+								that.activeTip = true;
+							}
+							if (res.translate) {
+								that.activeTip = false;
+							}
+						}
+
+						if (res.translate === true) {
+							that.activeTip = true;
+						} else if (res.translate === false) {
+							that.activeTip = false;
+						}
+						that.activeHeight = res.height + 'px';
+					}
+				}
+				// that.moveDom = new $moveUniAppMap(d);
+			})
+			// if (type == "android") {
+			// 	this.useHeight = "calc(100vh - 40px)";
+			// }
+			// window['hBackMsg'] = (val) => {
+			// 	// console.log(val)
+			// 	let d = {
+			// 		rid: val.data.id,
+			// 		serid: val.data.serid,
+			// 		type: val.type,
+			// 		that: that,
+			// 		fn: () => {
+			// 			// that.getGrabOrders(that.current); //重获取数据
+			// 			if (val.fn) {
+			// 				// console.log(111)
+			// 				val.fn("success");
+			// 			}
+			// 		}
+			// 	}
+			// 	that.$store.commit('useWebScoketApi', d);
+			// }
+			// window['setIntLat'] = (val) => {
+			// 	// console.log(fn);
+			// 	that.fn = val.fn || '';
+			// 	that.rid = val.rid || '';
+			// }
+			// window['showTip '] = (val) => {
+			// 	that.$refs.uTips.show({
+			// 		title: val,
+			// 		type: "warning",
+			// 		duration: '2300'
+			// 	})
+			// }
+		},
+		//监听返回
+		onBackPress(event) {
+			this.bye = true;
+		},
+		onLoad: function(options) {
+			this.map = uni.createMapContext("myMap", this);
+			var datas = {},
+				data = {},
+				that = this;
+			if (options.data == undefined) {
+				// data = JSON.stringify({
+				datas = {
+					appenUrl: "http://192.168.0.108:83/",
+					butCT: "begin",
+					buttype: 0,
+					captain: "我",
+					city: "南昌市",
+					content: "测试培训内容",
+					district: "西湖区",
+					id: 37,
+					integral: "222",
+					iscation: "1",
+					jnum: 3,
+					line: "LINESTRING(115.8995839881188 28.687205773173343,115.89391916267935 28.678966027079593,115.90404718391959 28.673644524394046,115.91211526863638 28.681369286356936)",
+					num: 1,
+					nums: 0,
+					province: "江西省",
+					publisher: "管理",
+					raddress: null,
+					rname: "测试培训",
+					rtype: "0",
+					serid: "1123598821738675201,",
+					team: "你,他,它",
+					time: "2022-02-18 14:15:52",
+					type: "2",
+					fname: "培训老师张",
+					myid: 111,
+					myName: 222,
+					url: "http://223.82.109.183:2081/zhba/upload/20220218/67f0c8bf3e7b5024c64133691f265072.ico",
+					// })
+				}
+			} else {
+				datas = options.data;
+			}
+			// if (typeof data == "string") {
+			let i = 0;
+			let toStrings = (val) => {
+				// console.log(i++)
+				// console.log(val)
+				let d = {}
+				if (typeof val == "string") {
+					d = JSON.parse(val)
+				} else {
+					console.log(typeof val == "string")
+					// console.log(val)
+					data = val;
+					return
+				}
+				toStrings(d);
+			}
+			toStrings(datas);
+			// console.log(data)
+			if (data.team) {
+				data["teams"] = data.team.split(",");
+			}
+			that.ourData = data;
+
+			return
+			uni.getSystemInfo({ //初始化地图高度
+				success(res) {
+					that.mapHeight = res.windowHeight;
+				}
+			});
+			// console.log(data);
+			// return
+			// console.log(options.html)
+			// var a = options.html != undefined ? options.html : "xcxMapJQ/xcxmap.html";
+			// console.log(a)
+			// let a = "grabOrdersMap/xcxmap.html";
+			// this.urls = "http://223.82.109.183:2082/" + a + "?data=" + data;
+			// let name = 1; //1是本地  2是服务器
+			// // let name = 1;
+			// let b = this.$store.state.piAPI;
+			// if (b == '/api') {
+			// 	name = 1;
+			// }
+			// // "E:\liumy\qfqk\qfqks\qfqk-android\leafletMapOur\grabOrdersMap\xcxmap.html"
+			// let a = name == 1 ? "http://127.0.0.1:8848/qfqk-android/leafletMapOur/" : b.slice(0, b.indexOf('api'));
+			// // this.urls = a + "grabOrdersMap/xcxmap.html?data=" + data;
+			// // a = a.slice(0, a.indexOf('api'));
+			// this.urls = a + "grabOrdersMap/xcxmap.html?data=" + data;
+			// this.urls = "http://192.168.0.222:5500/xcxmap.html?data=" + data;
+			// // this.urls = "http://localhost:80?data=" + data;
+			// // http://127.0.0.1:8848/qfqk-android/grabOrdersMap/xcxmap.html
+			// // this.dataList = data;
+			// // console.log(this.urls);
+			// let type = uni.getSystemInfoSync().platform;
+			// if (type == "android") {
+			// 	//webView传值
+			// 	let currentWebview = this.$scope.$getAppWebview();
+			// 	setTimeout(() => {
+			// 		that.wv = currentWebview.children()[0];
+			// 		console.log(that.wv)
+			// 	}, 1000)
+			// 	window.addEventListener('message', e => {
+			// 		console.log(e)
+			// 		that.webV = e.source // window的对象
+			// 		console.log(e.data.data.arg, '接收h5页面发来的消息'); // 接收h5页面发来的消息(11)  ====>H5端
+			// 	}, false)
+			// 	setTimeout(() => {
+			// 		that.sendRequestData("给html", 1);
+			// 		that.sendRequestData("给html", 2);
+			// 	}, 10000)
+			// }
+			that.query = uni.createSelectorQuery();
+			const _this = this;
+			// uni.getSystemInfo({
+			// 	success: (res) => {
+			// 		// _this.mapHeight = (res.screenHeight - res.statusBarHeight) /2 
+			// 		// setTimeout(() => {
+			// 		// that.getDom('#Umain', data => {
+			// 		// console.log(res.statusBarHeight, res.screenHeight, data, 'dat')
+			// 		// console.log(res.screenHeight - data.height + res
+			// 		// 	.statusBarHeight)
+			// 		// _this.mapHeight = res.screenHeight - res.statusBarHeight - 420
+			// 		that.mapHeight = res.screenHeight - res.statusBarHeight - 466
+			// 		that.mapHeight = that.mapHeight
+			// 		// })
+			// 		// }, 1000)
+
+			// 		// that.query.select('#Umain').boundingClientRect(data => {
+			// 		// 	console.log('11111111')
+			// 		// 	console.log(data)
+			// 		// }).exec();
+			// 		// console.log(res)
+			// 		// let info = uni.createSelectorQuery().select("Umain");
+			// 		// info.boundingClientRect(function(data) { //data - 各种参数
+			// 		// 	console.log(data.width) // 获取元素宽度
+			// 		// }).exec()
+			// 	}
+			// })
+			// console.log(document.getElementById("Umain"))
+			// this.checkDomHeightId({
+			// 	domName: "getElementById",
+			// 	name: "Umain",
+			// 	fn: function(dom) {
+			// 		console.log(dom)
+			// 		let UmainHeights = dom.clientHeight;
+			// 		uni.getSystemInfo({
+			// 			success: (res) => {
+			// 				_this.mapHeight = res.screenHeight - res.statusBarHeight -
+			// 					UmainHeights
+			// 				_this.mapHeight = _this.mapHeight
+			// 			}
+			// 		})
+			// 	}
+			// })
+			// this.checkDomHeight({
+			// 	domName: "getElementsByClassName",
+			// 	name: "content",
+			// 	fn: function(dom) {
+			// 		// console.log(dom[0])
+			// 		// dom.style.height = h - UmainHeight + "px";
+			// 		// document.getElementsByClassName("dingwei")[0].style.bottom =
+			// 		// 	UmainHeight + 10 + "px";
+			// 		// that.map.invalidateSize(true);
+
+			// 		let h = dom[0].clientHeight;
+			// 		//因为按钮使用v-if所以在识别高度时候,but还没渲染所以手动添加 56px 不会变
+			// 		// console.log("应用数据")
+			// 		let UmainHeight = document.getElementById("Umain").clientHeight;
+			// 		// if (that.ourData.iscation == "1") {
+			// 		// 	UmainHeight += 56;
+			// 		// }
+			// 		//计算最小单位
+			// 		let rows = document.getElementsByClassName("once"),
+			// 			rowsHeight = 45;
+			// 		for (let ri = 0; ri < 3; ri++) {
+			// 			rowsHeight += rows[ri].clientHeight;
+			// 		}
+			// 		//适应高度
+			// 		that.domMove = new $moveWindow({
+			// 			id: "Umain",
+			// 			minHeight: rowsHeight,
+			// 			maxHeight: UmainHeight,
+			// 			critical: (UmainHeight - rowsHeight) / 4,
+			// 			openAnimation: false,
+			// 			fn: function(res) {
+			// 				// console.log(that.map.options)
+
+			// 				// document.getElementById("myMap").style.height = h - res.height + "px";
+			// 				// console.log(h, res.height)
+			// 				// uni.getSystemInfo({
+			// 				// 	success: (res) => {
+			// 				// 		_this.mapHeight = h - res.height
+			// 				// 		_this.mapHeight = _this.mapHeight
+			// 				// 	}
+			// 				// })
+			// 				// that.map.setView([that.map.options.center[0], +that.map.options.center[1] + 0.002], that.map
+			// 				// 	.options.zoom);
+			// 				// console.log(h - res.height)
+			// 				if (res.state === true || res.state === false) {
+			// 					// 	that.map.invalidateSize(true);
+			// 					// _this.mapHeight = h - res.height;
+			// 					// _this.map.moveToLocation({
+			// 					// 	latitude: _this.latitude,
+			// 					// 	longitude: _this.longitude
+			// 					// });
+			// 					document.getElementById("myMap").style.height = h - res
+			// 						.height + "px";
+			// 				}
+			// 				// document.getElementsByClassName("dingwei")[0].style.bottom = res.height +
+			// 				// 	10 + "px";
+			// 			},
+			// 		});
+			// 		that.domMove.init();
+			// 	}
+			// })
+
+			return
+			//画线
+			// console.log(data)
+			if (data.line) {
+				let line = data.line.split("(")[1].split(")")[0].split(",");
+			}
+			// console.log(line[0].split(" ")[1])
+			// console.log(line[0].split(" ")[0])
+			this.latitude = line[0].split(" ")[1];
+			this.longitude = line[0].split(" ")[0];
+			this.map.moveToLocation({
+				// latitude: line[0].split(" ")[1],
+				// longitude: line[0].split(" ")[0]
+				latitude: 40.013305,
+				longitude: 118.685713
+			});
+			let ourline = [];
+			for (let k in line) {
+				let ins = line[k].split(" ");
+				ourline.push({
+					latitude: +ins[1],
+					longitude: +ins[0]
+				})
+			}
+			// setTimeout(() => {
+			// this.mypolylines[0] = { //指定一系列坐标点,从数组第一项连线至最后一项
+			// 	points: ourline,
+			// 	color: "#FE0000", //线的颜色
+			// 	width: 10, //线的宽度
+			// 	dottedLine: false, //是否虚线
+			// 	arrowLine: false, //带箭头的线 开发者工具暂不支持该属性
+			// }
+			that.mypolylines[0].points = ourline;
+			// console.log(this.mypolylines)
+			// }, 1000)
+			this.showWindow();
+			// this.getLocationInfo(data);
+			if (data.butCT == "beginUp" && data.buttype == 0) {
+				this.bye = false;
+				this.timeBegin(1);
+			}
+		},
+		beforeDestroy() {
+			this.$store.commit("changegotuGrabOrders");
+		}
+	}
+</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;
+	}
+
+	.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.5s;
+		}
+	}
+
+	.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.5s;
+		}
+
+		&::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.5s;
+		}
+	}
+
+	.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;
+
+		// background-color: red;
+		// .dingwButImg {
+		// 	width: 80%;
+		// 	height: 80%;
+		// }
+		// .icon{
+		// }
+		// &::after{
+		// 	content: url(map/img/dingwei.png);
+		// }
+		// .dingwButImg {
+		// 	animation: mymove 5s infinite;
+		// 	animation-timing-function: linear;
+		// }
+	}
+
+
+
+	@keyframes mymove {
+		0% {
+			transform: rotate(0deg);
+		}
+
+		100% {
+			transform: rotate(1turn);
+		}
+	}
+</style>
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dingwei.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dingwei.png"
new file mode 100644
index 0000000..58a917e
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dingwei.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw1.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw1.png"
new file mode 100644
index 0000000..080b720
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw1.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw2.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw2.png"
new file mode 100644
index 0000000..a51e5d0
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw2.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw3.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw3.png"
new file mode 100644
index 0000000..76b6f88
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw3.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw4.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw4.png"
new file mode 100644
index 0000000..cd5de4d
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw4.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw5.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw5.png"
new file mode 100644
index 0000000..79a421a
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw5.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw6.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw6.png"
new file mode 100644
index 0000000..772af08
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/dinw6.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/location.png" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/location.png"
new file mode 100644
index 0000000..52d5d19
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/img/dinw/location.png"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/js/move.js" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/js/move.js"
new file mode 100644
index 0000000..21c94d7
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/js/move.js"
@@ -0,0 +1,173 @@
+class $moveWindow {
+	constructor(data) {
+		this.id = data.id;
+		this.start = 0;
+		this.end = 0;
+		this.domHeight = 0;
+		this.domMove = null;
+		this.openValue = false;
+		this.useHeight = data.minHeight;
+		this.maxHeight = data.maxHeight;
+		this.height = data.minHeight;
+		this.critical = data.critical;
+		this.openAnimation = data.openAnimation;
+		let that = this;
+		this.fn =
+			data.fn ? (function(res) {
+				// console.log("回调函数");
+				data.fn(res);
+				that.changeHeight(res);
+				// if (res.state === true) {
+				// 	console.log(that.openValue, res.state)
+				// } else if (res.state === false) {
+				// 	console.log(that.openValue, res.state)
+				// }
+			}) :
+			(function(res) {
+				console.log("未设置回调函数");
+				console.log(res);
+			});
+
+		this.ListenerTouchmove = function(window) {
+			let moseHeight = window.changedTouches[0].clientY;
+			//   let windowHeight = document.body.clientHeight; //屏幕宽度
+			let endOn = moseHeight;
+			// console.log(that.domHeight, that.start, endOn)
+			let cha = that.domHeight + (+that.start - +endOn);
+			if (cha >= that.maxHeight) {
+				cha = that.maxHeight;
+			} else if (cha <= that.useHeight) {
+				cha = that.useHeight;
+			}
+			let d = {
+				state: "on",
+				height: cha,
+			};
+			that.fn(d);
+		};
+		this.ListenerTouchstart = function(window) {
+			let moseHeight = window.changedTouches[0].clientY;
+			that.start = moseHeight;
+			// that.domHeight = document
+			// 	.getElementById(that.id)
+			// 	.style.cssText.split("px")[0]
+			// 	.split("height:")[1];
+			that.domHeight = document
+				.getElementById(that.id)
+				.clientHeight;
+		};
+		this.ListenerTouchend = function(window) {
+			let moseHeight = window.changedTouches[0].clientY;
+			that.end = moseHeight;
+			let cha, states;
+			if (that.end >= that.start) {
+				states = false; //方向
+				cha = that.end - that.start;
+			} else {
+				states = true; //方向
+				cha = that.start - that.end;
+			}
+			if (cha >= that.critical) {
+				//高
+				that.opens(states, true); //程度
+			} else if (cha < that.critical) {
+				//低
+				that.opens(states, false); //程度
+			}
+		};
+		return this;
+	}
+	//启动监听事件
+	init() {
+		// this.domMove = document.getElementById(this.id);
+		let that = this;
+		this.checkDom(that.id, (dom) => {
+			//检测是否有dom
+			that.domMove = dom;
+			if (that.openAnimation) {
+				that.domMove.style.transition = 'all 0.2s';
+			}
+			that.domMove.addEventListener("touchmove", that.ListenerTouchmove);
+			// 结束位置靠滑动距离判断
+			that.domMove.addEventListener("touchstart", that.ListenerTouchstart);
+			that.domMove.addEventListener("touchend", that.ListenerTouchend);
+		});
+	}
+	//关闭监听事件
+	closeInit() {
+		this.domMove = document.getElementById(this.id);
+		this.domMove.removeEventListener("touchmove", this.ListenerTouchmove);
+		// 结束位置靠滑动距离判断
+		this.domMove.removeEventListener("touchstart", this.ListenerTouchstart);
+		this.domMove.removeEventListener("touchend", this.ListenerTouchend);
+	}
+	//输出事件
+	opens(val, chengdu) {
+		if (chengdu) {
+			this.openValue = val;
+			if (val) {
+				this.height = this.maxHeight;
+			} else {
+				this.height = this.useHeight;
+			}
+		} else {
+			this.height = this.domHeight;
+		}
+		let d = {
+			state: this.openValue,
+			height: this.height,
+		};
+		this.fn(d);
+	}
+	changeHeight(data) {
+		document
+			.getElementById(this.id).style.height = data.height  + "px";
+	}
+	checkDom(name, fn) {
+		//  声明定时器
+		var timer = null;
+		//  检查dom是否执行完成
+		function checkDom() {
+			// let dom = that.$refs[name];
+			let dom = document.getElementById(name);
+			if (dom) {
+				//  执行dom加载完成后的操作
+				//  清除定时器
+				if (!timer) {
+					clearTimeout(timer);
+				}
+				if (fn) {
+					//回调函数
+					fn(dom);
+					return;
+				} else {
+					return dom;
+				}
+			} else {
+				//  自我调用
+				timer = setTimeout(checkDom, 100);
+			}
+		}
+		//  首次执行
+		checkDom();
+	}
+	// 结束位置是一半判断
+	//  domMove.addEventListener("touchend", function (window) {
+	//   let moseHeight = window.changedTouches[0].clientY;
+	//   let windowHeight = document.body.clientHeight;
+	//   let cha = windowHeight - moseHeight;
+	//   console.log(cha, "最后位置");
+	//   let centerPoint =
+	//     (windowHeight / 2 - +that.useHeight) / 2 + +that.useHeight;
+	//   if (cha >= centerPoint) {
+	//     cha = windowHeight / 2;
+	//   } else if (cha < centerPoint) {
+	//     cha = that.useHeight;
+	//   }
+	//   that.height = cha;
+	// });
+}
+
+export default $moveWindow;
+
+// console.log(moveWindow)
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/js/moveUniAppMap.js" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/js/moveUniAppMap.js"
new file mode 100644
index 0000000..ac1c9c8
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/map/js/moveUniAppMap.js"
@@ -0,0 +1,128 @@
+class $moveUniAppMap {
+	constructor(arg) {
+		this.activeDom = arg.activeDom; //活动dom
+		this.adaptDom = arg.adaptDom; //适应dom
+		this.windowSize = arg.uni.getSystemInfoSync(); // 设备参数含屏幕尺寸
+		let doms = arg.uni.createSelectorQuery(); //获取dom参数uni工具
+		this.getDoms = (name, fn) => { //fn是会回调函数,不用promis
+			doms.select(name).boundingClientRect((data) => {
+				if (fn) {
+					fn(data)
+				}
+			}).exec()
+		}
+		// console.log(this.windowSize)
+
+		this.start = 0;
+		this.end = 0;
+		this.domHeight = 0;
+		this.openValue = false; //方向
+		this.useHeight = arg.useHeight; //使用的低高度
+		this.critical = arg.critical; //收缩展开的程度
+		// this.getDoms(this.activeDom, (res) => { //获取dom最大高度
+		this.maxHeight = arg.maxHeight;
+		// })
+		this.fn = (res) => {
+			if (arg.fn) {
+				arg.fn(res)
+			} else {
+				console.log(res, "未设置输出函数")
+			}
+		}
+
+		return this;
+	}
+	ListenerTouchstart(dom) { //开始移动,记录开始点和活动dom高度
+		this.start = dom.changedTouches[0].clientY;
+		this.getDoms(this.activeDom, (res) => { //动态获取当前活动dom高度
+			this.domHeight = res.height;
+		})
+		// let d = {
+		// 	state: "start",
+		// 	height: this.maxHeight,
+		// };
+		// // console.log(cha, "cha")
+		// // console.log(+endOn - +this.start, "cha")
+		// this.fn(d);
+		// console.log(this.start, "this.start")
+	}
+	ListenerTouchmove(dom) {
+		let endOn = dom.changedTouches[0].clientY;
+		// console.log(that.domHeight, that.start, endOn)
+		let usecha = +this.start - +endOn;
+		let cha = this.domHeight + usecha;
+		if (cha >= this.maxHeight) {
+			cha = this.maxHeight;
+		} else if (cha <= this.useHeight) {
+			cha = this.useHeight;
+		}
+		let translate = false;
+		if (usecha >= this.critical) {
+			translate = true;
+		}
+		if (usecha <= -this.critical) {
+			translate = true;
+		}
+		let d = {
+			state: "on",
+			height: cha,
+			translate: translate
+		};
+		if (usecha >= 0) {
+			d.state = "up";
+		}
+		// console.log(cha, "cha")
+		// console.log(usecha, "cha")
+		this.fn(d);
+	}
+	ListenerTouchend(dom) {
+		this.end = dom.changedTouches[0].clientY;
+		let cha, states;
+		if (this.end >= this.start) {
+			states = false; //方向向下收缩
+			cha = this.end - this.start;
+		} else {
+			states = true; //方向向上抬起
+			cha = this.start - this.end;
+		}
+		if (cha >= this.critical) {
+			//高
+			this.judge(states, true); //程度
+		} else if (cha < this.critical) {
+			//低
+			this.judge(states, false); //程度
+		}
+		// console.log(cha)
+	}
+	innit() {
+
+	}
+	//输出事件
+	judge(val, chengdu) {
+		let translate = '';
+		if (chengdu) {
+			this.openValue = val;
+			if (val) {
+				this.height = this.maxHeight; //给到向上的最高高度
+			} else {
+				this.height = this.useHeight; //给到向下的最低高度
+			}
+		} else {
+			this.height = this.domHeight; //给到当前高度
+		}
+		if (this.height == this.maxHeight) {
+			translate = false;
+		} else {
+			translate = true;
+		}
+		let d = {
+			state: this.openValue,
+			height: this.height,
+			translate: translate
+		};
+		// console.log(d)
+		this.fn(d);
+	}
+}
+
+export default $moveUniAppMap;
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/once.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/once.vue"
new file mode 100644
index 0000000..c8808b2
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/once.vue"
Binary files differ
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/task - \345\211\257\346\234\254.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/task - \345\211\257\346\234\254.vue"
new file mode 100644
index 0000000..5818cba
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/task - \345\211\257\346\234\254.vue"
@@ -0,0 +1,88 @@
+<template>
+	<view class="grabOrdersTask">
+		<once title="任务标题" :input="data.rname"></once>
+		<once title="任务内容" :input="data.content"></once>
+		<once title="任务地址" :input="data.place"></once>
+		</br>
+		<once title="开始时间" :input="data.time"></once>
+		<once title="结束时间" :input="data.alarmTime"></once>
+		</br>
+		<once title="活动要求" :input="data.infor">
+		</once>
+		</br>
+		<!-- <once title="结束时间" input="2021-08-10"></once> -->
+		<view class="but">
+			<u-button class="custom-style" type="primary" @click="inits(1)" v-show="data.current == 1"> 我参与</u-button>
+			<u-button class="custom-style" type="primary" @click="inits(2)" v-show="data.current == 0"> 我反馈</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import once from './once.vue'
+	export default {
+		components: {
+			once
+		},
+		data() {
+			return {
+				data: ''
+			};
+		},
+		methods: {
+			inits(val) {
+				//
+				if (val == 1) { //接受任务
+					//
+				} else { //跳转反馈
+					//
+					uni.navigateTo({
+						url: './feedback?data=' + JSON.stringify(val),
+					});
+				}
+			}
+		},
+		onLoad: function(option) {
+			var b;
+			if (option.data == undefined) {
+				this.data = {
+					rname: '无数据',
+					content: '无数据',
+					district: '无数据',
+					place: '无数据',
+					time: '无数据',
+					num: "无数据",
+					ourNum: "无数据",
+					inNum: "无数据",
+					infor: "无数据"
+				}
+				return;
+			}
+			try {
+				b = JSON.parse(option.data);
+			} catch (e) {
+				//TODO handle the exception
+			}
+			console.log(b);
+			this.data = b;
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	page {
+		width: 100%;
+		height: 100%;
+		background-color: #F0EFF5;
+	}
+
+	.but {
+		width: 30%;
+		margin: 0 auto;
+
+		.custom-style {
+			background-image: linear-gradient(to right, #08EFF6, #0693FD);
+			border-radius: 20px;
+		}
+	}
+</style>
diff --git "a/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/task.vue" "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/task.vue"
new file mode 100644
index 0000000..5818cba
--- /dev/null
+++ "b/pages/grabOrders/grabOrdersZAFFPX - \345\211\257\346\234\254/task.vue"
@@ -0,0 +1,88 @@
+<template>
+	<view class="grabOrdersTask">
+		<once title="任务标题" :input="data.rname"></once>
+		<once title="任务内容" :input="data.content"></once>
+		<once title="任务地址" :input="data.place"></once>
+		</br>
+		<once title="开始时间" :input="data.time"></once>
+		<once title="结束时间" :input="data.alarmTime"></once>
+		</br>
+		<once title="活动要求" :input="data.infor">
+		</once>
+		</br>
+		<!-- <once title="结束时间" input="2021-08-10"></once> -->
+		<view class="but">
+			<u-button class="custom-style" type="primary" @click="inits(1)" v-show="data.current == 1"> 我参与</u-button>
+			<u-button class="custom-style" type="primary" @click="inits(2)" v-show="data.current == 0"> 我反馈</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import once from './once.vue'
+	export default {
+		components: {
+			once
+		},
+		data() {
+			return {
+				data: ''
+			};
+		},
+		methods: {
+			inits(val) {
+				//
+				if (val == 1) { //接受任务
+					//
+				} else { //跳转反馈
+					//
+					uni.navigateTo({
+						url: './feedback?data=' + JSON.stringify(val),
+					});
+				}
+			}
+		},
+		onLoad: function(option) {
+			var b;
+			if (option.data == undefined) {
+				this.data = {
+					rname: '无数据',
+					content: '无数据',
+					district: '无数据',
+					place: '无数据',
+					time: '无数据',
+					num: "无数据",
+					ourNum: "无数据",
+					inNum: "无数据",
+					infor: "无数据"
+				}
+				return;
+			}
+			try {
+				b = JSON.parse(option.data);
+			} catch (e) {
+				//TODO handle the exception
+			}
+			console.log(b);
+			this.data = b;
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	page {
+		width: 100%;
+		height: 100%;
+		background-color: #F0EFF5;
+	}
+
+	.but {
+		width: 30%;
+		margin: 0 auto;
+
+		.custom-style {
+			background-image: linear-gradient(to right, #08EFF6, #0693FD);
+			border-radius: 20px;
+		}
+	}
+</style>
diff --git a/pages/grabOrders/grabOrdersZAFFPX/grabOrders.vue b/pages/grabOrders/grabOrdersZAFFPX/grabOrders.vue
index 5ab1efe..29f8c6c 100644
--- a/pages/grabOrders/grabOrdersZAFFPX/grabOrders.vue
+++ b/pages/grabOrders/grabOrdersZAFFPX/grabOrders.vue
@@ -11,17 +11,14 @@
 			<swiper-item v-for="(item, index) in list" :key="index" :style="{ height: useHeight, width: '100%' }">
 				<view class="swiper-item">
 					<scroll-view scroll-y :style="{ height: useHeight, width: '100%' }" @scrolltolower="onreachBottom">
-						<page0 :listData="leftdata" :swiperCurrent="0" v-if="item.name == '正在进行'" @openOnce="openOnce"
-							@getOrders="getOrders"></page0>
-						<page1 :listData="rightdata" :swiperCurrent="1" v-if="item.name == '可参与'" @openOnce="openOnce"
-							@getOrders="getOrders"></page1>
-
-						<!-- <view class="a" v-if="item.name == '正在进行'">
-						 	{{leftdata}}
-						 </view>
-						 <view class="b" v-if="item.name == '可参与'">
-						 	{{rightdata}}
-                    </view>-->
+						<page0 :listData="rightdata" :swiperCurrent="1" v-if="item.name == '正在进行'" @openOnce="openOnce"
+							@getOrders="getOrders">
+						</page0>
+						<page1 :listData="leftdata" :swiperCurrent="0" v-if="item.name == '可参与'" @openOnce="openOnce"
+							@getOrders="getOrders">
+						</page1>
+						<page2 :listData="overdata" :swiperCurrent="2" v-if="item.name == '已完成'" @openOnce="openOnce"
+							@getOrders="getOrders"></page2>
 					</scroll-view>
 				</view>
 			</swiper-item>
@@ -37,18 +34,22 @@
 <script>
 	import page0 from "./inPage/page0.vue";
 	import page1 from "./inPage/page1.vue";
+	import page2 from "./inPage/page2.vue";
 	export default {
 		components: {
 			page0,
 			page1,
+			page2
 		},
 		data() {
 			return {
 				list: [{
+						name: "可参与",
+					}, {
 						name: "正在进行",
 					},
 					{
-						name: "可参与",
+						name: "已完成",
 					},
 				],
 				// 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值
@@ -56,6 +57,7 @@
 				swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的
 				leftdata: [],
 				rightdata: [],
+				overdata: [],
 				showPopup: false,
 				appdetitle: "",
 				popupData: {},
@@ -72,8 +74,12 @@
 		},
 		watch: {
 			current() {
-				// console.log(this.current)
+				console.log(this.current)
+				// if (this.current == 0) {
+				// 	console.log(1)
+				// this.getGrabOrders(0);			
 				this.getGrabOrders(this.current);
+				// }
 			},
 			change() {
 				this.getGrabOrders(this.current);
@@ -139,7 +145,7 @@
 			openOnce(val) {
 				//打开地图
 				// console.log(this.swiperCurrent)
-				val["buttype"] = this.swiperCurrent; //tab标识,0正在进行,1可参与
+				val["buttype"] = this.swiperCurrent == 1 ? 0 : (this.swiperCurrent == 0 ? 1 : 2); //tab标识,0正在进行,1可参与
 				val["serid"] = (uni.getStorageSync("ids") || this.$store.state.puserID) + ",";
 				val["appenUrl"] = this.$store.state.piAPI;
 				//打开地图
@@ -180,15 +186,16 @@
 				let that = this,
 					d = {
 						serid: uni.getStorageSync("ids") || that.$store.state.puserID,
-						type: val + "",
-						tasktype:'2'
+						type: val == 1 ? 0 : (val == 0 ? 1 : 2) + "",
+						tasktype: '2'
 					};
-
-				if (val == 1) {
+				let isWhere = val == 0 ? "可参与" : val == 1 ? "正在进行" : "已完成";
+				if (val == 0) {
 					d.jurisdiction = this.$store.state.UserData.jurisdiction;
 					d.workjurisdiction = this.$store.state.UserData.workjurisdiction;
 				}
 				// console.log(that.$store.state.puserID)
+				console.log(d)
 				uni.request({
 					url: this.$store.state.piAPI + "taskqd/selectLi",
 					method: "POST",
@@ -198,10 +205,10 @@
 					},
 					success(res) {
 						const data = res.data.data;
-						// console.log(data);
-						if (val == 1) {
-							that.rightdata = data;
-						} else {
+						console.log(data);
+						if (isWhere == "可参与") {
+							that.leftdata = data;
+						} else if (isWhere == "正在进行") {
 							let no = [],
 								ok = [],
 								begin = [],
@@ -235,7 +242,7 @@
 								}
 							}
 
-							that.leftdata = [...begin1, ...begin, ...no1, ...no, ...ok1, ...ok];
+							that.rightdata = [...begin1, ...begin, ...no1, ...no, ...ok1, ...ok];
 							// console.log(that.leftdata)
 							// for (let k in begin) {
 							// 	let id = begin[k].id;
@@ -260,6 +267,8 @@
 							// 	that.$store.commit("addTask", id)
 							// }
 							// that.isOnTask[44].position.continuedTime();
+						} else {
+							that.overdata = data;
 						}
 					},
 				});
diff --git a/pages/grabOrders/grabOrdersZAFFPX/inPage/page1.vue b/pages/grabOrders/grabOrdersZAFFPX/inPage/page1.vue
index 58162b0..1efb40b 100644
--- a/pages/grabOrders/grabOrdersZAFFPX/inPage/page1.vue
+++ b/pages/grabOrders/grabOrdersZAFFPX/inPage/page1.vue
@@ -6,7 +6,7 @@
 				<view class="o-l-img">
 					<image :src="item.url" mode=""></image>
 				</view>
-				<view class="o-l-main">
+				<!-- <view class="o-l-main">
 					<view class="o-l-m-up">
 						{{item.rname}}
 					</view>
@@ -18,6 +18,24 @@
 						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
 						时间:{{item.time.slice(0,10)}}
 					</view>
+				</view> -->
+				<view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<!-- <view class="o-l-m-center">
+						<u-icon name="account" color="#d0d0d0" size="28"></u-icon>
+						培训讲师:<span>{{item.fname}}</span>
+					</view> -->
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						培训开始时间:
+					</view>
+					<view class="o-l-m-center" style="padding-left: 13px;">
+						<!-- <u-icon name="volume" color="#d0d0d0" size="28"></u-icon> -->
+						<!-- 	时间: -->
+						{{item.time}}
+					</view>
 				</view>
 			</view>
 			<view class="onve-right">
diff --git a/pages/grabOrders/grabOrdersZAFFPX/inPage/page2.vue b/pages/grabOrders/grabOrdersZAFFPX/inPage/page2.vue
new file mode 100644
index 0000000..45b6574
--- /dev/null
+++ b/pages/grabOrders/grabOrdersZAFFPX/inPage/page2.vue
@@ -0,0 +1,179 @@
+<template>
+	<view class="onveMain">
+
+		<view class="once" v-for="(item,index) in listData" :key="index" @click="openOnce(item)">
+			<view class="onve-left">
+				<view class="o-l-img">
+					<image :src="item.url" mode=""></image>
+				</view>
+				<!-- <view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="order" color="#d0d0d0" size="28"></u-icon>
+						人数:{{item.num}}/ {{item.jnum}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						时间:{{item.time.slice(0,10)}}
+					</view>
+				</view> -->
+				<view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<!-- <view class="o-l-m-center">
+						<u-icon name="account" color="#d0d0d0" size="28"></u-icon>
+						培训讲师:<span>{{item.fname}}</span>
+					</view> -->
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						培训开始时间:
+					</view>
+					<view class="o-l-m-center" style="padding-left: 13px;">
+						<!-- <u-icon name="volume" color="#d0d0d0" size="28"></u-icon> -->
+						<!-- 	时间: -->
+						{{item.time}}
+					</view>
+				</view>
+			</view>
+			<view class="onve-right">
+				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" :disabled="true"
+					@click="getOrders(swiperCurrent,item)">
+					<!-- <span class="Cation notCation">队员</span> -->
+					{{"完成反馈"}}
+				</u-button>
+				<view class="o-r-$">
+					积分:{{item.integral}}
+				</view>
+			</view>
+		</view>
+		<u-divider>没有更多了</u-divider>
+		<br />
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["listData", "swiperCurrent"],
+		methods: {
+			openOnce(val) {
+				this.$emit("openOnce", val);
+			},
+			getOrders(val, item) {
+				let b = {
+					val: val,
+					item: item
+				}
+				this.$emit("getOrders", b);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.onveMain {
+		width: 100%;
+		height: auto;
+	}
+
+	.once {
+		width: calc(100% - 10px);
+		height: 100px;
+		border: 1px solid #d0d0d0;
+		padding: 8px;
+		box-sizing: border-box;
+		margin: 5px;
+		border-radius: 8px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		.onve-left {
+			width: 75%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.o-l-img {
+				width: 80px;
+				height: 80px;
+				background-color: #d0d0d0;
+				margin-right: 5px;
+				border-radius: 7px;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 7px;
+				}
+			}
+
+			.o-l-main {
+				width: calc(100% - 85px);
+				height: 80px;
+				display: flex;
+				// align-items: center;
+				justify-content: center;
+				flex-direction: column;
+
+				.o-l-m-up {
+					height: 30px;
+					font-size: 16px;
+				}
+			}
+		}
+
+		.onve-right {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-direction: column;
+
+			view {
+				margin-top: 10px;
+			}
+		}
+
+		// .onceUp {
+		// 	width: 100%;
+		// 	height: 25%;
+		// 	padding-bottom: 5px !important;
+		// 	border-bottom: 1px solid #d0d0d0;
+		// }
+
+		// .onceMain {
+		// 	width: 100%;
+		// 	height: 80%;
+		// 	display: flex;
+		// 	align-items: center;
+		// 	justify-content: center;
+
+		// 	.o-m-left {
+		// 		width: 80%;
+		// 		height: 100%;
+		// 		border: 1 solid #d0d0d0;
+		// 		display: flex;
+		// 		// align-items: center;
+		// 		justify-content: center;
+		// 		flex-direction: column;
+
+		// 		view {
+		// 			margin-top: 2.5px;
+		// 			padding-bottom: 2.5px;
+		// 		}
+		// 	}
+		// }
+
+	}
+
+	.orange {
+		color: orange;
+	}
+
+	.green {
+		color: #00ba15;
+	}
+</style>
diff --git a/pages/grabOrders/grabOrdersZAFFPX/map.vue b/pages/grabOrders/grabOrdersZAFFPX/map.vue
index 477f73a..5d3d8d2 100644
--- a/pages/grabOrders/grabOrdersZAFFPX/map.vue
+++ b/pages/grabOrders/grabOrdersZAFFPX/map.vue
@@ -105,6 +105,15 @@
 					我参与
 				</u-button>
 			</view>
+			<view class="once-c" v-if="ourData.buttype == 2">
+				<!-- <u-button :type="ourData.num==ourData.jnum?'info':'success'" @click="openAPP(ourData.buttype)"
+					:disabled="(ourData.num==ourData.jnum)&& ourData.buttype==1 ||ourData.type == 1">
+					{{ourData.num==ourData.jnum?"人数已满":'我参与'}}
+				</u-button> -->
+				<u-button type="info" :disabled="true">
+					培训结束
+				</u-button>
+			</view>
 
 		</view>
 		<u-popup v-model="showIn" mode="bottom" border-radius="14" z-index='1000001' :mask-close-able="true">
@@ -152,8 +161,8 @@
 				],
 				useTime: null,
 				useTimeSet: null,
-				times: 3000,
-				setTimes: 30000,
+				times: 10000,
+				setTimes: 10000,
 				ourData: {},
 				map: null,
 				domMove: null,
@@ -477,7 +486,8 @@
 						if (val != "notSet") {
 							let d = {
 								id: that.ourData.id,
-								intlat: [res.longitude, res.latitude]
+								intlat: [res.longitude, res.latitude],
+								intlatold: [res.longitude, res.latitude]
 							}
 							that.timeBeginSet(d) //30秒送数据
 							//加入绘制路线
diff --git a/pages/grabOrders/grabOrdersZAXC/grabOrders.vue b/pages/grabOrders/grabOrdersZAXC/grabOrders.vue
index 1e328f7..94c92d6 100644
--- a/pages/grabOrders/grabOrdersZAXC/grabOrders.vue
+++ b/pages/grabOrders/grabOrdersZAXC/grabOrders.vue
@@ -15,7 +15,8 @@
 							@getOrders="getOrders"></page0>
 						<page1 :listData="rightdata" :swiperCurrent="1" v-if="item.name == '可参与'" @openOnce="openOnce"
 							@getOrders="getOrders"></page1>
-
+						<page2 :listData="overdata" :swiperCurrent="2" v-if="item.name == '已完成'" @openOnce="openOnce"
+							@getOrders="getOrders"></page2>
 						<!-- <view class="a" v-if="item.name == '正在进行'">
 						 	{{leftdata}}
 						 </view>
@@ -37,18 +38,22 @@
 <script>
 	import page0 from "./inPage/page0.vue";
 	import page1 from "./inPage/page1.vue";
+	import page2 from "./inPage/page2.vue";
 	export default {
 		components: {
 			page0,
 			page1,
+			page2,
 		},
 		data() {
 			return {
 				list: [{
-						name: "正在进行",
+						name: "可参与",
 					},
 					{
-						name: "可参与",
+						name: "正在进行",
+					}, {
+						name: "已完成",
 					},
 				],
 				// 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值
@@ -56,6 +61,7 @@
 				swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的
 				leftdata: [],
 				rightdata: [],
+				overdata: [],
 				showPopup: false,
 				appdetitle: "",
 				popupData: {},
@@ -139,7 +145,7 @@
 			openOnce(val) {
 				//打开地图
 				// console.log(this.swiperCurrent)
-				val["buttype"] = this.swiperCurrent; //tab标识,0正在进行,1可参与
+				val["buttype"] = this.swiperCurrent == 1 ? 0 : (this.swiperCurrent == 0 ? 1 : 2); //tab标识,0正在进行,1可参与
 				val["serid"] = (uni.getStorageSync("ids") || this.$store.state.puserID) + ",";
 				val["appenUrl"] = this.$store.state.piAPI;
 				//打开地图
@@ -180,11 +186,11 @@
 				let that = this,
 					d = {
 						serid: uni.getStorageSync("ids") || that.$store.state.puserID,
-						type: val + "",
+						type: val == 1 ? 0 : (val == 0 ? 1 : 2) + "",
 						tasktype: '0'
 					};
-
-				if (val == 1) {
+				let isWhere = val == 0 ? "可参与" : val == 1 ? "正在进行" : "已完成";
+				if (val == 0) {
 					d.jurisdiction = this.$store.state.UserData.jurisdiction;
 					d.workjurisdiction = this.$store.state.UserData.workjurisdiction;
 				}
@@ -199,9 +205,9 @@
 					success(res) {
 						const data = res.data.data;
 						// console.log(data);
-						if (val == 1) {
+						if (isWhere == "可参与") {
 							that.rightdata = data;
-						} else {
+						} else if (isWhere == "正在进行") {
 							let no = [],
 								ok = [],
 								begin = [],
@@ -260,6 +266,8 @@
 							// 	that.$store.commit("addTask", id)
 							// }
 							// that.isOnTask[44].position.continuedTime();
+						} else {
+							that.overdata = data;
 						}
 					},
 				});
diff --git a/pages/grabOrders/grabOrdersZAXC/inPage/page2.vue b/pages/grabOrders/grabOrdersZAXC/inPage/page2.vue
new file mode 100644
index 0000000..3575876
--- /dev/null
+++ b/pages/grabOrders/grabOrdersZAXC/inPage/page2.vue
@@ -0,0 +1,200 @@
+<template>
+	<view class="onveMain">
+		<view class="once" v-for="(item,index) in listData" :key="index" @click="openOnce(item)">
+			<view class="onve-left">
+				<view class="o-l-img">
+					<image :src="item.url" mode=""></image>
+				</view>
+				<view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="order" color="#d0d0d0" size="28"></u-icon>
+						人数:{{item.num}}/ {{item.jnum}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						时间:{{item.time.slice(0,10)}}
+					</view>
+				</view>
+			</view>
+			<view class="onve-right">
+				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" :disabled="true" <!--
+					<span class="Cation notCation">队员</span> -->
+					{{"完成反馈"}}
+				</u-button>
+				<view class="o-r-$">
+					积分:{{item.integral}}
+				</view>
+			</view>
+		</view>
+		<u-divider>没有更多了</u-divider>
+		<view class="">
+			{{res}}
+		</view>
+		<br />
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["listData", "swiperCurrent"],
+		data() {
+			return {
+				res: ''
+			}
+		},
+		computed: {
+			changes() {
+				return this.$store.state.changes;
+			}
+		},
+		watch: {
+			changes() {
+				console.log(this.$store.state.isOnTaskValue)
+				this.res = this.$store.state.isOnTaskValue.intlat;
+			}
+		},
+		methods: {
+			openOnce(val) {
+				this.$emit("openOnce", val);
+			},
+			getOrders(val, item) {
+				let b = {
+					val: val,
+					item: item
+				}
+				this.$emit("getOrders", b);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.onveMain {
+		width: 100%;
+		height: auto;
+	}
+
+	.once {
+		width: calc(100% - 10px);
+		height: 100px;
+		border: 1px solid #d0d0d0;
+		padding: 8px;
+		box-sizing: border-box;
+		margin: 5px;
+		border-radius: 8px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		.onve-left {
+			width: 75%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.o-l-img {
+				width: 80px;
+				height: 80px;
+				background-color: #d0d0d0;
+				margin-right: 5px;
+				border-radius: 7px;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 7px;
+				}
+			}
+
+			.o-l-main {
+				width: calc(100% - 85px);
+				height: 80px;
+				display: flex;
+				// align-items: center;
+				justify-content: center;
+				flex-direction: column;
+
+				.o-l-m-up {
+					height: 30px;
+					font-size: 16px;
+				}
+			}
+		}
+
+		.onve-right {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-direction: column;
+
+			view {
+				margin-top: 10px;
+			}
+		}
+
+		// .onceUp {
+		// 	width: 100%;
+		// 	height: 25%;
+		// 	padding-bottom: 5px !important;
+		// 	border-bottom: 1px solid #d0d0d0;
+		// }
+
+		// .onceMain {
+		// 	width: 100%;
+		// 	height: 80%;
+		// 	display: flex;
+		// 	align-items: center;
+		// 	justify-content: center;
+
+		// 	.o-m-left {
+		// 		width: 80%;
+		// 		height: 100%;
+		// 		border: 1 solid #d0d0d0;
+		// 		display: flex;
+		// 		// align-items: center;
+		// 		justify-content: center;
+		// 		flex-direction: column;
+
+		// 		view {
+		// 			margin-top: 2.5px;
+		// 			padding-bottom: 2.5px;
+		// 		}
+		// 	}
+		// }
+
+	}
+
+	.orange {
+		color: #FF7B15;
+	}
+
+	.green {
+		color: #00e713;
+	}
+
+	.greens {
+		color: #18a655 !important;
+	}
+
+	.blues {
+		color: #2680F0 !important;
+	}
+
+	.Cation {
+		display: inline-block;
+		position: absolute;
+		left: -35px;
+
+		&::after {
+			content: "";
+		}
+	}
+
+	.notCation {
+		color: #18a655;
+	}
+</style>
diff --git a/pages/grabOrders/grabOrdersZAXC/map.vue b/pages/grabOrders/grabOrdersZAXC/map.vue
index aa58a21..01fe50c 100644
--- a/pages/grabOrders/grabOrdersZAXC/map.vue
+++ b/pages/grabOrders/grabOrdersZAXC/map.vue
@@ -188,7 +188,7 @@
 				useTime: null,
 				useTimeSet: null,
 				times: 3000,
-				setTimes: 30000,
+				setTimes: 3000,
 				ourData: {},
 				map: null,
 				domMove: null,
@@ -540,7 +540,8 @@
 								res.longitude);
 							let d = {
 								id: that.ourData.id,
-								intlat: [ress.longitude, ress.latitude]
+								intlat: [ress.longitude, ress.latitude],
+								intlatold: [res.longitude, res.latitude]
 							}
 							that.timeBeginSet(d) //30秒送数据
 							//加入绘制路线
diff --git a/pages/grabOrders/grabOrdersZAYWXC/grabOrders.vue b/pages/grabOrders/grabOrdersZAYWXC/grabOrders.vue
index 9199bc5..de4eb91 100644
--- a/pages/grabOrders/grabOrdersZAYWXC/grabOrders.vue
+++ b/pages/grabOrders/grabOrdersZAYWXC/grabOrders.vue
@@ -15,6 +15,8 @@
 							@getOrders="getOrders"></page0>
 						<page1 :listData="rightdata" :swiperCurrent="1" v-if="item.name == '可参与'" @openOnce="openOnce"
 							@getOrders="getOrders"></page1>
+						<page2 :listData="rightdata" :swiperCurrent="2" v-if="item.name == '已完成'" @openOnce="openOnce"
+							@getOrders="getOrders"></page2>
 
 						<!-- <view class="a" v-if="item.name == '正在进行'">
 						 	{{leftdata}}
@@ -45,10 +47,13 @@
 		data() {
 			return {
 				list: [{
+						name: "可参与",
+					},
+					{
 						name: "正在进行",
 					},
 					{
-						name: "可参与",
+						name: "已完成",
 					},
 				],
 				// 因为内部的滑动机制限制,请将tabs组件和swiper组件的current用不同变量赋值
@@ -56,6 +61,7 @@
 				swiperCurrent: 0, // swiper组件的current值,表示当前那个swiper-item是活动的
 				leftdata: [],
 				rightdata: [],
+				overdata: [],
 				showPopup: false,
 				appdetitle: "",
 				popupData: {},
@@ -139,7 +145,7 @@
 			openOnce(val) {
 				//打开地图
 				// console.log(this.swiperCurrent)
-				val["buttype"] = this.swiperCurrent; //tab标识,0正在进行,1可参与
+				val["buttype"] = this.swiperCurrent == 1 ? 0 : (this.swiperCurrent == 0 ? 1 : 2); //tab标识,0正在进行,1可参与
 				val["serid"] = (uni.getStorageSync("ids") || this.$store.state.puserID) + ",";
 				val["appenUrl"] = this.$store.state.piAPI;
 				//打开地图
@@ -180,11 +186,11 @@
 				let that = this,
 					d = {
 						serid: uni.getStorageSync("ids") || that.$store.state.puserID,
-						type: val + "",
+						type: val == 1 ? 0 : (val == 0 ? 1 : 2) + "",
 						tasktype: '1'
 					};
-
-				if (val == 1) {
+				let isWhere = val == 0 ? "可参与" : val == 1 ? "正在进行" : "已完成";
+				if (val == 0) {
 					d.jurisdiction = this.$store.state.UserData.jurisdiction;
 					d.workjurisdiction = this.$store.state.UserData.workjurisdiction;
 				}
@@ -199,9 +205,9 @@
 					success(res) {
 						const data = res.data.data;
 						// console.log(data);
-						if (val == 1) {
+						if (isWhere == "可参与") {
 							that.rightdata = data;
-						} else {
+						} else if (isWhere == "正在进行") {
 							let no = [],
 								ok = [],
 								begin = [],
@@ -260,6 +266,8 @@
 							// 	that.$store.commit("addTask", id)
 							// }
 							// that.isOnTask[44].position.continuedTime();
+						} else {
+							that.overdata = data;
 						}
 					},
 				});
diff --git a/pages/grabOrders/grabOrdersZAYWXC/inPage/page0.vue b/pages/grabOrders/grabOrdersZAYWXC/inPage/page0.vue
index ec9da04..3a7f41b 100644
--- a/pages/grabOrders/grabOrdersZAYWXC/inPage/page0.vue
+++ b/pages/grabOrders/grabOrdersZAYWXC/inPage/page0.vue
@@ -20,15 +20,9 @@
 				</view>
 			</view>
 			<view class="onve-right">
-				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" :disabled="true"
-					v-if="item.iscation == 0" @click="getOrders(swiperCurrent,item)">
+				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" :disabled="true">
 					<!-- <span class="Cation notCation">队员</span> -->
-					{{item.type == 1?"完成反馈":item.type == 0?"正在进行":"还未开始"}}
-				</u-button>
-				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini"
-					:disabled="item.type == 1" v-if="item.iscation == 1" @click="getOrders(swiperCurrent,item)">
-					<!-- <span class="Cation orange">队长</span> -->
-					{{item.type == 1?"完成反馈":item.type == 0?"上传反馈":"开始任务"}}
+					{{"完成反馈"}}
 				</u-button>
 				<view class="o-r-$">
 					积分:{{item.integral}}
diff --git a/pages/grabOrders/grabOrdersZAYWXC/inPage/page2.vue b/pages/grabOrders/grabOrdersZAYWXC/inPage/page2.vue
new file mode 100644
index 0000000..ec9da04
--- /dev/null
+++ b/pages/grabOrders/grabOrdersZAYWXC/inPage/page2.vue
@@ -0,0 +1,206 @@
+<template>
+	<view class="onveMain">
+		<view class="once" v-for="(item,index) in listData" :key="index" @click="openOnce(item)">
+			<view class="onve-left">
+				<view class="o-l-img">
+					<image :src="item.url" mode=""></image>
+				</view>
+				<view class="o-l-main">
+					<view class="o-l-m-up">
+						{{item.rname}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="order" color="#d0d0d0" size="28"></u-icon>
+						人数:{{item.num}}/ {{item.jnum}}
+					</view>
+					<view class="o-l-m-center">
+						<u-icon name="volume" color="#d0d0d0" size="28"></u-icon>
+						时间:{{item.time.slice(0,10)}}
+					</view>
+				</view>
+			</view>
+			<view class="onve-right">
+				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini" :disabled="true"
+					v-if="item.iscation == 0" @click="getOrders(swiperCurrent,item)">
+					<!-- <span class="Cation notCation">队员</span> -->
+					{{item.type == 1?"完成反馈":item.type == 0?"正在进行":"还未开始"}}
+				</u-button>
+				<u-button :class="[item.type == 1?'':item.type == 0?'blues':'greens']" size="mini"
+					:disabled="item.type == 1" v-if="item.iscation == 1" @click="getOrders(swiperCurrent,item)">
+					<!-- <span class="Cation orange">队长</span> -->
+					{{item.type == 1?"完成反馈":item.type == 0?"上传反馈":"开始任务"}}
+				</u-button>
+				<view class="o-r-$">
+					积分:{{item.integral}}
+				</view>
+			</view>
+		</view>
+		<u-divider>没有更多了</u-divider>
+		<view class="">
+			{{res}}
+		</view>
+		<br />
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["listData", "swiperCurrent"],
+		data() {
+			return {
+				res: ''
+			}
+		},
+		computed: {
+			changes() {
+				return this.$store.state.changes;
+			}
+		},
+		watch: {
+			changes() {
+				console.log(this.$store.state.isOnTaskValue)
+				this.res = this.$store.state.isOnTaskValue.intlat;
+			}
+		},
+		methods: {
+			openOnce(val) {
+				this.$emit("openOnce", val);
+			},
+			getOrders(val, item) {
+				let b = {
+					val: val,
+					item: item
+				}
+				this.$emit("getOrders", b);
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.onveMain {
+		width: 100%;
+		height: auto;
+	}
+
+	.once {
+		width: calc(100% - 10px);
+		height: 100px;
+		border: 1px solid #d0d0d0;
+		padding: 8px;
+		box-sizing: border-box;
+		margin: 5px;
+		border-radius: 8px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+
+		.onve-left {
+			width: 75%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+
+			.o-l-img {
+				width: 80px;
+				height: 80px;
+				background-color: #d0d0d0;
+				margin-right: 5px;
+				border-radius: 7px;
+
+				image {
+					width: 100%;
+					height: 100%;
+					border-radius: 7px;
+				}
+			}
+
+			.o-l-main {
+				width: calc(100% - 85px);
+				height: 80px;
+				display: flex;
+				// align-items: center;
+				justify-content: center;
+				flex-direction: column;
+
+				.o-l-m-up {
+					height: 30px;
+					font-size: 16px;
+				}
+			}
+		}
+
+		.onve-right {
+			width: 25%;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			flex-direction: column;
+
+			view {
+				margin-top: 10px;
+			}
+		}
+
+		// .onceUp {
+		// 	width: 100%;
+		// 	height: 25%;
+		// 	padding-bottom: 5px !important;
+		// 	border-bottom: 1px solid #d0d0d0;
+		// }
+
+		// .onceMain {
+		// 	width: 100%;
+		// 	height: 80%;
+		// 	display: flex;
+		// 	align-items: center;
+		// 	justify-content: center;
+
+		// 	.o-m-left {
+		// 		width: 80%;
+		// 		height: 100%;
+		// 		border: 1 solid #d0d0d0;
+		// 		display: flex;
+		// 		// align-items: center;
+		// 		justify-content: center;
+		// 		flex-direction: column;
+
+		// 		view {
+		// 			margin-top: 2.5px;
+		// 			padding-bottom: 2.5px;
+		// 		}
+		// 	}
+		// }
+
+	}
+
+	.orange {
+		color: #FF7B15;
+	}
+
+	.green {
+		color: #00e713;
+	}
+
+	.greens {
+		color: #18a655 !important;
+	}
+
+	.blues {
+		color: #2680F0 !important;
+	}
+
+	.Cation {
+		display: inline-block;
+		position: absolute;
+		left: -35px;
+
+		&::after {
+			content: "";
+		}
+	}
+
+	.notCation {
+		color: #18a655 !important;
+	}
+</style>
diff --git a/store/apiConfig.js b/store/apiConfig.js
index 5c8c434..ce0558e 100644
--- a/store/apiConfig.js
+++ b/store/apiConfig.js
@@ -1,13 +1,16 @@
-let i = 1; //1是服务器
+let i = 3; //1是服务器
 if (i == 1) {
 	var api = 'http://223.82.109.183:2082/api/';
 	var wsapi = 'ws://223.82.109.183:2082/wss/websocket';
-} else if (i == 0) {//曾
+} else if (i == 0) { //曾
 	var api = 'http://192.168.0.108:83/';
 	var wsapi = 'ws://192.168.0.108:9034/websocket';
-} else if (i == 2) {//唐
+} else if (i == 2) { //唐
 	var api = 'http://192.168.0.110:83/';
 	var wsapi = 'ws://192.168.0.110:9034/websocket';
+} else if (i == 3) { //唐
+	var api = 'http://192.168.0.222:83/';
+	var wsapi = 'ws://192.168.0.222:9034/websocket';
 }
 
 // var api = 'http://192.168.0.222:83/';
diff --git a/store/positions.js b/store/positions.js
index af5163b..ed39477 100644
--- a/store/positions.js
+++ b/store/positions.js
@@ -68,12 +68,12 @@
 		setMsg(state, value) {
 			//发送任务位置
 			//uid ;自己id,rid: 任务id,jd,wd经度纬度
-			// console.log(value)
+			console.log(value, 123)
 			let d = {
 				uid: WxStorage.get("ids") || $store.state.puserID,
 				rid: value.id,
-				jd: value.intlat[0],
-				wd: value.intlat[1],
+				jd: value.intlatold[0],
+				wd: value.intlatold[1],
 			}
 			uni.request({
 				url: $store.state.piAPI + "trar/submit",

--
Gitblit v1.9.3