Explorar o código

管式墒情上线

zhangyun %!s(int64=4) %!d(string=hai) anos
pai
achega
6f61e4a07d
Modificáronse 100 ficheiros con 3631 adicións e 13198 borrados
  1. 2 314
      App.vue
  2. 3 3
      manifest.json
  3. 59 94
      pages.json
  4. 140 61
      pages/afterSale/index.vue
  5. 0 290
      pages/afterSale/search.vue
  6. 68 26
      pages/cb/bzy/equip-set/bzyhistoryile.vue
  7. 46 15
      pages/cb/cbd/equip-set/historyfile.vue
  8. 29 3
      pages/cb/equip-detail/equip-detail.vue
  9. 79 8
      pages/cb/index/index.vue
  10. 0 252
      pages/cb/index/search.vue
  11. 76 29
      pages/cb/xy/equip-set/xyhistoryile.vue
  12. 54 62
      pages/cb/xy2.0/historydatas.vue
  13. 36 3
      pages/environment/equipment.vue
  14. 345 0
      pages/environment/gsequipment.vue
  15. 410 0
      pages/environment/gshistory.vue
  16. 140 149
      pages/environment/history.vue
  17. 232 38
      pages/environment/index.vue
  18. 0 172
      pages/environment/search.vue
  19. 125 121
      pages/equipList/index.vue
  20. 0 338
      pages/equipList/search.vue
  21. 77 50
      pages/equipMange/index/assignment.vue
  22. 52 2
      pages/equipMange/index/index.vue
  23. 1 1
      pages/equipMange/index/useroperation.vue
  24. 5 4
      pages/fourBase/addbase.vue
  25. 34 26
      pages/fourBase/allocation.vue
  26. 1 11
      pages/fourBase/basefacility.vue
  27. 2 1
      pages/fourBase/index.vue
  28. 235 211
      pages/fourBase/modification.vue
  29. 111 106
      pages/index/index.vue
  30. 3 3
      pages/login/login.vue
  31. 89 8
      pages/monitor/index.vue
  32. 6 6
      pages/my/about/about.vue
  33. 4 4
      pages/my/index/index.vue
  34. 55 24
      pages/prevention/equipmentdetails.vue
  35. 65 7
      pages/prevention/index.vue
  36. 0 171
      pages/prevention/search.vue
  37. 153 162
      pages/prevention/ucharts.vue
  38. 0 539
      static/font/demo.css
  39. 0 1850
      static/font/demo_index.html
  40. 290 148
      static/font/iconfont.css
  41. BIN=BIN
      static/font/iconfont.eot
  42. 0 1
      static/font/iconfont.js
  43. 0 520
      static/font/iconfont.json
  44. 0 245
      static/font/iconfont.svg
  45. BIN=BIN
      static/font/iconfont.ttf
  46. BIN=BIN
      static/font/iconfont.woff
  47. BIN=BIN
      static/font/iconfont.woff2
  48. BIN=BIN
      static/images/ajax-loader.gif
  49. BIN=BIN
      unpackage/cache/apk/__UNI__DBA6730_cm.apk
  50. 1 1
      unpackage/cache/apk/apkurl
  51. 1 1
      unpackage/cache/apk/cmManifestCache.json
  52. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-hdpi.png
  53. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-xhdpi.png
  54. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-xxhdpi.png
  55. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-xxxhdpi.png
  56. 2 2
      unpackage/cache/wgt/__UNI__DBA6730/app-config-service.js
  57. 1 1
      unpackage/cache/wgt/__UNI__DBA6730/app-service.js
  58. 1 1
      unpackage/cache/wgt/__UNI__DBA6730/app-view.js
  59. 1 1
      unpackage/cache/wgt/__UNI__DBA6730/manifest.json
  60. 0 539
      unpackage/cache/wgt/__UNI__DBA6730/static/font/demo.css
  61. 0 1850
      unpackage/cache/wgt/__UNI__DBA6730/static/font/demo_index.html
  62. 290 148
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.css
  63. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.eot
  64. 0 1
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.js
  65. 0 520
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.json
  66. 0 245
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.svg
  67. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.ttf
  68. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.woff
  69. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.woff2
  70. BIN=BIN
      unpackage/cache/wgt/__UNI__DBA6730/static/images/ajax-loader.gif
  71. 0 245
      unpackage/cache/wgt/__UNI__DBA6730/static/img/iconfont.55295dec.svg
  72. 2 2
      unpackage/dist/build/app-plus/app-config-service.js
  73. 1 1
      unpackage/dist/build/app-plus/app-service.js
  74. 1 1
      unpackage/dist/build/app-plus/app-view.js
  75. 1 1
      unpackage/dist/build/app-plus/manifest.json
  76. 0 539
      unpackage/dist/build/app-plus/static/font/demo.css
  77. 0 1850
      unpackage/dist/build/app-plus/static/font/demo_index.html
  78. 290 148
      unpackage/dist/build/app-plus/static/font/iconfont.css
  79. BIN=BIN
      unpackage/dist/build/app-plus/static/font/iconfont.eot
  80. 0 1
      unpackage/dist/build/app-plus/static/font/iconfont.js
  81. 0 520
      unpackage/dist/build/app-plus/static/font/iconfont.json
  82. 0 245
      unpackage/dist/build/app-plus/static/font/iconfont.svg
  83. BIN=BIN
      unpackage/dist/build/app-plus/static/font/iconfont.ttf
  84. BIN=BIN
      unpackage/dist/build/app-plus/static/font/iconfont.woff
  85. BIN=BIN
      unpackage/dist/build/app-plus/static/font/iconfont.woff2
  86. BIN=BIN
      unpackage/dist/build/app-plus/static/images/ajax-loader.gif
  87. 0 245
      unpackage/dist/build/app-plus/static/img/iconfont.55295dec.svg
  88. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  89. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  90. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/afterSale/index.js.map
  91. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/bzy/equip-set/bzyhistoryile.js.map
  92. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/cbd/equip-set/historyfile.js.map
  93. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/index/index.js.map
  94. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/sim/sim.js.map
  95. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/xy/equip-set/xyhistoryile.js.map
  96. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/xy2.0/historydatas.js.map
  97. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/distribution/index.js.map
  98. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/environment/history.js.map
  99. 1 1
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/environment/index.js.map
  100. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/equipList/index.js.map

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 2 - 314
App.vue


+ 3 - 3
manifest.json

@@ -1,9 +1,9 @@
 {
-    "name" : "云飞智控",
+    "name" : "智控",
     "appid" : "__UNI__DBA6730",
     "description" : "",
-    "versionName" : "1.1.0",
-    "versionCode" : 110,
+    "versionName" : "1.2.0",
+    "versionCode" : 120,
     "transformPx" : false,
     /* 5+App特有相关 */
     "app-plus" : {

+ 59 - 94
pages.json

@@ -2,8 +2,7 @@
 	"easycom": {
 		"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
 	},
-	"pages": [ 
-		{
+	"pages": [{
 			"path": "pages/login/login",
 			"style": {
 				"navigationBarTitleText": "",
@@ -29,7 +28,7 @@
 				"navigationBarTitleText": "个人信息",
 				"enablePullDownRefresh": false
 			}
-		},  {
+		}, {
 			"path": "pages/my/about/about",
 			"style": {
 				"navigationBarTitleText": "关于",
@@ -67,7 +66,7 @@
 				"navigationStyle": "custom"
 			}
 
-		},  {
+		}, {
 			"path": "pages/equipMange/index/changepasswold",
 			"style": {
 				"navigationBarTitleText": "更改密码",
@@ -83,7 +82,7 @@
 				"navigationStyle": "custom"
 			}
 
-		}, 
+		},
 		{
 			"path": "pages/equipMange/index/useroperation",
 			"style": {
@@ -99,7 +98,7 @@
 				"enablePullDownRefresh": false
 			}
 
-		},  {
+		}, {
 			"path": "pages/cb/sim/sim",
 			"style": {
 				"navigationBarTitleText": "sim卡详情",
@@ -155,14 +154,6 @@
 			}
 
 		}, {
-			"path": "pages/afterSale/search",
-			"style": {
-				"navigationBarTitleText": "售后服务搜索",
-				"enablePullDownRefresh": false,
-				"navigationStyle": "custom"
-			}
-
-		}, {
 			"path": "pages/expertDiagnosis/introduce",
 			"style": {
 				"navigationBarTitleText": "病虫害介绍",
@@ -194,14 +185,6 @@
 			}
 
 		}, {
-			"path": "pages/equipList/search",
-			"style": {
-				"navigationBarTitleText": "",
-				"enablePullDownRefresh": false,
-				"navigationStyle": "custom"
-			}
-
-		}, {
 			"path": "pages/equipList/modification",
 			"style": {
 				"navigationBarTitleText": "",
@@ -249,14 +232,6 @@
 			}
 
 		}, {
-			"path": "pages/prevention/search",
-			"style": {
-				"navigationBarTitleText": "防治系统搜索",
-				"enablePullDownRefresh": false,
-				"navigationStyle": "custom"
-			}
-
-		}, {
 			"path": "pages/prevention/equipmentdetails",
 			"style": {
 				"navigationBarTitleText": "防治系统设备详细",
@@ -297,14 +272,6 @@
 			}
 
 		}, {
-			"path": "pages/environment/search",
-			"style": {
-				"navigationBarTitleText": "环境监测搜索",
-				"enablePullDownRefresh": false,
-				"navigationStyle": "custom"
-			}
-
-		}, {
 			"path": "pages/environment/equipment",
 			"style": {
 				"navigationBarTitleText": "环境监测设备详情",
@@ -390,8 +357,8 @@
 				"navigationBarTitleText": "设备控制",
 				"enablePullDownRefresh": false
 			}
-		
-		},{
+
+		}, {
 			"path": "pages/cb/xy/equip-set/xyhistoryile",
 			"style": {
 				"navigationBarTitleText": "性诱设备历史记录",
@@ -419,7 +386,7 @@
 			"style": {
 				"navigationBarTitleText": "监控列表"
 			}
-		}, 
+		},
 		{
 			"path": "pages/fourBase/basefacility",
 			"style": {
@@ -427,7 +394,7 @@
 				"enablePullDownRefresh": false,
 				"navigationStyle": "custom"
 			}
-		}, 
+		},
 		{
 			"path": "pages/fourBase/modification",
 			"style": {
@@ -436,7 +403,7 @@
 				"navigationStyle": "custom"
 			}
 
-		},  
+		},
 		{
 			"path": "pages/fourBase/city",
 			"style": {
@@ -448,74 +415,72 @@
 			}
 
 		}, {
-			"path": "pages/cb/index/search",
+			"path": "pages/my/record/record",
 			"style": {
-				"navigationBarTitleText": "",
+				"navigationBarTitleText": "版本更新记录详情",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/cb/xy2.0/particulars",
+			"style": {
+				"navigationBarTitleText": "设备详情",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/cb/xy2.0/historydatas",
+			"style": {
+				"navigationBarTitleText": "历史数据",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/cb/cbd/equip-set/results",
+			"style": {
+				"navigationBarTitleText": "识别结果",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/cb/cbd/equip-set/manualinput",
+			"style": {
+				"navigationBarTitleText": "手动统计",
+				"enablePullDownRefresh": false
+			}
+
+		}, {
+			"path": "pages/monitor/sim",
+			"style": {
+				"navigationBarTitleText": "监控sim信息",
+				"enablePullDownRefresh": false,
+				"navigationStyle": "custom"
+			}
+
+		}, {
+			"path": "pages/environment/sim",
+			"style": {
+				"navigationBarTitleText": "环境监测sim信息",
 				"enablePullDownRefresh": false,
 				"navigationStyle": "custom"
 			}
 
 		}
 	    ,{
-            "path" : "pages/my/record/record",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "版本更新记录详情",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/cb/xy2.0/particulars",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "设备详情",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/cb/xy2.0/historydatas",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "历史数据",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/cb/cbd/equip-set/results",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "识别结果",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/cb/cbd/equip-set/manualinput",
-            "style" :                                                                                    
-            {
-                "navigationBarTitleText": "手动统计",
-                "enablePullDownRefresh": false
-            }
-            
-        }
-        ,{
-            "path" : "pages/monitor/sim",
+            "path" : "pages/environment/gsequipment",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "监控sim信息",
+                "navigationBarTitleText": "管式墒情设备详情页",
                 "enablePullDownRefresh": false,
 				"navigationStyle": "custom"
             }
             
         }
         ,{
-            "path" : "pages/environment/sim",
+            "path" : "pages/environment/gshistory",
             "style" :                                                                                    
             {
-                "navigationBarTitleText": "环境监测sim信息",
+                "navigationBarTitleText": "管式墒情历史记录页",
                 "enablePullDownRefresh": false,
 				"navigationStyle": "custom"
             }

+ 140 - 61
pages/afterSale/index.vue

@@ -2,9 +2,19 @@
 	<view>
 		<view class="status_bar"></view>
 		<view style="position: fixed;z-index: 100;top: 44px;">
-			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="售后系统" rightIcon="search" @clickRight="search" ></uni-nav-bar>
+			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="售后系统" rightIcon="search"
+				@clickRight="clickRight"></uni-nav-bar>
+			<view class="inputs" :style="{'width':width+'rpx'}">
+				<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp"
+					class="inputbox" :clearable="false" />
+				<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
+			</view>
+		</view>
+		<image :src="'http://www.hnyfwlw.com:8006/bigdata_app/image/afterSale/dcd7147f4b15d00c5c90006738b8453.png'"
+			class="expertimages"></image>
+		<view class="loading" v-if="loadingtf">
+			<image src="../../static/images/ajax-loader.gif" mode="" class="img"></image>
 		</view>
-		<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/afterSale/dcd7147f4b15d00c5c90006738b8453.png'" class="expertimages"></image>
 		<view class="aftersaleTF" v-if="aftersaleTF">
 			暂无数据
 		</view>
@@ -21,33 +31,45 @@
 					<p>故障上报时间:{{item.uptime|timeFormat()}}</p>
 				</view>
 				<view class="aftersale_item_operate">
-					<button :class="item.errordesc?'fault':'none'" :disabled="!item.errordesc" @click="fault(item.errordesc)">故障原因</button>
-					<button :class="item.errorimg.length!=0?'imgs':'none'" :disabled="item.errorimg.length==0" @click="faultImg(item.errorimg)">图片</button>
-					<button :class="item.errorvideo?'video':'none'" :disabled="!item.errorvideo" @click="faultVideo(item.errorvideo)">视频</button>
+					<button :class="item.errordesc?'fault':'none'" :disabled="!item.errordesc"
+						@click="fault(item.errordesc)">故障原因</button>
+					<button :class="item.errorimg.length!=0?'imgs':'none'" :disabled="item.errorimg.length==0"
+						@click="faultImg(item.errorimg)">图片</button>
+					<button :class="item.errorvideo?'video':'none'" :disabled="!item.errorvideo"
+						@click="faultVideo(item.errorvideo)">视频</button>
 				</view>
 				<view class="aftersale_item_icon">
-					<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+aftersale_icon[Number(item.device_type)-2].src" mode=""></image>
+					<image
+						:src="'http://www.hnyfwlw.com:8006/bigdata_app'+aftersale_icon[Number(item.device_type)-2].src"
+						mode=""></image>
 				</view>
 			</view>
 		</view>
 		<view class="addindent" @click="addf">
 			新 增 售 后 单
 		</view>
-		<u-modal v-model="show" :mask-close-able="maskcloseable" :show-confirm-button="showconfirmbutton" :title="title" class="model">
+		<u-modal v-model="show" :mask-close-able="maskcloseable" :show-confirm-button="showconfirmbutton" :title="title"
+			class="model">
 			<view class="model_box">
 				<p v-if="faultinfo_tf">{{faultinfo}}</p>
-				<u-swiper :list="faultimg" v-if="faultimg_tf" class="uswiper" height="400" style="width: 100%;" @click="examine(faultimg)"></u-swiper>
+				<u-swiper :list="faultimg" v-if="faultimg_tf" class="uswiper" height="400" style="width: 100%;"
+					@click="examine(faultimg)"></u-swiper>
 				<video :src="BASE_URL+faultvideo" controls v-if="faultvideo_tf" style="width:90%;"></video>
 			</view>
 		</u-modal>
 		<view class="top" v-if="isTop" @click="top">
-			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/6209a98f0cb3b5086f2ca36152c9269.png'" mode=""></image>
+			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/6209a98f0cb3b5086f2ca36152c9269.png'"
+				mode=""></image>
 		</view>
 	</view>
 </template>
 <script>
+	import {
+		Debounce,
+		Throttle
+	} from "../../util/anitthro.js"
 	export default {
-		data() {  
+		data() {
 			return {
 				BASE_URL: 'http://114.115.147.140:8002',
 				faultdata: [],
@@ -70,99 +92,103 @@
 						src: '/image/afterSale/2.png'
 					}
 				],
-				title:"",//弹框标题
-				show: false,//弹框先显示
+				title: "", //弹框标题
+				show: false, //弹框先显示
 				maskcloseable: true,
 				showconfirmbutton: false,
-				faultinfo: '',//故障信息
-				faultinfo_tf:false,//故障信息显示
-				faultvideo: '',//故障视频
-				faultvideo_tf:false,//故障视频显示
-				faultimg: [],//故障图片
-				faultimg_tf: false,//故障图片显示
-				page:1,
-				aftersaleTF:true,
-				isTop:false
+				faultinfo: '', //故障信息
+				faultinfo_tf: false, //故障信息显示
+				faultvideo: '', //故障视频
+				faultvideo_tf: false, //故障视频显示
+				faultimg: [], //故障图片
+				faultimg_tf: false, //故障图片显示
+				page: 1,
+				aftersaleTF: true,
+				isTop: false,
+				imports:"",//搜索设备id
+				width:0,//顶部搜索框的宽度
+				loadingtf:false,//loading
 			}
 		},
 		methods: {
 			async getAftersale() {
+				this.loadingtf= true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=after_sale.after_sale_manage.aftersale_info',
-					data:{
-						page:this.page
+					data: {
+						page: this.page,
+						f_id: Number(this.imports)
 					}
 				})
-				if(res.counts == 0){
+				this.loadingtf = false
+				if (res.counts == 0) {
 					this.aftersaleTF = true
-				}else{
+				} else {
 					this.aftersaleTF = false
 				}
-				this.faultdata =this.faultdata.concat(res.data)
+				this.faultdata = this.faultdata.concat(res.data)
 				for (var i = 0; i < this.faultdata.length; i++) {
 					if (this.faultdata[i].errorimg) {
-						if(!Array.isArray(this.faultdata[i].errorimg)){
+						if (!Array.isArray(this.faultdata[i].errorimg)) {
 							this.faultdata[i].errorimg = JSON.parse(this.faultdata[i].errorimg)
 						}
-					}else{
+					} else {
 						this.faultdata[i].errorimg = []
 					}
 				}
 				console.log(res)
-			}, 
+			},
 			fault(info) { //查看故障信息
-				this.title="故障信息"
+				this.title = "故障信息"
 				this.show = true
 				this.faultinfo = info
 				this.faultimg_tf = false
-				this.faultinfo_tf=true
-				this.faultvideo_tf=false
+				this.faultinfo_tf = true
+				this.faultvideo_tf = false
 			},
 			faultImg(info) { //查看故障图片
-				this.faultimg=[]
+				this.faultimg = []
 				for (var i = 0; i < info.length; i++) {
 					let obj = {}
 					obj.image = info[i]
 					this.faultimg.push(obj)
 				}
 				console.log(this.faultimg)
-				this.title="故障图片"
+				this.title = "故障图片"
 				this.show = true
 				this.faultimg_tf = true
-				this.faultinfo_tf=false
-				this.faultvideo_tf=false
+				this.faultinfo_tf = false
+				this.faultvideo_tf = false
 			},
 			faultVideo(info) { //查看故障视频
-				this.title="故障视频" 
-				if(info.indexOf("[")!=-1){
-					this.faultvideo=JSON.parse(info)[0]
-				}else{
-					this.faultvideo=info
+				this.title = "故障视频"
+				if (info.indexOf("[") != -1) {
+					this.faultvideo = JSON.parse(info)[0]
+				} else {
+					this.faultvideo = info
 				}
 				console.log(this.faultvideo)
 				this.show = true
 				this.faultimg_tf = false
-				this.faultinfo_tf=false
-				this.faultvideo_tf=true
+				this.faultinfo_tf = false
+				this.faultvideo_tf = true
 			},
-			search() { //搜索
-				uni.navigateTo({
-					url:"./search"
-				})
+			clickRight() { //搜索
+				this.width = 600
 			},
 			addf() { //添加
 				uni.navigateTo({
-					url:"./addafter"
+					url: "./addafter"
 				})
 			},
-			clickLeft(){
+			clickLeft() {
 				uni.switchTab({
-					url:"../index/index"
+					url: "../index/index"
 				})
 			},
 			examine(url) {
-				var imgarr =[]
-				for(var i=0;i<url.length;i++){
+				var imgarr = []
+				for (var i = 0; i < url.length; i++) {
 					imgarr.push(url[i].image)
 				}
 				console.log(imgarr)
@@ -175,13 +201,23 @@
 					scrollTop: 0,
 					duration: 500
 				})
-			}
+			},
+			search() { //搜索按钮搜索
+				this.faultdata = []
+				this.getAftersale()
+			},
+			searchinp() { //自动搜索
+				Debounce(() => {
+					this.faultdata = []
+					this.getAftersale()
+				}, 1000)()
+			},
 		},
-		onLoad() { 
-			
+		onLoad() {
+
 		},
-		onShow(){
-			this.faultdata=[]
+		onShow() {
+			this.faultdata = []
 			this.getAftersale()
 		},
 		onReachBottom() {
@@ -218,8 +254,8 @@
 			margin-left: 16rpx;
 		}
 	}
-	
-	.aftersaleTF{
+
+	.aftersaleTF {
 		width: 100%;
 		position: relative;
 		top: 340rpx;
@@ -227,11 +263,48 @@
 		padding-top: 40rpx;
 		font-size: 20px;
 	}
+	.loading{
+		position: fixed;
+		top: 440px;
+		width: 95%;
+		left: 2.5%;
+		text-align: center;
+		.img{
+			width: 300rpx;
+			height: 40rpx;
+		}
+	}
+	.inputs {
+		height: 54rpx;
+		background-color: #E4E4E4;
+		border-radius: 27rpx;
+		position: absolute;
+		right: 20rpx;
+		top: 24rpx;
+		transition: width 0.5s;
+		overflow: hidden;
+		padding-top: 8rpx;
+		box-sizing: border-box;
+
+		.inputbox {
+			width: 85%;
+			text-indent: 1rem;
+			font-size: 26rpx;
+		}
+
+		.icon {
+			position: absolute;
+			top: 8rpx;
+			right: 26rpx;
+		}
+	}
+
 	.aftersale {
 		width: 100%;
 		position: relative;
 		top: 340rpx;
 		margin-bottom: 80rpx;
+
 		.aftersale_item {
 			width: 90%;
 			margin: 0 auto 30rpx;
@@ -239,8 +312,10 @@
 			padding: 30rpx 20rpx 20rpx;
 			position: relative;
 			box-sizing: border-box;
+
 			.aftersale_item_title {
 				width: 100%;
+
 				span {
 					margin-left: 16rpx;
 					font-weight: 700;
@@ -304,6 +379,7 @@
 
 	.model {
 		width: 90%;
+
 		.model_box {
 			width: 90%;
 			margin: 40rpx auto 48rpx;
@@ -311,17 +387,20 @@
 			justify-content: center;
 		}
 	}
+
 	.top {
 		position: fixed;
 		right: 30px;
 		bottom: 100px;
 		z-index: 100;
-		image{
+
+		image {
 			width: 100rpx;
 			height: 100rpx;
 		}
 	}
-	.addindent{
+
+	.addindent {
 		width: 100%;
 		position: fixed;
 		bottom: 0;

+ 0 - 290
pages/afterSale/search.vue

@@ -1,290 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view style="position: fixed;z-index: 100;top: 44px;">
-			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"></uni-nav-bar>
-			<view class="search_top_input">
-				<input type="text" value="" placeholder="请输入设备ID"  v-model="imports" @input="searchinp"/>
-				<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
-			</view>
-		</view>
-		<view class="aftersaleinfo" v-if="aftersaleinfotf">
-			暂无此设备信息
-		</view>
-		<view class="aftersale" v-else>
-			<view class="aftersale_item" v-for="(item,index) in faultdata" :key="index">
-				<view class="aftersale_item_title">
-					<u-icon name="calendar" color="#71D8AF" size="34"></u-icon>
-					<span>设备 ID:{{item.device_id}}</span>
-				</view>
-				<view class="aftersale_item_con">
-					<p>联系人:{{item.user}}</p>
-					<p>联系电话:{{item.userphone}}</p>
-					<p>位置:{{item.addr}}</p>
-					<p>故障上报时间:{{item.uptime|timeFormat()}}</p>
-				</view>
-				<view class="aftersale_item_operate">
-					<button class="fault" @click="fault(item.errordesc)">故障原因</button>
-					<button :class="item.errorimg.length!=0?'imgs':'none'" :disabled="item.errorimg.length==0" @click="faultImg(item.errorimg)">图片</button>
-					<button :class="item.errorvideo?'video':'none'" :disabled="!item.errorvideo" @click="faultVideo(item.errorvideo)">视频</button>
-				</view>
-				<view class="aftersale_item_icon">
-					<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+aftersale_icon[Number(item.device_type)-2].src" mode=""></image>
-				</view>
-			</view>
-		</view>
-		<u-modal v-model="show" :mask-close-able="maskcloseable" :show-confirm-button="showconfirmbutton" :title="title" class="model">
-			<view class="model_box">
-				<p v-if="faultinfo_tf">{{faultinfo}}</p>
-				<u-swiper :list="faultimg" v-if="faultimg_tf" class="uswiper" height="400" style="width: 100%;" @click="examine(faultimg)"></u-swiper>
-				<video :src="BASE_URL+faultvideo" controls v-if="faultvideo_tf" style="width: 90%;"></video>
-			</view>
-		</u-modal>
-	</view>
-</template>
-<script>
-	import {
-		Debounce,
-		Throttle
-	} from "../../util/anitthro.js"
-	export default {
-		data() {
-			return {
-				imports:'',
-				BASE_URL: 'http://114.115.147.140:8002',
-				faultdata:[],
-				aftersale_icon: [{
-						src: '/image/afterSale/6.png'
-					},
-					{
-						src: '/image/afterSale/1.png'
-					},
-					{
-						src: '/image/afterSale/4.png'
-					},
-					{
-						src: '/image/afterSale/3.png'
-					},
-					{
-						src: '/image/afterSale/5.png'
-					},
-					{
-						src: '/image/afterSale/2.png'
-					}
-				],
-				title:"",//弹框标题
-				show: false,//弹框先显示
-				maskcloseable: true,
-				showconfirmbutton: false,
-				faultinfo: '',//故障信息
-				faultinfo_tf:false,//故障信息显示
-				faultvideo: '',//故障视频
-				faultvideo_tf:false,//故障视频显示
-				faultimg: [],//故障图片
-				faultimg_tf: false,//故障图片显示
-				aftersaleinfotf:'',
-				page:1
-			}
-		},
-		methods: {
-			async getAftersale(num) {
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=after_sale.after_sale_manage.aftersale_info',
-					data:{
-						f_id:num,
-						page:this.page
-					}
-				})
-				this.faultdata =this.faultdata.concat(res.data)
-				console.log(this.faultdata)
-				if(this.faultdata.length==0){
-					this.aftersaleinfotf = true
-				}else{
-					this.aftersaleinfotf = false
-				}
-				for (var i = 0; i < this.faultdata.length; i++) {
-					this.faultdata[i].errorimg = JSON.parse(this.faultdata[i].errorimg)
-					if (this.faultdata[i].errorimg == null) {
-						this.faultdata[i].errorimg = []
-					}
-				}
-			},
-			search(){
-				this.getAftersale(Number(this.imports))
-			},
-			fault(info) { //查看故障信息
-				this.title="故障信息"
-				this.show = true
-				this.faultinfo = info
-				this.faultimg_tf = false
-				this.faultinfo_tf=true
-				this.faultvideo_tf=false
-			},
-			faultImg(info) { //查看故障图片
-				this.faultimg=[]
-				for (var i = 0; i < info.length; i++) {
-					let obj = {}
-					obj.image = info[i]
-					this.faultimg.push(obj)
-				}
-				console.log(this.faultimg)
-				this.title="故障图片"
-				this.show = true
-				this.faultimg_tf = true
-				this.faultinfo_tf=false
-				this.faultvideo_tf=false
-			},
-			faultVideo(info) { //查看故障视频
-			this.title="故障视频"
-				this.faultvideo=info
-				this.show = true
-				this.faultimg_tf = false
-				this.faultinfo_tf=false
-				this.faultvideo_tf=true
-			},
-			clickLeft(){
-				uni.navigateTo({
-					url:"./index"
-				})
-			},
-			searchinp() {
-				Debounce(() => {
-					this.eqlistdata = []
-					this.search()
-				}, 1000)()
-			},
-			examine(url) {
-				var imgarr =[]
-				for(var i=0;i<url.length;i++){
-					imgarr.push(url[i].image)
-				}
-				console.log(imgarr)
-				uni.previewImage({
-					urls: imgarr
-				});
-			},
-		},
-		onReachBottom() {
-			this.page++
-			this.getAftersale(Number(this.imports))
-		}
-	}
-</script>
-<style lang="scss">
-	.search_top_input{
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18rpx;
-		right: 18rpx;
-		padding-top: 8rpx;
-		box-sizing: border-box;
-		input{
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-		.icon{
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-	.aftersaleinfo{
-		width: 100%;
-		position: relative;
-		top: 98px;
-		height: 100rpx;
-		text-align: center;
-		line-height: 100rpx;
-		font-size: 32rpx;
-	}
-	.aftersale {
-		width: 100%;
-		// margin-top: 20rpx;
-		position: relative;
-		top: 98px;
-	
-		.aftersale_item {
-			width: 90%;
-			margin: 0 auto 30rpx;
-			box-shadow: 0 0 10rpx #bcb9ca;
-			padding: 30rpx 20rpx 20rpx;
-			position: relative;
-			box-sizing: border-box;
-			.aftersale_item_title {
-				width: 100%;
-	
-				span {
-					margin-left: 16rpx;
-					font-weight: 700;
-				}
-			}
-	
-			.aftersale_item_con {
-				width: 92%;
-				margin-left: 8%;
-				margin-top: 20rpx;
-	
-				p {
-					height: 48rpx;
-					font-size: 24rpx;
-					color: #BEBEBE;
-				}
-			}
-	
-			.aftersale_item_operate {
-				width: 70%;
-				display: flex;
-				margin: 18rpx 0 0 30%;
-	
-				button {
-					width: 130rpx;
-					padding: 0;
-					font-size: 24rpx;
-					color: #FFFFFF;
-				}
-	
-				.fault {
-					background-color: #F78E01;
-				}
-	
-				.imgs {
-					background-color: #71CD9A;
-				}
-	
-				.video {
-					background-color: #53C6E6;
-				}
-	
-				.none {
-					background-color: #F3F3F3;
-					color: #B4B4B4;
-				}
-			}
-	
-			.aftersale_item_icon {
-				position: absolute;
-				top: 0;
-				right: 36rpx;
-	
-				image {
-					width: 68rpx;
-					height: 64rpx;
-				}
-			}
-		}
-	}
-	.model {
-		width: 90%;
-		.model_box {
-			width: 90%;
-			margin: 20rpx auto 48rpx;
-			display: flex;
-			justify-content: center;
-		}
-	}
-</style>
-

+ 68 - 26
pages/cb/bzy/equip-set/bzyhistoryile.vue

@@ -7,22 +7,27 @@
 			</view>
 			<view class="shuju_one">
 				<view class="shuju_one_title">
-					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext" :key="index"
-					 @click="changeindex(index)">
+					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext"
+						:key="index" @click="changeindex(index)">
 						{{item}}
 					</view>
 				</view>
-				<view class="canvastishi" v-if="!canvastishiTF">
+				<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
 					暂无数据
 				</view>
-				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts" @touchstart="touchLineA($event)"
-				 @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)" disable-scroll=true :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
+				<view class="canvastishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
+				</view>
+				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts"
+					@touchstart="touchLineA($event)" @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)"
+					disable-scroll=true
+					:style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
 			</view>
 			<view class="refresh" @click="refresh">
 				刷 新
 			</view>
 			<view class="condition">
-				<scroll-view  scroll-x="true" class="scroll-X" scroll-top="0">
+				<scroll-view scroll-x="true" class="scroll-X" scroll-top="0">
 					<table class="table">
 						<tr class="tr">
 							<th class="th" v-for="(item,index) in thdata" :key="index">{{item}}</th>
@@ -80,14 +85,16 @@
 				titleidnex: 0,
 				device_id: '',
 				page: 1,
-				pagesum: null,
+				pagesum: 1,
 				historylistdata: [],
-				thdata: ["上报时间", "设备开关", "环境温度(°C)", "环境湿度(%)", "保温仓温度设定温度(°C)", "保温仓温度当前温度(°C)", "电池状态", "雨控状态", "摄像头状态", "信号强度",
+				thdata: ["上报时间", "设备开关", "环境温度(°C)", "环境湿度(%)", "保温仓温度设定温度(°C)", "保温仓温度当前温度(°C)", "电池状态", "雨控状态", "摄像头状态",
+					"信号强度",
 					"电流(mA)",
 					"电压(V)", "设备版本"
 				],
 				forbidden: false,
-				canvastishiTF: false,
+				canvastishiTF: false, //暂无数据提示
+				dataloadingtf: true, //加载中提示
 				cWidth: '400',
 				cHeight: '400',
 				pixelRatio: 1,
@@ -99,7 +106,8 @@
 			//    d_id                    必传                            设备id
 			//    start_time              非必传(string 时间戳)           开始时间    (用于时间搜索)
 			//    end_time
-			async history() { //获取图片列表
+			async history() {
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.device_polyline_data',
 					data: {
@@ -109,6 +117,7 @@
 						end_time: parseInt(this.end_time / 1000)
 					}
 				})
+				this.dataloadingtf = false
 				console.log(res)
 				this.historydatas = res
 				console.log(this.historydatas)
@@ -123,7 +132,8 @@
 					var xtitle = []
 					for (var i = 0; i < res.length; i++) {
 						var times = new Date(res[i].addtime * 1000)
-						xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times.getMinutes())
+						xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" +
+							times.getMinutes())
 						arr1.unshift(res[i].temperature == "" ? "0" : res[i].temperature)
 						arr2.unshift(res[i].humidity == "" ? "0" : res[i].humidity)
 						arr3.unshift(res[i].others == "" ? "0" : res[i].others)
@@ -157,7 +167,7 @@
 					}
 				})
 				this.historylistdata = res.data
-				this.pagesum = Math.ceil(res.counts / 10 + 1)
+				this.pagesum = Math.ceil(res.counts / 10) || 1
 				if (res.data.length == 0) {
 					this.forbidden = true
 					console.log(res.data.length)
@@ -165,7 +175,6 @@
 					this.forbidden = false
 					console.log(res.data.length)
 				}
-				// console.log(this.historylistdata)
 			},
 			changeindex(index) {
 				this.titleidnex = index
@@ -199,8 +208,10 @@
 				}
 			},
 			next() { //下一页
-				this.page++
-				this.historylist()
+				if (this.page < this.pagesum) {
+					this.page++
+					this.historylist()
+				}
 			},
 			clickLeft() {
 				uni.navigateBack({
@@ -268,7 +279,7 @@
 						control_type: "data"
 					}
 				})
-				if(res){
+				if (res) {
 					uni.showToast({
 						title: '刷新成功',
 						duration: 2000,
@@ -277,7 +288,7 @@
 					uni.navigateBack({
 						delta: 1
 					})
-				}else{
+				} else {
 					uni.showToast({
 						title: '刷新失败',
 						duration: 2000,
@@ -296,12 +307,12 @@
 			this.cHeight = uni.upx2px(500);
 		},
 		onShow() {
-			this.end_time = +new Date() 
+			this.end_time = +new Date()
 			this.start_time = this.end_time - 24 * 60 * 60 * 1000
-			setTimeout(()=>{
+			setTimeout(() => {
 				this.history()
 				this.historylist()
-			},1000)
+			}, 1000)
 		}
 	}
 </script>
@@ -324,6 +335,24 @@
 			left: 50%;
 			margin-left: -64rpx;
 			margin-top: -21rpx;
+
+			.dataloading:after {
+				overflow: hidden;
+				display: inline-block;
+				vertical-align: bottom;
+				animation: ellipsis 2s infinite;
+				content: "\2026";
+			}
+
+			@keyframes ellipsis {
+				from {
+					width: 2px;
+				}
+
+				to {
+					width: 15px;
+				}
+			}
 		}
 
 		.shuju_one_title {
@@ -334,7 +363,7 @@
 			.tltle_text {
 				width: 25%;
 				border: 2rpx solid #B2B2B2;
-				color: #B2B2B2;
+				color: #57c878;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -343,8 +372,9 @@
 
 			.title_text_color {
 				width: 25%;
-				border: 2rpx solid #28AE4F;
-				color: #28AE4F;
+				border: 2rpx solid #57c878;
+				background-color: #57c878;
+				color: #fff;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -359,7 +389,7 @@
 		left: 5%;
 		width: 160rpx;
 		height: 50rpx;
-		background-color: #28AE4F;
+		background-color: #57c878;
 		color: #FFFFFF;
 		line-height: 50rpx;
 		text-align: center;
@@ -378,12 +408,15 @@
 		.scroll-X {
 			width: 95%;
 			margin: 20rpx auto;
-			.table{
+
+			.table {
 				width: 1672px;
 			}
+
 			.tr {
 				display: flex;
 				overflow: hidden;
+
 				.th,
 				.td {
 					display: inline-block;
@@ -404,6 +437,15 @@
 					width: 300rpx;
 				}
 			}
+
+			.tr:nth-child(2n-1) {
+				background-color: #f5fff8;
+			}
+
+			.tr:first-child {
+				background-color: #57c878;
+				color: #fff;
+			}
 		}
 
 		.pagenumber {
@@ -416,7 +458,7 @@
 				line-height: 50rpx;
 				font-size: 26rpx;
 				text-align: center;
-				background-color: #17BB89;
+				background-color: #57c878;
 				color: #FFFFFF;
 				margin: 0 10rpx;
 			}

+ 46 - 15
pages/cb/cbd/equip-set/historyfile.vue

@@ -12,9 +12,12 @@
 						{{item}}
 					</view>
 				</view>
-				<view class="canvastishi" v-if="!canvastishiTF">
+				<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
 					暂无数据
 				</view>
+				<view class="canvastishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
+				</view>
 				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts" @touchstart="touchLineA($event)"
 				 @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)" disable-scroll=true :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
 			</view>
@@ -88,12 +91,14 @@
 				cWidth: '400',
 				cHeight: '400',
 				pixelRatio: 1,
-				canvastishiTF: false,
-				pagesum: null
+				canvastishiTF: false,//暂无数据提示
+				dataloadingtf:true,//加载中提示
+				pagesum: 1
 			}
 		},
 		methods: {
 			async history() { //历史数据列表折线图
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.device_polyline_data',
 					data: {
@@ -103,6 +108,7 @@
 						end_time: parseInt(this.end_time / 1000)
 					}
 				})
+				this.dataloadingtf = false
 				this.historydatas = res
 				console.log(this.historydatas)
 				if (this.historydatas.length == 0) {
@@ -152,7 +158,7 @@
 					}
 				})
 				this.historylistdata = res.data
-				this.pagesum = Math.ceil(res.counts / 10) + 1
+				this.pagesum = Math.ceil(res.counts / 10) || 1
 				if (res.data.length == 0) {
 					this.forbidden = true
 					console.log(res.data.length)
@@ -233,8 +239,10 @@
 				}
 			},
 			next() { //下一页
-				this.page++
-				this.historylist()
+				if(this.page < this.pagesum){
+					this.page++
+					this.historylist()
+				}
 			},
 			clickLeft() {
 				uni.navigateBack({
@@ -303,10 +311,8 @@
 		onShow(){
 			this.end_time = +new  Date() + 1000
 			this.start_time = this.end_time - 24 * 60 * 60 * 1000
-			setTimeout(()=>{
-				this.history()
-				this.historylist()
-			},1000)
+			this.history()
+			this.historylist()
 		},
 		onPullDownRefresh() {
 			this.history()
@@ -336,6 +342,23 @@
 			left: 50%;
 			margin-left: -64rpx;
 			margin-top: -21rpx;
+			.dataloading:after {
+				overflow: hidden;
+				display: inline-block;
+				vertical-align: bottom;
+				animation: ellipsis 2s infinite;
+				content: "\2026";
+			}
+			
+			@keyframes ellipsis {
+				from {
+					width: 2px;
+				}
+			
+				to {
+					width: 15px;
+				}
+			}
 		}
 
 		.shuju_one_title {
@@ -346,7 +369,7 @@
 			.tltle_text {
 				width: 25%;
 				border: 2rpx solid #B2B2B2;
-				color: #B2B2B2;
+				color: #57c878;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -355,8 +378,9 @@
 
 			.title_text_color {
 				width: 25%;
-				border: 2rpx solid #28AE4F;
-				color: #28AE4F;
+				border: 2rpx solid #57c878;
+				background-color: #57c878;
+				color: #fff;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -371,7 +395,7 @@
 		left: 5%;
 		width: 160rpx;
 		height: 50rpx;
-		background-color: #28AE4F;
+		background-color: #57c878;
 		color: #FFFFFF;
 		line-height: 50rpx;
 		text-align: center;
@@ -413,6 +437,13 @@
 					width: 300rpx;
 				}
 			}
+			.tr:nth-child(2n-1){
+				background-color: #f5fff8;
+			}
+			.tr:first-child{
+				background-color: #57c878;
+				color: #fff;
+			}
 		}
 
 		.pagenumber {
@@ -425,7 +456,7 @@
 				line-height: 50rpx;
 				font-size: 26rpx;
 				text-align: center;
-				background-color: #17BB89;
+				background-color: #57c878;
 				color: #FFFFFF;
 			}
 

+ 29 - 3
pages/cb/equip-detail/equip-detail.vue

@@ -82,9 +82,12 @@
 			<p>实时数据</p>
 			<p class="span" @click="partClicks" v-if="equipInfo.type!=4">历史数据>>></p>
 		</view>
-		<view class="newtishi" v-if="!newtishitf">
+		<view class="newtishi" v-if="newtishitf && !dataloadingtf">
 			暂无数据
 		</view>
+		<view class="newtishi" v-if="dataloadingtf">
+			<p class="dataloading">加载中</p>
+		</view>
 		<view class="newState" v-else>
 			<view class="item" v-for="item in curState">
 				<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+item.icon" mode="widthFix"></image>
@@ -210,7 +213,8 @@
 				yxShow: false, //诱芯弹框
 				xyErr: '',
 				decoy: '',
-				newtishitf: false,
+				newtishitf: false,//暂无数据提示
+				dataloadingtf:true,//加载中提示
 				date: "" //最大可选时间
 			}
 		},
@@ -544,6 +548,7 @@
 		},
 		methods: {
 			async getState() {
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.device_history_data',
 					data: {
@@ -552,8 +557,11 @@
 						device_id: this.equipInfo.imei || this.equipInfo.device_id,
 						page: 1,
 						page_size: 1,
+						start_time: +new Date(),
+						end_time: +new Date()-24*60*60
 					}
 				})
+				this.dataloadingtf = false
 				console.log(res)
 				console.log(1222)
 				if (res.counts != 0) {
@@ -795,6 +803,23 @@
 			text-align: center;
 			padding-top: 40rpx;
 			font-size: 32rpx;
+			.dataloading:after {
+				overflow: hidden;
+				display: inline-block;
+				vertical-align: bottom;
+				animation: ellipsis 2s infinite;
+				content: "\2026";
+			}
+			
+			@keyframes ellipsis {
+				from {
+					width: 2px;
+				}
+			
+				to {
+					width: 15px;
+				}
+			}
 		}
 
 		.newState {
@@ -809,7 +834,7 @@
 				margin: 10rpx;
 				width: 345rpx;
 				justify-content: flex-start;
-				padding: 20rpx 10rpx;
+				padding: 20rpx 20rpx 20rpx 30rpx;
 				box-sizing: border-box;
 				border-radius: 4px;
 				box-shadow: 0px 0px 5px 3px rgba(136, 136, 136, .1);
@@ -823,6 +848,7 @@
 
 				image {
 					width: 70rpx;
+					height: 72rpx;
 				}
 			}
 		}

+ 79 - 8
pages/cb/index/index.vue

@@ -5,6 +5,11 @@
 			<view style="position: fixed;z-index: 100;">
 				<uni-nav-bar @clickRight="clickRight" @clickLeft="clickLeft" left-icon="back" left-text="返回" right-icon="search"
 				 title="测报系统"></uni-nav-bar>
+				 <view class="inputs" :style="{'width':width+'rpx'}">
+				 	<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp"
+				 		class="inputbox" :clearable="false" />
+				 	<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
+				 </view>
 				<view>
 					<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/cb/banner.jpg'" mode="widthFix"></image>
 				</view>
@@ -15,6 +20,9 @@
 					</view>
 				</view>
 			</view>
+			<view class="loading" v-if="loadingtf">
+				<image src="../../../static/images/ajax-loader.gif" mode="" class="img"></image>
+			</view>
 			<view class="" style="position: absolute;top: 180px;width: 100%;">
 				<view class="content">
 					<template v-for="(item,index) in equipArr[active].list">
@@ -51,6 +59,7 @@
 </template>
 
 <script>
+	import {Debounce} from "../../../util/anitthro.js"
 	import equipItem from "../../../components/equip-item/equip-item"
 	import uniNavBar from "@/components/uni-nav-bar/uni-nav-bar.vue"
 	export default {
@@ -87,7 +96,10 @@
 				device_id: '3', //筛选的设备id
 				isTop: false,
 				filtrateTF:false,
-				device_status:""
+				device_status:"",
+				width:0,//顶部搜索栏宽度
+				imports:"",//搜索id
+				loadingtf:false,//loading
 			}
 		},
 		onLoad() {
@@ -170,41 +182,47 @@
 		},
 		methods: {
 			async getEquipList(act) {
+				this.loadingtf =true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
 					data: {
 						device_type_id: this.equipArr[act].type,
 						page: this.equipArr[act].pageIndex,
 						page_size: 10,
-						device_status:this.device_status
+						device_status:this.device_status,
+						device_id: this.imports,
 					}
 				})
+				this.loadingtf =false
 				console.log(res)
 				this.equipArr[act].list = [...this.equipArr[act].list, ...res.data]
 				console.log(this.equipArr[act].list)
 			},
 			async getxyEquipList(act) {
+				this.loadingtf =true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_list',
 					data: {
 						device_type_id: this.equipArr[act].type,
 						page: this.equipArr[act].pageIndex,
 						page_size: 10,
-						device_status:this.device_status
+						device_status:this.device_status,
+						device_id: this.imports,
 					}
 				})
+				this.loadingtf =false
 				console.log(res)
 				this.equipArr[act].list = [...this.equipArr[act].list, ...res.data]
 				console.log(this.equipArr[act].list)
 			},
 			tabClick(index) {
+				this.width = 0
+				this.imports = ""
 				this.active = index;
 				this.device_id = this.equipArr[index].type
 			},
 			clickRight() {
-				uni.navigateTo({
-					url: "./search?device_id=" + this.device_id
-				})
+				this.width=600
 			},
 			itemClick(item) {
 				item.type = this.equipArr[this.active].type
@@ -265,7 +283,27 @@
 					this.getEquipList(this.active)
 				}
 				this.filtrateTF = !this.filtrateTF
-			}
+			},
+			search() {//搜索按钮搜索
+				if(this.active==3){
+					this.equipArr[this.active].list =[]
+					this.getxyEquipList(3)
+				}else{
+					this.equipArr[this.active].list=[]
+					this.getEquipList(this.active)
+				}
+			},
+			searchinp() {//自动搜索
+				Debounce(() => {
+					if(this.active==3){
+						this.equipArr[this.active].list=[]
+						this.getxyEquipList(3)
+					}else{
+						this.equipArr[this.active].list=[]
+						this.getEquipList(this.active)
+					}
+				}, 1000)()
+			},
 		},
 		components: {
 			equipItem,
@@ -287,7 +325,40 @@
 	image {
 		width: 100%;
 	}
-
+	.inputs{
+		height: 54rpx;
+		background-color: #E4E4E4;
+		border-radius: 27rpx;
+		position: absolute;
+		right: 20rpx;
+		top: 20rpx;
+		transition: width 0.5s; 
+		overflow: hidden;
+		padding-top: 8rpx;
+		box-sizing: border-box;
+		.inputbox {
+			width: 85%;
+			text-indent: 1rem;
+			font-size: 26rpx;
+		}
+		
+		.icon {
+			position: absolute;
+			top: 8rpx;
+			right: 26rpx;
+		}
+	}
+	.loading{
+		position: fixed;
+		top: 440px;
+		width: 95%;
+		left: 2.5%;
+		text-align: center;
+		.img{
+			width: 300rpx;
+			height: 40rpx;
+		}
+	}
 	.tab-box {
 		display: flex;
 		justify-content: space-around;

+ 0 - 252
pages/cb/index/search.vue

@@ -1,252 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view class="" style="position: relative;top: 44px;">
-			<view style="position: fixed;z-index: 100;padding-top: 20rpx;background-color: #FFFFFF;">
-				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"></uni-nav-bar>
-				<view class="search_top_input">
-					<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp" />
-					<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
-				</view>
-			</view>
-			<view class="nonetishi" v-if="none">
-				暂无此设备
-			</view>
-			<view class="prevents" v-else>
-				<view class="prevents_item" v-for="item,index in eqlistdata" :key="index" @click="eqdetails(item)">
-					<image :src="item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/6.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/7.png'" mode=""
-					 class="prevents_item_img"></image>
-					<view class="prevents_item_top">
-						<p>设备名称:{{item.device_name==""?"无":item.device_name}}</p>
-						<p :class="item.is_online==1?'green':'red'" v-text="item.is_online==1?'在线':'离线'"></p>
-					</view>
-					<view class="prevents_item_bot">
-						<p>设备 ID:{{item.imei || item.device_id}}</p>
-						<p>最新上报时间:{{item.addtime|timeFormat()}}</p>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="top" v-if="isTop" @click="top">
-			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/6209a98f0cb3b5086f2ca36152c9269.png'" mode=""></image>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		Debounce,
-		Throttle
-	} from "../../../util/anitthro.js"
-	export default {
-		data() {
-			return {
-				imports:"",
-				device_id:'',
-				page:1,
-				eqlistdata:[],
-				isTop:false,
-				none:false
-			}
-		},
-		methods: {
-			async searchEquip() {
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-					data: {
-						device_type_id: this.device_id,
-						device_id: this.imports,
-						page:this.page
-					}
-				})
-				this.eqlistdata = this.eqlistdata.concat(res.data)
-				console.log(res)
-				if(this.eqlistdata.length==0){
-					this.none = true
-				}else{
-					this.none = false
-				}
-			},
-			async getxyEquipList(act) {
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_list',
-					data: {
-						device_type_id: this.device_id,
-						device_id: this.imports,
-						page: this.page,
-						page_size: 10,
-					}
-				})
-				this.eqlistdata = this.eqlistdata.concat(res.data)
-				console.log(res)
-				if(this.eqlistdata.length==0){
-					this.none = true
-				}else{
-					this.none = false
-				}
-			},
-			searchinp(){
-				Debounce(() => {
-					this.eqlistdata = []
-					this.page = 1
-					if(this.device_id==10){
-						this.getxyEquipList()
-					}else{
-						this.searchEquip()
-					}
-				}, 1000)()
-			},
-			search(){
-				this.eqlistdata = []
-				this.page = 1
-				if(this.device_id==10){
-					this.getxyEquipList()
-				}else{
-					this.searchEquip()
-				}
-			},
-			clickLeft(){
-				uni.navigateBack({
-					delta:1
-				})
-			},
-			top() {
-				uni.pageScrollTo({
-					scrollTop: 0,
-					duration: 500
-				})
-			},
-			eqdetails(item){
-				item.type = Number(this.device_id)
-				console.log(item)
-				let data = JSON.stringify(item)
-				if(item.type==10){
-					uni.navigateTo({
-						url: '/pages/cb/xy2.0/particulars?info=' + data
-					});
-				}else{
-					uni.navigateTo({
-						url: '/pages/cb/equip-detail/equip-detail?info=' + data
-					});
-				}
-			}
-		},
-		onLoad(option){
-			this.device_id = option.device_id
-		},
-		onReachBottom() {
-			this.page++
-			console.log(1)
-			if(this.device_id==10){
-				this.getxyEquipList()
-			}else{
-				this.searchEquip()
-			}
-		},
-		onBackPress(options) {
-			if (options.from === 'navigateBack') {
-				return false;
-			}
-			this.clickLeft();
-			return true;
-		},
-		onPageScroll(e) { //nvue暂不支持滚动监听,可用bindingx代替
-			if (e.scrollTop > 200) { //距离大于200时显示
-				this.isTop = true
-			} else { //距离小于200时隐藏
-				this.isTop = false
-			}
-		},
-	}
-</script>
-
-<style lang="scss">
-	.search_top_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 33rpx;
-		right: 18rpx;
-		padding-top: 8rpx;
-		box-sizing: border-box;
-	
-		input {
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-	
-		.icon {
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-	.nonetishi{
-		width: 100%;
-		position: absolute;
-		top: 60px;
-		height: 200rpx;
-		text-align: center;
-		line-height: 200rpx;
-		font-size: 22px;
-	}
-	.prevents {
-		width: 100%;
-		position: absolute;
-		top: 60px;
-		.prevents_item {
-			width: 95%;
-			margin: 0 auto 30rpx;
-			border-radius: 10rpx;
-			box-shadow: 0 0 10rpx #bcb9ca;
-			padding: 20rpx 40rpx 20rpx 80rpx;
-			box-sizing: border-box;
-			position: relative;
-	
-			.prevents_item_img {
-				width: 30rpx;
-				height: 50rpx;
-				position: absolute;
-				top: -4rpx;
-				left: 30rpx;
-			}
-	
-			.prevents_item_top {
-				display: flex;
-				justify-content: space-between;
-				height: 60rpx;
-				border-bottom: 2rpx solid #F4F4F4;
-				line-height: 60rpx;
-				font-size: 26rpx;
-	
-				.red {
-					color: #ff0000;
-				}
-	
-				.green {
-					color: #7DBB91;
-				}
-			}
-	
-			.prevents_item_bot {
-				margin-top: 20rpx;
-				font-size: 26rpx;
-				color: #BDBDBD;
-			}
-		}
-	}
-	.top {
-		position: fixed;
-		right: 30px;
-		bottom: 100px;
-		z-index: 100;
-		image{
-			width: 100rpx;
-			height: 100rpx;
-		}
-	}
-</style>
-

+ 76 - 29
pages/cb/xy/equip-set/xyhistoryile.vue

@@ -7,26 +7,35 @@
 			</view>
 			<view class="shuju_one">
 				<view class="shuju_one_title">
-					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext" :key="index"
-					 @click="changeindex(index)">
+					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext"
+						:key="index" @click="changeindex(index)">
 						{{item}}
 					</view>
 				</view>
-				<view class="canvastishi" v-if="!canvastishiTF">
+				<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
 					暂无数据
 				</view>
-				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts" @touchstart="touchLineA($event)"
-				 @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)" disable-scroll=true :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
+				<view class="canvastishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
+				</view>
+				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts"
+					@touchstart="touchLineA($event)" @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)"
+					disable-scroll=true
+					:style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
 			</view>
 			<view class="wind">
 				<p class="wind_titie">风速、风向</p>
 				<view class="wind_text">
 					<view class="wind_speed">
