lj 4 年 前
コミット
c6458751c8
100 ファイル変更9967 行追加0 行削除
  1. 53 0
      App.vue
  2. 83 0
      components/equip-item/equip-item.vue
  3. 96 0
      components/uni-icons/icons.js
  4. 57 0
      components/uni-icons/uni-icons.vue
  5. 224 0
      components/uni-nav-bar/uni-nav-bar.vue
  6. 25 0
      components/uni-status-bar/uni-status-bar.vue
  7. 30 0
      main.js
  8. 78 0
      manifest.json
  9. 122 0
      pages.json
  10. 385 0
      pages/cb/cbd/equip-set/equip-set.vue
  11. 472 0
      pages/cb/equip-detail/equip-detail.vue
  12. 147 0
      pages/cb/index/index.vue
  13. 52 0
      pages/index/index.vue
  14. 64 0
      pages/login/login.vue
  15. 117 0
      pages/my/about/about.vue
  16. 59 0
      pages/my/feedback/feedback.vue
  17. 77 0
      pages/my/user-info/user-info.vue
  18. 26 0
      pages/search/search.vue
  19. BIN
      static/font/iconfont.eot
  20. 38 0
      static/font/iconfont.svg
  21. BIN
      static/font/iconfont.ttf
  22. BIN
      static/font/iconfont.woff
  23. BIN
      static/font/iconfont.woff2
  24. BIN
      static/image/cb/0.png
  25. BIN
      static/image/cb/1.png
  26. BIN
      static/image/cb/2.png
  27. BIN
      static/image/cb/3.png
  28. BIN
      static/image/cb/4.png
  29. BIN
      static/image/cb/5.png
  30. BIN
      static/image/cb/6.png
  31. BIN
      static/image/cb/banner.jpg
  32. BIN
      static/image/cb/icon01.png
  33. BIN
      static/image/cb/icon02.png
  34. BIN
      static/image/cb/icon03.png
  35. BIN
      static/image/cb/icon04.png
  36. BIN
      static/image/cb/icon05.png
  37. BIN
      static/image/cb/icon06.png
  38. BIN
      static/image/cb/icon07.png
  39. BIN
      static/image/cb/icon08.png
  40. BIN
      static/image/cb/icon09.png
  41. BIN
      static/image/cb/icon10.png
  42. BIN
      static/image/cb/icon11.png
  43. BIN
      static/image/cb/icon12.png
  44. BIN
      static/image/cb/icon13.png
  45. BIN
      static/image/cb/icon14.png
  46. BIN
      static/image/cb/icon15.png
  47. BIN
      static/image/cb/icon16.png
  48. BIN
      static/image/cb/icon17.png
  49. BIN
      static/image/cb/offBg.png
  50. BIN
      static/image/cb/onBg.png
  51. BIN
      static/image/off.png
  52. BIN
      static/image/on.png
  53. BIN
      static/logo.png
  54. 77 0
      uni.scss
  55. 0 0
      unpackage/dist/dev/.automator/app-plus/.automator.json
  56. 0 0
      unpackage/dist/dev/.automator/mp-weixin/.automator.json
  57. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  58. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  59. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  60. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/equip-item/equip-item.js.map
  61. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-icons/uni-icons.js.map
  62. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-nav-bar/uni-nav-bar.js.map
  63. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-status-bar/uni-status-bar.js.map
  64. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/ddd/ddd.js.map
  65. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/equip-detail/equip-detail.js.map
  66. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/equip-item/equip-item.js.map
  67. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/index/index.js.map
  68. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  69. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/about/about.js.map
  70. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/feedback/feedback.js.map
  71. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/user-info/user-info.js.map
  72. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/search/search.js.map
  73. 1 0
      unpackage/dist/dev/app-plus/__uniappchooselocation.js
  74. 1 0
      unpackage/dist/dev/app-plus/__uniappes6.js
  75. 1 0
      unpackage/dist/dev/app-plus/__uniappopenlocation.js
  76. 1 0
      unpackage/dist/dev/app-plus/__uniapppicker.js
  77. 8 0
      unpackage/dist/dev/app-plus/__uniappquill.js
  78. 1 0
      unpackage/dist/dev/app-plus/__uniappquillimageresize.js
  79. 1 0
      unpackage/dist/dev/app-plus/__uniappscan.js
  80. BIN
      unpackage/dist/dev/app-plus/__uniappsuccess.png
  81. 25 0
      unpackage/dist/dev/app-plus/__uniappview.html
  82. 8 0
      unpackage/dist/dev/app-plus/app-config-service.js
  83. 154 0
      unpackage/dist/dev/app-plus/app-config.js
  84. 3215 0
      unpackage/dist/dev/app-plus/app-service.js
  85. 4214 0
      unpackage/dist/dev/app-plus/app-view.js
  86. 1 0
      unpackage/dist/dev/app-plus/manifest.json
  87. BIN
      unpackage/dist/dev/app-plus/static/font/iconfont.eot
  88. 38 0
      unpackage/dist/dev/app-plus/static/font/iconfont.svg
  89. BIN
      unpackage/dist/dev/app-plus/static/font/iconfont.ttf
  90. BIN
      unpackage/dist/dev/app-plus/static/font/iconfont.woff
  91. BIN
      unpackage/dist/dev/app-plus/static/font/iconfont.woff2
  92. BIN
      unpackage/dist/dev/app-plus/static/image/cb/0.png
  93. BIN
      unpackage/dist/dev/app-plus/static/image/cb/1.png
  94. BIN
      unpackage/dist/dev/app-plus/static/image/cb/2.png
  95. BIN
      unpackage/dist/dev/app-plus/static/image/cb/3.png
  96. BIN
      unpackage/dist/dev/app-plus/static/image/cb/4.png
  97. BIN
      unpackage/dist/dev/app-plus/static/image/cb/5.png
  98. BIN
      unpackage/dist/dev/app-plus/static/image/cb/6.png
  99. BIN
      unpackage/dist/dev/app-plus/static/image/cb/banner.jpg
  100. 0 0
      unpackage/dist/dev/app-plus/static/image/cb/icon01.png

ファイルの差分が大きいため隠しています
+ 53 - 0
App.vue


+ 83 - 0
components/equip-item/equip-item.vue

@@ -0,0 +1,83 @@
+<template>
+	<view class="item">
+		<template v-if="$attrs.item.device_status==1">
+			<view class="tag tag-on" ></view>
+		</template>
+		<template v-else>
+			<view class="tag tag-off" ></view>
+		</template>
+		<view class="info">
+			<text class="">设备ID:{{$attrs.item.device_id}}</text>
+			<text v-if="$attrs.item.device_status==1" class="state on">在线</text>
+			<text v-else  class="state off">离线</text>
+		</view>
+		<view class="date">
+			最新上报时间:{{$attrs.item.status_time|timeFormat}}
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				tagOn:'../../static/image/tab-on.png',
+				tagOff:'../../static/image/tab-off.png',
+			}
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style lang="scss">
+	.item {
+		background: #fff;
+		margin-top: 20rpx;
+		padding: 10rpx 30rpx;
+		padding-left:80rpx;
+		border-radius: 4rpx;
+		box-shadow: 0 0 4px 2px rgba(0, 0, 10, 0.05);
+		line-height: 60rpx;
+		position: relative;
+		.tag {
+			position: absolute;
+			width: 30rpx;
+			height: 60rpx;
+			top: 0;
+			left: 20rpx;
+			background-repeat: no-repeat;
+			background-size:100% auto;
+			background-position: top left;
+		}
+
+		.tag-on {
+			 background-image:url('~@/static/image/on.png');
+		}
+
+		.tag-off {
+			  background-image:url('~@/static/image/off.png');
+		}
+
+		.info {
+			border-bottom: 1px solid #F5F5F5;
+			color: #333;
+			font-size: 28rpx;
+			display: flex;
+			justify-content: space-between;
+			.on {
+				color: $uni-color-success;
+			}
+			.off{
+				color:$uni-color-error;
+			}
+
+		}
+
+		.date {
+			color: #999;
+			font-size: 24rpx;
+		}
+	}
+</style>

+ 96 - 0
components/uni-icons/icons.js

@@ -0,0 +1,96 @@
+export default {
+	'contact': '\ue100',
+	'person': '\ue101',
+	'personadd': '\ue102',
+	'contact-filled': '\ue130',
+	'person-filled': '\ue131',
+	'personadd-filled': '\ue132',
+	'phone': '\ue200',
+	'email': '\ue201',
+	'chatbubble': '\ue202',
+	'chatboxes': '\ue203',
+	'phone-filled': '\ue230',
+	'email-filled': '\ue231',
+	'chatbubble-filled': '\ue232',
+	'chatboxes-filled': '\ue233',
+	'weibo': '\ue260',
+	'weixin': '\ue261',
+	'pengyouquan': '\ue262',
+	'chat': '\ue263',
+	'qq': '\ue264',
+	'videocam': '\ue300',
+	'camera': '\ue301',
+	'mic': '\ue302',
+	'location': '\ue303',
+	'mic-filled': '\ue332',
+	'speech': '\ue332',
+	'location-filled': '\ue333',
+	'micoff': '\ue360',
+	'image': '\ue363',
+	'map': '\ue364',
+	'compose': '\ue400',
+	'trash': '\ue401',
+	'upload': '\ue402',
+	'download': '\ue403',
+	'close': '\ue404',
+	'redo': '\ue405',
+	'undo': '\ue406',
+	'refresh': '\ue407',
+	'star': '\ue408',
+	'plus': '\ue409',
+	'minus': '\ue410',
+	'circle': '\ue411',
+	'checkbox': '\ue411',
+	'close-filled': '\ue434',
+	'clear': '\ue434',
+	'refresh-filled': '\ue437',
+	'star-filled': '\ue438',
+	'plus-filled': '\ue439',
+	'minus-filled': '\ue440',
+	'circle-filled': '\ue441',
+	'checkbox-filled': '\ue442',
+	'closeempty': '\ue460',
+	'refreshempty': '\ue461',
+	'reload': '\ue462',
+	'starhalf': '\ue463',
+	'spinner': '\ue464',
+	'spinner-cycle': '\ue465',
+	'search': '\ue466',
+	'plusempty': '\ue468',
+	'forward': '\ue470',
+	'back': '\ue471',
+	'left-nav': '\ue471',
+	'checkmarkempty': '\ue472',
+	'home': '\ue500',
+	'navigate': '\ue501',
+	'gear': '\ue502',
+	'paperplane': '\ue503',
+	'info': '\ue504',
+	'help': '\ue505',
+	'locked': '\ue506',
+	'more': '\ue507',
+	'flag': '\ue508',
+	'home-filled': '\ue530',
+	'gear-filled': '\ue532',
+	'info-filled': '\ue534',
+	'help-filled': '\ue535',
+	'more-filled': '\ue537',
+	'settings': '\ue560',
+	'list': '\ue562',
+	'bars': '\ue563',
+	'loop': '\ue565',
+	'paperclip': '\ue567',
+	'eye': '\ue568',
+	'arrowup': '\ue580',
+	'arrowdown': '\ue581',
+	'arrowleft': '\ue582',
+	'arrowright': '\ue583',
+	'arrowthinup': '\ue584',
+	'arrowthindown': '\ue585',
+	'arrowthinleft': '\ue586',
+	'arrowthinright': '\ue587',
+	'pulldown': '\ue588',
+	'closefill': '\ue589',
+	'sound': '\ue590',
+	'scan': '\ue612'
+}

ファイルの差分が大きいため隠しています
+ 57 - 0
components/uni-icons/uni-icons.vue


+ 224 - 0
components/uni-nav-bar/uni-nav-bar.vue

@@ -0,0 +1,224 @@
+<template>
+	<view class="uni-navbar">
+		<view :class="{ 'uni-navbar--fixed': fixed, 'uni-navbar--shadow': shadow, 'uni-navbar--border': border }" :style="{ 'background-color': backgroundColor }"
+		 class="uni-navbar__content">
+			<uni-status-bar v-if="statusBar" />
+			<view :style="{ color: color,backgroundColor: backgroundColor }" class="uni-navbar__header uni-navbar__content_view">
+				<view @tap="onClickLeft" class="uni-navbar__header-btns uni-navbar__header-btns-left uni-navbar__content_view">
+					<view class="uni-navbar__content_view" v-if="leftIcon.length">
+						<uni-icons :color="color" :type="leftIcon" size="24" />
+					</view>
+					<view :class="{ 'uni-navbar-btn-icon-left': !leftIcon.length }" class="uni-navbar-btn-text uni-navbar__content_view"
+					 v-if="leftText.length">
+						<text :style="{ color: color, fontSize: '14px' }">{{ leftText }}</text>
+					</view>
+					<slot name="left" />
+				</view>
+				<view class="uni-navbar__header-container uni-navbar__content_view">
+					<view class="uni-navbar__header-container-inner uni-navbar__content_view" v-if="title.length">
+						<text class="uni-nav-bar-text" :style="{color: color }">{{ title }}</text>
+					</view>
+					<!-- 标题插槽 -->
+					<slot />
+				</view>
+				<view :class="title.length ? 'uni-navbar__header-btns-right' : ''" @tap="onClickRight" class="uni-navbar__header-btns uni-navbar__content_view">
+					<view class="uni-navbar__content_view" v-if="rightIcon.length">
+						<uni-icons :color="color" :type="rightIcon" size="24" />
+					</view>
+					<!-- 优先显示图标 -->
+					<view class="uni-navbar-btn-text uni-navbar__content_view" v-if="rightText.length && !rightIcon.length">
+						<text class="uni-nav-bar-right-text">{{ rightText }}</text>
+					</view>
+					<slot name="right" />
+				</view>
+			</view>
+		</view>
+		<view class="uni-navbar__placeholder" v-if="fixed">
+			<uni-status-bar v-if="statusBar" />
+			<view class="uni-navbar__placeholder-view" />
+		</view>
+	</view>
+</template>
+
+<script>
+	import uniStatusBar from "../uni-status-bar/uni-status-bar.vue";
+	import uniIcons from "../uni-icons/uni-icons.vue";
+
+	export default {
+		name: "UniNavBar",
+		components: {
+			uniStatusBar,
+			uniIcons
+		},
+		props: {
+			title: {
+				type: String,
+				default: ""
+			},
+			leftText: {
+				type: String,
+				default: ""
+			},
+			rightText: {
+				type: String,
+				default: ""
+			},
+			leftIcon: {
+				type: String,
+				default: ""
+			},
+			rightIcon: {
+				type: String,
+				default: ""
+			},
+			fixed: {
+				type: [Boolean, String],
+				default: false
+			},
+			color: {
+				type: String,
+				default: "#000000"
+			},
+			backgroundColor: {
+				type: String,
+				default: "#FFFFFF"
+			},
+			statusBar: {
+				type: [Boolean, String],
+				default: false
+			},
+			shadow: {
+				type: [String, Boolean],
+				default: false
+			},
+			border: {
+				type: [String, Boolean],
+				default: true
+			}
+		},
+        mounted() {
+          if(uni.report && this.title !== '') {
+              uni.report('title', this.title)
+          }
+        },
+		methods: {
+			onClickLeft() {
+				this.$emit("clickLeft");
+			},
+			onClickRight() {
+				this.$emit("clickRight");
+			}
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	$nav-height: 44px;
+	.uni-nav-bar-text {
+		/* #ifdef APP-PLUS */
+		font-size: 34rpx;
+		/* #endif */
+		/* #ifndef APP-PLUS */
+		font-size: $uni-font-size-lg;
+		/* #endif */
+	}
+	.uni-nav-bar-right-text {
+		font-size: $uni-font-size-base;
+	}
+
+	.uni-navbar {
+		width: 750rpx;
+	}
+
+	.uni-navbar__content {
+		position: relative;
+		width: 750rpx;
+		background-color: $uni-bg-color;
+		overflow: hidden;
+	}
+
+	.uni-navbar__content_view {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		align-items: center;
+		flex-direction: row;
+		// background-color: #FFFFFF;
+	}
+
+	.uni-navbar__header {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		width: 750rpx;
+		height: $nav-height;
+		line-height: $nav-height;
+		font-size: 16px;
+		// background-color: #ffffff;
+	}
+
+	.uni-navbar__header-btns {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-wrap: nowrap;
+		width: 120rpx;
+		padding: 0 6px;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.uni-navbar__header-btns-left {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		width: 150rpx;
+		justify-content: flex-start;
+	}
+
+	.uni-navbar__header-btns-right {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		width: 150rpx;
+		padding-right: 30rpx;
+		justify-content: flex-end;
+	}
+
+	.uni-navbar__header-container {
+		flex: 1;
+	}
+
+	.uni-navbar__header-container-inner {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex: 1;
+		align-items: center;
+		justify-content: center;
+		font-size: $uni-font-size-base;
+	}
+
+
+	.uni-navbar__placeholder-view {
+		height: $nav-height;
+	}
+
+	.uni-navbar--fixed {
+		position: fixed;
+		z-index: 998;
+	}
+
+	.uni-navbar--shadow {
+		/* #ifndef APP-NVUE */
+		box-shadow: 0 1px 6px #ccc;
+		/* #endif */
+	}
+
+	.uni-navbar--border {
+		border-bottom-width: 1rpx;
+		border-bottom-style: solid;
+		border-bottom-color: $uni-border-color;
+	}
+</style>

+ 25 - 0
components/uni-status-bar/uni-status-bar.vue

@@ -0,0 +1,25 @@
+<template>
+	<view :style="{ height: statusBarHeight }" class="uni-status-bar">
+		<slot />
+	</view>
+</template>
+
+<script>
+	var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px'
+	export default {
+		name: 'UniStatusBar',
+		data() {
+			return {
+				statusBarHeight: statusBarHeight
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.uni-status-bar {
+		width: 750rpx;
+		height: 20px;
+		// height: var(--status-bar-height);
+	}
+</style>

+ 30 - 0
main.js

@@ -0,0 +1,30 @@
+import Vue from 'vue'
+import App from './App'
+import uView from "uview-ui"
+Vue.use(uView)
+import {myRequest} from './util/api.js'
+Vue.prototype.$myRequest=myRequest
+
+Vue.config.productionTip = false
+
+App.mpType = 'app'
+
+
+Vue.filter('timeFormat',function(time){
+	function fun(a){
+		return	String(a).length==1?'0'+a: a
+	}
+	let date= new Date(time*1000)
+	let y=date.getFullYear()
+	let m=date.getMonth()+1
+	let d=date.getDate()
+	let h=date.getHours()
+	let min=date.getMinutes()
+	let sec=date.getSeconds()
+	return `${y}-${fun(m)}-${fun(d)} ${fun(h)}:${fun(min)}:${fun(sec)}`
+})
+
+const app = new Vue({
+    ...App
+})
+app.$mount()

+ 78 - 0
manifest.json

@@ -0,0 +1,78 @@
+{
+    "name" : "bigDataa",
+    "appid" : "__UNI__7580508",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics": {  
+        "enable": false
+    }
+}

+ 122 - 0
pages.json

@@ -0,0 +1,122 @@
+{
+	"easycom": {
+		"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
+	},
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "uni-app"
+			}
+		}
+	    ,{
+            "path" : "pages/my/about/about",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "关于",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/cb/index/index",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "测报系统",
+                "enablePullDownRefresh": true,
+				"navigationStyle":"custom"
+            }
+        }
+        ,{
+            "path" : "pages/my/user-info/user-info",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "个人信息",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/my/feedback/feedback",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "反馈",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/search/search",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"app-plus":{
+					"bounce": "none",
+					"titleNView":{
+						"searchInput":{
+							"autoFocus":true,
+							"align":"center",
+							"placeholder":"输入设备号搜索",
+							"borderRadius":"50px",
+							"backgroundColor":"#E4E4E4",
+							"placeholderColor":"#333"
+						}
+					}
+				}
+            }
+            
+        }
+        ,{
+            "path" : "pages/cb/equip-detail/equip-detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "设备详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/login/login",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false,
+				"navigationStyle":"custom"
+            }
+            
+        }
+        ,{
+            "path" : "pages/cb/cbd/equip-set/equip-set",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "设备控制",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
+	"condition": { //模式配置,仅开发期间生效
+	    "current": 3, //当前激活的模式(list 的索引项)
+	    "list": [{
+			"name": "about",
+            "path" : "pages/my/about/about"
+        },{
+			"name":"feedback",
+			"path" : "pages/my/feedback/feedback"
+		},{
+			"name":"cdIndex",
+			"path" : "pages/cb/index/index"
+		},{
+			"name":"login",
+			"path" : "pages/login/login"
+		}
+	    ]
+	},
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "大数据平台",
+		"navigationBarBackgroundColor": "#fff",
+		"backgroundColor": "#ff0000"
+	}
+}

+ 385 - 0
pages/cb/cbd/equip-set/equip-set.vue

@@ -0,0 +1,385 @@
+<template>
+	<view>
+		<view class="tit adminTit">
+			联网模块
+		</view>
+		<view class="btns">
+			 <button type="warn" size="mini">升级</button>
+			 <button type="warn" size="mini">重启</button>
+			 <button type="warn" size="mini">MQTT配置</button>
+		</view>
+		<view class="tit adminTit">
+			板子设置
+		</view>
+		<view class="btns">
+			 <button type="warn" size="mini">查看原始IMEI</button>
+			 <button type="warn" size="mini">更改IMEI</button>
+		</view>
+		<view class="tit adminTit">
+			强制操作
+		</view>
+		<view class="btns">
+			<button type="warn" size="mini">拍照</button>
+			<button type="warn" size="mini">升级</button>
+			<button type="warn" size="mini">重启</button>
+			<button type="warn" size="mini">震动关闭</button>
+			<button type="warn" size="mini">震动开启</button>
+		</view>
+		<view class="tit">
+			设备开关
+		</view>
+		<view class="uni-list-cell">
+			 <picker @change="turnChange($event,'ds')" value="equipContrlForm.ds" :range="dsArr">
+				<text class="uni-input">{{dsArr[equipContrlForm.ds]}}</text>
+				<view class="arrow"></view>
+			</picker>
+		</view>
+		<view class="tit">
+			工作模式
+		</view>
+		<view class="uni-list-cell">
+			 <picker @change="turnChange($event,'ws')" :value="equipContrlForm.ws" :range="wsArr">
+				<text class="uni-input">{{wsArr[equipContrlForm.ws]}}</text>
+				<view class="arrow"></view>
+			</picker>
+		</view>
+		<view class="tit">
+			定时模式
+		</view>
+		<view class="uni-list-cell">
+			 <picker @change="turnChange($event,'ts')" :value="equipContrlForm.ts" :range="tsArr">
+				<text class="uni-input">{{tsArr[equipContrlForm.ts]}}</text>
+				<view class="arrow"></view>
+			</picker>
+		</view>
+		<template v-if="equipContrlForm.ts==0">
+			<view class="tit">
+				定时时长(h)
+			</view>
+			<view class="">
+				<slider :value="equipContrlForm.tt" show-value="true" :min="1" :max="10" @change="sliderChange($event,'tt')"  block-color="#57C878" activeColor="#57C878" step="1" />
+		</view>
+		</template>
+		<template v-if="equipContrlForm.ts==1">
+			<view class="tit">
+				开始结束时间
+			</view>
+			<view class="selectTime">
+				<view class="uni-list-cell time" @click="selectTime('st')">
+					<text>{{stLabel}}</text>
+					<u-icon name="clock"></u-icon>
+				</view>
+				<text class="line">-</text>
+				<view class="uni-list-cell time" @click="selectTime('et')">
+					<text>{{etLabel}}</text>
+					<u-icon name="clock"></u-icon>
+				</view>
+			</view>
+			<u-select v-model="stShow" mode="single-column" :list="list" @confirm="stConfirm"></u-select>
+			<u-select v-model="etShow" mode="single-column" :list="list" @confirm="etConfirm"></u-select>
+		</template>
+		<view class="tit">
+			落虫时间(min)
+		</view>
+		<view class="">
+			<slider :value="equipContrlForm.collt" show-value="true" :min="1" :max="20" @change="sliderChange($event,'collt')"  block-color="#57C878" activeColor="#57C878" step="1" />
+		</view>
+		<view class="tit">
+			加热时间(min)
+		</view>
+		<view class="">
+			<slider :value="equipContrlForm.htim" show-value="true" :min="1" :max="20" @change="sliderChange($event,'htim')" block-color="#57C878" activeColor="#57C878" step="1" />
+		</view>
+		<view class="tit">
+			加热温度(℃)
+		</view>
+		<view class="">
+			<slider :value="equipContrlForm.hst" show-value="true" :min="75" :max="120" @change="sliderChange($event,'hst')"  block-color="#57C878" activeColor="#57C878" step="1" />
+		</view>
+		<view class="tit">
+			高温保护阈值(℃)
+		</view>
+		<view class=""> 
+			<slider :value="equipContrlForm.tph" show-value="true" :min="50" :max="70" @change="sliderChange($event,'tph')" block-color="#57C878" activeColor="#57C878" step="1" />
+		</view>
+		<view class="tit">
+			低温保护阈值(℃)
+		</view>
+		<view class="">
+			<slider :value="equipContrlForm.tpl" show-value="true" :min="1" :max="10" @change="sliderChange($event,'tpl')" block-color="#57C878" activeColor="#57C878" step="1" />
+		</view>
+		<view class="tit">
+			数据上传间隔(min)
+		</view>
+		<view class="">
+			<slider :value="equipContrlForm.datt" show-value="true" :min="10" :max="60" @change="sliderChange($event,'datt')" block-color="#57C878" activeColor="#57C878" step="1" />
+		</view>
+		<view class="submit-box">
+			<u-button  @click="submit" type="success">确定</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				d_id:'',
+				dsArr:['开机','关机'],
+				dsIndex:0,
+				wsArr:['待机','工作'],
+				wsIndex:0,
+				tsArr:['光控','时控'],
+				tsIndex:0,
+				imgresArr:['高','中','低'],
+				imgresIndex:"",
+				equipContrlForm:{
+					ds:0,//设备开关
+					ws:0,//工作模式
+					ts:0,//定时模式
+					tt:1,//定时时长
+					collt: 1,
+					htim: 1,
+					hst: 75,
+					tph: 50,
+					tpl: 1,
+					datt: 10,
+					st: null,
+					et: null,
+				},
+				stShow:false,
+				etShow:false,
+				stLabel:'00:00',
+				etLabel:'00:00',
+				list:[
+					{
+					value:0,
+					label:'00:00'
+					},
+					{
+					value:1,
+					label:'01:00'
+					},
+					{
+					value:2,
+					label:'02:00'
+					},
+					{
+					value:3,
+					label:'03:00'
+					},
+					{
+					value:4,
+					label:'04:00'
+					},
+					{
+					value:5,
+					label:'05:00'
+					},
+					{
+					value:6,
+					label:'06:00'
+					},
+					{
+					value:7,
+					label:'04:00'
+					},	{
+					value:8,
+					label:'08:00'
+					},
+					{
+					value:9,
+					label:'09:00'
+					},
+					{
+					value:10,
+					label:'10:00'
+					},
+					{
+					value:11,
+					label:'11:00'
+					},
+					{
+					value:12,
+					label:'12:00'
+					},
+					{
+					value:13,
+					label:'13:00'
+					},
+					{
+					value:14,
+					label:'14:00'
+					},	{
+					value:15,
+					label:'15:00'
+					},
+					{
+					value:16,
+					label:'16:00'
+					},
+					{
+					value:17,
+					label:'17:00'
+					},
+					{
+					value:18,
+					label:'18:00'
+					},
+					{
+					value:19,
+					label:'19:00'
+					},
+					{
+					value:20,
+					label:'20:00'
+					},
+					{
+					value:21,
+					label:'21:00'
+					},	{
+					value:22,
+					label:'22:00'
+					},
+					{
+					value:23,
+					label:'23:00'
+					},
+				]
+			}
+		},
+		onLoad(option){
+			this.d_id=option.d_id
+			this.getInfo()
+		},
+		methods: {
+			turnChange(e,a){
+				if(a=='ds'){
+					// this.dsIndex = e.target.value
+					this.equipContrlForm.ds=e.target.value 
+				}else if(a=='ws'){
+					// this.wsIndex = e.target.value
+					this.equipContrlForm.ws=e.target.value
+				}else if(a=='ts'){
+					// this.tsIndex = e.target.value
+					this.equipContrlForm.ts=e.target.value
+				}
+			},
+			stConfirm(e){
+				this.stLabel=e[0].label
+				this.equipContrlForm.st=e[0].value
+			},
+			etConfirm(e){
+				this.etLabel=e[0].label
+				this.equipContrlForm.et=e[0].value
+			},
+			selectTime(a){
+				if(a=='st'){
+					this.stShow=true;
+				}else{
+					this.etShow=true;
+				}
+			},
+			sliderChange(e,a){
+				let val=e.detail.value
+				switch(a){
+					case 'tt':
+						this.equipContrlForm.tt=val;
+						break;
+					case 'collt':
+						this.equipContrlForm.collt=val;
+						break;
+					case 'htim':
+						this.equipContrlForm.htim=val;
+						break;
+					case 'hst':
+						this.equipContrlForm.hst=val;
+						break;
+					case 'tph':
+						this.equipContrlForm.tph=val;
+						break;
+					case 'tpl':
+						this.equipContrlForm.tpl=val;
+						break;
+					case 'datt':
+						this.equipContrlForm.datt=val;
+						break;
+				}
+			},
+			async getInfo(){
+				let res=await this.$myRequest({
+					url:'/api/api_gateway?method=forecast.send_control.device_control_info',
+					data:{
+						d_id:this.d_id,
+						cmd: 'paramconf'
+					}
+				})
+				this.equipContrlForm=res
+				console.log(res)
+			},
+			async submit(){
+				console.log(this.equipContrlForm)
+				let res=await this.$myRequest({
+					url:'/api/api_gateway?method=forecast.send_control.device_control',
+					data:{
+						device_type_id:'',
+						d_id: this.d_id,
+						config: JSON.stringify(this.equipContrlForm)
+					}
+				})
+			}
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		padding:20rpx;
+		.tit{
+			line-height:30rpx;
+			font-size:30rpx;
+			padding-left:20rpx;
+			border-left-width:2px;
+			border-left-style: solid;
+			border-left-color:$uni-color-success;
+			margin:30rpx 0;
+			}
+		.adminTit{border-left-color:#e64340;}
+		.btns{
+			display:flex;
+			justify-content: flex-start;
+			flex-wrap:no-wrap;
+			button{margin:0;margin-right:10rpx;padding:0 25rpx;}
+		}
+		.uni-list-cell{
+			background:#F7F8FA;
+			padding:10rpx 40rpx;
+			font-size:28rpx;
+			.arrow{
+				display:inline-block;
+				border-width:12rpx 8rpx ;
+				border-style: solid;
+				float:right;
+				margin-top:10rpx;
+				border-color:#888 transparent transparent transparent;
+			}
+		}
+		.selectTime{
+			display:flex;
+			.time{
+				width:350rpx;
+				display:flex;
+				justify-content: space-between;
+			}
+			.line{width:50rpx;text-align: center;}
+		}
+		.submit-box{
+			margin-top:60rpx
+		}
+
+  
+	}
+	
+
+</style>

+ 472 - 0
pages/cb/equip-detail/equip-detail.vue

@@ -0,0 +1,472 @@
+<template>
+	<view>
+		<view :class="['info',equipInfo.device_status==1?'on':'off']">
+			<view class="">
+				设备ID:{{equipInfo.device_id}}
+			</view>
+			<view class="">
+				设备名称:{{equipInfo.device_name}}
+			</view>
+			<view class="">
+				设备类型:{{equipInfo.type|equipType}}
+			</view>
+			<view class="">
+				最近上报时间:{{equipInfo.status_time | timeFormat}}
+			</view>
+			<view class="">
+				设备地址:{{equipInfo.address}}
+			</view>
+		</view>
+		<view class="equip_part">
+			<template v-if="equipInfo.type==7">
+				<view  class="item1" v-for="item in bzy" @click="partClick(item.path)">
+					<image :src="item.icon" mode="widthFix"></image>
+					<view class="">
+						{{item.tex}}
+					</view>
+				</view>
+			</template>
+			<template v-else>
+				<view  class="item2" v-for="item in curEquip" @click="partClick(item.path)">
+					<image :src="item.icon" mode="widthFix"></image>
+					<view class="">
+						{{item.tex}}
+					</view>
+				</view>
+			</template>
+		</view>
+		<view class="tit">
+			实时数据
+		</view>
+		<view class="newState">
+			<view class="item" v-for="item in curState">
+				<image :src="item.icon" mode="widthFix"></image>
+				<view class="info-con">
+					<view class="active">
+						{{item.txt}}
+					</view>
+					<view class="val" >
+						{{item.value | formatValue(item.txt,type)}}
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				type:null,//设备类型
+				device_status:null,
+				equipInfo:{},
+				cbd:[
+					{
+						icon:'/static/image/cb/1.png',
+						tex:'查看图片',
+						path:'',
+					},	{
+						icon:'/static/image/cb/2.png',
+						tex:'历史数据',
+						path:'',
+					},	{
+						icon:'/static/image/cb/3.png',
+						tex:'害虫统计',
+						path:'',
+					},	{
+						icon:'/static/image/cb/4.png',
+						tex:'设备控制',
+						path:'/pages/cb/cbd/equip-set/equip-set',
+					},	{
+						icon:'/static/image/cb/5.png',
+						tex:'短信预警',
+						path:'',
+					},	{
+						icon:'/static/image/cb/6.png',
+						tex:'sim卡详情',
+						path:'',
+					}
+				],
+				bzy:[
+					{
+						icon:'/static/image/cb/4.png',
+						tex:'设备控制',
+						path:''
+					},{
+						icon:'/static/image/cb/1.png',
+						tex:'查看图片',
+						path:''
+					},{
+						icon:'/static/image/cb/2.png',
+						tex:'历史数据',
+						path:''
+					},{
+						icon:'/static/image/cb/6.png',
+						tex:'sim卡详情',
+						path:''
+					}
+				],
+				xy:[
+					{
+						icon:'/static/image/cb/4.png',
+						tex:'设备控制',
+						path:''
+					},{
+						icon:'/static/image/cb/6.png',
+						tex:'sim卡详情',
+						path:''
+					},{
+						icon:'/static/image/cb/2.png',
+						tex:'历史数据',
+						path:''
+					}
+				],
+				newState:{},//设备最新状态
+			}
+		},
+		computed:{
+			curEquip(){
+				switch(this.type){
+					case 3:
+						return this.cbd;
+					case 7:
+						return this.bzy;
+					case 4:
+						return this.xy
+				}
+			},
+			curState(){
+				switch(this.type){
+					case 3:
+						let blbs=""//灯管状态
+						  if (this.newState.lamp != undefined) {
+							if (this.newState.ws == 1) {
+							  if (this.newState.lamp == 1) {
+								blbs = "工作中";
+							  } else if (dht.lux == 0) {
+								blbs = "N/A(未检测到传感器)";
+							  } else {
+								blbs = "异常";
+							  }
+							} else {
+							  blbs = "关闭";
+							}
+						  } else {
+							blbs = "--";
+						  }
+						return [
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'在线状态',
+						value:this.device_status==1?'在线':'离线',
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'开关状态',
+						value:this.newState.ds==1?'关机':'开机'
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'通道状态',
+						value:this.newState.upds==1?'落虫':'排水'
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'加热状态',
+						value:this.newState.hs==1?'加热':'正常'
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'环境温度(℃)',
+						value:this.newState.at
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'环境湿度(%)',
+						value:this.newState.ah
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'信号强度',
+						value:this.newState.csq
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'设备版本',
+						value:this.newState.dver
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'雨控状态',
+						value:this.newState.rps==1?"雨控":'正常'
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'温控状态',
+						value:this.newState.tps==1?"温控":'正常'
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'光控状态',
+						value:this.newState.lps==1?"光控":'正常'
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'灯管状态',
+						value:blbs
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'上仓门',
+						value:this.newState.upds==1?"打开":'关闭'
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'下仓门',
+						value:this.newState.dnds==1?"打开":'关闭'
+						}
+					]
+					case 7:
+						return [{
+						icon:'/static/image/cb/icon02.png',
+						txt:'在线状态',
+						value:this.device_status==1?'在线':'离线',
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'设备开关',
+						value:this.newState.on_off==1?'开启':'关闭'
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'摄像头状态',
+						value:this.newState.usb_sta==1?'异常':'正常'
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'当前电压',
+						value:this.newState.v_bat
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'环境温度(℃)',
+						value:this.newState.at
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'环境湿度(%)',
+						value:this.newState.ah
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'信号强度',
+						value:this.newState.csq
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'已培养时间',
+						value:this.newState.staytime
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'设备版本',
+						value:this.newState.dver
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'保温仓当前温度',
+						value:this.newState.dver
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'保温仓设定温度',
+						value:this.newState.dver
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'经度',
+						value:this.newState.lng
+						},{
+						icon:'/static/image/cb/icon02.png',
+						txt:'纬度',
+						value:this.newState.lat
+						},];
+					case 4:
+						return [{
+						icon:'/static/image/cb/icon02.png',
+						txt:'在线状态',
+						value:this.device_status==1?'在线':'离线',
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'设备开关',
+						value:this.newState.ds==1?'开启':'关闭'
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'工作状态',
+						value:this.newState.ws==1?'工作':' 待机'
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'环境温度(℃)',
+						value:this.newState.at
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'环境湿度(%)',
+						value:this.newState.ah
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'充电电压',
+						value:this.newState.cv
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'电池电压',
+						value:this.newState.bv
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'信号强度',
+						value:this.newState.csq
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'设备版本',
+						value:this.newState.dver
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'充电状态',
+						value:this.newState.cs==1?'充电':'正常'
+						},
+						{
+						icon:'/static/image/cb/icon02.png',
+						txt:'电池状态',
+						value:this.newState.bs
+						},
+						]
+				}
+			}
+		},
+		filters:{
+			equipType(type){
+				switch(type){
+					case 3:
+						return "虫情测报灯";
+					case 7:
+						return "孢子仪";
+					case 4:
+						return "性诱测报"
+					
+				}
+			},
+			formatValue(val,a1,a2){
+				if(a2==4&&a1=="电池状态"){
+					switch(val){
+						case 0:
+							return '正常';
+							break;
+						case 1:
+							return '欠压';
+							break;
+						case 2:
+							return '过压';
+							break;
+					}
+				}else{
+					
+					return val?val:'无'
+				}
+			}
+		},
+		onLoad(option){
+			this.equipInfo=JSON.parse(option.info)
+			this.type=this.equipInfo.type
+			this.device_status=this.equipInfo.device_status
+			this.getState()
+			console.log(this.equipInfo)
+		},
+		methods: {
+			async getState(){
+				const res=await this.$myRequest({
+					url:'/api/api_gateway?method=forecast.worm_lamp.device_history_data',
+					data:{
+						device_type_id:this.equipInfo.type,
+						device_id:this.equipInfo.device_id,
+						page: 1,
+						page_size:1,
+					}
+				})
+				this.newState=res.data[0].d_h_t
+			},
+			partClick(path){
+				console.log(this.equipInfo)
+				uni.navigateTo({
+					url:path+ '?d_id=' + this.equipInfo.d_id
+				});
+			}
+		},
+	}
+</script>
+
+<style lang='scss'>
+	page{
+		padding:20rpx;
+ 	.info{
+			padding:20rpx 40rpx;
+			color:#fff;
+			line-height:50rpx;
+			font-size:26rpx;
+			background-size:100% auto;
+			background-repeat: no-repeat;
+			background-color:#0DC6B6;
+			background-position:  top left;
+		}
+		.on{
+			background-image:url('../../../static/image/cb/onBg.png')
+		}
+		.off{
+			background-image:url('../../../static/image/cb/offBg.png')
+		}
+		.equip_part{
+			display:flex;
+			flex-wrap:wrap;
+			text-align: center;
+			font-size:28rpx;
+			color:#666;
+			line-height:50rpx;
+			image{
+				width:52rpx;
+				}
+			.item1{
+				padding:20rpx 10rpx;
+				box-sizing: border-box;
+				flex-basis:25%;
+			}
+			.item2{
+				padding:20rpx;
+				box-sizing: border-box;
+				flex-basis:33%;
+				flex-grow:1;
+			}
+		}
+		.tit{
+			font-weight:800;
+			line-height:50rpx;
+			font-size:30rpx;
+			margin-bottom:20rpx;
+			}
+		.newState{
+			display:flex;
+			flex-wrap:wrap;
+			text-align: center;
+			margin:0 -10rpx;
+			.item{
+				display:flex;
+				flex-wrap: wrap;
+ 				margin:10rpx;
+				width: 345rpx;
+				justify-content:flex-start;
+				padding:20rpx;
+				box-sizing: border-box;
+				border-radius: 4px;
+				box-shadow: 0px 0px 5px 3px rgba(136,136,136,.1);
+				font-size:24rpx;
+				.info-con{
+					padding-left:30rpx;
+					text-align: left;
+					line-height:40rpx;
+				}
+				image{width:70rpx;}
+			}
+		}
+	}
+
+</style>

+ 147 - 0
pages/cb/index/index.vue

@@ -0,0 +1,147 @@
+<template>
+	<view class="">	
+		<uni-nav-bar @clickRight="clickRight" left-icon="back" left-text="返回"  right-icon="search" title="测报灯系统"></uni-nav-bar>
+		<view>
+			<image src="../../../static/image/cb/banner.jpg" mode="widthFix"></image>
+		</view>
+		<view class="tab-box">
+			<view 
+			v-for="(item,index) in equipArr" 
+			:key="item.type" 
+			@click="tabClick(index)" 
+			:class="['tab-item',active==index?'active':'']">
+			<text>{{item.name}}</text>
+			<text class="bottom-line"></text>
+			</view>
+		</view>
+		<view class="content">
+			<template v-for="(item,index) in equipArr[active].list" >
+				<equipItem @click.native="itemClick(item)" v-bind:item="item" :key="index"></equipItem>
+			</template>
+		</view>
+	</view>
+</template>
+
+<script>
+	import equipItem from "../../../components/equip-item/equip-item" 
+	import uniNavBar from "@/components/uni-nav-bar/uni-nav-bar.vue"
+	export default {
+		data() {
+			return {
+				active:0,//默认选中虫情测报
+				equipArr:[{
+					name:'虫情测报',
+					type:3, //3虫情测报灯 7孢子仪 4智能性诱
+					list:[],
+					pageIndex:1,
+				},{
+					name:'孢子仪',
+					type:7, //3虫情测报灯 7孢子仪 4智能性诱
+					list:[],
+					pageIndex:1,
+				},{
+					name:'性诱测报',
+					type:4, //3虫情测报灯 7孢子仪 4智能性诱
+					list:[],
+					pageIndex:1,
+				}],
+			}
+		},
+		onLoad(){
+			this.getEquipList(0)
+			this.getEquipList(1)
+			this.getEquipList(2)
+		},
+		onShow(){
+			
+		},
+		onHide(){
+			
+		},
+		onUnload(){
+			
+		},
+		onPullDownRefresh(){
+			this.equipArr[this.active].pageIndex=1
+			this.equipArr[this.active].list=[]
+			this.getEquipList(this.active)
+			setTimeout(()=>{
+				uni.stopPullDownRefresh()
+			},1000)
+		},
+		onReachBottom(){
+			let act=this.active
+			if(this.equipArr[act].list.length<this.equipArr[act].pageIndex*10){ //判断是否数据请求完
+				return false
+			}
+			this.equipArr[act].pageIndex++;
+			this.getEquipList(act)
+		},
+		methods: {
+			async getEquipList(act){
+			 const res=await this.$myRequest({
+					url:'/api/api_gateway?method=forecast.worm_lamp.lamp_list',
+					data:{
+						device_type_id:this.equipArr[act].type,
+						page:this.equipArr[act].pageIndex,
+						page_size:10
+					}
+				})
+				this.equipArr[act].list=[...this.equipArr[act].list,...res.data]
+				console.log(this.equipArr[act].list)
+			},
+			tabClick(index){
+				this.active=index;
+			},
+			clickRight(){
+				uni.navigateTo({
+				    url: '/pages/search/search'
+				});
+			},
+			itemClick(item){
+				item.type=this.equipArr[this.active].type
+				let data=JSON.stringify(item)
+				uni.navigateTo({
+				    url: '/pages/cb/equip-detail/equip-detail?info='+data
+				});
+			}
+		},
+		components:{
+			equipItem,
+			uniNavBar
+		}
+	}
+</script>
+
+<style lang="scss">
+page {
+	background:$uni-bg-color-grey;
+	.content{padding:0 20rpx 20rpx 20rpx;}
+}
+image{
+	width:100%;
+}
+.tab-box{
+	display:flex;
+	justify-content: space-around;
+	font-size:30rpx;
+	line-height:80rpx;
+	.tab-item{
+		cursor:pointer;
+		position:relative;
+	};
+	.tab-item.active{
+		.bottom-line{
+			bottom:0;
+			position:absolute;
+			display: inline-block;
+			width:90rpx;
+			height:6rpx;
+			left:0;
+			right:0;
+			margin:auto;
+			background:$uni-color-success;
+		}
+	}
+}
+</style>

+ 52 - 0
pages/index/index.vue

@@ -0,0 +1,52 @@
+<template>
+	<view class="content">
+		<image class="logo" src="/static/logo.png"></image>
+		<view class="text-area">
+			<text class="title">{{title}}</text>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				title: 'Hello'
+			}
+		},
+		onLoad() {
+
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style>
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.logo {
+		height: 200rpx;
+		width: 200rpx;
+		margin-top: 200rpx;
+		margin-left: auto;
+		margin-right: auto;
+		margin-bottom: 50rpx;
+	}
+
+	.text-area {
+		display: flex;
+		justify-content: center;
+	}
+
+	.title {
+		font-size: 36rpx;
+		color: #8f8f94;
+	}
+</style>

+ 64 - 0
pages/login/login.vue

@@ -0,0 +1,64 @@
+<template>
+	<view>
+		 <form @submit="formSubmit" >
+			<view class="uni-form-item uni-column">
+				<view>
+					 <input
+						 class="uni-input" 
+						 name="username"
+						 placeholder-class="icon iconfont icon-bianji1" 
+						 placeholder="请输入用户名" />
+				</view>
+				<view>
+					 <input 
+						 class="uni-input" 
+						 name="pass"
+						 placeholder-class="icon iconfont icon-bianji1" 
+						 placeholder="请输入密码" />
+				</view>
+				 <view class="uni-btn-v">
+					<button form-type="submit">Submit</button>
+				</view>
+			</view>
+		</form>
+						
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+			}
+		},
+		onLoad(){
+			
+		},
+		methods: {
+			async formSubmit(e){
+				let formdata=e.detail.value;
+				const res=await this.$myRequest({
+					url:'/api/api_gateway?method=user.login.login_user',
+					data:{
+						username: formdata.username,
+						password: formdata.pass
+					}
+				})
+				let session_key=res.data.data.session_key
+				uni.setStorage({
+				    key: 'session_key',
+				    data: session_key,
+				    success: function () {
+				        console.log('success');
+				    }
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+.uni-form-item{
+	margin-top:50rpx;
+}
+</style>

+ 117 - 0
pages/my/about/about.vue

@@ -0,0 +1,117 @@
+<template>
+	<view>
+		<view class="line"></view>
+		<view class="logo-box">
+			<image src="../../../static/logo.png" mode="widthFix"></image>
+			<view class="version">
+				<view>
+					云飞物联网
+				</view>
+				<view>
+					V3.0.0
+				</view>
+			</view>
+		</view>
+		<view class="line"></view>
+		<view class="part">
+			<view class="info-item">
+				<text class="tit">技术支持</text>
+				<text class="val">河南云飞科技发展有限公司</text>
+			</view>
+			<view class="divide"></view>
+			<view class="info-item">
+				<text class="tit">关注微信</text>
+				<text class="val">河南云飞科技发展有限公司</text>
+			</view>
+		</view>
+		<view class="line"></view>
+		<view class="part">
+			<view class="info-item">
+				<text class="tit">公司官网</text>
+				<text class="val">www.hnyfkj.cn</text>
+			</view>
+			<view class="divide"></view>
+			<view class="info-item">
+				<text class="tit">业务合作</text>
+				<text class="val">400-690-7990</text>
+			</view>
+			<view class="divide"></view>
+			<view class="info-item">
+				<text class="tit">公司邮箱</text>
+				<text class="val">hnyf826@163.com</text>
+			</view>
+		</view>
+		<view class="line"></view>
+		<view class="part">
+			<view class="info-item">
+				<text class="tit">版本更新</text>
+				<view class="iconfont icon-shipin"></view>
+			</view>
+		</view>
+		<view class="bottom">
+			©河南云飞科技发展有限公司
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+page {
+ 	background:$uni-bg-color-grey;
+}
+.line{
+	height:16rpx;
+	width:100%;
+	background:$uni-bg-color-grey;
+}
+.bottom{
+	height:200rpx;
+	line-height:200rpx;
+	font-size:8px;
+	text-align: center;
+}
+.logo-box{
+	background:#fff;
+	text-align: center;
+	padding:100rpx 0;
+	image{
+		width:100rpx;
+	}
+	.version{
+		font-size:24rpx;
+		margin-top:20rpx;
+	}
+}
+.part{
+	background:#fff;
+	padding:0 40rpx;
+	.divide{
+		width:100%;
+		height:1px;
+		background:$uni-bg-color-grey;
+		}
+	.info-item{
+		display:flex;
+		justify-content: space-between;
+		line-height:100rpx;
+		.tit{font-size:14px}
+		.val{
+			font-size:12px;
+			color:#666;
+		}
+	}
+}
+
+</style>

+ 59 - 0
pages/my/feedback/feedback.vue

@@ -0,0 +1,59 @@
+<template>
+	<view>
+		<view class="area">
+			<textarea placeholder-class="place" placeholder="请填写您的问题和意见"></textarea>
+		</view>
+		<view class="in-box">
+			<input type="text" placeholder-class="place" placeholder="请填写您的手机号方便我和您联系"/>
+		</view>
+		<view class="sub-btn">
+			提交
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	.place{
+		font-size:24rpx;
+	}
+	background:$uni-bg-color-grey;
+	.area{
+		padding:20rpx;
+		background:#fff;
+		margin:20rpx 0;
+		textarea{
+			width:100%;						
+		}
+	}
+	.in-box{
+		padding:20rpx;
+		background:#fff;
+		margin-bottom:20rpx;
+	}
+	.sub-btn{
+		width:60%;
+		height:66rpx;
+		line-height:66rpx;
+		background:$uni-color-success;
+		margin:auto;
+		font-size:28rpx;
+		color:#fff;
+		text-align: center;
+		border-radius: 4px;;
+	}
+}
+</style>

+ 77 - 0
pages/my/user-info/user-info.vue

@@ -0,0 +1,77 @@
+<template>
+	<view class="user-info">
+		<view class="info-item">
+			<text class="tit">头像</text>
+			<view class="avater">
+				<image src="../../../static/logo.png" mode="aspectFill"></image>
+			</view>
+		</view>
+		<view class="info-item">
+			<text class="tit">用户名</text>
+			<text class="val">小王</text>
+		</view>
+		<view class="info-item">
+			<text class="tit">用户给身份</text>
+			<text class="val">管理员</text>
+		</view>
+		<view class="info-item">
+			<text class="tit">用户电话</text>
+			<text class="val">18869487515</text>
+		</view>
+		<view class="info-item">
+			<text class="tit">E-mail</text>
+			<text class="val">1457846@qq.com</text>
+		</view>
+		<view class="info-item">
+			<text class="tit">我的地址</text>
+			<text class="val">河南省郑州市</text>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+page{
+	background:$uni-bg-color-grey;
+	.user-info{
+		background:#fff;
+		padding:0 40rpx;
+		.info-item{
+			display:flex;
+			justify-content: space-between;
+			line-height:100rpx;
+			.avater{
+				width:100rpx;
+				height:100rpx;
+				border-radius: 50%;
+				overflow: hidden;
+				image{
+					width:100%;
+					height:100%;
+				}
+			}
+			.tit{font-size:14px}
+			.val{
+				font-size:12px;
+				color:#666;
+			}
+		}
+	}
+}
+
+
+
+	
+</style>

+ 26 - 0
pages/search/search.vue

@@ -0,0 +1,26 @@
+<template>
+	<view>
+		<!-- <uni-nav-bar @clickRight="clickRight" left-icon="back" left-text="返回"  >
+			<view slot="default">
+				<input type="text" confirm-type="search" value="对对对" />
+			</view>
+		</uni-nav-bar> -->
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		},
+	}
+</script>
+
+<style>
+
+</style>

BIN
static/font/iconfont.eot


ファイルの差分が大きいため隠しています
+ 38 - 0
static/font/iconfont.svg


BIN
static/font/iconfont.ttf


BIN
static/font/iconfont.woff


BIN
static/font/iconfont.woff2


BIN
static/image/cb/0.png


BIN
static/image/cb/1.png


BIN
static/image/cb/2.png


BIN
static/image/cb/3.png


BIN
static/image/cb/4.png


BIN
static/image/cb/5.png


BIN
static/image/cb/6.png


BIN
static/image/cb/banner.jpg


BIN
static/image/cb/icon01.png


BIN
static/image/cb/icon02.png


BIN
static/image/cb/icon03.png


BIN
static/image/cb/icon04.png


BIN
static/image/cb/icon05.png


BIN
static/image/cb/icon06.png


BIN
static/image/cb/icon07.png


BIN
static/image/cb/icon08.png


BIN
static/image/cb/icon09.png


BIN
static/image/cb/icon10.png


BIN
static/image/cb/icon11.png


BIN
static/image/cb/icon12.png


BIN
static/image/cb/icon13.png


BIN
static/image/cb/icon14.png


BIN
static/image/cb/icon15.png


BIN
static/image/cb/icon16.png


BIN
static/image/cb/icon17.png


BIN
static/image/cb/offBg.png


BIN
static/image/cb/onBg.png


BIN
static/image/off.png


BIN
static/image/on.png


BIN
static/logo.png


+ 77 - 0
uni.scss

@@ -0,0 +1,77 @@
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+
+/* 颜色变量 */
+
+/* 行为相关颜色 */
+$uni-color-primary: #007aff;
+$uni-color-success: #57C878;
+$uni-color-warning: #f0ad4e;
+$uni-color-error: #dd524d;
+
+/* 文字基本颜色 */
+$uni-text-color:#333;//基本色
+$uni-text-color-inverse:#fff;//反色
+$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
+$uni-text-color-placeholder: #808080;
+$uni-text-color-disable:#c0c0c0;
+
+/* 背景颜色 */
+$uni-bg-color:#ffffff;
+$uni-bg-color-grey:#F5F5F5; 
+$uni-bg-color-hover:#f1f1f1;//点击状态颜色
+$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
+
+/* 边框颜色 */
+$uni-border-color:#c8c7cc;
+
+/* 尺寸变量 */
+
+/* 文字尺寸 */
+$uni-font-size-sm:24rpx;
+$uni-font-size-base:28rpx;
+$uni-font-size-lg:32rpx;
+
+/* 图片尺寸 */
+$uni-img-size-sm:40rpx;
+$uni-img-size-base:52rpx;
+$uni-img-size-lg:80rpx;
+
+/* Border Radius */
+$uni-border-radius-sm: 4rpx;
+$uni-border-radius-base: 6rpx;
+$uni-border-radius-lg: 12rpx;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 10px;
+$uni-spacing-row-base: 20rpx;
+$uni-spacing-row-lg: 30rpx;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 8rpx;
+$uni-spacing-col-base: 16rpx;
+$uni-spacing-col-lg: 24rpx;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:40rpx;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:36rpx;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:30rpx;
+@import 'uview-ui/theme.scss';

+ 0 - 0
unpackage/dist/dev/.automator/app-plus/.automator.json


+ 0 - 0
unpackage/dist/dev/.automator/mp-weixin/.automator.json


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/equip-item/equip-item.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-icons/uni-icons.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-nav-bar/uni-nav-bar.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/components/uni-status-bar/uni-status-bar.js.map


+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/ddd/ddd.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["uni-app:///main.js"],"names":["createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,yF;AACAA,UAAU,CAACC,YAAD,CAAV,C","file":"pages/cb/ddd/ddd.js","sourcesContent":["import 'uni-pages';\nimport Vue from 'vue'\nimport Page from './pages/cb/ddd/ddd.vue'\ncreatePage(Page)"],"sourceRoot":""}

ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/equip-detail/equip-detail.js.map


+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/equip-item/equip-item.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["uni-app:///main.js"],"names":["createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,6G;AACAA,UAAU,CAACC,kBAAD,CAAV,C","file":"pages/cb/equip-item/equip-item.js","sourcesContent":["import 'uni-pages';\nimport Vue from 'vue'\nimport Page from './pages/cb/equip-item/equip-item.vue'\ncreatePage(Page)"],"sourceRoot":""}

ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/cb/index/index.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/about/about.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/feedback/feedback.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/user-info/user-info.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/search/search.js.map


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/app-plus/__uniappchooselocation.js


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/app-plus/__uniappes6.js


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/app-plus/__uniappopenlocation.js


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/app-plus/__uniapppicker.js


ファイルの差分が大きいため隠しています
+ 8 - 0
unpackage/dist/dev/app-plus/__uniappquill.js


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/app-plus/__uniappquillimageresize.js


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/app-plus/__uniappscan.js


BIN
unpackage/dist/dev/app-plus/__uniappsuccess.png


+ 25 - 0
unpackage/dist/dev/app-plus/__uniappview.html

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

ファイルの差分が大きいため隠しています
+ 8 - 0
unpackage/dist/dev/app-plus/app-config-service.js


+ 154 - 0
unpackage/dist/dev/app-plus/app-config.js

@@ -0,0 +1,154 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// install a JSONP callback for chunk loading
+/******/ 	function webpackJsonpCallback(data) {
+/******/ 		var chunkIds = data[0];
+/******/ 		var moreModules = data[1];
+/******/ 		var executeModules = data[2];
+/******/
+/******/ 		// add "moreModules" to the modules object,
+/******/ 		// then flag all "chunkIds" as loaded and fire callback
+/******/ 		var moduleId, chunkId, i = 0, resolves = [];
+/******/ 		for(;i < chunkIds.length; i++) {
+/******/ 			chunkId = chunkIds[i];
+/******/ 			if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
+/******/ 				resolves.push(installedChunks[chunkId][0]);
+/******/ 			}
+/******/ 			installedChunks[chunkId] = 0;
+/******/ 		}
+/******/ 		for(moduleId in moreModules) {
+/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ 				modules[moduleId] = moreModules[moduleId];
+/******/ 			}
+/******/ 		}
+/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
+/******/
+/******/ 		while(resolves.length) {
+/******/ 			resolves.shift()();
+/******/ 		}
+/******/
+/******/ 		// add entry modules from loaded chunk to deferred list
+/******/ 		deferredModules.push.apply(deferredModules, executeModules || []);
+/******/
+/******/ 		// run deferred modules when all chunks ready
+/******/ 		return checkDeferredModules();
+/******/ 	};
+/******/ 	function checkDeferredModules() {
+/******/ 		var result;
+/******/ 		for(var i = 0; i < deferredModules.length; i++) {
+/******/ 			var deferredModule = deferredModules[i];
+/******/ 			var fulfilled = true;
+/******/ 			for(var j = 1; j < deferredModule.length; j++) {
+/******/ 				var depId = deferredModule[j];
+/******/ 				if(installedChunks[depId] !== 0) fulfilled = false;
+/******/ 			}
+/******/ 			if(fulfilled) {
+/******/ 				deferredModules.splice(i--, 1);
+/******/ 				result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
+/******/ 			}
+/******/ 		}
+/******/
+/******/ 		return result;
+/******/ 	}
+/******/
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// object to store loaded and loading chunks
+/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
+/******/ 	// Promise = chunk loading, 0 = chunk loaded
+/******/ 	var installedChunks = {
+/******/ 		"app-config": 0
+/******/ 	};
+/******/
+/******/ 	var deferredModules = [];
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// define __esModule on exports
+/******/ 	__webpack_require__.r = function(exports) {
+/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 		}
+/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 	};
+/******/
+/******/ 	// create a fake namespace object
+/******/ 	// mode & 1: value is a module id, require it
+/******/ 	// mode & 2: merge all properties of value into the ns
+/******/ 	// mode & 4: return value when already ns object
+/******/ 	// mode & 8|1: behave like require
+/******/ 	__webpack_require__.t = function(value, mode) {
+/******/ 		if(mode & 1) value = __webpack_require__(value);
+/******/ 		if(mode & 8) return value;
+/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ 		var ns = Object.create(null);
+/******/ 		__webpack_require__.r(ns);
+/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ 		return ns;
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "/";
+/******/
+/******/ 	var jsonpArray = this["webpackJsonp"] = this["webpackJsonp"] || [];
+/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
+/******/ 	jsonpArray.push = webpackJsonpCallback;
+/******/ 	jsonpArray = jsonpArray.slice();
+/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
+/******/ 	var parentJsonpFunction = oldJsonpFunction;
+/******/
+/******/
+/******/ 	// run deferred modules from other chunks
+/******/ 	checkDeferredModules();
+/******/ })
+/************************************************************************/
+/******/ ([]);

ファイルの差分が大きいため隠しています
+ 3215 - 0
unpackage/dist/dev/app-plus/app-service.js


ファイルの差分が大きいため隠しています
+ 4214 - 0
unpackage/dist/dev/app-plus/app-view.js


ファイルの差分が大きいため隠しています
+ 1 - 0
unpackage/dist/dev/app-plus/manifest.json


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


ファイルの差分が大きいため隠しています
+ 38 - 0
unpackage/dist/dev/app-plus/static/font/iconfont.svg


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


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


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


BIN
unpackage/dist/dev/app-plus/static/image/cb/0.png


BIN
unpackage/dist/dev/app-plus/static/image/cb/1.png


BIN
unpackage/dist/dev/app-plus/static/image/cb/2.png


BIN
unpackage/dist/dev/app-plus/static/image/cb/3.png


BIN
unpackage/dist/dev/app-plus/static/image/cb/4.png


BIN
unpackage/dist/dev/app-plus/static/image/cb/5.png


BIN
unpackage/dist/dev/app-plus/static/image/cb/6.png


BIN
unpackage/dist/dev/app-plus/static/image/cb/banner.jpg


+ 0 - 0
unpackage/dist/dev/app-plus/static/image/cb/icon01.png


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません