Quellcode durchsuchen

代码更新 3/4

zhangyun vor 4 Jahren
Ursprung
Commit
3abb83e000
100 geänderte Dateien mit 2572 neuen und 394 gelöschten Zeilen
  1. 171 3
      MingGaoApp/App.vue
  2. 3 0
      MingGaoApp/androidPrivacy.json
  3. 115 19
      MingGaoApp/components/task-details.vue
  4. 5 0
      MingGaoApp/main.js
  5. 49 2
      MingGaoApp/manifest.json
  6. 170 61
      MingGaoApp/pages.json
  7. 38 2
      MingGaoApp/pages/index/harmfultask.vue
  8. 173 54
      MingGaoApp/pages/index/index.vue
  9. 114 0
      MingGaoApp/pages/insectpest/baselist.vue
  10. 279 0
      MingGaoApp/pages/insectpest/insectpest.vue
  11. 10 9
      MingGaoApp/pages/login/login.vue
  12. 11 2
      MingGaoApp/pages/my/mtmonitdetails.vue
  13. 111 10
      MingGaoApp/pages/my/version.vue
  14. 93 14
      MingGaoApp/pages/response/details.vue
  15. 324 192
      MingGaoApp/pages/response/index.vue
  16. 311 0
      MingGaoApp/pages/response/video - 副本.nvue
  17. 377 0
      MingGaoApp/pages/response/video.nvue
  18. 29 0
      MingGaoApp/pages/start/start.vue
  19. 30 8
      MingGaoApp/pages/supervise/index.vue
  20. 3 1
      MingGaoApp/pages/supervise/submitsupe.vue
  21. 32 1
      MingGaoApp/pages/supervise/supetask.vue
  22. BIN
      MingGaoApp/static/image/10.png
  23. BIN
      MingGaoApp/static/image/8.png
  24. BIN
      MingGaoApp/static/image/9.png
  25. BIN
      MingGaoApp/static/statr.png
  26. 18 0
      MingGaoApp/store/index.js
  27. BIN
      MingGaoApp/unpackage/cache/apk/__UNI__1BA09AD_cm.apk
  28. 1 0
      MingGaoApp/unpackage/cache/apk/apkurl
  29. 1 0
      MingGaoApp/unpackage/cache/apk/cmManifestCache.json
  30. 3 0
      MingGaoApp/unpackage/cache/certdata
  31. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/google-keystore.keystore
  32. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-hdpi.png
  33. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-xhdpi.png
  34. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-xxhdpi.png
  35. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-xxxhdpi.png
  36. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/splash-android-hdpi.png
  37. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/splash-android-xhdpi.png
  38. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/splash-android-xxhdpi.png
  39. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappchooselocation.js
  40. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniapperror.png
  41. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappes6.js
  42. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappopenlocation.js
  43. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniapppicker.js
  44. 8 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappquill.js
  45. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappquillimageresize.js
  46. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappscan.js
  47. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappsuccess.png
  48. 25 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappview.html
  49. 3 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/androidPrivacy.json
  50. 8 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-config-service.js
  51. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-config.js
  52. 14 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-service.js
  53. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-view.js
  54. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/manifest.json
  55. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/pages/response/video.js
  56. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/10.png
  57. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/6.png
  58. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/7.png
  59. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/8.png
  60. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/9.png
  61. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/geren.jpg
  62. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/huida.png
  63. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/huidaon.png
  64. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/me.png
  65. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/meon.png
  66. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/renwu.png
  67. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/renwuon.png
  68. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/yingjian.png
  69. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/yingjianon.png
  70. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/login.jpg
  71. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/pilianggengxin.png
  72. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/logo.png
  73. BIN
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/statr.png
  74. 1 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/view.css
  75. 6 0
      MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/view.umd.min.js
  76. BIN
      MingGaoApp/unpackage/debug/android_debug.apk
  77. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/__uniappchooselocation.js
  78. BIN
      MingGaoApp/unpackage/dist/build/app-plus/__uniapperror.png
  79. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/__uniapppicker.js
  80. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/__uniappquill.js
  81. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/__uniappquillimageresize.js
  82. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/__uniappscan.js
  83. 3 0
      MingGaoApp/unpackage/dist/build/app-plus/androidPrivacy.json
  84. 2 2
      MingGaoApp/unpackage/dist/build/app-plus/app-config-service.js
  85. 8 2
      MingGaoApp/unpackage/dist/build/app-plus/app-service.js
  86. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/app-view.js
  87. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/manifest.json
  88. 1 0
      MingGaoApp/unpackage/dist/build/app-plus/pages/response/video.js
  89. BIN
      MingGaoApp/unpackage/dist/build/app-plus/static/image/10.png
  90. BIN
      MingGaoApp/unpackage/dist/build/app-plus/static/image/6.png
  91. BIN
      MingGaoApp/unpackage/dist/build/app-plus/static/image/7.png
  92. BIN
      MingGaoApp/unpackage/dist/build/app-plus/static/image/8.png
  93. BIN
      MingGaoApp/unpackage/dist/build/app-plus/static/image/9.png
  94. BIN
      MingGaoApp/unpackage/dist/build/app-plus/static/image/pilianggengxin.png
  95. BIN
      MingGaoApp/unpackage/dist/build/app-plus/static/statr.png
  96. 1 1
      MingGaoApp/unpackage/dist/build/app-plus/view.css
  97. 3 3
      MingGaoApp/unpackage/dist/build/app-plus/view.umd.min.js
  98. 1 1
      MingGaoApp/unpackage/dist/dev/app-plus/__uniappchooselocation.js
  99. BIN
      MingGaoApp/unpackage/dist/dev/app-plus/__uniapperror.png
  100. 0 0
      MingGaoApp/unpackage/dist/dev/app-plus/__uniapppicker.js

+ 171 - 3
MingGaoApp/App.vue

@@ -1,14 +1,182 @@
 <script>
 	export default {
+		globalData: {
+			token: "",
+
+			// 文本消息
+			socketTask: null,
+			urlData: "ws://192.168.1.17:12345/api/api_gateway?method=control_center.real_time.im_message",
+			is_open_socket: false, // 确保websocket是打开状态
+			list: [],
+			userId: null, // 用户ID
+
+			// 即构
+			video: null, //房间密码和token
+			app: []
+		},
+		onLoad() {},
 		onLaunch: function() {
-			// console.log('App Launch')
+			// App启动
+			var that = this
+			// uni.hideTabBar({})
+			uni.getStorage({
+				key: 'session_key',
+				success: function(res) {
+					// console.log(res)
+					that.globalData.token = res.data
+					// console.log('登录成功了')
+					that.msgInit(); // 文本初始化
+				},
+				fail: function(err) {
+					// console.log(err)
+					// console.log('没有登录成功')
+				}
+			})
 		},
 		onShow: function() {
-			// console.log('App Show')
+			// App展示在前台
+			// console.log('App Show')、
+			uni.getStorage({
+				key: 'session_key',
+				success: (res) => {
+					console.log(res)
+					if (res.data != "") {
+						this.getlistinfo()
+					} else {
+						uni.navigateTo({
+							url: "../login/login"
+						})
+					}
+				},
+				fail:()=> {
+					uni.navigateTo({
+						url: "../login/login"
+					})
+				}
+			})
+
 		},
 		onHide: function() {
+			// App不再再展示在前台
 			// console.log('App Hide')
-		}
+		},
+		methods: {
+			// 实时通信 - 初始化
+			async getlistinfo() {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=sysmenage.usermanager.user_info',
+				})
+				// console.log(res)
+				this.app = res.children.filter((item) => {
+					return item.purview_name == "APP"
+				})
+
+				console.log(this.app)
+				if (this.app.length != 0) {
+					if (this.app[0].children[0].purview_name == "我的任务") {
+						uni.switchTab({
+							url: "../index/index"
+						})
+					} else if (this.app[0].children[0].purview_name == "监督") {
+						uni.switchTab({
+							url: "../supervise/index"
+						})
+						uni.setTabBarItem({
+							index: 0,
+							visible: false
+						});
+					} else {
+						uni.switchTab({
+							url: "../response/index"
+						})
+						uni.setTabBarItem({
+							index: 0,
+							visible: false
+						});
+						uni.setTabBarItem({
+							index: 1,
+							visible: false
+						});
+					}
+				} else {
+					uni.setTabBarItem({
+						index: 0,
+						visible: false
+					});
+					uni.setTabBarItem({
+						index: 1,
+						visible: false
+					});
+					uni.switchTab({
+						url: "../response/index"
+					})
+				}
+				// console.log(this.app)
+			},
+			msgInit() {
+				var that = this
+				// 连接webscoket
+				// console.log(this.globalData.urlData)
+				that.globalData.socketTask = uni.connectSocket({
+					url: this.globalData.urlData + "&token=" + that.globalData.token,
+					success(data) {
+						// console.log("websocket连接成功");
+					}
+				});
+
+				// 发送消息 - 获取对话列表
+				var obj = {
+					'action': 'list', // 动作标识,必填
+					'recv_user_id': '', // 接收人用户id, 非必填
+					'data': {}
+				}
+				that.globalData.socketTask.onOpen((res) => {
+					that.globalData.socketTask.send({
+						data: JSON.stringify(obj),
+						async success(res) {
+							that.globalData.is_open_socket = true
+							console.log("消息发送成功");
+						},
+					});
+				})
+
+				// // 接收服务器返回的消息
+				// // 注:只有连接正常打开中 ,才能正常收到消息
+				that.globalData.socketTask.onMessage((res) => {
+					console.log("收到服务器内容:");
+					var val = JSON.parse(res.data)
+					if (val.action == 'list') {
+						var obj1 = {
+							'action': 'list', // 动作标识,必填
+							'recv_user_id': that.globalData.userId, // 接收人用户id, 非必填
+							'data': {
+								'msg_status': false, // 消息未读
+								'msg_info': '', // 发送消息
+							}
+						}
+						that.globalData.socketTask.send({
+							data: JSON.stringify(obj1),
+							async success(res) {
+								// console.log("消息发送成功");
+							},
+						});
+					} else if (val.action == 'none') {
+						// console.log('进入了')
+						that.globalData.list = val.data
+						console.log(that.globalData.list)
+						this.$store.state.list = val.data
+						// console.log(this.$store.state.list)
+					} else if (val.action == 'recv_video') {
+						// console.log(val.data)
+						that.globalData.video = val.data
+						this.$store.state.video = val.data
+						console.log(this.$store.state.video)
+					}
+				});
+				// console.log(that.socketTask)
+
+			},
+		},
 	}
 </script>
 

+ 3 - 0
MingGaoApp/androidPrivacy.json

@@ -0,0 +1,3 @@
+{
+    "prompt" : "none"
+}

+ 115 - 19
MingGaoApp/components/task-details.vue

@@ -2,14 +2,14 @@
 <!-- istask  0 完成任务模块 1 任务模块 2 监督模块 3监督记录模块-->
 <template name="task-details">
 	<view class="" style="padding-bottom: 40rpx;">
-		<view class="taskbtn">
-			<view class="taskbtn_item" v-if="istask==1" @click="taskfilling">
+		<!-- <view class="taskbtn">
+			<view class="taskbtn_item" v-if="istask==1" @click="taskfillingcom">
 				提交
 			</view>
 			<view class="taskbtn_item" v-if="istask==2" @click="skip">
 				监督
 			</view>
-		</view>
+		</view> -->
 		<view class="taskbox">
 			<view class="taskbox_item">
 				<view class="taskbox_item_l">
@@ -62,10 +62,10 @@
 						<u-icon size="20" name="plus" color="#409eff"></u-icon>
 					</view>
 					<view class="imgitem" v-for="item,index in urllist" :key="index">
-						<!-- <image :src="" mode="" class="img"></image> -->
-						<u--image :src="baseUrl+item" class="img">
+						<image :src="baseUrl+item" mode="" class="img"></image>
+						<!-- <u--image :src="baseUrl+item" class="img">
 							<view slot="error" style="font-size: 24rpx;">加载失败</view>
-						</u--image>
+						</u--image> -->
 					</view>
 				</view>
 			</view>
@@ -99,9 +99,9 @@
 		<view class="basebox" v-if="task_type">
 			<view class="title">
 				<view class="title_l">
-					设备登记
+					设备登记<span v-if="taskinfo.trap_record_list.length == 0" style="font-size: 24rpx;">(暂无设备)</span>
 				</view>
-				<view class="title_r" v-if="taskinfo.trap_record_list.length>5">
+				<view class="title_r" v-if="taskinfo.trap_record_list.length>5" @click="tolist">
 					更多
 				</view>
 			</view>
@@ -115,8 +115,10 @@
 							{{item.report_status}}
 						</view>
 						<view class="basebox_info_item_r">
-							<u-icon name="search" color="#2979ff" size="20" v-if="!taskshow"></u-icon>
-							<u-icon name="edit-pen-fill" color="#2979ff" size="20" v-else></u-icon>
+							<u-icon name="search" color="#2979ff" size="20" v-if="!taskshow" @click="searchworn(item)">
+							</u-icon>
+							<u-icon name="edit-pen-fill" color="#2979ff" size="20" v-else @click="compile(item)">
+							</u-icon>
 						</view>
 					</view>
 				</view>
@@ -168,6 +170,7 @@
 </template>
 
 <script>
+	import store from '@/store/index.js'; //需要引入store
 	import kpsImageCutter from "@/components/ksp-image-cutter/ksp-image-cutter.vue";
 	export default {
 		name: "task-details",
@@ -184,7 +187,9 @@
 					trap_record_list: []
 				},
 				task_type: false,
-				loading:false
+				loading: false,
+				task_id: "",
+				draft: {}
 			};
 		},
 		props: { //此处定义传入的参数
@@ -195,6 +200,25 @@
 				type: Number
 			}
 		},