-						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/cb/xy/1c24243bb184e84ffd13540367569ba.png'" mode=""></image>
+						<image
+							:src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/cb/xy/1c24243bb184e84ffd13540367569ba.png'"
+							mode=""></image>
 						<p>风速:{{wind_sped}}(m/s)</p>
 					</view>
 					<view class="wind_direction">
-						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/cb/xy/c44ae038324e1040a1eaa702e6d71a5.png'" mode=""></image>
+						<image
+							:src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/cb/xy/c44ae038324e1040a1eaa702e6d71a5.png'"
+							mode=""></image>
 						<p>风速:{{wind_drec}}</p>
 					</view>
 				</view>
@@ -84,7 +93,8 @@
 				cWidth: '400',
 				cHeight: '400',
 				pixelRatio: 1,
-				canvastishiTF: false,
+				canvastishiTF: false, //暂无数据提示
+				dataloadingtf: true, //加载中提示
 				d_id: '',
 				start_time: "",
 				end_time: "",
@@ -94,13 +104,14 @@
 				device_id: '',
 				page: 1,
 				historylistdata: [],
-				thdata: ["上报时间", "型号", "设备开关", "工作状态", "环境温度(°C)", "环境湿度(%)", "充电电压(V)", "电池电压(V)", "电池状态", "充电状态", "红外计数值", "信号强度",
+				thdata: ["上报时间", "型号", "设备开关", "工作状态", "环境温度(°C)", "环境湿度(%)", "充电电压(V)", "电池电压(V)", "电池状态", "充电状态",
+					"红外计数值", "信号强度",
 					"版本号"
 				],
 				forbidden: false,
 				wind_sped: '', //风速
 				wind_drec: '',
-				pagesum: null
+				pagesum: 1
 			}
 		},
 		methods: {
@@ -110,6 +121,7 @@
 			//    start_time              非必传(string 时间戳)           开始时间    (用于时间搜索)
 			//    end_time
 			async history() { //历史数据折线图
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.device_polyline_data',
 					data: {
@@ -119,6 +131,7 @@
 						end_time: parseInt(this.end_time / 1000)
 					}
 				})
+				this.dataloadingtf = false
 				this.historydatas = res
 				console.log(this.historydatas)
 				if (res.length == 0) {
@@ -154,9 +167,10 @@
 					var xtitle = []
 					for (var i = 0; i < res.length; i++) {
 						var times = new Date(res[i].addtime * 1000)
-						xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times.getMinutes())
-						arr1.unshift(res[i].temperature==""?"0":res[i].temperature)
-						arr2.unshift(res[i].humidity==""?"0":res[i].humidity)
+						xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" +
+							times.getMinutes())
+						arr1.unshift(res[i].temperature == "" ? "0" : res[i].temperature)
+						arr2.unshift(res[i].humidity == "" ? "0" : res[i].humidity)
 					}
 					var obj = [{
 						name: '温度',
@@ -183,7 +197,7 @@
 					}
 				})
 				this.historylistdata = res.data
-				this.pagesum = Math.ceil(res.counts / 10)+1
+				this.pagesum = Math.ceil(res.counts / 10) || 1
 				if (res.data.length == 0) {
 					this.forbidden = true
 				} else {
@@ -232,8 +246,10 @@
 				}
 			},
 			next() { //下一页
-				this.page++
-				this.historylist()
+				if (this.page < this.pagesum) {
+					this.page++
+					this.historylist()
+				}
 			},
 			clickLeft() {
 				uni.navigateBack({
@@ -301,7 +317,7 @@
 						control_type: "data"
 					}
 				})
-				if(res){
+				if (res) {
 					uni.showToast({
 						title: '刷新成功',
 						duration: 2000,
@@ -310,7 +326,7 @@
 					uni.navigateBack({
 						delta: 1
 					})
-				}else{
+				} else {
 					uni.showToast({
 						title: '刷新失败',
 						duration: 2000,
@@ -331,10 +347,10 @@
 		onShow() {
 			this.end_time = +new Date() + 1000
 			this.start_time = this.end_time - 24 * 60 * 60 * 1000
-			setTimeout(()=>{
+			setTimeout(() => {
 				this.history()
 				this.historylist()
-			},1000)
+			}, 1000)
 		}
 	}
 </script>
@@ -357,6 +373,24 @@
 			left: 50%;
 			margin-left: -64rpx;
 			margin-top: -21rpx;
+
+			.dataloading:after {
+				overflow: hidden;
+				display: inline-block;
+				vertical-align: bottom;
+				animation: ellipsis 2s infinite;
+				content: "\2026";
+			}
+
+			@keyframes ellipsis {
+				from {
+					width: 2px;
+				}
+
+				to {
+					width: 15px;
+				}
+			}
 		}
 
 		.shuju_one_title {
@@ -367,7 +401,7 @@
 			.tltle_text {
 				width: 25%;
 				border: 2rpx solid #B2B2B2;
-				color: #B2B2B2;
+				color: #57c878;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -376,8 +410,9 @@
 
 			.title_text_color {
 				width: 25%;
-				border: 2rpx solid #28AE4F;
-				color: #28AE4F;
+				border: 2rpx solid #57c878;
+				background-color: #57c878;
+				color: #fff;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -396,7 +431,7 @@
 		box-sizing: border-box;
 
 		.wind_titie {
-			border-left: 6rpx solid #26D696;
+			border-left: 6rpx solid #57c878;
 			height: 34rpx;
 			padding-left: 20rpx;
 		}
@@ -417,17 +452,19 @@
 			}
 		}
 	}
-	.refresh{
+
+	.refresh {
 		position: absolute;
 		top: 1000rpx;
 		left: 5%;
 		width: 160rpx;
 		height: 50rpx;
-		background-color: #28AE4F;
+		background-color: #57c878;
 		color: #FFFFFF;
 		line-height: 50rpx;
 		text-align: center;
 	}
+
 	.condition {
 		position: absolute;
 		top: 1070rpx;
@@ -441,9 +478,11 @@
 		.scroll-X {
 			width: 95%;
 			margin: 20rpx auto;
-			.table{
+
+			.table {
 				width: 1672px;
 			}
+
 			.tr {
 				display: flex;
 				overflow: hidden;
@@ -456,7 +495,6 @@
 					text-align: center;
 					height: 52rpx;
 					line-height: 52rpx;
-					border: 2rpx solid #F1F1F1;
 				}
 
 				.th:first-child,
@@ -464,6 +502,15 @@
 					width: 300rpx;
 				}
 			}
+
+			.tr:nth-child(2n-1) {
+				background-color: #f5fff8;
+			}
+
+			.tr:first-child {
+				background-color: #57c878;
+				color: #fff;
+			}
 		}
 
 		.pagenumber {
@@ -476,7 +523,7 @@
 				line-height: 50rpx;
 				font-size: 26rpx;
 				text-align: center;
-				background-color: #17BB89;
+				background-color: #57c878;
 				color: #FFFFFF;
 			}
 

+ 54 - 62
pages/cb/xy2.0/historydatas.vue

@@ -3,16 +3,21 @@
 		<view class="">
 			<view class="shuju_one">
 				<view class="shuju_one_title">
-					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext" :key="index"
-					 @click="changeindex(index)">
+					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext"
+						:key="index" @click="changeindex(index)">
 						{{item}}
 					</view>
 				</view>
-				<view class="canvastishi" v-if="!canvastishiTF">
+				<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
 					暂无数据
 				</view>
-				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts" @touchstart="touchLineA($event)"
-				 @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)" disable-scroll=true :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
+				<view class="canvastishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
+				</view>
+				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts"
+					@touchstart="touchLineA($event)" @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)"
+					disable-scroll=true
+					:style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
 			</view>
 			<view class="refresh" @click="refresh">
 				刷 新
@@ -77,54 +82,15 @@
 				cWidth: '400',
 				cHeight: '400',
 				pixelRatio: 1,
-				canvastishiTF: false,
-				pagesum: null,
+				canvastishiTF: false, //暂无数据提示
+				dataloadingtf: true, //加载中提示
+				pagesum: 1,
 				worms: []
 			}
 		},
 		methods: {
-			async history() { //历史数据列表折线图
-				// this.Chistory()
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_line_chart',
-					data: {
-						device_id: this.device_id,
-						strat_time: parseInt(this.start_time / 1000),
-						end_time: parseInt(this.end_time / 1000),
-						status: "at_ah"
-					}
-				})
-				this.historydatas = res
-				console.log(this.historydatas)
-				if (this.historydatas.length == 0) {
-					this.canvastishiTF = false
-				} else {
-					this.canvastishiTF = true
-					// var arr1 = []
-					// var arr2 = []
-					var arr3 = []
-					var xtitle = []
-					for (var i = 0; i < res.length; i++) {
-						var times = new Date(res[i].xy_addtime)
-						xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times.getMinutes())
-						// arr1.unshift(res[i].ah == "" ? "0" : res[i].ah)
-						// arr2.unshift(res[i].at == "" ? "0" : res[i].at)
-					}
-					for (var j = 0; j < this.worms.length; j++) {
-						var times = new Date(res[i].xy_addtime)
-						arr3.unshift(res[i].pest_num == "" ? "0" : res[i].pest_num)
-					}
-					this.$nextTick(() => {
-						var obj = [{
-							name: '诱虫次数',
-							data: arr3,
-							color: '#ff0000'
-						}]
-						this.showColumn("canvasColumnA", xtitle, obj)
-					})
-				}
-			},
 			async Chistory() { //历史数据列表折线图
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_line_chart',
 					data: {
@@ -134,6 +100,7 @@
 						status: "pest"
 					}
 				})
+				this.dataloadingtf = false
 				this.worms = res
 				console.log(this.worms)
 				if (this.worms.data.length == 0) {
@@ -143,14 +110,9 @@
 					var arr3 = []
 					var xtitle = []
 					for (var i = 0; i < res.data.length; i++) {
-						// var times = new Date(res[i].xy_addtime)
-						// xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times.getMinutes())
 						xtitle.unshift(res.data[i].xy_addtime)
-						// arr1.unshift(res[i].ah == "" ? "0" : res[i].ah)
-						// arr2.unshift(res[i].at == "" ? "0" : res[i].at)
 					}
 					for (var j = 0; j < this.worms.data.length; j++) {
-						// var times = new Date(res[i].xy_addtime)
 						arr3.unshift(this.worms.data[j].pest_num == "" ? "0" : this.worms.data[j].pest_num)
 					}
 					console.log(arr3)
@@ -177,7 +139,7 @@
 				})
 				this.historylistdata = res.data
 				console.log(res.data)
-				this.pagesum = Math.ceil(res.nums / 10) + 1
+				this.pagesum = Math.ceil(res.nums / 10) || 1
 				if (res.data.length == 0) {
 					this.forbidden = true
 				} else {
@@ -249,8 +211,10 @@
 				}
 			},
 			next() { //下一页
-				this.page++
-				this.historylist()
+				if (this.page < this.pagesum) {
+					this.page++
+					this.historylist()
+				}
 			},
 			clickLeft() {
 				uni.navigateBack({
@@ -346,6 +310,7 @@
 		box-shadow: 0 0 10rpx #bcb9ca;
 		padding-top: 20rpx;
 		height: 550rpx;
+
 		.canvastishi {
 			font-size: 32rpx;
 			position: absolute;
@@ -353,6 +318,24 @@
 			left: 50%;
 			margin-left: -64rpx;
 			margin-top: -21rpx;
+
+			.dataloading:after {
+				overflow: hidden;
+				display: inline-block;
+				vertical-align: bottom;
+				animation: ellipsis 2s infinite;
+				content: "\2026";
+			}
+
+			@keyframes ellipsis {
+				from {
+					width: 2px;
+				}
+
+				to {
+					width: 15px;
+				}
+			}
 		}
 
 		.shuju_one_title {
@@ -363,7 +346,7 @@
 			.tltle_text {
 				width: 25%;
 				border: 2rpx solid #B2B2B2;
-				color: #B2B2B2;
+				color: #57c878;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -372,8 +355,9 @@
 
 			.title_text_color {
 				width: 25%;
-				border: 2rpx solid #28AE4F;
-				color: #28AE4F;
+				border: 2rpx solid #57c878;
+				background-color: #57c878;
+				color: #fff;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -388,7 +372,7 @@
 		left: 5%;
 		width: 160rpx;
 		height: 50rpx;
-		background-color: #28AE4F;
+		background-color: #57c878;
 		color: #FFFFFF;
 		line-height: 50rpx;
 		text-align: center;
@@ -424,7 +408,6 @@
 					text-align: center;
 					height: 52rpx;
 					line-height: 52rpx;
-					border: 2rpx solid #F1F1F1;
 				}
 
 				.th:first-child,
@@ -432,6 +415,15 @@
 					width: 300rpx;
 				}
 			}
+
+			.tr:nth-child(2n-1) {
+				background-color: #f5fff8;
+			}
+
+			.tr:first-child {
+				background-color: #57c878;
+				color: #fff;
+			}
 		}
 
 		.pagenumber {
@@ -444,7 +436,7 @@
 				line-height: 50rpx;
 				font-size: 26rpx;
 				text-align: center;
-				background-color: #17BB89;
+				background-color: #57c878;
 				color: #FFFFFF;
 			}
 

+ 36 - 3
pages/environment/equipment.vue

@@ -36,7 +36,7 @@
 				</view>
 			</view>
 			<view class="realtime">
-				<p class="realtime_title"><span v-if="realtimeTF">实时数据</span><span v-else>实时数据(暂无数据)</span></p>
+				<p class="realtime_title"><span>实时数据</span></p>
 				<view class="realtime_text">
 					<view class="realtime_text_item">
 						<view class="realtime_text_item_info" v-for="(item,index) in olddata.conf" :key="index" v-if="olddata.dat[index][1]" @click="oneday(item,index)">
@@ -51,6 +51,12 @@
 						</view>
 					</view>
 				</view>
+				<view class="realtime_tishi" v-if="!realtimeTF && !dataloadingtf">
+					暂无数据
+				</view>
+				<view class="realtime_tishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
+				</view>
 			</view>
 		</view>
 		<u-modal v-model="show" :title-style="{color: 'red'}" :mask-close-able="true" title="24小时数据">
@@ -98,7 +104,8 @@
 				onedatasMaxtime:"",
 				onedatasMintime:"",
 				tishiTF:false,
-				realtimeTF:false
+				realtimeTF:false,//暂无数据提示
+				dataloadingtf:true,//加载中提示
 			}
 		},
 		methods: {
@@ -134,6 +141,7 @@
 			async onehistory() { //设备列表
 				var  newtime = +new Date()/1000
 				var  oldtime = newtime-24*60*60
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=weather.weather.qxz_data_chart',
 					data: {
@@ -142,6 +150,7 @@
 						end: parseInt(newtime)
 					}
 				})
+				this.dataloadingtf =false
 				this.onedatas = res.data
 				console.log(this.onedatas)
 			},
@@ -402,7 +411,31 @@
 			width: 90%;
 			margin: 0 auto;
 		}
-
+		.dataloading:after {
+			overflow: hidden;
+			display: inline-block;
+			vertical-align: bottom;
+			animation: ellipsis 2s infinite;
+			content: "\2026";
+		}
+		
+		@keyframes ellipsis {
+			from {
+				width: 2px;
+			}
+		
+			to {
+				width: 15px;
+			}
+		}
+		
+		.realtime_tishi {
+			width: 90%;
+			margin: 0 auto;
+			text-align: center;
+			font-size: 32rpx;
+			padding-top: 40rpx;
+		}
 		.realtime_text {
 			width: 90%;
 			margin: 0 auto;

+ 345 - 0
pages/environment/gsequipment.vue

@@ -0,0 +1,345 @@
+<template>
+	<view>
+		<view class="status_bar"></view>
+		<view class="" style="position: relative;top: 44px;">
+			<view style="position: fixed;z-index: 100;width: 100%;">
+				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="设备详情"></uni-nav-bar>
+			</view>
+			<view class="info">
+				<view class="info_item">
+					<image src="http://www.hnyfwlw.com:8006/bigdata_app/image/cb/onBg.png" mode="" class="bgi"></image>
+					<p style="font-size: 32rpx;" @click="copy(eqinfo.device_id)">设备 ID:{{eqinfo.device_id}}
+						<image src="http://www.hnyfwlw.com:8006/bigdata_app/image/environment/fuzhi.png" mode=""
+							class="tishi"></image>
+					</p>
+					<p>设备名称:{{eqinfo.device_name||"无"}}</p>
+					<p>最近上报时间:<span v-if="eqinfo.uptime">{{eqinfo.uptime|timeFormat()}}</span><span
+							v-else>{{eqinfo.addtime|timeFormat()}}</span></p>
+					<p>地址:{{city}}</p>
+					<p @click="setlongfun('')">
+						<text space="emsp">设置步长</text>
+						<u-icon name="edit-pen" color="#f0ad4e" size="28"></u-icon>
+					</p>
+				</view>
+			</view>
+			<u-modal v-model="modalshow" @confirm="confirm" show-cancel-button>
+				<view class="modalbox">
+					<p>设置步长:</p>
+					<input type="number" v-model="stepsize" class="uinput" placeholder="请输入步长" />
+					<p>cm</p>
+				</view>
+			</u-modal>
+			<view class="newdatas">
+				<view class="newdatas_title">
+					<span>实时数据</span>
+					<p @click="tohistory">历史数据>>></p>
+				</view>
+				<view class="newdatas_air">
+					<view class="newdatas_air_box">
+						<view class="imgbox">
+							<image src="http://www.hnyfwlw.com:8006//bigdata_app/image/environment/tubular/daqi.png"
+								mode="" class="img"></image>
+						</view>
+						<view class="infobox">
+							<p>大气压强</p>
+							<p>{{newdataobj.atm}}Pa</p>
+						</view>
+					</view>
+					<view class="newdatas_air_box">
+						<view class="imgbox">
+							<image src="http://www.hnyfwlw.com:8006//bigdata_app/image/environment/tubular/kqs.png"
+								mode="" class="img"></image>
+						</view>
+						<view class="infobox">
+							<p>空气湿度</p>
+							<p>{{newdataobj.ats}}%RH</p>
+						</view>
+					</view>
+					<view class="newdatas_air_box">
+						<view class="imgbox">
+							<image src="http://www.hnyfwlw.com:8006//bigdata_app/image/environment/tubular/kqw.png"
+								mode="" class="img"></image>
+						</view>
+						<view class="infobox">
+							<p>空气温度</p>
+							<p>{{newdataobj.at}}℃</p>
+						</view>
+					</view>
+				</view>
+				<view class="newdatas_land" v-for="item,index in newdataobj.temp" :key="index">
+					<p class="newdatas_land_title">{{newdataobj.topic * (index+1)}}cm</p>
+					<view class="newdatas_land_info">
+						<view class="newdatas_land_box">
+							<view class="imgbox">
+								<image
+									:src="'http://www.hnyfwlw.com:8006//bigdata_app/image/environment/tubular/trs'+(index+1)+'.png'"
+									mode="" class="img"></image>
+							</view>
+							<view class="infobox">
+								<p>土壤湿度</p>
+								<p>{{newdataobj.swc[index]}}%RH</p>
+							</view>
+						</view>
+						<view class="newdatas_land_box">
+							<view class="imgbox">
+								<image
+									:src="'http://www.hnyfwlw.com:8006//bigdata_app/image/environment/tubular/trw'+(index+1)+'.png'"
+									mode="" class="img"></image>
+							</view>
+							<view class="infobox">
+								<p>土壤温度</p>
+								<p>{{newdataobj.temp[index]}}℃</p>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				eqinfo: {},
+				city: "",
+				modalshow: false, //设置步长弹框,
+				stepsize: "", //步长值
+				newdataobj: {}, //实时数据
+			}
+		},
+		methods: {
+			reverseGeocode(lat, lng) {
+				uni.request({
+					type: "GET",
+					url: "https://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + lng + "," + lat +
+						"&key=27273b81090f78759e4057f94474516f&radius=1000&extensions=all",
+					dataType: "json",
+					complete: ress => {
+						console.log(ress)
+						// this.city = ress.data.regeocode.formatted_address
+						if (ress.data.regeocode.formatted_address.length == 0) {
+							this.city = "--"
+						} else {
+							this.city = ress.data.regeocode.formatted_address
+						}
+					}
+				});
+			},
+			// weather.weather.nd_topic_change 设置 获取步长
+			async setlongfun(stepsize) { //设备列表
+				this.modalshow = !this.modalshow
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=weather.weather.nd_topic_change',
+					data: {
+						device_id: this.eqinfo.device_id,
+						topic: stepsize
+					}
+				})
+				this.stepsize = res.topic
+				if (stepsize) {
+					uni.showToast({
+						title: "设置成功",
+						icon: "none"
+					})
+				}
+			},
+			//weather.weather.nd_status 实时数据
+			async newdatafun() { //设备列表
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=weather.weather.nd_status',
+					data: {
+						device_id: this.eqinfo.device_id,
+					}
+				})
+				this.newdataobj = res
+				this.newdataobj.temp = this.newdataobj.temp.split(",")
+				this.newdataobj.swc = this.newdataobj.swc.split(",")
+				console.log(this.newdataobj)
+			},
+			confirm() {
+				this.modalshow = !this.modalshow
+				this.setlongfun(this.stepsize)
+			},
+			clickLeft() {
+				uni.navigateTo({
+					url: "./index"
+				})
+			},
+			tohistory() {
+				uni.navigateTo({
+					url: "./gshistory?id="+ this.eqinfo.device_id
+				})
+			},
+			copy(item) {
+				uni.setClipboardData({
+					data: item,
+					success: function() {
+						console.log('success');
+					}
+				});
+			},
+		},
+		onLoad(option) {
+			this.eqinfo = JSON.parse(option.shebei)
+			this.reverseGeocode(this.eqinfo.lat, this.eqinfo.lng)
+			this.newdatafun()
+			console.log(this.eqinfo)
+		}
+	}
+</script>
+
+<style lang="scss">
+	.info {
+		width: 100%;
+		position: absolute;
+		top: 44px;
+
+		.info_item {
+			width: 90%;
+			margin: 0 auto;
+			// height: 290rpx;
+			padding: 26rpx 50rpx;
+			position: relative;
+			box-sizing: border-box;
+
+			.bgi {
+				width: 100%;
+				height: 100%;
+				position: absolute;
+				top: 0;
+				left: 0;
+				z-index: -1;
+			}
+
+			p {
+				font-size: 24rpx;
+				color: #FFFFFF;
+				margin-bottom: 10rpx;
+
+				.tishi {
+					width: 30rpx;
+					height: 30rpx;
+					margin: 0rpx 0 0 20rpx;
+				}
+			}
+		}
+	}
+
+	.modalbox {
+		display: flex;
+		padding: 20px 10px;
+
+		.uinput {
+			width: 50%;
+			border-radius: 22px;
+			background-color: #f4f4f4;
+			margin: 0 10px;
+			text-indent: 1rem;
+			font-size: 28rpx;
+		}
+	}
+
+	.newdatas {
+		width: 100%;
+		position: absolute;
+		top: 195px;
+
+		.newdatas_title {
+			width: 90%;
+			margin: 0 auto;
+			display: flex;
+			justify-content: space-between;
+			height: 50rpx;
+			line-height: 50rpx;
+
+			span,p {
+				font-size: 13px;
+			}
+
+			span:first-child {
+				font-size: 16px;
+				font-weight: 700;
+			}
+		}
+
+		.newdatas_air {
+			width: 90%;
+			margin: 0 auto 20rpx;
+			display: flex;
+			justify-content: space-between;
+			flex-wrap: wrap;
+
+			.newdatas_air_box {
+				width: 48%;
+				padding: 20rpx;
+				box-sizing: border-box;
+				box-shadow: 0 0 10rpx #bcb9ca;
+				margin-top: 20rpx;
+				display: flex;
+
+				.imgbox {
+					width: 60rpx;
+					height: 60rpx;
+					margin: 16rpx 30rpx 0rpx 20rpx;
+
+					.img {
+						width: 60rpx;
+						height: 60rpx;
+					}
+				}
+
+				.infobox {
+					font-size: 28rpx;
+
+					p {
+						margin-bottom: 10rpx;
+					}
+				}
+			}
+		}
+
+		.newdatas_land {
+			width: 90%;
+			margin: 0 auto 20rpx;
+			.newdatas_land_title{
+				font-size: 28rpx;
+			}
+			.newdatas_land_info {
+				width: 100%;
+				display: flex;
+				justify-content: space-between;
+				flex-wrap: wrap;
+
+				.newdatas_land_box {
+					width: 48%;
+					padding: 20rpx;
+					box-sizing: border-box;
+					box-shadow: 0 0 10rpx #bcb9ca;
+					margin-top: 20rpx;
+					display: flex;
+
+					.imgbox {
+						width: 60rpx;
+						height: 60rpx;
+						margin: 16rpx 30rpx 0rpx 20rpx;
+
+						.img {
+							width: 60rpx;
+							height: 60rpx;
+						}
+					}
+
+					.infobox {
+						font-size: 28rpx;
+
+						p {
+							margin-bottom: 10rpx;
+						}
+					}
+				}
+			}
+		}
+	}
+</style>

