Bläddra i källkod

云飞APP项目

yf_zd 5 år sedan
incheckning
9789caaa91
100 ändrade filer med 26654 tillägg och 0 borttagningar
  1. 43 0
      .project
  2. 134 0
      css/common.css
  3. 88 0
      css/equipList.css
  4. 65 0
      css/equipjk.css
  5. 80 0
      css/feedback-page.css
  6. 115 0
      css/feedback.css
  7. 261 0
      css/iconfont.css
  8. BIN
      css/icons_mobiscroll.eot
  9. 772 0
      css/icons_mobiscroll.svg
  10. BIN
      css/icons_mobiscroll.ttf
  11. BIN
      css/icons_mobiscroll.woff
  12. 6 0
      css/mescroll.min.css
  13. 1 0
      css/mobiscroll.custom-3.0.0-beta6.min.css
  14. 5612 0
      css/mui.css
  15. 5 0
      css/mui.min.css
  16. 85 0
      css/mui.picker.css
  17. 7 0
      css/mui.picker.min.css
  18. 64 0
      css/mui.poppicker.css
  19. 88 0
      css/pagination.css
  20. 111 0
      css/rangeslider.css
  21. 42 0
      css/reset.css
  22. 12 0
      css/swiper-4.4.6.min.css
  23. 12 0
      css/swiper.min.css
  24. 114 0
      css/timeLine.css
  25. 110 0
      equipAllot/equip_allot_info.html
  26. 615 0
      equipAllot/equip_allot_item.html
  27. 218 0
      equipAllot/equip_allot_list.html
  28. 206 0
      equipList/equip_list.html
  29. 249 0
      equipList/equip_list_info.html
  30. 189 0
      equipList/equip_list_map.html
  31. 552 0
      equipManage/configuration_bzy.html
  32. 555 0
      equipManage/configuration_cbd.html
  33. 177 0
      equipManage/equipManage_bzy.html
  34. 705 0
      equipManage/equipManage_bzy_detail.html
  35. 176 0
      equipManage/equipManage_cbd.html
  36. 458 0
      equipManage/equipManage_cbd_detail.html
  37. 216 0
      equipManage/equipManage_jk.html
  38. 274 0
      equipManage/equipManage_jk_detail.html
  39. 175 0
      equipManage/equipManage_qxz.html
  40. 278 0
      equipManage/equipManage_qxz_data24.html
  41. 258 0
      equipManage/equipManage_qxz_data24Old.html
  42. 342 0
      equipManage/equipManage_qxz_detail.html
  43. 345 0
      equipManage/equipManage_qxz_detailOld.html
  44. 262 0
      equipManage/equipManage_qxz_manualCtrl.html
  45. 404 0
      equipManage/equipManage_qxz_setAstrict.html
  46. 392 0
      equipManage/equipManage_qxz_setTiming.html
  47. 176 0
      equipManage/equipManage_scd.html
  48. 898 0
      equipManage/equipManage_scd_detail.html
  49. 174 0
      equipManage/equipManage_ybq.html
  50. 521 0
      equipManage/equipManage_ybq_detail.html
  51. 401 0
      equipManage/lookImage_jk.html
  52. 193 0
      equipManage/sex_trap.html
  53. 828 0
      equipManage/sex_trap_detail1.html
  54. 470 0
      equipManage/sex_trap_detail1_config.html
  55. 737 0
      equipManage/sex_trap_detail2.html
  56. 442 0
      equipManage/sex_trap_detail2_config.html
  57. 401 0
      equipManage/sex_trap_detail_echart.html
  58. 212 0
      equipManage/sex_trap_detail_list.html
  59. 257 0
      equipManage/sex_trap_detail_list_detail1.html
  60. 184 0
      equipManage/sex_trap_detail_list_detail2.html
  61. 448 0
      equipManage/sex_trap_photo2.html
  62. BIN
      fonts/iconfont.eot
  63. 1 0
      fonts/iconfont.js
  64. 364 0
      fonts/iconfont.svg
  65. BIN
      fonts/iconfont.ttf
  66. BIN
      fonts/iconfont.woff
  67. BIN
      fonts/iconfont.woff2
  68. BIN
      fonts/mui.ttf
  69. 34 0
      helpcenter/copy---feedback.html
  70. 34 0
      helpcenter/feedback.html
  71. 157 0
      helpcenter/help_detail.html
  72. 94 0
      helpcenter/help_list.html
  73. 113 0
      helpcenter/useDirection.html
  74. 255 0
      home/autoDiscern.html
  75. 371 0
      home/autoDiscernResult.html
  76. 126 0
      home/bottonTab.html
  77. 133 0
      home/copy-equip.html
  78. 325 0
      home/copyhomePage.html
  79. 244 0
      home/equip.html
  80. 156 0
      home/guide.html
  81. 573 0
      home/homePage.html
  82. 383 0
      home/login.html
  83. 169 0
      home/main.html
  84. 436 0
      home/map.html
  85. 619 0
      home/mapJs.html
  86. 122 0
      home/map_nav.html
  87. 72 0
      home/permission.html
  88. 405 0
      home/personalinfo.html
  89. 253 0
      home/register.html
  90. BIN
      images/1.png
  91. BIN
      images/2.png
  92. BIN
      images/3.png
  93. BIN
      images/7.png
  94. BIN
      images/8.png
  95. BIN
      images/IDicon.png
  96. BIN
      images/admin.png
  97. BIN
      images/againLoad.png
  98. BIN
      images/allotEqueip.png
  99. BIN
      images/annular.png
  100. 0 0
      images/ant.jpg

+ 43 - 0
.project

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>webapp</name>
+	<comment>Create By HBuilder</comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.pandora.projects.ui.MKeyBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.aptana.ide.core.unifiedBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.pandora.projects.ui.MKeyNature</nature>
+		<nature>com.aptana.projects.webnature</nature>
+	</natures>
+	<filteredResources>
+		<filter>
+			<id>1600478344091</id>
+			<name></name>
+			<type>10</type>
+			<matcher>
+				<id>org.eclipse.ui.ide.orFilterMatcher</id>
+				<arguments>
+					<matcher>
+						<id>org.eclipse.ui.ide.multiFilter</id>
+						<arguments>1.0-projectRelativePath-matches-false-false-bin</arguments>
+					</matcher>
+					<matcher>
+						<id>org.eclipse.ui.ide.multiFilter</id>
+						<arguments>1.0-projectRelativePath-matches-false-false-setting</arguments>
+					</matcher>
+				</arguments>
+			</matcher>
+		</filter>
+	</filteredResources>
+</projectDescription>

+ 134 - 0
css/common.css

@@ -0,0 +1,134 @@
+/*蓝色导航*/
+
+.mui-bar {
+	background-color: #21b2e7;
+}
+
+.mui-title,
+.mui-bar a {
+	color: #fff;
+}
+body{
+	font-size: 14px;
+}
+
+
+/*导航右侧按钮*/
+
+.headRightIcon {
+	display: inline-block;
+	font-size: 12px;
+}
+
+.headRightIcon:before {
+	display: block;
+	text-align: center;
+	font-size: 19px;
+	margin: 3px 0;
+}
+
+
+/*无背景搜索框*/
+
+.faxSearchBox {
+	background-color: #eee;
+	padding: 0px 8px;
+	position: relative;
+	margin: 6px 0 8px;
+}
+
+.faxSearchBox .mui-search .mui-placeholder {
+	text-align: left;
+	left: 5px;
+}
+
+.faxSearchBox input[type=search] {
+	background: #fff;
+}
+
+.faxSearchBox .mui-search .mui-placeholder .mui-icon {
+	color: #777;
+}
+
+.faxSearchBox .searchBtnBox {
+	position: absolute;
+	right: 8px;
+	top: 0px;
+	z-index: 10;
+}
+
+.faxSearchBox #searchBtn {
+	letter-spacing: 3px;
+	line-height: 1.6;
+	border: none;
+}
+
+.faxSearchBox .cutline {
+	display: inline-block;
+	border-left: .08em dashed #777;
+	margin-top: 6px;
+}
+
+
+/*有背景搜索框*/
+
+.searchBox {
+	position: fixed;
+	left: 0;
+	right: 0;
+	z-index: 222;
+	padding: 0;
+}
+
+.searchBox:before {
+	position: absolute;
+	content: '';
+	background: #21b2e7;
+	width: 100%;
+	height: 35%;
+}
+
+.searchBox .searchControl {
+	width: 91%;
+	margin: 0 auto;
+}
+
+.searchBox .mui-search {
+	display: inline-block;
+	width: 79%;
+}
+
+.searchBox .searchBtn,
+.searchBox .mui-search>input,
+.searchBox .equipItem {
+	box-shadow: 1px 2px 3px 1px #cccccc;
+}
+
+.searchBox .searchBtn,
+.searchBox .mui-search>input {
+	background: #fff;
+}
+
+.searchBox .searchBtn {
+	border-color: #fff;
+	width: 19%;
+}
+
+/*标题颜色*/
+.equipTitle {
+	color: #21b2e7;
+	font-size: 14px;
+}
+/*清除浮动*/
+.clearfix:after {
+	content: " "; 
+	display: block; 
+	clear: both; 
+	visibility: hidden; 
+	line-height: 0; 
+	height: 0; 
+	font-size: 0;
+}
+.clearfix{
+	*zoom:1;
+}

+ 88 - 0
css/equipList.css

@@ -0,0 +1,88 @@
+/*列表*/
+
+.equipItem {
+	margin: 0 15px 10px;
+	background: #fff;
+	border-radius: 7px;
+}
+
+.equipItem_top,
+.equipItem_bottom {
+	padding: 0 10px;
+}
+
+.equipItem_top {
+	position: relative;
+	height: 60px;
+}
+
+.equipTitle {
+	border-bottom: 1px dashed #ccc;
+	height: 45px;
+	line-height: 45px;
+}
+
+.equipTitle img {
+	vertical-align: middle;
+}
+
+.equipIdIcon {
+	margin-right: 5px;
+}
+
+.equipType {
+	float: right;
+	margin-top: 8px;
+}
+
+.equipItem_line {
+	position: absolute;
+	bottom: 5px;
+	left: 0;
+	right: 0;
+}
+
+.equipItem_line:before,
+.equipItem_line:after {
+	position: absolute;
+	bottom: 5px;
+	width: 15px;
+	height: 15px;
+	border-radius: 50%;
+	content: '';
+	background: #efeff4;
+}
+
+.equipItem_line:before {
+	left: -6px;
+}
+
+.equipItem_line:after {
+	right: -6px;
+}
+
+.equipItem_bottom {
+	padding-bottom: 10px;
+}
+
+.equipMsg {
+	text-align: right;
+	line-height: 28px;
+}
+
+.equipMsg>label {
+	float: left;
+	color: #ccc;
+}
+
+ul {
+	padding: 0;
+}
+
+.mescroll {
+	position: fixed;
+	top: 73px;
+	bottom: 0;
+	height: auto;
+	/*如设置bottom:50px,则需height:auto才能生效*/
+}

+ 65 - 0
css/equipjk.css

@@ -0,0 +1,65 @@
+.jkitem{
+	position: relative;
+    margin: .4rem;
+    border-radius: .2rem;
+    background: #FFF url(../images/jkListBj.png) no-repeat 92% bottom;
+    background-size: 1.3rem;
+}
+.jkmsg{
+	padding: .22rem 2rem .22rem .38rem;
+}
+.jkmsgTop{
+	letter-spacing: 0.04rem;
+    border-bottom: 1px dashed #777;
+    padding-bottom: .2rem;
+    line-height: .5rem;
+    margin-bottom: .2rem;
+}
+.jkmsgBottom{
+	letter-spacing: .1rem;
+	font-size: .22rem;
+}
+.blue >div{
+	background: #21b2e7;
+}
+.blue{
+	color: #21b2e7;
+}
+.pink{
+	color: #f77b7b;
+}
+.pink >div{
+	background: #f77b7b;
+}
+.jkmsgBottom >div{
+	display: inline-block;
+    width: .4rem;
+    height: .4rem;
+    border-radius: 50%;
+    line-height: .38rem;
+    overflow: hidden;
+    text-align: center;
+    vertical-align: middle;
+    margin-right: .1rem;
+}
+.jkmsgBottom >div >img{
+	width: 51%;
+}
+.circleBj{
+	position: absolute;
+    right: -.17rem;
+    top: 0;
+    bottom: 0;
+    width: .3rem;
+}
+.circleBj div{
+	width: .3rem;
+    height: 0.22rem;
+    border-radius: .1rem;
+    background: #efeff4;
+    margin: .14rem 0;
+}
+/*jk详情*/
+.bottomCtrl{
+	background: url(../images/jkctrl.png) no-repeat center;
+}

+ 80 - 0
css/feedback-page.css

@@ -0,0 +1,80 @@
+.feedback body {
+	background-color: #EFEFF4;
+}
+.feedback input,
+.feedback textarea {
+	border: none !important;
+}
+.feedback textarea {
+	height: 100px;
+	margin-bottom: 0 !important;
+	padding-bottom: 0 !important;
+}
+.feedback .row {
+	width: 100%;
+	background-color: #fff;
+}
+.feedback p {
+	padding: 10px 15px 0;
+}
+.feedback button { 
+	width: 90%;
+	height: 46px;
+	left: 50%;
+	-webkit-transform: translate(-50%);
+}
+.feedback .hidden {
+	display: none;
+}
+.feedback .image-list {
+	width: 100%;
+	height: 85px;
+	background-size: cover;
+	padding: 10px 10px;
+	overflow: hidden;
+}
+.feedback .image-item {
+	width: 65px;
+	height: 65px;
+	background-image: url(../images/iconfont-tianjia.png);
+	background-size: 100% 100%;
+	display: inline-block;
+	position: relative;
+	border-radius: 5px;
+	margin-right: 10px;
+	margin-bottom: 10px;
+	border: solid 1px #e8e8e8;
+}
+.feedback .image-item input[type="file"] {
+	position: absolute;
+	left: 0px;
+	top: 0px;
+	width: 100%;
+	height: 100%;
+	opacity: 0;
+	cursor: pointer;
+	z-index: 0;
+}
+.feedback .image-item.space {
+	border: none;
+}
+.feedback .image-item .image-close {
+	position: absolute;
+	display: inline-block;
+	right: -6px;
+	top: -6px;
+	width: 20px;
+	height: 20px;
+	text-align: center;
+	line-height: 20px;
+	border-radius: 12px;
+	background-color: #FF5053;
+	color: #f3f3f3;
+	border: solid 1px #FF5053;
+	font-size: 9px;
+	font-weight: 200;
+	z-index: 1;
+}
+.feedback .image-item.space .image-close {
+	display: none;
+}

+ 115 - 0
css/feedback.css

@@ -0,0 +1,115 @@
+/*!
+ * ======================================================
+ * FeedBack Template For MUI (http://dev.dcloud.net.cn/mui)
+ * =======================================================
+ * @version:1.0.0
+ * @author:cuihongbao@dcloud.io
+ */
+
+.feedback body {
+	background-color: #EFEFF4;
+}
+.feedback input,
+.feedback textarea {
+	border: none !important;
+}
+.feedback textarea {
+	height: 100px;
+	margin-bottom: 0 !important;
+	padding-bottom: 0 !important;
+}
+.feedback .row {
+	width: 100%;
+	background-color: #fff;
+}
+.feedback p {
+	padding: 10px 15px 0;
+}
+/*.feedback button#submit { 
+	width: 90%;
+	height: 46px;
+	left: 50%;
+	-webkit-transform: translate(-50%);
+}*/
+
+input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{
+	font-size: 14px;
+}
+
+.feedback .hidden {
+	display: none;
+}
+.feedback .image-list {
+	width: 100%;
+	height: 85px;
+	background-size: cover;
+	padding: 10px 10px;
+	overflow: hidden;
+}
+.feedback .image-item {
+	width: 65px;
+	height: 65px;
+	background-image: url(../images/iconfont-tianjia.png);
+	background-size: 100% 100%;
+	display: inline-block;
+	position: relative;
+	border-radius: 5px;
+	margin-right: 10px;
+	margin-bottom: 10px;
+	border: solid 1px #e8e8e8;
+}
+.feedback .image-item .file {
+	position: absolute;
+	left: 0px;
+	top: 0px;
+	width: 100%;
+	height: 100%;
+	opacity: 0;
+	cursor: pointer;
+	z-index: 0;
+}
+.feedback .image-item.space {
+	border: none;
+}
+.feedback .image-item .image-close {
+	position: absolute;
+	display: inline-block;
+	right: -6px;
+	top: -6px;
+	width: 20px;
+	height: 20px;
+	text-align: center;
+	line-height: 20px;
+	border-radius: 12px;
+	background-color: #FF5053;
+	color: #f3f3f3;
+	border: solid 1px #FF5053;
+	font-size: 9px;
+	font-weight: 200;
+	z-index: 1;
+}
+.feedback .image-item.space .image-close {
+	display: none;
+}
+.feedback .mui-inline{
+	vertical-align: bottom;
+	font-size: 14px;
+	color: #8f8f94;
+}
+.mui-icon-star{
+	color: #B5B5B5;
+	font-size: 22px;
+}
+.mui-icon-star-filled{
+	color: #FFB400;
+	font-size: 22px;
+} 
+.mui-popover {
+	height: 180px;
+}
+.stream{
+	display: none;
+}
+.mui-plus-stream .stream{
+	display: block;
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 261 - 0
css/iconfont.css


BIN
css/icons_mobiscroll.eot


+ 772 - 0
css/icons_mobiscroll.svg

@@ -0,0 +1,772 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2016-8-31: Created.
+-->
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+Created by FontForge 20120731 at Wed Aug 31 14:25:05 2016
+ By root
+Created by root with FontForge 2.0 (http://fontforge.sf.net)
+</metadata>
+<defs>
+<font id="icons_mobiscroll" horiz-adv-x="512" >
+  <font-face 
+    font-family="icons_mobiscroll"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="512"
+    panose-1="2 0 6 3 0 0 0 0 0 0"
+    ascent="448"
+    descent="-64"
+    bbox="-0.5 -64.25 669 448.405"
+    underline-thickness="25.6"
+    underline-position="-51.2"
+    unicode-range="U+F100-F1F9"
+  />
+    <missing-glyph />
+    <glyph glyph-name="uniF17D" unicode="&#xf17d;" horiz-adv-x="427" 
+d="M213 215c13 0 24 -10 24 -23s-11 -23 -24 -23s-23 10 -23 23s10 23 23 23zM213 405c118 0 214 -95 214 -213s-96 -213 -214 -213s-213 95 -213 213s95 213 213 213zM260 145l81 175l-174 -81l-82 -175z" />
+    <glyph glyph-name="uniF17C" unicode="&#xf17c;" horiz-adv-x="341" 
+d="M128 21v342h85v-342h-85zM0 21v171h85v-171h-85zM256 256h85v-235h-85v235z" />
+    <glyph glyph-name="uniF1D8" unicode="&#xf1d8;" 
+d="M0 -64v512h256v-512h-256zM160 384v-64h64v64h-64zM160 256v-64h64v64h-64zM160 128v-64h64v64h-64zM32 384v-64h64v64h-64zM32 256v-64h64v64h-64zM32 128v-64h64v64h-64zM288 288h224v-32h-224v32zM288 -64v288h224v-288h-64v128h-96v-128h-64z" />
+    <glyph glyph-name="uniF132" unicode="&#xf132;" horiz-adv-x="402" 
+d="M110 238v-55c0 -8 -3 -15 -8 -20s-12 -8 -20 -8h-55c-8 0 -14 3 -19 8s-8 12 -8 20v55c0 8 3 14 8 19s11 8 19 8h55c8 0 15 -3 20 -8s8 -11 8 -19zM256 238v-55c0 -8 -3 -15 -8 -20s-11 -8 -19 -8h-55c-8 0 -15 3 -20 8s-8 12 -8 20v55c0 8 3 14 8 19s12 8 20 8h55
+c8 0 14 -3 19 -8s8 -11 8 -19zM402 238v-55c0 -8 -3 -15 -8 -20s-11 -8 -19 -8h-55c-8 0 -14 3 -19 8s-8 12 -8 20v55c0 8 3 14 8 19s11 8 19 8h55c8 0 14 -3 19 -8s8 -11 8 -19z" />
+    <glyph glyph-name="uniF187" unicode="&#xf187;" horiz-adv-x="405" 
+d="M312 323l93 -131l-93 -131c-8 -11 -21 -18 -35 -18h-234c-24 0 -43 18 -43 42v214c0 24 19 42 43 42h234c14 0 27 -7 35 -18z" />
+    <glyph glyph-name="uniF195" unicode="&#xf195;" horiz-adv-x="340" 
+d="M246 330l-97 -95v83c-60 -10 -106 -63 -106 -126s46 -116 106 -126v-43c-84 10 -149 82 -149 169s65 159 149 169v66zM340 213h-43c-3 19 -11 37 -22 53l30 30c19 -25 31 -53 35 -83zM192 66c19 3 37 11 53 22l30 -31c-25 -19 -53 -30 -83 -34v43zM275 118
+c11 16 19 34 22 53h43c-4 -30 -16 -58 -35 -83z" />
+    <glyph glyph-name="uniF117" unicode="&#xf117;" 
+d="M256 320c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM256 112c44 0 80 36 80 80s-36 80 -80 80v-160zM256 32c18 0 32 -14 32 -32v-32c0 -18 -14 -32 -32 -32s-32 14 -32 32v32c0 18 14 32 32 32zM256 352c-18 0 -32 14 -32 32v32
+c0 18 14 32 32 32s32 -14 32 -32v-32c0 -18 -14 -32 -32 -32zM480 224c18 0 32 -14 32 -32s-14 -32 -32 -32h-32c-18 0 -32 14 -32 32s14 32 32 32h32zM96 192c0 -18 -14 -32 -32 -32h-32c-18 0 -32 14 -32 32s14 32 32 32h32c18 0 32 -14 32 -32zM414 79l23 -23
+c12 -12 12 -33 0 -45s-33 -12 -45 0l-23 23c-12 12 -12 33 0 45s33 12 45 0zM98 305l-23 23c-12 12 -12 33 0 45s33 12 45 0l23 -23c12 -12 12 -33 0 -45s-33 -12 -45 0zM414 305c-12 -12 -33 -12 -45 0s-12 33 0 45l23 23c12 12 33 12 45 0s12 -33 0 -45zM98 79
+c12 12 33 12 45 0s12 -33 0 -45l-23 -23c-12 -12 -33 -12 -45 0s-12 33 0 45z" />
+    <glyph glyph-name="uniF1B4" unicode="&#xf1b4;" 
+d="M512 313v0c0 -23 -9 -44 -24 -60c15 -19 24 -42 24 -68c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-28 -24 -62 -37 -99 -38l-5 -10l32 -32l-96 -64l32 64l-32 32l23 15c-23 6 -45 17 -63 33c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112
+c5 0 11 0 16 -1l2 2c-1 5 -2 10 -2 15c0 49 40 89 89 89h7c23 29 58 46 96 46s73 -17 96 -46h7c49 0 89 -40 89 -89z" />
+    <glyph glyph-name="uniF12E" unicode="&#xf12e;" 
+d="M437 373c48 -48 75 -113 75 -181s-27 -133 -75 -181s-113 -75 -181 -75s-133 27 -181 75s-75 113 -75 181s27 133 75 181s113 75 181 75s133 -27 181 -75zM414 34c32 32 53 70 62 113c-7 -10 -14 -13 -18 9c-4 36 -37 13 -58 26c-22 -15 -71 28 -63 -21
+c13 -22 70 30 42 -17c-18 -33 -66 -105 -60 -143c1 -55 -56 -11 -76 7c-13 36 -5 100 -39 118c-37 2 -70 4 -84 46c-9 30 9 75 41 82c47 29 64 -35 108 -36c14 14 51 19 54 35c-29 5 36 24 -3 35c-22 -3 -36 -22 -24 -39c-42 -10 -44 60 -84 38c-1 -35 -66 -11 -22 -4
+c15 7 -25 25 -4 22c10 1 47 13 37 21c20 12 36 -29 55 1c14 23 -6 28 -23 16c-10 11 17 35 41 45c8 3 15 6 21 5c12 -14 35 -17 36 1c-30 14 -63 22 -97 22c-49 0 -96 -15 -134 -44c10 -5 17 -10 7 -18c-8 -23 -39 -54 -67 -50c-14 -25 -24 -52 -28 -80c23 -8 29 -23 24 -28
+c-12 -10 -19 -25 -23 -41c8 -46 29 -87 63 -121c42 -42 98 -66 158 -66s116 24 158 66v0z" />
+    <glyph glyph-name="uniF12A" unicode="&#xf12a;" 
+d="M448 448l64 -64v-448h-512v512h448zM256 384v-128h64v128h-64zM448 0v357l-27 27h-37v-160h-288v160h-32v-384h384z" />
+    <glyph glyph-name="uniF122" unicode="&#xf122;" 
+d="M445 268h1c38 -9 66 -44 66 -85c0 -48 -39 -87 -87 -87h-60l-109 -109l-109 109h-50c-54 0 -97 43 -97 97s43 97 97 97c6 0 11 -1 17 -2c0 3 -1 7 -1 10c0 37 30 67 67 67c22 0 41 -10 53 -26c22 28 56 45 94 45c65 0 116 -52 118 -116zM256 32l96 96h-64v96h-64v-96h-64
+z" />
+    <glyph glyph-name="uniF143" unicode="&#xf143;" horiz-adv-x="384" 
+d="M281 219c3 0 5 -2 5 -5v-44c0 -3 -2 -5 -5 -5h-178c-3 0 -5 2 -5 5v44c0 3 2 5 5 5h178zM192 333c-78 0 -141 -63 -141 -141s63 -141 141 -141s141 63 141 141s-63 141 -141 141zM192 384v0c106 0 192 -86 192 -192s-86 -192 -192 -192s-192 86 -192 192s86 192 192 192z
+" />
+    <glyph glyph-name="uniF19E" unicode="&#xf19e;" horiz-adv-x="299" 
+d="M256 426c24 0 43 -18 43 -42v-384c0 -24 -19 -43 -43 -43h-213c-24 0 -43 19 -43 43v384c0 24 19 43 43 43zM256 43v298h-213v-298h213zM235 171l-86 -86l-85 86h64v106h43v-106h64z" />
+    <glyph glyph-name="uniF154" unicode="&#xf154;" horiz-adv-x="416" 
+d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM343 57c74 74 74 196 0 270s-196 74 -270 0s-74 -196 0 -270s196 -74 270 0zM292 288l12 -12l-84 -84l84 -84l-12 -12l-84 84l-84 -84l-12 12l84 84l-84 84l12 12l84 -84z" />
+    <glyph glyph-name="uniF1B6" unicode="&#xf1b6;" horiz-adv-x="249" 
+d="M218 105c-50 -50 -131 -50 -181 0s-50 131 0 181c13 13 29 23 48 30c6 2 13 0 17 -4s6 -11 4 -17c-13 -35 -4 -74 22 -100s65 -34 100 -22c6 2 12 0 16 -4s6 -10 4 -16c-7 -19 -17 -35 -30 -48zM60 263c-37 -37 -37 -99 0 -136c40 -40 108 -36 143 9
+c-36 -2 -72 11 -98 37s-39 61 -37 97c-3 -2 -5 -4 -8 -7v0z" />
+    <glyph glyph-name="uniF156" unicode="&#xf156;" horiz-adv-x="416" 
+d="M184 276c0 13 7 20 20 20s20 -7 20 -20s-7 -20 -20 -20s-20 7 -20 20zM224 104h16v-8h-64v8h16v120h-16v8h48v-128zM208 400c57 0 106 -20 147 -61s61 -90 61 -147s-20 -106 -61 -147s-90 -61 -147 -61s-106 20 -147 61s-61 90 -61 147s20 106 61 147s90 61 147 61z
+M208 1c53 0 98 19 135 56s56 82 56 135s-19 98 -56 135s-82 56 -135 56s-98 -19 -135 -56s-56 -82 -56 -135s19 -98 56 -135s82 -56 135 -56z" />
+    <glyph glyph-name="uniF173" unicode="&#xf173;" horiz-adv-x="341" 
+d="M341 213v-42h-259l119 -119l-30 -31l-171 171l171 171l30 -31l-119 -119h259z" />
+    <glyph glyph-name="uniF1D5" unicode="&#xf1d5;" 
+d="M160 352l352 96v-368c0 -44 -50 -80 -112 -80s-112 36 -112 80s50 80 112 80c17 0 33 -3 48 -8v165l-224 -61v-240c0 -44 -50 -80 -112 -80s-112 36 -112 80s50 80 112 80c17 0 33 -3 48 -8v264v0z" />
+    <glyph glyph-name="uniF1BA" unicode="&#xf1ba;" 
+d="M400 384c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM400 192
+c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c23 -28 58 -47 98 -47s75 19 98 47c13 -9 29 -15 46 -15zM225 -32c0 18 32 64 32 64s32 -46 32 -64
+s-14 -32 -32 -32s-32 14 -32 32zM352 0c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32zM96 64c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32z" />
+    <glyph glyph-name="uniF18B" unicode="&#xf18b;" horiz-adv-x="427" 
+d="M384 405c24 0 43 -18 43 -42v-256c0 -24 -19 -43 -43 -43h-299l-85 -85v384c0 24 19 42 43 42h341zM341 149v43h-256v-43h256zM341 213v43h-256v-43h256zM341 277v43h-256v-43h256z" />
+    <glyph glyph-name="uniF1BE" unicode="&#xf1be;" 
+d="M326 4v0c8 -5 12 -16 7 -24s-17 -11 -25 -6l-18 10c-5 -4 -10 -7 -16 -9v-21c0 -10 -8 -18 -18 -18s-18 8 -18 18v21c-6 2 -11 5 -16 9l-18 -10c-8 -5 -19 -2 -24 6s-2 19 6 24l18 11c-1 3 -1 6 -1 9s0 7 1 10l-18 10c-8 5 -11 16 -6 24s16 12 24 7l18 -11
+c5 4 10 8 16 10v21c0 10 8 18 18 18s18 -8 18 -18v-21c6 -2 11 -6 16 -10l18 11c8 5 20 1 25 -7s1 -19 -7 -24l-18 -10c1 -3 1 -7 1 -10s0 -6 -1 -9zM256 7c10 0 18 7 18 17s-8 18 -18 18s-18 -8 -18 -18s8 -17 18 -17zM400 384c62 0 112 -50 112 -112s-50 -112 -112 -112
+c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM400 192c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6
+c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c23 -28 58 -47 98 -47s75 19 98 47c13 -9 29 -15 46 -15z" />
+    <glyph glyph-name="uniF1D2" unicode="&#xf1d2;" 
+d="M417 377c53 -2 95 -46 95 -99c0 -55 -45 -100 -100 -100c-6 0 -11 0 -17 1c-21 -14 -45 -20 -70 -20s-48 6 -69 20c-6 -1 -12 -1 -18 -1c-55 0 -99 45 -99 100c0 53 42 97 95 99c24 25 56 39 91 39s68 -14 92 -39zM144 191c9 0 16 -7 16 -16s-7 -16 -16 -16h-128
+c-9 0 -16 7 -16 16s7 16 16 16h128zM16 223c-9 0 -16 7 -16 16s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64zM48 287c-9 0 -16 7 -16 16s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64zM224 64c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32
+zM352 0c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32z" />
+    <glyph glyph-name="uniF18A" unicode="&#xf18a;" horiz-adv-x="384" 
+d="M0 64v43h384v-43h-384zM0 171v42h384v-42h-384zM0 320h384v-43h-384v43z" />
+    <glyph glyph-name="uniF193" unicode="&#xf193;" horiz-adv-x="235" 
+d="M0 341l235 -149l-235 -149v298z" />
+    <glyph glyph-name="uniF15F" unicode="&#xf15f;" 
+d="M256 336c4 0 8 -4 8 -8s-4 -8 -8 -8c-85 0 -160 -45 -160 -96c0 -4 -4 -8 -8 -8s-8 4 -8 8c0 61 81 112 176 112zM256 416c141 0 256 -86 256 -192s-115 -192 -256 -192c-17 0 -33 2 -49 4c-11 -13 -58 -60 -108 -68h-5c-8 0 -14 6 -14 14c0 2 0 4 1 6v0
+c9 16 31 47 31 76v1c-68 35 -112 93 -112 159c0 106 115 192 256 192zM256 64c124 0 224 72 224 160s-101 160 -224 160c-124 0 -224 -72 -224 -160c0 -51 36 -100 95 -130c11 -5 17 -17 17 -29v-3c0 -17 -5 -33 -11 -47c23 14 42 33 49 41c6 7 15 12 25 12c2 0 2 -1 4 -1
+c15 -2 30 -3 45 -3z" />
+    <glyph glyph-name="uniF19B" unicode="&#xf19b;" horiz-adv-x="427" 
+d="M213 80l-132 -80l35 150l-116 101l153 13l60 141l60 -141l154 -13l-117 -101l35 -150z" />
+    <glyph glyph-name="uniF181" unicode="&#xf181;" horiz-adv-x="384" 
+d="M341 384c24 0 43 -19 43 -43v-298c0 -24 -19 -43 -43 -43h-299c-24 0 -42 19 -42 43v298c0 24 18 43 42 43h299zM341 128v213h-299v-213h86c0 -35 29 -64 64 -64s64 29 64 64h85zM277 235l-85 -86l-85 86h42v64h86v-64h42z" />
+    <glyph glyph-name="uniF16E" unicode="&#xf16e;" horiz-adv-x="320" 
+d="M160 448c88 0 160 -72 160 -160c0 -160 -160 -352 -160 -352s-160 192 -160 352c0 88 72 160 160 160zM160 192c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96z" />
+    <glyph glyph-name="uniF1ED" unicode="&#xf1ed;" horiz-adv-x="416" 
+d="M224 351c107 -8 192 -98 192 -207c0 -115 -93 -208 -208 -208s-208 93 -208 208c0 109 85 199 192 207v33h-64v32c0 18 14 32 32 32h96c18 0 32 -14 32 -32v-32h-64v-33zM321 31v0c30 30 47 70 47 113s-17 83 -47 113c-29 29 -67 46 -108 47l11 -157
+c1 -13 -6 -19 -16 -19s-17 6 -16 19l11 157c-41 -1 -79 -18 -108 -47c-30 -30 -47 -70 -47 -113s17 -83 47 -113s70 -47 113 -47s83 17 113 47z" />
+    <glyph glyph-name="uniF140" unicode="&#xf140;" 
+d="M0 288h512l-32 -320h-448zM464 352l16 -32h-448l32 64h176l16 -32h208z" />
+    <glyph glyph-name="uniF13C" unicode="&#xf13c;" 
+d="M68 73c38 0 68 -32 68 -69c0 -38 -30 -67 -68 -67s-68 29 -68 67c0 37 30 69 68 69zM0 274v0c186 0 338 -152 338 -338h-99c0 64 -25 125 -70 170s-105 70 -169 70v98zM0 448c282 0 512 -230 512 -512h-98c0 228 -186 414 -414 414v98z" />
+    <glyph glyph-name="uniF16B" unicode="&#xf16b;" 
+d="M498 -5c12 -8 17 -23 13 -36c-4 -14 -17 -23 -31 -23h-448c-14 0 -27 9 -31 23c-4 13 1 28 13 36c3 2 62 40 149 59c-32 40 -52 95 -61 131c-12 50 -8 148 40 209c28 36 68 54 114 54s86 -18 114 -54c48 -61 52 -159 40 -209c-9 -36 -29 -91 -61 -131
+c87 -19 146 -57 149 -59zM324 74c45 56 66 131 57 202c-9 68 -48 140 -125 140s-116 -72 -125 -140c-10 -71 12 -146 57 -202l5 -7c38 -44 88 -44 126 0zM32 -32h448c-3 2 -57 38 -137 55l-40 8c-14 -9 -30 -15 -47 -15s-33 6 -47 15l-40 -8c-81 -18 -135 -54 -137 -55z" />
+    <glyph glyph-name="uniF1C2" unicode="&#xf1c2;" 
+d="M326 4v0c8 -5 12 -16 7 -24s-17 -11 -25 -6l-18 10c-5 -4 -10 -7 -16 -9v-21c0 -10 -8 -18 -18 -18s-18 8 -18 18v21c-6 2 -11 5 -16 9l-18 -10c-8 -5 -19 -2 -24 6s-2 19 6 24l18 11c-1 3 -1 6 -1 9s0 7 1 10l-18 10c-8 5 -11 16 -6 24s16 12 24 7l18 -11
+c5 4 10 8 16 10v21c0 10 8 18 18 18s18 -8 18 -18v-21c6 -2 11 -6 16 -10l18 11c8 5 20 1 25 -7s1 -19 -7 -24l-18 -10c1 -3 1 -7 1 -10s0 -6 -1 -9zM256 7c10 0 18 7 18 17s-8 18 -18 18s-18 -8 -18 -18s8 -17 18 -17zM474 52v0c6 -2 10 -7 8 -13c-1 -6 -7 -10 -13 -8
+l-12 4c-1 -2 -3 -4 -4 -5s-2 -2 -4 -3l3 -12c2 -6 -2 -11 -8 -13s-10 1 -12 7l-4 12c-4 0 -8 1 -11 3l-8 -9c-4 -4 -11 -4 -15 0s-4 11 0 15l9 9c-2 4 -3 7 -3 11l-12 3c-6 2 -10 7 -8 13s7 9 13 7l12 -3c1 2 3 4 4 5s2 2 4 3l-3 12c-1 6 1 11 7 13s11 -1 13 -7l3 -12
+c4 0 8 -1 11 -3l9 9c4 4 11 4 15 0s4 -11 0 -15l-9 -9c2 -4 3 -7 3 -11zM438 45c4 4 4 11 0 15s-11 4 -15 0s-4 -11 0 -15s11 -4 15 0zM119 106v0c6 1 11 -2 13 -8s-2 -11 -8 -13l-12 -3c0 -4 -1 -8 -3 -11l9 -9c4 -4 4 -11 0 -15s-11 -4 -15 0l-8 9c-4 -2 -7 -3 -11 -3
+l-4 -12c-2 -6 -6 -9 -12 -7c-6 1 -10 7 -8 13l3 12c-2 1 -3 2 -4 3s-3 3 -4 5l-12 -4c-6 -1 -11 2 -13 8s2 11 8 13l12 3c0 4 1 7 3 11l-9 9c-4 4 -4 11 0 15s11 4 15 0l9 -9c3 2 7 3 11 3l3 12c2 6 7 9 13 7c6 -1 9 -7 7 -13l-3 -12c2 -1 3 -2 4 -3s3 -3 4 -5zM89 77
+c4 4 4 11 0 15s-11 4 -15 0s-4 -11 0 -15s11 -4 15 0zM512 272c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65
+s98 -24 128 -65c5 1 11 1 16 1c62 0 112 -50 112 -112z" />
+    <glyph glyph-name="uniF1B7" unicode="&#xf1b7;" horiz-adv-x="217" 
+d="M101 184v0c32 -32 77 -40 116 -26c-5 -15 -14 -30 -26 -42c-44 -44 -114 -44 -158 0s-44 115 0 159c12 12 27 21 42 26c-14 -39 -6 -85 26 -117z" />
+    <glyph glyph-name="uniF1C0" unicode="&#xf1c0;" 
+d="M326 4v0c8 -5 12 -16 7 -24s-17 -11 -25 -6l-18 10c-5 -4 -10 -7 -16 -9v-21c0 -10 -8 -18 -18 -18s-18 8 -18 18v21c-6 2 -11 5 -16 9l-18 -10c-8 -5 -19 -2 -24 6s-2 19 6 24l18 11c-1 3 -1 6 -1 9s0 7 1 10l-18 10c-8 5 -11 16 -6 24s16 12 24 7l18 -11
+c5 4 10 8 16 10v21c0 10 8 18 18 18s18 -8 18 -18v-21c6 -2 11 -6 16 -10l18 11c8 5 20 1 25 -7s1 -19 -7 -24l-18 -10c1 -3 1 -7 1 -10s0 -6 -1 -9zM256 7c10 0 18 7 18 17s-8 18 -18 18s-18 -8 -18 -18s8 -17 18 -17zM474 52v0c6 -2 10 -7 8 -13c-1 -6 -7 -10 -13 -8
+l-12 4c-1 -2 -3 -4 -4 -5s-2 -2 -4 -3l3 -12c2 -6 -2 -11 -8 -13s-10 1 -12 7l-4 12c-4 0 -8 1 -11 3l-8 -9c-4 -4 -11 -4 -15 0s-4 11 0 15l9 9c-2 4 -3 7 -3 11l-12 3c-6 2 -10 7 -8 13s7 9 13 7l12 -3c1 2 3 4 4 5s2 2 4 3l-3 12c-1 6 1 11 7 13s11 -1 13 -7l3 -12
+c4 0 8 -1 11 -3l9 9c4 4 11 4 15 0s4 -11 0 -15l-9 -9c2 -4 3 -7 3 -11zM438 45c4 4 4 11 0 15s-11 4 -15 0s-4 -11 0 -15s11 -4 15 0zM119 106v0c6 1 11 -2 13 -8s-2 -11 -8 -13l-12 -3c0 -4 -1 -8 -3 -11l9 -9c4 -4 4 -11 0 -15s-11 -4 -15 0l-8 9c-4 -2 -7 -3 -11 -3
+l-4 -12c-2 -6 -6 -9 -12 -7c-6 1 -10 7 -8 13l3 12c-2 1 -3 2 -4 3s-3 3 -4 5l-12 -4c-6 -1 -11 2 -13 8s2 11 8 13l12 3c0 4 1 7 3 11l-9 9c-4 4 -4 11 0 15s11 4 15 0l9 -9c3 2 7 3 11 3l3 12c2 6 7 9 13 7c6 -1 9 -7 7 -13l-3 -12c2 -1 3 -2 4 -3s3 -3 4 -5zM89 77
+c4 4 4 11 0 15s-11 4 -15 0s-4 -11 0 -15s11 -4 15 0zM512 272c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65
+s98 -24 128 -65c5 1 11 1 16 1c62 0 112 -50 112 -112zM354 207c13 -9 29 -15 46 -15c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15
+c23 -28 58 -47 98 -47s75 19 98 47z" />
+    <glyph glyph-name="uniF1BF" unicode="&#xf1bf;" 
+d="M326 100c8 -5 12 -16 7 -24s-17 -11 -25 -6l-18 10c-5 -4 -10 -7 -16 -9v-21c0 -10 -8 -18 -18 -18s-18 8 -18 18v21c-6 2 -11 5 -16 9l-18 -10c-8 -5 -19 -2 -24 6s-2 19 6 24l18 11c-1 3 -1 6 -1 9s0 7 1 10l-18 10c-8 5 -11 16 -6 24s16 12 24 7l18 -11
+c5 4 10 8 16 10v21c0 10 8 18 18 18s18 -8 18 -18v-21c6 -2 11 -6 16 -10l18 11c8 5 20 1 25 -7s1 -19 -7 -24l-18 -10c1 -3 1 -7 1 -10s0 -6 -1 -9zM256 103c10 0 18 7 18 17s-8 18 -18 18s-18 -8 -18 -18s8 -17 18 -17zM400 384v0c62 0 112 -50 112 -112
+s-50 -112 -112 -112c-12 0 -23 2 -34 6c-1 5 -3 9 -6 14c-4 7 -10 13 -16 17c3 3 7 6 10 10c13 -9 29 -15 46 -15c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80
+c17 0 33 6 46 15c3 -4 7 -7 10 -10c-6 -4 -12 -10 -16 -17c-3 -5 -5 -9 -6 -14c-11 -4 -22 -6 -34 -6c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1z" />
+    <glyph glyph-name="uniF14D" unicode="&#xf14d;" 
+d="M413 116c2 -2 3 -4 3 -6s-1 -4 -3 -6l-21 -22c-2 -2 -4 -2 -6 -2s-4 0 -6 2l-76 77l-76 -77c-2 -2 -4 -2 -6 -2s-4 0 -6 2l-21 22c-2 2 -3 4 -3 6s1 4 3 6l76 76l-77 76c-3 3 -3 9 0 12l22 22c2 2 4 2 6 2s4 0 6 -2l76 -76l76 76c2 2 4 2 6 2s4 0 6 -2l22 -22
+c3 -3 3 -9 0 -12l-77 -76zM499 354c9 -9 13 -20 13 -33v-256c0 -27 -20 -49 -46 -49h-298c-13 0 -24 3 -34 9c-9 5 -16 11 -23 20v0l-1 1l-110 146l110 148c14 19 34 28 58 28h298c13 0 24 -5 33 -14zM480 65v256c0 9 -5 15 -14 15h-298c-11 0 -22 -3 -32 -16l-96 -128
+l96 -128c8 -10 17 -16 32 -16h298c9 0 14 8 14 17z" />
+    <glyph glyph-name="uniF18C" unicode="&#xf18c;" horiz-adv-x="256" 
+d="M128 384h128v-85h-85v-214c0 -47 -39 -85 -86 -85s-85 38 -85 85s38 86 85 86c16 0 30 -5 43 -12v225z" />
+    <glyph glyph-name="uniF188" unicode="&#xf188;" horiz-adv-x="427" 
+d="M213 405c118 0 214 -95 214 -213s-96 -213 -214 -213s-213 95 -213 213s95 213 213 213zM361 277c-20 35 -53 63 -92 76c13 -24 22 -49 29 -76h63zM213 362c-18 -26 -31 -54 -40 -85h81c-9 31 -23 59 -41 85zM48 149h72c-2 14 -3 28 -3 43s1 29 3 43h-72
+c-4 -14 -5 -28 -5 -43s1 -29 5 -43zM66 107c20 -35 53 -63 92 -76c-13 24 -22 49 -29 76h-63zM129 277c7 27 16 52 29 76c-39 -13 -72 -41 -92 -76h63zM213 22c18 26 32 54 41 85h-81c9 -31 22 -59 40 -85zM263 149c2 14 4 28 4 43s-2 29 -4 43h-100c-2 -14 -3 -28 -3 -43
+s1 -29 3 -43h100zM269 31c39 13 71 41 92 76h-63c-7 -27 -16 -52 -29 -76zM306 149h72c4 14 6 28 6 43s-2 29 -6 43h-72c2 -14 3 -28 3 -43s-1 -29 -3 -43z" />
+    <glyph glyph-name="uniF153" unicode="&#xf153;" horiz-adv-x="192" 
+d="M180 288l12 -12l-84 -84l84 -84l-12 -12l-84 84l-84 -84l-12 12l84 84l-84 84l12 12l84 -84z" />
+    <glyph glyph-name="uniF125" unicode="&#xf125;" 
+d="M256 448c141 0 256 -115 256 -256s-115 -256 -256 -256s-256 115 -256 256s115 256 256 256zM256 -16c115 0 208 93 208 208s-93 208 -208 208s-208 -93 -208 -208s93 -208 208 -208zM304 240l80 -144v-32h-32l-144 80l-80 144v32h32zM256 160c18 0 32 14 32 32
+s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="uniF160" unicode="&#xf160;" 
+d="M469 400c24 0 43 -19 43 -43v-378c0 -24 -19 -43 -43 -43h-426c-24 0 -43 19 -43 43v378c0 24 19 43 43 43h69v32c0 9 7 16 16 16s16 -7 16 -16v-32h96v32c0 9 7 16 16 16s16 -7 16 -16v-32h96v32c0 9 7 16 16 16s16 -7 16 -16v-32h69zM480 -21v378c0 6 -5 11 -11 11h-69
+v-32c0 -9 -7 -16 -16 -16s-16 7 -16 16v32h-96v-32c0 -9 -7 -16 -16 -16s-16 7 -16 16v32h-96v-32c0 -9 -7 -16 -16 -16s-16 7 -16 16v32h-69c-6 0 -11 -5 -11 -11v-378c0 -6 5 -11 11 -11h426c6 0 11 5 11 11zM112 256h64v-48h-64v48zM112 176h64v-48h-64v48zM112 96h64
+v-48h-64v48zM224 96h64v-48h-64v48zM224 176h64v-48h-64v48zM224 256h64v-48h-64v48zM336 96h64v-48h-64v48zM336 176h64v-48h-64v48zM336 256h64v-48h-64v48z" />
+    <glyph glyph-name="uniF119" unicode="&#xf119;" 
+d="M484 47c0 -20 11 -37 28 -46v-7c-5 -1 -9 -1 -14 -1c-30 0 -58 13 -77 33c-12 -3 -24 -5 -37 -5c-71 0 -128 51 -128 114s57 114 128 114s128 -51 128 -114c0 -25 -9 -47 -24 -66c-3 -7 -4 -14 -4 -22v0zM228 448c124 0 224 -80 227 -180c-22 10 -46 15 -71 15
+c-42 0 -83 -15 -113 -42c-31 -28 -49 -66 -49 -106c0 -20 5 -39 13 -57h-7c-12 0 -24 1 -36 2c-49 -49 -108 -57 -164 -58v11c30 15 57 43 57 74c0 4 0 8 -1 12c-51 34 -84 86 -84 144c0 102 102 185 228 185z" />
+    <glyph glyph-name="uniF1CB" unicode="&#xf1cb;" 
+d="M400 384c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM400 192v0
+c44 0 80 36 80 80s-36 80 -80 80c-4 0 -7 0 -11 -1l-19 -3l-12 16c-24 33 -61 52 -102 52s-78 -19 -102 -52l-12 -16l-19 3c-4 1 -7 1 -11 1c-44 0 -80 -36 -80 -80s36 -80 80 -80c10 0 19 2 28 5l18 7l15 -13c23 -20 53 -31 83 -31s60 11 83 31l15 13l18 -7
+c9 -3 18 -5 28 -5zM96 128c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM256 96c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM416 128c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM352 0c18 0 32 -14 32 -32
+s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM160 0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32z" />
+    <glyph glyph-name="uniF182" unicode="&#xf182;" horiz-adv-x="384" 
+d="M341 384c24 0 43 -19 43 -43v-298c0 -24 -19 -43 -43 -43h-298c-24 0 -43 19 -43 43v298c0 24 19 43 43 43h298zM53 288v-32h43v-43h32v43h43v32h-43v43h-32v-43h-43zM341 43v298l-298 -298h298zM299 85h-107v32h107v-32z" />
+    <glyph glyph-name="uniF133" unicode="&#xf133;" horiz-adv-x="219" 
+d="M146 289h73l-8 -81h-65v-235h-97v235h-49v81h49v49c0 35 8 61 24 79s43 26 81 26h65v-81h-41c-7 0 -14 -1 -18 -2s-7 -3 -9 -6s-3 -7 -4 -10s-1 -8 -1 -14v-41v0z" />
+    <glyph glyph-name="uniF144" unicode="&#xf144;" horiz-adv-x="448" 
+d="M354 288v0h94v-128h-32v-224h-384v224h-32v128h109c-13 7 -26 16 -36 26c-29 29 -32 73 -7 98c11 11 26 17 42 17c19 0 40 -8 56 -24c30 -30 45 -75 53 -108c10 33 30 79 63 112c21 21 46 33 71 33c17 0 33 -6 44 -17c14 -14 20 -35 16 -58c-4 -21 -15 -40 -32 -57
+c-8 -8 -16 -16 -25 -22zM305 384v0c-28 -28 -45 -67 -54 -96h26c26 10 55 25 77 47c21 21 29 52 16 65c-5 5 -14 6 -19 6c-15 0 -32 -8 -46 -22zM85 368c1 -10 6 -20 14 -28c17 -17 44 -32 78 -41h2v2c-9 34 -24 61 -41 78c-9 9 -19 14 -30 14v0c-5 0 -12 -1 -17 -6
+c-6 -6 -6 -14 -6 -19zM192 -32v208h-128v-208h128zM192 192v64h-160v-64h160zM384 -32v208h-128v-208h128zM416 192v64h-160v-64h160z" />
+    <glyph glyph-name="uniF124" unicode="&#xf124;" 
+d="M182 87v0c3 -5 5 -11 7 -17l35 -6v-32l-35 -6c-2 -6 -4 -12 -7 -17l21 -29l-23 -23l-29 21c-5 -3 -11 -5 -17 -7l-6 -35h-32l-6 35c-6 2 -12 4 -17 7l-29 -21l-23 23l21 29c-3 5 -5 11 -7 17l-35 6v32l35 6c2 6 4 12 7 17l-21 29l23 23l29 -21c5 3 11 5 17 7l6 35h32
+l6 -35c6 -2 12 -4 17 -7l29 21l22 -23zM112 16c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM512 256l-34 -6c-1 -4 -1 -8 -2 -12l29 -19l-13 -29l-33 7c-2 -3 -5 -7 -7 -10l20 -28l-23 -23l-28 20c-3 -2 -7 -5 -10 -7l7 -33l-29 -13l-19 29
+c-4 -1 -8 -1 -12 -2l-6 -34h-32l-6 34c-4 1 -8 1 -12 2l-19 -29l-29 13l7 33c-3 2 -7 5 -10 7l-28 -20l-23 23l20 28c-2 3 -5 7 -7 10l-33 -7l-13 29l29 19c-1 4 -1 8 -2 12l-34 6v32l34 6c1 4 1 8 2 12l-29 19l13 29l33 -7c2 3 5 7 7 10l-20 28l23 23l28 -20c3 2 7 5 10 7
+l-7 33l29 13l19 -29c4 1 8 1 12 2l6 34h32l6 -34c4 -1 8 -1 12 -2l19 29l29 -13l-7 -33c3 -2 7 -5 10 -7l28 20l23 -23l-20 -28c2 -3 5 -7 7 -10l33 7l13 -29l-29 -19c1 -4 1 -8 2 -12l34 -6v-32zM336 202c38 0 70 32 70 70s-32 70 -70 70s-70 -32 -70 -70s32 -70 70 -70z
+" />
+    <glyph glyph-name="uniF1F8" unicode="&#xf1f8;" horiz-adv-x="440" 
+d="M360 32c-6 0 -12 2 -17 7c-9 9 -9 25 0 34c66 66 66 172 0 238c-9 9 -9 25 0 34s25 9 34 0c41 -41 63 -95 63 -153s-22 -112 -63 -153c-5 -5 -11 -7 -17 -7v0zM275 77c-6 0 -12 3 -17 8c-9 9 -9 24 0 33c41 41 41 107 0 148c-9 9 -9 24 0 33s24 9 33 0
+c59 -59 59 -156 0 -215c-5 -5 -11 -7 -17 -7h1zM201 409c13 13 23 8 23 -10v-414c0 -18 -10 -23 -23 -10l-121 121h-80v192h80l121 121v0z" />
+    <glyph glyph-name="uniF1F5" unicode="&#xf1f5;" 
+d="M224 160v128h-96l128 128l128 -128h-96v-128h-64zM320 232l192 -72v-128l-256 -96l-256 96v128l192 72v-49l-147 -55l211 -79l211 79l-147 55v49z" />
+    <glyph glyph-name="uniF1E1" unicode="&#xf1e1;" horiz-adv-x="448" 
+d="M64 -64l-32 352h384l-32 -352h-320zM288 384h160v-96l-32 32h-384l-32 -32v96h160v64h128v-64zM256 384v32h-64v-32h64z" />
+    <glyph glyph-name="uniF196" unicode="&#xf196;" horiz-adv-x="373" 
+d="M267 149l106 -106l-32 -32l-106 106v17l-6 6c-24 -21 -56 -33 -90 -33c-77 0 -139 61 -139 138s62 139 139 139s138 -62 138 -139c0 -34 -12 -66 -33 -90l6 -6h17zM139 149c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96z" />
+    <glyph glyph-name="uniF1C5" unicode="&#xf1c5;" horiz-adv-x="416" 
+d="M208 304c62 0 112 -50 112 -112s-50 -112 -112 -112s-112 50 -112 112s50 112 112 112zM208 336c-9 0 -16 7 -16 16v32c0 9 7 16 16 16s16 -7 16 -16v-32c0 -9 -7 -16 -16 -16zM208 48c9 0 16 -7 16 -16v-32c0 -9 -7 -16 -16 -16s-16 7 -16 16v32c0 9 7 16 16 16z
+M332 294c-6 -6 -16 -6 -22 0s-6 16 0 22l22 23c6 6 17 6 23 0s6 -17 0 -23zM84 90c6 6 16 6 22 0s6 -16 0 -22l-22 -23c-6 -6 -17 -6 -23 0s-6 17 0 23zM64 192c0 -9 -7 -16 -16 -16h-32c-9 0 -16 7 -16 16s7 16 16 16h32c9 0 16 -7 16 -16zM400 208c9 0 16 -7 16 -16
+s-7 -16 -16 -16h-32c-9 0 -16 7 -16 16s7 16 16 16h32zM84 294l-23 22c-6 6 -6 17 0 23s17 6 23 0l22 -23c6 -6 6 -16 0 -22s-16 -6 -22 0zM332 90l23 -22c6 -6 6 -17 0 -23s-17 -6 -23 0l-22 23c-6 6 -6 16 0 22s16 6 22 0z" />
+    <glyph glyph-name="uniF1C4" unicode="&#xf1c4;" horiz-adv-x="384" 
+d="M208 321c-9 0 -16 7 -16 16v32c0 9 7 16 16 16s16 -7 16 -16v-32c0 -9 -7 -16 -16 -16zM208 33c9 0 16 -7 16 -16v-32c0 -9 -7 -16 -16 -16s-16 7 -16 16v32c0 9 7 16 16 16zM84 75c6 6 16 6 22 0s6 -16 0 -22l-22 -23c-6 -6 -17 -6 -23 0s-6 17 0 23zM64 177
+c0 -9 -7 -16 -16 -16h-32c-9 0 -16 7 -16 16s7 16 16 16h32c9 0 16 -7 16 -16zM84 279l-23 22c-6 6 -6 17 0 23s17 6 23 0l22 -23c6 -6 6 -16 0 -22s-16 -6 -22 0zM272 289c62 0 112 -50 112 -112s-50 -112 -112 -112c-11 0 -22 2 -32 5c-10 -3 -21 -5 -32 -5
+c-62 0 -112 50 -112 112s50 112 112 112c11 0 22 -2 32 -5c10 3 21 5 32 5zM192 99c-20 20 -32 47 -32 78s12 58 32 78c-37 -7 -64 -39 -64 -78s27 -71 64 -78z" />
+    <glyph glyph-name="uniF177" unicode="&#xf177;" horiz-adv-x="375" 
+d="M119 103l226 226l30 -30l-256 -256l-119 119l30 30z" />
+    <glyph glyph-name="uniF1F2" unicode="&#xf1f2;" horiz-adv-x="462" 
+d="M30 224c-36 0 -16 96 16 96c-16 0 0 80 32 80c0 32 32 48 64 48c135 0 88 -34 224 -48v-256c-120 -36 -240 -127 -240 -208c-26 0 -96 32 0 192h-96c-48 0 -32 96 0 96zM398 144v256h-32v16h64c18 0 32 -22 32 -48v-192c0 -26 -14 -48 -32 -48h-64v16h32z" />
+    <glyph glyph-name="uniF14F" unicode="&#xf14f;" horiz-adv-x="416" 
+d="M19 299c-4 2 -11 7 -13 11c-3 8 1 10 12 10h191h191c11 0 15 -2 12 -10c-2 -4 -9 -9 -13 -11c-11 -6 -163 -89 -169 -92s-12 -4 -21 -4s-15 1 -21 4s-158 86 -169 92zM408 295c9 4 8 -1 8 -5v-205c0 -9 -12 -21 -22 -21h-185h-185c-10 0 -24 12 -24 21v205s0 9 9 5
+c8 -4 83 -56 132 -88l-83 -93c-2 -2 -2 -4 -1 -5s4 -1 6 1l98 83c15 -10 25 -16 27 -17c8 -4 14 -4 21 -4s13 0 21 4c2 1 12 7 27 17l98 -83c2 -2 5 -2 6 -1s0 3 -2 5l-82 93c49 32 123 84 131 88z" />
+    <glyph glyph-name="uniF115" unicode="&#xf115;" 
+d="M0 32h512v-64h-512v64zM64 160h64v-96h-64v96zM160 288h64v-224h-64v224zM256 192h64v-128h-64v128zM352 384h64v-320h-64v320z" />
+    <glyph glyph-name="uniF1DD" unicode="&#xf1dd;" horiz-adv-x="320" 
+d="M0 384l320 -192l-320 -192v384z" />
+    <glyph glyph-name="uniF198" unicode="&#xf198;" horiz-adv-x="341" 
+d="M140 252l-30 -30l-110 110l30 31zM224 363h117v-118l-43 44l-268 -268l-30 31l268 267zM231 162l67 -67l43 44v-118h-117l44 44l-67 67z" />
+    <glyph glyph-name="uniF168" unicode="&#xf168;" 
+d="M510 247c4 -13 1 -26 -9 -36l-97 -98l22 -135c2 -14 -3 -27 -15 -35c-6 -4 -14 -7 -21 -7c-6 0 -12 1 -18 4l-116 63l-116 -63c-6 -3 -12 -4 -18 -4c-7 0 -15 3 -21 7c-12 8 -18 21 -16 35l23 135l-97 98c-10 10 -13 23 -9 36s15 22 29 24l134 20l58 120
+c6 13 19 21 33 21s27 -8 33 -21l58 -120l134 -20c14 -2 25 -11 29 -24zM377 138l98 98l-133 19c-12 2 -23 10 -28 21l-58 120l-58 -120c-5 -11 -16 -18 -28 -20l-133 -20l98 -98c8 -8 12 -20 10 -31l-23 -135l116 63c6 3 12 4 18 4s12 -1 18 -4l116 -63l-23 135
+c-2 11 2 23 10 31z" />
+    <glyph glyph-name="uniF145" unicode="&#xf145;" horiz-adv-x="480" 
+d="M240 416c133 0 240 -107 240 -240s-107 -240 -240 -240s-240 107 -240 240s107 240 240 240zM376 96h56c9 20 13 42 15 64h-63c-1 -22 -4 -44 -8 -64zM104 256h-56c-9 -20 -13 -42 -15 -64h63c1 22 4 44 8 64zM343 256h-87v-64h96c-1 22 -4 44 -9 64zM256 288v0h78
+c-5 15 -13 29 -20 41c-11 18 -23 33 -36 42c-7 5 -15 9 -22 11v-94zM166 329v0c-7 -12 -15 -26 -20 -41h78v94c-7 -2 -15 -6 -22 -11c-13 -9 -25 -24 -36 -42zM224 256h-87c-5 -20 -8 -42 -9 -64h96v64zM48 96h56c-4 20 -7 42 -8 64h-63c2 -22 6 -44 15 -64zM128 160
+c1 -22 4 -44 9 -64h87v64h-96zM224 64v0h-78c5 -15 13 -29 20 -41c11 -18 23 -33 36 -42c7 -5 15 -9 22 -11v94zM314 23v0c7 12 15 26 20 41h-78v-94c7 2 15 6 22 11c13 9 25 24 36 42zM256 96h87c5 20 8 42 9 64h-96v-64zM384 192h63c-2 22 -6 44 -15 64h-56
+c4 -20 7 -42 8 -64zM415 288c-8 13 -17 24 -28 35c-17 17 -36 31 -57 41c15 -21 28 -47 37 -76h48zM93 323c-11 -11 -20 -22 -28 -35h48c9 29 22 55 37 76c-21 -10 -40 -24 -57 -41zM65 64c8 -13 17 -24 28 -35c17 -17 36 -31 57 -41c-15 21 -28 47 -37 76h-48zM387 29
+c11 11 20 22 28 35h-48c-9 -29 -22 -55 -37 -76c21 10 40 24 57 41z" />
+    <glyph glyph-name="uniF18F" unicode="&#xf18f;" horiz-adv-x="256" 
+d="M0 43v298h85v-298h-85zM171 341h85v-298h-85v298z" />
+    <glyph glyph-name="uniF1DC" unicode="&#xf1dc;" 
+d="M491 368c14 -54 21 -113 21 -176s-7 -122 -21 -176c-72 -10 -152 -16 -235 -16s-163 6 -235 16c-14 54 -21 113 -21 176s7 122 21 176c72 10 152 16 235 16s163 -6 235 -16zM192 96l160 96l-160 96v-192z" />
+    <glyph glyph-name="uniF15E" unicode="&#xf15e;" 
+d="M256 448l256 -160h-512zM400 256h96l-16 -32v-192h-64v192zM272 256h96l-16 -32v-192h-64v192zM144 256h96l-16 -32v-192h-64v192zM16 256h96l-16 -32v-192h-64v192zM16 0h480l16 -64h-512zM288 352c0 18 -14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32s32 14 32 32z" />
+    <glyph glyph-name="uniF1E7" unicode="&#xf1e7;" 
+d="M256 448c141 0 256 -115 256 -256s-115 -256 -256 -256s-256 115 -256 256s115 256 256 256zM352 320c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM160 320c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM256 32
+c58 0 109 31 137 78l-41 24c-20 -33 -55 -54 -96 -54s-76 21 -96 54l-41 -24c28 -47 79 -78 137 -78z" />
+    <glyph glyph-name="uniF175" unicode="&#xf175;" 
+d="M469 384c24 0 43 -19 43 -43v-298c0 -24 -19 -43 -43 -43h-320c-15 0 -26 8 -34 19l-115 173l115 173c8 11 19 19 34 19h320zM405 116l-76 76l76 76l-30 31l-76 -77l-77 77l-30 -31l76 -76l-76 -76l30 -31l77 77l76 -77z" />
+    <glyph glyph-name="uniF1B3" unicode="&#xf1b3;" 
+d="M400 384v0c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-26 -23 -59 -36 -93 -38l-11 -33l32 -32l-96 -96l32 96l-32 32l35 35c-28 5 -53 17 -75 36c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65
+s98 -24 128 -65c5 1 11 1 16 1z" />
+    <glyph glyph-name="uniF12B" unicode="&#xf12b;" 
+d="M256 160l-128 128h96v128h64v-128h96zM372 212l140 -52v-128l-256 -96l-256 96v128l140 52l36 -36l-131 -48l211 -79l211 79l-131 48z" />
+    <glyph glyph-name="uniF149" unicode="&#xf149;" 
+d="M512 153l-256 199l-256 -199v81l256 199l256 -199v-81zM448 160v-192h-128v128h-128v-128h-128v192l192 144z" />
+    <glyph glyph-name="uniF11B" unicode="&#xf11b;" horiz-adv-x="480" 
+d="M160 256h64v-64h-64v64zM256 256h64v-64h-64v64zM352 256h64v-64h-64v64zM64 64h64v-64h-64v64zM160 64h64v-64h-64v64zM256 64h64v-64h-64v64zM160 160h64v-64h-64v64zM256 160h64v-64h-64v64zM352 160h64v-64h-64v64zM64 160h64v-64h-64v64zM416 448h64v-512h-480v512
+h64v-32h64v32h224v-32h64v32zM448 -32v352h-416v-352h416z" />
+    <glyph glyph-name="uniF1B8" unicode="&#xf1b8;" horiz-adv-x="408" 
+d="M107 169v0v112h35v-176h-32l-44 66l-29 45h-2v-111h-35v176h32l41 -60l33 -52h1zM155 94l64 196h26l-65 -196h-25zM347 281v0l61 -176h-38l-11 36h-61l-12 -36h-37l62 176h36zM307 170v0h43l-7 23l-14 46h-1l-13 -45z" />
+    <glyph glyph-name="uniF17F" unicode="&#xf17f;" horiz-adv-x="405" 
+d="M0 85v22h64v-86h-64v22h43v10h-22v22h22v10h-43zM21 277v64h-21v22h43v-86h-22zM0 213v22h64v-20l-38 -44h38v-22h-64v20l38 44h-38zM107 341h298v-42h-298v42zM107 43v42h298v-42h-298zM107 171v42h298v-42h-298z" />
+    <glyph glyph-name="uniF151" unicode="&#xf151;" horiz-adv-x="192" 
+d="M0 320l32 32l160 -160v0v0l-160 -160l-32 32l127 128z" />
+    <glyph glyph-name="uniF11F" unicode="&#xf11f;" 
+d="M329 73l-105 106v141h64v-115l87 -86zM256 448c141 0 256 -115 256 -256s-115 -256 -256 -256s-256 115 -256 256s115 256 256 256zM256 0c106 0 192 86 192 192s-86 192 -192 192s-192 -86 -192 -192s86 -192 192 -192z" />
+    <glyph glyph-name="uniF1EF" unicode="&#xf1ef;" 
+d="M256 448c141 0 256 -115 256 -256s-115 -256 -256 -256s-256 115 -256 256s115 256 256 256zM160 192c0 -53 43 -96 96 -96s96 43 96 96s-43 96 -96 96s-96 -43 -96 -96zM463 106v0c11 26 17 56 17 86s-6 60 -17 86l-89 -37c6 -15 10 -32 10 -49s-4 -34 -10 -49l89 -37v0
+zM342 399c-26 11 -56 17 -86 17s-60 -6 -86 -17l37 -89c15 6 32 10 49 10s34 -4 49 -10l37 89v0v0zM49 278v0c-11 -26 -17 -56 -17 -86s6 -60 17 -86l89 37c-6 15 -10 32 -10 49s4 34 10 49zM170 -15c26 -11 56 -17 86 -17s60 6 86 17l-37 89c-15 -6 -32 -10 -49 -10
+s-34 4 -49 10z" />
+    <glyph glyph-name="uniF1EE" unicode="&#xf1ee;" horiz-adv-x="507" 
+d="M81 140c-3 0 -7 1 -9 3l-69 81c-4 4 -3 11 1 15s11 3 15 -1l60 -70l50 78c3 5 10 6 15 3s6 -10 3 -15l-58 -89c-2 -3 -5 -5 -8 -5v0zM497 113c-3 0 -7 2 -9 5l-52 77l-59 -71c-4 -5 -10 -6 -15 -2s-5 10 -1 15l68 82c2 3 6 4 9 4s6 -2 8 -5l59 -88c3 -5 3 -12 -2 -15
+c-2 -1 -4 -2 -6 -2zM257 -0c-50 0 -98 19 -135 55c-4 4 -4 11 0 15s11 5 15 1c42 -42 101 -59 159 -45c84 20 141 99 131 185c-1 6 3 11 9 12s11 -3 12 -9c11 -96 -52 -187 -147 -209c-15 -3 -29 -5 -44 -5zM81 140c-5 0 -10 3 -11 8c-12 50 -3 101 24 145s69 74 119 86
+c69 16 141 -7 188 -60c4 -4 3 -11 -1 -15s-11 -3 -15 1c-42 47 -106 68 -167 53c-44 -10 -82 -37 -106 -76s-31 -85 -21 -129c1 -6 -2 -12 -8 -13h-2z" />
+    <glyph glyph-name="uniF19F" unicode="&#xf19f;" horiz-adv-x="384" 
+d="M352 382c15 -4 26 -15 30 -30l-350 -350c-7 2 -14 5 -19 10l-1 1c-5 5 -8 12 -10 19zM189 384h61l-250 -250v61zM43 384h42l-85 -85v42c0 23 20 43 43 43zM341 0h-42l85 85v-42c0 -12 -5 -23 -13 -31s-18 -12 -30 -12zM134 0l250 250v-61l-189 -189h-61z" />
+    <glyph glyph-name="uniF15C" unicode="&#xf15c;" horiz-adv-x="669" 
+d="M323 88c-18 -18 -43 9 -27 27c59 59 120 119 179 178c18 16 42 -10 26 -26c-59 -59 -119 -120 -178 -179zM295 269c-16 16 10 42 26 27l180 -177c16 -18 -8 -43 -26 -27zM255 441v0h352s14 -1 29 -7c14 -6 31 -22 32 -47v0c1 -22 1 -117 1 -209c0 -91 -1 -178 -1 -178v-1
+s1 -13 -7 -26c-8 -14 -26 -27 -54 -27h-352s-18 1 -34 14h-1c-3 3 -6 6 -12 11c-6 6 -14 14 -24 23c-19 18 -44 41 -68 64c-48 46 -96 90 -96 90s-11 10 -17 27s-5 42 17 62l1 1l199 188v1h1s4 4 10 7s14 7 24 7zM255 411v0c-2 0 -6 -1 -10 -3c-3 -2 -4 -3 -5 -3l-1 -1
+l-198 -188v0h-1c-15 -13 -12 -21 -9 -30s10 -16 10 -16s47 -45 95 -91c24 -23 49 -46 68 -64c10 -9 18 -16 24 -22s12 -10 11 -10v0l1 -1c8 -7 15 -6 15 -6h352c20 0 26 6 29 12s3 11 3 11v0v179s1 189 0 207c-1 14 -7 18 -15 22s-17 4 -17 4h-352z" />
+    <glyph glyph-name="uniF16C" unicode="&#xf16c;" horiz-adv-x="496" 
+d="M248 448c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM464 208c-2 52 -23 99 -55 135c-18 -14 -38 -26 -60 -35c11 -31 18 -65 19 -100h96zM239 -16h1v96c-23 -1 -45 -4 -66 -11c16 -33 38 -63 65 -85zM257 416h-1v-112
+c25 1 49 6 72 14c-17 39 -41 73 -71 98zM283 413c25 -25 45 -55 60 -90c20 8 38 19 55 32c-31 30 -71 51 -115 58zM240 416h-1c-30 -25 -54 -59 -71 -98c23 -8 47 -13 72 -14v112zM153 323c15 35 35 65 60 90c-44 -7 -84 -28 -115 -58c17 -13 35 -24 55 -32zM162 303
+c-11 -29 -17 -61 -18 -95h96v80c-27 1 -53 6 -78 15zM240 192h-96c1 -39 9 -76 23 -109c23 7 48 12 73 13v96zM213 -13c-22 21 -40 47 -54 76c-18 -7 -35 -16 -51 -27c29 -25 65 -42 105 -49zM256 -16h1c27 22 49 52 65 85c-21 7 -43 10 -66 11v-96zM337 63
+c-14 -29 -32 -55 -54 -76c40 7 76 24 105 49c-16 11 -33 20 -51 27zM329 83c14 33 22 70 23 109h-96v-96c25 -1 50 -6 73 -13zM256 208v0h96c-1 34 -7 66 -18 95c-25 -9 -51 -14 -78 -15v-80zM87 343c-32 -36 -53 -83 -55 -135h96c1 35 8 69 19 100c-22 9 -42 21 -60 35z
+M32 192c2 -57 26 -108 64 -145c17 12 36 23 56 31c-15 35 -23 73 -24 114h-96zM400 47c38 37 62 88 64 145h-96c-1 -41 -9 -79 -24 -114c20 -8 39 -19 56 -31z" />
+    <glyph glyph-name="uniF1AB" unicode="&#xf1ab;" 
+d="M208 384c-9 0 -16 7 -16 16v32c0 9 7 16 16 16s16 -7 16 -16v-32c0 -9 -7 -16 -16 -16zM332 342c-6 -6 -16 -6 -22 0s-6 16 0 22l22 23c6 6 17 6 23 0s6 -17 0 -23zM16 224c-9 0 -16 7 -16 16s7 16 16 16h32c9 0 16 -7 16 -16s-7 -16 -16 -16h-32zM352 240
+c0 9 7 16 16 16h32c9 0 16 -7 16 -16s-7 -16 -16 -16h-32c-9 0 -16 7 -16 16zM84 342l-23 22c-6 6 -6 17 0 23s17 6 23 0l22 -23c6 -6 6 -16 0 -22s-16 -6 -22 0zM400 192v0c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39
+c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112c0 60 48 110 108 112c-7 15 -12 31 -12 48c0 62 50 112 112 112c61 0 111 -49 112 -110c25 -11 47 -28 64 -51c5 1 11 1 16 1zM208 320c-44 0 -80 -36 -80 -80c0 -14 4 -26 10 -37c30 33 72 53 118 53
+c10 0 21 -1 31 -3c-6 38 -39 67 -79 67zM400 0v-0c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-12 24 -32 43 -55 55c-9 5 -19 9 -30 11c-9 2 -19 4 -29 4c-39 0 -75 -18 -98 -46c-6 -7 -12 -15 -16 -24c-3 1 -5 1 -8 2c-7 2 -14 4 -22 4c-44 0 -80 -36 -80 -80
+s36 -80 80 -80c17 0 33 6 46 15c23 -28 58 -47 98 -47s75 19 98 47c13 -9 29 -15 46 -15z" />
+    <glyph glyph-name="uniF112" unicode="&#xf112;" horiz-adv-x="449" 
+d="M0 191l111 112h338v-222h-338zM322 119l20 20l-57 56l57 56l-20 20l-56 -56l-57 56l-19 -20l56 -56l-56 -56l19 -20l57 56z" />
+    <glyph glyph-name="uniF1A1" unicode="&#xf1a1;" horiz-adv-x="469" 
+d="M427 384c24 0 42 -19 42 -43v-256c0 -24 -18 -42 -42 -42h-107v-43h-171v43h-106c-24 0 -43 18 -43 42v256c0 24 19 43 43 43h384zM427 85v256h-384v-256h384z" />
+    <glyph glyph-name="uniF1DF" unicode="&#xf1df;" 
+d="M128 416h256v-64h-256v64zM480 320c18 0 32 -14 32 -32v-160c0 -18 -14 -32 -32 -32h-96v-128h-256v128h-96c-18 0 -32 14 -32 32v160c0 18 14 32 32 32h448zM352 0v160h-192v-160h192zM487 272c0 13 -10 23 -23 23s-23 -10 -23 -23s10 -23 23 -23s23 10 23 23z" />
+    <glyph glyph-name="uniF1E2" unicode="&#xf1e2;" horiz-adv-x="432" 
+d="M192 60v-124l-192 192l192 192v-127c223 -5 214 152 157 255c140 -152 110 -395 -157 -388z" />
+    <glyph glyph-name="uniF130" unicode="&#xf130;" 
+d="M420 300c39 -28 70 -65 92 -108c-48 -95 -144 -160 -256 -160c-31 0 -62 6 -90 15l39 39c17 -4 34 -6 51 -6c45 0 88 13 126 37c30 19 56 45 75 75c-19 29 -43 54 -72 73zM256 99c-11 0 -23 1 -33 4l157 157c3 -10 4 -22 4 -33c0 -71 -57 -128 -128 -128zM480 448v0v-27
+l-453 -453h-27v27l91 90c-38 27 -70 64 -91 107c48 95 144 160 256 160c30 0 59 -5 87 -14l110 110h27zM208 291v0c-27 0 -48 -21 -48 -48c0 -24 18 -43 41 -47l54 54c-4 23 -23 41 -47 41zM55 192c18 -29 42 -53 70 -72l29 29c-17 22 -26 49 -26 78c0 15 3 30 8 44
+c-2 -1 -4 -3 -6 -4c-30 -19 -56 -45 -75 -75z" />
+    <glyph glyph-name="uniF1F7" unicode="&#xf1f7;" 
+d="M419 14c-6 0 -12 3 -16 7c-9 9 -9 23 0 32c41 41 64 96 64 154s-23 113 -64 154c-9 9 -9 23 0 32s23 9 32 0c50 -50 77 -116 77 -186s-27 -136 -77 -186c-4 -4 -10 -7 -16 -7v0zM339 57c-6 0 -12 2 -16 6c-9 9 -9 23 0 32c62 62 62 162 0 224c-9 9 -9 23 0 32s23 9 32 0
+c38 -38 59 -90 59 -144s-21 -106 -59 -144c-4 -4 -10 -6 -16 -6v0zM258 99c-6 0 -12 3 -16 7c-9 9 -9 23 0 32c38 38 38 100 0 138c-9 9 -9 23 0 32s23 9 32 0c56 -56 56 -146 0 -202c-4 -4 -10 -7 -16 -7v0zM189 411c12 12 22 8 22 -9v-390c0 -17 -10 -21 -22 -9l-114 114
+h-75v180h75l114 114v0z" />
+    <glyph glyph-name="uniF186" unicode="&#xf186;" horiz-adv-x="256" 
+d="M30 119l-30 30l128 128l128 -128l-30 -30l-98 98z" />
+    <glyph glyph-name="uniF19D" unicode="&#xf19d;" horiz-adv-x="256" 
+d="M0 320h256v-256h-256v256z" />
+    <glyph glyph-name="uniF1E6" unicode="&#xf1e6;" 
+d="M256 -64c-141 0 -256 115 -256 256s115 256 256 256s256 -115 256 -256s-115 -256 -256 -256zM256 400c-115 0 -208 -93 -208 -208s93 -208 208 -208s208 93 208 208s-93 208 -208 208zM128 288c0 18 14 32 32 32s32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32zM320 288
+c0 18 14 32 32 32s32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32zM352 134l41 -24c-28 -47 -79 -78 -137 -78s-109 31 -137 78l41 24c20 -33 55 -54 96 -54s76 21 96 54z" />
+    <glyph glyph-name="uniF1EB" unicode="&#xf1eb;" 
+d="M512 249l-128 -124l30 -176l-158 83l-158 -83l30 176l-128 124l177 26l79 160l79 -160z" />
+    <glyph glyph-name="uniF131" unicode="&#xf131;" horiz-adv-x="267" 
+d="M267 109c0 -29 -10 -54 -29 -75s-44 -34 -74 -39v-50c0 -3 0 -4 -2 -6s-4 -3 -7 -3h-38c-2 0 -5 1 -7 3s-3 4 -3 6v50c-13 2 -24 5 -36 9s-21 9 -29 13s-15 8 -21 13s-11 9 -13 11l-5 5c-3 4 -4 8 -1 12l29 39c1 2 4 3 7 3s5 -1 7 -3v0c22 -19 45 -31 70 -36
+c7 -2 14 -2 21 -2c15 0 29 4 41 12s17 20 17 35c0 5 -1 10 -4 15s-6 9 -10 12s-8 7 -16 11s-14 7 -19 9s-13 5 -23 9c-7 3 -14 5 -18 7s-10 5 -17 8s-14 6 -18 9s-10 6 -16 10s-11 8 -15 12s-9 9 -13 14s-8 11 -10 17s-4 12 -6 19s-2 14 -2 22c0 26 9 49 28 69s42 32 72 38
+v52c0 2 1 4 3 6s5 3 7 3h38c3 0 5 -1 7 -3s2 -3 2 -6v-50c11 -1 22 -4 32 -7s19 -7 25 -10s12 -6 18 -10s9 -7 11 -9l4 -4c3 -3 4 -6 2 -10l-23 -42c-2 -3 -4 -5 -7 -5c-3 -1 -6 0 -8 2l-4 4s-6 4 -11 7s-11 6 -17 9s-13 6 -21 8s-16 3 -24 3c-18 0 -34 -4 -45 -12
+s-17 -19 -17 -32c0 -5 1 -10 3 -14s4 -7 8 -11s7 -7 11 -10s9 -6 16 -9s14 -5 18 -7s11 -5 20 -8c10 -4 18 -7 23 -9s12 -6 21 -10s17 -8 22 -12s11 -9 18 -15s11 -12 15 -18s7 -14 9 -22s4 -17 4 -27v0z" />
+    <glyph glyph-name="uniF150" unicode="&#xf150;" horiz-adv-x="192" 
+d="M192 320l-127 -128l127 -128l-32 -32l-160 160v0v0l160 160z" />
+    <glyph glyph-name="uniF1A6" unicode="&#xf1a6;" 
+d="M435 186v0c45 -15 77 -57 77 -106c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c26 35 65 58 108 64c-12 43 -2 89 32 123
+c13 13 29 23 48 30c6 2 13 1 17 -3s6 -11 4 -17c-13 -35 -4 -74 22 -100s65 -34 100 -22c6 2 12 0 16 -4s6 -11 4 -17c-7 -19 -17 -35 -30 -48c-4 -4 -9 -7 -14 -11zM291 356v0c-27 -27 -34 -67 -22 -101c44 -4 85 -25 112 -60c20 5 39 15 53 33c-36 -2 -72 11 -98 37
+s-39 62 -37 98c-3 -2 -5 -4 -8 -7zM400 0v0c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-1 2 -3 5 -4 7c-8 13 -18 25 -30 35s-27 17 -43 22c-12 4 -24 6 -37 6c-2 0 -5 -1 -7 -1c-47 -3 -87 -30 -107 -69c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80
+c17 0 33 6 46 15c23 -28 58 -47 98 -47s75 19 98 47c13 -9 29 -15 46 -15z" />
+    <glyph glyph-name="uniF1EA" unicode="&#xf1ea;" 
+d="M512 249l-128 -124l30 -176l-158 83l-158 -83l30 176l-128 124l177 26l79 160l79 -160zM256 71v0l112 -58l-22 124l91 88l-125 18l-56 113v-285v0z" />
+    <glyph glyph-name="uniF11D" unicode="&#xf11d;" horiz-adv-x="480" 
+d="M64 -16c0 27 21 48 48 48s48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48zM384 -16c0 27 21 48 48 48s48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48zM480 192l-416 -64v0c0 -18 14 -32 32 -32h384v-32h-384c-35 0 -64 29 -64 64c0 20 9 38 24 50l-24 206
+c0 18 -14 32 -32 32v32c35 0 64 -29 64 -64h416v-192z" />
+    <glyph glyph-name="uniF1D7" unicode="&#xf1d7;" 
+d="M448 320h64v-272c0 -27 -21 -48 -48 -48h-432c-18 0 -32 14 -32 32v352h448v-64zM416 32v320h-384v-320h384zM64 288h320v-32h-320v32zM256 224h128v-32h-128v32zM256 160h128v-32h-128v32zM256 96h96v-32h-96v32zM64 224h160v-160h-160v160z" />
+    <glyph glyph-name="uniF1C8" unicode="&#xf1c8;" horiz-adv-x="416" 
+d="M208 353c-9 0 -16 7 -16 16v32c0 9 7 16 16 16s16 -7 16 -16v-32c0 -9 -7 -16 -16 -16zM332 311c-6 -6 -16 -6 -22 0s-6 16 0 22l22 23c6 6 17 6 23 0s6 -17 0 -23zM16 193c-9 0 -16 7 -16 16s7 16 16 16h32c9 0 16 -7 16 -16s-7 -16 -16 -16h-32zM352 209
+c0 9 7 16 16 16h32c9 0 16 -7 16 -16s-7 -16 -16 -16h-32c-9 0 -16 7 -16 16zM84 311l-23 22c-6 6 -6 17 0 23s17 6 23 0l22 -23c6 -6 6 -16 0 -22s-16 -6 -22 0zM98 193c-1 5 -2 11 -2 16c0 62 50 112 112 112s112 -50 112 -112c0 -5 -1 -11 -2 -16h-32c1 5 2 11 2 16
+c0 44 -36 80 -80 80s-80 -36 -80 -80c0 -5 1 -11 2 -16h-32zM400 161c9 0 16 -7 16 -16s-7 -16 -16 -16h-384c-9 0 -16 7 -16 16s7 16 16 16h384zM400 97c9 0 16 -7 16 -16s-7 -16 -16 -16h-384c-9 0 -16 7 -16 16s7 16 16 16h384zM400 33c9 0 16 -7 16 -16s-7 -16 -16 -16
+h-384c-9 0 -16 7 -16 16s7 16 16 16h384z" />
+    <glyph glyph-name="uniF179" unicode="&#xf179;" horiz-adv-x="299" 
+d="M299 311l-119 -119l119 -119l-31 -30l-119 119l-119 -119l-30 30l119 119l-119 119l30 30l119 -119l119 119z" />
+    <glyph glyph-name="uniF14A" unicode="&#xf14a;" 
+d="M0 384h512v-416h-512v416zM480 0v352h-448v-352h448zM352 272c0 27 21 48 48 48s48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48zM448 32h-384l96 256l128 -160l64 48z" />
+    <glyph glyph-name="uniF16F" unicode="&#xf16f;" horiz-adv-x="384" 
+d="M352 224c18 0 32 -14 32 -32v-224c0 -18 -14 -32 -32 -32h-320c-18 0 -32 14 -32 32v224c0 18 14 32 32 32h32v96c0 71 57 128 128 128s128 -57 128 -128v-96h32zM192 32c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM256 224v96c0 35 -29 64 -64 64
+s-64 -29 -64 -64v-96h128z" />
+    <glyph glyph-name="uniF1A4" unicode="&#xf1a4;" horiz-adv-x="228" 
+d="M67 272c4 -3 7 -7 9 -12s3 -10 3 -15s-1 -10 -3 -15s-5 -9 -9 -12s-7 -6 -12 -8s-11 -3 -16 -3s-10 1 -15 3s-8 5 -12 8s-7 7 -9 12s-3 10 -3 15s1 10 3 15s5 9 9 12s7 6 12 8s10 3 15 3s11 -1 16 -3s8 -5 12 -8zM52 233c3 3 5 7 5 12s-2 9 -5 12s-8 5 -13 5
+s-9 -2 -12 -5s-5 -7 -5 -12s2 -9 5 -12s7 -5 12 -5s10 2 13 5zM193 136c6 2 13 5 19 10l16 -27c-6 -5 -14 -10 -23 -13s-20 -5 -30 -5c-8 0 -17 2 -25 4s-15 6 -21 11s-12 10 -16 17s-5 15 -5 25v66c0 9 1 18 5 25s9 13 15 18s14 9 22 11s16 3 24 3c10 0 21 -1 30 -4
+c10 -3 17 -7 24 -13l-17 -27c-5 5 -11 7 -17 9s-13 3 -19 3c-4 0 -7 -1 -11 -2s-8 -2 -11 -5s-5 -6 -7 -10s-3 -9 -3 -15v-51c0 -6 1 -11 3 -15s4 -7 7 -10s7 -5 11 -6s7 -1 11 -1c6 0 12 0 18 2z" />
+    <glyph glyph-name="uniF14C" unicode="&#xf14c;" 
+d="M0 256h416v-192h-416v192zM384 96v128h-352v-128h352zM128 320h384v-192h-32v160h-352v32z" />
+    <glyph glyph-name="uniF1F3" unicode="&#xf1f3;" horiz-adv-x="432" 
+d="M349 -64c57 103 66 260 -157 255v-127l-192 192l192 192v-124c267 7 297 -236 157 -388z" />
+    <glyph glyph-name="uniF1D3" unicode="&#xf1d3;" 
+d="M0 240c0 9 7 16 16 16h480c9 0 16 -7 16 -16v-96c0 -9 -7 -16 -16 -16h-480c-9 0 -16 7 -16 16v96z" />
+    <glyph glyph-name="uniF1CC" unicode="&#xf1cc;" 
+d="M400 384c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM96 128
+c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM256 96c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM416 128c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM352 0c18 0 32 -14 32 -32s-14 -32 -32 -32
+s-32 14 -32 32s14 32 32 32zM160 0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32z" />
+    <glyph glyph-name="uniF129" unicode="&#xf129;" 
+d="M464 384c26 0 48 -22 48 -48v-288c0 -26 -22 -48 -48 -48h-416c-26 0 -48 22 -48 48v288c0 26 22 48 48 48h416zM48 352c-9 0 -16 -7 -16 -16v-48h448v48c0 9 -7 16 -16 16h-416zM464 32c9 0 16 7 16 16v144h-448v-144c0 -9 7 -16 16 -16h416zM64 128h32v-64h-32v64z
+M128 128h32v-64h-32v64zM192 128h32v-64h-32v64z" />
+    <glyph glyph-name="uniF126" unicode="&#xf126;" horiz-adv-x="507" 
+d="M253 218c42 0 81 -17 109 -45l-36 -37c-19 19 -45 30 -73 30s-53 -11 -72 -30l-36 37c28 28 66 45 108 45zM72 245c48 48 113 75 181 75s133 -27 181 -75l-36 -36c-39 39 -90 60 -145 60s-105 -21 -144 -60zM393 394c43 -18 81 -44 114 -77v0l-36 -36
+c-58 58 -136 90 -218 90s-159 -32 -217 -90l-36 36c33 33 71 59 114 77c44 19 91 28 139 28s96 -9 140 -28v0zM228 90c0 14 11 25 25 25s26 -11 26 -25s-12 -26 -26 -26s-25 12 -25 26z" />
+    <glyph glyph-name="uniF185" unicode="&#xf185;" horiz-adv-x="158" 
+d="M0 97l98 98l-98 97l30 31l128 -128l-128 -128z" />
+    <glyph glyph-name="uniF1DE" unicode="&#xf1de;" 
+d="M496 256c9 0 16 -7 16 -16v-96c0 -9 -7 -16 -16 -16h-176v-176c0 -9 -7 -16 -16 -16h-96c-9 0 -16 7 -16 16v176h-176c-9 0 -16 7 -16 16v96c0 9 7 16 16 16h176v176c0 9 7 16 16 16h96c9 0 16 -7 16 -16v-176h176z" />
+    <glyph glyph-name="uniF1CA" unicode="&#xf1ca;" 
+d="M34 192v0h-32c-1 5 -2 11 -2 16c0 62 50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1c62 0 112 -50 112 -112c0 -5 -1 -11 -2 -16h-32c1 5 2 11 2 16c0 44 -36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70
+c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80c0 -5 1 -11 2 -16zM496 160c9 0 16 -7 16 -16s-7 -16 -16 -16h-480c-9 0 -16 7 -16 16s7 16 16 16h480zM496 96c9 0 16 -7 16 -16s-7 -16 -16 -16h-480c-9 0 -16 7 -16 16s7 16 16 16h480zM496 32c9 0 16 -7 16 -16s-7 -16 -16 -16
+h-480c-9 0 -16 7 -16 16s7 16 16 16h480z" />
+    <glyph glyph-name="uniF1BB" unicode="&#xf1bb;" 
+d="M400 352c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM224 0
+c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32z" />
+    <glyph glyph-name="uniF1A7" unicode="&#xf1a7;" 
+d="M400 288c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM400 96
+c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c23 -28 58 -47 98 -47s75 19 98 47c13 -9 29 -15 46 -15z" />
+    <glyph glyph-name="uniF1A8" unicode="&#xf1a8;" 
+d="M512 313v0c0 -23 -9 -44 -24 -60c15 -19 24 -42 24 -68c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-28 -24 -62 -37 -99 -38l-5 -10l32 -32l-96 -64l32 64l-32 32l23 15c-23 6 -45 17 -63 33c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112
+c5 0 11 0 16 -1l2 2c-1 5 -2 10 -2 15c0 49 40 89 89 89h7c23 29 58 46 96 46s73 -17 96 -46h7c49 0 89 -40 89 -89zM400 105c44 0 80 36 80 80c0 18 -7 35 -17 49c-8 10 -18 18 -29 23c-10 5 -22 8 -34 8l-13 -1c-6 -1 -11 -3 -17 -5c-21 41 -64 70 -114 70
+c-36 0 -68 -15 -91 -39c-8 -8 -15 -18 -21 -28c-1 -1 -1 -2 -2 -3c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c23 -28 57 -46 96 -47l24 3c30 5 57 21 76 44c13 -9 29 -15 46 -15zM466 276v0c9 10 14 23 14 37c0 32 -25 57 -57 57
+c-8 0 -15 -1 -22 -4c-15 30 -46 50 -81 50s-66 -20 -81 -50c-7 3 -14 4 -22 4c-25 0 -47 -16 -54 -39c27 19 59 30 93 30c51 0 98 -24 128 -65c5 1 11 1 16 1c25 0 48 -8 66 -21z" />
+    <glyph glyph-name="uniF1B2" unicode="&#xf1b2;" 
+d="M192 64l96 64l-32 -64l32 -32l-96 -96l32 96zM512 313v0c0 -23 -9 -44 -24 -60c15 -19 24 -42 24 -68c0 -62 -50 -112 -112 -112c-14 0 -27 3 -40 8c-14 -12 -30 -22 -47 -29l-18 18l6 12c21 8 39 21 53 38c13 -9 29 -15 46 -15c44 0 80 36 80 80c0 18 -7 35 -17 49
+c-8 10 -18 18 -29 23c-10 5 -22 8 -34 8l-13 -1c-6 -1 -11 -3 -17 -5c-21 41 -64 70 -114 70c-36 0 -68 -15 -91 -39c-8 -8 -15 -18 -21 -28c-1 -1 -1 -2 -2 -3c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c7 -9 17 -16 26 -23l-29 -19
+c-1 1 -2 1 -3 2c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1l2 2c-1 5 -2 10 -2 15c0 49 40 89 89 89h7c23 29 58 46 96 46s73 -17 96 -46h7c49 0 89 -40 89 -89zM466 276v0c9 10 14 23 14 37c0 32 -25 57 -57 57c-8 0 -15 -1 -22 -4
+c-15 30 -46 50 -81 50s-66 -20 -81 -50c-7 3 -14 4 -22 4c-25 0 -47 -16 -54 -39c27 19 59 30 93 30c51 0 98 -24 128 -65c5 1 11 1 16 1c25 0 48 -8 66 -21z" />
+    <glyph glyph-name="uniF1E0" unicode="&#xf1e0;" horiz-adv-x="432" 
+d="M240 324v124l192 -192l-192 -192v127c-223 5 -214 -152 -157 -255c-140 152 -110 395 157 388z" />
+    <glyph glyph-name="uniF1E9" unicode="&#xf1e9;" 
+d="M512 249l-128 -124l30 -176l-158 83l-158 -83l30 176l-128 124l177 26l79 160l79 -160zM256 71v0l112 -58l-22 124l91 88l-125 18l-56 113l-56 -113l-125 -18l91 -88l-22 -124z" />
+    <glyph glyph-name="uniF1D1" unicode="&#xf1d1;" 
+d="M417 282c53 -2 95 -47 95 -100c0 -55 -45 -99 -100 -99c-6 0 -11 0 -17 1c-21 -14 -45 -21 -70 -21s-48 7 -69 21c-6 -1 -12 -1 -18 -1c-55 0 -99 44 -99 99c0 53 42 98 95 100c24 25 56 39 91 39s68 -14 92 -39zM144 96c9 0 16 -7 16 -16s-7 -16 -16 -16h-128
+c-9 0 -16 7 -16 16s7 16 16 16h128zM16 128c-9 0 -16 7 -16 16s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64zM48 192c-9 0 -16 7 -16 16s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64z" />
+    <glyph glyph-name="uniF1A9" unicode="&#xf1a9;" 
+d="M435 186v0c45 -15 77 -57 77 -106c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c26 35 65 58 108 64c-12 43 -2 89 32 123
+c13 13 29 23 48 30c6 2 13 1 17 -3s6 -11 4 -17c-13 -35 -4 -74 22 -100s65 -34 100 -22c6 2 12 0 16 -4s6 -11 4 -17c-7 -19 -17 -35 -30 -48c-4 -4 -9 -7 -14 -11zM291 356v0c-27 -27 -34 -67 -22 -101c44 -4 85 -25 112 -60c20 5 39 15 53 33c-36 -2 -72 11 -98 37
+s-39 62 -37 98c-3 -2 -5 -4 -8 -7z" />
+    <glyph glyph-name="uniF1AA" unicode="&#xf1aa;" 
+d="M400 288c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1z" />
+    <glyph glyph-name="uniF192" unicode="&#xf192;" horiz-adv-x="469" 
+d="M427 128h42v-43h-42v43zM427 213h42v-42h-42v42zM469 43c0 -21 -21 -43 -42 -43v43h42zM256 384h43v-43h-43v43zM427 299h42v-43h-42v43zM427 384c21 0 42 -22 42 -43h-42v43zM0 299h43v-43h-43v43zM341 384h43v-43h-43v43zM341 43h43v-43h-43v43zM43 384v-43h-43
+c0 21 22 43 43 43zM171 384h42v-43h-42v43zM85 384h43v-43h-43v43zM0 213h299v-213h-256c-23 0 -43 20 -43 43v170zM43 43h213l-68 91l-54 -69l-38 46z" />
+    <glyph glyph-name="uniF178" unicode="&#xf178;" horiz-adv-x="384" 
+d="M341 341h-298v-298h298v298zM341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298z" />
+    <glyph glyph-name="uniF18D" unicode="&#xf18d;" horiz-adv-x="363" 
+d="M181 -21c-24 0 -42 18 -42 42h85c0 -24 -19 -42 -43 -42zM320 107l43 -43v-21h-363v21l43 43v117c0 66 45 120 106 135v14c0 18 14 32 32 32s32 -14 32 -32v-14c61 -15 107 -69 107 -135v-117z" />
+    <glyph glyph-name="uniF13D" unicode="&#xf13d;" horiz-adv-x="448" 
+d="M420 348v0c16 -16 28 -46 28 -68v-304c0 -22 -18 -40 -40 -40h-368c-22 0 -40 18 -40 40v432c0 22 18 40 40 40h240c22 0 52 -12 68 -28zM397 326v0l-71 71c-2 2 -4 3 -6 5v-82h82c-2 2 -3 4 -5 6zM416 -24v304c0 2 0 5 -1 8h-127v127c-3 1 -6 1 -8 1h-240
+c-4 0 -8 -4 -8 -8v-432c0 -4 4 -8 8 -8h368c4 0 8 4 8 8z" />
+    <glyph glyph-name="uniF1CF" unicode="&#xf1cf;" 
+d="M417 282c53 -2 95 -47 95 -100c0 -55 -45 -99 -100 -99c-6 0 -11 0 -17 1c-21 -14 -45 -21 -70 -21s-48 7 -69 21c-6 -1 -12 -1 -18 -1c-55 0 -99 44 -99 99c0 53 42 98 95 100c24 25 56 39 91 39s68 -14 92 -39zM412 115v0c37 0 68 30 68 67s-31 68 -68 68
+c-3 0 -6 -1 -9 -1c-18 25 -47 40 -78 40s-59 -15 -77 -40c-3 0 -7 1 -10 1c-37 0 -67 -31 -67 -68s30 -67 67 -67c8 0 16 1 24 4c17 -15 40 -24 63 -24s45 9 63 24c8 -3 16 -4 24 -4zM144 96c9 0 16 -7 16 -16s-7 -16 -16 -16h-128c-9 0 -16 7 -16 16s7 16 16 16h128z
+M16 128c-9 0 -16 7 -16 16s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64zM48 192c-9 0 -16 7 -16 16s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64z" />
+    <glyph glyph-name="uniF190" unicode="&#xf190;" horiz-adv-x="469" 
+d="M320 213c-35 0 -64 29 -64 64s29 64 64 64s64 -29 64 -64s-29 -64 -64 -64zM149 213c-35 0 -64 29 -64 64s29 64 64 64s64 -29 64 -64s-29 -64 -64 -64zM149 171c50 0 150 -25 150 -75v-53h-299v53c0 50 99 75 149 75zM320 171c50 0 149 -25 149 -75v-53h-128v53
+c0 32 -17 55 -42 73c7 1 15 2 21 2z" />
+    <glyph glyph-name="uniF136" unicode="&#xf136;" horiz-adv-x="475" 
+d="M250 29c0 4 0 8 -1 12s-2 7 -3 10s-3 7 -5 10s-4 7 -6 9s-4 5 -7 8l-8 8s-5 4 -9 7s-7 5 -9 6s-5 4 -10 7s-7 5 -8 6c-3 0 -9 1 -15 1c-10 0 -20 -1 -30 -2s-20 -5 -31 -8s-20 -8 -28 -13s-14 -12 -19 -21s-8 -20 -8 -31c0 -13 3 -24 10 -34s16 -18 27 -24s22 -10 34 -13
+s24 -5 36 -5c11 0 22 2 32 4s20 6 29 11s16 12 21 21s8 19 8 31zM216 276c0 11 -2 23 -5 36s-7 25 -13 37s-14 22 -24 30s-21 12 -34 12c-18 0 -31 -7 -41 -20s-15 -29 -15 -47c0 -9 1 -18 3 -28s5 -20 10 -30s10 -19 16 -27s14 -14 23 -19s17 -7 27 -7c18 0 33 5 41 17
+s12 27 12 46zM179 411h124l-38 -22h-39c14 -9 25 -21 32 -36s11 -31 11 -48c0 -14 -3 -27 -7 -38s-10 -19 -16 -26s-13 -13 -19 -19s-12 -11 -16 -17s-6 -13 -6 -20c0 -5 2 -9 5 -14s7 -10 12 -14s11 -9 17 -14s12 -9 18 -15s12 -12 17 -19s9 -16 12 -25s5 -19 5 -30
+c0 -30 -13 -58 -40 -81c-29 -25 -69 -37 -120 -37c-11 0 -23 1 -35 3s-22 5 -34 9s-22 10 -31 17s-16 15 -22 25s-9 22 -9 35c0 12 4 25 11 39c6 12 15 22 27 31s26 16 41 21s31 8 45 10s29 4 43 4c-12 16 -19 29 -19 42c0 2 1 5 1 7s0 4 1 6s2 3 3 6s2 4 2 6
+c-8 -1 -14 -2 -20 -2c-28 0 -53 9 -73 28s-31 43 -31 71c0 27 9 50 27 71s41 35 67 41c18 4 36 5 54 5v0zM475 338v-36h-73v-73h-36v73h-73v36h73v73h36v-73h73z" />
+    <glyph glyph-name="uniF1F4" unicode="&#xf1f4;" horiz-adv-x="480" 
+d="M384 416c53 0 96 -43 96 -96v-96h-64v96c0 18 -14 32 -32 32h-64c-18 0 -32 -14 -32 -32v-96h8c13 0 24 -11 24 -24v-240c0 -13 -11 -24 -24 -24h-272c-13 0 -24 11 -24 24v240c0 13 11 24 24 24h200v96c0 53 43 96 96 96h64zM192 0l-14 70c8 6 14 15 14 26
+c0 18 -14 32 -32 32s-32 -14 -32 -32c0 -11 6 -20 14 -26l-14 -70h64z" />
+    <glyph glyph-name="uniF194" unicode="&#xf194;" horiz-adv-x="384" 
+d="M85 299v-86h-42v128h256v64l85 -85l-85 -85v64h-214zM299 85v86h42v-128h-256v-64l-85 85l85 85v-64h214z" />
+    <glyph glyph-name="uniF1D0" unicode="&#xf1d0;" 
+d="M417 377c53 -2 95 -46 95 -99c0 -55 -45 -100 -100 -100c-6 0 -11 0 -17 1c-21 -14 -45 -20 -70 -20s-48 6 -69 20c-6 -1 -12 -1 -18 -1c-55 0 -99 45 -99 100c0 53 42 97 95 99c24 25 56 39 91 39s68 -14 92 -39zM412 210v0c37 0 68 31 68 68s-31 67 -68 67h-9
+c-18 25 -47 39 -78 39s-59 -14 -77 -39h-10c-37 0 -67 -30 -67 -67s30 -68 67 -68c8 0 16 1 24 4c17 -15 40 -23 63 -23s45 8 63 23c8 -3 16 -4 24 -4zM144 191c9 0 16 -7 16 -16s-7 -16 -16 -16h-128c-9 0 -16 7 -16 16s7 16 16 16h128zM16 223c-9 0 -16 7 -16 16
+s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64zM48 287c-9 0 -16 7 -16 16s7 16 16 16h64c9 0 16 -7 16 -16s-7 -16 -16 -16h-64zM224 64c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32zM352 0c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32
+s-32 14 -32 32z" />
+    <glyph glyph-name="uniF1AF" unicode="&#xf1af;" 
+d="M256 448c141 0 256 -115 256 -256s-115 -256 -256 -256s-256 115 -256 256s115 256 256 256zM256 0c106 0 192 86 192 192s-86 192 -192 192s-192 -86 -192 -192s86 -192 192 -192zM160 96l64 128l128 64l-64 -128z" />
+    <glyph glyph-name="uniF1BC" unicode="&#xf1bc;" 
+d="M400 384c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM225 -32
+c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32zM352 0c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32zM96 64c0 18 32 64 32 64s32 -46 32 -64s-14 -32 -32 -32s-32 14 -32 32z" />
+    <glyph glyph-name="uniF171" unicode="&#xf171;" 
+d="M437 373l75 75v-192h-192l72 72c-35 35 -83 56 -136 56c-82 0 -153 -52 -180 -125l-60 23c36 97 130 166 240 166c71 0 135 -29 181 -75zM256 0c82 0 153 52 180 125l60 -23c-36 -97 -130 -166 -240 -166c-71 0 -135 29 -181 75l-75 -75v192h192l-72 -72
+c35 -35 83 -56 136 -56z" />
+    <glyph glyph-name="uniF1B1" unicode="&#xf1b1;" 
+d="M400 384v0c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-17 -15 -36 -24 -57 -31l13 40c14 8 28 18 38 31c13 -9 29 -15 46 -15c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6
+c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c15 -19 37 -32 60 -40l-25 -25c-15 6 -29 14 -41 25c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM192 96l96 96l-32 -96l32 -32
+l-96 -96l32 96z" />
+    <glyph glyph-name="uniF176" unicode="&#xf176;" horiz-adv-x="483" 
+d="M412 121v-100h-100l-71 -70l-70 70h-100v100l-71 71l71 71v100h100l70 70l71 -70h100v-100l71 -71zM241 64c71 0 128 57 128 128s-57 128 -128 128v-256z" />
+    <glyph glyph-name="uniF121" unicode="&#xf121;" 
+d="M512 119v0c0 -48 -39 -87 -87 -87h-328c-54 0 -97 43 -97 97s43 97 97 97c6 0 11 -1 17 -2c0 3 -1 7 -1 10c0 37 30 67 67 67c22 0 41 -10 53 -26c22 28 56 45 94 45c65 0 116 -52 118 -116c38 -9 67 -44 67 -85z" />
+    <glyph glyph-name="uniF199" unicode="&#xf199;" horiz-adv-x="256" 
+d="M0 64v256l181 -128zM213 320h43v-256h-43v256z" />
+    <glyph glyph-name="uniF1F1" unicode="&#xf1f1;" horiz-adv-x="462" 
+d="M432 160c36 0 16 -96 -16 -96c16 0 0 -80 -32 -80c0 -32 -32 -48 -64 -48c-135 0 -88 34 -224 48v256c120 36 240 127 240 208c26 0 96 -32 0 -192h96c48 0 32 -96 0 -96zM64 240v-256h32v-16h-64c-18 0 -32 22 -32 48v192c0 26 14 48 32 48h64v-16h-32z" />
+    <glyph glyph-name="uniF163" unicode="&#xf163;" 
+d="M448 368c35 0 64 -29 64 -64v-208c0 -35 -29 -64 -64 -64h-384c-35 0 -64 29 -64 64v208c0 35 29 64 64 64h384zM32 284v-168l112 84zM480 96l-125 94l-70 -52c-9 -6 -19 -10 -29 -10s-20 4 -29 10l-70 52l-125 -94c0 -18 14 -32 32 -32h384c18 0 32 14 32 32zM480 116
+v168l-112 -84zM275 150l205 154c0 18 -14 32 -32 32h-384c-18 0 -32 -14 -32 -32l205 -154c6 -4 12 -6 19 -6s13 2 19 6z" />
+    <glyph glyph-name="uniF12F" unicode="&#xf12f;" 
+d="M256 352c112 0 208 -65 256 -160c-48 -95 -144 -160 -256 -160s-208 65 -256 160c48 95 144 160 256 160zM382 267c-2 1 -4 3 -6 4c5 -14 8 -29 8 -44c0 -71 -57 -128 -128 -128s-128 57 -128 128c0 15 3 30 8 44c-2 -1 -4 -3 -6 -4c-30 -19 -56 -45 -75 -75
+c19 -30 45 -56 75 -75c38 -24 81 -37 126 -37s88 13 126 37c30 19 56 45 75 75c-19 30 -45 56 -75 75zM256 243c0 27 -21 48 -48 48s-48 -21 -48 -48s21 -48 48 -48s48 21 48 48z" />
+    <glyph glyph-name="uniF11E" unicode="&#xf11e;" 
+d="M432 384l80 -80l-320 -320l-192 192l80 80l112 -112z" />
+    <glyph glyph-name="uniF161" unicode="&#xf161;" 
+d="M467 364c60 -59 60 -156 0 -215c-2 -2 -177 -175 -177 -175c-19 -19 -49 -19 -68 0c0 0 -160 158 -177 175c-60 59 -60 156 0 215c58 58 151 58 211 4c60 54 153 54 211 -4zM444 172c47 47 47 122 0 169c-46 45 -118 47 -166 4l-22 -20l-22 20c-48 43 -120 41 -166 -4
+c-47 -47 -47 -122 0 -169l177 -175c6 -6 16 -6 22 0zM148 328c4 0 8 -4 8 -8s-4 -8 -8 -8v0c-29 0 -52 -23 -52 -52v0c0 -4 -4 -8 -8 -8s-8 4 -8 8v0c0 38 30 68 68 68v0z" />
+    <glyph glyph-name="uniF1F9" unicode="&#xf1f9;" horiz-adv-x="480" 
+d="M201 409c13 13 23 8 23 -10v-414c0 -18 -10 -23 -23 -10l-121 121h-80v192h80l121 121v0zM480 138v-42h-42l-54 54l-54 -54h-42v42l54 54l-54 54v42h42l54 -54l54 54h42v-42l-54 -54z" />
+    <glyph glyph-name="uniF183" unicode="&#xf183;" horiz-adv-x="256" 
+d="M30 273l98 -98l98 98l30 -30l-128 -128l-128 128z" />
+    <glyph glyph-name="uniF11C" unicode="&#xf11c;" 
+d="M152 144c0 57 47 104 104 104s104 -47 104 -104s-47 -104 -104 -104s-104 47 -104 104zM480 320c18 0 32 -14 32 -32v-288c0 -18 -14 -32 -32 -32h-448c-18 0 -32 14 -32 32v288c0 18 14 32 32 32h112c8 32 16 64 48 64h128c32 0 40 -32 48 -64h112zM256 2
+c78 0 142 64 142 142s-64 142 -142 142s-142 -64 -142 -142s64 -142 142 -142zM480 224v32h-64v-32h64z" />
+    <glyph glyph-name="uniF1C6" unicode="&#xf1c6;" horiz-adv-x="304" 
+d="M73 160v0h-32c8 54 55 96 111 96s102 -42 110 -96h-32c-7 37 -39 64 -78 64s-72 -27 -79 -64zM152 288c-9 0 -16 7 -16 16v32c0 9 7 16 16 16s16 -7 16 -16v-32c0 -9 -7 -16 -16 -16zM299 291c6 -6 6 -17 0 -23l-23 -22c-6 -6 -16 -6 -22 0s-6 16 0 22l22 23
+c6 6 17 6 23 0zM50 268c6 -6 6 -16 0 -22s-17 -6 -23 0l-22 22c-6 6 -6 17 0 23s16 6 22 0zM248 128c9 0 16 -7 16 -16s-7 -16 -16 -16h-192c-9 0 -16 7 -16 16s7 16 16 16h192zM216 64c9 0 16 -7 16 -16s-7 -16 -16 -16h-128c-9 0 -16 7 -16 16s7 16 16 16h128z" />
+    <glyph glyph-name="uniF142" unicode="&#xf142;" horiz-adv-x="394" 
+d="M381 345c7 0 13 -6 13 -13v-24c0 -2 -1 -2 -2 -3s-4 -2 -5 -3l-188 -110c-1 0 -1 -1 -2 -1s0 1 -1 1l-194 110c-1 1 -2 2 -2 3v27c0 7 6 13 13 13h368zM393 265c1 -1 1 -1 1 -2v-177c0 -1 -1 -3 -2 -3l-1 -1c-1 0 -1 0 -2 1l-107 115c-1 1 0 2 0 3s0 2 1 2l106 62
+c1 1 3 1 4 0zM253 182l127 -137c1 -1 1 -3 0 -4s-2 -2 -3 -2h-364c-2 0 -4 1 -6 2c-1 1 -2 2 -2 3s0 2 1 3l142 131c1 1 3 2 4 1l38 -22c5 -3 11 -2 16 1l42 25c1 1 4 0 5 -1zM117 194l-112 -103c-1 -1 -1 -1 -2 -1h-1c-1 1 -2 2 -2 3v167c0 1 1 2 2 3s2 1 3 0l111 -64
+c1 -1 2 -1 2 -2s0 -2 -1 -3z" />
+    <glyph glyph-name="uniF15D" unicode="&#xf15d;" 
+d="M352 448c88 0 160 -72 160 -160s-72 -160 -160 -160c-19 0 -37 4 -54 10l-42 -42h-64v-64h-64v-64h-64v-32h-32c-18 0 -32 14 -32 32v96l195 195c-2 10 -3 19 -3 29c0 88 72 160 160 160zM400 288c27 0 48 21 48 48s-21 48 -48 48s-48 -21 -48 -48s21 -48 48 -48z" />
+    <glyph glyph-name="uniF141" unicode="&#xf141;" horiz-adv-x="432" 
+d="M83 448c-57 -103 -66 -260 157 -255v127l192 -192l-192 -192v124c-267 -7 -297 236 -157 388z" />
+    <glyph glyph-name="uniF1B9" unicode="&#xf1b9;" 
+d="M400 352c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1zM400 160
+c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c23 -28 58 -47 98 -47s75 19 98 47c13 -9 29 -15 46 -15zM224 0c0 18 32 64 32 64s32 -46 32 -64
+s-14 -32 -32 -32s-32 14 -32 32z" />
+    <glyph glyph-name="uniF1F0" unicode="&#xf1f0;" 
+d="M464 448v0c26 0 48 -22 48 -48v-144c0 -26 -15 -63 -34 -82l-224 -224c-19 -19 -49 -19 -68 0l-172 172c-19 19 -19 50 0 69l224 223c19 19 56 34 82 34h144zM400 288c27 0 48 21 48 48s-21 48 -48 48s-48 -21 -48 -48s21 -48 48 -48z" />
+    <glyph glyph-name="uniF118" unicode="&#xf118;" 
+d="M256 416c141 0 256 -93 256 -208s-115 -208 -256 -208c-14 0 -27 1 -40 3c-55 -55 -121 -66 -184 -67v14c34 17 64 47 64 82c0 5 0 9 -1 14c-58 38 -95 97 -95 162c0 115 115 208 256 208z" />
+    <glyph glyph-name="uniF1C3" unicode="&#xf1c3;" horiz-adv-x="416" 
+d="M208 304c62 0 112 -50 112 -112s-50 -112 -112 -112s-112 50 -112 112s50 112 112 112zM208 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM208 336c-9 0 -16 7 -16 16v32c0 9 7 16 16 16s16 -7 16 -16v-32c0 -9 -7 -16 -16 -16zM208 48
+c9 0 16 -7 16 -16v-32c0 -9 -7 -16 -16 -16s-16 7 -16 16v32c0 9 7 16 16 16zM332 294c-6 -6 -16 -6 -22 0s-6 16 0 22l22 23c6 6 17 6 23 0s6 -17 0 -23zM84 90c6 6 16 6 22 0s6 -16 0 -22l-22 -23c-6 -6 -17 -6 -23 0s-6 17 0 23zM64 192c0 -9 -7 -16 -16 -16h-32
+c-9 0 -16 7 -16 16s7 16 16 16h32c9 0 16 -7 16 -16zM400 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-32c-9 0 -16 7 -16 16s7 16 16 16h32zM84 294l-23 22c-6 6 -6 17 0 23s17 6 23 0l22 -23c6 -6 6 -16 0 -22s-16 -6 -22 0zM332 90l23 -22c6 -6 6 -17 0 -23s-17 -6 -23 0
+l-22 23c-6 6 -6 16 0 22s16 6 22 0z" />
+    <glyph glyph-name="uniF1DA" unicode="&#xf1da;" 
+d="M432 448c44 0 80 -36 80 -80c0 -18 -6 -35 -16 -48l-32 -32l-112 112l32 32c13 10 30 16 48 16zM32 80l296 296l112 -112l-296 -296l-144 -32zM358 266l-28 28l-224 -224l28 -28z" />
+    <glyph glyph-name="uniF17B" unicode="&#xf17b;" horiz-adv-x="427" 
+d="M384 363c24 0 43 -19 43 -43v-256c0 -24 -19 -43 -43 -43h-341c-24 0 -43 19 -43 43v256c0 24 19 43 43 43h341zM384 277v43l-171 -107l-170 107v-43l170 -106z" />
+    <glyph glyph-name="uniF1CD" unicode="&#xf1cd;" horiz-adv-x="416" 
+d="M368 256c26 0 48 -22 48 -48s-22 -48 -48 -48h-352c-9 0 -16 7 -16 16s7 16 16 16h307c-2 5 -3 10 -3 16c0 26 22 48 48 48zM16 224c-9 0 -16 7 -16 16s7 16 16 16h147c-2 5 -3 10 -3 16c0 26 22 48 48 48s48 -22 48 -48s-22 -48 -48 -48h-192zM272 128
+c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48c0 6 1 11 3 16h-206c-11 0 -21 7 -21 16s10 16 21 16h246h2h3z" />
+    <glyph glyph-name="uniF17E" unicode="&#xf17e;" horiz-adv-x="469" 
+d="M319 229l76 -101h-235l59 75l42 -50zM43 341v-341h341v-43h-341c-24 0 -43 19 -43 43v341h43zM427 427c24 0 42 -19 42 -43v-299c0 -24 -18 -42 -42 -42h-299c-24 0 -43 18 -43 42v299c0 24 19 43 43 43h299zM427 85v299h-299v-299h299z" />
+    <glyph glyph-name="uniF189" unicode="&#xf189;" horiz-adv-x="384" 
+d="M0 171v42h43v-42h-43zM0 85v43h43v-43h-43zM0 256v43h43v-43h-43zM85 171v42h299v-42h-299zM85 85v43h299v-43h-299zM85 299h299v-43h-299v43z" />
+    <glyph glyph-name="uniF114" unicode="&#xf114;" 
+d="M171 363h341v-342h-341l-171 171zM478 55v274h-293l-137 -137l137 -137h293zM263 90l-24 23l78 79l-78 79l24 23l78 -78l79 78l24 -23l-79 -79l79 -79l-24 -23l-79 78z" />
+    <glyph glyph-name="uniF166" unicode="&#xf166;" 
+d="M128 352c19 -15 32 -38 32 -64s-13 -49 -32 -64v-240c0 -26 -22 -48 -48 -48s-48 22 -48 48v240c-19 15 -32 38 -32 64s13 49 32 64v48c0 26 22 48 48 48s48 -22 48 -48v-48zM64 400v-34c5 1 11 2 16 2s11 -1 16 -2v34c0 9 -7 16 -16 16s-16 -7 -16 -16zM96 -16v226
+c-5 -1 -11 -2 -16 -2s-11 1 -16 2v-226c0 -9 7 -16 16 -16s16 7 16 16zM126 275c1 4 2 8 2 13s-1 9 -2 13c0 1 -1 2 -1 3c-2 4 -3 8 -6 12v0c-3 4 -6 7 -10 10v0c-4 3 -8 5 -13 7s-10 3 -16 3s-11 -1 -16 -3s-9 -4 -13 -7v0c-4 -3 -7 -6 -10 -10v0c-3 -4 -4 -8 -6 -12
+c0 -1 -1 -2 -1 -3c-1 -4 -2 -8 -2 -13s1 -9 2 -13c0 -1 1 -2 1 -3c2 -4 3 -8 6 -12v0c3 -4 6 -7 10 -10v0c4 -3 8 -5 13 -7s10 -3 16 -3s11 1 16 3s9 4 13 7v0c4 3 7 6 10 10v0c3 4 4 8 6 12c0 1 1 2 1 3zM480 352c19 -15 32 -38 32 -64s-13 -49 -32 -64v-240
+c0 -26 -22 -48 -48 -48s-48 22 -48 48v240c-19 15 -32 38 -32 64s13 49 32 64v48c0 26 22 48 48 48s48 -22 48 -48v-48zM416 400v-34c5 1 10 2 16 2c5 0 11 -1 16 -2v34c0 9 -7 16 -16 16s-16 -7 -16 -16zM448 -16v226c-5 -1 -11 -2 -16 -2c-6 0 -11 1 -16 2v-226
+c0 -9 7 -16 16 -16s16 7 16 16zM478 275c1 4 2 8 2 13s-1 9 -2 13c0 1 -1 2 -1 3c-2 4 -3 8 -6 12v0c-3 4 -6 7 -10 10v0c-4 3 -8 5 -13 7s-10 3 -16 3s-11 -1 -16 -3s-9 -4 -13 -7v0c-4 -3 -7 -6 -10 -10v0c-3 -4 -4 -8 -6 -12c0 -1 -1 -2 -1 -3c-1 -4 -2 -8 -2 -13
+s1 -9 2 -13c0 -1 1 -2 1 -3c2 -4 3 -8 6 -12v0c3 -4 6 -7 10 -10v0c4 -3 8 -5 13 -7s10 -3 16 -3s11 1 16 3s9 4 13 7v0c4 3 7 6 10 10v0c3 4 4 8 6 12c0 1 1 2 1 3zM304 160c19 -15 32 -38 32 -64s-13 -49 -32 -64v-48c0 -26 -22 -48 -48 -48s-48 22 -48 48v48
+c-19 15 -32 38 -32 64s13 49 32 64v240c0 26 22 48 48 48s48 -22 48 -48v-240zM240 400v-226c5 1 11 2 16 2s11 -1 16 -2v226c0 9 -7 16 -16 16s-16 -7 -16 -16zM272 -16v34c-5 -1 -11 -2 -16 -2s-11 1 -16 2v-34c0 -9 7 -16 16 -16s16 7 16 16zM302 83c1 4 2 8 2 13
+s-1 9 -2 13c0 1 -1 2 -1 3c-2 4 -3 8 -6 12v0c-3 4 -6 7 -10 10v0c-4 3 -8 5 -13 7s-10 3 -16 3s-11 -1 -16 -3s-9 -4 -13 -7v0c-4 -3 -7 -6 -10 -10v0c-3 -4 -4 -8 -6 -12c0 -1 -1 -2 -1 -3c-1 -4 -2 -8 -2 -13s1 -9 2 -13c0 -1 1 -2 1 -3c2 -4 3 -8 6 -12v0
+c3 -4 6 -7 10 -10v0c4 -3 8 -5 13 -7s10 -3 16 -3s11 1 16 3s9 4 13 7v0c4 3 7 6 10 10v0c3 4 4 8 6 12c0 1 1 2 1 3z" />
+    <glyph glyph-name="uniF13B" unicode="&#xf13b;" horiz-adv-x="450" 
+d="M450 331c-13 -19 -28 -34 -46 -47v-12c0 -25 -4 -49 -11 -74s-18 -48 -33 -71s-32 -44 -52 -61s-45 -31 -74 -41s-59 -16 -92 -16c-52 0 -99 14 -142 42c7 -1 14 -2 22 -2c43 0 81 14 115 40c-20 0 -38 6 -54 18s-26 28 -32 46c6 -1 12 -2 17 -2c8 0 16 2 24 4
+c-21 4 -39 14 -53 31s-21 37 -21 59v1c13 -7 27 -10 42 -11c-13 8 -23 18 -30 32s-11 28 -11 44c0 17 4 33 12 47c23 -28 52 -51 85 -68s68 -27 106 -29c-2 7 -3 15 -3 22c0 26 9 47 27 65s40 27 66 27c27 0 49 -10 67 -29c21 4 41 11 59 22c-7 -22 -21 -39 -41 -51
+c18 2 35 6 53 14v0z" />
+    <glyph glyph-name="uniF113" unicode="&#xf113;" 
+d="M448 0h-254c-9 0 -17 2 -24 9l-159 159l-2 2c-6 6 -9 14 -9 22s3 17 9 23l2 1l159 159c7 7 17 10 26 9h252c35 0 64 -29 64 -64v-256c0 -35 -29 -64 -64 -64zM416 272l-16 16l-80 -80l-80 80l-16 -16l80 -80l-80 -80l16 -16l80 80l80 -80l16 16l-80 80z" />
+    <glyph glyph-name="uniF1DB" unicode="&#xf1db;" horiz-adv-x="480" 
+d="M352 128c32 32 128 -64 128 -96s-96 -96 -96 -96c-64 0 -194 66 -256 128s-128 192 -128 256c0 0 64 96 96 96s128 -96 96 -128s-64 -32 -64 -64s32 -64 64 -96s64 -64 96 -64s32 32 64 64z" />
+    <glyph glyph-name="uniF13F" unicode="&#xf13f;" horiz-adv-x="480" 
+d="M384 362c38 0 73 20 96 36v-297c-23 -16 -58 -37 -96 -37s-73 11 -96 27s-58 27 -96 27s-73 -19 -96 -35v298c23 16 58 35 96 35s73 -11 96 -27s58 -27 96 -27zM32 448c18 0 32 -14 32 -32v-480h-64v480c0 18 14 32 32 32z" />
+    <glyph glyph-name="uniF191" unicode="&#xf191;" horiz-adv-x="277" 
+d="M224 427c29 0 53 -25 53 -54v-362c0 -29 -24 -54 -53 -54h-171c-29 0 -53 25 -53 54v362c0 29 24 54 53 54h171zM139 -21c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM235 64v299h-192v-299h192z" />
+    <glyph glyph-name="uniF11A" unicode="&#xf11a;" 
+d="M512 233c0 -100 -30 -181 -66 -182h1h-42s-97 73 -237 102c-4 23 -7 49 -7 80s3 58 7 81c140 29 237 102 237 102h42h-1c36 -1 66 -83 66 -183zM432 78c5 0 10 5 13 8c6 7 12 18 17 32c12 31 18 71 18 115s-6 85 -18 116c-5 14 -11 25 -17 32c-3 3 -8 7 -13 7
+s-9 -4 -12 -7c-6 -7 -13 -18 -18 -32c-12 -31 -18 -72 -18 -116s6 -84 18 -115c5 -14 12 -25 18 -32c3 -3 7 -8 12 -8zM126 233v0c0 -26 1 -51 5 -74c-24 3 -44 5 -70 5c-34 0 -33 0 -33 0l-28 47v44l28 48s-1 0 33 0c26 0 46 2 70 5c-4 -23 -5 -49 -5 -75zM184 127l62 -115
+c4 -8 1 -16 -7 -19l-60 -24c-8 -3 -16 1 -18 9l-41 161zM432 174c-2 0 -3 2 -4 3c-2 3 -5 7 -7 12c-4 12 -7 27 -7 44s3 33 7 45c2 5 5 9 7 12c1 1 2 3 4 3s4 -2 5 -3c2 -3 5 -7 7 -12c4 -12 7 -28 7 -45s-3 -32 -7 -44c-2 -5 -5 -9 -7 -12c-1 -1 -3 -3 -5 -3z" />
+    <glyph glyph-name="uniF16A" unicode="&#xf16a;" 
+d="M502 226c13 -21 13 -47 0 -68l-80 -128c-12 -19 -32 -30 -54 -30h-304c-35 0 -64 29 -64 64v256c0 35 29 64 64 64h304c22 0 42 -11 54 -30zM475 175c6 10 6 24 0 34l-80 128c-6 9 -16 15 -27 15h-304c-18 0 -32 -14 -32 -32v-256c0 -18 14 -32 32 -32h304
+c11 0 21 6 27 15zM368 240c26 0 48 -21 48 -48c0 -26 -22 -48 -48 -48c-27 0 -48 21 -48 48s21 48 48 48zM368 160c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="uniF10E" unicode="&#xf10e;" horiz-adv-x="384" 
+d="M375 247c12 -12 12 -34 0 -46c-6 -6 -15 -9 -23 -9s-17 3 -23 9l-105 106v-307c0 -18 -14 -32 -32 -32s-32 14 -32 32v307l-105 -106c-12 -12 -34 -12 -46 0s-12 34 0 46l160 160c12 12 34 12 46 0z" />
+    <glyph glyph-name="uniF10F" unicode="&#xf10f;" horiz-adv-x="440" 
+d="M410 79v0l-190 183l-190 -183c-7 -7 -18 -7 -25 0s-7 18 0 25l203 201c7 7 18 7 25 0l202 -201c7 -7 7 -18 0 -25s-18 -7 -25 0z" />
+    <glyph glyph-name="uniF110" unicode="&#xf110;" horiz-adv-x="293" 
+d="M293 130c0 -5 -2 -9 -6 -13s-8 -5 -13 -5h-256c-5 0 -9 1 -13 5s-5 8 -5 13s1 9 5 13l128 128c4 4 8 6 13 6s9 -2 13 -6l128 -128c4 -4 6 -8 6 -13z" />
+    <glyph glyph-name="uniF19C" unicode="&#xf19c;" horiz-adv-x="427" 
+d="M427 251l-117 -101l35 -150l-132 80l-132 -80l35 150l-116 101l153 13l60 141l60 -141zM213 119l81 -48l-22 91l71 62l-93 8l-37 86l-36 -86l-93 -8l70 -62l-21 -91z" />
+    <glyph glyph-name="uniF137" unicode="&#xf137;" 
+d="M366 247c0 5 -2 9 -6 13s-8 5 -13 5c-33 0 -62 -5 -90 -14s-53 -22 -75 -38s-44 -37 -67 -63c-4 -4 -5 -8 -5 -13s1 -9 5 -13s8 -5 13 -5s9 1 13 5l21 21s15 14 19 18c26 24 52 41 77 51s54 15 89 15c5 0 9 1 13 5s6 8 6 13zM512 303c0 -18 -2 -36 -6 -55
+c-9 -43 -26 -79 -52 -109s-61 -56 -103 -77c-41 -21 -82 -31 -125 -31c-28 0 -55 5 -81 14c-3 1 -12 5 -26 12s-23 10 -27 10c-3 0 -7 -3 -11 -9s-9 -13 -13 -20s-9 -14 -15 -20s-11 -9 -17 -9s-11 1 -15 3s-7 5 -9 7s-4 6 -7 12c0 1 -1 2 -2 3s-2 2 -2 3s-1 2 -1 3v4
+c0 7 3 14 9 21s12 13 19 18s14 10 20 16s9 10 9 14c0 1 -1 5 -4 11s-5 11 -5 13c-2 10 -3 19 -3 29c0 22 5 43 13 63s20 38 34 53s31 29 49 40s37 20 58 27c10 3 24 6 41 7s35 3 52 3s34 0 51 1s32 3 46 7s26 9 33 16l8 9l9 8l7 6l11 4l12 1c7 0 14 -4 20 -13s11 -19 14 -32
+s5 -24 7 -35s2 -21 2 -28v0z" />
+    <glyph glyph-name="uniF15A" unicode="&#xf15a;" horiz-adv-x="192" 
+d="M128 256h64l-8 -64h-56v-192h-83v192h-45v64h45v43c0 54 23 85 91 85h56v-64h-34c-27 0 -30 -9 -30 -26v-38z" />
+    <glyph glyph-name="uniF10A" unicode="&#xf10a;" horiz-adv-x="448" 
+d="M279 9c-12 -12 -34 -12 -46 0c-6 6 -9 15 -9 23s3 17 9 23l106 105h-307c-18 0 -32 14 -32 32s14 32 32 32h307l-106 105c-12 12 -12 34 0 46s34 12 46 0l160 -160c12 -12 12 -34 0 -46z" />
+    <glyph glyph-name="uniF14B" unicode="&#xf14b;" 
+d="M142 334c0 76 38 114 114 114s114 -38 114 -114s-38 -114 -114 -114s-114 38 -114 114zM502 50c7 -7 10 -14 10 -22v-92h-512v92c0 8 3 15 10 22c61 61 143 91 246 91s185 -30 246 -91z" />
+    <glyph glyph-name="uniF10D" unicode="&#xf10d;" horiz-adv-x="165" 
+d="M165 192c0 -5 -2 -9 -6 -13l-128 -128c-4 -4 -8 -5 -13 -5s-9 1 -13 5s-5 8 -5 13v256c0 5 1 9 5 13s8 5 13 5s9 -1 13 -5l128 -128c4 -4 6 -8 6 -13z" />
+    <glyph glyph-name="uniF10B" unicode="&#xf10b;" horiz-adv-x="174" 
+d="M50 332c11 -10 116 -120 116 -120c6 -6 8 -13 8 -20s-2 -14 -8 -20c0 0 -105 -110 -116 -120s-30 -11 -41 0s-12 26 0 40l96 100l-96 100c-12 14 -11 29 0 40s30 10 41 0z" />
+    <glyph glyph-name="uniF10C" unicode="&#xf10c;" horiz-adv-x="236" 
+d="M5 2l183 190l-183 190c-7 7 -7 18 0 25s18 7 25 0l200 -202c7 -7 7 -19 0 -26l-200 -202c-7 -7 -18 -7 -25 0s-7 18 0 25z" />
+    <glyph glyph-name="uniF1B0" unicode="&#xf1b0;" 
+d="M400 384v0c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-26 -23 -59 -36 -93 -38l-11 -33l32 -32l-96 -96l32 96l-32 32l35 35c-28 5 -53 17 -75 36c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65
+s98 -24 128 -65c5 1 11 1 16 1zM400 192c44 0 80 36 80 80s-36 80 -80 80c-11 0 -21 -2 -30 -6c-21 41 -64 70 -114 70s-93 -29 -114 -70c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c23 -28 58 -47 98 -47l22 3c30 5 57 21 76 44
+c13 -9 29 -15 46 -15z" />
+    <glyph glyph-name="uniF19A" unicode="&#xf19a;" horiz-adv-x="256" 
+d="M0 320h43v-256h-43v256zM75 192l181 128v-256z" />
+    <glyph glyph-name="uniF165" unicode="&#xf165;" 
+d="M503 327c6 -6 9 -15 9 -23v-304c0 -26 -22 -48 -48 -48h-416c-26 0 -48 22 -48 48v384c0 26 22 48 48 48h336c8 0 17 -3 23 -9zM480 0v288h-64c-26 0 -48 21 -48 48v0v64h-320c-9 0 -16 -7 -16 -16v-384c0 -9 7 -16 16 -16h416c9 0 16 7 16 16zM432 304h48l-96 96v-64v0
+c0 -18 14 -32 32 -32h16zM248 320c-4 0 -8 4 -8 8s4 8 8 8h80c4 0 8 -4 8 -8s-4 -8 -8 -8h-80zM248 272c-4 0 -8 4 -8 8s4 8 8 8h80c4 0 8 -4 8 -8s-4 -8 -8 -8h-80zM240 232c0 4 4 8 8 8h192c4 0 8 -4 8 -8s-4 -8 -8 -8h-192c-4 0 -8 4 -8 8zM440 144c4 0 8 -4 8 -8
+s-4 -8 -8 -8h-368c-4 0 -8 4 -8 8s4 8 8 8h368zM440 96c4 0 8 -4 8 -8s-4 -8 -8 -8h-368c-4 0 -8 4 -8 8s4 8 8 8h368zM440 48c4 0 8 -4 8 -8s-4 -8 -8 -8h-368c-4 0 -8 4 -8 8s4 8 8 8h368zM440 192c4 0 8 -4 8 -8s-4 -8 -8 -8h-368c-4 0 -8 4 -8 8s4 8 8 8h368zM80 224
+c-9 0 -16 7 -16 16v96c0 9 7 16 16 16h112c9 0 16 -7 16 -16v-96c0 -9 -7 -16 -16 -16h-112zM96 320v-64h80v64h-80z" />
+    <glyph glyph-name="uniF1A3" unicode="&#xf1a3;" horiz-adv-x="508" 
+d="M146 178l25 78l24 -78h-49zM469 299h39l-44 -192h-37l-32 130l-32 -130h-38l-2 9c-28 -56 -85 -95 -152 -95c-94 0 -171 77 -171 171s77 171 171 171c54 0 102 -25 133 -64h16l26 -135l32 135h34l32 -135zM220 107h40l-68 192h-43l-68 -192h41l15 42h68z" />
+    <glyph glyph-name="uniF15B" unicode="&#xf15b;" horiz-adv-x="256" 
+d="M16 228v0v0zM256 320c0 -11 -6 -21 -14 -27v0c-2 -1 -3 -5 -3 -7c-1 -20 -3 -36 -9 -50c-7 -19 -20 -33 -39 -46c-17 -12 -29 -21 -36 -34c-7 -12 -11 -28 -11 -53v-24c0 -7 2 -13 10 -18c4 -2 7 -6 10 -9c8 -9 14 -21 14 -34c0 -28 -22 -50 -50 -50s-50 22 -50 50v1v0
+c0 18 10 33 24 42c5 4 9 5 9 18v0c0 14 -3 17 -10 27s-18 17 -32 26c-19 13 -33 27 -40 46c-6 15 -8 31 -9 39s-2 9 -4 11c-10 6 -16 16 -16 28c0 18 14 32 32 32s32 -14 32 -32c0 -10 -4 -20 -12 -26c-3 -2 -4 -11 -4 -14v0v0c0 -9 3 -18 7 -28c10 -21 45 -44 52 -44
+s8 5 8 12v196s-1 2 -3 4h-1v1v0c-9 6 -15 16 -15 27c0 18 14 32 32 32s32 -14 32 -32c0 -11 -5 -21 -14 -27v0c-2 -2 -2 -3 -2 -5v-140c0 -10 2 -12 8 -11c13 3 48 30 52 43c3 10 6 23 7 41v1c0 2 -2 4 -3 6c-10 6 -16 16 -16 28c0 18 14 32 32 32s32 -14 32 -32zM32 240
+c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM128 368c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM224 304c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" />
+    <glyph glyph-name="uniF100" unicode="&#xf100;" 
+d="M448 320c35 0 64 -29 64 -64v-256c0 -35 -29 -64 -64 -64h-384c-35 0 -64 29 -64 64v256c0 35 29 64 64 64h96v64c0 18 14 32 32 32h128c18 0 32 -14 32 -32v-64h96zM192 384v-64h128v64h-128zM384 96v64h-96v96h-64v-96h-96v-64h96v-96h64v96h96z" />
+    <glyph glyph-name="uniF1BD" unicode="&#xf1bd;" horiz-adv-x="286" 
+d="M270 156v0c15 -9 20 -29 11 -44s-28 -21 -43 -12l-33 19c-9 -8 -19 -13 -30 -17v-38c0 -18 -14 -32 -32 -32s-32 14 -32 32v38c-11 4 -21 9 -30 17l-33 -19c-15 -9 -35 -3 -44 12s-3 35 12 44l33 19c-1 6 -2 11 -2 17s1 11 2 17l-33 19c-15 9 -21 29 -12 44s29 21 44 12
+l33 -19c9 8 19 13 30 17v38c0 18 14 32 32 32s32 -14 32 -32v-38c11 -4 21 -9 30 -17l33 19c15 9 34 3 43 -12s4 -35 -11 -44l-33 -19c1 -6 2 -11 2 -17s-1 -11 -2 -17zM111 192c0 -18 14 -32 32 -32s32 14 32 32s-14 32 -32 32s-32 -14 -32 -32z" />
+    <glyph glyph-name="uniF148" unicode="&#xf148;" horiz-adv-x="528" 
+d="M304 416c124 0 224 -100 224 -224s-100 -224 -224 -224v48c47 0 91 19 124 52s52 77 52 124s-19 91 -52 124s-77 52 -124 52s-91 -19 -124 -52c-26 -26 -43 -57 -49 -92h93l-112 -128l-112 128h82c16 109 109 192 222 192zM400 224v-64h-128v160h64v-96h64z" />
+    <glyph glyph-name="uniF146" unicode="&#xf146;" 
+d="M512 269c0 -43 -18 -82 -48 -109v0l-160 -160c-16 -16 -32 -32 -48 -32s-32 16 -48 32l-160 160c-30 27 -48 66 -48 109c0 81 66 147 147 147c43 0 82 -18 109 -48c27 30 66 48 109 48c81 0 147 -66 147 -147z" />
+    <glyph glyph-name="uniF1F6" unicode="&#xf1f6;" horiz-adv-x="384" 
+d="M96 352c0 53 43 96 96 96s96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96zM320 224c64 0 64 -43 64 -96v-160h-384v160c0 53 0 96 64 96h18l99 -202l-37 186l48 48l48 -48l-37 -186l99 202h18z" />
+    <glyph glyph-name="uniF1C1" unicode="&#xf1c1;" 
+d="M326 4v0c8 -5 12 -16 7 -24s-17 -11 -25 -6l-18 10c-5 -4 -10 -7 -16 -9v-21c0 -10 -8 -18 -18 -18s-18 8 -18 18v21c-6 2 -11 5 -16 9l-18 -10c-8 -5 -19 -2 -24 6s-2 19 6 24l18 11c-1 3 -1 6 -1 9s0 7 1 10l-18 10c-8 5 -11 16 -6 24s16 12 24 7l18 -11
+c5 4 10 8 16 10v21c0 10 8 18 18 18s18 -8 18 -18v-21c6 -2 11 -6 16 -10l18 11c8 5 20 1 25 -7s1 -19 -7 -24l-18 -10c1 -3 1 -7 1 -10s0 -6 -1 -9zM256 7c10 0 18 7 18 17s-8 18 -18 18s-18 -8 -18 -18s8 -17 18 -17zM400 384c62 0 112 -50 112 -112s-50 -112 -112 -112
+c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1c30 41 77 65 128 65s98 -24 128 -65c5 1 11 1 16 1z" />
+    <glyph glyph-name="uniF155" unicode="&#xf155;" horiz-adv-x="384" 
+d="M384 64h-384v242l131 -100l-68 -77l2 -2l79 70l48 -37l48 37l79 -70l2 2l-68 77l131 100v-242zM376 320l-184 -140l-184 140h368z" />
+    <glyph glyph-name="uniF157" unicode="&#xf157;" horiz-adv-x="256" 
+d="M256 183h-120v-119h-17v119h-119v17h119v120h17v-120h120v-17z" />
+    <glyph glyph-name="uniF1E5" unicode="&#xf1e5;" 
+d="M432 96c44 0 80 -36 80 -80s-36 -80 -80 -80s-80 36 -80 80c0 4 0 9 1 13l-215 107c-15 -15 -35 -24 -58 -24c-44 0 -80 36 -80 80s36 80 80 80c23 0 43 -9 58 -24l215 107c-1 4 -1 9 -1 13c0 44 36 80 80 80s80 -36 80 -80s-36 -80 -80 -80c-23 0 -43 9 -58 24
+l-215 -107c1 -4 1 -9 1 -13s0 -9 -1 -13l215 -107c15 15 35 24 58 24z" />
+    <glyph glyph-name="uniF1CE" unicode="&#xf1ce;" horiz-adv-x="480" 
+d="M464 225v0c9 0 16 -7 16 -16s-7 -16 -16 -16h-82c-1 -11 -3 -22 -7 -32h22c10 0 19 -7 19 -16s-9 -16 -19 -16h-37c-26 -39 -70 -64 -120 -64s-94 25 -120 64h-101c-10 0 -19 7 -19 16s9 16 19 16h86c-4 10 -6 21 -7 32h-50c-9 0 -16 7 -16 16s7 16 16 16h50
+c1 11 3 22 7 32h-89c-9 0 -16 7 -16 16s7 16 16 16h104c26 39 70 64 120 64c74 0 134 -56 142 -128h82zM139 257v0c-5 -10 -7 -21 -9 -32h220c-8 54 -54 96 -110 96c-30 0 -58 -12 -78 -32h78c9 0 16 -7 16 -16s-7 -16 -16 -16h-101zM240 97c30 0 58 12 78 32h-156
+c20 -20 48 -32 78 -32zM341 161c5 10 7 21 9 32h-220c2 -11 4 -22 9 -32h202z" />
+    <glyph glyph-name="uniF1E3" unicode="&#xf1e3;" 
+d="M256 -64c-141 0 -256 115 -256 256s115 256 256 256s256 -115 256 -256s-115 -256 -256 -256zM256 400c-115 0 -208 -93 -208 -208s93 -208 208 -208s208 93 208 208s-93 208 -208 208zM128 288c0 18 14 32 32 32s32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32zM320 288
+c0 18 14 32 32 32s32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32zM160 58l-41 24c28 47 79 78 137 78s109 -31 137 -78l-41 -24c-20 33 -55 54 -96 54s-76 -21 -96 -54z" />
+    <glyph glyph-name="uniF180" unicode="&#xf180;" horiz-adv-x="363" 
+d="M299 363h64v-171h-171v-192c0 -12 -9 -21 -21 -21h-43c-12 0 -21 9 -21 21v235h213v85h-21v-21c0 -12 -10 -22 -22 -22h-256c-12 0 -21 10 -21 22v85c0 12 9 21 21 21h256c12 0 22 -9 22 -21v-21z" />
+    <glyph glyph-name="uniF12C" unicode="&#xf12c;" 
+d="M352 352l160 -192v-128c0 -18 -14 -32 -32 -32h-448c-18 0 -32 14 -32 32v128l160 192h192zM384 160v0h86l-133 160h-162l-133 -160h86l64 -64h128z" />
+    <glyph glyph-name="uniF1E4" unicode="&#xf1e4;" 
+d="M256 448c141 0 256 -115 256 -256s-115 -256 -256 -256s-256 115 -256 256s115 256 256 256zM352 320c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM160 320c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM352 58l41 24
+c-28 47 -79 78 -137 78s-109 -31 -137 -78l41 -24c20 33 55 54 96 54s76 -21 96 -54z" />
+    <glyph glyph-name="uniF134" unicode="&#xf134;" horiz-adv-x="439" 
+d="M219 411c40 0 77 -9 111 -29s59 -46 79 -80s30 -70 30 -110s-10 -76 -30 -110s-45 -60 -79 -80s-71 -29 -111 -29s-76 9 -110 29s-60 46 -80 80s-29 70 -29 110s9 76 29 110s46 60 80 80s70 29 110 29zM298 263c0 0 -2 -1 -3 -3s-3 -3 -4 -3c0 0 1 1 1 2s2 2 2 3s1 2 1 2
+c1 1 3 2 6 4c3 1 8 2 15 3c6 2 12 1 15 -3c0 0 0 2 2 4s3 3 4 3s3 2 5 2s3 1 4 2l1 6c-2 0 -4 0 -5 2s-2 4 -2 6l-2 -2c0 1 0 2 -1 2h-4h-2c-2 1 -3 1 -4 2s-2 2 -3 4s-1 4 -1 5s-2 2 -3 3s-2 2 -2 3c0 0 -1 0 -1 1s-1 1 -1 2s-1 2 -1 2h-2s-1 0 -2 -1s-1 -2 -2 -3l-1 -1h-2
+h-1s0 -1 -1 -1s-2 -1 -2 -1c-1 0 -1 -1 -2 -1h-3c3 1 3 2 0 3c-2 1 -3 1 -4 1c2 1 2 1 2 3s-2 3 -3 4h2c0 1 -2 1 -3 2s-3 2 -5 3s-2 2 -3 2c-2 1 -5 1 -10 2s-9 1 -10 0s-1 -2 -1 -3s0 -2 1 -4s1 -2 1 -3s0 -3 -1 -4s-2 -2 -2 -3s1 -3 4 -5s4 -4 3 -6s-3 -2 -5 -4l-4 -4
+c-1 -2 -2 -3 -1 -5s2 -4 3 -5l1 -1s0 -1 -1 -1s-2 -1 -2 -1s-1 -1 -2 -1l-1 -1c-2 -1 -4 0 -6 2s-2 4 -3 7c-1 5 -3 8 -5 9c-4 2 -7 1 -8 -1c-1 2 -5 6 -12 8c-5 2 -11 2 -17 1c1 0 1 1 0 4s-3 5 -5 4c1 1 1 3 1 5v4c1 2 2 4 4 6c0 0 1 2 2 3l3 3s1 2 0 2c7 -1 11 0 14 3
+c1 1 2 3 3 5s2 4 3 5c2 1 3 2 4 2s2 -1 4 -2s4 -1 5 -1c3 0 4 1 4 3s0 3 -2 5c2 0 3 2 1 5c-1 1 -2 3 -3 3c-2 1 -4 0 -7 -2c-2 -1 -2 -1 0 -2c0 0 0 -1 -2 -3s-3 -4 -5 -5s-3 0 -5 2c0 0 0 1 -1 3s-2 4 -3 4c-2 0 -3 -1 -5 -4c1 2 0 3 -3 4s-5 3 -7 3c4 2 3 4 -2 7
+c-1 1 -3 2 -6 2s-4 0 -5 -1s-2 -3 -2 -4s1 -1 2 -2s2 -2 3 -2s2 -1 3 -1s2 -1 2 -1c3 -2 4 -3 3 -4c0 0 -2 -1 -3 -1s-2 -1 -3 -1s-2 -1 -2 -1c-1 -1 -1 -2 0 -4s1 -3 0 -4c-1 1 -2 3 -3 5s-1 4 -2 5c1 -2 -1 -3 -7 -2h-3h-5s-3 -1 -5 -1s-3 2 -4 3c-1 2 -1 3 0 5
+c0 1 0 1 1 1l-3 3s-2 2 -3 2c-9 -3 -18 -7 -27 -12c1 0 2 1 3 1s2 1 4 2s3 1 3 1c6 3 10 3 12 2l1 2c3 -3 5 -6 6 -8c-1 1 -4 2 -8 1s-7 -3 -7 -4c1 -2 2 -4 2 -5c-1 1 -3 2 -4 3s-3 2 -4 3s-2 2 -4 2c-3 0 -5 -1 -6 -1c-28 -15 -50 -36 -67 -63c1 -1 2 -2 3 -2s1 -1 1 -3
+s1 -2 1 -3s1 0 3 1c2 -2 2 -4 1 -6c0 0 5 -2 13 -7c4 -3 6 -5 6 -6c1 -2 -1 -5 -3 -6c0 0 -1 2 -3 3s-2 2 -2 1c-1 -1 -1 -2 0 -5s2 -4 3 -4c-1 0 -3 -1 -3 -4v-10s-1 -6 -1 -7h1c-1 -2 -1 -6 1 -10s5 -7 7 -6c-2 -1 -1 -4 5 -12c1 -2 3 -3 3 -3c1 0 1 -1 3 -2s3 -2 4 -3
+l3 -3s2 -3 3 -6s2 -6 4 -7c0 -1 1 -3 3 -6s3 -4 3 -6h-1l-1 -1c1 -1 3 -3 5 -4s3 -2 4 -3c0 -1 1 -2 1 -3s1 -2 1 -3s1 -1 2 -1c0 4 -2 10 -7 18c-3 5 -5 7 -5 8c-1 1 -1 2 -1 4s-2 4 -2 5c0 0 1 -1 2 -1s1 -1 2 -1s2 -1 3 -1s0 -1 0 -1c-1 -1 0 -3 1 -5s2 -3 3 -5
+s3 -4 5 -6l3 -3c1 -1 2 -3 4 -6s2 -4 0 -4c2 0 4 -1 6 -3s4 -3 5 -5s1 -5 2 -8s2 -6 2 -7s1 -2 2 -3s3 -2 4 -3l4 -2l4 -2c1 0 2 -1 5 -3s4 -3 6 -4s4 -1 5 -1s2 1 4 1s3 1 4 1c3 0 5 -1 8 -4l6 -6c7 -4 12 -6 16 -4v-2s1 -2 2 -4s2 -3 3 -4s2 -2 2 -3c1 -1 3 -2 5 -4
+s4 -3 5 -4c1 1 2 1 2 2c-1 -2 0 -3 2 -5s3 -3 5 -3c3 1 4 3 4 9c-6 -3 -11 -1 -14 5c0 0 -1 1 -1 2s-1 1 -1 2s-1 1 -1 2v3s1 0 2 0c2 0 3 0 3 1s0 2 -1 4s-1 3 -1 4c0 2 -1 3 -3 5s-4 4 -4 5c-1 -2 -2 -3 -4 -3s-4 1 -5 3v-2s-1 -1 -1 -1h-4c0 1 1 2 1 5s1 4 1 6
+c0 1 0 2 1 4s2 3 3 4s1 2 1 3s-1 2 -2 3s-3 1 -5 1c-4 0 -6 -2 -7 -6c0 -1 -1 -2 -1 -3s0 -2 -1 -3s-2 -1 -3 -2s-4 -1 -7 -1s-6 1 -7 2c-2 2 -4 4 -6 8s-3 8 -3 11c0 2 1 4 1 7s1 5 1 7s-1 4 -2 7c1 0 2 2 3 3l3 3h1h1l1 1s1 1 1 2h-1l-1 1c1 -1 4 0 8 1s7 0 8 -1
+c3 -2 5 -1 6 1v3s-1 2 -1 3c1 -5 4 -5 9 -2c1 -1 2 -2 4 -2s4 0 5 -1c1 0 1 -1 2 -2s2 -1 2 -1h1s2 1 3 2c2 -3 3 -5 3 -7c2 -8 3 -11 5 -12c1 -1 3 -1 4 -1s1 1 1 3v4s-1 2 -1 3v3v5v2c-3 1 -4 2 -5 4s-1 3 0 5s2 3 4 5c0 0 2 1 3 1s2 1 4 2s3 1 4 2c4 4 5 7 4 10
+c1 0 2 1 3 3l-1 1s-2 1 -3 1s-1 1 -1 1c2 1 2 2 1 4c1 1 2 1 2 3s1 3 2 3c2 -2 4 -2 6 0c1 2 1 2 0 4c1 1 3 2 6 3s4 2 5 3c1 0 3 0 3 1v3s0 3 1 4s2 1 4 2l4 2l5 3c1 1 1 1 0 1c3 0 7 1 9 3s1 4 -2 6c1 1 0 1 -1 2s-2 2 -4 2h3h3c3 2 2 4 -2 5c-3 1 -7 0 -12 -3v0zM251 12
+c39 7 72 25 100 54c-1 1 -1 1 -3 1s-3 1 -4 1c-3 1 -6 3 -7 3c0 1 1 2 0 3l-3 3s-1 1 -3 2s-2 2 -3 2l-2 2s-2 1 -2 1l-2 2s-2 0 -3 0h-3h-1c-1 0 -1 -1 -1 -1s-1 -1 -2 -1s-1 -1 -1 -1v0c-4 3 -7 5 -10 6c-1 0 -2 0 -3 1s-2 2 -3 2s-2 1 -3 1s-2 -1 -3 -2s-2 -2 -2 -4
+s-1 -3 -1 -4c-1 1 -1 3 0 5s2 4 1 5s-2 1 -3 1s-3 0 -4 -1s-2 -1 -3 -2l-2 -2s-2 -1 -3 -2s-2 -1 -2 -2c-1 -1 -1 -1 -2 -3s-1 -2 -1 -3c0 1 -2 1 -4 1s-2 1 -2 2c0 -2 1 -5 1 -10s0 -9 1 -11c1 -6 1 -11 -3 -14c-5 -5 -9 -8 -9 -11c-1 -4 1 -6 4 -7c0 -1 0 -3 -2 -6
+s-2 -4 -2 -6v-5v0z" />
+    <glyph glyph-name="uniF120" unicode="&#xf120;" 
+d="M507 37c2 -2 3 -4 4 -6c2 -6 1 -12 -4 -17l-73 -73c-5 -5 -11 -6 -17 -4c-2 1 -4 2 -6 4v0l-155 155l-155 -155v0c-2 -2 -4 -3 -6 -4c-6 -2 -12 -1 -17 4l-73 73c-5 5 -6 11 -4 17c1 2 2 4 4 6v0l155 155l-155 155v0c-2 2 -3 4 -4 6c-2 6 -1 12 4 17l73 73c5 5 11 6 17 4
+c2 -1 4 -2 6 -4v0l155 -155l155 155v0c2 2 4 3 6 4c6 2 12 1 17 -4l73 -73c5 -5 6 -11 4 -17c-1 -2 -2 -4 -4 -6v0l-155 -155l155 -155v0z" />
+    <glyph glyph-name="uniF101" unicode="&#xf101;" 
+d="M384 128v0h128v-64l-96 -32l-32 -96h-64v128l-91 91l-165 -219l-64 64l110 274l-87 87c-25 25 -31 59 -13 77s52 12 77 -13l87 -87l274 110l64 -64l-219 -165z" />
+    <glyph glyph-name="uniF1EC" unicode="&#xf1ec;" horiz-adv-x="384" 
+d="M0 384h384v-384h-384v384z" />
+    <glyph glyph-name="uniF13E" unicode="&#xf13e;" 
+d="M0 384h512v-384h-512v384zM96 32v64h-64v-64h64zM96 160v64h-64v-64h64zM96 288v64h-64v-64h64zM384 32v320h-256v-320h256zM480 32v64h-64v-64h64zM480 160v64h-64v-64h64zM480 288v64h-64v-64h64zM192 288l128 -96l-128 -96v192z" />
+    <glyph glyph-name="uniF138" unicode="&#xf138;" 
+d="M512 128c0 -32 -12 -75 -36 -129c-1 -1 -2 -4 -3 -7s-3 -6 -4 -8s-3 -5 -4 -7c-2 -3 -5 -4 -8 -4s-5 0 -7 2s-2 5 -2 8c0 2 1 4 1 7v7c1 13 2 25 2 35c0 19 -2 37 -5 52s-8 28 -14 39s-14 21 -23 29s-19 15 -30 20s-23 9 -38 12s-29 5 -44 6s-31 2 -50 2h-64v-73
+c0 -5 -2 -9 -6 -13s-7 -5 -12 -5s-9 1 -13 5l-147 146c-4 4 -5 8 -5 13s1 9 5 13l147 146c4 4 8 6 13 6s8 -2 12 -6s6 -8 6 -13v-73h64c136 0 219 -38 250 -115c10 -26 15 -57 15 -95v0z" />
+    <glyph glyph-name="uniF109" unicode="&#xf109;" horiz-adv-x="165" 
+d="M165 320v-256c0 -5 -2 -9 -6 -13s-8 -5 -13 -5s-9 1 -13 5l-128 128c-4 4 -5 8 -5 13s1 9 5 13l128 128c4 4 8 5 13 5s9 -1 13 -5s6 -8 6 -13z" />
+    <glyph glyph-name="uniF103" unicode="&#xf103;" horiz-adv-x="384" 
+d="M9 137c-12 12 -12 34 0 46c6 6 15 9 23 9s17 -3 23 -9l105 -106v307c0 18 14 32 32 32s32 -14 32 -32v-307l105 106c12 12 34 12 46 0s12 -34 0 -46l-160 -160c-12 -12 -34 -12 -46 0z" />
+    <glyph glyph-name="uniF107" unicode="&#xf107;" horiz-adv-x="174" 
+d="M124 332c11 10 30 11 41 0s12 -26 0 -40l-96 -100l96 -100c12 -14 11 -29 0 -40s-30 -10 -41 0s-115 120 -115 120c-6 6 -9 13 -9 20s3 14 9 20c0 0 104 110 115 120z" />
+    <glyph glyph-name="uniF108" unicode="&#xf108;" horiz-adv-x="236" 
+d="M230 2c7 -7 7 -18 0 -25s-17 -7 -24 0l-201 202c-7 7 -7 19 0 26l201 202c7 7 17 7 24 0s7 -18 0 -25l-182 -190z" />
+    <glyph glyph-name="uniF106" unicode="&#xf106;" horiz-adv-x="448" 
+d="M169 375c12 12 34 12 46 0c6 -6 9 -15 9 -23s-3 -17 -9 -23l-106 -105h307c18 0 32 -14 32 -32s-14 -32 -32 -32h-307l106 -105c12 -12 12 -34 0 -46s-34 -12 -46 0l-160 160c-12 12 -12 34 0 46z" />
+    <glyph glyph-name="uniF105" unicode="&#xf105;" horiz-adv-x="293" 
+d="M293 258c0 -5 -2 -9 -6 -13l-128 -128c-4 -4 -8 -5 -13 -5s-9 1 -13 5l-128 128c-4 4 -5 8 -5 13s1 9 5 13s8 6 13 6h256c5 0 9 -2 13 -6s6 -8 6 -13z" />
+    <glyph glyph-name="uniF104" unicode="&#xf104;" horiz-adv-x="440" 
+d="M30 305v0l190 -183l190 183c7 7 18 7 25 0s7 -18 0 -25l-202 -201c-7 -7 -18 -7 -25 0l-203 201c-7 7 -7 18 0 25s18 7 25 0z" />
+    <glyph glyph-name="uniF1B5" unicode="&#xf1b5;" horiz-adv-x="320" 
+d="M16 288c-9 0 -16 7 -16 16s7 16 16 16h288c9 0 16 -7 16 -16s-7 -16 -16 -16h-288zM304 256c9 0 16 -7 16 -16s-7 -16 -16 -16h-288c-9 0 -16 7 -16 16s7 16 16 16h288zM304 192c9 0 16 -7 16 -16s-7 -16 -16 -16h-288c-9 0 -16 7 -16 16s7 16 16 16h288zM304 128
+c9 0 16 -7 16 -16s-7 -16 -16 -16h-288c-9 0 -16 7 -16 16s7 16 16 16h288z" />
+    <glyph glyph-name="uniF152" unicode="&#xf152;" horiz-adv-x="207" 
+d="M74 118c-2 -2 -6 -4 -9 -4s-7 2 -9 4l-56 56l18 18l47 -47l125 126l17 -18z" />
+    <glyph glyph-name="uniF17A" unicode="&#xf17a;" horiz-adv-x="469" 
+d="M341 128v171h-170v42h170c24 0 43 -18 43 -42v-171h-43zM128 85h341v-42h-85v-86h-43v86h-213c-24 0 -43 18 -43 42v214h-85v42h85v86h43v-342z" />
+    <glyph glyph-name="uniF159" unicode="&#xf159;" horiz-adv-x="448" 
+d="M448 416l-192 -448v256h-256z" />
+    <glyph glyph-name="uniF116" unicode="&#xf116;" horiz-adv-x="448" 
+d="M416 384h32v-448h-384c-35 0 -64 29 -64 64v384c0 35 29 64 64 64h320v-384h-304c-27 0 -48 -21 -48 -48s21 -48 48 -48h336v416zM96 32h288v-32h-288v32z" />
+    <glyph glyph-name="uniF111" unicode="&#xf111;" horiz-adv-x="448" 
+d="M317 284v0l-162 -162c-9 -9 -9 -23 0 -32s23 -9 32 0l195 194c27 27 27 71 0 98s-71 27 -98 0l-204 -205v0h-1c-45 -45 -45 -117 0 -162s117 -45 162 0v1l140 139l33 -32l-140 -140v0h-1c-63 -63 -163 -63 -226 0s-63 163 0 226v1l205 204c45 45 117 45 162 0
+s45 -117 0 -162l-195 -195c-27 -27 -70 -27 -97 0s-27 71 0 98l162 162z" />
+    <glyph glyph-name="uniF174" unicode="&#xf174;" horiz-adv-x="341" 
+d="M171 363l170 -171l-170 -171l-31 31l120 119h-260v42h260l-120 119z" />
+    <glyph glyph-name="uniF147" unicode="&#xf147;" 
+d="M512 269c0 -43 -18 -82 -48 -109l-160 -160c-16 -16 -32 -32 -48 -32s-32 16 -48 32l-160 160v0c-30 27 -48 66 -48 109c0 81 66 147 147 147c43 0 82 -18 109 -48c27 30 66 48 109 48c81 0 147 -66 147 -147zM421 207c18 16 27 38 27 62c0 46 -37 83 -83 83
+c-24 0 -46 -9 -62 -27l-47 -52l-47 52c-16 18 -38 27 -62 27c-46 0 -83 -37 -83 -83c0 -24 9 -46 27 -62l162 -162c1 -1 2 -1 3 -2c1 1 2 1 3 2z" />
+    <glyph glyph-name="uniF102" unicode="&#xf102;" horiz-adv-x="448" 
+d="M224 384c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM224 -20c99 0 180 81 180 180s-81 180 -180 180s-180 -81 -180 -180s81 -180 180 -180zM435 304v0c-37 54 -93 93 -159 107c18 23 45 37 76 37c53 0 96 -43 96 -96
+c0 -17 -5 -34 -13 -48zM172 411c-66 -14 -122 -53 -159 -107c-8 14 -13 31 -13 48c0 53 43 96 96 96c31 0 58 -14 76 -37zM192 288h32v-160h-32v160zM224 160v-32h96v32h-96z" />
+    <glyph glyph-name="uniF123" unicode="&#xf123;" 
+d="M446 255c37 -7 66 -40 66 -79c0 -44 -36 -80 -80 -80h-112v-96h-128v96h-64c-71 0 -128 57 -128 128s57 128 128 128c12 0 25 -2 36 -5c12 40 48 69 92 69c43 0 79 -28 91 -67c7 2 14 3 21 3c44 0 80 -36 80 -80c0 -6 -1 -11 -2 -17zM288 128h80l-112 112l-112 -112h80
+v-96h64v96z" />
+    <glyph glyph-name="uniF139" unicode="&#xf139;" horiz-adv-x="516" 
+d="M344 44c0 -2 0 -4 -2 -6s-4 -3 -6 -3h-259h-3s-2 1 -3 2s-1 2 -1 3s-1 1 -1 3v3v161h-52c-5 0 -9 2 -12 5s-5 7 -5 12c0 4 1 8 4 11l86 104c3 4 8 5 13 5s10 -1 13 -5l86 -104c3 -3 5 -7 5 -11c0 -5 -3 -9 -6 -12s-7 -5 -12 -5h-51v-103h155c3 0 4 -1 6 -3l43 -52
+c1 -2 2 -3 2 -5v0zM516 155c0 -4 -1 -8 -4 -11l-86 -103c-4 -4 -8 -6 -13 -6s-9 2 -13 6l-86 103c-3 3 -4 7 -4 11c0 5 2 10 5 13s7 5 12 5h52v103h-155c-3 0 -5 1 -7 3l-43 52c-1 2 -2 3 -2 5s1 4 3 6s4 3 6 3h258c1 0 3 -1 4 -1s1 -1 2 -2s1 -1 1 -2s1 -1 1 -3s1 -2 1 -3
+v-161h51c5 0 9 -2 12 -5s5 -8 5 -13v0z" />
+    <glyph glyph-name="uniF169" unicode="&#xf169;" 
+d="M500 345c10 -8 14 -22 10 -35l-32 -96c-3 -9 -11 -17 -20 -20c-3 -1 -6 -2 -10 -2c-6 0 -11 1 -16 4v-196c0 -18 -14 -32 -32 -32h-288c-18 0 -32 14 -32 32v196c-5 -3 -10 -4 -16 -4c-3 0 -7 1 -10 2c-9 3 -17 11 -20 20l-32 96c-4 13 0 27 10 35l80 64c6 5 13 7 20 7
+h288c7 0 14 -2 20 -7zM316 384h-120c9 -19 32 -32 60 -32s51 13 60 32zM448 224l32 96l-80 64h-67c-9 -28 -40 -48 -77 -48s-68 20 -77 48h-67l-80 -64l32 -96l48 32v-256h288v256z" />
+    <glyph glyph-name="uniF184" unicode="&#xf184;" horiz-adv-x="158" 
+d="M158 100l-30 -31l-128 128l128 128l30 -30l-98 -98z" />
+    <glyph glyph-name="uniF135" unicode="&#xf135;" horiz-adv-x="430" 
+d="M219 223h208c2 -13 3 -24 3 -36c0 -41 -9 -79 -26 -111s-42 -58 -74 -76s-69 -27 -111 -27c-30 0 -58 5 -85 17s-50 27 -70 47s-35 43 -47 70s-17 55 -17 85s5 58 17 85s27 50 47 70s43 35 70 47s55 17 85 17c57 0 107 -19 148 -57l-60 -57c-23 23 -53 34 -88 34
+c-25 0 -47 -7 -68 -19s-37 -29 -49 -50s-19 -45 -19 -70s7 -49 19 -70s28 -38 49 -50s43 -19 68 -19c17 0 32 2 46 7s25 10 34 17s17 15 24 24s12 17 15 25s5 15 6 22h-125v75v0z" />
+    <glyph glyph-name="uniF172" unicode="&#xf172;" 
+d="M0 352l160 64v-384l-160 -64v384zM352 352v-384l-160 53v384zM512 416v-384l-128 -51v384z" />
+    <glyph glyph-name="uniF1AC" unicode="&#xf1ac;" 
+d="M512 208v0c0 -23 -9 -44 -24 -60c15 -19 24 -42 24 -68c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 0 16 -1l2 2c-1 5 -2 10 -2 15
+c0 49 40 89 89 89h7c23 29 58 46 96 46s73 -17 96 -46h7c49 0 89 -40 89 -89zM400 0v0c44 0 80 36 80 80c0 18 -7 35 -17 49c-8 10 -18 18 -29 23c-10 5 -22 8 -34 8l-13 -1c-6 -1 -11 -3 -17 -5c-21 41 -64 70 -114 70c-36 0 -68 -15 -91 -39c-8 -8 -15 -18 -21 -28
+c-1 -1 -1 -2 -2 -3c-9 4 -19 6 -30 6c-44 0 -80 -36 -80 -80s36 -80 80 -80c17 0 33 6 46 15c23 -28 58 -47 98 -47s75 19 98 47c13 -9 29 -15 46 -15zM466 170v0c9 10 14 24 14 38c0 32 -25 57 -57 57c-8 0 -15 -1 -22 -4c-15 30 -46 50 -81 50s-66 -20 -81 -50
+c-7 3 -14 4 -22 4c-25 0 -47 -16 -54 -39c27 19 59 30 93 30c51 0 98 -24 128 -65c5 1 11 1 16 1c25 0 48 -9 66 -22z" />
+    <glyph glyph-name="uniF1AD" unicode="&#xf1ad;" 
+d="M208 384c-9 0 -16 7 -16 16v32c0 9 7 16 16 16s16 -7 16 -16v-32c0 -9 -7 -16 -16 -16zM332 342c-6 -6 -16 -6 -22 0s-6 16 0 22l22 23c6 6 17 6 23 0s6 -17 0 -23zM16 224c-9 0 -16 7 -16 16s7 16 16 16h32c9 0 16 -7 16 -16s-7 -16 -16 -16h-32zM352 240
+c0 9 7 16 16 16h32c9 0 16 -7 16 -16s-7 -16 -16 -16h-32c-9 0 -16 7 -16 16zM84 342l-23 22c-6 6 -6 17 0 23s17 6 23 0l22 -23c6 -6 6 -16 0 -22s-16 -6 -22 0zM400 192v0c62 0 112 -50 112 -112s-50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39
+c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112c0 60 48 110 108 112c-7 15 -12 31 -12 48c0 62 50 112 112 112c61 0 111 -49 112 -110c25 -11 47 -28 64 -51c5 1 11 1 16 1zM256 256c10 0 21 -1 31 -3c-6 38 -39 67 -79 67c-44 0 -80 -36 -80 -80
+c0 -14 4 -26 10 -37c30 33 72 53 118 53z" />
+    <glyph glyph-name="uniF1AE" unicode="&#xf1ae;" 
+d="M488 201c15 -19 24 -42 24 -68c0 -62 -50 -112 -112 -112c-14 0 -27 2 -40 7c-29 -25 -65 -39 -104 -39c-38 0 -75 14 -104 39c-13 -5 -26 -7 -40 -7c-62 0 -112 50 -112 112s50 112 112 112c5 0 11 -1 16 -2c1 1 1 2 2 3c-1 5 -2 10 -2 15c0 49 40 89 89 89
+c2 0 5 -1 7 -1c23 29 58 46 96 46s73 -17 96 -46c2 0 5 1 7 1c49 0 89 -40 89 -89c0 -23 -9 -44 -24 -60v0z" />
+    <glyph glyph-name="uniF1D9" unicode="&#xf1d9;" horiz-adv-x="384" 
+d="M0 384h160v-384h-160v384zM224 384h160v-384h-160v384z" />
+    <glyph glyph-name="uniF1C9" unicode="&#xf1c9;" horiz-adv-x="416" 
+d="M16 129c-9 0 -16 7 -16 16s7 16 16 16h384c9 0 16 -7 16 -16s-7 -16 -16 -16h-384zM400 97c9 0 16 -7 16 -16s-7 -16 -16 -16h-384c-9 0 -16 7 -16 16s7 16 16 16h384zM400 33c9 0 16 -7 16 -16s-7 -16 -16 -16h-384c-9 0 -16 7 -16 16s7 16 16 16h384zM157 193v0h-41
+c-32 50 -26 116 17 159c13 13 29 23 48 30c6 2 13 0 17 -4s6 -10 4 -16c-13 -35 -4 -74 22 -100s65 -34 100 -22c6 2 12 0 16 -4s6 -11 4 -17c-3 -9 -7 -18 -12 -26h-42l9 9c-36 -2 -72 11 -98 37s-39 62 -37 98c-3 -2 -5 -4 -8 -7c-37 -37 -37 -99 0 -136z" />
+    <glyph glyph-name="uniF14E" unicode="&#xf14e;" horiz-adv-x="256" 
+d="M12 304c16 16 18 13 19 12l68 -65v0v0c2 -2 10 -10 10 -3v156v0v2c0 6 6 10 12 10c4 0 7 -2 9 -4v0s117 -113 122 -117s5 -10 1 -14l-84 -81s-4 -4 -4 -8s4 -8 4 -8l84 -81c4 -4 4 -10 -1 -14s-122 -117 -122 -117v0c-2 -2 -5 -4 -9 -4c-6 0 -12 4 -12 10v2v0v156
+s-8 -1 -10 -3v0v-1l-68 -64c-1 -1 -3 -4 -19 12s-12 17 -11 18s90 86 90 86s4 3 4 8v0c0 5 -4 8 -4 8s-89 85 -90 86s-5 2 11 18zM152 328v-79c0 -8 8 -1 10 1l30 30s3 5 3 7s-1 5 -3 7l-30 30c-2 2 -10 11 -10 4zM152 135v-79s8 2 10 4l30 30c2 2 3 5 3 7s-1 5 -3 7l-30 30
+c-2 2 -10 9 -10 1z" />
+    <glyph glyph-name="uniF170" unicode="&#xf170;" horiz-adv-x="320" 
+d="M296 224c13 0 24 -11 24 -24v-240c0 -13 -11 -24 -24 -24h-272c-13 0 -24 11 -24 24v240c0 13 11 24 24 24h8v96c0 53 43 96 96 96h64c53 0 96 -43 96 -96v-96h8zM192 0l-14 70c8 6 14 15 14 26c0 18 -14 32 -32 32s-32 -14 -32 -32c0 -11 6 -20 14 -26l-14 -70h64z
+M224 224v96c0 18 -14 32 -32 32h-64c-18 0 -32 -14 -32 -32v-96h128z" />
+    <glyph glyph-name="uniF167" unicode="&#xf167;" 
+d="M486 245c15 -3 26 -16 26 -31v-44c0 -15 -11 -28 -26 -31l-49 -10c-2 -7 -5 -14 -8 -21l27 -41c8 -13 7 -30 -4 -41l-30 -30c-6 -6 -15 -10 -23 -10c-6 0 -13 2 -18 6l-41 27c-7 -3 -14 -6 -21 -8l-10 -49c-3 -15 -16 -26 -31 -26h-44c-15 0 -28 11 -31 26l-10 49
+c-7 2 -14 5 -21 8l-41 -27c-5 -4 -12 -6 -18 -6c-8 0 -17 4 -23 10l-30 30c-11 11 -12 28 -4 41l27 41c-3 7 -6 14 -8 21l-49 10c-15 3 -26 16 -26 31v44c0 15 11 28 26 31l49 10c2 7 5 14 8 21l-27 41c-8 13 -7 30 4 41l30 30c6 6 15 10 23 10c6 0 13 -2 18 -6l41 -27
+c7 3 14 6 21 8l10 49c3 15 16 26 31 26h44c15 0 28 -11 31 -26l10 -49c7 -2 14 -5 21 -8l41 27c5 4 12 6 18 6c8 0 17 -4 23 -10l30 -30c11 -11 12 -28 4 -41l-27 -41c3 -7 6 -14 8 -21zM431 160l49 10v44l-49 10c-11 2 -20 9 -24 20c-2 6 -4 12 -7 18c-5 10 -4 22 2 31
+l28 42l-31 31l-42 -28c-5 -4 -11 -5 -17 -5c-5 0 -10 1 -14 3c-6 3 -12 5 -18 7c-11 4 -18 13 -20 24l-10 49h-44l-10 -49c-2 -11 -9 -20 -20 -24c-6 -2 -12 -4 -18 -7c-4 -2 -9 -3 -14 -3c-6 0 -12 1 -17 5l-42 28l-31 -31l28 -42c6 -9 7 -21 2 -31c-3 -6 -5 -12 -7 -18
+c-4 -11 -13 -18 -24 -20l-49 -10v-44l49 -10c11 -2 20 -9 24 -20c2 -6 4 -12 7 -18c5 -10 4 -22 -2 -31l-28 -42l31 -31l42 28c5 4 11 5 17 5c5 0 10 -1 14 -3c6 -3 12 -5 18 -7c11 -4 18 -13 20 -24l10 -49h44l10 49c2 11 9 20 20 24c6 2 12 4 18 7c4 2 9 3 14 3
+c6 0 12 -1 17 -5l42 -28l31 31l-28 42c-6 9 -7 21 -2 31c3 6 5 12 7 18c4 11 13 18 24 20zM256 304c62 0 112 -50 112 -112s-50 -112 -112 -112s-112 50 -112 112s50 112 112 112zM256 94c54 0 98 44 98 98s-44 98 -98 98s-98 -44 -98 -98s44 -98 98 -98zM256 256
+c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM256 144c26 0 48 22 48 48s-22 48 -48 48s-48 -22 -48 -48s22 -48 48 -48z" />
+    <glyph glyph-name="uniF1C7" unicode="&#xf1c7;" horiz-adv-x="128" 
+d="M96 87c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v294c0 19 14 35 32 35s32 -16 32 -35v-294z" />
+    <glyph glyph-name="uniF162" unicode="&#xf162;" 
+d="M352 448c88 0 160 -72 160 -160s-72 -160 -160 -160c-21 0 -40 4 -58 11l-38 -37v-38c0 -18 -14 -32 -32 -32h-32v-32c0 -18 -14 -32 -32 -32h-37l-23 -23c-6 -6 -11 -9 -20 -9h-48c-17 0 -32 15 -32 32v48c0 9 3 14 9 20l194 194c-7 18 -11 37 -11 58
+c0 88 72 160 160 160zM352 160c71 0 128 57 128 128s-57 128 -128 128s-128 -57 -128 -128c0 -24 7 -46 18 -65l-23 -23v0l-187 -186v-46h45l23 23c6 6 15 9 23 9h37v32c0 18 14 32 32 32h32v38c0 8 3 16 9 22l49 49l5 5c19 -11 41 -18 65 -18zM445 316c2 -3 3 -6 3 -9
+c0 -2 0 -3 -1 -5c-8 -22 -23 -37 -45 -45c-5 -2 -10 -1 -14 2c-25 18 -47 40 -65 65c-2 3 -3 6 -3 9c0 2 0 3 1 5c8 22 23 37 45 45c5 2 10 1 14 -2c25 -18 47 -40 65 -65zM397 272c17 6 29 17 35 35c-17 23 -37 44 -61 61c-17 -6 -29 -17 -35 -35c17 -23 37 -44 61 -61z
+" />
+    <glyph glyph-name="uniF1E8" unicode="&#xf1e8;" 
+d="M512 288l-256 -128l-256 128l256 128zM256 374l-171 -86l171 -86l171 86zM461 218l51 -26l-256 -128l-256 128l51 26l205 -103zM461 122l51 -26l-256 -128l-256 128l51 26l205 -103z" />
+    <glyph glyph-name="uniF1A2" unicode="&#xf1a2;" horiz-adv-x="341" 
+d="M256 171l-85 -86l-86 86h64v213h43v-213h64zM0 43h341v-43h-341v43z" />
+    <glyph glyph-name="uniF12D" unicode="&#xf12d;" horiz-adv-x="384" 
+d="M384 131v0v-3v-4v0c-2 -104 -87 -188 -192 -188s-190 84 -192 188v0v4v3v1v2c5 158 192 314 192 314s187 -156 192 -314v-2v-1zM320 126v0v2v2v1v1v0c-1 30 -12 65 -32 102c1 -9 2 -19 2 -29c0 -87 -46 -163 -116 -204c6 -1 12 -1 18 -1c34 0 66 13 90 37s37 54 38 88v1z
+" />
+    <glyph glyph-name="uniF1A0" unicode="&#xf1a0;" horiz-adv-x="384" 
+d="M0 85h128v-42h-128v42zM0 341h213v-42h-213v42zM213 0h-42v128h42v-43h171v-42h-171v-43zM85 256h43v-128h-43v43h-85v42h85v43zM384 171h-213v42h213v-42zM256 256v128h43v-43h85v-42h-85v-43h-43z" />
+    <glyph glyph-name="uniF158" unicode="&#xf158;" horiz-adv-x="192" 
+d="M168 384c13 0 24 -11 24 -24v-336c0 -13 -11 -24 -24 -24h-144c-13 0 -24 11 -24 24v336c0 13 11 24 24 24h144zM80 348v0c0 -2 2 -4 4 -4h24c2 0 4 2 4 4v0c0 2 -2 4 -4 4h-24c-2 0 -4 -2 -4 -4zM68 352c-2 0 -4 -2 -4 -4s2 -4 4 -4s4 2 4 4s-2 4 -4 4zM96 16
+c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM176 64v256h-160v-256h160z" />
+    <glyph glyph-name="uniF1D4" unicode="&#xf1d4;" horiz-adv-x="320" 
+d="M272 448c26 0 48 -22 48 -48v-416c0 -26 -22 -48 -48 -48h-224c-26 0 -48 22 -48 48v416c0 26 22 48 48 48h224zM96 424v-16h128v16h-128zM160 -32c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM288 64v320h-256v-320h256z" />
+    <glyph glyph-name="uniF18E" unicode="&#xf18e;" horiz-adv-x="384" 
+d="M192 384c106 0 192 -77 192 -171c0 -59 -48 -106 -107 -106h-37c-18 0 -32 -14 -32 -32c0 -8 3 -16 8 -22s8 -13 8 -21c0 -18 -14 -32 -32 -32c-106 0 -192 86 -192 192s86 192 192 192zM75 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM139 277
+c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM245 277c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="uniF127" unicode="&#xf127;" horiz-adv-x="384" 
+d="M368 384c9 0 16 -7 16 -16v-316l-116 -116h-252c-9 0 -16 7 -16 16v416c0 9 7 16 16 16h32v-32h-16v-384h192v128h128v256h-16v32h32zM256 -32l96 96h-96v-96zM320 384v-64h-256v64h64v32c0 18 14 32 32 32h64c18 0 32 -14 32 -32v-32h64zM224 384v0v32v0h-64v0v-32h64z
+" />
+    <glyph glyph-name="uniF128" unicode="&#xf128;" 
+d="M320 320h192v-384h-320v128h-192v288l96 96h224v-128zM96 403l-51 -51h51v51zM32 96h160v128l96 96v96h-160v-96h-96v-224zM288 275l-51 -51h51v51zM480 -32v320h-160v-96h-96v-224h256z" />
+    <glyph glyph-name="uniF1D6" unicode="&#xf1d6;" 
+d="M256 -64c-141 0 -256 115 -256 256s115 256 256 256s256 -115 256 -256s-115 -256 -256 -256zM256 400c-115 0 -208 -93 -208 -208s93 -208 208 -208s208 93 208 208s-93 208 -208 208zM128 288c0 18 14 32 32 32s32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32zM320 288
+c0 18 14 32 32 32s32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32zM192 96h128v-32h-128v32z" />
+    <glyph glyph-name="uniF1A5" unicode="&#xf1a5;" horiz-adv-x="230" 
+d="M67 271c4 -3 7 -7 9 -12s3 -10 3 -15s-1 -10 -3 -15s-5 -9 -9 -12s-7 -6 -12 -8s-11 -3 -16 -3s-10 1 -15 3s-8 5 -12 8s-7 7 -9 12s-3 10 -3 15s1 10 3 15s5 9 9 12s7 6 12 8s10 3 15 3s11 -1 16 -3s8 -5 12 -8zM52 232c3 3 5 7 5 12s-2 9 -5 12s-8 5 -13 5
+s-9 -2 -12 -5s-5 -7 -5 -12s2 -9 5 -12s7 -5 12 -5s10 2 13 5zM230 247v0h-87v-41h74v-32h-74v-72h-35v177h122v-32z" />
+    <glyph glyph-name="uniF197" unicode="&#xf197;" horiz-adv-x="384" 
+d="M320 105c34 0 62 -28 62 -62s-28 -63 -62 -63s-62 29 -62 63c0 5 1 10 2 14l-152 88c-11 -11 -27 -17 -44 -17c-35 0 -64 29 -64 64s29 64 64 64c17 0 33 -6 44 -17l150 88c-1 5 -2 9 -2 14c0 35 29 64 64 64s64 -29 64 -64s-29 -64 -64 -64c-17 0 -33 7 -44 18l-150 -88
+c1 -5 2 -10 2 -15s-1 -10 -2 -15l152 -89c11 10 26 17 42 17z" />
+    <glyph glyph-name="uniF164" unicode="&#xf164;" 
+d="M400 448c74 0 112 -113 112 -224s-38 -224 -112 -224c-33 0 -58 22 -77 57h-1c-25 49 -62 82 -102 86c-1 0 -3 0 -4 -1v0v-1c-2 -1 -4 -2 -5 -4c0 0 -1 -1 -1 -2c-1 -2 -2 -4 -2 -6v-1v-112c0 -9 16 -16 16 -32v-16c0 -18 -14 -32 -32 -32h-64c-18 0 -32 14 -32 32v144
+c0 18 -14 32 -32 32c-36 0 -64 35 -64 80s28 80 64 80h148c44 0 83 34 110 87h1c19 35 44 57 77 57zM320 224c0 -17 1 -33 3 -48h45c18 0 32 21 32 48c0 26 -14 48 -32 48h-45c-2 -15 -3 -31 -3 -48zM32 224c0 -27 14 -48 32 -48h112c-10 12 -16 29 -16 48s6 36 16 48h-112
+c-18 0 -32 -22 -32 -48zM192 -32v14l-2 2c-5 6 -14 17 -14 32v112c0 6 1 11 3 16h-49v0h-11c5 -9 9 -20 9 -32v-144h64zM212 176c30 0 58 -12 83 -32c-5 26 -7 53 -7 80s2 54 7 80c-25 -20 -53 -32 -83 -32h-4c-18 0 -32 -22 -32 -48c0 -27 14 -48 32 -48v0h4zM400 32
+c44 0 80 86 80 192s-36 192 -80 192c-32 0 -60 -46 -73 -112h41c36 0 64 -35 64 -80s-28 -80 -64 -80h-41c13 -66 41 -112 73 -112z" />
+    <glyph glyph-name="uniF16D" unicode="&#xf16d;" 
+d="M477 411v0c47 -47 47 -125 0 -172l-77 -76c0 22 -3 45 -12 66l49 50c26 26 26 66 0 92l-2 2c-26 26 -66 26 -92 0l-109 -109c-26 -26 -26 -66 0 -92l2 -2c4 -4 8 -7 13 -10l-40 -40c-4 3 -9 6 -13 10l-2 2c-47 47 -47 125 0 172l110 109c47 47 124 47 171 0zM316 254v0
+l2 -2c47 -47 47 -125 0 -172l-110 -109c-47 -47 -124 -47 -171 0l-2 2c-47 47 -47 124 0 171l77 77c0 -22 3 -45 12 -66l-49 -50c-26 -26 -26 -66 0 -92l2 -2c26 -26 66 -26 92 0l109 109c26 26 26 66 0 92l-2 2c-4 4 -8 7 -13 10l40 40c4 -3 9 -6 13 -10z" />
+    <glyph glyph-name="uniF13A" unicode="&#xf13a;" horiz-adv-x="439" 
+d="M439 192c0 -30 -6 -58 -18 -85s-26 -50 -46 -70s-43 -35 -70 -47s-56 -17 -86 -17c-33 0 -63 6 -93 20s-54 34 -75 59c-1 2 -2 4 -2 6s0 4 2 6l39 39c2 2 4 3 7 3s6 -1 7 -3c14 -18 31 -32 51 -42s41 -15 64 -15c20 0 39 3 57 11s34 19 47 32s23 28 31 46s12 37 12 57
+s-4 39 -12 57s-18 33 -31 46s-29 24 -47 32s-37 11 -57 11c-19 0 -36 -3 -53 -10s-33 -16 -46 -29l39 -39c6 -6 7 -13 4 -20c-3 -8 -9 -11 -17 -11h-128c-5 0 -9 1 -13 5s-5 8 -5 13v128c0 8 3 14 11 17c7 3 14 2 20 -4l37 -37c20 19 44 34 70 45s53 15 81 15
+c30 0 59 -5 86 -17s50 -27 70 -47s34 -43 46 -70s18 -55 18 -85v0z" />
+  </font>
+</defs></svg>

BIN
css/icons_mobiscroll.ttf


BIN
css/icons_mobiscroll.woff


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 6 - 0
css/mescroll.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 0
css/mobiscroll.custom-3.0.0-beta6.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 5612 - 0
css/mui.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 5 - 0
css/mui.min.css


+ 85 - 0
css/mui.picker.css

@@ -0,0 +1,85 @@
+/**
+ * 地址选择器使用样式〃鎻掍欢
+ * varstion 2.0.0
+ * by Houfeng
+ * Houfeng@DCloud.io
+ */
+
+.mui-picker {
+    background-color: #ddd;
+    position: relative;
+    height: 200px;
+    overflow: hidden;
+    border: solid 1px rgba(0, 0, 0, 0.1);
+    -webkit-user-select: none;
+    user-select: none;
+    box-sizing: border-box;
+}
+.mui-picker-inner {
+    box-sizing: border-box;
+    position: relative;
+    width: 100%;
+    height: 100%;
+    overflow: hidden;
+    -webkit-mask-box-image: -webkit-linear-gradient(bottom, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
+    -webkit-mask-box-image: linear-gradient(top, transparent, transparent 5%, #fff 20%, #fff 80%, transparent 95%, transparent);
+}
+.mui-pciker-list,
+.mui-pciker-rule {
+    box-sizing: border-box;
+    padding: 0px;
+    margin: 0px;
+    width: 100%;
+    height: 36px;
+    line-height: 36px;
+    position: absolute;
+    left: 0px;
+    top: 50%;
+    margin-top: -18px;
+}
+.mui-pciker-rule-bg {
+    z-index: 0;
+    /*background-color: #cfd5da;*/
+}
+.mui-pciker-rule-ft {
+    z-index: 2;
+    border-top: solid 1px rgba(0, 0, 0, 0.1);
+    border-bottom: solid 1px rgba(0, 0, 0, 0.1);
+    /*-webkit-box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);*/
+    /*box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);*/
+}
+.mui-pciker-list {
+    z-index: 1;
+    -webkit-transform-style: preserve-3d;
+    transform-style: preserve-3d;
+    -webkit-transform: perspective(1000px) rotateY(0deg) rotateX(0deg);
+    transform: perspective(1000px) rotateY(0deg) rotateX(0deg);
+}
+.mui-pciker-list li {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    text-align: center;
+    vertical-align: middle;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+    overflow: hidden;
+    box-sizing: border-box;
+    font-size: 16px;
+    font-family: "Helvetica Neue", "Helvetica", "Arial", "sans-serif";
+    color: #888;
+    padding: 0px 8px;
+    white-space: nowrap;
+    -webkit-text-overflow: ellipsis;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    cursor: default;
+    visibility: hidden;
+}
+.mui-pciker-list li.highlight,
+.mui-pciker-list li.visible {
+    visibility: visible;
+}
+.mui-pciker-list li.highlight {
+    color: #222;
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 7 - 0
css/mui.picker.min.css


+ 64 - 0
css/mui.poppicker.css

@@ -0,0 +1,64 @@
+.mui-poppicker {
+	position: fixed;
+	left: 0px;
+	width: 100%;
+	z-index: 999;
+	background-color: #eee;
+	border-top: solid 1px #ccc;
+	box-shadow: 0px -5px 7px 0px rgba(0, 0, 0, 0.1);
+	-webkit-transition: .3s;
+	bottom: 0px;
+	-webkit-transform: translateY(300px);
+}
+.mui-poppicker.mui-active {
+	-webkit-transform: translateY(0px);
+}
+.mui-android-5-1 .mui-poppicker {
+	bottom: -300px;
+	-webkit-transition-property: bottom;
+	-webkit-transform: none;
+}
+.mui-android-5-1 .mui-poppicker.mui-active {
+	bottom: 0px;
+	-webkit-transition-property: bottom;
+	-webkit-transform: none;
+}
+.mui-poppicker-header {
+	padding: 6px;
+	font-size: 14px;
+	color: #888;
+}
+.mui-poppicker-header .mui-btn {
+	font-size: 12px;
+	padding: 5px 10px;
+}
+.mui-poppicker-btn-cancel {
+	float: left;
+}
+.mui-poppicker-btn-ok {
+	float: right;
+}
+.mui-poppicker-clear {
+	clear: both;
+	height: 0px;
+	line-height: 0px;
+	font-size: 0px;
+	overflow: hidden;
+}
+.mui-poppicker-body {
+	position: relative;
+	width: 100%;
+	height: 200px;
+	border-top: solid 1px #ddd;
+	/*-webkit-perspective: 1200px;
+	perspective: 1200px;
+	-webkit-transform-style: preserve-3d;
+	transform-style: preserve-3d;*/
+}
+.mui-poppicker-body .mui-picker {
+	width: 100%;
+	height: 100%;
+	margin: 0px;
+	border: none;
+	float: left;
+}

+ 88 - 0
css/pagination.css

@@ -0,0 +1,88 @@
+@charset "UTF-8";
+.m-style {
+    position: relative;
+    text-align: center;
+    zoom: 1;
+}
+
+.m-style:before,
+.m-style:after {
+    content: "";
+    display: table;
+}
+
+.m-style:after {
+    clear: both;
+    overflow: hidden;
+}
+
+.m-style span {
+    float: left;
+    margin: 0 5px;
+    width: 38px;
+    height: 38px;
+    line-height: 38px;
+    color: #bdbdbd;
+    font-size: 14px;
+}
+
+.m-style .active {
+    float: left;
+    margin: 0 5px;
+    width: 38px;
+    height: 38px;
+    line-height: 38px;
+    background: #e91e63;
+    color: #fff;
+    font-size: 14px;
+    border: 1px solid #e91e63;
+}
+
+.m-style a {
+    float: left;
+    margin: 0 5px;
+    width: 38px;
+    height: 38px;
+    line-height: 38px;
+    background: #fff;
+    border: 1px solid #ebebeb;
+    color: #bdbdbd;
+    font-size: 14px;
+}
+
+.m-style a:hover {
+    color: #fff;
+    background: #e91e63;
+}
+
+.m-style .next,
+.m-style .prev {
+    font-family: "Simsun";
+    font-size: 16px;
+    font-weight: bold;
+}
+
+.now,
+.count {
+    padding: 0 5px;
+    color: #f00;
+}
+
+.eg img {
+    max-width: 800px;
+    min-height: 500px;
+}
+
+input {
+    float: left;
+    margin: 0 5px;
+    width: 38px;
+    height: 38px;
+    line-height: 38px;
+    text-align: center;
+    background: #fff;
+    border: 1px solid #ebebeb;
+    outline: none;
+    color: #bdbdbd;
+    font-size: 14px;
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 111 - 0
css/rangeslider.css


+ 42 - 0
css/reset.css

@@ -0,0 +1,42 @@
+html, body, div, span,object, iframe,input,button,select,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,strong,var,b,i,
+dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details,figure, figcaption, footer, header, hgroup, 
+menu, nav, output,section, summary,time, mark, textarea, audio, video ,hr{
+    margin: 0;
+    padding: 0;
+    border: 0;
+    font-size: 100%;
+    font: inherit;
+    vertical-align: baseline;
+    outline: none;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+    display: block;
+}
+hr,input,button,textarea{
+   border: none;
+}
+input, select{
+    vertical-align:middle;
+}
+li{
+    list-style:none;
+}
+img{
+    border:0;
+    outline: 0;
+    vertical-align:middle;
+}
+button{
+    cursor:pointer;
+}
+a{
+    color:#666;
+    text-decoration:none;
+}
+textarea{
+    resize: none;
+}
+::-ms-clear{
+    display:none;
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 12 - 0
css/swiper-4.4.6.min.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 12 - 0
css/swiper.min.css


+ 114 - 0
css/timeLine.css

@@ -0,0 +1,114 @@
+.mui-bar-nav~.mui-content {
+	padding-top: 51px;
+}
+
+#timeSelect {
+	background: #fff url(../images/calendar.png) no-repeat 10px center;
+	background-size: 20px;
+	padding-left: 30px;
+	font-size: 16px;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+	height: 34px;
+	border: 0;
+	border-radius: 6px;
+	line-height: 34px;
+	color: #535353;
+}
+
+
+/*列表*/
+
+ul {
+	padding: 0;
+	list-style: none;
+}
+
+#dataList>li {
+	border-left: 1px dashed #b8b8b8;
+	margin-left: 20px;
+	padding-bottom: 10px;
+}
+
+.equipItem {
+	margin: 0 20px 0px 18px;
+	position: relative;
+	background: #fff;
+	border-radius: 7px;
+	padding: 12px;
+}
+
+.equipItem:before {
+	position: absolute;
+	top: 20px;
+	left: -25px;
+	width: 12px;
+	height: 12px;
+	border-radius: 50%;
+	content: '';
+}
+
+.equipItem:after {
+	position: absolute;
+	top: 18px;
+	left: -7px;
+	width: 0;
+	height: 0;
+	content: '';
+	background-size: 100% 100%;
+	border: 8px solid #fff;
+	border-left-color: transparent;
+	border-top-color: transparent;
+	transform: rotate(-225deg);
+}
+
+.upl_time {
+	font-size: 16px;
+	line-height: 30px;
+	font-weight: bold;
+}
+
+.equipItem:active {
+	background-color: #e4e3e3 !important;
+}
+
+.equipItem:active.equipItem:after {
+	border: 8px solid #e4e3e3;
+	border-left-color: transparent;
+	border-top-color: transparent;
+}
+
+
+/*皮肤*/
+
+.blue:before {
+	background: #00b9fe;
+}
+
+.blue .upl_time {
+	color: #00b9fe;
+}
+
+.purple:before {
+	background: #c8c6f7;
+}
+
+.purple .upl_time {
+	color: #c8c6f7;
+}
+
+.searchBox {
+	position: fixed;
+	left: 0;
+	right: 0;
+	z-index: 222;
+	padding: 0;
+}
+
+.mescroll {
+	position: fixed;
+	top: 100px;
+	bottom: 0;
+	height: auto;
+	/*如设置bottom:50px,则需height:auto才能生效*/
+}

+ 110 - 0
equipAllot/equip_allot_info.html

@@ -0,0 +1,110 @@
+<!doctype html>
+<html>
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/common.css" />
+		<style type="text/css">
+			.nullData {
+				top: 45px;
+			}
+			.allotBtn{
+				display: none;
+			}
+			.equipTitle {
+				color: #21b2e7;
+				font-size: 14px;
+			}
+			.mui-table-view-cell p {
+				color: #333;
+				font-size: 16px;
+				margin-top: 4px;
+			}
+			.mui-content>.mui-table-view:first-child{
+				margin-top: 0;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title"></h1>
+			<a class="headRightIcon fa fa-sitemap mui-pull-right" id="allotBtn">分配</a>
+		</header>
+		<div class="mui-content">
+			<!--<input type="hidden" name="userId" id="userId" value="" />-->
+			<ul class="mui-table-view" id="equip">
+				
+			</ul>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			var userId;
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				console.log(self.userId);
+				userId = self.userId;
+				pulldownRefresh()
+			})
+			function pulldownRefresh(){
+				mui.ajax('http://120.27.222.26/app_usermanage_detail', {
+					data: {
+						userId: userId,
+					},
+					dataType: 'json', //服务器返回json格式数据
+					type: 'post', //HTTP请求类型
+					timeout: 10000, //超时时间设置为10秒;
+					success: function(data) {
+						$('#allotBtn').show();
+						$('.nullData').remove();
+						$('#title').html(data.username+'用户');	
+						var tel = data.tel || '暂未填写';
+						var usertype;
+						if(data.usertype == 0){
+							usertype = '超级管理员';
+						}else if(data.usertype == 1){
+							usertype = '管理员';
+						}else if(data.usertype == 2){
+							usertype = '用户';
+						}
+						var is_use = data.is_active?'不可用':'可用';
+						var html = '<li class="mui-table-view-cell" id="123456"><span class="equipTitle">用户名</span><p>'+data.username+'</p></li>'+
+									'<li class="mui-table-view-cell" id="11"><span class="equipTitle">用户邮箱</span><p>'+data.email+'</p></li>'+
+									'<li class="mui-table-view-cell" id="22"><span class="equipTitle">用户电话</span><p>'+tel+'</p></li>'+
+									'<li class="mui-table-view-cell" id="22"><span class="equipTitle">用户类型</span><p>'+usertype+'</p></li>'+
+									'<li class="mui-table-view-cell" id="22"><span class="equipTitle">是否可用</span><p>'+is_use+'</p></li>'+
+									'<li class="mui-table-view-cell" id="22"><span class="equipTitle">创建时间</span><p>'+data.creatTime+'</p></li>';
+						$('#equip').html(html);
+					},
+					error: function(xhr, type, errorThrown) {
+						$('#allotBtn').hide();
+						$('#equiplist').empty();
+						mui('.mui-content')[0].appendChild(netStyle('../images/error.png'));
+						mui.toast('数据请求失败');
+					}
+				});
+			}
+			mui('.mui-bar').on('tap','.fa-sitemap',function(){
+				if(userId){
+					mui.openWindow({
+						url:'equip_allot_item.html',
+						id:'equip_allot_item',
+						extras: {
+							userId: userId
+						}
+					})
+				}else{
+					mui.toast('当前设备请求失败');
+				}
+			})
+		</script>
+	</body>
+
+</html>

+ 615 - 0
equipAllot/equip_allot_item.html

@@ -0,0 +1,615 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link href="../css/reset.css" rel="stylesheet" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			/*搜索浮动*/
+			.searchBox {
+				position: fixed;
+				left: 0;
+				right: 0;
+				z-index: 222;
+				padding: 0;
+			}
+			.searchBox:before{
+				position: absolute;
+				content: '';
+				background: #21b2e7;
+				width: 100%;
+				height: 35%;
+			}
+			.searchControl{
+				width: 91%;
+    			margin: 0 auto;
+			}
+			.mui-search{
+				display: inline-block;
+    			width: 79%;
+			}
+			.searchBtn,.mui-search >input,.equipItem{
+    			box-shadow: 1px 2px 3px 1px #cccccc;
+			}
+			.searchBtn,.mui-search >input{
+				background: #fff;
+			}
+			
+			.searchBtn{
+				border-color: #fff;
+			    width: 19%;
+			}
+			.equipTitle {
+				color: #21b2e7;
+				font-size: 14px;
+			}
+			
+			.mui-table-view-cell p {
+				color: #333;
+				font-size: 16px;
+				margin-top: 4px;
+			}
+			/*方块形复选框*/
+			
+			.mui-checkbox input[type=checkbox]:before {
+				content: '\e413';
+			}
+			
+			.mui-checkbox input[type=checkbox]:checked:before {
+				content: '\e443';
+			}
+			
+			.mui-checkbox input[type=checkbox]:before,
+			.mui-radio input[type=radio]:before {
+				font-size: 18px;
+			}
+			
+			.mui-checkbox.mui-left input[type=checkbox],
+			.mui-radio.mui-left input[type=radio] {
+				left: 15px;
+			}
+			
+			.mui-checkbox.mui-left label,
+			.mui-radio.mui-left label {
+				padding-left: 40px
+			}
+			
+			.mui-checkbox {
+				display: inline-block;
+			}
+			
+			.mui-checkbox input[type=checkbox],
+			.mui-radio input[type=radio] {
+				top: 10px;
+				width: 20px;
+				height: 20px;
+			}
+			
+			.mui-navigate-right:after,
+			.mui-push-right:after {
+				content: '\e581';
+			}
+			
+			.secondary.active .mui-navigate-right:after,
+			.secondary.active .mui-push-right:after {
+				content: '\e580';
+			}
+			
+			.mui-table-view-cell>a:not(.mui-btn) {
+				padding: 0;
+				margin: 0;
+			}
+			
+			.secondary>.secondaryDetial {
+				display: none;
+				transition: height .35s ease;
+			}
+			
+			.secondary.active>.secondaryDetial {
+				display: block;
+			}
+			
+			.mui-table-view-cell {
+				padding: 0;
+			}
+			
+			.secondaryDetial {
+				padding: 5px 0 0 40px;
+				background: #eee;
+			}
+			
+			.secondaryDetial p {
+				line-height: 25px;
+				color: #333;
+			}
+			/*input*/
+			
+			.secondary input {
+				position: absolute;
+				display: inline-block;
+				border: 0;
+				outline: 0!important;
+				background-color: transparent;
+				-webkit-appearance: none;
+				top: 10px;
+				width: 20px;
+				height: 20px;
+				left: 14px;
+			}
+			
+			.secondary input:before {
+				font-size: 18px;
+				content: '\e413';
+				font-family: Muiicons;
+				font-weight: 400;
+				line-height: 1;
+				text-decoration: none;
+				color: #aaa;
+				border-radius: 0;
+				background: 0 0;
+				-webkit-font-smoothing: antialiased;
+			}
+			
+			.secondary input[type=checkbox]:checked:before {
+				content: '\e443';
+				color: #007aff;
+			}
+			
+			.secondary span {
+				line-height: 40px;
+				padding-left: 40px;
+			}
+			/*list*/
+			.mescroll{
+				position: fixed;
+				top: 87px;
+				bottom: 0;
+				height: auto; /*如设置bottom:50px,则需height:auto才能生效*/
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">分配设备</h1>
+			<a class="headRightIcon fa fa-cloud-upload mui-pull-right" id="allotBtn">提交</a>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+					    <input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll"> <!--id可以改,而"mescroll"的class不能删-->
+		   		<ul class="mui-table-view" id="dataList">
+					<!--<li class="mui-table-view-cell">
+						<div class="mui-input-row mui-checkbox  mui-left">
+							<label>全选</label>
+							<input name="checkbox1" id="checkall" type="checkbox">
+						</div>
+					</li>
+
+					<li class="mui-table-view-cell secondary">
+						<a class="mui-navigate-right" href="#">
+							<input type="checkbox" name="checkbox1" checked="checked" class="check" value="3" />
+							<span>设备imei:444444444444</span>
+						</a>
+						<div class="secondaryDetial">
+							<p>设备名称:无</p>
+							<p>设备类型:测报灯</p>
+							<p>设备添加时间:2018/6-23</p>
+							<p>设备用户:无</p>
+						</div>
+					</li>-->
+				</ul>
+		   </div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mui.min.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/common.js"></script>
+			<script type="text/javascript">
+			var chknum = 0;
+			var checklen;
+			var userId;
+			mui.init()
+			mui.plusReady(function() {
+					var self = plus.webview.currentWebview();
+					console.log(self.userId);
+					userId = self.userId;
+
+
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop:{ //配置回到顶部按钮
+							src : "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset : 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId:	"dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+				        	use: true // 是否开启懒加载,默认false
+				        }
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page){
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData,totalSize){
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData,page.num);
+					}, function(){
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+		                mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData,pageNum){
+					var html = '';
+					var dat = curPageData;
+					if(pageNum == 1) {
+						$('.nullData').remove();
+						$('#dataList').empty();
+						html = '<li class="mui-table-view-cell"><div class="mui-input-row mui-checkbox  mui-left">' +
+							'<label>全选</label><input name="checkbox1" id="checkall" type="checkbox"></div></li>';
+					}
+					for(var i = 0; i < dat.length; i++) {
+						var checked;
+						if(dat[i].checked == 1) {
+							checked = '<input type="checkbox" checked="checked" name="checkbox1"class="check" value="' + dat[i].equipid + '" />';
+						} else {
+							checked = '<input type="checkbox" name="checkbox1"class="check" value="' + dat[i].equipid + '" />';
+						}
+
+						var equiptype;
+						if(dat[i].equiptype) {
+							equiptype = '测报灯';
+						} else {
+							equiptype = '杀虫灯';
+						}
+						var equip_user;
+						if(dat[i].equip_user == 'None' || dat[i].equip_user == '') {
+							equip_user = '无'
+						} else {
+							equip_user = dat[i].equip_user;
+						}
+						html += '<li class="mui-table-view-cell secondary"><a class="mui-navigate-right" href="#">' +
+							checked + '<span>设备ID:' + dat[i].equipid + '</span>' +
+							'</a><div class="secondaryDetial"><p>设备名称:无</p><p>设备类型:' + equiptype + '</p>' +
+							'<p>设备添加时间:' + dat[i].equip_add_time + '</p><p>设备用户:' + equip_user + '</p></div></li>';
+					}
+					$('#dataList').append(html);
+					//选中回显
+					checklen = mui('.check').length;
+					//判断当前是否全选
+					chknum = 0;
+					var checkboxs = mui('.check');
+					checkboxs.each(function() {
+						var ele = this;
+						if(ele.checked == true) {
+							chknum++;
+						}
+					})
+					console.log('chknum:' + chknum)
+					if(chknum == checklen) {
+						document.getElementById('checkall').checked = true;
+					} else {
+						document.getElementById('checkall').checked = false;
+
+					}
+					//全选
+					document.getElementById('checkall').addEventListener('change', function(e) {
+						var checkboxs = mui('.check');
+						if(e.target.checked) {
+							checkboxs.each(function() {
+								var ele = this;
+								ele.checked = true
+							})
+							chknum = mui('.check').length
+						} else {
+							checkboxs.each(function() {
+								var ele = this;
+								ele.checked = false
+							})
+							chknum = 0
+						}
+						console.log(chknum)
+					})
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
+                	$.ajax({
+		                type: 'POST',
+		                url: 'http://120.27.222.26/app_equip_allot_list',
+		                timeout : 10000, //超时时间设置,单位毫秒
+		                data:{
+		                	'page': pageNum,
+							'userid':userId,
+							'f_id': mui('#searchInp')[0].value
+		                },
+		                dataType: 'json',
+		                success: function(data){
+		                	console.log(JSON.stringify(data.dat))
+		                	successCallback(data.dat,data.nums);
+		                },
+		                error: function(){
+		                	errorCallback();
+		                }
+		            });
+				}
+				
+				//搜索操作
+				$("#searchInp").on('keypress',function(e) {
+					var keycode = e.keyCode;  
+	                if(keycode=='13') {  
+	                    e.preventDefault();    
+	                    //请求搜索接口  
+	                    if(mui('#searchInp')[0].value) {
+							getListData({num:1, size:10})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+	                }  
+				})
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						getListData({num:1, size:10})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+				
+				
+
+
+				function pulldownRefresh() {
+					mui('.mui-content').pullRefresh().refresh(true);
+					startPage = 1;
+					chknum = 0;
+					mui('#dataList')[0].innerHTML = '';
+					pullupRefresh();
+					mui('.mui-content').pullRefresh().endPulldownToRefresh(false);
+				}
+
+				function pullupRefresh(isSearch) {
+										console.log(startPage)
+										console.log(userId)
+										console.log(mui('#searchInp')[0].value)
+					mui.ajax('http://120.27.222.26/app_equip_allot_list', {
+						data: {
+							'page': startPage,
+							'userid':userId,
+							'f_id': mui('#searchInp')[0].value
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							console.log(JSON.stringify(data.dat))
+							if(data.nums) {
+								var html = '';
+								var dat = data.dat;
+								totalPage = Math.ceil(data.nums / 10);
+								if(startPage == 1) {
+									$('.nullData').remove();
+									$('#dataList').empty();
+									html = '<li class="mui-table-view-cell"><div class="mui-input-row mui-checkbox  mui-left">' +
+										'<label>全选</label><input name="checkbox1" id="checkall" type="checkbox"></div></li>';
+								}
+								for(var i = 0; i < dat.length; i++) {
+									var checked;
+									if(dat[i].checked == 1) {
+										checked = '<input type="checkbox" checked="checked" name="checkbox1"class="check" value="' + dat[i].equipid + '" />';
+									} else {
+										checked = '<input type="checkbox" name="checkbox1"class="check" value="' + dat[i].equipid + '" />';
+									}
+
+									var equiptype;
+									if(dat[i].equiptype) {
+										equiptype = '测报灯';
+									} else {
+										equiptype = '杀虫灯';
+									}
+									var equip_user;
+									if(dat[i].equip_user) {
+										equip_user = dat[i].equip_user;
+									} else {
+										equip_user = '无'
+									}
+									html += '<li class="mui-table-view-cell secondary"><a class="mui-navigate-right" href="#">' +
+										checked + '<span>设备ID:' + dat[i].equipid + '</span>' +
+										'</a><div class="secondaryDetial"><p>设备名称:无</p><p>设备类型:' + equiptype + '</p>' +
+										'<p>设备添加时间:' + dat[i].equip_add_time + '</p><p>设备用户:' + equip_user + '</p></div></li>';
+								}
+								$('#dataList').append(html);
+								//选中回显
+								checklen = mui('.check').length;
+								//判断当前是否全选
+								chknum = 0;
+								var checkboxs = mui('.check');
+								checkboxs.each(function() {
+									var ele = this;
+									if(ele.checked == true) {
+										chknum++;
+									}
+								})
+								console.log('chknum:' + chknum)
+								if(chknum == checklen) {
+									document.getElementById('checkall').checked = true;
+								} else {
+									document.getElementById('checkall').checked = false;
+
+								}
+								//全选
+								document.getElementById('checkall').addEventListener('change', function(e) {
+									var checkboxs = mui('.check');
+									if(e.target.checked) {
+										checkboxs.each(function() {
+											var ele = this;
+											ele.checked = true
+										})
+										chknum = mui('.check').length
+									} else {
+										checkboxs.each(function() {
+											var ele = this;
+											ele.checked = false
+										})
+										chknum = 0
+									}
+									console.log(chknum)
+								})
+
+								if(totalPage == startPage) { //总页码等于当前页码,停止上拉下拉
+									mui('.mui-content').pullRefresh().endPullupToRefresh(true);
+								} else {
+									startPage++;
+									setTimeout(function() {
+										mui('.mui-content').pullRefresh().endPullupToRefresh(false);
+									}, 500); //重置下拉加载
+								}
+
+							} else {
+								$('.nullData').remove();
+								$('#dataList').empty();
+								if(isSearch) {
+									var nullHtml = '<div class="nullData"><img src="../images/searchNull.png" alt="" width="110" /></div>'
+								} else {
+									var nullHtml = '<div class="nullData"><img src="../images/listNull.png" alt="" width="110" /></div>'
+								}
+
+								$('.mui-content').append(nullHtml);
+								setTimeout(function() {
+									mui('.mui-content').pullRefresh().disablePullupToRefresh();
+								}, 500); //重置下拉加载
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							$('#dataList').empty();
+							mui('.mui-content')[0].appendChild(netStyle('../images/error.png'));
+							mui.toast('数据请求失败');
+						}
+					});
+
+				}
+
+				//二级选项卡
+				mui('#dataList').on('tap', '.secondary', function() {
+					var classAttr = this.getAttribute("class").split(' ');
+					if(classAttr.indexOf('active') == -1) {
+						mui('.secondary').each(function() {
+							this.classList.remove("active"); 
+						})
+						this.classList.add("active");
+					} else {
+						this.classList.remove("active"); 
+					}
+				})
+				mui('#dataList').on('tap', '.secondary .secondaryDetial', function(event) {
+					console.log(event)
+					event.stopPropagation();
+				})
+
+				//单选
+				mui('#dataList').on('tap', '.secondary input', function(event) {
+					checklen = mui('.check').length;
+					if(this.checked) {
+						this.checked = false;
+						chknum--;
+					} else {
+						this.checked = true;
+						chknum++;
+					}
+					if(chknum == checklen) {
+						document.getElementById('checkall').checked = true;
+					} else {
+						document.getElementById('checkall').checked = false;
+					}
+					event.stopPropagation();
+				})
+
+				//分配按钮
+				document.getElementById('allotBtn').addEventListener('tap', function(){
+					var topicidAll = []; //全部imei数组
+					var checkboxs = mui('.check');
+					checkboxs.each(function() {
+						var ele = this;
+						topicidAll.push(ele.getAttribute('value'))						
+					})
+					var check_box_list = allotFun();
+					
+					console.log(topicid)
+					console.log(topicidAll);
+					if(topicidAll.length){
+						mui.ajax('http://120.27.222.26/app_equip_allot_confirm', {
+							data: {
+								'userid':userId,
+								'equip_ids':JSON.stringify(topicidAll),
+								'check_box_list': JSON.stringify(check_box_list),
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting("分配中...");
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								if(data == 0){
+									mui.toast('分配成功');
+								}else{
+									mui.toast('分配失败');
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								mui.toast('请求失败');
+							}
+						})
+					}else{
+						mui.toast('请至少选择一台设备');
+					}
+				})
+				var topicid = []; //imei数组
+				function allotFun() {
+					topicid = []
+					var checkboxs = mui('.check');
+					checkboxs.each(function() {
+						var ele = this;
+						if(ele.checked == true) {
+							topicid.push(ele.getAttribute('value'))
+						}
+					})
+					return topicid;
+				}
+			})
+				
+				
+			</script>
+	</body>
+
+</html>

+ 218 - 0
equipAllot/equip_allot_list.html

@@ -0,0 +1,218 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			/*搜索浮动*/
+			.searchBox {
+				position: fixed;
+				left: 0;
+				right: 0;
+				z-index: 222;
+				padding: 0;
+			}
+			.searchBox:before{
+				position: absolute;
+				content: '';
+				background: #21b2e7;
+				width: 100%;
+				height: 35%;
+			}
+			.searchControl{
+				width: 91%;
+    			margin: 0 auto;
+			}
+			.mui-search{
+				display: inline-block;
+    			width: 79%;
+			}
+			.searchBtn,.mui-search >input,.equipItem{
+    			box-shadow: 1px 2px 3px 1px #cccccc;
+			}
+			.searchBtn,.mui-search >input{
+				background: #fff;
+			}
+			
+			.searchBtn{
+				border-color: #fff;
+			    width: 19%;
+			}
+			/*list*/
+			.mescroll{
+				position: fixed;
+				top: 87px;
+				bottom: 0;
+				height: auto; /*如设置bottom:50px,则需height:auto才能生效*/
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">设备分配列表</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+					    <input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入用户名称">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<!--<ul class="mui-table-view" id="equiplist">
+				<li class="mui-table-view-cell" id="123456">
+					<a class="mui-navigate-right">
+						<div>设备ID:845265</div>
+						<div>用户名:山东曹县</div>
+					</a>
+				</li>
+			</ul>-->
+			<div id="scrollPlace" class="mescroll"> <!--id可以改,而"mescroll"的class不能删-->
+		   		<ul id="dataList"  class="mui-table-view">
+		   			<li class="mui-table-view-cell" id="123456">
+						<a class="mui-navigate-right">
+							<div>设备ID:845265</div>
+							<div>用户名:山东曹县</div>
+						</a>
+					</li>
+					<li class="mui-table-view-cell" id="123456">
+						<a class="mui-navigate-right">
+							<div>设备ID:845265</div>
+							<div>用户名:山东曹县</div>
+						</a>
+					</li>
+		   		</ul>
+	    	</div>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/mescroll.min.js" charset="utf-8"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			mui.init()
+			//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+			var mescroll = new MeScroll("scrollPlace", {
+				up: {
+					callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+					isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+					clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+					toTop:{ //配置回到顶部按钮
+						src : "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+						offset : 700
+					},
+					empty: {
+						//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+						warpId:	"dataList", //父布局的id (1.3.5版本支持传入dom元素)
+						icon: "../images/listNull.png", //图标,默认null,支持网络图
+						tip: "暂无相关数据~" //提示
+					},
+					htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+					noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+					lazyLoad: {
+			        	use: true // 是否开启懒加载,默认false
+			        }
+				}
+			});
+			/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+			function getListData(page){
+				//联网加载数据
+				getListDataFromNet(page.num, page.size, function(curPageData,totalSize){
+					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+					//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+					//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+					mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+					//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+					setListData(curPageData);
+				}, function(){
+					//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+	                mescroll.endErr();
+					mui.toast('数据请求失败');
+				});
+			}
+			/*设置列表数据*/
+			function setListData(curPageData){
+				var html = '';
+//				var listDom=document.getElementById("dataList");
+				var dat = curPageData;
+				for(var i = 0; i < dat.length; i++) {
+					var equip_name = dat[i].equip_name || '无';
+					var equip_user = dat[i].equip_user || '未分配';
+					var equipicon = '';
+					if(dat[i].equip_type == 2){
+						equipicon = '../images/scdIcon.png';
+					}else if(dat[i].equip_type == 3){
+						equipicon = '../images/cbdIcon.png';
+					}
+					html += '<li class="mui-table-view-cell" data-id="' + dat[i].userid + '">' +
+							'<a class="mui-navigate-right"><div>用户:' + dat[i].username + '</div>' +
+							'<div>邮箱:' + dat[i].email + '</div></a></li>';
+				}
+				$('#dataList').append(html);
+			}
+			/*联网加载列表数据*/
+			function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
+                	$.ajax({
+		                type: 'POST',
+		                url: 'http://120.27.222.26/app_equip_allot',
+		                timeout : 10000, //超时时间设置,单位毫秒
+		                data:{
+		                	'page': pageNum,
+							'uname': mui('#searchInp')[0].value
+		                },
+		                dataType: 'json',
+		                success: function(data){
+		                	successCallback(data.dat,data.nums);
+		                },
+		                error: function(){
+		                	errorCallback();
+		                }
+		            });
+			}
+			
+			//进入详情页面
+			mui('#dataList').on('tap', 'li', function() {
+				var userId = this.getAttribute('data-id');
+				mui.openWindow({
+					url: 'equip_allot_info.html',
+					id: 'equip_allot_info',
+					extras: {
+						userId: userId
+					},
+				})
+			})
+			
+			//搜索操作
+			$("#searchInp").on('keypress',function(e) {
+				var keycode = e.keyCode;  
+                if(keycode=='13') {  
+                    e.preventDefault();    
+                    //请求搜索接口  
+                    if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({num:1, size:10})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+                }  
+			})
+			document.getElementById('searchBtn').addEventListener('tap', function() {
+				if(mui('#searchInp')[0].value) {
+					$('#dataList').html('');
+					getListData({num:1, size:10})
+				} else {
+					mui.toast("请输入设备ID");
+				}
+			})
+
+		</script>
+	</body>
+
+</html>

+ 206 - 0
equipList/equip_list.html

@@ -0,0 +1,206 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css"/>
+		<link rel="stylesheet" href="../css/common.css"/>
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">设备列表</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+					    <input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll"> <!--id可以改,而"mescroll"的class不能删-->
+		   		<ul id="dataList">
+		   			<!--<li>
+		   				<div class="equipItem">
+		   					<div class="equipItem_top">
+			   					<div class="equipTitle">
+			   						<img class="equipIdIcon"  src="../images/IDicon.png" width="22"/>
+			   						<span class="">84521212212122</span>
+			   						<img class="equipType" src="../images/cbdIcon.png" width="26"/>
+			   					</div>
+			   					<div class="equipItem_line"></div>
+			   				</div>
+			   				<div class="equipItem_bottom">
+		   						<div class="equipMsg">
+		   							<label>设备名称</label>
+		   							<div class="equipVal">无</div>
+		   						</div>
+		   						<div class="equipMsg">
+		   							<label>所属用户</label>
+		   							<div class="equipVal">无</div>
+		   						</div>
+		   					</div>
+		   				</div>
+		   			</li>-->
+		   		</ul>
+	    	</div>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mescroll.min.js" charset="utf-8"></script>
+		<script src="../js/mui.min.js"></script>
+		
+
+		<script type="text/javascript">
+			mui.init()
+			//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+			var mescroll = new MeScroll("scrollPlace", {
+				up: {
+					callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+					isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+					clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+					toTop:{ //配置回到顶部按钮
+						src : "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+						offset : 700
+					},
+					empty: {
+						//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+						warpId:	"dataList", //父布局的id (1.3.5版本支持传入dom元素)
+						icon: "../images/listNull.png", //图标,默认null,支持网络图
+						tip: "暂无相关数据~" //提示
+					},
+					htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+					noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+					lazyLoad: {
+			        	use: true // 是否开启懒加载,默认false
+			        }
+				}
+			});
+			/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+			function getListData(page){
+				//联网加载数据
+				getListDataFromNet(page.num, page.size, function(curPageData,totalSize){
+					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+					//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+					//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+					mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+					//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+					setListData(curPageData);
+				}, function(){
+					//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+	                mescroll.endErr();
+					mui.toast('数据请求失败');
+				});
+			}
+			/*设置列表数据*/
+			function setListData(curPageData){
+				var html = '';
+//				var listDom=document.getElementById("dataList");
+				var dat = curPageData;
+				for(var i = 0; i < dat.length; i++) {
+					var equip_name = dat[i].equip_name || '无';
+					var equip_user = dat[i].equip_user || '未分配';
+					var equipicon = '';
+					if(dat[i].equip_type == 2){
+						equipicon = '../images/scdIcon.png';
+					}else if(dat[i].equip_type == 3){
+						equipicon = '../images/cbdIcon.png';
+					}else if(dat[i].equip_type == 4){
+						equipicon = '../images/xyIcon.png';
+					}else if(dat[i].equip_type == 5){
+						equipicon = '../images/qxzIcon.png';
+					}else if(dat[i].equip_type == 6){
+						equipicon = '../images/jkIcon.png';
+					}else if(dat[i].equip_type == 7){
+						equipicon = '../images/bzyIcon.png';
+					}else if(dat[i].equip_type == 8){
+						equipicon = '../images/xyIcon.png';
+					}else if(dat[i].equip_type == 9){
+						equipicon = '../images/tccbIcon.png';
+					}else if(dat[i].equip_type == 10){
+						equipicon = '../images/cbdIcon.png';
+					}
+					html += '<li data-id="' + dat[i].equip_id + '"><div class="equipItem"><div class="equipItem_top">'+
+			   				'<div class="equipTitle"><img class="equipIdIcon" src="../images/IDicon.png" width="22"/>'+
+			   				'<span class="">'+dat[i].equip_id+'</span><img class="equipType" src="'+equipicon+'" width="26"/>'+
+			   				'</div><div class="equipItem_line"></div></div><div class="equipItem_bottom">'+
+		   					'<div class="equipMsg"><label>设备名称</label><div class="equipVal equipName">'+equip_name+'</div></div>'+
+		   					'<div class="equipMsg"><label>所属用户</label><div class="equipVal">'+equip_user+'</div>'+
+		   					'</div></div></div></li>';
+				}
+				$('#dataList').append(html);
+			}
+			/*联网加载列表数据*/
+			function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
+                	$.ajax({
+		                type: 'POST',
+		                url: 'http://120.27.222.26/app_equip_list',
+		                timeout : 10000, //超时时间设置,单位毫秒
+		                data:{
+		                	'page': pageNum,
+							'filter': mui('#searchInp')[0].value,
+		                },
+		                dataType: 'json',
+		                success: function(data){
+		                	successCallback(data.dat,data.nums);
+		                },
+		                error: function(){
+		                	errorCallback();
+		                }
+		            });
+			}
+			
+			var markingid = ''//用于记录点击的当前id 以便刷新
+			window.addEventListener('refresh', function(event){//如果详情页面更改数据  才页面刷新
+				$('#dataList li').each(function(){
+					if(markingid == $(this).data('id')){
+						$(this).find('.equipName').html(event.detail.markingEquipName);
+					}
+				})
+			})
+			//进入详情页面
+			mui('#dataList').on('tap', 'li', function() {
+				var imei = this.getAttribute('data-id');
+				markingid = imei;
+				mui.openWindow({
+					url: 'equip_list_info.html',
+					id: 'equip_list_info',
+					extras: {
+						'imei': imei
+					},
+				})
+			})
+			
+			//搜索操作
+			$("#searchInp").on('keypress',function(e) {
+				var keycode = e.keyCode;  
+                if(keycode=='13') {  
+                    e.preventDefault();    
+                    //请求搜索接口  
+                    if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({num:1, size:10})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+                }  
+			})
+			document.getElementById('searchBtn').addEventListener('tap', function() {
+				if(mui('#searchInp')[0].value) {
+					$('#dataList').html('');
+					getListData({num:1, size:10})
+				} else {
+					mui.toast("请输入设备ID");
+				}
+			})
+		</script>
+	</body>
+
+</html>

+ 249 - 0
equipList/equip_list_info.html

@@ -0,0 +1,249 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/common.css" />
+		<style type="text/css">
+			/*弹出菜单*/
+			
+			.mui-popover {
+				width: 150px;
+			}
+			
+			.mui-popover .mui-popover-arrow {
+				left: 118px;
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+			#autoAddressParent{
+				display: none;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">设备详情</h1>
+			<a id="openPopover" class="mui-icon mui-icon-more mui-pull-right"></a>
+		</header>
+		<div class="mui-content">
+			<div id="popover" class="mui-popover">
+				<ul class="mui-table-view">
+					<li class="mui-table-view-cell">
+						<a href="#" id="editName">
+							<i class="mui-icon mui-icon-compose"></i>修改名称
+						</a>
+					</li>
+					<li class="mui-table-view-cell">
+						<a href="#" id="editAddress">
+							<i class="mui-icon mui-icon-compose"></i>添加位置
+						</a>
+					</li>
+					<li class="mui-table-view-cell" id="autoAddressParent">
+						<a href="#" id="autoAddress">
+							<i class="mui-icon mui-icon-location"></i>定位
+						</a>
+					</li>
+				</ul>
+			</div>
+			<ul class="mui-table-view" id="user">
+				
+			</ul>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js" type="text/javascript" charset="utf-8"></script>
+		<script type="text/javascript">
+			mui.init({
+				beforeback:function(){
+					if(markingEquipName){
+						var list = plus.webview.currentWebview().opener();
+						//触发父页面的自定义事件(refresh),从而进行刷新
+						mui.fire(list, 'refresh',{
+							markingEquipName:markingEquipName
+						});
+					}
+					//返回true,继续页面关闭逻辑
+					return true;
+				}
+			});
+			var markingEquipName = '';
+			//接收上页传输数据
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();//获取上页发送的id
+				console.log(self.imei)
+
+				mui.ajax('http://120.27.222.26/app_equip_list_detail', {
+					data: {
+						'equip_id': self.imei,
+					},
+					dataType: 'json', //服务器返回json格式数据
+					type: 'post', //HTTP请求类型
+					timeout: 10000, //超时时间设置为10秒;
+					beforeSend: function() {
+						plus.nativeUI.showWaiting();
+					},
+					complete: function() {
+						plus.nativeUI.closeWaiting();
+					},
+					success: function(data) {
+						console.log(data.equip_type)
+						var equip_user = data.equip_user || '未分配';
+						var equip_name = data.equip_name || '无';
+						var equip_location = data.equip_location || '无';
+						if(data.equip_type == 2){
+							var equip_type = '杀虫灯';
+						}else if(data.equip_type == 3){
+							var equip_type = '虫情测报';
+						}else if(data.equip_type == 4){
+							var equip_type = '诱捕器';
+						}else if(data.equip_type == 5){
+							var equip_type = '环境监测';
+							$('#autoAddressParent').show();
+						}else if(data.equip_type == 6){
+							var equip_type = '监控';
+						}else if(data.equip_type == 7){
+							var equip_type = '孢子仪';
+						}else if(data.equip_type == 8){
+							var equip_type = '性诱设备';
+						}else if(data.equip_type == 9){
+							var equip_type = '糖醋测报';
+						}else if(data.equip_type == 10){
+							var equip_type = '测报RTU';
+						}
+						var html = '<li class="mui-table-view-cell"><span class="equipTitle">设备ID</span><p id="imei">' + data.equip_id + '</p></li>' +
+							'<li class="mui-table-view-cell"><span class="equipTitle">设备用户</span><p id="">' + equip_user + '</p></li>' +
+							'<li class="mui-table-view-cell"><span class="equipTitle">设备名称</span><p id="equipName">' + equip_name + '</p></li>' +
+							'<li class="mui-table-view-cell"><span class="equipTitle">添加时间</span><p id="">' + data.equip_add_time + '</p></li>' +
+							'<li class="mui-table-view-cell"><span class="equipTitle">设备类型</span><p id="">' + equip_type + '</p></li>' +
+							'<li class="mui-table-view-cell"><span class="equipTitle">位置</span><p id="addressTxt">' + equip_location + '</p></li>'
+						$('#user').append(html)
+					},
+					error: function(xhr, type, errorThrown) {
+						console.log(type)
+						mui.toast('数据请求失败');
+						mui('.mui-content')[0].appendChild(netStyle('../images/error.png'));
+					}
+				});
+			})
+
+			//修改操作
+			var a = 1;
+			document.getElementById('openPopover').addEventListener('tap', function() {
+//				if(a) {
+					mui('#popover').popover('toggle', document.getElementById('openPopover'));
+//				} else {
+//					mui.toast('暂无法执行此操作');
+//				}
+
+			})
+			//修改用户名
+			document.getElementById('editName').addEventListener('tap', function(e) {
+				mui('#popover').popover('toggle'); //show hide toggle
+				e.detail.gesture.preventDefault(); //修复iOS 8.x平台存在的bug,使用plus.nativeUI.prompt会造成输入法闪一下又没了
+				var btnArray = ['确定', '取消'];
+				mui.prompt('请填写设备名称:', '设备名称', '设备', btnArray, function(e) {
+					if(e.index == 0) {
+						if(e.value == '') {
+							return false;
+						}
+						mui.ajax('http://120.27.222.26/equiplist', {
+							data: {
+								'req': 'rename',
+								'ename': e.value,
+								'eid': document.getElementById("imei").innerHTML
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							success: function(data) {
+								console.log(data)
+								if(data == 0) {
+									document.getElementById('equipName').innerHTML = e.value;
+									markingEquipName = e.value;
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								console.log(type)
+							}
+						});
+
+					} else {
+						//						info.innerText = '你点了取消按钮';
+						console.log('你点了取消按钮')
+					}
+				}, 'div')
+				//prompt默认值
+				if(document.getElementById('equipName').innerHTML != '无') {
+					document.querySelector('.mui-popup-input input').value = document.getElementById('equipName').innerHTML;
+				}
+
+			})
+			
+			//添加位置
+			document.getElementById('editAddress').addEventListener('tap', function(e) {
+				mui('#popover').popover('toggle'); //show hide toggle
+				e.detail.gesture.preventDefault(); //修复iOS 8.x平台存在的bug,使用plus.nativeUI.prompt会造成输入法闪一下又没了
+				var btnArray = ['确定', '取消'];
+				mui.prompt('请填写设备地址:', '设备地址', '设备', btnArray, function(e) {
+					if(e.index == 0) {
+						var value = document.querySelector('.mui-popup-input textarea').value;
+						
+						if(value == '') {
+							return false;
+						}
+						mui.ajax('http://120.27.222.26/equiplist', {
+							data: {
+								'req': 'addAddr',
+								'address': value,
+								'eid': document.getElementById("imei").innerHTML
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							success: function(data) {
+								console.log(data)
+								if(data == 2) {
+									document.getElementById('addressTxt').innerText = value;
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								console.log(type)
+							}
+						});
+
+					} else {
+						//						info.innerText = '你点了取消按钮';
+						console.log('你点了取消按钮')
+					}
+				}, 'div')
+				$('.mui-popup-input').html('');
+				$('.mui-popup-input').append('<textarea></textarea>')
+				//prompt默认值
+				if(document.getElementById('addressTxt').innerHTML != '无') {
+					document.querySelector('.mui-popup-input textarea').value = document.getElementById('addressTxt').innerHTML;
+				}
+
+			})
+			
+			//自动定位
+			document.getElementById('autoAddress').addEventListener('tap', function(e) {
+				mui.openWindow({
+					url: 'equip_list_map.html',
+					id: 'equip_list_map',
+					extras: {
+						'imei': document.getElementById("imei").innerHTML
+					},
+				})
+			})
+		</script>
+	</body>
+
+</html>

+ 189 - 0
equipList/equip_list_map.html

@@ -0,0 +1,189 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css" />
+		<style type="text/css">
+			.mapBox {
+				position: fixed;
+				left: 0;
+				right: 0;
+				top: 0;
+				bottom: 0;
+				/*background: pink;*/
+			}
+			
+			#map {
+				height: 100%;
+				width: 100%;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">手动定位</h1>
+			<a id="addbtn" class="mui-icon mui-icon-gear mui-pull-right"></a>
+		</header>
+		<div class="mui-content">
+			<!--srfwegwerg-->
+			<!--<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+					    <input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>-->
+			<div class="mapBox">
+				<div id="map"></div>
+			</div>
+
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			mui.init();
+			mui.plusReady(function() {
+				//百度地图获取坐标
+				var map = new BMap.Map("map"); // 创建地图实例  
+				map.centerAndZoom(new BMap.Point(113.64964385, 34.75661006), 13); // 创建点坐标  
+				map.enableScrollWheelZoom(true);
+				map.addControl(new BMap.ScaleControl()); // 添加比例尺控件 
+				map.addControl(new BMap.NavigationControl()); //为地图添加鱼骨(默认)
+				map.addEventListener("tilesloaded", function() {
+					$(".BMap_cpyCtrl").hide();
+				}); //地图加载完毕后 隐藏百度图标
+				var lng = '',
+					lat = '';
+				//单击获取点击的经纬度
+				map.addEventListener("click", function(e) {
+					map.clearOverlays();
+					lng = '';
+					lat = '';
+					$('#lng').val(e.point.lng);
+					$('#lat').val(e.point.lat);
+					var point = new BMap.Point(e.point.lng, e.point.lat);
+					var marker = new BMap.Marker(point);
+					map.addOverlay(marker);
+					lng = e.point.lng;
+					lat = e.point.lat;
+					mui.confirm('添加经纬度', '添加经纬度', ['确定', '取消'], function() {
+						mui.ajax('http://120.27.222.26/qxz_location', {
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							data: {
+								e_id: self.imei,
+								lng: lng,
+								lat: lat,
+							},
+							success: function(data) {
+								console.log(data)
+								if(data == 0) {
+									mui.toast('添加成功')
+								} else {
+									mui.toast('添加失败')
+								}
+							},
+							error: function(type) {
+								console.log(type)
+							}
+						});
+					}, 'div')
+
+					// alert(e.point.lng + "," + e.point.lat);
+				});
+
+				var self = plus.webview.currentWebview(); //获取上页发送的id
+				console.log(self.imei)
+				//添加位置
+				document.getElementById('addbtn').addEventListener('tap', function(e) {
+					mui('#popover').popover('toggle'); //show hide toggle
+					e.detail.gesture.preventDefault(); //修复iOS 8.x平台存在的bug,使用plus.nativeUI.prompt会造成输入法闪一下又没了
+					var btnArray = ['确定', '取消'];
+					mui.prompt('英文逗号隔开:', '请填写设备经纬度', '请填写设备经纬度', btnArray, function(e) {
+						if(e.index == 0) {
+							var value = document.querySelector('.mui-popup-input textarea').value;
+
+							if(value == '') {
+								return false;
+							}
+							lng = value.split(',')[0];
+							lat = value.split(',')[1];
+							map.clearOverlays();
+							var points = []
+							var point = new BMap.Point(lng, lat);
+							var marker = new BMap.Marker(point);
+							map.addOverlay(marker);
+							points.push(point)
+							console.log(points)
+							map.setViewport(points);
+							mui.ajax('http://120.27.222.26/qxz_location', {
+								dataType: 'json', //服务器返回json格式数据
+								type: 'post', //HTTP请求类型
+								timeout: 10000, //超时时间设置为10秒;
+								data: {
+									e_id: self.imei,
+									lng: lng,
+									lat: lat,
+								},
+								success: function(data) {
+									console.log(data)
+									if(data == 0) {
+										mui.toast('添加成功')
+									} else {
+										mui.toast('添加失败')
+									}
+								},
+								error: function(type) {
+									console.log(type)
+								}
+							});
+
+						} else {
+							//						info.innerText = '你点了取消按钮';
+							console.log('你点了取消按钮')
+						}
+					}, 'div')
+					$('.mui-popup-input').html('');
+					$('.mui-popup-input').append('<textarea></textarea>')
+					//prompt默认值
+					if(lng != '' && lng != '') {
+						document.querySelector('.mui-popup-input textarea').value = lng + ',' + lat;
+					}
+
+				})
+			})
+			//搜索操作
+			//			$("#searchInp").on('keypress',function(e) {
+			//				var keycode = e.keyCode;  
+			//              if(keycode=='13') {  
+			//                  e.preventDefault();    
+			//                  //请求搜索接口  
+			//                  if(mui('#searchInp')[0].value) {
+			//						getListData({num:1, size:10})
+			//					} else {
+			//						mui.toast("请输入设备ID");
+			//					}
+			//              }  
+			//			})
+			//			document.getElementById('searchBtn').addEventListener('tap', function() {
+			//				if(mui('#searchInp')[0].value) {
+			//					getListData({num:1, size:10})
+			//				} else {
+			//					mui.toast("请输入设备ID");
+			//				}
+			//			})
+		</script>
+	</body>
+
+</html>

+ 552 - 0
equipManage/configuration_bzy.html

@@ -0,0 +1,552 @@
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<title>Hello MUI</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<!--标准mui.css-->
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+
+		<link rel="stylesheet" href="../css/common.css">
+		<link rel="stylesheet" href="../css/iconfont.css">
+		<link rel="stylesheet" href="../css/rangeslider.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.poppicker.css" />
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<!--App自定义的css-->
+		<style type="text/css">
+			.mui-content>.mui-table-view:first-child {
+			    margin-top: 0;
+			}
+			.mui-table-view-cell.mui-active {
+				background-color: #fff;
+			}
+			
+			.mui-input-range .mui-tooltip {
+				display: none;
+			}
+			
+			.mui-radio input[type=radio] {
+				top: -2px;
+			}
+			
+			.equipOption {
+				color: #21B2E7 !important;
+				margin-bottom: 15px;
+			}
+			
+			.mui-checkbox input[type=checkbox]:before,
+			.mui-radio input[type=radio]:before {
+				font-size: 22px;
+			}
+			/*提交按钮*/
+			
+			.equipTitle {
+				color: #21b2e7;
+				font-size: 14px;
+			}
+			
+			.mui-table-view-cell p {
+				color: #333;
+				font-size: 16px;
+				margin-top: 4px;
+			}
+			/*单选按钮*/
+			
+			.mui-radio label {
+				padding-right: 37px;
+			}
+			/*滑块*/
+			
+			.sliderDiv {
+				width: 80%;
+				display: inline-block;
+			}
+			
+			.rangeslider--horizontal {
+				height: 12px;
+			}
+			
+			.rangeslider__fill {
+				background: #7ed7ff;
+			}
+			
+			.rangeslider__handle {
+				width: 20px;
+				height: 20px;
+			}
+			
+			.rangeslider--horizontal .rangeslider__handle {
+				top: -5px;
+			}
+			
+			.rangeslider__handle:after {
+				width: 8px;
+				height: 8px;
+			}
+			
+			.equipOptionInitVal {
+				display: inline-block;
+				width: 15px;
+				text-align: right;
+			}
+			/*开始结束时间选择*/
+			
+			.timeItem {
+				border: 1px solid #e6e6e6;
+				margin-bottom: 5px;
+				line-height: 30px;
+				border-radius: 5px;
+				margin-top: 5px;
+			}
+			
+			.timeItem>button {
+				border: none;
+				background: #e6e6e6;
+				margin-right: 10px;
+			}
+			.smallSpaceBox .mui-radio{
+				width: 20%;
+				float: left;
+				margin-top: 5px;
+			}
+			.smallSpaceBox .mui-radio input[type=radio]{
+				right: 10px;
+			}
+			#timePattern >div >p{
+				height: 10px;
+			}
+		</style>
+
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">11</h1>
+			<a class="headRightIcon fa fa-cloud-upload mui-pull-right" onclick="sendData()">提交</a>
+		</header>
+		<div class="mui-content">
+			<ul class="mui-table-view">
+				<li class="mui-table-view-cell smallSpaceBox">
+					<p class="equipOption">设备开关:</p>
+					<div class="mui-radio">
+						<label>开</label>
+						<input name="equipOnOff" type="radio" value="1" id="equipOn">
+					</div>
+					<div class="mui-radio">
+						<label>关</label>
+						<input name="equipOnOff" type="radio" value="0" id="equipOff">
+					</div>
+				</li>
+				<li class="mui-table-view-cell smallSpaceBox">
+					<p class="equipOption">风机开关:</p>
+					<div class="mui-radio">
+						<label>开</label>
+						<input name="coldOnOff" type="radio" value="0" checked="checked" id="coldOn">
+					</div>
+					<div class="mui-radio">
+						<label>关</label>
+						<input name="coldOnOff" type="radio" value="1" id="coldOff">
+					</div>
+				</li>
+				<li class="mui-table-view-cell smallSpaceBox">
+					<p class="equipOption">载玻片滴液时间:</p>
+					<div class="mui-radio">
+						<label>1</label>
+						<input name="dropTime" type="radio" value="1" id="dropTime1" checked="checked">
+					</div>
+					<div class="mui-radio">
+						<label>2</label>
+						<input name="dropTime" type="radio" value="2" id="dropTime2">
+					</div>
+					<div class="mui-radio">
+						<label>3</label>
+						<input name="dropTime" type="radio" value="3" id="dropTime3">
+					</div>
+					<div class="mui-radio">
+						<label>4</label>
+						<input name="dropTime" type="radio" value="4" id="dropTime4">
+					</div>
+					<div class="mui-radio">
+						<label>5</label>
+						<input name="dropTime" type="radio" value="5" id="dropTime5">
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">载玻片培养时间:</p>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>12小时</label>
+						<input name="staytime" type="radio" value="0" checked="checked" id="staytime12">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>24小时</label>
+						<input name="staytime" type="radio" value="1" id="staytime24">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>48小时</label>
+						<input name="staytime" type="radio" value="1" id="staytime48">
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">图片分辨率:</p>
+					<div class="mui-radio" style="width: 28%;float: left;">
+						<label>高</label>
+						<input name="imgHvga" type="radio" value="0" id="highHvga" checked="checked">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;">
+						<label>中</label>
+						<input name="imgHvga" type="radio" value="1" id="middleHvga">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;">
+						<label>低</label>
+						<input name="imgHvga" type="radio" value="2" id="lowHvga">
+					</div>
+				</li>
+				
+				<li class="mui-table-view-cell">
+					<p class="equipOption">保温仓设定温度(°C)</p>
+					<span class="equipOptionInitVal">1</span>
+					<div class="sliderDiv">
+						<input type="range" min="10" max="40" step="1" data-rangeslider>
+					</div>
+					<span id="setTemp">1</span>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">数据上传时间间隔:</p>
+					<span class="equipOptionInitVal">10</span>
+					<div class="sliderDiv">
+						<input type="range" min="10" max="60" step="10" data-rangeslider>
+					</div>
+					<span id="dataUpTime">10</span>
+				</li>
+				
+				<li class="mui-table-view-cell" id="timePattern">
+					<p class="equipOption">开始结束时间:</p>
+					<div>
+						<div class="timeItem">
+							<button id='pickTimeBtn' type="button" class="mui-btn">开始时间</button><span id="begin1"></span>
+						</div>
+						<div class="timeItem">
+							<button id='pickTimeBtn2' type="button" class="mui-btn">结束时间</button><span id="end1"></span>
+						</div>
+						<p></p>
+						<div class="timeItem">
+							<button id='pickTimeBtn3' type="button" class="mui-btn">开始时间</button><span id="begin2"></span>
+						</div>
+						<div class="timeItem">
+							<button id='pickTimeBtn4' type="button" class="mui-btn">结束时间</button><span id="end2"></span>
+						</div>
+						<p></p>
+						<div class="timeItem">
+							<button id='pickTimeBtn5' type="button" class="mui-btn">开始时间</button><span id="begin3"></span>
+						</div>
+						<div class="timeItem">
+							<button id='pickTimeBtn6' type="button" class="mui-btn">结束时间</button><span id="end3"></span>
+						</div>
+					</div>
+				</li>
+			</ul>
+		</div>
+	</body>
+	<script src="../js/mui.min.js"></script>
+	<script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
+	<script src="../js/rangeslider.js"></script>
+	<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+	<script src="../js/common.js"></script>
+	<script>
+		mui.init();
+		var equipId,bzy_status;
+		mui.plusReady(function() {
+//			alert(1)
+			var self = plus.webview.currentWebview();
+			equipId = self.equipId;
+			bzy_status = self.status;
+			document.getElementById("title").innerHTML = equipId;
+			var status = eval('('+bzy_status+')');
+			if(status.on_off == 1){				
+				$('#equipOn').prop('checked',true);
+			}else{
+				$('#equipOff').prop('checked',true);
+			}
+			if(status.cold_sw == 1){				
+				$('#coldOn').prop('checked',true);
+			}else{
+				$('#coldOff').prop('checked',true);
+			}
+			if(status.drop_time == 1){				
+				$('#dropTime1').prop('checked',true);
+			}else if(status.drop_time == 2){
+				$('#dropTime2').prop('checked',true);
+			}else if(status.drop_time == 3){
+				$('#dropTime3').prop('checked',true);
+			}else if(status.drop_time == 4){
+				$('#dropTime4').prop('checked',true);
+			}else if(status.drop_time == 5){
+				$('#dropTime5').prop('checked',true);
+			}
+			if(status.cul_time == 12){				
+				$('#staytime12').prop('checked',true);
+			}else if(status.drop_time == 24){
+				$('#staytime24').prop('checked',true);
+			}else if(status.drop_time == 48){
+				$('#staytime48').prop('checked',true);
+			}
+			if(status.imgres == 0){				
+				$('#highHvga').prop('checked',true);
+			}else if(status.drop_time == 1){
+				$('#middleHvga').prop('checked',true);
+			}else if(status.drop_time == 3){
+				$('#lowHvga').prop('checked',true);
+			}
+			mui('#setTemp')[0].innerHTML = status.set_temp;
+			$('#setTemp').prev().find('input').val(status.set_temp).change();
+			mui('#dataUpTime')[0].innerHTML = status.datt;
+			$('#dataUpTime').prev().find('input').val(status.datt).change();
+//			"coll_time":["8-9","11-12","23-24"],
+			var colltime = [];
+			for(var i = 0;i<status.coll_time.length;i++){
+				var tim = status.coll_time[i].split('-');
+				colltime.push(tim[0]);
+				colltime.push(tim[1]);
+				if(i == status.coll_time.length-1){
+					$('#begin1').html(colltime[0]+':00');
+					currStartNum1 = colltime[0]
+					$('#end1').html(colltime[1]+':00');
+					currStartNum2 = colltime[1]
+					$('#begin2').html(colltime[2]+':00');
+					currStartNum3 = colltime[2]
+					$('#end2').html(colltime[3]+':00');
+					currStartNum4 = colltime[3]
+					$('#begin3').html(colltime[4]+':00');
+					currStartNum5 = colltime[4]
+					$('#end3').html(colltime[5]+':00');
+					currStartNum6 = colltime[5]
+				}
+			}
+			
+			//设备开关
+			$('input[name = "equipOnOff"]').on('tap',function(){
+				var txt;
+				if($(this).prop('checked')){
+					return;
+				}
+				if($(this).val() == 0){
+					txt = '关闭'
+				}else{
+					txt = '开启'
+				}
+				var currvalue = $(this).val();
+				mui.confirm('是否'+txt+'设备?','信息',['确定','取消'],function(){
+					$.ajax({
+						url: 'http://120.27.222.26/bzy_mqtt',
+						type: "post",
+						data: {
+							'req': 'on_off',
+		                    'id': equipId,
+		                    'on_off': currvalue,
+						},
+						dataType: "json",
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							mui.toast(txt+'成功!');
+						},
+						error: function(xhr, type, errorThrown) {
+							//联网失败的回调,隐藏下拉刷新的状态
+							plus.nativeUI.closeWaiting();
+							if(currvalue == 0){
+								$('#equipOn').prop('checked',true);
+							}else{
+								$('#equipOff').prop('checked',true);
+							}
+							
+							mui.toast(txt+'失败!');
+						}
+					});
+				})
+			})
+			//风机开关
+			$('input[name = "coldOnOff"]').on('tap',function(){
+				var txt;
+				if($(this).prop('checked')){
+					return;
+				}
+				if($(this).val() == 0){
+					txt = '关闭'
+				}else{
+					txt = '开启'
+				}
+				var currvalue = $(this).val();
+				sendData()
+			})
+		})
+		//提交配置
+		function sendData(){
+			var coldOnOff = $('input[name = "coldOnOff"]:checked').val();
+			var dropTime = $('input[name = "dropTime"]:checked').val();
+			var staytime = $('input[name = "staytime"]:checked').val();
+			var imgHvga = $('input[name = "imgHvga"]:checked').val();
+			var setTemp = $('#setTemp').html(); 
+			var dataUpTime = $('#dataUpTime').html(); 
+			var colltime = [];
+			var selectVal1 = [];
+			selectVal1.push(currStartNum1)
+			selectVal1.push(currStartNum2)
+			var time1 = selectVal1.join('-');
+			var selectVal2 = [];
+			selectVal2.push(currStartNum3)
+			selectVal2.push(currStartNum4)
+			var time2 = selectVal2.join('-');
+			var selectVal3 = [];
+			selectVal3.push(currStartNum5)
+			selectVal3.push(currStartNum6)
+			var time3 = selectVal3.join('-');
+			colltime.push(time1)
+			colltime.push(time2)
+			colltime.push(time3)
+			mui.ajax('http://120.27.222.26/bzy_mqtt',{
+				data:{
+					'req': 'set',
+					'id': equipId,
+					'wind': coldOnOff,
+					'drop': dropTime,
+					'culTime': staytime,
+					'imgres': imgHvga,
+					'stemp': setTemp,
+					'takt': dataUpTime,
+					'colltime': JSON.stringify(colltime)
+				},
+				dataType:'json',//服务器返回json格式数据
+				type:'post',//HTTP请求类型
+				timeout:10000,//超时时间设置为10秒;
+				beforeSend: function() {
+					plus.nativeUI.showWaiting('请求中...');
+				},
+				complete: function() {
+					plus.nativeUI.closeWaiting();
+				},
+				success:function(data){
+					mui.toast('配置成功!')
+				},
+				error:function(xhr,type,errorThrown){
+					mui.toast('配置失败!')
+				}
+			});
+		}
+
+		//slider初始化
+		$('input[type="range"]').rangeslider({
+			polyfill: false
+		});
+		//获取slider
+		var $document = $(document);
+		var selector = '[data-rangeslider]';
+		var $inputRange = $(selector);
+		// 获取slider值
+		$document.on('input', selector, function(e) {
+			valueOutput(e.target);
+		});
+		// 将对应值写入对应文本框
+		function valueOutput(element) {
+			var value = element.value;
+			var output = element.parentNode.nextElementSibling;
+			output.innerHTML = value;
+		}
+		
+		//自定义时间值
+		var picker;
+		var currStartNum1 = 0,currStartNum2 = 0,currStartNum3 = 0,currStartNum4 = 0,currStartNum5 = 0,currStartNum6 = 0;
+		
+		function PopPickerNum(startnum,endnum){
+			picker = new mui.PopPicker();
+			var array=[];
+			for(var i = startnum;i<endnum;i++){
+				var data = {
+					value:i,
+					text:i+':00',
+				}
+				array.push(data);
+				if(i == endnum-1){
+					picker.setData(array);
+				}
+			}
+		}
+
+		function PopPicker() {
+			picker = new mui.PopPicker();
+			picker.setData([ {
+				value: "1",
+				text: "1"
+			},])
+		}
+		//开始时间选择器
+		document.getElementById("pickTimeBtn").addEventListener('tap', function() {
+			PopPickerNum(1,25)
+			picker.show(function(getSelectedItems) {
+				document.getElementById('begin1').innerHTML = getSelectedItems[0].text;
+				currStartNum1 = getSelectedItems[0].value
+				document.getElementById('end1').innerHTML = getSelectedItems[0].text;
+				document.getElementById('begin2').innerHTML = getSelectedItems[0].text;
+				document.getElementById('end2').innerHTML = getSelectedItems[0].text;
+				document.getElementById('begin3').innerHTML = getSelectedItems[0].text;
+				document.getElementById('end3').innerHTML = getSelectedItems[0].text;
+			})
+		});
+		//结束时间选择器
+		document.getElementById("pickTimeBtn2").addEventListener('tap', function() {
+			PopPickerNum(currStartNum1,25)
+			picker.show(function(getSelectedItems) {
+				document.getElementById('end1').innerHTML = getSelectedItems[0].text;
+				currStartNum2 = getSelectedItems[0].value
+				document.getElementById('begin2').innerHTML = getSelectedItems[0].text;
+				document.getElementById('end2').innerHTML = getSelectedItems[0].text;
+				document.getElementById('begin3').innerHTML = getSelectedItems[0].text;
+				document.getElementById('end3').innerHTML = getSelectedItems[0].text;
+			})
+		});
+		document.getElementById("pickTimeBtn3").addEventListener('tap', function() {
+			PopPickerNum(currStartNum2,25)
+			picker.show(function(getSelectedItems) {
+				document.getElementById('begin2').innerHTML = getSelectedItems[0].text;
+				currStartNum3 = getSelectedItems[0].value
+				document.getElementById('end2').innerHTML = getSelectedItems[0].text;
+				document.getElementById('begin3').innerHTML = getSelectedItems[0].text;
+				document.getElementById('end3').innerHTML = getSelectedItems[0].text;
+			})
+		});
+		document.getElementById("pickTimeBtn4").addEventListener('tap', function() {
+			PopPickerNum(currStartNum3,25)
+			picker.show(function(getSelectedItems) {
+				document.getElementById('end2').innerHTML = getSelectedItems[0].text;
+				currStartNum4 = getSelectedItems[0].value
+				document.getElementById('begin3').innerHTML = getSelectedItems[0].text;
+				document.getElementById('end3').innerHTML = getSelectedItems[0].text;
+			})
+		});
+		document.getElementById("pickTimeBtn5").addEventListener('tap', function() {
+			PopPickerNum(currStartNum4,25)
+			picker.show(function(getSelectedItems) {
+				document.getElementById('begin3').innerHTML = getSelectedItems[0].text;
+				currStartNum5 = getSelectedItems[0].value
+				document.getElementById('end3').innerHTML = getSelectedItems[0].text;
+			})
+		});
+		document.getElementById("pickTimeBtn6").addEventListener('tap', function() {
+			PopPickerNum(currStartNum5,25)
+			picker.show(function(getSelectedItems) {
+				document.getElementById('end3').innerHTML = getSelectedItems[0].text;
+				currStartNum6 = getSelectedItems[0].value
+			})
+		});
+		
+	</script>
+
+</html>

+ 555 - 0
equipManage/configuration_cbd.html

@@ -0,0 +1,555 @@
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<title>Hello MUI</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<!--标准mui.css-->
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+
+		<link rel="stylesheet" href="../css/common.css">
+		<link rel="stylesheet" href="../css/iconfont.css">
+		<link rel="stylesheet" href="../css/rangeslider.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.poppicker.css" />
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<!--App自定义的css-->
+		<style type="text/css">
+			.mui-table-view-cell.mui-active {
+				background-color: #fff;
+			}
+			
+			.mui-input-range .mui-tooltip {
+				display: none;
+			}
+			
+			.mui-radio input[type=radio] {
+				top: -2px;
+			}
+			
+			.equipOption {
+				color: #21B2E7 !important;
+				margin-bottom: 15px;
+			}
+			
+			.mui-checkbox input[type=checkbox]:before,
+			.mui-radio input[type=radio]:before {
+				font-size: 22px;
+			}
+			/*提交按钮*/
+			
+			.equipTitle {
+				color: #21b2e7;
+				font-size: 14px;
+			}
+			
+			.mui-table-view-cell p {
+				color: #333;
+				font-size: 16px;
+				margin-top: 4px;
+			}
+			/*单选按钮*/
+			
+			.mui-radio label {
+				padding-right: 37px;
+			}
+			/*滑块*/
+			
+			.sliderDiv {
+				width: 80%;
+				display: inline-block;
+			}
+			
+			.rangeslider--horizontal {
+				height: 12px;
+			}
+			
+			.rangeslider__fill {
+				background: #7ed7ff;
+			}
+			
+			.rangeslider__handle {
+				width: 20px;
+				height: 20px;
+			}
+			
+			.rangeslider--horizontal .rangeslider__handle {
+				top: -5px;
+			}
+			
+			.rangeslider__handle:after {
+				width: 8px;
+				height: 8px;
+			}
+			
+			.equipOptionInitVal {
+				display: inline-block;
+				width: 15px;
+				text-align: right;
+			}
+			/*开始结束时间选择*/
+			
+			.timeItem {
+				border: 1px solid #e6e6e6;
+				margin-bottom: 5px;
+				line-height: 30px;
+				border-radius: 5px;
+				margin-top: 5px;
+			}
+			
+			.timeItem>button {
+				border: none;
+				background: #e6e6e6;
+				margin-right: 10px;
+			}
+		</style>
+
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title"></h1>
+			<a class="headRightIcon fa fa-cloud-upload mui-pull-right" onclick="sendData()">提交</a>
+		</header>
+		<div class="mui-content">
+			<ul class="mui-table-view">
+				<li class="mui-table-view-cell " id="worktypebox">
+					<p class="equipOption">工作模式:</p>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>节能</label>
+						<input name="worktype" type="radio" value="0" id="worktype0">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>常规</label>
+						<input name="worktype" type="radio" value="1" id="worktype1">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>加强</label>
+						<input name="worktype" type="radio" value="2" id="worktype2">
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">定时模式:</p>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>光控</label>
+						<input name="type" type="radio" value="0" checked="checked" id="dimming">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;margin-top: 5px;">
+						<label>时控</label>
+						<input name="type" type="radio" value="1" id="timeControl">
+					</div>
+				</li>
+				<li class="mui-table-view-cell" id="lightPattern">
+					<p class="equipOption">定时时长:</p>
+					<span class="equipOptionInitVal">1</span>
+					<div class="sliderDiv">
+						<input type="range" min="1" max="10" step="1" data-rangeslider>
+					</div>
+					<span id="timingLength">1</span>
+				</li>
+				<li class="mui-table-view-cell mui-hidden" id="timePattern">
+					<p class="equipOption">开始结束时间:</p>
+					<div>
+						<div class="timeItem">
+							<button id='pickTimeBtn' type="button" class="mui-btn">开始时间</button><span id="begin"></span>
+						</div>
+						<div class="timeItem">
+							<button id='pickTimeBtn2' type="button" class="mui-btn">结束时间</button><span id="end"></span>
+						</div>
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">落虫时间:</p>
+					<span class="equipOptionInitVal">5</span>
+					<div class="sliderDiv">
+						<input type="range" min="5" max="20" step="1" data-rangeslider>
+					</div>
+					<span id="dropTime">5</span>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">加热时间:</p>
+					<span class="equipOptionInitVal">5</span>
+					<div class="sliderDiv">
+						<input type="range" min="5" max="20" step="1" data-rangeslider>
+					</div>
+					<span id="calefactionTime">5</span>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">加热温度:</p>
+					<span class="equipOptionInitVal">75</span>
+					<div class="sliderDiv">
+						<input type="range" min="75" max="120" step="1" data-rangeslider>
+					</div>
+					<span id="calefactionTemperature">75</span>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">高温保护阈值:</p>
+					<span class="equipOptionInitVal">50</span>
+					<div class="sliderDiv">
+						<input type="range" min="50" max="70" step="1" data-rangeslider>
+					</div>
+					<span id="highLimit">50</span>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">低温保护阈值:</p>
+					<span class="equipOptionInitVal">1</span>
+					<div class="sliderDiv">
+						<input type="range" min="1" max="10" step="1" data-rangeslider>
+					</div>
+					<span id="lowLimit">1</span>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">数据上传时间间隔:</p>
+					<span class="equipOptionInitVal">10</span>
+					<div class="sliderDiv">
+						<input type="range" min="10" max="60" step="10" data-rangeslider>
+					</div>
+					<span id="dataUpTime">10</span>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">图片分辨率:</p>
+					<div class="mui-radio" style="width: 28%;float: left;">
+						<label>高</label>
+						<input name="imgHvga" type="radio" value="0" id="highHvga" checked="checked">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;">
+						<label>中</label>
+						<input name="imgHvga" type="radio" value="1" id="middleHvga">
+					</div>
+					<div class="mui-radio" style="width: 28%;float: left;">
+						<label>低</label>
+						<input name="imgHvga" type="radio" value="2" id="lowHvga">
+					</div>
+				</li>
+			</ul>
+		</div>
+	</body>
+	<script src="../js/mui.min.js"></script>
+	<script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
+	<script src="../js/rangeslider.js"></script>
+	<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+	<script src="../js/common.js"></script>
+	<script>
+		mui.init();
+		mui.plusReady(function() {
+			var self = plus.webview.currentWebview();
+			var equipId = self.equipId;
+			document.getElementById("title").innerHTML = equipId;
+			mui.ajax('http://120.27.222.26/cbd_mqtt', {
+				data: {
+					"req": "read", //读取
+					"topicid": JSON.stringify(equipId),
+					"kind": "paramconf" //读取下位机状态
+				},
+				dataType: 'json', //服务器返回json格式数据
+				type: 'post', //HTTP请求类型
+				timeout: 10000, //超时时间设置为10秒;
+				beforeSend: function() {
+					plus.nativeUI.showWaiting('请求中...');
+				},
+				complete: function() {
+					plus.nativeUI.closeWaiting();
+				},
+				success: function(data) {
+					if(data == "0") {
+						mui.toast("发送成功!");
+						mui.ajax('http://120.27.222.26/equipmanage_cbd', {
+							data: {
+								id: equipId,
+								req: "paramconf"
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								console.log(JSON.stringify(data))
+								var dat = eval("(" + data.paramconf + ")");
+								if(dat != '' && dat != null) {
+									if(dat.ts == 0) {
+										$('#dimming').attr("checked", "checked");
+										$("#timeControl").removeAttr("checked");
+										document.getElementById("lightPattern").classList.remove("mui-hidden");
+										document.getElementById("timePattern").classList.add("mui-hidden");
+									} else {
+										$('#timeControl').attr("checked", "checked");
+										$("#dimming").removeAttr("checked");
+										document.getElementById("lightPattern").classList.add("mui-hidden");
+										document.getElementById("timePattern").classList.remove("mui-hidden");
+									}
+									mui('#timingLength')[0].innerHTML = dat.tt;
+									$('#timingLength').prev().find('input').val(dat.tt).change();
+
+									mui('#begin')[0].innerHTML = dat.st;
+									$('#begin').html(dat.st);
+
+									mui('#end')[0].innerHTML = dat.et;
+									$('#end').html(dat.et);
+
+									mui('#dropTime')[0].innerHTML = dat.collt;
+									$('#dropTime').prev().find('input').val(dat.collt).change();
+
+									mui('#calefactionTime')[0].innerHTML = dat.htim;
+									$('#calefactionTime').prev().find('input').val(dat.htim).change();
+
+									mui('#calefactionTemperature')[0].innerHTML = dat.hst;
+									$('#calefactionTemperature').prev().find('input').val(dat.hst).change();
+
+									mui('#highLimit')[0].innerHTML = dat.tph;
+									$('#highLimit').prev().find('input').val(dat.tph).change();
+
+									mui('#lowLimit')[0].innerHTML = dat.tpl;
+									$('#lowLimit').prev().find('input').val(dat.tpl).change();
+
+									mui('#dataUpTime')[0].innerHTML = dat.datt;
+									$('#dataUpTime').prev().find('input').val(dat.datt).change();
+
+									mui('.mui-table-view-cell input[name="imgHvga"]:checked')[0].value = dat.imgres;
+									if(dat.imgres == 0) {
+										$('#highHvga').attr("checked", "checked");
+										$("#middleHvga").removeAttr("checked");
+										$("#lowHvga").removeAttr("checked");
+									} else if(dat.imgres == 1) {
+										$('#highHvga').removeAttr("checked");
+										$("#middleHvga").attr("checked", "checked");
+										$("#lowHvga").removeAttr("checked");
+									} else {
+										$('#highHvga').removeAttr("checked");
+										$("#middleHvga").removeAttr("checked");
+										$("#lowHvga").attr("checked", "checked");
+									}
+								} else {
+									//slider回显
+									$('input[type="range"]').val(1).change();
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+
+							}
+						});
+					}
+				},
+				error: function(xhr, type, errorThrown) {
+
+				}
+			});
+		})
+
+		//slider初始化
+		$('input[type="range"]').rangeslider({
+			polyfill: false
+		});
+		//获取slider
+		var $document = $(document);
+		var selector = '[data-rangeslider]';
+		var $inputRange = $(selector);
+		// 获取slider值
+		$document.on('input', selector, function(e) {
+			valueOutput(e.target);
+		});
+		// 将对应值写入对应文本框
+		function valueOutput(element) {
+			var value = element.value;
+			var output = element.parentNode.nextElementSibling;
+			output.innerHTML = value;
+		}
+		//自定义时间值
+		var picker;
+
+		function PopPicker() {
+			picker = new mui.PopPicker();
+			picker.setData([{
+				value: "0",
+				text: "0"
+			}, {
+				value: "1",
+				text: "1"
+			}, {
+				value: "2",
+				text: "2"
+			}, {
+				value: "3",
+				text: "3"
+			}, {
+				value: "4",
+				text: "4"
+			}, {
+				value: "5",
+				text: "5"
+			}, {
+				value: "6",
+				text: "6"
+			}, {
+				value: "7",
+				text: "7"
+			}, {
+				value: "8",
+				text: "8"
+			}, {
+				value: "9",
+				text: "9"
+			}, {
+				value: "10",
+				text: "10"
+			}, {
+				value: "11",
+				text: "11"
+			}, {
+				value: "12",
+				text: "12"
+			}, {
+				value: "13",
+				text: "13"
+			}, {
+				value: "14",
+				text: "14"
+			}, {
+				value: "15",
+				text: "15"
+			}, {
+				value: "16",
+				text: "16"
+			}, {
+				value: "17",
+				text: "17"
+			}, {
+				value: "18",
+				text: "18"
+			}, {
+				value: "19",
+				text: "19"
+			}, {
+				value: "20",
+				text: "20"
+			}, {
+				value: "21",
+				text: "21"
+			}, {
+				value: "22",
+				text: "22"
+			}, {
+				value: "23",
+				text: "23"
+			}, ])
+		}
+		//开始时间选择器
+		document.getElementById("pickTimeBtn").addEventListener('tap', function() {
+			PopPicker()
+			picker.show(function(getSelectedItems) {
+				document.getElementById('begin').innerHTML = getSelectedItems[0].value;
+			})
+		});
+		//结束时间选择器
+		document.getElementById("pickTimeBtn2").addEventListener('tap', function() {
+			PopPicker()
+			picker.show(function(getSelectedItems) {
+				document.getElementById('end').innerHTML = getSelectedItems[0].value;
+			})
+		});
+		//时控光控对应操作显示
+		mui('.mui-table-view-cell').on('change', 'input[name="type"]', function() {
+			if(this.value == 0) {
+				document.getElementById("lightPattern").classList.remove("mui-hidden");
+				document.getElementById("timePattern").classList.add("mui-hidden");
+			} else {
+				document.getElementById("lightPattern").classList.add("mui-hidden");
+				document.getElementById("timePattern").classList.remove("mui-hidden");
+			}
+		})
+		//提交数据
+		function sendData() {
+			var id = document.getElementById("title").innerHTML,
+				timing = mui('.mui-table-view-cell input[name="type"]:checked')[0].value,
+				timingLength = mui('#timingLength')[0].innerHTML,
+				begin = mui('#begin')[0].innerHTML,
+				end = mui('#end')[0].innerHTML,
+				dropTime = mui('#dropTime')[0].innerHTML,
+				calefactionTime = mui('#calefactionTime')[0].innerHTML,
+				calefactionTemperature = mui('#calefactionTemperature')[0].innerHTML,
+				highLimit = mui('#highLimit')[0].innerHTML,
+				lowLimit = mui('#lowLimit')[0].innerHTML,
+				dataUpTime = mui('#dataUpTime')[0].innerHTML,
+				imgHvga = mui('.mui-table-view-cell input[name="imgHvga"]:checked')[0].value;
+
+			mui.ajax('http://120.27.222.26/cbd_mqtt', {
+				data: {
+					req: 'set',
+					id: id,
+					timing: timing,
+					timingLength: timingLength,
+					begin: begin,
+					end: end,
+					dropTime: dropTime,
+					calefactionTime: calefactionTime,
+					calefactionTemperature: calefactionTemperature,
+					highLimit: highLimit,
+					lowLimit: lowLimit,
+					dataUpTime: dataUpTime,
+					imgHvga: imgHvga
+				},
+				dataType: 'json', //服务器返回json格式数据
+				type: 'post', //HTTP请求类型
+				timeout: 10000, //超时时间设置为10秒;
+				beforeSend: function() {
+					plus.nativeUI.showWaiting('请求中...');
+				},
+				complete: function() {
+					plus.nativeUI.closeWaiting();
+				},
+				success: function(data) {
+					mui.toast('配置成功!')
+				},
+				error: function(xhr, type, errorThrown) {
+					mui.toast('配置失败!')
+				}
+			});
+		}
+
+		//工作模式对应操作显示
+		mui('.mui-table-view-cell').on('change', 'input[name="worktype"]', function() {
+			var type = this.value;
+			mui.confirm('切换工作模式','是否确定',['取消','确定'],function(e){
+				if (e.index == 1) {
+					$.ajax({
+						type: "post",
+						url: 'http://120.27.222.26/cbd_mqtt',
+						data: {
+							"req": "ctrl",//控制
+							"topicid": document.getElementById("title").innerHTML,
+							"cmd": 'workmode',//升级 update
+							"type": type
+						},
+						dataType: "json",
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							setTimeout(function () {
+							plus.nativeUI.closeWaiting();
+							}, 3000)
+						},
+						success: function (data) {
+							setTimeout(function () {
+								if(data == 0){
+									mui.toast('下发成功')
+								}
+							}, 3000)
+							
+						}
+					})
+                }
+				
+			},'div')
+			
+		})
+	</script>
+
+</html>

+ 177 - 0
equipManage/equipManage_bzy.html

@@ -0,0 +1,177 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">孢子仪设备</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+						<input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+
+				</ul>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/mui.min.js"></script>
+
+			<script type="text/javascript">
+				mui.init()
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop: { //配置回到顶部按钮
+							src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset: 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+							use: true // 是否开启懒加载,默认false
+						}
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page) {
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData);
+					}, function() {
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+						mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData) {
+					var html = '';
+					//				var listDom=document.getElementById("dataList");
+					var dat = curPageData;
+					for(var i = 0; i < dat.length; i++) {
+						var equip_name = dat[i].equip_name || '无';
+						var equipicon = '';
+						if(dat[i].is_online == 0) {
+							equipicon = '../images/red.png';
+						} else if(dat[i].is_online == 1) {
+							equipicon = '../images/green.png';
+						}
+						html += '<li data-id="' + dat[i].equip_id + '"><div class="equipItem"><div class="equipItem_top">' +
+							'<div class="equipTitle"><img class="equipIdIcon" src="../images/IDicon.png" width="22"/>' +
+							'<span class="">' + dat[i].equip_id + '</span><img class="equipType" src="' + equipicon + '" width="26"/>' +
+							'</div><div class="equipItem_line"></div></div><div class="equipItem_bottom">' +
+							'<div class="equipMsg"><label>设备名称</label><div class="equipVal equipName">' + equip_name + '</div></div>' +
+							'<div class="equipMsg"><label>上报时间</label><div class="equipVal">' + dat[i].upl_time + '</div>' +
+							'</div></div></div></li>';
+					}
+					$('#dataList').append(html);
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+					console.log(pageNum)
+					$.ajax({
+						type: 'POST',
+						url: 'http://120.27.222.26/app_equipmanage',
+						timeout: 10000, //超时时间设置,单位毫秒
+						data: {
+							'etype': 'bzy',
+							'page': pageNum,
+							'filter': mui('#searchInp')[0].value,
+						},
+						dataType: 'json',
+						success: function(data) {
+							console.log(JSON.stringify(data.dat))
+							successCallback(data.dat, data.nums);
+						},
+						error: function() {
+							errorCallback();
+						}
+					});
+				}
+
+				var markingid = '' //用于记录点击的当前id 以便刷新
+				window.addEventListener('refresh', function(event) { //如果详情页面更改数据  才页面刷新
+					$('#dataList li').each(function() {
+						if(markingid == $(this).data('id')) {
+							$(this).find('.equipName').html(event.detail.markingEquipName);
+						}
+					})
+				})
+				//进入详情页面
+				mui('#dataList').on('tap', 'li', function() {
+					var imei = this.getAttribute('data-id');
+					markingid = imei;
+					mui.openWindow({
+						url: 'equipManage_bzy_detail.html',
+						id: 'equipManage_bzy_detail',
+						extras: {
+							'equipId': imei
+						},
+					})
+				})
+
+				//搜索操作
+				$("#searchInp").on('keypress', function(e) {
+					var keycode = e.keyCode;
+					if(keycode == '13') {
+						e.preventDefault();
+						//请求搜索接口  
+						if(mui('#searchInp')[0].value) {
+							$('#dataList').html('');
+							getListData({
+								num: 1,
+								size: 10
+							})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+					}
+				})
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({
+							num: 1,
+							size: 10
+						})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+			</script>
+	</body>
+
+</html>

+ 705 - 0
equipManage/equipManage_bzy_detail.html

@@ -0,0 +1,705 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<style type="text/css">
+			.mui-content {
+				background: #fff;
+			}
+			
+			.iconfont {
+				font-size: 35px;
+				color: #3bb9e7;
+				/*font-weight: bold;*/
+				line-height: 80px;
+				margin: 10px 10px 10px 20px;
+			}
+			
+			.equipState {
+				font-size: 18px;
+				margin-top: 14px;
+				color: #333;
+			}
+			
+			.conversion {
+				width: 110px;
+			}
+			
+			#detial>div {
+				border-bottom: 2px solid #eee;
+			}
+			
+			#detial>div:nth-of-type(odd) {
+				border-right: 2px solid #eee;
+			}
+			
+			.mui-table-view:after,
+			.mui-table-view:before {
+				height: 2px;
+				background-color: #eee;
+			}
+			
+			@media(max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+			/*查看详情*/
+			
+			.areaTitle {
+				color: #424242;
+				padding-left: 5px;
+				border-left: 5px solid #5870f6;
+				font-weight: bold;
+				font-size: 16px;
+			}
+			
+			.detialBox .fa {
+				padding-right: 5px;
+				color: #ff6e00;
+			}
+			/**/
+			
+			.controlVal {
+				position: absolute;
+				top: 50%;
+				right: 35px;
+				-webkit-transform: translateY(-50%);
+				transform: translateY(-50%);
+			}
+			
+			#controlBtn {
+				width: 80%;
+				/*height: 0px;*/
+				background: white;
+				position: fixed;
+				top: 24%;
+				left: 50%;
+				margin-left: -40%;
+			}
+			/*移除底部或顶部三角,需要在删除此代码*/
+			
+			.mui-popover .mui-popover-arrow:after {
+				width: 0px;
+			}
+			
+			.lnglat>p {
+				color: #333;
+				font-size: 14px;
+			}
+			
+			.lnglat #lng {
+				margin: 18px 0 3px 0;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">孢子仪设备</h1>
+			<a class="headRightIcon fa fa-camera mui-pull-right" id="takephoto">拍照</a>
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll">
+				<div id="dataList">
+					<ul class="mui-table-view" id="equip">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">设备信息</h1>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipId"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipName"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="upl_time"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="lat_lng"></p>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<!--<li class="mui-table-view-cell" id="equipSW">
+							<a class="mui-navigate-right">
+								<i class="fa fa-calendar" aria-hidden="true"></i> 设备开关
+								<span class="controlVal" data-time='' id="equipSWValue"></span>
+							</a>
+						</li>-->
+						<li class="mui-table-view-cell" id="glass">
+							<a class="mui-navigate-right">
+								<i class="fa fa-calendar" aria-hidden="true"></i> 载玻片更换时间
+								<span class="controlVal" data-time='' id="glassValue"></span>
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="liquid">
+							<a class="mui-navigate-right">
+								<i class="fa fa-tint" aria-hidden="true"></i> 培养液更换时间
+								<span class="controlVal" data-time='' id="liquidValue"></span>
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="configBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cog" aria-hidden="true"></i> 设备详细配置
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="refreshBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-refresh" aria-hidden="true"></i> 查询最新状态
+							</a>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<!--<li class="mui-table-view-cell" id="equipSW">
+							<a class="mui-navigate-right">
+								<i class="fa fa-calendar" aria-hidden="true"></i> 设备开关
+								<span class="controlVal" data-time='' id="equipSWValue"></span>
+							</a>
+						</li>-->
+						<li class="mui-table-view-cell" id="glass">
+							<a class="mui-navigate-right">
+								<i class="fa fa-calendar" aria-hidden="true"></i> 载玻片更换时间
+								<span class="controlVal" data-time='' id="glassValue"></span>
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="liquid">
+							<a class="mui-navigate-right">
+								<i class="fa fa-tint" aria-hidden="true"></i> 培养液更换时间
+								<span class="controlVal" data-time='' id="liquidValue"></span>
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="configBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cog" aria-hidden="true"></i> 设备详细配置
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="refreshBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-refresh" aria-hidden="true"></i> 查询最新状态
+							</a>
+						</li>
+					</ul>
+					
+					<div class="mui-row" id="detial">
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe698;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="ds">开</p>
+								<p class="equipFun">设备开关</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe60b;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="ws">待机</p>
+								<p class="equipFun">在线状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe8f3;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="bat_sta">4</p>
+								<p class="equipFun">电池状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe612;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="usb_sta">正常</p>
+								<p class="equipFun">摄像头状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe610;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="pre_temp">正常</p>
+								<p class="equipFun">保温仓温度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe624;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="v_bat">正常</p>
+								<p class="equipFun">当前电压</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xeaae;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="staytime">正常</p>
+								<p class="equipFun">已培养时间</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe711;</i>
+							</div>
+							<div class="mui-pull-left lnglat">
+								<p class="equipState conversion" id="lng">正常</p>
+								<p class="equipFun conversion" id="lat">经纬度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe60a;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="csq">29</p>
+								<p class="equipFun">信号强度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe65f;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState conversion" id="dver">1.0.1</p>
+								<p class="equipFun">版本型号</p>
+							</div>
+						</div>
+					</div>
+					
+				</div>
+			</div>
+			
+			<div id="popover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 310px;background-color: #fff;">
+				<div class="mui-popover-arrow"></div>
+				<!--<div class="popoverheader">
+					<div class="text"></div>
+					<a href="#popover"><img src="../image/close.png" alt=""></a>
+				</div>-->
+				<div id="simDetial">
+					
+				</div>
+				<div class="mui-table-view mui-table-view-chevron next">
+					<a href="#popover" class="x-next add">我知道了</a>
+				</div>
+			</div>
+		</div>
+		<div id="aaa" style="display: none;">
+			sdvsdvsdvsd
+		</div>
+		<div id="map" style="display: none;"></div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			var equipId,bzy_status,iccid;
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				$('#equipId').html('设备ID:' + equipId);
+				console.log(equipId);
+				downCallback()
+				var map = new BMap.Map("map"); //
+				geoc = new BMap.Geocoder();
+				//拍照
+				document.getElementById("takephoto").addEventListener('tap', function() {
+					$.ajax({
+							url: 'http://120.27.222.26/bzy_mqtt',
+							type: "post",
+							data: {
+								'req': 'ctrl',
+								'topicid': equipId,
+								'cmd': 'ctrl',
+								'type': 'takephoto'
+							},
+							dataType: "json",
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							timeout: 10000, //超时时间设置为10秒;
+							success: function(data) {
+								mui.toast('请求成功');
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+				})
+				//载玻片更换时间
+				document.getElementById("glass").addEventListener('tap', function() {
+					var year = new Date().getFullYear();
+					var dtpicker = new mui.DtPicker({
+						"type": "date",
+						"beginYear": 1999,
+						"endYear": year + 6,
+					});
+					dtpicker.show(function(selectItems) {
+						console.log(selectItems.text)
+						$.ajax({
+							url: 'http://120.27.222.26/bzy_mqtt',
+							type: "post",
+							data: {
+								"req": "glass", //读取
+								'id': equipId,
+								"glass": selectItems.text,
+							},
+							dataType: "json",
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							timeout: 10000, //超时时间设置为10秒;
+							success: function(data) {
+								headChangeFun(selectItems.text, $('#liquidValue').data('time'));
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+					})
+				})
+				//滴液更换时间
+				document.getElementById("liquid").addEventListener('tap', function() {
+					var year = new Date().getFullYear();
+					var dtpicker = new mui.DtPicker({
+						"type": "date",
+						"beginYear": 1999,
+						"endYear": year + 6,
+					});
+					dtpicker.show(function(selectItems) {
+						console.log(selectItems.text)
+						$.ajax({
+							url: 'http://120.27.222.26/bzy_mqtt',
+							type: "post",
+							data: {
+								"req": "liquid", //读取
+								'id': equipId,
+								"liquid": selectItems.text,
+							},
+							dataType: "json",
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							timeout: 10000, //超时时间设置为10秒;
+							success: function(data) {
+								headChangeFun($('#glassValue').data('time'),selectItems.text);
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+					})
+				})
+				
+				// 过期时间
+				function getNextDay(setTime, num) {
+				    var date = new Date(setTime);
+				    var nextDay = date.getTime() + (num * 24 * 60 * 60 * 1000);
+				    var d = new Date(nextDay);
+				    var datetime = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
+				    return datetime;
+				}
+
+				// 相差天数
+				function getSurplusDay(sDate2) {
+					var newData = new Date();
+					var dateSpan,
+						iDays;
+					sDate2 = Date.parse(sDate2);
+					newData = Date.parse(newData);
+					dateSpan = sDate2 - newData;
+					// dateSpan = Math.abs(dateSpan);
+					iDays = Math.floor(dateSpan / (24 * 3600 * 1000));
+					return iDays;
+				}
+				// 载玻片更换提示
+				function headChangeFun(setGlassTime, setLiquidTime) {
+					var glassSurplusDay = getSurplusDay(getNextDay(setGlassTime, 10));
+					var liquidSurplusDay = getSurplusDay(getNextDay(setLiquidTime, 10));
+					if(setGlassTime) {
+						$('#glassValue').data('time',setGlassTime)
+						if(glassSurplusDay < 10 && glassSurplusDay > 0) {
+							$('#glassValue').html(setGlassTime+'('+glassSurplusDay+'天过期)').css('color','#cfd51c')
+						} else if(glassSurplusDay <= 0) {
+							$('#glassValue').html(setGlassTime+'(已过期)').css('color','red')
+						} else {
+							$('#glassValue').html(setGlassTime).css('color','#333')
+						}
+					} else {
+						$('#glassValue').data('time','')
+						$('#glassValue').html('请及时设置').css('color','red')
+					}
+					if(setLiquidTime) {
+						$('#liquidValue').data('time',setLiquidTime)
+						if(liquidSurplusDay < 10 && liquidSurplusDay > 0) {
+							$('#liquidValue').html(setLiquidTime+'('+liquidSurplusDay+'天过期)').css('color','#cfd51c')
+						} else if(liquidSurplusDay <= 0) {
+							$('#liquidValue').html(setLiquidTime+'(已过期)').css('color','red')
+						} else {
+							$('#liquidValue').html(setLiquidTime).css('color','#333')
+						}
+					} else {
+						$('#liquidValue').data('time','')
+						$('#liquidValue').html('请及时设置').css('color','red')
+					}
+				}
+				//下拉刷新的回调
+				function downCallback() {
+					$.ajax({
+						url: 'http://120.27.222.26/app_equipmanage_detail',
+						data: {
+							'etype': 'bzy',
+							'equip_id': equipId,
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							bzy_status = data.bzy_status;
+							console.log(JSON.stringify(data))
+							//联网成功的回调,隐藏下拉刷新的状态;
+//							mescroll.endSuccess(); //无参. 注意结束下拉刷新是无参的
+							var equip_name = data.equip_name || '无';
+							$('#equipName').html('设备名称:' + equip_name);
+							$('#upl_time').html('上报时间:' + data.upl_time);
+							var stat = eval('(' + data.bzy_status + ')');
+							var point = new BMap.Point(stat.lng, stat.lat);
+							geoc.getLocation(point, function (rs) {
+							    var addComp = rs.addressComponents;
+								$('#lat_lng').html('位置:'  + addComp.province + ", " + addComp.city + ", " + addComp.district);
+							});
+							if(stat.on_off == 1) {
+								$('#ds').html('开');
+							} else {
+								$('#ds').html('关');
+							}
+							
+							if(data.is_online == 1) {
+								$('#ws').html('在线');
+							} else if(data.is_online == 0) {
+								$('#ws').html('离线');
+							} else {
+								$('#ws').html('--');
+							}
+							
+							if(stat.bat_sta == 0) $('#bat_sta').html('正常');
+							else $('#bat_sta').html('异常');
+							if(stat.usb_sta == 0) $('#usb_sta').html('正常');
+							else $('#usb_sta').html('异常');
+							$('#pre_temp').html(stat.pre_temp + '°C')
+							var dverNum = stat.dver.split('.')[0];
+							if((stat.v_bat > 30) && (dverNum == 1)){
+								var v_bat = 24;
+							}else{
+								var v_bat = stat.v_bat;
+							}
+							$('#v_bat').html(v_bat + 'V')
+							$('#staytime').html(stat.staytime || 0 + '(hour)')
+							$('#csq').html(stat.csq)
+							$('#dver').html(stat.dver)
+							$('#lng').html('经:' + parseFloat(stat.lng).toFixed(4))
+							$('#lat').html('纬:' + parseFloat(stat.lat).toFixed(4))
+							if (data.glass) {
+						        var glassValArr = data.glass.split('#');
+						        var glassVal = glassValArr[glassValArr.length - 1];
+						    } else {
+						        var glassVal = '';
+						    }
+						    if (data.liquid) {
+						        var liquidValArr = data.liquid.split('#');
+						        var liquidVal = liquidValArr[liquidValArr.length - 1];
+						    } else {
+						        var liquidVal = '';
+						    }
+						    iccid = stat.iccid;
+						    // 载玻片更换时间提示
+						    headChangeFun(glassVal, liquidVal);
+						},
+						error: function(xhr, type, errorThrown) {
+							//联网失败的回调,隐藏下拉刷新的状态
+							mescroll.endErr();
+							mui.toast('数据请求失败');
+						}
+					});
+				}
+				//设备详细配置
+				$('#configBtn').on('tap', function() {
+					mui.openWindow({
+						url: 'configuration_bzy.html',
+						id: 'configuration_bzy',
+						extras: {
+							equipId: equipId,
+							status:bzy_status
+						}
+					})
+				})
+				
+				//sim卡查新  
+				document.getElementById('simCodeSearch').addEventListener('tap', function() {
+					if(iccid) {
+						$.ajax({
+							url: 'http://120.27.222.26/siminfo',
+							data: {
+								simid: iccid,
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								var dat = data.data;
+								if(data.code == 0) {
+									var status;
+									if(dat.account_status == "0") {
+										status = "未知";
+									} else if(dat.account_status == "1") {
+										status = "测试期";
+									} else if(dat.account_status == "2") {
+										status = "沉默期";
+									} else if(dat.account_status == "3") {
+										status = "使用中";
+									} else if(dat.account_status == "4") {
+										status = "停机";
+									} else if(dat.account_status == "5") {
+										status = "停机保号";
+									} else if(dat.account_status == "6") {
+										status = "预销号";
+									} else if(dat.account_status == "7") {
+										status = "销号";
+									}
+									var usage;
+									if(dat.iccid) {
+										usage = dat.data_usage;
+									} else {
+										usage.innerHTML = '--';
+									}
+									var balance;
+									if(dat.iccid) {
+										balance = dat.data_balance;
+									} else {
+										balance = '--';
+									}
+									var time;
+									if(dat.iccid) {
+										var timestamp4 = new Date(dat.expiry_date * 1000); //直接用 new Date(时间戳) 格式转化获得当前时间
+										time = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
+									} else {
+										time = '--';
+									}
+									html = '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">SIM卡查询结果<br>ICCID:' + iccid + '<br><br>状态:' + status + '<br>套餐:' + dat.data_plan + 'Mb<br>已用流量:' + usage + 'Mb<br>剩余流量:' + balance + 'Mb<br>到期时间:' + time + '</div>'
+									$('#simDetial').html(html);
+									mui('.mui-popover').popover('show', document.getElementById("popover"));
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+
+					} else {
+						mui.toast('未查询到SIM卡号');
+					}
+				})
+
+				//查询
+				$('#refreshBtn').on('tap', function() {
+					var id = [];
+					id.push(equipId);
+					mui.ajax('http://120.27.222.26/bzy_mqtt', {
+						data: {
+							'req': 'read',
+							'topicid': JSON.stringify(id),
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							setTimeout(function() {
+								plus.nativeUI.closeWaiting();
+							}, 5000)
+						},
+						success: function(data) {
+							setTimeout(function() {
+								location.reload();
+							}, 5000)
+						},
+						error: function(xhr, type, errorThrown) {
+							mui.toast('请求失败!')
+						}
+					});
+				})
+
+			})
+		</script>
+	</body>
+
+</html>

+ 176 - 0
equipManage/equipManage_cbd.html

@@ -0,0 +1,176 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">测报灯设备</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+						<input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+
+				</ul>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/mui.min.js"></script>
+
+			<script type="text/javascript">
+				mui.init()
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop: { //配置回到顶部按钮
+							src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset: 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+							use: true // 是否开启懒加载,默认false
+						}
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page) {
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData);
+					}, function() {
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+						mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData) {
+					var html = '';
+					//				var listDom=document.getElementById("dataList");
+					var dat = curPageData;
+					for(var i = 0; i < dat.length; i++) {
+						var equip_name = dat[i].equip_name || '无';
+						var equipicon = '';
+						if(dat[i].is_online == 0) {
+							equipicon = '../images/red.png';
+						} else if(dat[i].is_online == 1) {
+							equipicon = '../images/green.png';
+						}
+						html += '<li data-id="' + dat[i].equip_id + '"><div class="equipItem"><div class="equipItem_top">' +
+							'<div class="equipTitle"><img class="equipIdIcon" src="../images/IDicon.png" width="22"/>' +
+							'<span class="">' + dat[i].equip_id + '</span><img class="equipType" src="' + equipicon + '" width="26"/>' +
+							'</div><div class="equipItem_line"></div></div><div class="equipItem_bottom">' +
+							'<div class="equipMsg"><label>设备名称</label><div class="equipVal equipName">' + equip_name + '</div></div>' +
+							'<div class="equipMsg"><label>上报时间</label><div class="equipVal">' + dat[i].upl_time + '</div>' +
+							'</div></div></div></li>';
+					}
+					$('#dataList').append(html);
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+					console.log(pageNum)
+					$.ajax({
+						type: 'POST',
+						url: 'http://120.27.222.26/app_equipmanage',
+						timeout: 10000, //超时时间设置,单位毫秒
+						data: {
+							'etype': 'cbd',
+							'page': pageNum,
+							'filter': mui('#searchInp')[0].value,
+						},
+						dataType: 'json',
+						success: function(data) {
+							successCallback(data.dat, data.nums);
+						},
+						error: function() {
+							errorCallback();
+						}
+					});
+				}
+
+				var markingid = '' //用于记录点击的当前id 以便刷新
+				window.addEventListener('refresh', function(event) { //如果详情页面更改数据  才页面刷新
+					$('#dataList li').each(function() {
+						if(markingid == $(this).data('id')) {
+							$(this).find('.equipName').html(event.detail.markingEquipName);
+						}
+					})
+				})
+				//进入详情页面
+				mui('#dataList').on('tap', 'li', function() {
+					var imei = this.getAttribute('data-id');
+					markingid = imei;
+					mui.openWindow({
+						url: 'equipManage_cbd_detail.html',
+						id: 'equipManage_cbd_detail',
+						extras: {
+							'equipId': imei
+						},
+					})
+				})
+
+				//搜索操作
+				$("#searchInp").on('keypress', function(e) {
+					var keycode = e.keyCode;
+					if(keycode == '13') {
+						e.preventDefault();
+						//请求搜索接口  
+						if(mui('#searchInp')[0].value) {
+							$('#dataList').html('');
+							getListData({
+								num: 1,
+								size: 10
+							})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+					}
+				})
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({
+							num: 1,
+							size: 10
+						})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+			</script>
+	</body>
+
+</html>

+ 458 - 0
equipManage/equipManage_cbd_detail.html

@@ -0,0 +1,458 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link href="../css/common.css" rel="stylesheet" />
+
+		<style type="text/css">
+			.mui-content {
+				background: #fff;
+			}
+			
+			.iconfont {
+				font-size: 35px;
+				color: #3bb9e7;
+				/*font-weight: bold;*/
+				line-height: 80px;
+				margin: 10px 10px 10px 20px;
+			}
+			.mui-col-sm-6 .mui-pull-left:nth-child(2){
+				    width: 60%;
+			}
+			
+			.equipState {
+				font-size: 18px;
+				margin-top: 14px;
+				color: #333;
+				white-space: nowrap;
+				overflow: hidden;
+				text-overflow: ellipsis;
+			}
+			
+			.conversion {
+				width: 110px;
+			}
+			
+			#detial>div {
+				border-bottom: 2px solid #eee;
+			}
+			
+			#detial>div:nth-of-type(odd) {
+				border-right: 2px solid #eee;
+			}
+			
+			.mui-table-view:after,
+			.mui-table-view:before {
+				height: 2px;
+				background-color: #eee;
+			}
+			
+			@media(max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+			/*设置*/
+			
+			#detial .mui-navigate-right {
+				line-height: 80px;
+			}
+			
+			#detial .mui-navigate-right:after,
+			#detial .mui-push-right:after {
+				font-size: 33px;
+				color: #3bb9e7;
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+			
+			.areaTitle {
+				color: #424242;
+				padding-left: 5px;
+				border-left: 5px solid #5870f6;
+				font-weight: bold;
+				font-size: 16px;
+			}
+			
+			.detialBox .fa {
+				padding-right: 5px;
+				color: #ff6e00;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">测报灯设备</h1>
+			<a class="headRightIcon mui-icon mui-icon-loop mui-pull-right" onclick="location.reload();"></a>
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll">
+				<div id="dataList">
+					<ul class="mui-table-view" id="equip">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">设备信息</h1>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipId"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipName"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="upl_time"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="lat_lng"></p>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<li class="mui-table-view-cell" id="configuration">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cog" aria-hidden="true"></i> 设备配置
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="downInquire">
+							<a class="mui-navigate-right">
+								<i class="fa fa-refresh" aria-hidden="true"></i> 查询最新状态
+							</a>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<li class="mui-table-view-cell" id="configuration">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cog" aria-hidden="true"></i> 设备配置
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="downInquire">
+							<a class="mui-navigate-right">
+								<i class="fa fa-refresh" aria-hidden="true"></i> 查询最近状态
+							</a>
+						</li>
+					</ul>
+					<div class="mui-row" id="detial">
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xeaae;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="ts"></p>
+								<p class="equipFun">定时模式</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe64c;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="lps"></p>
+								<p class="equipFun">光控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe633;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="tps"></p>
+								<p class="equipFun">温控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe635;</i>
+							</div>
+							<div class="mui-pull-left">
+								<p class="equipState" id="rps"></p>
+								<p class="equipFun">雨控状态</p>
+							</div>
+						</div>
+
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe682;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="gs"></p>
+								<p class="equipFun">通道状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe610;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="hs"></p>
+								<p class="equipFun">加热状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe6db;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="upds"></p>
+								<p class="equipFun">上仓门状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xeaaf;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="dnds"></p>
+								<p class="equipFun">下仓门状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe60a;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="csq"></p>
+								<p class="equipFun">信号强度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe65f;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState conversion" id="dver"></p>
+								<p class="equipFun">版本型号</p>
+							</div>
+						</div>
+					</div>
+					
+				</div>
+			</div>
+
+			<div id="popover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 310px;background-color: #fff;">
+				<div class="mui-popover-arrow"></div>
+				<!--<div class="popoverheader">
+					<div class="text"></div>
+					<a href="#popover"><img src="../image/close.png" alt=""></a>
+				</div>-->
+				<div id="simDetial">
+					
+				</div>
+				<div class="mui-table-view mui-table-view-chevron next">
+					<a href="#popover" class="x-next add">我知道了</a>
+				</div>
+			</div>
+		</div>
+		<div id="map" style="display: none;"></div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			var equipId;
+			var iccid;
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				$('#equipId').html('设备ID:' + equipId);
+				console.log(equipId);
+				downCallback()
+				var map = new BMap.Map("map"); //
+				geoc = new BMap.Geocoder();
+				//下拉刷新的回调
+				function downCallback() {
+					$.ajax({
+						url: 'http://120.27.222.26/app_equipmanage_detail',
+						data: {
+							'etype': 'cbd',
+							'equip_id': equipId,
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						success: function(data) {
+							var equip_name = data.equip_name || '无';
+							$('#equipName').html('设备名称:' + equip_name);
+							$('#upl_time').html('上报时间:' + data.upl_time);
+							var stat = eval('(' + data.cbd_status + ')');
+							var point = new BMap.Point(stat.lng, stat.lat);
+							geoc.getLocation(point, function (rs) {
+							    var addComp = rs.addressComponents;
+								$('#lat_lng').html('位置:'  + addComp.province + ", " + addComp.city + ", " + addComp.district);
+							});
+							var ts = stat.ts == 0 ? '光控' : '时控';
+							$('#ts').html(ts);
+							var lps = stat.lps == 0 ? '夜晚' : '白天';
+							$('#lps').html(lps);
+							var tps = stat.tps == 0 ? '正常' : '异常';
+							$('#tps').html(tps);
+							var rps = stat.rps == 0 ? '正常' : '异常';
+							$('#rps').html(rps);
+							var gs = stat.gs == 0 ? '排水' : '落虫';
+							$('#gs').html(gs);
+							var hs = stat.hs == 0 ? '正常' : '加热';
+							$('#hs').html(hs);
+							var upds = stat.upds == 0 ? '关闭' : '打开';
+							$('#upds').html(upds);
+							var dnds = stat.dnds == 0 ? '关闭' : '打开';
+							$('#dnds').html(dnds);
+							$('#csq').html(stat.csq);
+							$('#dver').html(stat.dver);
+							iccid = stat.iccid;
+						},
+						error: function(xhr, type, errorThrown) {
+							//联网失败的回调,隐藏下拉刷新的状态
+							mescroll.endErr();
+							mui.toast('数据请求失败');
+						}
+					});
+				}
+				//配置
+				document.getElementById('configuration').addEventListener('tap', function() {
+					mui.openWindow({
+						url: 'configuration_cbd.html',
+						id: 'configuration_cbd',
+						extras: {
+							equipId: equipId
+						}
+					})
+				})
+				//sim卡查新  
+				document.getElementById('simCodeSearch').addEventListener('tap', function() {
+					if(iccid) {
+						$.ajax({
+							url: 'http://120.27.222.26/siminfo',
+							data: {
+								simid: iccid,
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								var dat = data.data;
+								if(data.code == 0) {
+									var status;
+									if(dat.account_status == "0") {
+										status = "未知";
+									} else if(dat.account_status == "1") {
+										status = "测试期";
+									} else if(dat.account_status == "2") {
+										status = "沉默期";
+									} else if(dat.account_status == "3") {
+										status = "使用中";
+									} else if(dat.account_status == "4") {
+										status = "停机";
+									} else if(dat.account_status == "5") {
+										status = "停机保号";
+									} else if(dat.account_status == "6") {
+										status = "预销号";
+									} else if(dat.account_status == "7") {
+										status = "销号";
+									}
+									var usage;
+									if(dat.iccid) {
+										usage = dat.data_usage;
+									} else {
+										usage.innerHTML = '--';
+									}
+									var balance;
+									if(dat.iccid) {
+										balance = dat.data_balance;
+									} else {
+										balance = '--';
+									}
+									var time;
+									if(dat.iccid) {
+										var timestamp4 = new Date(dat.expiry_date * 1000); //直接用 new Date(时间戳) 格式转化获得当前时间
+										time = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
+									} else {
+										time = '--';
+									}
+									html = '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">SIM卡查询结果<br>ICCID:' + iccid + '<br><br>状态:' + status + '<br>套餐:' + dat.data_plan + 'Mb<br>已用流量:' + usage + 'Mb<br>剩余流量:' + balance + 'Mb<br>到期时间:' + time + '</div>'
+									$('#simDetial').html(html);
+									mui('.mui-popover').popover('show', document.getElementById("popover"));
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+
+					} else {
+						mui.toast('未查询到SIM卡号');
+					}
+				})
+				//查询
+				document.getElementById('downInquire').addEventListener('tap', function() {
+					mui.ajax('http://120.27.222.26/cbd_mqtt', {
+						data: {
+							"req": "read", //读取
+							"topicid": equipId,
+							"kind": "status" //读取下位机状态
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							setTimeout(function() {
+								plus.nativeUI.closeWaiting();
+							}, 5000)
+						},
+						success: function(data) {
+							setTimeout(function() {
+								location.reload();
+							}, 5000)
+						},
+						error: function(xhr, type, errorThrown) {
+							mui.toast('请求失败!')
+						}
+					});
+				})
+
+			})
+		</script>
+	</body>
+
+</html>

+ 216 - 0
equipManage/equipManage_jk.html

@@ -0,0 +1,216 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipjk.css"/>
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<style type="text/css">
+			.mescroll {
+				position: fixed;
+				top: 73px;
+				bottom: 0;
+				height: auto;
+				/*如设置bottom:50px,则需height:auto才能生效*/
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">监控</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+						<input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+					<!--<li class="jkitem" data-id ="">
+						<div class="jkmsg">
+							<div class="jkmsgTop">
+								<p>设备</p>
+								<h4>59126446498</h4>
+							</div>
+							<div class="jkmsgBottom blue">
+								<div class="">
+									<img src="../images/jkListBj.png"/>
+								</div>
+								监控
+							</div>
+						</div>
+						<div class="circleBj">
+							<div></div>
+							<div></div>
+							<div></div>
+							<div></div>
+							<div></div>
+							<div></div>
+						</div>
+					</li>-->
+				</ul>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/mui.min.js"></script>
+
+			<script type="text/javascript">
+				mui.init()
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop: { //配置回到顶部按钮
+							src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset: 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+							use: true // 是否开启懒加载,默认false
+						}
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page) {
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData);
+					}, function() {
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+						mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData) {
+					var html = '';
+					//				var listDom=document.getElementById("dataList");
+					var dat = curPageData;
+					for(var i = 0; i < dat.length; i++) {
+						var even;
+//						if(i % 2 == 0){
+//							even = 'blue';
+//						}else{
+//							even = 'pink';
+//						}
+						if(dat[i].is_online == 1){
+							even = 'blue';
+						}else if (dat[i].is_online == 0) {
+							even = 'pink';
+						}
+						var equip_name  = dat[i].name || dat[i].equip_id;
+						html += '<li class="jkitem" data-id ="'+dat[i].equip_id+'"><div class="jkmsg">'+
+								'<div class="jkmsgTop"><p>设备:'+equip_name+'</p><h4>'+dat[i].equip_id+'</h4></div>'+
+								'<div class="jkmsgBottom '+even+'"><div class=""><img src="../images/jkListBj.png"/>'+
+								'</div>监控</div></div><div class="circleBj"><div></div><div></div><div></div><div>'+
+								'</div><div></div><div></div></div></li>';
+					}
+					$('#dataList').append(html);
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+					$.ajax({
+						type: 'POST',
+						url: 'http://120.27.222.26/app_moni_page',
+						timeout: 10000, //超时时间设置,单位毫秒
+						data: {
+							'page': pageNum,
+							'f_id': mui('#searchInp')[0].value,
+						},
+						dataType: 'json',
+						success: function(data) {
+							successCallback(data.ids, data.nums);
+						},
+						error: function() {
+							errorCallback();
+						}
+					});
+				}
+
+				var markingid = '' //用于记录点击的当前id 以便刷新
+				window.addEventListener('refresh', function(event) { //如果详情页面更改数据  才页面刷新
+					$('#dataList li').each(function() {
+						if(markingid == $(this).data('id')) {
+							$(this).find('.equipName').html(event.detail.markingEquipName);
+						}
+					})
+				})
+				//进入详情页面
+				mui('#dataList').on('tap', 'li', function() {
+					var imei = this.getAttribute('data-id');
+					var equipName = $(this).find('.equipName').html();
+					if(equipName == '无'){
+						equipName = '设备'+imei;
+					}
+//					console.log(equipName)
+					markingid = imei;
+					mui.openWindow({
+						url: 'equipManage_jk_detail.html',
+						id: 'equipManage_jk_detail',
+						extras: {
+							'equipId': imei,
+							'equipName':equipName
+						},
+					})
+				})
+
+				//搜索操作
+				$("#searchInp").on('keypress', function(e) {
+					var keycode = e.keyCode;
+					if(keycode == '13') {
+						e.preventDefault();
+						//请求搜索接口  
+						if(mui('#searchInp')[0].value) {
+							$('#dataList').html('');
+							getListData({
+								num: 1,
+								size: 10
+							})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+					}
+				})
+				
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({
+							num: 1,
+							size: 10
+						})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+			</script>
+	</body>
+
+</html>

+ 274 - 0
equipManage/equipManage_jk_detail.html

@@ -0,0 +1,274 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipjk.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<script src="https://open.ys7.com/sdk/js/1.3/ezuikit.js"></script>
+		<style type="text/css">
+			.headRightIcon{
+				margin-top: 10px;
+			}
+			/*视频*/
+			
+			.videobox>video,
+			.videobox {
+				width: 100%;
+				height: 4.5rem;
+				background: #000;
+			}
+			/*控制*/
+			
+			.topCtrl {
+				text-align: center;
+			}
+			
+			.topCtrl>div {
+				display: inline-block;
+				width: 1.5rem;
+				height: 1.5rem;
+				background-size: 100%;
+			}
+			
+			.addBtn {
+				background: url(../images/jkadd.png);
+				margin-right: 4rem;
+			}
+			
+			.minusBtn {
+				background: url(../images/jkminus.png);
+			}
+			.topCtrl{
+				left: 0;
+			    right: 0;
+			    bottom: 6rem;
+			    height: 1.5rem;
+			    /*background: red;*/
+			}
+			.bottomCtrl {
+				position: absolute;
+				left: 0;
+				right: 0;
+				top: 5rem;
+				bottom: 0;
+				height: 6rem;
+				background-size: 5.5rem 5.5rem;
+			}
+			
+			.bottomCtrl div {
+				position: absolute;
+				width: 1.2rem;
+				height: 1.2rem;
+				left: 50%;
+			}
+			
+			.upBtn {
+				top: 1.45rem;
+				margin-left: -0.6rem;
+			}
+			
+			.dowmBtn {
+				left: 50%;
+				bottom: 1.65rem;
+				margin-left: -0.6rem;
+			}
+			
+			.leftBtn {
+				top: 2.8rem;
+				margin-left: -2rem;
+			}
+			
+			.rightBtn {
+				top: 2.8rem;
+				margin-left: 0.8rem;
+			}
+			
+			.lookImg {
+				position: absolute;
+    			left: 0;
+    			top: 11rem;
+    			width: 100%;
+			}
+			.lookImg_img {
+				margin-left: 1.3rem;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="equip_name"></h1>
+			<!--<a class="headRightIcon fa fa-file-image-o mui-pull-right" id="lookPhotoBtn"></a>-->
+		</header>
+		<div class="mui-content">
+			<div class="videobox">
+				<!--<video id="myPlayer" poster="" controls playsInline webkit-playsinline autoplay>
+					<source src="rtmp://rtmp01open.ys7.com/openlive/fce902662a5a4acc86bc4ae771b45c92.hd" type="" />
+					<source src="http://hls01open.ys7.com/openlive/fce902662a5a4acc86bc4ae771b45c92.hd.m3u8" type="application/x-mpegURL" />
+				</video>-->
+			</div>
+			<div class="controlPanel">
+				<div class="topCtrl">
+					<div class="addBtn"></div>
+					<div class="minusBtn"></div>
+					<!--<div></div>-->
+				</div>
+				<div class="bottomCtrl">
+					<div class="upBtn"></div>
+					<div class="dowmBtn"></div>
+					<div class="leftBtn"></div>
+					<div class="rightBtn"></div>
+				</div>
+				<div class="lookImg" id="lookPhotoBtn">
+					<img src="../images/jk_image.png" alt="" class="lookImg_img" />
+				</div>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mui.min.js"></script>
+			<script src="https://open.ys7.com/sdk/js/1.3/ezuikit.js"></script>
+
+			<script type="text/javascript">
+				mui.init({
+				  gestureConfig:{
+				   tap: true, //默认为true
+				   doubletap: true, //默认为false
+				   longtap: true, //默认为false
+				   swipe: true, //默认为true
+				   drag: true, //默认为true
+				   hold:true,//默认为false,不监听
+				   release:true//默认为false,不监听
+				  }
+				});
+				var equipId;
+				mui.plusReady(function() {
+					var self = plus.webview.currentWebview();
+					equipId = self.equipId;
+					$('#equip_name').html('设备:'+equipId);
+					mui.ajax('http://120.27.222.26/app_moni', {
+						data: {
+							id: equipId
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 100000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						success: function(data) {
+							console.log(JSON.stringify(data))
+							if(data[0].code == 200) {
+								StartPlay(data[0].data[0]);
+							} else {
+								mui.toast('请求失败');
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							mui.toast('请求失败');
+						}
+					});
+
+					
+				})
+				
+				$('.addBtn').on('longtap',function(){
+					configCamera('move',8)
+				})
+				$('.addBtn').on('release',function(){
+					configCamera('stop')
+				})
+				$('.minusBtn').on('hold',function(){
+					configCamera('move',9)						
+				})
+				$('.minusBtn').on('release',function(){
+					configCamera('stop')
+				})
+				$('.upBtn').on('hold',function(){
+					configCamera('move',0)
+				})
+				$('.upBtn').on('release',function(){
+					configCamera('stop')
+				})
+				$('.dowmBtn').on('hold',function(){
+					configCamera('move',1)
+				})
+				$('.dowmBtn').on('release',function(){
+					configCamera('stop')
+				})
+				$('.leftBtn').on('hold',function(){
+					configCamera('move',2)
+				})
+				$('.leftBtn').on('release',function(){
+					configCamera('stop')
+				})
+				$('.rightBtn').on('hold',function(){
+					configCamera('move',3)
+				})
+				$('.rightBtn').on('release',function(){
+					configCamera('stop')
+				})
+				function configCamera(ctrl, movenum) {
+						console.log(111111)
+						$.ajax({
+//							url: 'http://120.27.222.26/equipmanage_jk',
+							url: 'http://120.27.222.26/jk_view',
+							type: 'post',
+							dataType: 'json',
+							data: {
+								id: equipId,
+								ctrl: ctrl,
+								movenum: movenum
+							},
+							beforeSend: function() {
+								if(ctrl == 'takephoto') {
+									loadFlage = layer.load();
+								}
+							},
+							success: function(data) {
+//								console.log(data)
+							},
+							error: function(xhr, type, errorThrown) {
+								mui.toast('请求失败');
+							}
+						})
+					}
+				
+				//预览函数
+				function StartPlay(dat) {
+					var jkmsg = dat
+					var playHtml = "<video id='myPlayer' class='videoNum' poster='' controls playsinline webkit-playsinline autoplay>";
+					playHtml += "<source src='" + jkmsg.hlsHd + "' type='' />";
+					playHtml += "</video>";
+
+					var script = document.createElement("script");
+					script.type = "text/javascript";
+					script.appendChild(document.createTextNode(" new EZUIPlayer('myPlayer');"));
+
+					$(".videobox").html(playHtml);
+					$(".videobox").append(script);
+				}
+				//进入定时拍照页面
+				document.getElementById('lookPhotoBtn').addEventListener('tap', function() {
+					mui.openWindow({
+						url: 'lookImage_jk.html',
+						id: 'lookImage_jk',
+						extras: {
+							'equipId': equipId,
+//							'equipName':equipName
+						},
+					})
+				})
+			</script>
+	</body>
+
+</html>

+ 175 - 0
equipManage/equipManage_qxz.html

@@ -0,0 +1,175 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">环境监测</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+						<input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+
+				</ul>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/mui.min.js"></script>
+
+			<script type="text/javascript">
+				mui.init()
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop: { //配置回到顶部按钮
+							src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset: 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+							use: true // 是否开启懒加载,默认false
+						}
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page) {
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData);
+					}, function() {
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+						mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData) {
+					var html = '';
+					//				var listDom=document.getElementById("dataList");
+					var dat = curPageData;
+					for(var i = 0; i < dat.length; i++) {
+						var equip_name = dat[i].equip_name || '无';
+						html += '<li data-id="' + dat[i].equip_id + '"><div class="equipItem"><div class="equipItem_top">' +
+							'<div class="equipTitle"><img class="equipIdIcon" src="../images/IDicon.png" width="22"/>' +
+							'<span class="">' + dat[i].equip_id + '</span>' +
+							'</div><div class="equipItem_line"></div></div><div class="equipItem_bottom">' +
+							'<div class="equipMsg"><label>设备名称</label><div class="equipVal equipName">' + equip_name + '</div></div>' +
+							'<div class="equipMsg"><label>上报时间</label><div class="equipVal">' + dat[i].upl_time + '</div>' +
+							'</div></div></div></li>';
+					}
+					$('#dataList').append(html);
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+					$.ajax({
+						type: 'POST',
+						url: 'http://120.27.222.26/app_equipmanage',
+						timeout: 10000, //超时时间设置,单位毫秒
+						data: {
+							'etype': 'qxz',
+							'page': pageNum,
+							'filter': mui('#searchInp')[0].value,
+						},
+						dataType: 'json',
+						success: function(data) {
+							successCallback(data.dat, data.nums);
+						},
+						error: function() {
+							errorCallback();
+						}
+					});
+				}
+
+				var markingid = '' //用于记录点击的当前id 以便刷新
+				window.addEventListener('refresh', function(event) { //如果详情页面更改数据  才页面刷新
+					$('#dataList li').each(function() {
+						if(markingid == $(this).data('id')) {
+							$(this).find('.equipName').html(event.detail.markingEquipName);
+						}
+					})
+				})
+				//进入详情页面
+				mui('#dataList').on('tap', 'li', function() {
+					var imei = this.getAttribute('data-id');
+					var equipName = $(this).find('.equipName').html();
+					if(equipName == '无'){
+						equipName = '设备'+imei;
+					}
+					console.log(equipName)
+					markingid = imei;
+					mui.openWindow({
+						url: 'equipManage_qxz_detail.html',
+						id: 'equipManage_qxz_detail',
+						extras: {
+							'equipId': imei,
+							'equipName':equipName
+						},
+					})
+				})
+
+				//搜索操作
+				$("#searchInp").on('keypress', function(e) {
+					var keycode = e.keyCode;
+					if(keycode == '13') {
+						e.preventDefault();
+						//请求搜索接口  
+						if(mui('#searchInp')[0].value) {
+							$('#dataList').html('');
+							getListData({
+								num: 1,
+								size: 10
+							})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+					}
+				})
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({
+							num: 1,
+							size: 10
+						})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+			</script>
+	</body>
+
+</html>

+ 278 - 0
equipManage/equipManage_qxz_data24.html

@@ -0,0 +1,278 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			/*body,.mui-content {
+				background: #fff;
+			}*/
+			
+			.qxMsg {
+				margin: 10px 20px;
+				/*background: pink;*/
+			}
+			.qxMsg >li{
+				margin-bottom: .2rem;
+			}
+			
+			.qxitem>div {
+				display: inline-block;
+			}
+			.aisleNum{
+				width: .4rem;
+				margin-right: .5rem;
+			}
+			
+			.cutline {
+				display: inline-block;
+				width: 10px;
+				height: 10px;
+				border-radius: 50%;
+				background: #00aaea;
+				position: relative;
+				margin: 0 3% 0 1%;
+			}
+			
+			.cutline:after {
+				position: absolute;
+				content: '';
+				width: 2px;
+				height: 43px;
+				background: #00aaea;
+				left: 44%;
+				top: 10px;
+			}
+			
+			.qxdetail {
+				vertical-align: top;
+				width: 80%;
+				line-height: 34px;
+			}
+			
+			.aisleName {
+				background: #fff;
+				border-radius: 3px;
+				position: relative;
+			}
+			
+			.mui-navigate-right {
+				padding-left: 10px;
+			}
+			
+			.valueNum {
+				display: none;
+			}
+			
+			.valueNum>div {
+				margin-top: 15px;
+				background: #c5c5c5;
+				border-radius: 3px;
+				padding-left: 10px;
+				color: #fff;
+			}
+			
+			.inputRow {
+				line-height: 14px;
+				font-size: 12px;
+				padding: 3px 2px 3px 10px;
+				position: relative;
+			}
+			
+			.uptime {
+				position: absolute;
+				right: 3px;
+				top: 30%;
+			}
+			
+			.mui-navigate-right:after {
+				content: '\e581';
+			}
+			
+			.mui-navigate-top:after {
+				content: '\e580';
+			}
+			/**/
+			
+			
+			.aisleName:before {
+				position: absolute;
+				content: '';
+				width: 2px;
+				height: 38px;
+				background: #00aaea;
+				left: -7.5%;
+				top: -18px;
+			}
+			.aisleNamefirat:before {
+			    position: absolute;
+			    content: '';
+			    width: 0;
+			    height: 0;
+			    background: #00aaea;
+			    left: -7.5%;
+			    top: 0;
+			}
+			
+			.aisleName:after {
+				width: 10px;
+				height: 10px;
+				border-radius: 50%;
+				background: #c5c5c5;
+				position: absolute;
+				content: '';
+				left: -9%;
+				top: 16px;
+				background: #00aaea;
+			}
+			
+			.inputRow:before {
+				position: absolute;
+				content: '';
+				width: 2px;
+				height: 84px;
+				background: #c5c5c5;
+				left: -7.5%;
+				top: -23px;
+				z-index: 999;
+			}
+			
+			.inputRow:after {
+				width: 10px;
+				height: 10px;
+				border-radius: 50%;
+				background: #c5c5c5;
+				position: absolute;
+				content: '';
+				left: -9%;
+				top: 16px;
+				/* background: #00aaea; */
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title"></h1>
+		</header>
+		<div class="mui-content">
+			<ul class="qxMsg">
+				<!--<li class="qxitem">
+					<div class="aisleNum">e1</div>
+					<div class="qxdetail">
+						<div class="aisleName">
+							<div class="mui-navigate-right">风速(m/s)</div>
+						</div>
+						<div class="valueNum">
+							<div class="inputRow">
+								<div>最大值</div>
+								<div>23</div>
+								<div class="uptime">2019-11-12 12:56:23</div>
+							</div>
+							<div class="inputRow">
+								<div>最小值</div>
+								<div>0</div>
+								<div class="uptime">2019-11-12 12:57:23</div>
+							</div>
+						</div>
+					</div>
+				</li>
+				<li class="qxitem">
+					<div class="aisleNum">e21</div>
+					<div class="qxdetail">
+						<div class="aisleName">
+							<div class="mui-navigate-right">风速(m/s)</div>
+						</div>
+						<div class="valueNum">
+							<div class="inputRow">
+								<div>最大值</div>
+								<div>23</div>
+								<div class="uptime">2019-11-12 12:56:23</div>
+							</div>
+							<div class="inputRow">
+								<div>最小值</div>
+								<div>0</div>
+								<div class="uptime">2019-11-12 12:57:23</div>
+							</div>
+						</div>
+					</div>
+				</li>-->
+			</ul>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			var equipId;
+			mui.init();
+			var allData = [];
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				$('#title').html('设备ID:' + equipId);
+				$.ajax({
+					type: 'post',
+					url: 'http://120.27.222.26/qxz_day_data',
+					timeout: 10000, //超时时间设置,单位毫秒
+					data: {
+						'e_id': equipId,
+					},
+					beforeSend: function() {
+						plus.nativeUI.showWaiting("加载中...");
+					},
+					complete: function() {
+						plus.nativeUI.closeWaiting();
+					},
+					dataType: 'json',
+					success: function(data) {
+						var dat = data.data;
+						var conf = data.conf;
+						var html = '';
+						
+						if(!dat.length){
+							html = '<div style="text-align:center">暂无数据</div>'
+							$('.qxMsg').html(html);
+						}else{
+							for(var i = 0;i<dat.length;i++){
+								html += '<li class="qxitem"><div class="aisleNum">'+dat[i].ekey+'</div>'+
+										'<div class="qxdetail"><div class="aisleName"><div class="mui-navigate-right">'+conf[dat[i].ekey].split('#')[0]+'('+dat[i].enum[2]+')</div>'+
+										'</div><div class="valueNum"><div class="inputRow"><div>最大值</div><div>'+dat[i].max+'</div>'+
+										'<div class="uptime">'+dat[i].maxtime+'</div></div><div class="inputRow">'+
+										'<div>最小值</div><div>'+dat[i].min+'</div><div class="uptime">'+dat[i].mintime+'</div>'+
+										'</div></div></div></li>';
+								if(i == dat.length-1){
+									$('.qxMsg').html(html);
+								}		
+							}
+						}
+						
+					},
+					error: function() {
+						mui.toast('请求失败')
+					}
+				});
+			})
+			$('body').on('tap', '.aisleName', function() {
+				var _this = this;
+				$(_this).next().slideToggle(function() {
+					if($(this).is(":visible")) {
+						$(_this).children().addClass('mui-navigate-top')
+					} else {
+						$(_this).children().removeClass('mui-navigate-top')
+					}
+				});
+			})
+		</script>
+	</body>
+
+</html>

+ 258 - 0
equipManage/equipManage_qxz_data24Old.html

@@ -0,0 +1,258 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			/*body,.mui-content {
+				background: #fff;
+			}*/
+			
+			.qxMsg {
+				margin: 10px 20px;
+				/*background: pink;*/
+			}
+			.qxMsg >li{
+				margin-bottom: .2rem;
+			}
+			
+			.qxitem>div {
+				display: inline-block;
+			}
+			.aisleNum{
+				width: .4rem;
+				margin-right: .5rem;
+			}
+			
+			.cutline {
+				display: inline-block;
+				width: 10px;
+				height: 10px;
+				border-radius: 50%;
+				background: #00aaea;
+				position: relative;
+				margin: 0 3% 0 1%;
+			}
+			
+			.cutline:after {
+				position: absolute;
+				content: '';
+				width: 2px;
+				height: 43px;
+				background: #00aaea;
+				left: 44%;
+				top: 10px;
+			}
+			
+			.qxdetail {
+				vertical-align: top;
+				width: 80%;
+				line-height: 34px;
+			}
+			
+			.aisleName {
+				background: #fff;
+				border-radius: 3px;
+				position: relative;
+			}
+			
+			.mui-navigate-right {
+				padding-left: 10px;
+			}
+			
+			.valueNum {
+				display: none;
+			}
+			
+			.valueNum>div {
+				margin-top: 15px;
+				background: #c5c5c5;
+				border-radius: 3px;
+				padding-left: 10px;
+				color: #fff;
+			}
+			
+			.inputRow {
+				line-height: 14px;
+				font-size: 12px;
+				padding: 3px 2px 3px 10px;
+				position: relative;
+			}
+			
+			.uptime {
+				position: absolute;
+				right: 3px;
+				top: 30%;
+			}
+			
+			.mui-navigate-right:after {
+				content: '\e581';
+			}
+			
+			.mui-navigate-top:after {
+				content: '\e580';
+			}
+			/**/
+			
+			
+			.aisleName:before {
+				position: absolute;
+				content: '';
+				width: 2px;
+				height: 38px;
+				background: #00aaea;
+				left: -7.5%;
+				top: -18px;
+			}
+			.aisleNamefirat:before {
+			    position: absolute;
+			    content: '';
+			    width: 0;
+			    height: 0;
+			    background: #00aaea;
+			    left: -7.5%;
+			    top: 0;
+			}
+			
+			.aisleName:after {
+				width: 10px;
+				height: 10px;
+				border-radius: 50%;
+				background: #c5c5c5;
+				position: absolute;
+				content: '';
+				left: -9%;
+				top: 16px;
+				background: #00aaea;
+			}
+			
+			.inputRow:before {
+				position: absolute;
+				content: '';
+				width: 2px;
+				height: 84px;
+				background: #c5c5c5;
+				left: -7.5%;
+				top: -23px;
+				z-index: 999;
+			}
+			
+			.inputRow:after {
+				width: 10px;
+				height: 10px;
+				border-radius: 50%;
+				background: #c5c5c5;
+				position: absolute;
+				content: '';
+				left: -9%;
+				top: 16px;
+				/* background: #00aaea; */
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">环境监测</h1>
+		</header>
+		<div class="mui-content">
+			<ul class="qxMsg">
+				<li class="qxitem">
+					<div class="aisleNum">e1</div>
+					<div class="qxdetail">
+						<div class="aisleName">
+							<div class="mui-navigate-right">风速(m/s)</div>
+						</div>
+						<div class="valueNum">
+							<div class="inputRow">
+								<div>最大值</div>
+								<div>23</div>
+								<div class="uptime">2019-11-12 12:56:23</div>
+							</div>
+							<div class="inputRow">
+								<div>最小值</div>
+								<div>0</div>
+								<div class="uptime">2019-11-12 12:57:23</div>
+							</div>
+						</div>
+					</div>
+				</li>
+				<li class="qxitem">
+					<div class="aisleNum">e21</div>
+					<div class="qxdetail">
+						<div class="aisleName">
+							<div class="mui-navigate-right">风速(m/s)</div>
+						</div>
+						<div class="valueNum">
+							<div class="inputRow">
+								<div>最大值</div>
+								<div>23</div>
+								<div class="uptime">2019-11-12 12:56:23</div>
+							</div>
+							<div class="inputRow">
+								<div>最小值</div>
+								<div>0</div>
+								<div class="uptime">2019-11-12 12:57:23</div>
+							</div>
+						</div>
+					</div>
+				</li>
+			</ul>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			var equipId;
+			mui.init();
+			var allData = [];
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				equipName = self.equipName
+				data = self.data
+				$('#title').html('设备ID:' + equipId);
+				$('#equipName').html('项目名称:' + equipName);
+				console.log(JSON.stringify(data));
+				var html = '';
+				for(var i = 0;i<data.length;i++){
+					var min_time = data[i].min_time;
+					var minlength = min_time.length-1;
+					var max_time = data[i].max_time;
+					var maxlength = max_time.length-1;
+					html += '<li class="qxitem"><div class="aisleNum">'+data[i].ekey+'</div>'+
+							'<div class="qxdetail"><div class="aisleName"><div class="mui-navigate-right">'+data[i].unit[1]+'('+data[i].unit[2]+')</div>'+
+							'</div><div class="valueNum"><div class="inputRow"><div>最大值</div><div>'+data[i].max+'</div>'+
+							'<div class="uptime">'+max_time.substring(1,maxlength)+'</div></div><div class="inputRow">'+
+							'<div>最小值</div><div>'+data[i].min+'</div><div class="uptime">'+min_time.substring(1,minlength)+'</div>'+
+							'</div></div></div></li>';
+					if(i == data.length-1){
+						$('.qxMsg').html(html);
+					}
+				}
+			})
+
+			$('body').on('tap', '.aisleName', function() {
+				var _this = this;
+				$(_this).next().slideToggle(function() {
+					if($(this).is(":visible")) {
+						$(_this).children().addClass('mui-navigate-top')
+					} else {
+						$(_this).children().removeClass('mui-navigate-top')
+					}
+				});
+			})
+		</script>
+	</body>
+
+</html>

+ 342 - 0
equipManage/equipManage_qxz_detail.html

@@ -0,0 +1,342 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<style type="text/css">
+			/*.mui-content {
+				background: #fff;
+			}*/
+			
+			body,
+			.mui-content,
+			#dataList {
+				background: #0088e5;
+			}
+			/*设备信息*/
+			
+			.equipScope {
+				margin: 4% 6% 0 6%;
+				background: rgba(255, 255, 255, 0.4);
+				padding: 5px;
+				border-radius: 7px;
+				position: relative;
+			}
+			
+			.equipmsg {
+				/*position:relative;*/
+			}
+			
+			.qxzImg {
+				/*background-image: url('../images/qxz.jpg');*/
+				/*background-image: url(http://120.27.222.26/qxz_photo/default.png);*/
+				height: 200px;
+				background-size: cover;
+				border-radius: 7px;
+			}
+			
+			.qxzDescribe {
+				position: absolute;
+				right: 10px;
+				bottom: 5px;
+			}
+			
+			.qxzDescribe>div {
+				font-size: 12px;
+				background: rgba(57, 160, 230, 0.7);
+				line-height: 22px;
+				color: #fff;
+				padding-left: 8px;
+				padding-right: 8px;
+				margin-bottom: 5px;
+				border-radius: 10px;
+			}
+			/*实时状态*/
+			
+			.sensor {
+				position: relative;
+				float: left;
+				width: 41%;
+				height: 180px;
+				background: rgba(255, 255, 255, 0.3);
+				border-radius: 10px;
+				margin-left: 6%;
+				margin-top: 20px;
+			}
+			
+			.sensorIcon {
+				background: rgba(255, 255, 255, 0.35);
+				border-radius: 50%;
+				position: absolute;
+				width: 2.5em;
+				height: 2.5em;
+				top: 10px;
+				left: 10px;
+				line-height: 3.8em;
+				text-align: center;
+				vertical-align: middle;
+			}
+			
+			.sensorIcon>img {
+				width: 74%;
+			}
+			
+			.sensorAisle {
+				position: absolute;
+				top: 45px;
+				left: 14px;
+				color: rgba(255, 255, 255, 0.76);
+				font-size: 12px;
+				letter-spacing: 1px;
+			}
+			
+			.sensorResult {
+				color: #ffffff;
+				font-size: 16px;
+				line-height: 200px;
+				text-align: center;
+			}
+			
+			.sensorUnit {
+				position: absolute;
+				bottom: 10px;
+				right: 10px;
+				color: rgba(255, 255, 255, 0.76);
+				font-size: 12px;
+				letter-spacing: 1px;
+			}
+			/*24小时数据*/
+			
+			.seeMore {
+				text-align: center;
+			}
+			
+			.seeMore>button {
+				background: rgba(255, 255, 255, 0.4);
+				border: none;
+				border-radius: 30px;
+				color: #fff;
+				padding: 10px 40px;
+				margin: 15px 0;
+			}
+			
+			.seeMore>button:active {
+				background: #005b99;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">环境监测</h1>
+			<a id="setAstrict" class="mui-icon mui-icon-gear mui-pull-right" onclick="setAstrictFun()"></a>
+		</header>
+		<div class="mui-content">
+			<div class="equipmsg">
+				<div class="equipScope">
+					<div class="qxzImg" id="qxzImg"></div>
+					<div class="qxzDescribe">
+						<div id="equipName">项目名称:设备16061203</div>
+						<div id="equipId">设备ID:16061203</div>
+						<div id="updataTime">更新时间:2019-04-10 15:51:24</div>
+					</div>
+				</div>
+			</div>
+			<div id="dataList">
+				<!--最新数据-->
+				<div class="clearfix" id="newResultDat">
+					<!--<div class="sensor">
+						<div class="sensorIcon">
+							<img src="../images/dev/icon_101.png"/>
+						</div>
+						<div class="sensorAisle">
+							通道1
+						</div>
+						<div class="sensorResult">
+							0°
+						</div>
+						<div class="sensorUnit">温度</div>
+					</div>-->
+				</div>
+			</div>
+			<div class="seeMore">
+				<button type="button" onclick="setTimingFun()" class="">定时控制</button>
+				 
+				<button type="button" onclick="manualCtrl()" class="">手动控制</button>
+			</div>
+			<div class="seeMore">
+				<button type="button" onclick="lookMore()" class="">查看24小时数据</button>
+			</div>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/mescroll.min.js" charset="utf-8"></script>
+		<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			
+			var equipId,equipName,qxz_switch,switch_name,timing_list,auto_list,conf,qxzDat;
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				equipName = self.equipName
+				$('#equipId').html('设备ID:' + equipId);
+				$('#equipName').html('项目名称:' + equipName);
+				$.ajax({
+					type: 'post',
+					url: 'http://120.27.222.26/qxz_status',
+					timeout: 10000, //超时时间设置,单位毫秒
+					data: {
+						'e_id': equipId,
+					},
+					beforeSend: function() {
+						plus.nativeUI.showWaiting("加载中...");
+					},
+					complete: function() {
+						plus.nativeUI.closeWaiting();
+					},
+					dataType: 'json',
+					success: function(data) {
+						console.log(JSON.stringify(data))
+						if(data.qxz_switch.length>2){
+							qxz_switch = eval('('+data.qxz_switch+')');
+						}else{
+							qxz_switch = {}
+						}
+						if(data.switch_name.length>2){
+							switch_name = eval('('+data.switch_name+')');
+						}else{
+							switch_name = {}
+						}
+						if(data.timing_list.length>2){
+							timing_list = eval('('+data.timing_list+')');
+						}else{
+							timing_list = {}
+						}
+						if(data.auto_list.length>2){
+							auto_list = eval('('+data.auto_list+')');
+						}else{
+							auto_list = {}
+						}
+						conf = data.conf;
+						qxzDat = data.dat;
+
+						$('#updataTime').html('数据更新时间:' + data.base.upl_time);
+						var path = 'http://120.27.222.26/' + data.base.qxz_picture;
+						$('#qxzImg').css('background-image', 'url(' + path + ')');
+						var dat = data.dat;
+						var datlen = Object.keys(dat).length;
+						var html = '';
+						for(var i = 1;i<=datlen;i++){
+							var key = 'e'+ i;
+							if(dat[key]){
+								if(dat[key].split('#')[0] == -99.99){
+									var val = 'N/A';
+								}else{
+									var val = dat[key].split('#')[0];
+								}
+								var eNum = dat[key].split('#')[1];
+								var unitTxt = data.conf[key].split('#')[0];
+								var unit = data.conf[key].split('#')[1];
+								html += '<div class="sensor"><div class="sensorIcon"><img src="../images/dev/icon_' + eNum + '.png"/>' +
+									'</div><div class="sensorAisle">通道' + i + '</div>' +
+									'<div class="sensorResult">' + val + unit + '</div><div class="sensorUnit">' + unitTxt + '</div></div>'
+							}
+							if(i == datlen){
+								if(!html){
+									html = '<div class="sensor" style="width: 88%;"><div class="sensorResult">暂无数据</div></div>';
+								}
+									$('#newResultDat').html(html);
+							}
+						}
+					},
+					error: function() {
+						mui.toast('请求失败')
+					}
+				});
+			})
+			//查看24小时数据
+			function lookMore() {
+				mui.openWindow({
+					url: 'equipManage_qxz_data24.html',
+					id: 'equipManage_qxz_data24',
+					extras: {
+						'equipId': equipId,
+						'equipName': equipName,
+					},
+				})
+
+			}
+			//手动控制
+			function manualCtrl() {
+				if(qxz_switch.length) {
+					mui.openWindow({
+						url: 'equipManage_qxz_manualCtrl.html',
+						id: 'equipManage_qxz_manualCtrl',
+						extras: {
+							'equipId': equipId,
+							'equipName': equipName,
+							'qxz_switch': qxz_switch,
+							'switch_name': JSON.stringify(switch_name)
+						},
+					})
+				} else {
+					mui.toast('暂无开关设置功能')
+				}
+
+			}
+			//阈值设置
+			function setAstrictFun() {
+				if(auto_list.length) {
+					mui.openWindow({
+						url: 'equipManage_qxz_setAstrict.html',
+						id: 'equipManage_qxz_setAstrict',
+						extras: {
+							'equipId': equipId,
+							'equipName': equipName,
+							'qxz_switch': qxz_switch,
+							'switch_name': switch_name,
+							'auto_list':auto_list,
+							'conf':conf,
+							'qxzDat':qxzDat
+						},
+					})
+				} else {
+					mui.toast('暂无阈值设置功能')
+				}
+			}
+			//定时控制
+			function setTimingFun() {
+				if(timing_list.length) {
+					mui.openWindow({
+						url: 'equipManage_qxz_setTiming.html',
+						id: 'equipManage_qxz_setTiming',
+						extras: {
+							'equipId': equipId,
+							'equipName': equipName,
+							'qxz_switch': qxz_switch,
+							'switch_name': switch_name,
+							'timing_list':timing_list,
+							'conf':conf,
+							'qxzDat':qxzDat
+						},
+					})
+				} else {
+					mui.toast('暂无定时设置功能')
+				}
+			}
+		</script>
+	</body>
+
+</html>

+ 345 - 0
equipManage/equipManage_qxz_detailOld.html

@@ -0,0 +1,345 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<style type="text/css">
+			/*.mui-content {
+				background: #fff;
+			}*/
+			
+			body,
+			.mui-content,
+			#dataList {
+				background: #0088e5;
+			}
+			/*设备信息*/
+			
+			.equipScope {
+				margin: 4% 6% 0 6%;
+				background: rgba(255, 255, 255, 0.4);
+				padding: 5px;
+				border-radius: 7px;
+				position: relative;
+			}
+			
+			.equipmsg {
+				/*position:relative;*/
+			}
+			
+			.qxzImg {
+				/*background-image: url('../images/qxz.jpg');*/
+				/*background-image: url(http://120.27.222.26/qxz_photo/default.png);*/
+				height: 200px;
+				background-size: cover;
+				border-radius: 7px;
+			}
+			
+			.qxzDescribe {
+				position: absolute;
+				right: 10px;
+				bottom: 5px;
+			}
+			
+			.qxzDescribe>div {
+				font-size: 12px;
+				background: rgba(57, 160, 230, 0.7);
+				line-height: 22px;
+				color: #fff;
+				padding-left: 8px;
+				padding-right: 8px;
+				margin-bottom: 5px;
+				border-radius: 10px;
+			}
+			/*实时状态*/
+			
+			.sensor {
+				position: relative;
+				float: left;
+				width: 41%;
+				height: 180px;
+				background: rgba(255, 255, 255, 0.3);
+				border-radius: 10px;
+				margin-left: 6%;
+				margin-top: 20px;
+			}
+			
+			.sensorIcon {
+				background: rgba(255, 255, 255, 0.35);
+				border-radius: 50%;
+				position: absolute;
+				width: 2.5em;
+				height: 2.5em;
+				top: 10px;
+				left: 10px;
+				line-height: 3.8em;
+				text-align: center;
+				vertical-align: middle;
+			}
+			
+			.sensorIcon>img {
+				width: 74%;
+			}
+			
+			.sensorAisle {
+				position: absolute;
+				top: 45px;
+				left: 14px;
+				color: rgba(255, 255, 255, 0.76);
+				font-size: 12px;
+				letter-spacing: 1px;
+			}
+			
+			.sensorResult {
+				color: #ffffff;
+				font-size: 16px;
+				line-height: 200px;
+				text-align: center;
+			}
+			
+			.sensorUnit {
+				position: absolute;
+				bottom: 10px;
+				right: 10px;
+				color: rgba(255, 255, 255, 0.76);
+				font-size: 12px;
+				letter-spacing: 1px;
+			}
+			/*24小时数据*/
+			
+			.seeMore {
+				text-align: center;
+			}
+			
+			.seeMore>button {
+				background: rgba(255, 255, 255, 0.4);
+				border: none;
+				border-radius: 30px;
+				color: #fff;
+				padding: 10px 40px;
+				margin: 15px 0;
+			}
+			
+			.seeMore>button:active {
+				background: #005b99;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">环境监测</h1>
+			<a id="setAstrict" class="mui-icon mui-icon-gear mui-pull-right" onclick="setAstrictFun()"></a>
+		</header>
+		<div class="mui-content">
+			<div class="equipmsg">
+				<div class="equipScope">
+					<div class="qxzImg" id="qxzImg"></div>
+					<div class="qxzDescribe">
+						<div id="equipName">项目名称:设备16061203</div>
+						<div id="equipId">设备ID:16061203</div>
+						<div id="updataTime">更新时间:2019-04-10 15:51:24</div>
+					</div>
+				</div>
+			</div>
+			<div id="dataList">
+				<!--最新数据-->
+				<div class="clearfix" id="newResultDat">
+					<!--<div class="sensor">
+						<div class="sensorIcon">
+							<img src="../images/dev/icon_101.png"/>
+						</div>
+						<div class="sensorAisle">
+							通道1
+						</div>
+						<div class="sensorResult">
+							0°
+						</div>
+						<div class="sensorUnit">温度</div>
+					</div>-->
+				</div>
+			</div>
+			<div class="seeMore">
+				<button type="button" onclick="setTimingFun()" class="">定时控制</button>
+				 
+				<button type="button" onclick="manualCtrl()" class="">手动控制</button>
+			</div>
+			<div class="seeMore">
+				<button type="button" onclick="lookMore()" class="">查看24小时数据</button>
+			</div>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/mescroll.min.js" charset="utf-8"></script>
+		<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			
+			var equipId;
+			mui.init();
+			var allData = [];
+			var qxz_switch = [];
+			var switch_name = [];
+			var auto_list = [];
+			var timing_list = [];
+			var new_data = [];
+			var qxz_auto = false;
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				equipName = self.equipName
+				$('#equipId').html('设备ID:' + equipId);
+				$('#equipName').html('项目名称:' + equipName);
+				console.log(equipName);
+				$.ajax({
+					type: 'GET',
+					url: 'http://120.27.222.26/qxz_detail',
+					timeout: 10000, //超时时间设置,单位毫秒
+					data: {
+						'id': equipId,
+					},
+					beforeSend: function() {
+						plus.nativeUI.showWaiting("加载中...");
+					},
+					complete: function() {
+						plus.nativeUI.closeWaiting();
+					},
+					dataType: 'json',
+					success: function(data) {
+						console.log(JSON.stringify(data))
+						allData = data.all_data;
+						if(data.qxz_switch.length){							
+							qxz_switch = eval('(' + data.qxz_switch + ')');
+							if(data.switch_name >2){								
+								switch_name = eval('(' + data.switch_name + ')');
+							}else{
+								switch_name = []
+							}
+						}
+						if(data.auto_list.length){							
+							auto_list = eval('('+data.auto_list+')');
+						}else{
+							auto_list = []
+						}
+						
+						if(data.timing_list.length){							
+							timing_list = eval('('+ data.timing_list +')');
+						}else{
+							timing_list = []
+						}
+						new_data = data.new_data;
+						var newData = data.new_data;
+						if(data.auto_list.length >2){
+							qxz_auto = true;
+						}
+						if(newData.length) {
+							var path = 'http://120.27.222.26/' + newData[0].qxz_picture
+							$('#qxzImg').css('background-image', 'url(' + path + ')')
+							console.log($('#qxzImg').css('background-image'))
+							for(var i = 0; i < newData.length; i++) {
+								var unit = newData[i].unit;
+								var html = '<div class="sensor"><div class="sensorIcon"><img src="../images/dev/icon_' + unit[0] + '.png"/>' +
+									'</div><div class="sensorAisle">通道' + newData[i].eKey.substr(1) + '</div>' +
+									'<div class="sensorResult">' + newData[i].eValue + unit[2] + '</div><div class="sensorUnit">' + unit[1] + '</div></div>'
+								$('#newResultDat').append(html);
+							}
+						} else {
+							var html = '<div class="sensor" style="width: 88%;"><div class="sensorResult">暂无数据</div></div>';
+							$('#newResultDat').html(html);
+							$('#qxzImg').css('background-image', 'url(../images/qxz.jpg)')
+						}
+
+						$('#updataTime').html('数据更新时间:' + newData[0].upl_time);
+					},
+					error: function() {
+						mui.toast('请求失败')
+					}
+				});
+			})
+			//查看24小时数据
+			function lookMore() {
+				if(allData.length) {
+					mui.openWindow({
+						url: 'equipManage_qxz_data24.html',
+						id: 'equipManage_qxz_data24',
+						extras: {
+							'equipId': equipId,
+							'equipName': equipName,
+							'data': allData,
+						},
+					})
+				} else {
+					mui.toast('暂无更多数据')
+				}
+
+			}
+			//手动控制
+			function manualCtrl() {
+				if(qxz_switch.length) {
+					mui.openWindow({
+						url: 'equipManage_qxz_manualCtrl.html',
+						id: 'equipManage_qxz_manualCtrl',
+						extras: {
+							'equipId': equipId,
+							'equipName': equipName,
+							'qxz_switch': qxz_switch,
+							'switch_name': switch_name
+						},
+					})
+				} else {
+					mui.toast('暂无开关设置功能')
+				}
+
+			}
+			//阈值设置
+			function setAstrictFun() {
+				if(qxz_auto) {
+					mui.openWindow({
+						url: 'equipManage_qxz_setAstrict.html',
+						id: 'equipManage_qxz_setAstrict',
+						extras: {
+							'equipId': equipId,
+							'equipName': equipName,
+							'qxz_switch': qxz_switch,
+							'switch_name': switch_name,
+							'auto_list':auto_list,
+							'new_data':new_data
+						},
+					})
+				} else {
+					mui.toast('暂无阈值设置功能')
+				}
+			}
+			//定时控制
+			function setTimingFun() {
+				if(timing_list.length) {
+					mui.openWindow({
+						url: 'equipManage_qxz_setTiming.html',
+						id: 'equipManage_qxz_setTiming',
+						extras: {
+							'equipId': equipId,
+							'equipName': equipName,
+							'qxz_switch': qxz_switch,
+							'switch_name': switch_name,
+							'timing_list':timing_list,
+							'new_data':new_data
+						},
+					})
+				} else {
+					mui.toast('暂无定时设置功能')
+				}
+			}
+		</script>
+	</body>
+
+</html>

+ 262 - 0
equipManage/equipManage_qxz_manualCtrl.html

@@ -0,0 +1,262 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			/*body,.mui-content {
+				background: #fff;
+			}*/
+			
+			.mui-icon-undo {
+				display: none;
+			}
+			
+			.qxMsg {
+				margin: 10px 20px;
+				/*background: pink;*/
+			}
+			
+			.qxMsg>li {
+				margin-bottom: .2rem;
+			}
+			
+			.qxManualitem {
+				padding: 6px;
+				background: #fff;
+				border-radius: 3px;
+				/*line-height: 33px;*/
+			}
+			
+			.currName {
+				line-height: 33px;
+			}
+			
+			.switchName {
+				color: green;
+				display: none;
+			}
+			/*switch*/
+			
+			.switchParent {
+				float: right;
+				margin-top: 2px;
+				right: 3px;
+			}
+			
+			.mui-switch.mui-active:before {
+				content: '开启';
+				left: 8px;
+			}
+			
+			.mui-switch:before {
+				content: '关闭';
+			}
+			
+			.isonlineicon {
+				display: inline-block;
+				width: 8px;
+				height: 8px;
+				border-radius: 50%;
+				background: green;
+				margin-right: 3px;
+			}
+			
+			.isonlineicon.active {
+				background: green;
+				animation: 1s ease 0s infinite normal none running myfirst01;
+			}
+			
+			.isonlineicon {
+				background: #909090;
+				animation: 1s ease 0s infinite normal none running myfirst02;
+			}
+			
+			@keyframes myfirst01 {
+				0% {
+					-moz-box-shadow: 0px 0px 6px 1px green;
+					box-shadow: 0px 0px 6px 1px green;
+				}
+				100% {
+					-moz-box-shadow: 0px 0px 6px 1px green;
+					box-shadow: 0px 0px 6px 1px green;
+				}
+			}
+			
+			@keyframes myfirst02 {
+				0% {
+					-moz-box-shadow: 0px 0px 6px 1px #909090;
+					box-shadow: 0px 0px 6px 1px #909090;
+				}
+				100% {
+					-moz-box-shadow: 0px 0px 6px 1px #909090;
+					box-shadow: 0px 0px 6px 1px #909090;
+				}
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">手动控制</h1>
+			<a id="setAstrict" class="mui-icon mui-icon-compose mui-pull-right" onclick="showEdit(this)"></a>
+			<a id="setAstrict" class="mui-icon mui-icon-undo mui-pull-right" onclick="cantelEdit(this)"></a>
+		</header>
+		<div class="mui-content">
+			<ul class="qxMsg">
+				<!--<li class="qxitem">
+					<div class="qxManualitem">
+						<span class="isonlineicon"></span>
+						<span class="currName">施肥机</span>
+						<span class="mui-icon mui-icon-compose switchName" onclick="editName(this)"></span>
+						<input type="hidden" name="" id="" value="1" />
+						<div class="switchParent">
+							<div class="mui-switch mui-switch-blue mui-active">
+								<div class="mui-switch-handle"></div>
+							</div>
+						</div>
+					</div>
+				</li>-->
+			</ul>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			var equipId;
+			mui.init();
+			var qxz_switch = [];
+			var switch_name = [];
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				qxz_switch = self.qxz_switch;
+				switch_name = eval('('+self.switch_name+')');
+				data = self.data
+				$('#equipName').html('项目名称:' + qxz_switch);
+				var html = '';
+				for(var i = 0; i < qxz_switch.length; i++) {
+					if(switch_name[i].name) {
+						var name = switch_name[i].name;
+					} else {
+						var name = '开关' + qxz_switch[i].JK;
+					}
+					if(qxz_switch[i].status == 1) {
+						var check = 'mui-active';
+					} else {
+						var check = '';
+					}
+					html += '<li class="qxitem"><div class="qxManualitem">' +
+						'<span class="isonlineicon"></span><span class="currName">' + name + '</span>' +
+						'<span class="mui-icon mui-icon-compose switchName" onclick="editName(this)"></span>' +
+						'<input type="hidden" name="" id="" value="' + qxz_switch[i].JK + '" /><div class="switchParent">' +
+						'<div class="mui-switch mui-switch-blue ' + check + '">' +
+						'<div class="mui-switch-handle"></div></div></div></div></li>';
+					if(i == qxz_switch.length - 1) {
+						$('.qxMsg').html(html);
+						mui('.mui-switch')['switch']();
+						mui('.qxMsg').on('toggle', '.mui-switch', function(event) {
+							if(event.detail.isActive) {
+								console.log("你启动了开关");
+								var currStutas = 1;
+							} else {
+								console.log("你关闭了开关");
+								var currStutas = 0;
+							}
+							var currWay = $(this).parent().prev().val();
+							var _this = this;
+							$.ajax({
+								url: 'http://120.27.222.26/qxz_switch',
+								type: 'post',
+								data: {
+									'req': 'set',
+									'imei': equipId,
+									'way': currWay,
+									'switch': currStutas
+								},
+								success: function(data) {
+									if(currStutas == 1) {
+										$(_this).parents('.qxManualitem').find('.isonlineicon').addClass('active');
+									} else {
+										$(_this).parents('.qxManualitem').find('.isonlineicon').removeClass('active');
+									}
+									mui.toast('设置成功');
+								},
+								error: function(type) {
+									mui.toast('设置失败')
+								}
+							})
+						})
+					}
+				}
+			})
+
+			$('body').on('tap', '.aisleName', function() {
+				var _this = this;
+				$(_this).next().slideToggle(function() {
+					if($(this).is(":visible")) {
+						$(_this).children().addClass('mui-navigate-top')
+					} else {
+						$(_this).children().removeClass('mui-navigate-top')
+					}
+				});
+			})
+
+			function showEdit(obj) {
+				$(obj).hide();
+				$(obj).next().show();
+				$('.switchName').show();
+			}
+
+			function cantelEdit(obj) {
+				$(obj).hide();
+				$(obj).prev().show();
+				$('.switchName').hide();
+			}
+
+			function editName(obj) {
+				var title = $(obj).prev().html();
+				var currWay = $(obj).next().val();
+				mui.prompt('修改开关名称', '输入开关名称', title, ['取消', '确定'], function(e) {
+					if(e.index == 1) {
+						var text = e.value
+						if(text) {
+							$.ajax({
+								url: 'http://120.27.222.26/qxz_switch_name',
+								type: 'post',
+								data: {
+									'imei': equipId,
+									'way': currWay,
+									'sw_name': text
+								},
+								success: function(data) {
+									console.log(111111)
+									if(data == 0) {
+										$(obj).prev().html(text)
+									}
+								},
+								error: function(type) {
+	
+								}
+							})
+						}else{
+							return false;
+						}
+
+					}
+				}, 'div')
+			}
+		</script>
+	</body>
+
+</html>

+ 404 - 0
equipManage/equipManage_qxz_setAstrict.html

@@ -0,0 +1,404 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			/*body,.mui-content {
+				background: #fff;
+			}*/
+			
+			.qxMsg {
+				margin: 10px 20px;
+				/*background: pink;*/
+			}
+			
+			.qxMsg>li {
+				margin-bottom: .4rem;
+			}
+			
+			.thresholdCtrl {
+				background: #4ab8e8;
+				border-radius: 5px;
+				color: #fff;
+				box-shadow: 1px 1px 4px 1px #98dbf8;
+				border: 1px solid #98dbf8;
+				padding: 5px 10px;
+				cursor: pointer;
+				position: relative;
+			}
+			
+			.thresholdCtrl::before {
+				position: absolute;
+				content: '';
+				bottom: 0;
+				left: 0;
+				right: 0;
+				height: 30%;
+				background: rgba(255, 255, 255, 0.5);
+			}
+			
+			.setthresholdBtn {
+				position: absolute;
+				right: 13px;
+				top: 12px;
+				font-size: 20px;
+			}
+			
+			.thresholdCtrlName {
+				line-height: 30px;
+			}
+			
+			.thresholdCtrlName p,
+			.maxminNum p {
+				color: #fff;
+				font-size: 16px;
+			}
+			
+			.thresholdCtrlShowDiv {
+				overflow: hidden;
+				margin: 11px 0;
+			}
+			
+			.thresholdCtrlShowDiv>div {
+				float: left;
+			}
+			
+			.qxys img {
+				width: 47px;
+			}
+			
+			.maxminNum {
+				font-size: 18px;
+				line-height: 30px;
+				padding-left: 7%;
+			}
+			
+			.equipCtrlInp {
+				margin-top: 20px;
+				text-align: right;
+			}
+			
+			.equipCtrlInp>div {
+				display: inline-block;
+			}
+			
+			.mui-switch:before {
+				content: '关闭';
+			}
+			
+			.mui-switch.mui-active:before {
+				content: '开启';
+				left: 9px;
+			}
+			/*设置阈值弹出框*/
+			
+			#setthresholdModel {
+				height: 0;
+				z-index: 999;
+				position: fixed;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				background: #fff;
+				border-radius: 3px 3px 0 0;
+				transition: all .3s;
+			}
+			
+			#method {
+				height: 45px;
+			}
+			
+			#method>div {
+				width: 45%;
+				position: absolute;
+			}
+			
+			.secondInp {
+				left: 50%;
+			}
+			
+			#sendThreshold {
+				padding: 20px;
+				text-align: right;
+			}
+			
+			#setthresholdModel>h2 {
+				font-size: 16px;
+				line-height: 30px;
+				padding-left: 15px;
+				color: #24b2e7;
+			}
+			
+			.hint span {
+				color: red;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">阈值设置</h1>
+		</header>
+		<div class="mui-content">
+			<ul class="qxMsg">
+				<!--<li class="qxitem">
+					<div class="thresholdCtrl">
+						<div class="setthresholdBtn">
+							<span class="mui-icon mui-icon-gear"></span>
+						</div>
+						<input type="hidden" name="" class="currVal" value="{" JK ":1,"eKey ":1,"upper ":700,"lower ":300,"method ":1}" />
+						<div class="thresholdCtrlName">
+							<p>开关1(通道1)</p>
+						</div>
+						<div class="thresholdCtrlShowDiv">
+							<div class="qxys">
+								<div><img src="http://www.yfzhwlw.com/static/img/dev/icon_104.png" alt=""></div>
+								<div>雨量</div>
+							</div>
+							<div class="maxminNum">
+								<p>最大值:<span>700</span></p>
+								<p>最小值:<span>300</span></p>
+							</div>
+						</div>
+						<div class="equipCtrlInp">
+							<div class="">
+								<div class="mui-switch mui-switch-blue">
+									<div class="mui-switch-handle"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</li>-->
+
+			</ul>
+			<div id="setthresholdModel" class="">
+				<h2>阈值设置</h2>
+				<ul class="mui-table-view" id="user">
+					<li class="mui-table-view-cell">
+						<span class="equipTitle">最大值</span>
+						<p id="upperInput">
+							<input type="number" name="" id="upperInp" value="" />
+						</p>
+					</li>
+					<li class="mui-table-view-cell">
+						<span class="equipTitle">最小值</span>
+						<p id="lowerInput">
+							<input type="number" name="" id="lowerInp" value="" />
+						</p>
+					</li>
+					<li class="mui-table-view-cell">
+						<span class="equipTitle">规则</span>
+						<div id="method">
+							<div class="mui-input-row mui-radio firstInp">
+								<label>程序一</label>
+								<input name="method" class="redioinp1" type="radio" onclick="switchoverFun(this)" checked="checked" value="1">
+							</div>
+							<div class="mui-input-row mui-radio secondInp">
+								<label>程序二</label>
+								<input name="method" class="redioinp1" type="radio" onclick="switchoverFun(this)" value="0">
+							</div>
+						</div>
+						<p class="hint">低于下限 <span>开启</span>,高于上限<span>关闭</span></p>
+					</li>
+				</ul>
+				<div id="sendThreshold">
+					<input type="hidden" name="jkcode" id="jkcode" value="" />
+					<input type="hidden" name="eKeycode" id="eKeycode" value="" />
+					<button type="button" class="mui-btn mui-btn-primary" onclick="sendData()">确定</button>
+					<button type="button" class="mui-btn" onclick="cancelFun()">取消</button>
+				</div>
+			</div>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script src="120.27.222.26/static/js/reportmanage/qxz_dict.js"></script>
+		<script type="text/javascript">
+			var equipId,autoList, conf,switch_name,qxz_switch,qxzDat;
+			mui.init();
+			var allData = [];
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				autoList = self.auto_list;
+				conf = self.conf;
+				qxz_switch = self.qxz_switch;
+				switch_name = self.switch_name;
+				qxzDat = self.qxzDat;
+				var html = '';
+				console.log(JSON.stringify(autoList));
+				for(var i = 0; i < autoList.length; i++) {
+					// 开关名 
+					if (autoList[i].JK == qxz_switch[i].JK) {
+						if(switch_name[i].name){							
+							var name = switch_name[i].name;
+						}else{
+							var name = '开关:'+qxz_switch[i].JK;
+						}
+					} else {
+						var name = autoList[i].JK;
+					}
+					if(autoList[i].JK != 255) {
+						var keyNum = autoList[i].eKey;
+						var ekey = 'e'+(keyNum+1);
+						var eNum = qxzDat[ekey].split('#')[1];
+						var uitTxt = conf[ekey].split('#')[0];
+						var unit = conf[ekey].split('#')[1];
+						html += '<li class="qxitem"><div class="thresholdCtrl">' +
+							'<div class="setthresholdBtn" onclick="setthresholdFun(this)"><span class="mui-icon mui-icon-gear"></span>' +
+							'</div><input type="hidden" name="" class="currVal" value=\'' + JSON.stringify(autoList[i]) + '\' />' +
+							'<div class="thresholdCtrlName"><p>' + name+ '(通道' + keyNum + ')</p></div>' +
+							'<div class="thresholdCtrlShowDiv"><div class="qxys">' +
+							'<div><img src="http://www.yfzhwlw.com/static/img/dev/icon_' + eNum + '.png" alt=""></div>' +
+							'<div>' + uitTxt+unit + '</div></div><div class="maxminNum"><p>最大值:<span>' + autoList[i].upper + '</span></p>' +
+							'<p>最小值:<span>' + autoList[i].lower + '</span></p></div></div><div class="equipCtrlInp">';
+						if(!(autoList[i].upper == 32767 || autoList[i].lower == 32767)) {
+							html += '<div class=""><div class="mui-switch mui-switch-blue mui-active">' +
+								'<div class="mui-switch-handle"></div></div></div></div></div></li>';
+						} else {
+							html += '<div class=""><div class="mui-switch mui-switch-blue">' +
+								'<div class="mui-switch-handle"></div></div></div></div></div></li>';
+						}
+
+						
+					}
+					console.log(html)
+					if(i == autoList.length - 1) {
+						$('.qxMsg').html(html);
+						console.log(html)
+						mui('.mui-switch')['switch']();
+					}
+				}
+
+			})
+			// 设置阈值
+			var currNextEle;
+			var currobjEle;
+
+			function setthresholdFun(ele) {
+				var obj = $(ele);
+				currobjEle = $(ele);
+				currNextEle = obj.next();
+				var currValstr = obj.next().val();
+				var currVal = eval('(' + currValstr + ')');
+				console.log(currValstr);
+				$('#upperInp').val(currVal.upper)
+				$('#lowerInp').val(currVal.lower)
+				$('#jkcode').val(currVal.JK)
+				$('#eKeycode').val(currVal.eKey)
+				if(currVal.method == 0) {
+					$("input[name='method'][value=0]").prop('checked', 'checked');
+					$('.hint').html('低于下限 <span>开启</span>,高于上限<span>关闭</span>');
+				} else {
+					$("input[name='method'][value=1]").prop('checked', 'checked');
+					$('.hint').html('低于下限 <span>关闭</span>,高于上限<span>开启</span>');
+				}
+				console.log($("input[name='method']"));
+				var mask = mui.createMask(function() {
+					$('#setthresholdModel').css('height', 0);
+				}); //callback为用户点击蒙版时自动执行的回调;
+				$('#setthresholdModel').css('height', '417px');
+				mask.show(); //显示遮罩
+
+			}
+
+			//发送设置阈值
+			function sendData() {
+				var upper = $('#upperInp').val();
+				var lower = $('#lowerInp').val();
+				var method = $("input[name='method']:checked").val();
+				var jkcode = $('#jkcode').val();
+				var eKeycode = $('#eKeycode').val();
+				var datajson = {
+					"JK": jkcode,
+					"eKey": eKeycode,
+					"upper": upper,
+					"lower": lower,
+					"method": method,
+					"equip_id":equipId
+				}
+
+				if(parseFloat(lower) > parseFloat(upper)) {
+					mui.toast('最小值不能大于最大值')
+					return false;
+				} else {
+					$.ajax({
+						url: 'http://120.27.222.26/qxz_value_mqtt',
+						type: 'post',
+						data: datajson,
+						success: function(data) {
+							currNextEle.val(JSON.stringify(datajson));
+							cancelFun()
+							mui.toast('设置成功');
+							currobjEle.parent().find('.maxminNum').find('p').eq(0).find('span').html(datajson.upper) //最大值
+							currobjEle.parent().find('.maxminNum').find('p').eq(1).find('span').html(datajson.lower) //最小值
+							currobjEle.parents('.thresholdCtrl').find('.mui-switch').addClass('mui-active'); //开启阈值
+							mui('.mui-switch')['switch']()
+						},
+						error: function(type) {
+							mui.toast('设置失败');
+						}
+					})
+				}
+
+			}
+
+			$('.qxMsg').on('toggle', '.mui-switch', function(event) {
+				//console.log(event);
+				var currobj = $(event.target);
+				var currVal = $(event.target).parents('li').find('.currVal').val();
+				var data = eval('(' + currVal + ')');
+				if(event.originalEvent.detail.isActive) {
+
+				} else {
+					//你关闭了开关
+					data.upper = 32767;
+					data.lower = 32767;
+				}
+				$.ajax({
+					url: 'http://120.27.222.26/qxz_value_mqtt',
+					type: 'post',
+					data: data,
+					success: function(data) {
+						mui.toast('设置成功');
+
+					},
+					error: function(type) {
+						mui.toast('设置失败');
+					}
+				})
+			})
+			//取消
+			function cancelFun() {
+				var mask = mui.createMask(function() {
+					$('#setthresholdModel').css('height', 0);
+					$('.mui-backdrop').remove();
+				});
+				mask.close();
+
+			}
+			//redio切换
+			function switchoverFun(obj) {
+				if($(obj).val() == 1) {
+					$("input[name='method'][value=1]").prop('checked', 'checked');
+					$('.hint').html('低于下限 <span>开启</span>,高于上限<span>关闭</span>');
+				} else {
+					$("input[name='method'][value=0]").prop('checked', 'checked');
+					$('.hint').html('低于下限 <span>关闭</span>,高于上限<span>开启</span>');
+				}
+			}
+		</script>
+	</body>
+
+</html>

+ 392 - 0
equipManage/equipManage_qxz_setTiming.html

@@ -0,0 +1,392 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			/*body,.mui-content {
+				background: #fff;
+			}*/
+			
+			.qxMsg {
+				margin: 10px 20px;
+				/*background: pink;*/
+			}
+			
+			.qxMsg>li {
+				margin-bottom: .4rem;
+			}
+			
+			.thresholdCtrl {
+				background: #4ab8e8;
+				border-radius: 5px;
+				color: #fff;
+				box-shadow: 1px 1px 4px 1px #98dbf8;
+				border: 1px solid #98dbf8;
+				padding: 5px 10px;
+				cursor: pointer;
+				position: relative;
+				/*background: #65b83b;
+			    box-shadow: 1px 1px 4px 1px #d1ffba;
+			    border: 1px solid #65b83b;*/
+			}
+			
+			.thresholdCtrl::before {
+				position: absolute;
+				content: '';
+				bottom: 0;
+				left: 0;
+				right: 0;
+				height: 30%;
+				background: rgba(255, 255, 255, 0.5);
+			}
+			
+			.setthresholdBtn {
+				position: absolute;
+				right: 13px;
+				top: 12px;
+				font-size: 20px;
+			}
+			
+			.thresholdCtrlName {
+				line-height: 30px;
+			}
+			
+			.thresholdCtrlName p,
+			.maxminNum p {
+				color: #fff;
+				font-size: 16px;
+			}
+			
+			.thresholdCtrlShowDiv {
+				overflow: hidden;
+				margin: 11px 0;
+			}
+			
+			.thresholdCtrlShowDiv>div {
+				float: left;
+			}
+			
+			.qxys img {
+				width: 47px;
+			}
+			
+			.maxminNum {
+				font-size: 18px;
+				line-height: 30px;
+				padding-left: 7%;
+			}
+			
+			.equipCtrlInp {
+				margin-top: 20px;
+				text-align: right;
+			}
+			
+			.equipCtrlInp>div {
+				display: inline-block;
+			}
+			
+			.mui-switch:before {
+				content: '关闭';
+			}
+			
+			.mui-switch.mui-active:before {
+				content: '开启';
+				left: 9px;
+			}
+			/*设置阈值弹出框*/
+			
+			#setthresholdModel {
+				height: 0;
+				z-index: 999;
+				position: fixed;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				background: #fff;
+				border-radius: 3px 3px 0 0;
+				transition: all .3s;
+			}
+			
+			#method {
+				height: 45px;
+			}
+			
+			#method>div {
+				width: 45%;
+				position: absolute;
+			}
+			
+			.secondInp {
+				left: 50%;
+			}
+			
+			#sendThreshold {
+				padding: 20px;
+				text-align: right;
+			}
+			
+			#setthresholdModel>h2 {
+				font-size: 16px;
+				line-height: 30px;
+				padding-left: 15px;
+				color: #24b2e7;
+			}
+			
+			.hint span ,.hinttxt{
+				color: red;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">定时设置</h1>
+		</header>
+		<div class="mui-content">
+			<ul class="qxMsg">
+				<!--<li class="qxitem">
+					<div class="thresholdCtrl">
+						<div class="setthresholdBtn">
+							<span class="mui-icon mui-icon-gear"></span>
+						</div>
+						<input type="hidden" name="" class="currVal" value="{" JK ":1,"eKey ":1,"upper ":700,"lower ":300,"method ":1}" />
+						<div class="thresholdCtrlName">
+							<p>开关1(通道1)</p>
+						</div>
+						<div class="thresholdCtrlShowDiv">
+							<div class="qxys">
+								<div><img src="http://www.yfzhwlw.com/static/img/dev/icon_104.png" alt=""></div>
+								<div>雨量</div>
+							</div>
+							<div class="maxminNum">
+								<p>最大值:<span>700</span></p>
+								<p>最小值:<span>300</span></p>
+							</div>
+						</div>
+						<div class="equipCtrlInp">
+							<div class="">
+								<div class="mui-switch mui-switch-blue">
+									<div class="mui-switch-handle"></div>
+								</div>
+							</div>
+						</div>
+					</div>
+				</li>-->
+
+			</ul>
+			<div id="setthresholdModel" class="">
+				<h2>定时设置</h2>
+				<ul class="mui-table-view" id="user">
+					<li class="mui-table-view-cell">
+						<span class="equipTitle">起始时间</span>
+						<p id="upperInput">
+							<input type="number" name="" id="starttime" value="" />
+						</p>
+						<p><span class="hinttxt">*</span>工作时长(0-23)</p>
+					</li>
+					<li class="mui-table-view-cell">
+						<span class="equipTitle">工作时长</span>
+						<p id="lowerInput">
+							<input type="number" name="" id="duration" value="" />
+						</p>
+						<p><span class="hinttxt">*</span>工作时长(1-24)</p>
+					</li>
+				</ul>
+				<div id="sendThreshold">
+					<input type="hidden" name="jkcode" id="jkcode" value="" />
+					<button type="button" class="mui-btn mui-btn-primary" onclick="sendData()">确定</button>
+					<button type="button" class="mui-btn" onclick="cancelFun()">取消</button>
+				</div>
+			</div>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script src="120.27.222.26/static/js/reportmanage/qxz_dict.js"></script>
+		
+		<script type="text/javascript">
+			var equipId, timingList, conf,switch_name,qxz_switch,qxzDat;
+			mui.init();
+			var allData = [];
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				timingList = self.timing_list;
+				conf = self.conf;
+				qxz_switch = self.qxz_switch;
+				switch_name = self.switch_name;
+				qxzDat = self.qxzDat;
+				var html = '';
+				for(var i = 0; i < timingList.length; i++) {
+					// 开关名 
+					if (timingList[i].JK == qxz_switch[i].JK) {
+						if(switch_name.length){							
+							var name = switch_name[i].name;
+						}else{
+							var name = '开关'+qxz_switch[i].name;
+						}
+					} else {
+						var name = timingList[i].JK;
+					}
+					if(timingList[i].JK != 255) {	
+						var ekeyNum = timingList[i].JK+1;
+						var ekey = 'e'+ ekeyNum;
+						var eNum = qxzDat[ekey].split('#')[1];
+						var unitTxt = conf[ekey].split('#')[0];
+						var unit = conf[ekey].split('#')[1];
+						html += '<li class="qxitem"><div class="thresholdCtrl">' +
+							'<div class="setthresholdBtn" onclick="setthresholdFun(this)"><span class="mui-icon mui-icon-gear"></span>' +
+							'</div><input type="hidden" name="" class="currVal" value=\'' + JSON.stringify(timingList[i]) + '\' />' +
+							'<div class="thresholdCtrlName"><p>' + name+ '(通道' + ekeyNum + ')</p></div>' +
+							'<div class="thresholdCtrlShowDiv"><div class="qxys">' +
+							'<div><img src="http://www.yfzhwlw.com/static/img/dev/icon_' + eNum + '.png" alt=""></div>';
+						if(!(timingList[i].StartTime == 32767 || timingList[i].Duration == 32767)) {
+							html += '<div>' + unitTxt+unit + '</div></div><div class="maxminNum"><p>起始时间:<span>' + timingList[i].StartTime + '</span></p>' +
+									'<p>工作时长:<span>' + timingList[i].Duration + '</span></p></div></div><div class="equipCtrlInp">'+
+									'<div class=""><div class="mui-switch mui-switch-blue mui-active">' +
+									'<div class="mui-switch-handle"></div></div></div></div></div></li>';
+						} else {
+							html += '<div>' + unitTxt+unit + '</div></div><div class="maxminNum"><p>起始时间:<span>--</span></p>' +
+									'<p>工作时长:<span>--</span></p></div></div><div class="equipCtrlInp">'+
+									'<div class=""><div class="mui-switch mui-switch-blue">' +
+									'<div class="mui-switch-handle"></div></div></div></div></div></li>';
+						}	
+						
+					}
+					
+					if(i == timingList.length - 1) {
+						$('.qxMsg').html(html);
+						console.log(html)
+						mui('.mui-switch')['switch']();
+					}
+				}
+
+			})
+			// 设置阈值
+			var currNextEle;
+			var currobjEle;
+
+			function setthresholdFun(ele) {
+				var obj = $(ele);
+				currobjEle = $(ele);
+				currNextEle = obj.next();
+				var currValstr = obj.next().val();
+				var currVal = eval('(' + currValstr + ')');
+				console.log(currValstr);
+				$('#starttime').val(currVal.StartTime)
+				$('#duration').val(currVal.Duration)
+				$('#jkcode').val(currVal.JK)
+
+				var mask = mui.createMask(function() {
+					$('#setthresholdModel').css('height', 0);
+				}); //callback为用户点击蒙版时自动执行的回调;
+				$('#setthresholdModel').css('height', '380px');
+				mask.show(); //显示遮罩
+
+			}
+
+			//发送设置阈值
+			function sendData() {
+				var starttime = $('#starttime').val();
+				var duration = $('#duration').val();
+				var jkcode = $('#jkcode').val();
+				var datajson = {
+					"JK": jkcode,
+					"StartTime": starttime,
+					"Duration": duration,
+					"equip_id":equipId
+				}
+				
+				if(0 > starttime || starttime > 23) {
+					mui.toast('起始时间不符!')
+					return false;
+				} else if(1 > duration || duration > 24) {
+					mui.toast('工作时长不符!')
+					return false;
+				} else {
+					$.ajax({
+						url: 'http://120.27.222.26/qxz_timing_mqtt',
+						type: 'post',
+						data: datajson,
+						success: function(data) {
+							currNextEle.val(JSON.stringify(datajson));
+							cancelFun()
+							mui.toast('设置成功');
+							currobjEle.parent().find('.maxminNum').find('p').eq(0).find('span').html(datajson.StartTime) //最大值
+							currobjEle.parent().find('.maxminNum').find('p').eq(1).find('span').html(datajson.Duration) //最小值
+							currobjEle.parents('.thresholdCtrl').find('.mui-switch').addClass('mui-active'); //开启阈值
+							currobjEle.parents('.thresholdCtrl').find('.mui-switch').children().css('transform','translate(42px, 0px)')
+							mui('.mui-switch')['switch']()
+						},
+						error: function(type) {
+							mui.toast('设置失败');
+						}
+					})
+				}
+
+			}
+
+			$('.qxMsg').on('toggle', '.mui-switch', function(event) {
+				//console.log(event);
+				var currobj = $(event.target);
+				var currVal = $(event.target).parents('li').find('.currVal').val();
+				var data = eval('(' + currVal + ')');
+				if(data.StartTime == 32767 || data.Duration == 32767){
+					if(event.originalEvent.detail.isActive) {
+						$(this).removeClass('mui-active');
+						$(this).children().css('transform','translate(0px, 0px)')
+					} else {
+						//你关闭了开关
+						data.upper = 32767;
+						data.lower = 32767;
+						$(this).addClass('mui-active');
+						$(this).children().css('transform','translate(42px, 0px)')
+					}
+					
+					setthresholdFun($(this).parents('.thresholdCtrl').find('.setthresholdBtn'))
+					return false;
+				}
+				if(event.originalEvent.detail.isActive) {
+
+				} else {
+					//你关闭了开关
+					data.StartTime = 32767;
+					data.Duration = 32767;
+				}
+				$.ajax({
+					url: 'http://120.27.222.26/qxz_timing_mqtt',
+					type: 'post',
+					data: data,
+					success: function(data) {
+						mui.toast('设置成功');
+
+					},
+					error: function(type) {
+						mui.toast('设置失败');
+					}
+				})
+			})
+			//取消
+			function cancelFun() {
+				var mask = mui.createMask(function() {
+					$('#setthresholdModel').css('height', 0);
+					$('.mui-backdrop').remove();
+				});
+				mask.close();
+
+			}
+		</script>
+	</body>
+
+</html>

+ 176 - 0
equipManage/equipManage_scd.html

@@ -0,0 +1,176 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">杀虫灯设备</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+						<input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+
+				</ul>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/mui.min.js"></script>
+
+			<script type="text/javascript">
+				mui.init()
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop: { //配置回到顶部按钮
+							src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset: 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+							use: true // 是否开启懒加载,默认false
+						}
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page) {
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData);
+					}, function() {
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+						mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData) {
+					var html = '';
+					//				var listDom=document.getElementById("dataList");
+					var dat = curPageData;
+					for(var i = 0; i < dat.length; i++) {
+						var equip_name = dat[i].equip_name || '无';
+						var equipicon = '';
+						if(dat[i].is_online == 0) {
+							equipicon = '../images/red.png';
+						} else if(dat[i].is_online == 1) {
+							equipicon = '../images/green.png';
+						}
+						html += '<li data-id="' + dat[i].equip_id + '"><div class="equipItem"><div class="equipItem_top">' +
+							'<div class="equipTitle"><img class="equipIdIcon" src="../images/IDicon.png" width="22"/>' +
+							'<span class="">' + dat[i].equip_id + '</span><img class="equipType" src="' + equipicon + '" width="26"/>' +
+							'</div><div class="equipItem_line"></div></div><div class="equipItem_bottom">' +
+							'<div class="equipMsg"><label>设备名称</label><div class="equipVal equipName">' + equip_name + '</div></div>' +
+							'<div class="equipMsg"><label>上报时间</label><div class="equipVal">' + dat[i].upl_time + '</div>' +
+							'</div></div></div></li>';
+					}
+					$('#dataList').append(html);
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+					console.log(pageNum)
+					$.ajax({
+						type: 'POST',
+						url: 'http://120.27.222.26/app_equipmanage',
+						timeout: 10000, //超时时间设置,单位毫秒
+						data: {
+							'etype': 'scd',
+							'page': pageNum,
+							'filter': mui('#searchInp')[0].value,
+						},
+						dataType: 'json',
+						success: function(data) {
+							successCallback(data.dat, data.nums);
+						},
+						error: function() {
+							errorCallback();
+						}
+					});
+				}
+
+				var markingid = '' //用于记录点击的当前id 以便刷新
+				window.addEventListener('refresh', function(event) { //如果详情页面更改数据  才页面刷新
+					$('#dataList li').each(function() {
+						if(markingid == $(this).data('id')) {
+							$(this).find('.equipName').html(event.detail.markingEquipName);
+						}
+					})
+				})
+				//进入详情页面
+				mui('#dataList').on('tap', 'li', function() {
+					var imei = this.getAttribute('data-id');
+					markingid = imei;
+					mui.openWindow({
+						url: 'equipManage_scd_detail.html',
+						id: 'equipManage_scd_detail',
+						extras: {
+							'equipId': imei
+						},
+					})
+				})
+
+				//搜索操作
+				$("#searchInp").on('keypress', function(e) {
+					var keycode = e.keyCode;
+					if(keycode == '13') {
+						e.preventDefault();
+						//请求搜索接口  
+						if(mui('#searchInp')[0].value) {
+							$('#dataList').html('');
+							getListData({
+								num: 1,
+								size: 10
+							})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+					}
+				})
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({
+							num: 1,
+							size: 10
+						})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+			</script>
+	</body>
+
+</html>

+ 898 - 0
equipManage/equipManage_scd_detail.html

@@ -0,0 +1,898 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<style type="text/css">
+			.mui-content {
+				background: #fff;
+			}
+			
+			.iconfont {
+				font-size: 35px;
+				color: #3bb9e7;
+				/*font-weight: bold;*/
+				line-height: 80px;
+				margin: 10px 10px 10px 20px;
+			}
+			
+			.equipState {
+				font-size: 18px;
+				margin-top: 14px;
+				color: #333;
+			}
+			
+			.conversion {
+				width: 110px;
+			}
+			
+			#detial>div {
+				border-bottom: 2px solid #eee;
+			}
+			
+			#detial>div:nth-of-type(odd) {
+				border-right: 2px solid #eee;
+			}
+			
+			.mui-table-view:after,
+			.mui-table-view:before {
+				height: 2px;
+				background-color: #eee;
+			}
+			
+			@media(max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+			/*查看详情*/
+			
+			.areaTitle {
+				color: #424242;
+				padding-left: 5px;
+				border-left: 5px solid #5870f6;
+				font-weight: bold;
+				font-size: 16px;
+			}
+			
+			.detialBox .fa {
+				padding-right: 5px;
+				color: #ff6e00;
+			}
+			/**/
+			
+			.controlVal {
+				position: absolute;
+				top: 50%;
+				right: 35px;
+				-webkit-transform: translateY(-50%);
+				transform: translateY(-50%);
+			}
+			
+			#controlBtn {
+				width: 80%;
+				/*height: 0px;*/
+				background: white;
+				position: fixed;
+				top: 24%;
+				left: 50%;
+				margin-left: -40%;
+			}
+			/*移除底部或顶部三角,需要在删除此代码*/
+			
+			.mui-popover .mui-popover-arrow:after {
+				width: 0px;
+			}
+			/*定时模式控制*/
+			
+			.mask {
+				position: fixed;
+				top: 0;
+				right: 0;
+				bottom: 0;
+				left: 0;
+				color: #333;
+				background: rgba(0, 0, 0, .4);
+				z-index: 20;
+				display: none;
+			}
+			
+			.sidebar {
+				position: fixed;
+				width: 100%;
+				bottom: 0;
+				left: 0;
+				background: #fff;
+				border-radius: 10px 10px 0 0;
+				/*animation:slideUpIn .3s ease-in-out;*/
+			}
+			
+			.sidebar>div {
+				padding: 15px;
+			}
+			
+			.sidebar>div select {
+				border: 1px solid rgba(0, 0, 0, .2) !important;
+			}
+			
+			@keyframes slideUpIn {
+				0% {
+					-webkit-transform: translate3d(0, 90%, 0);
+					transform: translate3d(0, 90%, 0)
+				}
+				to {
+					-webkit-transform: translateZ(0);
+					transform: translateZ(0)
+				}
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">杀虫灯设备</h1>
+			<!--<a id="openPopover" class="mui-icon mui-icon-more mui-pull-right"></a>-->
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll">
+				<div id="dataList">
+					<ul class="mui-table-view" id="equip">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">设备信息</h1>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipId"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipName"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="upl_time"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="lat_lng"></p>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<li class="mui-table-view-cell" id="clock">
+							<a class="mui-navigate-right">
+								<i class="fa fa-clock-o" aria-hidden="true"></i> 定时模式
+								<span class="controlVal">光控</span>
+							</a>
+						</li>
+						<!--<li class="mui-table-view-cell" id="timingBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-clock-o" aria-hidden="true"></i> 定时时长
+								<span class="controlVal">4</span>
+							</a>
+						</li>-->
+						<li class="mui-table-view-cell" id="switchBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-power-off" aria-hidden="true"></i> 设备开关
+								<span class="controlVal">开</span>
+							</a>
+						</li>
+						<!--<li class="mui-table-view-cell" id="startBar">
+							<a class="mui-navigate-right">
+								<i class="fa fa-power-off" aria-hidden="true"></i> 起始时间
+								<span class="controlVal">3</span>
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="stopBar">
+							<a class="mui-navigate-right">
+								<i class="fa fa-power-off" aria-hidden="true"></i> 结束时间
+								<span class="controlVal">2</span>
+							</a>
+						</li>--> 
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="debugBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-wrench" aria-hidden="true"></i> 调试
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="refreshBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-refresh" aria-hidden="true"></i> 查询最新状态
+							</a>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<li class="mui-table-view-cell" id="clock">
+							<a class="mui-navigate-right">
+								<i class="fa fa-clock-o" aria-hidden="true"></i> 定时模式
+								<span class="controlVal">光控</span>
+							</a>
+						</li>
+						<!--<li class="mui-table-view-cell" id="timingBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-clock-o" aria-hidden="true"></i> 定时时长
+								<span class="controlVal">4</span>
+							</a>
+						</li>-->
+						<li class="mui-table-view-cell" id="switchBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-power-off" aria-hidden="true"></i> 设备开关
+								<span class="controlVal">开</span>
+							</a>
+						</li>
+						<!--<li class="mui-table-view-cell" id="startBar">
+							<a class="mui-navigate-right">
+								<i class="fa fa-power-off" aria-hidden="true"></i> 起始时间
+								<span class="controlVal">3</span>
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="stopBar">
+							<a class="mui-navigate-right">
+								<i class="fa fa-power-off" aria-hidden="true"></i> 结束时间
+								<span class="controlVal">2</span>
+							</a>
+						</li>--> 
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="debugBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-wrench" aria-hidden="true"></i> 调试
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="refreshBtn">
+							<a class="mui-navigate-right">
+								<i class="fa fa-refresh" aria-hidden="true"></i> 查询最新状态
+							</a>
+						</li>
+					</ul>
+					<div class="mui-row" id="detial">
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe698;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="ds">开</p>
+								<p class="equipFun">设备开关</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe60b;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="ws">待机</p>
+								<p class="equipFun">工作状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xeaae;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="tt">4</p>
+								<p class="equipFun">定时时长</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe64c;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="lps">正常</p>
+								<p class="equipFun">光控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe633;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="tps">正常</p>
+								<p class="equipFun">温控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe635;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="rps">正常</p>
+								<p class="equipFun">雨控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe622;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="tbs">正常</p>
+								<p class="equipFun">灯管状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe78d;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="dps">正常</p>
+								<p class="equipFun">倾倒状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe60a;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="csq">29</p>
+								<p class="equipFun">信号强度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe65f;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState conversion" id="dver">1.0.1</p>
+								<p class="equipFun">版本型号</p>
+							</div>
+						</div>
+					</div>
+					
+				</div>
+			</div>
+			<div class="mask" id="mask">
+				<div class="sidebar" id="sidebar">
+					<div>
+						<div>
+							定时模式:
+							<select name="" id="switchover">
+								<option value="0">光控</option>
+								<option value="1">时控</option>
+							</select>
+						</div>
+						<div id="durationParent">
+							定时时长:
+							<select name="" id="duration">
+								<option value="0">常亮</option>
+								<option value="1">1小时</option>
+								<option value="2">2小时</option>
+								<option value="3">3小时</option>
+								<option value="4">4小时</option>
+								<option value="5">5小时</option>
+								<option value="6">6小时</option>
+								<option value="7">7小时</option>
+							</select>
+						</div>
+						<div id="timeHourParent">
+							<p>定时时间:</p>
+							<select name="" id="begin" style="width: 47%;">
+								<option value="0">0点</option>
+								<option value="1">1点</option>
+								<option value="2">2点</option>
+								<option value="3">3点</option>
+								<option value="4">4点</option>
+								<option value="5">5点</option>
+								<option value="6">6点</option>
+								<option value="7">7点</option>
+								<option value="8">8点</option>
+								<option value="9">9点</option>
+								<option value="10">10点</option>
+								<option value="11">11点</option>
+								<option value="12">12点</option>
+								<option value="13">13点</option>
+								<option value="14">14点</option>
+								<option value="15">15点</option>
+								<option value="16">16</option>
+								<option value="17">17点</option>
+								<option value="18">18点</option>
+								<option value="19">19点</option>
+								<option value="20">20点</option>
+								<option value="21">21点</option>
+								<option value="22">22点</option>
+								<option value="23">23点</option>
+							</select>
+							至
+							<select name="" id="end" style="width: 47%;">
+								<option value="0">0点</option>
+								<option value="1">1点</option>
+								<option value="2">2点</option>
+								<option value="3">3点</option>
+								<option value="4">4点</option>
+								<option value="5">5点</option>
+								<option value="6">6点</option>
+								<option value="7">7点</option>
+								<option value="8">8点</option>
+								<option value="9">9点</option>
+								<option value="10">10点</option>
+								<option value="11">11点</option>
+								<option value="12">12点</option>
+								<option value="13">13点</option>
+								<option value="14">14点</option>
+								<option value="15">15点</option>
+								<option value="16">16</option>
+								<option value="17">17点</option>
+								<option value="18">18点</option>
+								<option value="19">19点</option>
+								<option value="20">20点</option>
+								<option value="21">21点</option>
+								<option value="22">22点</option>
+								<option value="23">23点</option>
+							</select>
+						</div>
+						<div class="">
+							<button type="button" id="saveStatus" data-loading-icon="mui-spinner mui-spinner-custom" class="mui-btn mui-btn-primary">确认</button>
+						</div>
+					</div>
+				</div>
+
+			</div>
+			
+			<div id="popover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 310px;background-color: #fff;">
+				<div class="mui-popover-arrow"></div>
+				<!--<div class="popoverheader">
+					<div class="text"></div>
+					<a href="#popover"><img src="../image/close.png" alt=""></a>
+				</div>-->
+				<div id="simDetial">
+					
+				</div>
+				<div class="mui-table-view mui-table-view-chevron next">
+					<a href="#popover" class="x-next add">我知道了</a>
+				</div>
+			</div>
+		</div>
+		<div id="map" style="display: none;"></div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			var equipId;
+			var equiccID;
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				$('#equipId').html('设备ID:' + equipId);
+				console.log(equipId);
+				downCallback()
+				var map = new BMap.Map("map"); //
+				geoc = new BMap.Geocoder();
+				//定时时长
+				document.getElementById("switchover").addEventListener('change', function() {
+					console.log($(this).val())
+					if($(this).val() == 1) { //时控
+						$('#durationParent').hide();
+						$('#timeHourParent').show();
+					} else {
+						$('#durationParent').show();
+						$('#timeHourParent').hide();
+					}
+				})
+				document.getElementById("clock").addEventListener('tap', function() {
+					$('.mask').show();
+					$('#sidebar').css('animation', 'slideUpIn .1s ease-in-out')
+
+				})
+				$('#saveStatus').on('tap', function(e) {
+					mui(this).button('loading');
+					var id = [];
+					id.push(equipId);
+					mui.ajax('http://120.27.222.26/scd_mqtt', {
+						data: {
+							'sw': 'timer',
+							'topicid': JSON.stringify(id),
+							ts: $('#switchover').val(),
+							hours: $('#duration').val(),
+							begin: $('#begin').val(),
+							end: $('#end').val()
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							setTimeout(function(){
+								plus.nativeUI.closeWaiting();
+							},2000)
+						},
+						success: function(data) {
+							if(data == 0) {
+								mui.toast('设置成功');
+								setTimeout(function(){
+									window.location.reload();
+									$('#saveStatus').button('reset');
+								},2000)
+								
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							mui.toast('数据请求失败');
+						}
+					})
+				});
+				document.getElementById("sidebar").addEventListener('tap', function(event) {
+					event.stopPropagation()
+				})
+				document.getElementById("mask").addEventListener('tap', function(e) {
+					$('.mask').hide();
+				})
+				//下拉刷新的回调
+				function downCallback() {
+					$.ajax({
+						url: 'http://120.27.222.26/app_equipmanage_detail',
+						data: {
+							'etype': 'scd',
+							'equip_id': equipId,
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							console.log(JSON.stringify(data))
+							var equip_name = data.equip_name || '无';
+							$('#equipName').html('设备名称:' + equip_name);
+							$('#upl_time').html('上报时间:' + data.upl_time);
+							var stat = eval('(' + data.scd_status + ')');
+							var point = new BMap.Point(stat.lng, stat.lat);
+							geoc.getLocation(point, function (rs) {
+							    var addComp = rs.addressComponents;
+								$('#lat_lng').html('位置:'  + addComp.province + ", " + addComp.city + ", " + addComp.district);
+							});
+							equiccID = stat.iccid
+							var ds = stat.ds == 0 ? '关' : '开';
+							$('#ds').html(ds);
+							$('#switchBtn .controlVal').html(ds);
+							var ws = '';
+							if(stat.ws == 0) ws = "待机";
+							else if(stat.ws == 1) ws = "工作";
+							else if(stat.ws == 2) ws = "充电";
+							$('#ws').html(ws);
+							var tt = '';
+							if(stat.tcs == 1) {  //时控
+								$('#tt').html(stat.st + '-' + stat.et);
+//								$('#timingBtn').hide();
+//								$('#switchBtn').hide();
+//								$('#startBar').show();
+//								$('#stopBar').show();
+							} else {
+								if(stat.tt == 0) tt = "常亮";
+								else tt = stat.tt;
+								$('#tt').html(tt);
+//								$('#timingBtn').show();
+//								$('#switchBtn').show();
+//								$('#startBar').hide();
+//								$('#stopBar').hide();
+							}
+							
+							var lps = stat.lps == 0 ? '夜晚' : '白天';
+							$('#lps').html(lps);
+							var tps = stat.tps == 0 ? '正常' : '异常';
+							if(stat.tcs == 1) { //时控
+								$('#clock .controlVal').html('时控');
+								$('#durationParent').hide();
+								$('#timeHourParent').show();
+								$('#switchover').val(1)
+							} else {
+								$('#clock .controlVal').html('光控');
+								$('#timeHourParent').hide();
+								$('#durationParent').show();
+								$('#switchover').val(0)
+							}
+							$('#tps').html(tps);
+							var rps = stat.rps == 0 ? '正常' : '保护';
+							$('#rps').html(rps);
+							var tbs = stat.tbs == 0 ? '正常' : '异常';
+							$('#tbs').html(tbs);
+							var dps = stat.dps == 0 ? '正常' : '异常';
+							$('#dps').html(dps);
+							$('#csq').html(stat.csq);
+							$('#dver').html(stat.dver);
+						},
+						error: function(xhr, type, errorThrown) {
+							//联网失败的回调,隐藏下拉刷新的状态
+							mescroll.endErr();
+							mui.toast('数据请求失败');
+						}
+					});
+				}
+
+				//定时时长
+//				document.getElementById("timingBtn").addEventListener('tap', function() {
+//					var picker = new mui.PopPicker();
+//					picker.setData([{
+//						value: "0",
+//						text: "常亮"
+//					}, {
+//						value: "1",
+//						text: "1小时"
+//					}, {
+//						value: "2",
+//						text: "2小时"
+//					}, {
+//						value: "3",
+//						text: "3小时"
+//					}, {
+//						value: "4",
+//						text: "4小时"
+//					}, {
+//						value: "5",
+//						text: "5小时"
+//					}, {
+//						value: "6",
+//						text: "6小时"
+//					}, {
+//						value: "7",
+//						text: "7小时"
+//					}])
+//					picker.show(function(getSelectedItems) {
+//						console.log(getSelectedItems[0].value);
+//						var id = [];
+//						id.push(equipId);
+//						mui.ajax('http://120.27.222.26/scd_mqtt', {
+//							data: {
+//								'sw': 'tt',
+//								'topicid': JSON.stringify(id),
+//								'hours': getSelectedItems[0].value
+//							},
+//							dataType: 'json', //服务器返回json格式数据
+//							type: 'post', //HTTP请求类型
+//							timeout: 10000, //超时时间设置为10秒;
+//							beforeSend: function() {
+//								plus.nativeUI.showWaiting('请求中...');
+//							},
+//							complete: function() {
+//								plus.nativeUI.closeWaiting();
+//							},
+//							success: function(data) {
+//								if(data == 0) {
+//									mui.toast('设置成功');
+//								}
+//							},
+//							error: function(xhr, type, errorThrown) {
+//								$('#equiplist').empty();
+//								mui('.mui-content')[0].appendChild(netStyle('../images/error.png'));
+//								mui.toast('数据请求失败');
+//							}
+//						})
+//					})
+//					picker.hide = function() {
+//						var self = this;
+//						self.panel.classList.remove(mui.className('active'));
+//						self.mask.close();
+//						document.body.classList.remove(mui.className('poppicker-active-for-page'));
+//						//处理物理返回键
+//						mui.back = self.__back;
+//					}
+//				});
+
+				//设备开关
+				document.getElementById("switchBtn").addEventListener('tap', function() {
+					var picker = new mui.PopPicker();
+					picker.setData([{
+						value: "1",
+						text: "开启"
+					}, {
+						value: "0",
+						text: "关闭"
+					}])
+					picker.show(function(getSelectedItems) {
+						console.log(getSelectedItems[0].value)
+						var curSelect = getSelectedItems[0].value;
+						var id = [];
+						id.push(equipId);
+						mui.ajax('http://120.27.222.26/scd_mqtt', {
+							data: {
+								'sw': 'timer',
+								'topicid': JSON.stringify(id),
+								'ds': getSelectedItems[0].value
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								if(data == 0) {
+									mui.toast('设置成功');
+									if(curSelect) {
+										$('#switchBtn .controlVal').html('开')
+									} else {
+										$('#switchBtn .controlVal').html('关')
+									}
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								$('#equiplist').empty();
+								//								mui('.mui-content')[0].appendChild(netStyle('../images/error.png'));
+								mui.toast('数据请求失败');
+							}
+						})
+					})
+					picker.hide = function() {
+						var self = this;
+						self.panel.classList.remove(mui.className('active'));
+						self.mask.close();
+						document.body.classList.remove(mui.className('poppicker-active-for-page'));
+						//处理物理返回键
+						mui.back = self.__back;
+					}
+				});
+
+				//查询
+				$('#refreshBtn').on('tap', function() {
+					var id = [];
+					id.push(equipId);
+					mui.ajax('http://120.27.222.26/scd_mqtt', {
+						data: {
+							'sw': 'read',
+							'topicid': JSON.stringify(id),
+							'kind': 'status'
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							setTimeout(function() {
+								plus.nativeUI.closeWaiting();
+							}, 5000)
+						},
+						success: function(data) {
+							setTimeout(function() {
+								location.reload();
+							}, 5000)
+						},
+						error: function(xhr, type, errorThrown) {
+							mui.toast('请求失败!')
+						}
+					});
+				})
+				
+				//调试
+				$('#debugBtn').on('tap', function() {
+					var id = [];
+					id.push(equipId);
+					mui.ajax('http://120.27.222.26/scd_mqtt', {
+						data: {
+							'sw': 'test',
+							'topicid': JSON.stringify(id),
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							setTimeout(function() {
+//								plus.nativeUI.closeWaiting();
+								mui.toast('调试成功!')
+							}, 5000)
+						},
+						success: function(data) {
+							setTimeout(function() {
+								location.reload();
+							}, 5000)
+						},
+						error: function(xhr, type, errorThrown) {
+							mui.toast('调试失败!')
+						}
+					});
+				})
+				
+				//sim卡查新  
+				document.getElementById('simCodeSearch').addEventListener('tap', function() {
+					console.log(equiccID)
+					if(equiccID) {
+						$.ajax({
+							url: 'http://120.27.222.26/siminfo',
+							data: {
+								simid: equiccID,
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								var dat = data.data;
+								if(data.code == 0) {
+									var status;
+									if(dat.account_status == "0") {
+										status = "未知";
+									} else if(dat.account_status == "1") {
+										status = "测试期";
+									} else if(dat.account_status == "2") {
+										status = "沉默期";
+									} else if(dat.account_status == "3") {
+										status = "使用中";
+									} else if(dat.account_status == "4") {
+										status = "停机";
+									} else if(dat.account_status == "5") {
+										status = "停机保号";
+									} else if(dat.account_status == "6") {
+										status = "预销号";
+									} else if(dat.account_status == "7") {
+										status = "销号";
+									}
+									var usage;
+									if(dat.iccid) {
+										usage = dat.data_usage;
+									} else {
+										usage.innerHTML = '--';
+									}
+									var balance;
+									if(dat.iccid) {
+										balance = dat.data_balance;
+									} else {
+										balance = '--';
+									}
+									var time;
+									if(dat.iccid) {
+										var timestamp4 = new Date(dat.expiry_date * 1000); //直接用 new Date(时间戳) 格式转化获得当前时间
+										time = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
+									} else {
+										time = '--';
+									}
+									html = '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">SIM卡查询结果<br>ICCID:' + equiccID + '<br><br>状态:' + status + '<br>套餐:' + dat.data_plan + 'Mb<br>已用流量:' + usage + 'Mb<br>剩余流量:' + balance + 'Mb<br>到期时间:' + time + '</div>'
+									$('#simDetial').html(html);
+									mui('.mui-popover').popover('show', document.getElementById("popover"));
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+
+					} else {
+						mui.toast('未查询到SIM卡号');
+					}
+				})
+			})
+		</script>
+	</body>
+
+</html>

+ 174 - 0
equipManage/equipManage_ybq.html

@@ -0,0 +1,174 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">诱捕器设备</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+						<input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+
+				</ul>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/mui.min.js"></script>
+
+			<script type="text/javascript">
+				mui.init()
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop: { //配置回到顶部按钮
+							src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset: 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+							use: true // 是否开启懒加载,默认false
+						}
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page) {
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData);
+					}, function() {
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+						mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData) {
+					var html = '';
+					//				var listDom=document.getElementById("dataList");
+					var dat = curPageData;
+					for(var i = 0; i < dat.length; i++) {
+						var equip_name = dat[i].equip_name || '无';
+						var equipicon = '';
+						if(dat[i].is_online == 0) {
+							equipicon = '../images/red.png';
+						} else if(dat[i].is_online == 1) {
+							equipicon = '../images/green.png';
+						}
+						html += '<li data-id="' + dat[i].equip_id + '"><div class="equipItem"><div class="equipItem_top">' +
+							'<div class="equipTitle"><img class="equipIdIcon" src="../images/IDicon.png" width="22"/>' +
+							'<span class="">' + dat[i].equip_id + '</span><img class="equipType" src="' + equipicon + '" width="26"/>' +
+							'</div><div class="equipItem_line"></div></div><div class="equipItem_bottom">' +
+							'<div class="equipMsg"><label>设备名称</label><div class="equipVal equipName">' + equip_name + '</div></div>' +
+							'<div class="equipMsg"><label>上报时间</label><div class="equipVal">' + dat[i].upl_time + '</div>' +
+							'</div></div></div></li>';
+					}
+					$('#dataList').append(html);
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+					console.log(pageNum)
+					$.ajax({
+						type: 'POST',
+						url: 'http://120.27.222.26/app_equipmanage',
+						timeout: 10000, //超时时间设置,单位毫秒
+						data: {
+							'etype': 'ybq',
+							'page': pageNum,
+							'filter': mui('#searchInp')[0].value,
+						},
+						dataType: 'json',
+						success: function(data) {
+							successCallback(data.dat, data.nums);
+						},
+						error: function() {
+							errorCallback();
+						}
+					});
+				}
+
+				var markingid = '' //用于记录点击的当前id 以便刷新
+				window.addEventListener('refresh', function(event) { //如果详情页面更改数据  才页面刷新
+					$('#dataList li').each(function() {
+						if(markingid == $(this).data('id')) {
+							$(this).find('.equipName').html(event.detail.markingEquipName);
+						}
+					})
+				})
+				//进入详情页面
+				mui('#dataList').on('tap', 'li', function() {
+					var imei = this.getAttribute('data-id');
+					markingid = imei;
+					mui.openWindow({
+						url: 'equipManage_ybq_detail.html',
+						id: 'equipManage_ybq_detail',
+						extras: {
+							'equipId': imei
+						},
+					})
+				})
+
+				//搜索操作
+				$("#searchInp").on('keypress', function(e) {
+					var keycode = e.keyCode;
+					if(keycode == '13') {
+						e.preventDefault();
+						//请求搜索接口  
+						if(mui('#searchInp')[0].value) {
+							getListData({
+								num: 1,
+								size: 10
+							})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+					}
+				})
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						getListData({
+							num: 1,
+							size: 10
+						})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+			</script>
+	</body>
+
+</html>

+ 521 - 0
equipManage/equipManage_ybq_detail.html

@@ -0,0 +1,521 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<style type="text/css">
+			.mui-content {
+				background: #fff;
+			}
+			
+			.iconfont {
+				font-size: 35px;
+				color: #3bb9e7;
+				/*font-weight: bold;*/
+				line-height: 80px;
+				margin: 10px 10px 10px 20px;
+			}
+			
+			.equipState {
+				font-size: 18px;
+				margin-top: 14px;
+				color: #333;
+			}
+			
+			#detial>div {
+				border-bottom: 2px solid #eee;
+			}
+			
+			#detial>div:nth-of-type(odd) {
+				border-right: 2px solid #eee;
+			}
+			
+			.mui-table-view:after,
+			.mui-table-view:before {
+				height: 2px;
+				background-color: #eee;
+			}
+			
+			@media(max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+			/*查看详情*/
+			.areaTitle {
+			    color: #424242;
+			    padding-left: 5px;
+			    border-left: 5px solid #5870f6;
+			    font-weight: bold;
+			    font-size: 16px;
+			}
+			.detialBox .fa{
+				padding-right: 5px;
+    			color: #ff6e00;
+			}
+			/**/
+			.controlVal{
+				position: absolute;
+			    top: 50%;
+			    right: 35px;
+			    -webkit-transform: translateY(-50%);
+			     transform: translateY(-50%); 
+			}
+			#controlBtn {
+				width: 80%;
+				/*height: 0px;*/
+				background: white;
+				position: fixed;
+				top: 24%;
+				left: 50%;
+				margin-left: -40%;
+			}
+			/*移除底部或顶部三角,需要在删除此代码*/
+			.mui-popover .mui-popover-arrow:after {
+				width: 0px;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title">杀虫灯设备</h1>
+			<!--<a id="openPopover" class="mui-icon mui-icon-more mui-pull-right"></a>-->
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll">
+				<div id="dataList">
+					<ul class="mui-table-view" id="equip">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">设备信息</h1>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipId"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipName"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="upl_time"></p>
+						</li>
+					</ul>
+					<div class="mui-row" id="detial">
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe698;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="ds">开</p>
+								<p class="equipFun">设备开关</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe60b;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="ws">待机</p>
+								<p class="equipFun">工作状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xeaae;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="tt">4</p>
+								<p class="equipFun">定时模式</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe64c;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="lps">正常</p>
+								<p class="equipFun">光控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe633;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="tps">正常</p>
+								<p class="equipFun">温控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe635;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="rps">正常</p>
+								<p class="equipFun">雨控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe622;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="tbs">正常</p>
+								<p class="equipFun">灯管状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe78d;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="dps">正常</p>
+								<p class="equipFun">倾倒状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe60a;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="csq">29</p>
+								<p class="equipFun">信号强度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-6">
+							<div class="mui-pull-left">
+								<i class="iconfont">&#xe65f;</i>
+							</div>
+							<div class="mui-pull-left ">
+								<p class="equipState" id="dver">1.0.1</p>
+								<p class="equipFun">版本型号</p>
+							</div>
+						</div>
+					</div>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+					    <li class="mui-table-view-cell" id="clock">
+					        <a class="mui-navigate-right">
+					        	<i class="fa fa-clock-o" aria-hidden="true"></i>
+					        	定时模式
+					        	<span class="controlVal">光控</span>
+					        </a>
+					    </li>
+					    <li class="mui-table-view-cell" id="timingBtn">
+					        <a class="mui-navigate-right">
+					        	<i class="fa fa-clock-o" aria-hidden="true"></i>
+					        	定时时长
+					        	<span class="controlVal">4</span>
+					        </a>
+					    </li>
+					    <li class="mui-table-view-cell" id="switchBtn">
+					        <a class="mui-navigate-right">
+					        	<i class="fa fa-power-off" aria-hidden="true"></i>
+					        	设备开关
+					        	<span class="controlVal">开</span>
+					        </a>
+					    </li>
+					    <li class="mui-table-view-cell" id="startBar">
+					        <a class="mui-navigate-right">
+					        	<i class="fa fa-power-off" aria-hidden="true"></i>
+					        	起始时间
+					        	<span class="controlVal">3</span>
+					        </a>
+					    </li>
+					    <li class="mui-table-view-cell" id="stopBar">
+					        <a class="mui-navigate-right">
+					        	<i class="fa fa-power-off" aria-hidden="true"></i>
+					        	结束时间
+					        	<span class="controlVal">2</span>
+					        </a>
+					    </li>
+					    <li class="mui-table-view-cell" id="refreshBtn">
+					        <a class="mui-navigate-right">
+					        	<i class="fa fa-refresh" aria-hidden="true"></i>
+					        	查询最新状态
+					        </a>
+					    </li>
+					</ul>
+				</div>
+			</div>
+		</div>
+		<div id="aaa" style="display: none;">
+			sdvsdvsdvsd
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/mescroll.min.js" charset="utf-8"></script>
+		<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript">
+			var equipId;
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				$('#equipId').html('设备ID:'+equipId);
+				console.log(equipId);
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					down: {
+						callback: downCallback //下拉刷新的回调,别写成downCallback(),多了括号就自动执行方法了
+					},
+				});
+				ws=plus.webview.currentWebview();
+
+				//修改操作
+				document.getElementById('openPopover').addEventListener('tap', function() {
+					mui('#popover').popover('toggle', document.getElementById('controlBtn'));
+				})
+				//定时时长
+				document.getElementById("clock").addEventListener('tap', function() {
+					// 显示遮罩层
+//					ws.setStyle({mask:"rgba(0,0,0,0.5)"});
+//					$('#aaa').show()
+					// 点击关闭遮罩层
+//					ws.addEventListener("maskClick",function(){
+//					  ws.setStyle({mask:"none"});
+//					},false);
+				})
+				//下拉刷新的回调
+				function downCallback() {
+					$.ajax({
+						url: 'http://120.27.222.26/app_equipmanage_detail',
+						data: {
+							'etype': 'scd',
+							'equip_id': equipId,
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							//联网成功的回调,隐藏下拉刷新的状态;
+							mescroll.endSuccess(); //无参. 注意结束下拉刷新是无参的
+							var equip_name = data.equip_name || '无';
+							$('#equipName').html('设备名称:' + equip_name);
+							$('#upl_time').html('上报时间:' + data.upl_time);
+							var stat = eval('(' + data.scd_status + ')');
+							var ds = stat.ds == 0 ? '关' : '开';
+							$('#ds').html(ds);
+							var ws = '';
+							if(stat.ws == 0) ws = "待机";
+							else if(stat.ws == 1) ws = "工作";
+							else if(stat.ws == 2) ws = "充电";
+							$('#ws').html(ws);
+							var tt = '';
+							if(stat.tt == 1){
+								$('#timingBtn').hide();
+								$('#switchBtn').hide();
+								$('#startBar').show();
+								$('#stopBar').show();
+							}else{
+								$('#timingBtn').show();
+								$('#switchBtn').show();
+								$('#startBar').hide();
+								$('#stopBar').hide();
+							}
+							if(stat.tt == 0) tt = "常亮";
+							else tt = stat.tt;
+							$('#tt').html(tt);
+							var lps = stat.lps == 0 ? '正常' : '异常';
+							$('#lps').html(lps);
+							var tps = stat.tps == 0 ? '正常' : '异常';
+							$('#tps').html(tps);
+							var rps = stat.rps == 0 ? '正常' : '异常';
+							$('#rps').html(rps);
+							var tbs = stat.tbs == 0 ? '正常' : '异常';
+							$('#tbs').html(tbs);
+							var dps = stat.dps == 0 ? '正常' : '异常';
+							$('#dps').html(dps);
+							$('#csq').html(stat.csq);
+							$('#dver').html(stat.dver);
+						},
+						error: function(xhr, type, errorThrown) {
+							//联网失败的回调,隐藏下拉刷新的状态
+							mescroll.endErr();
+							mui.toast('数据请求失败');
+						}
+					});
+				}
+				
+				//定时时长
+				document.getElementById("timingBtn").addEventListener('tap', function() {
+					var picker = new mui.PopPicker();
+					picker.setData([{
+						value: "0",
+						text: "常亮"
+					}, {
+						value: "1",
+						text: "1小时"
+					}, {
+						value: "2",
+						text: "2小时"
+					}, {
+						value: "3",
+						text: "3小时"
+					}, {
+						value: "4",
+						text: "4小时"
+					}, {
+						value: "5",
+						text: "5小时"
+					}, {
+						value: "6",
+						text: "6小时"
+					}, {
+						value: "7",
+						text: "7小时"
+					}])
+					picker.show(function(getSelectedItems) {
+						console.log(getSelectedItems[0].value);
+						var id = [];
+						id.push(equipId);
+						mui.ajax('http://120.27.222.26/scd_mqtt', {
+							data: {
+								'sw': 'tt',
+								'topicid': JSON.stringify(id),
+								'hours': getSelectedItems[0].value
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								if(data == 0){
+									mui.toast('设置成功');
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								$('#equiplist').empty();
+								mui('.mui-content')[0].appendChild(netStyle('../images/error.png'));
+								mui.toast('数据请求失败');
+							}
+						})
+					})
+					picker.hide = function(){
+						var self = this;
+						self.panel.classList.remove(mui.className('active'));
+						self.mask.close();
+						document.body.classList.remove(mui.className('poppicker-active-for-page'));
+						//处理物理返回键
+						mui.back=self.__back;
+					}
+				});
+
+
+				//设备开关
+				document.getElementById("switchBtn").addEventListener('tap', function() {
+					var picker = new mui.PopPicker();
+					picker.setData([{
+						value: "0",
+						text: "开启"
+					}, {
+						value: "1",
+						text: "关闭"
+					}])
+					picker.show(function(getSelectedItems) {
+						console.log(getSelectedItems[0].value)
+						var id = [];
+						id.push(equipId);
+						mui.ajax('http://120.27.222.26/scd_mqtt', {
+							data: {
+								'sw': 'ds',
+								'topicid': JSON.stringify(id),
+								'ds': getSelectedItems[0].value
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								if(data == 0){
+									mui.toast('设置成功');
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								$('#equiplist').empty();
+								mui('.mui-content')[0].appendChild(netStyle('../images/error.png'));
+								mui.toast('数据请求失败');
+							}
+						})
+					})
+					picker.hide = function(){
+						var self = this;
+						self.panel.classList.remove(mui.className('active'));
+						self.mask.close();
+						document.body.classList.remove(mui.className('poppicker-active-for-page'));
+						//处理物理返回键
+						mui.back=self.__back;
+					}
+				});
+				
+				//查询
+				$('#refreshBtn').on('tap',function(){
+					var id = [];
+					id.push(equipId);
+					mui.ajax('http://120.27.222.26/scd_mqtt',{
+						data:{
+							'sw': 'read',
+							'topicid': JSON.stringify(id),
+							'kind': 'status'
+						},
+						dataType:'json',//服务器返回json格式数据
+						type:'post',//HTTP请求类型
+						timeout: 10000,//超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							setTimeout(function () {
+			                    plus.nativeUI.closeWaiting();
+			                }, 5000)
+						},
+						success:function(data){
+							setTimeout(function () {
+			                    location.reload();
+			                }, 5000)
+						},
+						error:function(xhr,type,errorThrown){
+							mui.toast('请求失败!')
+						}
+					});
+				})
+				
+			})
+			
+
+		</script>
+	</body>
+
+</html>

+ 401 - 0
equipManage/lookImage_jk.html

@@ -0,0 +1,401 @@
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<title>Hello MUI</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<!--标准mui.css-->
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/iconfont.css">
+		<link rel="stylesheet" href="../css/reset.css">
+		<link rel="stylesheet" href="../css/common.css">
+		<!--App自定义的css-->
+		<style type="text/css">
+			.mui-preview-image.mui-fullscreen {
+				position: fixed;
+				z-index: 20;
+				background-color: #000;
+			}
+			
+			.mui-preview-header,
+			.mui-preview-footer {
+				position: absolute;
+				width: 100%;
+				left: 0;
+				z-index: 10;
+			}
+			
+			.mui-preview-header {
+				height: 44px;
+				top: 0;
+			}
+			
+			.mui-preview-footer {
+				height: 50px;
+				bottom: 0px;
+			}
+			
+			.mui-preview-header .mui-preview-indicator {
+				display: block;
+				line-height: 25px;
+				color: #fff;
+				text-align: center;
+				margin: 15px auto 4;
+				width: 70px;
+				background-color: rgba(0, 0, 0, 0.4);
+				border-radius: 12px;
+				font-size: 16px;
+			}
+			
+			.mui-preview-image {
+				display: none;
+				-webkit-animation-duration: 0.5s;
+				animation-duration: 0.5s;
+				-webkit-animation-fill-mode: both;
+				animation-fill-mode: both;
+			}
+			
+			.mui-preview-image.mui-preview-in {
+				-webkit-animation-name: fadeIn;
+				animation-name: fadeIn;
+			}
+			
+			.mui-preview-image.mui-preview-out {
+				background: none;
+				-webkit-animation-name: fadeOut;
+				animation-name: fadeOut;
+			}
+			
+			.mui-preview-image.mui-preview-out .mui-preview-header,
+			.mui-preview-image.mui-preview-out .mui-preview-footer {
+				display: none;
+			}
+			
+			.mui-zoom-scroller {
+				position: absolute;
+				display: -webkit-box;
+				display: -webkit-flex;
+				display: flex;
+				-webkit-box-align: center;
+				-webkit-align-items: center;
+				align-items: center;
+				-webkit-box-pack: center;
+				-webkit-justify-content: center;
+				justify-content: center;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				top: 0;
+				width: 100%;
+				height: 100%;
+				margin: 0;
+				-webkit-backface-visibility: hidden;
+			}
+			
+			.mui-zoom {
+				-webkit-transform-style: preserve-3d;
+				transform-style: preserve-3d;
+			}
+			
+			.mui-slider .mui-slider-group .mui-slider-item img {
+				width: auto;
+				height: auto;
+				max-width: 100%;
+				max-height: 100%;
+			}
+			
+			.mui-android-4-1 .mui-slider .mui-slider-group .mui-slider-item img {
+				width: 100%;
+			}
+			
+			.mui-android-4-1 .mui-slider.mui-preview-image .mui-slider-group .mui-slider-item {
+				display: inline-table;
+			}
+			
+			.mui-android-4-1 .mui-slider.mui-preview-image .mui-zoom-scroller img {
+				display: table-cell;
+				vertical-align: middle;
+			}
+			
+			.mui-preview-loading {
+				position: absolute;
+				width: 100%;
+				height: 100%;
+				top: 0;
+				left: 0;
+				display: none;
+			}
+			
+			.mui-preview-loading.mui-active {
+				display: block;
+			}
+			
+			.mui-preview-loading .mui-spinner-white {
+				position: absolute;
+				top: 50%;
+				left: 50%;
+				margin-left: -25px;
+				margin-top: -25px;
+				height: 50px;
+				width: 50px;
+			}
+			
+			.mui-preview-image img.mui-transitioning {
+				-webkit-transition: -webkit-transform 0.5s ease, opacity 0.5s ease;
+				transition: transform 0.5s ease, opacity 0.5s ease;
+			}
+			
+			@-webkit-keyframes fadeIn {
+				0% {
+					opacity: 0;
+				}
+				100% {
+					opacity: 1;
+				}
+			}
+			
+			@keyframes fadeIn {
+				0% {
+					opacity: 0;
+				}
+				100% {
+					opacity: 1;
+				}
+			}
+			
+			@-webkit-keyframes fadeOut {
+				0% {
+					opacity: 1;
+				}
+				100% {
+					opacity: 0;
+				}
+			}
+			
+			@keyframes fadeOut {
+				0% {
+					opacity: 1;
+				}
+				100% {
+					opacity: 0;
+				}
+			}
+			
+			p img {
+				max-width: 100%;
+				height: auto;
+			}
+			
+			#dataList .item {
+				padding: 10px;
+				position: relative;
+			}
+			
+			#dataList .item .photoTxt {
+				color: #24b2e7;
+				padding: 5px 0;
+			}
+			
+			#dataList .item .delPhoto {
+				float: right;
+			}
+			
+			.mui-media-object {
+				width: 100%;
+			}
+			/*操作*/
+			
+			.mui-table-view.mui-grid-view .mui-table-view-cell.operateRight {
+				/*padding-left: 0;*/
+			}
+			
+			.mui-table-view-cell p {
+				text-align: left;
+				padding-left: 20px;
+				font-size: 16px;
+				line-height: 24px;
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+			}
+			
+			.mui-table-view-cell p:last-child {
+				font-size: 15px;
+			}
+			
+			.activeBj {
+				background: #eee;
+			}
+			
+			.mui-table-view-cell p i {
+				margin-right: 15px;
+				color: #007AFF;
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+		</style>
+
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title"></h1>
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+					<!--<li class="item">
+						<div >
+							<img class="mui-media-object" src="../images/shuijiao.jpg" data-preview-src="" data-preview-group="1">
+						</div>
+						<div class="photoTxt">
+							<span>2017-6-12 10:09</span>
+							<span class="delPhoto"><i class="iconfont">&#xe65c;</i>删除</span>
+						</div>
+					</li>-->
+				</ul>
+			</div>
+		</div>
+	</body>
+	<script src="../js/jquery-2.1.0.js"></script>
+	<script src="../js/mui.min.js"></script>
+	<script src="../js/mui.zoom.js"></script>
+	<script src="../js/mescroll.min.js" charset="utf-8"></script>
+	<script src="../js/mui.previewimage.js"></script>
+	<script>
+		var equipId;
+		var startPage = 1;
+		var totalPage = 0;
+		var username;
+		mui.plusReady(function() {
+			var self = plus.webview.currentWebview();
+			equipId = self.equipId;
+			console.log(equipId)
+			$('#title').html('设备:' + equipId);
+			//默认第一次加载数据
+			//			requestData();
+			username = plus.storage.getItem('username');
+			mescroll = new MeScroll("scrollPlace", {
+				up: {
+					callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+					isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+					clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+					toTop: { //配置回到顶部按钮
+						src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+						offset: 700
+					},
+					empty: {
+						//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+						warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+						icon: "../images/listNull.png", //图标,默认null,支持网络图
+						tip: "暂无相关数据~" //提示
+					},
+					htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+					noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+					lazyLoad: {
+						use: true // 是否开启懒加载,默认false
+					}
+				}
+			});
+		})
+
+		/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+		function getListData(page) {
+			//联网加载数据
+			getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+				//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+				//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+				//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+				mescroll.endSuccess(totalSize);
+				//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+				setListData(curPageData);
+			}, function() {
+				//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+				mescroll.endErr();
+				mui.toast('数据请求失败');
+			});
+		}
+		/*设置列表数据*/
+		function setListData(curPageData) {
+			var html = '';
+			var dat = curPageData;
+			//				var dat = data.img;
+			for(var i = 0; i < dat.length; i++) {
+				html += '<li class="item"><div >' +
+					'<img class="mui-media-object" data-addr="'+dat[i].addr+'" src="http://120.27.222.26/' + dat[i].addr + '" data-preview-src="" data-preview-group="1">' +
+					'</div><div class="photoTxt"><span>' + dat[i].upl_time + '</span>' +
+					'<span class="delPhoto"><i class="iconfont">&#xe65c;</i>删除</span></div></li>';
+			}
+			$('#dataList').append(html)
+		}
+		/*联网加载列表数据*/
+		function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+			mui.ajax('http://120.27.222.26/app_jk_img', {
+				data: {
+					'page': pageNum,
+					'equip_id': equipId
+				},
+				dataType: 'json', //服务器返回json格式数据
+				type: 'post', //HTTP请求类型
+				timeout: 10000, //超时时间设置为10秒;
+				beforeSend: function() {
+					plus.nativeUI.showWaiting('请求中...');
+				},
+				complete: function() {
+					plus.nativeUI.closeWaiting();
+				},
+				success: function(data) {
+					successCallback(data.img, data.nums);
+				},
+				error: function(xhr, type, errorThrown) {
+
+				}
+			});
+		}
+
+		//图片轮播
+		mui.previewImage();
+
+		//删除
+		mui('#dataList').on('tap', '.delPhoto', function() {
+			var _this = this;
+			var path = $(_this).parents('.item').find('.mui-media-object').data('addr');
+			mui.confirm(' ', '是否删除?', ['取消', '确定'], function(e) {
+				if(e.index == 1) {
+					mui.ajax('http://120.27.222.26/jkimage_del', {
+						data: {
+							'addr': path,
+							'imei': equipId
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						success: function(data) {
+							if(data == 1) {
+								window.location.reload();
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							mui.toast('删除失败')
+						}
+					})
+				}
+			}, 'div')
+
+		})
+	</script>
+
+</html>

+ 193 - 0
equipManage/sex_trap.html

@@ -0,0 +1,193 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<link rel="stylesheet" type="text/css" href="../css/equipList.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">性诱设备</h1>
+		</header>
+		<div class="mui-content">
+			<div class="searchBox">
+				<div class="searchControl">
+					<div class="mui-input-row mui-search">
+						<input type="search" id="searchInp" class="mui-input-clear" placeholder="请输入设备ID">
+					</div>
+					<button id="searchBtn" class="searchBtn">搜索</button>
+				</div>
+			</div>
+			<div id="scrollPlace" class="mescroll">
+				<!--id可以改,而"mescroll"的class不能删-->
+				<ul id="dataList">
+
+				</ul>
+			</div>
+			<script src="../js/jquery-2.1.0.js"></script>
+			<script src="../js/mescroll.min.js" charset="utf-8"></script>
+			<script src="../js/mui.min.js"></script>
+
+			<script type="text/javascript">
+				mui.init()
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				var mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop: { //配置回到顶部按钮
+							src: "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset: 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId: "dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+							use: true // 是否开启懒加载,默认false
+						}
+					}
+				});
+				/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+				function getListData(page) {
+					//联网加载数据
+					getListDataFromNet(page.num, page.size, function(curPageData, totalSize) {
+						//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+						//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+						//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+						mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
+						//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+						setListData(curPageData);
+					}, function() {
+						//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+						mescroll.endErr();
+						mui.toast('数据请求失败');
+					});
+				}
+				/*设置列表数据*/
+				function setListData(curPageData) {
+					var html = '';
+					//				var listDom=document.getElementById("dataList");
+					var dat = curPageData;
+					for(var i = 0; i < dat.length; i++) {
+						if(dat[i].type == 1){							
+							var type = 'I';
+						}else if(dat[i].type == 2){							
+							var type = 'II';
+						}
+						var equipicon = '';
+						if(dat[i].is_online == 0) {
+							equipicon = '../images/red.png';
+						} else if(dat[i].is_online == 1) {
+							equipicon = '../images/green.png';
+						}
+						var equip_code = dat[i].equip_code?dat[i].equip_code:'--';
+						html += '<li data-type="'+dat[i].type+'" data-id="' + dat[i].equip_id + '"><div class="equipItem"><div class="equipItem_top">' +
+							'<div class="equipTitle"><img class="equipIdIcon" src="../images/IDicon.png" width="22"/>' +
+							'<span class="">' + dat[i].equip_id + '</span><img class="equipType" src="' + equipicon + '" width="26"/>' +
+							'</div><div class="equipItem_line"></div></div><div class="equipItem_bottom">' +
+							'<div class="equipMsg"><label>设备类型</label><div class="equipVal equipName">' + type + '</div></div>' +
+							'<div class="equipMsg"><label>设备编号</label><div class="equipVal">' + equip_code + '</div>' +
+							'</div></div></div></li>';
+					}
+					$('#dataList').append(html);
+				}
+				/*联网加载列表数据*/
+				function getListDataFromNet(pageNum, pageSize, successCallback, errorCallback) {
+					console.log(pageNum)
+					$.ajax({
+						type: 'POST',
+						url: 'http://120.27.222.26/app_equipmanage',
+						timeout: 10000, //超时时间设置,单位毫秒
+						data: {
+							'etype': 'xycb',
+							'page': pageNum,
+							'filter': mui('#searchInp')[0].value,
+						},
+						dataType: 'json',
+						success: function(data) {
+							successCallback(data.dat, data.nums);
+						},
+						error: function() {
+							errorCallback();
+						}
+					});
+				}
+
+				var markingid = '' //用于记录点击的当前id 以便刷新
+				window.addEventListener('refresh', function(event) { //如果详情页面更改数据  才页面刷新
+					$('#dataList li').each(function() {
+						if(markingid == $(this).data('id')) {
+							$(this).find('.equipName').html(event.detail.markingEquipName);
+						}
+					})
+				})
+				//进入详情页面
+				mui('#dataList').on('tap', 'li', function() {
+					var imei = this.getAttribute('data-id');
+					var type = this.getAttribute('data-type');
+					markingid = imei;
+					if(type == 1){
+						mui.openWindow({
+							url: 'sex_trap_detail1.html',
+							id: 'sex_trap_detail1',
+							extras: {
+								'equipId': imei
+							},
+						})
+					}else if(type == 2){
+						mui.openWindow({
+							url: 'sex_trap_detail2.html',
+							id: 'sex_trap_detail2',
+							extras: {
+								'equipId': imei
+							},
+						})
+					}
+					
+				})
+
+				//搜索操作
+				$("#searchInp").on('keypress', function(e) {
+					var keycode = e.keyCode;
+					if(keycode == '13') {
+						e.preventDefault();
+						//请求搜索接口  
+						if(mui('#searchInp')[0].value) {
+							$('#dataList').html('');
+							getListData({
+								num: 1,
+								size: 10
+							})
+						} else {
+							mui.toast("请输入设备ID");
+						}
+					}
+				})
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					if(mui('#searchInp')[0].value) {
+						$('#dataList').html('');
+						getListData({
+							num: 1,
+							size: 10
+						})
+					} else {
+						mui.toast("请输入设备ID");
+					}
+				})
+			</script>
+	</body>
+
+</html>

+ 828 - 0
equipManage/sex_trap_detail1.html

@@ -0,0 +1,828 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link href="../css/common.css" rel="stylesheet" />
+
+		<style type="text/css">
+			.mui-content {
+				background: #fff;
+			}
+			
+			.iconfont {
+				font-size: 35px;
+				color: #3bb9e7;
+				/*font-weight: bold;*/
+				line-height: 80px;
+				margin: 10px 10px 10px 20px;
+			}
+			
+			.equipState {
+				font-size: 18px;
+				margin-top: 14px;
+				color: #333;
+				text-align: -webkit-center;
+				color: #21b2e7;
+			}
+			
+			#detial>div {
+				border-bottom: 2px solid #eee;
+			}
+			
+			#detial>div:nth-of-type(odd) {
+				/*border-right: 2px solid #eee;*/
+			}
+			
+			.mui-table-view:after,
+			.mui-table-view:before {
+				height: 2px;
+				background-color: #eee;
+			}
+			
+			@media(max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+			/*设置*/
+			
+			#detial .mui-navigate-right {
+				line-height: 80px;
+			}
+			
+			#detial .mui-navigate-right:after,
+			#detial .mui-push-right:after {
+				font-size: 33px;
+				color: #3bb9e7;
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+			
+			.areaTitle {
+				color: #424242;
+				padding-left: 5px;
+				border-left: 5px solid #5870f6;
+				font-weight: bold;
+				font-size: 16px;
+			}
+			
+			.detialBox .fa {
+				padding-right: 5px;
+				color: #ff6e00;
+			}
+			#adminOperate{
+				display: none;
+			}
+			.btns{
+				padding-top: 20px;
+				text-align: center;
+			}
+			.btns p{
+				margin: 10px 0;
+			}
+			.btns p button{
+				width: 120px;
+				border-radius: 50px;
+			}
+			.equipFun {
+			    text-align: -webkit-center;
+			}
+			/*设备数据*/
+			.equipmentBox {
+				margin: 80px 0 0 0;
+			}
+			.annular {
+				background: url(../images/annular.png);
+				background-repeat:no-repeat;
+				background-position: center;
+				height: 150px;
+				/*height: 100%;*/
+				width: 33%;
+				background-size: 100%;
+			}
+			.equipmentBox_val {
+
+			}
+			.unit {
+				font-size: 15px;
+			}
+			.stateList {
+				/*border: 1px solid #000;*/
+				width: 30%;
+			}
+			#detial {
+				margin-left: 16px;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">性诱设备</h1>
+			<a class="headRightIcon mui-icon mui-icon-loop mui-pull-right" onclick="location.reload();"></a>
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll">
+				<div id="dataList">
+					<ul class="mui-table-view" id="equip">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">设备信息</h1>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipId"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipName"></p>
+						</li>
+						<!--<li class="mui-table-view-cell">
+							<p id="equipCode"></p>
+						</li>-->
+						<li class="mui-table-view-cell">
+							<p id="equipType"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="upl_time"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="lat_lng"></p>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<li class="mui-table-view-cell" id="configuration">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cogs" aria-hidden="true"></i> 设备配置
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="lookHistoryData">
+							<a class="mui-navigate-right">
+								<i class="fa fa-list" aria-hidden="true"></i> 查看历史数据
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="debug">
+							<a class="mui-navigate-right">
+								<i class="fa fa-wrench" aria-hidden="true"></i> 调试
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="adminOperate">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cog" aria-hidden="true"></i> 操作
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+					</ul>
+					
+					
+					<div class="mui-table-view-cell">
+						<h1 class="areaTitle">设备状态</h1>
+					</div>
+					<!--测试-->
+						<div class="mui-row" id="detial">
+						<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState" id="ds"></p>
+								<p class="equipFun">设备开关</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState" id="onOff"></p>
+								<p class="equipFun">工作状态</p>
+							</div>
+						</div>
+						<!--<div class="mui-col-sm-3">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState" id="ws"></p>
+								<p class="equipFun">电池状态</p>
+							</div>
+						</div>-->
+						<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState" id="cs"></p>
+								<p class="equipFun">充电状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState" id="rps"></p>
+								<p class="equipFun">雨控状态</p>
+							</div>
+						</div>
+
+						<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState" id="tps"></p>
+								<p class="equipFun">温控状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState" id="dps"></p>
+								<p class="equipFun">倾倒状态</p>
+							</div>
+						</div>
+						<!--<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState">--</p>
+								<p class="equipFun">--</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="mui-pull-left">
+							</div>
+							<div class="">
+								<p class="equipState">--</p>
+								<p class="equipFun">--</p>
+							</div>
+						</div>-->
+					</div>
+					<!--测试-->
+					
+					
+					<!--设备数据测试-->
+					<div class="mui-table-view-cell">
+						<h1 class="areaTitle">设备数据</h1>
+					</div>
+					<div class="mui-row" id="detial">
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="cv"></p>
+								<p class="equipFun">充电电压</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="bv"></p>
+								<p class="equipFun">电池电压</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="at"></p>
+								<p class="equipFun">环境温度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="ah"></p>
+								<p class="equipFun">环境湿度</p>
+							</div>
+						</div>
+
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="infr_ct"></p>
+								<p class="equipFun">红外计数值</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="volt_ct"></p>
+								<p class="equipFun">高压计数值</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="wind_drec"></p>
+								<p class="equipFun">风向</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="wind_sped"></p>
+								<p class="equipFun">风速</p>
+							</div>
+						</div>
+						<!--<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="cs"></p>
+								<p class="equipFun">数据上传间隔</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="cs"></p>
+								<p class="equipFun">信号强度</p>
+							</div>
+						</div>-->
+					</div>
+					<!--设备数据测试-->
+					
+					
+				</div>
+			</div>
+			<!--调试框-->
+			<div id="debugPopover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 220px;background-color: #fff;border-radius: 10px 10px 0 0;">
+				<div class="mui-popover-arrow"></div>
+				<div class="btns">
+					<p><button type="button" onclick="popupFrame('开启设备',7)" class="mui-btn mui-btn-danger">开启</button></p>
+					<p><button type="button" onclick="popupFrame('关闭设备',8)" class="mui-btn mui-btn-danger">关闭</button></p>
+					<p><button type="button" onclick="popupFrame('重启设备',1)" class="mui-btn mui-btn-danger">重启</button></p>
+					<p><button type="button" onclick="popupFrame('进行清网',9)" class="mui-btn mui-btn-danger">清网</button></p>
+				</div>
+			</div>
+			<!--操作框-->
+			<div id="operatePopover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 300px;background-color: #fff;border-radius: 10px 10px 0 0;">
+				<div class="mui-popover-arrow">1</div>
+				<div class="btns">
+					<p><button type="button" onclick="popupFrame('开启设备',7)" class="mui-btn mui-btn-danger">开启</button></p>
+					<p><button type="button" onclick="popupFrame('关闭设备',8)" class="mui-btn mui-btn-danger">关闭</button></p>
+					<p><button type="button" onclick="popupFrame('重启设备',1)" class="mui-btn mui-btn-danger">重启</button></p>
+					<p><button type="button" onclick="popupFrame('进行清网',9)" class="mui-btn mui-btn-danger">清网</button></p>
+					<p><button type="button" onclick="popupFrame('升级',2)" class="mui-btn mui-btn-danger">升级</button></p>
+					<p><button type="button" onclick="popupFrame('查询mqtt网络配置',3)" class="mui-btn mui-btn-danger">mqtt网络配置</button></p>
+				</div>
+			</div>
+			<!--sim卡-->
+			<div id="popover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 310px;background-color: #fff;">
+				<div class="mui-popover-arrow"></div>
+				<!--<div class="popoverheader">
+					<div class="text"></div>
+					<a href="#popover"><img src="../image/close.png" alt=""></a>
+				</div>-->
+				<div id="simDetial">
+					
+				</div>
+				<div class="mui-table-view mui-table-view-chevron next">
+					<a href="#popover" class="x-next add">我知道了</a>
+				</div>
+			</div>
+			<!--mqtt网络配置-->
+			<div id="mqttConf" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 310px;background-color: #fff;">
+				<div class="mui-popover-arrow"></div>
+				<!--<div class="popoverheader">
+					<div class="text"></div>
+					<a href="#popover"><img src="../image/close.png" alt=""></a>
+				</div>-->
+				<div id="mqttConfDetial">
+					
+				</div>
+				<div class="mui-table-view mui-table-view-chevron next">
+					<a href="#mqttConf" class="x-next add">我知道了</a>
+				</div>
+			</div>
+		</div>
+		<div id="map" style="display: none;"></div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			var equipId;
+			var iccid;
+			//配置需要参数
+			var confDatF;
+			var confTurnT;
+			var confPicT;
+			var confPicF;
+			var confSt;
+			var confEt;
+			var confTs;
+			
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				$('#equipId').html('设备ID:' + equipId);
+				console.log(equipId);
+				downCallback()
+				var isuser = plus.storage.getItem('isuser');
+				if(isuser == 'admin'){
+					$('#adminOperate').show();
+				}
+				var map = new BMap.Map("map"); //
+				geoc = new BMap.Geocoder();
+				function downCallback() {
+					$.ajax({
+						url: 'http://120.27.222.26/app_equipmanage_detail',
+						data: {
+							'etype': 'xycb',
+							'equip_id': equipId,
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						success: function(data) {
+							var equip_name = data.equip_name || '无';
+							$('#equipName').html('设备名称:' + equip_name);
+							$('#upl_time').html('上报时间:' + data.upl_time);
+							var stat = eval('(' + data.ybq_status + ')');
+							var point = new BMap.Point(stat.lng, stat.lat);
+							geoc.getLocation(point, function (rs) {
+							    var addComp = rs.addressComponents;
+								$('#lat_lng').html('位置:'  + addComp.province + ", " + addComp.city + ", " + addComp.district);
+							});
+							$('#equipCode').html('设备编号:' + stat.dev_num);
+							if(stat.proj == "SEX_TRAP_1"){								
+								$('#equipType').html('设备型号:I');
+							}else if(stat.proj == "SEX_TRAP_2"){								
+								$('#equipType').html('设备型号:II');
+							}
+							var ds = stat.ds == 0 ? '关闭' : '开机';
+							$('#ds').html(ds);
+							var onOff = data.is_online == 0 ? '离线' : '在线';
+							$('#onOff').html(onOff);
+							var ws = stat.ws == 0 ? '待机' : '工作';
+							$('#ws').html(ws);
+							if(stat.bs != ''){
+								if(stat.bs == 0){
+									var bs = '正常';
+								}else if(stat.bs == 1){
+									var bs = '欠压';
+								}else if(stat.bs == 2){
+									var bs = '过压';
+								}
+								$('#bs').html(bs);
+							}else{
+								$('#bs').html('--');
+							}
+							
+							if(stat.bv != ''){
+								$('#bv').html(stat.bv/1000 + '<span class="unit">v</span>');
+							}else{
+								$('#bv').html('--');
+							}
+							if(stat.cv !== ''){								
+								$('#cv').html(stat.cv/1000 + '<span class="unit">v</span>');
+							}else{
+								$('#cv').html('--');
+							}
+							$('#dver').html(stat.dver);
+							if(stat.cs !== ''){		
+								var cs = stat.cs == 0 ? '未充电' : '充电';
+							}else{
+								var cs = '--';
+							}
+							if (stat.rps !== '') {
+									var rps = stat.rps == 0 ? '正常' : '雨控'
+							} else {
+								var rps = '--'
+							}
+							if (stat.tps !== '') {
+								var tps = stat.tps == 0 ? '正常' : '温控'
+							} else {
+								var tps = '--'
+							}
+							if (stat.dps !== '') {
+								var dps = stat.dps == 0 ? '正常' : '倾倒'
+							} else {
+								var dps = '--'
+							}
+							if (stat.infr_ct !== '') {
+								var infr_ct = stat.infr_ct
+							} else {
+								var infr_ct = '--'
+							}
+							if (stat.volt_ct !== '') {
+								var volt_ct = stat.volt_ct
+							} else {
+								var volt_ct = '--'
+							}
+							if (stat.wind_drec !== '') {
+								var wind_drec = stat.wind_drec
+							} else {
+								var wind_drec = '--'
+							}
+							if (stat.wind_sped !== '') {
+								var wind_sped = stat.wind_sped
+							} else {
+								var wind_sped = '--'
+							}
+							$('#wind_sped').html(wind_sped + '<span class="unit">M/S</span>')
+							$('#wind_drec').html(wind_drec)
+ 							$('#volt_ct').html(volt_ct)
+							$('#infr_ct').html(infr_ct)
+							$('#dps').html(dps)
+							$('#tps').html(tps)
+							$('#rps').html(rps)
+							$('#cs').html(cs);
+							$('#dat_f').html(stat.dat_f);
+							$('#cpu_tmp').html(stat.cpu_tmp/1000);
+							$('#csq').html(stat.csq);
+							if(stat.at != ''){								
+								$('#at').html(stat.at + '<span class="unit">°C</span>');
+							}else{
+								$('#at').html('-');
+							}
+							if(stat.ah != ''){
+								$('#ah').html(stat.ah + '<span class="unit">RH</span>');								
+							}else{
+								$('#ah').html('--');	
+							}
+							iccid = stat.iccid;
+							confDatF = stat.dat_f;
+							confTurnT = stat.turn_t;
+							confPicT = stat.pic_t;
+							confPicF = stat.pic_f;
+							confSt = stat.st
+							confEt = stat.et
+							confTs = stat.ts
+						},
+						error: function(xhr, type, errorThrown) {
+							//联网失败的回调,隐藏下拉刷新的状态
+							mescroll.endErr();
+							mui.toast('数据请求失败');
+						}
+					});
+				}
+				
+				//查看图片
+//				document.getElementById('lookImg').addEventListener('tap', function() {
+//					mui.openWindow({
+//						url: 'sex_trap_photo2.html',
+//						id: 'sex_trap_photo2',
+//						extras: {
+//							equipId: equipId,
+//						}
+//					})
+//				})
+				//配置
+				document.getElementById('configuration').addEventListener('tap', function() {
+					console.log(confDatF)
+					console.log(confEt)
+					console.log(confDatF)
+					console.log(confSt)
+					mui.openWindow({
+						url: 'sex_trap_detail1_config.html',
+						id: 'sex_trap_detail1_config',
+						extras: {
+							equipId: equipId,
+							confDatF: confDatF,
+							confTurnT: confTurnT,
+							confPicT: confPicT,
+							confPicF: confPicF,
+							confSt: confSt,
+							confEt: confEt,
+							confTs: confTs,
+							
+						}
+					})
+				})
+				//sim卡查新  
+				document.getElementById('simCodeSearch').addEventListener('tap', function() {
+					if(iccid) {
+						$.ajax({
+							url: 'http://120.27.222.26/siminfo',
+							data: {
+								simid: iccid,
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								var dat = data.data;
+								if(data.code == 0) {
+									var status;
+									if(dat.account_status == "0") {
+										status = "未知";
+									} else if(dat.account_status == "1") {
+										status = "测试期";
+									} else if(dat.account_status == "2") {
+										status = "沉默期";
+									} else if(dat.account_status == "3") {
+										status = "使用中";
+									} else if(dat.account_status == "4") {
+										status = "停机";
+									} else if(dat.account_status == "5") {
+										status = "停机保号";
+									} else if(dat.account_status == "6") {
+										status = "预销号";
+									} else if(dat.account_status == "7") {
+										status = "销号";
+									}
+									var usage;
+									if(dat.iccid) {
+										usage = dat.data_usage;
+									} else {
+										usage.innerHTML = '--';
+									}
+									var balance;
+									if(dat.iccid) {
+										balance = dat.data_balance;
+									} else {
+										balance = '--';
+									}
+									var time;
+									if(dat.iccid) {
+										var timestamp4 = new Date(dat.expiry_date * 1000); //直接用 new Date(时间戳) 格式转化获得当前时间
+										time = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
+									} else {
+										time = '--';
+									}
+									html = '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">SIM卡查询结果<br>ICCID:' + iccid + '<br><br>状态:' + status + '<br>套餐:' + dat.data_plan + 'Mb<br>已用流量:' + usage + 'Mb<br>剩余流量:' + balance + 'Mb<br>到期时间:' + time + '</div>'
+									$('#mqttConfDetial').html(html);
+									mui('.mui-popover').popover('show', document.getElementById("popover"));
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+
+					} else {
+						mui.toast('未查询到SIM卡号');
+					}
+				})
+				//统计详情
+//				document.getElementById('lookStatsData').addEventListener('tap', function() {
+//					mui.openWindow({
+//						url: 'sex_trap_detail_echart.html',
+//						id: 'sex_trap_detail_echart',
+//						extras: {
+//							equipId: equipId
+//						}
+//					})
+//				})
+				//历史数据
+				document.getElementById('lookHistoryData').addEventListener('tap', function() {
+					mui.openWindow({
+						url: 'sex_trap_detail_list.html',
+						id: 'sex_trap_detail_list',
+						extras: {
+							equipId: equipId
+						}
+					})
+				})
+				//调试
+				document.getElementById('debug').addEventListener('tap', function() {
+					mui('#debugPopover').popover('show', document.getElementById("debug"));
+				})
+				//操作
+				document.getElementById('adminOperate').addEventListener('tap', function() {
+					mui('#operatePopover').popover('show', document.getElementById("adminOperate"));
+				})
+			})
+			
+			function popupFrame(txt,flag){
+				var txtMsg = '是否'+ txt +'?';
+				mui.confirm(txtMsg,'控制',['取消','确定'],function(e){
+					if(e.index == 0){
+//						alert(0)
+					}else if(e.index == 1){
+						if(flag == 1){
+			                var data = {
+			                  ext:'reboot',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 2){
+			                var data = {
+			                  ext:'update',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 3){
+			                var data = {
+			                  ext:'mqttconf',
+			                }
+			                var fun = function(){
+				                setTimeout(function(){
+				                    mui.ajax('http://120.27.222.26/sex_mqtt_detail', {
+					                    type:'post',
+					                    data:{
+					                        e_id:equipId
+					                    },
+				                      	dataType:'json',
+					                    beforeSend: function() {
+											plus.nativeUI.showWaiting("分配中...");
+										},
+										complete: function() {											
+											plus.nativeUI.closeWaiting();
+										},
+				                      	success:function(data){
+				                          var content='<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">ip:'+data.ip+'<br />port:'+data.port+'<br />sub:'+data.sub+'<br />pub:'+data.pub+'<br />lastwill:'+data.lastwill+'<br />keepalive:'+data.keepalive+'<br />username:'+data.username+'<br />stamp:'+data.stamp+'</div>';
+				                          $('#mqttConfDetial').html(content);
+				                          mui('.mui-popover').popover('toggle',document.getElementById("mqttConf"));
+				                      	},
+				                      	error:function(type){
+				                        	console.log(type)
+				                      	}
+				                    })
+				                },500)
+			                };
+			            }else if(flag == 4){
+			                var data = {
+			                  ext:'takephoto',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 5){
+			                var data = {
+			                  ext:'turn',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 6){
+			                var data = {
+			                  ext:'repower',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 7){
+			                var data = {
+			                  ext:'ds1',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 8){
+			                var data = {
+			                  ext:'ds0',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 9){
+			                var data = {
+			                  ext:'clearnet',
+			                }
+			                var fun = function(){};
+			            }
+			            sendCtrlFun(data,fun)
+					}
+				},'div')
+			}
+			
+			function sendCtrlFun(data,callback){
+		        data.e_id = equipId;
+		        mui.ajax('http://120.27.222.26/sex_mqtt_v1', {
+		          type:'post',
+		          data:data,
+		           beforeSend: function() {
+						plus.nativeUI.showWaiting("分配中...");
+					},
+					complete: function() {
+						plus.nativeUI.closeWaiting();
+					},
+		          success:function(data){
+		            if(data == 0){
+		              callback();
+		              mui.toast('下发成功',{ duration:'long', type:'div' }) 
+		            }
+		          },
+		          error:function(type){
+		            console.log(type)
+		          }
+		        })
+		    }
+		</script>
+	</body>
+
+</html>

+ 470 - 0
equipManage/sex_trap_detail1_config.html

@@ -0,0 +1,470 @@
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<title>Hello MUI</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<!--标准mui.css-->
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+
+		<link rel="stylesheet" href="../css/common.css">
+		<link rel="stylesheet" href="../css/iconfont.css">
+		<!--<link rel="stylesheet" href="../css/rangeslider.css">-->
+		<link rel="stylesheet" href="http://www.yfzhwlw.com/static/lib/css/jquery-ui.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.poppicker.css" />
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<!--App自定义的css-->
+		<style type="text/css">
+			.mui-table-view-cell.mui-active {
+				background-color: #fff;
+			}
+			
+			.mui-input-range .mui-tooltip {
+				display: none;
+			}
+			
+			.mui-radio input[type=radio] {
+				top: -2px;
+			}
+			
+			.equipOption {
+				color: #21B2E7 !important;
+				margin-bottom: 15px;
+			}
+			
+			.mui-checkbox input[type=checkbox]:before,
+			.mui-radio input[type=radio]:before {
+				font-size: 22px;
+			}
+			/*提交按钮*/
+			
+			.equipTitle {
+				color: #21b2e7;
+				font-size: 14px;
+			}
+			
+			.mui-table-view-cell p {
+				color: #333;
+				font-size: 16px;
+				margin-top: 4px;
+			}
+			/*单选按钮*/
+			
+			.mui-radio label {
+				padding-right: 37px;
+			}
+			/*滑块*/
+			.sliderParent{
+				display: flex;
+				align-items: center;
+			}
+			.sliderParent >div{
+				flex: 1;
+				margin: 0 10px;
+			}
+			
+			/*.sliderDiv {
+				width: 80%;
+				display: inline-block;
+			}*/
+			
+			.rangeslider--horizontal {
+				height: 12px;
+			}
+			
+			.rangeslider__fill {
+				background: #7ed7ff;
+			}
+			
+			.rangeslider__handle {
+				width: 20px;
+				height: 20px;
+			}
+			
+			.rangeslider--horizontal .rangeslider__handle {
+				top: -5px;
+			}
+			
+			.rangeslider__handle:after {
+				width: 8px;
+				height: 8px;
+			}
+			
+			.equipOptionInitVal {
+				display: inline-block;
+				width: 15px;
+				text-align: right;
+			}
+			/*滑块颜色*/
+			.ui-widget-content{
+				background: #e0e0e0;
+			}
+			.ui-widget-header{
+				background: #21b2e7;
+			}
+			/*开始结束时间选择*/
+			
+			.timeItem {
+				border: 1px solid #e6e6e6;
+				margin-bottom: 5px;
+				line-height: 30px;
+				border-radius: 5px;
+				margin-top: 5px;
+			}
+			
+			.timeItem>button {
+				border: none;
+				background: #e6e6e6;
+				margin-right: 10px;
+			}
+		</style>
+
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title"></h1>
+			<!--<a class="headRightIcon fa fa-cloud-upload mui-pull-right" onclick="sendData()">提交</a>-->
+		</header>
+		<div class="mui-content">
+			<ul class="mui-table-view">
+				<li class="mui-table-view-cell">
+					<p class="equipOption">数据上传时间间隔:</p>
+					<div class="sliderParent">
+						<span class="equipOptionInitVal">10</span>
+							<div class="sliderDiv">
+								<div class="slider" id="dropTime-slider"></div>
+							</div>
+						<span id="dropTime">120</span>
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<div>时控开关</div>
+					<div class="mui-switch mui-switch-mini mui-switch-blue" id="ReceiveNews">
+						<div class="mui-switch-handle"></div>
+					</div>
+				</li>
+				<li class="mui-table-view-cell" id="timePattern">
+					<p class="equipOption">时控开始和结束时间:</p>
+					<div class="">
+						<div class="timeItem">
+							<button id='pickTimeBtn' type="button" class="mui-btn">开始时间</button><span id="begin"></span>
+						</div>
+						<div class="timeItem">
+							<button id='pickTimeBtn2' type="button" class="mui-btn">结束时间</button><span id="end"></span>
+						</div>
+					</div>
+				</li>
+			</ul>
+		</div>
+	</body>
+	<script src="../js/mui.min.js"></script>
+	<script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
+	<!--<script src="../js/rangeslider.js"></script>-->
+	<script src="http://www.yfzhwlw.com/static/lib/js/jquery-ui.min.js"></script>
+	<script src="http://www.yfzhwlw.com/static/lib/js/jquery.ui.touch-punch.min.js"></script>
+	<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+	<script src="../js/common.js"></script>
+	<script>
+		mui.init();
+		var equipId;
+		var confDatF;
+		var confTurnT;
+		var confPicT;
+		var confPicF;
+		var confSt;
+		var confEt;
+		var confTs;
+		mui.plusReady(function() {
+			var self = plus.webview.currentWebview();
+			equipId = self.equipId;
+			confDatF = self.confDatF || 10;
+			confTurnT = self.confTurnT || 0;
+			confPicT = self.confPicT || 0;
+			confPicF = self.confPicF || 1;
+			confSt = self.confSt
+			confEt = self.confEt
+			confTs = self.confTs
+			document.getElementById("title").innerHTML = equipId;
+			// 数据上传时间间隔
+		     $("#dropTime-slider").css('width', '100%').slider({
+		        value: confDatF,
+		        range: "min",
+		        min: 10,
+		        max: 120,
+		        step: 10,
+		        slide: function (event, ui) {
+		          	var val = parseInt(ui.value);
+		          	$('#dropTime').html(val);
+		        },
+		        stop: function( event, ui ) {
+			        console.log(ui.value)
+			        $('#dropTime').html(ui.value);
+			        mui.confirm('是否修改数据上传时间?','上报时间',['取消','确定'],function(e){
+			        	console.log(e.index)
+			        	if (e.index == 1) {
+			        		//数据上传时间间隔
+	                        var data = {
+				                ext:'data_tim',
+				                dat_f:ui.value,
+				            }
+		                    sendCtrlFun(data,function(){
+				                confDatF = ui.value;
+				            })
+	                    }else{
+	                    	$("#dropTime-slider").slider('value', confDatF); 
+				      		$('#dropTime').html(confDatF);
+	                    }
+			        },'div')
+		        	
+		        }
+		    });
+		    $('#dropTime').html(confDatF);
+		  
+
+			mui('#begin')[0].innerHTML = confSt;
+			mui('#end')[0].innerHTML = confEt;
+		})
+		
+		function sendCtrlFun(data,callback){
+	        data.e_id = equipId;
+	        mui.ajax('http://120.27.222.26/sex_mqtt_v1', {
+	          type:'post',
+	          data:data,
+	          success:function(data){
+	            if(data == 0){
+	              callback();
+	            }
+	          },
+	          error:function(type){
+	            console.log(type)
+	          }
+	        })
+	    }
+
+
+		// 将对应值写入对应文本框
+		function valueOutput(element) {
+			var value = element.value;
+			var output = element.parentNode.nextElementSibling;
+			output.innerHTML = value;
+		}
+		//自定义时间值
+		var picker;
+
+		function PopPicker() {
+			picker = new mui.PopPicker();
+			picker.setData([{
+				value: "0",
+				text: "0"
+			}, {
+				value: "1",
+				text: "1"
+			}, {
+				value: "2",
+				text: "2"
+			}, {
+				value: "3",
+				text: "3"
+			}, {
+				value: "4",
+				text: "4"
+			}, {
+				value: "5",
+				text: "5"
+			}, {
+				value: "6",
+				text: "6"
+			}, {
+				value: "7",
+				text: "7"
+			}, {
+				value: "8",
+				text: "8"
+			}, {
+				value: "9",
+				text: "9"
+			}, {
+				value: "10",
+				text: "10"
+			}, {
+				value: "11",
+				text: "11"
+			}, {
+				value: "12",
+				text: "12"
+			}, {
+				value: "13",
+				text: "13"
+			}, {
+				value: "14",
+				text: "14"
+			}, {
+				value: "15",
+				text: "15"
+			}, {
+				value: "16",
+				text: "16"
+			}, {
+				value: "17",
+				text: "17"
+			}, {
+				value: "18",
+				text: "18"
+			}, {
+				value: "19",
+				text: "19"
+			}, {
+				value: "20",
+				text: "20"
+			}, {
+				value: "21",
+				text: "21"
+			}, {
+				value: "22",
+				text: "22"
+			}, {
+				value: "23",
+				text: "23"
+			}, ])
+		}
+		function PopPicker2() {
+			picker = new mui.PopPicker();
+			picker.setData([{
+				value: "1",
+				text: "1"
+			},{
+				value: "2",
+				text: "2"
+			}, {
+				value: "3",
+				text: "3"
+			}, {
+				value: "4",
+				text: "4"
+			}, {
+				value: "6",
+				text: "6"
+			}, {
+				value: "8",
+				text: "8"
+			}, {
+				value: "12",
+				text: "12"
+			}, {
+				value: "24",
+				text: "24"
+			}])
+		}
+		//开始时间选择器
+		document.getElementById("pickTimeBtn").addEventListener('tap', function() {
+			PopPicker()
+			picker.show(function(getSelectedItems) {
+				document.getElementById('begin').innerHTML = getSelectedItems[0].value;
+				var begin = mui('#begin')[0].innerHTML;
+				var end = mui('#end')[0].innerHTML;
+				if(begin && end){
+					var data = {
+			            ext:'work_tim1',
+			            st:begin,
+			            et:end,
+			       }
+			        timeData(data,function(){
+			          	confPicT = begin
+			          	confPicF = end
+			        })
+				}
+			})
+		});
+		//结束时间选择器
+		document.getElementById("pickTimeBtn2").addEventListener('tap', function() {
+			PopPicker2()
+			picker.show(function(getSelectedItems) {
+				document.getElementById('end').innerHTML = getSelectedItems[0].value;
+				var begin = mui('#begin')[0].innerHTML;
+				var end = mui('#end')[0].innerHTML;
+				if(begin && end){
+					var data = {
+			            ext:'work_tim1',
+			            st:begin,
+			            et:end,
+			        }
+			        timeData(data,function(){
+			          	confPicT = begin
+			          	confPicF = end
+			        })
+				}
+			})
+		});
+		
+		//时控开关
+			function timeData(data,callback){
+				document.getElementById("ReceiveNews").addEventListener("toggle", function(event) {
+					if(event.detail.isActive) {
+						console.log("你启动了开关");
+							mui.confirm('是否修改时控开始和结束时间?','时控开始和结束时间',['取消','确定'],function(e){
+				        	console.log(e.index)
+				        	if (e.index == 1) {
+			                    sendCtrlFunA(data,function(){
+					              
+					            })
+		                   }else{
+								console.log('取消了')
+		                    }
+				        },'div')
+					} else {
+						mui.confirm('是否关闭时控开关?','关闭时控开关',['取消','确定'],function(e){
+				        	console.log(e.index)
+				        	if (e.index == 1) {
+			                    offTime(data,function(){
+					              
+					            })
+		                   }else{
+								console.log('取消了')
+		                    }
+				        },'div')
+						console.log("你关闭了开关");
+					}
+				})
+	    }
+			function sendCtrlFunA(data,callback){
+				data.e_id = equipId;
+				console.log(data)
+		         mui.ajax('http://120.27.222.26/sex_mqtt_v1', {
+		          type:'post',
+		          data:data,
+		          success:function(data){
+		            if(data == 0){
+		              callback();
+		            }
+		          },
+		          error:function(type){
+		            console.log(type)
+		          }
+		        })
+	    }
+			function offTime(data,callback) {
+				delete data.st
+				delete data.et
+				data.e_id = equipId;
+				data.ext = "work_tim0"
+		         mui.ajax('http://120.27.222.26/sex_mqtt_v1', {
+		          type:'post',
+		          data:data,
+		          success:function(data){
+		            if(data == 0){
+		              callback();
+		            }
+		          },
+		          error:function(type){
+		            console.log(type)
+		          }
+		        })
+			}
+	</script>
+
+</html>

+ 737 - 0
equipManage/sex_trap_detail2.html

@@ -0,0 +1,737 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link href="../css/common.css" rel="stylesheet" />
+
+		<style type="text/css">
+			.mui-content {
+				background: #fff;
+			}
+			
+			.iconfont {
+				font-size: 35px;
+				color: #3bb9e7;
+				/*font-weight: bold;*/
+				line-height: 80px;
+				margin: 10px 10px 10px 20px;
+			}
+			
+			.equipState {
+				font-size: 18px;
+				margin-top: 14px;
+				color: #333;
+				text-align: -webkit-center;
+				color: #21b2e7;
+			}
+			
+			#detial>div {
+				border-bottom: 2px solid #eee;
+			}
+			
+			#detial>div:nth-of-type(odd) {
+				/*border-right: 2px solid #eee;*/
+			}
+			
+			.mui-table-view:after,
+			.mui-table-view:before {
+				height: 2px;
+				background-color: #eee;
+			}
+			
+			@media(max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+			/*设置*/
+			
+			#detial .mui-navigate-right {
+				line-height: 80px;
+			}
+			
+			#detial .mui-navigate-right:after,
+			#detial .mui-push-right:after {
+				font-size: 33px;
+				color: #3bb9e7;
+			}
+			
+			.nullData {
+				top: 45px;
+			}
+			
+			.areaTitle {
+				color: #424242;
+				padding-left: 5px;
+				border-left: 5px solid #5870f6;
+				font-weight: bold;
+				font-size: 16px;
+			}
+			
+			.detialBox .fa {
+				padding-right: 5px;
+				color: #ff6e00;
+			}
+			#adminOperate{
+				display: none;
+			}
+			.btns{
+				padding-top: 20px;
+				text-align: center;
+			}
+			.btns p{
+				margin: 10px 0;
+			}
+			.btns p button{
+				width: 120px;
+				border-radius: 50px;
+			}
+			.equipFun {
+			    text-align: -webkit-center;
+			}
+			/*设备数据*/
+			.equipmentBox {
+				margin: 80px 0 0 0;
+			}
+			.annular {
+				background: url(../images/annular.png);
+				background-repeat:no-repeat;
+				background-position: center;
+				height: 150px;
+				/*height: 100%;*/
+				width: 33%;
+				background-size: 100%;
+			}
+			.equipmentBox_val {
+
+			}
+			.stateList {
+				/*border: 1px solid #000;*/
+				width: 30%;
+			}
+			#detial {
+				margin-left: 16px;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">性诱设备</h1>
+			<a class="headRightIcon mui-icon mui-icon-loop mui-pull-right" onclick="location.reload();"></a>
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll">
+				<div id="dataList">
+					<ul class="mui-table-view" id="equip">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">设备信息</h1>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipId"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipName"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipCode"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="equipType"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="upl_time"></p>
+						</li>
+						<li class="mui-table-view-cell">
+							<p id="lat_lng"></p>
+						</li>
+					</ul>
+					<ul class="mui-table-view detialBox">
+						<li class="mui-table-view-cell">
+							<h1 class="areaTitle">配置设备操作</h1>
+						</li>
+						<li class="mui-table-view-cell" id="lookImg">
+							<a class="mui-navigate-right">
+								<i class="fa fa-file-image-o" aria-hidden="true"></i> 查看图片
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="configuration">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cogs" aria-hidden="true"></i> 设备配置
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="simCodeSearch">
+							<a class="mui-navigate-right">
+								<i class="fa fa-search" aria-hidden="true"></i> SIM卡查询
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="lookStatsData">
+							<a class="mui-navigate-right">
+								<i class="fa fa-bar-chart-o" aria-hidden="true"></i> 统计详情
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="lookHistoryData">
+							<a class="mui-navigate-right">
+								<i class="fa fa-list" aria-hidden="true"></i> 历史数据
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="debug">
+							<a class="mui-navigate-right">
+								<i class="fa fa-wrench" aria-hidden="true"></i> 调试
+							</a>
+						</li>
+						<li class="mui-table-view-cell" id="adminOperate">
+							<a class="mui-navigate-right">
+								<i class="fa fa-cog" aria-hidden="true"></i> 操作
+							</a>
+						</li>
+						<!--<li class="mui-table-view-cell" id="downInquire">
+							<a class="mui-navigate-right">
+								<i class="fa fa-refresh" aria-hidden="true"></i> 查询最近状态
+							</a>
+						</li>-->
+					</ul>
+					
+					<!-- 测试设备状态 -->
+					<div class="mui-table-view-cell">
+						<h1 class="areaTitle">设备状态</h1>
+					</div>
+					<div class="mui-row" id="detial">
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState" id="ds"></p>
+								<p class="equipFun">设备开关</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState" id="onOff"></p>
+								<p class="equipFun">在线状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState" id="ws"></p>
+								<p class="equipFun">工作状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState" id="bs"></p>
+								<p class="equipFun">电池状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState" id="bv"></p>
+								<p class="equipFun">电池电压</p>
+							</div>
+						</div>
+
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState" id="cv"></p>
+								<p class="equipFun">充电电压</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState" id="dver"></p>
+								<p class="equipFun">版本号</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 stateList">
+							<div class="">
+							</div>
+							<div class="">
+								<p class="equipState">--</p>
+								<p class="equipFun">--</p>
+							</div>
+						</div>
+					</div>
+					<!-- 测试设备状态 -->
+					
+					<!-- 测试设备数据 -->
+					<div class="mui-table-view-cell">
+						<h1 class="areaTitle">设备数据</h1>
+					</div>
+					<div class="mui-row" id="detial">
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="cs"></p>
+								<p class="equipFun">充电状态</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="dat_f"></p>
+								<p class="equipFun">数据上传间隔</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="cpu_tmp"></p>
+								<p class="equipFun">CPU温度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="csq"></p>
+								<p class="equipFun">信号强度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="at"></p>
+								<p class="equipFun">环境温度</p>
+							</div>
+						</div>
+						<div class="mui-col-sm-4 annular">
+							<div class="mui-pull-left">
+							</div>
+							<div class="equipmentBox">
+								<p class="equipState equipmentBox_val" id="ah"></p>
+								<p class="equipFun">环境湿度</p>
+							</div>
+						</div>
+					</div>
+					<!-- 测试设备数据 -->
+					
+					
+				</div>
+			</div>
+			<!--调试框-->
+			<div id="debugPopover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 260px;background-color: #fff;border-radius: 10px 10px 0 0;">
+				<div class="mui-popover-arrow"></div>
+				<div class="btns">
+					<p><button type="button" onclick="popupFrame('开启设备',7)" class="mui-btn mui-btn-danger">开启</button></p>
+					<p><button type="button" onclick="popupFrame('关闭设备',8)" class="mui-btn mui-btn-danger">关闭</button></p>
+					<p><button type="button" onclick="popupFrame('重启设备',1)" class="mui-btn mui-btn-danger">重启</button></p>
+					<p><button type="button" onclick="popupFrame('开启卷粘虫带',5)" class="mui-btn mui-btn-danger">卷粘虫带</button></p>
+					<p><button type="button" onclick="popupFrame('进行拍照',4)" class="mui-btn mui-btn-danger">拍照</button></p>
+				</div>
+			</div>
+			<!--操作框-->
+			<div id="operatePopover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 300px;background-color: #fff;border-radius: 10px 10px 0 0;">
+				<div class="mui-popover-arrow">1</div>
+				<div class="btns">
+					<p><button type="button" onclick="popupFrame('重启',1)" class="mui-btn mui-btn-danger">重启</button></p>
+					<p><button type="button" onclick="popupFrame('升级',2)" class="mui-btn mui-btn-danger">升级</button></p>
+					<p><button type="button" onclick="popupFrame('重新上电',6)" class="mui-btn mui-btn-danger">重新上电</button></p>
+					<p><button type="button" onclick="popupFrame('查询mqtt网络配置',3)" class="mui-btn mui-btn-danger">mqtt网络配置</button></p>
+					<p><button type="button" onclick="popupFrame('开启卷粘虫带',5)" class="mui-btn mui-btn-danger">卷粘虫带</button></p>
+					<p><button type="button" onclick="popupFrame('进行拍照',4)" class="mui-btn mui-btn-danger">拍照</button></p>
+				</div>
+			</div>
+			<!--sim卡-->
+			<div id="popover" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 310px;background-color: #fff;">
+				<div class="mui-popover-arrow"></div>
+				<!--<div class="popoverheader">
+					<div class="text"></div>
+					<a href="#popover"><img src="../image/close.png" alt=""></a>
+				</div>-->
+				<div id="simDetial">
+					
+				</div>
+				<div class="mui-table-view mui-table-view-chevron next">
+					<a href="#popover" class="x-next add">我知道了</a>
+				</div>
+			</div>
+			<!--mqtt网络配置-->
+			<div id="mqttConf" class="box mui-popover mui-poppicker mui-popover-action mui-popover-bottom" style="height: 310px;background-color: #fff;">
+				<div class="mui-popover-arrow"></div>
+				<!--<div class="popoverheader">
+					<div class="text"></div>
+					<a href="#popover"><img src="../image/close.png" alt=""></a>
+				</div>-->
+				<div id="mqttConfDetial">
+					
+				</div>
+				<div class="mui-table-view mui-table-view-chevron next">
+					<a href="#mqttConf" class="x-next add">我知道了</a>
+				</div>
+			</div>
+		</div>
+		<div id="map" style="display: none;"></div>
+		
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/common.js"></script>
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			var equipId;
+			var iccid;
+			//配置需要参数
+			var confDatF;
+			var confTurnT;
+			var confPicT;
+			var confPicF;
+			
+			mui.init();
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				$('#equipId').html('设备ID:' + equipId);
+				console.log(equipId);
+				downCallback()
+				var isuser = plus.storage.getItem('isuser');
+				if(isuser == 'admin'){
+					$('#adminOperate').show();
+				}
+				var map = new BMap.Map("map"); //
+				geoc = new BMap.Geocoder();
+				function downCallback() {
+					$.ajax({
+						url: 'http://120.27.222.26/app_equipmanage_detail',
+						data: {
+							'etype': 'xycb',
+							'equip_id': equipId,
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						success: function(data) {
+							var equip_name = data.equip_name || '无';
+							$('#equipName').html('设备名称:' + equip_name);
+							$('#upl_time').html('上报时间:' + data.upl_time);
+							var stat = eval('(' + data.ybq_status + ')');
+							var point = new BMap.Point(stat.lng, stat.lat);
+							geoc.getLocation(point, function (rs) {
+							    var addComp = rs.addressComponents;
+								$('#lat_lng').html('位置:'  + addComp.province + ", " + addComp.city + ", " + addComp.district);
+							});
+							$('#equipCode').html('设备编号:' + stat.dev_num);
+							if(stat.proj == "SEX_TRAP_1"){								
+								$('#equipType').html('设备型号:I');
+							}else if(stat.proj == "SEX_TRAP_2"){								
+								$('#equipType').html('设备型号:II');
+							}
+							var ds = stat.ds == 0 ? '关闭' : '开机';
+							$('#ds').html(ds);
+							var onOff = data.is_online == 0 ? '离线' : '在线';
+							$('#onOff').html(onOff);
+							var ws = stat.ws == 0 ? '待机' : '工作';
+							$('#ws').html(ws);
+							if(stat.bs != ''){
+								if(stat.bs == 0){
+									var bs = '正常';
+								}else if(stat.bs == 1){
+									var bs = '欠压';
+								}else if(stat.bs == 2){
+									var bs = '过压';
+								}
+								$('#bs').html(bs);
+							}else{
+								$('#bs').html('--');
+							}
+							
+							if(stat.bv != ''){
+								$('#bv').html(stat.bv/1000);
+							}else{
+								$('#bv').html('--');
+							}
+							if(stat.cv != ''){								
+								$('#cv').html(stat.cv/1000);
+							}else{
+								$('#cv').html('--');
+							}
+							$('#dver').html(stat.dver);
+							if(stat.cs != ''){								
+								var cs = stat.cs == 0 ? '未充电' : '充电';
+							}else{
+								var cs = '--';
+							}
+							$('#cs').html(cs);
+							$('#dat_f').html(stat.dat_f);
+							$('#cpu_tmp').html(stat.cpu_tmp/1000);
+							$('#csq').html(stat.csq);
+							if(stat.at != ''){								
+								$('#at').html(stat.at);
+							}else{
+								$('#at').html('-');
+							}
+							if(stat.ah != ''){
+								$('#ah').html(stat.ah);								
+							}else{
+								$('#ah').html('--');	
+							}
+							iccid = stat.iccid;
+							confDatF = stat.dat_f;
+							confTurnT = stat.turn_t;
+							confPicT = stat.pic_t;
+							confPicF = stat.pic_f;
+						},
+						error: function(xhr, type, errorThrown) {
+							//联网失败的回调,隐藏下拉刷新的状态
+							mescroll.endErr();
+							mui.toast('数据请求失败');
+						}
+					});
+				}
+				
+				//查看图片
+				document.getElementById('lookImg').addEventListener('tap', function() {
+					mui.openWindow({
+						url: 'sex_trap_photo2.html',
+						id: 'sex_trap_photo2',
+						extras: {
+							equipId: equipId,
+						}
+					})
+				})
+				//配置
+				document.getElementById('configuration').addEventListener('tap', function() {
+					mui.openWindow({
+						url: 'sex_trap_detail2_config.html',
+						id: 'sex_trap_detail2_config',
+						extras: {
+							equipId: equipId,
+							confDatF: confDatF,
+							confTurnT: confTurnT,
+							confPicT: confPicT,
+							confPicF: confPicF
+						}
+					})
+				})
+				//sim卡查新  
+				document.getElementById('simCodeSearch').addEventListener('tap', function() {
+					if(iccid) {
+						$.ajax({
+							url: 'http://120.27.222.26/siminfo',
+							data: {
+								simid: iccid,
+							},
+							dataType: 'json', //服务器返回json格式数据
+							type: 'post', //HTTP请求类型
+							timeout: 10000, //超时时间设置为10秒;
+							beforeSend: function() {
+								plus.nativeUI.showWaiting('请求中...');
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								var dat = data.data;
+								if(data.code == 0) {
+									var status;
+									if(dat.account_status == "0") {
+										status = "未知";
+									} else if(dat.account_status == "1") {
+										status = "测试期";
+									} else if(dat.account_status == "2") {
+										status = "沉默期";
+									} else if(dat.account_status == "3") {
+										status = "使用中";
+									} else if(dat.account_status == "4") {
+										status = "停机";
+									} else if(dat.account_status == "5") {
+										status = "停机保号";
+									} else if(dat.account_status == "6") {
+										status = "预销号";
+									} else if(dat.account_status == "7") {
+										status = "销号";
+									}
+									var usage;
+									if(dat.iccid) {
+										usage = dat.data_usage;
+									} else {
+										usage.innerHTML = '--';
+									}
+									var balance;
+									if(dat.iccid) {
+										balance = dat.data_balance;
+									} else {
+										balance = '--';
+									}
+									var time;
+									if(dat.iccid) {
+										var timestamp4 = new Date(dat.expiry_date * 1000); //直接用 new Date(时间戳) 格式转化获得当前时间
+										time = timestamp4.toLocaleDateString().replace(/\//g, "-") + " " + timestamp4.toTimeString().substr(0, 8);
+									} else {
+										time = '--';
+									}
+									html = '<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">SIM卡查询结果<br>ICCID:' + iccid + '<br><br>状态:' + status + '<br>套餐:' + dat.data_plan + 'Mb<br>已用流量:' + usage + 'Mb<br>剩余流量:' + balance + 'Mb<br>到期时间:' + time + '</div>'
+									$('#mqttConfDetial').html(html);
+									mui('.mui-popover').popover('show', document.getElementById("popover"));
+								}
+							},
+							error: function(xhr, type, errorThrown) {
+								//联网失败的回调,隐藏下拉刷新的状态
+								mescroll.endErr();
+								mui.toast('数据请求失败');
+							}
+						});
+
+					} else {
+						mui.toast('未查询到SIM卡号');
+					}
+				})
+				//统计详情
+				document.getElementById('lookStatsData').addEventListener('tap', function() {
+					mui.openWindow({
+						url: 'sex_trap_detail_echart.html',
+						id: 'sex_trap_detail_echart',
+						extras: {
+							equipId: equipId
+						}
+					})
+				})
+				//历史数据
+				document.getElementById('lookHistoryData').addEventListener('tap', function() {
+					mui.openWindow({
+						url: 'sex_trap_detail_list.html',
+						id: 'sex_trap_detail_list',
+						extras: {
+							equipId: equipId
+						}
+					})
+				})
+				//调试
+				document.getElementById('debug').addEventListener('tap', function() {
+					mui('#debugPopover').popover('show', document.getElementById("debug"));
+				})
+				//操作
+				document.getElementById('adminOperate').addEventListener('tap', function() {
+					mui('#operatePopover').popover('show', document.getElementById("adminOperate"));
+				})
+			})
+			
+			function popupFrame(txt,flag){
+				var txtMsg = '是否'+ txt +'?';
+				mui.confirm(txtMsg,'控制',['取消','确定'],function(e){
+					if(e.index == 0){
+//						alert(0)
+					}else if(e.index == 1){
+						if(flag == 1){
+			                var data = {
+			                  ext:'reboot',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 2){
+			                var data = {
+			                  ext:'update',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 3){
+			                var data = {
+			                  ext:'mqttconf',
+			                }
+			                var fun = function(){
+				                setTimeout(function(){
+				                    mui.ajax('http://120.27.222.26/sex_mqtt_detail', {
+					                    type:'post',
+					                    data:{
+					                        e_id:equipId
+					                    },
+				                      	dataType:'json',
+					                    beforeSend: function() {
+											plus.nativeUI.showWaiting("分配中...");
+										},
+										complete: function() {											
+											plus.nativeUI.closeWaiting();
+										},
+				                      	success:function(data){
+				                          var content='<div style="padding: 50px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">ip:'+data.ip+'<br />port:'+data.port+'<br />sub:'+data.sub+'<br />pub:'+data.pub+'<br />lastwill:'+data.lastwill+'<br />keepalive:'+data.keepalive+'<br />username:'+data.username+'<br />stamp:'+data.stamp+'</div>';
+				                          $('#mqttConfDetial').html(content);
+				                          mui('.mui-popover').popover('toggle',document.getElementById("mqttConf"));
+				                      	},
+				                      	error:function(type){
+				                        	console.log(type)
+				                      	}
+				                    })
+				                },500)
+			                };
+			            }else if(flag == 4){
+			                var data = {
+			                  ext:'takephoto',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 5){
+			                var data = {
+			                  ext:'turn',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 6){
+			                var data = {
+			                  ext:'repower',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 7){
+			                var data = {
+			                  ext:'ds1',
+			                }
+			                var fun = function(){};
+			            }else if(flag == 8){
+			                var data = {
+			                  ext:'ds0',
+			                }
+			                var fun = function(){};
+			            }
+			            sendCtrlFun(data,fun)
+					}
+				},'div')
+			}
+			
+			function sendCtrlFun(data,callback){
+		        data.e_id = equipId;
+		        mui.ajax('http://120.27.222.26/sex_mqtt', {
+		          type:'post',
+		          data:data,
+		           beforeSend: function() {
+						plus.nativeUI.showWaiting("分配中...");
+					},
+					complete: function() {
+						plus.nativeUI.closeWaiting();
+					},
+		          success:function(data){
+		            if(data == 0){
+		              callback();
+		              mui.toast('下发成功',{ duration:'long', type:'div' }) 
+		            }
+		          },
+		          error:function(type){
+		            console.log(type)
+		          }
+		        })
+		    }
+		</script>
+	</body>
+
+</html>

+ 442 - 0
equipManage/sex_trap_detail2_config.html

@@ -0,0 +1,442 @@
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<title>Hello MUI</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<!--标准mui.css-->
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+
+		<link rel="stylesheet" href="../css/common.css">
+		<link rel="stylesheet" href="../css/iconfont.css">
+		<!--<link rel="stylesheet" href="../css/rangeslider.css">-->
+		<link rel="stylesheet" href="http://www.yfzhwlw.com/static/lib/css/jquery-ui.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.poppicker.css" />
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<!--App自定义的css-->
+		<style type="text/css">
+			.mui-table-view-cell.mui-active {
+				background-color: #fff;
+			}
+			
+			.mui-input-range .mui-tooltip {
+				display: none;
+			}
+			
+			.mui-radio input[type=radio] {
+				top: -2px;
+			}
+			
+			.equipOption {
+				color: #21B2E7 !important;
+				margin-bottom: 15px;
+			}
+			
+			.mui-checkbox input[type=checkbox]:before,
+			.mui-radio input[type=radio]:before {
+				font-size: 22px;
+			}
+			/*提交按钮*/
+			
+			.equipTitle {
+				color: #21b2e7;
+				font-size: 14px;
+			}
+			
+			.mui-table-view-cell p {
+				color: #333;
+				font-size: 16px;
+				margin-top: 4px;
+			}
+			/*单选按钮*/
+			
+			.mui-radio label {
+				padding-right: 37px;
+			}
+			/*滑块*/
+			.sliderParent{
+				display: flex;
+				align-items: center;
+			}
+			.sliderParent >div{
+				flex: 1;
+				margin: 0 10px;
+			}
+			
+			/*.sliderDiv {
+				width: 80%;
+				display: inline-block;
+			}*/
+			
+			.rangeslider--horizontal {
+				height: 12px;
+			}
+			
+			.rangeslider__fill {
+				background: #7ed7ff;
+			}
+			
+			.rangeslider__handle {
+				width: 20px;
+				height: 20px;
+			}
+			
+			.rangeslider--horizontal .rangeslider__handle {
+				top: -5px;
+			}
+			
+			.rangeslider__handle:after {
+				width: 8px;
+				height: 8px;
+			}
+			
+			.equipOptionInitVal {
+				display: inline-block;
+				width: 15px;
+				text-align: right;
+			}
+			/*滑块颜色*/
+			.ui-widget-content{
+				background: #e0e0e0;
+			}
+			.ui-widget-header{
+				background: #21b2e7;
+			}
+			/*开始结束时间选择*/
+			
+			.timeItem {
+				border: 1px solid #e6e6e6;
+				margin-bottom: 5px;
+				line-height: 30px;
+				border-radius: 5px;
+				margin-top: 5px;
+			}
+			
+			.timeItem>button {
+				border: none;
+				background: #e6e6e6;
+				margin-right: 10px;
+			}
+		</style>
+
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title"></h1>
+			<!--<a class="headRightIcon fa fa-cloud-upload mui-pull-right" onclick="sendData()">提交</a>-->
+		</header>
+		<div class="mui-content">
+			<ul class="mui-table-view">
+				<li class="mui-table-view-cell">
+					<p class="equipOption">数据上传时间间隔:</p>
+					<div class="sliderParent">
+						<span class="equipOptionInitVal">10</span>
+							<div class="sliderDiv">
+								<div class="slider" id="dropTime-slider"></div>
+							</div>
+						<span id="dropTime">120</span>
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<p class="equipOption">卷粘虫板时间:</p>
+					<div class="sliderParent">
+						<span class="equipOptionInitVal">0</span>
+							<div class="sliderDiv">
+								<div class="slider" id="armyworm-slider"></div>
+							</div>
+						<span id="armyworm">23</span>
+					</div>
+				</li>
+				
+				<!--<li class="mui-table-view-cell">
+					<p class="equipOption">卷粘虫板时间:</p>
+					<span class="equipOptionInitVal">0</span>
+					<div class="sliderDiv">
+						<input type="range" min="0" max="23" step="1" data-rangeslider>
+					</div>
+					<span id="calefactionTime">0</span>
+				</li>-->
+				<li class="mui-table-view-cell" id="timePattern">
+					<p class="equipOption">定时拍照循环工作时间:</p>
+					<div class="">
+						<div class="timeItem">
+							<button id='pickTimeBtn' type="button" class="mui-btn">开始时间</button><span id="begin"></span>
+						</div>
+						<div class="timeItem">
+							<button id='pickTimeBtn2' type="button" class="mui-btn">拍照间隔</button><span id="end"></span>
+						</div>
+					</div>
+				</li>
+			</ul>
+		</div>
+	</body>
+	<script src="../js/mui.min.js"></script>
+	<script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
+	<!--<script src="../js/rangeslider.js"></script>-->
+	<script src="http://www.yfzhwlw.com/static/lib/js/jquery-ui.min.js"></script>
+	<script src="http://www.yfzhwlw.com/static/lib/js/jquery.ui.touch-punch.min.js"></script>
+	<script src="../js/mui.picker.min.js" type="text/javascript" charset="utf-8"></script>
+	<script src="../js/common.js"></script>
+	<script>
+		mui.init();
+		var equipId;
+		var confDatF;
+		var confTurnT;
+		var confPicT;
+		var confPicF;
+		mui.plusReady(function() {
+			var self = plus.webview.currentWebview();
+			equipId = self.equipId;
+			confDatF = self.confDatF || 10;
+			confTurnT = self.confTurnT || 0;
+			confPicT = self.confPicT || 0;
+			confPicF = self.confPicF || 1;
+			document.getElementById("title").innerHTML = equipId;
+			// 数据上传时间间隔
+		     $("#dropTime-slider").css('width', '100%').slider({
+		        value: confDatF,
+		        range: "min",
+		        min: 10,
+		        max: 120,
+		        step: 10,
+		        slide: function (event, ui) {
+		          	var val = parseInt(ui.value);
+		          	$('#dropTime').html(val);
+		        },
+		        stop: function( event, ui ) {
+			        console.log(ui.value)
+			        $('#dropTime').html(ui.value);
+			        mui.confirm('是否修改数据上传时间?','上报时间',['取消','确定'],function(e){
+			        	console.log(e.index)
+			        	if (e.index == 1) {
+			        		//预留
+//	                        var data = {
+//				                ext:'turnset',
+//				                turn_t:ui.value,
+//				            }
+//		                    sendCtrlFun(data,function(){
+//				                confDatF = ui.value;
+//				            })
+	                    }else{
+	                    	$("#dropTime-slider").slider('value', confDatF); 
+				      		$('#dropTime').html(confDatF);
+	                    }
+			        },'div')
+		        	
+		        }
+		    });
+		    $('#dropTime').html(confDatF);
+		    // 卷粘虫板时间
+		     $("#armyworm-slider").css('width', '100%').slider({
+		        value: confTurnT,
+		        range: "min",
+		        min: 0,
+		        max: 23,
+		        step: 1,
+		        slide: function (event, ui) {
+		          var val = parseInt(ui.value);
+		          $('#armyworm').html(val);
+		        },
+		        stop: function( event, ui ) {
+		          	console.log(ui.value)
+		          	$('#armyworm').html(ui.value);
+		         	mui.confirm('是否修改卷粘虫板时间?','上报时间',['取消','确定'],function(e){
+			        	console.log(e.index)
+			        	if (e.index == 1) {
+	                        var data = {
+				                ext:'turnset',
+				                turn_t:ui.value,
+				            }
+		                    sendCtrlFun(data,function(){
+				                confTurnT = ui.value;
+				            })
+	                    }else{
+	                    	$("#armyworm-slider").slider('value', confTurnT); 
+				      		$('#armyworm').html(confTurnT);
+	                    }
+			        },'div')
+		        }
+		    });
+		    $('#armyworm').html(confTurnT);
+			mui('#begin')[0].innerHTML = confPicT;
+			mui('#end')[0].innerHTML = confPicF;
+		})
+		
+		function sendCtrlFun(data,callback){
+	        data.e_id = equipId;
+	        mui.ajax('http://120.27.222.26/sex_mqtt', {
+	          type:'post',
+	          data:data,
+	          success:function(data){
+	            if(data == 0){
+	              callback();
+	            }
+	          },
+	          error:function(type){
+	            console.log(type)
+	          }
+	        })
+	    }
+
+
+		// 将对应值写入对应文本框
+		function valueOutput(element) {
+			var value = element.value;
+			var output = element.parentNode.nextElementSibling;
+			output.innerHTML = value;
+		}
+		//自定义时间值
+		var picker;
+
+		function PopPicker() {
+			picker = new mui.PopPicker();
+			picker.setData([{
+				value: "0",
+				text: "0"
+			}, {
+				value: "1",
+				text: "1"
+			}, {
+				value: "2",
+				text: "2"
+			}, {
+				value: "3",
+				text: "3"
+			}, {
+				value: "4",
+				text: "4"
+			}, {
+				value: "5",
+				text: "5"
+			}, {
+				value: "6",
+				text: "6"
+			}, {
+				value: "7",
+				text: "7"
+			}, {
+				value: "8",
+				text: "8"
+			}, {
+				value: "9",
+				text: "9"
+			}, {
+				value: "10",
+				text: "10"
+			}, {
+				value: "11",
+				text: "11"
+			}, {
+				value: "12",
+				text: "12"
+			}, {
+				value: "13",
+				text: "13"
+			}, {
+				value: "14",
+				text: "14"
+			}, {
+				value: "15",
+				text: "15"
+			}, {
+				value: "16",
+				text: "16"
+			}, {
+				value: "17",
+				text: "17"
+			}, {
+				value: "18",
+				text: "18"
+			}, {
+				value: "19",
+				text: "19"
+			}, {
+				value: "20",
+				text: "20"
+			}, {
+				value: "21",
+				text: "21"
+			}, {
+				value: "22",
+				text: "22"
+			}, {
+				value: "23",
+				text: "23"
+			}, ])
+		}
+		function PopPicker2() {
+			picker = new mui.PopPicker();
+			picker.setData([{
+				value: "1",
+				text: "1"
+			},{
+				value: "2",
+				text: "2"
+			}, {
+				value: "3",
+				text: "3"
+			}, {
+				value: "4",
+				text: "4"
+			}, {
+				value: "6",
+				text: "6"
+			}, {
+				value: "8",
+				text: "8"
+			}, {
+				value: "12",
+				text: "12"
+			}, {
+				value: "24",
+				text: "24"
+			}])
+		}
+		//开始时间选择器
+		document.getElementById("pickTimeBtn").addEventListener('tap', function() {
+			PopPicker()
+			picker.show(function(getSelectedItems) {
+				document.getElementById('begin').innerHTML = getSelectedItems[0].value;
+				var begin = mui('#begin')[0].innerHTML;
+				var end = mui('#end')[0].innerHTML;
+				if(begin && end){
+					var data = {
+			            ext:'photoset',
+			            pic_t:begin,
+			            pic_f:end,
+			        }
+			        sendCtrlFun(data,function(){
+			          	confPicT = begin
+			          	confPicF = end
+			        })
+				}
+			})
+		});
+		//结束时间选择器
+		document.getElementById("pickTimeBtn2").addEventListener('tap', function() {
+			PopPicker2()
+			picker.show(function(getSelectedItems) {
+				document.getElementById('end').innerHTML = getSelectedItems[0].value;
+				var begin = mui('#begin')[0].innerHTML;
+				var end = mui('#end')[0].innerHTML;
+				if(begin && end){
+					var data = {
+			            ext:'photoset',
+			            pic_t:begin,
+			            pic_f:end,
+			        }
+			        sendCtrlFun(data,function(){
+			          	confPicT = begin
+			          	confPicF = end
+			        })
+				}
+			})
+		});
+	</script>
+
+</html>

+ 401 - 0
equipManage/sex_trap_detail_echart.html

@@ -0,0 +1,401 @@
+<!DOCTYPE html>
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<title>ECahrt 示例</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link rel="stylesheet" href="../css/mobiscroll.custom-3.0.0-beta6.min.css">
+		<link rel="stylesheet" href="../css/common.css">
+		<style>
+			/*body,
+			.mui-content {
+				background-color: #ffffff;
+			}
+			*/
+			.chart {
+				height: 250px;
+				margin: 0px;
+				padding: 0px;
+			}
+			
+			h5 {
+				margin-top: 30px;
+				font-weight: bold;
+			}
+			
+			h5:first-child {
+				margin-top: 0;
+				font-weight: 100;
+			}
+			/*tab*/
+			
+			.mui-segmented-control {
+				border: none;
+				display: inherit;
+				overflow: visible;
+				margin: 20px 0;
+				background-color: #fff;
+			}
+			
+			.mui-segmented-control .mui-control-item {
+				border-left: none;
+				color: #333;
+				overflow: visible;
+			}
+			
+			.mui-segmented-control .mui-control-item.mui-active {
+				color: #333;
+				background: transparent;
+				border-bottom: none;
+				position: relative;
+			}
+			
+			.mui-control-item.mui-active:before {
+				content: '';
+				position: absolute;
+				left: 50%;
+				bottom: -3px;
+				width: 70px;
+				background: #007aff;
+				height: 3px;
+				margin-left: -35px;
+			}
+			
+			.mui-control-item.mui-active:after {
+				content: '';
+				position: absolute;
+				left: 50%;
+				border: 26px solid #007aff;
+				bottom: -18px;
+				margin-left: -5px;
+				border-top: #007aff 5px solid;
+				border-left: transparent 5px solid;
+				border-bottom: transparent 10px solid;
+				border-right: transparent 5px solid;
+			}
+			
+			.mui-segmented-control .mui-control-item {
+				line-height: 30px;
+			}
+			
+
+			
+			.mui-control-item.mui-active {
+				color: #333;
+				border-bottom: 3px solid #007AFF;
+			}
+		</style>
+		<script src="../js/mui.min.js"></script>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">详情</h1>
+			<a class="mui-icon mui-icon-search mui-pull-right" id="date"></a>
+		</header>
+		<div class="mui-content">
+			<div class="mui-card">
+				<!--页眉,放置标题-->
+				<div class="mui-card-header">
+					<h5>温度(°C)湿度(%)</h5>
+				</div>
+				<!--内容区-->
+				<div class="mui-card-content">
+					<div class="chart" id="lineChart"></div>
+				</div>
+			</div>
+			<!--<h5>击虫次数</h5>-->
+			<div class="mui-card">
+				<!--页眉,放置标题-->
+				<div class="mui-card-header">
+					<h5>CPU温度(°C)</h5>
+				</div>
+				<!--内容区-->
+				<div class="mui-card-content">
+					<div class="chart" id="pieChart"></div>
+				</div>
+			</div>
+			<!--筛选日历-->
+			<!--<div class="searchHintBox">-->
+				<div class="calendarBox" style="display:none">
+					<p>开始时间:<input id="start" placeholder="Please Select ..." readonly /></p>
+					<p>结束时间:<input id="end" placeholder="Please Select ..." readonly /></p>
+				</div>
+			<!--</div>-->
+		</div>
+		<script src="../js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/mobiscroll.custom-3.0.0-beta6.min.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/echarts.min.js"></script>
+		<script>
+			var equipId;
+			// 1基于准备好的dom,初始化echarts实例
+			var lineChart = echarts.init(document.getElementById('lineChart'));
+			// 指定图表的配置项和数据
+			var lineOption = {
+				tooltip: {
+					trigger: 'axis',
+					formatter: function(params) {
+						if(params.length > 1) {
+							var returnData = '';
+							var time = '';
+							for(var g in params) {
+								time = params[g].axisValue;
+								if(params[g].seriesIndex == 0 || params[g].seriesIndex == 1) {
+									returnData += params[g].seriesName + ':' + params[g].value + '°C<br/>';
+								}
+								if(params[g].seriesIndex == 2 || params[g].seriesIndex == 3) {
+									returnData += params[g].seriesName + ':' + params[g].value + 'V<br/>';
+								}
+							}
+							return time + '<br/>' + returnData;
+						}
+					}
+				},
+				legend: {
+					y:15,
+					itemWidth: 15,
+			        itemHeight: 10,
+			        itemGap: 8,
+					data: ['环境温度', '环境湿度'],
+					textStyle: {
+			            fontSize: 12,
+		        	}
+				},
+				grid: {
+					left: '3%',
+					right: '4%',
+					bottom: '3%',
+					containLabel: true
+				},
+				toolbox: {
+					feature: {
+						// saveAsImage: {}
+					}
+				},
+				xAxis: {
+					type: 'category',
+					boundaryGap: false,
+					data: [1, 2, 3, 4, 5, 6, 7]
+				},
+				yAxis: {
+					type: 'value',
+					data: [20, 30, 52, 20, 64, 56, 80]
+				},
+				dataZoom: [{
+					type: 'inside',
+					backgroundColor: "rgba(47,69,84,0)",
+				}],
+				series: [{
+						name: '环境温度',
+						type: 'line',
+						data: [20, 30, 52, 20, 64, 56, 80],
+						itemStyle: {
+							normal: {
+								color: '#6ecdfe'
+							}
+						}
+					},
+					{
+						name: '环境湿度',
+						type: 'line',
+						data: [],
+						itemStyle: {
+							normal: {
+								color: '#5689f2'
+							}
+						}
+					}
+				]
+			};
+
+			// 2基于准备好的dom,初始化echarts实例
+			var barChart = echarts.init(document.getElementById('pieChart'));
+			// 指定图表的配置项和数据
+			var barOption = {
+				tooltip: {
+					trigger: 'axis',
+					formatter: function(params) {
+						var returnData = '';
+						var time = '';
+						for(var g in params) {
+							time = params[g].axisValue;
+							returnData += params[g].seriesName + ':' + params[g].value + '只';
+						}
+						return time + '<br/>' + returnData;
+					}
+				},
+				legend: {
+//					x: 'right', // 'center' | 'left' | {number},
+					y:15,
+					data: ['CUP温度'],
+					itemWidth: 15,
+			        itemHeight: 10,
+			        itemGap: 8,
+			        textStyle: {
+			            fontSize: 12,
+		        	}
+				},
+				grid: {
+					left: '3%',
+					right: '4%',
+					bottom: '3%',
+					containLabel: true
+				},
+				toolbox: {
+					feature: {
+						// saveAsImage: {}
+					}
+				},
+				xAxis: {
+					type: 'category',
+					boundaryGap: false,
+					data: []
+				},
+				yAxis: {
+					type: 'value',
+					data: []
+				},
+				dataZoom: [{
+					type: 'inside',
+					backgroundColor: "rgba(47,69,84,0)",
+				}],
+				series: [{
+					name: 'CUP温度',
+					type: 'line',
+					data: [],
+					itemStyle: {
+						normal: {
+							color: '#6ecdfe'
+						}
+					}
+				}]
+			};
+
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				//请求图表数据:
+				$.ajax({
+					url: 'http://120.27.222.26/sex_at_ah',
+					type: 'post',
+					data: {
+						begin: '',
+						end: '',
+						e_id: equipId
+					},
+					dataType:'json',
+					success: function(data) {
+						sessionStorage.setItem("scdData", data);
+						var temp = data;
+						var at = [],
+							ah = [],
+							time = [],
+							cpu_tmp = [];
+						for(var i = 0; i < temp.length; i++) {
+							at.unshift(Number(temp[i].at).toFixed(1));
+							ah.unshift(Number(temp[i].ah).toFixed(1));
+							cpu_tmp.unshift((Number(temp[i].cpu_tmp) / 1000).toFixed(1));
+							time.unshift(temp[i].tim);
+						}
+						lineOption.series[0].data = at;
+						lineOption.series[1].data = ah;
+						lineOption.xAxis.data = time;
+						
+						barOption.series[0].data = cpu_tmp;
+						barOption.xAxis.data = time;
+	
+						if(!temp.length) {
+							lineOption.series[0].data = [0];
+							lineOption.series[1].data = [0];
+							lineOption.xAxis.data = ['暂无数据'];
+							barOption.series[0].data = [0];
+							barOption.xAxis.data = ['暂无数据'];
+						}
+						
+						// 使用刚指定的配置项和数据显示图表。
+						setTimeout(function() {
+							lineChart.setOption(lineOption);
+							barChart.setOption(barOption);
+						})
+					}
+				})
+				//日历
+				mobiscroll.settings = {
+			        theme: 'ios'
+			        ,lang: 'zh',
+			    };
+				$('#date').mobiscroll().range({
+			        startInput: '#start',
+			        endInput: '#end',
+			        onSet: function (event, inst) {
+			            var start = getYMDHMS(inst.getVal()[0]);
+			            var end = getYMDHMS(inst.getVal()[1]);
+			            //请求图表数据:
+						$.ajax({
+							url: 'http://120.27.222.26/sex_at_ah',
+							type: 'post',
+							data: {
+								e_id: equipId,
+								begin: start,
+								end: end
+							},
+							success: function(data) {
+								sessionStorage.setItem("scdData", data);
+								var temp = data;
+								var at = [],
+									ah = [],
+									time = [],
+									cpu_tmp = [];
+								for(var i = 0; i < temp.length; i++) {
+									at.unshift(Number(temp[i].at).toFixed(1));
+									ah.unshift(Number(temp[i].ah).toFixed(1));
+									cpu_tmp.unshift((Number(temp[i].cpu_tmp) / 1000).toFixed(1));
+									time.unshift(temp[i].tim);
+								}
+								lineOption.series[0].data = at;
+								lineOption.series[1].data = ah;
+								lineOption.xAxis.data = time;
+								
+								barOption.series[0].data = cpu_tmp;
+								barOption.xAxis.data = time;
+			
+								if(!temp.length) {
+									lineOption.series[0].data = [0];
+									lineOption.series[1].data = [0];
+									lineOption.xAxis.data = ['暂无数据'];
+									barOption.series[0].data = [0];
+									barOption.xAxis.data = ['暂无数据'];
+								}
+								
+								// 使用刚指定的配置项和数据显示图表。
+								setTimeout(function() {
+									lineChart.setOption(lineOption);
+									barChart.setOption(barOption);
+								})
+							}
+						})
+			        },
+			    });
+			    function getYMDHMS(time) {
+			        var time = new Date(time);
+			        var year = time.getFullYear(),
+			            month = time.getMonth() + 1,
+			            date = time.getDate();
+			     
+			        if (month < 10) { month = '0' + month; }
+			        if (date < 10) { date = '0' + date; }
+			     
+			        return year+'/'+ month+'/'+ date //不想
+			    }
+				
+			})
+		</script>
+	</body>
+
+</html>

+ 212 - 0
equipManage/sex_trap_detail_list.html

@@ -0,0 +1,212 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/reset.css">
+		<link rel="stylesheet" href="../css/mobiscroll.custom-3.0.0-beta6.min.css">
+		<link rel="stylesheet" type="text/css" href="../css/mui.picker.min.css" />
+		<link rel="stylesheet" type="text/css" href="../css/timeLine.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+		    <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+		    <h1 class="mui-title">性诱器列表</h1>
+		</header>
+		<div class="mui-content">
+			<div class="faxSearchBox">
+				<div class="mui-input-row mui-search">
+					<div id="timeSelect">请选择时间段</div>
+					<!--<input type="hidden" name="begin" id="begin" value="" />
+					<input type="hidden" name="end" id="end" value="" />-->
+				</div>
+				<!--<div class="searchBtnBox">
+					<span class="cutline">&nbsp;</span>
+					<button id="searchBtn">搜索</button>
+				</div>-->
+			</div>
+			<div id="scrollPlace" class="mescroll"> <!--id可以改,而"mescroll"的class不能删-->
+		   		<ul id="dataList">
+					<!--<li>
+		   				<div class="equipItem blue">
+		   					<div class="upl_time">2018-12-13 09:13:02</div>
+		   				</div>
+		   			</li>
+		   			<li>
+		   				<div class="equipItem purple">
+		   					<div class="upl_time">2018-12-13 09:13:02</div>
+		   				</div>
+		   			</li>-->
+				</ul>
+			</div>
+			<div class="calendarBox" style="display:none">
+				<p>开始时间:<input id="start" placeholder="Please Select ..." readonly /></p>
+				<p>结束时间:<input id="end" placeholder="Please Select ..." readonly /></p>
+			</div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/common.js"></script>
+		<script src="../js/mescroll.min.js" charset="utf-8"></script>
+		<script src="../js/mobiscroll.custom-3.0.0-beta6.min.js" type="text/javascript" charset="utf-8"></script>
+		<script src="../js/mui.picker.min.js"></script>
+		<script type="text/javascript">
+			var equipId;
+			var begin = '',
+				end = '',
+				flag = 1;
+				
+			mui.init();
+			var mescroll;
+			document.addEventListener('plusready',function () {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				//创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,重置列表数据;
+				mescroll = new MeScroll("scrollPlace", {
+					up: {
+						callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+						isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+						clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+						toTop:{ //配置回到顶部按钮
+							src : "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+							offset : 700
+						},
+						empty: {
+							//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+							warpId:	"dataList", //父布局的id (1.3.5版本支持传入dom元素)
+							icon: "../images/listNull.png", //图标,默认null,支持网络图
+							tip: "暂无相关数据~" //提示
+						},
+						htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+						noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+						lazyLoad: {
+				        	use: true // 是否开启懒加载,默认false
+				        }
+					}
+				});
+			},false);
+			/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+			function getListData(page){
+				//联网加载数据
+				getListDataFromNet(page.num, page.size, function(curPageData,totalSize){
+					//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+					//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+					//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+					mescroll.endSuccess(curPageData.length);
+					//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+					setListData(curPageData);
+				}, function(){
+					//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+	                mescroll.endErr();
+					mui.toast('数据请求失败');
+				});
+			}
+			/*设置列表数据*/
+			function setListData(curPageData){
+				var html = '';
+				var dat = curPageData;
+				for(var i = 0; i < dat.length; i++) {
+					var className;
+					if(i%2 == 0){
+						className = 'blue';
+					}else{
+						className = 'purple';
+					}
+					html += '<li data-ybqData="'+dat[i].ybq_data+'" data-time="'+dat[i].upl_time+'">'+
+							'<div class="equipItem '+className+'"><div class="upl_time">'+dat[i].upl_time+'</div></div></li>';
+				}
+				$('#dataList').append(html);
+			}
+			/*联网加载列表数据*/
+			function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
+            	$.ajax({
+	                type: 'POST',
+		            url: 'http://120.27.222.26/app_reportmanage_detail',
+	                timeout : 10000, //超时时间设置,单位毫秒
+	                data:{
+	                	'etype': 'xycb',
+						'page': pageNum,
+						'equip_id': equipId,
+						'filter_begin':begin,
+						'filter_end':end
+	                },
+	                dataType: 'json',
+	                success: function(data){
+	                	successCallback(data.dat,data.nums);
+	                },
+	                error: function(){
+	                	errorCallback();
+	                	console.log(11111)
+	                }
+	            });
+			}
+
+			//页面跳转
+			mui('#dataList').on('tap', 'li', function() {
+				var time = this.getAttribute('data-time');
+				var ybq_data = this.getAttribute('data-ybqData');
+				console.log(ybq_data)
+				var stat = eval('(' + ybq_data + ')');
+				console.log(stat.proj)
+				if (stat.proj == 'SEX_TRAP_1') {
+					mui.openWindow({
+					url: 'sex_trap_detail_list_detail1.html',
+					id: 'sex_trap_detail_list_detail',
+					extras: {
+						equipId: equipId,
+							upl_time:time,
+							ybq_data:ybq_data,
+						}
+					})
+				} else if (stat.proj == 'SEX_TRAP_2') {
+					mui.openWindow({
+					url: 'sex_trap_detail_list_detail2.html',
+					id: 'sex_trap_detail_list_detail',
+					extras: {
+						equipId: equipId,
+							upl_time:time,
+							ybq_data:ybq_data,
+						}
+					})
+				}
+			})
+			
+			//日历
+			mobiscroll.settings = {
+		        theme: 'ios'
+		        ,lang: 'zh',
+		    };
+			$('.mui-search').mobiscroll().range({
+		        startInput: '#start',
+		        endInput: '#end',
+		        onSet: function (event, inst) {
+		            begin = getYMDHMS(inst.getVal()[0]);
+		            end = getYMDHMS(inst.getVal()[1]);
+		            $('#timeSelect').html(getYMDHMS(inst.getVal()[0])+' '+getYMDHMS(inst.getVal()[1]))
+		            //请求图表数据:
+		            $('#dataList').html('');
+					getListData({num:1, size:10})
+		        },
+		    });
+		    function getYMDHMS(time) {
+		        var time = new Date(time);
+		        var year = time.getFullYear(),
+		            month = time.getMonth() + 1,
+		            date = time.getDate();
+		     
+		        if (month < 10) { month = '0' + month; }
+		        if (date < 10) { date = '0' + date; }
+		     
+		        return year+'-'+ month+'-'+ date //不想
+		    }
+			
+		</script>
+	</body>
+
+</html>

+ 257 - 0
equipManage/sex_trap_detail_list_detail1.html

@@ -0,0 +1,257 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<style type="text/css">
+			.mui-content,
+			body,
+			html {
+				background: #fff;
+			}
+			.mui-content{
+				padding-bottom: 60px;
+			}
+			
+			.innerDiv {
+				padding: .3rem;
+			}
+			
+			.equipInfo>ul>li {
+				line-height: 66px;
+				overflow: hidden;
+			}
+			
+			.equipInfo {
+				margin: .2rem .3rem 0;
+			}
+			
+			.equipInfo>ul>li>img {
+				width: 41px;
+				height: 41px;
+			}
+			
+			.titleItem {
+				margin-left: .4rem;
+				color: #999;
+				letter-spacing: .03rem;
+			}
+			
+			.rightVal {
+				float: right;
+				height: 50px;
+				line-height: 50px;
+			}
+		
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">详情</h1>
+		</header>
+		<div class="mui-content">
+			<div class="innerDiv">
+				<div class="equipInfo">
+					<ul>
+						<li>
+							<img src="../images/sex_trap/1.png" />
+							<span class="titleItem">设备开关</span>
+							<span class="rightVal" id="ds"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/2.png" />
+							<span class="titleItem">工作状态</span>
+							<span class="rightVal" id="ws"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/3.png" />
+							<span class="titleItem">环境温度</span>
+							<span class="rightVal" id="at"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/4.png" />
+							<span class="titleItem">环境湿度</span>
+							<span class="rightVal" id="ah"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/5.png" />
+							<span class="titleItem">充电电压</span>
+							<span class="rightVal" id="cv"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/6.png" />
+							<span class="titleItem">电池电压</span>
+							<span class="rightVal" id="bv"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/7.png" />
+							<span class="titleItem">充电状态</span>
+							<span class="rightVal" id="cs"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/19.png" />
+							<span class="titleItem">雨控状态</span>
+							<span class="rightVal" id="rps"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/18.png" />
+							<span class="titleItem">温控状态</span>
+							<span class="rightVal" id="tps"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/17.png" />
+							<span class="titleItem">倾倒状态</span>
+							<span class="rightVal" id="dps"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/16.png" />
+							<span class="titleItem">红外计数值</span>
+							<span class="rightVal" id="hjz"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/15.png" />
+							<span class="titleItem">高压计数值</span>
+							<span class="rightVal" id="gyz"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/14.png" />
+							<span class="titleItem">风向</span>
+							<span class="rightVal" id="drec"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/13.png" />
+							<span class="titleItem">风速</span>
+							<span class="rightVal" id="sped"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/10.png" />
+							<span class="titleItem">信号强度</span>
+							<span class="rightVal" id="csq"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/11.png" />
+							<span class="titleItem">版本号</span>
+							<span class="rightVal" id="dver"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/12.png" />
+							<span class="titleItem">上报时间</span>
+							<span class="rightVal" id="uplTime"></span>
+						</li>
+					</ul>
+				</div>
+			</div>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
+		<script type="text/javascript">
+			mui.init()
+			var equipId;
+			var ybq_data,upl_time;
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				upl_time = self.upl_time;
+				console.log(self.ybq_data)
+				ybq_data = eval('('+self.ybq_data+')');
+				console.log(ybq_data)
+				fullData(ybq_data);
+			})
+
+			function fullData(dat) {
+				$('#ds').html(dat.ds==1?'开启':'关闭');
+				$('#ws').html(dat.ws==1?'工作':'待机');
+				$('#at').html(dat.at);
+				$('#ah').html(dat.ah);
+				if(dat.cv !== null){					
+					$('#cv').html(dat.cv/1000);
+				}else{
+					$('#cv').html( '--');
+				}
+				if(dat.bv){					
+					$('#bv').html(dat.bv/1000);
+				}else{
+					$('#bv').html( '--');
+				}
+				if(dat.cs !== null){	
+					$('#cs').html(dat.cs == '1' ?'充电中':'未充电');
+				}else{
+					$('#cs').html('--');
+				}
+				if(dat.bs !== null){	
+					if(dat.bs == 0){						
+						$('#bs').html('正常');
+					}else if(dat.bs == 1){						
+						$('#bs').html('欠压');
+					}else if(dat.bs == 2){						
+						$('#bs').html('过压');
+					}
+				}else{
+					$('#bs').html('--');
+				}
+				if (dat.infr_ct !== null) {
+					$('#hjz').html(dat.infr_ct)
+				} else{
+					$('#hjz').html('--')
+				}
+				if (dat.volt_ct !== null) {
+					$('#gyz').html(dat.volt_ct)
+				} else{
+					$('#gyz').html('--')
+				}
+				if (dat.wind_drec !== null) {
+					$('#drec').html(dat.wind_drec)
+				} else{
+					$('#drec').html('--')
+				}
+				if (dat.wind_sped !== null) {
+					$('#sped').html(dat.wind_sped)
+				} else{
+					$('#sped').html('--')
+				}
+				if (dat.tps !== null) {
+					if(dat.tps == 0){						
+						$('#tps').html('正常');
+					}else if(dat.tps == 1){						
+						$('#tps').html('温控');
+					}
+				} else{
+					$('#tps').html('--')
+				}
+				if (dat.rps !== null) {
+					if(dat.rps == 0){						
+						$('#rps').html('正常');
+					}else if(dat.tps == 1){						
+						$('#rps').html('雨控');
+					}
+				} else{
+					$('#rps').html('--')
+				}
+				if (dat.dps !== null) {
+					if(dat.dps == 0){						
+						$('#dps').html('正常');
+					}else if(dat.tps == 1){						
+						$('#dps').html('倾倒');
+					}
+				} else{
+					$('#dps').html('--')
+				}
+//				$('#cpu_tmp').html(dat.cpu_tmp/1000);
+				$('#csq').html(dat.csq);
+				$('#dver').html(dat.dver);
+				$('#uplTime').html(upl_time)
+			}
+
+		</script>
+	</body>
+
+</html>

+ 184 - 0
equipManage/sex_trap_detail_list_detail2.html

@@ -0,0 +1,184 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link rel="stylesheet" href="../css/reset.css" />
+		<link rel="stylesheet" href="../css/mui.min.css" />
+		<link rel="stylesheet" href="../css/common.css" />
+		<script src="../js/base.js" type="text/javascript" charset="utf-8"></script>
+		<style type="text/css">
+			.mui-content,
+			body,
+			html {
+				background: #fff;
+			}
+			.mui-content{
+				padding-bottom: 60px;
+			}
+			
+			.innerDiv {
+				padding: .3rem;
+			}
+			
+			.equipInfo>ul>li {
+				line-height: 66px;
+				overflow: hidden;
+			}
+			
+			.equipInfo {
+				margin: .2rem .3rem 0;
+			}
+			
+			.equipInfo>ul>li>img {
+				width: 41px;
+				height: 41px;
+			}
+			
+			.titleItem {
+				margin-left: .4rem;
+				color: #999;
+				letter-spacing: .03rem;
+			}
+			
+			.rightVal {
+				float: right;
+				height: 50px;
+				line-height: 50px;
+			}
+		
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">详情</h1>
+		</header>
+		<div class="mui-content">
+			<div class="innerDiv">
+				<div class="equipInfo">
+					<ul>
+						<li>
+							<img src="../images/sex_trap/1.png" />
+							<span class="titleItem">设备开关</span>
+							<span class="rightVal" id="ds"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/2.png" />
+							<span class="titleItem">工作状态</span>
+							<span class="rightVal" id="ws"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/3.png" />
+							<span class="titleItem">环境温度</span>
+							<span class="rightVal" id="at"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/4.png" />
+							<span class="titleItem">环境湿度</span>
+							<span class="rightVal" id="ah"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/5.png" />
+							<span class="titleItem">充电电压</span>
+							<span class="rightVal" id="cv"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/6.png" />
+							<span class="titleItem">电池电压</span>
+							<span class="rightVal" id="bv"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/7.png" />
+							<span class="titleItem">充电状态</span>
+							<span class="rightVal" id="cs"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/8.png" />
+							<span class="titleItem">电池状态</span>
+							<span class="rightVal" id="bs"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/9.png" />
+							<span class="titleItem">CPU温度</span>
+							<span class="rightVal" id="cpu_tmp"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/10.png" />
+							<span class="titleItem">信号强度</span>
+							<span class="rightVal" id="csq"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/11.png" />
+							<span class="titleItem">版本号</span>
+							<span class="rightVal" id="dver"></span>
+						</li>
+						<li>
+							<img src="../images/sex_trap/12.png" />
+							<span class="titleItem">上报时间</span>
+							<span class="rightVal" id="uplTime"></span>
+						</li>
+					</ul>
+				</div>
+			</div>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
+		<script type="text/javascript">
+			mui.init()
+			var equipId;
+			var ybq_data,upl_time;
+			mui.plusReady(function() {
+				var self = plus.webview.currentWebview();
+				equipId = self.equipId;
+				upl_time = self.upl_time;
+				console.log(self.ybq_data)
+				ybq_data = eval('('+self.ybq_data+')');
+				fullData(ybq_data);
+			})
+
+			function fullData(dat) {
+				$('#ds').html(dat.ds==1?'开启':'关闭');
+				$('#ws').html(dat.ws==1?'工作':'待机');
+				$('#at').html(dat.at);
+				$('#ah').html(dat.ah);
+				if(dat.cv){					
+					$('#cv').html(dat.cv/1000);
+				}else{
+					$('#cv').html( '--');
+				}
+				if(dat.bv){					
+					$('#bv').html(dat.bv/1000);
+				}else{
+					$('#bv').html( '--');
+				}
+				if(dat.cs){					
+					$('#cs').html(dat.cs==1?'充电中':'未充电');
+				}else{
+					$('#cs').html('--');
+				}
+				if(dat.bs){	
+					if(dat.bs == 0){						
+						$('#bs').html('正常');
+					}else if(dat.bs == 1){						
+						$('#bs').html('欠压');
+					}else if(dat.bs == 2){						
+						$('#bs').html('过压');
+					}
+				}else{
+					$('#bs').html('--');
+				}
+				$('#cpu_tmp').html(dat.cpu_tmp/1000);
+				$('#csq').html(dat.csq);
+				$('#dver').html(dat.dver);
+				$('#uplTime').html(upl_time)
+			}
+
+		</script>
+	</body>
+
+</html>

+ 448 - 0
equipManage/sex_trap_photo2.html

@@ -0,0 +1,448 @@
+<html>
+
+	<head>
+		<meta charset="utf-8">
+		<title>Hello MUI</title>
+		<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
+		<meta name="apple-mobile-web-app-capable" content="yes">
+		<meta name="apple-mobile-web-app-status-bar-style" content="black">
+		<!--标准mui.css-->
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link rel="stylesheet" href="../css/mescroll.min.css">
+		<link rel="stylesheet" href="../css/iconfont.css">
+		<link rel="stylesheet" href="../css/reset.css">
+		<link rel="stylesheet" href="../css/common.css">
+		<!--App自定义的css-->
+		<style type="text/css">
+			.mui-preview-image.mui-fullscreen {
+				position: fixed;
+				z-index: 20;
+				background-color: #000;
+			}
+			
+			.mui-preview-header,
+			.mui-preview-footer {
+				position: absolute;
+				width: 100%;
+				left: 0;
+				z-index: 10;
+			}
+			
+			.mui-preview-header {
+				height: 44px;
+				top: 0;
+			}
+			
+			.mui-preview-footer {
+				height: 50px;
+				bottom: 0px;
+			}
+			
+			.mui-preview-header .mui-preview-indicator {
+				display: block;
+				line-height: 25px;
+				color: #fff;
+				text-align: center;
+				margin: 15px auto 4;
+				width: 70px;
+				background-color: rgba(0, 0, 0, 0.4);
+				border-radius: 12px;
+				font-size: 16px;
+			}
+			
+			.mui-preview-image {
+				display: none;
+				-webkit-animation-duration: 0.5s;
+				animation-duration: 0.5s;
+				-webkit-animation-fill-mode: both;
+				animation-fill-mode: both;
+			}
+			
+			.mui-preview-image.mui-preview-in {
+				-webkit-animation-name: fadeIn;
+				animation-name: fadeIn;
+			}
+			
+			.mui-preview-image.mui-preview-out {
+				background: none;
+				-webkit-animation-name: fadeOut;
+				animation-name: fadeOut;
+			}
+			
+			.mui-preview-image.mui-preview-out .mui-preview-header,
+			.mui-preview-image.mui-preview-out .mui-preview-footer {
+				display: none;
+			}
+			
+			.mui-zoom-scroller {
+				position: absolute;
+				display: -webkit-box;
+				display: -webkit-flex;
+				display: flex;
+				-webkit-box-align: center;
+				-webkit-align-items: center;
+				align-items: center;
+				-webkit-box-pack: center;
+				-webkit-justify-content: center;
+				justify-content: center;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				top: 0;
+				width: 100%;
+				height: 100%;
+				margin: 0;
+				-webkit-backface-visibility: hidden;
+			}
+			
+			.mui-zoom {
+				-webkit-transform-style: preserve-3d;
+				transform-style: preserve-3d;
+			}
+			
+			.mui-slider .mui-slider-group .mui-slider-item img {
+				width: auto;
+				height: auto;
+				max-width: 100%;
+				max-height: 100%;
+			}
+			
+			.mui-android-4-1 .mui-slider .mui-slider-group .mui-slider-item img {
+				width: 100%;
+			}
+			
+			.mui-android-4-1 .mui-slider.mui-preview-image .mui-slider-group .mui-slider-item {
+				display: inline-table;
+			}
+			
+			.mui-android-4-1 .mui-slider.mui-preview-image .mui-zoom-scroller img {
+				display: table-cell;
+				vertical-align: middle;
+			}
+			
+			.mui-preview-loading {
+				position: absolute;
+				width: 100%;
+				height: 100%;
+				top: 0;
+				left: 0;
+				display: none;
+			}
+			
+			.mui-preview-loading.mui-active {
+				display: block;
+			}
+			
+			.mui-preview-loading .mui-spinner-white {
+				position: absolute;
+				top: 50%;
+				left: 50%;
+				margin-left: -25px;
+				margin-top: -25px;
+				height: 50px;
+				width: 50px;
+			}
+			
+			.mui-preview-image img.mui-transitioning {
+				-webkit-transition: -webkit-transform 0.5s ease, opacity 0.5s ease;
+				transition: transform 0.5s ease, opacity 0.5s ease;
+			}
+			
+			@-webkit-keyframes fadeIn {
+				0% {
+					opacity: 0;
+				}
+				100% {
+					opacity: 1;
+				}
+			}
+			
+			@keyframes fadeIn {
+				0% {
+					opacity: 0;
+				}
+				100% {
+					opacity: 1;
+				}
+			}
+			
+			@-webkit-keyframes fadeOut {
+				0% {
+					opacity: 1;
+				}
+				100% {
+					opacity: 0;
+				}
+			}
+			
+			@keyframes fadeOut {
+				0% {
+					opacity: 1;
+				}
+				100% {
+					opacity: 0;
+				}
+			}
+			
+			p img {
+				max-width: 100%;
+				height: auto;
+			}
+			.mui-media-object{
+				max-height: 260px;
+				height: 260px;
+				border: 1px solid #E0E0E0;
+			}
+			/*操作*/
+			.mui-table-view.mui-grid-view .mui-table-view-cell.operateRight >div{
+				display: flex;
+				justify-content: space-around;
+			}
+			.mui-table-view-cell p {
+				text-align: left;
+				padding-left: 20px;
+				font-size: 16px;
+				line-height: 24px;
+				overflow: hidden;
+				white-space: nowrap;
+				text-overflow: ellipsis;
+			}
+			.mui-table-view-cell p:last-child {
+				font-size: 15px;
+			}
+			.activeBj{
+				background: #eee;
+			}
+			
+			.mui-table-view-cell p i {
+				margin-right: 15px;
+				color: #007AFF;
+			}
+			.nullData {
+				top: 45px;
+			}
+			.photoMsg,.photoMsg i{
+				color: #21b2e7;
+			}
+			#scrollPlace{
+				padding-bottom: 60px;
+				background: #fff;
+			}
+		</style>
+
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title" id="title"></h1>
+		</header>
+		<div class="mui-content">
+			<div id="scrollPlace" class="mescroll"> <!--id可以改,而"mescroll"的class不能删-->
+		   		<ul id="dataList"  class="mui-table-view mui-grid-view">
+					<!--<li class="item">
+						<div class="mui-table-view-cell mui-col-xs-12">
+							<img class="mui-media-object" src="../images/shuijiao.jpg" data-preview-src="" data-preview-group="1">
+						</div>
+						<div class="mui-table-view-cell mui-col-xs-12 operateRight">
+							<div>
+								<span>2017-6-12 10:09</span>
+								<span><i class="iconfont">&#xe65c;</i>删除</span>
+							</div>
+						</div>
+					</li>-->
+				</ul>
+			</div>
+		</div>
+	</body>
+	<script src="../js/jquery-2.1.0.js"></script>
+	<script src="../js/mui.min.js"></script>
+	<script src="../js/mui.zoom.js"></script>
+	<script src="../js/mescroll.min.js" charset="utf-8"></script>
+	<script src="../js/mui.previewimage.js"></script>
+	<script>
+		var equipId;
+		var startPage = 1;
+		var totalPage = 0;
+		var username;
+		mui.plusReady(function() {
+			var self = plus.webview.currentWebview();
+			equipId = self.equipId;
+			console.log(equipId)
+			//默认第一次加载数据
+//			requestData();
+			username = plus.storage.getItem('username');
+			mescroll = new MeScroll("scrollPlace", {
+				up: {
+					callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page) { getListData(page); }
+					isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
+					clearEmptyId: "dataList", //1.下拉刷新时会自动先清空此列表,再加入数据; 2.无任何数据时会在此列表自动提示空
+					toTop:{ //配置回到顶部按钮
+						src : "../images/totop.png", //默认滚动到1000px显示,可配置offset修改
+						offset : 700
+					},
+					empty: {
+						//列表第一页无任何数据时,显示的空提示布局; 需配置warpId才显示
+						warpId:	"dataList", //父布局的id (1.3.5版本支持传入dom元素)
+						icon: "../images/listNull.png", //图标,默认null,支持网络图
+						tip: "暂无相关数据~" //提示
+					},
+					htmlNodata: '<p class="upwarp-nodata">-- 没有更多内容了 --</p>',
+					noMoreSize: 5, //如果列表已无数据,可设置列表的总数量要大于5才显示无更多数据;
+					lazyLoad: {
+			        	use: true // 是否开启懒加载,默认false
+			        }
+				}
+			});
+		})
+
+		/*联网加载列表数据  page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
+		function getListData(page){
+			//联网加载数据
+			getListDataFromNet(page.num, page.size, function(curPageData,totalSize){
+				//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
+				//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
+				//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
+				mescroll.endSuccess(totalSize);
+				//设置列表数据,因为配置了emptyClearId,第一页会清空dataList的数据,所以setListData应该写在最后;
+				setListData(curPageData);
+			}, function(){
+				//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
+                mescroll.endErr();
+				mui.toast('数据请求失败');
+			});
+		}
+		/*设置列表数据*/
+		function setListData(curPageData){
+			var html = '';
+			var dat = curPageData;
+//				var dat = data.img;
+			for(var i = 0; i<dat.length; i++){
+//				html += '<li class="item" data-path="'+dat[i].addr+'"><div class="mui-table-view-cell mui-col-xs-6">' +
+//						'<img class="mui-media-object" src="http://120.27.222.26/'+dat[i].addr+'" data-preview-src="" data-preview-group="1">' +
+//						'</div><div class="mui-table-view-cell mui-col-xs-6 operateRight"><p class="delBtn"><i class="iconfont" >&#xe65c;</i>删除' +
+//						'</p><p class="lookDetial"><i class="iconfont" >&#xe723;</i>查看描述</p><p class="discern"><i class="iconfont" >&#xe62d;</i>识别</p><p class="addDetial">' +
+//						'<i class="iconfont" >&#xe69b;</i>添加描述</p><p class="itemTime">'+dat[i].upl_time+'</p></div></li>';
+				html += '<li class="item" data-path="'+dat[i].addr+'"><div class="mui-table-view-cell mui-col-xs-12">'+
+						'<img class="mui-media-object" src="http://120.27.222.26/'+dat[i].addr+'" data-preview-src="" data-preview-group="1">'+
+						'</div><div class="mui-table-view-cell mui-col-xs-12 operateRight"><div class="photoMsg">'+
+						'<span>'+dat[i].upl_time+'</span><span class="delBtn"><i class="iconfont">&#xe65c;</i>删除</span>'+
+						'</div></div></li>'
+			}
+			$('#dataList').append(html)
+		}
+		/*联网加载列表数据*/
+		function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
+        	mui.ajax('http://120.27.222.26/app_ybq_img', {
+				data: {
+					'page': pageNum,
+					'equip_id': equipId
+				},
+				dataType: 'json', //服务器返回json格式数据
+				type: 'post', //HTTP请求类型
+				timeout: 10000, //超时时间设置为10秒;
+				beforeSend: function() {
+					plus.nativeUI.showWaiting('请求中...');
+				},
+				complete: function() {
+					plus.nativeUI.closeWaiting();
+				},
+				success: function(data) {
+					$('#title').html(data.equip_id)
+					successCallback(data.img,data.nums);
+				},
+				error: function(xhr, type, errorThrown) {
+
+				}
+			});
+		}
+
+		//图片轮播
+		mui.previewImage();
+
+		//删除
+		mui('#dataList').on('tap', '.delBtn', function() {
+			var _this = this;
+			$(_this).addClass("activeBj"); // 追加样式 
+			setTimeout(function(){
+				$(_this).removeClass("activeBj"); //移除p元素中值为"high"的class
+			},30)
+			var path = $(_this).parents('.item').data('path');
+			mui.ajax('http://120.27.222.26/ybq_delete_img', {
+				data: {
+					'addr': path,
+					'imei': equipId
+				},
+				dataType: 'json', //服务器返回json格式数据
+				type: 'post', //HTTP请求类型
+				timeout: 10000, //超时时间设置为10秒;
+				beforeSend: function() {
+					plus.nativeUI.showWaiting('请求中...');
+				},
+				complete: function() {
+					plus.nativeUI.closeWaiting();
+				},
+				success: function(data) {
+					if(data == 0){
+						window.location.reload();
+					}
+				},
+				error: function(xhr, type, errorThrown) {
+					mui.toast('删除失败')
+				}
+			})
+		})
+		//识别
+		mui('#dataList').on('tap', '.discern', function() {
+			var _this = this;
+			$(_this).addClass("activeBj"); // 追加样式 
+			setTimeout(function(){
+				$(_this).removeClass("activeBj"); //移除p元素中值为"high"的class
+			},30)
+			var path = $(_this).parents('.item').data('path');
+			mui.openWindow({
+				url: 'cbd_image_discern_resule.html',
+				id: 'cbd_image_discern_resule',
+				extras: {
+					equipId: equipId,
+					addr: path
+				}
+			})
+		})
+		//查看详情
+		mui('#dataList').on('tap', '.lookDetial', function() {
+			var _this = this;
+			$(_this).addClass("activeBj"); // 追加样式 
+			setTimeout(function(){
+				$(_this).removeClass("activeBj"); //移除p元素中值为"high"的class
+			},30)
+			var path = $(_this).parents('.item').data('path');
+			mui.openWindow({
+				url: 'lookWormDetial.html',
+				id: 'lookWormDetial',
+				extras: {
+					equipId: equipId,
+					addr: path
+				}
+			})
+		})
+		//添加详情
+		mui('#dataList').on('tap', '.addDetial', function() {
+			var _this = this;
+			$(_this).addClass("activeBj"); // 追加样式 
+			setTimeout(function(){
+				$(_this).removeClass("activeBj"); //移除p元素中值为"high"的class
+			},30)
+			var path = $(_this).parents('.item').data('path');
+			mui.openWindow({
+				url: 'wormDescribe.html',
+				id: 'wormDescribe',
+				extras: {
+					equipId: equipId,
+					addr: path
+				}
+			})
+		})
+	</script>
+
+</html>

BIN
fonts/iconfont.eot


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 0
fonts/iconfont.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 364 - 0
fonts/iconfont.svg


BIN
fonts/iconfont.ttf


BIN
fonts/iconfont.woff


BIN
fonts/iconfont.woff2


BIN
fonts/mui.ttf


+ 34 - 0
helpcenter/copy---feedback.html

@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang="en" class="feedback">
+	<head>
+		<meta charset="UTF-8" />
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<title>问题反馈</title>
+		<link rel="stylesheet" type="text/css" href="../css/mui.min.css" />
+		<link rel="stylesheet" type="text/css" href="../css/feedback.css" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" type="text/css" href="../css/common.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">问题反馈</h1>
+			<a id="submit" class="mui-icon fa fa-cloud-upload mui-pull-right"></a>
+		</header>
+		<div class="mui-content">
+			<div class="row mui-input-row">
+				<textarea id='question' class="mui-input-clear question" placeholder="请详细描述你的问题和意见..."></textarea>
+			</div>
+			<p>图片(选填,提供问题截图,总大小10M以下)</p>
+			<div id='image-list' class="row image-list"></div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/feedback.js" type="text/javascript" charset="utf-8"></script>
+		<script type="text/javascript">
+			mui.init();
+			mui('.mui-scroll-wrapper').scroll();
+		</script>
+	</body>
+
+</html>

+ 34 - 0
helpcenter/feedback.html

@@ -0,0 +1,34 @@
+<!doctype html>
+<html lang="en" class="feedback">
+	<head>
+		<meta charset="UTF-8" />
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<title>问题反馈</title>
+		<link rel="stylesheet" type="text/css" href="../css/mui.min.css" />
+		<link rel="stylesheet" type="text/css" href="../css/feedback.css" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<link rel="stylesheet" type="text/css" href="../css/common.css"/>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">问题反馈</h1>
+			<a id="submit" class="mui-icon fa fa-cloud-upload mui-pull-right"></a>
+		</header>
+		<div class="mui-content">
+			<div class="row mui-input-row">
+				<textarea id='question' class="mui-input-clear question" placeholder="请详细描述你的问题和意见..."></textarea>
+			</div>
+			<p>图片(选填,提供问题截图,总大小10M以下)</p>
+			<div id='image-list' class="row image-list"></div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/feedback.js" type="text/javascript" charset="utf-8"></script>
+		<script type="text/javascript">
+			mui.init();
+			mui('.mui-scroll-wrapper').scroll();
+		</script>
+	</body>
+
+</html>

+ 157 - 0
helpcenter/help_detail.html

@@ -0,0 +1,157 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<style type="text/css">
+			body,
+			.mui-content {
+				background: #fff;
+				margin-top: 5px;
+			}
+			
+			.mui-card-footer:before,
+			.mui-card-header:after {
+				background: transparent;
+			}
+			
+			.mui-card-content-inner img {
+				width: 48%;
+			}
+			
+			.mui-card-header .mui-icon-chatboxes {
+				color: #777;
+			}
+			
+			.mui-card-content:after,.commentBody:after {
+				position: absolute;
+				bottom: 0;
+				right: 0;
+				left: 0;
+				height: 1px;
+				content: '';
+				-webkit-transform: scaleY(.5);
+				transform: scaleY(.5);
+				background-color: #c8c7cc;
+			}
+			.mui-card-content-inner{
+				padding-top: 0;
+			}
+			/*评论*/
+			
+			.commentHead{
+				padding: 15px 15px 0 15px;
+			}
+			.commentBody{
+				padding: 15px;
+				position: relative;
+			}
+			
+			.commentHead a {
+				color: #777;
+				font-size: 22px;
+				vertical-align: middle;
+				margin-right: 5px;
+			}
+			
+			.commentHead span {
+				font-size: 16px;
+			}
+			
+			.commentBody>img {
+				font-size: 0;
+				line-height: 0;
+				float: left;
+				width: 34px;
+				height: 34px;
+			}
+			
+			.commentBody .mui-media-body {
+				font-size: 14px;
+				font-weight: 500;
+				line-height: 17px;
+				margin-bottom: 0;
+				margin-left: 44px;
+				color: #333;
+			}
+			
+			.commentBody .mui-media-body p {
+				font-size: 18px;
+				margin-bottom: 5px;
+				color: #111111;
+				line-height: 27px;
+			}
+			.describeTxt{
+				letter-spacing: 3px;
+			}
+			.describeTxt img{
+				width: 48%;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">问题详情</h1>
+		</header>
+		<div class="mui-content">
+			<div class="mui-card-header mui-card-media">
+				<img src="../img/logo.png">
+				<div class="mui-media-body">
+					小M
+					<p>发表于 2016-06-30 15:30</p>
+				</div>
+			</div>
+			<div class="mui-card-content">
+				<div class="mui-card-content-inner">
+					<div>
+						包含页眉页脚的卡片,页眉常用来显示面板标题,页脚用来显示额外信息或支持的操作(比如点赞、评论等)
+					</div>
+					<img src="../images/cbd.jpg" />
+					<img src="../images/cbd.jpg" />
+				</div>
+			</div>
+			<div id="comment">
+				<div class="commentHead">
+					<a class="mui-icon mui-icon-chatboxes"></a>
+					<span>评论(2)</span>
+				</div>
+				
+				<div class="commentBody">
+					<img src="../img/logo.png">
+					<div class="mui-media-body">
+						<p>小M</p>
+						<div class="describeTxt">
+							<div >
+								描述描述描述描述描述描述描述描述
+								描述描述描述描述描述描述描述描述
+								描述描述描述描述描述描述描述描述
+								描述描述描述描述描述描述描述描述
+							</div>
+							<img src="../images/cbd.jpg"/>
+						</div>
+					</div>
+				</div>
+				<div class="commentBody">
+					<img src="../img/logo.png">
+					<div class="mui-media-body">
+						<p>小M</p>
+						<div class="describeTxt">
+							小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M小M
+						</div>
+					</div>
+				</div>
+				
+			</div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init()
+		</script>
+	</body>
+
+</html>

+ 94 - 0
helpcenter/help_list.html

@@ -0,0 +1,94 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<style type="text/css">
+			body,
+			.mui-content {
+				background: #fff;
+			}
+			
+			.mui-card-header.mui-card-media .mui-media-body {
+				margin-left: 8px;
+			}
+			
+			.mui-card-footer:before,
+			.mui-card-header:after {
+				background: transparent;
+			}
+			
+			.mui-card-content-inner img {
+				width: 48%;
+			}
+			
+			.mui-card-header .mui-icon-chatboxes {
+				color: #777;
+			}
+			
+			.mui-card-content:after {
+				position: absolute;
+				bottom: 0;
+				right: 0;
+				left: 0;
+				height: 1px;
+				content: '';
+				-webkit-transform: scaleY(.5);
+				transform: scaleY(.5);
+				background-color: #c8c7cc;
+			}
+		</style>
+	</head>
+
+	<body>
+		<div class="mui-content">
+			<div class="mui-card-header mui-card-media">
+				<img src="../img/logo.png">
+				<div class="mui-media-body mui-pull-left">
+					小M
+					<p>发表于 2016-06-30 15:30</p>
+				</div>
+				<a class="mui-icon mui-icon-chatboxes mui-pull-right"></a>
+			</div>
+			<div class="mui-card-content">
+				<div class="mui-card-content-inner">
+					<div>
+						包含页眉页脚的卡片,页眉常用来显示面板标题,页脚用来显示额外信息或支持的操作(比如点赞、评论等)
+					</div>
+					<img src="../images/cbd.jpg" />
+					<img src="../images/cbd.jpg" />
+				</div>
+			</div>
+			<div class="mui-card-header mui-card-media">
+				<img src="../img/logo.png">
+				<div class="mui-media-body mui-pull-left">
+					小M
+					<p>发表于 2016-06-30 15:30</p>
+				</div>
+				<a class="mui-icon mui-icon-chatboxes mui-pull-right"></a>
+			</div>
+			<div class="mui-card-content">
+				<div class="mui-card-content-inner">
+					<div>
+						包含页眉页脚的卡片,页眉常用来显示面板标题,页脚用来显示额外信息或支持的操作(比如点赞、评论等)
+					</div>
+					<img src="../images/loginBj.jpg" />
+				</div>
+			</div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			mui(".mui-card-header").on("tap", "a", function(e) {
+				mui.openWindow({
+					url:'help_detail.html',
+					id:'help_detail'
+				})
+			})
+		</script>
+	</body>
+
+</html>

+ 113 - 0
helpcenter/useDirection.html

@@ -0,0 +1,113 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/common.css" />
+		<style type="text/css">
+			.useHead{
+				margin-bottom: 10px;
+			}
+			.number {
+				position: absolute;
+				left: 10px;
+				width: 25px;
+				height: 25px;
+				border-radius: 50%;
+				background: #46c1ed;
+				top: 9px;
+				text-align: center;
+				line-height: 25px;
+				color: #fff;
+			}
+			
+			.questionTit {
+				font-size: 16px;
+				padding-left: 35px;
+			}
+			
+			.useBody {
+				padding-left: 35px;
+			}
+			.mui-content>.mui-table-view:first-child{
+				margin-top: 0;;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">使用说明</h1>
+		</header>
+		<div class="mui-content">
+			<ul class="mui-table-view">
+				<li class="mui-table-view-cell">
+					<div class="useHead">
+						<div class="number">1</div>
+						<div class="questionTit">频振式杀虫灯的技术参数?</div>
+					</div>
+					<div class="useBody">
+						<p>诱虫光源:频振灯管,波长为320~680nm </p>
+						<p>符合GB/T 24689.2-2009标准</p>
+						<p>撞击面积:≥0.15㎡</p>
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<div class="useHead">
+						<div class="number">2</div>
+						<div class="questionTit">杀虫灯的使用、设置方法:</div>
+					</div>
+					<div class="useBody">
+						<p>设备开机/关机:短按开关键;</p>
+						<p>恢复到出厂默认设置:长按开关键;</p>
+						<p>光控功能:光控模块检测到环境光线明暗程度到设定值时,延时10min后,重新检测一次,两次检测一致,杀虫灯开始正常工作,否则不工作。</p>
+						<p>时控功能:根据不同种类害虫的活动时间规律,设定10个工作时间段智能控制模块:</p>
+						<p>出厂默认工作时长4个小时,开机后状态指示灯慢闪4次。</p>
+						<p>每长按测试键一次,杀虫灯工作时间增加1小时。</p>
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<div class="useHead">
+						<div class="number">3</div>
+						<div class="questionTit">杀虫灯状态指示说明:</div>
+					</div>
+					<div class="useBody">
+						<p>注:指示灯慢闪的次数指示当前的定时小时数,当定时结束,红灯慢闪不停,进入待机模式,等待充电。</p>
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<div class="useHead">
+						<div class="number">4</div>
+						<div class="questionTit">杀虫灯的温控说明:</div>
+					</div>
+
+					<div class="useBody">
+						<p>温度保护:工作的环境温度为10°C~70°C。环境温度低于10°C,杀虫灯停止工作,蓄电池进入充电维护状态。环境温度高于70°C时,电路自动进入保护状态,杀虫灯停止工作。</p>
+					</div>
+				</li>
+				<li class="mui-table-view-cell">
+					<div class="useHead">
+						<div class="number">5</div>
+						<div class="questionTit">杀虫灯自动保护功能下,状态灯显示模式:</div>
+					</div>
+					<div class="useBody">
+						<p>当环境温度大于75℃或小于10℃,温度保护:红灯快闪1次停2s;</p>
+						<p>倾倒保护:红灯快闪1次停2s;</p>
+						<p>电池电压大于14.2V:蓄电池过压保护:红灯快闪2次停2s;</p>
+						<p>工作电压小于:11.6V:蓄电池欠压保护:红灯快闪2次停2s</p>
+						<p>湿度保护:红灯快闪3次停2s;</p>
+					</div>
+				</li>
+			</ul>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init()
+		</script>
+	</body>
+
+</html>

+ 255 - 0
home/autoDiscern.html

@@ -0,0 +1,255 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">	
+			.innerBox{
+				width: 80%;
+				margin: 10% auto;
+				border-radius: 10px;
+				background: #fff;
+				position: relative;
+    			padding-bottom: 30px;
+			}
+			.discernImg >img{
+				border-radius: 10px 10px 0 0;
+			}
+			.detailsBox{
+				padding: 0 10%;
+			}
+			.detailsBox h1{
+				font-size: 20px;
+				line-height: 50px;
+				border-bottom: 1px solid #d3d3d3;
+			}
+			.detailsBox >div{
+				color: #626262;
+				text-indent: 30px;
+			}
+			/*上传按钮*/
+			.upfileBox{
+				position: absolute;
+			    left: 0;
+			    right: 0;
+			    text-align: center;
+			    bottom: -27px;
+			}
+			.upfileBox:after{
+				position: absolute;
+			    bottom: -23px;
+			    content: '上传图片可识别昆虫,获取昆虫资料';
+			    left: 0;
+			    right: 0;
+			    color: #d0cece;
+			}
+			#upFile{
+				width: 150px;
+			    height: 50px;
+			    border-radius: 27px;
+			    background: url(../images/upfilebj.png) no-repeat;
+			    background-size: cover;
+			    border: none;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">拍照识别</h1>
+		</header>
+		<div class="mui-content">
+			<div class="innerBox">
+				<div class="introduceBox">
+					<div class="discernImg">
+						<img src="../images/ant.jpg" width="100%"/>
+					</div>
+					<div class="detailsBox">
+						<h1>蚂蚁</h1>
+						<div class="">
+							蚂蚁是一种昆虫,别名蚁、玄驹、昆蜉、蚍蜉蚂,属节肢动物门,昆虫纲,膜翅目,蚁科。蚂蚁的种类繁多,世界上已知有11700多种,有21亚科283属,中国境内已确定的蚂蚁种类有600多种。 
+						</div>
+					</div>
+				</div>
+				<div class="upfileBox">
+					<button id="upFile"></button>
+				</div>
+			</div>
+		</div>
+
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			//上传
+			document.getElementById('upFile').addEventListener('tap', function() {
+				if(mui.os.plus) {
+					var a = [{
+						title: '拍照'
+					}, {
+						title: '从手机相册选择'
+					}];
+					plus.nativeUI.actionSheet({
+						title: '识别图片',
+						cancel: '取消',
+						buttons: a
+					}, function(b) {
+						console.log(b.index)
+						switch(b.index) {
+							case 0:
+								break;
+							case 1:
+								//拍照
+								getImages();
+								break;
+							case 2:
+								//打开相册
+								galleryImages();
+								break;
+							default:
+								break;
+						}
+					}, false);
+				}
+			});
+
+			//拍照
+			function getImages() {
+				var mobileCamera = plus.camera.getCamera();
+				mobileCamera.captureImage(function(e) {
+					plus.io.resolveLocalFileSystemURL(e, function(entry) {
+						var path = entry.toLocalURL() + '?version=' + new Date().getTime();
+						uploadHeadImg(path);
+					}, function(e) {
+						console.log("读取拍照文件错误");
+					});
+				}, function(e) {
+					console.log("er", e);
+				}, function() {
+					filename: '_doc/head.png';
+				});
+			}
+
+			//从本地相册选择
+			function galleryImages() {
+				console.log("你选择了从相册选择");
+				plus.gallery.pick(function(a) {
+					plus.io.resolveLocalFileSystemURL(a, function(entry) {
+						plus.io.resolveLocalFileSystemURL('_doc/', function(root) {
+							root.getFile('head.png', {}, function(file) {
+								//文件已经存在
+								file.remove(function() {
+									console.log("文件移除成功");
+									entry.copyTo(root, 'head.png', function(e) {
+										var path = e.fullPath + '?version=' + new Date().getTime();
+										uploadHeadImg(path);
+									}, function(err) {
+										console.log("copy image fail: ", err);
+									});
+								}, function(err) {
+									console.log("删除图片失败:(" + JSON.stringify(err) + ")");
+								});
+							}, function(err) {
+								//打开文件失败
+								entry.copyTo(root, 'head.png', function(e) {
+									var path = e.fullPath + '?version=' + new Date().getTime();
+									uploadHeadImg(path);
+								}, function(err) {
+
+									console.log("上传图片失败:(" + JSON.stringify(err) + ")");
+								});
+							});
+						}, function(e) {
+							console.log("读取文件夹失败:(" + JSON.stringify(err) + ")");
+						});
+					});
+				}, function(err) {
+					console.log("读取拍照文件失败: ", err);
+				}, {
+					filter: 'image'
+				});
+			};
+//上传图片
+			function uploadHeadImg(imgPath) {
+				//服务端接口路径
+				var server = "http://47.99.110.100:8080/recognizationSys/api/recognization";
+				//获取图片元素
+				var wt = plus.nativeUI.showWaiting('上传中...');
+				var task = plus.uploader.createUpload(server, {
+						method: "POST",
+						//							timeout:10
+					},
+					function(t, status) { //上传完成
+						if(status == 200) {
+//							alert("上传成功:" + t.responseText);
+							wt.close(); //关闭等待提示按钮
+							mui.openWindow({
+								url:'autoDiscernResult.html',
+								id:'autoDiscernResult',
+								extras: {
+									responseText: t.responseText
+								},
+
+							})
+						} else {
+							alert("上传失败:");
+							wt.close(); //关闭等待提示按钮
+						}
+					}
+				);
+				//添加其他参数
+				//					task.addData("name", "test");
+				task.addData("username", "yunfei");
+				task.addData("uniqueKey", "84e6eb40f3a616dd14b1fefc75425006");
+				task.addData("gis", "118.279643#31.221456");
+				task.addData("imageType", "1");
+				task.addFile(imgPath, {
+					key: "imageFile"
+				});
+				task.start();
+			}
+			//上传图片
+			function uploadHeadImg1(imgPath) {
+				//服务端接口路径
+				var server = "http://120.27.222.26/app_insect_discern";
+				//获取图片元素
+				var wt = plus.nativeUI.showWaiting('上传中...');
+				var task = plus.uploader.createUpload(server, {
+						method: "POST",
+						//							timeout:10
+					},
+					function(t, status) { //上传完成
+						if(status == 200) {
+//							alert("上传成功:" + t.responseText);
+							wt.close(); //关闭等待提示按钮
+							mui.openWindow({
+								url:'autoDiscernResult.html',
+								id:'autoDiscernResult',
+								extras: {
+									responseText: t.responseText
+								},
+
+							})
+						} else {
+							alert("上传失败");
+							wt.close(); //关闭等待提示按钮
+						}
+					}
+				);
+				//添加其他参数
+				//					task.addData("name", "test");
+				task.addData("req", "change_photo");
+				task.addFile(imgPath, {
+					key: "imagefile"
+				});
+				task.start();
+			}
+		</script>
+	</body>
+
+</html>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 371 - 0
home/autoDiscernResult.html


+ 126 - 0
home/bottonTab.html

@@ -0,0 +1,126 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<style type="text/css">
+			body {
+				background: #fff;
+			}
+			
+			.mui-bar {
+				-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.6);
+				box-shadow: 0 0 1px rgba(0, 0, 0, 0.6);
+				padding-top: 6px;
+			}
+		</style>
+	</head>
+
+	<body>
+		<nav class="mui-bar mui-bar-tab">
+			<a class="mui-tab-item mui-active" data-id="firstPage">
+				<img class="mui-icon" src="../images/home-active.png" />
+				<span class="mui-tab-label">首页</span>
+			</a>
+			<a class="mui-tab-item" data-id="equip">
+				<img class="mui-icon" src="../images/equip.png" />
+				<span class="mui-tab-label">设备</span>
+			</a>
+			<a class="mui-tab-item" data-id="warning">
+				<img class="mui-icon" src="../images/warning.png" />
+				<span class="mui-tab-label">预警</span>
+			</a>
+			<a class="mui-tab-item" data-id="setting">
+				<img class="mui-icon" src="../images/my.png" />
+				<span class="mui-tab-label">我的</span>
+			</a>
+		</nav>
+		<div class="mui-content">
+
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			mui.plusReady(function() {
+				//关闭等待框
+				plus.nativeUI.closeWaiting();
+				//显示当前页面
+				mui.currentWebview.show();
+				plus.webview.hide('login');
+				plus.webview.close('login');
+				//预加载页面
+				var arr = document.getElementsByClassName("mui-tab-item");
+				var objYe = ["homePage.html", "equip.html", "../warning/warning.html", "personalinfo.html"];
+				var objStyle = {
+					top: "0px",
+					bottom: "51px",
+				};
+				var objs = [];
+				var self = plus.webview.currentWebview(); //取到当前的主页窗口
+				for(var i = 0; i < arr.length; i++) {
+					! function(i) {
+						var obj = plus.webview.create(objYe[i], objYe[i], objStyle);
+						objs.push(obj);
+
+						arr[i].addEventListener("tap", function() {
+							for(var j = 0; j < arr.length; j++) {
+								if(j != i) {
+									objs[j].hide()
+								} else {
+									objs[j].show()
+								}
+							}
+							self.append(objs[i])
+						})
+					}(i)
+				}
+				mui.trigger(arr[0], "tap");
+
+				//选项卡点击事件
+				mui(".mui-bar-tab").on("tap", "a", function(e) {
+					// 获取当前点击的选项
+					var targetTab = this.getAttribute("href");
+					//当前选项值传到父webview
+					var currWs = plus.webview.currentWebview();
+					var targetTitle = this.querySelector(".mui-tab-label").innerHTML;
+
+					/**
+					 * 用图片作为图标而不用字体图标。
+					 */
+
+					// 获取图标对象
+
+					var targetIcon = mui(this.children[0])[0];
+					//初始化
+					mui(".mui-bar-tab .mui-tab-item img").each(function(index, item) {
+						var itemSrc = item.getAttribute("src");
+						if(itemSrc.indexOf("active")) {
+							item.src = itemSrc.replace("-active.png", ".png");
+						}
+					});
+					//设置当前的图标
+					targetIcon.src = targetIcon.getAttribute("src").replace(".png", "-active.png");
+				});
+			})
+			//退出应用
+			mui.oldback = mui.back;
+			var clickNum = 0;
+			mui.back = function(event) {
+				clickNum++;
+				if(clickNum > 1) {
+					plus.runtime.quit();
+				} else {
+					mui.toast("再按一次退出应用");
+				}
+				setTimeout(function() {
+					clickNum = 0
+				}, 1000);
+				return false;
+			}
+		</script>
+	</body>
+
+</html>

+ 133 - 0
home/copy-equip.html

@@ -0,0 +1,133 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		
+		<style type="text/css">
+			.equitIconBox {
+				width: 150px;
+				height: 150px;
+				background: pink;
+				border-radius: 50%;
+				margin: 19px auto;
+				text-align: center;
+			}
+			
+			.mui-content {
+				background: #fff;
+			}
+			
+			.borderRight {
+				border-right: 2px solid #efeff4;
+			}
+			
+			.borderbottom {
+				border-bottom: 2px solid #efeff4;
+			}
+			/*.equitIconBox>i{
+				display: block;
+				font-size: 61px;
+				padding: 53px 0 20px 10px;
+				color: #8f8f94;
+			}*/
+			
+			.equitIconBox>img {
+				width: 100%;
+			}
+			
+			.categoryTitle {
+				text-align: center;
+				font-size: 18px;
+			}
+			
+			@media (max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+
+			#category .mui-col-sm-6:active{
+				background-color: #eee !important;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<h1 class="mui-title">设备中心</h1>
+		</header>
+		<div class="mui-content">
+			<div class="mui-row" id="category">
+				<div class="mui-col-sm-6 borderRight borderbottom" >
+					<div id="scdEquip">
+						<div class="equitIconBox">
+							<img src="../images/equipIndicate2.png" />
+						</div>
+						<p class="categoryTitle">设备管理</p>
+					</div>
+				</div>
+				<div class="mui-col-sm-6 borderbottom" id="">
+					<div id="cbdEquip">
+						<div class="equitIconBox">
+							<img src="../images/equipIndicate4.png" />
+						</div>
+						<p class="categoryTitle">设备管理</p>
+					</div>
+				</div>
+				<div class="mui-col-sm-6 borderRight borderbottom" id="">
+					<div id="scdReport">
+						<div class="equitIconBox">
+							<img src="../images/equipIndicate3.png" />
+						</div>
+						<p class="categoryTitle">报表管理</p>
+					</div>
+				</div>
+				<div class="mui-col-sm-6  borderbottom">
+					<div id="cbdReport">
+						<div class="equitIconBox">
+							<img src="../images/equipIndicate1.png" />
+						</div>
+						<p class="categoryTitle">报表管理</p>
+					</div>
+				</div>
+				
+			</div>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			document.getElementById('scdEquip').addEventListener('tap',function(){
+				mui.openWindow({
+					url: '../equipManage/equipManage_scd.html',
+					id: 'equipManage_scd'
+				})
+			})
+			document.getElementById('cbdEquip').addEventListener('tap',function(){
+				mui.openWindow({
+					url: '../equipManage/equipManage_cbd.html',
+					id: 'equipManage_cbd'
+				})
+			})
+			document.getElementById('scdReport').addEventListener('tap',function(){
+				mui.openWindow({
+					url: '../reportManage/reprotManage_scd.html',
+					id: 'reprotManage_scd'
+				})
+			})
+			document.getElementById('cbdReport').addEventListener('tap',function(){
+				mui.openWindow({
+					url: '../reportManage/reprotManage_cbd.html',
+					id: 'reprotManage_cbd'
+				})
+			})
+		</script>
+	</body>
+
+</html>

+ 325 - 0
home/copyhomePage.html

@@ -0,0 +1,325 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			body,
+			.mui-content,
+			.mui-grid-view.mui-grid-9 {
+				background: #fff;
+			}
+			.mui-slider .mui-slider-group .mui-slider-item img{
+				height: 200px;
+			}
+			/*分类*/
+			/*.mui-col-xs-2_5 {
+				width: 20%;
+			}*/
+			
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell {
+				padding: 4px 2px;
+			}
+			
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell a>img {
+				width: 55%;
+			}
+			
+			.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body{
+				font-size: .8em;
+    			margin-top: 5px;
+			}
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell>a:not(.mui-btn){
+				padding: 2px 0;
+			}
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell {
+				border: none;
+			}
+			.mui-grid-view.mui-grid-9{
+				padding: 5px 0;
+			}
+			/*产品介绍*/
+			
+			.introduceHead {
+				text-align: center;
+				background: #eee;
+				line-height: 35px;
+			}
+			
+			.introduceHead h1 {
+				font-size: 18px;
+				font-weight: 100;
+				display: inline-block;
+				position: relative;
+			}
+			
+			.introduceHead h1:after {
+				position: absolute;
+				width: 30px;
+				height: 1px;
+				background: #bebebe;
+				content: '';
+				top: 8px;
+				right: -60px;
+			}
+			
+			.introduceHead h1:before {
+				position: absolute;
+				width: 30px;
+				height: 1px;
+				background: #bebebe;
+				content: '';
+				top: 8px;
+				left: -60px;
+			}
+			/*产品列表*/
+			
+			.item {
+				position: relative;
+				padding-bottom: 15px;
+				padding-top: 20px;
+				overflow: hidden;
+				clear: both;
+			}
+			
+			.equipList .item>img {
+				width: 38%;
+				float: left;
+				margin-left: 4px;
+				margin-top: 10px;
+			}
+			
+			.equipList .item>.itemInfo {
+				margin-left: 44%;
+			}
+			
+			.itemInfo h1 {
+				font-size: 18px;
+				color: #21b2e7;
+			}
+			
+			.itemInfo .itemTxt {
+				color: #9a9999;
+				font-size: 12px;
+				line-height: 22px;
+				letter-spacing: 2px;
+			}
+			
+			.item:after {
+				position: absolute;
+				right: 0;
+				bottom: 0;
+				left: 0px;
+				height: 1px;
+				content: '';
+				-webkit-transform: scaleY(.5);
+				transform: scaleY(.5);
+				background-color: #c8c7cc;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<h1 class="mui-title">首页</h1>
+		</header>
+		<div class="mui-content" id="app">
+			<!--轮播-->
+			<div id="slider" class="mui-slider" style="height: 200px;">
+				<div class="mui-slider-group">
+					<!-- 额外增加的一个节点(循环轮播:第一个节点是最后一张轮播) -->
+					<div class="mui-slider-item mui-slider-item-duplicate" v-for="(slider, index) in sliders">
+						<a href="#">
+							<img class="guide-img" :src="slider.src">
+							<p class="mui-slider-title">{{slider.text}}</p>
+						</a>
+					</div>
+					<!-- 第一张 -->
+					<!--<div class="mui-slider-item">
+						<a href="page1.html">
+							<img class="guide-img" src="../images/cbd.jpg">
+							<p class="mui-slider-title">静静看这世界1</p>
+						</a>
+					</div>-->
+					<!-- 第二张 -->
+					<!--<div class="mui-slider-item">
+						<a href="#">
+							<img class="guide-img" src="../images/shuijiao.jpg">
+							<p class="mui-slider-title">静静看这世界2</p>
+						</a>
+					</div>-->
+					<!-- 第三张 -->
+					<!--<div class="mui-slider-item">
+						<a href="#">
+							<img class="guide-img" src="../images/muwu.jpg">
+							<p class="mui-slider-title">静静看这世界3</p>
+						</a>
+					</div>-->
+					<!-- 第四张 -->
+					<!--<div class="mui-slider-item">
+						<a href="#">
+							<img class="guide-img" src="../images/yuantiao.jpg">
+							<p class="mui-slider-title">静静看这世界4</p>
+						</a>
+					</div>-->
+					<!-- 额外增加的一个节点(循环轮播:最后一个节点是第一张轮播) -->
+					<!--<div class="mui-slider-item">
+						<a href="#">
+							<img class="guide-img" src="../images/cbd.jpg">
+							<p class="mui-slider-title">静静看这世界1</p>
+						</a>
+					</div>-->
+				</div>
+				<div class="mui-slider-indicator mui-text-right">
+					<div class="mui-indicator" v-for="(slider, index) in sliders" v-bind:class="index==0?'mui-active':''"></div>
+				</div>
+			</div>
+			<!--轮播结束-->
+			<!--分类-->
+			<ul class="mui-table-view mui-grid-view mui-grid-9" id="kind">
+				<li class="mui-table-view-cell mui-media mui-col-xs-3" v-for="(menu, index) in menus" @click="goPage(index)">
+					<!--<a v-bind:href="menu.link">-->
+					<a href="#">
+						<img :src="'../images/'+menu.icon"/>
+						<div class="mui-media-body">{{ menu.text }}</div>
+					</a>
+				</li>
+			</ul>
+			<!--分类结束-->
+			<!--产品介绍-->
+			<div class="equipIntroduce">
+				<div class="introduceHead">
+					<h1>产品介绍</h1>
+				</div>
+				<div class="equipList">
+					<div class="item" src='#'>
+						<img src="../images/scd_equip.jpg" />
+						<div class="itemInfo">
+							<h1>智慧物联网杀虫灯</h1>
+							<div class="itemTxt">
+								智慧物联网杀虫灯是利用太阳能电池板作为用电来源,其将白天太阳能发的电贮存起来,晚上放电给杀虫灯具,供其工作。太阳能杀虫灯无需市电,不用挖沟拉线,天黑灯亮,天亮灯熄,并且对人畜安全。
+							</div>
+						</div>
+					</div>
+					<div class="item" src='#'>
+						<img src="../images/cbd_equip.jpg" />
+						<div class="itemInfo">
+							<h1>远程拍照式虫情测报灯</h1>
+							<div class="itemTxt">
+								远程拍照式虫情测报灯可对昆虫的发生、发展进行实时自动拍照、实现图像采集和监测分析,自动上传到远端的云飞物联网监控服务平台,为农业现代化提供服务,满足虫情预测预报、采集标本的需要。
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<!--产品介绍结束-->
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			var app = new Vue({
+				el:'#app',
+				data:{
+					menus:[
+						{text:'设备分配',icon:'categoryIcon1.png',link:'map.html'},
+						{text:'设备列表',icon:'categoryIcon2.png',link:'1.html'},
+						{text:'使用说明',icon:'categoryIcon3.png',link:'2.html'},
+						{text:'SIM信息',icon:'categoryIcon4.png',link:'3.html'},
+						{text:'5',icon:'categoryIcon5.png',link:'4.html'},
+						{text:'6',icon:'categoryIcon6.png',link:'5.html'},
+						{text:'7',icon:'categoryIcon7.png',link:'6.html'},
+						{text:'8',icon:'categoryIcon8.png',link:'7.html'},
+					],
+					sliders:[
+//						{text:'轮播图3',src:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1537267033948&di=e716ddf4ff6792a2459f737dafcd2f54&imgtype=0&src=http%3A%2F%2Fpic.qiantucdn.com%2F58pic%2F17%2F56%2F27%2F12S58PIC89m_1024.jpg',link:'2.html'},
+						{text:'轮播图1',src:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1537266763355&di=db97ddd4933fe21744c9e5bb85a059ad&imgtype=0&src=http%3A%2F%2Fpic.qiantucdn.com%2F58pic%2F25%2F97%2F64%2F40b58PICBQm_1024.jpg',link:'map.html'},
+						{text:'轮播图2',src:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1537266763355&di=b32ea16e48059e606833e553c360aaeb&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F016ad958eddb0ba8012049ef9f8413.jpg%40900w_1l_2o_100sh.jpg',link:'1.html'},
+						{text:'轮播图3',src:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1537267033948&di=e716ddf4ff6792a2459f737dafcd2f54&imgtype=0&src=http%3A%2F%2Fpic.qiantucdn.com%2F58pic%2F17%2F56%2F27%2F12S58PIC89m_1024.jpg',link:'2.html'},
+//						{text:'轮播图1',src:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1537266763355&di=db97ddd4933fe21744c9e5bb85a059ad&imgtype=0&src=http%3A%2F%2Fpic.qiantucdn.com%2F58pic%2F25%2F97%2F64%2F40b58PICBQm_1024.jpg',link:'map.html'},
+					]
+				},
+				methods:{
+					goPage:function(subscript){
+						console.log(this.menus)
+						mui.openWindow({
+							url:this.menus[subscript].link,
+							id:this.menus[subscript].link
+						})
+					}
+				}
+			})
+//			mui.init();
+//			mui('#slider').slider({
+//				interval: 5000
+//			});
+//			
+//			$('.mui-content').hide()
+			
+//			mui.plusReady(function(){
+//				mui.ajax('http://120.27.222.26/app_login', {
+//					data: {
+//						'username': 'admin',
+//						'password': 'yunfeiadmin'
+//					},
+//					dataType: 'json', //服务器返回json格式数据
+//					type: 'post', //HTTP请求类型
+//					timeout: 10000, //超时时间设置为10秒;
+//					beforeSend: function() {
+//						plus.nativeUI.showWaiting();
+//					},
+//					complete: function() {
+//						plus.nativeUI.closeWaiting();
+//						$('.mui-content').show()
+//					},
+//					success: function(data) {
+//						console.log(data)
+//						$('#kind li').eq(4).hide();
+//						$('#kind li').eq(5).hide();
+//						$('#kind li').eq(6).hide();
+//						$('#kind li').eq(7).hide();
+//					},
+//					error: function(xhr, type, errorThrown) {
+//						console.log(type)
+//						console.log(errorThrown)
+//						mui.toast('登录请求失败');
+//					}
+//				});
+//				轮播图
+//				mui('#slider').on('tap', 'a', function() {
+//					console.log(this.href);
+//					//获取最后一位反斜杠之后的元素 ++ 取点之前的元素
+//					var id = (this.href.substr(this.href.lastIndexOf('/') + 1)).split('.')[0]
+//					mui.openWindow({
+//						url:this.href,
+//						id:id
+//					})
+//				});
+//				//种类
+//				mui('#kind').on('tap', 'a', function() {
+//					//获取最后一位反斜杠之后的元素 ++ 取点之前的元素
+//					var id = (this.href.substr(this.href.lastIndexOf('/') + 1)).split('.')[0]
+//					mui.openWindow({
+//						url:this.href,
+//						id:id
+//					})
+//				});
+//				//产品
+//				mui('.equipList').on('tap', '.item', function() {
+//					var src = this.getAttribute('src');
+//					var id = (src.substr(src.lastIndexOf('/') + 1)).split('.')[0]
+//					mui.openWindow({
+//						url:src,
+//						id:id
+//					})
+//				});
+//			})
+			
+		</script>
+	</body>
+
+</html>

+ 244 - 0
home/equip.html

@@ -0,0 +1,244 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+
+		<style type="text/css">
+			.manageStyle,
+			.reportStyle {
+				padding: 5px 10px;
+			}
+			
+			.manageStyle h1 {
+				font-size: 18px;
+				color: #333;
+				border-left: 5px solid #21b2e7;
+				padding-left: 10px;
+			}
+			
+			.reportStyle h1 {
+				font-size: 18px;
+				color: #333;
+				border-left: 5px solid #6fd867;
+				padding-left: 10px;
+			}
+			
+			@media (max-width: 400px) {
+				.mui-col-sm-6 {
+					width: 50%;
+				}
+			}
+			
+			.categoryItem {
+				padding: 15px 12px;
+				background: #fff;
+				border-radius: 10px;
+				margin: 5px 7px;
+			}
+			
+			.blueColor {
+				box-shadow: 0px 0px 3px 0px rgb(36, 178, 231);
+			}
+			
+			.blueColor .leftTxt p {
+				color: #21b2e7;
+			}
+			
+			.greenColor {
+				box-shadow: 0px 0px 3px 0px rgb(111, 216, 103);
+			}
+			
+			.greenColor .leftTxt p {
+				color: #6fd867;
+			}
+			
+			.categoryItem .leftTxt h2 {
+				font-size: 20px;
+				/*letter-spacing: 2px;*/
+				margin-bottom: 10px;
+				font-weight: 100;
+			}
+			
+			.categoryItem .leftTxt p {
+				margin: 0;
+			}
+			
+			.categoryItem .rightImg {
+				top: 22%;
+				right: 8%;
+				position: absolute;
+				width: 27%;
+			}
+			.mui-content{
+				display:none;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<h1 class="mui-title">设备中心</h1>
+		</header>
+		<div class="mui-content">
+			<div class="equipManage manageStyle">
+				<h1>设备管理</h1>
+				<div class="mui-row" id="equipManageDiv">
+					<!--<div class="mui-col-xs-6">
+						<div class="categoryItem blueColor">
+							<div class="leftTxt">
+								<h2>杀虫灯</h2>
+								<p>查看更多 >></p>
+							</div>
+							<img class="rightImg" src="../images/equipPageIcon1.png" />
+						</div>
+					</div>-->
+				</div>
+			</div>
+			<div class="equipReport reportStyle">
+				<h1>报表管理</h1>
+				<div class="mui-row" id="equipReportDiv">
+					<!--<div class="mui-col-xs-6">
+						<div class="categoryItem greenColor">
+							<div class="leftTxt">
+								<h2>杀虫灯</h2>
+								<p>查看更多 >></p>
+							</div>
+							<img class="rightImg" src="../images/equipPageIcon7.png" />
+						</div>
+					</div>-->
+
+				</div>
+			</div>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			//			var managePath = ['../equipManage/equipManage_scd.html','../equipManage/equipManage_cbd.html',
+			//							  '../equipManage/equipManage_ybq.html','../equipManage/equipManage_qxz.html',
+			//							  '../equipManage/equipManage_bzy.html','../equipManage/equipManage_jk.html'];
+			//			var reportPath = ['../reportManage/reprotManage_scd.html','../reportManage/reprotManage_cbd.html',
+			//							  '../reportManage/reportManage_ybq.html','../reportManage/reportManage_qxz.html',
+			//							  '../reportManage/reportManage_bzy.html'];
+
+			var manageArr = [{
+					name: '杀虫灯',
+					type: 2,
+					icon: ['../images/equipPageIcon1.png', '../images/equipPageIcon7.png'],
+					url: ['../equipManage/equipManage_scd.html', '../reportManage/reprotManage_scd.html']
+				},
+				{
+					name: '虫情测报',
+					type: 3,
+					icon: ['../images/equipPageIcon2.png', '../images/equipPageIcon8.png'],
+					url: ['../equipManage/equipManage_cbd.html', '../reportManage/reprotManage_cbd.html']
+				},
+				{
+					name: '性诱设备',
+					type: 4,
+					icon: ['../images/equipPageIcon12.png',''],
+					url: ['../equipManage/sex_trap.html','']
+				},
+				{
+					name: '环境监测',
+					type: 5,
+					icon: ['../images/equipPageIcon4.png', '../images/equipPageIcon10.png'],
+					url: ['../equipManage/equipManage_qxz.html', '../reportManage/reprotManage_qxz.html']
+				},
+				{
+					name: '监控',
+					type: 6,
+					icon: ['../images/equipPageIcon6.png', '../images/equipPageIcon6.png'],
+					url: ['../equipManage/equipManage_jk.html', '../equipManage_jk/equipManage_jk.html']
+				},
+				{
+					name: '孢子捕捉',
+					type: 7,
+					icon: ['../images/equipPageIcon5.png', '../images/equipPageIcon11.png'],
+					url: ['../equipManage/equipManage_bzy.html', '../reportManage/reprotManage_bzy.html']
+				},
+				{
+					name: '诱捕设备',
+					type: 8,
+					icon: ['', '../images/equipPageIcon9.png'],
+					url: ['', '../reportManage/reprotManage_xyq.html']
+				}
+			]
+			function sortNumber(a,b){
+				return a - b
+			}
+			mui.plusReady(function() {
+				mui.ajax('http://120.27.222.26/product_view', {
+					data: {},
+					dataType: 'json', //服务器返回json格式数据
+					type: 'post', //HTTP请求类型
+					timeout: 10000, //超时时间设置为10秒;
+					beforeSend: function() {
+						plus.nativeUI.showWaiting('请求中...');
+					},
+					complete: function() {
+						plus.nativeUI.closeWaiting();
+					},
+					success: function(data) {
+						$('.mui-content').show();
+						console.log(typeof data)
+						var dat = data.sort(sortNumber);
+						var equipManageHtml = '';
+						var equipreportHtml = '';
+						if(dat.length) {
+							for(var j = 0; j < dat.length; j++) {
+								for(var i = 0; i < manageArr.length; i++) {
+									console.log(manageArr[i].type)
+									if(manageArr[i].type == dat[j]) {
+										if(manageArr[i].type != 8) {
+											equipManageHtml += '<div class="mui-col-xs-6" onclick="openwindow(\'' + manageArr[i].url[0] + '\')"><div class="categoryItem blueColor">' +
+											'<div class="leftTxt"><h2>' + manageArr[i].name + '</h2><p>查看更多 >></p>' +
+											'</div><img class="rightImg" src="' + manageArr[i].icon[0] + '" /></div></div>';
+										}
+										if(manageArr[i].type != 4 && manageArr[i].type != 6 ) {
+											equipreportHtml += '<div class="mui-col-xs-6" onclick="openwindow(\'' + manageArr[i].url[1] + '\')"><div class="categoryItem greenColor">' +
+												'<div class="leftTxt"><h2>' + manageArr[i].name + '</h2><p>查看更多 >></p>' +
+												'</div><img class="rightImg" src="' + manageArr[i].icon[1] + '" /></div></div>'
+										}
+
+									}
+								}
+								if(j == dat.length - 1) {
+									console.log(equipManageHtml)
+									console.log(equipreportHtml)
+									$('#equipManageDiv').html(equipManageHtml);
+									$('#equipReportDiv').html(equipreportHtml);
+								}
+							}
+						} else {
+							var html = '<div class="mui-col-xs-6"><div>暂无设备</h2></div></div>';
+							$('#equipManageDiv').html(html);
+							$('#equipReportDiv').html(html);
+						}
+
+					},
+					error: function(xhr, type, errorThrown) {
+						console.log(errorThrown)
+						mui.toast('登录请求失败');
+					}
+				});
+			})
+
+			function openwindow(para) {
+				var path = para;
+				var id = (path.substr(path.lastIndexOf('/') + 1)).split('.')[0]
+				mui.openWindow({
+					url: path,
+					id: id
+				})
+			}
+		</script>
+	</body>
+
+</html>

+ 156 - 0
home/guide.html

@@ -0,0 +1,156 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<style type="text/css">
+			body {
+				background-color: #fff;
+			}
+			
+			.guide-img {
+				width: 100%;
+			}
+			
+			#start {
+				position: absolute;
+			    bottom: 1.8em;
+			    border-radius: 30px;
+			    width: 99px;
+			    left: 50%;
+			    margin-left: -54px;
+			}
+			.mui-slider-indicator{
+				bottom: 1.8em;
+			}
+			.mui-slider-indicator .mui-indicator,.mui-indicator.mui-active,.mui-slider-indicator .mui-active.mui-indicator{
+				background: #1895cd;
+				box-shadow:none;
+			}
+			.mui-slider-indicator .mui-indicator{
+				width: 10px;
+				height: 10px;
+			}
+			.mui-indicator.mui-active{
+				width: 30px;
+				border-radius: 30px;
+			}
+			.mui-btn-green{
+				color: #1c9acd;
+    			border: 1px solid #1c9acd;
+			}
+			.mui-btn-green:enabled:active{
+				color: #fff;
+    			border: 1px solid #1c9acd;
+    			background-color: #1c9acd;
+			}
+			.mui-btn-outlined.mui-btn-green{
+				color: #1c9acd;
+			}
+		</style>
+	</head>
+
+	<body>
+		<div class="mui-content">
+			<div class="mui-slider mui-fullscreen">
+				<div class="mui-slider-group">
+					<div class="mui-slider-item">
+						<a href="javascript:;">
+							<img class="guide-img" src="../images/guidePage1.jpg">
+						</a>
+					</div>
+					<div class="mui-slider-item">
+						<a href="javascript:;">
+							<img class="guide-img" src="../images/guidePage2.jpg">
+						</a>
+					</div>
+					<div class="mui-slider-item">
+						<a href="javascript:;">
+							<img class="guide-img" src="../images/guidePage3.jpg">
+							<button class="mui-btn mui-btn-green mui-btn-outlined" type="button" id="start">开始体验</button>
+						</a>
+					</div>
+				</div>
+				<div class="mui-slider-indicator" id="sliderIndicator">
+					<div class="mui-indicator mui-active"></div>
+					<div class="mui-indicator"></div>
+					<div class="mui-indicator"></div>
+				</div>
+			</div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			mui.plusReady(function() {
+				/**
+				 * 获取系统状态栏高度
+				 * http://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.getStatusbarHeight
+				 */
+				var sh = plus.navigator.getStatusbarHeight();
+				/**
+				 * 获取设备屏幕高度分辨率以及宽度分辨率
+				 * http://www.html5plus.org/doc/zh_cn/device.html#plus.screen.resolutionHeight
+				 * http://www.html5plus.org/doc/zh_cn/device.html#plus.screen.resolutionWidth
+				 */
+				var h = plus.screen.resolutionHeight;
+				var w = plus.screen.resolutionWidth;
+				/**
+				 * 设置图片高度,这里图片并不规范;
+				 * 实际开发中,建议大家制作iphone6plus规格的图片;
+				 */
+				var imgs = document.querySelectorAll(".guide-img");
+				for(var i = 0, len = imgs.length; i < len; i++) {
+					imgs[i].style.height = (h - sh) + "px";
+					imgs[i].style.width = w + "px";
+				}
+				/**
+				 * 手动关闭启动页
+				 * http://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.closeSplashscreen
+				 */
+				plus.navigator.closeSplashscreen();
+				document.getElementById("start").addEventListener("tap", function() {
+					/**
+					 * 向本地存储中设置launchFlag的值,即启动标识;
+					 * http://www.html5plus.org/doc/zh_cn/storage.html#plus.storage.setItem
+					 */
+					plus.storage.setItem("launchFlag", "true");
+					mui.openWindow({
+						url: "login.html",
+						id: "login",
+						extras: {
+							mark: "gudie" //同样,这里也只是个标识,实际开发中并不用;
+						}
+					});
+				});
+			});
+			//最后一页不显示指示器
+			document.querySelector('.mui-slider').addEventListener('slide', function(event) {
+				if(event.detail.slideNumber == 2){
+					document.getElementById('sliderIndicator').style.display = 'none';
+				}else{
+					document.getElementById('sliderIndicator').style.display = 'block';
+				}
+			});
+			/**
+			 * 重写mui.back(),什么都不执行,反之用户返回到入口页;
+			 */
+			var clickNum = 0;
+			mui.back = function() {
+				clickNum++;
+				if(clickNum > 1) {
+					plus.runtime.quit();
+				} else {
+					mui.toast("再按一次退出应用");
+				}
+				setTimeout(function() {
+					clickNum = 0
+				}, 1000);
+				return false;
+			};
+		</script>
+	</body>
+
+</html>

+ 573 - 0
home/homePage.html

@@ -0,0 +1,573 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			body,
+			.mui-content,
+			.mui-grid-view.mui-grid-9 {
+				background: #fff;
+			}
+			
+			.mui-slider .mui-slider-group .mui-slider-item img {
+				height: 200px;
+			}
+			/*分类*/
+			/*.mui-col-xs-2_5 {
+				width: 20%;
+			}*/
+			
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell {
+				padding: 4px 2px;
+			}
+			
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell a>img {
+				width: 55%;
+			}
+			
+			.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body {
+				font-size: .8em;
+				margin-top: 5px;
+			}
+			
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell>a:not(.mui-btn) {
+				padding: 2px 0;
+			}
+			
+			.mui-grid-view.mui-grid-9 .mui-table-view-cell {
+				border: none;
+			}
+			
+			.mui-grid-view.mui-grid-9 {
+				padding: 5px 0;
+			}
+			/*产品介绍*/
+			
+			.introduceHead {
+				text-align: center;
+				background: #eee;
+				line-height: 35px;
+			}
+			
+			.introduceHead h1 {
+				font-size: 18px;
+				font-weight: 100;
+				display: inline-block;
+				position: relative;
+			}
+			
+			.introduceHead h1:after {
+				position: absolute;
+				width: 30px;
+				height: 1px;
+				background: #bebebe;
+				content: '';
+				top: 8px;
+				right: -60px;
+			}
+			
+			.introduceHead h1:before {
+				position: absolute;
+				width: 30px;
+				height: 1px;
+				background: #bebebe;
+				content: '';
+				top: 8px;
+				left: -60px;
+			}
+			/*产品列表*/
+			
+			.item {
+				position: relative;
+				padding-bottom: 15px;
+				padding-top: 20px;
+				overflow: hidden;
+				clear: both;
+			}
+			
+			.equipList .item .equipImg {
+				width: 38%;
+				float: left;
+				margin-left: 8px;
+				/*margin-top: 10px;*/
+				padding-top: 4px;
+				text-align: center;
+				border: 1px solid #eee;
+			}
+			
+			.equipList .item>.itemInfo {
+				margin-left: 44%;
+				width: 55%;
+			}
+			
+			.itemInfo h1 {
+				font-size: 18px;
+				color: #21b2e7;
+			}
+			
+			.itemInfo .itemTxt {
+				color: #9a9999;
+				font-size: 12px;
+				line-height: 22px;
+				letter-spacing: 2px;
+			}
+			
+			.item:after {
+				position: absolute;
+				right: 0;
+				bottom: 0;
+				left: 0px;
+				height: 1px;
+				content: '';
+				-webkit-transform: scaleY(.5);
+				transform: scaleY(.5);
+				background-color: #c8c7cc;
+			}
+			/*mui蒙版样式*/
+			
+			.mui-backdrop {
+				position: fixed;
+				top: 0;
+				right: 0;
+				bottom: 0;
+				left: 0;
+				z-index: 998;
+				background-color: rgba(0, 0, 0, .3);
+			}
+			/*自定义弹出用户权限*/
+			
+			#notAuthority,
+			#updateDver {
+				display: none;
+				position: fixed;
+				left: 15%;
+				right: 15%;
+				top: 10%;
+				z-index: 999;
+				height: 330px;
+				margin: 20% auto;
+				background: url(../images/notAuthorityBj.png) no-repeat;
+				background-size: 100% 100%;
+				/*border: 1px solid #0062CC;*/
+			}
+			
+			#updateDver {
+				background: url(../images/updateDver.png) no-repeat;
+				background-size: 100% 100%;
+			}
+			
+			#notAuthority>button,
+			#updateDver>button {
+				position: absolute;
+				bottom: 20px;
+				left: 27%;
+				right: 27%;
+				width: 46%;
+				height: 40px;
+				color: #fff;
+				border: none;
+				background: url(../images/notAuthorityBtn.png) no-repeat;
+				background-size: 100% 100%;
+			}
+			
+			#updateDver>button {
+				background: url(../images/updateDverBtn.png) no-repeat;
+				background-size: 100% 100%;
+				width: 70%;
+				left: 15%;
+				right: 15%;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<h1 class="mui-title">首页</h1>
+		</header>
+		<div class="mui-content">
+			<!--轮播-->
+			<div id="slider" class="mui-slider" style="height: 200px;">
+				<div class="mui-slider-group mui-slider-loop" id="sliderGroup">
+					<!-- 额外增加的一个节点(循环轮播:第一个节点是最后一张轮播) -->
+					<!--<div class="mui-slider-item mui-slider-item-duplicate">
+						<a href="#">
+							<img class="guide-img" src="../images/autoDiscern.jpg">
+						</a>
+					</div>-->
+					<!-- 第一张 -->
+					<!--<div class="mui-slider-item">
+						<a href="#">
+							<img class="guide-img" src="../images/banner1.jpg">
+						</a>
+					</div>-->
+					<!-- 额外增加的一个节点(循环轮播:最后一个节点是第一张轮播) -->
+					<!--<div class="mui-slider-item">
+						<a href="#">
+							<img class="guide-img" src="../images/banner1.jpg">
+						</a>
+					</div>-->
+				</div>
+				<div class="mui-slider-indicator" id="sliderIndicator">
+					<!--<div class="mui-indicator mui-active"></div>
+					<div class="mui-indicator"></div>
+					<div class="mui-indicator"></div>
+					<div class="mui-indicator"></div>
+					<div class="mui-indicator"></div>-->
+				</div>
+			</div>
+			<!--轮播结束-->
+			<!--分类-->
+			<ul class="mui-table-view mui-grid-view mui-grid-9" id="kind">
+				<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a href="map.html">
+						<img src="../images/categoryIcon1.png" />
+						<div class="mui-media-body">设备分布</div>
+					</a>
+				</li>
+				<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a href="../equipList/equip_list.html">
+						<img src="../images/categoryIcon2.png" />
+						<div class="mui-media-body">设备列表</div>
+					</a>
+				</li>
+				<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a href="../simInfo/siminfo.html">
+						<img src="../images/categoryIcon7.png" />
+						<div class="mui-media-body">SIM卡数据</div>
+					</a>
+				</li>
+				<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a>
+						<img src="../images/categoryIcon9.png" />
+						<div class="mui-media-body">管理员权限</div>
+					</a>
+				</li>
+				<!--<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a href="../systemmanage/systemmanage_user.html">
+						<img src="../images/categoryIcon5.png" />
+						<div class="mui-media-body">用户管理</div>
+					</a>
+				</li>
+				<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a href="../systemmanage/systemmanage_log.html">
+						<img src="../images/categoryIcon6.png" />
+						<div class="mui-media-body">日志管理</div>
+					</a>
+				</li>
+				<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a href="../helpcenter/feedback.html">
+						<img src="../images/categoryIcon77.png" />
+						<div class="mui-media-body">问题反馈</div>
+					</a>
+				</li>
+				<li class="mui-table-view-cell mui-media mui-col-xs-3">
+					<a href="../equipAllot/equip_allot_list.html">
+						<img src="../images/categoryIcon8.png" />
+						<div class="mui-media-body">分配设备</div>
+					</a>
+				</li>-->
+			</ul>
+			<!--分类结束-->
+			<!--产品介绍-->
+			<div class="equipIntroduce">
+				<div class="introduceHead">
+					<h1>产品介绍</h1>
+				</div>
+				<div class="equipList" id="equipList">
+					<div class="item" src='#'>
+						<div class="equipImg">
+							<img src="../images/scd_equip.png" />
+						</div>
+						<div class="itemInfo">
+							<h1>智慧物联网杀虫灯</h1>
+							<div class="itemTxt">
+								智慧物联网杀虫灯是利用太阳能电池板作为用电来源,其将白天太阳能发的电贮存起来,晚上放电给杀虫灯具,供其工作。太阳能杀虫灯无需市电,不用挖沟拉线,天黑灯亮,天亮灯熄,并且对人畜安全。
+							</div>
+						</div>
+					</div>
+					<div class="item" src='#'>
+						<div class="equipImg">
+							<img src="../images/cbd_equip.png" />
+						</div>
+						<div class="itemInfo">
+							<h1>物联网虫情测报灯</h1>
+							<div class="itemTxt">
+								物联网虫情测报灯集害虫诱捕和拍照、环境信息采集、数据传输、数据分析于一体,实现了害虫的诱集、分类统计、实时报传、远程检测、虫害预警和防治指导的自动化、智能化。
+							</div>
+						</div>
+					</div>
+					<div class="item" src='#'>
+						<div class="equipImg">
+							<img src="../images/bzy_equip.png" />
+						</div>
+						<div class="itemInfo">
+							<h1>拍照式孢子捕捉仪</h1>
+							<div class="itemTxt">
+								拍照式孢子捕捉仪内含高倍显微拍照装置,采用了气流定量、定时采集、自动加热、自动培养、自动拍照、无线传输等功能,全天候实时采集分析病原菌孢子图像,分析其数量的变化,预测病害发生的时间、程度和传播路线。
+							</div>
+						</div>
+					</div>
+					<div class="item" src='#'>
+						<div class="equipImg">
+							<img src="../images/qxz_equip.png" />
+						</div>
+						<div class="itemInfo">
+							<h1>自动气象监测站</h1>
+							<div class="itemTxt">
+								自动气象监测站由气象传感器,气象数据记录仪,气象环境监测软件三部分组成。广泛应用于农、林行业的植保推广、科研和教学单位病虫研究和病虫测报领域。
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+			<!--产品介绍结束-->
+		</div>
+		<!--管理员权限-->
+		<div id="notAuthority">
+			<button id="notAuthorityBtn"></button>
+		</div>
+		<!--新版本提示-->
+		<div id="updateDver">
+			<button id="updateDverBtn"></button>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			var wgtVer;
+			mui('#slider').slider({
+				interval: 5000
+			});
+
+			mui.plusReady(function() {
+				var main = plus.webview.getWebviewById('main')
+				var mask;
+				var maskflag;
+				//获取当前版本号
+				plus.runtime.getProperty(plus.runtime.appid, function(inf) {
+					wgtVer = inf.version; //获取版本号
+					getuserinfo()
+				});
+				var banner = [
+					{"imgUrl":"app_file/app_img/banner1.jpg","path":""},
+					{"imgUrl":"app_file/app_img/banner2.jpg","path":""},
+					{"imgUrl":"app_file/app_img/banner4.jpg","path":""},
+					{"imgUrl":"app_file/app_img/autoDiscern","path":"autoDiscern.htm"},
+				]
+				//请求轮播图
+				mui.ajax('http://120.27.222.26/display_photo_common', {
+						data: {
+
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							console.log(JSON.stringify(data))
+//							if(data.length){
+								bannerRender(data)
+//							}else{
+//								bannerRender(banner)
+//							}
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(type)
+							bannerRender(banner)
+						}
+
+					});
+				function bannerRender(banner){
+					var html ='';
+					var sliderIndicator = '';
+					for(var i= 0;i<banner.length;i++){
+						var imgUrl = banner[i].imgUrl;
+						var path = banner[i].path;
+						console.log(imgUrl)
+						if(i == 0){
+							html += '<div class="mui-slider-item mui-slider-item-duplicate">'+
+									'<a href="#"><img class="guide-img" src="http://120.27.222.26/'+banner[banner.length-1].imgUrl+'"></a></div>';
+						}
+						html += '<div class="mui-slider-item" data-path="'+path+'"><a href="#">'+
+								'<img class="guide-img" src="http://120.27.222.26/'+imgUrl+'"></a></div>';
+						if(i == 0){
+							sliderIndicator += '<div class="mui-indicator mui-active"></div>';
+						}else{						
+							sliderIndicator += '<div class="mui-indicator"></div>';
+						}
+						if(i == banner.length-1){
+							html += '<div class="mui-slider-item"><a href="#">'+
+									'<img class="guide-img" src="http://120.27.222.26/'+banner[0].imgUrl+'"></a></div>';
+							$('#sliderGroup').html(html);
+							$('#sliderIndicator').html(sliderIndicator);
+							mui('#slider').slider({
+								interval: 5000
+							});
+						}
+					}
+				}
+				
+				
+
+				//轮播图
+				mui('#slider').on('tap', '.mui-slider-item', function() {
+					var path = $(this).data('path');
+					console.log(path)
+					if(path){
+						var id = (path.substr(path.lastIndexOf('/') + 1)).split('.')[0]
+						mui.openWindow({
+							url: path,
+							id: id
+						})
+					}
+					//获取最后一位反斜杠之后的元素 ++ 取点之前的元素
+					
+				});
+				
+				//请求产品介绍图
+				mui.ajax('http://120.27.222.26/product_view', {
+						data: {
+
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							console.log(JSON.stringify(data))
+							randerProductHtml(data)
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(type)
+							bannerRender(banner)
+						}
+
+					});
+				function randerProductHtml(data){
+					var arr = {
+						2:['../images/scd_equip.png','智慧物联网杀虫灯','智慧物联网杀虫灯是利用太阳能电池板作为用电来源,其将白天太阳能发的电贮存起来,晚上放电给杀虫灯具,供其工作。太阳能杀虫灯无需市电,不用挖沟拉线,天黑灯亮,天亮灯熄,并且对人畜安全。'],
+						3:['../images/cbd_equip.png','物联网虫情测报灯','物联网虫情测报灯集害虫诱捕和拍照、环境信息采集、数据传输、数据分析于一体,实现了害虫的诱集、分类统计、实时报传、远程检测、虫害预警和防治指导的自动化、智能化。'],
+						7:['../images/bzy_equip.png','拍照式孢子捕捉仪','拍照式孢子捕捉仪内含高倍显微拍照装置,采用了气流定量、定时采集、自动加热、自动培养、自动拍照、无线传输等功能,全天候实时采集分析病原菌孢子图像,分析其数量的变化,预测病害发生的时间、程度和传播路线。'],
+						5:['../images/qxz_equip.png','自动气象监测站','自动气象监测站由气象传感器,气象数据记录仪,气象环境监测软件三部分组成。广泛应用于农、林行业的植保推广、科研和教学单位病虫研究和病虫测报领域。'],
+					}
+					var html = '';
+					for(var i = 0;i<data.length;i++){
+						if(arr[parseInt(data[i])]){							
+							html += '<div class="item" src="#">'+
+									'<div class="equipImg">'+
+										'<img src="'+arr[parseInt(data[i])][0]+'" />'+
+									'</div>'+
+									'<div class="itemInfo">'+
+										'<h1>'+arr[parseInt(data[i])][1]+'</h1>'+
+										'<div class="itemTxt">'+arr[parseInt(data[i])][2]+
+										'</div></div></div>';
+						}
+						if(i == data.length-1){
+							$('#equipList').html(html);
+						}
+					}
+				}
+				//种类
+				mui('#kind').on('tap', 'a', function() {
+					//获取最后一位反斜杠之后的元素 ++ 取点之前的元素
+					var id = (this.href.substr(this.href.lastIndexOf('/') + 1)).split('.')[0]
+					console.log(id)
+					if(id) {
+						mui.openWindow({
+							url: this.href,
+							id: id
+						})
+					} else {
+						var isuser = plus.storage.getItem('isuser');
+						console.log(isuser)
+						if(isuser == 'user') {
+							$('.mui-content').css('position', 'fixed')
+							$('.mui-content').css('overflow', 'hidden')
+							//普通用户
+							mui.fire(main, 'openMask', {}); //父级蒙版
+							maskflag = false;
+							mask = mui.createMask(function() { //遮罩层callback事件
+								return maskflag; //返回true关闭mask
+							});
+							$('#notAuthority').show();
+							mask.show()
+						} else {
+							//管理员
+							mui.openWindow({
+								url: 'permission.html',
+								id: 'permission'
+							})
+						}
+					}
+
+				});
+				$('#notAuthorityBtn').on('tap', function() {
+					$('.mui-content').css('position', 'relative')
+					$('.mui-content').css('overflow', 'visible')
+					maskflag = true;
+					mask.close();
+					mui.fire(main, 'closeMask', {});
+					$('#notAuthority').hide();
+				})
+
+				function getuserinfo() {
+					mui.ajax('http://120.27.222.26/edition', {
+						data: {
+
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+
+							var currNum = 0,
+								newsNum = 0;
+							var currdver = wgtVer.split('.');
+							for(var i = 0; i < currdver.length; i++) {
+								currNum += parseInt(currdver[i]);
+							}
+							var newsdver = data.edition_num.split('.');
+							for(var i = 0; i < newsdver.length; i++) {
+								newsNum += parseInt(newsdver[i]);
+							}
+							if(currNum != newsNum) {
+								mui.fire(main, 'openMask', {}); //父级蒙版
+								maskflag = false;
+								mask = mui.createMask(function() { //遮罩层callback事件
+									return maskflag; //返回true关闭mask
+								});
+								$('#updateDver').show();
+								mask.show()
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(type)
+						}
+
+					});
+				}
+				$('#updateDverBtn').on('tap', function() {
+					$('.mui-content').css('position', 'relative')
+					$('.mui-content').css('overflow', 'visible')
+					maskflag = true;
+					mask.close();
+					mui.fire(main, 'closeMask', {});
+					$('#updateDver').hide();
+				})
+				//产品
+				//				mui('.equipList').on('tap', '.item', function() {
+				//					var src = this.getAttribute('src');
+				//					var id = (src.substr(src.lastIndexOf('/') + 1)).split('.')[0]
+				//					mui.openWindow({
+				//						url:src,
+				//						id:id
+				//					})
+				//				});
+			})
+		</script>
+	</body>
+
+</html>

+ 383 - 0
home/login.html

@@ -0,0 +1,383 @@
+<!DOCTYPE html>
+<html lang="en">
+
+	<head>
+		<meta charset="UTF-8">
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0, user-scalable=no">
+		<title>FrozenUI Demo</title>
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link rel="stylesheet" type="text/css" href="../css/reset.css" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<style type="text/css">
+			html {
+				height: 100%;
+			}
+			
+			body {
+				height: 100%;
+				background: #fff;
+			}
+			
+			.page {
+				height: 100%;
+				overflow: hidden;
+			}
+			
+			.logo {
+				text-align: center;
+				margin: 7rem 0 4.5rem;
+			}
+			.logo >img{
+				width: 40%;
+			}
+			
+			.logoCover {
+				width: 80%;
+				margin: 0 auto;
+			}
+			
+			.logoItem {
+				border-bottom: 1px solid #bbb;
+				position: relative;
+				height: 40px;
+				margin-bottom: 15px;
+			}
+			
+			.logoItem .inputicon {
+				font-size: 22px;
+				color: #22ace1;
+				vertical-align: middle;
+				position: absolute;
+				left: 0;
+				bottom: 8px;
+			}
+			#recordPwdIcon{
+				color: #22ace1;
+			}
+			.logoItem input {
+				background: transparent;
+				border: none;
+				padding: 0 0 4px 35px;
+				position: absolute;
+				left: 0;
+				bottom: 0;
+				margin: 0;
+			}
+			
+			.logoItem .unlock {
+				font-size: 29px;
+			}
+			
+			input::-webkit-input-placeholder {
+				color: #969696;
+			}
+			
+			input::-moz-placeholder {
+				/* Mozilla Firefox 19+ */
+				color: #969696;
+			}
+			
+			input:-moz-placeholder {
+				/* Mozilla Firefox 4 to 18 */
+				color: #969696;
+			}
+			
+			input:-ms-input-placeholder {
+				/* Internet Explorer 10-11 */
+				color: #969696;
+			}
+			
+			#forgetPwd,
+			#registerBtn,
+			.recordPwdLabel,
+			.logoItem input {
+				color: #bbb;
+			}
+			
+			#loginBtn {
+				width: 100%;
+				/*line-height: 30px;*/
+				font-size: 18px;
+				letter-spacing: 6px;
+				border-radius: 6px;
+				margin: 20px 0 13px;    
+				color: #bbb;
+			}
+			#loginBtn:enabled:active{
+				color: #fff;
+    			border: 1px solid #39c7fc;
+    			background-color: #39c7fc !important;
+			}
+			
+			#loginBtn.btn-primary{
+				background-color: #05a0db;
+				border: 1px solid #12a5dc;
+				color: #fff;
+			}
+			/*记住密码*/
+			
+			.checkbox {
+				display: none;
+			}
+			
+			#addUser {
+				position: fixed;
+				left: 0;
+				right: 0;
+				bottom: 10px;
+				text-align: center;
+			}
+			/**/
+			.lookpsd{
+				position: absolute;
+			    right: 6px;
+			    bottom: 8px;
+			    font-size: 27px;
+			    color: #c1c1c1;
+			}
+			#lookpsdBox,#openeye{
+				display: none;
+			}
+		</style>
+	</head>
+
+	<body>
+		<div class="page">
+			<div class="logo">
+				<img src="../images/logoTxt.png" alt="云飞智能科技" />
+				<!--<h1>云飞智能科技</h1>-->
+			</div>
+			<div class="logoCover">
+				<div class="logoInner">
+					<form action="" method="post">
+						<ul>
+							<li class="logoItem">
+								<i class="iconfont inputicon">&#xe636;</i>
+								<input type="text" id="username" placeholder="请输入用户名" />
+							</li>
+							<li class="logoItem">
+								<i class="iconfont inputicon">&#xe689;</i>
+								<input type="password" id="password" placeholder="请输入密码" />
+								<span id="lookpsdBox">
+									<i class="iconfont lookpsd" id="openeye" onclick="openpsd()">&#xe62d;</i> <!--看-->
+									<i class="iconfont lookpsd" id="closeeye" onclick="closepsd()">&#xe61d;</i> <!--闭-->
+								</span>
+								
+							</li>
+						</ul>
+						<input type="button" id="loginBtn" value="登录" />
+					</form>
+				</div>
+				<div class="otherBtns">
+					<div class="mui-row">
+						<div class="mui-col-xs-6">
+							<!--<i class="iconfont" id="recordPwdIcon">&#xe614;</i>-->
+							<label class="recordPwdLabel" for="recordPwd">
+								<i class="iconfont" id="recordPwdIcon">&#xe614;</i>
+								<input type="checkbox" class="checkbox" id="recordPwd" />
+								<span>自动登录</span>
+							</label>
+
+						</div>
+						<div class="mui-col-xs-6" style="text-align: right;">
+							<a href="" id="forgetPwd">忘记密码??</a>
+						</div>
+					</div>
+				</div>
+				<div id="addUser">
+					<a href="javascript:;" id="registerBtn">创建新账户+</a>
+				</div>
+			</div>
+		</div>
+
+	</body>
+	<script src="../js/mui.min.js"></script>
+	<script>
+		mui.init();
+		mui.plusReady(function() {
+			var all = plus.webview.all();
+            var current = plus.webview.currentWebview().id;
+            var index = plus.runtime.appid;
+            console.log(all)
+            for (var i = 0, len = all.length; i < len; i++) {
+                if (all[i].id !== current && all[i].id != index) {
+					all[i].hide();
+					all[i].close();
+                }
+            }
+			autoLogin()
+			var windowInnerHeight = window.innerHeight;
+			//解决fixed问题
+			window.onresize = function() {
+				if(window.innerHeight < windowInnerHeight) {
+					document.getElementById("addUser").style.position = 'static';
+				} else {
+					document.getElementById("addUser").style.position = 'fixed';
+				}
+			}
+			var username = document.getElementById('username'),
+				password = document.getElementById('password');
+
+			//登录颜色
+			password.addEventListener('keyup', function() {
+				var passwordVal = this.value;
+				var usernameVal = username.value;
+				//查看密码
+				if(passwordVal.length >= 1) {
+					document.getElementById('lookpsdBox').style.display = 'block';
+				}else{
+					document.getElementById('lookpsdBox').style.display = 'none';
+				}
+				//是否能登录
+				if(passwordVal.length >= 6 && usernameVal != '') {
+					document.getElementById("loginBtn").classList.add("btn-primary");
+				} else {
+					document.getElementById("loginBtn").classList.remove("btn-primary");
+				}
+				//键盘确定登录
+				if(event.keyCode ==13){  
+			        login(usernameVal, passwordVal);
+			    }  
+			})
+			
+			//监听查看密码
+//			password.addEventListener('input', function() {
+//				alert(1);;
+//			})
+
+			//记住密码  
+			mui(".otherBtns").on('tap', ".recordPwdLabel", function() {
+				remFun()
+			})
+			function remFun() {
+				if(!document.getElementById("recordPwd").checked) {
+					document.getElementById('recordPwdIcon').innerHTML = '&#xe656;';
+					plus.storage.setItem('remState', 'true'); //设置本地存储
+
+				} else {
+					document.getElementById('recordPwdIcon').innerHTML = '&#xe614;';
+					plus.storage.setItem('remState', 'false'); //设置本地存储
+				}
+			}
+
+			function autoLogin() {
+				var username = plus.storage.getItem('username');
+				var password = plus.storage.getItem('password');
+				var remState = plus.storage.getItem('remState');
+				
+				console.log(plus.storage.getItem('username'))
+				console.log(plus.storage.getItem('password'))
+				console.log(plus.storage.getItem('remState'))
+
+				if(remState == 'true' || remState == true) {
+					login(username, password);
+				}
+			}
+
+			//登录
+			document.getElementById("loginBtn").addEventListener('tap', function() {
+				if(this.className == 'btn-primary') {
+					login(username.value, password.value)
+				} else {
+					mui.toast('请将信息填写完整');
+				}
+			})
+
+			function login(name, pwd) {
+				if(plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE) {
+					mui.toast("网络异常,请检查网络设置!");
+				} else {
+					mui.ajax('http://120.27.222.26/app_login', {
+						data: {
+							'username': name,
+							'password': pwd
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						success: function(data) {
+							plus.storage.setItem('username', name); //设置本地存储
+							plus.storage.setItem('password', pwd); //设置本地存储
+							if(data.code == 0) {
+								if(data.role == 'user'){
+									plus.storage.setItem('isuser', 'user'); //普通用户
+								}else if(data.role == 'agency'){
+									plus.storage.setItem('isuser', 'agency'); //代理商
+								}else{
+									plus.storage.setItem('isuser', 'admin'); //管理员
+								}
+								mui.openWindow({
+									url: 'main.html',
+									id: 'main',
+									extras: {
+										name: 'mui' //扩展参数
+									},
+								})
+							} else if(data.code == 1) {
+								mui.toast('用户不存在');
+							} else if(data.code == 2) {
+								mui.toast('用户不可用');
+							} else if(data.code == 3) {
+								mui.toast('密码错误');
+							}
+						},
+						error: function(xhr, type, errorThrown) {
+//							console.log(type)
+							console.log(errorThrown)
+							mui.toast('登录请求失败');
+						}
+					});
+				}
+			}
+
+		})
+		
+		
+		//查看密码
+		function openpsd(){
+			document.getElementById('openeye').style.display = 'none';
+			document.getElementById('closeeye').style.display = 'block';
+			document.getElementById('password').setAttribute('type','password');
+		}
+		
+		//隐藏密码
+		function closepsd(){
+			document.getElementById('openeye').style.display = 'block';
+			document.getElementById('closeeye').style.display = 'none';
+			document.getElementById('password').setAttribute('type','text');
+		}
+		
+		//注册
+		mui('#addUser').on('tap','#registerBtn',function(){
+			mui.openWindow({
+				url:'register.html',
+				id:'register'
+			})
+		})
+
+		//退出应用
+		mui.oldback = mui.back;
+		var clickNum = 0;
+		mui.back = function(event) {
+			clickNum++;
+			if(clickNum > 1) {
+				plus.runtime.quit();
+			} else {
+				mui.toast("再按一次退出应用");
+			}
+			setTimeout(function() {
+				clickNum = 0
+			}, 1000);
+			return false;
+		}
+		//测试网络
+		//		document.addEventListener("netchange", networkinfo, false);
+		function networkinfo() {
+			if(plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE) {
+				mui.toast("网络异常,请检查网络设置!");
+			}
+		}
+	</script>
+
+</html>

+ 169 - 0
home/main.html

@@ -0,0 +1,169 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<style type="text/css">
+			.mui-bar{
+				background: #fff;
+				touch-action: none;
+			}
+			/*.mui-bar {
+				-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.6);
+				box-shadow: 0 0 1px rgba(0, 0, 0, 0.6);
+				padding-top: 6px;
+			}*/
+		</style>
+	</head>
+
+	<body>
+		<nav class="mui-bar mui-bar-tab">
+			<a class="mui-tab-item mui-active" data-id="home">
+				<img class="mui-icon" src="../images/home-active.png" />
+				<span class="mui-tab-label">首页</span>
+			</a>
+			<a class="mui-tab-item" data-id="equip">
+				<img class="mui-icon" src="../images/equip.png" />
+				<span class="mui-tab-label">设备</span>
+			</a>
+			<a class="mui-tab-item" data-id="warning">
+				<img class="mui-icon" src="../images/warning.png" />
+				<span class="mui-tab-label">预警</span>
+			</a>
+			<a class="mui-tab-item" data-id="personalinfo">
+				<img class="mui-icon" src="../images/my.png" />
+				<span class="mui-tab-label">我的</span>
+			</a>
+		</nav>
+		<div class="mui-content">
+
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			mui.plusReady(function() {
+				//关闭等待框
+				plus.nativeUI.closeWaiting();
+				//显示当前页面
+				mui.currentWebview.show();
+				plus.webview.hide('login');
+				plus.webview.close('login');
+				//预加载页面
+				var subInfos = [{
+					    url: 'homePage.html',
+					    id: 'home'
+					}, {
+					    url: 'equip.html',
+					    id: 'equip',
+					}, {
+					    url: '../warning/warning.html',
+					    id: 'warning'
+					}, {
+					    url: 'personalinfo.html',
+					    id: 'personalinfo'
+					}];
+					
+				var objStyle = {
+					top: "0px",
+					bottom: "52px",
+				};
+				
+				var self = plus.webview.currentWebview(); //取到当前的主页窗口
+				var activeTab = '';		
+				
+				// 默认只加载首页webview
+				var homeWv = plus.webview.create(subInfos[0].url, subInfos[0].id, objStyle);
+				self.append(homeWv);
+				activeTab = subInfos[0].id;
+				
+				// 根据id查询子页面的信息
+				var getSubInfoById = function(infoList, id) {
+				    var result = null;
+				    for(var i = 0, len = infoList.length; i < len; i++) {
+				        var _info = infoList[i];
+				        if(_info.id === id) {
+				            result = _info;
+				            break;
+				        }
+				    }
+				    return result;
+				};
+				//选项卡点击事件
+				mui(".mui-bar-tab").on("tap", "a", function(e) {
+					var _self = this;
+				    var targetTab = _self.getAttribute('data-id');
+				    if(targetTab === activeTab) {
+				        return;
+				    }
+				    var _subWv = plus.webview.getWebviewById(targetTab);
+				    
+				    // 若webview不存在,则创建;
+				    if(!_subWv) {
+				        var _subInfo = getSubInfoById(subInfos, targetTab);
+				        _subWv = plus.webview.create(_subInfo.url, _subInfo.id, objStyle);
+				        self.append(_subWv);
+				    }
+				    _subWv.show();
+				    
+				    // 隐藏之前的webview
+				    plus.webview.getWebviewById(activeTab).hide('none');
+				    activeTab = targetTab;
+
+					/**
+					 * 用图片作为图标而不用字体图标。
+					 */
+
+					// 获取图标对象
+
+					var targetIcon = mui(this.children[0])[0];
+					//初始化
+					mui(".mui-bar-tab .mui-tab-item img").each(function(index, item) {
+						var itemSrc = item.getAttribute("src");
+						if(itemSrc.indexOf("active")) {
+							item.src = itemSrc.replace("-active.png", ".png");
+						}
+					});
+					//设置当前的图标
+					targetIcon.src = targetIcon.getAttribute("src").replace(".png", "-active.png");
+				});
+			})
+			//退出应用
+			mui.oldback = mui.back;
+			var clickNum = 0;
+			mui.back = function(event) {
+				clickNum++;
+				if(clickNum > 1) {
+					plus.runtime.quit();
+				} else {
+					mui.toast("再按一次退出应用");
+				}
+				setTimeout(function() {
+					clickNum = 0
+				}, 1000);
+				return false;
+			}
+			var flag = false;
+			//创建遮罩蒙板
+			var mask = mui.createMask(function() {
+			    //设置点击蒙板不会自动消失
+			    //但调用close方法关闭mask时,必须返回true
+			    return flag;
+			}); 
+			//监听自定事件
+			//打开遮罩蒙板
+			window.addEventListener("openMask", function(e) {
+			        flag = false;
+			        mask.show(); //显示遮罩
+			});
+			//关闭遮罩蒙板
+			window.addEventListener("closeMask", function(e) {
+			        flag = true;
+			        mask.close();
+			});
+		</script>
+	</body>
+
+</html>

+ 436 - 0
home/map.html

@@ -0,0 +1,436 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title>地图</title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			.mui-content {
+				position: absolute;
+				left: 0;
+				top: 0;
+				bottom: 0;
+				right: 0;
+			}
+			
+			.mapCover {
+				position: absolute;
+				left: 0;
+				top: 96px;
+				bottom: 0;
+				right: 0;
+			}
+			
+			#map {
+				width: 100%;
+				position: fixed;
+				top: 96px;
+				bottom: 0px;
+				line-height: 200px;
+				text-align: center;
+				background: #FFFFFF;
+			}
+			
+			#btn {
+				margin-top: 50px;
+				width: 80%;
+				left: 10%;
+			}
+			
+			#NativewUI {
+				margin-top: 50px;
+				width: 80%;
+				left: 10%;
+			}
+			
+			.mui-popover {
+				width: 160px;
+			}
+			
+			/*#popover {
+				display: block;
+				top: 57px;
+				left: 165px;
+			}*/
+			/*搜索框*/
+			
+			.searchBox {
+				background-color: #eee;
+				padding: 0px 8px;
+				position: relative;
+				margin-top: 10px;
+			}
+			
+			.mui-search .mui-placeholder {
+				text-align: left;
+				left: 5px;
+			}
+			
+			input[type=search] {
+				background: #fff;
+			}
+			
+			.mui-search .mui-placeholder .mui-icon {
+				color: #777;
+			}
+			
+			.searchBtnBox {
+				position: absolute;
+				right: 8px;
+				top: 0px;
+				z-index: 3;
+			}
+			
+			#searchBtn {
+				letter-spacing: 3px;
+				line-height: 1.6;
+				border: none;
+			}
+			
+			.cutline {
+				display: inline-block;
+				border-left: .08em dashed #777;
+				margin-top: 6px;
+			}
+			/*分类*/
+			
+			.mui-table-view-cell i {
+				font-size: 18px;
+				margin-right: 5px;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">设备分布图</h1>
+			<a id="openPopover" class="mui-icon mui-icon-more mui-pull-right"></a>
+			<!--<a class="fa fa-search mui-pull-right" id="searchBtn">搜索</a>-->
+		</header>
+		<div class="mui-content">
+			<div class="faxSearchBox">
+				<div class="mui-input-row mui-search">
+					<input type="search" id="searchInp" placeholder="请输入设备ID">
+				</div>
+				<div class="searchBtnBox">
+					<span class="cutline">&nbsp;</span>
+					<button id="searchBtn">搜索</button>
+				</div>
+			</div>
+
+			<div class="mapCover">
+				<div id="map"></div>
+			</div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/jquery-2.1.0.js"></script>
+		 <script src="../js/coordOffset.js"></script><!--坐标偏移 -->
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			var em = null,
+				map = null;
+			var floatw = null;
+			// H5 plus事件处理
+			window.addEventListener('requestPerson',function(event){
+				//获得事件参数
+				var id = event.detail.id;
+				requestPerson = id;
+				getdata(id)
+			})
+			function getdata(type){
+				// mui('#popover').popover('toggle'); //show hide toggle
+				var dtype = '';
+				map.clearOverlays(); //清除全部
+				if(type == 2 || type == 3 || type == 5  || type == 7 || type == 8) {
+					if(type == 2) {
+						dtype = 'scd';
+					} else if(type == 3) {
+						dtype = 'cbd';
+					}else if(type == 5) {
+						dtype = 'qxz';
+					}else if(type == 7) {
+						dtype = 'bzy';
+					}else if(type == 8) {
+						dtype = 'xyq';
+					}
+					$.ajax({
+						type: "post",
+						url: "http://120.27.222.26/home_map/map_locat",
+						data: {
+							req: dtype
+						},
+						timeout: 10000, //超时时间:30秒
+						beforeSend: function() {
+							plus.nativeUI.showWaiting("加载中...");
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						dataType: "json",
+						success: function(data) {
+							// console.log(JSON.stringify(data))
+							setmarker(data)
+						},
+						error:function(type){
+							mui.toast('网络超时!')
+						}
+					});
+				} else {
+					$.ajax({
+						type: "post",
+						url: "http://120.27.222.26/home_map/map_locat",
+						data: {
+							req: 'scd'
+						},
+						timeout: 10000, //超时时间:30秒
+						beforeSend: function() {
+							plus.nativeUI.showWaiting("加载中...");
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						dataType: "json",
+						success: function(data) {
+							// console.log(JSON.stringify(data))
+							setmarker(data)
+						},
+						error:function(type){
+							mui.toast('网络超时!')
+						}
+					});
+					$.ajax({
+						type: "post",
+						url: "http://120.27.222.26/home_map/map_locat",
+						data: {
+							req: 'cbd'
+						},
+						timeout: 10000, //超时时间:30秒
+						beforeSend: function() {
+							plus.nativeUI.showWaiting("加载中...");
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						dataType: "json",
+						success: function(data) {
+							// console.log(JSON.stringify(data))
+							setmarker(data)
+						},
+						error:function(type){
+							mui.toast('网络超时!')
+						}
+					});
+					$.ajax({
+						type: "post",
+						url: "http://120.27.222.26/home_map/map_locat",
+						data: {
+							req: 'qxz'
+						},
+						timeout: 10000, //超时时间:30秒
+						beforeSend: function() {
+							plus.nativeUI.showWaiting("加载中...");
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						dataType: "json",
+						success: function(data) {
+							// console.log(JSON.stringify(data))
+							setmarker(data)
+						},
+						error:function(type){
+							mui.toast('网络超时!')
+						}
+					});
+					$.ajax({
+						type: "post",
+						url: "http://120.27.222.26/home_map/map_locat",
+						data: {
+							req: 'bzy'
+						},
+						timeout: 10000, //超时时间:30秒
+						beforeSend: function() {
+							plus.nativeUI.showWaiting("加载中...");
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						dataType: "json",
+						success: function(data) {
+							// console.log(JSON.stringify(data))
+							setmarker(data)
+						},
+						error:function(type){
+							mui.toast('网络超时!')
+						}
+					});
+					$.ajax({
+						type: "post",
+						url: "http://120.27.222.26/home_map/map_locat",
+						data: {
+							req: 'xyq'
+						},
+						timeout: 10000, //超时时间:30秒
+						beforeSend: function() {
+							plus.nativeUI.showWaiting("加载中...");
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						dataType: "json",
+						success: function(data) {
+							// console.log(JSON.stringify(data))
+							setmarker(data)
+						},
+						error:function(type){
+							mui.toast('网络超时!')
+						}
+					});
+				}
+			}
+			function setmarker(data){
+				for(var i = 0;i<data.length;i++){
+					if(data[i].equip_type == 2){
+						var iconurl = '../images/2.png';
+						var title = '杀虫灯设备';
+					}else if(data[i].equip_type == 3){
+						var iconurl = '../images/3.png';
+						var title = '测报灯设备';
+					}else if(data[i].equip_type == 5){
+						var iconurl = '../images/1.png';
+						var title = '环境监测设备';
+					}else if(data[i].equip_type == 7){
+						var iconurl = '../images/7.png';
+						var title = '孢子仪设备';
+					}else if(data[i].equip_type == 4){
+						var iconurl = '../images/8.png';
+						var title = '性诱设备';
+					}
+					if(data[i].equip_type == 2||data[i].equip_type == 3|| data[i].equip_type==4){
+						if(data[i].gps == 0){
+							var point = new plus.maps.Point(data[i].lng, data[i].lat);
+						}else if(data[i].gps == 1){
+							var GCj02 = wgs84togcj02(data[i].lng, data[i].lat); //gps转火星定位
+							var baidulnglat = gcj02tobd09(GCj02[0],GCj02[1]) //火星转百度定位
+							var point = new plus.maps.Point(baidulnglat[0], baidulnglat[1]);
+						}else if(data[i].gps == 2){
+							var baidulnglat = gcj02tobd09(data[i].lng, data[i].lat) //火星转百度定位
+							var point = new plus.maps.Point(baidulnglat[0], baidulnglat[1]);
+						}
+					}else{
+						var point = new plus.maps.Point(data[i].lng, data[i].lat);
+					}
+					var txt = title+'\n名称:'+data[i].equip_name+'\n设备号:'+data[i].equip_id;
+					addMarker(point,iconurl,txt);
+				}
+			}
+			function plusReady() {
+				// 确保DOM解析完成
+				if(!em || !window.plus || map) {
+					return
+				};
+				map = new plus.maps.Map("map");
+				map.centerAndZoom(new plus.maps.Point(105.740332,34.038286), 4);
+				map.showZoomControls( true );
+				
+				//顶部右上角按钮menu触发弹出菜单
+				document.getElementById('openPopover').addEventListener('tap', function() {
+					floatWebview()
+				})
+				
+				// 创建悬浮窗口
+				function floatWebview() {
+					if(floatw) { // 避免快速多次点击创建多个窗口
+						floatw.show("fade-in");
+					} else {
+						floatw = plus.webview.create("map_nav.html", "map_nav", {
+							background: 'transparent',
+							zindex: 10,
+						});
+						floatw.show("fade-in");
+					}
+				}
+				
+			}
+			if(window.plus) {
+				plusReady();
+			} else {
+				document.addEventListener("plusready", plusReady, false);
+			}
+			// DOMContentloaded事件处理
+			document.addEventListener("DOMContentLoaded", function() {
+				em = document.getElementById("map");
+				plusReady();
+			}, false);
+			
+			// 编写自定义函数,创建标注
+			function addMarker(point,iconurl,txt){
+			  	var marker = new plus.maps.Marker(point);
+				marker.setIcon(iconurl);
+				var bubble = new plus.maps.Bubble(txt); 
+				marker.setBubble(bubble);
+			  	map.addOverlay(marker);
+				map.setZoom(4);
+				map.setCenter(105.740332,34.038286);
+			}
+	
+
+			//搜索
+			$("#searchInp").on('keypress',function(e) {  
+				var keycode = e.keyCode;  
+				var searchName = $(this).val();  
+				if(keycode=='13') {  
+					e.preventDefault();    
+					//请求搜索接口  
+					searchFun(searchName)  
+				}
+			});  
+			document.getElementById('searchBtn').addEventListener('tap', function() {
+				var imei = document.getElementById('searchInp').value;
+				searchFun(imei)
+			})
+			
+			function searchFun(imei){
+				if(imei) {
+					$.ajax({
+						type: "post",
+						url: "http://120.27.222.26/home_map/map_locat",
+						data: {
+							req: "imei",
+							equip_id: imei
+						},
+						timeout: 10000, //超时时间:30秒
+						dataType: "json",
+						beforeSend: function() {
+							plus.nativeUI.showWaiting("加载中...");
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						success: function(data) {
+							if(data == '0') {
+								mui.toast("没有找到该设备,请核对设备id!");
+								map.clearOverlays(); //清除全部
+							} else {
+								map.clearOverlays(); //清除全部
+								setmarker(data)
+							}
+						},
+						error:function(type){
+							mui.toast('网络超时!')
+						}
+					});
+				} else {
+					mui.toast("请输入设备IMEI");
+				}
+			}
+			
+		</script>
+	</body>
+
+</html>

+ 619 - 0
home/mapJs.html

@@ -0,0 +1,619 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title>地图</title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			.mui-content {
+				position: absolute;
+				left: 0;
+				top: 0;
+				bottom: 0;
+				right: 0;
+			}
+			
+			.mapCover {
+				position: absolute;
+				left: 0;
+				top: 96px;
+				bottom: 0;
+				right: 0;
+			}
+			
+			#map {
+				width: 100%;
+				height: 100%;
+			}
+			
+			#btn {
+				margin-top: 50px;
+				width: 80%;
+				left: 10%;
+			}
+			
+			#NativewUI {
+				margin-top: 50px;
+				width: 80%;
+				left: 10%;
+			}
+			
+			.mui-popover {
+				width: 160px;
+			}
+			
+			/*#popover {
+				display: block;
+				top: 57px;
+				left: 165px;
+			}*/
+			/*搜索框*/
+			
+			.searchBox {
+				background-color: #eee;
+				padding: 0px 8px;
+				position: relative;
+				margin-top: 10px;
+			}
+			
+			.mui-search .mui-placeholder {
+				text-align: left;
+				left: 5px;
+			}
+			
+			input[type=search] {
+				background: #fff;
+			}
+			
+			.mui-search .mui-placeholder .mui-icon {
+				color: #777;
+			}
+			
+			.searchBtnBox {
+				position: absolute;
+				right: 8px;
+				top: 0px;
+				z-index: 3;
+			}
+			
+			#searchBtn {
+				letter-spacing: 3px;
+				line-height: 1.6;
+				border: none;
+			}
+			
+			.cutline {
+				display: inline-block;
+				border-left: .08em dashed #777;
+				margin-top: 6px;
+			}
+			/*分类*/
+			
+			.mui-table-view-cell i {
+				font-size: 18px;
+				margin-right: 5px;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+			<h1 class="mui-title">设备分布图</h1>
+			<a href="#popover" id="openPopover" class="mui-icon mui-icon-more mui-pull-right"></a>
+			<!--<a class="fa fa-search mui-pull-right" id="searchBtn">搜索</a>-->
+		</header>
+		<div class="mui-content">
+			<div id="popover" class="mui-popover">
+			<ul class="mui-table-view">
+				<li class="mui-table-view-cell" data-id="2">
+					<a href="#">
+						<i class="iconfont">&#xe621;</i>杀虫灯
+					</a>
+				</li>
+				<li class="mui-table-view-cell" data-id="3">
+					<a href="#">
+						<i class="iconfont">&#xe71f;</i>虫情测报
+					</a>
+				</li>
+				<!--<li class="mui-table-view-cell" data-id="3">
+					<a href="#">
+						<i class="iconfont">&#xe604;</i>农药残留
+					</a>
+				</li>-->
+				<li class="mui-table-view-cell" data-id="5">
+					<a href="#">
+						<i class="iconfont">&#xe60e;</i>环境监测
+					</a>
+				</li>
+				<li class="mui-table-view-cell" data-id="7">
+					<a href="#">
+						<i class="iconfont">&#xe64e;</i>孢子仪
+					</a>
+				</li>
+				<!--<li class="mui-table-view-cell" data-id="5">
+					<a href="#">
+						<i class="iconfont">&#xe645;</i>监控设备
+					</a>
+				</li>-->
+			</ul>
+		</div>
+			<div class="faxSearchBox">
+				<div class="mui-input-row mui-search">
+					<input type="search" id="searchInp" placeholder="请输入设备ID">
+				</div>
+				<div class="searchBtnBox">
+					<span class="cutline">&nbsp;</span>
+					<button id="searchBtn">搜索</button>
+				</div>
+			</div>
+
+			<div class="mapCover">
+				<div id="map"></div>
+			</div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=La58N63t7hPhafQ7Eror2kon"></script>
+		<script type="text/javascript">
+			mui.init();
+
+			//百度地图获取坐标
+			var map = new BMap.Map("map"); // 创建地图实例  
+			map.centerAndZoom(new BMap.Point(113.64964385, 34.75661006), 13); // 创建点坐标  
+			map.enableScrollWheelZoom(true);
+			map.addControl(new BMap.ScaleControl()); // 添加比例尺控件 
+			map.addControl(new BMap.NavigationControl()); //为地图添加鱼骨(默认)
+			map.addEventListener("tilesloaded", function() {
+				$(".BMap_cpyCtrl").hide();
+				geoc = new BMap.Geocoder();
+			}); //地图加载完毕后 隐藏百度图标
+			mui.plusReady(function() {
+				if(plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE) {
+					mui.toast("网络异常,请检查网络设置!");
+				}
+				//请求数据:
+//				$.ajax({
+//					type: "post",
+//					url: "http://120.27.222.26/home_map/map_locat",
+//					data: {
+//						req: "cbd",
+//					},
+//					timeout:10000, //超时时间:30秒
+//					beforeSend: function() {
+//						plus.nativeUI.showWaiting("加载中...");
+//					},
+//					complete: function() {
+//						plus.nativeUI.closeWaiting();
+//					},
+//					dataType: "json",
+//					success: function(data) {
+//						//						plus.nativeUI.closeWaiting();
+//						eachItem(data)
+//					},
+//					error:function(type){
+//						mui.toast('网络超时!')
+//					}
+//				});
+
+//				$.ajax({
+//					type: "post",
+//					url: "http://120.27.222.26/home_map/map_locat",
+//					data: {
+//						req: "scd",
+//					},
+//					timeout: 10000, //超时时间:30秒
+//					beforeSend: function() {
+//						plus.nativeUI.showWaiting("加载中...");
+//					},
+//					complete: function() {
+//						plus.nativeUI.closeWaiting();
+//					},
+//					dataType: "json",
+//					success: function(data) {
+//						//						eachItem(data)
+//					},
+//					error:function(type){
+//						mui.toast('网络超时!')
+//					}
+//				});
+				//搜索
+				$("#searchInp").on('keypress',function(e) {  
+	                var keycode = e.keyCode;  
+	                var searchName = $(this).val();  
+	                if(keycode=='13') {  
+	                    e.preventDefault();    
+	                    //请求搜索接口  
+	                    searchFun(searchName)  
+	                }
+	         	});  
+				document.getElementById('searchBtn').addEventListener('tap', function() {
+					var imei = document.getElementById('searchInp').value;
+					searchFun(imei)
+				})
+				
+				function searchFun(imei){
+					if(imei) {
+						$.ajax({
+							type: "post",
+							url: "http://120.27.222.26/home_map/map_locat",
+							data: {
+								req: "imei",
+								equip_id: imei
+							},
+							timeout: 10000, //超时时间:30秒
+							dataType: "json",
+							beforeSend: function() {
+								plus.nativeUI.showWaiting("加载中...");
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							success: function(data) {
+								if(data == '0') {
+									mui.toast("没有找到该设备,请核对设备id!");
+									map.clearOverlays(); //清除全部
+								} else {
+									map.clearOverlays(); //清除全部
+									eachItem(data)
+								}
+							},
+							error:function(type){
+								mui.toast('网络超时!')
+							}
+						});
+					} else {
+						mui.toast("请输入设备IMEI");
+					}
+				}
+				//右上角种类查询
+				mui('#popover').on('tap', 'li', function() {
+					mui('#popover').popover('toggle'); //show hide toggle
+					var dtype = '';
+					var type = this.getAttribute('data-id');
+					if(type == 2 || type == 3 || type == 5  || type == 7) {
+						if(type == 2) {
+							dtype = 'scd';
+						} else if(type == 3) {
+							dtype = 'cbd';
+						}else if(type == 5) {
+							dtype = 'qxz';
+						}else if(type == 7) {
+							dtype = 'bzy';
+						}
+						map.clearOverlays(); //清除全部
+						$.ajax({
+							type: "post",
+							url: "http://120.27.222.26/home_map/map_locat",
+							data: {
+								req: dtype
+							},
+							timeout: 10000, //超时时间:30秒
+							beforeSend: function() {
+								plus.nativeUI.showWaiting("加载中...");
+							},
+							complete: function() {
+								plus.nativeUI.closeWaiting();
+							},
+							dataType: "json",
+							success: function(data) {
+								console.log(data)
+								map.clearOverlays(); //清除全部
+//								console.log(JSON.stringify(data))
+								eachItem(data)
+							},
+							error:function(type){
+								mui.toast('网络超时!')
+							}
+						});
+					} else {
+						mui.toast("此功能暂未开启!");
+					}
+
+					console.log(this.getAttribute('data-id'))
+				})
+				//			}
+			})
+
+			/**
+			 * WGS84转GCj02
+			 * @param lng
+			 * @param lat
+			 * @returns {*[]}
+			 */
+			//定义一些常量
+			var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
+			var PI = 3.1415926535897932384626;
+			var a = 6378245.0;
+			var ee = 0.00669342162296594323;
+
+			function wgs84togcj02(lng, lat) {
+				var lat = +lat;
+				var lng = +lng;
+
+				var dlat = transformlat(lng - 105.0, lat - 35.0);
+				var dlng = transformlng(lng - 105.0, lat - 35.0);
+				var radlat = lat / 180.0 * PI;
+				var magic = Math.sin(radlat);
+				magic = 1 - ee * magic * magic;
+				var sqrtmagic = Math.sqrt(magic);
+				dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
+				dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
+				var mglat = lat + dlat;
+				var mglng = lng + dlng;
+				return [mglng, mglat]
+
+			};
+			/**
+			 * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
+			 * 即谷歌、高德 转 百度
+			 * @param lng
+			 * @param lat
+			 * @returns {*[]}
+			 */
+			function gcj02tobd09(lng, lat) {
+				var lat = +lat;
+				var lng = +lng;
+				var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
+				var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
+				var bd_lng = z * Math.cos(theta) + 0.0065;
+				var bd_lat = z * Math.sin(theta) + 0.006;
+				return [bd_lng, bd_lat]
+			};
+			var transformlat = function transformlat(lng, lat) {
+				var lat = +lat;
+				var lng = +lng;
+				var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
+				ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
+				ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
+				ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
+				return ret
+			};
+			var transformlng = function transformlng(lng, lat) {
+				var lat = +lat;
+				var lng = +lng;
+				var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
+				ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
+				ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
+				ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
+				return ret
+			};
+
+//			function eachItem(data_info) {
+//				console.log(data_info)
+//				var pointArray = [];
+//				for(var i = 0; i < data_info.length; i++) {
+//					if(data_info[i].lng > 999) {
+//						var lng = Math.floor(data_info[i].lng / 100) + ((data_info[i].lng % 100) / 60);
+//						var lat = Math.floor(data_info[i].lat / 100) + ((data_info[i].lat % 100) / 60);
+////						console.log(lng, lat)
+//					} else {
+//						var lat = data_info[i].lat;
+//						var lng = data_info[i].lng;
+//					}
+//					if(data_info[i].lng && data_info[i].lat){
+//						//标注图标
+//					var orgType = data_info[i].equip_type; //parseInt(0)   data_info[i].equip_type
+//					if(orgType == 7) {
+//						var equip_type = '孢子仪';
+//						var myIcon = new BMap.Icon("../images/locationIcon.png", new BMap.Size(17, 23), {
+//							offset: new BMap.Size(0, -18),
+//							imageOffset: new BMap.Size(0, 0 - 0 * 23)
+//						});
+//					}else if(orgType == 5) {
+//						var equip_type = '环境监测';
+//						var myIcon = new BMap.Icon("../images/locationIcon.png", new BMap.Size(17, 23), {
+//							offset: new BMap.Size(0, -18),
+//							imageOffset: new BMap.Size(0, 0 - 1 * 23)
+//						});
+//					} else if(orgType == 2) {
+//						var equip_type = '杀虫灯';
+//						var myIcon = new BMap.Icon("../images/locationIcon.png", new BMap.Size(17, 23), {
+//							offset: new BMap.Size(0, -18),
+//							imageOffset: new BMap.Size(0, 0 - 2 * 23)
+//						});
+//					} else if(orgType == 3) {
+//						var equip_type = '虫情测报';
+//						var myIcon = new BMap.Icon("../images/locationIcon.png", new BMap.Size(17, 23), {
+//							offset: new BMap.Size(0, -18),
+//							imageOffset: new BMap.Size(0, 0 - 3 * 23)
+//						});
+//					} else if(orgType == 4) {
+//						var equip_type = '农药残留';
+//						var myIcon = new BMap.Icon("../images/locationIcon.png", new BMap.Size(17, 23), {
+//							offset: new BMap.Size(0, -18),
+//							imageOffset: new BMap.Size(0, 0 - 4 * 23)
+//						});
+//					} else if(orgType == 6) {
+//						var equip_type = '监控设备';
+//						var myIcon = new BMap.Icon("../images/locationIcon.png", new BMap.Size(17, 23), {
+//							offset: new BMap.Size(0, -18),
+//							imageOffset: new BMap.Size(0, 0 - 5 * 23)
+//						});
+//					}
+//					var lng1 = wgs84togcj02(lng, lat);
+//					var lng2 = gcj02tobd09(lng1[0], lng1[1]);
+////					pointArray[i] = new BMap.Point(lng2[0], lng2[1]);
+//					pointArray.push(new BMap.Point(lng2[0], lng2[1]))
+//
+//					var marker = new BMap.Marker(new BMap.Point(lng2[0], lng2[1]), {
+//						icon: myIcon
+//					}); // 创建标注		
+//					map.addOverlay(marker);
+//					var enterNum = equip_type; //data_info[i].equip_name
+//					var content = '<p>名称:' + data_info[i].equip_name + '</p><p>IMEI:' + data_info[i].equip_id + '</p><p>经度:' + lng2[0] + '</p><p>维度:' + lng2[1] + '</p><p>位置:' + data_info[i].equip_location + '</p>';
+//
+//					// 将标注添加到地图中
+//					addClickHandler(content, marker, enterNum);
+//					}
+//
+//
+//					if(i == data_info.length-1){
+//						//让所有点在视野范围内					
+//						map.setViewport(pointArray);
+//					}
+//					
+//				}
+//
+//			}
+
+
+			//测试
+			function eachItem(data_info) {
+				console.log(data_info)
+			    var points = [];  // 添加海量点数据
+			    for (var i = 0; i < data_info.length; i++) {
+			        if (data_info[i].lng > 999) {
+			            var lng = Math.floor(data_info[i].lng / 100) + ((data_info[i].lng % 100) / 60);
+			            var lat = Math.floor(data_info[i].lat / 100) + ((data_info[i].lat % 100) / 60);
+			        } else {
+			            var lat = data_info[i].lat;
+			            var lng = data_info[i].lng;
+			            
+			        }
+			
+			        if (data_info[i].lat && data_info[i].lng) {
+			            //标注图标
+			            var orgType = data_info[i].equip_type;//parseInt(0)   data_info[i].equip_type
+			            if (orgType == 5) {
+			                var equip_type = '环境监测';
+			                var options = {
+			                    size: BMAP_POINT_SIZE_BIG,
+			                    shape: BMAP_POINT_SHAPE_CIRCLE,
+			                    color: '#001dff'
+			                }
+			                // var myIcon = new BMap.Icon("static/img/locationIcon2.png", new BMap.Size(17, 23), { offset: new BMap.Size(0, -18), imageOffset: new BMap.Size(0, 0 - 1 * 23) });
+			            } else if (orgType == 2) {
+			                var equip_type = '杀虫灯';
+			                var options = {
+			                    size: BMAP_POINT_SIZE_BIG,
+			                    shape: BMAP_POINT_SHAPE_CIRCLE,
+			                    color: '#ff6600'
+			                }
+			                // var myIcon = new BMap.Icon("/static/img/locationIcon2.png", new BMap.Size(17, 23), { offset: new BMap.Size(0, -18), imageOffset: new BMap.Size(0, 0 - 2 * 23) });
+			            } else if (orgType == 3) {
+			                var equip_type = '虫情测报';
+			                var options = {
+			                    size: BMAP_POINT_SIZE_BIG,
+			                    shape: BMAP_POINT_SHAPE_CIRCLE,
+			                    color: '#9c1ee4'
+			                }
+			                // var myIcon = new BMap.Icon("static/img/locationIcon2.png", new BMap.Size(17, 23), { offset: new BMap.Size(0, -13), imageOffset: new BMap.Size(0, 0 - 3 * 23) });
+			            } else if (orgType == 4) {
+			                var equip_type = '性诱器设备';
+			                var options = {
+			                    size: BMAP_POINT_SIZE_BIG,
+			                    shape: BMAP_POINT_SHAPE_CIRCLE,
+			                    color: '#ff2da9'
+			                }
+			                // var myIcon = new BMap.Icon("static/img/locationIcon2.png", new BMap.Size(17, 23), { offset: new BMap.Size(0, -18), imageOffset: new BMap.Size(0, 0 - 6 * 23) });
+			            } else if (orgType == 6) {
+			                var equip_type = '监控设备';
+			                var options = {
+			                    size: BMAP_POINT_SIZE_BIG,
+			                    shape: BMAP_POINT_SHAPE_CIRCLE,
+			                    color: 'green'
+			                }
+			                // var myIcon = new BMap.Icon("static/img/locationIcon2.png", new BMap.Size(17, 23), { offset: new BMap.Size(0, -18), imageOffset: new BMap.Size(0, 0 - 5 * 23) });
+			            } else if (orgType == 7) {
+			                var equip_type = '孢子仪设备';
+			                var options = {
+			                    size: BMAP_POINT_SIZE_BIG,
+			                    shape: BMAP_POINT_SHAPE_CIRCLE,
+			                    color: '#ff0000'
+			                }
+			                // var myIcon = new BMap.Icon("static/img/locationIcon2.png", new BMap.Size(17, 23), { offset: new BMap.Size(0, -18), imageOffset: new BMap.Size(0, 0 - 0 * 23) });
+			            } else if (orgType == 8) {
+			                var equip_type = '农药残留';
+			                var options = {
+			                    size: BMAP_POINT_SIZE_BIG,
+			                    shape: BMAP_POINT_SHAPE_CIRCLE,
+			                    color: '#ff7600'
+			                }
+			                // var myIcon = new BMap.Icon("static/img/locationIcon2.png", new BMap.Size(17, 23), { offset: new BMap.Size(0, -18), imageOffset: new BMap.Size(0, 0 - 4 * 23) });
+			            }
+			            // console.log(lat,lng);
+			            var lng1 = wgs84togcj02(lng, lat);
+			            var lng2 = gcj02tobd09(lng1[0], lng1[1]);
+			            // console.log(lng1,lng2);
+			            // pointArray[i] = new BMap.Point(lng2[0], lng2[1]);
+			            // pointArray.push(new BMap.Point(lng2[0], lng2[1]))
+			            var point = new BMap.Point(lng2[0], lng2[1]);
+			            point.equip_id= data_info[i].equip_id;
+			            point.equip_name= data_info[i].equip_name;    
+			            point.equip_type = equip_type;    
+			            point.orgType = orgType;    
+			            points.push(point);
+			           
+			            // var enterNum = equip_type;//data_info[i].equip_name
+			            // var content = '<p>名称:' + data_info[i].equip_name + '</p><p class="gotoDetial" onclick="gotoManageDetial(\'' + data_info[i].equip_id + ' \',' + orgType + ')">IMEI:' + data_info[i].equip_id + '</p><p>经度:' + lng2[0] + '</p><p>纬度:' + lng2[1] + '</p><p class="area">位置:' + data_info[i].equip_location + '</p></br>';
+			            // if (data_info[i].equip_location) {
+			            //     var flag = true;
+			            // } else {
+			            //     var flag = false;
+			            // }
+			
+			
+			            
+			            
+			            // 将标注添加到地图中
+			            // addClickHandler(content, marker, enterNum, flag);
+			        }
+			
+			    }
+				var pointCollection = new BMap.PointCollection(points, options);  // 初始化PointCollection
+				            pointCollection.addEventListener('click', function (e) {
+				                var point = new BMap.Point(e.point.lng, e.point.lat);
+				                geoc.getLocation(point, function (rs) {
+				                    var addComp = rs.addressComponents;
+				                    $('.area').html('位置:' + addComp.province + ", " + addComp.city + ", " + addComp.district)
+				                    // alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
+				                });
+				                var opts = {
+				                    width: 200,     // 信息窗口宽度
+				                    height: 150,     // 信息窗口高度
+				                    title: e.point.equip_type, // 信息窗口标题
+				                    enableMessage: true//设置允许信息窗发送短息
+				                };
+				                console.log(e.point)
+				                console.log(e.point.equip_location)
+				                var content = '<p>名称:' + e.point.equip_name + '</p><p class="gotoDetial" onclick="gotoManageDetial(\'' + e.point.equip_id + ' \',' + e.point.orgType + ')">IMEI:' + e.point.equip_id + '</p><p>经度:' + e.point.lng + '</p><p>纬度:' + e.point.lat + '</p><p class="area">位置:' + e.point.equip_location + '</p></br>';
+				                var infowindow = new BMap.InfoWindow(content, opts);
+				                map.openInfoWindow(infowindow, point);
+				                // alert('单击点的坐标为:' + e.point.lng + ',' + e.point.lat);  // 监听点击事件
+				            });
+				            map.addOverlay(pointCollection);  // 添加Overlay
+				    //让所有点在视野范围内
+				    map.setViewport(points);
+
+			}
+			//测试
+
+
+
+
+
+			function addClickHandler(content, marker, enterNum) {
+				marker.addEventListener("click", function(e) {
+					openInfo(content, e, enterNum)
+				});
+			}
+
+			function openInfo(content, event, orgname) {
+				var p = event.target;
+				var opts = {
+					title: orgname, // 信息窗口标题
+					enableMessage: true //设置允许信息窗发送短息
+				};
+				var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
+				var infoWindow = new BMap.InfoWindow(content, opts); // 创建信息窗口对象
+				map.openInfoWindow(infoWindow, point); //开启信息窗口
+			}
+		</script>
+	</body>
+
+</html>

+ 122 - 0
home/map_nav.html

@@ -0,0 +1,122 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<link href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet">
+		<style type="text/css">
+			html {
+				width: 100%;
+				height: 100%;
+			}
+			
+			body {
+				height: 100%;
+				background-color: transparent;
+			}
+			
+			.mui-popover .mui-popover-arrow {
+				left: auto;
+				right: 10px!important;
+			}
+			
+			.mui-popover {
+				display: block;
+				width: auto;
+				opacity: 1;
+				text-align: center;
+			}
+			
+			.mui-table-view-cell>a:not(.mui-btn) {
+				color: #000;
+			}
+			
+			.fa {
+				margin-right: 8px;
+				color: #535353;
+			}
+			
+			.mui-table-view-cell>a:not(.mui-btn) {
+				color: #535353;
+			}
+			#userGroup{
+				display: none;
+			}
+			#menu{
+				text-align: left;
+				font-size: 14px;
+			}
+		</style>
+	</head>
+
+	<body>
+		<div id="topPopover" class="mui-popover" style="position:fixed ;top: 55px;right:5px;">
+			<div class="mui-popover-arrow" style="top: -30px;"></div>
+			<ul class="mui-table-view" style="color: #fff; top: -4px;right: 0;" id="menu">
+				<li class="mui-table-view-cell" data-id="1">
+					<a href="#">
+						<i class="iconfont">&#xe71e;</i>全部
+					</a>
+				</li>
+				<li class="mui-table-view-cell" data-id="2">
+					<a href="#">
+						<i class="iconfont">&#xe621;</i>杀虫灯
+					</a>
+				</li>
+				<li class="mui-table-view-cell" data-id="3">
+					<a href="#">
+						<i class="iconfont">&#xe71f;</i>虫情测报
+					</a>
+				</li>
+				<li class="mui-table-view-cell" data-id="5">
+					<a href="#">
+						<i class="iconfont">&#xe6a7;</i>环境监测
+					</a>
+				</li>
+				<li class="mui-table-view-cell" data-id="7">
+					<a href="#">
+						<i class="iconfont">&#xe64e;</i>孢子仪
+					</a>
+				</li>
+				<li class="mui-table-view-cell" data-id="8">
+					<a href="#">
+						<i class="iconfont">&#xe623;</i>性诱器
+					</a>
+				</li>
+			</ul>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init({
+				beforeback: function() {     //获得父页面的webview
+					plus.webview.currentWebview().hide()
+					return false;
+				}
+			})
+			mui.plusReady(function() {
+				ws = plus.webview.currentWebview();
+				ws.setStyle({
+					mask: "none"
+				});
+				window.addEventListener("tap", function() {
+					ws.hide();
+				})
+				window.addEventListener("dragstart", function() {
+					ws.hide();
+				})
+				mui("#menu").on('tap','li',function(){
+					var id = this.getAttribute('data-id');
+					var new_request = plus.webview.getWebviewById('map');
+					mui.fire(new_request,'requestPerson',{id:id});
+					ws.hide();
+				})
+			})
+			
+		</script>
+	</body>
+
+</html>

+ 72 - 0
home/permission.html

@@ -0,0 +1,72 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link href="../css/common.css" rel="stylesheet" />
+		<style type="text/css">
+			.warningIcon,.mui-card-content >p{
+				text-align: center;
+			}
+			.mui-card-content >p{
+				font-size: 16px;
+				color: #333;
+			}
+			.mui-card-content{
+				padding: 10px 0;
+			}
+			
+			.mui-content .mui-card:active{
+				background-color: #eee !important;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav">
+			<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
+		    <h1 class="mui-title">管理员权限</h1>
+		</header>
+		<div class="mui-content">
+		    <div class="mui-card" data-href='../systemmanage/systemmanage_user.html'>
+				<div class="mui-card-content">
+					<div class="warningIcon">
+						<img src="../images/usermanage.png" alt="" width="100" />
+					</div>
+					<p>用户管理</p>
+				</div>
+			</div>
+			<div class="mui-card" data-href='../equipAllot/equip_allot_list.html'>
+				<div class="mui-card-content">
+					<div class="warningIcon">
+						<img src="../images/allotEqueip.png" alt="" width="100" />
+					</div>
+					<p>分配设备</p>
+				</div>
+			</div>
+		</div>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+//			mui('.mui-content').on('touchstart','.mui-card',function(){
+//				this.classList.add("mui-active");
+//			})
+//			mui('.mui-content').on('touchend','.mui-card',function(){
+//				this.classList.remove("mui-active");
+//			})
+			mui('.mui-content').on('tap','.mui-card',function(){
+				var url = this.getAttribute('data-href');
+				//获取最后一位反斜杠之后的元素 ++ 取点之前的元素
+				var id = (url.substr(url.lastIndexOf('/') + 1)).split('.')[0]
+				mui.openWindow({
+					url:url,
+					id:id
+				})
+			})
+		</script>
+	</body>
+
+</html>

+ 405 - 0
home/personalinfo.html

@@ -0,0 +1,405 @@
+<!doctype html>
+<html>
+
+	<head>
+		<meta charset="UTF-8">
+		<title></title>
+		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<link href="../css/mui.min.css" rel="stylesheet" />
+		<link rel="stylesheet" type="text/css" href="../css/iconfont.css" />
+		<link rel="stylesheet" type="text/css" href="../css/common.css" />
+		<style type="text/css">
+			#account {
+				height: 200px;
+				background: #82c0fa;
+				position: relative;
+			}
+			
+			.userMsg {
+				text-align: center;
+			}
+			
+			.userMsg img {
+				border-radius: 50%;
+				margin: 30px 0 0;
+			}
+			
+			#username {
+				color: #fff;
+				line-height: 32px;
+				font-size: 18px;
+			}
+			.waveWrapper{
+				background: url(../images/shadow.png);
+				height: 52px;
+			    background-color: #82c0fa;
+			    position: absolute;
+			    left: 0;
+			    right: 0;
+			    bottom: 0;
+			    background-size: cover;
+			}
+			
+			.option{
+				margin-bottom:17px;
+			}
+			
+			.option .iconfont {
+				font-size: 16px;
+				color: #666;
+			}
+			
+			.option span {
+				color: #666;
+				font-size: 16px;
+				margin-left: 10px;
+			}
+			#userImg{
+				width: 70px;
+				height: 70px;
+			}
+			.failed{
+				display: none;
+				position: absolute;
+			    left: 0;
+			    right: 0;
+			    top: 0;
+			    bottom: 0;
+			    z-index: 10;
+			}
+			.failed img{
+				width: 70%;
+			    position: absolute;
+				top: 21%;
+			    left: 50%;
+			    margin-left: -35%;
+			}
+			.failed p{
+				width: 100%;
+				font-size: 16px;
+				text-align: center;
+			    position: absolute;
+			    top: 54%;
+			    left: 0;
+			    right: 0;
+			}
+			.failed button{
+				width: 34%;
+			    position: absolute;
+			    top: 61%;
+			    left: 50%;
+			    margin-left: -15%;
+			}
+			.header{
+				display: none;
+			}
+			.mui-bar-nav~.mui-content {
+			    padding-top: 0;
+			}
+		</style>
+	</head>
+
+	<body>
+		<header class="mui-bar mui-bar-nav header">
+			<h1 class="mui-title">我的</h1>
+		</header>
+		<div class="mui-content">
+			<div id="account">
+				<div class="userMsg">
+					<a class="" id="" href="#">
+						<img id="userImg" src="" />
+					</a>
+					<p id="username"></p>
+				</div>
+				<div class="waveWrapper"></div>
+			</div>
+			<ul class="mui-table-view option">
+				<li class="mui-table-view-cell">
+					<a class="mui-navigate-right" href="../personalinfo/userinfo.html">
+						<i class="iconfont">&#xe620;</i>
+						<span>个人信息</span>
+					</a>
+				</li>
+				<li class="mui-table-view-cell">
+					<a class="mui-navigate-right" href="../personalinfo/feedback.html">
+						<i class="iconfont">&#xe62c;</i>
+						<span>反馈</span>
+					</a>
+				</li>
+				<li class="mui-table-view-cell">
+					<a class="mui-navigate-right" href="../personalinfo/about.html">
+						<i class="iconfont">&#xe608;</i>
+						<span>关于</span>
+					</a>
+				</li>
+				<li class="mui-table-view-cell">
+					<a class="mui-navigate-right" href="../personalinfo/refresh.html">
+						<i class="iconfont">&#xe6f3;</i>
+						<span>系统</span>
+					</a>
+				</li>
+				<!--<li class="mui-table-view-cell">
+					<a class="mui-navigate-right" id="refresh">
+						<i class="iconfont">&#xe6f3;</i>
+						<span>更新</span>
+					</a>
+				</li>-->
+			</ul>
+			<ul class="mui-table-view option" style="margin-bottom: 0;">
+				<li class="mui-table-view-cell">
+					<a class="mui-navigate-right" href="../personalinfo/setting.html">
+						<i class="iconfont">&#xe607;</i>
+						<span>设置</span>
+					</a>
+				</li>
+			</ul>
+		</div>
+		<div class="failed">
+			<img src="../images/againLoad.png"/>
+			<p>数据加载失败</p>
+			<button id="loadBtn">重新加载</button>
+		</div>
+		<script src="../js/jquery-2.1.0.js"></script>
+		<script src="../js/mui.min.js"></script>
+		<script type="text/javascript">
+			mui.init();
+			$('.mui-content').hide();
+			var userinfoData;
+			mui.plusReady(function() {
+				var username = plus.storage.getItem('username');
+				console.log(username);
+				getuserinfo();
+				$('#loadBtn').on('tap',getuserinfo);
+				function getuserinfo(){
+					mui.ajax('http://120.27.222.26/app_user_info', {
+						data: {
+							req:'info'
+						},
+						dataType: 'json', //服务器返回json格式数据
+						type: 'post', //HTTP请求类型
+						timeout: 10000, //超时时间设置为10秒;
+						beforeSend: function() {
+							plus.nativeUI.showWaiting('请求中...');
+						},
+						complete: function() {
+							plus.nativeUI.closeWaiting();
+						},
+						success: function(data) {
+							userinfoData = data;
+							$('#userImg').attr('src','http://120.27.222.26/'+data.user_picture);
+							$('#username').html(data.username);
+							$('.failed').hide();
+							$('.header').hide();
+							$('.mui-content').show();
+						},
+						error: function(xhr, type, errorThrown) {
+							console.log(type)
+							console.log(errorThrown)
+							mui.toast('个人信息获取失败');
+							$('.mui-content').hide();
+							$('.failed').show();
+							$('.header').show();
+						}
+					});
+				}
+				
+				mui('.option').on('tap', 'a', function() {
+					var src = this.getAttribute('href');
+					var id = (this.href.substr(this.href.lastIndexOf('/') + 1)).split('.')[0];
+					console.log(id)
+
+					if(id){
+						if(id == 'userinfo'){
+							mui.openWindow({
+								url:src,
+								id:id,
+								extras: {
+									data: userinfoData //扩展参数
+								}
+							})
+						}else{
+							mui.openWindow({
+								url:src,
+								id:id
+							})
+						}
+					}else{
+						mui.openWindow({
+							url:src,
+							id:id
+						})
+					}
+					
+				})
+				//刷新
+//				document.getElementById('refresh').addEventListener('tap', function() {
+//					var btnArray = ['确定', '取消'];
+//					mui.confirm('确定更新到最新版本?', '版本更新', btnArray, function(e) {
+//						if(e.index == 0) {
+//							console.log('是');
+//						} else {
+//							console.log('否');
+//						}
+//					})
+
+					//获取当前版本号
+//					plus.runtime.getProperty(plus.runtime.appid, function(inf) {
+//					    wgtVer = inf.version;//获取版本号
+//					    console.log(wgtVer)
+//					    var wait = plus.nativeUI.showWaiting('下载更新中,请勿关闭');
+//					    //创建一个下载任务
+//					    var dtask = plus.downloader.createDownload( "", {method:"GET"}, function ( d, status ) {
+//					    	if ( status == 200 ) { 
+//								console.log( "Download success: " + d.filename );
+//					    		plus.runtime.install(d.filename); // 安装下载的apk文件
+//							}else{
+//								mui.alert('更新失败')
+////					    		plus.runtime.install('../H5B2852C7_0925104810.apk'); // 安装下载的apk文件
+//							}
+//							wait.close();
+//					    });
+//					    //开始下载
+//					    dtask.start(); 
+//					});
+//				})
+				//更换头像
+				document.getElementById('userImg').addEventListener('tap', function() {
+					if(mui.os.plus) {
+						var a = [{
+							title: '查看大图'
+						},{
+							title: '拍照'
+						}, {
+							title: '从手机相册选择'
+						}];
+						plus.nativeUI.actionSheet({
+							title: '修改头像',
+							cancel: '取消',
+							buttons: a
+						}, function(b) {
+							console.log(b.index)
+							switch(b.index) {
+								case 0:
+									break;
+								case 1:
+									lookBigImg();
+									break;
+								case 2:
+									//拍照
+									getImages();
+									break;
+								case 3:
+									//打开相册
+									galleryImages();
+									break;
+								default:
+									break;
+							}
+						}, false);
+					}
+				});
+				
+				//查看大图
+				function lookBigImg(){
+					var imgsrc = document.getElementById('userImg').getAttribute('src'); 
+					console.log(imgsrc)
+					plus.nativeUI.previewImage([
+						imgsrc
+					]);
+				}
+
+				//拍照
+				function getImages() {
+					var mobileCamera = plus.camera.getCamera();
+					mobileCamera.captureImage(function(e) {
+						plus.io.resolveLocalFileSystemURL(e, function(entry) {
+							var path = entry.toLocalURL() + '?version=' + new Date().getTime();
+							uploadHeadImg(path);
+						}, function(e) {
+							console.log("读取拍照文件错误");
+						});
+					}, function(e) {
+						console.log("er", e.message);
+					}, function() {
+						filename: '_doc/head.png';
+					});
+				}
+				
+
+				//从本地相册选择
+				function galleryImages() {
+					console.log("你选择了从相册选择");
+					plus.gallery.pick(function(a) {
+						plus.io.resolveLocalFileSystemURL(a, function(entry) {
+							plus.io.resolveLocalFileSystemURL('_doc/', function(root) {
+								root.getFile('head.png', {}, function(file) {
+									//文件已经存在
+									file.remove(function() {
+										console.log("文件移除成功");
+										entry.copyTo(root, 'head.png', function(e) {
+											var path = e.fullPath + '?version=' + new Date().getTime();
+											uploadHeadImg(path);
+										}, function(err) {
+											console.log("copy image fail: ", err);
+										});
+									}, function(err) {
+										console.log("删除图片失败:(" + JSON.stringify(err) + ")");
+									});
+								}, function(err) {
+									//打开文件失败
+									entry.copyTo(root, 'head.png', function(e) {
+										var path = e.fullPath + '?version=' + new Date().getTime();
+										uploadHeadImg(path);
+									}, function(err) {
+
+										console.log("上传图片失败:(" + JSON.stringify(err) + ")");
+									});
+								});
+							}, function(e) {
+								console.log("读取文件夹失败:(" + JSON.stringify(e) + ")");
+							});
+						});
+					}, function(err) {
+						console.log("读取拍照文件失败: ", err);
+					}, {
+						filter: 'image'
+					});
+				};
+
+				//上传图片
+				function uploadHeadImg(imgPath) {
+					//服务端接口路径
+					var server = "http://120.27.222.26/app_user_info";
+					//获取图片元素
+					var files = document.getElementById('userImg');
+					console.log(files.src);
+					var wt = plus.nativeUI.showWaiting('上传中...');
+					var task = plus.uploader.createUpload(server, {
+							method: "POST",
+//							timeout:10
+						},
+						function(t, status) { //上传完成
+							if(status == 200) {
+								alert("上传成功:" + t.responseText);
+								wt.close(); //关闭等待提示按钮
+								document.getElementById('userImg').src = imgPath;
+							} else {
+								alert("上传失败:" + status);
+								wt.close(); //关闭等待提示按钮
+							}
+						}
+					);
+					//添加其他参数
+//					task.addData("name", "test");
+					task.addData("req", "change_photo");
+					task.addFile(imgPath, {
+						key: "file"
+					});
+					task.start();
+				}
+
+			});
+		</script>
+	</body>
+
+</html>

+ 253 - 0
home/register.html

@@ -0,0 +1,253 @@
+<!DOCTYPE html>
+<html lang="en">
+
+	<head>
+		<meta charset="UTF-8">
+		<meta charset="utf-8">
+		<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0, user-scalable=no">
+		<title>FrozenUI Demo</title>
+		<link rel="stylesheet" href="../css/mui.min.css">
+		<link rel="stylesheet" type="text/css" href="../css/reset.css" />
+		<link rel="stylesheet" href="../css/iconfont.css" />
+		<style type="text/css">
+			html {
+				height: 100%;
+			}
+			
+			body {
+				height: 100%;
+				background: #fff;
+			}
+			
+			.page {
+				height: 100%;
+				overflow: hidden;
+			}
+			
+			.logo {
+				text-align: center;
+				margin: 7rem 0 4.5rem;
+			}
+			.logo >img{
+				width: 40%;
+			}
+			
+			.logoCover {
+				width: 80%;
+				margin: 0 auto;
+			}
+			
+			.logoItem {
+				border-bottom: 1px solid #bbb;
+				position: relative;
+				height: 40px;
+				margin-bottom: 15px;
+			}
+			
+			.logoItem i {
+				font-size: 22px;
+				color: #22ace1;
+				vertical-align: middle;
+				position: absolute;
+				left: 0;
+				bottom: 8px;
+			}
+			#recordPwdIcon{
+				color: #22ace1;
+			}
+			.logoItem input {
+				background: transparent;
+				border: none;
+				padding: 0 0 4px 35px;
+				position: absolute;
+				left: 0;
+				bottom: 0;
+				margin: 0;
+			}
+			
+			.logoItem .unlock {
+				font-size: 29px;
+			}
+			
+			input::-webkit-input-placeholder {
+				color: #969696;
+			}
+			
+			input::-moz-placeholder {
+				/* Mozilla Firefox 19+ */
+				color: #969696;
+			}
+			
+			input:-moz-placeholder {
+				/* Mozilla Firefox 4 to 18 */
+				color: #969696;
+			}
+			
+			input:-ms-input-placeholder {
+				/* Internet Explorer 10-11 */
+				color: #969696;
+			}
+			
+			#forgetPwd,
+			#registerBtn,
+			.recordPwdLabel,
+			.logoItem input {
+				color: #bbb;
+			}
+			
+			#loginBtn,#registerBtn {
+				width: 100%;
+				/*line-height: 30px;*/
+				font-size: 18px;
+				letter-spacing: 6px;
+				border-radius: 6px;
+				margin: 20px 0 13px;    
+				color: #bbb;
+			}
+			#loginBtn:enabled:active{
+				color: #fff;
+    			border: 1px solid #39c7fc;
+    			background-color: #39c7fc !important;
+			}
+			
+			#loginBtn.btn-primary{
+				background-color: #05a0db;
+				border: 1px solid #12a5dc;
+				color: #fff;
+			}
+			/*记住密码*/
+			
+			.checkbox {
+				display: none;
+			}
+			
+			#addUser {
+				position: fixed;
+				left: 0;
+				right: 0;
+				bottom: 10px;
+				text-align: center;
+			}
+			
+			#sendnum{
+				position:absolute;
+				top: 0;
+				right: 0;
+				font-size: 14px;
+				padding: 5px;
+				min-width: 80px;
+			}
+			#sendnum.active{
+				background: transparent;
+			    border: 1px solid #b1b1b1;
+			    color: #bbb;
+			}
+		</style>
+	</head>
+
+	<body>
+		<div class="page">
+			<div class="logo">
+				<img src="../images/logoTxt.png" alt="云飞智能科技" />
+			</div>
+			<div class="logoCover">
+				<div class="logoInner">
+					<form action="" method="post">
+						<ul>
+							<li class="logoItem">
+								<i class="iconfont">&#xe636;</i>
+								<input type="tel" maxlength="11" id="user_phone" placeholder="请输入手机号" />
+							</li>
+							<li class="logoItem">
+								<i class="iconfont">&#xe637;</i>
+								<input type="number" maxlength="4" id="codenum" placeholder="请输入验证码" />
+								<button type="button" class="active" onclick="settime(this)" id="sendnum">获取验证码</button>
+							</li>
+							<li class="logoItem">
+								<i class="iconfont">&#xe689;</i>
+								<input type="password" id="password" placeholder="密码" />
+							</li>
+						</ul>
+						<input type="button" id="registerBtn" value="注册" />
+						<input type="button" id="loginBtn" value="登录" />
+					</form>
+				</div>
+			</div>
+		</div>
+
+	</body>
+	<script src="../js/jquery-2.1.0.js"></script>
+	<script src="../js/mui.min.js"></script>
+	<script>
+		mui.init();
+		var telRegExp = /^[1][3,4,5,7,8,9][0-9]{9}$/;
+		var countdown=60; 
+		function settime(obj) {
+			var telnum = $('#user_phone').val()
+			if(telRegExp.test(telnum)){
+			    if (countdown == 0) { 
+			        obj.removeAttribute("disabled");    
+			        obj.innerHTML="获取验证码"; 
+			        countdown = 60; 
+			        return;
+			    } else { 
+			        obj.setAttribute("disabled", true); 
+			        obj.innerHTML="重新发送(" + countdown + ")"; 
+			        countdown--; 
+			    } 
+				setTimeout(function() { 
+				    settime(obj) 
+				},1000) 
+			}else{
+				mui.toast('请输入正确手机号');
+			}
+		}
+		
+		$('#password').on('keyup',function(){
+			var telnum = $('#user_phone').val()
+			var codenum = $('#codenum').val()
+			var password = $('#password').val()
+			if(telRegExp.test(telnum) && codenum && (password.length>6)){
+				$('#logonBtn').addClass('active');
+			}else{
+				$('#logonBtn').removeClass('active');
+			}
+		})
+		
+		$('.logoInner').on('tap','#logonBtn.active',function(){
+			alert(1)
+		})
+		
+		$('#loginBtn').on('tap',function(){
+			mui.openWindow({
+				url:'login.html',
+				id:'login'
+			})
+		})
+		
+
+
+		//退出应用
+		mui.oldback = mui.back;
+		var clickNum = 0;
+		mui.back = function(event) {
+			clickNum++;
+			if(clickNum > 1) {
+				plus.runtime.quit();
+			} else {
+				mui.toast("再按一次退出应用");
+			}
+			setTimeout(function() {
+				clickNum = 0
+			}, 1000);
+			return false;
+		}
+		//测试网络
+		function networkinfo() {
+			if(plus.networkinfo.getCurrentType() == plus.networkinfo.CONNECTION_NONE) {
+				mui.toast("网络异常,请检查网络设置!");
+			}
+		}
+	</script>
+
+</html>

BIN
images/1.png


BIN
images/2.png


BIN
images/3.png


BIN
images/7.png


BIN
images/8.png


BIN
images/IDicon.png


BIN
images/admin.png


BIN
images/againLoad.png


BIN
images/allotEqueip.png


BIN
images/annular.png


+ 0 - 0
images/ant.jpg


Vissa filer visades inte eftersom för många filer har ändrats