+		watch: {
+			wornlist(news, old) {
+				console.log(this.taskinfo.trap_record_list)
+				console.log(news)
+				this.draft = news
+				for (var i = 0; i < this.taskinfo.trap_record_list.length; i++) {
+					if (this.taskinfo.trap_record_list[i].id == news.record_id) {
+						this.taskinfo.trap_record_list[i].report_status = news.report_status
+					}
+				}
+				this.taskfillingdraft()
+			},
+		},
+		computed: {
+			wornlist() {
+				return store.state.wornlist
+			},
+		},
+
 		methods: {
 			gainimg() { //添加图片
 				uni.chooseImage({
@@ -226,6 +250,7 @@
 			},
 			async gettaskinfo(id) {
 				this.loading = true
+				this.task_id = id
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=control_center.task.task_info',
 					data: {
@@ -233,7 +258,12 @@
 					}
 				})
 				this.taskinfo = res
-				this.taskinfo.img_list = JSON.parse(this.taskinfo.img_list)
+				if(this.taskinfo.img_list == "" || this.taskinfo.img_list.length==0){
+					this.taskinfo.img_list = []
+				}else{
+					this.taskinfo.img_list = JSON.parse(this.taskinfo.img_list)
+				}
+				
 				if (this.taskinfo.task_type == "有害生物监测") {
 					this.task_type = true
 				} else {
@@ -242,21 +272,87 @@
 				this.loading = false
 				console.log(res)
 			},
+			taskfillingcom() {
+				console.log(this.urllist)
+				var tf = this.taskinfo.trap_record_list.every((item)=>{
+					return item.report_status != ""
+				})
+				// console.log(tf)
+				if(this.urllist.length==0){
+					uni.$u.toast('请拍摄图片进行签到')
+				}else if(this.textareavalue==""){
+					uni.$u.toast('请填写任务汇报')
+				}else if(!tf){
+					if(this.task_type){
+						uni.$u.toast('请完成填写设备登记')
+					}else{
+						this.taskfilling()
+					}
+				}else{
+					this.taskfilling()
+				}
+					
+			},
 			async taskfilling() { //任务填报接口
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=app.task.task_filling',
 					data: {
 						// task_id:id,
+						task_id: this.task_id, //            是       任务id
+						report_msg: this.textareavalue, //            是       任务汇报内容
+						img_list: JSON.stringify(this.urllist), //            是       图片列表					['http://www.c.com']
+					}
+				})
+				this.$emit('returnpage')
+			},
+			async taskfillingdraft() { //任务填报接口
+				console.log(this.draft)
+				var arr = []
+				for(var i=0;i<this.taskinfo.trap_record_list.length;i++){
+					if(this.taskinfo.trap_record_list[i].report_status!=""&&this.taskinfo.trap_record_list[i].id!=this.draft.record_id){
+						// arr.push()
+						var obj ={
+							record_id: this.taskinfo.trap_record_list[i].id, //      			填报记录id
+							report_status: this.taskinfo.trap_record_list[i].report_status, //			填报记录状态
+							pest_list: this.taskinfo.trap_record_list[i].pest_list
+						}
+						arr.push(obj)
+					}
+				}
+				arr.push(this.draft)
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=app.task.task_filling_draft',
+					data: {
+						// task_id:id,
+						task_id: this.task_id, //            是       任务id
+						report_msg: this.textareavalue, //            是       任务汇报内容
+						img_list: this.urllist, //            是       图片列表					['http://www.c.com']
+						trap_record_list: JSON.stringify(arr),//    是       害虫填报记录列表
 					}
 				})
 			},
 			skip() { //跳转
-				// uni.redirectTo({
-				// 	url:"../pages/supervise/submitsupe?id"+ this.taskinfo.task_id
-				// });
-				// console.log(this.$parent)
-				// this.$parent.tosubm();
 				this.$emit('tosubm')
+			},
+			searchworn(item) {
+				// console.log(item)
+				var obj = {
+					id: item.id,
+					trap_number: item.trap_number,
+					comtype: false
+				}
+				this.$emit('toinsect', JSON.stringify(obj))
+			},
+			compile(item) {
+				var obj = {
+					id: item.id,
+					trap_number: item.trap_number,
+					comtype: true
+				}
+				this.$emit('toinsect', JSON.stringify(obj))
+			},
+			tolist(){
+				this.$emit('tolist', this.task_id)
 			}
 		},
 	}
@@ -264,8 +360,8 @@
 
 <style lang="less" scoped>
 	.taskbtn {
-		position: absolute;
-		top: -60rpx;
+		position: fixed;
+		top: 22rpx;
 		right: 20rpx;
 		z-index: 9999;
 		color: #409eff;

+ 5 - 0
MingGaoApp/main.js

@@ -14,6 +14,11 @@ Vue.use(uView);
 import {myRequest} from './util/api.js'
 Vue.prototype.$myRequest=myRequest
 
+// 引入store
+import store from './store'
+// 把vuex定义成全局组件
+Vue.prototype.$store = store
+
 import config from "./util/url.js"
 Vue.prototype.baseUrl = config.baseUrl
 app.$mount()

+ 49 - 2
MingGaoApp/manifest.json

@@ -1,6 +1,6 @@
 {
-    "name" : "MingGaoApp",
-    "appid" : "__UNI__03CA676",
+    "name" : "智网监测",
+    "appid" : "__UNI__1BA09AD",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : "100",
@@ -45,6 +45,53 @@
             /* SDK配置 */
             "sdkConfigs" : {
                 "ad" : {}
+            },
+            "splashscreen" : {
+                "iosStyle" : "common",
+                "ios" : {
+                    "iphone" : {
+                        "portrait-896h@3x" : ""
+                    }
+                },
+                "androidStyle" : "default",
+                "useOriginalMsgbox" : false,
+                "android" : {
+                    "hdpi" : "C:/Users/FC/Desktop/智网/智云图片/statr.png",
+                    "xhdpi" : "C:/Users/FC/Desktop/智网/智云图片/statr.png",
+                    "xxhdpi" : "C:/Users/FC/Desktop/智网/智云图片/statr.png"
+                }
+            },
+            "icons" : {
+                "android" : {
+                    "hdpi" : "unpackage/res/icons/72x72.png",
+                    "xhdpi" : "unpackage/res/icons/96x96.png",
+                    "xxhdpi" : "unpackage/res/icons/144x144.png",
+                    "xxxhdpi" : "unpackage/res/icons/192x192.png"
+                },
+                "ios" : {
+                    "appstore" : "unpackage/res/icons/1024x1024.png",
+                    "ipad" : {
+                        "app" : "unpackage/res/icons/76x76.png",
+                        "app@2x" : "unpackage/res/icons/152x152.png",
+                        "notification" : "unpackage/res/icons/20x20.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "proapp@2x" : "unpackage/res/icons/167x167.png",
+                        "settings" : "unpackage/res/icons/29x29.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "spotlight" : "unpackage/res/icons/40x40.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png"
+                    },
+                    "iphone" : {
+                        "app@2x" : "unpackage/res/icons/120x120.png",
+                        "app@3x" : "unpackage/res/icons/180x180.png",
+                        "notification@2x" : "unpackage/res/icons/40x40.png",
+                        "notification@3x" : "unpackage/res/icons/60x60.png",
+                        "settings@2x" : "unpackage/res/icons/58x58.png",
+                        "settings@3x" : "unpackage/res/icons/87x87.png",
+                        "spotlight@2x" : "unpackage/res/icons/80x80.png",
+                        "spotlight@3x" : "unpackage/res/icons/120x120.png"
+                    }
+                }
             }
         },
         "nativePlugins" : {

+ 170 - 61
MingGaoApp/pages.json

@@ -4,33 +4,75 @@
 	},
 	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
 		{
-			"path": "pages/login/login",
+			"path": "pages/start/start",
 			"style": {
 				"navigationBarTitleText": "",
+				"enablePullDownRefresh": false,
 				"navigationStyle": "custom"
 			}
 		},
 		{
+			"path": "pages/my/index",
+			"style": {
+				"navigationBarTitleText": "",
+				"navigationStyle": "custom"
+			}
+
+		},
+		{
 			"path": "pages/index/index",
 			"style": {
 				"navigationBarTitleText": "任务",
-				"navigationBarBackgroundColor": "#fff",
+				"navigationBarBackgroundColor": "#ffffff",
 				"enablePullDownRefresh": true,
 				"app-plus": {
 					"titleNView": {
 						"splitLine": { //原生导航栏加下边框
-							"color": "#000",
+							"color": "#e3e3e3",
 							"height": "1px"
 						}
 					}
+				},
+				"titleNView": {
+					"buttons": [{
+						"text": " ",
+						"fontSize": "14px",
+						"color": "#409eff"
+					}]
 				}
 			}
-		}, {
+		},
+		{
+			"path": "pages/login/login",
+			"style": {
+				"navigationBarTitleText": "",
+				"navigationStyle": "custom"
+			}
+		},
+		{
 			"path": "pages/response/index",
 			"style": {
 				"navigationBarTitleText": "应答中心",
-				"navigationBarBackgroundColor":"#FFFFFF",
-				"enablePullDownRefresh": true
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"enablePullDownRefresh": true,
+				"app-plus": {
+					"titleNView": {
+						"splitLine": { //原生导航栏加下边框
+							"color": "#e3e3e3",
+							"height": "1px"
+						}
+					}
+				}
+			}
+
+		},
+		{
+			"path": "pages/response/video",
+			"style": {
+				"navigationBarTitleText": "视频通话",
+				"navigationBarBackgroundColor": "#ffffff",
+				"enablePullDownRefresh": false,
+				"navigationStyle": "custom"
 			}
 
 		},
@@ -39,117 +81,184 @@
 			"style": {
 				"navigationBarTitleText": "应答中心详情",
 				"navigationBarBackgroundColor": "#FFFFFF",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": false,
+				"disableSwipeBack": true
 			}
 
-		}, {
-			"path": "pages/my/index",
-			"style": {
-				"navigationBarTitleText": "",
-				"navigationStyle": "custom"
-			}
+		},
+		// {
+		// 		"navigationBarBackgroundColor": "#f7f7f7",
+		// 		"enablePullDownRefresh": false
+		// 	}
 
-		}, {
+		// }, 
+		{
 			"path": "pages/supervise/index",
 			"style": {
 				"navigationBarTitleText": "监督",
-				"navigationBarBackgroundColor": "#FFFFFF"
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"enablePullDownRefresh": true,
+				"app-plus": {
+					"titleNView": {
+						"splitLine": { //原生导航栏加下边框
+							"color": "#e3e3e3",
+							"height": "1px"
+						}
+					}
+				}
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/myinfo",
 			"style": {
 				"navigationBarTitleText": "个人中心",
 				"enablePullDownRefresh": false,
+				"disableSwipeBack": true,
 				"navigationBarBackgroundColor": "#FFFFFF"
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/password",
 			"style": {
 				"navigationBarTitleText": "修改密码",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/monitorlog",
 			"style": {
 				"navigationBarTitleText": "监测日志",
-				"enablePullDownRefresh": true
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/addcont",
 			"style": {
 				"navigationBarTitleText": "新增内容",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/version",
 			"style": {
 				"navigationBarTitleText": "更新记录",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff",
+				"titleNView": {
+					"buttons": [{
+						"text": "更新",
+						"fontSize": "14px",
+						"color": "#409eff"
+					}]
+				}
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/mymonit",
 			"style": {
 				"navigationBarTitleText": "监督记录",
-				"enablePullDownRefresh": true
+				"enablePullDownRefresh": true,
+				"navigationBarBackgroundColor": "#ffffff"
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/mtmonitdetails",
 			"style": {
 				"navigationBarTitleText": "监督记录详情",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/my/monitorlogdata",
 			"style": {
 				"navigationBarTitleText": "记录详情",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
 			}
 
-		}, {
+		},
+		{
 			"path": "pages/index/harmfultask",
 			"style": {
 				"navigationBarTitleText": "生物监测任务",
-				"enablePullDownRefresh": false
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff",
+				"titleNView": {
+					"buttons": [{
+						"text": " ",
+						"fontSize": "14px",
+						"color": "#409eff"
+					}]
+				}
+			}
+
+		},
+		{
+			"path": "pages/supervise/supetask",
+			"style": {
+				"navigationBarTitleText": "生物监测任务监督",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff",
+				"titleNView": {
+					"buttons": [{
+						"text": " ",
+						"fontSize": "14px",
+						"color": "#409eff"
+					}]
+				}
+			}
+
+		},
+		{
+			"path": "pages/supervise/submitsupe",
+			"style": {
+				"navigationBarTitleText": "监督",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
+			}
+
+		},
+		{
+			"path": "pages/insectpest/insectpest",
+			"style": {
+				"navigationBarTitleText": "登记信息",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
+			}
+
+		},
+		{
+			"path": "pages/insectpest/baselist",
+			"style": {
+				"navigationBarTitleText": "设备列表",
+				"enablePullDownRefresh": false,
+				"navigationBarBackgroundColor": "#ffffff"
 			}
 
 		}
-	    ,{
-            "path" : "pages/supervise/supetask",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "生物监测任务监督",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/supervise/submitsupe",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "监督",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-    ],
+	],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "",
-		"navigationBarBackgroundColor": "#fff",
-		"backgroundColor": "#fff"
+		"navigationBarBackgroundColor": "#ffffff",
+		"backgroundColor": "#ffffff"
 	},
 	"tabBar": {
 		"color": "#cdcdcd",
-		"selectedColor": "#56C979",
-		"borderStyle": "white",
+		"selectedColor": "#409eff",
+		"borderStyle": "#e3e3e3",
 		"backgroundColor": "#fff",
 		"list": [{
 				"pagePath": "pages/index/index",
@@ -158,18 +267,18 @@
 				"text": "任务"
 			},
 			{
-				"pagePath": "pages/response/index",
-				"iconPath": "static/image/indeximg/huidaon.png",
-				"selectedIconPath": "static/image/indeximg/huida.png",
-				"text": "应答"
-			},
-			{
 				"pagePath": "pages/supervise/index",
 				"iconPath": "static/image/indeximg/yingjianon.png",
 				"selectedIconPath": "static/image/indeximg/yingjian.png",
 				"text": "监督"
 			},
 			{
+				"pagePath": "pages/response/index",
+				"iconPath": "static/image/indeximg/huidaon.png",
+				"selectedIconPath": "static/image/indeximg/huida.png",
+				"text": "应答"
+			},
+			{
 				"pagePath": "pages/my/index",
 				"iconPath": "static/image/indeximg/meon.png",
 				"selectedIconPath": "static/image/indeximg/me.png",

+ 38 - 2
MingGaoApp/pages/index/harmfultask.vue

@@ -3,7 +3,7 @@
 		<view class="" style="width: 100%;height: 30rpx;background-color: #f7f7f7;">
 			
 		</view>
-		<taskdetails :taskshow="taskshow" :istask="istask" ref="child"></taskdetails>
+		<taskdetails :taskshow="taskshow" :istask="istask" ref="child" @toinsect="toinsect" @returnpage="returnpage" @tolist='tolist'></taskdetails>
 	</view>
 </template>
 
@@ -19,8 +19,28 @@
 				istask:1,
 			}
 		},
+		
 		methods: {
-
+			toinsect(item){
+				uni.navigateTo({
+					url:"../insectpest/insectpest?id="+item
+				})
+			},
+			returnpage(){
+				uni.navigateBack({
+					delta:1
+				})
+			},
+			tolist(id){
+				uni.navigateTo({
+					url:"../insectpest/baselist?id="+id+"&taskshow="+this.taskshow
+				})
+			}
+		},
+		onNavigationBarButtonTap(e){
+			if(this.istask==1){
+				this.$refs.child.taskfillingcom()
+			}
 		},
 		onLoad(option) {
 			// this.taskid = Number(option.id)
@@ -31,6 +51,22 @@
 				this.taskshow = true
 				this.istask = 1
 			}
+			let pages = getCurrentPages();
+			var page = pages[pages.length - 1];
+			var currentWebview = page.$getAppWebview();
+			if(this.istask==1){
+				currentWebview.setTitleNViewButtonStyle(0, {
+					text: "提交",
+				});
+			}else if(this.istask == 2){
+				currentWebview.setTitleNViewButtonStyle(0, {
+					text: "监督",
+				});
+			}else{
+				currentWebview.setTitleNViewButtonStyle(0, {
+					text: " ",
+				});
+			}
 			this.$nextTick(()=>{
 				this.$refs.child.gettaskinfo(option.id)
 			})

+ 173 - 54
MingGaoApp/pages/index/index.vue

@@ -1,13 +1,21 @@
 <template>
 	<view class="content">
 		<view class="subsection">
-			<u-subsection :list="list" :current="current" @change="sectionChange"></u-subsection>
-		</view>
-		<view class="screen" v-if="current==2" @click="opencale">
-			<u-icon name="calendar" color="#2979ff" size="24"></u-icon>
+			<view class="division">
+				<u-search placeholder="请输入任务处理人" v-model="name" :showAction="false" @input="search"></u-search>
+			</view>
+			<view class="subsection_ul">
+				<view :class="current==index?'subsection_li subsection_li_act':'subsection_li'" title="" note=""
+					v-for="(item,index) in list" :key="index" @click="sectionChange(index)">
+					{{item}}
+				</view>
+			</view>
 		</view>
 		<u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
 		<view class="taskbox">
+			<view class="hisbox_hint" v-if="tasklist.length==0">
+				暂无数据
+			</view>
 			<view class="taskbox_item" v-for="item,index in tasklist" :key="index" @click="totask(item.task_id)">
 				<view class="taskbox_item_t">
 					<view class="taskbox_item_t_l">
@@ -17,10 +25,13 @@
 						{{item.start_time}}
 					</view>
 				</view>
+				<view class="taskbox_item_c">
+					{{item.tesk_msg}}
+				</view>
 				<view class="taskbox_item_l">
 					<view class="taskbox_item_l_l">
 						<view class="taskbox_item_l_l_l">
-							下发人:{{item.owner_user}}
+							处理人:{{item.operator_user}}
 						</view>
 						<view class="taskbox_item_l_l_r" v-if="status=='待处理'">
 							距结束{{item.diff_day}}天
@@ -28,11 +39,12 @@
 						<view class="taskbox_item_l_l_r" v-if="status=='未完成'">
 							剩余{{item.diff_day}}天
 						</view>
-						<view class="taskbox_item_l_l_r" v-if="status=='已完成'">
+						<view class="taskbox_item_l_l_ri" v-if="status=='已完成'">
 							逾期{{item.diff_day}}天
 						</view>
 					</view>
-					<view class="taskbox_item_l_r" :style="{color:colors(item.task_status),borderColor:colors(item.task_status)}">
+					<view class="taskbox_item_l_r"
+						:style="{color:colors(item.task_status),borderColor:colors(item.task_status)}">
 						{{item.task_status}}
 					</view>
 				</view>
@@ -43,6 +55,9 @@
 </template>
 
 <script>
+	import {
+		Debounce
+	} from "../../util/anitthro.js"
 	export default {
 		data() {
 			return {
@@ -50,45 +65,69 @@
 				current: 0,
 				tasklist: [],
 				status: "待处理",
-				loading:false,
-				page:1,
-				start_time:"",
-				end_time:""
+				loading: false,
+				page: 1,
+				start_time: "",
+				end_time: "",
+				keyword: "",
+				name: ""
 			}
 		},
-		onLoad() {
+		onShow() {
 			this.gettaskdata()
 		},
+		onLoad() {
+			
+		},
 		onReachBottom() {
 			this.page++
 			this.gettaskdata()
 		},
-		onPullDownRefresh(){
+		onPullDownRefresh() {
 			this.tasklist = []
 			this.page = 1
-			this.start_time="",
-			this.end_time=""
+			this.start_time = ""
+			this.end_time = ""
 			this.gettaskdata()
 			setTimeout(() => {
 				uni.stopPullDownRefresh()
 			}, 1000)
 		},
+		onNavigationBarButtonTap(e) {
+			if (this.current == 2) {
+				this.opencale()
+			}
+		},
 		methods: {
 			sectionChange(e) {
 				this.current = e
 				this.status = this.list[e]
 				this.tasklist = []
+				this.name = ""
 				this.page = 1
+				let pages = getCurrentPages();
+				var page = pages[pages.length - 1];
+				var currentWebview = page.$getAppWebview();
+				if (e == 2) {
+					currentWebview.setTitleNViewButtonStyle(0, {
+						text: "搜索",
+					});
+				} else {
+					currentWebview.setTitleNViewButtonStyle(0, {
+						text: " ",
+					});
+				}
 				this.gettaskdata()
+
 			},
-			colors(type){
-				if(type=='未开始'||type=='未处理'){
+			colors(type) {
+				if (type == '未开始' || type == '未处理') {
 					return '#ffaa00';
-				}else if (type == '已完成'){
+				} else if (type == '已完成') {
 					return '#02C644';
-				}else if(type == '逾期完成'){
+				} else if (type == '逾期完成') {
 					return '#ff0000';
-				}else if(type == '处理中'){
+				} else if (type == '处理中') {
 					return '#409EFF';
 				}
 			},
@@ -100,100 +139,180 @@
 						page: this.page, //            否       页码, 默认1
 						page_item: "10", //
 						status: this.status,
-						start_time:this.start_time,//                              非必填                     开始时间
-						end_time:this.end_time
+						start_time: this
+							.start_time, //                              非必填                     开始时间
+						end_time: this.end_time,
+						operator_user_name: this.name
 					}
 				})
 				// this.tasklist = res.page_list
-				for(var i=0;i<res.page_list.length;i++){
+				for (var i = 0; i < res.page_list.length; i++) {
 					this.tasklist.push(res.page_list[i])
 				}
-				console.log(res)
+				// console.log(res)
 				this.loading = false
 			},
-			totask(id){
+			totask(id) {
 				uni.navigateTo({
-					url:"./harmfultask?id="+id+"&current="+this.current
+					url: "./harmfultask?id=" + id + "&current=" + this.current
 				})
 			},
-			opencale(){
+			opencale() {
 				this.$refs.calendar.open();
 			},
-			confirm(e){
+			confirm(e) {
 				this.start_time = e.range.before
 				this.end_time = e.range.after
-				this.hislist = []
+				this.tasklist = []
 				this.page = 1
 				this.gettaskdata()
 			},
+			search() {
+				Debounce(() => {
+					this.tasklist = []
+					this.page = 1
+					this.gettaskdata()
+				}, 1000)()
+			}
 		}
 	}
 </script>
 
 <style lang="less" scoped>
-	.screen {
-		position: fixed;
-		top: 20rpx;
-		right: 20rpx;
-		z-index: 9999;
-	}
-	.subsection{
+	.subsection {
 		width: 100%;
 		position: fixed;
-		top: 88rpx;
+		top: 0rpx;
 		height: 70rpx;
-		z-index: 9999;
+		z-index: 9;
+		padding-top: 10px;
+		background-color: #fff;
+
+		.division {
+			width: 90%;
+			display: flex;
+			margin: 0 auto;
+			background-color: #fff;
+			padding: 20rpx 0;
+
+			.screen {
+				// position: fixed;
+				// top: -20rpx;
+				// right: 20rpx;
+				// z-index: 9999999999;
+			}
+		}
+
+		.subsection_ul {
+			height: 70rpx;
+			display: flex;
+			justify-content: space-around;
+			border-bottom: 1px solid #F6F6F6;
+			background-color: #fff;
+
+			.subsection_li {
+				height: 70rpx;
+				text-align: center;
+				line-height: 70rpx;
+			}
+
+			.subsection_li_act {
+				color: #409EFF;
+				border-bottom: 3px solid #409EFF;
+			}
+		}
+
 	}
+
 	/deep/.u-subsection {
 		background-color: #f7f7f7 !important;
-		
+
 		// margin: 20rpx 0;
 		.u-subsection__bar {
 			background-color: #fff;
 		}
 	}
-	.taskbox{
+
+	.taskbox {
 		// margin-top: 88rpx;
 		width: 90%;
-		margin: 88rpx auto 0;
-		.taskbox_item{
+		margin: 180rpx auto 0;
+
+		.hisbox_hint {
+			width: 100%;
+			text-align: center;
+			font-size: 28rpx;
+			height: 100rpx;
+			line-height: 100rpx;
+			color: #999999;
+		}
+
+		.taskbox_item {
 			width: 100%;
 			font-size: 28rpx;
 			border-bottom: 1px solid #F6F6F6;
-			padding-top: 20rpx;
-			.taskbox_item_t,.taskbox_item_l{
+			padding: 40rpx 0;
+
+			.taskbox_item_t,
+			.taskbox_item_l {
 				width: 100%;
 				display: flex;
 				justify-content: space-between;
 				margin-bottom: 20rpx;
 			}
-			.taskbox_item_t_l{
+
+			.taskbox_item_c {
+				margin-bottom: 20rpx;
+				text-overflow: -o-ellipsis-lastline;
+				overflow: hidden;
+				text-overflow: ellipsis;
+				display: -webkit-box;
+				-webkit-line-clamp: 2;
+				line-clamp: 2;
+				-webkit-box-orient: vertical;
+			}
+
+			.taskbox_item_t_l {
 				font-weight: 700;
 			}
-			.taskbox_item_t_r{
-				color: #999999 ;
+
+			.taskbox_item_t_r {
+				color: #999999;
 			}
-			.taskbox_item_l_l{
+
+			.taskbox_item_l_l {
 				display: flex;
 			}
-			.taskbox_item_l_l_l{
+
+			.taskbox_item_l_l_l {
 				padding: 8rpx;
 				font-size: 24rpx;
-				background-color: rgba(64,158,255,0.15);
+				background-color: rgba(64, 158, 255, 0.15);
 				font-weight: 700;
 				color: #409EFF;
 				margin-right: 10rpx;
 				border-radius: 10rpx;
 			}
-			.taskbox_item_l_l_r{
+
+			.taskbox_item_l_l_r {
+				padding: 8rpx;
+				font-size: 24rpx;
+				background-color: rgba(2, 198, 68, 0.15);
+				font-weight: 700;
+				color: #02C644;
+				border-radius: 10rpx;
+			}
+
+			.taskbox_item_l_l_ri {
 				padding: 8rpx;
 				font-size: 24rpx;
-				background-color: rgba(2,198,68,0.15);
+				background-color: rgba(255, 0, 0, 0.1);
 				font-weight: 700;
-				color: #02C644 ;
+				color: #f00;
 				border-radius: 10rpx;
 			}
-			.taskbox_item_l_r{
+
+			.taskbox_item_l_r {
 				padding: 8rpx;
 				font-size: 24rpx;
 				border: 1px solid;

+ 114 - 0
MingGaoApp/pages/insectpest/baselist.vue

@@ -0,0 +1,114 @@
+<template>
+	<view>
+		<view class="basebox_info">
+			<view class="basebox_info_item" v-for="item,index in taskinfo.trap_record_list" :key="index">
+				<view class="box">
+					<view class="basebox_info_item_l">
+						{{item.trap_number}}
+					</view>
+					<view class="basebox_info_item_c">
+						{{item.report_status}}
+					</view>
+					<view class="basebox_info_item_r">
+						<u-icon name="search" color="#2979ff" size="20" v-if="!taskshow" @click="searchworn(item)">
+						</u-icon>
+						<u-icon name="edit-pen-fill" color="#2979ff" size="20" v-else @click="compile(item)">
+						</u-icon>
+					</view>
+				</view>
+			</view>
+		</view>
+		<u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				task_type:false,
+				taskinfo:{},
+				task_id:"",
+				loading:false,
+				taskshow:false
+			}
+		},
+		onLoad(option) {
+			console.log(option)
+			this.task_id = option.id
+			if(option.taskshow == "true"){
+				this.taskshow = true
+			}else{
+				this.taskshow = false
+			}
+			// this.taskshow = option.taskshow
+			// this.gettaskinfo()
+		},
+		onShow(){
+			this.gettaskinfo()
+		},
+		methods: {
+			async gettaskinfo() {
+				this.loading = true
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=control_center.task.task_info',
+					data: {
+						task_id: this.task_id ,
+					}
+				})
+				this.taskinfo = res
+				console.log(res)
+				this.loading = false
+			},
+			searchworn(item) {
+				// console.log(item)
+				var obj = {
+					id: item.id,
+					trap_number: item.trap_number,
+					comtype: false
+				}
+				uni.navigateTo({
+					url:"../insectpest/insectpest?id="+JSON.stringify(obj)
+				})
+				// this.$emit('toinsect', JSON.stringify(obj))
+			},
+			compile(item) {
+				var obj = {
+					id: item.id,
+					trap_number: item.trap_number,
+					comtype: true
+				}
+				uni.navigateTo({
+					url:"../insectpest/insectpest?id="+JSON.stringify(obj)
+				})
+				// this.$emit('toinsect', JSON.stringify(obj))
+			}
+		}
+	}
+</script>
+
+<style lang="less" scoped>
+	.basebox_info {
+		width: 90%;
+		margin:  0 auto;
+		.basebox_info_item {
+			width: 100%;
+	
+			.box {
+				display: flex;
+				justify-content: space-between;
+				padding: 20rpx 0;
+				border-bottom: 1px solid #F6F6F6;
+	
+				.basebox_info_item_l {
+					font-size: 28rpx;
+				}
+	
+				.basebox_info_item_c {
+					color: #999999;
+					font-size: 28rpx;
+				}
+			}
+		}
+	}
+</style>

+ 279 - 0
MingGaoApp/pages/insectpest/insectpest.vue

@@ -0,0 +1,279 @@
+<template>
+	<view class="inset">
+		<view class="" style="width: 100%;height: 30rpx;background-color: #f7f7f7;">
+
+		</view>
+		<view class="title">
+			<view class="">
+				设备号:
+			</view>
+			<view class="title_R">
+				{{baseinfo.trap_number}}
+			</view>
+		</view>
+		<view class="examine" v-if="baseinfo.comtype">
+			<view class="examine_itemno" v-for="item,index in wornlist" :key="'a'+index">
+				<view class="examine_itemno_input">
+					<u--input suffixIcon="arrow-down-fill" v-model="item.pest_name"
+						suffixIconStyle="color: #909399;fontSize:14px" disabled></u--input>
+				</view>
+				<view class="examine_itemno_input">
+					<u--input border="surround" v-model="item.pest_number" disabled></u--input>
+				</view>
+				<view class="" style="color:red">
+					删除
+				</view>
+			</view>
+			<view class="examine_item" v-for="item in notwornlistnum" :key="item">
+				<view class="examine_itemno_input" @click="show = true;elsectindex = item">
+					<u--input placeholder="请选择害虫名称" suffixIcon="arrow-down-fill"
+						placeholderStyle="fontSize:12px;color:#999999" readonly
+						suffixIconStyle="color: #909399;fontSize:14px" v-model="notwornlistdata.name[item]"></u--input>
+				</view>
+				<view class="examine_itemno_input">
+					<u--input placeholder="请输入害虫数量" type="number" placeholderStyle="fontSize:12px;color:#999999"
+						border="surround" v-model="notwornlistdata.num[item]"></u--input>
+				</view>
+				<view class="" style="color:red">
+					<view class="" v-if="item != notwornlistnum" @click="selectdel(item)">
+						删除
+					</view>
+					<u-icon name="plus-circle" size="22" color="#1890ff" top="4" v-else @click="addnotwornlistnum(item)">
+					</u-icon>
+				</view>
+				<u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show = false"></u-picker>
+			</view>
+		</view>
+		<view class="write" v-else>
+			<view class="hisbox_hint" v-if="wornlist.length==0">
+				暂无数据
+			</view>
+			<view class="write_item" v-for="item,index in wornlist" :key="index">
+				<view class="write_item_L">
+					{{item.pest_name}}
+				</view>
+				<view class="write_item_R">
+					{{item.pest_number}}只
+				</view>
+			</view>
+		</view>
+		<view class="operation" v-if="baseinfo.comtype">
+			<u-button type="primary" text="无虫" @click="opebtn('无虫')"></u-button>
+			<u-button type="primary" text="带回" @click="opebtn('已带回')"></u-button>
+			<u-button type="primary" text="提交" @click="opebtn('已登记')"></u-button>
+		</view>
+		<u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				baseinfo: {},
+				wornlist: [],
+				loading: false,
+				notwornlist: [],
+				notwornlistnum: 1,
+				columns: [],
+				columns2: [],
+				show: false,
+				notwornlistdata: {
+					name: [],
+					num: []
+				},
+				elsectindex: 0,
+				dellist: []
+			}
+		},
+		onLoad(option) {
+			this.baseinfo = JSON.parse(option.id)
+			this.getwornlist(this.baseinfo.id)
+			this.getselectworn()
+		},
+		methods: {
+			async getwornlist(id) {
+				this.loading = true
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=control_center.task.trap_pest_record_info',
+					data: {
+						trap_record_id: id
+					}
+				})
+				console.log(res)
+				this.wornlist = res
+				this.loading = false
+			},
+			async getselectworn() {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=sysmenage.maintain.pest_list',
+					data: {
+						page: "1",
+						page_item: "1000000000000000000000000000"
+					}
+				})
+				// this.
+				console.log(res.page_list)
+				var arr = []
+				for (var i = 0; i < res.page_list.length; i++) {
+					arr.push(res.page_list[i].pest_name)
+					this.columns2.push(res.page_list[i].pest_name)
+				}
+				this.columns.push(arr)
+			},
+			addnotwornlistnum(item) {
+				console.log(this.notwornlistdata.name[item])
+				if(this.notwornlistdata.name[item]&& this.notwornlistdata.num[item]){
+					this.notwornlistnum++
+				}else{
+					uni.$u.toast('请将信息填写完成')
+				}
+				
+			},
+			confirm(e) {
+				this.show = false
+				console.log(e.value[0], this.elsectindex)
+				this.notwornlistdata.name[this.elsectindex] = e.value[0]
+				this.datacount()
+			},
+			datacount() {
+				// for(var k=0;k<this.dellist.length;k++){
+				// 	this.columns[0].push(this.dellist[k])
+				// }
+				console.log(this.notwornlistdata.name)
+				// this.columns[0] = JSON.parse(JSON.stringify(this.columns2))
+				for (var i = 0; i < this.notwornlistdata.name.length; i++) {
+					for (var j = 0; j < this.columns[0].length; j++) {
+						if (this.notwornlistdata.name[i] == this.columns[0][j]) {
+							this.columns[0].splice(j, 1)
+							console.log(this.columns[0])
+						}
+					}
+				}
+				for (var k = 0; k < this.columns2.length; k++) {
+					if (this.notwornlistdata.name.indexOf(this.columns2[k]) ==-1) {
+						if(this.columns[0].indexOf(this.columns2[k])==-1){
+							this.columns[0].unshift(this.columns2[k])
+						}
+					}
+				}
+				
+			},
+			selectdel(item) {
+				this.notwornlistnum--
+				var arr = this.notwornlistdata.name.splice(item, 1)
+				this.notwornlistdata.num.splice(item, 1)
+				this.columns[0].unshift(arr[0])
+			},
+			opebtn(str) {
+				var arr = []
+				for (var j = 1; j < this.wornlist.length; j++) {
+					var obj = {
+						pest_name: this.wornlist[j].pest_name, //		害虫名称
+						pest_number: this.wornlist[j].pest_number //			害虫数量
+					}
+					arr.push(obj)
+				}
+				for (var i = 1; i < this.notwornlistdata.name.length; i++) {
+					var obj = {
+						pest_name: this.notwornlistdata.name[i], //		害虫名称
+						pest_number: this.notwornlistdata.num[i] //			害虫数量
+					}
+					arr.push(obj)
+				}
+				if(arr.length!=0){
+					this.$store.state.wornlist = {
+						record_id: this.baseinfo.id, //      			填报记录id
+						report_status: str, //			填报记录状态
+						pest_list: arr
+					}
+					uni.navigateBack({
+						delta: 2
+					});
+				}else{
+					uni.$u.toast('请将信息填写完成')
+				}
+				
+			}
+		}
+	}
+</script>
+
+<style lang="less" scoped>
+	.inset {
+		width: 100%;
+
+		.title {
+			width: 90%;
+			margin: 0 auto;
+			border-bottom: 1px solid #F6F6F6;
+			padding: 20rpx 0;
+			display: flex;
+			justify-content: space-between;
+
+			.title_R {
+				color: #999999;
+			}
+		}
+
+		.examine {
+			width: 90%;
+			margin: 0 auto;
+
+			.examine_itemno,
+			.examine_item {
+				display: flex;
+				// justify-content: space-around;
+				margin-top: 20rpx;
+				border-bottom: 1px solid #F6F6F6;
+				padding-bottom: 20rpx;
+
+				.examine_itemno_input {
+					// width: 45%;
+					margin-right: 60rpx;
+				}
+
+				/deep/.u-input {
+					width: 200rpx;
+					height: 30rpx;
+				}
+			}
+		}
+
+		.write {
+			width: 90%;
+			margin: 0 auto;
+
+			.hisbox_hint {
+				width: 100%;
+				text-align: center;
+				font-size: 28rpx;
+				height: 100rpx;
+				line-height: 100rpx;
+				color: #999999;
+			}
+
+			.write_item {
+				display: flex;
+				justify-content: space-between;
+				border-bottom: 1px solid #F6F6F6;
+				padding: 20rpx 0;
+
+				.write_item_R {
+					color: #999999;
+				}
+			}
+		}
+
+		.operation {
+			display: flex;
+			margin-top: 30rpx;
+
+			/deep/.u-button {
+				width: 140rpx;
+				height: 60rpx;
+			}
+
+		}
+	}
+</style>

+ 10 - 9
MingGaoApp/pages/login/login.vue

@@ -100,6 +100,7 @@
 			},
 		},
 		onLoad() {
+			this.isloading = false
 			uni.getStorage({
 				key: 'logincheckbox',
 				success: (res) => {
@@ -118,20 +119,20 @@
 								this.userinfo.password = res.data
 							},
 						})
+						uni.getStorage({
+							key: 'session_key',
+							success: (res) => {
+								// console.log(res)
+								if (res.data != "") {
+									this.login()
+								}
+							},
+						})
 					} else {
 						this.checkboxValue1 = []
 					}
 				},
 			})
-			uni.getStorage({
-				key: 'session_key',
-				success: (res) => {
-					// console.log(res)
-					if (res.data != "") {
-						this.login()
-					}
-				},
-			})
 		}
 	}
 </script>

+ 11 - 2
MingGaoApp/pages/my/mtmonitdetails.vue

@@ -3,7 +3,7 @@
 		<view class="" style="width: 100%;height: 30rpx;background-color: #f7f7f7;">
 			
 		</view>
-		<taskdetails :taskshow="taskshow" :istask="istask" ref="child"></taskdetails>
+		<taskdetails :taskshow="taskshow" :istask="istask" ref="child" @toinsect="toinsect" @tolist="tolist"></taskdetails>
 	</view>
 </template>
 
@@ -20,7 +20,16 @@
 			}
 		},
 		methods: {
-
+			toinsect(item){
+				uni.navigateTo({
+					url:"../insectpest/insectpest?id="+item
+				})
+			},
+			tolist(id){
+				uni.navigateTo({
+					url:"../insectpest/baselist?id="+id+"&taskshow="+this.taskshow
+				})
+			}
 		},
 		onLoad(option) {
 			// this.taskid = Number(option.id)

+ 111 - 10
MingGaoApp/pages/my/version.vue

@@ -1,14 +1,14 @@
 <template>
 	<view>
 		<view class="" style="width: 100%;height: 30rpx;background-color: #f7f7f7;">
-			
+
 		</view>
-		<view class="gengxin_box">
+		<!-- <view class="gengxin_box" @click="update">
 			<image src="../../static/image/pilianggengxin.png" mode="" class="gengxin"></image>
 			<view class="gengxin_box_dian" v-if="newversion">
 
 			</view>
-		</view>
+		</view> -->
 		<u-collapse>
 			<u-collapse-item :title="item.app_version" name="Docs guide" v-for="(item,index) in versionlist"
 				:key="item.app_version">
@@ -16,6 +16,11 @@
 					:key="indexs">{{indexs+1+'、'}}{{items}}</text>
 			</u-collapse-item>
 		</u-collapse>
+		<u-modal title="升级中请勿随意操作" :show-confirm-button="false" :show="showA" :content="contentA">
+			<!-- <view class="upgradeBox"> -->
+			<u-line-progress active-color="#19be6b" :percentage="percentNum" height="8"></u-line-progress>
+			<!-- </view> -->
+		</u-modal>
 	</view>
 </template>
 
@@ -25,7 +30,44 @@
 			return {
 				current_version: "",
 				newversion: false,
-				versionlist: []
+				versionlist: [],
+				showA: false,
+				contentA: "",
+				percentNum: 0,
+			}
+		},
+		watch: {
+			showA(newName, oldName) {
+				if(newName){
+					const webView = this.$scope.$getAppWebview()
+					webView.setStyle({
+						titleNView: {
+							autoBackButton: false
+						}
+					})
+				}else{
+					const webView = this.$scope.$getAppWebview()
+					webView.setStyle({
+						titleNView: {
+							autoBackButton: true
+						}
+					})
+				}
+			}
+		},
+		onNavigationBarButtonTap(e) {
+			uni.$u.toast('更新中请勿操作')
+			if (this.showA) {
+				uni.$u.toast('更新中请勿操作')
+			} else {
+				this.update()
+			}
+		},
+		onBackPress(options) {
+			if (this.showA) {
+				uni.$u.toast('更新中请勿操作')
+				return true;
+				0
 			}
 		},
 		methods: {
@@ -36,15 +78,73 @@
 						current_version: this.current_version
 					}
 				})
-				var news = res.new_app.app_version.match(/\d+/g).join("")
-				var old = this.current_version.match(/\d+/g).join("")
-				if (news > old) {
-					this.newversion = true
-				} else {
-					this.newversion = false
+				if (res.new_app.app_version) {
+					var news = res.new_app.app_version.match(/\d+/g).join("")
+					var old = this.current_version.match(/\d+/g).join("")
+					if (news > old) {
+						this.newversion = true
+					} else {
+						this.newversion = false
+					}
 				}
 				this.versionlist = res.version_list
 			},
+			update() {
+				if (this.newversion) {
+					uni.showModal({
+						title: '检测到有新版本,是否更新?',
+						content: '建议更新,不更新可能会出现部分数据无法获取!',
+						confirmText: "更新",
+						cancelText: "不更新",
+						success: (res) => {
+							if (res.confirm) {
+								console.log('用户点击确定');
+								this.showA = true
+								this.upgrade()
+							} else if (res.cancel) {
+								// plus.runtime.quit();
+								console.log('用户点击取消');
+							}
+						}
+					})
+				} else {
+					uni.showToast({
+						title: "当前版本已是最新版本",
+						icon: "none"
+					})
+				}
+			},
+			upgrade() {
+				//标准版
+				// this.appName = "big_data"
+				var url = "http://hnyfwlw.com/app/big_data.apk"
+				console.log(url)
+				const downloadTask = uni.downloadFile({
+					url: url, //仅为示例,并非真实的资源
+					success: (res) => {
+						console.log(res)
+						if (res.statusCode === 200) {
+							console.log('下载成功');
+							console.log('安装包下载成功,即将安装:' + JSON.stringify(res, null, 4));
+							plus.runtime.openFile(res.tempFilePath);
+							this.showA = false
+						}
+					},
+					fail: (err) => {
+						console.log(err)
+					},
+					complete: (com) => {
+						console.log(com)
+					}
+				});
+				downloadTask.onProgressUpdate((res) => {
+					this.percentNum = res.progress
+					if (res.progress == 100) {
+						console.log('下载完成了')
+						plus.runtime.quit();
+					}
+				});
+			}
 		},
 		onLoad(option) {
 			console.log(option)
@@ -63,6 +163,7 @@
 		right: 10rpx;
 		z-index: 9999;
 		display: flex;
+
 		.gengxin {
 			width: 44rpx;
 			height: 44rpx;

+ 93 - 14
MingGaoApp/pages/response/details.vue

@@ -1,12 +1,12 @@
 <template>
 	<view class="details_box" :style="'height:' +  phoneHeight + 'px'">
 		<!-- 对话列表 -->
-		<view class="details_ul">
-			<view class="details_list" v-for="item in 34">
+		<view class="details_ul" id="msgBox">
+			<view class="details_list" v-for="item in msg_list">
 				<!-- me -->
-				<view class="list_msgBox1">
+				<view class="list_msgBox1" v-if="item.is_right == true">
 					<view class="list_msgText">
-						啊什么鬼啊什么鬼啊什么鬼啊什么鬼啊什么鬼啊?
+						{{ item.msg_info }}
 					</view>
 					<view class="list_triangle"></view>
 					<view class="list_img">
@@ -15,13 +15,13 @@
 				</view>
 
 				<!-- you -->
-				<view class="list_msgBox2">
+				<view class="list_msgBox2" v-if="item.is_right == false">
 					<view class="list_img">
 						<image src="../../static/image/6.png" mode=""></image>
 					</view>
 					<view class="list_triangle"></view>
 					<view class="list_msgText">
-						什么鬼啊什么鬼啊什么鬼啊什么鬼啊什么鬼啊什么鬼啊什么鬼啊什么鬼啊什么鬼啊?
+						{{ item.msg_info }}
 					</view>
 				</view>
 			</view>
@@ -29,25 +29,70 @@
 		</view>
 
 		<!-- input输入框 -->
-		<u--input type="text" class="details_input" maxlength="200" confirm-type="send" @confirm="search()" placeholder="请输入内容"
-		 border="surround" v-model="value" @change="sendChange"></u--input>
+		<u--input type="text" class="details_input" maxlength="200" confirm-type="send" @confirm="search()"
+			placeholder="请输入内容" border="surround" v-model="value" @change="sendChange"></u--input>
+
+		<!-- 警告提示 -->
+		<u-toast ref="uToast"></u-toast>
 	</view>
 </template>
 
 <script>
+	import store from '@/store/index.js';//需要引入store
+	let App = getApp();
+	var API = App.globalData.socketTask;
 	export default {
 		data() {
 			return {
 				phoneHeight: '', // 获取当前的屏幕高度
 				value: "", // input框值	
 				tltName: '', // 头部标题
+				val: {}, // 接收用户数据
+				msg_list: [], // 消息列表
+
+				// 警告提示
+				show: false,
 			}
 		},
+		watch: {
+			msg_list(val) {
+				// 实现打开聊天框后滚动条定位到最下方
+				this.$nextTick(() => {
+					var div = document.getElementById("msgBox");
+					div.scrollTop = div.scrollHeight;
+				});
+			},
+			
+			listData(news, old) {
+				// console.log(news, old)
+				for (var i = 0; i < news.length; i++) {
+					if (news[i].real_name == this.tltName) {
+						this.val = news[i]
+						this.msg_list = news[i].msg_list.reverse();
+					}
+				}
+				
+			}
+			
+		},
+		computed:{
+			listData () {
+				return store.state.list 
+			},
+		},
 		onLoad(options) {
-			console.log(111)
-			console.log(options)
-			this.tltName = options.name
+			console.log(store.state)
 			var that = this
+			var data = JSON.parse(options.data)
+			that.tltName = data.real_name
+			var arrayData = App.globalData.list
+			for (var i = 0; i < arrayData.length; i++) {
+				if (arrayData[i].real_name == data.real_name) {
+					that.val = arrayData[i]
+					that.msg_list = arrayData[i].msg_list.reverse();
+				}
+			}
+
 			uni.getSystemInfo({ //异步获取。
 				success(res) {
 					that.phoneHeight = res.windowHeight - 13; //窗口高度
@@ -61,14 +106,48 @@
 			},
 			// 按回车键发送数据
 			search() {
-				console.log(this.value)
+				var that = this
+				if (that.value !== "") {
+					var obj = {
+						'action': 'send', // 动作标识,必填
+						'recv_user_id': that.val.user_id, // 接收人用户id, 非必填
+						'data': {
+							'msg_status': false, // 消息未读
+							'msg_info': that.value, // 发送消息
+						}
+					}
+					App.globalData.userId = this.value
+					that.transmit(obj)
+				} else {
+					this.$refs.uToast.show({
+						message: '不能为空!',
+						type: 'error',
+						icon: true,
+					})
+				}
+			},
+
+			// websocket发送
+			transmit(obj) {
+				var that = this
+				API.send({
+					data: JSON.stringify(obj),
+					async success(res) {
+						console.log("消息发送成功");
+						that.msg_list = [...that.msg_list, {
+							msg_info: that.value,
+							is_right: true
+						}]
+						that.value = ''
+					},
+				});
 			},
 		},
-		
+
 		onReady() {
 			// 修改头部标题栏
 			uni.setNavigationBarTitle({
-			    title: this.tltName
+				title: this.tltName
 			});
 		},
 	}

+ 324 - 192
MingGaoApp/pages/response/index.vue

@@ -3,20 +3,21 @@
 		<view class="response_ul">
 			<view class="response_list" v-for="item in list" @click="defail(item)">
 				<view class="response_left">
-					<u-badge numberType="overflow" shape="circle" :type="type" max="99" :value="value"></u-badge>
-					<image :src="item.img" mode=""></image>
+					<u-badge numberType="overflow" shape="circle" :type="type" max="99" :value="item.unread"></u-badge>
+					<!-- <image :src="item.img" mode=""></image> -->
+					<image src="https://cdn.uviewui.com/uview/album/1.jpg" mode=""></image>
 				</view>
 				<view class="response_right">
 					<view class="response_right_title">
 						<view class="response_right_titleName">
-							{{ item.name | name }}
+							{{ item.real_name | name }}
 						</view>
 						<view class="response_right_titleTime">
-							{{ item.time }}
+							{{ item.msg_list[0].create_time }}
 						</view>
 					</view>
 					<view class="response_right_text">
-						{{'现在是什么情况?现在是什么情况现在是什么情11' | msgData}}
+						{{ item.msg_list[0].msg_info | msgData}}
 					</view>
 				</view>
 			</view>
@@ -29,10 +30,76 @@
 
 		<!-- 返回顶部 -->
 		<u-back-top :scroll-top="scrollTop"></u-back-top>
+
+		<!-- 顶部弹出框 - 视频通话提示框 -->
+		<u-popup :safeAreaInsetTop="true" :closeOnClickOverlay="false" :customStyle="styleObj" :show="show" mode="top"
+			:round="10" @close="close" @open="open">
+			<view style="display: flex; justify-content: space-evenly; margin: 25rpx 0 0 0;">
+				<view style="display: flex;">
+					<view class="topUpImg">
+						<image src="https://cdn.uviewui.com/uview/album/1.jpg" mode=""></image>
+					</view>
+					<view class="topUpTxt">
+						<text>嚣张</text>
+						<text>邀请你进行视频通话..</text>
+					</view>
+				</view>
+
+				<view class="topUpBtn">
+					<u-button @click="close()" type="error" style="border-radius: 50px; width: 50px; height: 50px;"
+						size="mini" text="取消"></u-button>
+					<u-button @click="open()" type="success"
+						style="border-radius: 50px; width: 50px; height: 50px; margin: 0 0 0 15rpx;" size="mini"
+						text="确定"></u-button>
+				</view>
+			</view>
+		</u-popup>
+
+		<!-- 视频通话框 -->
+		<!-- <u-popup :show="videoShow" :closeOnClickOverlay="false" :customStyle="styleObj1" mode="center"
+			@close="videClose" @open="videOpen">
+
+			本地预览视图
+			<view class="video_me">
+				<zego-local-view :viewMode="publisherViewModeIndex"
+					style="height: 403.84rpx;flex: 1; border: 1px solid #0000;">
+				</zego-local-view>
+			</view>
+
+			服务器传来的预览图
+			<view class="video_you">
+				<zego-remote-view :viewMode="publisherViewModeIndex"
+					style="height: 403.84rpx;flex: 1; border: 1px solid #0000;">
+				</zego-remote-view>
+			</view>
+
+			<view class="video_btn">
+				<view class="video_imgList">
+					<view class="video_imgList1">
+						<view class="video_view">
+							<image src="../../static/image/9.png" mode=""></image>
+						</view>
+						<view class="">翻转镜头</view>
+					</view>
+					<view class="video_imgList2">
+						<view class="video_view">
+							<image src="../../static/image/8.png" mode=""></image>
+						</view>
+						<view class="">切换语音通话</view>
+					</view>
+				</view>
+				
+				<u-button type="error" style="border-radius: 50px; width: 50px; height: 50px;" size="mini" text="关闭">
+				</u-button>
+			</view>
+		</u-popup> -->
 	</view>
 </template>
 
 <script>
+	import store from '@/store/index.js'; //需要引入store
+	let App = getApp();
+	var API = App.globalData.socketTask;
 	import permision from "@/zego-express-video-uniapp/permission.js";
 	// import ZegoExpressEngine from '@/zego-express-video-uniapp/lib/ZegoExpressEngine';
 	import {
@@ -47,11 +114,10 @@
 	} from '@/zego-express-video-uniapp/KeyCenter.js'
 	import ZegoLocalView from '@/zego-express-video-uniapp/zego-view/ZegoLocalView';
 	import ZegoRemoteView from '@/zego-express-video-uniapp/zego-view/ZegoRemoteView';
-	let roomid = "00002"
 	export default {
 		components: {
-			ZegoLocalView: ZegoLocalView,
-			ZegoRemoteView: ZegoRemoteView
+			// ZegoLocalView: ZegoLocalView,
+			// ZegoRemoteView: ZegoRemoteView
 		},
 		// 过滤
 		filters: {
@@ -75,87 +141,7 @@
 			return {
 				loading: false, // 加载
 				scrollTop: 0, // 返回顶部
-				list: [{
-						name: '测试账号1',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/1.jpg',
-					},
-					{
-						name: '测试账号2',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/2.jpg',
-					},
-					{
-						name: '测试账号3',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/3.jpg',
-					},
-					{
-						name: '测试账号4',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/4.jpg',
-					},
-					{
-						name: '测试账号5',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/5.jpg',
-					},
-					{
-						name: '测试账号6',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/6.jpg',
-					},
-					{
-						name: '测试账号7',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/7.jpg',
-					},
-					{
-						name: '测试账号8',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/8.jpg',
-					},
-					{
-						name: '测试账号9',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/9.jpg',
-					},
-					{
-						name: '测试账号10',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/10.jpg',
-					},
-					{
-						name: '测试账号10',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/10.jpg',
-					},
-					{
-						name: '测试账号10',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/10.jpg',
-					},
-					{
-						name: '测试账号10',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/10.jpg',
-					},
-					{
-						name: '测试账号10',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/10.jpg',
-					},
-					{
-						name: '测试账号10',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/10.jpg',
-					},
-					{
-						name: '测试账号10',
-						time: '2022-01-11 11:11:22',
-						img: 'https://cdn.uviewui.com/uview/album/10.jpg',
-					},
-				],
+				list: [],
 				page: 0,
 
 				// 消息通知
@@ -164,13 +150,42 @@
 
 				// 即构
 				engine: undefined,
+				videoObj: null,
 				userid: "Uni" + Math.floor(Math.random() * 1000000).toString(),
 
-				// 文本消息
-				websock: null,
-				urlData: "ws://192.168.1.17:12345/api/api_gateway?method=control_center.real_time.im_message",
+				// 弹出框
+				show: false,
+				styleObj: {
+					display: 'flex',
+					backgroundColor: "#fff",
+					height: '500px'
+				},
+
+				// videoShow: false, // 视频通话框
+				// styleObj1: {
+				// 	backgroundColor: "#fff",
+				// 	height: '100%',
+				// 	width: '100%'
+				// },
+				// publisherViewModeIndex: 0, // 本地预览图
+				isPublishingStream: false,
 			}
 		},
+		watch: {
+			videoData(news, old) {
+				console.log('触发了')
+				console.log(news)
+				if (news) {
+					this.videoObj = news
+					this.show = true
+				}
+			},
+		},
+		computed: {
+			videoData() {
+				return store.state.video
+			},
+		},
 		methods: {
 			loadmoreAxios() {
 				console.log(this.list)
@@ -178,6 +193,7 @@
 
 			// 即构 - 视频通话 初始化
 			async setup() {
+				var that = this
 				// 创建引擎
 				let profile = {
 					appID: AppID,
@@ -185,122 +201,129 @@
 					scenario: ZegoScenario.General
 				}
 				this.engine = await ZegoExpressEngine.createEngineWithProfile(profile);
-				console.log(this.engine)
-				// this.addListeners();
-				console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' + roomid)
-				this.engine.loginRoom(roomid, {
-					userID: this.userid,
-					userName: this.userid
+				// console.log(this.engine)
+				this.addListeners();
+				// console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' + that.videoObj.room_id)
+				this.engine.loginRoom(that.videoObj.room_id, {
+					userID: that.videoObj.room_id,
+					userName: that.videoObj.room_id
 				}, {
 					isUserStatusNotify: true
 				});
 			},
 
 			// 即构 - 视频通话 监听房间
-			addListeners() {},
+			addListeners() {
+				// 房间状态变化通知
+				this.engine.on("roomStateUpdate", (roomID, state, errorCode, extendedData) => {
+					console.log('房间状态变化')
+				});
 
-			// 实时通信 - 初始化
-			msgInit() {
-				var that = this
-				// if (typeof WebSocket === "undefined") {
-				// 	console.log('您的浏览器不支持sooket')
-				// } else {
-				uni.getStorage({
-					key: 'session_key',
-					success: function(res) {
-						console.log(res.data)
-						uni.connectSocket({
-							url: that.urlData + "&token=" + res.data,
-							// data() {
-							// 	return {
-							// 		token: res.data
-							// 	}
-							// },
-							header: {
-								'content-type': 'application/json'
-							},
-							protocols: ['protocol1'],
-							method: 'GET',
-							success: function(res) {
-								console.log(res)
-							},
-							fail: function(err) {
-								console.log(err)
-							},
-						})
-
-						// 监听WebSocket连接打开成功事件
-						// uni.onSocketOpen(function(res) {
-						// 	console.log('WebSocket连接已打开!');
-						// 	// uni.sendSocketMessage({
-						// 	// 	data: obj,
-						// 	// 	success: function (res) {
-						// 	// 		console.log(res)
-						// 	// 	},
-						// 	// 	fail: function (err) {
-						// 	// 		console.log(err)
-						// 	// 	},
-						// 	// });
-
-						// })
-
-						// // 监听WebSocket连接打开失败事件
-						// uni.onSocketError(function(res) {
-						// 	console.log(res)
-						// 	console.log('WebSocket连接打开失败,请检查!');
-						// });
-
-						//监听socket打开
-						uni.onSocketOpen(() => {
-							// this.isSocketOpen = true
-							console.log('WebSocket连接已打开!');
-						})
-						//监听socket关闭
-						uni.onSocketClose(() => {
-							// this.isSocketOpen = false
-							console.log('WebSocket连接已关闭!');
-						})
-						//监听socket错误
-						uni.onSocketError(() => {
-							this.isSocketOpen = false
-							console.log('WebSocket连接打开失败');
-						})
-
-						var obj = {};
-						obj = {
-							action: "list",
-							recv_user_id: '167',
-							data: {
-								msg_status: false,
-								msg_info: ""
-							}
-						};
-						console.log('222222')
-						uni.onSocketMessage((res) => {
-							console.log(res)
-							console.log(('-------------------------------'))
-						})
-					}
+				// 房间用户变化通知
+				this.engine.on("roomUserUpdate", (roomID, updateType, userList) => {
+					console.log('房间用户变化通知')
+				});
+
+				// 房间内其他用户推的流变化通知
+				this.engine.on("roomStreamUpdate", (roomID, updateType, streamList) => {
+					console.log('房间内其他用户推的流变化通知')
+				});
+
+				// 房间内在线用户数量回调
+				this.engine.on("roomOnlineUserCountUpdate", (roomID, count) => {
+					console.log(roomID)
+					console.log(count)
+					console.log('>?>>>>>>>>>>>>>>>>>>>>>>>在线用户有变化')
+				});
+
+				// 拉流质量回调
+				this.engine.on("playerQualityUpdate", (streamID, quality) => {
+					console.log('拉流质量回调')
+				});
+
+				// 推流质量回调
+				this.engine.on("publisherQualityUpdate", (streamID, quality) => {
+					console.log('推流质量回调')
+				});
+
+				// 采集视频大小变更回调
+				this.engine.on("publisherVideoSizeChanged", (width, height, channel) => {
+					console.log('采集视频大小变更回调')
+				});
+
+				// 拉流分辨率变更通知
+				this.engine.on("playerVideoSizeChanged", (streamID, width, height) => {
+					console.log('拉流分辨率变更通知')
 				});
-				// }
 			},
 
 			// 进入详情
 			defail(data) {
-				console.log(data)
+				var that = this
+				if (App.globalData.is_open_socket) {
+					// websocket的服务器的原理是:发送一次消息,同时返回一组数据【否则服务器会进去死循环崩溃】
+					// 进入详情前先发送已经阅读过消息
+					var obj = {
+						'action': 'read', // 动作标识,必填
+						'send_user_id': data.user_id, // 接收人用户id, 非必填
+						'data': {}
+					}
+					API.send({
+						data: JSON.stringify(obj),
+						async success(res) {
+							console.log("消息发送成功");
+						},
+					});
+					uni.navigateTo({
+						url: '/pages/response/details?data=' + JSON.stringify(data)
+					})
+				} else {
+					console.log('没有进入')
+				}
+			},
+
+			// 弹出框
+			open() {
+				console.log('open');
 				uni.navigateTo({
-					url: '/pages/response/details?name=' + data.name
-					// url: '/pages/response/details'
+					url: '/pages/response/video?videoObj=' + JSON.stringify(this.videoObj)
 				})
+				this.show = false
+			},
+			close() {
+				this.show = false
+				console.log('close');
+			},
+
+			// 视频通话弹框
+			// videOpen() {
+			// 	console.log('open');
+			// },
+			// videClose() {
+			// 	console.log('close');
+			// },
+			
+			// 推流 - 展示视图
+			onPublish() {
+				// 设置视频配置
+				ZegoExpressEngine.instance().setVideoConfig(this.videoObj.room_id);
+				
+				if (this.isPublishingStream) {
+					this.engine.stopPreview();
+					this.engine.stopPublishingStream();
+					this.publishBtnName = "Start Publishing";
+				} else {
+					this.engine.startPreview();
+					this.engine.startPublishingStream(this.videoObj.room_id);
+					this.publishBtnName = "Stop Publishing";
+				}
+				this.isPublishingStream = !this.isPublishingStream;
 			},
 		},
 
 		async onLoad() {
 			// uni.startPullDownRefresh(); // 开始刷新
 
-			// 实时通信 - 初始化
-			this.msgInit()
-
 			// 即构 - 视频通话
 			// 获取系统信息同步接口
 			// if (uni.getSystemInfoSync().platform === 'android') {
@@ -310,8 +333,16 @@
 			// await this.setup()
 		},
 
-
-
+		onShow() {
+			var that = this
+			var a = App.globalData.list
+			for (var i = 0; i < a.length; i++) {
+				if (a[i].msg_list[0].im_id == 1) {
+					a[i].msg_list.reverse()
+				}
+			}
+			this.list = App.globalData.list; // 倒叙
+		},
 
 		// 下拉刷新
 		onPullDownRefresh() {
@@ -388,13 +419,114 @@
 			}
 		}
 
+
+		.topUpImg {
+			image {
+				width: 110rpx;
+				height: 110rpx;
+				border-radius: 15rpx;
+			}
+
+			margin: 15rpx 0 0 15rpx;
+		}
+
+		.topUpTxt {
+			margin: 45rpx 0 0 15rpx;
+
+			text {
+				color: #979994;
+				font-size: 28rpx;
+				display: block;
+			}
+		}
+
+		.topUpBtn {
+			display: flex;
+			margin: 25rpx 0 0 0;
+		}
+
+		// 视频通话
+		.video_you {
+			position: relative;
+			// border: 1px solid #000;
+			width: 100%;
+			height: 100%;
+			overflow: hidden;
+		}
+
+		.video_me {
+			// border: 1px solid #000;
+			width: 200rpx;
+			height: 300rpx;
+			position: absolute;
+			right: 0;
+			top: 0;
+		}
+		
+		.video_btn {
+			// border: 1px solid;
+			position: absolute;
+			bottom: 0;
+			left: 0;
+			width: 100%;
+			.video_imgList {
+				display: flex;
+				justify-content: space-evenly;
+				.video_imgList1 {
+					// border: 1px solid;
+					// background: rgba(0, 0, 0, .5);
+					.video_view {
+						background: rgba(0, 0, 0, .5);
+						border: 1px solid;
+						border-radius: 50px;
+						width: 50px;
+						height: 50px;
+						margin: 0 auto;
+						image {
+							width: 50rpx;
+							height: 50rpx;
+							margin: 24rpx 0 0 25rpx;
+						}
+					}
+					view {
+						color: #fff;
+						font-size: 20rpx;
+					}
+				}
+				.video_imgList2 {
+					// border: 1px solid;
+					// background: rgba(0, 0, 0, .5);
+					.video_view {
+						border: 1px solid;
+						background: rgba(0, 0, 0, .5);
+						margin: 0 auto;
+						border-radius: 50px;
+						width: 50px;
+						height: 50px;
+						image {
+							width: 50rpx;
+							height: 50rpx;
+							margin: 24rpx 0 0 25rpx;
+						}
+					}
+					view {
+						color: #fff;
+						font-size: 20rpx;
+					}
+				}
+			}
+		}
 	}
 
 	// uview 样式修改
 	/deep/.u-badge--error {
 		position: absolute;
-		left: 90rpx;
-		top: 20rpx;
+		left: 105rpx;
+		top: 15rpx;
 		z-index: 10;
 	}
+
+	/deep/.u-slide-down-enter-active {
+		height: 200rpx;
+	}
 </style>

+ 311 - 0
MingGaoApp/pages/response/video - 副本.nvue

@@ -0,0 +1,311 @@
+<template>
+	<view class="video_box" :style="'height:' +  phoneHeight + 'px'">
+		<!-- 本地预览视图 -->
+		<view class="video_me">
+			<zego-local-view :viewMode="publisherViewModeIndex"
+				style="width: 100%; flex: 1; border: 1px solid #0000; z-index: 20">
+			</zego-local-view>
+		</view>
+
+		<!-- 服务器传来的预览图 -->
+		<view class="video_you">
+			<zego-remote-view :viewMode="publisherViewModeIndex"
+				style="height: 403.84rpx;flex: 1; border: 1px solid #0000;">
+			</zego-remote-view>
+		</view>
+
+		<view class="video_btn">
+			<view class="video_imgList">
+				<view class="video_imgList1">
+					<view class="video_view">
+						<image src="../../static/image/9.png" mode=""></image>
+					</view>
+					<view class="">翻转镜头</view>
+				</view>
+				<view class="video_imgList2">
+					<view class="video_view">
+						<image src="../../static/image/8.png" mode=""></image>
+					</view>
+					<view class="">切换语音通话</view>
+				</view>
+			</view>
+
+			<u-button type="error" @click="offVideo()" style="margin: 0 auto; border-radius: 50px; width: 50px; height: 50px;" size="mini" text="关闭">
+			</u-button>
+		</view>
+		
+		<!-- 消息提醒 -->
+		<!-- <u-toast ref="uToast" type="typeVide" :message="videoMsg"></u-toast> -->
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	import permision from "@/zego-express-video-uniapp/permission.js";
+	import ZegoExpressEngine from '@/zego-express-video-uniapp/lib/ZegoExpressEngine';
+	import {
+		ZegoScenario,
+		ZegoRoomState,
+		ZegoUpdateType,
+		// ZegoViewMode
+	} from '@/zego-express-video-uniapp/lib/ZegoExpressDefines'
+	import {
+		AppID,
+		AppSign
+	} from '@/zego-express-video-uniapp/KeyCenter.js'
+	import ZegoLocalView from '@/zego-express-video-uniapp/zego-view/ZegoLocalView';
+	import ZegoRemoteView from '@/zego-express-video-uniapp/zego-view/ZegoRemoteView';
+	export default {
+		data() {
+			return {
+				phoneHeight: '', // 获取当前的屏幕高度
+				
+				// 即构
+				publisherViewModeIndex: 0, // 本地预览图
+				engine: undefined,
+				videoObj: null,
+				userid: "Uni" + Math.floor(Math.random() * 1000000).toString(),
+				isPublishingStream: false,
+				
+				// 消息提醒
+				// typeVide: '',
+				// videoMsg: "",
+			}
+		},
+		components: {
+			ZegoLocalView: ZegoLocalView,
+			ZegoRemoteView: ZegoRemoteView
+		},
+		
+		methods: {
+			// 即构 - 视频通话 初始化
+			async setup() {
+				var that = this
+				// 创建引擎
+				let profile = {
+					appID: AppID,
+					appSign: AppSign,
+					scenario: ZegoScenario.General
+				}
+				this.engine = await ZegoExpressEngine.createEngineWithProfile(profile);
+				this.engine.useFrontCamera(false); // 设置前后摄像头
+				// console.log(this.engine)
+				this.addListeners();
+				// console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' + that.videoObj.room_id)
+				this.engine.loginRoom(that.videoObj.room_id, {
+					userID: that.videoObj.room_id,
+					userName: that.videoObj.room_id
+				}, {
+					isUserStatusNotify: true
+				});
+			},
+			
+			// 即构 - 视频通话 监听房间
+			addListeners() {
+				// 房间状态变化通知
+				this.engine.on("roomStateUpdate", (roomID, state, errorCode, extendedData) => {
+					console.log('房间状态变化')
+				});
+			
+				// 房间用户变化通知
+				this.engine.on("roomUserUpdate", (roomID, updateType, userList) => {
+					console.log('房间用户变化通知')
+					console.log(updateType)
+					console.log(userList)
+				});
+			
+				// 房间内其他用户推的流变化通知
+				this.engine.on("roomStreamUpdate", (roomID, updateType, streamList) => {
+					console.log('房间内其他用户推的流变化通知')
+				});
+			
+				// 房间内在线用户数量回调
+				this.engine.on("roomOnlineUserCountUpdate", (roomID, count) => {
+					console.log(roomID)	
+					console.log(count)
+					console.log('>?>>>>>>>>>>>>>>>>>>>>>>>在线用户有变化')
+				});
+			
+				// 拉流质量回调
+				this.engine.on("playerQualityUpdate", (streamID, quality) => {
+					console.log('拉流质量回调')
+				});
+			
+				// 推流质量回调
+				this.engine.on("publisherQualityUpdate", (streamID, quality) => {
+					console.log('推流质量回调')
+				});
+			
+				// 采集视频大小变更回调
+				this.engine.on("publisherVideoSizeChanged", (width, height, channel) => {
+					console.log('采集视频大小变更回调')
+				});
+			
+				// 拉流分辨率变更通知
+				this.engine.on("playerVideoSizeChanged", (streamID, width, height) => {
+					console.log('拉流分辨率变更通知')
+				});
+			},
+			
+			// 推流 - 展示视图 - 本地视频流
+			onPublish() {
+				// 设置视频配置
+				ZegoExpressEngine.instance().setVideoConfig(this.videoObj.room_id);
+				
+				if (this.isPublishingStream) {
+					this.engine.stopPreview();
+					this.engine.stopPublishingStream();
+					this.publishBtnName = "Start Publishing";
+				} else {
+					this.engine.startPreview();
+					this.engine.startPublishingStream(this.videoObj.room_id);
+					this.publishBtnName = "Stop Publishing";
+				}
+				this.isPublishingStream = !this.isPublishingStream;
+			},
+		
+			// 挂断退出
+			offVideo() {
+				this.engine.logoutRoom(this.videoObj.room_id)
+				this.$refs.uToast.show({
+					type: 'default',
+					message: '结束视频通话!',
+					url: '/pages/response/index',
+				})
+				// uni.navigateTo({
+				// 	url: "/pages/response/index"
+				// })
+			},
+		},
+
+		async onLoad(optinos) {
+			var that = this
+			// that.videoObj = JSON.parse(optinos.videoObj)
+			// console.log(that.videoObj)
+			// 即构 - 视频通话
+			// 获取系统信息同步接口
+			if (uni.getSystemInfoSync().platform === 'android') {
+				await permision.requestAndroidPermission('android.permission.RECORD_AUDIO');
+				await permision.requestAndroidPermission('android.permission.CAMERA');
+			}
+			await this.setup()
+			this.onPublish(); // 推流
+			uni.getSystemInfo({ //异步获取。
+				success(res) {
+					// that.phoneHeight = res.windowHeight - 13; //窗口高度
+					that.phoneHeight = res.windowHeight; //窗口高度
+				}
+			});
+		},
+		
+		// 监听页面返回
+		onBackPress() {
+			console.log('返回了!')
+		},
+	}
+</script>
+
+<style lang="scss" scoped>
+	.video_box {
+		// height: 1667px;
+		// border: 1px solid red;
+		// 视频通话
+		.video_you {
+			background: #fff;
+			position: relative;
+			// border: 1px solid #000;
+			width: 400px;
+			height: 840px;
+			overflow: hidden;
+		}
+
+		.video_me {
+			// border: 1px solid #000;
+			// z-index: 100;
+			background: #fff;
+			// width: 200rpx;
+			// height: 300rpx;
+			width: 200px;
+			height: 300px;
+			position: absolute;
+			right: 10px;
+			top: 10px;
+		}
+
+		.video_btn {
+			border: 1px solid #fff;
+			position: absolute;
+			bottom: 35rpx;
+			left: 0;
+			// width: 100%;
+			width: 400px;
+
+			.video_imgList {
+				// display: flex;
+				// justify-content: space-evenly;
+				/* #ifndef APP-NVUE */
+				display: flex;
+				flex-direction: row;
+				justify-content: space-evenly;
+				//建议:在用到该属性或者你觉得可以不加时不管水平还是垂直,均最好加上,方便后期编译到不同平台减少后期修改布局样式造成的差异
+
+
+				.video_imgList1 {
+
+					// border: 1px solid;
+					// background: rgba(0, 0, 0, .5);
+					.video_view {
+						background: rgba(0, 0, 0, .5);
+						border: 1px solid;
+						border-radius: 50px;
+						width: 50px;
+						height: 50px;
+						margin: 0 auto;
+
+						image {
+							// width: 50rpx;
+							// height: 50rpx;
+							height: 30px;
+							width: 30px;
+							margin: 24rpx 0 0 25rpx;
+						}
+					}
+
+					view {
+						line-height: 30px;
+						color: #fff;
+						font-size: 20rpx;
+					}
+				}
+
+				.video_imgList2 {
+
+					// border: 1px solid;
+					// background: rgba(0, 0, 0, .5);
+					.video_view {
+						border: 1px solid;
+						background: rgba(0, 0, 0, .5);
+						margin: 0 auto;
+						border-radius: 50px;
+						width: 50px;
+						height: 50px;
+
+						image {
+							// width: 50rpx;
+							// height: 50rpx;
+							width: 50px;
+							height: 50px;
+							margin: 24rpx 0 0 25rpx;
+						}
+					}
+
+					view {
+						line-height: 30px;
+						color: #fff;
+						font-size: 20rpx;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 377 - 0
MingGaoApp/pages/response/video.nvue

@@ -0,0 +1,377 @@
+<template>
+	<view class="video_box" :style="'height:' +  phoneHeight + 'px'">
+		<!-- 本地预览视图 -->
+		<view class="video_me" :style="'height:' +  phoneHeight + 'px'">
+			<zego-local-view v-if="videoShow" :viewMode="publisherViewModeIndex"
+				style="width: 100%; flex: 1; border: 1px solid #0000; z-index: 20">
+			</zego-local-view>
+			
+			<zego-remote-view v-else :viewMode="publisherViewModeIndex"
+				style="height: 403.84rpx;flex: 1; z-index: 20">
+			</zego-remote-view>
+		</view>
+
+		<!-- 服务器传来的预览图 -->
+		<!-- <view class="video_you" @click="changeShow"> -->
+		<view class="video_you">
+			<zego-remote-view v-if="videoShow" :viewMode="publisherViewModeIndex"
+				style="height: 403.84rpx;flex: 1; z-index: 20">
+			</zego-remote-view>
+			
+			<zego-local-view v-else :viewMode="publisherViewModeIndex"
+				style="width: 100%; flex: 1; border: 1px solid #0000; z-index: 20">
+			</zego-local-view>
+		</view>
+
+		<view class="video_btn">
+			<view class="video_imgList">
+				<view class="video_imgList1">
+					<view class="video_view" @click="turn">
+						<image class="video_view_img" src="../../static/image/9.png" mode=""></image>
+					</view>
+					<text class="video_view_txt">翻转镜头</text>
+				</view>
+				<view class="video_imgList2">
+					<view class="video_view">
+						<image class="video_view_img" src="../../static/image/8.png" mode=""></image>
+					</view>
+					<text class="video_view_txt">切换语音通话</text>
+				</view>
+			</view>
+
+			<!-- 	<u-button type="error" class="offBtn" @click="offVideo()"  size="mini" text="关闭">
+			</u-button> -->
+			<image @click="offVideo()" style="width: 50px; height: 50px; margin: 0 0 0 330rpx;"
+				src="../../static/image/10.png" mode=""></image>
+		</view>
+
+		<!-- 消息提醒 -->
+		<u-toast ref="uToast"></u-toast>
+	</view>
+</template>
+
+<script>
+	import permision from "@/zego-express-video-uniapp/permission.js";
+	import ZegoExpressEngine from '@/zego-express-video-uniapp/lib/ZegoExpressEngine';
+	import {
+		ZegoScenario,
+		ZegoRoomState,
+		ZegoUpdateType,
+		// ZegoViewMode
+	} from '@/zego-express-video-uniapp/lib/ZegoExpressDefines'
+	import {
+		AppID,
+		AppSign
+	} from '@/zego-express-video-uniapp/KeyCenter.js'
+	import ZegoLocalView from '@/zego-express-video-uniapp/zego-view/ZegoLocalView';
+	import ZegoRemoteView from '@/zego-express-video-uniapp/zego-view/ZegoRemoteView';
+	export default {
+		data() {
+			return {
+				phoneHeight: '', // 获取当前的屏幕高度
+
+				// 即构
+				publisherViewModeIndex: 0, // 本地预览图
+				serveViewModeIndex: 0, // 服务器拉流预览图
+				engine: undefined,
+				videoObj: null,
+				userid: "Uni" + Math.floor(Math.random() * 1000000).toString(),
+				isPublishingStream: false,
+				shotShow: false, // 翻转镜头
+				videoShow: true, // 切换视频显示
+
+				// 消息提醒
+				// typeVide: '',
+				// videoMsg: "",
+			}
+		},
+		components: {
+			ZegoLocalView: ZegoLocalView,
+			ZegoRemoteView: ZegoRemoteView
+		},
+
+		methods: {
+			// 即构 - 视频通话 初始化
+			async setup() {
+				var that = this
+				// 创建引擎
+				let profile = {
+					appID: AppID,
+					appSign: AppSign,
+					scenario: ZegoScenario.General
+				}
+				this.engine = await ZegoExpressEngine.createEngineWithProfile(profile);
+				this.engine.useFrontCamera(this.shotShow); // 设置前后摄像头
+				// console.log(this.engine)
+				this.addListeners();
+				// console.log('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' + that.videoObj.room_id)
+				this.engine.loginRoom(that.videoObj.room_id, {
+					userID: that.videoObj.room_id,
+					userName: that.videoObj.room_id
+				}, {
+					isUserStatusNotify: true
+				});
+			},
+
+			// 即构 - 翻转镜头
+			turn() {
+				this.shotShow = !this.shotShow
+				this.engine.useFrontCamera(this.shotShow)
+			},
+			
+			// 切换视频显示
+			changeShow() {
+				this.videoShow = !this.videoShow
+				// this.onPublish()
+				this.engine.startPreview();
+				this.engine.startPublishingStream(this.videoObj.room_id);
+				this.publishBtnName = "Stop Publishing";
+				console.log(this.videoShow)
+			},
+			
+			// 即构 - 视频通话 监听房间
+			addListeners() {
+				// 房间状态变化通知
+				this.engine.on("roomStateUpdate", (roomID, state, errorCode, extendedData) => {
+					// console.log('房间状态变化')
+					if (state == "CONNECTED") {
+						// 与房间连接成功,只有当房间状态是连接成功时,才能进行推流、拉流等操作。
+						// 接下来的“预览并推流”的代码写在这里
+						console.log("房间连接成功");
+					}
+					if (state == "DISCONNECTED") {
+						// 与房间断开了连接
+						console.log("与房间断开连接");
+					}
+
+					if (state == "CONNECTING") {
+						// 与房间尝试连接中
+						console.log("与房间尝试连接中");
+					}
+				});
+
+				// 房间用户变化通知
+				this.engine.on("roomUserUpdate", (roomID, updateType, userList) => {
+					// console.log('房间用户变化通知')
+					// console.log(updateType)
+					// console.log(userList)
+					// if (updateType == "ADD") {
+					// 	console.log('hsdjshadjh')
+					// } else if (updateType == 1 ) {
+					// 	console.log('几十块的教科书')
+					// 	this.offVideo()
+					// }
+					console.log(updateType)
+					console.log(userList)
+					console.log("有其他用户进出房间");
+				});
+
+				// 房间内其他用户推的流变化通知
+				this.engine.on("roomStreamUpdate", (roomID, updateType, streamList) => {
+					console.log('房间内其他用户推的流变化通知')
+					console.log(updateType)
+					console.log(streamList)
+
+					// 房间内其他用户音视频流变化的通知
+					console.log("有其他用户开启或关闭音频");
+					if (updateType == "ADD") {
+						// 流新增,开始拉流
+						this.tensile(streamList[0].streamID);
+					} else if (updateType == "DELETE") {
+						// 流删除,停止拉流
+						this.notTensile(streamList[0].streamID);
+					}
+				});
+
+				// 房间内在线用户数量回调
+				// this.engine.on("roomOnlineUserCountUpdate", (roomID, count) => {
+				// 	// console.log(roomID)	
+				// 	// console.log(count)
+				// 	// console.log('>?>>>>>>>>>>>>>>>>>>>>>>>在线用户有变化')
+				// });
+
+				// 拉流质量回调
+				// this.engine.on("playerQualityUpdate", (streamID, quality) => {
+				// 	console.log('拉流质量回调')
+				// });
+
+				// // 推流质量回调
+				// this.engine.on("publisherQualityUpdate", (streamID, quality) => {
+				// 	// console.log('推流质量回调')
+				// });
+
+				// // 采集视频大小变更回调
+				// this.engine.on("publisherVideoSizeChanged", (width, height, channel) => {
+				// 	// console.log('采集视频大小变更回调')
+				// });
+
+				// // 拉流分辨率变更通知
+				// this.engine.on("playerVideoSizeChanged", (streamID, width, height) => {
+				// 	// console.log('拉流分辨率变更通知')
+				// });
+			},
+			
+			// 拉流 
+			tensile(roomId) {
+				this.engine.instance().startPlayingStream(roomId)
+			},
+			
+			// 停止拉流
+			notTensile(roomId) {
+				this.engine.instance().stopPlayingStream(roomId)
+			},
+			
+			// 推流 - 展示视图 - 本地视频流
+			onPublish() {
+				// 设置视频配置
+				// ZegoExpressEngine.instance().setVideoConfig(this.videoObj.room_id);
+
+				if (this.isPublishingStream) {
+					// 停止推流
+					this.engine.stopPreview();
+					this.engine.stopPublishingStream();
+					this.publishBtnName = "Start Publishing";
+				} else {
+					// 开始推流
+					this.engine.startPreview();
+					this.engine.startPublishingStream(this.videoObj.room_id);
+					this.publishBtnName = "Stop Publishing";
+				}
+				this.isPublishingStream = !this.isPublishingStream;
+			},
+			
+			// 停止推流
+			// notTensile() {},
+
+			// 挂断退出
+			offVideo() {
+				console.log('进入了啊')
+				this.engine.logoutRoom(this.videoObj.room_id)
+				this.$refs.uToast.show({
+					type: 'default',
+					message: '结束视频通话!',
+				})
+				setTimeout(() => {
+					uni.navigateBack({
+					    delta: 1
+					})
+				}, 1500)
+				// uni.redirectTo({
+				// 	url: "/pages/response/index"
+				// })
+				
+			},
+		},
+
+		async onLoad(optinos) {
+			var that = this
+			that.videoObj = JSON.parse(optinos.videoObj)
+			// console.log(that.videoObj)
+			// 即构 - 视频通话
+			// 获取系统信息同步接口
+			if (uni.getSystemInfoSync().platform === 'android') {
+				await permision.requestAndroidPermission('android.permission.RECORD_AUDIO');
+				await permision.requestAndroidPermission('android.permission.CAMERA');
+			}
+			await this.setup()
+			this.onPublish(); // 推流
+			uni.getSystemInfo({ //异步获取。
+				success(res) {
+					// that.phoneHeight = res.windowHeight - 13; //窗口高度
+					that.phoneHeight = res.windowHeight; //窗口高度
+				}
+			});
+		},
+
+		// 监听页面返回
+		onBackPress() {
+			console.log('返回了!')
+		},
+	}
+</script>
+
+<style lang="scss">
+	.video_box {
+		background: #000;
+
+		.video_you {
+			border: 1px solid;
+			background: #fff;
+			width: 150px;
+			height: 200px;
+			position: absolute;
+			right: 10px;
+			top: 10px;
+			overflow: hidden;
+		}
+
+		.video_me {
+			z-index: 100;
+			background: #000;
+			position: relative;
+			right: 0;
+			top: 0;
+		}
+
+		.video_btn {
+			position: absolute;
+			bottom: 35rpx;
+			left: 0;
+			width: 750rpx;
+
+			.video_imgList {
+				display: flex;
+				flex-direction: row;
+				justify-content: space-around;
+
+				// 翻转
+				.video_imgList1 {
+					.video_view {
+						background: rgba(0, 0, 0, .5);
+						border-radius: 50px;
+						width: 50px;
+						height: 50px;
+						margin: 0 auto;
+
+						.video_view_img {
+							height: 25px;
+							width: 25px;
+							margin: 24rpx 0 0 25rpx;
+						}
+					}
+
+					.video_view_txt {
+						color: #fff;
+						font-size: 14px;
+						line-height: 30px;
+						text-align: center;
+					}
+				}
+
+				// 语音通话
+				.video_imgList2 {
+					.video_view {
+						background: rgba(0, 0, 0, .5);
+						border-radius: 50px;
+						width: 50px;
+						height: 50px;
+						margin: 0 0 0 30rpx;
+
+						.video_view_img {
+							height: 25px;
+							width: 25px;
+							margin: 24rpx 0 0 25rpx;
+						}
+					}
+
+					.video_view_txt {
+						color: #fff;
+						font-size: 14px;
+						line-height: 30px;
+						text-align: center;
+					}
+				}
+			}
+		}
+	}
+</style>

+ 29 - 0
MingGaoApp/pages/start/start.vue

@@ -0,0 +1,29 @@
+<template>
+	<view class="statr">
+		<image src="../../static/statr.png" mode="" class="img"></image>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="less" scoped>
+.statr{
+	width: 100%;
+	height: 100vh;
+	.img{
+		width: 100%;
+		height: 100%;
+	}
+}
+</style>

+ 30 - 8
MingGaoApp/pages/supervise/index.vue

@@ -1,7 +1,7 @@
 <template>
 	<view>
 		<view class="division">
-			<u-search placeholder="请输入任务处理人名称" v-model="keyword" :showAction="false" @search="search"></u-search>
+			<u-search placeholder="请输入任务处理人名称" v-model="name" :showAction="false" @input="search"></u-search>
 		</view>
 		<view class="hisbox_hint" v-if="tasklist.length==0">
 			暂无数据
@@ -20,7 +20,7 @@
 				<view class="taskbox_item_l">
 					<view class="taskbox_item_l_l">
 						<view class="taskbox_item_l_l_l">
-							下发人:{{item.owner_user}}
+							监督人:{{item.supervisor_user}}
 						</view>
 					</view>
 					<view class="taskbox_item_l_r">
@@ -33,17 +33,31 @@
 </template>
 
 <script>
+	import {Debounce} from "../../util/anitthro.js"
 	export default {
 		data() {
 			return {
 				loading: false,
 				tasklist: [],
-				keyword:""
+				name:"",
+				page:1,
 			}
 		},
 		onLoad() {
 			this.gettaskdata()
 		},
+		onReachBottom() {
+			this.page++
+			this.gettaskdata()
+		},
+		onPullDownRefresh() {
+			this.tasklist = []
+			this.page = 1
+			this.gettaskdata()
+			setTimeout(() => {
+				uni.stopPullDownRefresh()
+			}, 1000)
+		},
 		methods: {
 			async gettaskdata() {
 				this.loading = true
@@ -51,11 +65,14 @@
 					url: '/api/api_gateway?method=control_center.task.supervisor_list',
 					data: {
 						page: this.page, //            否       页码, 默认1
-						page_item: "10", //
-						status: this.status
+						page_item: 10, //
+						supervisor_user_name:this.name
 					}
 				})
-				this.tasklist = res.page_list
+				// this.tasklist = res.page_list
+				for (var i = 0; i < res.page_list.length; i++) {
+					this.tasklist.push(res.page_list[i])
+				}
 				console.log(res)
 				this.loading = false
 			},
@@ -65,7 +82,11 @@
 				})
 			},
 			search(){
-				
+				Debounce(() => {
+					this.tasklist = []
+					this.page = 1
+					this.gettaskdata()
+				}, 1000)()
 			}
 		}
 	}
@@ -77,6 +98,7 @@
 		width: 90%;
 		left: 5%;
 		background-color: #FFFFFF;
+		padding: 40rpx 0;
 	}
 	.hisbox_hint {
 		width: 100%;
@@ -91,7 +113,7 @@
 		// margin-top: 88rpx;
 		width: 90%;
 		margin: 0 auto;
-		padding-top: 70rpx;
+		padding-top: 130rpx;
 		.taskbox_item {
 			width: 100%;
 			font-size: 28rpx;

+ 3 - 1
MingGaoApp/pages/supervise/submitsupe.vue

@@ -115,10 +115,12 @@
 
 		/deep/.u-radio-group {
 			padding-top: 20rpx;
-
 			.u-radio {
 				margin-right: 30rpx;
 			}
 		}
+		/deep/.u-form-item__body{
+			padding: 40rpx 0 !important;
+		}
 	}
 </style>

+ 32 - 1
MingGaoApp/pages/supervise/supetask.vue

@@ -3,7 +3,7 @@
 		<view class="" style="width: 100%;height: 30rpx;background-color: #f7f7f7;">
 			
 		</view>
-		<taskdetails :taskshow="taskshow" :istask="istask" @tosubm="tosubm" ref="child"></taskdetails>
+		<taskdetails :taskshow="taskshow" :istask="istask" @tosubm="tosubm" @toinsect="toinsect" @tolist="tolist"  ref="child"></taskdetails>
 	</view>
 </template>
 
@@ -25,10 +25,41 @@
 				uni.navigateTo({
 					url:"./submitsupe?id="+this.taskid
 				})
+			},
+			toinsect(item){
+				uni.navigateTo({
+					url:"../insectpest/insectpest?id="+item
+				})
+			},
+			tolist(id){
+				uni.navigateTo({
+					url:"../insectpest/baselist?id="+id+"&taskshow="+this.taskshow
+				})
+			}
+		},
+		onNavigationBarButtonTap(e){
+			if(this.istask==2){
+				this.tosubm()
 			}
 		},
 		onLoad(option) {
 			this.taskid = Number(option.id)
+			let pages = getCurrentPages();
+			var page = pages[pages.length - 1];
+			var currentWebview = page.$getAppWebview();
+			if(this.istask==1){
+				currentWebview.setTitleNViewButtonStyle(0, {
+					text: "提交",
+				});
+			}else if(this.istask == 2){
+				currentWebview.setTitleNViewButtonStyle(0, {
+					text: "监督",
+				});
+			}else{
+				currentWebview.setTitleNViewButtonStyle(0, {
+					text: " ",
+				});
+			}
 			this.$nextTick(()=>{
 				this.$refs.child.gettaskinfo(option.id)
 			})

BIN
MingGaoApp/static/image/10.png


BIN
MingGaoApp/static/image/8.png


BIN
MingGaoApp/static/image/9.png


BIN
MingGaoApp/static/statr.png


+ 18 - 0
MingGaoApp/store/index.js

@@ -0,0 +1,18 @@
+import Vue from "vue"
+import Vuex from "vuex"
+
+Vue.use(Vuex)
+
+const store = new Vuex.Store({
+	state: {
+		list: {}, // 列表以及聊天内容数据
+		video: null ,// 视频通话数据
+		wornlist:{
+			
+		}
+	},
+	mutations: {},
+	actions: {}
+})
+
+export default store

BIN
MingGaoApp/unpackage/cache/apk/__UNI__1BA09AD_cm.apk


+ 1 - 0
MingGaoApp/unpackage/cache/apk/apkurl

@@ -0,0 +1 @@
+https://ide.dcloud.net.cn/build/download/39557780-9adb-11ec-a8a2-4923bd78b3ae

Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/apk/cmManifestCache.json


+ 3 - 0
MingGaoApp/unpackage/cache/certdata

@@ -0,0 +1,3 @@
+andrCertfile=C:/Users/FC/Desktop/智网/zhiwang.keystore
+andrCertAlias=zhiwang
+andrCertPass=URGvFntdIuDRhikTw3n2rw==

BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/google-keystore.keystore


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-hdpi.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-xhdpi.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-xxhdpi.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/icon-android-xxxhdpi.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/splash-android-hdpi.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/splash-android-xhdpi.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/.manifest/splash-android-xxhdpi.png


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappchooselocation.js


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniapperror.png


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappes6.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappopenlocation.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniapppicker.js


Datei-Diff unterdrückt, da er zu groß ist
+ 8 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappquill.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappquillimageresize.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappscan.js


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappsuccess.png


+ 25 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/__uniappview.html

@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+
+  <head>
+    <meta charset="UTF-8" />
+    <script>
+      var __UniViewStartTime__ = Date.now();
+      var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
+        CSS.supports('top: constant(a)'))
+      document.write(
+        '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
+        (coverSupport ? ', viewport-fit=cover' : '') + '" />')
+    </script>
+    <title>View</title>
+    <link rel="stylesheet" href="view.css" />
+  </head>
+
+  <body>
+    <div id="app"></div>
+    <script src="__uniappes6.js"></script>
+    <script src="view.umd.min.js"></script>
+    <script src="app-view.js"></script>
+  </body>
+
+</html>

+ 3 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/androidPrivacy.json

@@ -0,0 +1,3 @@
+{
+    "prompt" : "none"
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 8 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-config-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-config.js


Datei-Diff unterdrückt, da er zu groß ist
+ 14 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/app-view.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/manifest.json


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/pages/response/video.js


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/10.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/6.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/7.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/8.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/9.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/geren.jpg


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/huida.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/huidaon.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/me.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/meon.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/renwu.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/renwuon.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/yingjian.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/indeximg/yingjianon.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/login.jpg


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/image/pilianggengxin.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/logo.png


BIN
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/static/statr.png


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/view.css


Datei-Diff unterdrückt, da er zu groß ist
+ 6 - 0
MingGaoApp/unpackage/cache/wgt/__UNI__1BA09AD/view.umd.min.js


BIN
MingGaoApp/unpackage/debug/android_debug.apk


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/__uniappchooselocation.js


BIN
MingGaoApp/unpackage/dist/build/app-plus/__uniapperror.png


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/__uniapppicker.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/__uniappquill.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/__uniappquillimageresize.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/__uniappscan.js


+ 3 - 0
MingGaoApp/unpackage/dist/build/app-plus/androidPrivacy.json

@@ -0,0 +1,3 @@
+{
+    "prompt" : "none"
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 2 - 2
MingGaoApp/unpackage/dist/build/app-plus/app-config-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 8 - 2
MingGaoApp/unpackage/dist/build/app-plus/app-service.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/app-view.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/manifest.json


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 0
MingGaoApp/unpackage/dist/build/app-plus/pages/response/video.js


BIN
MingGaoApp/unpackage/dist/build/app-plus/static/image/10.png


BIN
MingGaoApp/unpackage/dist/build/app-plus/static/image/6.png


BIN
MingGaoApp/unpackage/dist/build/app-plus/static/image/7.png


BIN
MingGaoApp/unpackage/dist/build/app-plus/static/image/8.png


BIN
MingGaoApp/unpackage/dist/build/app-plus/static/image/9.png


BIN
MingGaoApp/unpackage/dist/build/app-plus/static/image/pilianggengxin.png


BIN
MingGaoApp/unpackage/dist/build/app-plus/static/statr.png


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/build/app-plus/view.css


Datei-Diff unterdrückt, da er zu groß ist
+ 3 - 3
MingGaoApp/unpackage/dist/build/app-plus/view.umd.min.js


Datei-Diff unterdrückt, da er zu groß ist
+ 1 - 1
MingGaoApp/unpackage/dist/dev/app-plus/__uniappchooselocation.js


BIN
MingGaoApp/unpackage/dist/dev/app-plus/__uniapperror.png


+ 0 - 0
MingGaoApp/unpackage/dist/dev/app-plus/__uniapppicker.js


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.