+ 410 - 0
pages/environment/gshistory.vue

@@ -0,0 +1,410 @@
+<template>
+	<view>
+		<view class="status_bar"></view>
+		<view class="" style="position: relative;top: 44px;">
+			<view style="position: fixed;z-index: 10000000;width: 100%;background-color: #000000;">
+				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="历史数据"></uni-nav-bar>
+			</view>
+		</view>
+		<view class="selecttimes" @click="tiemshow=!tiemshow">
+			<view class="timesbox">
+				<image
+					:src="'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/1acfe2751c01d3786cdc49b83d7e505.png'"
+					mode=""></image>
+				<p>{{timetab(begintime)}}</p>
+				<p class="or">~</p>
+				<p>{{timetab(end)}}</p>
+				<u-icon name="rili" custom-prefix="custom-icon" class="icon"></u-icon>
+			</view>
+			<u-calendar v-model="tiemshow" mode="range" @change="tiemchange"></u-calendar>
+		</view>
+		<view class="shuju_one">
+			<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
+				暂无数据
+			</view>
+			<view class="canvastishi" v-if="dataloadingtf">
+				<p class="dataloading">加载中</p>
+			</view>
+			<canvas v-show="!tiemshow" canvas-id="canvasColumnA" id="canvasColumnA" class="charts" @touchstart="touchLineA($event)"
+				@touchmove="moveLineA($event)" @touchend="touchEndLineA($event)" disable-scroll=true
+				:style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
+		</view>
+		<view class="condition">
+			<scroll-view scroll-top="0" scroll-x="true" class="scroll-X">
+				<table class="table">
+					<tr class="tr">
+						<th class="th" v-for="(item,index) in thdata" :key="'a'+index">{{item}}</th>
+					</tr>
+					<tr class="tr" v-for="(items,indexs) in historylistdata" :key="'b'+indexs" v-if="!forbidden">
+						<td class="td">{{items.uptime|timeFormat()}}</td>
+						<td class="td">{{items.ats}}</td>
+						<td class="td">{{items.at}}</td>
+						<td class="td" v-for="(item,index) in items.temp" :key="'c'+index">{{item}}</td>
+						<td class="td" v-for="(item,index) in items.swc" :key="'d'+index">{{item}}</td>
+						<td class="td">{{items.atm}}</td>
+					</tr>
+					<tr class="tr" v-if="forbidden">
+						<td class="td" v-for="item in 13">暂无数据</td>
+					</tr>
+				</table>
+			</scroll-view>
+			<view class="pagenumber">
+				<button @click="prev">上一页</button>
+				<view class="pagenumber_page">
+					第 {{page}} 页
+				</view>
+				<view class="pagenumber_page">
+					共 {{pagesum}} 页
+				</view>
+				<button @click="next">下一页</button>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import uCharts from '../../components/js_sdk/u-charts/u-charts/u-charts.js';
+	var canvaColumnA = null;
+	export default {
+		data() {
+			return {
+				tiemshow: false, //时间筛选弹框
+				begintime: "", //开始时间
+				end: "", //结束时间
+				dataloadingtf: true,
+				canvastishiTF: false,
+				device_id: '', //设备ID
+				thdata: ["上传时间", "空气湿度(%RH)", "空气温度(℃)", "10cm土壤温度(%RH)", "20cm土壤温度(%RH)", "30cm土壤温度(%RH)", "10cm土壤湿度(%RH)", "20cm土壤湿度(%RH)", "30cm土壤湿度(%RH)",
+					"大气压强(Pa)"
+				], //表格抬头
+				forbidden: false,
+				historylistdata: [], //历史数据
+				pagesum: 1,
+				page: 1,
+				cWidth: '',
+				cHeight: '',
+				pixelRatio: 1,
+			}
+		},
+		methods: {
+			tiemchange(e) { //切换时间
+				this.begintime = parseInt(+new Date(e.startDate) / 1000)
+				this.end = parseInt(+new Date(e.endDate) / 1000)
+				this.histprydatas()
+			},
+			timetab(e) { //时间转换
+				e = new Date(e * 1000)
+				var year = e.getFullYear()
+				var month = e.getMonth() + 1 < 10 ? "0" + (e.getMonth() + 1) : e.getMonth() + 1
+				var day = e.getDate() < 10 ? "0" + e.getDate() : e.getDate()
+				var time = year + "/" + month + "/" + day
+				return time
+			},
+			async histprydatas() { //历史数据
+				this.dataloadingtf = true
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=weather.weather.nd_data',
+					data: {
+						device_id: this.device_id,
+						page: this.page,
+						begin: this.begintime,
+						end: this.end
+					}
+				})
+				this.dataloadingtf = false
+				console.log(res.nums)
+				this.pagesum = Math.ceil(res.nums / 10) || 1
+				this.historylistdata = res.dat_list
+				for (var i = 0; i < this.historylistdata.length; i++) {
+					this.historylistdata[i].temp = this.historylistdata[i].temp.split(",")
+					this.historylistdata[i].swc = this.historylistdata[i].swc.split(",")
+				}
+				var arr1 = []
+				var arr2 = []
+				var xtitle = []
+				var obj = [{
+					name: '空气温度',
+					data: [],
+					color: '#00E29D'
+				}, {
+					name: '空气湿度',
+					data: [],
+					color: '#6CBBFF'
+				}]
+				var arr3 = []
+				var k = 0
+				for (var i = 0; i < res.dat_char.length; i++) {
+					var times = new Date(res.dat_char[i].uptime * 1000)
+					xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times
+						.getMinutes())
+					arr1.unshift(res.dat_char[i].at == "" ? "0" : res.dat_char[i].at) //空气温度
+					arr2.unshift(res.dat_char[i].ats == "" ? "0" : res.dat_char[i].ats) //空气湿度
+					res.dat_char[i].temp = res.dat_char[i].temp.split(",")
+					res.dat_char[i].swc = res.dat_char[i].swc.split(",")
+					for (var j = 0; j < res.dat_char[i].temp.length; j++) {
+						arr3.unshift(res.dat_char[i].temp[j] == "" ? "0" : res.dat_char[i].temp[j]) //10cm土壤温度
+					}
+					res.dat_char[i].temp.forEach((items, indexs) => {
+						var tempdata = [];
+						var tempdatas = [];
+						tempdata.push(Number(items));
+						tempdatas.push(Number(res.dat_char[i].swc[indexs]));
+						var temparrs = {
+							name: 10 + indexs * res.topic + "cm土壤温度",
+							data: tempdata,
+						};
+						var temparr = {
+							name: 10 + indexs * res.topic + "cm土壤湿度",
+							data: tempdatas,
+						};
+						obj.push(temparr);
+						obj.push(temparrs);
+					})
+				}
+				obj[0].data = arr1
+				obj[1].data = arr2
+				var listArr = [];
+				obj.forEach(function(el, index) {
+					for (var i = 0; i < listArr.length; i++) {
+						// 对比相同的字段key,相同放入对应的数组中
+						if (listArr[i].name == el.name && el.data !== undefined) {
+							listArr[i].data.push(el.data[0]);
+							return;
+						}
+					}
+					// 第一次对比没有参照,放入参照
+					listArr.push({
+						name: el.name,
+						data: el.data,
+					});
+				});
+				console.log(listArr)
+				if(listArr.length==0){
+					this.canvastishiTF = false
+				}else{
+					this.canvastishiTF = true
+				}
+				this.showColumn("canvasColumnA", xtitle, listArr)
+				// console.log(this.historylistdata)
+			},
+			prev() { //上一页
+				if (this.page > 1) {
+					this.page--
+					this.histprydatas()
+				}
+			},
+			next() { //下一页
+				if (this.page < this.pagesum) {
+					this.page++
+					this.histprydatas()
+				}
+			},
+			clickLeft() {
+				uni.navigateBack({
+					delta: 1
+				})
+			},
+			showColumn(id, xtitle, xinfo) {
+				var _self = this
+				canvaColumnA = new uCharts({
+					canvasId: id,
+					type: 'line',
+					legend: {
+						position: "top"
+					},
+					fontSize: 11,
+					background: '#FFFFFF',
+					pixelRatio: 1,
+					animation: true,
+					dataLabel: false,
+					categories: xtitle,
+					series: xinfo,
+					enableScroll: true, //开启图表拖拽功能
+					xAxis: {
+						disableGrid: true,
+						type: 'grid',
+						gridType: 'dash',
+						itemCount: 4, //x轴单屏显示数据的数量,默认为5个
+						scrollShow: true, //新增是否显示滚动条,默认false
+						// scrollAlign: 'left', //滚动条初始位置
+						scrollBackgroundColor: '#F7F7FF', //默认为 #EFEBEF
+						scrollColor: '#DEE7F7', //默认为 #A6A6A6
+					},
+					yAxis: {},
+					width: _self.cWidth * 1,
+					height: _self.cHeight * 1,
+					extra: {
+						line: {
+							type: 'curve'
+						}
+					}
+				});
+			},
+			touchLineA(e) {
+				console.log(e)
+				canvaColumnA.scrollStart(e);
+			},
+			moveLineA(e) {
+				canvaColumnA.scroll(e);
+			},
+			touchEndLineA(e) {
+				canvaColumnA.scrollEnd(e);
+				//下面是toolTip事件,如果滚动后不需要显示,可不填写
+				canvaColumnA.showToolTip(e, {
+					format: function(item, category) {
+						return category + ' ' + item.name + ':' + item.data
+					}
+				});
+			},
+		},
+		onLoad(option) {
+			this.cWidth = uni.upx2px(650);
+			this.cHeight = uni.upx2px(500);
+			this.device_id = option.id
+			this.end = parseInt(+new Date() / 1000)
+			this.begintime = parseInt(this.end - 24 * 60 * 60)
+			this.histprydatas()
+		}
+	}
+</script>
+
+<style lang="scss">
+	.selecttimes {
+		width: 90%;
+		box-shadow: 0 0 10rpx #bcb9ca;
+		padding: 10rpx 20rpx;
+		box-sizing: border-box;
+		position: relative;
+		margin: 0 auto;
+		top: 200rpx;
+		font-size: 28rpx;
+
+		.timesbox {
+			display: flex;
+			justify-content: space-around;
+
+			image {
+				width: 30rpx;
+				height: 30rpx;
+				margin-top: 6rpx;
+			}
+
+			.icon {
+				color: #949494;
+				text-align: right;
+				margin-left: 30rpx;
+
+			}
+		}
+
+		/deep/.u-calendar__action {
+			display: flex;
+			justify-content: space-around;
+
+			.u-calendar__action__text {
+				line-height: 25px;
+			}
+		}
+	}
+
+	.shuju_one {
+		position: absolute;
+		top: 140px;
+		width: 90%;
+		left: 5%;
+		box-shadow: 0 0 10rpx #bcb9ca;
+		padding-top: 20rpx;
+		height: 550rpx;
+
+		.canvastishi {
+			font-size: 32rpx;
+			position: absolute;
+			top: 50%;
+			left: 50%;
+			margin-left: -64rpx;
+			margin-top: -21rpx;
+
+			.dataloading:after {
+				overflow: hidden;
+				display: inline-block;
+				vertical-align: bottom;
+				animation: ellipsis 2s infinite;
+				content: "\2026";
+			}
+
+			@keyframes ellipsis {
+				from {
+					width: 2px;
+				}
+
+				to {
+					width: 15px;
+				}
+			}
+		}
+	}
+
+	.condition {
+		position: absolute;
+		top: 437px;
+		display: flex;
+		flex-wrap: wrap;
+		width: 90%;
+		left: 5%;
+		box-shadow: 0 0 10rpx #bcb9ca;
+		margin-bottom: 30rpx;
+
+		.scroll-X {
+			width: 95%;
+			margin: 20rpx auto;
+
+			.tr {
+				display: flex;
+				overflow: hidden;
+
+				.th,
+				.td {
+					display: inline-block;
+					padding: 5rpx;
+					width: 300rpx;
+					text-align: center;
+					height: 52rpx;
+					line-height: 52rpx;
+					border: 2rpx solid #F1F1F1;
+				}
+			}
+
+			.tr:nth-child(2n-1) {
+				background-color: #f5fff8;
+			}
+
+			.tr:first-child {
+				background-color: #57c878;
+				color: #fff;
+			}
+		}
+
+		.pagenumber {
+			display: flex;
+			margin: 20rpx auto;
+
+			button {
+				width: 150rpx;
+				height: 50rpx;
+				line-height: 50rpx;
+				font-size: 26rpx;
+				text-align: center;
+				background-color: #57c878;
+				color: #FFFFFF;
+			}
+
+			.pagenumber_page {
+				width: 100rpx;
+				height: 50rpx;
+				line-height: 50rpx;
+				font-size: 26rpx;
+				text-align: center;
+			}
+		}
+	}
+</style>

+ 140 - 149
pages/environment/history.vue

@@ -15,40 +15,30 @@
 							</p>
 						</view>
 					</view>
-					<u-picker v-model="pickertfone" mode="selector" @confirm="confirmFun" :default-selector="[indexone]" :range="titletext"></u-picker>
-					<view class="canvastishi" v-if="!canvastishiTF">
+					<u-picker v-model="pickertfone" mode="selector" @confirm="confirmFun" :default-selector="[indexone]"
+						:range="titletext"></u-picker>
+					<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
 						暂无数据
 					</view>
-					<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts" @touchstart="touchLineA($event)"
-					 @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)" disable-scroll=true :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
+					<view class="canvastishi" v-if="dataloadingtf">
+						<p class="dataloading">加载中</p>
+					</view>
+					<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts"
+						@touchstart="touchLineA($event)" @touchmove="moveLineA($event)"
+						@touchend="touchEndLineA($event)" disable-scroll=true
+						:style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
 				</view>
-				<view class="selecttimes">
-					<view class="newtimes">
-						<view class="newtimes_state" @click="pickshow = !pickshow">
-							<view class="oldtimes_left">
-								<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/prevention/841f87bfd8abb1b09610fa0789f9d8e.png'" mode=""></image>
-								开始时间:{{this.begintime|timeFormat()}}
-							</view>
-							<view class="oldtimes_left">
-								<u-icon name="arrow-down"></u-icon>
-							</view>
-							<u-picker mode="time" v-model="pickshow" :params="params" @confirm="pickone"></u-picker>
-						</view>
-						<view class="newtimes_end" @click="picktwoshow = !picktwoshow">
-							<view class="oldtimes_left">
-								<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/prevention/1acfe2751c01d3786cdc49b83d7e505.png'" mode=""></image>
-								结束时间:{{this.end|timeFormat()}}
-							</view>
-							<view class="oldtimes_left">
-								<u-icon name="arrow-down"></u-icon>
-							</view>
-							<u-picker mode="time" v-model="picktwoshow" :params="params" @confirm="picktwo"></u-picker>
-						</view>
-						<p class="tishi" v-if="tishiTF">请选择正确的结束时间</p>
-						<view class="btnser" @click="serter">
-							搜 索
-						</view>
+				<view class="selecttimes" @click="tiemshow=!tiemshow">
+					<view class="timesbox">
+						<image
+							:src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/prevention/1acfe2751c01d3786cdc49b83d7e505.png'"
+							mode=""></image>
+						<p>{{timetab(begintime)}}</p>
+						<p class="or">~</p>
+						<p>{{timetab(end)}}</p>
+						<u-icon name="rili" custom-prefix="custom-icon" class="icon"></u-icon>
 					</view>
+					<u-calendar v-model="tiemshow" mode="range" @change="tiemchange"></u-calendar>
 				</view>
 				<view class="condition" v-if="scrollTF">
 					<scroll-view scroll-top="0" scroll-x="true" class="scroll-X">
@@ -56,11 +46,15 @@
 						<table class="table" :style="{width:300+240*datalength+'rpx'}">
 							<tr class="tr">
 								<th class="th">日期</th>
-								<th class="th" v-for="key,index in historydatas.conf" :key="index" v-if="key">{{key.replace("#","(")+")"}}</th>
+								<th class="th" v-for="key,index in historydatas.conf" :key="index" v-if="key">
+									{{key.replace("#","(")+")"}}
+								</th>
 							</tr>
 							<tr class="tr" v-for="(items,index) in historydatas.data" :key="index" v-if="!forbidden">
 								<td class="td">{{items.time|timeFormat()}}</td>
-								<td class="td" v-for="item,indexss in datalength" :key="indexss">{{parseFloat(items.dat["e"+(indexss+1)])==-99.99?"N/A":parseFloat(items.dat["e"+(indexss+1)])}}</td>
+								<td class="td" v-for="item,indexss in datalength" :key="indexss">
+									{{parseFloat(items.dat["e"+(indexss+1)])==-99.99?"N/A":parseFloat(items.dat["e"+(indexss+1)])}}
+								</td>
 							</tr>
 							<tr class="tr" v-if="forbidden">
 								<td class="td" v-for="item in 10">暂无数据</td>
@@ -93,32 +87,23 @@
 				cWidth: '400',
 				cHeight: '400',
 				pixelRatio: 1,
-				canvastishiTF: false,
+				canvastishiTF: false, //暂无数据提示
+				dataloadingtf: true, //加载中提示
 				id: "",
 				begintime: '', //开始时间
 				end: '', //结束时间
-				titletext: [],//折线图数据切换列表数据
+				titletext: [], //折线图数据切换列表数据
 				titleidnex: 0,
-				pickshow: false, //选择时间一
-				picktwoshow: false, //选择时间二
-				params: { //时间格式
-					year: true,
-					month: true,
-					day: true,
-					hour: true,
-					minute: true,
-					second: false
-				},
-				tishiTF: false, //提示
 				historydatas: [],
 				page: 1,
 				forbidden: false,
-				pagesum: null,
-				datalength:0,
-				scrollTF:true,
-				indexone:0,//折线图数据切换列表下标
-				pickertfone:false,//折线图数据切换列表
-				chartdata:{}//折线图数据
+				pagesum: 1,
+				datalength: 0,
+				scrollTF: true,
+				indexone: 0, //折线图数据切换列表下标
+				pickertfone: false, //折线图数据切换列表
+				chartdata: {}, //折线图数据
+				tiemshow: false, //日期选择
 			}
 		},
 		methods: { //weather.weather.qxz_detail
@@ -134,19 +119,19 @@
 				})
 				this.historydatas = res
 				console.log(res)
-				this.datalength=0
-				for(var key in res.conf){
-					if(res.conf[key]!=""){
+				this.datalength = 0
+				for (var key in res.conf) {
+					if (res.conf[key] != "") {
 						this.datalength++
 					}
 				}
 				console.log(this.datalength)
-				if(this.datalength==0){
+				if (this.datalength == 0) {
 					this.scrollTF = false
-				}else{
+				} else {
 					this.scrollTF = true
 				}
-				this.pagesum = Math.ceil(res.nums / 10) + 1
+				this.pagesum = Math.ceil(res.nums / 10) || 1
 				if (res.data.length == 0) {
 					this.forbidden = true
 				} else {
@@ -154,6 +139,7 @@
 				}
 			},
 			async historydata(datas) { //上传时间 //折线图
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=weather.weather.qxz_data_chart',
 					data: {
@@ -162,6 +148,7 @@
 						end: parseInt(this.end)
 					}
 				})
+				this.dataloadingtf = false
 				console.log(res)
 				this.chartdata = res
 				if (res.data.length == 0) {
@@ -169,71 +156,52 @@
 				} else {
 					this.canvastishiTF = true
 					for (var key in res.conf) {
-						if(res.conf[key]!=""){
+						if (res.conf[key] != "") {
 							this.titletext.push(res.conf[key])
 						}
 					}
-					this.conflist(res,"e1")
+					this.conflist(res, "e1")
 				}
 			},
-			conflist(res,eindex){
+			conflist(res, eindex) {
 				var xtitle = []
 				var linearr = []
 				for (var i = 0; i < res.data.length; i++) {
 					var times = new Date(res.data[i].time * 1000)
-					xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times.getMinutes())
+					xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times
+						.getMinutes())
 				}
 				var obj = {}
 				obj.name = res.conf[eindex]
 				var arr = []
-					for (var i = 0; i < res.data.length; i++) {
-						if (parseFloat(res.data[i].dat[eindex]) != -99.99) {
-							arr.push(parseFloat(res.data[0].dat[eindex]))
-						}
+				for (var i = 0; i < res.data.length; i++) {
+					if (parseFloat(res.data[i].dat[eindex]) != -99.99) {
+						arr.push(parseFloat(res.data[0].dat[eindex]))
 					}
+				}
 				obj.data = arr
 				if (obj.name) {
-						linearr.push(obj)
-					}
+					linearr.push(obj)
+				}
 				this.canvastishiTF = linearr.some((item) => {
 					return item.data.length != 0;
 				})
 				console.log(this.canvastishiTF)
 				this.showColumn("canvasColumnA", xtitle, linearr)
 			},
-			confirmFun(index){
+			confirmFun(index) {
 				console.log(index)
 				this.indexone = index[0]
-				var str = 'e'+(index[0]+1)
+				var str = 'e' + (index[0] + 1)
 				console.log(str)
-				this.conflist(this.chartdata,str)
-			},
-			pickone(e) { //开始时间
-				this.begintime = +new Date(e.year, e.month - 1, e.day, e.hour, e.minute) / 1000
-				if (this.newtime < this.oldtime) {
-					this.tishiTF = true
-				} else {
-					this.tishiTF = false
-				}
-			},
-			picktwo(e) { //结束时间
-				this.end = +new Date(e.year, e.month - 1, e.day, e.hour, e.minute) / 1000
-				if (this.newtime < this.oldtime) {
-					this.tishiTF = true
-				} else {
-					this.tishiTF = false
-				}
+				this.conflist(this.chartdata, str)
 			},
-			serter() {
-				if (this.tishiTF == false) {
-					this.historydata(this.id)
-					this.listhistorydata(this.id)
-					uni.showToast({
-						title: '搜索成功',
-						duration: 2000
-					});
-				}
-				
+			tiemchange(e) {
+				console.log(e)
+				this.begintime = +new Date(e.startDate) / 1000
+				this.end = +new Date(e.endDate) / 1000 + 16 * 60 * 60
+				this.historydata(this.id)
+				this.listhistorydata(this.id)
 			},
 			prev() { //上一页
 				if (this.page > 1) {
@@ -242,8 +210,10 @@
 				}
 			},
 			next() { //下一页
-				this.page++
-				this.listhistorydata(this.id)
+				if (this.page < this.pagesum) {
+					this.page++
+					this.listhistorydata(this.id)
+				}
 			},
 			clickLeft() {
 				uni.navigateBack({
@@ -301,6 +271,14 @@
 					}
 				});
 			},
+			timetab(e) {
+				e = new Date(e * 1000)
+				var year = e.getFullYear()
+				var month = e.getMonth() + 1 < 10 ? "0" + (e.getMonth() + 1) : e.getMonth() + 1
+				var day = e.getDate() < 10 ? "0" + e.getDate() : e.getDate()
+				var time = year + "/" + month + "/" + day
+				return time
+			}
 		},
 		onLoad(option) {
 			this.cWidth = uni.upx2px(650);
@@ -328,8 +306,9 @@
 			position: relative;
 			box-shadow: 0 0 10rpx #bcb9ca;
 			padding-top: 20px;
-			.charts{
-			}
+
+			.charts {}
+
 			.canvastishi {
 				font-size: 32rpx;
 				position: absolute;
@@ -337,20 +316,40 @@
 				left: 50%;
 				margin-left: -64rpx;
 				margin-top: -21rpx;
+
+				.dataloading:after {
+					overflow: hidden;
+					display: inline-block;
+					vertical-align: bottom;
+					animation: ellipsis 2s infinite;
+					content: "\2026";
+				}
+
+				@keyframes ellipsis {
+					from {
+						width: 2px;
+					}
+
+					to {
+						width: 15px;
+					}
+				}
 			}
+
 			.schedule {
 				display: flex;
 				width: 280rpx;
 				height: 50rpx;
 				border: 2rpx solid #F0F0F0;
 				margin-right: 40rpx;
+
 				.schedule_value {
 					width: 70%;
 					text-align: center;
 					line-height: 50rpx;
 					font-size: 24rpx;
 				}
-			
+
 				.schedule_icon {
 					width: 30%;
 					background-color: #F2F2F2;
@@ -378,7 +377,7 @@
 		.tltle_text {
 			width: 25%;
 			border: 2rpx solid #B2B2B2;
-			color: #B2B2B2;
+			color: #57c878;
 			text-align: center;
 			font-size: 24rpx;
 			height: 50rpx;
@@ -387,8 +386,8 @@
 
 		.title_text_color {
 			width: 25%;
-			border: 2rpx solid #28AE4F;
-			color: #28AE4F;
+			border: 2rpx solid #57c878;
+			color: #fff;
 			text-align: center;
 			font-size: 24rpx;
 			height: 50rpx;
@@ -400,52 +399,24 @@
 		width: 100%;
 		box-shadow: 0 0 10rpx #bcb9ca;
 		margin-top: 20rpx;
+		padding: 10rpx 20rpx;
+		box-sizing: border-box;
 
-		.tishi {
-			width: 90%;
-			margin: 0 auto;
-			color: #f00000;
-			text-align: center;
-			font-size: 24rpx;
-		}
+		.timesbox {
+			display: flex;
+			justify-content: space-around;
 
-		.btnser {
-			width: 90%;
-			margin: 10rpx auto;
-			color: #FFFFFF;
-			text-align: center;
-			font-size: 28rpx;
-			background-color: #58BD4D;
-			border-radius: 20rpx;
-			height: 50rpx;
-			line-height: 50rpx;
-		}
+			image {
+				width: 30rpx;
+				height: 30rpx;
+				margin-top: 6rpx;
+			}
 
-		.newtimes {
-			width: 100%;
-			padding: 20rpx 20rpx;
-			box-sizing: border-box;
+			.icon {
+				color: #949494;
+				text-align: right;
+				margin-left: 30rpx;
 
-			.newtimes_state,
-			.newtimes_end {
-				display: flex;
-				justify-content: space-between;
-				margin-bottom: 20rpx;
-
-				.oldtimes_left {
-					position: relative;
-					padding-left: 36rpx;
-					font-size: 28rpx;
-
-					image {
-						width: 30rpx;
-						height: 30rpx;
-						vertical-align: top;
-						position: absolute;
-						top: 7rpx;
-						left: 0;
-					}
-				}
 			}
 		}
 	}
@@ -460,12 +431,15 @@
 		.scroll-X {
 			width: 95%;
 			margin: 20rpx auto;
-			.table{
+
+			.table {
 				// width: 10420px;
 			}
+
 			.tr {
 				display: flex;
 				overflow: hidden;
+
 				.th,
 				.td {
 					display: inline-block;
@@ -474,7 +448,6 @@
 					text-align: center;
 					height: 52rpx;
 					line-height: 52rpx;
-					border: 2rpx solid #F1F1F1;
 				}
 
 				.th:first-child,
@@ -482,6 +455,15 @@
 					width: 300rpx;
 				}
 			}
+
+			.tr:nth-child(2n-1) {
+				background-color: #f5fff8;
+			}
+
+			.tr:first-child {
+				background-color: #57c878;
+				color: #fff;
+			}
 		}
 
 		.pagenumber {
@@ -494,7 +476,7 @@
 				line-height: 50rpx;
 				font-size: 26rpx;
 				text-align: center;
-				background-color: #17BB89;
+				background-color: #57c878;
 				color: #FFFFFF;
 			}
 
@@ -507,4 +489,13 @@
 			}
 		}
 	}
+
+	/deep/.u-calendar__action {
+		display: flex;
+		justify-content: space-around;
+
+		.u-calendar__action__text {
+			line-height: 25px;
+		}
+	}
 </style>

+ 232 - 38
pages/environment/index.vue

@@ -3,26 +3,56 @@
 		<view class="status_bar"></view>
 		<view class="" style="position: relative;top: 44px;">
 			<view style="position: fixed;z-index: 100;">
-				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="环境监测系统" right-icon="search" @clickRight="clickRight"
-				 size="16"></uni-nav-bar>
+				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="环境监测系统" right-icon="search"
+					@clickRight="clickRight" size="16"></uni-nav-bar>
+				<view class="inputs" :style="{'width':width+'rpx'}">
+					<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp"
+						class="inputbox" :clearable="false" />
+					<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
+				</view>
+			</view>
+			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/environment/1.png'" mode="" class="image">
+			</image>
+			<view class="loading" v-if="loadingtf">
+				<image src="../../static/images/ajax-loader.gif" mode="" class="img"></image>
+			</view>
+			<view class="tab-box">
+				<view v-for="(item,index) in equipArr" :key="item.type" v-if="item.tf" @click="tabClick(index,item.type)" :class="['tab-item',active==index?'active':'']">
+					<text>{{item.name}}</text>
+					<text class="bottom-line"></text>
+				</view>
 			</view>
-			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/environment/1.png'" mode="" class="image"></image>
 			<view class="prevents">
 				<view class="prevents_item" v-for="item,index in eqlistdata" :key="index" @click="eqdetails(item)">
-					<image :src="item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/6.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/7.png'" mode=""
-					 class="prevents_item_img"></image>
-					<view class="prevents_item_top">
-						<p>设备名称:{{item.equip_name==""?"无":item.equip_name}}</p>
-						<p :class="item.is_online==1?'green':'red'" v-text="item.is_online==1?'在线':'离线'"></p>
+					<view class="" v-if="side_type == 5">
+						<image
+							:src="item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/6.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/7.png'"
+							mode="" class="prevents_item_img"></image>
+						<view class="prevents_item_top">
+							<p>设备名称:{{item.equip_name==""?"无":item.equip_name}}</p>
+							<p :class="item.is_online==1?'green':'red'" v-text="item.is_online==1?'在线':'离线'"></p>
+						</view>
+						<view class="prevents_item_bot">
+							<p>设备 ID:{{item.equip_id || item.device_id}}</p>
+							<p>最新上报时间:{{item.uptime|timeFormat()}}</p>
+						</view>
 					</view>
-					<view class="prevents_item_bot">
-						<p>设备 ID:{{item.equip_id}}</p>
-						<p>最新上报时间:{{item.uptime|timeFormat()}}</p>
+					<view class="" v-if="side_type == 15">
+						<image
+							src="http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/6.png"
+							mode="" class="prevents_item_img"></image>
+						<view class="prevents_item_top">
+							<p>设备名称:{{item.device_name==""?"无":item.device_name}}</p>
+						</view>
+						<view class="prevents_item_bot">
+							<p>设备 ID:{{item.device_id}}</p>
+							<p>最新上报时间:{{item.uptime|timeFormat()}}</p>
+						</view>
 					</view>
 				</view>
 			</view>
 		</view>
-		<view class="top">
+		<view class="top" v-if="side_type==5">
 			<view class="backtop" @click="top" v-if="isTop">
 				<image src="../../static/images/1.png" mode="" class="img0"></image>
 			</view>
@@ -45,34 +75,73 @@
 </template>
 
 <script>
+	import {
+		Debounce
+	} from "../../util/anitthro.js"
 	export default {
 		data() {
 			return {
 				page: 1,
 				size: 10,
 				eqlistdata: [],
-				isTop:false,
-				filtrateTF:false,
-				device_status:""
+				isTop: false,
+				filtrateTF: false,
+				device_status: "",
+				width: 0, //顶部搜索栏宽度
+				imports: "", //搜索设备id
+				loadingtf: false,
+				equipArr: [{
+						name: '环境监测',
+						type: 5, //5 环境监测 15 管式墒情
+						list: [],
+						pageIndex: 1,
+						tf:false,
+					}, {
+						name: '管式墒情',
+						type: 15, //5 环境监测 15 管式墒情
+						list: [],
+						pageIndex: 1,
+						tf:false,
+					}
+				],
+				active:0,//tab选中的下标
+				side_type:5,//当前选中的设备类型
 			}
 		},
 		methods: {
-			async eqlist() { //设备列表
+			async eqlist() { //设备列表 环境监测
+				this.loadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=weather.weather.qxz_page',
 					data: {
 						page: this.page,
-						device_status:this.device_status,
-						page_size:10
+						device_status: this.device_status,
+						page_size: 10,
+						device_id: this.imports
 					}
 				})
+				this.loadingtf = false
 				this.eqlistdata = this.eqlistdata.concat(res.ids)
 				console.log(res.ids)
 			},
-			clickRight() {
-				uni.navigateTo({
-					url: "./search"
+			// weather.weather.nd_qxz_page 管式墒情
+			async tubulareqlist() { //设备列表 环境监测
+				this.loadingtf = true
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=weather.weather.nd_qxz_page',
+					data: {
+						page: this.page,
+						device_status: this.device_status,
+						page_size: 10,
+						device_id: this.imports
+					}
 				})
+				this.loadingtf = false
+				this.eqlistdata = this.eqlistdata.concat(res.ids)
+				console.log(res.ids)
+			},
+			clickRight() {
+				this.width = 600
 			},
 			clickLeft() {
 				uni.switchTab({
@@ -80,11 +149,17 @@
 				})
 			},
 			eqdetails(data) {
-				uni.navigateTo({
-					url: "./equipment?shebei=" + JSON.stringify(data)
-				})
+				if(this.side_type == 5){
+					uni.navigateTo({
+						url: "./equipment?shebei=" + JSON.stringify(data)
+					})
+				}else if(this.side_type == 15){
+					uni.navigateTo({
+						url: "./gsequipment?shebei=" + JSON.stringify(data)
+					})
+				}
 			},
-			filtrate(){
+			filtrate() {
 				this.filtrateTF = !this.filtrateTF
 			},
 			top() {
@@ -93,30 +168,76 @@
 					duration: 500
 				})
 			},
-			online(){
-				this.eqlistdata=[]
+			online() {
+				this.eqlistdata = []
 				this.page = 1
 				this.device_status = 1
 				this.eqlist()
 				this.filtrateTF = !this.filtrateTF
 			},
-			offline(){
-				this.eqlistdata=[]
+			offline() {
+				this.eqlistdata = []
 				this.page = 1
 				this.device_status = 0
 				this.eqlist()
 				this.filtrateTF = !this.filtrateTF
 			},
-			complete(){
-				this.eqlistdata=[]
+			complete() {
+				this.eqlistdata = []
 				this.page = 1
 				this.device_status = ""
 				this.eqlist()
 				this.filtrateTF = !this.filtrateTF
+			},
+			search() { //搜索按钮搜索
+				if(this.side_type == 5){
+					this.eqlistdata = []
+					this.eqlist()
+				}else if(this.side_type == 15){
+					this.eqlistdata = []
+					this.tubulareqlist()
+				}
+			},
+			searchinp() { //自动搜索
+				Debounce(() => {
+					this.search()
+				}, 1000)()
+			},
+			tabClick(index,type){
+				this.active = index
+				this.side_type = type
+				this.page = 1
+				if(type == 5){
+					this.eqlistdata = []
+					this.eqlist()
+				}else if(type == 15){
+					this.eqlistdata = []
+					this.tubulareqlist()
+				}
 			}
 		},
 		onLoad() {
 			this.eqlist()
+			uni.getStorage({
+				key:"jurisdiction",
+				success:(res)=>{
+					let items = JSON.parse(res.data).filter((item)=>{
+						return item.purview_name == "环境监测系统"
+					})
+					var itemarr = items[0].children
+					console.log(itemarr)
+					for(var i =0;i<itemarr.length;i++){
+						switch (itemarr[i].purview_name){
+							case "环境监测":
+								this.equipArr[0].tf = true
+								break
+							case "管式墒情":
+								this.equipArr[1].tf = true
+								break
+						}
+					}
+				}
+			})
 		},
 		onReachBottom() {
 			this.page++
@@ -133,22 +254,90 @@
 </script>
 
 <style lang="scss">
+	page{
+		background: $uni-bg-color-grey;
+	}
+	.inputs {
+		height: 54rpx;
+		background-color: #E4E4E4;
+		border-radius: 27rpx;
+		position: absolute;
+		right: 20rpx;
+		top: 20rpx;
+		transition: width 0.5s;
+		overflow: hidden;
+		padding-top: 8rpx;
+		box-sizing: border-box;
+
+		.inputbox {
+			width: 85%;
+			text-indent: 1rem;
+			font-size: 26rpx;
+		}
+
+		.icon {
+			position: absolute;
+			top: 8rpx;
+			right: 26rpx;
+		}
+	}
+
 	/deep/.uni-icons {
 		font-size: 40rpx !important;
 	}
 
 	.image {
 		position: fixed;
-		top: 83px;
+		top: 84px;
 		width: 100%;
 		height: 160rpx;
 		z-index: 555;
 	}
 
+	.loading {
+		position: fixed;
+		top: 440px;
+		width: 95%;
+		left: 2.5%;
+		text-align: center;
+		z-index:9;
+		.img {
+			width: 300rpx;
+			height: 40rpx;
+		}
+	}
+	.tab-box {
+		position: fixed;
+		top: 160px;
+		display: flex;
+		justify-content: space-around;
+		font-size: 30rpx;
+		line-height: 80rpx;
+		background-color: #FFFFFF;
+		width: 100%;
+		z-index: 2;
+		.tab-item {
+			cursor: pointer;
+			position: relative;
+		};
+		.tab-item.active {
+			.bottom-line {
+				bottom: 0;
+				position: absolute;
+				display: inline-block;
+				width: 90rpx;
+				height: 6rpx;
+				left: 0;
+				right: 0;
+				margin: auto;
+				background: $uni-color-success;
+			}
+		}
+	}
 	.prevents {
 		width: 100%;
 		position: absolute;
-		top: 140px;
+		top: 170px;
 
 		.prevents_item {
 			width: 95%;
@@ -158,7 +347,7 @@
 			padding: 20rpx 40rpx 20rpx 80rpx;
 			box-sizing: border-box;
 			position: relative;
-
+			background-color: #fff;
 			.prevents_item_img {
 				width: 30rpx;
 				height: 50rpx;
@@ -191,27 +380,32 @@
 			}
 		}
 	}
+
 	.top {
 		position: fixed;
 		right: 10px;
 		bottom: 40px;
 		z-index: 100;
+
 		image {
 			width: 100rpx;
 			height: 100rpx;
 		}
-		.backtop{
+
+		.backtop {
 			display: flex;
 			justify-content: flex-end;
 			margin-bottom: 10rpx;
 		}
-		.more{
+
+		.more {
 			display: flex;
 		}
-		.box{
+
+		.box {
 			width: 80rpx;
 			height: 80rpx;
-			background-color: rgba(161,161,161,0.45);
+			background-color: rgba(161, 161, 161, 0.45);
 			border-radius: 50%;
 			text-align: center;
 			line-height: 80rpx;

+ 0 - 172
pages/environment/search.vue

@@ -1,172 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view class="" style="position: relative;top: 44px;">
-			<view style="position: fixed;z-index: 100;">
-				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"></uni-nav-bar>
-				<view class="search_top_input">
-					<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp" />
-					<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
-				</view>
-			</view>
-			<view class="prevents">
-				<view class="prevents_item" v-for="item,index in eqlistdata" :key="index" @click="eqdetails(item)">
-					<image :src="item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/6.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/7.png'" mode=""
-					 class="prevents_item_img"></image>
-					<view class="prevents_item_top">
-						<p>设备名称:{{item.equip_name==""?"无":item.equip_name}}</p>
-						<p :class="item.is_online==1?'green':'red'" v-text="item.is_online==1?'在线':'离线'"></p>
-					</view>
-					<view class="prevents_item_bot">
-						<p>设备 ID:{{item.equip_id}}</p>
-						<p>最新上报时间:{{item.uptime|timeFormat()}}</p>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		Debounce,
-		Throttle
-	} from "../../util/anitthro.js"
-	export default {
-		data() {
-			return {
-				imports: '',
-				eqlistdata: [],
-				page: 1,
-				size: 10,
-				show: false,
-				value: '',
-				options1: [{
-						text: "杀虫灯",
-						id: 2
-					},
-					{
-						text: "虫情测报",
-						id: 3
-					},
-					{
-						text: "孢子仪",
-						id: 7
-					},
-					{
-						text: "性诱设备",
-						id: 4
-					},
-				]
-			}
-		},
-		methods: {
-			async eqlist() { //设备列表
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=weather.weather.qxz_page',
-					data: {
-						device_id: this.imports
-					}
-				})
-				this.eqlistdata = this.eqlistdata.concat(res.ids)
-				console.log(this.eqlistdata)
-			},
-			clickLeft() {
-				uni.navigateBack({
-					delta: 1
-				})
-			},
-			search() {
-				this.eqlistdata = []
-				this.eqlist()
-			},
-			searchinp() {
-				Debounce(() => {
-					this.eqlistdata = []
-					this.eqlist()
-				}, 1000)()
-			},
-			actionSheetCallback(index) { //选择框
-				this.value = this.options1[index].text;
-				// this.id = this.options1[index].id
-			},
-			eqdetails(data) {
-				uni.navigateTo({
-					url: "./equipment?shebei=" + JSON.stringify(data)
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.search_top_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18rpx;
-		right: 18rpx;
-		padding-top: 8rpx;
-		box-sizing: border-box;
-
-		input {
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-
-		.icon {
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-
-	.prevents {
-		width: 100%;
-		position: absolute;
-		top: 54px;
-
-		.prevents_item {
-			width: 95%;
-			margin: 0 auto 30rpx;
-			border-radius: 10rpx;
-			box-shadow: 0 0 10rpx #bcb9ca;
-			padding: 20rpx 40rpx 20rpx 80rpx;
-			position: relative;
-			box-sizing: border-box;
-			.prevents_item_img {
-				width: 30rpx;
-				height: 50rpx;
-				position: absolute;
-				top: -4rpx;
-				left: 30rpx;
-			}
-
-			.prevents_item_top {
-				display: flex;
-				justify-content: space-between;
-				height: 60rpx;
-				border-bottom: 2rpx solid #F4F4F4;
-				line-height: 60rpx;
-				font-size: 26rpx;
-
-				.red {
-					color: #ff0000;
-				}
-
-				.green {
-					color: #7DBB91;
-				}
-			}
-
-			.prevents_item_bot {
-				margin-top: 20rpx;
-				font-size: 26rpx;
-				color: #BDBDBD;
-			}
-		}
-	}
-</style>

+ 125 - 121
pages/equipList/index.vue

@@ -3,18 +3,27 @@
 		<view class="status_bar"></view>
 		<view style="position: fixed;top:44px;z-index: 100;width: 100%;">
 			<uni-nav-bar right-icon="search" title="设备列表" @clickRight="clickRight"></uni-nav-bar>
+			<view class="inputs" :style="{'width':width}">
+				<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinput"
+					class="inputbox" :clearable="false" />
+				<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
+			</view>
 		</view>
 		<view class="utabs_box">
 			<view class="utabs">
-				<u-tabs :list="list" :is-scroll="true" :current="currents" @change="change" item-width="140" font-size="24" gutter="20"
-				 bar-width="60" active-color="#42b983"></u-tabs>
+				<u-tabs :list="list" :is-scroll="true" :current="currents" @change="change" item-width="140"
+					font-size="24" gutter="20" bar-width="60" active-color="#42b983" v-if="list.length"></u-tabs>
 			</view>
 		</view>
+		<view class="loading" v-if="loadingtf">
+			<image src="../../static/images/ajax-loader.gif" mode="" class="img"></image>
+		</view>
 		<view class="list">
 			<view class="list_item" v-for="(item,index) in eqlistdata" :key="index" @click="historys(item)">
 				<view class="list_item_top">
 					<p class="p1">
-						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+imgpath[0].path" mode=""></image>
+						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app/image/fourMoodBase/'+type_id+'.png'"
+							mode=""></image>
 						{{item.device_name==''?"--":item.device_name}}
 					</p>
 					<p :class="[item.is_online?'p2':'p_out']">{{item.is_online?"在线":"离线"}}</p>
@@ -32,83 +41,52 @@
 			</view>
 		</view>
 		<view class="top" v-if="isTop" @click="top">
-			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/6209a98f0cb3b5086f2ca36152c9269.png'" mode=""></image>
+			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/6209a98f0cb3b5086f2ca36152c9269.png'"
+				mode=""></image>
 		</view>
 	</view>
 </template>
 
 <script>
+	import {
+		Debounce,
+		Throttle
+	} from "../../util/anitthro.js"
 	export default {
 		data() {
 			return {
 				list: [],
 				current: 0,
-				currents:0,
+				currents: 0,
 				page: 1,
 				size: 10,
-				images: [{
-						name: "杀虫灯",
-						path: "/image/fourMoodBase/3.png", //
-						id: 2
-					},
-					{
-						name: "测报灯",
-						path: "/image/fourMoodBase/1.png",
-						id: 3
-					}, {
-						name: "性诱测报",
-						path: "/image/fourMoodBase/6.png",
-						id: 4
-					}, {
-						name: "环境监测",
-						path: "/image/fourMoodBase/5.png",
-						id: 5
-					}, {
-						name: "监控",
-						path: "/image/fourMoodBase/2.png",
-						id: 6
-					}, {
-						name: "孢子仪",
-						path: "/image/fourMoodBase/4.png",
-						id: 7
-					},
-					{
-						name: "性诱2.0",
-						path: "/image/fourMoodBase/10.png",
-						id: 10
-					},
-					{
-						name: "色诱测报",
-						path: "/image/fourMoodBase/14.png",
-						id: 14
-					},
-					{
-						name: "管式墒情",
-						path: "/image/fourMoodBase/15.png",
-						id: 15
-					}
-				],
 				eqlistdata: [],
 				isTop: false,
 				infoalter: false, // 权限设置,
 				type_id: 0, //设备类型,
-				imgpath:[]
+				imgpath: [],
+				loadingtf: false,
+				width: 0, //顶部搜索栏宽度
+				imports: "" //搜索设备ID
 			}
 		},
 		methods: {
 			async eqlist(tf) { //设备列表
+				this.loadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
 					data: {
 						device_type_id: this.type_id,
 						page: this.page,
 						page_size: this.size,
+						device_id: this.imports,
 					}
 				})
+				this.loadingtf = false
 				var newtime = +new Date() / 1000
-				if(tf){
+				if (tf) {
 					this.eqlistdata = this.eqlistdata.concat(res.data)
-				}else{
+				} else {
 					this.eqlistdata = res.data
 				}
 				for (var i = 0; i < this.eqlistdata.length; i++) {
@@ -118,18 +96,21 @@
 				console.log(res)
 			},
 			async xyeqlist(tf) { //设备列表
+				this.loadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=sex_lure_nl.sex_lure.nl_device_list',
 					data: {
 						device_type_id: this.type_id,
 						page: this.page,
 						page_size: this.size,
+						device_id: this.imports,
 					}
 				})
+				this.loadingtf = false
 				var newtime = +new Date() / 1000
-				if(tf){
+				if (tf) {
 					this.eqlistdata = this.eqlistdata.concat(res.data)
-				}else{
+				} else {
 					this.eqlistdata = res.data
 				}
 				for (var i = 0; i < this.eqlistdata.length; i++) {
@@ -139,7 +120,7 @@
 				console.log(res)
 			},
 			//camera.camera_manage.list_camera
-			async camera() { //设备列表
+			async camera() { //监控
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=camera.camera_manage.list_camera',
 					data: {
@@ -148,30 +129,44 @@
 				})
 				this.accessToken = res.accessToken
 			},
+			// homes.user_device_type
+			async usertype() { //设备列表
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=home.homes.user_device_type',
+				})
+				console.log(res)
+				for (var i = 0; i < res.length; i++) {
+					var obj = {
+						name: res[i].type_name,
+						id: res[i].id
+					}
+					this.list.push(obj)
+				}
+				if (res.length) {
+					console.log(this.list)
+					this.type_id = this.list[0].id
+					if (this.list[0].id == 10) {
+						this.xyeqlist()
+					} else {
+						this.eqlist()
+					}
+				}
+			},
 			change(index) { //头部导航栏的点击
+				this.imports = ""
 				this.current = index
 				this.currents = index
 				this.page = 1
 				this.eqlistdata = []
-				console.log(index)
-				for (var i = 0; i < this.images.length; i++) {
-					if (this.list[index].name == this.images[i].name) {
-						this.type_id = this.images[i].id
-					}
-				}
-				this.imgpath = this.images.filter((item)=>{
-					return item.id == this.type_id
-				})
-				if (this.type_id == 10) {
+				this.type_id = this.list[index].id
+				if (this.list[index].id == 10) {
 					this.xyeqlist()
 				} else {
 					this.eqlist()
 				}
 			},
 			clickRight() { //搜索
-				uni.navigateTo({
-					url: "./search?id=" + this.type_id
-				})
+				this.width = '90%'
 			},
 			modification(item) {
 				uni.navigateTo({
@@ -229,15 +224,36 @@
 						})
 						break;
 				}
-			}
+			},
+			search() { //搜索
+				this.eqlistdata = []
+				this.page = 1
+				if (this.list[this.currents].id == 10) {
+					this.xyeqlist()
+				} else {
+					this.eqlist()
+				}
+			},
+			searchinput() {
+				Debounce(() => {
+					this.eqlistdata = []
+					this.page = 1
+					if (this.list[this.currents].id == 10) {
+						this.xyeqlist()
+					} else {
+						this.eqlist()
+					}
+				}, 1000)()
+			},
 		},
 		onShow() {
-			this.list=[]
+			this.list = []
 			this.camera()
-			this.current=0
-			this.currents=0
+			this.current = 0
+			this.currents = 0
 			this.page = 1
-			// console.log(this.current)
+			this.usertype()
+			this.width = 0
 			uni.getStorage({
 				key: "jurisdiction",
 				success: (res) => {
@@ -253,56 +269,6 @@
 						return item.purview_name == "修改名称" || item.purview_name == "添加位置"
 					})
 					console.log(this.infoalter)
-					var res = JSON.parse(res.data)
-					for (var i = 0; i < res.length; i++) {
-						switch (res[i].purview_name) {
-							case "测报系统":
-								for (var j = 0; j < res[i].children.length; j++) {
-									var obj = {
-										name: res[i].children[j].purview_name=="虫情测报灯"?"测报灯":res[i].children[j].purview_name
-									}
-									this.list.push(obj)
-								}
-								break;
-							case "可视农业":
-								for (var j = 0; j < res[i].children.length; j++) {
-									var obj = {
-										name: res[i].children[j].purview_name
-									}
-									this.list.push(obj)
-								}
-								break;
-							case "环境监测系统":
-								for (var j = 0; j < res[i].children.length; j++) {
-									var obj = {
-										name: res[i].children[j].purview_name
-									}
-									this.list.push(obj)
-								}
-								break;
-							case "防治系统":
-								for (var j = 0; j < res[i].children.length; j++) {
-									var obj = {
-										name: res[i].children[j].purview_name
-									}
-									this.list.push(obj)
-								}
-								break;
-						}
-					}
-					for (var i = 0; i < this.images.length; i++) {
-						if (this.list[this.current].name == this.images[i].name) {
-							this.type_id = this.images[i].id
-						}
-					}
-					this.imgpath = this.images.filter((item)=>{
-						return item.id == this.type_id
-					})
-					if (this.type_id == 10) {
-						this.xyeqlist(false)
-					} else {
-						this.eqlist(false)
-					}
 				},
 			})
 		},
@@ -328,6 +294,31 @@
 		font-size: 40rpx !important;
 	}
 
+	.inputs {
+		height: 54rpx;
+		background-color: #E4E4E4;
+		border-radius: 27rpx;
+		position: absolute;
+		right: 34rpx;
+		top: 20rpx;
+		transition: width 0.5s;
+		overflow: hidden;
+		padding-top: 8rpx;
+		box-sizing: border-box;
+
+		.inputbox {
+			width: 85%;
+			text-indent: 1rem;
+			font-size: 26rpx;
+		}
+
+		.icon {
+			position: absolute;
+			top: 8rpx;
+			right: 26rpx;
+		}
+	}
+
 	.utabs_box {
 		width: 100%;
 		position: fixed;
@@ -341,6 +332,19 @@
 		}
 	}
 
+	.loading {
+		position: fixed;
+		top: 440px;
+		width: 95%;
+		left: 2.5%;
+		text-align: center;
+
+		.img {
+			width: 300rpx;
+			height: 40rpx;
+		}
+	}
+
 	.list {
 		width: 100%;
 		background-color: #FDFDFD;

+ 0 - 338
pages/equipList/search.vue

@@ -1,338 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view style="position: fixed;top: 44px; z-index: 100;height: 80rpx;background-color: #FFFFFF;padding-top: 10px;">
-			<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"></uni-nav-bar>
-			<view class="search_bot_input">
-				<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinput" />
-				<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
-			</view>
-		</view>
-		<view class="list">
-			<view class="list_item" v-for="(item,index) in eqlistdata" :key="index" @click="historys(item)">
-				<view class="list_item_top">
-					<p class="p1">
-						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+ imgpath[0].path" mode=""></image>
-						{{item.device_name==''?"--":item.device_name}}
-					</p>
-					<p :class="[item.is_online?'p2':'p_out']">{{item.is_online?"在线":"离线"}}</p>
-				</view>
-				<view class="list_item_text">
-					<p>设备ID:{{item.imei}}</p>
-					<p>适配用户:{{item.device_user==''?"无":item.device_user}}</p>
-					<p>添加设备时间:{{item.addtime|timeFormat()}}</p>
-					<p>添加设备时间:{{item.uptime|timeFormat()}}</p>
-					<p>设备已运行:{{item.days}}天</p>
-				</view>
-				<view class="list_item_btn" v-if="infoalter" @click.stop="modification(item)">
-					修改名称
-				</view>
-			</view>
-			<view class="none" v-if="eqlistdatatf">
-				暂无数据
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {
-		Debounce,
-		Throttle
-	} from "../../util/anitthro.js"
-	export default {
-		data() {
-			return {
-				imports: '',
-				eqlistdata: [],
-				images: [{
-						name: "杀虫灯",
-						path: "/image/fourMoodBase/3.png", //
-						id: 2
-					},
-					{
-						name: "测报灯",
-						path: "/image/fourMoodBase/1.png",
-						id: 3
-					}, {
-						name: "性诱测报",
-						path: "/image/fourMoodBase/6.png",
-						id: 4
-					}, {
-						name: "环境监测",
-						path: "/image/fourMoodBase/5.png",
-						id: 5
-					}, {
-						name: "监控设备",
-						path: "/image/fourMoodBase/2.png",
-						id: 6
-					}, {
-						name: "孢子仪",
-						path: "/image/fourMoodBase/4.png",
-						id: 7
-					},
-					{
-						name: "性诱2.0",
-						path: "/image/fourMoodBase/10.png",
-						id: 10
-					}
-				],
-				eqlistdatatf: false, //暂无数据
-				indexs: 2, //设备id
-				page: 1,
-				size: 10,
-				infoalter:false,
-				imgpath:[]
-			}
-		},
-		methods: {
-			async eqlist() { //设备列表
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-					data: {
-						device_type_id: this.indexs,
-						device_id: this.imports,
-						page: this.page,
-						page_size: this.size,
-					}
-				})
-				this.eqlistdata = this.eqlistdata.concat(res.data)
-				var newtime = +new Date()/1000
-				for(var i=0;i<this.eqlistdata.length;i++){
-					var days = (newtime-this.eqlistdata[i].uptime)/60/60/24
-					this.eqlistdata[i].days = Math.round(days)
-				} 
-				console.log(this.eqlistdata)
-				if (this.eqlistdata.length == 0) {
-					this.eqlistdatatf = true
-				} else {
-					this.eqlistdatatf = false
-				}
-			},
-			clickLeft() { //返回
-				uni.switchTab({
-					url: "./index"
-				})
-			},
-			search() { //搜索
-				this.eqlistdata = []
-				this.page = 1
-				this.eqlist()
-			},
-			searchinput() {
-				Debounce(() => {
-					this.eqlistdata = []
-					this.page = 1
-					this.eqlist()
-				}, 1000)()
-			},
-			modification(item) {
-				uni.navigateTo({
-					url: "./modification?data=" + JSON.stringify(item) + "&id=" + (this.indexs)
-				})
-			},
-			historys(item) {
-				switch (Number(this.indexs)) {
-					case 2:
-						uni.navigateTo({
-							url: "../prevention/equipmentdetails?shebei=" + JSON.stringify(item)
-						})
-						break;
-					case 5:
-						console.log(item)
-						var obj = {}
-						obj.d_id = item.d_id
-						obj.equip_id = item.imei
-						obj.is_online = item.is_online
-						obj.lat = item.lat
-						obj.lng = item.lng
-						obj.equip_name = item.device_name
-						obj.uptime = item.addtime
-						uni.navigateTo({
-							url: "../environment/equipment?shebei=" + JSON.stringify(obj)
-						})
-						break;
-					case 6:
-						uni.navigateTo({
-							url: "/pages/webview?device_id=" + item.imei + "&accessToken=" + this.accessToken
-						})
-						break;
-					default:
-						item.type = this.indexs
-						uni.navigateTo({
-							url: "../cb/equip-detail/equip-detail?info=" + JSON.stringify(item)
-						})
-						break;
-				}
-			}
-		},
-		onLoad(option) {
-			this.indexs = option.id
-			this.imgpath = this.images.filter((item)=>{
-				return item.id == option.id
-			})
-			console.log(this.imgpath)
-			uni.getStorage({
-				key:"jurisdiction",
-				success:(res)=>{
-					console.log(JSON.parse(res.data))
-					let items = JSON.parse(res.data).filter((item)=>{
-						return item.purview_name == "设备管理"
-					})
-					let items2 = items[0].children.filter((item)=>{
-						return item.purview_name == "设备列表"
-					})
-					this.infoalter = items2[0].children.some((item)=>{
-						return item.purview_name == "修改名称" || item.purview_name == "添加位置"
-					})
-				},
-			})
-		},
-		onReachBottom() {
-			this.page++
-			this.eqlist()
-		},
-		onBackPress(options) {
-			if (options.from === 'navigateBack') {
-				return false;
-			}
-			this.clickLeft();
-			return true;
-		},
-	}
-</script>
-<style lang="scss">
-	.search_top_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18rpx;
-		right: 18rpx;
-		padding-top: 8rpx;
-		box-sizing: border-box;
-
-		input {
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-
-		.icon {
-			position: absolute;
-			top: 18rpx;
-			right: 32rpx;
-		}
-	}
-
-	.search_bot_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18px;
-		right: 18rpx;
-		box-sizing: border-box;
-		padding-top: 8rpx;
-
-		input {
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-
-		.icon {
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-
-	.list {
-		width: 100%;
-		background-color: #FDFDFD;
-		position: absolute;
-		top: 100px;
-
-		.list_item {
-			width: 95%;
-			margin: 20rpx auto;
-			padding: 10rpx 20rpx;
-			position: relative;
-			background-color: #FFFFFF;
-			box-sizing: border-box;
-			box-shadow: 0 0 10rpx #bcb9ca;
-
-			.list_item_top {
-				display: flex;
-				justify-content: space-between;
-
-				.p1 {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-
-					image {
-						width: 40rpx;
-						height: 40rpx;
-						vertical-align: text-top;
-						margin-right: 20rpx;
-					}
-				}
-
-				.p2 {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-					color: #42b983;
-				}
-
-				.p_out {
-					height: 60rpx;
-					line-height: 60rpx;
-					font-size: 28rpx;
-					color: red;
-				}
-			}
-
-			.list_item_text {
-				margin-top: 20rpx;
-
-				p {
-					font-size: 24rpx;
-					color: #636363;
-					margin-top: 10rpx;
-				}
-
-				p:first-child {
-					font-size: 28rpx;
-					font-weight: 700;
-				}
-			}
-
-			.list_item_btn {
-				width: 126rpx;
-				color: #42b983;
-				height: 40rpx;
-				text-align: center;
-				border: 1rpx solid #42b983;
-				border-radius: 25rpx;
-				font-size: 24rpx;
-				line-height: 35rpx;
-				position: absolute;
-				top: 136rpx;
-				right: 20rpx;
-			}
-		}
-
-		.none {
-			width: 100%;
-			height: 100rpx;
-			line-height: 100rpx;
-			font-size: 32rpx;
-			text-align: center;
-		}
-	}
-</style>

+ 77 - 50
pages/equipMange/index/assignment.vue

@@ -11,17 +11,23 @@
 					 bar-width="60" active-color="#42b983"></u-tabs>
 				</view>
 			</view>
+			<view class="bases_search">
+				<view class="bases_search_text">
+					<u-icon name="search" class="search" @click="searchs"></u-icon>
+					<input type="text" v-model="inputdata" placeholder="请输入设备ID"  @input="searchinp"/>
+				</view>
+			</view>
 			<view class="ass_list">
 				<checkbox-group class="che_group" @change="checkboxchange">
 					<label class="equipment" v-for="(items,index) in assignment" :key="index">
 						<view class="equipment_top">
-							<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+items.src" mode="" class="equipment_top_img"></image>
+							<image :src="'http://www.hnyfwlw.com:8006/bigdata_app/image/fourMoodBase/'+items.device_type_id+'.png'" mode="" class="equipment_top_img"></image>
 							<span class="equipment_top_name">{{items.device_type_id_name}}</span>
 							<checkbox :value="String(items.d_id)" :checked="items.device_user==user_info.uid" class="ucheckbox" color="#42b983" />
 						</view>
 						<view class="equipment_bot">
 							<p class="equipment_bot_id">设备ID:{{items.device_id}}</p>
-							<p class="equipment_bot_name">设备名称:{{items.device_name}}</p>
+							<p class="equipment_bot_name">设备名称:{{items.device_name||"无"}}</p>
 							<view class="equipment_state">在线</view>
 						</view>
 					</label>
@@ -38,13 +44,15 @@
 	</view>
 </template>
 <script>
+	import {
+		Debounce,
+		Throttle
+	} from "../../../util/anitthro.js"
 	export default {
 		data() {
 			return {
 				user_info: {},
-				list: [{
-					name: "全部"
-				}],
+				list: [],
 				current: 0,
 				assignment: [],
 				data: {
@@ -52,53 +60,28 @@
 					pagesize: 10,
 					page: 1
 				},
-				images: [{
-						path: "/image/fourMoodBase/scd.png",
-						id: 2
-					},
-					{
-						path: "/image/fourMoodBase/cbd.png",
-						id: 3
-					}, {
-						path: "/image/fourMoodBase/xycb.png",
-						id: 4
-					}, {
-						path: "/image/fourMoodBase/qxz.png",
-						id: 5
-					}, {
-						path: "/image/fourMoodBase/jk.png",
-						id: 6
-					}, {
-						path: "/image/fourMoodBase/bzy.png",
-						id: 7
-					},
-					{
-						path: "/image/fourMoodBase/10.png",
-						id: 10
-					},
-					{
-						path: "/image/fourMoodBase/14.png",
-						id: 14
-					},
-					{
-						path: "/image/fourMoodBase/15.png",
-						id: 15
-					}
-				],
 				allocationvalues: [], //原始数据
 				allocationvalues2: [], //选项框更改后的数据
 				allocationvalues3: [], //头部导航栏点击后的数据
 				allocationvaluesTF: false, //判断选项框是否变动
 				topbarTF: false ,//判断头部导航栏是否变更
-				isTop:false
+				isTop:false,
+				type_id:0,
+				inputdata:"",//设备搜索
 			}
 		},
 		methods: {
-			async devicetypelist() { //分配设备
+			async devicetypelist() { //所有设备类型
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=home.homes.user_device_type',
 				})
 				console.log(res)
+				this.list = [
+					{
+						name: "全部",
+						id:0
+					}
+				]
 				for(var i = 0; i < res.length; i++){
 					var obj = {
 						name:res[i].type_name,
@@ -123,11 +106,11 @@
 			},
 			change(index) { //头部导航栏的点击
 				this.topbarTF = true //更改导航栏状态
-				// this.allocationvalues3 = this.deweight(this.allocationvalues3.concat(this.allocationvalues2)) //合并数据
 				console.log(this.allocationvalues3)
 				this.current = index
 				this.data.page = 1
 				this.data.devicetypeid = ''
+				this.type_id =  this.list[index].id
 				uni.pageScrollTo({
 					scrollTop: 0
 				});
@@ -139,7 +122,6 @@
 					this.data.devicetypeid = this.list[index].id
 					this.getAssign(this.data)
 				}
-
 			},
 			async getAssign(data) { //获取设备信息
 				const res = await this.$myRequest({
@@ -148,7 +130,8 @@
 						owner_uid: this.user_info.uid,
 						device_type_id: data.devicetypeid,
 						page_size: data.pagesize,
-						page: data.page
+						page: data.page,
+						device_id: this.inputdata
 					}
 				})
 				this.assignment = this.assignment.concat(res.data)
@@ -156,11 +139,6 @@
 					if (this.assignment[i].device_user != 0) {
 						this.allocationvalues.push(this.assignment[i].d_id)
 					}
-					for (var j = 0; j < this.images.length; j++) {
-						if (this.assignment[i].device_type_id == this.images[j].id) {
-							this.assignment[i].src = this.images[j].path
-						}
-					}
 					for (var j = 0; j < this.list.length; j++) {
 						if (this.assignment[i].device_type_id == this.list[j].id) {
 							this.assignment[i].device_type_id_name = this.list[j].name
@@ -184,6 +162,7 @@
 					this.allocationvalues3 = this.allocationvalues3.concat(e.detail.value)
 					console.log(e.detail.value)
 				}
+				console.log(e.detail.value)
 			},
 			canfirm() { //确定分配
 				let data = {}
@@ -214,10 +193,31 @@
 					scrollTop: 0,
 					duration: 500
 				})
+			},
+			searchs(){
+				var data = {
+					pagesize:10,
+					page:1,
+					devicetypeid:""
+				}
+				if (this.type_id==0) {
+					this.assignment = []
+					this.getAssign(data)
+				} else {
+					data.devicetypeid = this.type_id
+					this.assignment = []
+					this.getAssign(data)
+				}
+			},
+			searchinp(){
+				Debounce(() => {
+					this.searchs()
+				}, 1000)()
 			}
 		},
 		onLoad(option) {
 			this.user_info = JSON.parse(option.item)
+			console.log(this.user_info)
 			this.devicetypelist()
 			this.getAssign(this.data)
 		},
@@ -242,9 +242,36 @@
 		top: 88px;
 		z-index: 100;
 	}
-
+	.bases_search {
+		width: 100%;
+		position: fixed;
+		top: 120px;
+		z-index: 100;
+		background-color: #FFFFFF;
+	
+		.bases_search_text {
+			width: 90%;
+			margin: 0 auto;
+			background-color: #F8F8F8;
+			height: 60rpx;
+			border-radius: 30rpx;
+			display: flex;
+			line-height: 60rpx;
+	
+			.search {
+				padding: 0 20rpx;
+				font-size: 34rpx;
+			}
+	
+			input {
+				width: 80%;
+				margin-top: 10rpx;
+				font-size: 28rpx;
+			}
+		}
+	}
 	.ass_list {
-		margin: 190rpx 0 0;
+		margin: 220rpx 0 0;
 
 		.che_group {
 			display: flex;

+ 52 - 2
pages/equipMange/index/index.vue

@@ -13,10 +13,14 @@
 				</view>
 			</view>
 			<view class="userlists">
-				<view class="userlist-li" v-for="(item,index) in userlists" :kex="index" @click="userOperation(userlists[index])">
+				<view class="userlist-li" v-for="(item,index) in userlists" :kex="index">
 					<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/fourMoodBase/touxiang.png'" mode=""></image>
 					<p class="userlist-li-city">{{item.username}}</p>
 					<p class="userlist-li-eamil">{{item.mobile}}</p>
+					<view class="loginbox">
+						<p class="loginp" @click="userloginbtn(item)">一键登录</p>
+						<p class="logininfo" @click="userOperation(item)">查看详情</p>
+					</view>
 				</view>
 			</view>
 		</view> 
@@ -64,6 +68,28 @@
 				})
 				this.userlists = this.userlists.concat(res.data)
 			},
+			async userlogin(uid) {
+				const res = await this.$myRequest({
+					url: '/api/api_gateway?method=user.login.auto_login',
+					data: {
+						uid
+					}
+				})
+				let session_key = res.session_key
+				uni.setStorage({
+					key: 'session_key',
+					data: session_key,
+					success: () => {
+						uni.switchTab({
+							url: "../../index/index"
+						})
+						uni.showToast({
+							title: "登录成功!",
+							icon: "none"
+						})
+					}
+				})
+			},
 			clickRight() { //跳转增加用户页面
 				if(this.addtf){
 					uni.navigateTo({
@@ -87,6 +113,9 @@
 					url: './useroperation?item=' + item,
 				})
 			},
+			userloginbtn(item){//一键登录
+				this.userlogin(item.uid)
+			},
 			search() { //搜索用户
 				this.userlists = []
 				this.getState(this.argument)
@@ -189,7 +218,7 @@
 
 		.userlist-li {
 			width: 46%;
-			height: 270rpx;
+			height: 300rpx;
 			margin: 20rpx 0 0 20rpx;
 			float: left;
 			box-shadow: 0 0 10rpx #bcb9ca;
@@ -200,6 +229,27 @@
 				height: 80rpx;
 				margin: 40rpx 0 20rpx;
 			}
+			.loginbox{
+				display: flex;
+			}
+			.loginp {
+				width: 130rpx;
+				padding: 6rpx;
+				font-size: 25rpx;
+				background-color: #18B566;
+				color: #FFF;
+				margin: 20rpx auto;
+				border-radius: 31rpx;
+			}
+			.logininfo{
+				width: 130rpx;
+				padding: 6rpx;
+				font-size: 25rpx;
+				background-color: #fbb309;
+				color: #FFF;
+				margin: 20rpx auto;
+				border-radius: 31rpx;
+			}
 		}
 	}
 	.top {

+ 1 - 1
pages/equipMange/index/useroperation.vue

@@ -163,7 +163,7 @@
 					if (this.user_meg.user_group_id == res.data[i].id) { //根据主题id更改主题
 						this.theme_items = res.data[i].role_describe
 					}
-					console.log(this.theme)
+					// console.log(this.theme)
 				}
 			},
 			async getThemes() { //获取用户角色

+ 5 - 4
pages/fourBase/addbase.vue

@@ -22,7 +22,7 @@
 					<input type="text" v-model="baseinfo.base_name" placeholder="请输入基地名称" />
 				</view>
 				<view class="base_text_item1">
-					<u-icon name="ren1" custom-prefix="custom-icon" class="icon"></u-icon>
+					<u-icon name="jidiguanli" custom-prefix="custom-icon" class="icon"></u-icon>
 					<span><span style="color: #ff0000;margin: 0;">*</span>负责人</span>
 					<input type="text" v-model="baseinfo.base_charge " placeholder="请输入基地负责人" />
 				</view>
@@ -42,7 +42,7 @@
 					<textarea v-model="baseinfo.base_describe " maxlength="80" auto-height class="textarea" placeholder="请输入基地描述(不能大于80字)" />
 					</view>
 				<view class="base_text_item1" @click="map">
-					<u-icon name="Frame1" custom-prefix="custom-icon" class="icon"></u-icon>
+					<u-icon name="dingwei" custom-prefix="custom-icon" class="icon"></u-icon>
 					<span><span style="color: #ff0000;margin: 0;">*</span>基地定位</span>
 					<input type="text" v-model="city" placeholder="请选择地址" disabled style="position: absolute;right: 60rpx;width: 60%;"/>
 					<u-icon name="arrow-right" class="iconright"></u-icon>
@@ -120,8 +120,9 @@
 				localStorage.removeItem("location")
 			},
 			binding(){
+				var str = ''
 				uni.navigateTo({
-					url:"./allocation"
+					url:"./allocation?base_id="+str
 				})
 			},
 			gainimg() { //添加图片
@@ -339,7 +340,7 @@
 			height: 42rpx;
 		}
 		span{
-			margin: 0 20rpx;
+			margin: 0 20rpx 0 10rpx;
 		}
 		.textarea{
 			font-size: 24rpx;

+ 34 - 26
pages/fourBase/allocation.vue

@@ -17,12 +17,18 @@
 					<input type="text" v-model="inputdata" placeholder="请输入设备ID"/>
 				</view>
 			</view>
+			<view class="loading" v-if="loadingtf">
+				<image src="../../static/images/ajax-loader.gif" mode="" class="img"></image>
+			</view>
+			<view class="loading" v-if="nonetf">
+				暂无可分配设备
+			</view>
 			<view class="ass_list">
 				<checkbox-group class="che_group" @change="checkboxchange">
 					<label  v-for="(items,indexs) in assignments.children" :key="items.id" >
 						<view class="" v-if="items.type_name.search(inputdata)+1" class="equipment">
 							<view class="equipment_top">
-								<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+assignments.src" mode="" class="equipment_top_img"></image>
+								<image :src="'http://www.hnyfwlw.com:8006/bigdata_app/image/fourMoodBase/'+assignments.id+'.png'" mode="" class="equipment_top_img"></image>
 								<span class="equipment_top_name">{{assignments.type_name}}</span>
 								<checkbox :value="String(items.type_name)" :checked="items.check" class="ucheckbox" color="#42b983" />
 							</view>
@@ -57,30 +63,14 @@
 				list: [],
 				current: 0,
 				assignment_items: [],
-				images: [{
-						path: "/image/fourMoodBase/1.png",
-						id: 3
-					}, {
-						path: "/image/fourMoodBase/5.png",
-						id: 5
-					}, {
-						path: "/image/fourMoodBase/2.png",
-						id: 6
-					}, {
-						path: "/image/fourMoodBase/4.png",
-						id: 7
-					},
-					{
-						path: "/image/fourMoodBase/10.png",
-						id: 10
-					}
-				],
 				src: '',
 				obj: {},
 				isTop: false,
 				base_id: "",
 				baseidarr: "",
-				inputdata:""
+				inputdata:"",
+				loadingtf:false,//loading
+				nonetf:false,//设备列表为空判断
 			}
 		},
 		methods: {
@@ -115,19 +105,25 @@
 				this.getFourbase()
 			},
 			async getFourbase() { //全部设备列表
+				this.loadingtf =true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=base.bases.base_equip',
+					data:{
+						base_id: this.base_id
+					}
 				})
+				this.loadingtf = false
 				this.assignment = res.data
 				for (var i = 0; i < this.assignment.length; i++) {
 					let obj = {}
 					obj.name = this.assignment[i].type_name
 					this.list.push(obj)
-					for (var j = 0; j < this.images.length; j++) {
-						if (this.assignment[i].id == this.images[j].id) {
-							this.assignment[i].src = this.images[j].path
-						}
-					}
+				}
+				if(this.list.length==0){
+					let obj = {}
+					obj.name = "全部"
+					this.list.push(obj)
+					this.nonetf = true
 				}
 				this.assignments = this.assignment[this.current]
 				for (let i = 0; i < this.assignments.children.length; i++) {
@@ -195,6 +191,7 @@
 		},
 		onLoad(option) {
 			this.base_id = option.base_id
+			console.log(this.base_id)
 			if(this.base_id){
 				this.ybase()
 			}else{
@@ -247,7 +244,18 @@
 			}
 		}
 	}
-
+	.loading {
+		position: fixed;
+		top: 440px;
+		width: 95%;
+		left: 2.5%;
+		text-align: center;
+	
+		.img {
+			width: 300rpx;
+			height: 40rpx;
+		}
+	}
 	.ass_list {
 		position: absolute;
 		top: 115px;

+ 1 - 11
pages/fourBase/basefacility.vue

@@ -8,7 +8,7 @@
 			<view class="ass_list">
 				<view class="equipment" v-for="(items,indexs) in assignments" :key="items.id" v-if="tishiTF" @click="skip(items)">
 					<view class="equipment_top">
-						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+items.src" mode="" class="equipment_top_img"></image>
+						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app/image/fourMoodBase/'+items.equip_type+'.png'" mode="" class="equipment_top_img"></image>
 						<span class="equipment_top_name">{{items.type_name}}</span>
 					</view>
 					<view class="equipment_bot">
@@ -73,13 +73,6 @@
 				})
 				this.assignments = res
 				console.log(this.assignments)
-				for (var i = 0; i < this.images.length; i++) {
-					for (var j = 0; j < this.assignments.length; j++) {
-						if (this.assignments[j].equip_type == this.images[i].id) {
-							this.assignments[j].src = this.images[i].path
-						}
-					}
-				}
 				if (this.assignments.length == 0) {
 					this.tishiTF = false
 				} else {
@@ -108,9 +101,6 @@
 			},
 			skip(items){
 				console.log(items)
-				// uni.navigateTo({
-				// 	url: "../environment/equipment?shebei=" + JSON.stringify(items)
-				// })
 				var item = JSON.stringify(items)
 				switch (items.equip_type){
 					case 5 :

+ 2 - 1
pages/fourBase/index.vue

@@ -29,7 +29,7 @@
 					</view>
 					<u-icon name="more-dot-fill" class="bases_list_xiangqing" @click.native.stop="XQclick(items)"></u-icon>
 					<view class="photoshow">
-						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/fourMoodBase/1.png'" mode=""></image>
+						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/fourMoodBase/2.png'" mode=""></image>
 						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/fourMoodBase/3.png'" mode=""></image>
 						<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/fourMoodBase/5.png'" mode=""></image>
 						<view class="photoshow_num">
@@ -216,6 +216,7 @@
 			this.getFourbase()
 		},
 		onShow() {
+			this.baselist = []
 			this.getFourbase()
 			this.$forceUpdate()
 		},

+ 235 - 211
pages/fourBase/modification.vue

@@ -14,17 +14,17 @@
 			<view class="base_text">
 				<p class="title">基地信息</p>
 				<view class="base_text_item1">
-					<u-icon name="fangzi" custom-prefix="custom-icon" class="icon"></u-icon>
+					<u-icon name="chandi" custom-prefix="custom-icon" class="icon"></u-icon>
 					<span><span style="color: #ff0000;margin: 0;">*</span>基地名称</span>
 					<input type="text" v-model="baseinfo.base_name" placeholder="请输入基地名称" />
 				</view>
 				<view class="base_text_item1">
-					<u-icon name="ren1" custom-prefix="custom-icon" class="icon"></u-icon>
+					<u-icon name="jidiguanli" custom-prefix="custom-icon" class="icon"></u-icon>
 					<span><span style="color: #ff0000;margin: 0;">*</span>负责人</span>
 					<input type="text" v-model="baseinfo.base_charge " placeholder="请输入基地负责人" />
 				</view>
 				<view class="base_text_item1">
-					<u-icon name="lianxidianhua" custom-prefix="custom-icon" class="icon"></u-icon>
+					<u-icon name="dianhua2" custom-prefix="custom-icon" class="icon"></u-icon>
 					<span><span style="color: #ff0000;margin: 0;">*</span>联系电话</span>
 					<input type="text" v-model="baseinfo.base_phone" placeholder="请输入联系电话" />
 				</view>
@@ -34,69 +34,72 @@
 					<input type="number" v-model="baseinfo.base_area" placeholder="请输入基地面积" />
 				</view>
 				<view class="base_text_item2">
-					<u-icon name="miaoshu" custom-prefix="custom-icon" class="icon"></u-icon>
+					<u-icon name="xiangqing-" custom-prefix="custom-icon" class="icon"></u-icon>
 					<span>基地描述</span>
-					<textarea v-model="baseinfo.base_describe " maxlength="80" auto-height class="textarea" placeholder="请输入基地描述(不能大于80字)" />
-					</view>
-			<view class="base_text_item1" @click="map">
-				<u-icon name="Frame1" custom-prefix="custom-icon" class="icon"></u-icon>
-				<span><span style="color: #ff0000;margin: 0;">*</span>基地定位</span>
-				<input type="text" v-model="city" placeholder="请选择地址" disabled style="position: absolute;right: 60rpx;width: 60%;"/>
-				<u-icon name="arrow-right" class="iconright"></u-icon>
-			</view>
-			<view class="base_text_item1" @click="binding">
-				<u-icon name="bangding" custom-prefix="custom-icon" class="icon"></u-icon>
-				<span><span style="color: #ff0000;margin: 0;">*</span>设备绑定</span>
-				<u-icon name="arrow-right" class="iconright"></u-icon>
-			</view>
-			<view class="base_id_box"  v-if="baseobjtf">
-				<view class="base_id" v-for="(item,index) in base_id" :key="index">
-					<view class="base_id_item">
-						<span>{{item.device_id}}</span>
-						<span>{{item.type_name}}</span>
+					<textarea v-model="baseinfo.base_describe " maxlength="80" :auto-height="true" class="textarea"
+						placeholder="请输入基地描述(不能大于80字)" />
+				</view>
+				<view class="base_text_item1" @click="map">
+					<u-icon name="dingwei" custom-prefix="custom-icon" class="icon"></u-icon>
+					<span><span style="color: #ff0000;margin: 0;">*</span>基地定位</span>
+					<input type="text" v-model="city" placeholder="请选择地址" disabled
+						style="position: absolute;right: 60rpx;width: 60%;" />
+					<u-icon name="arrow-right" class="iconright"></u-icon>
+				</view>
+				<view class="base_text_item1" @click="binding">
+					<u-icon name="bangding" custom-prefix="custom-icon" class="icon"></u-icon>
+					<span><span style="color: #ff0000;margin: 0;">*</span>设备绑定</span>
+					<u-icon name="arrow-right" class="iconright"></u-icon>
+				</view>
+				<view class="base_id_box" v-if="baseobjtf">
+					<view class="base_id" v-for="(item,index) in base_id" :key="index">
+						<view class="base_id_item">
+							<span>{{item.device_id}}</span>
+							<span>{{item.type_name}}</span>
+						</view>
 					</view>
 				</view>
-			</view>
-			<view class="base_id_box" v-else>
-				<view class="base_id" v-for="items,indexs in baseobj" :key="indexs">
-					<view class="base_id_item">
-						<span>{{items.arr}}</span>
-						<span>{{items.name}}</span>
+				<view class="base_id_box" v-else>
+					<view class="base_id" v-for="items,indexs in baseobj" :key="indexs">
+						<view class="base_id_item">
+							<span>{{items.arr}}</span>
+							<span>{{items.name}}</span>
+						</view>
 					</view>
 				</view>
+				<view class="btn" @click="tijiao">
+					确 定
+				</view>
 			</view>
-			<view class="btn" @click="tijiao">
-				确 定
-			</view>
-		</view>
 		</view>
-		<kps-image-cutter @ok="onok" @cancel="oncancle" :url="imgs" :fixed="false" :blob="false" :maxWidth="500" :maxHeight="500"></kps-image-cutter>
+		<kps-image-cutter @ok="onok" @cancel="oncancle" :url="imgs" :fixed="false" :blob="false" :maxWidth="500"
+			:maxHeight="500"></kps-image-cutter>
 	</view>
 </template>
 <script>
 	import kpsImageCutter from "@/components/ksp-image-cutter/ksp-image-cutter.vue";
 	export default {
-		components:{
+		components: {
 			kpsImageCutter
 		},
 		data() {
 			return {
-				base_id:[],
-				baseobj:[],
-				baseinfo:{
-					base_name:'',//必传(str)           基地名称
-					base_charge:'',//必传(str)           负责人
-					base_phone:'',//必传(str)           联系电话
-					base_img:'',// 必传(str)           基地图片
-					base_area:'',//必传(str)           基地面积
-					base_equip:'', //必传(str)           绑定设备 如果绑定多个设备传 289#299, 如果是单一设备传298
-					base_describe:'',//非必传(str)         基地描述
-					lng:'',//必传(str)           经度
-					lat:'',//必传(str)           纬度
+				base_id: [],
+				baseobj: [],
+				baseinfo: {
+					base_name: '', //必传(str)           基地名称
+					base_charge: '', //必传(str)           负责人
+					base_phone: '', //必传(str)           联系电话
+					base_img: '', // 必传(str)           基地图片
+					base_area: '', //必传(str)           基地面积
+					base_equip: '', //必传(str)           绑定设备 如果绑定多个设备传 289#299, 如果是单一设备传298
+					base_describe: '', //非必传(str)         基地描述
+					lng: '', //必传(str)           经度
+					lat: '', //必传(str)           纬度
 				},
-				city:'',
-				imgs:"",
-				baseobjtf:true
+				city: '',
+				imgs: "",
+				baseobjtf: true
 			}
 		},
 		methods: {
@@ -104,15 +107,15 @@
 			async addbase() { //获取分布位置 
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=base.bases.base_list',
-					data:this.baseinfo,
-					ret:"modify"
+					data: this.baseinfo,
+					ret: "modify"
 				})
 				console.log(res)
-				if(res){
+				if (res) {
 					uni.showToast({
-					    title: '修改成功', 
-					    duration: 2000,
-						icon:"none"
+						title: '修改成功',
+						duration: 2000,
+						icon: "none"
 					});
 				}
 			},
@@ -126,89 +129,89 @@
 				this.base_id = res
 				console.log(res)
 			},
-			clickLeft(){
+			clickLeft() {
 				uni.navigateTo({
-					url:"./index"
+					url: "./index"
 				})
 				localStorage.removeItem("typeid")
 				localStorage.removeItem("location")
 			},
-			binding(){
+			binding() {
 				uni.navigateTo({
-					url:"./allocation?base_id="+this.baseinfo.base_id
+					url: "./allocation?base_id=" + this.baseinfo.base_id
 				})
 			},
 			gainimg() { //添加图片
 				uni.chooseImage({
-						count: 1, //默认9
-						sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
-						sourceType: ['album', 'camera'], //从相册选择
-						success: (res) => {
-							this.imgs = res.tempFilePaths[0]
-						}
-					})
+					count: 1, //默认9
+					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album', 'camera'], //从相册选择
+					success: (res) => {
+						this.imgs = res.tempFilePaths[0]
+					}
+				})
 			},
-			map(){
+			map() {
 				uni.navigateTo({
-					url:"city"
+					url: "city"
 				})
 			},
-			tijiao(){
-				if(this.baseinfo.base_img==''){
+			tijiao() {
+				if (this.baseinfo.base_img == '') {
 					uni.showToast({
-					    title: '请选择基地图片', 
-					    duration: 2000,
-						icon:"none"
+						title: '请选择基地图片',
+						duration: 2000,
+						icon: "none"
 					});
-				
-				}else if(this.baseinfo.base_name==''){
+
+				} else if (this.baseinfo.base_name == '') {
 					uni.showToast({
-					    title: '请填写正基地名称', 
-					    duration: 2000,
-						icon:"none"
+						title: '请填写正基地名称',
+						duration: 2000,
+						icon: "none"
 					});
-				}else if(this.baseinfo.base_charge==''){
+				} else if (this.baseinfo.base_charge == '') {
 					uni.showToast({
-					    title: '请填写基地负责人', 
-					    duration: 2000,
-						icon:"none"
+						title: '请填写基地负责人',
+						duration: 2000,
+						icon: "none"
 					});
-				}else if(this.baseinfo.base_phone==''){
+				} else if (this.baseinfo.base_phone == '') {
 					uni.showToast({
-					    title: '请填写手机号', 
-					    duration: 2000,
-						icon:"none"
+						title: '请填写手机号',
+						duration: 2000,
+						icon: "none"
 					});
-				}else if(this.baseinfo.base_area==''){
+				} else if (this.baseinfo.base_area == '') {
 					uni.showToast({
-					    title: '请填写基地面积', 
-					    duration: 2000,
-						icon:"none"
+						title: '请填写基地面积',
+						duration: 2000,
+						icon: "none"
 					});
-				}else if(this.baseinfo.lng==''){
+				} else if (this.baseinfo.lng == '') {
 					uni.showToast({
-					    title: '请选择基地地址', 
-					    duration: 2000,
-						icon:"none"
+						title: '请选择基地地址',
+						duration: 2000,
+						icon: "none"
 					});
-				}else if(this.baseinfo.base_id==''){
+				} else if (this.baseinfo.base_id == '') {
 					uni.showToast({
-					    title: '请绑定基地设备', 
-					    duration: 2000,
-						icon:"none"
+						title: '请绑定基地设备',
+						duration: 2000,
+						icon: "none"
 					});
-				}else{
-					if(!/^1[23456789]\d{9}$/.test(this.baseinfo.base_phone)){
+				} else {
+					if (!/^1[23456789]\d{9}$/.test(this.baseinfo.base_phone)) {
 						uni.showToast({
-						    title: '请填写正确的手机号', 
-						    duration: 2000,
-							icon:"none"
+							title: '请填写正确的手机号',
+							duration: 2000,
+							icon: "none"
 						});
-					}else{
-						if(!this.baseobjtf){
+					} else {
+						if (!this.baseobjtf) {
 							var arr = []
-							for(var i=0;i<this.baseobj.length;i++){
-									arr.push(this.baseobj[i].arr)
+							for (var i = 0; i < this.baseobj.length; i++) {
+								arr.push(this.baseobj[i].arr)
 							}
 							this.baseinfo.base_equip = arr.join("#")
 						}
@@ -219,18 +222,19 @@
 					}
 				}
 			},
-			selectaddress(lat,lng) { //获取分布位置
+			selectaddress(lat, lng) { //获取分布位置
 				uni.request({
 					type: "GET",
-					url: "https://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + lng + "," +lat  + "&key=27273b81090f78759e4057f94474516f&radius=1000&extensions=all",
+					url: "https://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + lng + "," + lat +
+						"&key=27273b81090f78759e4057f94474516f&radius=1000&extensions=all",
 					dataType: "json",
 					complete: ress => {
 						console.log(ress)
 						this.city = ress.data.regeocode.formatted_address
-					}  
+					}
 				});
 			},
-			onok(ev){
+			onok(ev) {
 				uni.uploadFile({
 					url: 'http://114.115.147.140:8002/api/api_gateway?method=base.bases.base_photo', //仅为示例,非真实的接口地址
 					filePath: ev.path,
@@ -245,7 +249,7 @@
 				});
 				this.imgs = ''
 			},
-			oncancle(){
+			oncancle() {
 				this.imgs = ''
 			}
 		},
@@ -255,140 +259,159 @@
 			this.baseinfo.base_id = JSON.parse(option.id).id
 			this.baseinfo.ret = "modify"
 			delete this.baseinfo.id
-			this.selectaddress(this.baseinfo.lat,this.baseinfo.lng)
+			this.selectaddress(this.baseinfo.lat, this.baseinfo.lng)
 			this.ybase()
 		},
-		onShow(){
+		onShow() {
 			uni.getStorage({
-				key:"location",
-				success:(res)=> {
+				key: "location",
+				success: (res) => {
 					console.log(res.data)
-					this.selectaddress(res.data[1],res.data[0])
+					this.selectaddress(res.data[1], res.data[0])
 					this.baseinfo.lat = res.data[1]
 					this.baseinfo.lng = res.data[0]
 				}
 			})
 			uni.getStorage({
-			    key: 'typeid',
-			    success: (res)=> {
+				key: 'typeid',
+				success: (res) => {
 					this.baseobjtf = false
 					console.log(JSON.parse(res.data))
 					var arr = []
-					for(var key in JSON.parse(res.data)){
+					for (var key in JSON.parse(res.data)) {
 						console.log(key)
-						for(var i=0;i<JSON.parse(res.data)[key].length;i++){
-							var obj={
-								name:key,
-								arr:JSON.parse(res.data)[key][i]
+						for (var i = 0; i < JSON.parse(res.data)[key].length; i++) {
+							var obj = {
+								name: key,
+								arr: JSON.parse(res.data)[key][i]
 							}
 							arr.push(obj)
 						}
 					}
 					console.log(arr)
 					this.baseobj = arr
-			    }
+				}
 			});
 		}
 	}
 </script>
 
 <style lang="scss">
-.addimg{
-	position: absolute;
-	top: 108rpx;
-	width: 100%;
-	.addimg_add{
-		position: relative;
-		width: 90%;
-		height: 276rpx;
-		margin: 0 auto;
-		background-color: #F7F8FA;
-		text-align: center;
-		line-height: 276rpx;
-		color: #A7A8AA;
-		.addimg_img{
-			position: absolute;
-			top: 0;
-			width: 100%;
-			left: 0;
+	.addimg {
+		position: absolute;
+		top: 108rpx;
+		width: 100%;
+
+		.addimg_add {
+			position: relative;
+			width: 90%;
 			height: 276rpx;
+			margin: 0 auto;
+			background-color: #F7F8FA;
+			text-align: center;
+			line-height: 276rpx;
+			color: #A7A8AA;
+
+			.addimg_img {
+				position: absolute;
+				top: 0;
+				width: 100%;
+				left: 0;
+				height: 276rpx;
+			}
 		}
 	}
-}
-.base_text{
-	position: absolute;
-	top: 390rpx;
-	width: 100%;
-	margin-bottom: 50rpx;
-	.title{
-		width: 90%;
-		margin: 20rpx auto;
-	}
-	.base_text_item2{
-		width: 90%;
-		margin: 10rpx auto 20rpx;
-		padding: 16rpx 20rpx;
-		background-color: #F7F8FA;
-		display: flex;
-		box-sizing: border-box;
-		position: relative;
-		height: 200rpx;
-		.icon{
-			color: #5FBBA0;
-			height: 42rpx;
-		}
-		span{
-			margin: 0 20rpx;
-		}
-		.textarea{
-			font-size: 24rpx;
-			text-align: right;
-			position: absolute;
-			right: 20rpx;
-			width: 70%;
-			height: 200rpx;
-		}
-		
-	}
-	.base_text_item1{
-		display: flex;
-		position: relative;
-		width: 90%;
-		height: 70rpx;
-		margin: 10rpx auto 20rpx;
-		padding: 16rpx 20rpx;
-		background-color: #F7F8FA;
-		box-sizing: border-box;
-		.icon{
-			color: #5FBBA0;
-		}
-		span{
-			margin: 0 10rpx;
+
+	.base_text {
+		position: absolute;
+		top: 390rpx;
+		width: 100%;
+		margin-bottom: 50rpx;
+
+		.title {
+			width: 90%;
+			margin: 20rpx auto;
 		}
-		input{
-			position: absolute;
-			right: 20rpx;
-			width: 70%;
-			text-align: right;
-			font-size: 24rpx;
-			margin-top: 5rpx;
+
+		.base_text_item2 {
+			width: 90%;
+			margin: 10rpx auto 20rpx;
+			padding: 16rpx 20rpx;
+			background-color: #F7F8FA;
+			display: flex;
+			box-sizing: border-box;
+			position: relative;
+			// height: 200rpx;
+
+			.icon {
+				color: #5FBBA0;
+				height: 42rpx;
+			}
+
+			span {
+				margin: 0 20rpx 0 10rpx;
+			}
+
+			.textarea {
+				font-size: 24rpx;
+				text-align: right;
+				// position: absolute;
+				// right: 20rpx;
+				width: 70%;
+				// // height: 200rpx;
+				// // overflow:hidden;
+				// // text-overflow:ellipsis;
+				// // white-space:nowrap;
+			}
+
 		}
-		.iconright{
-			position: absolute;
-			right: 10rpx;
-			top: 28rpx;
-			color: #B5B6B8;
-			font-size: 24rpx;
+
+		.base_text_item1 {
+			display: flex;
+			position: relative;
+			width: 90%;
+			height: 70rpx;
+			margin: 10rpx auto 20rpx;
+			padding: 16rpx 20rpx;
+			background-color: #F7F8FA;
+			box-sizing: border-box;
+
+			.icon {
+				color: #5FBBA0;
+			}
+
+			span {
+				margin: 0 10rpx;
+			}
+
+			input {
+				position: absolute;
+				right: 20rpx;
+				width: 70%;
+				text-align: right;
+				font-size: 24rpx;
+				margin-top: 5rpx;
+			}
+
+			.iconright {
+				position: absolute;
+				right: 10rpx;
+				top: 28rpx;
+				color: #B5B6B8;
+				font-size: 24rpx;
+			}
 		}
 	}
-}
-.base_id_box{
+
+	.base_id_box {
 		width: 90%;
 		margin: 20rpx auto 70rpx;
 	}
-	.base_id{
+
+	.base_id {
 		width: 100%;
-		.base_id_item{
+
+		.base_id_item {
 			width: 95%;
 			padding: 10rpx 30rpx;
 			display: flex;
@@ -400,7 +423,8 @@
 			margin: 20rpx auto;
 		}
 	}
-	.btn{
+
+	.btn {
 		width: 90%;
 		position: fixed;
 		bottom: 10rpx;

+ 111 - 106
pages/index/index.vue

@@ -10,16 +10,18 @@
 		<view class="equipment">
 			<p class="equipment_p">系统设备</p>
 			<view class="equipment_item">
-				<view class="equipment_item_img" v-for="(item,index) in equipmentimg" :key="index" @click="tabequipment(index)">
+				<view class="equipment_item_img" v-for="(item,index) in equipmentimg" :key="index"
+					@click="tabequipment(index)">
 					<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+item.src" mode=""></image>
 				</view>
 			</view>
 		</view>
-		<u-modal v-model="show" :mask-close-able="true" title="" :show-cancel-button="true" confirm-text="拍病害" cancel-text="拍虫害" cancel-color="#4BB85F"
-		 content="拍照识别病虫害" @confirm="confirm" @cancel="cancel"></u-modal>
-		<kps-image-cutter @ok="onok" @cancel="oncancle" :url="url" :fixed="false" :blob="true" :maxWidth="500" :maxHeight="380" :height="380"></kps-image-cutter>
+		<u-modal v-model="show" :mask-close-able="true" title="" :show-cancel-button="true" confirm-text="拍病害"
+			cancel-text="拍虫害" cancel-color="#4BB85F" content="拍照识别病虫害" @confirm="confirm" @cancel="cancel"></u-modal>
+		<kps-image-cutter @ok="onok" @cancel="oncancle" :url="url" :fixed="false" :blob="true" :maxWidth="500"
+			:maxHeight="380" :height="380"></kps-image-cutter>
 		<view class="loading" v-if="loadTF">
-			<u-loading  mode="flower" size="100" :show="true" ></u-loading>
+			<u-loading mode="flower" size="100" :show="true"></u-loading>
 		</view>
 	</view>
 </template>
@@ -31,7 +33,7 @@
 		},
 		data() {
 			return {
-				loadTF:false,
+				loadTF: false,
 				currentPage: 'tabBar1',
 				list: [{
 					image: 'http://www.hnyfwlw.com:8006/bigdata_app/image/index/11.png'
@@ -53,45 +55,27 @@
 						text: "售后服务"
 					}
 				],
-				equipmentimg: [{
-						src: "/image/index/5.png"
-					},
-					{
-						src: "/image/index/6.png"
-					},
-					{
-						src: "/image/index/7.png"
-					},
-					{
-						src: "/image/index/8.png"
-					},
-					{
-						src: "/image/index/9.png"
-					},
-					{
-						src: "/image/index/10.png"
-					}
-				],
+				equipmentimg: [],
 				url: '',
 				path: '',
 				flag: 1,
 				show: false,
-				jurisdiction:{
-					cbtf:false,
-					jktf:false,
-					hjtf:false,
-					fztf:false,
-					sytf:false,
-					sbtf:false,
-					sqtf:false,
-					zjtf:false
+				jurisdiction: {
+					cbtf: false,
+					jktf: false,
+					hjtf: false,
+					fztf: false,
+					sytf: false,
+					sbtf: false,
+					sqtf: false,
+					zjtf: false
 				}
 			}
 		},
 		onLoad() {
 			this.getUserlogin()
-		}, 
-		onShow(){
+		},
+		onShow() {
 			this.loadTF = false
 			this.getUserlogin()
 		},
@@ -108,53 +92,85 @@
 					key: 'myuser_type',
 					data: JSON.stringify(res.myuser_type),
 				})
-				this.jurisdiction={
-						cbtf:false,
-						jktf:false,
-						hjtf:false,
-						fztf:false,
-						sytf:false,
-						sbtf:false,
-						sqtf:false,
-						zjtf:false
-					}
+				if (res.myuser_type == 1) {
+					this.equipmentimg = [{
+							src: "/image/index/5.png"
+						},
+						{
+							src: "/image/index/6.png"
+						},
+						{
+							src: "/image/index/7.png"
+						},
+						{
+							src: "/image/index/8.png"
+						},
+						{
+							src: "/image/index/9.png"
+						}
+					]
+				} else {
+					this.equipmentimg = [{
+							src: "/image/index/5.png"
+						},
+						{
+							src: "/image/index/6.png"
+						},
+						{
+							src: "/image/index/7.png"
+						},
+						{
+							src: "/image/index/8.png"
+						}
+					]
+				}
+				this.jurisdiction = {
+					cbtf: false,
+					jktf: false,
+					hjtf: false,
+					fztf: false,
+					sytf: false,
+					sbtf: false,
+					sqtf: false,
+					zjtf: false
+				}
 				console.log(res.children)
-				for(var i=0;i<res.children.length;i++){
-					switch (res.children[i].purview_name){
+				for (var i = 0; i < res.children.length; i++) {
+					switch (res.children[i].purview_name) {
 						case "测报系统":
-									this.jurisdiction.cbtf = true
-									break;
+							this.jurisdiction.cbtf = true
+							break;
 						case "可视农业":
-									this.jurisdiction.jktf = true
-									break;
+							this.jurisdiction.jktf = true
+							break;
 						case "环境监测系统":
-									this.jurisdiction.hjtf = true
-									break;
+							this.jurisdiction.hjtf = true
+							break;
 						case "防治系统":
-									this.jurisdiction.fztf = true
-									break;
+							this.jurisdiction.fztf = true
+							break;
 						case "溯源系统":
-									this.jurisdiction.sytf = true
-									break;
+							this.jurisdiction.sytf = true
+							break;
 						case "系统管理":
-									this.jurisdiction.sbtf = true
-									break;
+							this.jurisdiction.sbtf = true
+							break;
 						case "四情基地":
-									this.jurisdiction.sqtf = true
-									break;
+							this.jurisdiction.sqtf = true
+							break;
 						case "专家诊断":
-									this.jurisdiction.zjtf = true
-									break;
+							this.jurisdiction.zjtf = true
+							break;
 					}
 				}
 			},
 			tabfunction(index) {
 				if (index == 0) {
-					if(this.jurisdiction.sqtf){
+					if (this.jurisdiction.sqtf) {
 						uni.navigateTo({
 							url: "../fourBase/index"
 						})
-					}else{
+					} else {
 						uni.showToast({
 							title: "此账号未开启此模块,如有需要,请联系管理员",
 							icon: "none"
@@ -164,11 +180,11 @@
 					var that = this
 					this.show = true
 				} else if (index == 2) {
-					if(this.jurisdiction.zjtf){
+					if (this.jurisdiction.zjtf) {
 						uni.navigateTo({
 							url: "../expertDiagnosis/index",
 						})
-					}else{
+					} else {
 						uni.showToast({
 							title: "此账号未开启此模块,如有需要,请联系管理员",
 							icon: "none"
@@ -182,22 +198,22 @@
 			},
 			tabequipment(index) {
 				if (index == 0) {
-					if(this.jurisdiction.cbtf){
+					if (this.jurisdiction.cbtf) {
 						uni.navigateTo({
 							url: "../cb/index/index"
 						})
-					}else{
+					} else {
 						uni.showToast({
 							title: "此账号未开启此模块,如有需要,请联系管理员",
 							icon: "none"
 						})
 					}
 				} else if (index == 1) {
-					if(this.jurisdiction.fztf){
+					if (this.jurisdiction.fztf) {
 						uni.navigateTo({
 							url: "../prevention/index"
 						})
-					}else{
+					} else {
 						uni.showToast({
 							title: "此账号未开启此模块,如有需要,请联系管理员",
 							icon: "none"
@@ -205,22 +221,22 @@
 					}
 				} else if (index == 2) {
 					console.log(this.jurisdiction.jktf)
-					if(this.jurisdiction.jktf){
+					if (this.jurisdiction.jktf) {
 						uni.navigateTo({
 							url: "/pages/monitor/index"
 						})
-					}else{
+					} else {
 						uni.showToast({
 							title: "此账号未开启此模块,如有需要,请联系管理员",
 							icon: "none"
 						})
 					}
 				} else if (index == 3) {
-					if(this.jurisdiction.hjtf){
+					if (this.jurisdiction.hjtf) {
 						uni.navigateTo({
 							url: "../environment/index"
 						})
-					}else{
+					} else {
 						uni.showToast({
 							title: "此账号未开启此模块,如有需要,请联系管理员",
 							icon: "none"
@@ -228,32 +244,16 @@
 					}
 				} else if (index == 4) {
 					console.log(this.jurisdiction.sbtf)
-					if(this.jurisdiction.sbtf){
+					if (this.jurisdiction.sbtf) {
 						uni.navigateTo({
 							url: "../equipMange/index/index"
 						})
-					}else{
+					} else {
 						uni.showToast({
 							title: "此账号未开启此模块,如有需要,请联系管理员",
 							icon: "none"
 						})
 					}
-				} else if (index == 5) {
-					uni.showToast({
-					    title: '此功能暂未开放',
-					    duration: 2000,
-						icon:"none"
-					});
-					// if(this.jurisdiction.cbtf){
-					// 	uni.navigateTo({
-					// 		url: "../cb/index/index"
-					// 	})
-					// }else{
-					// 	uni.showToast({
-					// 		title: "此账号未开启此模块,如有需要,请联系管理员",
-					// 		icon: "none"
-					// 	})
-					// }
 				}
 			},
 			onok(ev) {
@@ -261,12 +261,12 @@
 				console.log(ev)
 				this.loadTF = true
 				uni.showLoading({
-					mask:true,
-					success:function(){
+					mask: true,
+					success: function() {
 						console.log(999)
 					}
 				});
-				if(this.flag == 2){
+				if (this.flag == 2) {
 					console.log('111')
 					// pest.pests.insect_discern 虫害
 					uni.uploadFile({
@@ -280,14 +280,15 @@
 						success: (uploadFileRes) => {
 							console.log(JSON.parse(uploadFileRes.data))
 							uni.navigateTo({
-								url: "../disandpests/index?datas=" + uploadFileRes.data + "&path=" + ev.path
+								url: "../disandpests/index?datas=" + uploadFileRes.data + "&path=" + ev
+									.path
 							})
 						}
 					});
-				}else if(this.flag == 1){
+				} else if (this.flag == 1) {
 					//pest.pests.insect_discern病害识别
 					uni.showLoading({
-					    title: '加载中'
+						title: '加载中'
 					});
 					uni.uploadFile({
 						// url: 'http://114.115.147.140:8002/api/api_gateway?method=base.bases.base_photo', //仅为示例,非真实的接口地址
@@ -300,7 +301,8 @@
 						success: (uploadFileRes) => {
 							console.log(JSON.parse(uploadFileRes.data))
 							uni.navigateTo({
-								url: "../disandpests/index?datas="+uploadFileRes.data + "&path=" + ev.path
+								url: "../disandpests/index?datas=" + uploadFileRes.data + "&path=" + ev
+									.path
 							})
 						}
 					});
@@ -316,7 +318,7 @@
 				uni.chooseImage({
 					count: 1, //默认9
 					// sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
-					sourceType: ['camera','album'], //从相册选择
+					sourceType: ['camera', 'album'], //从相册选择
 					success: (res) => {
 						this.url = res.tempFilePaths[0]
 					}
@@ -328,7 +330,7 @@
 				uni.chooseImage({
 					count: 1, //默认9
 					// sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
-					sourceType: ['camera','album'], //从相册选择
+					sourceType: ['camera', 'album'], //从相册选择
 					success: (res) => {
 						console.log(1)
 						this.url = res.tempFilePaths[0]
@@ -344,18 +346,20 @@
 		margin: 0 auto;
 		border-radius: 20rpx !important;
 	}
-	.loading{
+
+	.loading {
 		position: absolute;
 		top: 0;
 		left: 0;
 		z-index: 100;
-		width:100%;
+		width: 100%;
 		height: 100vh;
-		background-color: rgba(0,0,0,0.5);
+		background-color: rgba(0, 0, 0, 0.5);
 		display: flex;
 		justify-content: center;
 		align-items: center;
 	}
+
 	.function {
 		width: 95%;
 		margin: 20rpx auto;
@@ -397,6 +401,7 @@
 			.equipment_item_img {
 				width: 49%;
 				margin-top: 20rpx;
+
 				image {
 					width: 100%;
 					height: 190rpx;

+ 3 - 3
pages/login/login.vue

@@ -79,7 +79,7 @@
 				isShow: false, //进度条
 				percentNum: 0, //在线下载进度
 				passvalue: false,
-				turnover: true
+				turnover: true,
 			}
 		},
 		onLoad() {
@@ -205,8 +205,8 @@
 			upgrade() {
 				console.log(this.appName)
 				// var url = this.value + "/app_file/" + this.appName
-				// var appName = "big_data2"//中性
-				var appName = "big_data"//云飞
+				var appName = "big_data2"//中性
+				// var appName = "big_data"//云飞
 				var url = "http://hnyfwlw.com/app/"+appName+".apk"
 				const downloadTask = uni.downloadFile({
 					url: url, //仅为示例,并非真实的资源

+ 89 - 8
pages/monitor/index.vue

@@ -3,12 +3,21 @@
 		<view class="status_bar"></view>
 		<view class="" style="position: relative;top: 44px;">
 			<view style="position: fixed;z-index: 100;">
-				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="监控系统"></uni-nav-bar>
+				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="监控系统" right-icon="search"
+					@clickRight="clickRight" size="16"></uni-nav-bar>
+				<view class="inputs" :style="{'width':width+'rpx'}">
+					<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp"
+						class="inputbox" :clearable="false" />
+					<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
+				</view>
 				<view class="" style="margin-top: -10rpx;">
 					<image :src="'http://www.hnyfwlw.com:8006/bigdata_app/image/monitor/banner.png'" mode="widthFix">
 					</image>
 				</view>
 			</view>
+			<view class="loading" v-if="loadingtf">
+				<image src="../../static/images/ajax-loader.gif" mode="" class="img"></image>
+			</view>
 			<view class="contenttf" v-if="contenttf">
 				暂无数据
 			</view>
@@ -25,7 +34,8 @@
 							</view>
 						</view>
 						<view class="type-name">
-							<view class="iconfont icon-jiankong"></view>
+							<u-icon name="jiankong" custom-prefix="custom-icon"
+								:class="item.is_online==1?'icon':'noicon'"></u-icon>
 							<text>
 								监控
 							</text>
@@ -42,6 +52,9 @@
 </template>
 
 <script>
+	import {
+		Debounce
+	} from "../../util/anitthro.js"
 	import equipItem from "../../components/equip-item/equip-item"
 	export default {
 		data() {
@@ -52,6 +65,9 @@
 				counts: '',
 				isTop: false,
 				contenttf: false,
+				width: 0, //顶部搜索栏宽度
+				imports: "", //搜索id
+				loadingtf:false,//loading
 			}
 		},
 		onLoad() {
@@ -64,7 +80,6 @@
 			setTimeout(() => {
 				uni.stopPullDownRefresh()
 			}, 1000)
-
 		},
 		onReachBottom() {
 			this.page++
@@ -82,12 +97,16 @@
 		},
 		methods: {
 			async getEquipList() {
+				this.loadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=camera.camera_manage.list_camera',
 					data: {
-						page: this.page
+						page: this.page,
+						page_size: 10,
+						device_id: this.imports,
 					}
 				})
+				this.loadingtf = false
 				console.log(res)
 				if (res.counts == 0) {
 					this.contenttf = true
@@ -125,11 +144,27 @@
 					duration: 500
 				})
 			},
-			siminfo(sim){
+			siminfo(sim) {
 				uni.navigateTo({
-					url: "./sim?simid="+sim
+					url: "./sim?simid=" + sim
 				})
-			}
+			},
+			clickRight() {
+				// uni.navigateTo({
+				// 	url: "./search"
+				// })
+				this.width = 600
+			},
+			search() { //搜索按钮搜索
+				this.listArr = []
+				this.getEquipList()
+			},
+			searchinp() { //自动搜索
+				Debounce(() => {
+					this.listArr = []
+					this.getEquipList()
+				}, 1000)()
+			},
 		},
 		components: {
 			equipItem
@@ -143,12 +178,47 @@
 		width: 100%;
 	}
 
+	.inputs {
+		height: 54rpx;
+		background-color: #E4E4E4;
+		border-radius: 27rpx;
+		position: absolute;
+		right: 20rpx;
+		top: 20rpx;
+		transition: width 0.5s;
+		overflow: hidden;
+		padding-top: 8rpx;
+		box-sizing: border-box;
+
+		.inputbox {
+			width: 85%;
+			text-indent: 1rem;
+			font-size: 26rpx;
+		}
+
+		.icon {
+			position: absolute;
+			top: 8rpx;
+			right: 26rpx;
+		}
+	}
+
 	.type-name {
 		color: #999;
 		display: flex;
 		justify-content: flex-start;
 		font-size: 12px;
 
+		.icon {
+			font-size: 32rpx;
+			color: #19BE6B;
+		}
+
+		.noicon {
+			font-size: 32rpx;
+			color: #f00;
+		}
+
 		text {
 			margin-left: 10px;
 		}
@@ -162,7 +232,17 @@
 		text-align: center;
 		font-size: 20px;
 	}
-
+	.loading{
+		position: fixed;
+		top: 440px;
+		width: 95%;
+		left: 2.5%;
+		text-align: center;
+		.img{
+			width: 300rpx;
+			height: 40rpx;
+		}
+	}
 	.content {
 		position: absolute;
 		top: 130px;
@@ -172,6 +252,7 @@
 		.content_title {
 			display: flex;
 			justify-content: space-between;
+
 			.sim {
 				width: 126rpx;
 				color: #42b983;

+ 6 - 6
pages/my/about/about.vue

@@ -1,6 +1,6 @@
 <template>
 	<view>
-		<view class="line"></view>
+		<!-- <view class="line"></view>
 		<view class="logo-box">
 			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/c9b4eb88c03b2f7460e8479e80f40fc.png'" mode="widthFix"></image>
 			<view class="version">
@@ -40,7 +40,7 @@
 				<text class="tit">公司邮箱</text>
 				<text class="val">hnyf826@163.com</text>
 			</view>
-		</view>
+		</view> -->
 		<view class="line"></view>
 		<view class="part">
 			<view class="info-item" @click="renewal">
@@ -55,7 +55,7 @@
 				<text class="tit">更新记录</text>
 				<u-icon name="arrow-right"></u-icon>
 			</view>
-		</view>
+		</view><!-- 
 		<view class="bottom">
 			©河南云飞科技发展有限公司
 		</view>
@@ -63,7 +63,7 @@
 			<view class="upgradeBox">
 				<u-line-progress v-show="isShow" active-color="#19be6b" :striped="true" :percent="percentNum" :striped-active="true"></u-line-progress>
 			</view>
-		</u-modal>
+		</u-modal> -->
 	</view>
 </template>
 
@@ -143,9 +143,9 @@
 				// console.log(this.appName)
 				// ---------------------------------------------------------------------------------------------------------------------------
 				//中性版
-				// this.appName = "big_data2"
+				this.appName = "big_data2"
 				//标准版
-				this.appName = "big_data"
+				// this.appName = "big_data"
 				var url = "http://hnyfwlw.com/app/" + this.appName + ".apk"
 				console.log(url)
 				const downloadTask = uni.downloadFile({

+ 4 - 4
pages/my/index/index.vue

@@ -18,16 +18,16 @@
 			</view>
 			<view style="background-color: #FFFFFF;margin: 20rpx auto 0;">
 				<view class="AboutUs" @click="about">
-					<u-icon name="moban" custom-prefix="custom-icon" class="icon_left"></u-icon>
-					关于我们
-					<!-- 关于更新 -->
+					<u-icon name="pingtai" custom-prefix="custom-icon" class="icon_left"></u-icon>
+					<!-- 关于我们 -->
+					关于更新
 					<p class="update" v-if="updateTF">NEW</p>
 					<uni-icons type="arrowright" class="icon_right"></uni-icons>
 				</view>
 			</view>
 			<view style="background-color: #FFFFFF;">
 				<view class="quit" @click="outto">
-					<u-icon name="tuichu" custom-prefix="custom-icon" class="icon_left"></u-icon>
+					<u-icon name="tuichudenglu" custom-prefix="custom-icon" class="icon_left"></u-icon>
 					退出登录
 					<uni-icons type="arrowright" class="icon_right"></uni-icons>
 				</view>

+ 55 - 24
pages/prevention/equipmentdetails.vue

@@ -7,10 +7,13 @@
 			</view>
 			<view class="info">
 				<view class="info_item">
-					<image :src="eqinfo.item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/cb/onBg.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/cb/offBg.png'"
-					 mode="" class="bgi"></image>
-					<p style="font-size: 32rpx;" @click="copy(eqinfo.item.imei || eqinfo.item.device_id)">设备 ID:{{eqinfo.item.imei || eqinfo.item.device_id}}
-					<image src="http://www.hnyfwlw.com:8006/bigdata_app/image/environment/fuzhi.png" mode="" class="tishi"></image>
+					<image
+						:src="eqinfo.item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/cb/onBg.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/cb/offBg.png'"
+						mode="" class="bgi"></image>
+					<p style="font-size: 32rpx;" @click="copy(eqinfo.item.imei || eqinfo.item.device_id)">设备
+						ID:{{eqinfo.item.imei || eqinfo.item.device_id}}
+						<image src="http://www.hnyfwlw.com:8006/bigdata_app/image/environment/fuzhi.png" mode=""
+							class="tishi"></image>
 					</p>
 					<p>设备名称:{{eqinfo.item.device_name}}</p>
 					<p>设备型号:{{eqinfo.item.dtype}}</p>
@@ -38,7 +41,7 @@
 			</view>
 			<view class="realtime">
 				<p class="realtime_title">实时数据</p>
-				<view class="realtime_text" v-if="newdatesTF">
+				<view class="realtime_text">
 					<view class="realtime_text_item">
 						<view class="realtime_text_item_info" v-for="item,index in olddatas" :key="index">
 							<view class="item_info_img">
@@ -51,9 +54,12 @@
 						</view>
 					</view>
 				</view>
-				<view class="realtime_tishi" v-else>
+				<view class="realtime_tishi" v-if="!newdatesTF && !dataloadingtf">
 					暂无数据
 				</view>
+				<view class="realtime_tishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
+				</view>
 			</view>
 		</view>
 	</view>
@@ -65,12 +71,13 @@
 				eqinfo: {},
 				olddata: {},
 				olddatas: [],
-				newdatesTF: false,
+				newdatesTF: false, //暂无数据显示隐藏
 				work: "",
 				shujutf: false,
 				kongtf: false,
 				simtf: false,
-				city:""
+				city: "",
+				dataloadingtf: true, //加载中显示隐藏
 			}
 		},
 		methods: {
@@ -97,11 +104,11 @@
 					}, {
 						icon: '/image/cb/icon08.png',
 						txt: '环境温度(℃)',
-						value: this.olddata.new_tem==""?"--":this.olddata.new_tem
+						value: this.olddata.new_tem == "" ? "--" : this.olddata.new_tem
 					}, {
 						icon: '/image/cb/icon07.png',
 						txt: '环境湿度(%)',
-						value: this.olddata.new_hum==""?"--":this.olddata.new_hum
+						value: this.olddata.new_hum == "" ? "--" : this.olddata.new_hum
 					}, {
 						icon: '/image/prevention/icon16.png',
 						txt: '信号强度',
@@ -132,13 +139,19 @@
 				]
 			},
 			async history() { //设备列表
+				var newtime = +new Date() / 1000
+				var oldtime = newtime - 24 * 60 * 60
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.device_history_data',
 					data: {
 						device_type_id: 2,
-						device_id: this.eqinfo.item.imei
+						device_id: this.eqinfo.item.imei,
+						start_time: parseInt(oldtime),
+						end_time: parseInt(newtime)
 					}
 				})
+				this.dataloadingtf = false
 				if (res.data.length != 0) {
 					this.olddata = res.data[0].d_h_t
 					this.newdatesTF = true
@@ -177,11 +190,11 @@
 					url: "./sim?id=" + this.eqinfo.item.d_id
 				})
 			},
-			repairs(){
+			repairs() {
 				console.log(this.eqinfo.item)
 				var device_id = this.eqinfo.item.imei
 				uni.navigateTo({
-					url: "../afterSale/addafter?device_id="+ device_id +"&device_type="+ 2
+					url: "../afterSale/addafter?device_id=" + device_id + "&device_type=" + 2
 				})
 			},
 			control() { //设备控制
@@ -194,15 +207,15 @@
 					url: "./ucharts?d_id=" + this.eqinfo.item.d_id + "&imei=" + this.eqinfo.item.imei
 				})
 			},
-			copy(item){
+			copy(item) {
 				uni.setClipboardData({
-				    data: item , 
-				    success: function () {
-				        console.log('success');
-				    }
+					data: item,
+					success: function() {
+						console.log('success');
+					}
 				});
 			},
-			selectaddress(lat,lng) { //获取分布位置
+			selectaddress(lat, lng) { //获取分布位置
 				uni.request({
 					type: "GET",
 					url: "https://restapi.amap.com/v3/geocode/regeo?output=JSON&location=" + lng + "," + lat +
@@ -210,9 +223,9 @@
 					dataType: "json",
 					complete: ress => {
 						console.log(ress.data.regeocode.formatted_address)
-						if(ress.data.regeocode.formatted_address.length==0){
-							this.city="--"
-						}else{
+						if (ress.data.regeocode.formatted_address.length == 0) {
+							this.city = "--"
+						} else {
 							this.city = ress.data.regeocode.formatted_address
 						}
 					}
@@ -224,7 +237,7 @@
 			this.eqinfo.item = JSON.parse(option.shebei)
 			console.log(JSON.parse(option.shebei))
 			this.eqlist(JSON.parse(option.shebei).device_id || JSON.parse(option.shebei).imei)
-			this.selectaddress(this.eqinfo.item.lat,this.eqinfo.item.lng)
+			this.selectaddress(this.eqinfo.item.lat, this.eqinfo.item.lng)
 			uni.getStorage({
 				key: "jurisdiction",
 				success: (res) => {
@@ -289,7 +302,8 @@
 				font-size: 24rpx;
 				color: #FFFFFF;
 				margin-bottom: 10rpx;
-				.tishi{
+
+				.tishi {
 					width: 30rpx;
 					height: 30rpx;
 					margin: 0rpx 0 0 20rpx;
@@ -334,6 +348,23 @@
 			width: 90%;
 			margin: 0 auto;
 		}
+		.dataloading:after {
+			overflow: hidden;
+			display: inline-block;
+			vertical-align: bottom;
+			animation: ellipsis 2s infinite;
+			content: "\2026";
+		}
+
+		@keyframes ellipsis {
+			from {
+				width: 2px;
+			}
+
+			to {
+				width: 15px;
+			}
+		}
 
 		.realtime_tishi {
 			width: 90%;

+ 65 - 7
pages/prevention/index.vue

@@ -5,8 +5,15 @@
 			<view style="position: fixed;z-index: 100;">
 				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="防治系统" right-icon="search" @clickRight="clickRight"
 				 size="16"></uni-nav-bar>
+				 <view class="inputs" :style="{'width':width+'rpx'}">
+					<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp" class="inputbox" :clearable="false"/>
+					<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
+				 </view>
 			</view>
 			<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/prevention/1.png'" mode="" class="image"></image>
+			<view class="loading" v-if="loadingtf">
+				<image src="../../static/images/ajax-loader.gif" mode="" class="img"></image>
+			</view>
 			<view class="prevents">
 				<view class="prevents_item" v-for="item,index in eqlistdata" :key="index" @click="eqdetails(item)">
 					<image :src="item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/6.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/7.png'"
@@ -45,6 +52,7 @@
 </template>
 
 <script>
+	import {Debounce} from "../../util/anitthro.js"
 	export default {
 		data() {
 			return {
@@ -53,20 +61,26 @@
 				eqlistdata: [],
 				isTop:false,
 				filtrateTF:false,
-				device_status:""
+				device_status:"",
+				width:0,
+				imports:"",//搜索内容
+				loadingtf:false,//loading
 			}
 		},
 		methods: {
 			async eqlist() { //设备列表
+				this.loadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
 					data: {
 						device_type_id: 2,
 						page: this.page,
 						page_size: "10",
-						device_status:this.device_status
+						device_status:this.device_status,
+						device_id: this.imports
 					}
 				})
+				this.loadingtf = false
 				this.eqlistdata = this.eqlistdata.concat(res.data)
 				console.log(this.eqlistdata)
 			},
@@ -76,9 +90,10 @@
 				})
 			},
 			clickRight() {
-				uni.navigateTo({
-					url: "./search"
-				})
+				// uni.navigateTo({
+				// 	url: "./search"
+				// })
+				this.width = 600
 			},
 			eqdetails(data) {
 				uni.navigateTo({
@@ -114,7 +129,17 @@
 				this.device_status = ""
 				this.eqlist()
 				this.filtrateTF = !this.filtrateTF
-			}
+			},
+			search() {//搜索按钮搜索
+				this.eqlistdata = []
+				this.eqlist()
+			},
+			searchinp() {//自动搜索
+				Debounce(() => {
+					this.eqlistdata = []
+					this.eqlist()
+				}, 1000)()
+			},
 		},
 		onLoad() {
 			this.eqlist()
@@ -134,6 +159,29 @@
 </script>
 
 <style lang="scss">
+	.inputs{
+		height: 54rpx;
+		background-color: #E4E4E4;
+		border-radius: 27rpx;
+		position: absolute;
+		right: 20rpx;
+		top: 24rpx;
+		transition: width 0.5s; 
+		overflow: hidden;
+		padding-top: 8rpx;
+		box-sizing: border-box;
+		.inputbox {
+			width: 85%;
+			text-indent: 1rem;
+			font-size: 26rpx;
+		}
+		
+		.icon {
+			position: absolute;
+			top: 8rpx;
+			right: 26rpx;
+		}
+	}
 	/deep/.uni-icons {
 		font-size: 40rpx !important;
 	}
@@ -145,7 +193,17 @@
 		height: 160rpx;
 		z-index: 555;
 	}
-
+	.loading{
+		position: fixed;
+		top: 440px;
+		width: 95%;
+		left: 2.5%;
+		text-align: center;
+		.img{
+			width: 300rpx;
+			height: 40rpx;
+		}
+	}
 	.prevents {
 		width: 100%;
 		position: absolute;

+ 0 - 171
pages/prevention/search.vue

@@ -1,171 +0,0 @@
-<template>
-	<view>
-		<view class="status_bar"></view>
-		<view class="" style="position: relative;top: 44px;">
-			<view style="position: fixed;z-index: 100;">
-				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回"></uni-nav-bar>
-				<view class="search_top_input">
-					<input type="text" value="" placeholder="请输入设备ID或设备名称" v-model="imports" @input="searchinp" />
-					<u-icon name="search" size="40" class="icon" @click="search"></u-icon>
-				</view>
-			</view>
-			<view class="prevents">
-				<view class="prevents_item" v-for="item,index in eqlistdata" :key="index" @click="eqdetails(item)">
-					<image :src="item.is_online==1?'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/6.png':'http://www.hnyfwlw.com:8006/bigdata_app/image/prevention/7.png'"
-					 mode="" class="prevents_item_img"></image>
-					<view class="prevents_item_top">
-						<p>设备名称:{{item.device_name==""?"无":item.device_name}}</p>
-						<p :class="item.is_online==1?'green':'red'" v-text="item.is_online==1?'在线':'离线'"></p>
-					</view>
-					<view class="prevents_item_bot">
-						<p>设备 ID:{{item.imei}}</p>
-						<p>最新上报时间:{{item.addtime|timeFormat()}}</p>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {Debounce} from "../../util/anitthro.js"
-	export default {
-		data() {
-			return {
-				imports: '',
-				eqlistdata: [],
-				page: 1,
-				size: 10,
-				show: false,
-				value: '',
-				options1: [{
-						text: "杀虫灯",
-						id: 2
-					},
-					{
-						text: "虫情测报",
-						id: 3
-					},
-					{
-						text: "孢子仪",
-						id: 7
-					},
-					{
-						text: "性诱设备",
-						id: 4
-					},
-				]
-			}
-		},
-		methods: {
-			async eqlist() { //设备列表
-				const res = await this.$myRequest({
-					url: '/api/api_gateway?method=forecast.worm_lamp.lamp_list',
-					data: {
-						device_type_id: 2,
-						page: this.page,
-						size: this.size,
-						device_id: this.imports
-					}
-				})
-				this.eqlistdata = this.eqlistdata.concat(res.data)
-				console.log(this.eqlistdata)
-			},
-			clickLeft() {
-				uni.navigateBack({
-					delta: 1
-				})
-			},
-			search() {
-				this.eqlistdata = []
-				this.eqlist()
-			},
-			searchinp() {
-				Debounce(() => {
-					this.eqlistdata = []
-					this.eqlist()
-				}, 1000)()
-			},
-			actionSheetCallback(index) { //选择框
-				this.value = this.options1[index].text;
-				// this.id = this.options1[index].id
-			},
-			eqdetails(data) {
-				uni.navigateTo({
-					url: "./equipmentdetails?shebei=" + JSON.stringify(data)
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.search_top_input {
-		width: 80%;
-		height: 54rpx;
-		background-color: #E4E4E4;
-		border-radius: 27rpx;
-		position: absolute;
-		top: 18rpx;
-		right: 18rpx;
-		padding-top: 8rpx;
-		box-sizing: border-box;
-		input {
-			width: 85%;
-			text-indent: 1rem;
-			font-size: 26rpx;
-		}
-
-		.icon {
-			position: absolute;
-			top: 8rpx;
-			right: 26rpx;
-		}
-	}
-
-	.prevents {
-		width: 100%;
-		position: absolute;
-		top: 54px;
-
-		.prevents_item {
-			width: 95%;
-			margin: 0 auto 30rpx;
-			border-radius: 10rpx;
-			box-shadow: 0 0 10rpx #bcb9ca;
-			padding: 20rpx 40rpx 20rpx 80rpx;
-			position: relative;
-			box-sizing: border-box;
-			.prevents_item_img {
-				width: 30rpx;
-				height: 50rpx;
-				position: absolute;
-				top: -4rpx;
-				left: 30rpx;
-			}
-
-			.prevents_item_top {
-				display: flex;
-				justify-content: space-between;
-				height: 60rpx;
-				border-bottom: 2rpx solid #F4F4F4;
-				line-height: 60rpx;
-				font-size: 26rpx;
-
-				.red {
-					color: #ff0000;
-				}
-
-				.green {
-					color: #7DBB91;
-				}
-			}
-
-			.prevents_item_bot {
-				margin-top: 20rpx;
-				font-size: 26rpx;
-				color: #BDBDBD;
-			}
-		}
-	}
-</style>

+ 153 - 162
pages/prevention/ucharts.vue

@@ -5,53 +5,47 @@
 			<view style="position: fixed;z-index: 100;width: 100%;color: #FFFFFF;">
 				<uni-nav-bar @clickLeft="clickLeft" left-icon="back" left-text="返回" title="历史数据"></uni-nav-bar>
 			</view>
+			<view class="selecttimes" @click="tiemshow=!tiemshow">
+				<view class="timesbox">
+					<image
+						:src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/prevention/1acfe2751c01d3786cdc49b83d7e505.png'"
+						mode=""></image>
+					<p>{{timetab(oldtime)}}</p>
+					<p class="or">~</p>
+					<p>{{timetab(newtime)}}</p>
+					<u-icon name="rili" custom-prefix="custom-icon" class="icon"></u-icon>
+				</view>
+				<u-calendar v-model="tiemshow" mode="range" @change="tiemchange"></u-calendar>
+			</view>
 			<view class="shuju_one">
 				<view class="shuju_one_title">
-					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext" :key="index"
-					 @click="changeindex(index)">
+					<view :class="titleidnex==index?'title_text_color':'tltle_text'" v-for="(item,index) in titletext"
+						:key="index" @click="changeindex(index)">
 						{{item}}
 					</view>
 				</view>
-				<view class="canvastishi" v-if="!canvastishiTF">
+				<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
 					暂无数据
 				</view>
-				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts" @touchstart="touchLineA($event)" @touchmove="moveLineA($event)"
-				 @touchend="touchEndLineA($event)" disable-scroll=true :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
+				<view class="canvastishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
+				</view>
+				<canvas v-if="canvastishiTF" canvas-id="canvasColumnA" id="canvasColumnA" class="charts"
+					@touchstart="touchLineA($event)" @touchmove="moveLineA($event)" @touchend="touchEndLineA($event)"
+					disable-scroll=true
+					:style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
 			</view>
-			<view class="shuju_two" >
-				<view class="canvastishi" v-if="!canvastishiTF">
+			<view class="shuju_two">
+				<view class="canvastishi" v-if="!canvastishiTF && !dataloadingtf">
 					暂无数据
 				</view>
-				<canvas v-if="canvastishiTF" canvas-id="canvasColumnB" id="canvasColumnB" class="charts" @touchstart="touchLineBb($event)" @touchmove="moveLineBb($event)"
-				 @touchend="touchEndLineBb($event)" disable-scroll=true :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
-			</view>
-			<view class="selecttimes">
-				<view class="newtimes">
-					<view class="newtimes_state" @click="pickshow = !pickshow">
-						<view class="oldtimes_left"> 
-							<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/prevention/841f87bfd8abb1b09610fa0789f9d8e.png'" mode=""></image>
-							开始时间:{{this.oldtime|timeFormat()}}
-						</view>
-						<view class="oldtimes_left">
-							<u-icon name="arrow-down"></u-icon>
-						</view>
-						<u-picker mode="time" v-model="pickshow" :params="params" @confirm="pickone"></u-picker>
-					</view>
-					<view class="newtimes_end" @click="picktwoshow = !picktwoshow">
-						<view class="oldtimes_left">
-							<image :src="'http://www.hnyfwlw.com:8006/bigdata_app'+'/image/prevention/1acfe2751c01d3786cdc49b83d7e505.png'" mode=""></image>
-							结束时间:{{this.newtime|timeFormat()}}
-						</view>
-						<view class="oldtimes_left">
-							<u-icon name="arrow-down"></u-icon>
-						</view>
-						<u-picker mode="time" v-model="picktwoshow" :params="params" @confirm="picktwo"></u-picker>
-					</view>
-					<p class="tishi" v-if="tishiTF">请选择正确的结束时间</p>
-					<view class="btnser" @click="serter">
-						搜 索
-					</view>
+				<view class="canvastishi" v-if="dataloadingtf">
+					<p class="dataloading">加载中</p>
 				</view>
+				<canvas v-if="canvastishiTF" canvas-id="canvasColumnB" id="canvasColumnB" class="charts"
+					@touchstart="touchLineBb($event)" @touchmove="moveLineBb($event)" @touchend="touchEndLineBb($event)"
+					disable-scroll=true
+					:style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
 			</view>
 			<view class="refresh" @click="refresh">
 				刷 新
@@ -107,7 +101,8 @@
 	export default {
 		data() {
 			return {
-				thdata: ["上报时间","设备开关", "工作状态", "雨控状态", "温控状态", "倾倒状态", "定时(h)", "电击次数", "温度(℃)", "湿度(%)", "充电电压(v)", "电池电压(v)",	
+				thdata: ["上报时间", "设备开关", "工作状态", "雨控状态", "温控状态", "倾倒状态", "定时(h)", "电击次数", "温度(℃)", "湿度(%)", "充电电压(v)",
+					"电池电压(v)",
 				],
 				eqlistdata: [],
 				cWidth: '400',
@@ -119,25 +114,16 @@
 				newtime: '',
 				page: 1,
 				forbidden: false, //暂无数据
-				params: {
-					year: true,
-					month: true,
-					day: true,
-					hour: true,
-					minute: true,
-					second: false
-				},
-				pickshow: false,
-				picktwoshow: false,
-				tishiTF: false,
 				times: {
 					d_id: null,
 					start_time: null,
 					end_time: null,
 					device_id: null
 				},
-				canvastishiTF:false,
-				pagesum:0
+				canvastishiTF: false, //折线图暂无数据提示
+				dataloadingtf: true, //加载中提示
+				pagesum: 1,
+				tiemshow: false, //日历选择器
 			}
 		},
 		// 页面加载执行的函数
@@ -147,19 +133,22 @@
 			this.cWidth = uni.upx2px(650);
 			this.cHeight = uni.upx2px(500);
 		},
-		onShow(){
+		onShow() {
 			presenttime = +new Date();
 			this.oldtime = parseInt((presenttime - 24 * 60 * 60 * 1000) / 1000)
 			this.newtime = parseInt(presenttime / 1000)
-			setTimeout(()=>{
-				this.getServerData(parseInt(presenttime / 1000), parseInt((presenttime - 24 * 60 * 60 * 1000) / 1000))
-				this.historydata(parseInt(presenttime / 1000), parseInt((presenttime - 24 * 60 * 60 * 1000) / 1000))
-			},1000)
+			setTimeout(() => {
+				this.getServerData(parseInt(presenttime / 1000), parseInt((presenttime - 24 * 60 * 60 * 1000) /
+					1000))
+				this.historydata(parseInt(presenttime / 1000), parseInt((presenttime - 24 * 60 * 60 * 1000) /
+					1000))
+			}, 1000)
 		},
 		methods: { // 
 			//forecast.worm_lamp.device_polyline_data
 			// 获取数据,发请求
 			async getServerData(newtime, oldtimes) { //设备折线图
+				this.dataloadingtf = true
 				const res = await this.$myRequest({
 					url: '/api/api_gateway?method=forecast.worm_lamp.device_polyline_data',
 					data: {
@@ -169,9 +158,10 @@
 						start_time: oldtimes
 					}
 				})
-				if(res.length == 0){
+				this.dataloadingtf = false
+				if (res.length == 0) {
 					this.canvastishiTF = false
-				}else{
+				} else {
 					this.canvastishiTF = true
 					var xtitle = []
 					var arr = []
@@ -182,38 +172,39 @@
 					var arr5 = []
 					for (var i = 0; i < res.length; i++) {
 						var times = new Date(res[i].addtime * 1000)
-						xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" + times.getMinutes())
+						xtitle.unshift(times.getMonth() + 1 + "/" + times.getDate() + "-" + times.getHours() + ":" +
+							times.getMinutes())
 						arr1.unshift(res[i].temperature)
 						arr2.unshift(res[i].humidity)
 						arr3.unshift(Number(res[i].others.bv))
 						arr4.unshift(Number(res[i].others.cv))
 						arr5.unshift(res[i].others.ct)
 					}
-					arr.unshift(arr1,arr2,arr3,arr4)
+					arr.unshift(arr1, arr2, arr3, arr4)
 					var obj = [{
 						name: '温度',
 						data: arr[0],
 						color: '#F97000'
 					}, {
 						name: '湿度',
-						data:  arr[1],
+						data: arr[1],
 						color: '#00E29D'
 					}, {
 						name: '电池电压',
-						data:  arr[2],
+						data: arr[2],
 						color: '#FF3F3F'
 					}, {
 						name: '充电电压',
-						data:  arr[3],
+						data: arr[3],
 						color: '#6CBBFF'
 					}]
-					var obj2 =[{
+					var obj2 = [{
 						name: '击虫次数',
 						data: arr5,
 						color: '#00E29D'
 					}]
-					this.showColumn("canvasColumnA",xtitle, obj)
-					this.showColumnb("canvasColumnB",xtitle, obj2)
+					this.showColumn("canvasColumnA", xtitle, obj)
+					this.showColumnb("canvasColumnB", xtitle, obj2)
 				}
 			},
 			changeindex(index) { //选择日期
@@ -243,11 +234,6 @@
 					this.getServerData(parseInt(presenttime / 1000), parseInt(oldtime))
 					this.historydata(parseInt(presenttime / 1000), parseInt(oldtime))
 				}
-				if (this.newtime < this.oldtime) {
-					this.tishiTF = true
-				} else {
-					this.tishiTF = false
-				}
 			},
 			async historydata(newtime, oldtimes) { //设备表格数据
 				const res = await this.$myRequest({
@@ -262,7 +248,7 @@
 					}
 				})
 				console.log(res.data)
-				this.pagesum = Math.ceil(res.counts/10)+1
+				this.pagesum = Math.ceil(res.counts / 10) || 1
 				this.eqlistdata = res.data
 				if (res.data.length == 0) {
 					this.forbidden = false
@@ -273,59 +259,49 @@
 			prev() { //上一页
 				if (this.page != 1) {
 					this.page--
+					this.historydata(this.newtime, this.oldtime)
 				}
-				this.historydata(this.newtime, this.oldtime)
 			},
 			next() { //下一页
-				this.page++
-				this.historydata(this.newtime, this.oldtime)
-			},
-			pickone(e) {
-				this.oldtime = +new Date(e.year, e.month - 1, e.day, e.hour, e.minute) / 1000
-				if (this.newtime < this.oldtime) {
-					this.tishiTF = true
-				} else {
-					this.tishiTF = false
+				if (this.page < this.pagesum) {
+					this.page++
+					this.historydata(this.newtime, this.oldtime)
 				}
 			},
-			picktwo(e) {
-				this.newtime = +new Date(e.year, e.month - 1, e.day, e.hour, e.minute) / 1000
-				if (this.newtime < this.oldtime) {
-					this.tishiTF = true
-				} else {
-					this.tishiTF = false
-				}
+			tiemchange(e) {
+				console.log(e)
+				this.oldtime = +new Date(e.startDate) / 1000
+				this.newtime = +new Date(e.endDate) / 1000 + 16 * 60 * 60
+				this.getServerData(this.newtime, this.oldtime)
+				this.historydata(this.newtime, this.oldtime)
 			},
-			serter() {
-				if (this.tishiTF == false) {
-					this.getServerData(parseInt(presenttime / 1000), parseInt(this.oldtime))
-					this.historydata(this.newtime, this.oldtime)
-					uni.showToast({
-						title: '搜索成功',
-						duration: 2000
-					});
-				}
-				
+			timetab(e) {
+				e = new Date(e * 1000)
+				var year = e.getFullYear()
+				var month = e.getMonth() + 1 < 10 ? "0" + (e.getMonth() + 1) : e.getMonth() + 1
+				var day = e.getDate() < 10 ? "0" + e.getDate() : e.getDate()
+				var time = year + "/" + month + "/" + day
+				return time
 			},
 			clickLeft() {
 				uni.navigateBack({
 					delta: 1
 				})
 			},
-			showColumn(id,xtitle,xinfo) {
+			showColumn(id, xtitle, xinfo) {
 				var _self = this
 				canvaColumnA = new uCharts({
 					canvasId: id,
 					type: 'line',
 					legend: {
-						position:"top"
+						position: "top"
 					},
 					fontSize: 11,
 					background: '#FFFFFF',
 					pixelRatio: 1,
 					animation: true,
 					dataLabel: false,
-					categories:xtitle, 
+					categories: xtitle,
 					series: xinfo,
 					enableScroll: true, //开启图表拖拽功能
 					xAxis: {
@@ -348,20 +324,20 @@
 					}
 				});
 			},
-			showColumnb(id,xtitle,xinfo) {
+			showColumnb(id, xtitle, xinfo) {
 				var _self = this
 				canvaColumnB = new uCharts({
 					canvasId: id,
 					type: 'line',
 					legend: {
-						position:"top"
+						position: "top"
 					},
 					fontSize: 11,
 					background: '#FFFFFF',
 					pixelRatio: 1,
 					animation: true,
 					dataLabel: false,
-					categories: xtitle, 
+					categories: xtitle,
 					series: xinfo,
 					enableScroll: true, //开启图表拖拽功能
 					xAxis: {
@@ -425,7 +401,7 @@
 						control_type: "data"
 					}
 				})
-				if(res){
+				if (res) {
 					uni.showToast({
 						title: '刷新成功',
 						duration: 2000,
@@ -434,7 +410,7 @@
 					uni.navigateBack({
 						delta: 1
 					})
-				}else{
+				} else {
 					uni.showToast({
 						title: '刷新失败',
 						duration: 2000,
@@ -454,21 +430,40 @@
 	.shuju_one,
 	.shuju_two {
 		position: absolute;
-		top: 54px;
+		top: 190rpx;
 		width: 90%;
 		left: 5%;
 		box-shadow: 0 0 10rpx #bcb9ca;
 		padding-top: 20rpx;
 		height: 550rpx;
 
-		.canvastishi{
+		.canvastishi {
 			font-size: 32rpx;
 			position: absolute;
 			top: 50%;
 			left: 50%;
 			margin-left: -64rpx;
 			margin-top: -21rpx;
+
+			.dataloading:after {
+				overflow: hidden;
+				display: inline-block;
+				vertical-align: bottom;
+				animation: ellipsis 2s infinite;
+				content: "\2026";
+			}
+
+			@keyframes ellipsis {
+				from {
+					width: 2px;
+				}
+
+				to {
+					width: 15px;
+				}
+			}
 		}
+
 		.shuju_one_title {
 			width: 70%;
 			margin: 0 auto;
@@ -477,7 +472,7 @@
 			.tltle_text {
 				width: 25%;
 				border: 2rpx solid #B2B2B2;
-				color: #B2B2B2;
+				color: #57c878;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -486,8 +481,9 @@
 
 			.title_text_color {
 				width: 25%;
-				border: 2rpx solid #28AE4F;
-				color: #28AE4F;
+				border: 2rpx solid #57c878;
+				background-color: #57c878;
+				color: #fff;
 				text-align: center;
 				font-size: 24rpx;
 				height: 50rpx;
@@ -511,78 +507,53 @@
 	}
 
 	.shuju_two {
-		top: 700rpx;
+		top: 790rpx;
 	}
 
 	.selecttimes {
 		position: absolute;
-		top: 1290rpx;
+		top: 54px;
 		width: 90%;
 		box-shadow: 0 0 10rpx #bcb9ca;
 		left: 5%;
+		padding: 10rpx 20rpx;
+		box-sizing: border-box;
 
-		.tishi {
-			width: 90%;
-			margin: 0 auto;
-			color: #f00000;
-			text-align: center;
-			font-size: 24rpx;
-		}
+		.timesbox {
+			display: flex;
+			justify-content: space-around;
 
-		.btnser {
-			width: 90%;
-			margin: 10rpx auto;
-			color: #FFFFFF;
-			text-align: center;
-			font-size: 28rpx;
-			background-color: #58BD4D;
-			border-radius: 20rpx;
-			height: 50rpx;
-			line-height: 50rpx;
-		}
+			image {
+				width: 30rpx;
+				height: 30rpx;
+				margin-top: 6rpx;
+			}
 
-		.newtimes {
-			width: 100%;
-			padding: 20rpx 20rpx;
-			box-sizing: border-box;
+			.icon {
+				color: #949494;
+				text-align: right;
+				margin-left: 30rpx;
 
-			.newtimes_state,
-			.newtimes_end {
-				display: flex;
-				justify-content: space-between;
-				margin-bottom: 20rpx;
-
-				.oldtimes_left {
-					position: relative;
-					padding-left: 36rpx;
-					font-size: 28rpx;
-
-					image {
-						width: 30rpx;
-						height: 30rpx;
-						vertical-align: top;
-						position: absolute;
-						top: 7rpx;
-						left: 0;
-					}
-				}
 			}
 		}
 	}
-	.refresh{
+
+	.refresh {
 		position: absolute;
-		top: 1530rpx;
+		top: 1380rpx;
 		left: 5%;
 		width: 160rpx;
 		height: 50rpx;
-		background-color: #28AE4F;
+		background-color: #57c878;
 		color: #FFFFFF;
 		line-height: 50rpx;
 		text-align: center;
+		box-shadow: 0 0 10rpx #bcb9ca;
 	}
+
 	.condition {
 		position: absolute;
-		top: 1600rpx;
+		top: 1450rpx;
 		display: flex;
 		flex-wrap: wrap;
 		width: 90%;
@@ -593,9 +564,11 @@
 		.scroll-X {
 			width: 95%;
 			margin: 20rpx auto;
-			.table{
+
+			.table {
 				width: 1056px;
 			}
+
 			.tr {
 				display: flex;
 				overflow: hidden;
@@ -608,7 +581,7 @@
 					text-align: center;
 					height: 52rpx;
 					line-height: 52rpx;
-					border: 2rpx solid #F1F1F1;
+					// border: 2rpx solid #F1F1F1;
 				}
 
 				.th:first-child,
@@ -623,6 +596,15 @@
 					width: 200rpx;
 				}
 			}
+
+			.tr:nth-child(2n-1) {
+				background-color: #f5fff8;
+			}
+
+			.tr:first-child {
+				background-color: #57c878;
+				color: #fff;
+			}
 		}
 
 		.pagenumber {
@@ -635,7 +617,7 @@
 				line-height: 50rpx;
 				font-size: 26rpx;
 				text-align: center;
-				background-color: #17BB89;
+				background-color: #57c878;
 				color: #FFFFFF;
 			}
 
@@ -648,4 +630,13 @@
 			}
 		}
 	}
+
+	/deep/.u-calendar__action {
+		display: flex;
+		justify-content: space-around;
+
+		.u-calendar__action__text {
+			line-height: 25px;
+		}
+	}
 </style>

+ 0 - 539
static/font/demo.css

@@ -1,539 +0,0 @@
-/* Logo 字体 */
-@font-face {
-  font-family: "iconfont logo";
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
-}
-
-.logo {
-  font-family: "iconfont logo";
-  font-size: 160px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-/* tabs */
-.nav-tabs {
-  position: relative;
-}
-
-.nav-tabs .nav-more {
-  position: absolute;
-  right: 0;
-  bottom: 0;
-  height: 42px;
-  line-height: 42px;
-  color: #666;
-}
-
-#tabs {
-  border-bottom: 1px solid #eee;
-}
-
-#tabs li {
-  cursor: pointer;
-  width: 100px;
-  height: 40px;
-  line-height: 40px;
-  text-align: center;
-  font-size: 16px;
-  border-bottom: 2px solid transparent;
-  position: relative;
-  z-index: 1;
-  margin-bottom: -1px;
-  color: #666;
-}
-
-
-#tabs .active {
-  border-bottom-color: #f00;
-  color: #222;
-}
-
-.tab-container .content {
-  display: none;
-}
-
-/* 页面布局 */
-.main {
-  padding: 30px 100px;
-  width: 960px;
-  margin: 0 auto;
-}
-
-.main .logo {
-  color: #333;
-  text-align: left;
-  margin-bottom: 30px;
-  line-height: 1;
-  height: 110px;
-  margin-top: -50px;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.main .logo a {
-  font-size: 160px;
-  color: #333;
-}
-
-.helps {
-  margin-top: 40px;
-}
-
-.helps pre {
-  padding: 20px;
-  margin: 10px 0;
-  border: solid 1px #e7e1cd;
-  background-color: #fffdef;
-  overflow: auto;
-}
-
-.icon_lists {
-  width: 100% !important;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.icon_lists li {
-  width: 100px;
-  margin-bottom: 10px;
-  margin-right: 20px;
-  text-align: center;
-  list-style: none !important;
-  cursor: default;
-}
-
-.icon_lists li .code-name {
-  line-height: 1.2;
-}
-
-.icon_lists .icon {
-  display: block;
-  height: 100px;
-  line-height: 100px;
-  font-size: 42px;
-  margin: 10px auto;
-  color: #333;
-  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
-  -moz-transition: font-size 0.25s linear, width 0.25s linear;
-  transition: font-size 0.25s linear, width 0.25s linear;
-}
-
-.icon_lists .icon:hover {
-  font-size: 100px;
-}
-
-.icon_lists .svg-icon {
-  /* 通过设置 font-size 来改变图标大小 */
-  width: 1em;
-  /* 图标和文字相邻时,垂直对齐 */
-  vertical-align: -0.15em;
-  /* 通过设置 color 来改变 SVG 的颜色/fill */
-  fill: currentColor;
-  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
-      normalize.css 中也包含这行 */
-  overflow: hidden;
-}
-
-.icon_lists li .name,
-.icon_lists li .code-name {
-  color: #666;
-}
-
-/* markdown 样式 */
-.markdown {
-  color: #666;
-  font-size: 14px;
-  line-height: 1.8;
-}
-
-.highlight {
-  line-height: 1.5;
-}
-
-.markdown img {
-  vertical-align: middle;
-  max-width: 100%;
-}
-
-.markdown h1 {
-  color: #404040;
-  font-weight: 500;
-  line-height: 40px;
-  margin-bottom: 24px;
-}
-
-.markdown h2,
-.markdown h3,
-.markdown h4,
-.markdown h5,
-.markdown h6 {
-  color: #404040;
-  margin: 1.6em 0 0.6em 0;
-  font-weight: 500;
-  clear: both;
-}
-
-.markdown h1 {
-  font-size: 28px;
-}
-
-.markdown h2 {
-  font-size: 22px;
-}
-
-.markdown h3 {
-  font-size: 16px;
-}
-
-.markdown h4 {
-  font-size: 14px;
-}
-
-.markdown h5 {
-  font-size: 12px;
-}
-
-.markdown h6 {
-  font-size: 12px;
-}
-
-.markdown hr {
-  height: 1px;
-  border: 0;
-  background: #e9e9e9;
-  margin: 16px 0;
-  clear: both;
-}
-
-.markdown p {
-  margin: 1em 0;
-}
-
-.markdown>p,
-.markdown>blockquote,
-.markdown>.highlight,
-.markdown>ol,
-.markdown>ul {
-  width: 80%;
-}
-
-.markdown ul>li {
-  list-style: circle;
-}
-
-.markdown>ul li,
-.markdown blockquote ul>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown>ul li p,
-.markdown>ol li p {
-  margin: 0.6em 0;
-}
-
-.markdown ol>li {
-  list-style: decimal;
-}
-
-.markdown>ol li,
-.markdown blockquote ol>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown code {
-  margin: 0 3px;
-  padding: 0 5px;
-  background: #eee;
-  border-radius: 3px;
-}
-
-.markdown strong,
-.markdown b {
-  font-weight: 600;
-}
-
-.markdown>table {
-  border-collapse: collapse;
-  border-spacing: 0px;
-  empty-cells: show;
-  border: 1px solid #e9e9e9;
-  width: 95%;
-  margin-bottom: 24px;
-}
-
-.markdown>table th {
-  white-space: nowrap;
-  color: #333;
-  font-weight: 600;
-}
-
-.markdown>table th,
-.markdown>table td {
-  border: 1px solid #e9e9e9;
-  padding: 8px 16px;
-  text-align: left;
-}
-
-.markdown>table th {
-  background: #F7F7F7;
-}
-
-.markdown blockquote {
-  font-size: 90%;
-  color: #999;
-  border-left: 4px solid #e9e9e9;
-  padding-left: 0.8em;
-  margin: 1em 0;
-}
-
-.markdown blockquote p {
-  margin: 0;
-}
-
-.markdown .anchor {
-  opacity: 0;
-  transition: opacity 0.3s ease;
-  margin-left: 8px;
-}
-
-.markdown .waiting {
-  color: #ccc;
-}
-
-.markdown h1:hover .anchor,
-.markdown h2:hover .anchor,
-.markdown h3:hover .anchor,
-.markdown h4:hover .anchor,
-.markdown h5:hover .anchor,
-.markdown h6:hover .anchor {
-  opacity: 1;
-  display: inline-block;
-}
-
-.markdown>br,
-.markdown>p>br {
-  clear: both;
-}
-
-
-.hljs {
-  display: block;
-  background: white;
-  padding: 0.5em;
-  color: #333333;
-  overflow-x: auto;
-}
-
-.hljs-comment,
-.hljs-meta {
-  color: #969896;
-}
-
-.hljs-string,
-.hljs-variable,
-.hljs-template-variable,
-.hljs-strong,
-.hljs-emphasis,
-.hljs-quote {
-  color: #df5000;
-}
-
-.hljs-keyword,
-.hljs-selector-tag,
-.hljs-type {
-  color: #a71d5d;
-}
-
-.hljs-literal,
-.hljs-symbol,
-.hljs-bullet,
-.hljs-attribute {
-  color: #0086b3;
-}
-
-.hljs-section,
-.hljs-name {
-  color: #63a35c;
-}
-
-.hljs-tag {
-  color: #333333;
-}
-
-.hljs-title,
-.hljs-attr,
-.hljs-selector-id,
-.hljs-selector-class,
-.hljs-selector-attr,
-.hljs-selector-pseudo {
-  color: #795da3;
-}
-
-.hljs-addition {
-  color: #55a532;
-  background-color: #eaffea;
-}
-
-.hljs-deletion {
-  color: #bd2c00;
-  background-color: #ffecec;
-}
-
-.hljs-link {
-  text-decoration: underline;
-}
-
-/* 代码高亮 */
-/* PrismJS 1.15.0
-https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
-/**
- * prism.js default theme for JavaScript, CSS and HTML
- * Based on dabblet (http://dabblet.com)
- * @author Lea Verou
- */
-code[class*="language-"],
-pre[class*="language-"] {
-  color: black;
-  background: none;
-  text-shadow: 0 1px white;
-  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
-  text-align: left;
-  white-space: pre;
-  word-spacing: normal;
-  word-break: normal;
-  word-wrap: normal;
-  line-height: 1.5;
-
-  -moz-tab-size: 4;
-  -o-tab-size: 4;
-  tab-size: 4;
-
-  -webkit-hyphens: none;
-  -moz-hyphens: none;
-  -ms-hyphens: none;
-  hyphens: none;
-}
-
-pre[class*="language-"]::-moz-selection,
-pre[class*="language-"] ::-moz-selection,
-code[class*="language-"]::-moz-selection,
-code[class*="language-"] ::-moz-selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-pre[class*="language-"]::selection,
-pre[class*="language-"] ::selection,
-code[class*="language-"]::selection,
-code[class*="language-"] ::selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-@media print {
-
-  code[class*="language-"],
-  pre[class*="language-"] {
-    text-shadow: none;
-  }
-}
-
-/* Code blocks */
-pre[class*="language-"] {
-  padding: 1em;
-  margin: .5em 0;
-  overflow: auto;
-}
-
-:not(pre)>code[class*="language-"],
-pre[class*="language-"] {
-  background: #f5f2f0;
-}
-
-/* Inline code */
-:not(pre)>code[class*="language-"] {
-  padding: .1em;
-  border-radius: .3em;
-  white-space: normal;
-}
-
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
-  color: slategray;
-}
-
-.token.punctuation {
-  color: #999;
-}
-
-.namespace {
-  opacity: .7;
-}
-
-.token.property,
-.token.tag,
-.token.boolean,
-.token.number,
-.token.constant,
-.token.symbol,
-.token.deleted {
-  color: #905;
-}
-
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted {
-  color: #690;
-}
-
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string {
-  color: #9a6e3a;
-  background: hsla(0, 0%, 100%, .5);
-}
-
-.token.atrule,
-.token.attr-value,
-.token.keyword {
-  color: #07a;
-}
-
-.token.function,
-.token.class-name {
-  color: #DD4A68;
-}
-
-.token.regex,
-.token.important,
-.token.variable {
-  color: #e90;
-}
-
-.token.important,
-.token.bold {
-  font-weight: bold;
-}
-
-.token.italic {
-  font-style: italic;
-}
-
-.token.entity {
-  cursor: help;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1850
static/font/demo_index.html


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 290 - 148
static/font/iconfont.css


BIN=BIN
static/font/iconfont.eot


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1
static/font/iconfont.js


+ 0 - 520
static/font/iconfont.json

@@ -1,520 +0,0 @@
-{
-  "id": "1738837",
-  "name": "农业大数据",
-  "font_family": "iconfont",
-  "css_prefix_text": "icon-",
-  "description": "",
-  "glyphs": [
-    {
-      "icon_id": "5064096",
-      "name": "统计",
-      "font_class": "tongji2",
-      "unicode": "e646",
-      "unicode_decimal": 58950
-    },
-    {
-      "icon_id": "9241144",
-      "name": "手写签批",
-      "font_class": "iconzhengli_shouxieqianpi",
-      "unicode": "e648",
-      "unicode_decimal": 58952
-    },
-    {
-      "icon_id": "13173807",
-      "name": "识别",
-      "font_class": "shibie",
-      "unicode": "e603",
-      "unicode_decimal": 58883
-    },
-    {
-      "icon_id": "15726936",
-      "name": "统计",
-      "font_class": "tongji1",
-      "unicode": "e642",
-      "unicode_decimal": 58946
-    },
-    {
-      "icon_id": "20082758",
-      "name": "可视化大屏",
-      "font_class": "keshihuadaping",
-      "unicode": "e61c",
-      "unicode_decimal": 58908
-    },
-    {
-      "icon_id": "20082759",
-      "name": "退出关闭",
-      "font_class": "tuichuguanbi",
-      "unicode": "e61d",
-      "unicode_decimal": 58909
-    },
-    {
-      "icon_id": "20082258",
-      "name": "照片查看",
-      "font_class": "zhaopianchakan",
-      "unicode": "e61b",
-      "unicode_decimal": 58907
-    },
-    {
-      "icon_id": "20081037",
-      "name": "图标任务",
-      "font_class": "tubiaorenwu",
-      "unicode": "e61a",
-      "unicode_decimal": 58906
-    },
-    {
-      "icon_id": "19799572",
-      "name": "定位",
-      "font_class": "dingwei1",
-      "unicode": "e619",
-      "unicode_decimal": 58905
-    },
-    {
-      "icon_id": "19798147",
-      "name": "基地管理",
-      "font_class": "jidiguanli",
-      "unicode": "e618",
-      "unicode_decimal": 58904
-    },
-    {
-      "icon_id": "19798145",
-      "name": "基地面积",
-      "font_class": "jidimianji",
-      "unicode": "e617",
-      "unicode_decimal": 58903
-    },
-    {
-      "icon_id": "19798140",
-      "name": "建立时间",
-      "font_class": "jianlishijian",
-      "unicode": "e60d",
-      "unicode_decimal": 58893
-    },
-    {
-      "icon_id": "17654821",
-      "name": "录像",
-      "font_class": "luxiang",
-      "unicode": "e637",
-      "unicode_decimal": 58935
-    },
-    {
-      "icon_id": "774444",
-      "name": "扳手",
-      "font_class": "banshou",
-      "unicode": "e65c",
-      "unicode_decimal": 58972
-    },
-    {
-      "icon_id": "7335485",
-      "name": "地块",
-      "font_class": "chandi",
-      "unicode": "eb24",
-      "unicode_decimal": 60196
-    },
-    {
-      "icon_id": "7335489",
-      "name": "基础",
-      "font_class": "jichu",
-      "unicode": "eb25",
-      "unicode_decimal": 60197
-    },
-    {
-      "icon_id": "7335622",
-      "name": "迟到",
-      "font_class": "chidao",
-      "unicode": "eb44",
-      "unicode_decimal": 60228
-    },
-    {
-      "icon_id": "1391282",
-      "name": "日历",
-      "font_class": "rili",
-      "unicode": "e609",
-      "unicode_decimal": 58889
-    },
-    {
-      "icon_id": "5204808",
-      "name": "分类",
-      "font_class": "fenlei",
-      "unicode": "e616",
-      "unicode_decimal": 58902
-    },
-    {
-      "icon_id": "2678622",
-      "name": "全屏",
-      "font_class": "quanping",
-      "unicode": "e656",
-      "unicode_decimal": 58966
-    },
-    {
-      "icon_id": "772252",
-      "name": "扫描 识别 380%",
-      "font_class": "saomiaoshibie380",
-      "unicode": "e686",
-      "unicode_decimal": 59014
-    },
-    {
-      "icon_id": "11893490",
-      "name": "添加",
-      "font_class": "tianjia",
-      "unicode": "e615",
-      "unicode_decimal": 58901
-    },
-    {
-      "icon_id": "16364328",
-      "name": "统计",
-      "font_class": "tongji",
-      "unicode": "e636",
-      "unicode_decimal": 58934
-    },
-    {
-      "icon_id": "17709313",
-      "name": "未命名 -34",
-      "font_class": "weimingming-34",
-      "unicode": "e60b",
-      "unicode_decimal": 58891
-    },
-    {
-      "icon_id": "5327411",
-      "name": "臭虫bug",
-      "font_class": "chouchongbug",
-      "unicode": "e6e1",
-      "unicode_decimal": 59105
-    },
-    {
-      "icon_id": "802969",
-      "name": "楼房",
-      "font_class": "loufang",
-      "unicode": "e64f",
-      "unicode_decimal": 58959
-    },
-    {
-      "icon_id": "4348068",
-      "name": "电脑",
-      "font_class": "diannao1",
-      "unicode": "e623",
-      "unicode_decimal": 58915
-    },
-    {
-      "icon_id": "8835594",
-      "name": "图片",
-      "font_class": "tupian-xianxing",
-      "unicode": "e635",
-      "unicode_decimal": 58933
-    },
-    {
-      "icon_id": "10392628",
-      "name": "详情-",
-      "font_class": "xiangqing-",
-      "unicode": "e608",
-      "unicode_decimal": 58888
-    },
-    {
-      "icon_id": "36107",
-      "name": "面积",
-      "font_class": "mianji",
-      "unicode": "e602",
-      "unicode_decimal": 58882
-    },
-    {
-      "icon_id": "883904",
-      "name": "电话 (2)",
-      "font_class": "dianhua2",
-      "unicode": "e611",
-      "unicode_decimal": 58897
-    },
-    {
-      "icon_id": "1183130",
-      "name": "定位",
-      "font_class": "dingwei",
-      "unicode": "e675",
-      "unicode_decimal": 58997
-    },
-    {
-      "icon_id": "6129144",
-      "name": "102绑定",
-      "font_class": "bangding",
-      "unicode": "e784",
-      "unicode_decimal": 59268
-    },
-    {
-      "icon_id": "6970030",
-      "name": "用户",
-      "font_class": "yonghu11",
-      "unicode": "e705",
-      "unicode_decimal": 59141
-    },
-    {
-      "icon_id": "1106935",
-      "name": "雨",
-      "font_class": "yu",
-      "unicode": "e63a",
-      "unicode_decimal": 58938
-    },
-    {
-      "icon_id": "2155826",
-      "name": "温度",
-      "font_class": "thermometer_icon",
-      "unicode": "e67a",
-      "unicode_decimal": 59002
-    },
-    {
-      "icon_id": "4236632",
-      "name": "湿度",
-      "font_class": "shidu",
-      "unicode": "e60a",
-      "unicode_decimal": 58890
-    },
-    {
-      "icon_id": "7983631",
-      "name": "摄像头",
-      "font_class": "xingzhuang",
-      "unicode": "e614",
-      "unicode_decimal": 58900
-    },
-    {
-      "icon_id": "13638685",
-      "name": "电",
-      "font_class": "dian",
-      "unicode": "e655",
-      "unicode_decimal": 58965
-    },
-    {
-      "icon_id": "13638743",
-      "name": "温度",
-      "font_class": "wendu",
-      "unicode": "e660",
-      "unicode_decimal": 58976
-    },
-    {
-      "icon_id": "14095260",
-      "name": "定时",
-      "font_class": "dingshi",
-      "unicode": "e77e",
-      "unicode_decimal": 59262
-    },
-    {
-      "icon_id": "397065",
-      "name": "诱虫灯",
-      "font_class": "fangzhi",
-      "unicode": "e75c",
-      "unicode_decimal": 59228
-    },
-    {
-      "icon_id": "519489",
-      "name": "首页",
-      "font_class": "shouye",
-      "unicode": "e61e",
-      "unicode_decimal": 58910
-    },
-    {
-      "icon_id": "552767",
-      "name": "农药化肥",
-      "font_class": "nongchangguanli",
-      "unicode": "e62c",
-      "unicode_decimal": 58924
-    },
-    {
-      "icon_id": "689284",
-      "name": "设置 设定 配置 扳手",
-      "font_class": "shouhou",
-      "unicode": "e80e",
-      "unicode_decimal": 59406
-    },
-    {
-      "icon_id": "1119123",
-      "name": "系统",
-      "font_class": "xitong",
-      "unicode": "e60f",
-      "unicode_decimal": 58895
-    },
-    {
-      "icon_id": "1320048",
-      "name": "数据统计",
-      "font_class": "shujuzhanshi",
-      "unicode": "e621",
-      "unicode_decimal": 58913
-    },
-    {
-      "icon_id": "3483768",
-      "name": "地址",
-      "font_class": "jidi",
-      "unicode": "e672",
-      "unicode_decimal": 58994
-    },
-    {
-      "icon_id": "6756289",
-      "name": "专家",
-      "font_class": "zhuanjia",
-      "unicode": "e607",
-      "unicode_decimal": 58887
-    },
-    {
-      "icon_id": "7562834",
-      "name": "农事行为",
-      "font_class": "nongshiguanli",
-      "unicode": "e60c",
-      "unicode_decimal": 58892
-    },
-    {
-      "icon_id": "10544904",
-      "name": "多云转晴",
-      "font_class": "huanjingjiance",
-      "unicode": "e610",
-      "unicode_decimal": 58896
-    },
-    {
-      "icon_id": "13190141",
-      "name": "设备",
-      "font_class": "shebei",
-      "unicode": "e622",
-      "unicode_decimal": 58914
-    },
-    {
-      "icon_id": "13837385",
-      "name": "虫情监测 - 简",
-      "font_class": "cebaoguanli",
-      "unicode": "e776",
-      "unicode_decimal": 59254
-    },
-    {
-      "icon_id": "15282842",
-      "name": "树苗",
-      "font_class": "suyuan",
-      "unicode": "e6e8",
-      "unicode_decimal": 59112
-    },
-    {
-      "icon_id": "15631425",
-      "name": "监控",
-      "font_class": "jiankong",
-      "unicode": "e629",
-      "unicode_decimal": 58921
-    },
-    {
-      "icon_id": "992522",
-      "name": "信息",
-      "font_class": "xinxi1",
-      "unicode": "e64b",
-      "unicode_decimal": 58955
-    },
-    {
-      "icon_id": "1135940",
-      "name": "用户",
-      "font_class": "yonghu1",
-      "unicode": "e612",
-      "unicode_decimal": 58898
-    },
-    {
-      "icon_id": "7501066",
-      "name": "密码",
-      "font_class": "mima1",
-      "unicode": "e620",
-      "unicode_decimal": 58912
-    },
-    {
-      "icon_id": "715831",
-      "name": "电脑",
-      "font_class": "diannao",
-      "unicode": "e605",
-      "unicode_decimal": 58885
-    },
-    {
-      "icon_id": "4186778",
-      "name": "标签",
-      "font_class": "biaoqian",
-      "unicode": "e634",
-      "unicode_decimal": 58932
-    },
-    {
-      "icon_id": "6682541",
-      "name": "地址",
-      "font_class": "dizhi",
-      "unicode": "e606",
-      "unicode_decimal": 58886
-    },
-    {
-      "icon_id": "7404314",
-      "name": "时间",
-      "font_class": "shijian",
-      "unicode": "e77c",
-      "unicode_decimal": 59260
-    },
-    {
-      "icon_id": "8094230",
-      "name": "页面操作",
-      "font_class": "yemiancaozuo",
-      "unicode": "e64e",
-      "unicode_decimal": 58958
-    },
-    {
-      "icon_id": "10995780",
-      "name": "用户",
-      "font_class": "yonghu",
-      "unicode": "e60e",
-      "unicode_decimal": 58894
-    },
-    {
-      "icon_id": "354570",
-      "name": "编辑",
-      "font_class": "iconfontedit",
-      "unicode": "e61f",
-      "unicode_decimal": 58911
-    },
-    {
-      "icon_id": "813727",
-      "name": "充值",
-      "font_class": "chongzhi",
-      "unicode": "e633",
-      "unicode_decimal": 58931
-    },
-    {
-      "icon_id": "1761485",
-      "name": "禁用",
-      "font_class": "jinyong",
-      "unicode": "e641",
-      "unicode_decimal": 58945
-    },
-    {
-      "icon_id": "11391516",
-      "name": "密码",
-      "font_class": "mima",
-      "unicode": "e638",
-      "unicode_decimal": 58936
-    },
-    {
-      "icon_id": "9783463",
-      "name": "文档",
-      "font_class": "wendang",
-      "unicode": "e613",
-      "unicode_decimal": 58899
-    },
-    {
-      "icon_id": "4641118",
-      "name": "删除",
-      "font_class": "shanchu",
-      "unicode": "e625",
-      "unicode_decimal": 58917
-    },
-    {
-      "icon_id": "12685010",
-      "name": "铃",
-      "font_class": "icon_huabanfuben",
-      "unicode": "e62b",
-      "unicode_decimal": 58923
-    },
-    {
-      "icon_id": "2512619",
-      "name": "BAI-屋子",
-      "font_class": "BAI-wuzi",
-      "unicode": "e69c",
-      "unicode_decimal": 59036
-    },
-    {
-      "icon_id": "5387843",
-      "name": "主题_调色盘_o",
-      "font_class": "zhuti_tiaosepan_o",
-      "unicode": "eb6e",
-      "unicode_decimal": 60270
-    }
-  ]
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 245
static/font/iconfont.svg


BIN=BIN
static/font/iconfont.ttf


BIN=BIN
static/font/iconfont.woff


BIN=BIN
static/font/iconfont.woff2


BIN=BIN
static/images/ajax-loader.gif


BIN=BIN
unpackage/cache/apk/__UNI__DBA6730_cm.apk


+ 1 - 1
unpackage/cache/apk/apkurl

@@ -1 +1 @@
-https://service.dcloud.net.cn/build/download/4845c030-1785-11ec-a427-b9f2e5d72d1a
+https://ide.dcloud.net.cn/build/download/5ed1b0a0-21c8-11ec-a3bc-d5e290b6a1fd

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/cache/apk/cmManifestCache.json


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-hdpi.png


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-xhdpi.png


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-xxhdpi.png


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/.manifest/icon-android-xxxhdpi.png


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 2 - 2
unpackage/cache/wgt/__UNI__DBA6730/app-config-service.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/cache/wgt/__UNI__DBA6730/app-service.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/cache/wgt/__UNI__DBA6730/app-view.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/cache/wgt/__UNI__DBA6730/manifest.json


+ 0 - 539
unpackage/cache/wgt/__UNI__DBA6730/static/font/demo.css

@@ -1,539 +0,0 @@
-/* Logo 字体 */
-@font-face {
-  font-family: "iconfont logo";
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
-}
-
-.logo {
-  font-family: "iconfont logo";
-  font-size: 160px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-/* tabs */
-.nav-tabs {
-  position: relative;
-}
-
-.nav-tabs .nav-more {
-  position: absolute;
-  right: 0;
-  bottom: 0;
-  height: 42px;
-  line-height: 42px;
-  color: #666;
-}
-
-#tabs {
-  border-bottom: 1px solid #eee;
-}
-
-#tabs li {
-  cursor: pointer;
-  width: 100px;
-  height: 40px;
-  line-height: 40px;
-  text-align: center;
-  font-size: 16px;
-  border-bottom: 2px solid transparent;
-  position: relative;
-  z-index: 1;
-  margin-bottom: -1px;
-  color: #666;
-}
-
-
-#tabs .active {
-  border-bottom-color: #f00;
-  color: #222;
-}
-
-.tab-container .content {
-  display: none;
-}
-
-/* 页面布局 */
-.main {
-  padding: 30px 100px;
-  width: 960px;
-  margin: 0 auto;
-}
-
-.main .logo {
-  color: #333;
-  text-align: left;
-  margin-bottom: 30px;
-  line-height: 1;
-  height: 110px;
-  margin-top: -50px;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.main .logo a {
-  font-size: 160px;
-  color: #333;
-}
-
-.helps {
-  margin-top: 40px;
-}
-
-.helps pre {
-  padding: 20px;
-  margin: 10px 0;
-  border: solid 1px #e7e1cd;
-  background-color: #fffdef;
-  overflow: auto;
-}
-
-.icon_lists {
-  width: 100% !important;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.icon_lists li {
-  width: 100px;
-  margin-bottom: 10px;
-  margin-right: 20px;
-  text-align: center;
-  list-style: none !important;
-  cursor: default;
-}
-
-.icon_lists li .code-name {
-  line-height: 1.2;
-}
-
-.icon_lists .icon {
-  display: block;
-  height: 100px;
-  line-height: 100px;
-  font-size: 42px;
-  margin: 10px auto;
-  color: #333;
-  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
-  -moz-transition: font-size 0.25s linear, width 0.25s linear;
-  transition: font-size 0.25s linear, width 0.25s linear;
-}
-
-.icon_lists .icon:hover {
-  font-size: 100px;
-}
-
-.icon_lists .svg-icon {
-  /* 通过设置 font-size 来改变图标大小 */
-  width: 1em;
-  /* 图标和文字相邻时,垂直对齐 */
-  vertical-align: -0.15em;
-  /* 通过设置 color 来改变 SVG 的颜色/fill */
-  fill: currentColor;
-  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
-      normalize.css 中也包含这行 */
-  overflow: hidden;
-}
-
-.icon_lists li .name,
-.icon_lists li .code-name {
-  color: #666;
-}
-
-/* markdown 样式 */
-.markdown {
-  color: #666;
-  font-size: 14px;
-  line-height: 1.8;
-}
-
-.highlight {
-  line-height: 1.5;
-}
-
-.markdown img {
-  vertical-align: middle;
-  max-width: 100%;
-}
-
-.markdown h1 {
-  color: #404040;
-  font-weight: 500;
-  line-height: 40px;
-  margin-bottom: 24px;
-}
-
-.markdown h2,
-.markdown h3,
-.markdown h4,
-.markdown h5,
-.markdown h6 {
-  color: #404040;
-  margin: 1.6em 0 0.6em 0;
-  font-weight: 500;
-  clear: both;
-}
-
-.markdown h1 {
-  font-size: 28px;
-}
-
-.markdown h2 {
-  font-size: 22px;
-}
-
-.markdown h3 {
-  font-size: 16px;
-}
-
-.markdown h4 {
-  font-size: 14px;
-}
-
-.markdown h5 {
-  font-size: 12px;
-}
-
-.markdown h6 {
-  font-size: 12px;
-}
-
-.markdown hr {
-  height: 1px;
-  border: 0;
-  background: #e9e9e9;
-  margin: 16px 0;
-  clear: both;
-}
-
-.markdown p {
-  margin: 1em 0;
-}
-
-.markdown>p,
-.markdown>blockquote,
-.markdown>.highlight,
-.markdown>ol,
-.markdown>ul {
-  width: 80%;
-}
-
-.markdown ul>li {
-  list-style: circle;
-}
-
-.markdown>ul li,
-.markdown blockquote ul>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown>ul li p,
-.markdown>ol li p {
-  margin: 0.6em 0;
-}
-
-.markdown ol>li {
-  list-style: decimal;
-}
-
-.markdown>ol li,
-.markdown blockquote ol>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown code {
-  margin: 0 3px;
-  padding: 0 5px;
-  background: #eee;
-  border-radius: 3px;
-}
-
-.markdown strong,
-.markdown b {
-  font-weight: 600;
-}
-
-.markdown>table {
-  border-collapse: collapse;
-  border-spacing: 0px;
-  empty-cells: show;
-  border: 1px solid #e9e9e9;
-  width: 95%;
-  margin-bottom: 24px;
-}
-
-.markdown>table th {
-  white-space: nowrap;
-  color: #333;
-  font-weight: 600;
-}
-
-.markdown>table th,
-.markdown>table td {
-  border: 1px solid #e9e9e9;
-  padding: 8px 16px;
-  text-align: left;
-}
-
-.markdown>table th {
-  background: #F7F7F7;
-}
-
-.markdown blockquote {
-  font-size: 90%;
-  color: #999;
-  border-left: 4px solid #e9e9e9;
-  padding-left: 0.8em;
-  margin: 1em 0;
-}
-
-.markdown blockquote p {
-  margin: 0;
-}
-
-.markdown .anchor {
-  opacity: 0;
-  transition: opacity 0.3s ease;
-  margin-left: 8px;
-}
-
-.markdown .waiting {
-  color: #ccc;
-}
-
-.markdown h1:hover .anchor,
-.markdown h2:hover .anchor,
-.markdown h3:hover .anchor,
-.markdown h4:hover .anchor,
-.markdown h5:hover .anchor,
-.markdown h6:hover .anchor {
-  opacity: 1;
-  display: inline-block;
-}
-
-.markdown>br,
-.markdown>p>br {
-  clear: both;
-}
-
-
-.hljs {
-  display: block;
-  background: white;
-  padding: 0.5em;
-  color: #333333;
-  overflow-x: auto;
-}
-
-.hljs-comment,
-.hljs-meta {
-  color: #969896;
-}
-
-.hljs-string,
-.hljs-variable,
-.hljs-template-variable,
-.hljs-strong,
-.hljs-emphasis,
-.hljs-quote {
-  color: #df5000;
-}
-
-.hljs-keyword,
-.hljs-selector-tag,
-.hljs-type {
-  color: #a71d5d;
-}
-
-.hljs-literal,
-.hljs-symbol,
-.hljs-bullet,
-.hljs-attribute {
-  color: #0086b3;
-}
-
-.hljs-section,
-.hljs-name {
-  color: #63a35c;
-}
-
-.hljs-tag {
-  color: #333333;
-}
-
-.hljs-title,
-.hljs-attr,
-.hljs-selector-id,
-.hljs-selector-class,
-.hljs-selector-attr,
-.hljs-selector-pseudo {
-  color: #795da3;
-}
-
-.hljs-addition {
-  color: #55a532;
-  background-color: #eaffea;
-}
-
-.hljs-deletion {
-  color: #bd2c00;
-  background-color: #ffecec;
-}
-
-.hljs-link {
-  text-decoration: underline;
-}
-
-/* 代码高亮 */
-/* PrismJS 1.15.0
-https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
-/**
- * prism.js default theme for JavaScript, CSS and HTML
- * Based on dabblet (http://dabblet.com)
- * @author Lea Verou
- */
-code[class*="language-"],
-pre[class*="language-"] {
-  color: black;
-  background: none;
-  text-shadow: 0 1px white;
-  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
-  text-align: left;
-  white-space: pre;
-  word-spacing: normal;
-  word-break: normal;
-  word-wrap: normal;
-  line-height: 1.5;
-
-  -moz-tab-size: 4;
-  -o-tab-size: 4;
-  tab-size: 4;
-
-  -webkit-hyphens: none;
-  -moz-hyphens: none;
-  -ms-hyphens: none;
-  hyphens: none;
-}
-
-pre[class*="language-"]::-moz-selection,
-pre[class*="language-"] ::-moz-selection,
-code[class*="language-"]::-moz-selection,
-code[class*="language-"] ::-moz-selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-pre[class*="language-"]::selection,
-pre[class*="language-"] ::selection,
-code[class*="language-"]::selection,
-code[class*="language-"] ::selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-@media print {
-
-  code[class*="language-"],
-  pre[class*="language-"] {
-    text-shadow: none;
-  }
-}
-
-/* Code blocks */
-pre[class*="language-"] {
-  padding: 1em;
-  margin: .5em 0;
-  overflow: auto;
-}
-
-:not(pre)>code[class*="language-"],
-pre[class*="language-"] {
-  background: #f5f2f0;
-}
-
-/* Inline code */
-:not(pre)>code[class*="language-"] {
-  padding: .1em;
-  border-radius: .3em;
-  white-space: normal;
-}
-
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
-  color: slategray;
-}
-
-.token.punctuation {
-  color: #999;
-}
-
-.namespace {
-  opacity: .7;
-}
-
-.token.property,
-.token.tag,
-.token.boolean,
-.token.number,
-.token.constant,
-.token.symbol,
-.token.deleted {
-  color: #905;
-}
-
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted {
-  color: #690;
-}
-
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string {
-  color: #9a6e3a;
-  background: hsla(0, 0%, 100%, .5);
-}
-
-.token.atrule,
-.token.attr-value,
-.token.keyword {
-  color: #07a;
-}
-
-.token.function,
-.token.class-name {
-  color: #DD4A68;
-}
-
-.token.regex,
-.token.important,
-.token.variable {
-  color: #e90;
-}
-
-.token.important,
-.token.bold {
-  font-weight: bold;
-}
-
-.token.italic {
-  font-style: italic;
-}
-
-.token.entity {
-  cursor: help;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1850
unpackage/cache/wgt/__UNI__DBA6730/static/font/demo_index.html


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 290 - 148
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.css


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.eot


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.js


+ 0 - 520
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.json

@@ -1,520 +0,0 @@
-{
-  "id": "1738837",
-  "name": "农业大数据",
-  "font_family": "iconfont",
-  "css_prefix_text": "icon-",
-  "description": "",
-  "glyphs": [
-    {
-      "icon_id": "5064096",
-      "name": "统计",
-      "font_class": "tongji2",
-      "unicode": "e646",
-      "unicode_decimal": 58950
-    },
-    {
-      "icon_id": "9241144",
-      "name": "手写签批",
-      "font_class": "iconzhengli_shouxieqianpi",
-      "unicode": "e648",
-      "unicode_decimal": 58952
-    },
-    {
-      "icon_id": "13173807",
-      "name": "识别",
-      "font_class": "shibie",
-      "unicode": "e603",
-      "unicode_decimal": 58883
-    },
-    {
-      "icon_id": "15726936",
-      "name": "统计",
-      "font_class": "tongji1",
-      "unicode": "e642",
-      "unicode_decimal": 58946
-    },
-    {
-      "icon_id": "20082758",
-      "name": "可视化大屏",
-      "font_class": "keshihuadaping",
-      "unicode": "e61c",
-      "unicode_decimal": 58908
-    },
-    {
-      "icon_id": "20082759",
-      "name": "退出关闭",
-      "font_class": "tuichuguanbi",
-      "unicode": "e61d",
-      "unicode_decimal": 58909
-    },
-    {
-      "icon_id": "20082258",
-      "name": "照片查看",
-      "font_class": "zhaopianchakan",
-      "unicode": "e61b",
-      "unicode_decimal": 58907
-    },
-    {
-      "icon_id": "20081037",
-      "name": "图标任务",
-      "font_class": "tubiaorenwu",
-      "unicode": "e61a",
-      "unicode_decimal": 58906
-    },
-    {
-      "icon_id": "19799572",
-      "name": "定位",
-      "font_class": "dingwei1",
-      "unicode": "e619",
-      "unicode_decimal": 58905
-    },
-    {
-      "icon_id": "19798147",
-      "name": "基地管理",
-      "font_class": "jidiguanli",
-      "unicode": "e618",
-      "unicode_decimal": 58904
-    },
-    {
-      "icon_id": "19798145",
-      "name": "基地面积",
-      "font_class": "jidimianji",
-      "unicode": "e617",
-      "unicode_decimal": 58903
-    },
-    {
-      "icon_id": "19798140",
-      "name": "建立时间",
-      "font_class": "jianlishijian",
-      "unicode": "e60d",
-      "unicode_decimal": 58893
-    },
-    {
-      "icon_id": "17654821",
-      "name": "录像",
-      "font_class": "luxiang",
-      "unicode": "e637",
-      "unicode_decimal": 58935
-    },
-    {
-      "icon_id": "774444",
-      "name": "扳手",
-      "font_class": "banshou",
-      "unicode": "e65c",
-      "unicode_decimal": 58972
-    },
-    {
-      "icon_id": "7335485",
-      "name": "地块",
-      "font_class": "chandi",
-      "unicode": "eb24",
-      "unicode_decimal": 60196
-    },
-    {
-      "icon_id": "7335489",
-      "name": "基础",
-      "font_class": "jichu",
-      "unicode": "eb25",
-      "unicode_decimal": 60197
-    },
-    {
-      "icon_id": "7335622",
-      "name": "迟到",
-      "font_class": "chidao",
-      "unicode": "eb44",
-      "unicode_decimal": 60228
-    },
-    {
-      "icon_id": "1391282",
-      "name": "日历",
-      "font_class": "rili",
-      "unicode": "e609",
-      "unicode_decimal": 58889
-    },
-    {
-      "icon_id": "5204808",
-      "name": "分类",
-      "font_class": "fenlei",
-      "unicode": "e616",
-      "unicode_decimal": 58902
-    },
-    {
-      "icon_id": "2678622",
-      "name": "全屏",
-      "font_class": "quanping",
-      "unicode": "e656",
-      "unicode_decimal": 58966
-    },
-    {
-      "icon_id": "772252",
-      "name": "扫描 识别 380%",
-      "font_class": "saomiaoshibie380",
-      "unicode": "e686",
-      "unicode_decimal": 59014
-    },
-    {
-      "icon_id": "11893490",
-      "name": "添加",
-      "font_class": "tianjia",
-      "unicode": "e615",
-      "unicode_decimal": 58901
-    },
-    {
-      "icon_id": "16364328",
-      "name": "统计",
-      "font_class": "tongji",
-      "unicode": "e636",
-      "unicode_decimal": 58934
-    },
-    {
-      "icon_id": "17709313",
-      "name": "未命名 -34",
-      "font_class": "weimingming-34",
-      "unicode": "e60b",
-      "unicode_decimal": 58891
-    },
-    {
-      "icon_id": "5327411",
-      "name": "臭虫bug",
-      "font_class": "chouchongbug",
-      "unicode": "e6e1",
-      "unicode_decimal": 59105
-    },
-    {
-      "icon_id": "802969",
-      "name": "楼房",
-      "font_class": "loufang",
-      "unicode": "e64f",
-      "unicode_decimal": 58959
-    },
-    {
-      "icon_id": "4348068",
-      "name": "电脑",
-      "font_class": "diannao1",
-      "unicode": "e623",
-      "unicode_decimal": 58915
-    },
-    {
-      "icon_id": "8835594",
-      "name": "图片",
-      "font_class": "tupian-xianxing",
-      "unicode": "e635",
-      "unicode_decimal": 58933
-    },
-    {
-      "icon_id": "10392628",
-      "name": "详情-",
-      "font_class": "xiangqing-",
-      "unicode": "e608",
-      "unicode_decimal": 58888
-    },
-    {
-      "icon_id": "36107",
-      "name": "面积",
-      "font_class": "mianji",
-      "unicode": "e602",
-      "unicode_decimal": 58882
-    },
-    {
-      "icon_id": "883904",
-      "name": "电话 (2)",
-      "font_class": "dianhua2",
-      "unicode": "e611",
-      "unicode_decimal": 58897
-    },
-    {
-      "icon_id": "1183130",
-      "name": "定位",
-      "font_class": "dingwei",
-      "unicode": "e675",
-      "unicode_decimal": 58997
-    },
-    {
-      "icon_id": "6129144",
-      "name": "102绑定",
-      "font_class": "bangding",
-      "unicode": "e784",
-      "unicode_decimal": 59268
-    },
-    {
-      "icon_id": "6970030",
-      "name": "用户",
-      "font_class": "yonghu11",
-      "unicode": "e705",
-      "unicode_decimal": 59141
-    },
-    {
-      "icon_id": "1106935",
-      "name": "雨",
-      "font_class": "yu",
-      "unicode": "e63a",
-      "unicode_decimal": 58938
-    },
-    {
-      "icon_id": "2155826",
-      "name": "温度",
-      "font_class": "thermometer_icon",
-      "unicode": "e67a",
-      "unicode_decimal": 59002
-    },
-    {
-      "icon_id": "4236632",
-      "name": "湿度",
-      "font_class": "shidu",
-      "unicode": "e60a",
-      "unicode_decimal": 58890
-    },
-    {
-      "icon_id": "7983631",
-      "name": "摄像头",
-      "font_class": "xingzhuang",
-      "unicode": "e614",
-      "unicode_decimal": 58900
-    },
-    {
-      "icon_id": "13638685",
-      "name": "电",
-      "font_class": "dian",
-      "unicode": "e655",
-      "unicode_decimal": 58965
-    },
-    {
-      "icon_id": "13638743",
-      "name": "温度",
-      "font_class": "wendu",
-      "unicode": "e660",
-      "unicode_decimal": 58976
-    },
-    {
-      "icon_id": "14095260",
-      "name": "定时",
-      "font_class": "dingshi",
-      "unicode": "e77e",
-      "unicode_decimal": 59262
-    },
-    {
-      "icon_id": "397065",
-      "name": "诱虫灯",
-      "font_class": "fangzhi",
-      "unicode": "e75c",
-      "unicode_decimal": 59228
-    },
-    {
-      "icon_id": "519489",
-      "name": "首页",
-      "font_class": "shouye",
-      "unicode": "e61e",
-      "unicode_decimal": 58910
-    },
-    {
-      "icon_id": "552767",
-      "name": "农药化肥",
-      "font_class": "nongchangguanli",
-      "unicode": "e62c",
-      "unicode_decimal": 58924
-    },
-    {
-      "icon_id": "689284",
-      "name": "设置 设定 配置 扳手",
-      "font_class": "shouhou",
-      "unicode": "e80e",
-      "unicode_decimal": 59406
-    },
-    {
-      "icon_id": "1119123",
-      "name": "系统",
-      "font_class": "xitong",
-      "unicode": "e60f",
-      "unicode_decimal": 58895
-    },
-    {
-      "icon_id": "1320048",
-      "name": "数据统计",
-      "font_class": "shujuzhanshi",
-      "unicode": "e621",
-      "unicode_decimal": 58913
-    },
-    {
-      "icon_id": "3483768",
-      "name": "地址",
-      "font_class": "jidi",
-      "unicode": "e672",
-      "unicode_decimal": 58994
-    },
-    {
-      "icon_id": "6756289",
-      "name": "专家",
-      "font_class": "zhuanjia",
-      "unicode": "e607",
-      "unicode_decimal": 58887
-    },
-    {
-      "icon_id": "7562834",
-      "name": "农事行为",
-      "font_class": "nongshiguanli",
-      "unicode": "e60c",
-      "unicode_decimal": 58892
-    },
-    {
-      "icon_id": "10544904",
-      "name": "多云转晴",
-      "font_class": "huanjingjiance",
-      "unicode": "e610",
-      "unicode_decimal": 58896
-    },
-    {
-      "icon_id": "13190141",
-      "name": "设备",
-      "font_class": "shebei",
-      "unicode": "e622",
-      "unicode_decimal": 58914
-    },
-    {
-      "icon_id": "13837385",
-      "name": "虫情监测 - 简",
-      "font_class": "cebaoguanli",
-      "unicode": "e776",
-      "unicode_decimal": 59254
-    },
-    {
-      "icon_id": "15282842",
-      "name": "树苗",
-      "font_class": "suyuan",
-      "unicode": "e6e8",
-      "unicode_decimal": 59112
-    },
-    {
-      "icon_id": "15631425",
-      "name": "监控",
-      "font_class": "jiankong",
-      "unicode": "e629",
-      "unicode_decimal": 58921
-    },
-    {
-      "icon_id": "992522",
-      "name": "信息",
-      "font_class": "xinxi1",
-      "unicode": "e64b",
-      "unicode_decimal": 58955
-    },
-    {
-      "icon_id": "1135940",
-      "name": "用户",
-      "font_class": "yonghu1",
-      "unicode": "e612",
-      "unicode_decimal": 58898
-    },
-    {
-      "icon_id": "7501066",
-      "name": "密码",
-      "font_class": "mima1",
-      "unicode": "e620",
-      "unicode_decimal": 58912
-    },
-    {
-      "icon_id": "715831",
-      "name": "电脑",
-      "font_class": "diannao",
-      "unicode": "e605",
-      "unicode_decimal": 58885
-    },
-    {
-      "icon_id": "4186778",
-      "name": "标签",
-      "font_class": "biaoqian",
-      "unicode": "e634",
-      "unicode_decimal": 58932
-    },
-    {
-      "icon_id": "6682541",
-      "name": "地址",
-      "font_class": "dizhi",
-      "unicode": "e606",
-      "unicode_decimal": 58886
-    },
-    {
-      "icon_id": "7404314",
-      "name": "时间",
-      "font_class": "shijian",
-      "unicode": "e77c",
-      "unicode_decimal": 59260
-    },
-    {
-      "icon_id": "8094230",
-      "name": "页面操作",
-      "font_class": "yemiancaozuo",
-      "unicode": "e64e",
-      "unicode_decimal": 58958
-    },
-    {
-      "icon_id": "10995780",
-      "name": "用户",
-      "font_class": "yonghu",
-      "unicode": "e60e",
-      "unicode_decimal": 58894
-    },
-    {
-      "icon_id": "354570",
-      "name": "编辑",
-      "font_class": "iconfontedit",
-      "unicode": "e61f",
-      "unicode_decimal": 58911
-    },
-    {
-      "icon_id": "813727",
-      "name": "充值",
-      "font_class": "chongzhi",
-      "unicode": "e633",
-      "unicode_decimal": 58931
-    },
-    {
-      "icon_id": "1761485",
-      "name": "禁用",
-      "font_class": "jinyong",
-      "unicode": "e641",
-      "unicode_decimal": 58945
-    },
-    {
-      "icon_id": "11391516",
-      "name": "密码",
-      "font_class": "mima",
-      "unicode": "e638",
-      "unicode_decimal": 58936
-    },
-    {
-      "icon_id": "9783463",
-      "name": "文档",
-      "font_class": "wendang",
-      "unicode": "e613",
-      "unicode_decimal": 58899
-    },
-    {
-      "icon_id": "4641118",
-      "name": "删除",
-      "font_class": "shanchu",
-      "unicode": "e625",
-      "unicode_decimal": 58917
-    },
-    {
-      "icon_id": "12685010",
-      "name": "铃",
-      "font_class": "icon_huabanfuben",
-      "unicode": "e62b",
-      "unicode_decimal": 58923
-    },
-    {
-      "icon_id": "2512619",
-      "name": "BAI-屋子",
-      "font_class": "BAI-wuzi",
-      "unicode": "e69c",
-      "unicode_decimal": 59036
-    },
-    {
-      "icon_id": "5387843",
-      "name": "主题_调色盘_o",
-      "font_class": "zhuti_tiaosepan_o",
-      "unicode": "eb6e",
-      "unicode_decimal": 60270
-    }
-  ]
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 245
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.svg


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.ttf


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.woff


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/static/font/iconfont.woff2


BIN=BIN
unpackage/cache/wgt/__UNI__DBA6730/static/images/ajax-loader.gif


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 245
unpackage/cache/wgt/__UNI__DBA6730/static/img/iconfont.55295dec.svg


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 2 - 2
unpackage/dist/build/app-plus/app-config-service.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/build/app-plus/app-service.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/build/app-plus/app-view.js


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/build/app-plus/manifest.json


+ 0 - 539
unpackage/dist/build/app-plus/static/font/demo.css

@@ -1,539 +0,0 @@
-/* Logo 字体 */
-@font-face {
-  font-family: "iconfont logo";
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
-  src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
-    url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
-}
-
-.logo {
-  font-family: "iconfont logo";
-  font-size: 160px;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-/* tabs */
-.nav-tabs {
-  position: relative;
-}
-
-.nav-tabs .nav-more {
-  position: absolute;
-  right: 0;
-  bottom: 0;
-  height: 42px;
-  line-height: 42px;
-  color: #666;
-}
-
-#tabs {
-  border-bottom: 1px solid #eee;
-}
-
-#tabs li {
-  cursor: pointer;
-  width: 100px;
-  height: 40px;
-  line-height: 40px;
-  text-align: center;
-  font-size: 16px;
-  border-bottom: 2px solid transparent;
-  position: relative;
-  z-index: 1;
-  margin-bottom: -1px;
-  color: #666;
-}
-
-
-#tabs .active {
-  border-bottom-color: #f00;
-  color: #222;
-}
-
-.tab-container .content {
-  display: none;
-}
-
-/* 页面布局 */
-.main {
-  padding: 30px 100px;
-  width: 960px;
-  margin: 0 auto;
-}
-
-.main .logo {
-  color: #333;
-  text-align: left;
-  margin-bottom: 30px;
-  line-height: 1;
-  height: 110px;
-  margin-top: -50px;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.main .logo a {
-  font-size: 160px;
-  color: #333;
-}
-
-.helps {
-  margin-top: 40px;
-}
-
-.helps pre {
-  padding: 20px;
-  margin: 10px 0;
-  border: solid 1px #e7e1cd;
-  background-color: #fffdef;
-  overflow: auto;
-}
-
-.icon_lists {
-  width: 100% !important;
-  overflow: hidden;
-  *zoom: 1;
-}
-
-.icon_lists li {
-  width: 100px;
-  margin-bottom: 10px;
-  margin-right: 20px;
-  text-align: center;
-  list-style: none !important;
-  cursor: default;
-}
-
-.icon_lists li .code-name {
-  line-height: 1.2;
-}
-
-.icon_lists .icon {
-  display: block;
-  height: 100px;
-  line-height: 100px;
-  font-size: 42px;
-  margin: 10px auto;
-  color: #333;
-  -webkit-transition: font-size 0.25s linear, width 0.25s linear;
-  -moz-transition: font-size 0.25s linear, width 0.25s linear;
-  transition: font-size 0.25s linear, width 0.25s linear;
-}
-
-.icon_lists .icon:hover {
-  font-size: 100px;
-}
-
-.icon_lists .svg-icon {
-  /* 通过设置 font-size 来改变图标大小 */
-  width: 1em;
-  /* 图标和文字相邻时,垂直对齐 */
-  vertical-align: -0.15em;
-  /* 通过设置 color 来改变 SVG 的颜色/fill */
-  fill: currentColor;
-  /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
-      normalize.css 中也包含这行 */
-  overflow: hidden;
-}
-
-.icon_lists li .name,
-.icon_lists li .code-name {
-  color: #666;
-}
-
-/* markdown 样式 */
-.markdown {
-  color: #666;
-  font-size: 14px;
-  line-height: 1.8;
-}
-
-.highlight {
-  line-height: 1.5;
-}
-
-.markdown img {
-  vertical-align: middle;
-  max-width: 100%;
-}
-
-.markdown h1 {
-  color: #404040;
-  font-weight: 500;
-  line-height: 40px;
-  margin-bottom: 24px;
-}
-
-.markdown h2,
-.markdown h3,
-.markdown h4,
-.markdown h5,
-.markdown h6 {
-  color: #404040;
-  margin: 1.6em 0 0.6em 0;
-  font-weight: 500;
-  clear: both;
-}
-
-.markdown h1 {
-  font-size: 28px;
-}
-
-.markdown h2 {
-  font-size: 22px;
-}
-
-.markdown h3 {
-  font-size: 16px;
-}
-
-.markdown h4 {
-  font-size: 14px;
-}
-
-.markdown h5 {
-  font-size: 12px;
-}
-
-.markdown h6 {
-  font-size: 12px;
-}
-
-.markdown hr {
-  height: 1px;
-  border: 0;
-  background: #e9e9e9;
-  margin: 16px 0;
-  clear: both;
-}
-
-.markdown p {
-  margin: 1em 0;
-}
-
-.markdown>p,
-.markdown>blockquote,
-.markdown>.highlight,
-.markdown>ol,
-.markdown>ul {
-  width: 80%;
-}
-
-.markdown ul>li {
-  list-style: circle;
-}
-
-.markdown>ul li,
-.markdown blockquote ul>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown>ul li p,
-.markdown>ol li p {
-  margin: 0.6em 0;
-}
-
-.markdown ol>li {
-  list-style: decimal;
-}
-
-.markdown>ol li,
-.markdown blockquote ol>li {
-  margin-left: 20px;
-  padding-left: 4px;
-}
-
-.markdown code {
-  margin: 0 3px;
-  padding: 0 5px;
-  background: #eee;
-  border-radius: 3px;
-}
-
-.markdown strong,
-.markdown b {
-  font-weight: 600;
-}
-
-.markdown>table {
-  border-collapse: collapse;
-  border-spacing: 0px;
-  empty-cells: show;
-  border: 1px solid #e9e9e9;
-  width: 95%;
-  margin-bottom: 24px;
-}
-
-.markdown>table th {
-  white-space: nowrap;
-  color: #333;
-  font-weight: 600;
-}
-
-.markdown>table th,
-.markdown>table td {
-  border: 1px solid #e9e9e9;
-  padding: 8px 16px;
-  text-align: left;
-}
-
-.markdown>table th {
-  background: #F7F7F7;
-}
-
-.markdown blockquote {
-  font-size: 90%;
-  color: #999;
-  border-left: 4px solid #e9e9e9;
-  padding-left: 0.8em;
-  margin: 1em 0;
-}
-
-.markdown blockquote p {
-  margin: 0;
-}
-
-.markdown .anchor {
-  opacity: 0;
-  transition: opacity 0.3s ease;
-  margin-left: 8px;
-}
-
-.markdown .waiting {
-  color: #ccc;
-}
-
-.markdown h1:hover .anchor,
-.markdown h2:hover .anchor,
-.markdown h3:hover .anchor,
-.markdown h4:hover .anchor,
-.markdown h5:hover .anchor,
-.markdown h6:hover .anchor {
-  opacity: 1;
-  display: inline-block;
-}
-
-.markdown>br,
-.markdown>p>br {
-  clear: both;
-}
-
-
-.hljs {
-  display: block;
-  background: white;
-  padding: 0.5em;
-  color: #333333;
-  overflow-x: auto;
-}
-
-.hljs-comment,
-.hljs-meta {
-  color: #969896;
-}
-
-.hljs-string,
-.hljs-variable,
-.hljs-template-variable,
-.hljs-strong,
-.hljs-emphasis,
-.hljs-quote {
-  color: #df5000;
-}
-
-.hljs-keyword,
-.hljs-selector-tag,
-.hljs-type {
-  color: #a71d5d;
-}
-
-.hljs-literal,
-.hljs-symbol,
-.hljs-bullet,
-.hljs-attribute {
-  color: #0086b3;
-}
-
-.hljs-section,
-.hljs-name {
-  color: #63a35c;
-}
-
-.hljs-tag {
-  color: #333333;
-}
-
-.hljs-title,
-.hljs-attr,
-.hljs-selector-id,
-.hljs-selector-class,
-.hljs-selector-attr,
-.hljs-selector-pseudo {
-  color: #795da3;
-}
-
-.hljs-addition {
-  color: #55a532;
-  background-color: #eaffea;
-}
-
-.hljs-deletion {
-  color: #bd2c00;
-  background-color: #ffecec;
-}
-
-.hljs-link {
-  text-decoration: underline;
-}
-
-/* 代码高亮 */
-/* PrismJS 1.15.0
-https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
-/**
- * prism.js default theme for JavaScript, CSS and HTML
- * Based on dabblet (http://dabblet.com)
- * @author Lea Verou
- */
-code[class*="language-"],
-pre[class*="language-"] {
-  color: black;
-  background: none;
-  text-shadow: 0 1px white;
-  font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
-  text-align: left;
-  white-space: pre;
-  word-spacing: normal;
-  word-break: normal;
-  word-wrap: normal;
-  line-height: 1.5;
-
-  -moz-tab-size: 4;
-  -o-tab-size: 4;
-  tab-size: 4;
-
-  -webkit-hyphens: none;
-  -moz-hyphens: none;
-  -ms-hyphens: none;
-  hyphens: none;
-}
-
-pre[class*="language-"]::-moz-selection,
-pre[class*="language-"] ::-moz-selection,
-code[class*="language-"]::-moz-selection,
-code[class*="language-"] ::-moz-selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-pre[class*="language-"]::selection,
-pre[class*="language-"] ::selection,
-code[class*="language-"]::selection,
-code[class*="language-"] ::selection {
-  text-shadow: none;
-  background: #b3d4fc;
-}
-
-@media print {
-
-  code[class*="language-"],
-  pre[class*="language-"] {
-    text-shadow: none;
-  }
-}
-
-/* Code blocks */
-pre[class*="language-"] {
-  padding: 1em;
-  margin: .5em 0;
-  overflow: auto;
-}
-
-:not(pre)>code[class*="language-"],
-pre[class*="language-"] {
-  background: #f5f2f0;
-}
-
-/* Inline code */
-:not(pre)>code[class*="language-"] {
-  padding: .1em;
-  border-radius: .3em;
-  white-space: normal;
-}
-
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
-  color: slategray;
-}
-
-.token.punctuation {
-  color: #999;
-}
-
-.namespace {
-  opacity: .7;
-}
-
-.token.property,
-.token.tag,
-.token.boolean,
-.token.number,
-.token.constant,
-.token.symbol,
-.token.deleted {
-  color: #905;
-}
-
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted {
-  color: #690;
-}
-
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string {
-  color: #9a6e3a;
-  background: hsla(0, 0%, 100%, .5);
-}
-
-.token.atrule,
-.token.attr-value,
-.token.keyword {
-  color: #07a;
-}
-
-.token.function,
-.token.class-name {
-  color: #DD4A68;
-}
-
-.token.regex,
-.token.important,
-.token.variable {
-  color: #e90;
-}
-
-.token.important,
-.token.bold {
-  font-weight: bold;
-}
-
-.token.italic {
-  font-style: italic;
-}
-
-.token.entity {
-  cursor: help;
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1850
unpackage/dist/build/app-plus/static/font/demo_index.html


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 290 - 148
unpackage/dist/build/app-plus/static/font/iconfont.css


BIN=BIN
unpackage/dist/build/app-plus/static/font/iconfont.eot


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1
unpackage/dist/build/app-plus/static/font/iconfont.js


+ 0 - 520
unpackage/dist/build/app-plus/static/font/iconfont.json

@@ -1,520 +0,0 @@
-{
-  "id": "1738837",
-  "name": "农业大数据",
-  "font_family": "iconfont",
-  "css_prefix_text": "icon-",
-  "description": "",
-  "glyphs": [
-    {
-      "icon_id": "5064096",
-      "name": "统计",
-      "font_class": "tongji2",
-      "unicode": "e646",
-      "unicode_decimal": 58950
-    },
-    {
-      "icon_id": "9241144",
-      "name": "手写签批",
-      "font_class": "iconzhengli_shouxieqianpi",
-      "unicode": "e648",
-      "unicode_decimal": 58952
-    },
-    {
-      "icon_id": "13173807",
-      "name": "识别",
-      "font_class": "shibie",
-      "unicode": "e603",
-      "unicode_decimal": 58883
-    },
-    {
-      "icon_id": "15726936",
-      "name": "统计",
-      "font_class": "tongji1",
-      "unicode": "e642",
-      "unicode_decimal": 58946
-    },
-    {
-      "icon_id": "20082758",
-      "name": "可视化大屏",
-      "font_class": "keshihuadaping",
-      "unicode": "e61c",
-      "unicode_decimal": 58908
-    },
-    {
-      "icon_id": "20082759",
-      "name": "退出关闭",
-      "font_class": "tuichuguanbi",
-      "unicode": "e61d",
-      "unicode_decimal": 58909
-    },
-    {
-      "icon_id": "20082258",
-      "name": "照片查看",
-      "font_class": "zhaopianchakan",
-      "unicode": "e61b",
-      "unicode_decimal": 58907
-    },
-    {
-      "icon_id": "20081037",
-      "name": "图标任务",
-      "font_class": "tubiaorenwu",
-      "unicode": "e61a",
-      "unicode_decimal": 58906
-    },
-    {
-      "icon_id": "19799572",
-      "name": "定位",
-      "font_class": "dingwei1",
-      "unicode": "e619",
-      "unicode_decimal": 58905
-    },
-    {
-      "icon_id": "19798147",
-      "name": "基地管理",
-      "font_class": "jidiguanli",
-      "unicode": "e618",
-      "unicode_decimal": 58904
-    },
-    {
-      "icon_id": "19798145",
-      "name": "基地面积",
-      "font_class": "jidimianji",
-      "unicode": "e617",
-      "unicode_decimal": 58903
-    },
-    {
-      "icon_id": "19798140",
-      "name": "建立时间",
-      "font_class": "jianlishijian",
-      "unicode": "e60d",
-      "unicode_decimal": 58893
-    },
-    {
-      "icon_id": "17654821",
-      "name": "录像",
-      "font_class": "luxiang",
-      "unicode": "e637",
-      "unicode_decimal": 58935
-    },
-    {
-      "icon_id": "774444",
-      "name": "扳手",
-      "font_class": "banshou",
-      "unicode": "e65c",
-      "unicode_decimal": 58972
-    },
-    {
-      "icon_id": "7335485",
-      "name": "地块",
-      "font_class": "chandi",
-      "unicode": "eb24",
-      "unicode_decimal": 60196
-    },
-    {
-      "icon_id": "7335489",
-      "name": "基础",
-      "font_class": "jichu",
-      "unicode": "eb25",
-      "unicode_decimal": 60197
-    },
-    {
-      "icon_id": "7335622",
-      "name": "迟到",
-      "font_class": "chidao",
-      "unicode": "eb44",
-      "unicode_decimal": 60228
-    },
-    {
-      "icon_id": "1391282",
-      "name": "日历",
-      "font_class": "rili",
-      "unicode": "e609",
-      "unicode_decimal": 58889
-    },
-    {
-      "icon_id": "5204808",
-      "name": "分类",
-      "font_class": "fenlei",
-      "unicode": "e616",
-      "unicode_decimal": 58902
-    },
-    {
-      "icon_id": "2678622",
-      "name": "全屏",
-      "font_class": "quanping",
-      "unicode": "e656",
-      "unicode_decimal": 58966
-    },
-    {
-      "icon_id": "772252",
-      "name": "扫描 识别 380%",
-      "font_class": "saomiaoshibie380",
-      "unicode": "e686",
-      "unicode_decimal": 59014
-    },
-    {
-      "icon_id": "11893490",
-      "name": "添加",
-      "font_class": "tianjia",
-      "unicode": "e615",
-      "unicode_decimal": 58901
-    },
-    {
-      "icon_id": "16364328",
-      "name": "统计",
-      "font_class": "tongji",
-      "unicode": "e636",
-      "unicode_decimal": 58934
-    },
-    {
-      "icon_id": "17709313",
-      "name": "未命名 -34",
-      "font_class": "weimingming-34",
-      "unicode": "e60b",
-      "unicode_decimal": 58891
-    },
-    {
-      "icon_id": "5327411",
-      "name": "臭虫bug",
-      "font_class": "chouchongbug",
-      "unicode": "e6e1",
-      "unicode_decimal": 59105
-    },
-    {
-      "icon_id": "802969",
-      "name": "楼房",
-      "font_class": "loufang",
-      "unicode": "e64f",
-      "unicode_decimal": 58959
-    },
-    {
-      "icon_id": "4348068",
-      "name": "电脑",
-      "font_class": "diannao1",
-      "unicode": "e623",
-      "unicode_decimal": 58915
-    },
-    {
-      "icon_id": "8835594",
-      "name": "图片",
-      "font_class": "tupian-xianxing",
-      "unicode": "e635",
-      "unicode_decimal": 58933
-    },
-    {
-      "icon_id": "10392628",
-      "name": "详情-",
-      "font_class": "xiangqing-",
-      "unicode": "e608",
-      "unicode_decimal": 58888
-    },
-    {
-      "icon_id": "36107",
-      "name": "面积",
-      "font_class": "mianji",
-      "unicode": "e602",
-      "unicode_decimal": 58882
-    },
-    {
-      "icon_id": "883904",
-      "name": "电话 (2)",
-      "font_class": "dianhua2",
-      "unicode": "e611",
-      "unicode_decimal": 58897
-    },
-    {
-      "icon_id": "1183130",
-      "name": "定位",
-      "font_class": "dingwei",
-      "unicode": "e675",
-      "unicode_decimal": 58997
-    },
-    {
-      "icon_id": "6129144",
-      "name": "102绑定",
-      "font_class": "bangding",
-      "unicode": "e784",
-      "unicode_decimal": 59268
-    },
-    {
-      "icon_id": "6970030",
-      "name": "用户",
-      "font_class": "yonghu11",
-      "unicode": "e705",
-      "unicode_decimal": 59141
-    },
-    {
-      "icon_id": "1106935",
-      "name": "雨",
-      "font_class": "yu",
-      "unicode": "e63a",
-      "unicode_decimal": 58938
-    },
-    {
-      "icon_id": "2155826",
-      "name": "温度",
-      "font_class": "thermometer_icon",
-      "unicode": "e67a",
-      "unicode_decimal": 59002
-    },
-    {
-      "icon_id": "4236632",
-      "name": "湿度",
-      "font_class": "shidu",
-      "unicode": "e60a",
-      "unicode_decimal": 58890
-    },
-    {
-      "icon_id": "7983631",
-      "name": "摄像头",
-      "font_class": "xingzhuang",
-      "unicode": "e614",
-      "unicode_decimal": 58900
-    },
-    {
-      "icon_id": "13638685",
-      "name": "电",
-      "font_class": "dian",
-      "unicode": "e655",
-      "unicode_decimal": 58965
-    },
-    {
-      "icon_id": "13638743",
-      "name": "温度",
-      "font_class": "wendu",
-      "unicode": "e660",
-      "unicode_decimal": 58976
-    },
-    {
-      "icon_id": "14095260",
-      "name": "定时",
-      "font_class": "dingshi",
-      "unicode": "e77e",
-      "unicode_decimal": 59262
-    },
-    {
-      "icon_id": "397065",
-      "name": "诱虫灯",
-      "font_class": "fangzhi",
-      "unicode": "e75c",
-      "unicode_decimal": 59228
-    },
-    {
-      "icon_id": "519489",
-      "name": "首页",
-      "font_class": "shouye",
-      "unicode": "e61e",
-      "unicode_decimal": 58910
-    },
-    {
-      "icon_id": "552767",
-      "name": "农药化肥",
-      "font_class": "nongchangguanli",
-      "unicode": "e62c",
-      "unicode_decimal": 58924
-    },
-    {
-      "icon_id": "689284",
-      "name": "设置 设定 配置 扳手",
-      "font_class": "shouhou",
-      "unicode": "e80e",
-      "unicode_decimal": 59406
-    },
-    {
-      "icon_id": "1119123",
-      "name": "系统",
-      "font_class": "xitong",
-      "unicode": "e60f",
-      "unicode_decimal": 58895
-    },
-    {
-      "icon_id": "1320048",
-      "name": "数据统计",
-      "font_class": "shujuzhanshi",
-      "unicode": "e621",
-      "unicode_decimal": 58913
-    },
-    {
-      "icon_id": "3483768",
-      "name": "地址",
-      "font_class": "jidi",
-      "unicode": "e672",
-      "unicode_decimal": 58994
-    },
-    {
-      "icon_id": "6756289",
-      "name": "专家",
-      "font_class": "zhuanjia",
-      "unicode": "e607",
-      "unicode_decimal": 58887
-    },
-    {
-      "icon_id": "7562834",
-      "name": "农事行为",
-      "font_class": "nongshiguanli",
-      "unicode": "e60c",
-      "unicode_decimal": 58892
-    },
-    {
-      "icon_id": "10544904",
-      "name": "多云转晴",
-      "font_class": "huanjingjiance",
-      "unicode": "e610",
-      "unicode_decimal": 58896
-    },
-    {
-      "icon_id": "13190141",
-      "name": "设备",
-      "font_class": "shebei",
-      "unicode": "e622",
-      "unicode_decimal": 58914
-    },
-    {
-      "icon_id": "13837385",
-      "name": "虫情监测 - 简",
-      "font_class": "cebaoguanli",
-      "unicode": "e776",
-      "unicode_decimal": 59254
-    },
-    {
-      "icon_id": "15282842",
-      "name": "树苗",
-      "font_class": "suyuan",
-      "unicode": "e6e8",
-      "unicode_decimal": 59112
-    },
-    {
-      "icon_id": "15631425",
-      "name": "监控",
-      "font_class": "jiankong",
-      "unicode": "e629",
-      "unicode_decimal": 58921
-    },
-    {
-      "icon_id": "992522",
-      "name": "信息",
-      "font_class": "xinxi1",
-      "unicode": "e64b",
-      "unicode_decimal": 58955
-    },
-    {
-      "icon_id": "1135940",
-      "name": "用户",
-      "font_class": "yonghu1",
-      "unicode": "e612",
-      "unicode_decimal": 58898
-    },
-    {
-      "icon_id": "7501066",
-      "name": "密码",
-      "font_class": "mima1",
-      "unicode": "e620",
-      "unicode_decimal": 58912
-    },
-    {
-      "icon_id": "715831",
-      "name": "电脑",
-      "font_class": "diannao",
-      "unicode": "e605",
-      "unicode_decimal": 58885
-    },
-    {
-      "icon_id": "4186778",
-      "name": "标签",
-      "font_class": "biaoqian",
-      "unicode": "e634",
-      "unicode_decimal": 58932
-    },
-    {
-      "icon_id": "6682541",
-      "name": "地址",
-      "font_class": "dizhi",
-      "unicode": "e606",
-      "unicode_decimal": 58886
-    },
-    {
-      "icon_id": "7404314",
-      "name": "时间",
-      "font_class": "shijian",
-      "unicode": "e77c",
-      "unicode_decimal": 59260
-    },
-    {
-      "icon_id": "8094230",
-      "name": "页面操作",
-      "font_class": "yemiancaozuo",
-      "unicode": "e64e",
-      "unicode_decimal": 58958
-    },
-    {
-      "icon_id": "10995780",
-      "name": "用户",
-      "font_class": "yonghu",
-      "unicode": "e60e",
-      "unicode_decimal": 58894
-    },
-    {
-      "icon_id": "354570",
-      "name": "编辑",
-      "font_class": "iconfontedit",
-      "unicode": "e61f",
-      "unicode_decimal": 58911
-    },
-    {
-      "icon_id": "813727",
-      "name": "充值",
-      "font_class": "chongzhi",
-      "unicode": "e633",
-      "unicode_decimal": 58931
-    },
-    {
-      "icon_id": "1761485",
-      "name": "禁用",
-      "font_class": "jinyong",
-      "unicode": "e641",
-      "unicode_decimal": 58945
-    },
-    {
-      "icon_id": "11391516",
-      "name": "密码",
-      "font_class": "mima",
-      "unicode": "e638",
-      "unicode_decimal": 58936
-    },
-    {
-      "icon_id": "9783463",
-      "name": "文档",
-      "font_class": "wendang",
-      "unicode": "e613",
-      "unicode_decimal": 58899
-    },
-    {
-      "icon_id": "4641118",
-      "name": "删除",
-      "font_class": "shanchu",
-      "unicode": "e625",
-      "unicode_decimal": 58917
-    },
-    {
-      "icon_id": "12685010",
-      "name": "铃",
-      "font_class": "icon_huabanfuben",
-      "unicode": "e62b",
-      "unicode_decimal": 58923
-    },
-    {
-      "icon_id": "2512619",
-      "name": "BAI-屋子",
-      "font_class": "BAI-wuzi",
-      "unicode": "e69c",
-      "unicode_decimal": 59036
-    },
-    {
-      "icon_id": "5387843",
-      "name": "主题_调色盘_o",
-      "font_class": "zhuti_tiaosepan_o",
-      "unicode": "eb6e",
-      "unicode_decimal": 60270
-    }
-  ]
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 245
unpackage/dist/build/app-plus/static/font/iconfont.svg


BIN=BIN
unpackage/dist/build/app-plus/static/font/iconfont.ttf


BIN=BIN
unpackage/dist/build/app-plus/static/font/iconfont.woff


BIN=BIN
unpackage/dist/build/app-plus/static/font/iconfont.woff2


BIN=BIN
unpackage/dist/build/app-plus/static/images/ajax-loader.gif


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 245
unpackage/dist/build/app-plus/static/img/iconfont.55295dec.svg


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/afterSale/index.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/bzy/equip-set/bzyhistoryile.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/cbd/equip-set/historyfile.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/index/index.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/sim/sim.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/xy/equip-set/xyhistoryile.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/xy2.0/historydatas.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/distribution/index.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/environment/history.js.map


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/environment/index.js.map


+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/equipList/index.js.map


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio