Browse Source

无用文件删除;授权登录接口联调完成;添加用户信息页面并联调接口完成。

htc 2 months ago
parent
commit
b98544d24e
94 changed files with 553 additions and 13256 deletions
  1. 0 819
      components/mx-datepicker/mx-datepicker.vue
  2. 0 86
      components/t-table/t-table.vue
  3. 0 71
      components/t-table/t-td.vue
  4. 0 71
      components/t-table/t-th.vue
  5. 0 81
      components/t-table/t-tr.vue
  6. 0 18
      directive/permission.js
  7. 40 58
      http/index.js
  8. 2 33
      main.js
  9. 3 2
      manifest.json
  10. 6 243
      pages.json
  11. 0 200
      pages/Workorder/AccessControl/AccessControl.vue
  12. 0 375
      pages/Workorder/Arrearsrecord/Arrearsrecord.vue
  13. 0 160
      pages/Workorder/Intelligentdoorlock/Dooropeningrecord/Dooropeningrecord.vue
  14. 0 205
      pages/Workorder/Intelligentdoorlock/Intelligentdoorlock.vue
  15. 0 171
      pages/Workorder/Intelligentdoorlock/Tenantdetails/Tenantdetails.vue
  16. 0 967
      pages/Workorder/Remotecontrol/Remotecontrol.vue
  17. 0 334
      pages/Workorder/Tenantbill/Tenantbill.vue
  18. 0 676
      pages/Workorder/Tenantbill/companybill/companybill.vue
  19. 0 112
      pages/Workorder/Videosurveillance/Videoplayback/Videoplayback.vue
  20. 0 220
      pages/Workorder/Videosurveillance/Videosurveillance.vue
  21. 0 206
      pages/Workorder/Workorder.vue
  22. 0 19
      pages/Workorder/pay/pay.vue
  23. 0 1019
      pages/index/BillPending/BillPending.vue
  24. 0 253
      pages/index/EquipmentException/EquipmentException.vue
  25. 0 134
      pages/index/Immediatecollection/Chargedetails/Chargedetails.vue
  26. 0 414
      pages/index/Immediatecollection/Immediatecollection.vue
  27. 0 404
      pages/index/Immediateinspection/Immediateinspection.vue
  28. 0 343
      pages/index/Inspectionrecord/Inspectionrecord.vue
  29. 0 444
      pages/index/Onlinewarranty/Onlinewarranty.vue
  30. 0 316
      pages/index/Withholdingrecord/Withholdingrecord.vue
  31. 0 186
      pages/index/Workordertodone/Toberepaired/Toberepaired.vue
  32. 0 347
      pages/index/Workordertodone/Workorderdetails/Workorderdetails.vue
  33. 0 340
      pages/index/Workordertodone/Workordertodone.vue
  34. 0 160
      pages/index/Workordertodone/hasrepaired/hasrepaired.vue
  35. 0 603
      pages/index/index.vue
  36. 0 143
      pages/login/Privacyagreement.vue
  37. 0 86
      pages/login/forget.vue
  38. 0 410
      pages/login/login.vue
  39. 0 120
      pages/login/register.vue
  40. 0 175
      pages/login/useragree.vue
  41. 25 28
      pages/login/wxLogin.vue
  42. 0 111
      pages/my/Changepassword/Changepassword.vue
  43. 0 91
      pages/my/Commentssuggestions/Commentssuggestions.vue
  44. 0 316
      pages/my/Myorder/Myorder.vue
  45. 0 438
      pages/my/Myorder/Orderdetails/Orderdetails.vue
  46. 0 75
      pages/my/Personalinformation/Personalinformation.vue
  47. 156 0
      pages/my/info.vue
  48. 0 433
      pages/my/my.vue
  49. 32 28
      pagesHome/index.vue
  50. BIN
      static/imgs/ac.png
  51. BIN
      static/imgs/door.png
  52. BIN
      static/imgs/elec.png
  53. BIN
      static/imgs/light.png
  54. BIN
      static/imgs/lock.png
  55. BIN
      static/imgs/paySuccess.png
  56. BIN
      static/imgs/payerror.png
  57. BIN
      static/imgs/video.png
  58. BIN
      static/imgs/water.png
  59. 0 36
      static/index/arrow-right.svg
  60. 0 21
      static/index/btn-arrow-right.svg
  61. 0 76
      static/index/check-review.svg
  62. 0 84
      static/index/reduce-record.svg
  63. 0 89
      static/index/repair-online.svg
  64. BIN
      static/index/xj.png
  65. BIN
      static/management/auto.png
  66. BIN
      static/management/cs.png
  67. BIN
      static/management/jl.png
  68. BIN
      static/management/kg.png
  69. BIN
      static/management/login-bg.png
  70. 0 16
      static/management/logo.svg
  71. BIN
      static/management/mj.png
  72. BIN
      static/management/ms.png
  73. BIN
      static/management/sp.png
  74. BIN
      static/management/taiyang.png
  75. BIN
      static/management/yc.png
  76. BIN
      static/management/zd.png
  77. BIN
      static/management/zl.png
  78. BIN
      static/my/tc.png
  79. BIN
      static/my/tx.png
  80. 0 106
      static/privacy.html
  81. 0 47
      static/sp.html
  82. BIN
      static/tab/e1.png
  83. BIN
      static/tab/e2.png
  84. BIN
      static/tab/h1.png
  85. BIN
      static/tab/h2.png
  86. BIN
      static/tab/s1.png
  87. BIN
      static/tab/s2.png
  88. BIN
      static/tab/w1.png
  89. BIN
      static/tab/w2.png
  90. BIN
      static/tab/y1.png
  91. BIN
      static/tab/y2.png
  92. 0 161
      static/useragree.html
  93. 0 76
      utils/index.js
  94. 289 0
      utils/reg.js

File diff suppressed because it is too large
+ 0 - 819
components/mx-datepicker/mx-datepicker.vue


+ 0 - 86
components/t-table/t-table.vue

@@ -1,86 +0,0 @@
-<template>
-	<view class="t-table" :style="{ 'border-width': border + 'px', 'border-color': borderColor }">
-		<slot />
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			border: {
-				type: String,
-				default: '1'
-			},
-			borderColor: {
-				type: String,
-				default: '#d0dee5'
-			},
-			isCheck: {
-				type: Boolean,
-				default: false
-			}
-		},
-		provide() {
-			return {
-				table: this
-			};
-		},
-		data() {
-			return {};
-		},
-		created() {
-			this.childrens = [];
-			this.index = 0;
-		},
-		methods: {
-			fire(e, index, len) {
-				let childrens = this.childrens;
-				console.log(childrens);
-				// 全选
-				if (index === 0) {
-					childrens.map((vm, index) => {
-						vm.checkboxData.checked = e;
-						return vm;
-					});
-				} else {
-					let isAll = childrens.find((n, ids) => ids !== 0 && !n.checkboxData.checked);
-					childrens[0].checkboxData.checked = isAll ? false : true;
-				}
-
-				let fireArr = [];
-				for (let i = 0; i < childrens.length; i++) {
-					if (childrens[i].checkboxData.checked && i !== 0) {
-						fireArr.push(childrens[i].checkboxData.value - 1);
-					}
-				}
-				this.$emit('change', {
-					detail: fireArr
-				});
-			}
-		}
-	};
-</script>
-
-<style scoped>
-	.t-table {
-		width: 100%;
-		border: 1px #d0dee5 solid;
-		border-left: none;
-		border-top: none;
-		box-sizing: border-box;
-	}
-
-	.t-table>>>t-tr {
-		display: flex;
-	}
-
-	.t-table>>>t-tr:nth-child(2n) {
-		background: #f5f5f5;
-	}
-
-	/* #ifdef H5 */
-	.t-table>>>.t-tr:nth-child(2n) {
-		background: #f5f5f5;
-	}
-	/* #endif */
-</style>

+ 0 - 71
components/t-table/t-td.vue

@@ -1,71 +0,0 @@
-<template>
-	<view class="t-td" :style="{ 'border-width': thBorder + 'px','border-color':borderColor ,'font-size':fontSize+'px' ,'color':color,'justify-content':tdAlignCpd}">
-		<slot></slot>
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			align: String
-		},
-		data() {
-			return {
-				thBorder: '1',
-				borderColor: '#d0dee5',
-				fontSize: '14',
-				color: '#555c60',
-				tdAlign: 'center'
-			};
-		},
-		inject: ['table', 'tr'],
-
-		created() {
-			this.thBorder = this.table.border;
-			this.borderColor = this.table.borderColor;
-			this.fontSize = this.tr.fontSize;
-			this.color = this.tr.color;
-			if (this.align) {
-				this.tdAlign = this.align;
-			} else {
-				this.tdAlign = this.tr.align
-			}
-		},
-		computed: {
-			tdAlignCpd() {
-				let nameAlign = '';
-				switch (this.tdAlign) {
-					case 'left':
-						nameAlign = 'flex-start'
-						break;
-					case 'center':
-						nameAlign = 'center'
-						break;
-					case 'right':
-						nameAlign = 'flex-end'
-						break;
-					default:
-						nameAlign = 'center'
-						break;
-				}
-				return nameAlign
-			}
-		}
-	};
-</script>
-
-<style>
-	.t-td {
-		flex: 1;
-		display: flex;
-		align-items: center;
-		width: 100%;
-		padding: 14upx;
-		border-top: 1px #d0dee5 solid;
-		border-left: 1px #d0dee5 solid;
-		text-align: center;
-		color: #697081;
-		font-size: 24upx;
-
-	}
-</style>

+ 0 - 71
components/t-table/t-th.vue

@@ -1,71 +0,0 @@
-<template>
-	<view class="t-th" :style="{ 'border-width': thBorder + 'px' ,'border-color':borderColor,'font-size':fontSize+'px' ,'color':color,'justify-content':thAlignCpd}">
-		<slot></slot>
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			align: String,
-		},
-		data() {
-			return {
-				thBorder: '1',
-				borderColor: '#d0dee5',
-				fontSize: '15',
-				color: '#3b4246',
-				thAlign: 'center'
-			};
-		},
-		inject: ['table', 'tr'],
-
-		created() {
-			this.thBorder = this.table.border;
-			this.borderColor = this.table.borderColor;
-			this.fontSize = this.tr.fontSize;
-			this.color = this.tr.color;
-			if (this.align) {
-				this.thAlign = this.align;
-			} else {
-				this.thAlign = this.tr.align
-			}
-		},
-
-		computed: {
-			thAlignCpd() {
-				let nameAlign = '';
-				switch (this.thAlign) {
-					case 'left':
-						nameAlign = 'flex-start'
-						break;
-					case 'center':
-						nameAlign = 'center'
-						break;
-					case 'right':
-						nameAlign = 'flex-end'
-						break;
-					default:
-						nameAlign = 'center'
-						break;
-				}
-				return nameAlign
-			}
-		}
-	};
-</script>
-
-<style>
-	.t-th {
-		flex: 1;
-		display: flex;
-		align-items: center;
-		font-size: 25upx;
-		font-weight: bold;
-		text-align: center;
-		color: #9DA0AC;
-		border-left: 1px #d0dee5 solid;
-		border-top: 1px #d0dee5 solid;
-		padding: 15upx;
-	}
-</style>

+ 0 - 81
components/t-table/t-tr.vue

@@ -1,81 +0,0 @@
-<template>
-	<view class="t-tr">
-		<view v-if="isCheck" class="t-check-box" :style="{ 'border-width': thBorder + 'px' ,'border-color':borderColor}">
-			<checkbox-group @change="checkboxChange">
-				<checkbox :value="checkboxData.value + ''" :checked="checkboxData.checked" />
-			</checkbox-group>
-		</view>
-		<slot></slot>
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			fontSize: String,
-			color: String,
-			align: String
-		},
-		inject: ['table'],
-		provide() {
-			return {
-				tr: this
-			};
-		},
-		data() {
-			return {
-				isCheck: false,
-				checkboxData: {
-					value: 0,
-					checked: false
-				},
-				checked: false,
-				thBorder: '1',
-				borderColor: '#d0dee5'
-			};
-		},
-		created() {
-			this.thBorder = this.table.border;
-			this.borderColor = this.table.borderColor;
-			this.table.childrens.push(this);
-			this.checkboxData.value = this.table.index++;
-			this.isCheck = this.table.isCheck;
-
-		},
-		methods: {
-			checkboxChange(e) {
-				this.checkboxData.checked = !this.checkboxData.checked;
-				this.table.childrens[this.checkboxData.value] = this;
-				this.table.fire(e.detail.value[0] ? true : false, this.checkboxData.value, this.table.index);
-			}
-		}
-	};
-</script>
-
-<style>
-	.t-tr {
-		width: 100%;
-		display: flex;
-	}
-
-	.t-tr t-th,
-	.t-tr t-td {
-		display: flex;
-		flex: 1;
-	}
-
-	.t-tr .t-check-box {
-		flex-shrink: 0;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		width: 80upx;
-		color: #3b4246;
-		border-left: 1px #d0dee5 solid;
-		border-top: 1px #d0dee5 solid;
-	}
-
-	.t-tr .t-check-box checkbox {
-		transform: scale(0.8);
-	}
-</style>

+ 0 - 18
directive/permission.js

@@ -1,18 +0,0 @@
-//先获取本地权限数据 permissions 
-let btnPermission = (data) => {
-	//  console.log('999999999',uni.getStorageSync('ButtonPermissions'))
-	  // uni.getStorage({
-	  // 	key: 'ButtonPermissions',
-	  // 	success: function (res) {
-	  // 		console.log(res.data);
-			
-			// let permissions = res.data;
-			// let isHave = permissions.includes(data);
-			// return isHave;
-	  // 	}
-	  // });
-	let permissions = uni.getStorageSync('ButtonPermissions');
-	let isHave = permissions.includes(data);
-	return isHave;
-}
-export default btnPermission;

+ 40 - 58
http/index.js

@@ -2,26 +2,46 @@ import http from './interface'
 
  
   
-export const $http = (url, method, data, json) => {
+export const $http = (url, method, data, json, isloading=true) => {
 	//设置请求前拦截器
-	http.interceptor.request = (config) => {
-		uni.showLoading({
-			title:'加载中...'
-		})
+	http.interceptor.request = (config) => {
+		if(isloading){
+			uni.showLoading({
+				title:'加载中...'
+			})
+		}
+		
 		config.header = {
 			'content-type': json ? 'application/json' : 'application/x-www-form-urlencoded',
-			"token": uni.getStorageSync('tokendata'),
+			"token": uni.getStorageSync('token'),
 			
 		}
 	}
 	//设置请求结束后拦截器
 	http.interceptor.response = async (response) => {
-		//判断返回状态 执行相应操作
-		uni.hideLoading()
+		//判断返回状态 执行相应操作
+		if(isloading){
+			uni.hideLoading()
+		}
+		
+		if (response?.data?.code === 401 || response?.data?.msg.indexOf('未授权') > -1 || response?.data?.msg.indexOf('重新登录') > -1) {
+			return uni.showModal({
+				title: '温馨提示',
+				content:'当前登录已失效,是否返回重新登录',
+				success: (res) => {
+					if (res.confirm) {
+						uni.removeStorageSync('token');
+						uni.removeStorageSync('userInfo');
+						uni.reLaunch({
+							url: '/pages/login/wxLogin'
+						})
+					}
+				}
+			})
+		}
+		
 		// 请根据后端规定的状态码判定
-		//  console.log('111111111111111111',response)
 		if (response.data.code === 300) {//token失效
-		
 		//	return response.data = await doRequest(response, url)//动态刷新token,并重新完成request请求
 		}else{
 			if(response.data.code==10021&&response.data.msg){
@@ -43,63 +63,25 @@ export const $http = (url, method, data, json) => {
 	})
 }
 
-// async function login() {
-// 	//返回环宇token所需的login code
-// 	return new Promise(resolve => {
-// 		uni.login({
-// 			provider: 'weixin',
-// 			success(loginRes) {
-// 				resolve(loginRes.code)
-// 			},
-// 			fail() {}
-// 		});
-// 	})
-// }
-
-// async function doRequest(response, url) {
-// 	//var code = await login()
-// 	var res = await get('/v1/oauth/refreshToken/code/'+code, {})
-// 	if (res && res.data.data.token) {
-// 		let config = response.config
-// 		uni.setStorageSync("token", res.data.data.token);
-// 		config.header['Authorization'] = res.data.data.token
-// 		let json = config.header["Content-Type"] === 'application/json'
-// 		const resold = await $http(url, config.method, {
-// 			...config.data
-// 		}, json)
-// 		return resold
-// 	} else {
-// 		uni.clearStorage()
-// 		uni.showToast({
-// 			title: "授权失效,请重新登录",
-// 			duration: 1000,
-// 		})
-// 		uni.navigateTo({
-// 			url: '/pages/login/auth'
-// 		})
-// 		return false
-// 	}
-// }
-
-function postJson(url, data) {
-	return $http(url, 'POST', data)
+function postJson(url, data, isloading=true) {
+	return $http(url, 'POST', data, isloading)
 }
 
-function get(url, data) {
+function get(url, data, isloading=true) {
 	
-	return $http(url, 'GET', data, true)
+	return $http(url, 'GET', data, true, isloading)
 }
 
-function post(url, data) {
-	return $http(url, 'POST', data, true)
+function post(url, data, isloading=true) {
+	return $http(url, 'POST', data, true, isloading)
 }
 
-function put(url, data) {
-	return $http(url, 'PUT', data, true)
+function put(url, data, isloading=true) {
+	return $http(url, 'PUT', data, true, isloading)
 }
 
-function del(url, data) {
-	return $http(url, 'DELETE', data, true)
+function del(url, data, isloading=true) {
+	return $http(url, 'DELETE', data, true, isloading)
 }
 
 export default {

+ 2 - 33
main.js

@@ -5,37 +5,6 @@ import Vue from 'vue'
 Vue.config.productionTip = false
 App.mpType = 'app'
 
-try {
-	function isPromise(obj) {
-		return (
-			!!obj &&
-			(typeof obj === "object" || typeof obj === "function") &&
-			typeof obj.then === "function"
-		);
-	}
-
-	// 统一 vue2 API Promise 化返回格式与 vue3 保持一致
-	uni.addInterceptor({
-		returnValue(res) {
-			if (!isPromise(res)) {
-				return res;
-			}
-			return new Promise((resolve, reject) => {
-				res.then((res) => {
-					if (res[0]) {
-						reject(res[0]);
-					} else {
-						resolve(res[1]);
-					}
-				});
-			});
-		},
-	});
-} catch (error) {}
-
-//import Permission from './directive/permission.js'
-//Vue.use(Permission)
-
 import system from '@/utils/system.js'
 Vue.mixin(system);
 
@@ -46,10 +15,10 @@ Vue.component('CusHeader',CusHeader);
 import dateFormat from '@/utils/dateFormat.js'
 Vue.use(dateFormat);
 
-import btnPermission from './directive/permission.js';
+import regTest from './utils/reg.js'
 import api from '@/http/index.js'
-Vue.prototype.$has = btnPermission;
 Vue.prototype.$api = api;
+Vue.prototype.$reg = regTest;
 Vue.prototype.$imgBase = "http://106.54.209.120:8666/image/";
 
 //重载uni.showToast,简化调用

+ 3 - 2
manifest.json

@@ -102,7 +102,7 @@
     "quickapp" : {},
     /* 小程序特有相关 */
     "mp-weixin" : {
-        "appid" : "wxb9a6bbfcc8449c16",
+        "appid" : "wx4e19bb0abda24052",
         "setting" : {
             "urlCheck" : false,
             "es6" : false,
@@ -131,7 +131,8 @@
     "uniStatistics" : {
         "enable" : false
     },
-    "vueVersion" : "2"
+    "vueVersion" : "2",
+    "fallbackLocale" : "zh-Hans"
 }
 /* ios打包配置 *//* SDK配置 */
 

+ 6 - 243
pages.json

@@ -7,243 +7,9 @@
 			}
 		},
 		{
-			"path": "pages/login/login",
+			"path": "pages/my/info",
 			"style": {
-				"navigationStyle": "custom",
-				"navigationBarTitleText": "",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/login/forget",
-			"style": {
-				"navigationBarTitleText": "",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/login/register",
-			"style": {
-				"navigationBarTitleText": "",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/index/index",
-			"style": {
-				"navigationBarTitleText": "首页",
-				"enablePullDownRefresh": true,
-				"navigationStyle": "custom" // 隐藏系统导航栏
-			}
-		},
-		{
-			"path": "pages/Workorder/Workorder",
-			"style": {
-				"navigationBarTitleText": "工作台",
-				"navigationStyle": "custom" // 隐藏系统导航栏
-			}
-		},
-		{
-			"path": "pages/my/my",
-			"style": {
-				"navigationBarTitleText": "我的",
-				"navigationStyle": "custom" // 隐藏系统导航栏
-			}
-
-		}, 
-		{
-			"path": "pages/my/Personalinformation/Personalinformation",
-			"style": {
-				"navigationBarTitleText": "账号中心",
-				"enablePullDownRefresh": false,
-				"navigationBarBackgroundColor": "#FFFFFF"
-			}
-		}, {
-			"path": "pages/my/Commentssuggestions/Commentssuggestions",
-			"style": {
-				"navigationBarTitleText": "意见建议",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/my/Changepassword/Changepassword",
-			"style": {
-				"navigationBarTitleText": "密码修改",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/Workorder/Tenantbill/Tenantbill",
-			"style": {
-				"navigationBarTitleText": "租户账单",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/Workorder/Remotecontrol/Remotecontrol",
-			"style": {
-				"navigationBarTitleText": "远程管控",
-				"enablePullDownRefresh": true,
-				"navigationBarTextStyle": "#FFFFFF",
-				"navigationBarBackgroundColor": "#5C8FFF"
-			}
-
-		}, {
-			"path": "pages/index/Onlinewarranty/Onlinewarranty",
-			"style": {
-				"navigationBarTitleText": "线上报修",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/index/Inspectionrecord/Inspectionrecord",
-			"style": {
-				"navigationBarTitleText": "巡检记录",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/index/Withholdingrecord/Withholdingrecord",
-			"style": {
-				"navigationBarTitleText": "扣缴记录",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/Workorder/Tenantbill/companybill/companybill",
-			"style": {
-				"navigationBarTitleText": "账单详情",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/index/Workordertodone/Workordertodone",
-			"style": {
-				"navigationBarTitleText": "报修工单",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/index/Workordertodone/Workorderdetails/Workorderdetails",
-			"style": {
-				"navigationBarTitleText": "详情",
-				"enablePullDownRefresh": false
-			}
-		}
-		, {
-			"path": "pages/index/Immediatecollection/Immediatecollection",
-			"style": {
-				"navigationBarTitleText": "欠费待收",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/index/Immediatecollection/Chargedetails/Chargedetails",
-			"style": {
-				"navigationBarTitleText": "详情",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/Workorder/pay/pay",
-			"style": {
-				"navigationBarTitleText": "支付",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/index/BillPending/BillPending",
-			"style": {
-				"navigationBarTitleText": "账单详情",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/index/EquipmentException/EquipmentException",
-			"style": {
-				"navigationBarTitleText": "设备异常",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/index/Immediateinspection/Immediateinspection",
-			"style": {
-				"navigationBarTitleText": "巡检打卡",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/my/Myorder/Myorder",
-			"style": {
-				"navigationBarTitleText": "我的订单",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/my/Myorder/Orderdetails/Orderdetails",
-			"style": {
-				"navigationBarTitleText": "订单明细",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/Workorder/Arrearsrecord/Arrearsrecord",
-			"style": {
-				"navigationBarTitleText": "欠费记录",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/Workorder/Videosurveillance/Videosurveillance",
-			"style": {
-				"navigationBarTitleText": "视频监控",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/Workorder/AccessControl/AccessControl",
-			"style": {
-				"navigationBarTitleText": "门禁开关",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/Workorder/Videosurveillance/Videoplayback/Videoplayback",
-			"style": {
-				"navigationBarTitleText": "摄像头直播",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/index/Workordertodone/Toberepaired/Toberepaired",
-			"style": {
-				"navigationBarTitleText": "详情",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/index/Workordertodone/hasrepaired/hasrepaired",
-			"style": {
-				"navigationBarTitleText": "已维修",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/Workorder/Intelligentdoorlock/Intelligentdoorlock",
-			"style": {
-				"navigationBarTitleText": "智能门锁",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/Workorder/Intelligentdoorlock/Tenantdetails/Tenantdetails",
-			"style": {
-				"navigationBarTitleText": "租户详情",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/Workorder/Intelligentdoorlock/Dooropeningrecord/Dooropeningrecord",
-			"style": {
-				"navigationBarTitleText": "开门记录",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/login/Privacyagreement",
-			"style": {
-				"navigationBarTitleText": "隐私协议",
-				"enablePullDownRefresh": false
-			}
-		}, {
-			"path": "pages/login/useragree",
-			"style": {
-				"navigationBarTitleText": "用户协议",
-				"enablePullDownRefresh": false
+				"navigationStyle": "custom"
 			}
 		}
 	],
@@ -479,12 +245,9 @@
 	"easycom": {
 		"^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue"
 	},
-	"condition": { //模式配置,仅开发期间生效
-		"current": 0, //当前激活的模式(list 的索引项)
-		"list": [{
-			"name": "", //模式名称
-			"path": "", //启动页面,必选
-			"query": "" //启动参数,在页面的onLoad函数里面得到
-		}]
+	"permission": {
+		"scope.userLocation": {
+			"desc": "你的位置信息将用于小程序位置接口的效果展示"
+		}
 	}
 }

+ 0 - 200
pages/Workorder/AccessControl/AccessControl.vue

@@ -1,200 +0,0 @@
-<template>
-	<view class="menjin">
-		<view class="mjym" v-for="(item,index) in mjlist" :key="item.id">
-			<view class="top">
-				<view class="status" v-if="item.status==1">在线</view>
-				<view class="status s2" v-if="item.status==0">离线</view>
-				<h3>{{item.deviceName}}</h3>
-				<view class="subtit">{{item.deviceSerial}}</view>
-				<view class="subtit">{{item.parentCategory}}</view>
-			</view>
-
-			<view class="mjkg">
-				<view class="anniu">
-					<u-button type="primary" :plain="true" text="开启" @click="buttons(item,'open')"></u-button>
-				</view>
-				<view class="anniu">
-					<u-button type="primary" :plain="true" text="关闭" @click="buttons(item,'close')"></u-button>
-				</view>
-				<view class="anniu">
-					<u-button type="primary" :plain="true" text="常开" @click="buttons(item,'alwaysOpen')"></u-button>
-				</view>
-				<view class="anniu">
-					<u-button type="primary" :plain="true" text="常关" @click="buttons(item,'alwaysClose')"></u-button>
-				</view>
-			</view>
-		</view>
-
-
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				mjlist: [],
-			}
-		},
-		onLoad() {
-			this.getalldata()
-		},
-
-		methods: {
-
-
-			getalldata() {
-				this.$api.get('/access/page', {})
-					.then(res => {
-
-						if (res.data.code == 0) {
-							if (res.data.data.length == 0) {
-								this.mjlist = []
-							} else {
-								this.mjlist = res.data.data;
-							}
-						} else {
-							this.$refs.uNotify.error(res.data.msg)
-						}
-					})
-			},
-
-			buttons(e, fs) {
-				let postdata = {
-					cmd: fs,
-					deviceSerial: e.deviceSerial
-				}
-				this.$api.post('/access/operate', postdata)
-					.then(res => {
-						if (res.data.code == 0) {
-							this.$refs.uNotify.success('成功')
-						} else {
-							this.$refs.uNotify.error(res.data.msg)
-						}
-					})
-
-
-			},
-
-
-			operate(e) {
-				this.$api.post('/access/operate', e)
-					.then(res => {
-						if (res.data.code == 0) {
-							this.$refs.uNotify.success('成功')
-						} else {
-							this.$refs.uNotify.error(res.data.msg)
-						}
-					})
-			},
-
-			asyncChange1(e, ) {
-				uni.showModal({
-					content: e.value1 ? '确定要关闭门禁吗' : '确定要开启门禁吗',
-					success: (res) => {
-						if (res.confirm) {
-							e.value1 = !e.value1;
-
-							if (e.value1 == true) {
-								let postdata = {
-									cmd: 'open',
-									deviceSerial: e.deviceSerial
-								}
-								this.operate(postdata)
-							} else {
-								let postdata = {
-									cmd: 'close',
-									deviceSerial: e.deviceSerial
-								}
-								this.operate(postdata)
-							}
-
-
-						}
-					}
-				})
-
-			},
-			asyncChange2(e, ) {
-				uni.showModal({
-					content: e.value2 ? '确定要关闭常开吗' : '确定要常开吗',
-					success: (res) => {
-						if (res.confirm) {
-							e.value2 = !e.value2;
-
-							if (e.value2 == true) {
-								let postdata = {
-									cmd: 'alwaysOpen',
-									deviceSerial: e.deviceSerial
-								}
-								this.operate(postdata)
-							} else {
-								let postdata = {
-									cmd: 'alwaysClose',
-									deviceSerial: e.deviceSerial
-								}
-								this.operate(postdata)
-							}
-						}
-					}
-				})
-
-			},
-
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.menjin{padding-top: 24rpx;}
-	.mjym {
-		margin: 0 32rpx 24rpx;
-		padding: 24rpx 0 0;
-		background-color: #fff;
-		
-		.top {
-			border-bottom: 1px solid #eee;
-			padding: 0 32rpx 24rpx;
-			position: relative;
-
-			h3 {
-				font-size: 32rpx;
-				margin-bottom: 24rpx;
-			}
-
-			.subtit {
-				color: #9DA0AC;
-				font-size: 28rpx;
-			}
-			.status {
-				position: absolute;
-				width: 96rpx;
-				height: 48rpx;
-				border-radius: 0 8rpx 0 20rpx;
-				right: 0;
-				line-height: 48rpx;
-				text-align: center;
-				top: -24rpx;
-				z-index: 1;
-				font-size: 22rpx;
-				background-color: #30D3A2;
-				color: #fff;
-			
-				&.s2 {
-					background-color: #C8C8C8;
-				}
-			}
-			
-		}
-	}
-	.mjkg {
-		display: flex;
-		align-items: center;
-		justify-content: flex-end;
-		padding: 20rpx 32rpx;
-		.anniu {
-			margin-left: 24rpx;
-		}
-	}
-</style>

+ 0 - 375
pages/Workorder/Arrearsrecord/Arrearsrecord.vue

@@ -1,375 +0,0 @@
-<template>
-	<view class="billall">
-
-		<view class="topbill">
-			<view class="topbilledit">
-				<view class="changetime1">
-					<picker mode="date" :value="myday" fields="month" @change="dateChange">
-						<view class="selestDate">{{myday}}</view>
-					</picker>
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#666666" size="20"></u-icon>
-				</view>
-			</view>
-			<view class="topbilledit" @click="typechange">
-				<view class="changetime1">
-					{{mytype}}
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#666666" size="20"></u-icon>
-				</view>
-			</view>
-		</view>
-
-
-		<view class="u-listdata">
-			<view style="padding:10rpx 0 0 30rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'>
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-
-					<view class="companylist">
-						<view class="settled" v-if="item.isSettled==1">
-							已结清
-						</view>
-						<view class="outstanding" v-if="item.isSettled==0">
-							未结清
-						</view>
-						<h3>{{item.tenantName}}</h3>
-						<view class="Currentamount">
-							欠费金额: <span>¥{{item.amount}}</span>
-						</view>
-						<view class="Currentamount">
-							欠费天数: {{item.arrearDay}}
-						</view>
-						<view class="Currentamount">
-							账单类型:{{item.billType}}
-						</view>
-						<view class="Currentamount">
-							联系电话: {{item.phone}}
-						</view>
-
-						<view class="Callfee" v-if="item.isExpedit==1" @click.stop="handleClick(item.id)">
-							催费
-						</view>
-					</view>
-
-				</u-list-item>
-			</u-list>
-
-		</view>
-
-
-
-
-		<u-picker :show="showtype" :itemHeight="80" :columns="columnstype" keyName="dictLabel" @confirm="confirmtype"
-			@cancel='canceltype'>
-		</u-picker>
-
-
-
-		<u-notify ref="uNotify" :show="showdct" message="服务器请求失败"></u-notify>
-	</view>
-</template>
-
-<script>
-	export default {
-		components: {
-
-		},
-		data() {
-			const currentDate = this.getDate({
-				format: 'yyyy-mm'
-			})
-			return {
-				totalnumber: 0,
-				setyesno: true,
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					arrearDay: "", //欠费天数
-					billType: "", //账单类型
-					cycle: currentDate, //欠费周期
-					isExpedit: "", //是否催费0否1是
-					order: "",
-					orderField: "",
-					tenantName: "", //租客名称
-					page: 1,
-					limit: 10,
-				},
-
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				pd: true,
-				columnData: [],
-				columnstypes: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-				myday: currentDate,
-				columnstype: [],
-
-
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			let getDictDataList = uni.getStorageSync('getDictDataList');
-			for (let i = 0; i < getDictDataList.length; i++) {
-				if (getDictDataList[i].dictType == 'PayType') {
-					this.columnstypes = getDictDataList[i].dataList;
-					this.columnstype = [getDictDataList[i].dataList];
-				}
-			}
-
-			this.getalldata();
-
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-
-			handleClick(e) {
-
-				let Temporarydata = [e];
-
-				let stringdata = JSON.stringify(Temporarydata);
-				let finallydata = stringdata.replace(/"/g, '');
-
-				this.$api.post('/expeditrecord/charge', finallydata)
-					.then(res => {
-						if (res.data.code == 0) {
-							uni.showToast({
-								title: '催费成功',
-								icon: 'none',
-								duration: 1500
-							})
-						} else {
-							uni.showToast({
-								title: res.data.msg,
-								icon: 'none',
-								duration: 1500
-							})
-						}
-						this.dataForm.page = 1;
-						this.indexList = [];
-						this.getalldata();
-
-					})
-			},
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-
-			getalldata() {
-
-				this.$api.get('/expeditrecord/apppage', this.dataForm)
-					.then(res => {
-
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							function transform(a, b) {
-								loop: for (let i = 0; i < a.length; i++) {
-							  for (let j = 0; j < b.length; j++) {
-										if (a[i].billType == b[j].dictValue) {
-											a[i].billType = b[j].dictLabel;
-											continue loop;
-										}
-									}
-									a[i].billType = a[i].billType;
-								}
-								return a;
-							}
-							res.data.data.list = transform(res.data.data.list, this.columnstypes)
-
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-					})
-			},
-
-
-
-
-
-			canceltype() {
-				this.showtype = false;
-			},
-			confirmtype(e) {
-				if (e.value[0].dictLabel == "全部") {
-					this.showtype = false;
-					this.mytype = e.value[0].dictLabel;
-					this.dataForm.billType = '';
-					this.indexList = [];
-					this.dataForm.page = 1;
-					this.getalldata();
-				} else {
-					this.showtype = false;
-					this.mytype = e.value[0].dictLabel;
-					this.dataForm.billType = e.value[0].dictValue;
-					this.indexList = [];
-					this.dataForm.page = 1;
-					this.getalldata();
-				}
-			},
-			typechange() {
-				this.showtype = true;
-			},
-			dateChange(e) {
-				this.myday = e.target.value;
-				this.dataForm.cycle = e.target.value;
-				this.dataForm.page = 1;
-				this.indexList = [];
-				this.getalldata();
-			},
-			getDate(type) {
-				const date = new Date();
-				let year = date.getFullYear();
-				let month = date.getMonth() + 1;
-				if (type === 'start') {
-					year = year - 60;
-				} else if (type === 'end') {
-					year = year + 2;
-				}
-				month = month > 9 ? month : '0' + month;
-				// day = day > 9 ? day : '0' + day;
-				return `${year}-${month}`;
-			},
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.Currentamount {
-		padding-left: 30rpx;
-		height: 50rpx;
-		line-height: 50rpx;
-		color: #BCB3A7;
-
-		span {
-			color: #FA5555;
-			padding-left: 9rpx;
-		}
-	}
-
-	.Callfee {
-		width: 100rpx;
-		height: 45rpx;
-		text-align: center;
-		line-height: 45rpx;
-		color: #5C8FFF;
-		border: 1px solid #5C8FFF;
-		font-size: 22rpx;
-		position: absolute;
-		bottom: 10rpx;
-		right: 10px;
-		font-weight: bold;
-	}
-
-	.companylist {
-		margin: 20rpx 30rpx;
-		background: #fff;
-		height: 280rpx;
-		border-radius: 10px;
-		position: relative;
-
-		h3 {
-			height: 70rpx;
-			line-height: 70rpx;
-			padding-left: 30rpx;
-		}
-	}
-
-	.settled {
-		background-color: #09C700;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-	.outstanding {
-		background-color: #FA5555;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-
-
-	.billall {}
-
-	.topbill {
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-		height: 100rpx;
-		background-color: #e6e6e6;
-	}
-
-	.topbilledit {
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-	}
-
-	.changetime1 {
-		padding-right: 10rpx;
-	}
-</style>

+ 0 - 160
pages/Workorder/Intelligentdoorlock/Dooropeningrecord/Dooropeningrecord.vue

@@ -1,160 +0,0 @@
-<template>
-	<view class="billall">
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true' style="height:400px;flex:1;">
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist">
-						<h3>{{item.roomName}}</h3>
-						<view class="Currentamount">
-							开锁方式:{{item.openDoorType}}
-						</view>
-						<view class="Currentamount">
-							开锁时间: {{item.openDoorDate}}
-						</view>
-						<view class="Currentamount">
-							区域:¥{{item.areaname}}
-						</view>
-						<view class="Currentamount">
-							开锁人: {{item.operateName}}
-						</view>
-					</view>
-				</u-list-item>
-			</u-list>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-
-		data() {
-
-			return {
-				totalnumber: 0,
-				setyesno: true,
-
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					"currentPage": 1,
-					"deviceId": "",
-					"pageSize": 10,
-					"roomId": "",
-					"tempPwd": "",
-					"tenantsId": "",
-					"userName": ""
-				},
-
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				pd: true,
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-
-		onLoad(options) {
-			console.log(options.companyOrgId);
-			this.dataForm.roomId = options.companyOrgId;
-			this.getalldata();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-
-			scrolltolower() {
-				if (this.pd && this.dataForm.currentPage > 1) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-
-			getalldata() {
-				this.$api.post('/lock/doorOpeatePage', this.dataForm)
-					.then(res => {
-						this.dataForm.currentPage = this.dataForm.currentPage + 1;
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.pd = true;
-							console.log(this.indexList)
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-					})
-			},
-
-
-
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.billall{height:100%}
-	.u-listdata{
-		    height: 100%;
-		    display: flex;
-		    flex-direction: column;
-	}
-	.companylist {
-		margin: 0 32rpx 24rpx;
-		background: #fff;
-		padding: 24rpx 32rpx;
-		border-radius: 8rpx;
-		position: relative;
-	
-		h3 {
-			margin-bottom: 16rpx;
-		}
-	
-		.Currentamount {
-			margin-bottom: 8rpx;
-			color: #999;
-	
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-	
-	}
-</style>

+ 0 - 205
pages/Workorder/Intelligentdoorlock/Intelligentdoorlock.vue

@@ -1,205 +0,0 @@
-<template>
-	<view class="billall">
-		<view class="u-listdata">
-			<view style="padding: 16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{ totalnumber }}</span>条记录
-			</view>
-
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled="true">
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist">
-						<h3>{{ item.name }}</h3>
-						<view class="Currentamount"> 设备编号:{{ item.deviceId }} </view>
-						<view class="Callfee">
-							<span @click="kaimen(item)">开门记录</span>
-							<span @click="Remotedooropening(item)">远程开门</span>
-							<span @click="confirmPwd(item.deviceId)">临时密码</span>
-							<span @click="seedetail(item)">查看租户</span>
-						</view>
-					</view>
-				</u-list-item>
-			</u-list>
-		</view>
-		<!-- 门锁信息 -->
-		<!-- <u-modal :show="showms" @confirm="confirmPwd" title="临时密码设置" :showCancelButton="true" @cancel="showms = false">
-			<view class="slot-content">
-				<u--input placeholder="请输入临时密码" v-model="lsmima"></u--input>
-			</view>
-		</u-modal> -->
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	export default {
-		components: {},
-		data() {
-			return {
-				showms: false,
-				totalnumber: 0,
-				setyesno: true,
-				lsmima: "",
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					currentPage: 1,
-					deviceId: "",
-					pageSize: 10,
-					roomId: "",
-					tempPwd: "",
-					tenantsId: "",
-					userName: "",
-				},
-				showtype: false,
-				showdct: false,
-				mytitle: "",
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				pd: true,
-				columnData: [],
-				myday: "",
-				mytype: "全部",
-				showPicker: false,
-			};
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			this.getalldata();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-		},
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-		methods: {
-			Remotedooropening(e) {
-				let postdata = {
-					cmdType: "RemoteOpenDoor",
-					roomId: e.roomid,
-				};
-				this.$api.post("/lock/issuedCmd", postdata).then((res) => {
-					if (res.data.code == 0) {
-						this.$refs.uNotify.success(res.data.data);
-					} else {
-						this.$refs.uNotify.error(res.data.msg);
-					}
-				});
-			},
-
-			seedetail(e) {
-				uni.navigateTo({
-					url: `/pages/Workorder/Intelligentdoorlock/Tenantdetails/Tenantdetails?companyOrgId=${e.roomid}`,
-				});
-			},
-			kaimen(e) {
-				uni.navigateTo({
-					url: `/pages/Workorder/Intelligentdoorlock/Dooropeningrecord/Dooropeningrecord?companyOrgId=${e.roomid}`,
-				});
-			},
-			// setPwd(deviceId) {
-			// 	this.showms = true;
-			// 	this.dataForm.deviceId = deviceId;
-			// },
-			confirmPwd(deviceId) {
-				this.$api
-					.post("/lock/getTempPwd", {
-						tempPwd: '123456',
-						deviceId: deviceId,
-					})
-					.then((res) => {
-						if (res.data.code == 0) {
-							this.showms = false;
-							uni.showModal({
-								title: '提示',
-								showCancel:false,
-								content:'临时密码是:'+res.data.data,
-								success: function (res) {
-									
-								}
-							});
-						} else {
-							this.$refs.uNotify.error(res.data.msg);
-						}
-					});
-			},
-			closems() {
-				this.showms = false;
-			},
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return;
-				}
-			},
-			getalldata() {
-				this.$api.post("/lock/page", this.dataForm).then((res) => {
-					this.totalnumber = res.data.data.total;
-					if (res.data.data.list.length != 0) {
-						this.indexList.push(...res.data.data.list);
-						this.dataForm.currentPage = this.dataForm.currentPage + 1;
-						this.pd = true;
-					} else {
-						uni.showToast({
-							title: "暂无更多数据了",
-							icon: "none",
-							duration: 1500,
-						});
-						this.pd = false;
-					}
-				});
-			},
-		},
-	};
-</script>
-
-<style lang="scss">
-	.Callfee{
-		width: 100%;
-		border-top: 1px solid #eee;
-		padding: 20rpx 0;
-		margin-top: 24rpx;
-		display: flex;
-		justify-content: flex-end;
-		span{
-			padding: 10rpx 16rpx;
-			border: 1px solid #2E69EB;
-			border-radius: 8rpx;
-			font-size: 24rpx;
-			color: #2E69EB;
-			margin-right: 24rpx;
-		}
-	}
-
-	.companylist {
-		margin: 24rpx 32rpx 0;
-		background: #fff;
-		padding: 24rpx 32rpx 0;
-		border-radius: 8rpx;
-		position: relative;
-
-		h3 {
-			margin-bottom: 24rpx;
-		}
-
-		.Currentamount {
-			margin-bottom: 4rpx;
-			color: #999;
-
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-	}
-</style>

+ 0 - 171
pages/Workorder/Intelligentdoorlock/Tenantdetails/Tenantdetails.vue

@@ -1,171 +0,0 @@
-<template>
-	<view class="billall">
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true' style="height:400px;flex:1;">
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist">
-						<h3>{{item.roomName}}</h3>
-						<view class="Currentamount">
-							房间编号:{{item.roomId}}
-						</view>
-						<view class="Currentamount">
-							租户名称: {{item.tenantsName}}
-						</view>
-						<view class="Currentamount">
-							门锁密码:{{item.issuedData}}
-						</view>
-						<view class="Currentamount">
-							区域名称: {{item.areaName}}
-						</view>
-						<view class="Currentamount">
-							更新时间: {{item.updateDate}}
-						</view>
-					</view>
-
-				</u-list-item>
-			</u-list>
-
-		</view>
-
-
-
-	</view>
-</template>
-
-<script>
-	export default {
-
-		data() {
-
-			return {
-				totalnumber: 0,
-				setyesno: true,
-
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					"currentPage": 1,
-					"deviceId": "",
-					"pageSize": 10,
-					"roomId": "",
-					"tempPwd": "",
-					"tenantsId": "",
-					"userName": ""
-				},
-
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				pd: true,
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-
-		onLoad(options) {
-			this.dataForm.roomId = options.companyOrgId;
-			this.getalldata();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-
-			getalldata() {
-				this.$api.post('/lock/userPage', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.currentPage = this.dataForm.currentPage + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-					})
-			},
-
-
-
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.billall {
-		height: 100%
-	}
-
-	.u-listdata {
-		height: 100%;
-		display: flex;
-		flex-direction: column;
-	}
-
-	.companylist {
-		margin: 0 32rpx 24rpx;
-		background: #fff;
-		padding: 24rpx 32rpx;
-		border-radius: 8rpx;
-		position: relative;
-
-		h3 {
-			margin-bottom: 16rpx;
-		}
-
-		.Currentamount {
-			margin-bottom: 8rpx;
-			color: #999;
-
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-
-	}
-</style>

+ 0 - 967
pages/Workorder/Remotecontrol/Remotecontrol.vue

@@ -1,967 +0,0 @@
-<template>
-	<view>
-
-		<!-- 	<view class="position">
-			<picker mode="multiSelector" @columnchange="bindMultiPickerColumnChange"
-				@change="(val)=>confirmHandle(val,'position')" :range="positionList" style="width:100%;height: 100%;"
-				range-key="orgName">
-				<u-icon name="map-fill" color="#fff" class="inline"></u-icon>
-				<view class="uni-input inline positionName">{{name}}</view>
-				<u-icon name="arrow-rightward" class="inline" color="#fff"></u-icon>
-			</picker>
-		</view> -->
-
-		<u-cell-group class="toptemplate">
-			<u-cell :title="mytitle" @click="floorchange" :border="false">
-				<u-icon slot="icon" size="40" color="#fff" name="map"></u-icon>
-				<u-icon slot="right-icon" size="40" color="#fff" name="search"></u-icon>
-			</u-cell>
-		</u-cell-group>
-
-		<view class="form">
-			<view class="drawdownMenu">
-				<picker @change="(val)=>confirmHandle(val,'deviceType')" :value="deviceTypeIndex"
-					:range="deviceTypeList" style="width:100%;height: 100%;" range-key="dictLabel">
-					<view class="uni-input">{{deviceTypeList[deviceTypeIndex].dictLabel}}</view>
-					<u-icon name="arrow-down-fill" color="#666" size="16" class="inline"></u-icon>
-				</picker>
-			</view>
-			<!-- <view class="drawdownMenu">
-				<picker @change="(val)=>confirmHandle(val,'deviceStatus')" :value="deviceStatusIndex"
-					:range="deviceStatusList" style="width:100%;height: 100%;" range-key="text">
-					<view class="uni-input">{{deviceStatusList[deviceStatusIndex].text}}</view>
-					<u-icon name="arrow-down-fill" color="#666" size="16" class="inline"></u-icon>
-				</picker>
-			</view> -->
-		</view>
-		<view class="total">
-			共有<text style="color: #f44;">{{total}}</text>条记录
-		</view>
-		<!-- 列表 -->
-		<view class="list">
-			<template v-if="deviceType == 'AirConditioner'">
-				<view class="each c" v-for="(item,index) in dataList"
-					:class="'bg'+(item.attributeList.length==0?'':item.attributeList[2].value)">
-					<div class="top1">
-						<template v-if="item.attributeList.length!=0">
-							<image v-if="item.attributeList[2].value == '1'"
-								src="../../../static/management/taiyang.png"></image>
-							<image v-if="item.attributeList[2].value == '2'||item.attributeList[2].value == '0'"
-								src="../../../static/management/zl.png"></image>
-							<image v-if="item.attributeList[2].value == '4'" src="../../../static/management/auto.png"
-								</image>
-								<image v-if="item.attributeList[2].value == '8'" src="../../../static/management/cs.png"
-									</image>
-						</template>
-						<view class="l1">{{item.airConditionerName}}</view>
-						<view class="l2">{{ item.installSite }}{{ item.roomNumbers }}</view>
-						<view class="l3">{{item.attributeList.length==0?'--':item.attributeList[5].value}}℃</view>
-						<view class="l4">室温:{{ item.attributeList.length==0?'--':item.attributeList[4].value }}℃
-						</view>
-					</div>
-					</div>
-					<view class="operation" v-if="item.attributeList&&item.attributeList.length!=0">
-						<picker
-							@change="(val)=>confirmHandle(val,'modeType',item.deviceId,item.attributeList[2].sensorAddress)"
-							:value="item.attributeList[2].value|findInd(modeTypeList)" :range="modeTypeList"
-							style="width:100%;height: 100%;" range-key="dictLabel">
-							<view class="uni-input">{{findInd2(item.attributeList[2].value,modeTypeList)}}</view>
-							<u-icon name="arrow-down" color="#999" size="16" class="inline"></u-icon>
-						</picker>
-						<picker
-							@change="(val)=>confirmHandle(val,'temp',item.deviceId,item.attributeList[5].sensorAddress)"
-							:value="item.attributeList[5].value|findInd(temperatureList)" :range="temperatureList"
-							style="width:100%;height: 100%;">
-							<view class="uni-input">{{item.attributeList[5].value}}</view>
-							<u-icon name="arrow-down" color="#999" size="16" class="inline"></u-icon>
-						</picker>
-						<picker
-							@change="(val)=>confirmHandle(val,'speedType',item.deviceId,item.attributeList[0].sensorAddress)"
-							:value="item.attributeList[0].value|findInd(speedTypeList)" :range="speedTypeList"
-							style="width:100%;height: 100%;" range-key="dictLabel">
-							<view class="uni-input">{{findInd2(item.attributeList[0].value,speedTypeList)}}</view>
-							<u-icon name="arrow-down" color="#999" size="16" class="inline"></u-icon>
-						</picker>
-					</view>
-					<view class="operation" v-else>
-						<picker style="width:100%;height: 100%;">
-							<view class="uni-input">--</view>
-							<u-icon name="arrow-down" color="#999" size="16" class="inline"></u-icon>
-						</picker>
-						<picker style="width:100%;height: 100%;">
-							<view class="uni-input">--</view>
-							<u-icon name="arrow-down" color="#999" size="16" class="inline"></u-icon>
-						</picker>
-						<picker style="width:100%;height: 100%;">
-							<view class="uni-input">--</view>
-							<u-icon name="arrow-down" color="#999" size="16" class="inline"></u-icon>
-						</picker>
-					</view>
-					<switch :checked="item.attributeList[3].value==1?true:false" v-if="item.attributeList.length!=0"
-						@click="(val)=>changeSwitch('AirConditioner', item.attributeList[3].value, item.deviceId, index,item.attributeList[3].sensorAddress)"
-						style="transform:scale(0.7)" class="switch" disabled />
-				</view>
-			</template>
-			<template v-if="deviceType == 'Relay'">
-				<view :class="item.status==0?'each':'each on2'" v-for="(item,index) in dataList">
-					<div class="top">
-						<view class="l1">{{item.controlName}}</view>
-						<view class="l2">空间信息:{{ item.installSite }}</view>
-						<div class="open">
-							<image src="../../../static/management/kg.png" @click="control(item.deviceId, item.status)">
-							</image>
-							<p>{{ item | delStatus }}</p>
-						</div>
-					</div>
-					<div class="operation2" v-if="item.attributeList && item.attributeList.length > 0">
-						<div v-for="(ope, index2) in item.relayNames" :key="index2" class="s">
-							<p>{{ ope.name }}</p>
-							<u-switch :value="item.attributeList[index2].value | delTimestamp" active-value="a"
-								inactive-value="b" @change="handleChange(
-							                    'switch',
-							                    $event,
-							                    index,
-							                    item.attributeList[index2].sensorAddress
-							                  )
-							                " style="margin: 0 auto;height: 16px;"></u-switch>
-						</div>
-					</div>
-				</view>
-			</template>
-		</view>
-
-		<u-picker :show="showfloor" ref="uPicker" @confirm="confirmfloor" @cancel='cancelfloor' :columns="columns"
-			keyName="orgName" @change="changeHandler" visibleItemCount="7" itemHeight="70"></u-picker>
-	</view>
-
-</template>
-
-<script>
-	import {
-		isEmpty,
-		getDictDataList,
-		getUrlKey
-	} from "@/utils/index";
-	import Api from "./@/http/Api.js";
-	export default {
-		data() {
-			return {
-				showfloor: false,
-				showtype: false,
-				modeTypeList: [],
-				modeTypeIndex: 0,
-				temperatureList: [],
-				columns: [],
-				speedTypeList: [],
-				speedTypeIndex: 0,
-				dataForm: {
-					page: 1,
-					limit: 10,
-					opStatus: '',
-					buildingId: "",
-					storeyId: "",
-					status: "",
-					controlCategory: "CommonLighting",
-				},
-				mytitle: '',
-				total: 0,
-				refreshing: false,
-				finished: false,
-				deviceTypeIndex: 0,
-				deviceStatusIndex: 0,
-				name: '跨境电商',
-				projectName: '',
-				p1: 0,
-				p2: 0,
-				positionList: [
-					[],
-					[]
-				],
-				columnData: [],
-				deviceType: "AirConditioner",
-				deviceStatus: '',
-				deviceTypeList: [],
-				dataList: [],
-				deviceStatusList: [{
-						text: "全部",
-						value: ""
-					},
-					{
-						text: "开启",
-						value: 1
-					},
-					{
-						text: "关闭",
-						value: 0
-					},
-				],
-			}
-		},
-		onPullDownRefresh() {
-			this.onRefresh();
-		},
-		onReachBottom() {
-			if (!this.finished) {
-				this.dataForm.page++;
-				this.getDataList();
-			}
-		},
-		onLoad(v) {
-			uni.setNavigationBarTitle({
-				title: v.type == 1 ? '空调控制' : '照明控制'
-			})
-			if (v.type == 1) {
-				this.deviceType = "AirConditioner";
-				this.deviceTypeIndex = 0;
-			} else {
-				this.deviceType = 'Relay';
-				this.deviceTypeIndex = 1;
-			}
-			let getDictDataList = uni.getStorageSync('getDictDataList');
-			for (let i = 0; i < getDictDataList.length; i++) {
-				if (getDictDataList[i].dictType == 'ModeType') {
-					this.modeTypeList = getDictDataList[i].dataList
-					this.modeTypeList.push({
-						dictLabel: "制冷",
-						dictTypeId: "1610183082852225025",
-						dictValue: "0"
-					})
-				}
-
-				if (getDictDataList[i].dictType == 'SpeedType') {
-					this.speedTypeList = getDictDataList[i].dataList
-				}
-
-				if (getDictDataList[i].dictType == 'DeviceCategory') {
-					this.deviceTypeList = getDictDataList[i].dataList;
-
-					this.deviceTypeList.forEach((item) => {
-						item.text = item.dictLabel;
-						item.value = item.dictValue;
-					});
-					this.deviceTypeList = this.deviceTypeList.filter(
-						(item) => item.value != "WaterMeter" && item.value != "Ammeter"
-					);
-				}
-			}
-
-
-
-			this.getBuildList();
-			//	this.getDeviceTypeList();
-
-			this.setTemperatureList();
-			this.getDataList()
-		},
-		watch: {
-			"dataForm.buildingId"(newval, oldval) {
-				if (newval != oldval) {
-					this.onRefresh();
-				}
-			},
-			"dataForm.storeyId"(newval, oldval) {
-				if (newval != oldval) {
-					this.onRefresh();
-				}
-			},
-		},
-		filters: {
-			delTimestamp(val) {
-				if (!val) return "b";
-				if (val.indexOf("n") > -1) {
-					return 'a'; //开a
-				} else {
-					return 'b'; //关b
-				}
-			},
-			delStatus(item) {
-				let status = 0;
-				if (item.attributeList && item.attributeList.length > 0) {
-					for (let i = 0; i < item.relayNames.length; i++) {
-						if (
-							item.attributeList[i].value &&
-							item.attributeList[i].value.indexOf("n") > -1
-						) {
-							status++;
-						} else {
-							status--;
-						}
-					}
-					if (status == item.relayNames.length) {
-						item.status = 1;
-						return "全关";
-					}
-					if (status == 0 - item.relayNames.length) {
-						item.status = 0;
-						return "全开";
-					}
-					return "全关";
-				} else {
-					return "全关";
-				}
-			},
-			findInd(val, list) {
-				if (isEmpty(val)) {
-					return 0;
-				}
-				if (list.length > 5) {
-					return list.findIndex((item) => item == val);
-				} else {
-					return list.findIndex((item) => parseFloat(item.dictValue) == val);
-				}
-
-			}
-		},
-		methods: {
-			handleChange(type, val, index, identifier) {
-				let that = this;
-				if (type == "switch") {
-					let msg = "";
-					let deviceId = this.dataList[index].deviceId;
-					let params = {
-						// keyword: "setRelay",
-						value: val,
-						deviceId: deviceId,
-						identifier: identifier,
-						action: 0,
-					};
-					if (val == "a") {
-						msg = "开启";
-					}
-					if (val == "b") {
-						msg = "关闭";
-					}
-					uni.showModal({
-						title: '提示',
-						content: `确定执行${msg}操作`,
-						success(res) {
-							if (res.confirm) {
-								that.switchLighting(type, params, index, msg, identifier);
-							} else {
-								uni.showToast({
-									icon: 'none',
-									title: '已取消'
-								})
-							}
-
-						},
-
-					})
-				}
-			},
-			switchLighting(type, val, index, msg, identifier) {
-				uni.showLoading({
-					title: `正在${msg},请稍后`
-				});
-				if (type == "switch") {
-					Api.setControlElec(val).then((res) => {
-						uni.hideLoading()
-						if (res.data.code == 0) {
-							this.dataForm.page = 1;
-							this.getDataList();
-							uni.showToast({
-								title: '操作成功'
-							})
-						}
-					});
-				}
-			},
-			findInd2(val, list) {
-				if (isEmpty(val)) {
-					return 0;
-				}
-				if (list.find((item) => parseFloat(item.dictValue) == val)) {
-					return list.find((item) => parseFloat(item.dictValue) == val).dictLabel;
-				} else {
-					return list[0].dictLabel
-				}
-			},
-
-			floorchange() {
-				this.showfloor = true;
-			},
-			confirmfloor(e) {
-				let a = "";
-				let b = "";
-				if (e.value[0]) {
-					a = e.value[0].orgName == '全部' ? '跨境电商' : e.value[0].orgName;
-					this.dataForm.buildingId = e.value[0].orgId;
-					this.dataForm.storeyId = "";
-				}
-				if (e.value[1]) {
-					b = e.value[1].orgName == '全部' ? '' : e.value[1].orgName;
-					this.dataForm.storeyId = e.value[1].orgId ? e.value[1].orgId : '';
-				}
-				this.mytitle = a + b;
-				this.showfloor = false;
-				this.dataList = []; // 清空数组
-				this.dataForm.page = 1;
-				this.getDataList()
-			},
-			cancelfloor() {
-				this.showfloor = false;
-			},
-			changeHandler(e) {
-				const {
-					columnIndex,
-					index,
-					// 微信小程序无法将picker实例传出来,只能通过ref操作
-					picker = this.$refs.uPicker
-				} = e
-				if (columnIndex === 0) {
-					this.loading = true
-					picker.setColumnValues(1, this.columnData[index])
-					this.loading = false
-				}
-				// this.dataList = []; // 清空数组
-				// this.dataForm.page = 1;
-				// this.getDataList()
-			},
-			//获取楼栋
-			getBuildList() {
-				this.$api.get('/control/getOrgStructureTree/', {})
-					.then(res => {
-
-						if (res.data.code == 0) {
-							let json = [{
-								category: "s",
-								childrenList: null,
-								orgId: "",
-								orgName: "全部",
-							}];
-							this.dataForm.projectId = res.data.data[0].orgId;
-
-							this.mytitle = res.data.data[0].orgName;
-							this.alldata = res.data.data[0].childrenList;
-							this.columns = [
-								json.concat(res.data.data[0].childrenList),
-								[]
-							]
-							let allfloor = [
-								[]
-							];
-							for (let i = 0; i < res.data.data[0].childrenList.length; i++) {
-								allfloor.push(json.concat(res.data.data[0].childrenList[i].childrenList));
-							}
-							this.columnData = allfloor;
-							this.dataList = []; // 清空数组
-							this.dataForm.page = 1;
-							//this.getDataList()
-						} else {
-							this.showdct = true
-						}
-					})
-			},
-			control(deviceId, status) {
-				let msg = status == 0 ? '全开' : '全关';
-				let that = this;
-				uni.showModal({
-					title: '提示',
-					content: `确定执行${msg}操作`,
-					success(res) {
-						if (res.confirm) {
-							uni.showLoading({
-								title: "正在操作,请稍后。。。",
-							})
-							Api.setControlElec({
-								action: 0,
-								identifier: "",
-								deviceId: deviceId,
-								value: status == 0 ? "qk" : "qg",
-							}).then((res) => {
-								uni.hideLoading()
-								if (res.data.code == 0) {
-									this.dataForm.page = 1;
-									that.getDataList();
-									uni.showLoading({
-										title: "操作成功",
-									})
-								}
-							});
-						} else {
-							uni.showToast({
-								icon: 'none',
-								title: '已取消'
-							})
-						}
-					},
-
-				})
-			},
-			setTemperatureList() {
-				this.temperatureList = [];
-				for (let i = 16; i < 33; i++) {
-					this.temperatureList.push(i);
-				}
-			},
-			confirmHandle(e, type, deviceId, identifier) {
-				this.dataForm.page = 1;
-				if (type == 'position') {
-					// this.p1 = e.detail.value[0];
-					// this.p2 = e.detail.value[1];
-					// this.dataForm.buildingId = this.p1 == 0 ? '' : this.positionList[0][this.p1].orgId;
-					// this.dataForm.storeyId = this.p2 == 0 ? "" : this.positionList[1][this.p2].orgId;
-					// let buildName = this.p1 == 0 ? "" : '-' + this.positionList[0][this.p1].orgName;
-					// let storeyName = this.p2 == 0 ? "" : '-' + this.positionList[1][this.p2].orgName;
-					// this.name = this.projectName + buildName + storeyName;
-				} else {
-					let index = type + "Index";
-					this[index] = e.detail.value;
-					if (type == "deviceType") {
-						this.deviceType = this.deviceTypeList[e.detail.value].value;
-						this.onRefresh();
-					}
-					if (type == "deviceStatus") {
-						this.deviceStatus = this.deviceStatusList[e.detail.value].value;
-						this.dataForm.status = this.deviceStatus;
-						this.dataForm.opStatus = this.deviceStatus;
-						this.onRefresh();
-					}
-					if (type == "modeType" || type == "speedType" || type == "temp") {
-						let data = "";
-						if (type == 'modeType') {
-							data = this.modeTypeList[e.detail.value].dictValue;
-						}
-						if (type == 'speedType') {
-							data = this.speedTypeList[e.detail.value].dictValue;
-						}
-						if (type == 'temp') {
-							data = this.temperatureList[e.detail.value];
-						}
-						this.onConfirmMode(data, deviceId, identifier);
-					}
-				}
-
-
-			},
-			//刷新
-			onRefresh() {
-				this.finished = false;
-				// 重新加载数据
-				this.dataList = [];
-				// 将 loading 设置为 true,表示处于加载状态
-				this.total = 0;
-				this.loading = true;
-				this.dataForm.page = 1; // 分页数赋值为1
-				this.loadData();
-			},
-			//加载数据
-			loadData() {
-				setTimeout(async () => {
-					if (this.refreshing) {
-						this.dataList = [];
-						this.refreshing = false;
-					}
-					await this.getDataList();
-					//this.dataForm.page++; // 分页数加一
-				}, 100);
-			},
-			getDataList() {
-				if (this.deviceType == "AirConditioner") {
-					this.getAircond();
-				}
-				if (this.deviceType == "Relay") {
-					this.getElec();
-				}
-			},
-			// getDeviceTypeList() {
-			// 	this.deviceTypeList = JSON.parse(
-			// 		JSON.stringify(getDictDataList("DeviceCategory"))
-			// 	);
-			// 	this.deviceTypeList.forEach((item) => {
-			// 		item.text = item.dictLabel;
-			// 		item.value = item.dictValue;
-			// 	});
-			// 	this.deviceTypeList = this.deviceTypeList.filter(
-			// 		(item) => item.value != "WaterMeter" && item.value != "Ammeter"
-			// 	);
-			// },
-			getAircond() {
-				this.dataForm.status = "";
-				Api.airconditioner(this.dataForm).then((res) => {
-					uni.stopPullDownRefresh();//停止刷新
-					if (res.data.code == 0) {
-						if (res.data.data) {
-							if (res.data.data.list.length == 0) {
-								// 判断获取数据条数若等于0
-								this.dataList = []; // 清空数组
-								this.finished = true; // 停止加载
-							}
-							// 若数据条数不等于0
-							if (this.dataForm.page == 1) {
-								this.dataList = res.data.data.list;
-							} else {
-								this.dataList.push(...res.data.data.list); // 将数据放入list中
-							}
-							this.loading = false; // 加载状态结束
-							this.total = res.data.data.total;
-
-							// 如果list长度大于等于总数据条数,数据全部加载完成
-							if (this.dataList.length >= res.data.data.total) {
-								this.finished = true; // 结束加载状态
-							}
-						} else {
-							// 判断获取数据条数若等于0
-							this.dataList = []; // 清空数组
-							this.finished = true; // 停止加载
-						}
-					} else {
-						this.loading = false; // 加载状态结束
-						this.finished = true; // 停止加载
-					}
-				});
-			},
-
-			getElec() {
-				Api.getElec(this.dataForm).then((res) => {
-					uni.stopPullDownRefresh();//停止刷新
-					if (res.data.code == 0) {
-						if (res.data.data) {
-							if (res.data.data.list.length == 0) {
-								// 判断获取数据条数若等于0
-								this.dataList = []; // 清空数组
-								this.finished = true; // 停止加载
-							}
-							// 若数据条数不等于0
-							if (this.dataForm.page == 1) {
-								this.dataList = res.data.data.list;
-							} else {
-								this.dataList.push(...res.data.data.list); // 将数据放入list中
-							}
-							this.loading = false; // 加载状态结束
-							this.total = res.data.data.total;
-							// 如果list长度大于等于总数据条数,数据全部加载完成
-							if (this.dataList.length >= res.data.data.total) {
-								this.finished = true; // 结束加载状态
-							}
-						} else {
-							// 判断获取数据条数若等于0
-							this.dataList = []; // 清空数组
-							this.finished = true; // 停止加载
-						}
-					} else {
-						this.loading = false; // 加载状态结束
-						this.finished = true; // 停止加载
-					}
-				});
-			},
-			//下发指令开关
-			changeSwitch(type, val, deviceId, index, identifier) {
-				let that=this;
-				let msg = "";
-				if (!val) {
-					msg = "开启";
-				} else {
-					msg = "关闭";
-				}
-				uni.showModal({
-					title: '提示',
-					content: `请确认是否【${msg}】此设备`,
-					success: function(res) {
-						if (res.confirm) {
-							if (type == "AirConditioner") {
-								Api.setControl({
-									identifier: identifier,
-									action: 0,
-									value: val? 0 : 1,
-									deviceId: deviceId,
-								}).then((res) => {
-									if (res.data.code == 0) {
-										that.dataList[index].attributeList[3].value = val?0:1;
-										uni.showToast({
-											title: '操作成功',
-											duration: 2000
-										});
-									} else {
-										uni.showToast({
-											title: '操作失败',
-											duration: 2000
-										});
-									}
-								});
-							}
-							if (type == "Relay") {
-								Api.setControlElec({
-									identifier: identifier,
-									action: 0,
-									value: val.detail.value ? 1 : 0,
-									deviceId: deviceId,
-								}).then((res) => {
-									if (res.data.code == 0) {
-										this.dataList[index].status = val;
-										uni.showToast({
-											title: '操作成功',
-											duration: 2000
-										});
-									} else {
-										uni.showToast({
-											title: '操作失败',
-											duration: 2000
-										});
-									}
-								});
-							}
-						} else if (res.cancel) {
-							console.log('用户点击取消');
-						}
-					}
-				});
-			},
-			onConfirmMode(data, deviceId, identifier) {
-				let deviceCommandDTO = {
-					action: 0,
-					identifier: identifier,
-					value: data,
-					deviceId: deviceId,
-				};
-				// switch (module) {
-				// 	case "modeTypeList":
-				// 		deviceCommandDTO = {
-				// 			action: 0,
-				// 			identifier:identifier,
-				// 			value: data,
-				// 			deviceId: deviceId,
-				// 		};
-				// 		break;
-				// 	case "temperatureList":
-				// 		deviceCommandDTO = {
-				// 			keyword: "setTemp",
-				// 			param: data,
-				// 			deviceId: deviceId,
-				// 		};
-				// 		break;
-				// 	case "speedTypeList":
-				// 		deviceCommandDTO = {
-				// 			keyword: "setFan",
-				// 			param: data,
-				// 			deviceId: deviceId,
-				// 		};
-				// 		break;
-				// }
-				Api.setControl(deviceCommandDTO).then((res) => {
-					//this.$toast.clear();
-					if (res.data.code == 0) {
-						uni.showToast({
-							title: '操作成功',
-							duration: 2000
-						});
-						this.onRefresh();
-					}
-				});
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.uni-input {
-		margin-right: 4px;
-	}
-
-	.uni-input,
-	.inline {
-		display: inline-block;
-	}
-
-	.form {
-		display: flex;
-		height: 48px;
-		align-items: center;
-		background-color: #fff;
-
-		.drawdownMenu {
-			display: flex;
-			text-align: center;
-			min-width: 50%;
-			flex: 1;
-		}
-	}
-
-	.header {
-		background-color: #5c8fff;
-		height: 25px;
-
-	}
-
-	.position {
-		font-size: 16px;
-		color: #fff;
-		padding: 10px 16px;
-		background: #5c8fff;
-
-		.positionName {
-			margin: 0 5px;
-		}
-	}
-
-	.total {
-		padding: 0 16px;
-		margin: 8px 0;
-		line-height: 15px;
-		display: flex;
-		text-align: left;
-
-		text {
-			font-size: 15px;
-			vertical-align: middle;
-		}
-	}
-
-	.list {
-		padding: 0 16px;
-
-		.each {
-			background: #ffffff;
-			box-shadow: 0px 0px 10px 0px rgba(153, 153, 153, 0.15);
-			border-radius: 4px;
-			margin-bottom: 12px;
-			position: relative;
-			box-shadow: 0px 0px 2px 4px rgba(87, 134, 238, 0.03);
-
-			&.on2 {
-				background: linear-gradient(to bottom,
-						rgba(255, 155, 37, 0.25),
-						rgba(255, 234, 200, 0.13),
-						rgba(255, 255, 255, 0.04));
-
-			}
-
-			&.c {
-				display: flex;
-				flex-direction: column;
-
-				.top1 {
-					padding: 16px 20px;
-					border-bottom: 1px solid #E6E7EA;
-
-					image {
-						width: 54px;
-						height: 56px;
-						position: absolute;
-						left: 0;
-						top: 0;
-						z-index: 1;
-					}
-				}
-			}
-
-			&.bg0,
-			&.bg2 {
-				background: linear-gradient(to bottom, #D2F0FF, #FFFFFF)
-			}
-
-			&.bg1 {
-				background: linear-gradient(to bottom, #FFE2DF, #FFFFFF)
-			}
-
-			&.bg4 {
-				background: linear-gradient(to bottom, #DDF8DC, #FFFFFF)
-			}
-
-			&.bg8 {
-				background: linear-gradient(to bottom, #DEE4FE, #FFFFFF)
-			}
-
-			.top {
-				padding: 16px 20px;
-				border-bottom: 1px solid #ddd;
-				position: relative;
-
-				.open {
-					position: absolute;
-					right: 0;
-					top: 0;
-					height: 100%;
-					width: 60px;
-					display: flex;
-					flex-direction: column;
-					justify-content: space-between;
-					align-items: center;
-					color: #2e69eb;
-					font-size: 14px;
-					padding: 12px 0;
-					border-left: 1px solid #e6e7ea;
-					box-sizing: border-box;
-
-					image {
-						width: 28px;
-						height: 26px;
-						cursor: pointer;
-					}
-				}
-			}
-
-			.l1 {
-				height: 22px;
-				font-size: 16px;
-				color: #0c1935;
-				line-height: 22px;
-				margin-bottom: 2px;
-			}
-
-			.l2 {
-				font-size: 12px;
-				color: #697081;
-			}
-
-			.l3 {
-				text-align: center;
-				font-size: 32px;
-			}
-
-			.l4 {
-				text-align: right;
-				font-size: 14px;
-				color: #0C1935;
-			}
-
-			.operation {
-				display: flex;
-				width: 100%;
-				position: relative;
-				font-size: 14px;
-				padding: 18px;
-				text-align: center;
-				box-sizing: border-box;
-
-				.uni-input {
-					color: #2e69eb;
-				}
-
-			}
-
-			.switch {
-				position: absolute;
-				right: 10px;
-				font-size: 18px;
-				top: auto;
-				z-index: 1;
-
-			}
-
-
-			.operation2 {
-				width: 100%;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				box-sizing: border-box;
-
-				.s {
-					flex: 1;
-					width: 200px;
-					text-align: center;
-					line-height: 26px;
-					padding: 10px 0;
-					font-size: 14px;
-					color: #697081;
-					border-right: 1px solid #ddd;
-
-					&:last-child {
-						border-right: none;
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 334
pages/Workorder/Tenantbill/Tenantbill.vue

@@ -1,334 +0,0 @@
-<template>
-	<view class="page">
-		<view class="contain">
-			<u-cell-group class="toptemplate" style="flex:0">
-				<u-cell :title="mytitle" @click="floorchange">
-					<u-icon slot="icon" size="40" color="#fff" name="map"></u-icon>
-					<u-icon slot="right-icon" size="40" color="#fff" name="search"></u-icon>
-				</u-cell>
-			</u-cell-group>
-			<view class="topbill">
-				<view class="topbilledit">
-					<view class="changetime1">
-						<picker mode="date" :value="myday" fields="month" @change="dateChange">
-							<view class="selestDate">{{myday}}</view>
-						</picker>
-					</view>
-					<view class="changetime2">
-						<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-					</view>
-				</view>
-				<view class="topbilledit" @click="typechange">
-					<view class="changetime1">
-						{{mytype}}
-					</view>
-					<view class="changetime2">
-						<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-					</view>
-				</view>
-			</view>
-			<view class="u-listdata">
-				<view style="padding:16rpx 0 16rpx 32rpx">
-					共有 <span style="color: red">{{totalnumber}}</span>条记录
-				</view>
-				<u-list @scrolltolower="scrolltolower" :pagingEnabled='true' style="height:400px;flex:1;">
-					<u-list-item v-for="(item, index) in indexList" :key="index">
-						<view class="companylist" @click="seedetail(item)">
-							<view class="settled outstanding" v-if="item.status==1">
-								已结清
-							</view>
-							<view class="outstanding" v-if="item.status==0">
-								未结清
-							</view>
-							<h3>{{item.name}}</h3>
-							<view class="Currentamount">
-								本期金额: <span>¥{{item.feeTotal}}</span>
-							</view>
-							<view class="Currentamount">
-								账户余额:¥{{item.balance}}
-							</view>
-							<view class="Currentamount">
-								联系电话: {{item.tel}}
-							</view>
-						</view>
-					</u-list-item>
-				</u-list>
-			</view>
-		</view>
-		<u-picker :show="showtype" :itemHeight="80" :columns="columnstype" keyName="label" @confirm="confirmtype"
-			@cancel='canceltype'>
-		</u-picker>
-		<u-picker :show="showfloor" :itemHeight="80" ref="uPicker" :loading="loading" @confirm="confirmfloor"
-			@cancel='cancelfloor' :columns="columns" keyName="orgName" @change="changeHandler"></u-picker>
-		<u-notify ref="uNotify" :show="showdct" message="服务器请求失败"></u-notify>
-
-	</view>
-</template>
-
-<script>
-	export default {
-		components: {},
-		data() {
-			const currentDate = this.getDate({
-				format: 'yyyy-mm'
-			})
-			return {
-				totalnumber: 0,
-				indexList: [],
-				dataForm: {
-					projectId: "",
-					buildingId: "",
-					storeyId: "",
-					cycle: "",
-					status: "",
-					page: 1,
-					limit: 10,
-				},
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				pd: true,
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-				myday: currentDate,
-				columnstype: [
-					[{
-							label: '全部',
-							id: ''
-						}, {
-							label: '未结清',
-							id: 0
-						},
-						{
-							label: '已结清',
-							id: 1
-						}
-					]
-				],
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			this.getfloor();
-
-		},
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-		methods: {
-			seedetail(e) {
-				let faltesdata = {
-					name: e.name,
-					id: e.id,
-					cycle: e.cycle
-				}
-				uni.navigateTo({
-					url: "/pages/Workorder/Tenantbill/companybill/companybill?para=" + encodeURIComponent(JSON
-						.stringify(faltesdata))
-				})
-			},
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-			getalldata() {
-				this.$api.get('/billinfo/paypage', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-					})
-			},
-			canceltype() {
-				this.showtype = false;
-			},
-			confirmtype(e) {
-				this.showtype = false;
-				this.mytype = e.value[0].label;
-				this.dataForm.status = e.value[0].id;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.getalldata();
-			},
-			typechange() {
-				this.showtype = true;
-			},
-			dateChange(e) {
-				this.myday = e.target.value;
-				this.dataForm.cycle = e.target.value;
-				this.dataForm.page = 1;
-				this.indexList = [];
-				this.getalldata();
-			},
-			getDate(type) {
-				const date = new Date();
-				let year = date.getFullYear();
-				let month = date.getMonth();
-				if (type === 'start') {
-					year = year - 60;
-				} else if (type === 'end') {
-					year = year + 2;
-				}
-				month = month > 9 ? month : '0' + month;
-				// day = day > 9 ? day : '0' + day;
-				return `${year}-${month}`;
-			},
-			getfloor() {
-				this.$api.get('/control/getOrgStructureTree/', {})
-					.then(res => {
-						if (res.data.code == 0) {
-							this.dataForm.projectId = res.data.data[0].orgId;
-							this.mytitle = res.data.data[0].orgName;
-							this.alldata = res.data.data[0].childrenList;
-							this.columns = [
-								res.data.data[0].childrenList,
-								res.data.data[0].childrenList[0].childrenList
-							]
-							let allfloor = [];
-							for (let i = 0; i < res.data.data[0].childrenList.length; i++) {
-								allfloor.push(res.data.data[0].childrenList[i].childrenList)
-							}
-							this.columnData = allfloor;
-							this.indexList = [];
-							this.dataForm.page = 1;
-							this.getalldata();
-						} else {
-							this.showdct = true
-						}
-					})
-			},
-			floorchange() {
-				this.showfloor = true;
-			},
-			changeHandler(e) {
-				const {
-					columnIndex,
-					index,
-					// 微信小程序无法将picker实例传出来,只能通过ref操作
-					picker = this.$refs.uPicker
-				} = e
-				if (columnIndex === 0) {
-					this.loading = true
-					picker.setColumnValues(1, this.columnData[index])
-					this.loading = false
-				}
-			},
-			confirmfloor(e) {
-				this.mytitle = e.value[0].orgName + e.value[1].orgName;
-				this.dataForm.buildingId = e.value[0].orgId;
-				this.dataForm.storeyId = e.value[1].orgId;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.showfloor = false;
-				this.getalldata();
-			},
-			cancelfloor() {
-				this.showfloor = false;
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.companylist {
-		margin: 24rpx 32rpx 0;
-		background: #fff;
-		padding: 24rpx 32rpx ;
-		border-radius: 8rpx;
-		position: relative;
-	
-		h3 {
-			margin-bottom: 24rpx;
-		}
-	
-		.Currentamount {
-			line-height: 40rpx;
-			margin-bottom: 6rpx;
-			color: #999;
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-		.outstanding{
-			position: absolute;
-			width:96rpx;
-			height: 48rpx;
-			border-radius: 0 8rpx 0 20rpx;
-			right:0;
-			line-height: 48rpx;
-			text-align: center;
-			top:0;
-			z-index: 1;
-			font-size: 22rpx;
-			background-color:#FA5555 ;
-			color: #fff;
-			&.settled{
-				background-color:#09C700 ;
-			}
-		}
-	
-	}
-	.topbill {
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-		height: 88rpx;
-		background-color: #fff;
-
-		.topbilledit {
-			display: flex;
-			justify-content: space-around;
-			align-items: center;
-		}
-
-		.changetime1 {
-			padding-right: 10rpx;
-		}
-	}
-
-	.page {
-		height: 100%;
-		overflow: hidden;
-
-		.contain {
-			height: 100%;
-			padding: 0;
-			display: flex;
-			flex-direction: column;
-
-			.u-listdata {
-				height: 400px;
-				flex: 1;
-				display: flex;
-				flex-direction: column;
-
-			}
-		}
-	}
-</style>

+ 0 - 676
pages/Workorder/Tenantbill/companybill/companybill.vue

@@ -1,676 +0,0 @@
-<template>
-	<view class="page">
-		<u-tabs :list="tabs" @click="sectionChange" style="background-color: #fff;" :current=current
-			:itemStyle="{'width':'375rpx','padding':'24rpx'}" lineHeight="2px" lineWidth="30px"></u-tabs>
-		<view class="contain" v-show="cdshow==true">
-			<view class="nodata" v-if="nodata==true">
-				暂无数据
-			</view>
-			<template v-if="nodata==false">
-				<!-- <view style="padding:16rpx 0 16rpx 32rpx">
-					共有 <span style="color: red">{{totalnumber}}</span>条记录
-				</view> -->
-				<view class="paisong" style="margin-top: 16rpx;" v-for="(item,index) in billLists">
-					<u-icon name="arrow-up" @click="item.showMore=false" class="iconBtn" size="20px"
-						v-if="item.showMore" color="#999"></u-icon>
-					<u-icon name="arrow-down" @click="item.showMore=true" class="iconBtn" size="22px" color="#999"
-						v-else></u-icon>
-					<view class="title">
-						{{item.costType | getDictLab(that)}}: <span><text class="txt">¥{{item.amount}}</text>
-							<text class="status s1" v-if='item.status==1'>
-								已支付
-							</text>
-							<text class="status s2" v-if='item.status==2'>
-								待支付
-							</text>
-							<text class="status s3" v-if='item.status==3'>
-								支付失败
-							</text></span>
-
-					</view>
-					<template v-if="item.showMore">
-						<view class="subtit" style="margin-top: 16rpx;" v-for="subItem in item.billLists"
-							:key="subItem.id">
-							<template v-if="item.costType!='PropertyFee'">
-								{{subItem.equipName}}:{{subItem.amount}}
-							</template>
-							<template v-else>
-								{{subItem.costType| getDictLab2(that)}}:{{subItem.amount}}
-							</template>
-						</view>
-					</template>
-				</view>
-			</template>
-		</view>
-		<!-- 缴费记录 -->
-		<view class="contain" v-show="cdshow==false">
-			<view class="topbilledit" @click="typechange">
-				<view class="changetime1">
-					{{expensedata}}
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-				</view>
-			</view>
-			<!-- 	列表 -->
-			<view class="nodata" v-if="jfnodata==true">
-				暂无数据
-			</view>
-			<view class="u-listdata" v-if="jfnodata==false">
-				<view style="padding:16rpx 0 16rpx 32rpx">
-					共有 <span style="color: red">{{totalnumber}}</span>条记录
-				</view>
-				<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'
-					style="height:400px;flex:1;padding-bottom: 49px;">
-					<u-list-item v-for="(item, index) in indexList" :key="index">
-						<view class="paisong2">
-							<view class="status" v-if="item.type=='Subsidy'">
-								补助
-							</view>
-							<view class="status s2" v-if="item.type=='PreStorage'">
-								预存
-							</view>
-							<view class="status s3" v-if="item.type=='Refund'">
-								退费
-							</view>
-							<view class="status s4" v-if="item.type=='Water'">
-								水费
-							</view>
-							<view class="status s4" v-if="item.type=='Elec'">
-								电费
-							</view>
-							<view class="status s4" v-if="item.type=='PropertyFee'">
-								物业费
-							</view>
-							<view class="title">{{item.tenantInfo.name}}</view>
-							<view class="subtit">
-								扣缴金额: <span>¥{{item.amount}}</span>
-							</view>
-							<view class="subtit">
-								账户余额: {{item.surplus}}
-							</view>
-							<view class="subtit">
-								租户电话:¥{{item.tenantInfo.tel}}
-							</view>
-							<view class="subtit">
-								操作人: {{item.creator}}
-							</view>
-							<view class="subtit">
-								扣缴时间: {{item.createDate}}
-							</view>
-						</view>
-					</u-list-item>
-				</u-list>
-
-			</view>
-		</view>
-		<view class="Predeposit">
-			<span @click="prestore('预存')">预存</span>
-			<span @click="prestore('补助')">补助</span>
-		</view>
-		<u-picker :show="showtype" :itemHeight="80" :columns="columnstype" keyName="dictLabel" @confirm="confirmtype"
-			@cancel='canceltype'> </u-picker>
-		<u-popup :show="showpayjine" @close="closepay1" mode="bottom" :round="10" :closeable=true
-			:closeOnClickOverlay=true>
-			<view class="paytall1" style="padding-bottom: 20rpx;">
-				<view class="hejitop">
-					{{prestorename}}
-				</view>
-				<view class="zhifufs">
-					<u--form labelWidth="30" labelPosition="left" :model="model1" :rules="rules" ref="uForm">
-						<u-form-item label="¥" prop="userInfo.amount" ref="item1">
-							<u--input v-model="model1.userInfo.amount" border="none" placeholder="点击输入金额"></u--input>
-						</u-form-item>
-					</u--form>
-				</view>
-				<view style="margin:0 32rpx">
-					<u-button type="primary" text="确认支付" @click="Confirmationpaymentjine"></u-button>
-				</view>
-			</view>
-		</u-popup>
-
-		<view class="canys" v-if="zhifucanvas">
-			<h4>请用微信扫码二维码</h4>
-			<canvas class="zhifucanvas" canvas-id='canvas'></canvas>
-			<view class="guanbi">
-				<u-button type="primary" :plain="true" style="border:none" text="关闭" @click="guanbi"></u-button>
-			</view>
-		</view>
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	import qs from 'qs'
-	var QRCode = require('@/utils/qrcode.js');
-	const BaseApi = require("@/http/baseApi.js");
-
-	export default {
-		data() {
-			return {
-				that: this,
-				billstype: [],
-				columnstype: [],
-				PropertyTypedata: [],
-				billLists: [],
-				tabs: [{
-					name: '账单明细',
-				}, {
-					name: '扣缴记录'
-				}],
-				zhifucanvas: false,
-				prestorename: '',
-				model1: {
-					userInfo: {
-						amount: '',
-					},
-				},
-				rules: {
-					'userInfo.amount': {
-						type: 'string',
-						required: true,
-						message: '请填写预存金额',
-						trigger: ['blur', 'change']
-					},
-				},
-				showpayjine: false,
-				totalnumber: 0,
-				jfnodata: false,
-				showtype: false,
-				cdshow: true,
-				fatherparameter: {},
-				expensedata: '全部',
-				list: ['账单明细', '缴费记录', ],
-				current: 0,
-				dataForm: {
-					tenantId: "",
-					costCycle: "",
-					type: "",
-					page: 1,
-					limit: 10,
-				},
-				indexList: [],
-				payStatusList: [],
-				zddata: {
-					amount: '',
-					dtf: '',
-					ktf: '',
-					glf: '',
-				},
-				nodata: true,
-				pd: true,
-				jfpost: {
-					tenantId: "",
-					costCycle: "",
-					type: "",
-					page: 1,
-					limit: 10,
-				},
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad: function(options) {
-			//option为object类型,会序列化上个页面传递的参数
-			this.fatherparameter = JSON.parse(decodeURIComponent(options.para));
-			uni.setNavigationBarTitle({
-				title: this.fatherparameter.name
-			})
-			this.dataForm.tenantId = this.fatherparameter.id;
-			this.dataForm.costCycle = this.fatherparameter.cycle;
-			this.dataForm.page = 1;
-			this.jfpost.tenantId = this.fatherparameter.id;
-			this.jfpost.costCycle = this.fatherparameter.cycle;
-			this.jfpost.page = 1;
-			this.getalldata();
-			var getDictDataList = uni.getStorageSync('getDictDataList');
-			this.billstype = getDictDataList.filter((item) => item.dictType == 'PayType');
-			this.columnstype = [this.billstype[0].dataList];
-			this.PropertyTypedata = getDictDataList.filter((item) => item.dictType == 'PropertyType');
-			console.log(this.columnstype)
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-		filters: {
-			getDictLab(v, that) {
-				let val = that.billstype[0].dataList.filter((item) => item.dictValue == v);
-				if (val && val[0]) {
-					return val[0].dictLabel;
-				}
-			},
-			getDictLab2(v, that) {
-				let val = that.PropertyTypedata[0].dataList.filter((item) => item.dictValue == v);
-				if (val && val[0]) {
-					return val[0].dictLabel || '11';
-				}
-			}
-		},
-		methods: {
-			// 创建订单
-			createOrder(postdata, type) {
-				uni.request({
-					url: BaseApi.BaseApi + '/pay/createOrder',
-					method: "POST",
-					data: postdata,
-					header: {
-						'content-type': 'application/x-www-form-urlencoded',
-						"token": uni.getStorageSync('tokendata'),
-					},
-					success: (res) => {
-						if (type) {
-							let qrcode = new QRCode('canvas', {
-								text: res.data.codeUrl, // weixin://wxpay/bizpayurl?pr=sZz****
-								width: 213,
-								height: 213,
-								colorDark: "black",
-								colorLight: "white",
-								correctLevel: QRCode.CorrectLevel.H,
-							});
-							if (this.prestorename == '补助') {
-
-							} else {
-
-							}
-						}
-					}
-				});
-			},
-			//预存和补助按钮点击
-			prestore(e) {
-				this.showpayjine = true;
-				this.prestorename = e;
-			},
-			//确认支付预存和补助
-			Confirmationpaymentjine() {
-				this.$refs.uForm.validate().then(res => {
-					this.showpayjine = false;
-					if (this.prestorename == '预存') {
-						this.prestoredata(this.model1.userInfo.amount)
-					} else if (this.prestorename == '补助') {
-						this.subsidydata(this.model1.userInfo.amount)
-					}
-
-				}).catch(errors => {
-					uni.$u.toast('校验失败');
-
-				})
-			},
-			//预存
-			prestoredata(e) {
-				this.zhifucanvas = true;
-				this.showpayjine = false;
-				let postdata = {
-					totalFee: e,
-					tenantId: this.dataForm.tenantId,
-					tradeType: 'NATIVE',
-					billIds: ''
-				}
-				this.createOrder(postdata, 1);
-			},
-			//补助
-			subsidydata(e) {
-				this.zhifucanvas = true;
-				this.showpayjine = false;
-				let postdata = {
-					totalFee: e,
-					tenantId: this.fatherparameter.id,
-					tradeType: 'NATIVE',
-					billIds: ''
-				}
-				this.createOrder(postdata, 1);
-			},
-			closepay1() {
-				this.showpayjine = false
-			},
-			//微信二维码关闭
-			guanbi() {
-				this.zhifucanvas = false;
-				this.getjfdata();
-			},
-			//取消预存
-			canceltype() {
-				this.showtype = false;
-			},
-			//类型查询确定
-			confirmtype(e) {
-				this.showtype = false;
-				this.expensedata = e.value[0].dictLabel;
-				if (e.value[0].dictLabel == '全部') {
-					this.jfpost.type = '';
-				} else {
-					this.jfpost.type = e.value[0].dictValue;
-				}
-				this.indexList = [];
-				this.jfpost.page = 1;
-				this.getjfdata();
-			},
-			//类型查询
-			typechange() {
-				this.showtype = true;
-			},
-			//tab 切换
-			sectionChange(val) {
-				this.current = val.index;
-				if (val.index == 0) {
-					this.cdshow = true;
-				} else if (val.index == 1) {
-					this.cdshow = false;
-					this.indexList = [];
-					this.jfpost.page = 1;
-					this.getjfdata();
-				}
-
-			},
-			//加载更多
-			scrolltolower() {
-				if (this.pd) {
-					this.getjfdata();
-				} else {
-					return
-				}
-			},
-			//扣缴记录
-			getjfdata() {
-				this.$api.get('/payrecord/page', this.jfpost)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.jfpost.page = this.jfpost.page + 1;
-							this.pd = true;
-							this.jfnodata = false;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-					})
-			},
-			//账单明细
-			getalldata() {
-				this.$api.post('/billinfo/billDetail', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						this.zddata = {};
-						if (res.data.data.length == 0) {
-							this.nodata = true;
-						} else {
-							for (let i = 0; i < res.data.data.length; i++) {
-								res.data.data[i].showMore = false;
-							}
-							this.nodata = false;
-							this.billLists = res.data.data;
-						}
-					})
-			},
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.Predeposit {
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		right: 0;
-		height: 98rpx;
-		z-index: 2;
-		line-height: 98rpx;
-		width: 750rpx;
-		background-color: #fff;
-		text-align: center;
-		color: #2E69EB;
-		box-shadow: 0 -6px 12px 0 rgba(153, 153, 153, 0.10);
-		display: flex;
-		align-items: center;
-		justify-content: space-around;
-	}
-
-	.nodata {
-		text-align: center;
-		padding-top: 400rpx;
-	}
-
-	.zhifucanvas {
-		width: 400rpx;
-		height: 400rpx;
-		margin: 0 auto;
-	}
-
-	.canys {
-		width: 500rpx;
-		height: 600rpx;
-		position: fixed;
-		top: 30%;
-		left: 0;
-		right: 0;
-		margin: 0 auto;
-		background: #e6e6e6;
-
-		h4 {
-			width: 500rpx;
-			text-align: center;
-			height: 80rpx;
-			line-height: 80rpx;
-		}
-	}
-
-	.guanbi {
-		margin-top: 50rpx;
-	}
-
-	.zhifufs {
-		padding: 10rpx 60rpx 30px;
-
-		::v-deep .u-radio-label--right {
-			margin-top: 30rpx;
-		}
-
-		::v-deep .uni-input-placeholder {
-			text-align: left
-		}
-
-		::v-deep .u-radio__icon-wrap {
-			width: 40rpx !important;
-			height: 40rpx !important;
-		}
-
-		::v-deep .u-radio__text {
-			font-size: 32rpx !important;
-		}
-	}
-
-	.hejitop {
-		text-align: center;
-		border-bottom: 1px solid #eee;
-		padding: 48rpx 0 24rpx;
-		font-size: 32rpx;
-	}
-
-	.paytall {
-		padding: 12px 0;
-	}
-
-	.heji span {
-		color: #ED3A25;
-	}
-
-	.likezhifu {
-		margin-left: 20rpx;
-		margin-right: 30rpx;
-	}
-
-	.zhifu {
-		position: fixed;
-		right: 0;
-		bottom: 0;
-		left: 0;
-		height: 98rpx;
-		background-color: #fff;
-		display: flex;
-		align-items: center;
-		justify-content: flex-end;
-
-		.zhifuright {
-			display: flex;
-			align-items: center;
-			justify-content: flex-end;
-		}
-	}
-
-	.page {
-		height: 100%;
-		overflow: hidden;
-
-		.contain {
-			height: calc(100% - 44px);
-			padding: 0;
-			display: flex;
-			flex-direction: column;
-
-			.u-listdata {
-				height: 400px;
-				flex: 1;
-				display: flex;
-				flex-direction: column;
-
-			}
-		}
-	}
-
-	.paisong,
-	.paisong2 {
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		background-color: #fff;
-		margin: 0 16px 24rpx;
-		padding: 12px 16px 12px 34px;
-		border-radius: 4px;
-		position: relative;
-
-		.iconBtn {
-			position: absolute;
-			top: 32rpx;
-			right: 32rpx;
-			z-index: 1;
-		}
-
-		.title {
-			font-size: 32rpx;
-			color: #0C1935;
-			margin-bottom: 16rpx;
-
-			span {
-				position: relative;
-			}
-
-			.txt {
-				color: #FA5555;
-				font-weight: 600;
-			}
-
-			.status {
-				width: 50px;
-				padding: 3px 3px 10px 3px;
-				text-align: center;
-				font-size: 13px;
-				color: #fff;
-				background-color: #09C700;
-				border-radius: 11px;
-				position: absolute;
-				right: -50px;
-				top: -10px;
-				transform: scale(0.8);
-
-				&.s1 {
-					background: url('@/static/imgs/paySuccess.png') no-repeat;
-					background-size: 100%;
-				}
-
-				&.s2 {
-					background: url('@/static/imgs/payerror.png') no-repeat;
-					background-size: 100%;
-				}
-			}
-		}
-
-		.subtit {
-			color: #9DA0AC;
-			margin-bottom: 6rpx;
-		}
-
-		.check {
-			position: absolute;
-			left: 20rpx;
-			top: 32rpx;
-			z-index: 1;
-			font-size: 0;
-			transform: scale(.7)
-		}
-	}
-
-	.paisong2 {
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		background-color: #fff;
-		margin: 0 16px 24rpx;
-		padding: 12px 16px;
-		border-radius: 4px;
-		position: relative;
-
-		.status {
-			position: absolute;
-			width: 96rpx;
-			height: 48rpx;
-			border-radius: 0 8rpx 0 20rpx;
-			right: 0;
-			line-height: 48rpx;
-			text-align: center;
-			top: 0;
-			z-index: 1;
-			font-size: 22rpx;
-			background-color: #30D3A2;
-			color: #fff;
-
-			&.s2 {
-				background-color: #09C700;
-			}
-
-			&.s3 {
-				background-color: #FA5555;
-			}
-
-			&.s4 {
-				background-color: #FF9C27;
-			}
-		}
-	}
-
-	.topbilledit {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		background: #fff;
-		height: 88rpx;
-	}
-
-	.changetime2 {
-		padding-left: 10rpx;
-	}
-</style>

+ 0 - 112
pages/Workorder/Videosurveillance/Videoplayback/Videoplayback.vue

@@ -1,112 +0,0 @@
-<template>
-	<view class="shipin">
-		    <web-view :src="url"></web-view>
-	</view>
-</template>
-
-<script>
-	// import EZUIKit from "../../../../static/ezuikit.js";
-	//   var player = null;
-	export default {
-		data() {
-			return {
-				urls:'',
-				width:'',
-			}
-		},
-		onLoad(options) {
-		    this.urls = options.companyOrgId;
-	
-		//	this.accessToken();
-		//	this.width = uni.getSystemInfoSync().screenWidth;
-		//  console.log('111111111111111111', uni.getSystemInfoSync().screenWidth)	 
-		},
-		 onShow() {
-		        this.selectVideoValue();
-		    },
-		
-		methods: {
-			 selectVideoValue(){		 
-				  var postdata ={
-				                     'appKey': 'bf1fe258e25b4556af2889b53cf2d835',
-				                     'appSecret': 'f814b3ce1653f7f909b6ccc358563fb3'
-				                 };			  				  
-				 uni.request({
-				     url:'https://open.ys7.com/api/lapp/token/get',
-				     method: "POST",
-				     data: postdata,
-				     header: {
-				         'content-type': 'application/x-www-form-urlencoded',
-				     },
-				     success: (res) => {
-				       //  console.log('111111111111111111',res.data.data.accessToken)
-				 		
-				// let that = this;
-				 	this.url = "../../../../static/sp.html?url="+ this.urls+"&accessToken="+res.data.data.accessToken;
-								 
-				     }
-				 });
-				 
-				 
-					
-				},
-		
-			
-			
-			accessToken(){
-				
-				 var postdata ={
-				                    'appKey': 'bf1fe258e25b4556af2889b53cf2d835',
-				                    'appSecret': 'f814b3ce1653f7f909b6ccc358563fb3'
-				                };
-				   console.log('111111111111111111',postdata)
-				 
-				uni.request({
-				    url:'https://open.ys7.com/api/lapp/token/get',
-				    method: "POST",
-				    data: postdata,
-				    header: {
-				        'content-type': 'application/x-www-form-urlencoded',
-				    },
-				    success: (res) => {
-				        console.log('111111111111111111',res.data.data.accessToken)
-						
-						 player = new EZUIKit.EZUIKitPlayer({
-						                        id: 'video-container', // 视频容器ID
-						                        accessToken: res.data.data.accessToken,
-						                        url:this.urls,					                    
-						                        template: 'simple',
-						                        plugin: ['talk'], // 加载插件,talk-对讲
-						                        width:this.width,
-						                        height: 250,
-						                        autoplay: true,
-						                      //  decoderPath: EZUIKit,
-						
-						                    });
-						                    window.player = player;
-				
-				    }
-				});
-				
-				
-				
-			}
-		},
-		//监听页面卸载
-				onUnload(){
-					
-				},
-		
-	}
-</script>
-
-<style>
-.shipin{
-	width: 750rpx;
-	height: 100%;
-}
- #video-container{
-        width: 750rpx;
-        height: 600rpx;
-    }
-</style>

+ 0 - 220
pages/Workorder/Videosurveillance/Videosurveillance.vue

@@ -1,220 +0,0 @@
-<template>
-	<view class="billall">
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'
-			 style="height:400px;flex:1;">
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist" @click="seedetail(item)">
-						<view class="settled">
-							查看
-						</view>
-						<h3>
-						{{item.channelName}}
-						</h3>
-						<view class="Currentamount">
-							通道号: {{item.channelNo}}
-						</view>
-						<view class="Currentamount">
-							设备序列号: {{item.deviceSerial}}
-						</view>
-						<!-- <view class="Currentamount">
-							直播地址: {{item.url}}
-						</view> -->
-					
-					</view>
-
-				</u-list-item>
-			</u-list>
-
-		</view>
-
-
-	</view>
-</template>
-
-<script>
-	//import { isEmpty, getDictDataList } from "@/utils/index";
-	export default {
-		components: {
-
-		},
-		data() {
-
-			return {
-				totalnumber: 0,
-				setyesno: true,
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					"accessToken": "",
-					"channelNo": "",
-					"deviceSerial": "",
-					"expireTime": "3600",
-					"pageSize": 10,
-					"pageStart": 0,
-					"protocol": 1
-				},
-				pd: true,
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-				//myday: currentDate,
-				columnstype: [
-					[{
-							label: '全部',
-							id: ''
-
-						}, {
-							label: '已关闭',
-							id: '-1'
-						},
-						{
-							label: '待支付',
-							id: '0'
-						},
-						{
-							label: '已支付',
-							id: '1'
-						},
-					]
-				],
-
-
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			this.getalldata();
-			//	this.loadmore();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-			seedetail(e) {
-				uni.navigateTo({
-					url: `/pages/Workorder/Videosurveillance/Videoplayback/Videoplayback?companyOrgId=${e.url}`
-				});
-			},
-
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-
-			getalldata() {
-				this.$api.post('/video/page', this.dataForm)
-					.then(res => {
-					//	console.log('111111111111111111', res.data.data)
-
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.pageStart = this.dataForm.pageStart + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-					})
-			},
-
-			// canceltype() {
-			// 	this.showtype = false;
-			// },
-			// confirmtype(e) {
-			// 	console.log('111111111111111111', e.value[0])
-			// 	this.showtype = false;
-			// 	this.mytype = e.value[0].label;
-			// 	this.dataForm.status = e.value[0].id;
-			// 	this.indexList = [];
-			// 	this.dataForm.page = 1;
-			// 	this.getalldata();
-			// },
-			// typechange() {
-			// 	this.showtype = true;
-			// },
-
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.billall{height:100%}
-	.u-listdata{
-		    height: 100%;
-		    display: flex;
-		    flex-direction: column;
-	}
-	.companylist {
-		margin: 0 32rpx 24rpx;
-		background: #fff;
-		padding: 24rpx 32rpx;
-		border-radius: 8rpx;
-		position: relative;
-	
-		h3 {
-			margin-bottom: 16rpx;
-		}
-		.settled{
-			width: 96rpx;
-			height: 56rpx;
-			border: 1px solid #2E69EB;
-			color: #2E69EB;
-			font-size: 24rpx;
-			border-radius: 8rpx;
-			text-align: center;
-			line-height: 56rpx;
-			position: absolute;
-			right: 32rpx;
-			bottom: 24rpx;
-		}
-		.Currentamount {
-			margin-bottom: 8rpx;
-			color: #999;
-	
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-	
-	}
-</style>

+ 0 - 206
pages/Workorder/Workorder.vue

@@ -1,206 +0,0 @@
-<template>
-	<view class="content">
-		<u-cell-group class="toptemplate">
-			<view style="height: 20px;"></view>
-			<u-cell title="跨境电商" :border="false">
-				<u-icon slot="icon" size="40" color="#fff" name="map"></u-icon>
-			</u-cell>
-		</u-cell-group>
-		<view class="managelind">
-			<view class="managename" >
-				<u-cell title="电表" :isLink="true" arrow-direction="right" :border="false"
-					style="margin: -10px -15px;"></u-cell>
-				<u--image mode="widthFix" :src="elec"  width="96rpx" height="96rpx" style="align-items: center;margin:16rpx 0;"></u--image>
-				<view class="status">
-					<view><text class="circle"></text>在线</view>
-					<view><text class="circle on"></text>离线</view>
-				</view>
-			</view>
-			<view class="managename">
-				<u-cell title="水表" :isLink="true" arrow-direction="right" :border="false"
-					style="margin: -10px -15px;"></u-cell>
-				<u--image mode="widthFix" :src="water"  width="96rpx" height="96rpx" style="align-items: center;margin:16rpx 0;"></u--image>
-				<view class="status">
-					<view><text class="circle"></text>在线</view>
-					<view><text class="circle on"></text>离线</view>
-				</view>
-			</view>
-			<view class="managename" @click="Remotecontrol(1)" v-if="$has('app:TenantBill')">
-				<u-cell title="空调" :isLink="true" arrow-direction="right" :border="false"
-					style="margin: -10px -15px;"></u-cell>
-				<u--image mode="widthFix" :src="ac"  width="96rpx" height="96rpx" style="align-items: center;margin:16rpx 0;"></u--image>
-				<view class="status">
-					<view><text class="circle"></text>开启</view>
-					<view><text class="circle on"></text>关闭</view>
-				</view>
-			</view>
-			<view class="managename" @click="Remotecontrol(2)" v-if="$has('app:TenantBill')">
-				<u-cell title="照明" :isLink="true" arrow-direction="right" :border="false"
-					style="margin: -10px -15px;"></u-cell>
-				<u--image mode="widthFix" :src="light"  width="96rpx" height="96rpx" style="align-items: center;margin:16rpx 0;"></u--image>
-				<view class="status">
-					<view><text class="circle"></text>开启</view>
-					<view><text class="circle on"></text>关闭</view>
-				</view>
-			</view>
-			<view class="managename" @click="AccessControl" v-if="$has('app:TenantBill')">
-				<u-cell title="门禁" :isLink="true" arrow-direction="right" :border="false"
-					style="margin: -10px -15px;"></u-cell>
-				<u--image mode="widthFix" :src="door"  width="96rpx" height="96rpx" style="align-items: center;margin:16rpx 0;"></u--image>
-				<view class="status">
-					<view><text class="circle"></text>在线</view>
-					<view><text class="circle on"></text>离线</view>
-				</view>
-			</view>
-			<view class="managename" @click="Intelligentdoorlock" v-if="$has('app:TenantBill')">
-				<u-cell title="智能门锁" :isLink="true" arrow-direction="right" :border="false"
-					style="margin: -10px -15px;"></u-cell>
-				<u--image mode="widthFix" :src="lock"  width="96rpx" height="96rpx" style="align-items: center;margin:16rpx 0;"></u--image>
-				<view class="status">
-					<view><text class="circle"></text>在线</view>
-					<view><text class="circle on"></text>离线</view>
-				</view>
-			</view>
-			<view class="managename"  @click="Videosurveillance" v-if="$has('app:TenantBill')">
-				<u-cell title="视频监控" :isLink="true" arrow-direction="right" :border="false"
-					style="margin: -10px -15px;"></u-cell>
-				<u--image mode="widthFix" :src="video"  width="96rpx" height="96rpx" style="align-items: center;margin:16rpx 0;"></u--image>
-				<view class="status">
-					<view><text class="circle"></text>在线</view>
-					<view><text class="circle on"></text>离线</view>
-				</view>
-			</view>
-		</view>
-		<u-tabbar class="tabberall" :value="value1" :fixed="true" :placeholder="true" @change="name => value1 = name"
-			:safeAreaInsetBottom="true">
-			<u-tabbar-item text="首页" @click="click1">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg1"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg2"></image>
-			</u-tabbar-item>
-
-			<u-tabbar-item  text="租户账单" v-if="$has('app:TenantBill')"  @click="click2">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg3"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg4"></image>
-
-			</u-tabbar-item>
-			<u-tabbar-item text="远程管控" v-if="$has('app:RemoteControl')" @click="click3">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg5"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg6"></image>
-			</u-tabbar-item>
-		</u-tabbar>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				tabimg1: require('@/static/tab/h2.png'),
-				tabimg2: require('@/static/tab/h1.png'),
-				tabimg3: require('@/static/tab/w2.png'),
-				tabimg4: require('@/static/tab/w1.png'),
-				tabimg5: require('@/static/tab/y2.png'),
-				tabimg6: require('@/static/tab/y1.png'),
-				value1: 2,
-				elec: require('@/static/imgs/elec.png'),
-				water: require('@/static/imgs/water.png'),
-				ac: require('@/static/imgs/ac.png'),
-				light: require('@/static/imgs/light.png'),
-				door: require('@/static/imgs/door.png'),
-				lock: require('@/static/imgs/lock.png'),
-				video: require('@/static/imgs/video.png')
-			}
-		},
-		methods: {
-			click1() {
-				uni.navigateTo({
-					url: '/pages/index/index'
-				})
-			},
-			click2() {
-				uni.navigateTo({
-					url: '/pages/Workorder/Tenantbill/Tenantbill'
-				})
-			},
-			click3() {
-				uni.navigateTo({
-					url: '/pages/Workorder/Workorder'
-				})
-			},
-			Remotecontrol(v) {
-				uni.navigateTo({
-					url: '/pages/Workorder/Remotecontrol/Remotecontrol?type='+v
-				})
-			},
-			Intelligentdoorlock() {
-				uni.navigateTo({
-					url: '/pages/Workorder/Intelligentdoorlock/Intelligentdoorlock'
-				})
-			},
-			Videosurveillance() {
-				uni.navigateTo({
-					url: '/pages/Workorder/Videosurveillance/Videosurveillance'
-				})
-			},
-			AccessControl() {
-				uni.navigateTo({
-					url: '/pages/Workorder/AccessControl/AccessControl'
-				})
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.toptemplate {
-		color: #fff;
-	}
-
-	.u-page__item__slot-icon {
-		width: 40rpx;
-		height: 40rpx;
-	}
-
-	.managelind {
-		display: flex;
-		align-items: center;
-		flex-wrap: wrap;
-		padding: 32rpx;
-		justify-content: space-between;
-		.managename {
-			padding: 24rpx 32rpx;
-			width: 50%;
-			min-width: 328rpx;
-			max-width: 328rpx;
-			background: #fff;
-			flex: 1;
-			margin-bottom: 32rpx;
-		
-			&:nth-child(2n+1) {
-				margin-right: 30rpx;
-			}
-		
-			.status {
-				display: flex;
-				justify-content: space-between;
-				font-size: 24rpx;
-		
-				.circle {
-					display: inline-block;
-					width: 8rpx;
-					height: 8rpx;
-					border-radius: 100%;
-					background-color: #999;
-					vertical-align: middle;
-					margin-right: 3px;
-		
-					&.on {
-						background-color: #09C700;
-					}
-				}
-		
-			}
-		}
-
-	}
-</style>

+ 0 - 19
pages/Workorder/pay/pay.vue

@@ -1,19 +0,0 @@
-<template>
-	<view class="OutermostLayer">
-			555555555555
-		</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				
-			};
-		}
-	}
-</script>
-
-<style lang="scss">
-
-</style>

File diff suppressed because it is too large
+ 0 - 1019
pages/index/BillPending/BillPending.vue


+ 0 - 253
pages/index/EquipmentException/EquipmentException.vue

@@ -1,253 +0,0 @@
-<template>
-	<view class="billall">
-		<u-cell-group class="toptemplate">
-			<u-cell :title="mytitle" @click="floorchange">
-				<u-icon slot="icon" size="40" color="#fff" name="map"></u-icon>
-				<u-icon slot="right-icon" size="40" color="#fff" name="search"></u-icon>
-			</u-cell>
-		</u-cell-group>
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'>
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist">
-						<h3>{{item.deviceName}}</h3>
-						<view class="Currentamount">
-							空间信息:跨境电商大厦-{{ item.positionInfo }}
-						</view>
-						<view class="Currentamount">
-							设备编号: {{ item.deviceId }}
-						</view>
-						<view class="Currentamount">
-							告警原因: <span>{{item.alertConfigName}}</span>
-						</view>
-						<view class="Currentamount">
-							告警内容: {{item.content}}
-						</view>
-
-					</view>
-
-				</u-list-item>
-			</u-list>
-		</view>
-		<u-picker :itemHeight="80" :show="showfloor" ref="uPicker" :loading="loading" @confirm="confirmfloor"
-			@cancel='cancelfloor' :columns="columns" keyName="orgName" @change="changeHandler"></u-picker>
-		<u-notify ref="uNotify" :show="showdct" message="服务器请求失败"></u-notify>
-	</view>
-</template>
-
-<script>
-	//import { isEmpty, getDictDataList } from "@/utils/index";
-	export default {
-		components: {
-
-		},
-		data() {
-
-			return {
-				totalnumber: 0,
-				setyesno: true,
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					buildingId: "",
-					storeyId: "",
-					//	page: 1,
-					//	limit: 10,
-				},
-				pd: true,
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-				//myday: currentDate,
-				columnstype: [
-
-				],
-
-
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-
-			// let getDictDataList = uni.getStorageSync('getDictDataList');
-			//
-			// for (let i = 0; i < getDictDataList.length; i++) {
-			// 	if (getDictDataList[i].dictType == 'PayType') {
-			// 		this.columnstype = [getDictDataList[i].dataList]
-			// 	}
-			// }
-
-
-			this.getfloor();
-			//	this.loadmore();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-		methods: {
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-			getalldata() {
-				this.$api.get('/home/actualAlertList', this.dataForm)
-					.then(res => {
-						if (res.data.code == 0) {
-							if (res.data.data == null) {
-								this.totalnumber = 0;
-								this.indexList = [];
-							} else {
-								this.totalnumber = res.data.data.length;
-								this.indexList = res.data.data;
-							}
-						} else {
-							uni.showToast({
-								title: res.data.msg,
-								icon: 'none',
-								duration: 1500
-							})
-						}
-					})
-			},
-
-
-			getfloor() {
-				this.$api.get('/control/getOrgStructureTree/', {})
-					.then(res => {
-
-						if (res.data.code == 0) {
-							this.mytitle = res.data.data[0].orgName;
-							this.alldata = res.data.data[0].childrenList;
-							this.columns = [
-								res.data.data[0].childrenList,
-								res.data.data[0].childrenList[0].childrenList
-							]
-							let allfloor = [];
-							for (let i = 0; i < res.data.data[0].childrenList.length; i++) {
-								allfloor.push(res.data.data[0].childrenList[i].childrenList)
-							}
-							this.columnData = allfloor;
-							this.getalldata();
-						} else {
-							this.showdct = true
-						}
-					})
-			},
-
-			floorchange() {
-				this.showfloor = true;
-			},
-			changeHandler(e) {
-				const {
-					columnIndex,
-					index,
-					// 微信小程序无法将picker实例传出来,只能通过ref操作
-					picker = this.$refs.uPicker
-				} = e
-				if (columnIndex === 0) {
-					this.loading = true
-					picker.setColumnValues(1, this.columnData[index])
-					this.loading = false
-				}
-				//	this.getalldata();
-			},
-			confirmfloor(e) {
-				console.log('222222', e.value)
-				this.mytitle = e.value[0].orgName + e.value[1].orgName;
-				this.dataForm.buildingId = e.value[0].orgId;
-				this.dataForm.storeyId = e.value[1].orgId;
-				this.showfloor = false;
-				this.getalldata();
-			},
-			cancelfloor() {
-				this.showfloor = false;
-			},
-
-
-		}
-	}
-</script>
-<style lang="scss">
-	.companylist {
-		margin: 0 32rpx 24rpx;
-		background: #fff;
-		padding: 24rpx 32rpx;
-		border-radius: 8rpx;
-		position: relative;
-
-		h3 {
-			margin-bottom: 24rpx;
-		}
-
-		.Currentamount {
-			margin-bottom: 4rpx;
-			color: #999;
-
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-		.outstanding{
-			position: absolute;
-			width:96rpx;
-			height: 48rpx;
-			border-radius: 0 8rpx 0 20rpx;
-			right:0;
-			line-height: 48rpx;
-			text-align: center;
-			top:0;
-			z-index: 1;
-			font-size: 22rpx;
-			background-color:#30D3A2 ;
-			color: #fff;
-			&.PropertyFee{
-				background-color:#30D3A2 ;
-			}
-		}
-
-	}
-	.topbill {
-		display: flex;
-		justify-content:center;
-		align-items: center;
-		height: 100rpx;
-		background-color: #fff;
-
-		.topbilledit {
-			display: flex;
-			justify-content: space-around;
-			align-items: center;
-
-			.changetime1 {
-				padding-right: 10rpx;
-			}
-		}
-	}
-</style>

+ 0 - 134
pages/index/Immediatecollection/Chargedetails/Chargedetails.vue

@@ -1,134 +0,0 @@
-<template>
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'
-			style="height: 400px;flex: 1;">
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist" @click="seedetail(item)">
-						<view class="Currentamount" style="color: #333;">
-							短信内容: {{item.content}}
-						</view>
-						<view class="Currentamount">
-							发送时间: {{item.createDate}}
-						</view>
-						<!-- <view class="Currentamount">
-							空间信息:¥{{item.spacePos}}
-						</view> -->
-						<!-- <view class="Currentamount">
-							联系电话: {{item.mobile}}
-						</view> -->
-						<!-- <view class="Currentamount">
-							短信类型: 催费
-						</view> -->
-						
-					</view>
-
-				</u-list-item>
-			</u-list>
-		</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				indexList:[],
-				postdata:{
-					name:'',
-					page:1,
-					limit:10,
-				},
-				pd: true,
-				totalnumber:0,
-			}
-		},
-		onLoad(options) {
-		    this.postdata.name = options.companyOrgId;
-		  //  console.log(options.companyOrgId);
-			this.getdata()
-		},
-		methods: {
-			getdata(){
-				this.$api.get('/expeditrecord/recordpage',this.postdata)
-				.then(res=>{
-				  console.log('111111111111111111',res.data.data.total)
-this.totalnumber=res.data.data.total;
-
-				  if (res.data.data.list.length != 0) {
-				  	this.indexList.push(...res.data.data.list);
-				  	this.postdata.page = this.postdata.page + 1;
-				  	this.pd = true;
-				  } else {
-				  	uni.showToast({
-				  		title: '暂无更多数据了',
-				  		icon: 'none',
-				  		duration: 1500
-				  	})
-				  	this.pd = false;
-				  }
-
-
-				})
-			},
-			scrolltolower() {
-				if (this.pd) {
-					this.getdata();
-				} else {
-					return
-				}
-			},
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.u-listdata{
-		height:100%;
-		display: flex;
-		flex-direction: column;
-	}
-	.companylist {
-		margin: 0 32rpx 24rpx;
-		background: #fff;
-		padding: 24rpx 32rpx 10rpx;
-		border-radius: 8rpx;
-		position: relative;
-	
-		h3 {
-			margin-bottom: 24rpx;
-		}
-	
-		.Currentamount {
-			margin-bottom: 4rpx;
-			color: #999;
-			margin-bottom: 20rpx;
-			font-size: 28rpx;
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-		.outstanding{
-			position: absolute;
-			width:96rpx;
-			height: 48rpx;
-			border-radius: 0 8rpx 0 20rpx;
-			right:0;
-			line-height: 48rpx;
-			text-align: center;
-			top:0;
-			z-index: 1;
-			font-size: 22rpx;
-			background-color:#30D3A2 ;
-			color: #fff;
-			&.PropertyFee{
-				background-color:#30D3A2 ;
-			}
-		}
-	
-	}
-</style>
-

+ 0 - 414
pages/index/Immediatecollection/Immediatecollection.vue

@@ -1,414 +0,0 @@
-<template>
-	<view class="billall">
-		<view class="topbill">
-			<view class="topbilledit">
-				<view class="changetime1">
-					<picker mode="date" :value="myday" fields="month" @change="dateChange">
-						<view class="selestDate">{{myday}}</view>
-					</picker>
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-				</view>
-			</view>
-			<view class="topbilledit" @click="typechange">
-				<view class="changetime1">
-					{{mytype}}
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-				</view>
-			</view>
-			<view class="topbilledit" @click="typechanges">
-				<view class="changetime1">
-					{{mytypes}}
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-				</view>
-			</view>
-		</view>
-
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'>
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-
-					<view class="companylist">
-						<view class="outstanding" :style="{
-						                'background-color': item.isExpedit == 1 ? '#09C700' : '#FA5555',
-						              }">
-							{{ item.isExpedit == 1 ? "已催费" : "未催费" }}
-						</view>
-						<!-- <view class="outstanding" :style="{
-						                'background-color': item.isSettled == 1 ? '#09C700' : '#FA5555',
-						              }">
-							{{ item.isSettled == 1 ? "已结清" : "未结清" }}
-						</view> -->
-						<h3>{{item.tenantName}}</h3>
-						<view class="Currentamount">
-							欠费金额: <span>¥{{item.amount}}</span>
-						</view>
-						<!-- <view class="Currentamount">
-							计费周期: {{item.costCycle}}
-						</view> -->
-						<view class="Currentamount">
-							欠费天数:¥{{item.arrearDay}}
-						</view>
-						<view class="Currentamount">
-							欠费类型: {{item.billType}}
-						</view>
-						<view class="Currentamount">
-							联系电话: {{item.phone}}
-						</view>
-						<view class="Callfee">
-							<span @click.stop="seedetail(item)" class="one">催费记录</span>
-							<span v-if="item.isSettled == 0" @click.stop="handleClick(item.id)">催费</span>
-						</view>
-					</view>
-				</u-list-item>
-			</u-list>
-
-		</view>
-		<u-picker :itemHeight="80" :show="showtype" :columns="columnstype" keyName="label" @confirm="confirmtype"
-			@cancel='canceltype'>
-		</u-picker>
-		<u-picker :itemHeight="80" :show="showtypes" :columns="columnstypes" keyName="dictLabel" @confirm="confirmtypes"
-			@cancel='canceltypes'>
-		</u-picker>
-
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	// import {
-	// 	isEmpty,
-	// 	getDictDataList
-	// } from "@/utils/index";
-	export default {
-		components: {},
-		data() {
-			const currentDate = this.getDate({
-				format: 'yyyy-mm'
-			})
-			return {
-				totalnumber: 0,
-				setyesno: true,
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					arrearDay: "", //欠费天数
-					billType: "", //账单类型
-					cycle: currentDate, //欠费周期
-					isExpedit: "", //是否催费0否1是
-					order: "",
-					orderField: "",
-					tenantName: "", //租客名称
-					page: 1,
-					limit: 10,
-				},
-				showtypes: false,
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-
-				loading: false,
-				columns: [],
-				pd: true,
-				columnData: [],
-				myday: '',
-				mytype: '欠费类型',
-				mytypes: "欠费天数",
-				showPicker: false,
-				PayTypedata: [],
-				myday: currentDate,
-				columnstype: [
-					[{
-							label: '全部',
-							id: ''
-						}, {
-							label: '水费',
-							id: 'Water'
-						},
-						{
-							label: '电费',
-							id: 'Elec'
-						},
-						{
-							label: '物业费',
-							id: 'PropertyFee'
-						}
-					]
-				],
-				columnstypes: [],
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			let getDictDataList = uni.getStorageSync('getDictDataList');
-
-			for (let i = 0; i < getDictDataList.length; i++) {
-				if (getDictDataList[i].dictType == "ArrearageDay") {
-					this.columnstypes = [getDictDataList[i].dataList]
-				}
-				if (getDictDataList[i].dictType == 'PayType') {
-					this.PayTypedata = getDictDataList[i].dataList;
-				}
-
-			}
-			this.getalldata();
-			//	this.loadmore();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-			seedetail(e) {
-				// console.log('222',e.tenantName)
-				// console.log('111111111111111111',faltesdata)
-				uni.navigateTo({
-					url: `/pages/index/Immediatecollection/Chargedetails/Chargedetails?companyOrgId=${e.tenantName}`
-				})
-			},
-			handleClick(e) {
-				let Temporarydata = [e];
-				let stringdata = JSON.stringify(Temporarydata);
-				let finallydata = stringdata.replace(/"/g, '');
-
-				this.$api.post('/expeditrecord/charge', finallydata)
-					.then(res => {
-						if (res.data.code == 0) {
-							// uni.showToast({
-							// 	title: '催费成功',
-							// 	icon: 'none',
-							// 	duration: 1500
-							// })
-							this.$refs.uNotify.success('催费成功')
-
-						} else {
-							// uni.showToast({
-							// 	title: res.data.msg,
-							// 	icon: 'none',
-							// 	duration: 1500
-							// })
-							this.$refs.uNotify.error(res.data.msg)
-						}
-						let that = this;
-						setTimeout(function() {
-							that.dataForm.page = 1;
-							that.indexList = [];
-							that.getalldata();
-						}, 1000);
-
-
-					})
-			},
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-			typechanges() {
-				this.showtypes = true;
-			},
-			getalldata() {
-				this.$api.get('/expeditrecord/apppage', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							function transform(a, b) {
-								loop: for (let i = 0; i < a.length; i++) {
-									for (let j = 0; j < b.length; j++) {
-										if (a[i].billType == b[j].dictValue) {
-											a[i].billType = b[j].dictLabel;
-											continue loop;
-										}
-									}
-									a[i].billType = a[i].billType;
-								}
-								return a;
-							}
-							res.data.data.list = transform(res.data.data.list, this.PayTypedata)
-
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-					})
-			},
-
-
-			canceltype() {
-				this.showtype = false;
-			},
-			confirmtype(e) {
-
-				this.showtype = false;
-				this.mytype = e.value[0].label;
-				this.dataForm.billType = e.value[0].id;
-				this.dataForm.page = 1;
-				this.indexList = [];
-				this.getalldata();
-			},
-			confirmtypes(e) {
-				console.log('22222', e.value[0])
-				if (e.value[0].dictValue == 'all') {
-
-					this.showtypes = false;
-					this.mytypes = e.value[0].dictLabel;
-					this.dataForm.arrearDay = '';
-					this.dataForm.page = 1;
-					this.indexList = [];
-					this.getalldata();
-				} else {
-					this.showtypes = false;
-					this.mytypes = e.value[0].dictLabel;
-					this.dataForm.arrearDay = e.value[0].dictValue;
-					this.dataForm.page = 1;
-					this.indexList = [];
-					this.getalldata();
-				}
-			},
-			canceltypes() {
-				this.showtypes = false;
-			},
-			typechange() {
-				this.showtype = true;
-			},
-			dateChange(e) {
-				this.myday = e.target.value;
-				this.dataForm.cycle = e.target.value;
-				this.dataForm.page = 1;
-				this.indexList = [];
-				this.getalldata();
-			},
-			getDate(type) {
-				const date = new Date();
-				let year = date.getFullYear();
-				let month = date.getMonth();
-				if (type === 'start') {
-					year = year - 60;
-				} else if (type === 'end') {
-					year = year + 2;
-				}
-				month = month > 9 ? month : '0' + month;
-				// day = day > 9 ? day : '0' + day;
-				return `${year}-${month}`;
-			},
-
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.companylist {
-		margin: 24rpx 32rpx 0;
-		background: #fff;
-		padding: 24rpx 32rpx 0;
-		border-radius: 8rpx;
-		position: relative;
-	
-		h3 {
-			margin-bottom: 24rpx;
-		}
-	
-		.Currentamount {
-			line-height: 40rpx;
-			margin-bottom: 6rpx;
-			color: #999;
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-		.outstanding{
-			position: absolute;
-			width:96rpx;
-			height: 48rpx;
-			border-radius: 0 8rpx 0 20rpx;
-			right:0;
-			line-height: 48rpx;
-			text-align: center;
-			top:0;
-			z-index: 1;
-			font-size: 22rpx;
-			background-color:#30D3A2 ;
-			color: #fff;
-			&.PropertyFee{
-				background-color:#30D3A2 ;
-			}
-		}
-	
-	}
-	.Callfee{
-		width: 100%;
-		border-top: 1px solid #eee;
-		padding: 20rpx 0;
-		margin-top: 24rpx;
-		display: flex;
-		justify-content: flex-end;
-		span{
-			padding: 12rpx 16rpx;
-			border: 1px solid #2E69EB;
-			border-radius: 8rpx;
-			font-size: 24rpx;
-			color: #2E69EB;
-			&.one{
-				border-color: #999;
-				color: #999;
-				margin-right:20rpx;
-			}
-		}
-	}
-	.topbill {
-		display: flex;
-		justify-content:center;
-		align-items: center;
-		height: 100rpx;
-		background-color: #fff;
-	
-		.topbilledit {
-			display: flex;
-			justify-content: space-around;
-			align-items: center;
-			width: 110px;
-			flex: 1;
-			padding: 0 40rpx;
-			.changetime1 {
-				padding-right: 10rpx;
-			}
-		}
-	}
-</style>

+ 0 - 404
pages/index/Immediateinspection/Immediateinspection.vue

@@ -1,404 +0,0 @@
-<template>
-	<view class="pad16">
-		<view class="getuserInfo">
-			<view class="getuserInfoimg">
-				<u--image :src="src" width="96rpx" height="96rpx" style="border-radius: 4px;"></u--image>
-			</view>
-			<view class="getuserInfoname">
-				<h3>{{getuserInfo.realName}}</h3>
-				<view>安保组</view>
-			</view>
-			<view class="getuserInfophone">
-				<view class="getuserInfophone1">
-					<u-icon name="phone" color="#2979ff" size="36"></u-icon>
-				</view>
-				<view class="getuserInfophone2">{{getuserInfo.mobile}}</view>
-			</view>
-		</view>
-		<!--打卡-->
-		<view class="Punchin">
-			<view class="dakaweizhi">
-				<view class="dakaweizhi1">
-					<u-icon name="map" color="#6DD400" size="36"></u-icon>
-				</view>
-				<view class="dakaweizhi2">当前打卡位置:{{Punchposition}}</view>
-			</view>
-			<view class="shexiangji" @click="Punchindata">
-				<view class="shexiangji1">扫码打卡</view>
-				<view class="shexiangji2">
-					<u-icon name="camera" color="#ffffff" size="90"></u-icon>
-				</view>
-			</view>
-		</view>
-		<view class="dakajilv">今日打卡记录</view>
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true' style="height: 100px;flex:1;">
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist">
-						<h3>{{item.position}}</h3>
-						<view class="Currentamount">
-							巡检时间:{{item.circuitTime}}
-						</view>
-					</view>
-				</u-list-item>
-			</u-list>
-
-		</view>
-
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	import {
-		getCurrentTime
-	} from "@/utils/index";
-	export default {
-		data() {
-			return {
-				Punchposition: '',
-				getuserInfo: {},
-				pd: true,
-				totalnumber: 0,
-				indexList: [],
-				src: 'https://cdn.uviewui.com/uview/album/1.jpg',
-				dataForm: {
-					page: 1,
-					limit: 99999,
-					circuitType: "",
-					startDate: "",
-					endDate: "",
-					buildingId: "",
-					storeyId: "",
-					circuitPersonId: "",
-				},
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			this.getuserInfo = uni.getStorageSync('getuserInfo');
-			var date = new Date();
-			var year = date.getFullYear();
-			var month = date.getMonth() + 1;
-			var day = date.getDate();
-			//	this.circuitPosition = this.$route.query.circuitPosition;
-			this.dataForm.startDate = `${year}-${month}-${day}` + " 00:00:00";
-			this.dataForm.endDate = `${year}-${month}-${day}` + " 23:59:59";
-			this.dataForm.circuitPersonId = this.getuserInfo.id;
-			//	this.dataForm.circuitType = this.userInfo.circuitType;
-			this.getDataList();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-		methods: {
-			goback() {
-				uni.navigateTo({
-					url: '/pages/index/index'
-				})
-			},
-			
-			Punchindata() {
-
-				uni.scanCode({
-					//是否只能从相机扫码,不能从相册扫码
-					onlyFromCamera: false,
-					//规定扫码类型  字节跳动小程序不支持此参数
-					// barcode就是一维码(条形码)  qrcode就是(er)维码
-					// datamatrix就是Data Matrix码   pdf417就是PDF417条码
-					scanType: ['barCode', 'qrCode', ],
-					// 是否启动自动识别字符编码功能
-					autoDecodeCharset: false,
-					// 是否开启自动放大功能  仅 App-Android (3.5.4+) 支持
-					autoZoom: false,
-					// 是否支持手动输入条形码  仅飞书小程序(V3.14.0)支持
-					barCodeInput: false,
-					success: (res) => {
-						let lsdata =res.result;
-						if(lsdata.indexOf('houseId')=='-1'){
-							  //没有房间号
-							  this.Punchposition = lsdata.substr(lsdata.indexOf('position')+11,lsdata.indexOf('projectId')-(lsdata.indexOf('position')+14));
-							  let postdata = {
-							  	"buildingId":lsdata.substr(lsdata.indexOf('buildingId')+12,19), //楼宇id
-							  	"storeyId":lsdata.substr(lsdata.indexOf('storeyId')+10,19), //楼层id
-							  	"houseId":'', //房间id
-							  	"position": this.Punchposition, //位置信息
-							  	"circuitPersonId": this.getuserInfo.id, //巡检人员id							
-							  	"circuitTime": getCurrentTime(), //巡检时间
-							  	//  "circuitType": this.getuserInfo.circuitType,//巡检类型
-							  	"circuitType": '', //巡检类型
-							  	"remark": lsdata.substr(lsdata.indexOf('remark')+8,lsdata.indexOf('buildingId')-(lsdata.indexOf('remark')+10)), //备注						
-							  }
-							  
-							  this.$api.post('/circuitrecord', postdata)
-							  	.then(res => {
-							  		if (res.data.code == 0) {
-							  			this.$refs.uNotify.success('打卡成功')
-							  			this.getDataListtwo();
-							  
-							  		} else {
-							  			this.$refs.uNotify.error('打卡失败')
-							  		}
-							  	})
-							  
-						}else{
-							  this.Punchposition = lsdata.substr(lsdata.indexOf('position')+11,lsdata.indexOf('projectId')-(lsdata.indexOf('position')+14));
-							  let postdata = {
-							  	"buildingId":lsdata.substr(lsdata.indexOf('buildingId')+12,19), //楼宇id
-							  	"storeyId":lsdata.substr(lsdata.indexOf('storeyId')+10,19), //楼层id
-							  	"houseId":lsdata.substr(lsdata.indexOf('houseId')+9,19), //房间id
-							  	"position": this.Punchposition, //位置信息
-							  	"circuitPersonId": this.getuserInfo.id, //巡检人员id							
-							  	"circuitTime": getCurrentTime(), //巡检时间
-							  	//  "circuitType": this.getuserInfo.circuitType,//巡检类型
-							  	"circuitType": '', //巡检类型
-							  	"remark":  lsdata.substr(lsdata.indexOf('remark')+8,lsdata.indexOf('buildingId')-(lsdata.indexOf('remark')+10)), //备注					
-							  }
-							  
-							  this.$api.post('/circuitrecord', postdata)
-							  	.then(res => {
-							  		if (res.data.code == 0) {
-							  			this.$refs.uNotify.success('打卡成功')
-							  			this.getDataListtwo();
-							  
-							  		} else {
-							  			this.$refs.uNotify.error('打卡失败')
-							  		}
-							  	})						  
-						}
-													
-										
-					},
-					fail: (error) => {
-						this.$refs.uNotify.error(error)
-
-					}
-				})
-			},
-			getDataListtwo() {
-				this.dataForm.page = 1;
-				this.$api.get('/circuitrecord/page', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						this.indexList = res.data.data.list;
-					})
-			},
-
-
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-			getDataList() {
-				this.$api.get('/circuitrecord/page', this.dataForm)
-					.then(res => {
-						//console.log('111111111111111111',res.data.data)
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-					})
-			},
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	page{height:100%}
-	.pad16{
-		height:100%;
-		padding: 32rpx;
-		    display: flex;
-		    flex-direction: column;
-	}
-	.u-listdata{height:100px;flex:1;display:flex;flex-direction: column;}
-	.dakajilv {
-		color: #666;
-		font-size: 32rpx;
-		padding-left: 30rpx;
-	}
-
-	.Currentamount {
-		padding-left: 30rpx;
-		height: 50rpx;
-		line-height: 50rpx;
-		color: #BCB3A7;
-
-		span {
-			color: #FA5555;
-			padding-left: 9rpx;
-		}
-	}
-	.topname {
-		height: 44px;
-		width: 750rpx;
-		display: flex;
-		align-items: center;
-	}
-	.companylist {
-		margin: 20rpx 30rpx;
-		background: #fff;
-		height: 140rpx;
-		border-radius: 10px;
-		position: relative;
-
-		h3 {
-			height: 70rpx;
-			line-height: 70rpx;
-			padding-left: 30rpx;
-		}
-	}
-
-	.settled {
-		background-color: #09C700;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-	.outstanding {
-		background-color: #30D3A2;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-
-
-	.billall {}
-
-	.topbill {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100rpx;
-		background-color: #e6e6e6;
-	}
-
-	.topbilledit {
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-	}
-
-	.changetime1 {
-		padding-right: 10rpx;
-	}
-
-	.shexiangji1 {
-		color: #fff;
-		font-size: 36rpx;
-		font-weight: bold;
-	}
-
-	.shexiangji {
-		width: 300rpx;
-		height: 300rpx;
-		border-radius: 50%;
-		background: #5C8FFF;
-		margin: 0 auto;
-		display: flex;
-		justify-content: center;
-		flex-direction: column;
-		align-items: center;
-	}
-
-	.dakaweizhi2 {
-		color: #999;
-		font-size: 26rpx;
-	}
-
-	.dakaweizhi {
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		width: 690rpx;
-		height: 270rpx;
-	}
-
-	.Punchin {
-		width: 690rpx;
-		margin: 32rpx auto 40rpx;
-		background: #fff;
-		height: 690rpx;
-	}
-
-	.getuserInfo {
-		display: flex;
-		    background: #fff;
-		    border-radius: 4px;
-		    padding: 24rpx 32rpx;
-	}
-
-	.getuserInfoimg {
-		margin-right: 24rpx;
-		
-	}
-
-	.getuserInfoname {
-		display: flex;
-		flex-direction: column;
-		justify-content: space-between;
-		margin-right: 20rpx;
-
-		h3 {
-			color: #333;
-			font-size: 32rpx;
-		}
-
-		view {
-			color: #999;
-			font-size: 24rpx;
-		}
-	}
-
-	.getuserInfophone {
-		display: flex;
-		align-items: flex-start;
-	}
-
-	.getuserInfophone2 {
-		color: #666;
-		font-size: 28rpx;
-	}
-</style>

+ 0 - 343
pages/index/Inspectionrecord/Inspectionrecord.vue

@@ -1,343 +0,0 @@
-<template>
-	<view class="page">
-		<view class="billall">
-			<u-cell-group class="toptemplate">
-				<u-cell :title="mytitle" @click="floorchange">
-					<u-icon slot="icon" size="40" color="#fff" name="map"></u-icon>
-					<u-icon slot="right-icon" size="40" color="#fff" name="search"></u-icon>
-				</u-cell>
-			</u-cell-group>
-			<view class="topbill">
-				<view class="topbilledit" @click="xunjianchange">
-					<view class="changetime1">
-						{{xjlx}}
-					</view>
-					<view class="changetime2">
-						<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-					</view>
-				</view>
-				<view class="topbilledit" @click="typechange">
-					<view class="changetime1">
-						{{xjry}}
-					</view>
-					<view class="changetime2">
-						<u-icon name="arrow-down-fill" color="#666666" size="20"></u-icon>
-					</view>
-				</view>
-			</view>
-			<view class="u-listdata">
-				<view style="padding:16rpx 0 16rpx 32rpx">
-					共有 <span style="color: red">{{totalnumber}}</span>条记录
-				</view>
-				<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'>
-					<u-list-item v-for="(item, index) in indexList" :key="index">
-						<view class="companylist">
-							<h3>{{item.position}}</h3>
-							<view class="Currentamount">
-								巡检类型: 安保
-							</view>
-							<view class="Currentamount">
-								巡检人员: {{item.circuitPerson.realName}}
-							</view>
-							<view class="Currentamount">
-								联系电话:¥{{item.circuitPerson.mobile}}
-							</view>
-							<view class="Currentamount">
-								巡检时间: {{item.circuitTime}}
-							</view>
-						</view>
-
-					</u-list-item>
-				</u-list>
-			</view>
-		</view>
-		<u-picker :show="showtypexunjian" :itemHeight="80" :columns="columnstypexunjian" keyName="dictLabel"
-			@confirm="confirmxunjian" @cancel='cancelxunjian'>
-		</u-picker>
-		<u-picker :show="showtype" :itemHeight="80" :columns="columnstype" keyName="realName" @confirm="confirmtype"
-			@cancel='canceltype'>
-		</u-picker>
-		<u-picker :show="showfloor" :itemHeight="80" ref="uPicker" :loading="loading" @confirm="confirmfloor"
-			@cancel='cancelfloor' :columns="columns" keyName="orgName" @change="changeHandler"></u-picker>
-		<u-notify ref="uNotify" :show="showdct" message="服务器请求失败"></u-notify>
-	</view>
-</template>
-
-<script>
-	import cellGroup from '../../../uni_modules/uview-ui/libs/config/props/cellGroup';
-	export default {
-		components: {},
-		data() {
-			const currentDate = this.getDate({
-				format: 'yyyy-mm'
-			})
-			return {
-				totalnumber: 0,
-				showtypexunjian: false,
-				setyesno: true,
-				indexList: [],
-				xjlx: '巡检类型',
-				dataList: [],
-				dataForm: {
-					buildingId: "",
-					storeyId: "",
-					circuitType: "",
-					circuitPersonId: "",
-					page: 1,
-					limit: 10,
-				},
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				columnData: [],
-				pd: true,
-
-				xjry: '巡检人员',
-				showPicker: false,
-				myday: currentDate,
-				columnstypexunjian: [],
-
-				columnstype: [],
-
-
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			let getDictDataList = uni.getStorageSync('getDictDataList');
-			for (let i = 0; i < getDictDataList.length; i++) {
-				if (getDictDataList[i].dictType == 'ReviewType') {
-					let pushdata = {
-						dictLabel: "全部",
-						dictValue: "",
-					}
-					getDictDataList[i].dataList.unshift(pushdata)
-					this.columnstypexunjian = [getDictDataList[i].dataList]
-				}
-			}
-
-			this.getUserList();
-			this.getfloor();
-			//	this.loadmore();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-			getUserList() {
-				this.$api.get('/user/list', {
-						page: 1,
-						limit: 999,
-					})
-					.then(res => {
-						let pushdata = {
-							realName: "全部",
-							id: "",
-						};
-						this.columnstype = [res.data.data];
-						this.columnstype[0].unshift(pushdata)
-					})
-			},
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-			xunjianchange() {
-				this.showtypexunjian = true;
-			},
-			cancelxunjian() {
-				this.showtypexunjian = false;
-			},
-			confirmxunjian(e) {
-				this.xjlx = e.value[0].dictLabel;
-				this.dataForm.circuitType = e.value[0].dictValue;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.getalldata();
-				this.showtypexunjian = false;
-			},
-
-			getalldata() {
-				this.$api.get('/circuitrecord/page', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-
-					})
-			},
-
-			canceltype() {
-				this.showtype = false;
-			},
-			confirmtype(e) {
-				this.showtype = false;
-				this.xjry = e.value[0].realName;
-				this.dataForm.circuitPersonId = e.value[0].id;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.getalldata();
-			},
-			typechange() {
-				this.showtype = true;
-			},
-
-			getDate(type) {
-				const date = new Date();
-				let year = date.getFullYear();
-				let month = date.getMonth() + 1;
-				if (type === 'start') {
-					year = year - 60;
-				} else if (type === 'end') {
-					year = year + 2;
-				}
-				month = month > 9 ? month : '0' + month;
-				return `${year}-${month}`;
-			},
-			getfloor() {
-				this.$api.get('/control/getOrgStructureTree/', {})
-					.then(res => {
-						if (res.data.code == 0) {
-							this.mytitle = res.data.data[0].orgName;
-							this.alldata = res.data.data[0].childrenList;
-							this.columns = [
-								res.data.data[0].childrenList,
-								res.data.data[0].childrenList[0].childrenList
-							]
-							let allfloor = [];
-							for (let i = 0; i < res.data.data[0].childrenList.length; i++) {
-								allfloor.push(res.data.data[0].childrenList[i].childrenList)
-							}
-							this.columnData = allfloor;
-							this.indexList = [];
-							this.dataForm.page = 1;
-							this.getalldata();
-						} else {
-							this.showdct = true
-						}
-					})
-			},
-
-			floorchange() {
-				this.showfloor = true;
-			},
-			changeHandler(e) {
-				const {
-					columnIndex,
-					index,
-					// 微信小程序无法将picker实例传出来,只能通过ref操作
-					picker = this.$refs.uPicker
-				} = e
-				if (columnIndex === 0) {
-					this.loading = true
-					picker.setColumnValues(1, this.columnData[index])
-					this.loading = false
-				}
-				//	this.getalldata();
-			},
-			confirmfloor(e) {
-				this.mytitle = e.value[0].orgName + e.value[1].orgName;
-				this.dataForm.buildingId = e.value[0].orgId;
-				this.dataForm.storeyId = e.value[1].orgId;
-				this.showfloor = false;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.getalldata();
-			},
-			cancelfloor() {
-				this.showfloor = false;
-			},
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.billall {
-		height: 100%;
-		display: flex;
-		flex-direction: column;
-	}
-
-	.u-listdata {
-		height: 400px;
-		flex: 1;
-		display: flex;
-		flex-direction: column;
-	}
-
-	.companylist {
-		margin: 0 32rpx 24rpx;
-		background: #fff;
-		padding: 24rpx 32rpx;
-		border-radius: 8rpx;
-		position: relative;
-
-		h3 {
-			margin-bottom: 16rpx;
-		}
-
-		.Currentamount {
-			margin-bottom: 8rpx;
-			color: #999;
-
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-
-	}
-
-	.topbill {
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-		height: 100rpx;
-		background-color: #fff;
-
-		.topbilledit {
-			display: flex;
-			justify-content: space-around;
-			align-items: center;
-
-			.changetime1 {
-				padding-right: 10rpx;
-			}
-		}
-	}
-</style>

+ 0 - 444
pages/index/Onlinewarranty/Onlinewarranty.vue

@@ -1,444 +0,0 @@
-<template>
-	<view class="contain">
-		<view class="main">
-			<!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 -->
-			<u--form labelPosition="left" :model="model1" :rules="rules" ref="form1">
-				<!-- <u-form-item labelWidth='180' label="任务名称:" prop="userInfo.contactPerson" borderBottom ref="item1">
-                    <u--input v-model="model1.userInfo.contactPerson" border="none"></u--input>
-                </u-form-item> -->
-				<u-form-item labelWidth='180' label="报修区域:" prop="userInfo.repairRegionName" borderBottom
-					@click="showSex = true;" ref="item1" :required=true>
-					<u--input v-model="model1.userInfo.repairRegionName" disabled disabledColor="#ffffff"
-						placeholder="请选择报修区域" border="none"></u--input>
-					<u-icon name="arrow-right" class="ml5"></u-icon>
-				</u-form-item>
-				<u-form-item labelWidth='180' label="报修位置:" prop="userInfo.repairPositionName" borderBottom
-					@click="showfloors();" ref="item1" :required=true v-if="model1.userInfo.repairRegionName!=''">
-
-					<u--input v-model="model1.userInfo.repairPositionName" disabled disabledColor="#ffffff"
-						placeholder="请选择报修位置" border="none"></u--input>
-					<u-icon name="arrow-right" class="ml5"></u-icon>
-				</u-form-item>
-				<u-form-item labelWidth='180' label="报修类型:" prop="userInfo.repairTypeName" borderBottom
-					@click="showtaskdegree = true;" ref="item1" :required=true>
-					<u--input v-model="model1.userInfo.repairTypeName" disabled disabledColor="#ffffff"
-						placeholder="请选择报修类型" border="none"></u--input>
-					<u-icon name="arrow-right" class="ml5"></u-icon>
-				</u-form-item>
-				<u-form-item labelWidth='180' label="联系人:" prop="userInfo.contactPerson" borderBottom ref="item1"
-					:required=true>
-					<u--input v-model="model1.userInfo.contactPerson" border="none" placeholder="请输入"></u--input>
-				</u-form-item>
-				<u-form-item labelWidth='180' label="联系电话:" prop="userInfo.contactPhone" borderBottom ref="item1"
-					:required=true>
-					<u--input v-model="model1.userInfo.contactPhone" border="none" placeholder="请输入"></u--input>
-				</u-form-item>
-				<u-form-item labelWidth='180' class="ms" label="故障描述:" prop="userInfo.faultDes" ref="item1"
-					:required=true>
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom style="padding: 0;">
-					<u-textarea v-model="model1.userInfo.faultDes" border="none" placeholder="请输入" height="140"
-						style="padding: 0 20rpx;"></u-textarea>
-				</u-form-item>
-				<u-form-item class="ms" labelWidth='180' label="上传照片:" prop="userInfo.faultPics" ref="item1"
-					:required=true>
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom>
-					<view class="uploadPart">
-						<view class="allimg" v-for="img in fileList1">
-							<image :src="img" mode="aspectFill" class="newimg"></image>
-							<u-icon @click="deletePic(img)" class="mytrash" name="close-circle" color="#999"
-								size="30"></u-icon>
-						</view>
-
-						<span @click="uploadImg" class="uploadBtn" v-if="fileList1.length<3"><u-icon color="#5c8fff"
-								size="30px" name="camera-fill"></u-icon></span>
-					</view>
-				</u-form-item>
-			</u--form>
-
-
-
-		</view>
-		<view class="tijiao">
-			<u-button type="primary" text="提交" @click="editdata"></u-button>
-		</view>
-		<u-picker @cancel='showtaskdegree = false' :itemHeight="80" @confirm='degreeconfirm' :show="showtaskdegree"
-			:columns="columnshowtaskdegree" keyName="label">
-		</u-picker>
-		<u-picker @cancel='showSex = false' :itemHeight="80" @confirm='typeconfirm' :show="showSex"
-			:columns="columnsquyu" keyName="label">
-		</u-picker>
-		<u-picker :show="showfloor" ref="uPicker" :itemHeight="80" :loading="loading" @confirm="confirmfloor"
-			@cancel='cancelfloor' keyName="orgName" :columns="columns" @change="changeHandler"></u-picker>
-		<u-picker :show="showfloor2" ref="uPicker" :itemHeight="80" :loading="loading" @confirm="confirmfloor"
-			@cancel='cancelfloor' keyName="orgName" :columns="columns2" @change="changeHandler"></u-picker>
-	</view>
-</template>
-
-<script>
-	const BaseApi = require("@/http/baseApi.js");
-	export default {
-		components: {},
-		data() {
-			return {
-				uploadUrl: BaseApi.BaseApi + '/uploadFile',
-				loading: false,
-				fileList1: [],
-				xiangji: require('@/static/index/xj.png'),
-				columns: [
-					[],
-					[],
-					[]
-				],
-				columns2: [
-					[],
-					[]
-				],
-				columnData: [],
-				columnDatalist: [],
-				showfloor: false,
-				showfloor2: false,
-				myposition: '',
-				showSex: false,
-				showday: false,
-				showPicker: false,
-				showtaskdegree: false,
-				showtaskpeople: false,
-
-				model1: {
-					userInfo: {
-						id: "",
-						buildingId: "", //  楼栋ID
-						storeyId: "", //  层数ID
-						houseId: "", //  房间ID
-						repairPositionName: "", //报修位置名称
-						repairRegion: '', //报修修区域
-						repairRegionName: "", //报修区域名称
-						repairType: '', //报修类型
-						repairTypeName: "", //报修类型
-						contactPerson: "", //联系人
-						contactPhone: "", //电话
-						faultDes: "", // 故障描述
-						faultPics: "", //图片
-					},
-				},
-				columnsquyu: [
-					[{
-						label: '公共区域',
-						id: 1
-
-					}, {
-						label: '室内',
-						id: 2
-					}]
-				],
-
-				columnshowtaskdegree: [
-					[{
-							label: '水',
-							id: 1
-
-						}, {
-							label: '电',
-							id: 2
-						},
-						{
-							label: '其他',
-							id: 3
-						},
-					]
-				],
-
-				rules: {
-					'userInfo.contactPerson': {
-						type: 'string',
-						required: true,
-						message: '请填写联系人',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.faultDes': {
-						type: 'string',
-						required: true,
-						message: '请填写故障描述',
-						trigger: ['blur', 'change']
-					},
-					"userInfo.faultPics": {
-						type: 'string',
-						required: true,
-						message: '请上传照片',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.contactPhone': [{
-							required: true,
-							message: '请填写联系电话',
-							trigger: ['change', 'blur'],
-						},
-						{
-							// 自定义验证函数,见上说明
-							validator: (rule, value, callback) => {
-								// 上面有说,返回true表示校验通过,返回false表示不通过
-								// uni.$u.test.mobile()就是返回true或者false的
-								return uni.$u.test.mobile(value);
-							},
-							message: '手机号码不正确',
-							// 触发器可以同时用blur和change
-							trigger: ['change', 'blur'],
-						}
-					],
-					'userInfo.repairRegionName': {
-						type: 'string',
-						required: true,
-						message: '请选择报修区域',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.repairRegionName': {
-						type: 'string',
-						required: true,
-						message: '请选择报修区域',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.repairPositionName': {
-						type: 'string',
-						required: true,
-						message: '请选择报修位置',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.repairTypeName': {
-						type: 'string',
-						required: true,
-						message: '请选择报修类型',
-						trigger: ['blur', 'change']
-					},
-
-
-				},
-
-			};
-		},
-		watch:{
-			"model1.userInfo.repairRegionName"(newval,oldval){
-				if(newval!=oldval){
-					this.model1.userInfo.repairPositionName = '';
-					this.model1.userInfo.buildingId = '';
-					this.model1.userInfo.storeyId = '';
-					this.model1.userInfo.houseId = '';
-				}
-			}
-		},
-		onLoad() {
-			this.getfloor();
-			//	this.loadmore();
-		},
-	
-		methods: {
-			//显示区域选择
-			showfloors() {
-				if (this.model1.userInfo.repairRegionName == '公共区域') {
-					this.showfloor2 = true;
-				} else {
-					this.showfloor = true;
-				}
-			},
-			// 删除图片
-			deletePic(event) {
-				this.fileList1.splice(event.index, 1)
-			},
-
-			// 新增图片
-			uploadImg() {
-				uni.chooseImage({
-					count: 3,
-					success: (chooseImageRes) => {
-						const tempFilePaths = chooseImageRes.tempFilePaths;
-						for (let i = 0; i < tempFilePaths.length; i++) {
-							uni.uploadFile({
-								url: BaseApi.BaseApi + '/uploadFile',
-								filePath: tempFilePaths[i],
-								name: 'file',
-								formData: {
-									'user': 'test'
-								},
-								success: (uploadFileRes) => {
-									//console.log(uploadFileRes);
-									this.fileList1.push(JSON.parse(uploadFileRes.data).data)
-									console.log(this.fileList1);
-									this.model1.userInfo.faultPics = this.fileList1.join(',')
-								}
-							});
-						}
-
-					}
-				});
-
-
-			},
-			changeHandler(e) {
-				console.log(e)
-				const {
-					columnIndex,
-					value,
-					values, // values为当前变化列的数组内容
-					index,
-					indexs,
-					picker = this.$refs.uPicker
-				} = e
-				if (columnIndex == 0) {
-					picker.setColumnValues(1, this.alldata[index].childrenList)
-					if (this.model1.userInfo.repairRegionName == '室内') {
-						if (this.alldata[indexs[0]].childrenList[0].childrenList == null) {
-							picker.setColumnValues(2, [])
-						} else {
-							picker.setColumnValues(2, this.alldata[indexs[0]].childrenList[0].childrenList)
-						}
-					}
-
-				} else if (this.model1.userInfo.repairRegionName == '室内' && columnIndex == 1) {
-					// picker为选择器this实例,变化第三列对应的选项
-					if (this.alldata[indexs[0]].childrenList[indexs[1]].childrenList == null) {
-						picker.setColumnValues(2, [])
-					} else {
-						picker.setColumnValues(2, this.alldata[indexs[0]].childrenList[indexs[1]].childrenList)
-					}
-
-				}
-
-
-			},
-			confirmfloor(e) {
-				if(this.model1.userInfo.repairRegionName == '室内'){
-					if (e.value[2] == undefined) {
-						this.model1.userInfo.repairPositionName = e.value[0].orgName + '/' + e.value[1].orgName;
-						this.model1.userInfo.buildingId = e.value[0].orgId;
-						this.model1.userInfo.storeyId = e.value[1].orgId;
-						this.model1.userInfo.houseId = '';
-					} else {
-						this.model1.userInfo.repairPositionName = e.value[0].orgName + '/' + e.value[1].orgName + '/' + e
-							.value[2].orgName;
-						this.model1.userInfo.buildingId = e.value[0].orgId;
-						this.model1.userInfo.storeyId = e.value[1].orgId;
-						this.model1.userInfo.houseId = e.value[2].orgId;
-					}
-					this.showfloor = false;
-				}else{
-					this.model1.userInfo.repairPositionName = e.value[0].orgName + '/' + e.value[1].orgName;
-					this.model1.userInfo.buildingId = e.value[0].orgId;
-					this.model1.userInfo.storeyId = e.value[1].orgId;
-					this.model1.userInfo.houseId = '';
-					this.showfloor2 = false;
-				}
-			},
-			cancelfloor() {
-				if(this.model1.userInfo.repairRegionName == '室内'){
-				this.showfloor = false;
-				}else{
-					this.showfloor2 = false;
-				}
-			},
-			getfloor() {
-				this.$api.get('/control/getOrgStructureTree', {})
-					.then(res => {
-						if (res.data.code == 0) {
-							this.alldata = res.data.data[0].childrenList;
-							this.columns = [
-								this.alldata,
-								this.alldata[0].childrenList,
-								[]
-							]
-							this.columns2 = [
-								this.alldata,
-								this.alldata[0].childrenList,
-							]
-
-						} else {
-							this.showdct = true
-						}
-					})
-			},
-			onShowDatePicker() { //显示
-				this.showPicker = true;
-			},
-
-			returndata() {
-				uni.navigateBack({
-					delta: 1
-				});
-			},
-			editdata() {
-				console.log(this.model1.userInfo)
-				this.$refs.form1.validate().then(res => {
-					this.$api.post('/repairorder', this.model1.userInfo)
-						.then(res => {
-							uni.navigateBack({
-								delta: 1
-							});
-						})
-
-
-				}).catch(errors => {
-					//		uni.$u.toast('校验失败')
-				})
-
-
-			},
-
-			typeconfirm(e) {
-				this.model1.userInfo.repairRegion = e.value[0].id;
-				this.model1.userInfo.repairRegionName = e.value[0].label;
-
-				this.showSex = false;
-				this.$refs.form1.validateField('userInfo.repairRegionName')
-			},
-
-			degreeconfirm(e) {
-				this.model1.userInfo.repairType = e.value[0].id;
-				this.model1.userInfo.repairTypeName = e.value[0].label;
-
-				this.showtaskdegree = false;
-				this.$refs.form1.validateField('userInfo.repairTypeName')
-			},
-
-
-
-		},
-		onReady() {
-			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
-			this.$refs.form1.setRules(this.rules)
-		},
-	};
-</script>
-
-<style lang="scss" scoped>
-	.uploadPart {
-		display: flex;
-		justify-content: center;
-		width: 100%;
-
-		.uploadBtn {
-			width: 160rpx;
-			height: 160rpx;
-			background-color: #ECF0FF;
-			text-align: center;
-			border-radius: 4rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-		}
-
-		.allimg {
-			position: relative;
-		}
-
-		.newimg {
-			width: 160rpx;
-			height: 160rpx;
-			margin-right: 10rpx;
-		}
-
-		.mytrash {
-			position: absolute;
-			top: 2px;
-			right: 10px;
-		}
-	}
-</style>

+ 0 - 316
pages/index/Withholdingrecord/Withholdingrecord.vue

@@ -1,316 +0,0 @@
-<template>
-	<view class="billall">
-		<u-cell-group class="toptemplate" v-if="role=='Admin'">
-			<u-cell :title="mytitle"  @click="floorchange">
-				<u-icon slot="icon" size="40" color="#fff" name="map"></u-icon>
-					<u-icon slot="right-icon" size="40" color="#fff" name="search"></u-icon>
-			</u-cell>
-		</u-cell-group>
-		<view class="topbill">
-			<view class="topbilledit" @click="typechange">
-				<view class="changetime1">
-					{{mytype}}
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
-				</view>
-			</view>
-		</view>
-
-		<view class="u-listdata">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'>
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-					<view class="companylist" @click="seedetail(item)">
-						<view class="outstanding">
-							{{item.type}}
-						</view>
-						<h3>{{item.tenantInfo.name}}</h3>
-						<view class="Currentamount">
-							扣缴金额: <span>¥{{item.amount}}</span>
-						</view>
-						<view class="Currentamount">
-							租户电话: {{item.tenantInfo.tel}}
-						</view>
-						<view class="Currentamount">
-							操作人:{{item.createName}}
-						</view>
-						<view class="Currentamount">
-							扣缴时间: {{item.createDate}}
-						</view>
-					</view>
-				</u-list-item>
-			</u-list>
-		</view>
-		<u-picker :show="showtype" :itemHeight="80" :columns="columnstype" keyName="dictLabel" @confirm="confirmtype"
-			@cancel='canceltype'></u-picker>
-		<u-picker :show="showfloor" :itemHeight="80" ref="uPicker" :loading="loading" @confirm="confirmfloor" @cancel='cancelfloor'
-			:columns="columns" keyName="orgName" @change="changeHandler"></u-picker>
-		<u-notify ref="uNotify" :show="showdct" message="服务器请求失败"></u-notify>
-	</view>
-</template>
-
-<script>
-	//import { isEmpty, getDictDataList } from "@/utils/index";
-	export default {
-		components: {
-
-		},
-		data() {
-
-			return {
-				totalnumber: 0,
-				setyesno: true,
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					projectId: "",
-					buildingId: "",
-					storeyId: "",
-					type: "",
-					tenantId: "",
-					page: 1,
-					limit: 10,
-				},
-				pd: true,
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-				//myday: currentDate,
-				columnstype: [
-
-				],
-				role:'',
-				feiyongtype:[],
-
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			this.role=uni.getStorageSync('role');
-			let getDictDataList = uni.getStorageSync('getDictDataList');
-			for (let i = 0; i < getDictDataList.length; i++) {
-				if (getDictDataList[i].dictType == 'PayType') {
-					this.columnstype = [getDictDataList[i].dataList]
-					this.feiyongtype=getDictDataList[i].dataList;
-				}
-			}
-			this.getfloor();
-			//	this.loadmore();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-			getalldata() {
-				this.$api.get('/payrecord/page', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						function transform(a, b) {
-							loop: for (let i = 0; i < a.length; i++) {
-								for (let j = 0; j < b.length; j++) {
-									if (a[i].type == b[j].dictValue) {
-										a[i].type = b[j].dictLabel;
-										continue loop;
-									}
-								}
-								a[i].type =  a[i].type;
-							}
-							return a;
-						}
-						let chulidata=transform(res.data.data.list, this.feiyongtype)
-
-
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...chulidata);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-					})
-			},
-
-			canceltype() {
-				this.showtype = false;
-			},
-			confirmtype(e) {
-				this.showtype = false;
-				if (e.value[0].dictValue == 'all') {
-					this.mytype = e.value[0].dictLabel;
-					this.indexList=[];
-					this.dataForm.type = '';
-					this.dataForm.page = 1;
-					this.getalldata();
-				} else {
-					this.mytype = e.value[0].dictLabel;
-					this.dataForm.type = e.value[0].dictValue;
-					this.indexList=[];
-					this.dataForm.page = 1;
-					this.getalldata();
-				}
-
-			},
-			typechange() {
-				this.showtype = true;
-			},
-
-
-			getfloor() {
-				this.$api.get('/control/getOrgStructureTree/', {})
-					.then(res => {
-
-						if (res.data.code == 0) {
-							this.dataForm.projectId = res.data.data[0].orgId;
-
-							this.mytitle = res.data.data[0].orgName;
-							this.alldata = res.data.data[0].childrenList;
-							//console.log('111111111111111111',  res.data.data[0].childrenList)
-							this.columns = [
-								res.data.data[0].childrenList,
-								res.data.data[0].childrenList[0].childrenList
-							]
-							let allfloor = [];
-							for (let i = 0; i < res.data.data[0].childrenList.length; i++) {
-								allfloor.push(res.data.data[0].childrenList[i].childrenList)
-							}
-							//  console.log('111111111111111111',allfloor)
-							this.columnData = allfloor;
-							this.indexList=[];
-							this.dataForm.page = 1;
-							this.getalldata();
-						} else {
-							this.showdct = true
-						}
-					})
-			},
-
-			floorchange() {
-				this.showfloor = true;
-			},
-			changeHandler(e) {
-				const {
-					columnIndex,
-					index,
-					// 微信小程序无法将picker实例传出来,只能通过ref操作
-					picker = this.$refs.uPicker
-				} = e
-				if (columnIndex === 0) {
-					this.loading = true
-					picker.setColumnValues(1, this.columnData[index])
-					this.loading = false
-				}
-			//	this.getalldata();
-			},
-			confirmfloor(e) {
-				console.log('222222', e.value)
-				this.mytitle = e.value[0].orgName + e.value[1].orgName;
-				this.dataForm.buildingId = e.value[0].orgId;
-				this.dataForm.storeyId = e.value[1].orgId;
-				this.showfloor = false;
-				this.indexList=[];
-					this.dataForm.page = 1;
-				this.getalldata();
-			},
-			cancelfloor() {
-				this.showfloor = false;
-			},
-
-
-		}
-	}
-</script>
-<style lang="scss">
-	.companylist {
-		margin: 24rpx 32rpx 0;
-		background: #fff;
-		padding: 24rpx 32rpx;
-		border-radius: 8rpx;
-		position: relative;
-
-		h3 {
-			margin-bottom: 24rpx;
-		}
-
-		.Currentamount {
-			margin-bottom: 4rpx;
-			color: #999;
-
-			span {
-				color: #FA5555;
-				padding-left: 9rpx;
-			}
-		}
-		.outstanding{
-			position: absolute;
-			width:96rpx;
-			height: 48rpx;
-			border-radius: 0 8rpx 0 20rpx;
-			right:0;
-			line-height: 48rpx;
-			text-align: center;
-			top:0;
-			z-index: 1;
-			font-size: 22rpx;
-			background-color:#30D3A2 ;
-			color: #fff;
-			&.PropertyFee{
-				background-color:#30D3A2 ;
-			}
-		}
-
-	}
-	.topbill {
-		display: flex;
-		justify-content:center;
-		align-items: center;
-		height: 100rpx;
-		background-color: #fff;
-
-		.topbilledit {
-			display: flex;
-			justify-content: space-around;
-			align-items: center;
-
-			.changetime1 {
-				padding-right: 10rpx;
-			}
-		}
-	}
-</style>

+ 0 - 186
pages/index/Workordertodone/Toberepaired/Toberepaired.vue

@@ -1,186 +0,0 @@
-<template>
-	<view class="contain">
-		<view class="main" style="padding: 0;">
-			<view class="baoxiu"><span></span>报修信息</view>
-			<u-cell-group>
-				<u-cell title="报修时间" :value="details.shijian">
-				</u-cell>
-				<u-cell title="报修位置" :value="details.weizhi">
-				</u-cell>
-				<u-cell title="报修区域" :value="details.quyu">
-				</u-cell>
-				<u-cell title="报修类型" :value="details.leixing">
-				</u-cell>
-				<u-cell title="联系人" :value="details.lxr">
-				</u-cell>
-				<u-cell title="联系电话" :value="details.lxdh">
-				</u-cell>
-				<u--form labelPosition="left" >
-				<u-form-item labelWidth='180' style="padding:0 32rpx;" label="故障描述:">
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom style="padding:0 32rpx;">
-					<view style="width:100%;padding: 0 20rpx;height:80px">{{details.gzms}}</view>
-				</u-form-item>
-				<u-form-item labelWidth='180' label="故障照片" style="padding:0 32rpx;">
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom style="padding:0 32rpx;">
-					<view class="uploadPart">
-						<view class="allimg" v-for="img in details.gzimg">
-							<image :src="img" mode="aspectFill" class="newimg"></image>
-						</view>
-					</view>
-				</u-form-item>
-				</u--form>
-			</u-cell-group>
-			<view class="baoxiu"><span></span>维修信息</view>
-			<u-cell-group>
-				<u-cell title="紧急程度" :value="details.jinji">
-				</u-cell>
-				<!-- <u-cell title="维修人员" :value="details.weixiury">
-				</u-cell> -->
-				<u-cell title="联系电话" :value="details.weixiudh">
-				</u-cell>
-			</u-cell-group>
-		</view>
-		<view class="tijiao">
-			<view v-if="$has('app:MaintenanceCompleted')">
-				<u-button type="primary" text="维修完成" @click="returndata"></u-button>
-			</view>
-		</view>
-		<!--确定弹窗-->
-		<u-modal :show="showqd" title="提示" content='请问是否确定维修完成?' :showCancelButton="true" @confirm="weixiuyes"
-			@cancel="weixiuno"></u-modal>
-		<u-notify ref="uNotify" message=""></u-notify>
-
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				showqd: false,
-				companyOrgId: '',
-				details: {
-					shijian: '',
-					weizhi: '',
-					quyu: '',
-					leixing: '',
-					lxr: '',
-					lxdh: '',
-					gzms: '',
-					gzimg: [],
-					jinji: '',
-					weixiury: '',
-					weixiudh: ''
-				},
-			}
-		},
-		onLoad(options) {
-			this.companyOrgId = options.id;
-			this.getdata();
-		},
-		methods: {
-			getdata() {
-				this.$api.get('/repairorder/' + this.companyOrgId, {})
-					.then(res => {
-						this.details.shijian = res.data.data.createDate;
-						this.details.weizhi = res.data.data.repairPosition;
-						this.details.lxr = res.data.data.contactPerson;
-						this.details.lxdh = res.data.data.contactPhone;
-						this.details.gzms = res.data.data.faultDes;
-						this.details.weixiury = res.data.data.repairPersonName;
-						res.data.data.faultPics = res.data.data.faultPics.split(",");
-						this.details.gzimg = res.data.data.faultPics;
-						if (res.data.data.repairRegion == 1) {
-							this.details.quyu = '公共区域';
-						} else if (res.data.data.repairRegion == 2) {
-							this.details.quyu = '室内';
-						}
-
-						if (res.data.data.repairType == 1) {
-							this.details.leixing = '水';
-						} else if (res.data.data.repairType == 2) {
-							this.details.leixing = '电';
-						} else if (res.data.data.repairType == 3) {
-							this.details.leixing = '其他';
-						}
-						if (res.data.data.urgency == 1) {
-							this.details.jinji = '非常紧急';
-						} else if (res.data.data.urgency == 2) {
-							this.details.jinji = '紧急';
-						} else if (res.data.data.urgency == 3) {
-							this.details.jinji = '普通';
-						}
-
-					})
-			},
-			returndata() {
-				this.showqd = true;
-			},
-			weixiuyes() {
-				this.$api.post('/repairorder/finish/' + this.companyOrgId, {})
-					.then(res => {
-						if (res.data.code == 0) {
-							this.$refs.uNotify.success('维修成功')
-							setTimeout(function() {
-								uni.navigateTo({
-									url: '/pages/index/Workordertodone/Workordertodone'
-								})
-							}, 1000);
-						} else {
-							this.$refs.uNotify.error(res.data.msg)
-						}
-					})
-				this.showqd = false;
-			},
-			weixiuno() {
-				this.showqd = false;
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.baoxiu {
-		padding: 18rpx 32rpx;
-		font-size: 36rpx;
-
-		span {
-			display: inline-block;
-			margin-right: 16rpx;
-			width: 8rpx;
-			height: 32rpx;
-			background-color: #5776E6;
-			border-radius: 5rpx;
-		}
-	}
-
-	.uploadPart {
-		display: flex;
-		justify-content: center;
-		width: 100%;
-
-		.uploadBtn {
-			width: 160rpx;
-			height: 160rpx;
-			background-color: #ECF0FF;
-			text-align: center;
-			border-radius: 4rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-		}
-
-		.allimg {
-			position: relative;
-		}
-
-		.newimg {
-			width: 160rpx;
-			height: 160rpx;
-			margin-right: 10rpx;
-			border: 1px solid #eee;
-		}
-	}
-</style>

+ 0 - 347
pages/index/Workordertodone/Workorderdetails/Workorderdetails.vue

@@ -1,347 +0,0 @@
-<template>
-	<view class="contain">
-		<view class="main" style="padding: 0;">
-			<u-cell-group>
-				<u-cell title="报修时间" :value="details.shijian">
-				</u-cell>
-				<u-cell title="报修位置" :value="details.weizhi">
-				</u-cell>
-				<u-cell title="报修区域" :value="details.quyu">
-				</u-cell>
-				<u-cell title="报修类型" :value="details.leixing">
-				</u-cell>
-				<u-cell title="联系人" :value="details.lxr">
-				</u-cell>
-				<u-cell title="联系电话" :value="details.lxdh">
-				</u-cell>
-				<u--form labelPosition="left" >
-				<u-form-item labelWidth='180' style="padding:0 32rpx;" label="故障描述:">
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom style="padding:0 32rpx;">
-					<view style="width:100%;padding: 0 20rpx;height:80px">{{details.gzms}}</view>
-				</u-form-item>
-				<u-form-item labelWidth='180' label="故障照片" style="padding:0 32rpx;">
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom style="padding:0 32rpx;">
-					<view class="uploadPart">
-						<view class="allimg" v-for="img in details.gzimg">
-							<image :src="img" mode="aspectFill" class="newimg"></image>
-						</view>
-					</view>
-				</u-form-item>
-				</u--form>
-			</u-cell-group>
-			<view class="tijiao">
-				<view class="" v-if="$has('app:AssignmaintenancePersonnel')">
-					<u-button type="primary" text="指派维修人员" @click="Maintenancepersonnel"></u-button>
-				</view>
-			</view>
-			<!--指派维修人员弹窗-->
-			<u-popup :show="showweixiu" :round="10" @close="closewx" @open="openwx" mode="bottom">
-				<view class="weixiudc">
-					<view class="tit">工单指派</view>
-					<u--form labelPosition="left" :model="model1" :rules="rules" ref="uForm">
-						<u-form-item labelWidth="150" label="维修人员" prop="userInfo.repairPersonId" borderBottom
-							@click="showSex = true;" ref="item1">
-							<u--input v-model="model1.userInfo.repairPersonId" disabled disabledColor="#ffffff"
-								placeholder="请选择维修人员" border="none"></u--input>
-							<u-icon slot="right" name="arrow-right"></u-icon>
-						</u-form-item>
-
-						<u-form-item labelWidth="150" label="紧急程度" prop="userInfo.urgency" borderBottom
-							@click="showjinji = true;" ref="item1">
-							<u--input v-model="model1.userInfo.urgency" disabled disabledColor="#ffffff"
-								placeholder="请选择紧急程度" border="none"></u--input>
-							<u-icon slot="right" name="arrow-right"></u-icon>
-						</u-form-item>
-					</u--form>
-
-
-					<u-picker :show="showSex" keyName="realName" @cancel="showSex=false" :itemHeight="80"
-						@confirm="confirmry" :columns="columnsrenyuan"></u-picker>
-
-					<u-picker :show="showjinji" keyName="dictLabel" @cancel="showjinji=false" :itemHeight="80"
-						@confirm="confirmjinji" :columns="columnsrenjinji"></u-picker>
-
-					<view class="guidang">
-						<view class="queding">
-							<u-button type="primary" :plain="true" text="取消" @click="quxiao"></u-button>
-						</view>
-						<view class="queding">
-							<u-button type="primary" text="确定" @click="queding"></u-button>
-						</view>
-					</view>
-				</view>
-			</u-popup>
-			<u-notify ref="uNotify" message=""></u-notify>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				columnsrenyuan: [],
-				columnsrenjinji: [],
-				model1: {
-					userInfo: {
-						repairPersonId: '',
-						urgency: '',
-					},
-				},
-
-				rules: {
-					'userInfo.repairPersonId': {
-						type: 'string',
-						required: true,
-						message: '请选择维修人员',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.urgency': {
-						type: 'string',
-						required: true,
-						message: '请选择紧急程度',
-						trigger: ['blur', 'change']
-					},
-				},
-
-				showjinji: false,
-				showSex: false,
-				showqd: false,
-				showweixiu: false,
-				companyOrgId: '',
-				renyuanid: '',
-				jjcd: '',
-
-				src: 'https://cdn.uviewui.com/uview/album/1.jpg',
-				details: {
-					shijian: '',
-					weizhi: '',
-					quyu: '',
-					leixing: '',
-					lxr: '',
-					lxdh: '',
-					gzms: '',
-					gzimg: [],
-				},
-				albumWidth: 0,
-			}
-		},
-		onReady() {
-			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
-			//this.$refs.uForm.setRules(this.rules)
-		},
-		onLoad(options) {
-			this.companyOrgId = options.id;
-			//  console.log(options.id);
-			let getDictDataList = uni.getStorageSync('getDictDataList');
-
-
-			for (let i = 0; i < getDictDataList.length; i++) {
-				if (getDictDataList[i].dictType == 'UrgencyType') {
-					this.columnsrenjinji = [getDictDataList[i].dataList]
-				}
-			}
-
-			this.getdata();
-			this.getUserList();
-		},
-		methods: {
-			getUserList() {
-				this.$api.get('/user/list', {
-						page: 1,
-						limit: 100,
-					})
-					.then(res => {
-
-						this.columnsrenyuan = [res.data.data]
-					})
-			},
-			getdata() {
-				this.$api.get('/repairorder/' + this.companyOrgId, {})
-					.then(res => {
-
-						this.details.shijian = res.data.data.createDate;
-						this.details.weizhi = res.data.data.repairPosition;
-						this.details.lxr = res.data.data.contactPerson;
-						this.details.lxdh = res.data.data.contactPhone;
-						this.details.gzms = res.data.data.faultDes;
-						res.data.data.faultPics = res.data.data.faultPics.split(",");
-
-						this.details.gzimg = res.data.data.faultPics;
-						//  console.log('111111111111111111', this.details.gzimg)
-
-						if (res.data.data.repairRegion == 1) {
-							this.details.quyu = '公共区域';
-						} else if (res.data.data.repairRegion == 2) {
-							this.details.quyu = '室内';
-						}
-
-						if (res.data.data.repairType == 1) {
-							this.details.leixing = '水';
-						} else if (res.data.data.repairType == 2) {
-							this.details.leixing = '电';
-						} else if (res.data.data.repairType == 3) {
-							this.details.leixing = '其他';
-						}
-
-
-
-					})
-			},
-			quxiao() {
-				this.showweixiu = false;
-			},
-			queding() {
-				this.$refs.uForm.validate().then(res => {
-					//	uni.$u.toast('校验通过')
-					//  jjcd  renyuanid  companyOrgId
-					//console.log('111111111111111111',this.jjcd,this.renyuanid,this.companyOrgId)
-					this.$api.put('/repairorder', {
-							id: this.companyOrgId,
-							repairPersonId: this.renyuanid,
-							urgency: this.jjcd,
-						})
-						.then(res => {
-							//console.log('111111111111111111',res)
-							if (res.data.code == 0) {
-								this.$refs.uNotify.success('指派成功')
-
-								setTimeout(function() {
-									uni.navigateTo({
-										url: '/pages/index/Workordertodone/Workordertodone'
-									})
-								}, 1000);
-
-							} else {
-								this.$refs.uNotify.error(res.data.msg)
-								// uni.navigateBack({
-								// 	delta: 1
-								// });
-							}
-						})
-
-				}).catch(errors => {
-					uni.$u.toast('校验失败')
-				})
-			},
-
-			weixiuyes() {
-				this.$api.post('/repairorder/finish/' + this.companyOrgId, {})
-					.then(res => {
-						//console.log('111111111111111111',res)
-						if (res.data.code == 0) {
-							this.$refs.uNotify.success('维修成功')
-							setTimeout(function() {
-								uni.navigateTo({
-									url: '/pages/index/Workordertodone/Workordertodone'
-								})
-							}, 1000);
-						} else {
-							this.$refs.uNotify.error(res.data.msg)
-						}
-					})
-				this.showqd = false;
-			},
-			weixiuno() {
-				this.showqd = false;
-			},
-			Maintenancepersonnel() {
-				this.showweixiu = true;
-			},
-			openwx() {
-				// console.log('open');
-			},
-			closewx() {
-				this.showweixiu = false
-				// console.log('close');
-			},
-
-			confirmry(e) {
-				console.log('confirm', e.value[0])
-				this.model1.userInfo.repairPersonId = e.value[0].realName;
-				this.renyuanid = e.value[0].id;
-				this.showSex = false
-			},
-			confirmjinji(e) {
-				console.log('confirm', e.value[0])
-				this.model1.userInfo.urgency = e.value[0].dictLabel;
-				this.jjcd = e.value[0].dictValue;
-				this.showjinji = false
-			},
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.baoxiu {
-		padding: 18rpx 32rpx;
-		font-size: 36rpx;
-	
-		span {
-			display: inline-block;
-			margin-right: 16rpx;
-			width: 8rpx;
-			height: 32rpx;
-			background-color: #5776E6;
-			border-radius: 5rpx;
-		}
-	}
-	
-	.uploadPart {
-		display: flex;
-		justify-content: center;
-		width: 100%;
-	
-		.uploadBtn {
-			width: 160rpx;
-			height: 160rpx;
-			background-color: #ECF0FF;
-			text-align: center;
-			border-radius: 4rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-		}
-	
-		.allimg {
-			position: relative;
-		}
-	
-		.newimg {
-			width: 160rpx;
-			height: 160rpx;
-			margin-right: 10rpx;
-			border: 1px solid #eee;
-		}
-	}
-	.guidang {
-		display: flex;
-		    align-items: center;
-		    justify-content: space-around;
-		    border-top: 24rpx solid #f8f8f8;
-		    padding: 16rpx 0;
-		.queding {
-			width: 300rpx;
-			height: 88rpx;
-		
-		}
-	}
-	.weixiudc {
-		width: 750rpx;
-		height: 450rpx;
-
-		.tit {
-			    font-size: 18px;
-			    text-align: center;
-			    padding: 12px 0;
-			    border-bottom: 1px solid #eee;
-		}
-		.u-form{
-			padding: 0 32rpx;
-		}
-	}
-</style>

+ 0 - 340
pages/index/Workordertodone/Workordertodone.vue

@@ -1,340 +0,0 @@
-<template>
-	<view class="page">
-		<u-tabs :list="list" @click="sectionChange" style="background-color: #fff;" :current=current
-			:itemStyle="{'width':wid,'padding':'24rpx'}" lineHeight="2px" lineWidth="30px"></u-tabs>
-		<!-- 待指派 -->
-		<view class="contain" v-show="cdshow==0">
-			<view style="padding:16rpx 0 16rpx 32rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<view class="u-listdata">
-				<u-list @scrolltolower="scrolltolower" :pagingEnabled='true' style="height:400px;flex:1;">
-					<u-list-item v-for="(item, index) in indexList" :key="index">
-						<view class="paisong" @click="Workorderdetails1(item)">
-							<view class="title">{{item.repairPosition}}</view>
-							<view class="submit" v-if='item.repairType==1'>
-								报修类型: 水
-							</view>
-							<view class="submit" v-if='item.repairType==2'>
-								报修类型: 电
-							</view>
-							<view class="submit" v-if='item.repairType==3'>
-								报修类型: 其他
-							</view>
-
-							<view class="submit">
-								报修时间: {{item.createDate}}
-							</view>
-						</view>
-
-					</u-list-item>
-				</u-list>
-			</view>
-		</view>
-		<!-- 已派送(待维修) -->
-		<view class="contain" v-show="cdshow==1">
-			<!-- 	列表 -->
-			<view class="u-listdata">
-				<view style="padding:16rpx 0 16rpx 32rpx">
-					共有 <span style="color: red">{{totalnumber}}</span>条记录
-				</view>
-				<u-list @scrolltolower="scrolltolower" :pagingEnabled='true' style="height:400px;flex:1;">
-					<u-list-item v-for="(item, index) in indexList" :key="index">
-						<view class="paisong" @click="Workorderdetails2(item)">
-							<view class="status bg3" v-if="item.urgency==1">
-								非常紧急
-							</view>
-							<view class="status bg2" v-if="item.urgency==2">
-								紧急
-							</view>
-							<view class="status bg1" v-if="item.urgency==3">
-								普通
-							</view>
-							<view class="title">{{item.repairPosition}}</view>
-							<view class="subtit" v-if='item.repairType==1'>
-								报修类型: 水
-							</view>
-							<view class="subtit" v-if='item.repairType==2'>
-								报修类型: 电
-							</view>
-							<view class="subtit" v-if='item.repairType==3'>
-								报修类型: 其他
-							</view>
-							<view class="subtit">
-								派送时间:{{ item.updateDate }}
-							</view>
-						</view>
-					</u-list-item>
-				</u-list>
-			</view>
-		</view>
-		<!--已维修 -->
-		<view class="contain" v-show="cdshow==2">
-			<!-- 	列表 -->
-			<view class="u-listdata">
-				<view style="padding:16rpx 0 16rpx 32rpx">
-					共有 <span style="color: red">{{totalnumber}}</span>条记录
-				</view>
-				<u-list @scrolltolower="scrolltolower" :pagingEnabled='true' style="height:400px;flex:1">
-					<u-list-item v-for="(item, index) in indexList" :key="index">
-
-						<view class="paisong" @click="Workorderdetails3(item)">
-							<view class="status bg3" v-if="item.urgency==1">
-								非常紧急
-							</view>
-							<view class="status bg2" v-if="item.urgency==2">
-								紧急
-							</view>
-							<view class="status bg1" v-if="item.urgency==3">
-								普通
-							</view>
-
-							<view class="title">{{item.repairPosition}}</view>
-							<view class="subtit" v-if='item.repairType==1'>
-								报修类型: 水
-							</view>
-							<view class="subtit" v-if='item.repairType==2'>
-								报修类型: 电
-							</view>
-							<view class="subtit" v-if='item.repairType==3'>
-								报修类型: 其他
-							</view>
-							<view class="subtit">
-								维修完成时间:{{ item.repairFinishTime }}
-							</view>
-						</view>
-					</u-list-item>
-				</u-list>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	//	import { isEmpty, getDictDataList } from "@/utils/index";
-
-	export default {
-		name: 'Workordertodone',
-		data() {
-			return {
-				wid:'250rpx',
-				totalnumber: 0,
-				jfnodata: false,
-				showtype: false,
-				cdshow: 0,
-				fatherparameter: {},
-				expensedata: '全部',
-				list: [],
-				gly: true,
-				current: 0,
-				dataForm: {
-					status: "1",
-					page: 1,
-					limit: 10,
-				},
-				indexList: [],
-				payStatusList: [],
-				nodata: true,
-				pd: true,
-				columnstype: [],
-				repairTypeList: [],
-				UrgencyTypelist: [],
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad: function(options) { //option为object类型,会序列化上个页面传递的参数
-			let permissions = uni.getStorageSync('ButtonPermissions');
-			let isHave = permissions.includes('app:Tobeassigned');
-			this.gly = permissions.includes('app:Tobeassigned');
-			if (isHave) {
-				this.list = [{
-					name: '待指派'
-				}, {
-					name: '已指派(待维修)'
-				}, {
-					name: '已维修'
-				}];
-				this.cdshow = 0;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.dataForm.status = 1;
-				this.getpaisongdata();
-			} else {
-				this.wid="375rpx";
-				this.list = [{
-					name: '已指派(待维修)'
-				}, {
-					name: '已维修'
-				}];
-				this.cdshow = 1;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.dataForm.status = 2;
-				this.getpaisongdata();
-			}
-		},
-		methods: {
-			Workorderdetails1(e) {
-				uni.navigateTo({
-					url: `/pages/index/Workordertodone/Workorderdetails/Workorderdetails?id=${e.id}`
-				});
-			},
-			Workorderdetails2(e) {
-				uni.navigateTo({
-					url: `/pages/index/Workordertodone/Toberepaired/Toberepaired?id=${e.id}`
-				});
-			},
-			Workorderdetails3(e) {
-				uni.navigateTo({
-					url: `/pages/index/Workordertodone/hasrepaired/hasrepaired?id=${e.id}`
-				});
-			},
-			sectionChange(val) {
-				if (this.gly) {
-					this.current = val.index;
-					if (val.index == 0) {
-						this.cdshow = 0;
-						this.indexList = [];
-						this.dataForm.page = 1;
-						this.dataForm.status = 1;
-						this.getpaisongdata();
-					} else if (val.index == 1) {
-						this.cdshow = 1;
-						this.indexList = [];
-						this.dataForm.page = 1;
-						this.dataForm.status = 2;
-						this.getpaisongdata();
-					} else if (val.index == 2) {
-						this.cdshow = 2;
-						this.indexList = [];
-						this.dataForm.page = 1;
-						this.dataForm.status = 3;
-						this.getpaisongdata();
-					}
-				} else {
-					this.current = val.index;
-					if (val.index == 0) {
-						this.cdshow = 1;
-						this.indexList = [];
-						this.dataForm.page = 1;
-						this.dataForm.status = 2;
-						this.getpaisongdata();
-					} else if (val.index == 1) {
-						this.cdshow = 2;
-						this.indexList = [];
-						this.dataForm.page = 1;
-						this.dataForm.status = 3;
-						this.getpaisongdata();
-					}
-
-				}
-			},
-			scrolltolower() {
-				if (this.pd) {
-					this.getpaisongdata();
-				} else {
-					return
-				}
-			},
-			getpaisongdata() {
-				this.$api.get('/repairorder/page', this.dataForm)
-					.then(res => {
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-							this.jfnodata = false;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-
-					})
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.nodata {
-		text-align: center;
-		padding-top: 400rpx;
-
-	}
-
-	.page {
-		height: 100%;
-		overflow: hidden;
-
-		.contain {
-			height: calc(100% - 44px);
-			padding: 0;
-			display: flex;
-			flex-direction: column;
-
-			.u-listdata {
-				height: 400px;
-				flex: 1;
-				display: flex;
-				flex-direction: column;
-
-			}
-		}
-	}
-
-	.paisong {
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		background-color: #fff;
-		margin: 0 16px 24rpx;
-		padding: 12px 16px;
-		border-radius: 4px;
-		position: relative;
-
-		.title {
-			font-size: 32rpx;
-			color: #0C1935;
-			margin-bottom: 16rpx;
-
-			span {
-				color: #FA5555;
-				font-weight: 600;
-			}
-		}
-
-		.subtit {
-			color: #9DA0AC;
-			margin-bottom: 6rpx;
-		}
-
-		.status {
-			position: absolute;
-			padding: 1px 5px;
-			border-radius: 0 8rpx 0 24rpx;
-			right: 0;
-			line-height: 48rpx;
-			text-align: center;
-			top: 0;
-			z-index: 1;
-			font-size: 22rpx;
-			background-color: rgba(48, 211, 162, .16);
-			color: rgba(48, 211, 162, 1);
-
-			&.bg2 {
-				background-color: rgba(255, 156, 39, .16);
-				color: rgba(255, 156, 39, 1);
-			}
-
-			&.bg3 {
-				background-color: rgba(237, 58, 37, .16);
-				color: rgba(237, 58, 37, 1);
-			}
-		}
-	}
-</style>

+ 0 - 160
pages/index/Workordertodone/hasrepaired/hasrepaired.vue

@@ -1,160 +0,0 @@
-<template>
-	<view class="contain" style="padding-bottom: 0;">
-		<view class="main" style="padding: 0;">
-			<view class="baoxiu"><span></span>报修信息</view>
-			<u-cell-group>
-				<u-cell title="报修时间" :value="details.shijian">
-				</u-cell>
-				<u-cell title="报修位置" :value="details.weizhi">
-				</u-cell>
-				<u-cell title="报修区域" :value="details.quyu">
-				</u-cell>
-				<u-cell title="报修类型" :value="details.leixing">
-				</u-cell>
-				<u-cell title="联系人" :value="details.lxr">
-				</u-cell>
-				<u-cell title="联系电话" :value="details.lxdh">
-					
-				</u-cell>
-				<u--form labelPosition="left" >
-				<u-form-item labelWidth='180' style="padding:0 32rpx;" label="故障描述:">
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom style="padding:0 32rpx;">
-					<view style="width:100%;padding: 0 20rpx;height:80px">{{details.gzms}}</view>
-				</u-form-item>
-				<u-form-item labelWidth='180' label="故障照片" style="padding:0 32rpx;">
-				</u-form-item>
-				<u-form-item labelWidth='180' borderBottom style="padding:0 32rpx;">
-					<view class="uploadPart">
-						<view class="allimg" v-for="img in details.gzimg">
-							<image :src="img" mode="aspectFill" class="newimg"></image>
-						</view>
-					</view>
-				</u-form-item>
-				</u--form>
-			</u-cell-group>
-
-			<view class="baoxiu"><span></span>维修信息</view>
-			<u-cell-group>
-				<u-cell title="紧急程度" :value="details.jinji">
-				</u-cell>
-				<u-cell title="维修人员" :value="details.weixiury">
-				</u-cell>
-			<!-- 	<u-cell title="联系电话" :value="details.weixiudh">
-				</u-cell> -->
-				<u-cell title="完成时间" :value="details.repairFinishTime">
-				</u-cell>
-			</u-cell-group>
-		</view>
-		<!--确定弹窗-->
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				companyOrgId: '',
-				details: {
-					shijian: '',
-					weizhi: '',
-					quyu: '',
-					leixing: '',
-					lxr: '',
-					lxdh: '',
-					gzms: '',
-					gzimg: [],
-					repairFinishTime: '',
-					jinji: '',
-					weixiury: '',
-					weixiudh: ''
-				},
-
-			}
-		},
-		onReady() {},
-		onLoad(options) {
-			this.companyOrgId = options.id;
-			this.getdata();
-		},
-		methods: {
-			getdata() {
-				this.$api.get('/repairorder/' + this.companyOrgId, {})
-					.then(res => {
-						this.details.shijian = res.data.data.createDate;
-						this.details.weizhi = res.data.data.repairPosition;
-						this.details.lxr = res.data.data.contactPerson;
-						this.details.lxdh = res.data.data.contactPhone;
-						this.details.gzms = res.data.data.faultDes;
-						this.details.weixiury = res.data.data.repairPersonName;
-						this.details.repairFinishTime = res.data.data.repairFinishTime;
-						res.data.data.faultPics = res.data.data.faultPics.split(",");
-						this.details.gzimg = res.data.data.faultPics;
-						if (res.data.data.repairRegion == 1) {
-							this.details.quyu = '公共区域';
-						} else if (res.data.data.repairRegion == 2) {
-							this.details.quyu = '室内';
-						}
-						if (res.data.data.repairType == 1) {
-							this.details.leixing = '水';
-						} else if (res.data.data.repairType == 2) {
-							this.details.leixing = '电';
-						} else if (res.data.data.repairType == 3) {
-							this.details.leixing = '其他';
-						}
-
-						if (res.data.data.urgency == 1) {
-							this.details.jinji = '非常紧急';
-						} else if (res.data.data.urgency == 2) {
-							this.details.jinji = '紧急';
-						} else if (res.data.data.urgency == 3) {
-							this.details.jinji = '普通';
-						}
-					})
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.baoxiu {
-		padding: 18rpx 32rpx;
-		font-size: 36rpx;
-	
-		span {
-			display: inline-block;
-			margin-right: 16rpx;
-			width: 8rpx;
-			height: 32rpx;
-			background-color: #5776E6;
-			border-radius: 5rpx;
-		}
-	}
-	.uploadPart {
-		display: flex;
-		justify-content: center;
-		width: 100%;
-	
-		.uploadBtn {
-			width: 160rpx;
-			height: 160rpx;
-			background-color: #ECF0FF;
-			text-align: center;
-			border-radius: 4rpx;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-		}
-	
-		.allimg {
-			position: relative;
-		}
-	
-		.newimg {
-			width: 160rpx;
-			height: 160rpx;
-			margin-right: 10rpx;
-			border: 1px solid #eee;
-		}
-	}
-</style>

+ 0 - 603
pages/index/index.vue

@@ -1,603 +0,0 @@
-<template>
-	<view class="content">
-		<u-cell-group class="toptemplate">
-			<view style="height: 20px;"></view>
-			<u-cell title="跨境电商" :border="false">
-				<u-icon slot="icon" size="40" color="#fff" name="map"></u-icon>
-				<u-icon slot="right-icon" size="40" color="#fff" name="account" @click="toUser()"></u-icon>
-			</u-cell>
-		</u-cell-group>
-		<view class="Homepage_suspension"
-			v-if="$has('app:InspectionRecord')||$has('app:OnlineReport')||$has('app:WithholdingRecord')">
-			<view class="Suspension">
-				<view class="online" @click="Onlinewarranty" v-if="$has('app:OnlineReport')">
-					<view>
-						<u--image mode="widthFix" :src="srcxianshang1" width="80rpx" height="80rpx"></u--image>
-					</view>
-					<view style="font-size: 28rpx;color: #697081;">线上报修</view>
-				</view>
-				<view class="online" @click="Inspectionrecord" v-if="$has('app:InspectionRecord')">
-					<view>
-						<u--image mode="widthFix" :src="srcxianshang2" width="80rpx" height="80rpx"></u--image>
-
-					</view>
-					<view style="font-size: 28rpx;color: #697081;">巡检记录</view>
-				</view>
-				<view class="online" @click="Withholdingrecord" v-if="$has('app:WithholdingRecord')">
-					<view>
-
-						<u--image mode="widthFix" :src="srcxianshang3" width="80rpx" height="80rpx"></u--image>
-					</view>
-					<view style="font-size: 28rpx;color: #697081;">扣缴记录</view>
-				</view>
-			</view>
-		</view>
-
-		<view class="pending" v-if="$has('app:RealtimeInspection')">
-			<view class="pending_middle">
-				<view class="all">
-					<view class="work">
-						<span>实时巡检</span>
-						<text class="bootomBg"></text>
-					</view>
-					<view class="processing" v-if="$has('app:ImmediateInspection')">
-						<view class="immediately" @click="Immediateinspection">
-							<span style="font-size: 25rpx; color: #5c8fff; ">立即巡检</span>
-							<u-icon name="arrow-right" color="#5c8fff" size="16rpx"></u-icon>
-						</view>
-					</view>
-				</view>
-				<view class="wait">
-					<view>
-						<view style="font-size: 24rpx;color: #697081;">今日待巡检</view>
-						<view style="text-align: center;font-size: 32rpx;color: #0C1935;padding-top: 15rpx;">
-							{{inspectionInfoList.todayTotalNum}}
-						</view>
-					</view>
-					<view>
-						<view style="font-size: 24rpx;color: #697081;">今日已巡检</view>
-						<view style="text-align: center;font-size: 32rpx;color: #0C1935;padding-top: 15rpx;">
-							{{inspectionInfoList.todayNum}}
-						</view>
-					</view>
-
-				</view>
-			</view>
-		</view>
-
-		<view class="pending" v-if="$has('app:Tobeassigned')||$has('app:Toberepaired')||$has('app:hasrepaired')">
-			<view class="pending_middle">
-				<view class="all">
-					<view class="work">
-						<span>工单待办</span>
-						<text class="bootomBg"></text>
-					</view>
-					<view class="processing" v-if="$has('app:WorkorderTobeDone')">
-						<view class="immediately" @click="Workordertodone">
-							<span style="font-size: 25rpx; color: #5c8fff; ">立即处理</span>
-							<u-icon name="arrow-right" color="#5c8fff" size="16rpx"></u-icon>
-						</view>
-
-					</view>
-				</view>
-				<view class="wait">
-					<view v-if="$has('app:Tobeassigned')">
-						<view style="font-size: 24rpx;color: #697081;">待指派</view>
-						<view style="text-align: center;font-size: 32rpx;color: #0C1935;padding-top: 15rpx;">
-							{{workList[1]}}
-						</view>
-					</view>
-					<view v-if="$has('app:Toberepaired')">
-						<view style="font-size: 24rpx;color: #697081;">待维修</view>
-						<view style="text-align: center;font-size: 32rpx;color: #0C1935;padding-top: 15rpx;">
-							{{workList[2]}}
-						</view>
-					</view>
-					<view v-if="$has('app:hasrepaired')">
-						<view style="font-size: 24rpx;color: #697081;">已维修</view>
-						<view style="text-align: center;font-size: 32rpx;color: #0C1935;padding-top: 15rpx;">
-							{{workList[3]}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-
-		<view class="equipment" v-if="$has('app:EquipmentException')">
-			<view class="pending_middle">
-				<view class="all">
-					<view class="work">
-						<span>设备异常</span>
-						<text class="bootomBg"></text>
-					</view>
-					<view class="processing" v-if="$has('app:LookatImmediately')">
-						<view class="immediately" @click="EquipmentException">
-							<span style="font-size: 25rpx; color: #5c8fff; ">立即查看</span>
-							<u-icon name="arrow-right" color="#5c8fff" size="16rpx"></u-icon>
-						</view>
-
-					</view>
-				</view>
-				<view class="wait">
-					<view>
-						<view style="font-size: 24rpx;color: #697081;">异常总数</view>
-						<view style="text-align: center;font-size: 32rpx;color: #FA5555;padding-top: 15rpx;">
-							{{abnormalNum}}
-						</view>
-					</view>
-					<view>
-						<view style="font-size: 24rpx;color: #697081;">空调异常</view>
-						<view style="text-align: center;font-size: 32rpx;color: #FA5555;padding-top: 15rpx;">
-							{{deviceArr.AirConditioner}}
-						</view>
-					</view>
-					<view>
-						<view style="font-size: 24rpx;color: #697081;">水表异常</view>
-						<view style="text-align: center;font-size: 32rpx;color: #FA5555;padding-top: 15rpx;">
-							{{deviceArr.WaterMeter}}
-						</view>
-					</view>
-					<view>
-						<view style="font-size: 24rpx;color: #697081;">电表异常</view>
-						<view style="text-align: center;font-size: 32rpx;color: #FA5555;padding-top: 15rpx;">
-							{{deviceArr.Relay}}
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 管理员界面 -->
-		<view class="arrears" v-if="$has('app:ArrearstobeCollected')">
-			<view class="pending_middle">
-				<view class="all">
-					<view class="work">
-						<span>欠费待收</span>
-						<text class="bootomBg"></text>
-					</view>
-					<view class="processing" v-if="$has('app:ImmediateCollection')">
-						<view class="immediately" @click="Immediatecollection">
-							<span style="font-size: 25rpx; color: #5c8fff; ">立即催收</span>
-							<u-icon name="arrow-right" color="#5c8fff" size="16rpx"></u-icon>
-						</view>
-					</view>
-				</view>
-				<view class="tableBox">
-				<u-row class="table">
-					<u-col span="4">
-						<text>欠费类型</text>
-					</u-col>
-					<u-col span="4">
-						<text>欠费租户数</text>
-					</u-col>
-					<u-col span="4">
-						<text>累计欠费(元)</text>
-					</u-col>
-				</u-row>
-				<u-row v-for="item in tableList" :key="item.name" class="table t1">
-					<u-col span="4">
-						<text>{{item.name}}</text>
-					</u-col>
-					<u-col span="4">
-						<text>{{item.tenant}}</text>
-					</u-col>
-					<u-col span="4">
-						<text>{{item.tenant}}</text>
-					</u-col>
-				</u-row>
-			</view>
-
-				<!-- <t-table style="background-color: #fff;margin-top: 10rpx;">
-					<t-tr>
-						<t-th>欠费类型</t-th>
-						<t-th></t-th>
-						<t-th>累计欠费(元)</t-th>
-					</t-tr>
-					<t-tr v-for="item in tableList" :key="item.name">
-						<t-td>{{ item.name }}</t-td>
-						<t-td>{{ item.tenant }}</t-td>
-						<t-td>{{ item.arrears }}</t-td>
-					</t-tr>
-				</t-table> -->
-			</view>
-		</view>
-		<!-- 	租户界面 -->
-		<view class="arrears1" v-if="$has('app:BillPending')">
-			<view class="pending_middle">
-				<view class="all">
-					<view class="work">
-						<span>账单待缴</span>
-						<text class="bootomBg"></text>
-					</view>
-					<view class="processing" v-if="$has('app:ImmediatePayment')">
-						<view class="immediately" @click="BillPending">
-							<span style="font-size: 25rpx; color: #5c8fff; ">立即缴费</span>
-							<u-icon name="arrow-right" color="#5c8fff" size="16rpx"></u-icon>
-						</view>
-					</view>
-				</view>
-				<view class="tableBox">
-					<u-row class="table">
-						<u-col span="4">
-							<text>欠费类型</text>
-						</u-col>
-						<u-col span="4">
-							<text>本期待缴金额(元)</text>
-						</u-col>
-						<u-col span="4">
-							<text>累计待缴金额(元)</text>
-						</u-col>
-					</u-row>
-					<u-row v-for="item in tableList" :key="item.name" class="table t1">
-						<u-col span="4">
-							<text>{{item.name}}</text>
-						</u-col>
-						<u-col span="4">
-							<text>{{item.currentAmount}}</text>
-						</u-col>
-						<u-col span="4">
-							<text>{{item.cumulativeAmount}}</text>
-						</u-col>
-					</u-row>
-				</view>
-			</view>
-		</view>
-
-		<u-tabbar class="tabberall" :value="value1" :fixed="true" :placeholder="true" @change="name => value1 = name"
-			:safeAreaInsetBottom="true">
-			<u-tabbar-item text="首页" @click="click1">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg1"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg2"></image>
-			</u-tabbar-item>
-		
-			<u-tabbar-item  text="租户账单" v-if="$has('app:TenantBill')"  @click="click2">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg3"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg4"></image>
-		
-			</u-tabbar-item>
-			<u-tabbar-item text="远程管控" v-if="$has('app:RemoteControl')" @click="click3">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg5"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg6"></image>
-			</u-tabbar-item>
-		</u-tabbar>
-
-		<!-- 水印 -->
-		<!-- <canvas v-if="showCanvas" class="watermarkCans" canvas-id="watermarkCanvas"></canvas> -->
-	</view>
-</template>
-
-<script>
-	import watermark from '@/js_sdk/ly-watermark/commons/watermark.js'
-	export default {
-		//  mixins: [watermark],  // 水印
-		components: {
-		},
-		data() {
-			return {
-				abnormalNum: 0,
-				canvasText: '',
-				value1: 0,
-				tabimg1: require('@/static/tab/h2.png'),
-				tabimg2: require('@/static/tab/h1.png'),
-				tabimg3: require('@/static/tab/w2.png'),
-				tabimg4: require('@/static/tab/w1.png'),
-				tabimg5: require('@/static/tab/y2.png'),
-				tabimg6: require('@/static/tab/y1.png'),
-
-
-				srcxianshang1: require('@/static/index/repair-online.svg'),
-				srcxianshang2: require('@/static/index/check-review.svg'),
-				srcxianshang3: require('@/static/index/reduce-record.svg'),
-				tableList: [],
-				tabbardata: 0,
-				workList: {}, //工单代办
-				deviceArr: {}, //设备异常数据
-				getuserInfo: {},
-				inspectionInfoList: {},
-			}
-		},
-		onLoad() {
-			this.getalldata();
-			this.getuserInfo = uni.getStorageSync('getuserInfo');
-			this.canvasText = this.getuserInfo.realName;
-
-		},
-		mounted() {
-		},
-		onPullDownRefresh() {
-			this.getalldata();
-
-		},
-		methods: {
-			navigations(){
-				uni.navigateTo({
-					url: '/pages/my/Personalinformation/Personalinformation'
-				})
-			},
-			click1() {
-				uni.navigateTo({
-					url: '/pages/index/index'
-				})
-			},
-			click2() {
-				uni.navigateTo({
-					url: '/pages/Workorder/Tenantbill/Tenantbill'
-				})
-			},
-			click3() {
-				uni.navigateTo({
-					url: '/pages/Workorder/Workorder'
-				})
-			},
-			toUser(){
-				uni.navigateTo({
-					url:'/pages/my/Personalinformation/Personalinformation'
-				})
-			},
-			getalldata() {
-				this.$api.get('/home/homedata', {})
-					.then(res => {
-						uni.stopPullDownRefresh() //刷新数据之后停止刷新效果
-						this.workList = res.data.data.workOrder;
-						this.abnormalNum = res.data.data.equip.abnormalNum;
-						this.deviceArr = res.data.data.equip.maps;
-						this.inspectionInfoList = res.data.data.inspectionInfo;
-
-						this.tableList = res.data.data.billPaymentList.map(item => {
-							let json = {};
-							if (item.payType == 'Water') {
-								item.payType = '水费'
-							} else if (item.payType == 'Elec') {
-								item.payType = '电费'
-							} else if (item.payType == 'PropertyFee') {
-								item.payType = '物业费'
-							}
-
-							json.name = item.payType;
-							json.tenant = item.arrearageNum;
-							json.arrears = item.arrearageAmount;
-
-							json.currentAmount = item.currentAmount;
-							json.cumulativeAmount = item.cumulativeAmount;
-							return json
-						})
-					})
-			},
-			BillPending() {
-				uni.navigateTo({
-					url: '/pages/index/BillPending/BillPending?info=' + encodeURIComponent(JSON.stringify(this
-						.getuserInfo))
-				});
-			},
-			Immediatecollection() {
-				uni.navigateTo({
-					url: '/pages/index/Immediatecollection/Immediatecollection'
-				})
-			},
-			Workordertodone() {
-				uni.navigateTo({
-					url: '/pages/index/Workordertodone/Workordertodone'
-				})
-			},
-			EquipmentException() {
-				uni.navigateTo({
-					url: '/pages/index/EquipmentException/EquipmentException'
-				})
-			},
-			Onlinewarranty() {
-				uni.navigateTo({
-					url: '/pages/index/Onlinewarranty/Onlinewarranty'
-				})
-			},
-			Immediateinspection() {
-				uni.navigateTo({
-					url: '/pages/index/Immediateinspection/Immediateinspection'
-				})
-			},
-			Inspectionrecord() {
-				uni.navigateTo({
-					url: '/pages/index/Inspectionrecord/Inspectionrecord'
-				})
-			},
-			Withholdingrecord() {
-				uni.navigateTo({
-					url: '/pages/index/Withholdingrecord/Withholdingrecord'
-				})
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.toptemplate {
-		height: 280rpx;
-		border-radius: 0 0 32rpx 32rpx;
-	}
-
-	* {
-		margin: 0;
-		padding: 0;
-		list-style: none;
-		text-decoration: none;
-	}
-
-	.watermarkCans {
-		width: 250rpx;
-		height: 250rpx;
-		position: absolute;
-		z-index: -1;
-	}
-
-	.u-page__item__slot-icon {
-		width: 40rpx;
-		height: 40rpx;
-	}
-
-	.work {
-		position: relative;
-		margin-bottom: 20rpx;
-
-		span {
-			font-size: 28rpx;
-			position: relative;
-			z-index: 2;
-		}
-
-		.bootomBg {
-			display: inline-block;
-			background: linear-gradient(to right, #FFD263, #ffffff);
-			height: 8px;
-			width: 56px;
-			position: absolute;
-			left: 0;
-			bottom: -4px;
-			border-radius: 5px;
-			z-index: 0;
-		}
-	}
-
-	.online {
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.Homepage_header {
-		width: 750rpx;
-		height: 200rpx;
-		background-color: #5c8fff;
-		border-radius: 0px 0px 16px 16px;
-		position: fixed;
-		top: 0px;
-
-	}
-
-	.kongbai {
-		height: 100rpx;
-		width: 750rpx;
-	}
-
-	.Homepage_suspension {
-		width: 690rpx;
-		height: 200rpx;
-		margin: -120rpx auto 28rpx;
-		background-color: #fff;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		border-radius: 10rpx;
-	}
-
-	.Suspension {
-		width: 690rpx;
-		// height: 200rpx;
-		display: flex;
-		align-items: center;
-		justify-content: space-around;
-	}
-
-	.pending {
-		width: 750rpx;
-		// background-color: #ccc;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		position: relative;
-		margin-bottom: 28rpx;
-	}
-
-	.pending_middle {
-		width: 690rpx;
-		// height: 100px;
-		// background-color: #fff;
-	}
-
-	.all {
-		width: 100%;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-	}
-
-	.wait {
-		width: 690rpx;
-		display: flex;
-		align-items: center;
-		background-color: #fff;
-		justify-content: space-around;
-		text-align: center;
-		height: 150rpx;
-		border-radius: 10rpx;
-	}
-
-	.immediately {
-		display: flex;
-		// padding-top: 2rpx;
-	}
-
-	.equipment {
-		width: 750rpx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		position: relative;
-		margin-bottom: 28rpx;
-	}
-
-	.arrears {
-		// width: 750rpx;
-		// height: 350rpx;
-		display: flex;
-		flex: 1;
-		align-items: center;
-		justify-content: center;
-		position: relative;
-		margin-bottom: 28rpx;
-	}
-
-	.arrears1 {
-		// width: 750rpx;
-		// height: 350rpx;
-		display: flex;
-		flex: 1;
-		align-items: center;
-		justify-content: center;
-		position: relative;
-		margin-bottom: 28rpx;
-	}
-
-
-	.type {
-		display: flex;
-		align-items: center;
-		justify-content: space-around;
-		text-align: center;
-		flex: 1;
-		margin-top: 10rpx;
-		font-size: 30rpx;
-	}
-
-	tr {
-		background-color: #fff;
-	}
-
-	.tabberall {
-		position: relative;
-		z-index: 3;
-	}
-	.tableBox{
-		// padding:0 32rpx 20rpx 32rpx;
-		background-color: #fff;
-		border-radius: 8rpx;
-		.table{
-			height: 80rpx;
-			font-size: 24rpx;
-			&.t1{
-				border-top:1px solid #eee;
-				height:90rpx
-			}
-			*{text-align: center;}
-		}
-	}
-	
-</style>

File diff suppressed because it is too large
+ 0 - 143
pages/login/Privacyagreement.vue


+ 0 - 86
pages/login/forget.vue

@@ -1,86 +0,0 @@
-<template>
-	<view class="content">
-		<view class="row-input">
-			<text class="name">用户账号</text>
-			<input placeholder="手机号码或邮箱" maxlength="18" />
-		</view>
-		<view class="row-input">
-			<text class="name">验证码</text>
-			<input placeholder="输入验证码" maxlength="6" />
-			<view class="code">
-				<text>获取验证码</text>
-			</view>
-		</view>
-		<view class="row-input">
-			<text class="name">登录密码</text>
-			<input placeholder="6~16位字母和数字结合" maxlength="16" />
-		</view>
-		<view class="row-input">
-			<text class="name">确认密码</text>
-			<input placeholder="再次输入您的密码" maxlength="16" />
-		</view>
-		<view class="forget-btn">提交</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {}
-		},
-	}
-</script>
-
-<style lang="scss">
-	page {
-		background-color: #0b0c14;
-	}
-
-	.content {
-		padding: 40rpx;
-
-		.row-input {
-			display: flex;
-			justify-content: flex-start;
-			align-items: center;
-			height: 110rpx;
-			padding: 0 30rpx;
-			background-color: #2b2f41;
-			border-radius: 8rpx;
-			margin-bottom: 50rpx;
-			font-size: 30rpx;
-
-			.name {
-				width: 150rpx;
-				letter-spacing: 4rpx;
-				color: #FFFFFF;
-			}
-
-			input {
-				flex: 1;
-				color: #a1a2a3;
-			}
-
-			.code {
-				display: flex;
-				justify-content: flex-end;
-				letter-spacing: 2rpx;
-				width: 180rpx;
-				color: #1e70fe;
-			}
-		}
-
-		.forget-btn {
-			margin-top: 60rpx;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			font-size: 35rpx;
-			letter-spacing: 15rpx;
-			color: #FFFFFF;
-			height: 110rpx;
-			border-radius: 8rpx;
-			background-image: linear-gradient(to right, #3feaea, #0168e6);
-		}
-	}
-</style>

+ 0 - 410
pages/login/login.vue

@@ -1,410 +0,0 @@
-<template>
-	<view class="content">
-		<view class="info_bg">
-			<image src="../../static/management/login-bg.png" class="bgImg"></image>
-			<div class="title">
-				<image src="../../static/management/logo.svg"></image>
-				<!-- <text>双碳感知资产运营管理平台</text> -->
-				<text>传能</text>
-			</div>
-		</view>
-		<view class="form-box">
-			<view class="loginTxt">登录</view>
-			<view class="row-input">
-				<u-icon name="account" color="#2979ff" size="50" style="padding: 0 20rpx"></u-icon>
-				<input v-model="account" placeholder="请输入用户账号" maxlength="18" clearable />
-			</view>
-			<view class="row-input">
-				<u-icon name="lock" color="#2979ff" size="50" style="padding: 0 20rpx"></u-icon>
-				<input v-model="password" placeholder="登陆密码" clearable :password="!isShowPassword" />
-				<u-icon name="eye-fill" color="#2979ff" size="50" style="padding-right: 20rpx" v-if="isShowPassword"
-					@click="showOrHide"></u-icon>
-				<u-icon name="eye-off" color="#2979ff" size="50" style="padding-right: 0rpx" v-else @click="showOrHide">
-				</u-icon>
-			</view>
-
-			<view class="Userprotocols">
-				<view class="Userprotocolchecked">
-					<checkbox style="transform: scale(0.85)" :checked="rememberPsw" @click="rememberPsw=!rememberPsw" />
-				</view>
-				<view class="Userprotocoltext">记住账号密码</view>
-			</view>
-	
-			<view class="Userprotocol">
-				<view class="Userprotocolchecked">
-					<checkbox :checked="isChecked" @click="isChecked = !isChecked" style="transform: scale(0.7)">
-					</checkbox>
-				</view>
-				<view class="Userprotocoltext">我已阅读并同意 <span @click="useragement">用户协议</span> 和 <span
-						@click="Userprotocol">隐私政策</span> </view>
-			</view>
-			<view class="login-btn" @click="loginbtn">登录</view>
-			
-			
-			<view class="zhucezh">
-				<view class="zhucezh1" @click="zhucehz">
-					注册账号	
-				</view>
-				<view class="zhucezh1" @click="wjmm">
-						忘记密码
-				</view>
-			</view>
-		</view>
-		<u-toast ref="uToast" />
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				isChecked: true,
-				rememberPsw: true,
-				isShowPassword: false,
-				account: "",
-				password: "",
-				captcha: "",
-				uuid: "",
-				captchaPath: "",
-			};
-		},
-
-		onLoad() {
-		},
-		onUnload() {
-			//触发水印显示
-			//uni.$emit("ly-show-watermark");
-		},
-		mounted() { //记住密码
-			//缓存的账号
-			const HBusername = uni.getStorageSync('HBusername');
-			//缓存的密码
-			const HBpassword = uni.getStorageSync('HBpassword');
-			console.log(HBusername)
-			//有缓存就赋值给文本没有就清空
-			if (HBusername && HBpassword) {
-				this.account = HBusername;
-				this.password = HBpassword;
-			} else {
-				this.account = '';
-				this.password = '';
-			}
-		},
-
-		methods: {
-			zhucehz(){
-				uni.navigateTo({
-					url: '/pages/login/register'
-				})
-			},
-			wjmm(){
-				uni.navigateTo({
-					url: '/pages/login/forget'
-				})
-			},
-			
-			//复选框
-			checkboxChange: function(e) {
-				console.log(this.rememberPsw)
-				console.log(this.rememberPsw==true)
-			
-			},
-			loginbtn() {
-				if (this.account == "") {
-					this.$refs.uToast.show({
-						type: "error",
-						message: "请输入账号",
-					});
-					return false
-				} else if (this.password == "") {
-					this.$refs.uToast.show({
-						type: "error",
-						message: "请同意用户协议和隐私政策",
-					});
-					return false
-				}
-				let formData = {
-					username: this.account,
-					password: this.password,
-				};
-				//是否记住密码
-				if (this.rememberPsw==true) {
-					//获取缓存的账号 赋值
-					uni.setStorageSync('HBusername',this.account);
-					uni.setStorageSync('HBpassword',this.password);
-				} else { //销毁
-					uni.removeStorageSync('HBusername');
-					uni.removeStorageSync('HBpassword');
-				}
-				//登录功能
-				this.$api.post("/login", formData).then((res) => {
-					if (res.data.code == 0) {
-						uni.setStorageSync("tokendata", res.data.data.token); //token
-						uni.setStorageSync("Userinformation", formData); //用户信息
-						//获取用户的信息,如组织架构,个人信息,权限等
-						Promise.all([
-							this.getpermissions(),
-							this.getDictList(),
-							this.getuserInfo(),
-						]).then(() => {
-							uni.navigateTo({
-								url: "/pages/index/index",
-							});
-						});
-						return false
-					} else if (this.password == "") {
-						this.$refs.uToast.show({
-							type: "error",
-							message: "请输入密码",
-						});
-						return false
-					}
-
-					let formData = {
-						username: this.account,
-						password: this.password,
-					};
-					//登录功能
-					this.$api.post("/login", formData).then((res) => {
-						if (res.data.code == 0) {
-							uni.setStorageSync("tokendata", res.data.data.token); //token
-							uni.setStorageSync("Userinformation", formData); //用户信息
-
-							//勾选就缓存账号和密码
-							if (this.rememberPsw) {
-								uni.setStorageSync('HBusername', this.account);
-								uni.setStorageSync('HBpassword', this.password);
-							} else { //销毁缓存
-								uni.removeStorageSync('HBusername');
-								uni.removeStorageSync('HBpassword');
-							}
-							//获取用户的信息,如组织架构,个人信息,权限等
-							Promise.all([
-								this.getpermissions(),
-								this.getDictList(),
-								this.getuserInfo(),
-							]).then(() => {
-								uni.navigateTo({
-									url: "/pages/index/index",
-								});
-							});
-						} else {
-							this.$refs.uToast.show({
-								type: "error",
-								message: "账号或者密码错误,请重新输入",
-							});
-						}
-					});
-				})
-			},
-			getpermissions() {
-				//获取用户权限功能
-				return new Promise((resolve, reject) => {
-					this.$api
-						.get("/menu/permissions", {})
-						.then((res) => {
-							uni.setStorageSync("ButtonPermissions", res.data.data);
-							resolve(res);
-						})
-						.catch((e) => {
-							reject(e);
-						});
-				});
-			},
-			getDictList() {
-				//获取字典列表, 添加并全局变量保存
-				return new Promise((resolve, reject) => {
-					this.$api
-						.get("/all", {})
-						.then((res) => {
-							uni.setStorageSync("getDictDataList", res.data.data);
-							resolve(res);
-							//	console.log('222222', res)
-						})
-						.catch((e) => {
-							reject(e);
-						});
-				});
-			},
-			getuserInfo() {
-				//获取用户信息
-				return new Promise((resolve, reject) => {
-					this.$api
-						.get("/user/userInfo", {})
-						.then((res) => {
-							uni.setStorageSync('role',res.data.data.roleCodes[0]);
-							uni.setStorageSync("getuserInfo", res.data.data);
-							resolve(res);
-						})
-						.catch((e) => {
-							reject(e);
-						});
-				});
-			},
-
-			// 密码显示/密码隐藏
-			showOrHide() {
-				this.isShowPassword = !this.isShowPassword;
-			},
-			Userprotocol() {
-				uni.navigateTo({
-					url: "/pages/login/Privacyagreement",
-					success: (res) => {},
-					fail: () => {},
-					complete: () => {},
-				});
-			},
-			useragement() {
-				uni.navigateTo({
-					url: "/pages/login/useragree",
-					success: (res) => {},
-					fail: () => {},
-					complete: () => {},
-				});
-			},
-
-			// 注册
-			register() {
-				uni.navigateTo({
-					url: "/pages/login/register",
-					success: (res) => {},
-					fail: () => {},
-					complete: () => {},
-				});
-			},
-		},
-	};
-</script>
-
-<style lang="scss">
-	.zhucezh{
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		height: 100rpx;
-	}
-	.zhucezh1{
-		font-size: 28rpx;
-		color: #999;
-	}
-	.uni-input-placeholder{text-align: left;}
-	.Userprotocol {
-		margin-top: 60rpx;
-		display: flex;
-		align-items: center;
-		justify-content: flex-end;
-		font-size: 12px;
-	}
-
-	.Userprotocols {
-		margin-top: -30rpx;
-		margin-left: -30rpx;
-		display: flex;
-		align-items: center;
-		transform: scale(.75);
-	}
-
-	.Userprotocoltext {
-		color: #999;
-		span {
-			color: #5C8FFF;
-		}
-	}
-
-	.form-box {
-		width: 91%;
-		background: #fff;
-		margin: -148rpx auto 0;
-		position: relative;
-		z-index: 3;
-		padding: 60rpx 40rpx 100rpx;
-		box-sizing: border-box;
-		border-radius: 32rpx;
-
-		.loginTxt {
-			color: #0c1935;
-			font-size: 40rpx;
-			margin-bottom: 80rpx;
-			text-align: center;
-		}
-
-		.row-input {
-			display: flex;
-			align-items: center;
-			height: 80rpx;
-			background-color: #f4f7ff;
-			border-radius: 36rpx;
-			margin-bottom: 40rpx;
-			padding: 0 20rpx;
-
-			input {
-				width: 460rpx;
-				font-size: 30rpx;
-				color: #a1a2a3;
-				flex: 1;
-			}
-		}
-
-		.Userprotocol {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			margin-top: 100rpx;
-		}
-
-		.login-btn {
-			margin-top: 20rpx;
-			font-size: 16px;
-			letter-spacing: 7px;
-			color: #ffffff;
-			height: 40px;
-			border-radius: 18px;
-			background: #5c8fff;
-			text-align: center;
-			line-height: 40px;
-		}
-	}
-
-	.content {
-		.bgImg {
-			width: 78%;
-			position: absolute;
-			left: -5px;
-			top: 9px;
-			z-index: 0;
-		}
-
-		.title {
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			position: relative;
-			z-index: 2;
-
-			image {
-				width: 64rpx;
-				height: 64rpx;
-				margin-right: 4rpx;
-			}
-
-			text {
-				font-size: 36rpx;
-				color: #fff;
-			}
-		}
-	}
-
-	.info_bg {
-		padding-top: 60rpx;
-		width: 100%;
-		height: 400rpx;
-		background: #5c8fff;
-		border-radius: 0px 0px 32rpx 32rpx;
-		position: relative;
-
-		image {
-			width: 272px;
-			height: 157px;
-		}
-	}
-</style>

+ 0 - 120
pages/login/register.vue

@@ -1,120 +0,0 @@
-<template>
-	<view class="main">
-		<u--form labelPosition="left" labelWidth='180' :model="model1" :rules="rules" ref="form1">
-			<u-form-item label="用户名" prop="userInfo.password" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.password" border="none" clearable placeholder="请输入"></u--input>
-			</u-form-item>
-			<u-form-item label="真实姓名" prop="userInfo.newPassword" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.newPassword" border="none" clearable placeholder="请输入"></u--input>
-			</u-form-item>
-			</u-form-item>
-			<u-form-item label="电子邮箱" prop="userInfo.confirmPassword" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.confirmPassword" border="none" clearable
-					placeholder="请输入"></u--input>
-			</u-form-item>
-<u-form-item label="手机号码" prop="userInfo.confirmPassword" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.confirmPassword" border="none" clearable
-					placeholder="请输入"></u--input>
-			</u-form-item>
-<u-form-item label="账号密码" prop="userInfo.confirmPassword" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.confirmPassword" border="none" clearable
-					placeholder="请输入"></u--input>
-			</u-form-item>
-
-
-		</u--form>
-		<view class="tijiao">
-			<u-button type="primary" @click="submit">提交</u-button>
-		</view>
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				dataForm: {
-					password: "",
-					newPassword: "",
-					confirmPassword: "",
-				},
-
-				model1: {
-					userInfo: {
-						password: '',
-						newPassword: '',
-						confirmPassword: '',
-					},
-				},
-				rules: {
-					'userInfo.password': {
-						type: 'string',
-						required: true,
-						message: '请填写旧登录密码',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.newPassword': {
-						type: 'string',
-						required: true,
-						message: '请填写新登录密码',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.confirmPassword': {
-						type: 'string',
-						required: true,
-						message: '请填写新登录密码',
-						trigger: ['blur', 'change']
-					},
-
-				},
-
-
-			};
-		},
-		onReady() {
-			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
-			this.$refs.form1.setRules(this.rules)
-		},
-		methods: {
-			submit() {
-				this.$refs.form1.validate().then(res => {
-					if (this.model1.userInfo.newPassword != this.model1.userInfo.confirmPassword) {
-						uni.$u.toast('您的新密码不一致,请重新输入')
-					} else {
-						//uni.$u.toast('校验通过')
-						//  console.log('111111111111111111',this.model1.userInfo)
-						let postdata = {
-							"newPassword": this.model1.userInfo.newPassword,
-							"password": this.model1.userInfo.password
-						}
-
-						this.$api.put('/user/password', postdata)
-							.then(res => {
-								if (res.data.code == 0) {
-									uni.navigateTo({
-										url: '/pages/login/login'
-									})
-								} else {
-									this.$refs.uNotify.error(res.data.msg)
-								}
-
-							})
-					}
-
-				}).catch(errors => {
-					uni.$u.toast('校验失败')
-				})
-			}
-
-		}
-
-	}
-</script>
-<style scoped>
-	.u-form{
-		margin-top:24rpx ;
-		padding: 32rpx 32rpx 32rpx 40rpx;
-		background-color: #fff;
-	}
-</style>

+ 0 - 175
pages/login/useragree.vue

@@ -1,175 +0,0 @@
-<template>
-	<view class="content">
-		<view>尊敬的用户:</view>
-		<view>
-			请您本产品之前,请务必仔细阅读并理解《用户许可使用协议》(以下简称“用户协议”)中规定的多有权利和限制。
-		</view>
-		<view>我们将向尊重并会严格保护用户在使用本产品时的合法权益(包括用户隐私、用户数据等)不受到任何侵犯。</view>
-		<view>
-			本协议(包括本产品最后部分的隐私政策)是用户(包括通过各种合法途径获取到本产品的自然人、法认或其他组织机构,以下简称“用户”或“您”)与我们之间针对本产品相关事项最终的、完整的且排他的协议,并取代、合并之前的当事认之间关于上述事项的讨论和协议。
-		</view>
-		<view>
-			本协议将对用户使用本产品的行为产生法律约束,您已承诺和保证有权利和能力订立本协议。用户开始使用本产品将视为已经接受本协议,请认真阅读并理解本协议中各种条款,包括免除和限制我们的免责条款和对用户的权利限制(未成年人审阅时应由法定监护人陪同),如果您不能接受本协议中的全部条款,请勿开始使用本产品。
-		</view>
-		<view>您必须承诺和保证:</view>
-		<view>1. 您使用本产品的行为必须合法--
-			本产品将会依据本协议“修改和终止”的规定保留或终止您的账户。您必须承诺对您的登录信息保密、不被其他人获取与使用,并且对您在本账户下的所有行为负责。您必须将任何有可能触犯法律的、未授权使用或怀疑为未授权使用的行为在第一时间通知本产品。本产品不对您因未能遵守上述要求而造成的损失承担法律责任。
-		</view>
-		<view>终端用户协议许可依据本协议规定,本产品将授予您以下不可转让的、非排他的许可:</view>
-		<view>1.使⽤本产品的权利;
-			2.在您所有的网络通信设备、计算机设备和移动通信设备上下载、安装、使用本产品的权利。
-		</view>
-		<view>限制性条款</view>
-		<view>本协议对您的授权将受到以下限制:
-
-			1. 您不得对本产品进行任何形式的许可、出售、租赁、转让、发行或其他商业用途;
-
-			2. 除非法律禁止此类限制,否则您不得对本产品的任何部分或衍生产品进行修改、翻译、改编、合并、利用、分解、改造或反向编译、反向工程等;
-
-			3.您不得以创建相同或竞争服务为目的使用本产品;
-
-			4. 除非法律明文规定,否则您不得对本产品的任何部分以任何形式或费法进行生产、复制、发行、出售、下载或展示等;
-
-			5. 您不得删除或破坏包含在本产品中的任何版权声明或其他所有权标记。</view>
-		<view>版本
-		</view>
-		<view>任何本产品的更新版本或未来版本、更新或者其他变更将受到本协议约束。</view>
-		<view>遵守法律
-		</view>
-		<view>
-			您同意在APP使用过程中遵守中华人民共和国法律法规的任何及所有的规定,并对以任何形式使用您的密码和您的账号使用本服务的任何行为及其结果承担全部责任。在任何情况下,如果本APP有理由认为您的任何行为,包括但不限于您的任何言论和其它行为违反或可能违反上述法律和法规的任何规定,本APP可在任何时候不经任何事先通知终止向您提供服务。
-		</view>
-		<view>用户内容</view>
-		<view>1.用户内容是指该用户下载、发布或以其他行式使用本产品时产生的所有内容(例如:您的信息、图片、音乐或其他内容)。
-
-			2.您是您的用户内容唯一的责任人,您将承担因您的用户内容披露而导致的您或任何第三方被识别的风险。
-
-			3.您已同意您的用户内容受到权利限制(详见“权利限制”)</view>
-		<view class="">
-			权利限制
-		</view>
-		<view class="">
-			您已同意通过分享或其他方式使用本产品中的相关服务,在使用过程中,您将承担因下述行为所造成的风险而产生的全部法律责任:
-
-			1.破坏宪法所确定的基本原则的;
-
-			2.危害国家安全、泄露国家秘密、颠覆国家政权、破坏国家统⼀的;
-
-			3.损害国家荣誉和利益的;
-
-			4.煽动民族仇恨、民族歧视,破坏民族团结的;
-
-			5.破坏国家宗教政策,宣扬邪教和封建迷信的;
-
-			6.散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
-
-			7.侮辱或者诽谤他人,侵害他人合法权益的;
-
-			8.含有法律、行政法规禁止的其他内容的。
-		</view>
-
-
-		<view>您已经同意不在本产品从事下列行为:
-
-			1.发布或分享电脑病毒、蠕虫、恶意代码、故意破坏或改变计算机系统或数据的软件;
-
-			2.未授权的情况下,收集其他用户的信息或数据,例如电子邮箱地址等;
-
-			3.用自动化的行式恶意使用本产品,给服务器造成过度的负担或以其他方式干扰或损害害站服务器和网络链接;
-
-			4.在未授权的情况下,尝试访问本产品的服务器数据或通信数据;
-
-			5.干扰、破坏本产品其他用户的使用。</view>
-
-		<view>修改</view>
-		<view>本协议容许变更。如果本协议有任何实质性变更,我们将通过APP内公告或其他方式来通知您。变更通知之后,继续使用本产品则为您已知晓此类变更并同意条款约束;
-
-			我们保留在任何时候无需通知而修改、保留或关闭本产品任何服务之权利;
-
-			您已同意我们无需因修改、保留或关闭本产品任何服务之权利;
-
-			您已同意我们无需因修改、保留或关闭本产品任何服务的行为对您或第三方承担责任。</view>
-		<view>终止</view>
-		<view>本协议自您接受之日起生效,在您使用本产品的过程中持续有效,直至依据本协议终止;
-
-			尽管有上述规定,如果您使用本产品的时间早于您接受本协议的时间,您在此知晓并同意本协议于您接受本协议的时间,您在此知晓并同意本协议于您第一次使用本产品时生效,除非依据本协议提前终止;
-
-			我们可能会依据法律的规定,保留您使用本产品或者本账户的权利;无论是否通知,我们将在任何时间以任何原因终止本协议,包括出于善意的相信您违反了我们可接受使用政策或本协议的其他规定;
-
-			不受前款规定所限,如果用户侵犯第三方的版权且我们接到版权所有权或版权所有人的合法代理人的通知后,我们保留终止本协议的权利;
-
-			一旦本协议终止,您使用本产品的权利即告终止。您应当知晓您的产品终止意味着您的用户内容将从我们的活动数据库中删除。我们不因终止本协议对您承担任何责任,包括终止您的用户账户和删除您的用户内容。</view>
-		<view>第三方</view>
-		<view>您已知晓或同意我们的部分服务时基于第三方的技术支持获得;
-
-			您已知晓本协议是您在与我们之前签订,除非您与上述第三方之间签订。我们是基于本产品所产生的内容、维护、支持服务、保证和由此产生的诉讼等事项的唯一责任人。您已同意遵守且授权给本产品限制您有条件地使用本产品的服务。
-
-			第三方信息和服务
-
-			1.本产品包含了第三方的部分信息和服务。我们不控制且不对第三方的信息和服务负责;
-
-			2.我们仅为您使用的方便的或为承诺和保证第三方的需要而提供此类信息和服务;
-
-			3.用户需对使用第三方信息和服务产生的风险承担法律责任;
-
-			4.当用户访问第三方信息和服务时,适用第三方的条款和政策。</view>
-		<view>赔偿</view>
-		<view>您已同意无害地使用本产品,避免因下述行为或相关行为遭受来第三方的任何投诉、诉讼、损失、损害、责任、成本和费用(包括律师费):
-
-			1.用户使用本产品的行为;
-
-			2.用户的用户内容;
-
-			3.用户违反本协议的行为。
-
-			我们保留专属抗辩权和请求赔偿的权利
-
-			您已同意,除非获得我们书面同意,您不得在您与我们共同对第三方提起的诉讼中单方和解。
-
-			我们将尽合理努力将此类诉讼、诉讼行为或进程通知您。
-
-			在任何情况下,本产品都不对您或任何第三方因本协议产生的任何间接性、后果性、惩罚性的、偶然的、特殊或惩罚性的损害赔偿承担责任。访问、使用本产品所产生的损坏计算机系统或移动通讯设备数据的风险将由您个人承担。</view>
-		<view>适用法律</view>
-		<view>本协议适中中华人民共和国法律;
-
-			如果双方发生纠纷,应本着友好的原则协商解决;如协商不成,应向所在地的法院提起诉讼。</view>
-		<view>独立性</view>
-		<view>
-			本协议中的某些条款因故无法适用,则本协议的其他条款继续适用且无法适用的条款将会被修改,以便其能够依法适用。
-		</view>
-		<view>完整性
-		</view>
-		<view>本协议(包括隐私政策)是您和本产品之间关于本产品相关事项的最终的、完整的、排他的协议,且取代和合并之前当事人关于此类事项(包括之前的最终用户许可、服务条款和隐私政策)的讨论和协议;
-
-			每部分的题木只为阅读之便而无任何法律或合同义务;
-
-			除非我们书面同意,您不得转让本协议所规定的权利义务。任何违反上述规定企图转让的行为均无效。
-		</view>
-
-		<view> 皖ICP备2022000199号</view>
-		<view>注册地址:安徽省合肥市蜀山区经济开发区湖光路自主创新产业基地三期B座13层1301</view>
-		<view>生效时间:2023年3月1日</view>
-		<view>更新时间:2023年3月10日</view>
-		<view>联系方式:0551-68992527</view>
-
-	</view>
-	
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-
-			}
-		},
-	}
-</script>
-
-<style lang="scss">
-.content{
-	padding: 16px;
-	line-height: 28px;
-}
-
-</style>

+ 25 - 28
pages/login/wxLogin.vue

@@ -23,41 +23,38 @@
 		},
 		methods:{
 			decryptPhoneNumber(e){
-				uni.reLaunch({
-					url:'/pagesHome/index'
-				})
-				
-				return
+				if(uni.getStorageSync('token')){
+					uni.reLaunch({
+						url:'/pagesHome/index'
+					})
+					return
+				}
 				if(e.detail.code) this.wxLogin(e.detail.code);
 			},
 			wxLogin(code){
 				uni.showLoading({ title:'登录中' });
 				let that = this;
 				wx.login({
-					success(res){
-						setTimeout(()=>{
-							uni.hideLoading();
-						},2000)
-						
-						return;
-						that.$api.post('/auth/oauth/token',{
+					success(res){
+						that.$api.get('/wx/login',{
 							code:res.code,
-							phoneCode:code,
-							grant_type:'wechat',
-							captcha:'aaa'
+							phoneCode:code
 						},false).then(res=>{
-							that.show = false;
-							if(res.data.code===0){
-								uni.setStorageSync('authorization',res.data.token_type+' '+res.data.access_token);
-								uni.setStorageSync('access_token',res.data.access_token);
-								that.$api.get('/sys/user/info').then(res2=>{
-									if(res2.data.code===0){
-										uni.setStorageSync('userInfo',JSON.stringify(res2.data.data));
-										that.$showToast('登录成功');
-										uni.setStorageSync('isLogin',true);
-										that.$emit('loginSuccess',res2);
-									}else that.$showToast(res2.data.msg)
-								})
+							if(res.data.code===0){
+								uni.setStorageSync('token',res.data.data.token);
+								uni.setStorageSync('userInfo',JSON.stringify({
+									gender:res.data.data.gender,
+									realName:res.data.data.realName,
+									email:res.data.data.email,
+									headUrl:res.data.data.headUrl
+								}));
+								uni.hideLoading();
+								that.$showToast('登录成功');
+								setTimeout(()=>{
+									uni.reLaunch({
+										url:'/pagesHome/index'
+									})
+								},1500)
 							}else that.$showToast(res.data.msg)
 						})
 					}
@@ -65,7 +62,7 @@
 			},
 			cancelLogin(){
 				uni.exitMiniProgram();
-			},
+			}
 		}
 	}
 </script>

+ 0 - 111
pages/my/Changepassword/Changepassword.vue

@@ -1,111 +0,0 @@
-<template>
-	<view class="main">
-		<u--form labelPosition="left" labelWidth='180' :model="model1" :rules="rules" ref="form1">
-			<u-form-item label="旧登录密码" prop="userInfo.password" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.password" border="none" clearable placeholder="请输入"></u--input>
-			</u-form-item>
-			<u-form-item label="新登录密码" prop="userInfo.newPassword" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.newPassword" border="none" clearable placeholder="请输入"></u--input>
-			</u-form-item>
-			</u-form-item>
-			<u-form-item label="请再次输入" prop="userInfo.confirmPassword" borderBottom ref="item1" required>
-				<u--input v-model="model1.userInfo.confirmPassword" border="none" clearable
-					placeholder="请输入"></u--input>
-			</u-form-item>
-
-		</u--form>
-		<view class="tijiao">
-			<u-button type="primary" @click="submit">确定修改</u-button>
-		</view>
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				dataForm: {
-					password: "",
-					newPassword: "",
-					confirmPassword: "",
-				},
-
-				model1: {
-					userInfo: {
-						password: '',
-						newPassword: '',
-						confirmPassword: '',
-					},
-				},
-				rules: {
-					'userInfo.password': {
-						type: 'string',
-						required: true,
-						message: '请填写旧登录密码',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.newPassword': {
-						type: 'string',
-						required: true,
-						message: '请填写新登录密码',
-						trigger: ['blur', 'change']
-					},
-					'userInfo.confirmPassword': {
-						type: 'string',
-						required: true,
-						message: '请填写新登录密码',
-						trigger: ['blur', 'change']
-					},
-
-				},
-
-
-			};
-		},
-		onReady() {
-			//如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则。
-			this.$refs.form1.setRules(this.rules)
-		},
-		methods: {
-			submit() {
-				this.$refs.form1.validate().then(res => {
-					if (this.model1.userInfo.newPassword != this.model1.userInfo.confirmPassword) {
-						uni.$u.toast('您的新密码不一致,请重新输入')
-					} else {
-						//uni.$u.toast('校验通过')
-						//  console.log('111111111111111111',this.model1.userInfo)
-						let postdata = {
-							"newPassword": this.model1.userInfo.newPassword,
-							"password": this.model1.userInfo.password
-						}
-
-						this.$api.put('/user/password', postdata)
-							.then(res => {
-								if (res.data.code == 0) {
-									uni.navigateTo({
-										url: '/pages/login/login'
-									})
-								} else {
-									this.$refs.uNotify.error(res.data.msg)
-								}
-
-							})
-					}
-
-				}).catch(errors => {
-					uni.$u.toast('校验失败')
-				})
-			}
-
-		}
-
-	}
-</script>
-<style scoped>
-	.u-form{
-		margin-top:24rpx ;
-		padding: 32rpx 32rpx 32rpx 40rpx;
-		background-color: #fff;
-	}
-</style>

+ 0 - 91
pages/my/Commentssuggestions/Commentssuggestions.vue

@@ -1,91 +0,0 @@
-<template>
-	<view class="OutermostLayer">
-			<view class="Commentssuggestions">
-					<view class="ssuggestion">
-						请您留下宝贵建议,我们会不断改进,精益求精,更好的为您提供服务。	
-					</view>
-			<u--textarea v-model="ssuggestion" placeholder="请输入您的建议和评论" count ></u--textarea>
-			<view class="ssuggestion" style="padding-top: 30rpx;">
-						请您为这款APP打分。	
-					</view>
-			<view class="rates">
-				<view class="rates1">
-					APP界面美观
-				</view>
-				<view class="rates2">
-					<u-rate size=40 :count="count" v-model="score1"></u-rate>
-				</view>
-			</view>
-			<view class="rates">
-				<view class="rates1">
-					APP上手难易
-				</view>
-				<view class="rates2">
-					<u-rate size=40 :count="count" v-model="score2"></u-rate>
-				</view>
-			</view>
-			<view class="rates">
-				<view class="rates1">
-					APP相应速度
-				</view>
-				<view class="rates2">
-					<u-rate size=40 :count="count" v-model="score3"></u-rate>
-				</view>
-			</view>
-			
-			
-			<view class="yijian">
-				<u-button type="primary" text="提交意见" @click="tijiao"></u-button>
-			</view>
-				</view>
-		</view>
-
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-ssuggestion:'',
-score1:5,
-score2:4,
-score3:3,
-			}
-		},
-		methods: {
-tijiao(){
-	uni.navigateBack({
-	delta: 1
-	});
-},
-
-
-		}
-	}
-</script>
-
-<style>
-	.Commentssuggestions {
-		
-		padding: 20rpx;
-	}
-	.ssuggestion{
-		font-size: 30rpx;
-		padding-bottom: 30rpx;
-	}
-	.rates{
-		display: flex;
-		width: 690rpx;
-		height: 70rpx;
-		align-items: center;
-	}
-	.rates1{
-		font-size: 30rpx;
-		width: 260rpx;
-	}
-	.yijian{
-		margin-top: 50rpx;
-	}
-	
-	
-</style>

+ 0 - 316
pages/my/Myorder/Myorder.vue

@@ -1,316 +0,0 @@
-<template>
-	<view class="billall">
-
-		<view class="topbill">
-
-			<view class="topbilledit" @click="typechange">
-				<view class="changetime1">
-					{{mytype}}
-				</view>
-				<view class="changetime2">
-					<u-icon name="arrow-down-fill" color="#666666" size="20"></u-icon>
-				</view>
-			</view>
-		</view>
-
-		<view class="u-listdata">
-
-			<view style="padding:10rpx 0 0 30rpx">
-				共有 <span style="color: red">{{totalnumber}}</span>条记录
-			</view>
-			<u-list @scrolltolower="scrolltolower" :pagingEnabled='true'>
-				<u-list-item v-for="(item, index) in indexList" :key="index">
-
-					<view class="companylist" @click="seedetail(item)">
-						<view class="outstanding" v-if='item.status==0'>
-							待支付
-						</view>
-						<view class="settled" v-if='item.status==1'>
-							已支付
-						</view>
-						<view class="guanbi" v-if="item.status=='-1'">
-							已关闭
-						</view>
-
-						<view class="Currentamount" style="margin-top: 20rpx;">
-							支付金额: <span>¥{{item.payAmount}}</span>
-						</view>
-						<view class="Currentamount">
-							支付时间: {{item.payAt}}
-						</view>
-						<view class="Currentamount">
-							下单时间: {{item.createDate}}
-						</view>
-						<!-- <view class="Currentamount">
-							交易类型: {{item.tradeType}}
-						</view> -->
-						<view class="Currentamount">
-							交易类型: 微信支付
-						</view>
-					</view>
-
-				</u-list-item>
-			</u-list>
-
-		</view>
-
-
-
-
-		<u-picker :show="showtype" :itemHeight="80" :columns="columnstype" keyName="label" @confirm="confirmtype" @cancel='canceltype'>
-		</u-picker>
-
-
-
-
-
-	</view>
-</template>
-
-<script>
-	//import { isEmpty, getDictDataList } from "@/utils/index";
-	export default {
-		components: {
-
-		},
-		data() {
-
-			return {
-				totalnumber: 0,
-				setyesno: true,
-				indexList: [],
-				dataList: [],
-				dataForm: {
-					order: "",
-					orderField: "",
-					status: "",
-					page: 1,
-					limit: 10,
-				},
-				pd: true,
-				showtype: false,
-				showdct: false,
-				mytitle: '',
-				alldata: [],
-				showfloor: false,
-				loading: false,
-				columns: [],
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-				//myday: currentDate,
-				columnstype: [
-					[{
-							label: '全部',
-							id: ''
-
-						}, {
-							label: '已关闭',
-							id: '-1'
-						},
-						{
-							label: '待支付',
-							id: '0'
-						},
-						{
-							label: '已支付',
-							id: '1'
-						},
-					]
-				],
-
-
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-
-			this.getalldata();
-			//	this.loadmore();
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-			seedetail(e) {
-				uni.navigateTo({
-					url: `/pages/my/Myorder/Orderdetails/Orderdetails?companyOrgId=${e.id}`
-				});
-			},
-
-			scrolltolower() {
-				if (this.pd) {
-					this.getalldata();
-				} else {
-					return
-				}
-			},
-
-			getalldata() {
-				this.$api.get('/order/page', this.dataForm)
-					.then(res => {
-						console.log('111111111111111111', res.data.data)
-
-						this.totalnumber = res.data.data.total;
-						if (res.data.data.list.length != 0) {
-							this.indexList.push(...res.data.data.list);
-							this.dataForm.page = this.dataForm.page + 1;
-							this.pd = true;
-						} else {
-							uni.showToast({
-								title: '暂无更多数据了',
-								icon: 'none',
-								duration: 1500
-							})
-							this.pd = false;
-						}
-					})
-			},
-
-			canceltype() {
-				this.showtype = false;
-			},
-			confirmtype(e) {
-				console.log('111111111111111111', e.value[0])
-				this.showtype = false;
-				this.mytype = e.value[0].label;
-				this.dataForm.status = e.value[0].id;
-				this.indexList = [];
-				this.dataForm.page = 1;
-				this.getalldata();
-			},
-			typechange() {
-				this.showtype = true;
-			},
-
-
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.Currentamount {
-		padding-left: 30rpx;
-		height: 50rpx;
-		line-height: 50rpx;
-		color: #BCB3A7;
-
-		span {
-			color: #FA5555;
-			padding-left: 9rpx;
-		}
-	}
-
-	.Callfee {
-		width: 100rpx;
-		height: 45rpx;
-		text-align: center;
-		line-height: 45rpx;
-		color: #5C8FFF;
-		border: 1px solid #5C8FFF;
-		font-size: 22rpx;
-		position: absolute;
-		bottom: 10rpx;
-		right: 10px;
-		font-weight: bold;
-	}
-
-	.companylist {
-		margin: 20rpx 30rpx;
-		background: #fff;
-		height: 230rpx;
-		border-radius: 10px;
-		position: relative;
-
-		h3 {
-			height: 70rpx;
-			line-height: 70rpx;
-			padding-left: 30rpx;
-		}
-	}
-
-	.settled {
-		background-color: #09C700;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-	.outstanding {
-		background-color: #30D3A2;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-	.guanbi {
-		background-color: red;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-
-	.billall {}
-
-	.topbill {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100rpx;
-		background-color: #e6e6e6;
-	}
-
-	.topbilledit {
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-	}
-
-	.changetime1 {
-		padding-right: 10rpx;
-	}
-</style>

+ 0 - 438
pages/my/Myorder/Orderdetails/Orderdetails.vue

@@ -1,438 +0,0 @@
-<template>
-	<view class="billall">
-		<view class="top">
-			<view class="title">总费用</view>
-			<view class="money">{{alldata.payAmount}}</view>
-		</view>
-		<view class="detailContent">
-			<view class="mb8">当前状态:{{alldata.status}}</view>
-			<view class="mb8">账单时间:{{alldata.createDate}}</view>
-			<view class="mingxi">
-				<text>账单明细:</text>
-				<view>
-					<view v-for="(item, index) in indexList" :key="index" class="mb4">
-						{{item.costType}}:¥{{item.amount}}
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="dibu" v-show="dibucaidan">
-			<view class="yucun" v-if='tk'>
-				<u-button type="error" text="退费" @click="prestore('退费')"></u-button>
-			</view>
-		</view>
-		<u-popup :show="showpayjine" @close="closepay1" @open="openpay1" mode="bottom" :round="10" :closeable='true' :closeOnClickOverlay='false'>
-			<view class="paytall1">
-				<!-- <text>请选择支付方式</text> -->
-				<view class="hejitop">
-					退费
-				</view>
-				<view class="zhifufs">
-			 	<u--form labelWidth="130" labelPosition="left" :model="model1"  ref="uForm">
-						<u-form-item label="退费金额:" prop="userInfo.amount" borderBottom ref="item1">
-							<u--input v-model="model1.userInfo.amount" border="none"></u--input>
-						</u-form-item>
-						<u-form-item label="退费原因:" prop="userInfo.refundReason" borderBottom ref="item1">
-							<u--input v-model="model1.userInfo.refundReason" border="none"></u--input>
-						</u-form-item>
-					</u--form>
-				</view>
-				<view class="dcc">
-					<view class="">
-						<u-button type="primary" :plain="true" text="取消" @click="closepay1"></u-button>
-					</view>
-					<view class="">
-						<u-button type="primary" text="确定" @click="confirmtf"></u-button>
-					</view>
-				</view>
-			</view>
-		</u-popup>
-		<u-notify ref="uNotify" message=""></u-notify>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				tk:false,
-				zhifucanvas: false,
-				dibucaidan: true,
-				prestorename: '',
-				totalnumber: 0,
-				setyesno: true,
-				indexList: [],
-				dataList: [],
-				showtype: false,
-				showdct: false,
-				myid: '',
-				alldata: {},
-				showfloor: false,
-				loading: false,
-				columns: [],
-				columnData: [],
-				myday: '',
-				mytype: '全部',
-				showPicker: false,
-				//myday: currentDate,
-				showpayjine: false,
-				PropertyTypedata:[],
-				model1: {
-					userInfo: {
-						amount: '',
-						refundReason:'',
-					},
-				},
-				billstype:[],
-				// rules: {
-				// 	'userInfo.amount': {
-				// 		type: 'string',
-				// 		required: true,
-				// 		message: '请填写退费金额',
-				// 		trigger: [ '']
-				// 	},
-				// 	'userInfo.refundReason': {
-				// 		type: 'string',
-				// 		required: true,
-				// 		message: '请填写退费原因',
-				// 		trigger: ['blur', 'change']
-				// 	},
-				// },
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad(options) {
-			this.myid = options.companyOrgId;
-			this.getalldata(this.myid)
-			let getDictDataList = uni.getStorageSync('getDictDataList');
-			for (let i = 0; i < getDictDataList.length; i++) {
-			    if (getDictDataList[i].dictType == 'PayType') {
-			        this.billstype = getDictDataList[i].dataList
-			    }  
-				if (getDictDataList[i].dictType == 'PropertyType') {
-				    this.PropertyTypedata = getDictDataList[i].dataList
-				}  
-				
-			}
-			
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {
-			// 微信小程序需要用此写法
-
-		},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-			prestore() {
-				this.showpayjine = true;
-			},
-		
-			confirmtf() {
-				 
-				if(this.model1.userInfo.amount==''){
-					this.$refs.uNotify.error('退款金额不能为空')	
-				}else if(this.model1.userInfo.refundReason==''){
-					this.$refs.uNotify.error('退款原因不能为空')	
-				}else{
-					 if(this.model1.userInfo.amount>this.alldata.payAmount){
-					 	this.$refs.uNotify.error('您输入的退款金额不能大于支付金额')	
-					 }else{
-					 	
-					 	let postdata = {
-					 		amount: this.model1.userInfo.amount,
-					 		id: '',
-					 		orderId:this.alldata.id,
-					 		refundReason: this.model1.userInfo.refundReason
-					 	}
-					 	
-					 	this.$api.post('/refundinfo', postdata)
-					 		.then(res => {
-					 			if (res.data.code == 0) {
-					 				this.$refs.uNotify.success('退费申请成功')
-					 			} else {
-					 				this.$refs.uNotify.error(res.data.msg)
-					 			}
-					 	 this.showpayjine = false;
-					 		})
-					 }	
-				}																			
-			},
-
-
-			getalldata(e) {
-				this.indexList=[];
-				this.$api.get('/order/' + e, {})
-					.then(res => {
-					console.log('111111111111111111', res.data.data)
-						if (res.data.data.status == '-1') {
-							res.data.data.status = '已关闭';
-							this.tk=false;
-						} else if (res.data.data.status == '0') {
-							res.data.data.status = '待支付';
-							this.tk=false;
-						} else if (res.data.data.status == '1') {
-							res.data.data.status = '已支付';
-							this.tk=true;
-						}
-
-						this.alldata = res.data.data;
-						
-						this.model1.userInfo.amount=this.alldata.payAmount;
-						//this.$refs.uForm.validateField('userInfo.amount')
-						//this.indexList = res.data.data.billLists;
-						
-						if(res.data.data.billLists.length==0){
-							this.indexList=[];
-						}else{
-							function transform(a, b) {
-							    loop: for (let i = 0; i < a.length; i++) {
-							        for (let j = 0; j < b.length; j++) {
-							            if (a[i].billType == b[j].dictValue) {
-							                a[i].billType = b[j].dictLabel;
-							                continue loop;
-							            }
-							        }
-							        a[i].billType =  a[i].billType;
-							    }
-							    return a;
-							}	
-							function transform1(a, b) {
-							    loop: for (let i = 0; i < a.length; i++) {
-							        for (let j = 0; j < b.length; j++) {
-							            if (a[i].costType == b[j].dictValue) {
-							                a[i].costType = b[j].dictLabel;
-							                continue loop;
-							            }
-							        }
-							        a[i].costType =  a[i].costType;
-							    }
-							    return a;
-							}							
-													
-									
-							this.indexList=transform(res.data.data.billLists, this.billstype)	;
-							this.indexList=transform1(res.data.data.billLists, this.PropertyTypedata)	;										
-						}
-						  console.log('111111111111111111',this.indexList)																			
-					})
-			},
-
-			closepay1() {
-				 this.showpayjine = false;
-			},
-			openpay1() {
-				console.log('open');
-			},
-
-
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.Currentamount {
-		padding-left: 30rpx;
-		height: 50rpx;
-		line-height: 50rpx;
-		color: #BCB3A7;
-
-		span {
-			color: #FA5555;
-			padding-left: 9rpx;
-		}
-	}
-
-	.hejitop {
-		width: 750rpx;
-		text-align: center;
-		font-weight: bold;
-		font-size: 40rpx;
-		margin-bottom: 30rpx;
-	}
-
-	.zhifufs {
-		width: 750rpx;
-		height: 250rpx;
-	}
-
-	.paytall1 {
-		width: 750rpx;
-		height: 450rpx;
-		background-color: #fff;
-	}
-
-	.dcc {
-		margin: 0 30rpx;
-		display: flex;
-		align-items: center;
-		justify-content: space-around;
-
-		view {
-			width: 200rpx;
-		}
-	}
-
-	.tuifeiyy {
-		height: 400rpx;
-		background-color: #fff;
-		width: 750rpx;
-	}
-
-	.Orderstatus {
-		padding: 30rpx;
-	}
-
-	.Orderstatus1 {
-		height: 50rpx;
-		line-height: 50rpx;
-	}
-
-	.Callfee {
-		width: 100rpx;
-		height: 45rpx;
-		text-align: center;
-		line-height: 45rpx;
-		color: #5C8FFF;
-		border: 1px solid #5C8FFF;
-		font-size: 22rpx;
-		position: absolute;
-		bottom: 10rpx;
-		right: 10px;
-		font-weight: bold;
-	}
-
-	.companylist {
-		margin: 20rpx 30rpx;
-		background: #fff;
-		height: 230rpx;
-		border-radius: 10px;
-		position: relative;
-
-		h3 {
-			height: 70rpx;
-			line-height: 70rpx;
-			padding-left: 30rpx;
-		}
-	}
-
-	.settled {
-		background-color: #09C700;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-	.outstanding {
-		background-color: #30D3A2;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-	.guanbi {
-		background-color: red;
-		width: 100rpx;
-		height: 40rpx;
-		text-align: center;
-		line-height: 40rpx;
-		color: #fff;
-		font-size: 14rpx;
-		position: absolute;
-		top: 0px;
-		right: 0px;
-		border-top-right-radius: 10rpx;
-		border-bottom-left-radius: 10rpx;
-	}
-
-	.dibu {
-		position: fixed;
-		right: 0;
-		left: 0;
-		bottom: 0;
-		width: 750rpx;
-		height: 100rpx;
-		display: flex;
-		align-items: center;
-		justify-content: space-around;
-		background-color: #fff;
-	}
-
-	.yucun {
-		width: 200rpx;
-
-	}
-
-	.billall {
-		padding: 40rpx 80rpx;
-		background-color: #fff;
-		.top{
-			text-align: center;
-			border-bottom: 1px solid #eee;
-			color: #0C1935;
-			.title{
-				font-size: 32rpx;
-			}
-			.money{
-				font-size: 48rpx;
-				margin: 24rpx 0 40rpx;
-				font-weight: 600;
-			}
-		}
-		.detailContent{
-			color: #9DA0AC;
-			padding-top: 16rpx;
-			.mingxi{
-				display: flex;
-			}
-			.mb8{margin-bottom: 16rpx;}
-			.mb4{margin-bottom: 8rpx;}
-		}
-	}
-
-	.topbill {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100rpx;
-		background-color: #e6e6e6;
-	}
-
-	.topbilledit {
-		display: flex;
-		justify-content: space-around;
-		align-items: center;
-	}
-
-	.changetime1 {
-		padding-right: 10rpx;
-	}
-</style>

+ 0 - 75
pages/my/Personalinformation/Personalinformation.vue

@@ -1,75 +0,0 @@
-<template>
-	<view>
-		<view class="Personalinformation">
-			<u-cell-group>
-				<u-cell size="large" title="账户名称" :value="getuserInfo.realName"></u-cell>
-				<u-cell size="large" title="手机号码" :value="getuserInfo.mobile"></u-cell>
-				<u-cell size="large" title="账号密码" value="******" isLink @click="editdata"></u-cell>
-			</u-cell-group>
-		</view>
-		<view class="edit"  @click="tuichu">注销登录</view>
-		
-		<u-modal :show="showtc" content='请问您是否确定一键退出?' :showConfirmButton='true' :showCancelButton='true'
-			@confirm="confirmtc" @cancel='canceltc'></u-modal>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				getuserInfo: {},
-				showtc: false,
-			};
-		},
-		onLoad() {
-			this.getuserInfo = uni.getStorageSync('getuserInfo');
-		},
-		methods: {
-			tuichu() {
-				this.showtc = true;
-			},
-			confirmtc() {
-				this.showtc = false;
-				switch (uni.getSystemInfoSync().platform) {
-					case 'android':
-						plus.runtime.quit();
-			
-						break;
-					case 'ios':
-						plus.ios.import('UIApplication').sharedApplication().performSelector('exit');
-			
-						break;
-				}
-				//清除缓存
-				uni.clearStorageSync();
-			},
-			canceltc() {
-				this.showtc = false;
-			},
-			editdata() {
-				uni.navigateTo({
-					url: '/pages/my/Changepassword/Changepassword'
-				})
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.Personalinformation {
-		padding: 0 32rpx;
-		background: #fff;
-		margin-top: 24rpx;
-	}
-
-	.edit {
-		margin-top: 80rpx;
-		height: 88rpx;
-		font-size: 32rpx;
-		line-height: 88rpx;
-		color: #2E69EB;
-		text-align: center;
-		background: #fff;
-	}
-</style>

+ 156 - 0
pages/my/info.vue

@@ -0,0 +1,156 @@
+<template>
+	<view class="page" :style="{'min-height':h+'px', 'padding-top':mt+'px'}">
+		<cus-header title='用户信息'></cus-header>
+		<div class="info">
+			<div class="item">
+				<div class="left">头像</div>
+				<div class="right" @tap="changeAvatar">
+					<image :src="userInfo.headUrl||avatar" mode=""></image>
+					<u-icon name="arrow-right" color="#198CFF" size="32" style="margin-left: 10rpx;"></u-icon>
+				</div>
+			</div>
+			<div class="item">
+				<div class="left">姓名</div>
+				<div class="right">
+					<input type="text" v-model="userInfo.realName" placeholder="请输入姓名">
+				</div>
+			</div>
+			<div class="item">
+				<div class="left">性别</div>
+				<div class="right" @tap="sexShow = true">
+					{{userInfo.gender===0?'男':(userInfo.gender==1?'女':'保密')}}
+					<u-icon name="arrow-right" color="#198CFF" size="32" style="margin-left: 10rpx;"></u-icon>
+				</div>
+			</div>
+			<div class="item">
+				<div class="left">邮箱</div>
+				<div class="right">
+					<input type="text" v-model="userInfo.email" placeholder="请输入邮箱">
+				</div>
+			</div>
+		</div>
+		<div class="btn" @tap="confirm">确定</div>
+		<u-picker :show="sexShow" :columns="sexColumns" title="性别" keyName="name" @cancel="sexShow = false;" @confirm="sexConfirm"></u-picker>
+	</view>
+</template>
+
+<script>
+	const baseApi = require("@/http/baseApi.js");
+	export default {
+		data(){
+			return {
+				avatar:this.$imgBase+'home/home_avator.png',
+				userInfo:{},
+				sexShow:false,
+				sexColumns:[[{id:0,name:'男'},{id:1,name:'女'},{id:2,name:'保密'}]]
+			}
+		},
+		created() {
+			this.userInfo = JSON.parse(uni.getStorageSync('userInfo')||'{}');
+		},
+		methods:{
+			sexConfirm(e){
+				this.userInfo.gender = e.value[0].id;
+				this.sexShow = false;
+			},
+			confirm(){
+				if(!this.$reg.email(this.userInfo?.email)) return this.$showToast('请输入正确的邮箱');
+				this.$api.put('/user',this.userInfo).then(res=>{
+					if(res.data.code===0){
+						uni.setStorageSync('userInfo',JSON.stringify(this.userInfo));
+						this.$showToast('编辑成功');
+						setTimeout(()=>{
+							uni.navigateBack()
+						},1500)
+					}else this.$showToast(res.data.msg)
+				})
+			},
+			// 上传头像
+			changeAvatar() {
+				uni.chooseImage({
+					sourceType: ['album'], //从相册选择
+					success: chooseImageRes => {
+						const tempFilePaths = chooseImageRes.tempFilePaths;
+						uni.uploadFile({
+							url: baseApi.BaseApi + '/uploadFile',
+							filePath: tempFilePaths[0],
+							name: 'file',
+							header: {
+								token: uni.getStorageSync('token')
+							},
+							success: res => {
+								let data = JSON.parse(res.data);
+								this.userInfo.headUrl = data.data;
+							}
+						});
+					},
+					fail: err => {
+						this.$showToast('图片上传失败');
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style scoped lang="less">
+	.page{
+		background: #F4F8FB;
+		box-sizing: border-box;
+		
+		.info{
+			width: 100%;
+			margin-top: 20rpx;
+			.item{
+				padding: 24rpx 25rpx;
+				background: #FFFFFF;
+				box-shadow: inset 0rpx -1rpx 0rpx 0rpx #ECECEC;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				.left{
+					font-family: PingFangSC, PingFang SC;
+					font-weight: 400;
+					font-size: 30rpx;
+					color: #1D2129;
+					line-height: 42rpx;
+					text-align: left;
+				}
+				.right{
+					display: flex;
+					align-items: center;
+					image{
+						width: 96rpx;
+						height: 96rpx;
+						border-radius: 50%;
+					}
+					input{
+						font-family: PingFangSC, PingFang SC;
+						font-weight: 400;
+						font-size: 30rpx;
+						color: #4E5969;
+						line-height: 42rpx;
+						text-align: right;
+						outline: none;
+						border: none;
+					}
+				}
+			}
+		}
+		
+		.btn{
+			width: calc(100% - 108rpx);
+			height: 88rpx;
+			background: #198CFF;
+			border-radius: 16rpx;
+			margin: 240rpx 54rpx 0;
+			font-family: PingFang-SC, PingFang-SC;
+			font-weight: bold;
+			font-size: 32rpx;
+			color: #FFFFFF;
+			line-height: 88rpx;
+			text-align: center;
+			letter-spacing: 2rpx;
+		}
+	}
+</style>

+ 0 - 433
pages/my/my.vue

@@ -1,433 +0,0 @@
-<template>
-	<view class="mainview">
-		<view class="topnames" >
-					我的
-				</view>
-		<view class="topimg">
-			<view class="touxiang">
-				<image :src="src" mode="widthFix" shape="circle"
-				style="width: 150rpx;height: 150rpx;"></image>
-				
-				<!-- <u-upload :fileList="fileList" @afterRead="afterRead" name="6" :multiple='false' :maxCount="1"
-					imageMode="true" width="150" height="150">
-					<image :src="src" mode="widthFix" shape="circle"
-					style="width: 150rpx;height: 150rpx;"></image>
-				</u-upload> -->
-			</view>
-			<view class="Username">
-				<view class="Username1">{{getuserInfo.realName}} <span>您好</span>   </view>
-				<view class="Username2">
-					<view class="">
-						您上次更新个人信息时间:
-					</view>
-					<view class="">
-						{{getuserInfo.updateDate}}
-					</view>
-				</view>
-			</view>
-
-			<!-- <view class="changemm">
-				<view class="message">
-					<view class="wdmessage">已读信息:</view>
-					<view class="messagenumber">
-						<u-badge type="success" max="99" :value="information1"></u-badge>
-					</view>
-				</view>
-				<view class="message">
-					<view class="wdmessage">未读信息:</view>
-					<view class="messagenumber">
-						<u-badge type="warning" max="99" :value="information2"></u-badge>
-					</view>
-				</view>
-				
-			</view> -->
-		</view>
-		<!-- 头部结束 -->
-		<view class="minndle" v-if="$has('app:PersonalInformation')||$has('app:MyOrder')
-		||$has('app:MyTask')||$has('app:CommentsSuggestions')">
-			<!-- <u-grid :border="false" col="4" @click="navigations">
-				<u-grid-item v-for="(listItem,listIndex) in list" :key="listIndex">
-					<u-icon :customStyle="{paddingTop:20+'rpx'}" :name="listItem.name" :color="listItem.color"
-						:size="55"></u-icon>
-					<text class="grid-text" style="padding-top: 8px;">{{listItem.title}}</text>
-				</u-grid-item>
-			</u-grid> -->
-			<view class="information" @click="navigations1" v-if="$has('app:PersonalInformation')">
-				<view class="icon1">
-					<u-icon name="account" size="55" color="#30D3A2" class=""></u-icon>
-				</view>
-				<view  style="padding-top: 8px;">
-					个人信息
-				</view>
-			</view>
-			<view class="distribute"  @click="navigations2" v-if="$has('app:MyOrder')">
-				<view class="icon2">
-					<u-icon name="list" size="55" color="#09C700"></u-icon>
-				</view>
-				<view  style="padding-top: 8px;">
-					我的订单
-				</view>
-			</view>
-			<view class="task"  @click="navigations3" v-if="$has('app:MyTask')">
-				<view class="icon3">
-					<u-icon name="order" size="55" color="#FF9C27"></u-icon>
-				</view>
-				<view  style="padding-top: 8px;">我的任务</view>
-			</view>
-			<view class="opinions"  @click="navigations4" v-if="$has('app:CommentsSuggestions')">
-				<view class="icon4">
-					<u-icon name="more-circle" size="55" color="#F7B717"></u-icon>
-				</view>
-				<view  style="padding-top: 8px;">意见建议</view>
-			</view>
-		</view>
-		<!-- 导航栏结束 -->
-		<view class="middleimgs">
-			<!-- <img src="@/static/my/xinxi.png" alt=""> -->
-			<u--image  mode="widthFix"  :src="srcxinxi" width="750rpx" height="300rpx"></u--image>
-		</view>
-		<!-- 中间图片结束 -->
-		<view class="appcell">
-			<u-cell-group>
-				<u-cell title="修改密码" :isLink="true"  @click="changepass">
-					<u-icon slot="icon" size="35" name="setting"></u-icon>
-				</u-cell>
-				<u-cell title="一键退出" :isLink="true" @click="tuichu">
-					<u-icon slot="icon" size="35" name="close-circle"></u-icon>
-				</u-cell>
-
-			</u-cell-group>
-		</view>
-
-
-
-		<u-modal :show="showtc" content='请问您是否确定一键退出?' :showConfirmButton='true' :showCancelButton='true'
-			@confirm="confirmtc" @cancel='canceltc'></u-modal>
-
-		<!-- <u-tabbar
-				:value="value1"
-				:fixed="true"
-				:placeholder="true"
-				@change="name => value1 = name"
-				activeColor="#2E69EB"
-				:safeAreaInsetBottom="true"
-		>
-			<u-tabbar-item text="首页" icon="home" @click="click1" ></u-tabbar-item>
-			<u-tabbar-item  v-if="$has('app:worktable')"  text="工作台" icon="list" @click="click2" ></u-tabbar-item>
-			<u-tabbar-item text="我的" icon="account" @click="click3" ></u-tabbar-item>
-		</u-tabbar> -->
-		
-		
-		<u-tabbar class="tabberall" :value="value1" :fixed="true" :placeholder="true" @change="name => value1 = name"
-			:safeAreaInsetBottom="true">
-			<u-tabbar-item text="首页" @click="click1">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg1"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg2"></image>
-			</u-tabbar-item>
-		
-			<u-tabbar-item v-if="$has('app:worktable')" text="工作台"  @click="click2">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg3"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg4"></image>
-		
-			</u-tabbar-item>
-			<u-tabbar-item text="我的" @click="click3">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="tabimg5"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="tabimg6"></image>
-		
-			</u-tabbar-item>
-		</u-tabbar>
-	</view>
-</template>
-
-<script>
-	import {
-		Static
-	} from "vue"
-	export default {
-		data() {
-			return {
-				tabimg1: require('@/static/tab/h2.png'),
-				tabimg2: require('@/static/tab/h1.png'),
-				tabimg3: require('@/static/tab/w2.png'),
-				tabimg4: require('@/static/tab/w1.png'),
-				tabimg5: require('@/static/tab/y2.png'),
-				tabimg6: require('@/static/tab/y1.png'),
-				
-				value1: 2,
-				fileList: [],
-				showtc: false,
-				src: require('@/static/my/tx.png'),
-				srcxinxi: 'http://106.54.209.120:8666/image/my/xinxi.png',
-
-				information1: 34,
-				information2: 100,
-				getuserInfo:{},
-
-
-			}
-		},
-		//监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
-		onLoad() {
-			this.getuserInfo = uni.getStorageSync('getuserInfo');
-			//console.log('111111111111111111', this.getuserInfo)
-		},
-		//监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
-		onReady() {},
-
-		//监听页面隐藏
-		onHide() {},
-		//监听窗口尺寸变化
-		onResize() {},
-		//监听页面卸载
-		onUnload() {},
-		//监听用户下拉动作,一般用于下拉刷新
-		onPullDownRefresh() {},
-
-
-		methods: {
-			click1(){
-				uni.navigateTo({
-					url: '/pages/index/index'
-				})
-			},
-			click2(){
-				uni.navigateTo({
-					url: '/pages/Workorder/Workorder'
-				})
-			},
-			click3(){
-				uni.navigateTo({
-					url: '/pages/my/my'
-				})
-			},
-			// 新增图片
-			async afterRead(event) {
-				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
-				let lists = [].concat(event.file)
-				console.log('111111111111111111', lists)
-				let fileListLen = this.fileList.length
-				lists.map((item) => {
-					this.fileList.push({
-						...item,
-						status: 'uploading',
-						message: '上传中'
-					})
-				})
-				for (let i = 0; i < lists.length; i++) {
-					const result = await this.uploadFilePromise(lists[i].url)
-					let item = this.fileList[fileListLen]
-					this.fileList.splice(fileListLen, 1, Object.assign(item, {
-						status: 'success',
-						message: '',
-						url: result
-					}))
-					fileListLen++
-				}
-			},
-			uploadFilePromise(url) {
-				return new Promise((resolve, reject) => {
-					let a = uni.uploadFile({
-						url: 'http://192.168.2.21:7001/upload', // 仅为示例,非真实的接口地址
-						filePath: url,
-						name: 'file',
-						formData: {
-							user: 'test'
-						},
-						success: (res) => {
-							setTimeout(() => {
-								resolve(res.data.data)
-							}, 1000)
-						}
-					});
-				})
-			},
-			navigations1(){
-				uni.navigateTo({
-					url: '/pages/my/Personalinformation/Personalinformation'
-				})
-			},
-			navigations2(){
-				// uni.navigateTo({
-				// 	url: '/pages/my/Mydistribution/Mydistribution'
-				// })
-				uni.navigateTo({
-					url: '/pages/my/Myorder/Myorder'
-				})
-			},
-			navigations3(){
-				uni.navigateTo({
-					url: '/pages/my/Mytask/Mytask'
-				})
-			},
-			navigations4(){
-				uni.navigateTo({
-					url: '/pages/my/Commentssuggestions/Commentssuggestions'
-				})
-			},
-			changepass(){
-				uni.navigateTo({
-					url: '/pages/my/Changepassword/Changepassword'
-				})
-			},
-
-			tuichu() {
-				this.showtc = true;
-			},
-			confirmtc() {
-				this.showtc = false;
-				switch (uni.getSystemInfoSync().platform) {
-					case 'android':
-						plus.runtime.quit();
-
-						break;
-					case 'ios':
-						plus.ios.import('UIApplication').sharedApplication().performSelector('exit');
-
-						break;
-				}
-				//清除缓存
-				uni.clearStorageSync();
-			},
-			canceltc() {
-				this.showtc = false;
-			},
-
-
-		}
-	}
-</script>
-
-<style lang="scss">
-	.u-page__item__slot-icon {
-		width: 40rpx;
-		height: 40rpx;
-	}
-	.minndle {
-		width: 750rpx;
-		height: 150rpx;
-		margin: 25rpx 0;
-		display: flex;
-		align-items: center;
-		justify-content: space-around;
-		text-align: center;
-	}
-	.icon1{
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-	.icon2{
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-	.icon3{
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-	.icon4{
-		display: flex;
-		align-items: center;
-		justify-content: center;
-	}
-	.middleimgs {
-		width: 750rpx;
-		height: 300rpx;
-	}
-
-	.mainview {
-		width: 750rpx;
-		display: flex;
-		flex-direction: column;
-	}
-
-	.topimg {
-		width: 750rpx;
-		height: 350rpx;
-		display: flex;
-		align-items: center;
-		// background: linear-gradient(to right, #96C2FF, #5C8FFF);
-		  background: url("http://106.54.209.120:8666/image/my/my.png");
-		        background-size: 100% 100%;
-	}
-
-	.touxiang {
-		width: 180rpx;
-		height: 180rpx;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-
-		img {
-			width: 120rpx;
-			height: 120rpx;
-			cursor: pointer;
-		}
-	}
-
-	.Username {
-		flex-grow: 1;
-		height:350rpx;
-		// line-height: 150rpx;
-		// font-size: 40rpx;
-		// color: #fff;
-		// font-weight: bold;
-		display: flex;
-	justify-content:center;
-		flex-direction: column;
-
-	}
-.Username1{
-	line-height: 100rpx;
-	height: 100rpx;
-	font-size: 40rpx;
-	color: #fff;
-	font-weight: bold;
-	span{
-		padding-left: 15rpx;
-		font-size: 30rpx;
-		color: #fff;
-	}
-}
-
-.Username2{
-	font-size: 20rpx;
-	color: #333333;
-}
-
-	.changemm {
-		height: 250rpx;
-		width: 250rpx;
-		display: flex;
-		justify-content: center;
-		flex-direction: column;
-		align-items: flex-end;
-	}
-
-	.message {
-		display: flex;
-		justify-content: flex-end;
-		padding-right: 30rpx;
-	}
-
-	.wdmessage {
-		font-size: 30rpx;
-		color: #fff;
-		padding-right: 10rpx;
-	}
-
-	.messagenumber {
-		padding-top: 6rpx;
-		width: 70rpx;
-	}
-
-	.setdata {
-		padding-top: 15rpx;
-
-		img {
-			width: 50rpx;
-			height: 50rpx;
-		}
-	}
-</style>

+ 32 - 28
pagesHome/index.vue

@@ -9,9 +9,10 @@
 						<text>谷锐特</text>
 						<u-icon name="arrow-right" color="#FFFFFF" size="32"></u-icon>
 					</div>
-					<div class="tip">{{time}},天气{{weatherInfo.wea||''}},共有{{deviceNum}}个设备正在运行</div>
+					<!-- <div class="tip">{{time}},天气{{weatherInfo.wea||''}},共有{{deviceNum}}个设备正在运行</div> -->
+					<div class="tip">{{time}},天气{{weatherInfo.wea||''}}</div>
 				</div>
-				<div class="right">
+				<div class="right" @tap="tuTurn('/pages/my/info')">
 					<image :src="avatar"></image>
 				</div>
 			</div>
@@ -37,8 +38,8 @@
 					<text>视频监控</text>
 				</div>
 				<div class="right">
-					<div class="num">{{18}}</div>
-					<div class="wz">设备</div>
+					<!-- <div class="num">{{18}}</div>
+					<div class="wz">设备</div> -->
 				</div>
 			</div>
 			<div class="box" @tap="tuTurn('/pagesHome/airConditioner/index')">
@@ -47,8 +48,8 @@
 					<text>智慧空调</text>
 				</div>
 				<div class="right">
-					<div class="num">{{18}}</div>
-					<div class="wz">设备</div>
+					<!-- <div class="num">{{18}}</div>
+					<div class="wz">设备</div> -->
 				</div>
 			</div>
 			<div class="box" @tap="tuTurn('/pagesHome/entranceGuard/index')">
@@ -57,18 +58,18 @@
 					<text>门禁管理</text>
 				</div>
 				<div class="right">
-					<div class="num">{{18}}</div>
-					<div class="wz">设备</div>
+					<!-- <div class="num">{{18}}</div>
+					<div class="wz">设备</div> -->
 				</div>
 			</div>
-			<div class="box" @tap="tuTurn('/pagesHome/employee/index')">
+			<div class="box" @tap="tuTurn('/pagesHome/energyMeter/index')">
 				<div class="left">
-					<image :src="imgBase+'home/home_icon_yggl.png'"></image>
-					<text>员工管理</text>
+					<image :src="imgBase+'home/home_icon_db.png'"></image>
+					<text>电表</text>
 				</div>
 				<div class="right">
-					<div class="num">{{18}}</div>
-					<div class="wz">设备</div>
+					<!-- <div class="num">{{18}}</div>
+					<div class="wz">设备</div> -->
 				</div>
 			</div>
 			<div class="box" @tap="tuTurn('/pagesHome/energyConsumption/index')">
@@ -77,18 +78,18 @@
 					<text>能耗分析</text>
 				</div>
 				<div class="right">
-					<div class="num">{{18}}</div>
-					<div class="wz">设备</div>
+					<!-- <div class="num">{{18}}</div>
+					<div class="wz">设备</div> -->
 				</div>
 			</div>
-			<div class="box" @tap="tuTurn('/pagesHome/energyMeter/index')">
+			<div class="box" @tap="tuTurn('/pagesHome/employee/index')">
 				<div class="left">
-					<image :src="imgBase+'home/home_icon_db.png'"></image>
-					<text>电表</text>
+					<image :src="imgBase+'home/home_icon_yggl.png'"></image>
+					<text>员工管理</text>
 				</div>
 				<div class="right">
-					<div class="num">{{18}}</div>
-					<div class="wz">设备</div>
+					<!-- <div class="num">{{18}}</div>
+					<div class="wz">设备</div> -->
 				</div>
 			</div>
 		</div>
@@ -111,6 +112,9 @@
 				weatherInfo:{}
 			}
 		},
+		onShow() {
+			this.avatar = JSON.parse(uni.getStorageSync('userInfo')||'{}')?.headUrl;
+		},
 		onLoad() {
 			this.getTime();
 			this.getWeather();
@@ -125,14 +129,14 @@
 				else if(hours<=24) this.time = '晚上好';
 			},
 			getWeather(){
-				uni.request({
-					url:'http://gfeljm.tianqiapi.com/free/v2030?appid=31449887&appsecret=7F6JCrvB&adcode=340100000000',
-					success:res=>{
-						this.weatherInfo = res.data;
-						this.weatherInfo.humidity = this.weatherInfo.humidity.replace('%','')
-					}
-				})
-				var myAmapFun = new amapFile.AMapWX({key:'f83be04fc5f239edfa9f1201e4bc7c47key'});
+				// uni.request({
+				// 	url:'http://gfeljm.tianqiapi.com/free/v2030?appid=31449887&appsecret=7F6JCrvB&adcode=340100000000',
+				// 	success:res=>{
+				// 		this.weatherInfo = res.data;
+				// 		this.weatherInfo.humidity = this.weatherInfo.humidity.replace('%','')
+				// 	}
+				// })
+				var myAmapFun = new amapFile.AMapWX({key:'f83be04fc5f239edfa9f1201e4bc7c47'});
 				myAmapFun.getWeather({
 					success: function(data) {
 						console.log(data);

BIN
static/imgs/ac.png


BIN
static/imgs/door.png


BIN
static/imgs/elec.png


BIN
static/imgs/light.png


BIN
static/imgs/lock.png


BIN
static/imgs/paySuccess.png


BIN
static/imgs/payerror.png


BIN
static/imgs/video.png


BIN
static/imgs/water.png


File diff suppressed because it is too large
+ 0 - 36
static/index/arrow-right.svg


File diff suppressed because it is too large
+ 0 - 21
static/index/btn-arrow-right.svg


File diff suppressed because it is too large
+ 0 - 76
static/index/check-review.svg


File diff suppressed because it is too large
+ 0 - 84
static/index/reduce-record.svg


File diff suppressed because it is too large
+ 0 - 89
static/index/repair-online.svg


BIN
static/index/xj.png


BIN
static/management/auto.png


BIN
static/management/cs.png


BIN
static/management/jl.png


BIN
static/management/kg.png


BIN
static/management/login-bg.png


File diff suppressed because it is too large
+ 0 - 16
static/management/logo.svg


BIN
static/management/mj.png


BIN
static/management/ms.png


BIN
static/management/sp.png


BIN
static/management/taiyang.png


BIN
static/management/yc.png


BIN
static/management/zd.png


BIN
static/management/zl.png


BIN
static/my/tc.png


BIN
static/my/tx.png


File diff suppressed because it is too large
+ 0 - 106
static/privacy.html


+ 0 - 47
static/sp.html

@@ -1,47 +0,0 @@
-<script type="text/javascript" src="ezuikit.js"></script>
-<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
-<title></title>
-<body>
-  <div id="myPlayer" style="width:100%;height: 100%">
-  </div>
-  <script>
-	  var player=null;
-	window.onload=()=>{
-	let windowWidth=document.documentElement.clientWidth;
-		
-		//标题设置为空,如果不设置为空,会与uni-app自带标题冲突
-		document.title='\u200E';
-		// 截取url与accessToken
-		//  console.log('111111111111111111',window.location.href)
-		
-		let url=window.location.href.split('?')[1].split('&')[0].split('=')[1]//url
-		let accessToken=window.location.href.split('?')[1].split('&')[1].split('=')[1]//token
-		init(url,accessToken);
-		
-		function init(url,accessToken) 
-		{
-			 player = new EZUIKit.EZUIKitPlayer({
-				id: 'myPlayer',
-				url: url,
-			 template: 'simple',
-				accessToken: accessToken,
-				autoplay: true,
-				width: windowWidth,
-				height: windowWidth * 2 / 3,
-			});	
-		}
-	}
- 
- // window.pagehide=function(e){  
-	//    console.log('111111111111111111',e)
- //   var e = window.event||e;  
- //   e.returnValue=("确定离开当前页面吗?");
- // }
-  window.addEventListener('pageshow', function (e) {
-	    console.log('111111111111111111',e)
-      if (e.persisted) {
-          window.location.reload()
-      }
- })
-  </script>
-</body>

BIN
static/tab/e1.png


BIN
static/tab/e2.png


BIN
static/tab/h1.png


BIN
static/tab/h2.png


BIN
static/tab/s1.png


BIN
static/tab/s2.png


BIN
static/tab/w1.png


BIN
static/tab/w2.png


BIN
static/tab/y1.png


BIN
static/tab/y2.png


+ 0 - 161
static/useragree.html

@@ -1,161 +0,0 @@
-<!DOCTYPE html>
-<html lang="en"> 
-<head>
-    <meta charset="UTF-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>用户协议</title>
- 
-</head>
-<body>
- 	尊敬的用户:
- 	
- 		请您本产品之前,请务必仔细阅读并理解《用户许可使用协议》(以下简称“用户协议”)中规定的多有权利和限制。
- 	
- 	我们将向尊重并会严格保护用户在使用本产品时的合法权益(包括用户隐私、用户数据等)不受到任何侵犯。
- 	
- 		本协议(包括本产品最后部分的隐私政策)是用户(包括通过各种合法途径获取到本产品的自然人、法认或其他组织机构,以下简称“用户”或“您”)与我们之间针对本产品相关事项最终的、完整的且排他的协议,并取代、合并之前的当事认之间关于上述事项的讨论和协议。
- 	
- 	
- 		本协议将对用户使用本产品的行为产生法律约束,您已承诺和保证有权利和能力订立本协议。用户开始使用本产品将视为已经接受本协议,请认真阅读并理解本协议中各种条款,包括免除和限制我们的免责条款和对用户的权利限制(未成年人审阅时应由法定监护人陪同),如果您不能接受本协议中的全部条款,请勿开始使用本产品。
- 	
- 	您必须承诺和保证:
- 	1. 您使用本产品的行为必须合法--
- 		本产品将会依据本协议“修改和终止”的规定保留或终止您的账户。您必须承诺对您的登录信息保密、不被其他人获取与使用,并且对您在本账户下的所有行为负责。您必须将任何有可能触犯法律的、未授权使用或怀疑为未授权使用的行为在第一时间通知本产品。本产品不对您因未能遵守上述要求而造成的损失承担法律责任。
- 	
- 	终端用户协议许可依据本协议规定,本产品将授予您以下不可转让的、非排他的许可:
- 	1.使⽤本产品的权利;
- 		2.在您所有的网络通信设备、计算机设备和移动通信设备上下载、安装、使用本产品的权利。
- 	
- 	限制性条款
- 	本协议对您的授权将受到以下限制:
- 
- 		1. 您不得对本产品进行任何形式的许可、出售、租赁、转让、发行或其他商业用途;
- 
- 		2. 除非法律禁止此类限制,否则您不得对本产品的任何部分或衍生产品进行修改、翻译、改编、合并、利用、分解、改造或反向编译、反向工程等;
- 
- 		3.您不得以创建相同或竞争服务为目的使用本产品;
- 
- 		4. 除非法律明文规定,否则您不得对本产品的任何部分以任何形式或费法进行生产、复制、发行、出售、下载或展示等;
- 
- 		5. 您不得删除或破坏包含在本产品中的任何版权声明或其他所有权标记。
- 	版本
- 	
- 	任何本产品的更新版本或未来版本、更新或者其他变更将受到本协议约束。
- 	遵守法律
- 	
- 	
- 		您同意在APP使用过程中遵守中华人民共和国法律法规的任何及所有的规定,并对以任何形式使用您的密码和您的账号使用本服务的任何行为及其结果承担全部责任。在任何情况下,如果本APP有理由认为您的任何行为,包括但不限于您的任何言论和其它行为违反或可能违反上述法律和法规的任何规定,本APP可在任何时候不经任何事先通知终止向您提供服务。
- 	
- 	用户内容
- 	1.用户内容是指该用户下载、发布或以其他行式使用本产品时产生的所有内容(例如:您的信息、图片、音乐或其他内容)。
- 
- 		2.您是您的用户内容唯一的责任人,您将承担因您的用户内容披露而导致的您或任何第三方被识别的风险。
- 
- 		3.您已同意您的用户内容受到权利限制(详见“权利限制”)
- 
- 		权利限制
- 	
- 		您已同意通过分享或其他方式使用本产品中的相关服务,在使用过程中,您将承担因下述行为所造成的风险而产生的全部法律责任:
- 
- 		1.破坏宪法所确定的基本原则的;
- 
- 		2.危害国家安全、泄露国家秘密、颠覆国家政权、破坏国家统⼀的;
- 
- 		3.损害国家荣誉和利益的;
- 
- 		4.煽动民族仇恨、民族歧视,破坏民族团结的;
- 
- 		5.破坏国家宗教政策,宣扬邪教和封建迷信的;
- 
- 		6.散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
- 
- 		7.侮辱或者诽谤他人,侵害他人合法权益的;
- 
- 		8.含有法律、行政法规禁止的其他内容的。
- 	
- 	您已经同意不在本产品从事下列行为:
- 
- 		1.发布或分享电脑病毒、蠕虫、恶意代码、故意破坏或改变计算机系统或数据的软件;
- 
- 		2.未授权的情况下,收集其他用户的信息或数据,例如电子邮箱地址等;
- 
- 		3.用自动化的行式恶意使用本产品,给服务器造成过度的负担或以其他方式干扰或损害害站服务器和网络链接;
- 
- 		4.在未授权的情况下,尝试访问本产品的服务器数据或通信数据;
- 
- 		5.干扰、破坏本产品其他用户的使用。
- 
- 	修改
- 	本协议容许变更。如果本协议有任何实质性变更,我们将通过APP内公告或其他方式来通知您。变更通知之后,继续使用本产品则为您已知晓此类变更并同意条款约束;
- 
- 		我们保留在任何时候无需通知而修改、保留或关闭本产品任何服务之权利;
- 
- 		您已同意我们无需因修改、保留或关闭本产品任何服务之权利;
- 
- 		您已同意我们无需因修改、保留或关闭本产品任何服务的行为对您或第三方承担责任。
- 	终止
- 	本协议自您接受之日起生效,在您使用本产品的过程中持续有效,直至依据本协议终止;
- 
- 		尽管有上述规定,如果您使用本产品的时间早于您接受本协议的时间,您在此知晓并同意本协议于您接受本协议的时间,您在此知晓并同意本协议于您第一次使用本产品时生效,除非依据本协议提前终止;
- 
- 		我们可能会依据法律的规定,保留您使用本产品或者本账户的权利;无论是否通知,我们将在任何时间以任何原因终止本协议,包括出于善意的相信您违反了我们可接受使用政策或本协议的其他规定;
- 
- 		不受前款规定所限,如果用户侵犯第三方的版权且我们接到版权所有权或版权所有人的合法代理人的通知后,我们保留终止本协议的权利;
- 
- 		一旦本协议终止,您使用本产品的权利即告终止。您应当知晓您的产品终止意味着您的用户内容将从我们的活动数据库中删除。我们不因终止本协议对您承担任何责任,包括终止您的用户账户和删除您的用户内容。
- 	第三方
- 	您已知晓或同意我们的部分服务时基于第三方的技术支持获得;
- 
- 		您已知晓本协议是您在与我们之前签订,除非您与上述第三方之间签订。我们是基于本产品所产生的内容、维护、支持服务、保证和由此产生的诉讼等事项的唯一责任人。您已同意遵守且授权给本产品限制您有条件地使用本产品的服务。
- 
- 		第三方信息和服务
- 
- 		1.本产品包含了第三方的部分信息和服务。我们不控制且不对第三方的信息和服务负责;
- 
- 		2.我们仅为您使用的方便的或为承诺和保证第三方的需要而提供此类信息和服务;
- 
- 		3.用户需对使用第三方信息和服务产生的风险承担法律责任;
- 
- 		4.当用户访问第三方信息和服务时,适用第三方的条款和政策。
- 	赔偿
- 	您已同意无害地使用本产品,避免因下述行为或相关行为遭受来第三方的任何投诉、诉讼、损失、损害、责任、成本和费用(包括律师费):
- 
- 		1.用户使用本产品的行为;
- 
- 		2.用户的用户内容;
- 
- 		3.用户违反本协议的行为。
- 
- 		我们保留专属抗辩权和请求赔偿的权利
- 
- 		您已同意,除非获得我们书面同意,您不得在您与我们共同对第三方提起的诉讼中单方和解。
- 
- 		我们将尽合理努力将此类诉讼、诉讼行为或进程通知您。
- 
- 		在任何情况下,本产品都不对您或任何第三方因本协议产生的任何间接性、后果性、惩罚性的、偶然的、特殊或惩罚性的损害赔偿承担责任。访问、使用本产品所产生的损坏计算机系统或移动通讯设备数据的风险将由您个人承担。
- 	适用法律
- 	本协议适中中华人民共和国法律;
- 
- 		如果双方发生纠纷,应本着友好的原则协商解决;如协商不成,应向所在地的法院提起诉讼。
- 	独立性
- 	
- 		本协议中的某些条款因故无法适用,则本协议的其他条款继续适用且无法适用的条款将会被修改,以便其能够依法适用。
- 	
- 	完整性
- 	
- 	本协议(包括隐私政策)是您和本产品之间关于本产品相关事项的最终的、完整的、排他的协议,且取代和合并之前当事人关于此类事项(包括之前的最终用户许可、服务条款和隐私政策)的讨论和协议;
- 
- 		每部分的题木只为阅读之便而无任何法律或合同义务;
- 
- 		除非我们书面同意,您不得转让本协议所规定的权利义务。任何违反上述规定企图转让的行为均无效。
- 	
- 
- 	 皖ICP备2022000199号
- 	注册地址:安徽省合肥市蜀山区经济开发区湖光路自主创新产业基地三期B座13层1301
- 	生效时间:2023年3月1日
- 	更新时间:2023年3月10日
- 	联系方式:18326607835
- 
-</body>
-</html>

+ 0 - 76
utils/index.js

@@ -1,76 +0,0 @@
-export function isEmpty(v) {
-    switch (typeof v) {
-        case 'undefined':
-            return true;
-        case 'string':
-            if (v.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true;
-            break;
-        case 'boolean':
-            if (!v) return true;
-            break;
-        case 'number':
-            if (isNaN(v)) return true;
-            break;
-        case 'object':
-            if (null === v || v.length === 0) return true;
-            for (var i in v) {
-                return false;
-            }
-            return true;
-    }
-    return false;
-}
-
-/**
- * 获取字典数据列表
- * @param dictType  字典类型
- */
-export function getDictDataList(dictType, subtype) {
-	
-    const type = window.SITE_CONFIG['dictList'].find((element) => (element.dictType === dictType))
-    if (type) {
-        if (dictType == 'PeopleType') {
-            if (subtype == "touch") {
-                return type.dataList.slice(0, 2)
-            } else {
-                return type.dataList
-            }
-        } else {
-            return type.dataList
-        }
-    } else {
-        return []
-    }
-}
-
-export function getCurrentTime() {
-    var date = new Date();
-    var year = date.getFullYear();
-    var month = date.getMonth() + 1;
-    var day = date.getDate();
-    var hours = date.getHours();
-    var minutes = date.getMinutes();
-    var seconds =
-        date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
-    return (year +
-        "-" +
-        month +
-        "-" +
-        day +
-        " " +
-        hours +
-        ":" +
-        minutes +
-        ":" +
-        seconds);
-}
-
-export function getUrlKey(name) {
-    return (
-      decodeURIComponent(
-        (new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec(
-          location.href
-        ) || [, ""])[1].replace(/\+/g, "%20")
-      ) || null
-    );
-  }

+ 289 - 0
utils/reg.js

@@ -0,0 +1,289 @@
+/**
+ * 验证电子邮箱格式
+ */
+function email(value) {
+    return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)
+}
+
+/**
+ * 验证手机格式
+ */
+function mobile(value) {
+    return /^1([3589]\d|4[5-9]|6[1-2,4-7]|7[0-8])\d{8}$/.test(value)
+}
+
+/**
+ * 验证URL格式
+ */
+function url(value) {
+    return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/
+        .test(value)
+}
+
+/**
+ * 验证日期格式
+ */
+function date(value) {
+    if (!value) return false
+    // 判断是否数值或者字符串数值(意味着为时间戳),转为数值,否则new Date无法识别字符串时间戳
+    if (number(value)) value = +value
+    return !/Invalid|NaN/.test(new Date(value).toString())
+}
+
+/**
+ * 验证ISO类型的日期格式
+ */
+function dateISO(value) {
+    return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value)
+}
+
+/**
+ * 验证十进制数字
+ */
+function number(value) {
+    return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value)
+}
+
+/**
+ * 验证字符串
+ */
+function string(value) {
+    return typeof value === 'string'
+}
+
+/**
+ * 验证整数
+ */
+function digits(value) {
+    return /^\d+$/.test(value)
+}
+
+/**
+ * 验证身份证号码
+ */
+function idCard(value) {
+    return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test(
+        value
+    )
+}
+
+/**
+ * 是否车牌号
+ */
+function carNo(value) {
+	value = value.trim();
+    // 新能源车牌
+    const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([A-HJ-K][A-HJ-NP-Z0-9][0-9]{4}$))/;
+    // 旧车牌
+    const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/;
+    if (value.length === 7) {
+        return creg.test(value)
+    } if (value.length === 8) {
+        return xreg.test(value)
+    }
+    return false
+}
+
+/**
+ * 金额,只允许2位小数
+ */
+function amount(value) {
+    // 金额,只允许保留两位小数
+    return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value)
+}
+
+/**
+ * 中文
+ */
+function chinese(value) {
+    const reg = /^[\u4e00-\u9fa5]+$/gi
+    return reg.test(value)
+}
+
+/**
+ * 只能输入字母
+ */
+function letter(value) {
+    return /^[a-zA-Z]*$/.test(value)
+}
+
+/**
+ * 只能是字母或者数字
+ */
+function enOrNum(value) {
+    // 英文或者数字
+    const reg = /^[0-9a-zA-Z]*$/g
+    return reg.test(value)
+}
+
+/**
+ * 验证是否包含某个值
+ */
+function contains(value, param) {
+    return value.indexOf(param) >= 0
+}
+
+/**
+ * 验证一个值范围[min, max]
+ */
+function range(value, param) {
+    return value >= param[0] && value <= param[1]
+}
+
+/**
+ * 验证一个长度范围[min, max]
+ */
+function rangeLength(value, param) {
+    return value.length >= param[0] && value.length <= param[1]
+}
+
+/**
+ * 是否固定电话
+ */
+function landline(value) {
+    const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/
+    return reg.test(value)
+}
+
+/**
+ * 判断是否为空
+ */
+function empty(value) {
+    switch (typeof value) {
+    case 'undefined':
+        return true
+    case 'string':
+        if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true
+        break
+    case 'boolean':
+        if (!value) return true
+        break
+    case 'number':
+        if (value === 0 || isNaN(value)) return true
+        break
+    case 'object':
+        if (value === null || value.length === 0) return true
+        for (const i in value) {
+            return false
+        }
+        return true
+    }
+    return false
+}
+
+/**
+ * 是否json字符串
+ */
+function jsonString(value) {
+    if (typeof value === 'string') {
+        try {
+            const obj = JSON.parse(value)
+            if (typeof obj === 'object' && obj) {
+                return true
+            }
+            return false
+        } catch (e) {
+            return false
+        }
+    }
+    return false
+}
+
+/**
+ * 是否数组
+ */
+function array(value) {
+    if (typeof Array.isArray === 'function') {
+        return Array.isArray(value)
+    }
+    return Object.prototype.toString.call(value) === '[object Array]'
+}
+
+/**
+ * 是否对象
+ */
+function object(value) {
+    return Object.prototype.toString.call(value) === '[object Object]'
+}
+
+/**
+ * 是否短信验证码
+ */
+function code(value, len = 6) {
+    return new RegExp(`^\\d{${len}}$`).test(value)
+}
+
+/**
+ * 是否函数方法
+ * @param {Object} value
+ */
+function func(value) {
+    return typeof value === 'function'
+}
+
+/**
+ * 是否promise对象
+ * @param {Object} value
+ */
+function promise(value) {
+    return object(value) && func(value.then) && func(value.catch)
+}
+
+/** 是否图片格式
+ * @param {Object} value
+ */
+function image(value) {
+    const newValue = value.split('?')[0]
+    const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i
+    return IMAGE_REGEXP.test(newValue)
+}
+
+/**
+ * 是否视频格式
+ * @param {Object} value
+ */
+function video(value) {
+    const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i
+    return VIDEO_REGEXP.test(value)
+}
+
+/**
+ * 是否为正则对象
+ * @param {Object}
+ * @return {Boolean}
+ */
+function regExp(o) {
+    return o && Object.prototype.toString.call(o) === '[object RegExp]'
+}
+
+export default {
+    email,
+    mobile,
+    url,
+    date,
+    dateISO,
+    number,
+    digits,
+    idCard,
+    carNo,
+    amount,
+    chinese,
+    letter,
+    enOrNum,
+    contains,
+    range,
+    rangeLength,
+    empty,
+    isEmpty: empty,
+    jsonString,
+    landline,
+    object,
+    array,
+    code,
+    func,
+    promise,
+    video,
+    image,
+    regExp,
+    string
+}