From 9ab5feb38bf6db6d02b9403dd61bee5ab49a79c9 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 09 Jan 2024 19:50:19 +0800
Subject: [PATCH] Merge branch 'master' of http://s16s652780.51mypc.cn:49896/r/jczz_app

---
 subPackage/article/signature.vue                                           |  127 ++++++--
 pages.json                                                                 |   11 
 subPackage/bs/components/form/rentForm.vue                                 |   20 +
 subPackage/house/member/index.vue                                          |   17 
 subPackage/label/hotel.vue                                                 |  116 ++++---
 subPackage/article/signUpList.vue                                          |  161 ++++++++++
 subPackage/label/form.vue                                                  |   43 +-
 subPackage/article/communityList.vue                                       |   18 
 subPackage/article/detail.vue                                              |   50 ++
 subPackage/workbench/views/editExamine.vue                                 |   49 ++
 pages/home/index.vue                                                       |    2 
 subPackage/label/bail.vue                                                  |  118 ++++---
 subPackage/workbench/views/bailReportDetail.vue                            |   27 +
 subPackage/workbench/views/cscj.vue                                        |   27 +
 subPackage/workbench/views/reportAudit.vue                                 |    8 
 subPackage/bs/views/addRepair.vue                                          |   25 +
 subPackage/workbench/views/report.vue                                      |    5 
 uni_modules/jushi-signature/components/jushi-signature/jushi-signature.vue |    2 
 subPackage/label/school.vue                                                |   55 ++-
 19 files changed, 630 insertions(+), 251 deletions(-)

diff --git a/pages.json b/pages.json
index f98c9e2..952b57c 100644
--- a/pages.json
+++ b/pages.json
@@ -192,7 +192,16 @@
 				{
 					"path": "communityList",
 					"style": {
-						"navigationBarTitleText": "",
+						"navigationBarTitleText": "选举调查",
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff",
+						"navigationBarTextStyle": "black"
+					}
+				},
+				{
+					"path": "signUpList",
+					"style": {
+						"navigationBarTitleText": "公益报名",
 						"enablePullDownRefresh": false,
 						"navigationBarBackgroundColor": "#fff",
 						"navigationBarTextStyle": "black"
diff --git a/pages/home/index.vue b/pages/home/index.vue
index b795b12..98b66f4 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -236,7 +236,7 @@
 					{
 						title: "公益报名",
 						icon: "/static/icon/nav-13.png",
-						path: "/subPackage/article/communityList?type=0"
+						path: "/subPackage/article/signUpList"
 
 					},
 					{
diff --git a/subPackage/article/communityList.vue b/subPackage/article/communityList.vue
index ec1910b..37fe507 100644
--- a/subPackage/article/communityList.vue
+++ b/subPackage/article/communityList.vue
@@ -1,9 +1,9 @@
 <template>
 	<view class="">
-		<!-- <view class="tab" v-if="tabList.length">
+		<view class="tab" v-if="tabList.length">
 			<u-tabs :list="tabList" :current="tabIndex" keyName="dictValue" @change="changeTab"
 				:inactiveStyle="{color:'#999999'}" :activeStyle="{color:'#017BFC'}"></u-tabs>
-		</view> -->
+		</view>
 		<z-paging ref="paging" v-model="list" @query="queryList" @onRefresh="refreshList"
 			loading-more-no-more-text="没有更多了">
 			<view class="list bgc-ff">
@@ -40,15 +40,10 @@
 			this.eventType = option.type;
 			if (option.type == 0) {
 				this.type = 3
-				uni.setNavigationBarTitle({
-					title: "公益报名"
-				})
 			} else {
 				this.type = 4
-				uni.setNavigationBarTitle({
-					title: "选举调查"
-				})
 			}
+			this.getCateList()
 			// this.getNoticeList()
 
 		},
@@ -69,11 +64,12 @@
 				this.list = [];
 				this.currentPage = 1;
 				// this.getNoticeList()
+				this.refreshList();
 			},
 
 			getCateList() {
 				getCategory({
-					parentId: '1722966265111248897',
+					parentId: '1740566650527752194',
 				}).then(res => {
 					console.log(res)
 					let data = res.data;
@@ -82,8 +78,8 @@
 						dictValue: "全部"
 					})
 					this.tabList = data;
-					// this.tabId = data[0].dictKey;
-					this.getNoticeList()
+					this.tabId = data[0].dictKey;
+					// this.getNoticeList()
 				})
 			},
 
diff --git a/subPackage/article/detail.vue b/subPackage/article/detail.vue
index 78a53b9..664d03c 100644
--- a/subPackage/article/detail.vue
+++ b/subPackage/article/detail.vue
@@ -318,20 +318,22 @@
 			//报名
 			handleApply() {
 				if (this.computeEndTime > 0) {
-
-					communityModel.addApply({
-						publicDiscussId: this.pdId,
-						articleId: this.params.id,
-						houseCode: uni.getStorageSync("siteInfo").houseCode
-					}).then(res => {
-						if (res.code == 200) {
-							uni.showToast({
-								title: "操作成功"
-							})
-							this.getApplyList();
-							this.getApplyDetail()
-						}
+					uni.navigateTo({
+						url: "signature"
 					})
+					// communityModel.addApply({
+					// 	publicDiscussId: this.pdId,
+					// 	articleId: this.params.id,
+					// 	houseCode: uni.getStorageSync("siteInfo").houseCode
+					// }).then(res => {
+					// 	if (res.code == 200) {
+					// 		uni.showToast({
+					// 			title: "操作成功"
+					// 		})
+					// 		this.getApplyList();
+					// 		this.getApplyDetail()
+					// 	}
+					// })
 				} else {
 					uni.showToast({
 						title: "报名已结束",
@@ -340,6 +342,28 @@
 				}
 			},
 
+			applyRequest(signPath) {
+				signature_path
+				let data = {
+					publicDiscussId: this.pdId,
+					articleId: this.params.id,
+					houseCode: uni.getStorageSync("siteInfo").houseCode
+				}
+				if (signPath) {
+					data.signaturePath = signPath
+				}
+				communityModel.addApply(data).then(res => {
+					if (res.code == 200) {
+						uni.showToast({
+							title: "操作成功"
+						})
+						this.getApplyList();
+						this.getApplyDetail()
+					}
+				})
+			},
+
+
 			selectOption(id, index) {
 				let item = this.voteTopicList[index];
 				item.selected = id;
diff --git a/subPackage/article/signUpList.vue b/subPackage/article/signUpList.vue
new file mode 100644
index 0000000..3a21ced
--- /dev/null
+++ b/subPackage/article/signUpList.vue
@@ -0,0 +1,161 @@
+<template>
+	<view class="">
+		<view class="tab" v-if="tabList.length">
+			<u-tabs :list="tabList" :current="tabIndex" keyName="dictValue" @change="changeTab"
+				:inactiveStyle="{color:'#999999'}" :activeStyle="{color:'#017BFC'}"></u-tabs>
+		</view>
+		<z-paging ref="paging" v-model="list" @query="queryList" @onRefresh="refreshList"
+			loading-more-no-more-text="没有更多了">
+			<view class="list bgc-ff">
+				<notice-list :data="list" />
+			</view>
+		</z-paging>
+		<!-- <u-loadmore :status="loadingStatus" loadmoreText="开始加载" loadingText="数据加载中" nomoreText="没有更多了" line /> -->
+	</view>
+</template>
+
+<script>
+	import {
+		getPage,
+		getCategory
+	} from "@/api/article/article.js";
+	import noticeList from "@/components/noticeList/noticeList.vue"
+	export default {
+		components: {
+			noticeList
+		},
+		data() {
+			return {
+				tabList: [],
+				tabId: "",
+				tabIndex: 0,
+				list: [],
+				currentPage: 1,
+				loadingStatus: 'nomore',
+				eventType: "",
+				type: '',
+			}
+		},
+		onLoad(option) {
+			this.eventType = option.type;
+			if (option.type == 0) {
+				this.type = 3
+			} else {
+				this.type = 4
+			}
+			// this.getCateList()
+			// this.getNoticeList()
+
+		},
+		// onReachBottom() {
+		// 	this.currentPage++
+		// 	this.getPageList()
+		// },
+
+		methods: {
+
+			refreshList() {
+				this.$refs.paging.reload();
+			},
+
+			changeTab(e) {
+				this.tabIndex = e.index;
+				this.tabId = e.dictKey;
+				this.list = [];
+				this.currentPage = 1;
+				// this.getNoticeList()
+				this.refreshList();
+			},
+
+			getCateList() {
+				getCategory({
+					parentId: '1740566650527752194',
+				}).then(res => {
+					console.log(res)
+					let data = res.data;
+					data.unshift({
+						dictKey: "",
+						dictValue: "全部"
+					})
+					this.tabList = data;
+					this.tabId = data[0].dictKey;
+					// this.getNoticeList()
+				})
+			},
+
+			queryList(pageNo, pageSize) {
+				getPage({
+					current: pageNo,
+					size: pageSize,
+					articleType: this.tabId,
+					eventType: this.eventType,
+					type: this.type,
+					houseCode: uni.getStorageSync("siteInfo").houseCode
+				}).then(res => {
+					this.$refs.paging.complete(res.data.records);
+				})
+			},
+
+
+			async getNoticeList() {
+				this.loadingStatus = 'loadingmore'
+				const param = {
+					size: 10,
+					current: this.currentPage,
+					articleType: this.tabId,
+					eventType: this.eventType,
+					type: this.type,
+					houseCode: uni.getStorageSync("siteInfo").houseCode
+				}
+				const res = await getPage(param)
+				const {
+					code,
+					data: {
+						records
+					}
+				} = res
+				if (code != 200) {
+					uni.showToast({
+						title: '数据请求失败',
+						icon: 'error'
+					})
+					return
+				}
+				this.list = [...this.list, ...records]
+				this.loadingStatus = 'nomore'
+
+			},
+			navTo(id, type) {
+				this.$u.func.globalNavigator(`detail?id=${id}&type=${type}`, "navTo")
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	page {
+		background-color: #f5f5f5;
+	}
+
+	.tab {
+		width: 100%;
+		height: 88rpx;
+		position: fixed;
+		/*#ifdef H5*/
+		top: 88rpx;
+		/*#endif*/
+		/*#ifdef MP-WEIXIN*/
+		top: 0;
+		/*#endif*/
+		left: 0;
+		background-color: #fff;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		z-index: 999;
+	}
+
+	.list {
+		// margin-top: 108rpx;
+		padding: 0 30rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/subPackage/article/signature.vue b/subPackage/article/signature.vue
index 325e244..227fe35 100644
--- a/subPackage/article/signature.vue
+++ b/subPackage/article/signature.vue
@@ -1,44 +1,99 @@
 <template>
-    <view>
-        <jushi-signature :settings="settings" @change="signatureChange"></jushi-signature>
-        <view class="" style="margin-top: 20rpx;">
-            <text class="text">保存后的签名图片</text>
-            <view class="preview">
-                <image :src="imgUrl" mode="" style="width: 100%;"></image>
-            </view>
-        </view>
-    </view>
+	<view>
+		<jushi-signature :settings="settings" @change="signatureChange"></jushi-signature>
+		<!-- <view class="" style="margin-top: 20rpx;">
+			<text class="text">保存后的签名图片</text>
+			<view class="preview">
+				<image :src="imgUrl" mode="" style="width: 100%;"></image>
+			</view>
+		</view> -->
+	</view>
 </template>
 
 <script>
-    export default {
-        data() {
-            return {
-                settings:{ //签名设置
-                    width: '750',//签名区域的宽
-                    height: '500',//签名区域的高
-                    lineWidth:3,//签名时线宽
-                    textColor:'#007AFF' //签名文字颜色
-                },
-                imgUrl: ''
-            }
-        },
-        methods: {
-            signatureChange(e) {
-                this.imgUrl = e
-            }
-        }
-    }
+	import {
+		Base64
+	} from '@/utils/base64.js';
+	import {
+		prodUrl,
+		clientId,
+		clientSecret,
+		minioBaseUrl
+	} from '@/common/setting'
+	export default {
+		data() {
+			return {
+				settings: { //签名设置
+					width: '750', //签名区域的宽
+					height: '1100', //签名区域的高
+					lineWidth: 3, //签名时线宽
+					textColor: '#007AFF' //签名文字颜色
+				},
+				imgUrl: '',
+				header: {},
+				uploadConfig: {
+					url: prodUrl + "/blade-resource/oss/endpoint/put-file",
+					header: {},
+				},
+			}
+		},
+
+		onLoad() {
+			this.getHeader()
+		},
+
+		methods: {
+			//获取头部
+			getHeader() {
+				let accessToken = uni.getStorageSync('accessToken');
+				let myHeader = {}
+				if (accessToken) {
+					myHeader['Blade-Auth'] = 'bearer ' + accessToken;
+				}
+				// 客户端认证参数
+				myHeader['Authorization'] = 'Basic ' + Base64.encode(clientId + ':' + clientSecret);
+				this.uploadConfig.header = myHeader
+			},
+
+			signatureChange(e) {
+				this.imgUrl = e;
+				this.uploadSignImg(e)
+			},
+
+			uploadSignImg(url) {
+				uni.uploadFile({
+					url: this.uploadConfig.url,
+					filePath: url,
+					name: 'file',
+					header: this.uploadConfig.header,
+					success: (res) => {
+						let data = JSON.parse(res.data);
+						this.handleApply(data.data.name);
+					}
+				})
+			},
+
+			async handleApply(src) {
+				let pages = getCurrentPages();
+				let prePage = pages[pages.length - 2];
+				await prePage.$vm.applyRequest();
+				uni.navigateBack({
+					delta: 2
+				})
+			}
+		}
+	}
 </script>
 
 <style>
-    .preview{
-        margin: 10rpx;
-        border: 1rpx solid #aaaaaa;
-        border-radius: 10rpx;
-    }
-    .text {
-        margin: 20rpx;
-        color: #aaaaaa;
-    }
+	.preview {
+		margin: 10rpx;
+		border: 1rpx solid #aaaaaa;
+		border-radius: 10rpx;
+	}
+
+	.text {
+		margin: 20rpx;
+		color: #aaaaaa;
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/bs/components/form/rentForm.vue b/subPackage/bs/components/form/rentForm.vue
index 1b790fd..f3e3f0f 100644
--- a/subPackage/bs/components/form/rentForm.vue
+++ b/subPackage/bs/components/form/rentForm.vue
@@ -4,10 +4,10 @@
 			<u-input v-model="form.name" border="none" placeholder="姓名" />
 		</u-form-item>
 		<u-form-item class="form-item" label="联系方式" labelWidth="80">
-			<u-input v-model="form.phoneNumber" border="none" placeholder="联系方式" />
+			<u-input type="number" v-model="form.phoneNumber" border="none" placeholder="联系方式" />
 		</u-form-item>
 		<u-form-item class="form-item" label="身份证号码" required prop="idCard" labelWidth="80">
-			<u-input v-model="form.idCard" border="none" placeholder="身份证号码" />
+			<u-input type="idcard" v-model="form.idCard" border="none" placeholder="身份证号码" />
 		</u-form-item>
 		<u-form-item class="form-item" label="户籍地址" labelWidth="80">
 			<u-input v-model="form.hukouRegistration" border="none" placeholder="选填" />
@@ -36,6 +36,19 @@
 						// 可以单个或者同时写两个触发验证方式 
 						trigger: ['change', 'blur'],
 					}],
+					"phoneNumber": [{
+							required: true,
+							message: '请输入联系方式',
+							trigger: ['change', 'blur'],
+						},
+						{
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+						}
+					],
 					idCard: [{
 						required: true,
 						message: '请输入身份证号',
@@ -64,6 +77,5 @@
 <style lang="scss" scoped>
 	.form-box {
 		background: #fff;
-	}
-	
+	}
 </style>
\ No newline at end of file
diff --git a/subPackage/bs/views/addRepair.vue b/subPackage/bs/views/addRepair.vue
index 18e2be5..e7797a5 100644
--- a/subPackage/bs/views/addRepair.vue
+++ b/subPackage/bs/views/addRepair.vue
@@ -88,12 +88,24 @@
 						message: '请输入姓名',
 						trigger: ['blur', 'change']
 					},
-					'phone': {
-						type: 'string',
-						required: true,
-						message: '请输入手机号',
-						trigger: ['blur', 'change']
-					},
+					'phone': [{
+							type: 'string',
+							required: true,
+							message: '请输入手机号',
+							trigger: ['blur', 'change']
+						},
+
+						{
+
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+
+						}
+
+					],
 					'address': {
 						type: 'string',
 						required: true,
@@ -231,6 +243,7 @@
 	.address-content {
 		width: calc(100% - 116rpx - 20rpx);
 		margin-right: 20rpx;
+		text-align: right;
 	}
 
 	.location-btn {
diff --git a/subPackage/house/member/index.vue b/subPackage/house/member/index.vue
index 978b335..6163cea 100644
--- a/subPackage/house/member/index.vue
+++ b/subPackage/house/member/index.vue
@@ -334,12 +334,12 @@
 				addOrUpdateTitle: "添加",
 				houseCode: "",
 				form: {
-					roleName: "",
-					relationName: '',
-					location: "",
-					title: "",
+					// roleName: "",
+					// relationName: '',
+					// location: "",
+					// title: "",
 					// roleType:null,
-					description: "",
+					// description: "",
 				},
 				rules: {
 					'selectDefaultName.relationship': {
@@ -501,7 +501,8 @@
 		onLoad(option) {
 			const data = JSON.parse(option.data)
 			console.log("data==>", data)
-			this.houseCode = data.houseCode
+			this.houseCode = data.houseCode;
+
 			this.getRegionList()
 			this.type = data.type;
 			if (data.id) {
@@ -525,7 +526,11 @@
 			}
 			if (option.from) {
 				this.from = option.from;
+				if (data.type == 1) {
+					this.houseCode = uni.getStorageSync("siteInfo").houseCode
+				}
 			}
+			this.form.roleName = uni.getStorageSync("activeRole").roleName;
 		},
 
 		onShow() {
diff --git a/subPackage/label/bail.vue b/subPackage/label/bail.vue
index 6bd22af..e2b792c 100644
--- a/subPackage/label/bail.vue
+++ b/subPackage/label/bail.vue
@@ -4,19 +4,19 @@
 		<u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
 			:labelStyle="{fontSize:'28rpx'}">
 			<view class="content">
-				<u-form-item label="姓名" prop="checkUserName" borderBottom  required>
-					<u-input v-model="info.checkUserName"  border="none" placeholder="请输入" placeholderClass="f-28 c-99"
+				<u-form-item label="姓名" prop="checkUserName" borderBottom required>
+					<u-input v-model="info.checkUserName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="手机" prop="checkTelephone" borderBottom  required>
+				<u-form-item label="手机" prop="checkTelephone" borderBottom required>
 					<u-input v-model="info.checkTelephone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="申请事由" prop="applyName" borderBottom  required>
+				<u-form-item label="申请事由" prop="applyName" borderBottom required>
 					<u-input v-model="info.applyName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="申请时间" prop="applyTime" borderBottom  required @click="showSelectDate = true">
+				<u-form-item label="申请时间" prop="applyTime" borderBottom required @click="showSelectDate = true">
 					<u-input v-model="info.applyTime" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 					<u-icon slot="right" name="arrow-right"></u-icon>
@@ -32,14 +32,14 @@
 						<view class="address-content f-28" v-if="info.location">
 							{{info.location}}
 						</view>
-						<view class="address-content f-28"  style="color: #c0c4cc;"  v-if="!info.location">
+						<view class="address-content f-28" style="color: #c0c4cc;" v-if="!info.location">
 							请选择位置
 						</view>
-						<view class="location-btn c-main f-24"  @click="getLocation()">
+						<view class="location-btn c-main f-24" @click="getLocation()">
 							获取地址
 						</view>
 					</view>
-						
+
 				</u-form-item>
 			</view>
 
@@ -59,8 +59,8 @@
 		</u-form>
 		<button class="submit-btn" @click="sumitInfo">提交</button>
 		<button class="list-btn mb-20" @click="navigatorPage">我上报的事件</button>
-         <u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="applyTime" mode="datetime"
-         	:formatter="formatter" @confirm="confirmDate"  @cancel="showSelectDate = false"></u-datetime-picker>
+		<u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="applyTime" mode="datetime"
+			:formatter="formatter" @confirm="confirmDate" @cancel="showSelectDate = false"></u-datetime-picker>
 	</view>
 </template>
 
@@ -73,33 +73,44 @@
 		mixins: [uploadMixin],
 		data() {
 			return {
-				form:{
-					images:[]
+				form: {
+					images: []
 				},
 				info: {
 					checkUserName: "",
 					checkTelephone: "",
-					applyName:"",
-					applyTime:'' ,
-					location:"",
-					houseCode:"",
-					districtName:"",
-					checkUserId:"",
-					reportType:1
+					applyName: "",
+					applyTime: '',
+					location: "",
+					houseCode: "",
+					districtName: "",
+					checkUserId: "",
+					reportType: 1
 				},
 				rules: {
-					'checkName': {
+					'checkUserName': {
 						type: 'string',
 						required: true,
 						message: '请输入姓名',
 						trigger: ['blur', 'change']
 					},
-					'checkPhone': {
-						type: 'number',
-						required: true,
-						message: '请输入手机',
-						trigger: ['blur', 'change']
-					},
+					'checkTelephone': [{
+							type: 'number',
+							required: true,
+							message: '请输入手机',
+							trigger: ['blur', 'change']
+						},
+						{
+
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+
+						}
+
+					],
 					'applyName': {
 						type: 'string',
 						required: true,
@@ -112,7 +123,7 @@
 						message: '请输入选择时间',
 						trigger: ['blur', 'change']
 					},
-					'location':{
+					'location': {
 						type: 'string',
 						required: true,
 						message: '请输入位置',
@@ -120,7 +131,7 @@
 					}
 				},
 				showSelectDate: false,
-				applyTime:Number(new Date())
+				applyTime: Number(new Date())
 			}
 		},
 		onLoad(option) {
@@ -128,8 +139,8 @@
 			let userInfo = uni.getStorageSync("userInfo");
 			this.$set(this.info, "houseCode", siteInfo.houseCode);
 			this.$set(this.info, "districtName", siteInfo.name);
-			this.$set(this.info,"checkUserName",userInfo.real_name);
-			this.$set(this.info,"checkTelephone",userInfo.phone);
+			this.$set(this.info, "checkUserName", userInfo.real_name);
+			this.$set(this.info, "checkTelephone", userInfo.phone);
 			this.$set(this.info, "checkUserId", userInfo.user_id);
 		},
 
@@ -139,15 +150,15 @@
 		},
 
 		methods: {
-			
-			getLocation(){
+
+			getLocation() {
 				uni.chooseLocation({
-					success:(res)=>{
-						this.$set(this.info,"location",res.address);
+					success: (res) => {
+						this.$set(this.info, "location", res.address);
 					}
 				})
 			},
-			
+
 
 			formatter(type, value) {
 				if (type === 'year') {
@@ -166,19 +177,19 @@
 				this.showSelectDate = false;
 				this.info.applyTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
 			},
-			
+
 			checkImages() {
 				if (this.form.images.length) {
-					this.$set(this.info,"locationImageUrls",this.setImages())
+					this.$set(this.info, "locationImageUrls", this.setImages())
 				}
 			},
-			
-			setImages(){
+
+			setImages() {
 				let urls = [];
-			    for(let i of this.form.images){
+				for (let i of this.form.images) {
 					urls.push(i.name);
 				}
-			    return urls.join(",")
+				return urls.join(",")
 			},
 
 			sumitInfo() {
@@ -269,23 +280,26 @@
 		color: #fff;
 		margin-top: 50rpx;
 	}
-	.address-row{
-		flex:1;
+
+	.address-row {
+		flex: 1;
 		justify-content: flex-end;
-		align-items:center;
+		align-items: center;
 	}
-	.address-content{
-		width:calc(100% - 116rpx - 20rpx);
-		margin-right:20rpx;
+
+	.address-content {
+		width: calc(100% - 116rpx - 20rpx);
+		margin-right: 20rpx;
 		text-align: right;
 	}
-	.location-btn{
-		width:116rpx;
-		height:46rpx;
+
+	.location-btn {
+		width: 116rpx;
+		height: 46rpx;
 		line-height: 46rpx;
 		border-radius: 4rpx;
-		border:1px solid currentColor;
-		padding:0;
+		border: 1px solid currentColor;
+		padding: 0;
 		background-color: #fff;
 		text-align: center;
 	}
diff --git a/subPackage/label/form.vue b/subPackage/label/form.vue
index b3dcebd..86c8129 100644
--- a/subPackage/label/form.vue
+++ b/subPackage/label/form.vue
@@ -5,11 +5,11 @@
 			:labelStyle="{fontSize:'28rpx'}">
 			<view class="content">
 				<u-form-item label="对象电话" prop="transactionObjectTel" borderBottom required>
-					<u-input v-model="info.transactionObjectTel" border="none" placeholder="请输入"
+					<u-input v-model="info.transactionObjectTel" type="number" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
 				<u-form-item label="交易金额" prop="transactionMoney" borderBottom required>
-					<u-input v-model="info.transactionMoney" border="none" placeholder="请输入"
+					<u-input type="digit" v-model="info.transactionMoney" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
 				<u-form-item label="物品数量" prop="goodsNums" borderBottom required>
@@ -56,7 +56,8 @@
 					<u-upload :fileList="goodsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'goodsImageUrls')" @delete="deletePics($event,'goodsImageUrls')">
+						@afterRead="afterReadImgs($event,'goodsImageUrls')"
+						@delete="deletePics($event,'goodsImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -92,15 +93,21 @@
 					userId: ""
 				},
 				rules: {
-					'transactionObjectTel': {
-						type: 'string',
-						required: true,
-						message: '请输入对象电话',
-						trigger: ['blur', 'change']
-					},
-
+					'transactionObjectTel': [{
+							type: 'number',
+							required: true,
+							message: '请输入对象电话',
+							trigger: ['blur', 'change']
+						},
+						{
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+						}
+					],
 					'transactionMoney': {
-						type: 'string',
 						required: true,
 						message: '请输入交易金额',
 						trigger: ['blur', 'change']
@@ -132,18 +139,16 @@
 				})
 			}
 			this.$set(this.info, "eventType", option.type);
-			
-			
-			if(option.type == 1){
+
+
+			if (option.type == 1) {
 				this.$set(this.info, "reportType", 3);
-			}else if(option.type == 2){
+			} else if (option.type == 2) {
 				this.$set(this.info, "reportType", 4);
-			}else {
+			} else {
 				this.$set(this.info, "reportType", 5);
 			}
-			
-			
-			
+
 			let siteInfo = uni.getStorageSync("siteInfo");
 			let userInfo = uni.getStorageSync("userInfo");
 			this.$set(this.info, "houseCode", siteInfo.houseCode);
diff --git a/subPackage/label/hotel.vue b/subPackage/label/hotel.vue
index a3ef2c4..c3a4e12 100644
--- a/subPackage/label/hotel.vue
+++ b/subPackage/label/hotel.vue
@@ -4,7 +4,7 @@
 		<u-form labelPosition="left" :model="info" :rules="rules" ref="form" labelWidth="100"
 			:labelStyle="{fontSize:'28rpx'}">
 			<view class="content">
-				<u-form-item label="社区名称" prop="districtName" borderBottom >
+				<u-form-item label="社区名称" prop="districtName" borderBottom>
 					<view class="content-name f-28">
 						{{info.districtName}}
 					</view>
@@ -16,32 +16,32 @@
 						inputAlign="right"></u-input>
 				</u-form-item>
 				<u-form-item label="自查时间" prop="checkTime" borderBottom required @click="showSelectDate = true">
-					<u-input v-model="info.checkTime" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
+					<u-input v-model="info.checkTime" disabled disabledColor="#ffffff" border="none" placeholder="请选择"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 					<u-icon slot="right" name="arrow-right"></u-icon>
 				</u-form-item>
-				<u-form-item label="自查人姓名" prop="phone" borderBottom required>
+				<u-form-item label="自查人姓名" prop="checkUserName" borderBottom required>
 					<u-input v-model="info.checkUserName" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="自查人手机" prop="phone" borderBottom required>
-					<u-input v-model="info.checkTelephone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
-						inputAlign="right"></u-input>
+				<u-form-item label="自查人手机" prop="checkTelephone" borderBottom required>
+					<u-input type="number" v-model="info.checkTelephone" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
 				<u-form-item label="自查位置" prop="location" borderBottom ref="location" required>
 					<!-- <u-input v-model="info.location" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input> -->
-						<view class="address-row flex">
-							<view class="address-content f-28" v-if="info.location">
-								{{info.location}}
-							</view>
-							<view class="address-content f-28 c-99" v-if="!info.location">
-								请选择位置
-							</view>
-							<view class="location-btn c-main f-24"  @click="getLocation()">
-								获取地址
-							</view>
+					<view class="address-row flex">
+						<view class="address-content f-28" v-if="info.location">
+							{{info.location}}
 						</view>
+						<view class="address-content f-28 c-99" v-if="!info.location">
+							请选择位置
+						</view>
+						<view class="location-btn c-main f-24" @click="getLocation()">
+							获取地址
+						</view>
+					</view>
 				</u-form-item>
 				<u-form-item label="灭火器数量" prop="fireNums" borderBottom>
 					<u-input type="number" v-model="info.fireNums" border="none" placeholder="请输入"
@@ -127,11 +127,12 @@
 			</view>
 
 			<view class="content">
-				<u-form-item label="接待未成年人需要做到的五个必须" prop="fiveMust"  labelWidth="300" :borderBottom="false" required  labelPosition="top">
+				<u-form-item label="接待未成年人需要做到的五个必须" prop="fiveMust" labelWidth="300" :borderBottom="false" required
+					labelPosition="top">
 					<view class="mt-30">
 						<u-radio-group v-model="info.fiveMust" placement="column">
-							<u-radio :customStyle="{marginBottom: '10px'}" v-for="(item, index) in mustList" :key="index"
-								:label="item.name" :name="item.value"  labelSize="14"  iconSize="20">
+							<u-radio :customStyle="{marginBottom: '10px'}" v-for="(item, index) in mustList"
+								:key="index" :label="item.name" :name="item.value" labelSize="14" iconSize="20">
 							</u-radio>
 						</u-radio-group>
 					</view>
@@ -198,7 +199,7 @@
 					realName: "",
 					houseCode: "",
 					checkUserId: "",
-					reportType:2
+					reportType: 2
 				},
 				rules: {
 					// 'districtName': {
@@ -219,18 +220,26 @@
 						message: '请选择自查时间',
 						trigger: ['blur', 'change']
 					},
-					'checkName': {
+					'checkUserName': {
 						type: 'string',
 						required: true,
 						message: '请输入自查人姓名',
 						trigger: ['blur', 'change']
 					},
-					'checkPhone': {
-						type: 'number',
-						required: true,
-						message: '请输入自查人手机',
-						trigger: ['blur', 'change']
-					},
+					'checkTelephone': [{
+							type: 'number',
+							required: true,
+							message: '请输入自查人手机',
+							trigger: ['blur', 'change']
+						},
+						{
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+						}
+					],
 					'location': {
 						type: 'string',
 						required: true,
@@ -330,8 +339,8 @@
 			let userInfo = uni.getStorageSync("userInfo");
 			this.$set(this.info, "houseCode", siteInfo.houseCode);
 			this.$set(this.info, "districtName", siteInfo.neiName || "");
-			this.$set(this.info,"checkUserName",userInfo.real_name);
-			this.$set(this.info,"checkTelephone",userInfo.phone);
+			this.$set(this.info, "checkUserName", userInfo.real_name);
+			this.$set(this.info, "checkTelephone", userInfo.phone);
 			this.$set(this.info, "checkUserId", userInfo.user_id);
 		},
 
@@ -341,15 +350,15 @@
 		},
 
 		methods: {
-			
-			getLocation(){
+
+			getLocation() {
 				uni.chooseLocation({
-					success:(res)=>{
-						this.$set(this.info,"location",res.address);
+					success: (res) => {
+						this.$set(this.info, "location", res.address);
 					}
 				})
 			},
-			
+
 			formatter(type, value) {
 				if (type === 'year') {
 					return `${value}年`
@@ -427,7 +436,7 @@
 			sumitInfo() {
 				this.$refs.form.validate().then(valid => {
 					this.checkImages()
-					console.log("info=>",this.info);
+					console.log("info=>", this.info);
 					saveHotelReporting(this.info).then(res => {
 						uni.showToast({
 							icon: 'success',
@@ -459,8 +468,9 @@
 		padding: 0 30rpx;
 		background-color: #fff;
 	}
-	.content-name{
-		flex:1;
+
+	.content-name {
+		flex: 1;
 		text-align: right;
 	}
 
@@ -516,32 +526,36 @@
 		font-size: 32rpx;
 		color: #fff;
 		margin-top: 50rpx;
-		margin-bottom:20rpx;
+		margin-bottom: 20rpx;
 	}
 
 	.mb-20 {
 		margin-bottom: 20rpx;
 	}
-	.mt-30{
-		margin-top:30rpx;
+
+	.mt-30 {
+		margin-top: 30rpx;
 	}
-	.address-row{
-		flex:1;
+
+	.address-row {
+		flex: 1;
 		justify-content: flex-end;
-		align-items:center;
+		align-items: center;
 	}
-	.address-content{
-		width:calc(100% - 116rpx - 20rpx);
-		margin-right:20rpx;
+
+	.address-content {
+		width: calc(100% - 116rpx - 20rpx);
+		margin-right: 20rpx;
 		text-align: right;
 	}
-	.location-btn{
-		width:116rpx;
-		height:46rpx;
+
+	.location-btn {
+		width: 116rpx;
+		height: 46rpx;
 		line-height: 46rpx;
 		border-radius: 4rpx;
-		border:1px solid currentColor;
-		padding:0;
+		border: 1px solid currentColor;
+		padding: 0;
 		background-color: #fff;
 		text-align: center;
 	}
diff --git a/subPackage/label/school.vue b/subPackage/label/school.vue
index cc11187..080b351 100644
--- a/subPackage/label/school.vue
+++ b/subPackage/label/school.vue
@@ -13,7 +13,7 @@
 						inputAlign="right"></u-input>
 				</u-form-item>
 				<u-form-item label="自查时间" prop="checkTime" borderBottom required @click="showSelectDate = true">
-					<u-input v-model="info.checkTime" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
+					<u-input v-model="info.checkTime" disabled disabledColor="#ffffff" border="none" placeholder="请选择"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 					<u-icon slot="right" name="arrow-right"></u-icon>
 				</u-form-item>
@@ -22,8 +22,8 @@
 						inputAlign="right"></u-input>
 				</u-form-item>
 				<u-form-item label="自查人手机" prop="checkTelephone" borderBottom required>
-					<u-input v-model="info.checkTelephone" border="none" placeholder="请输入" placeholderClass="f-28 c-99"
-						inputAlign="right"></u-input>
+					<u-input type="number" v-model="info.checkTelephone" border="none" placeholder="请输入"
+						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
 				<u-form-item label="自查位置" prop="location" borderBottom ref="location" required>
 					<view class="address-row flex">
@@ -84,7 +84,8 @@
 					<u-upload :fileList="fireFacsImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'fireFacsImageUrls')" @delete="deletePics($event,'fireFacsImageUrls')">
+						@afterRead="afterReadImgs($event,'fireFacsImageUrls')"
+						@delete="deletePics($event,'fireFacsImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -120,7 +121,8 @@
 					<u-upload :fileList="patrolImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'patrolImageUrls')" @delete="deletePics($event,'patrolImageUrls')">
+						@afterRead="afterReadImgs($event,'patrolImageUrls')"
+						@delete="deletePics($event,'patrolImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -138,13 +140,14 @@
 				</u-form-item>
 			</view>
 
-			<view class="upload bgc-ff mb-20"  v-if="info.antiCollision == '有'">
+			<view class="upload bgc-ff mb-20" v-if="info.antiCollision == '有'">
 				<view class="f-28 mb-20">校园防撞装置照片</view>
 				<view class="mt-20">
 					<u-upload :fileList="antiCollisionImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
-						@afterRead="afterReadImgs($event,'antiCollisionImageUrls')" @delete="deletePics($event,'antiCollisionImageUrls')">
+						@afterRead="afterReadImgs($event,'antiCollisionImageUrls')"
+						@delete="deletePics($event,'antiCollisionImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -157,7 +160,7 @@
 					<u-input type="number" v-model="info.fullSoNums" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="兼职保安人数" prop="partSoNums" borderBottom required >
+				<u-form-item label="兼职保安人数" prop="partSoNums" borderBottom required>
 					<u-input type="number" v-model="info.partSoNums" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
@@ -230,7 +233,7 @@
 					highAltitudeMonitor: '',
 					houseCode: "",
 					checkUserId: "",
-					reportType:6
+					reportType: 6
 				},
 				rules: {
 					// 'districtName': {
@@ -251,18 +254,28 @@
 						message: '请选择自查时间',
 						trigger: ['blur', 'change']
 					},
-					'checkName': {
+					'checkUserName': {
 						type: 'string',
 						required: true,
 						message: '请输入自查人姓名',
 						trigger: ['blur', 'change']
 					},
-					'checkTelephone': {
-						type: 'number',
-						required: true,
-						message: '请输入自查人手机',
-						trigger: ['blur', 'change']
-					},
+					'checkTelephone': [{
+							type: 'number',
+							required: true,
+							message: '请输入自查人手机',
+							trigger: ['blur', 'change']
+						},
+
+						{
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+						}
+
+					],
 					'location': {
 						type: 'string',
 						required: true,
@@ -383,15 +396,15 @@
 		},
 
 		methods: {
-			
-			getLocation(){
+
+			getLocation() {
 				uni.chooseLocation({
-					success:(res)=>{
-						this.$set(this.info,"location",res.address);
+					success: (res) => {
+						this.$set(this.info, "location", res.address);
 					}
 				})
 			},
-			
+
 			formatter(type, value) {
 				if (type === 'year') {
 					return `${value}年`
diff --git a/subPackage/workbench/views/bailReportDetail.vue b/subPackage/workbench/views/bailReportDetail.vue
index 4d96ef3..8be5701 100644
--- a/subPackage/workbench/views/bailReportDetail.vue
+++ b/subPackage/workbench/views/bailReportDetail.vue
@@ -22,7 +22,7 @@
 				<u-form-item label="审核结果" prop="confirmFlag" borderBottom>
 					<u-input v-model="confirmFlag" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
-					<u-icon slot="right" name="arrow-right"></u-icon>
+					<!-- <u-icon slot="right" name="arrow-right"></u-icon> -->
 				</u-form-item>
 				<u-form-item label="备注" borderBottom v-if="info.confirmNotion">
 					<u--input type="textarea" v-model="info.confirmNotion" :disabled="true" disabledColor="#ffffff"
@@ -41,7 +41,7 @@
 			</u-form>
 		</view>
 
-		<view v-if="status == 2 && roleType  == 2">
+		<view v-if="status == 2">
 			<u-subsection :list="tabList" :current="tabIndex" button-color="#017BFC" @change="changeTab"></u-subsection>
 			<u-form labelPosition="left" :model="goOutInfo" ref="form" labelWidth="100"
 				:labelStyle="{fontSize:'28rpx'}">
@@ -269,7 +269,7 @@
 			},
 
 			showPickerDate() {
-				if (this.roleType == 2 && this.status != 1) return;
+				if (this.roleType == 1 && this.status != 1) return;
 				this.showSelectDate = true;
 			},
 			cancelPickerDate() {
@@ -353,12 +353,17 @@
 						this.info.confirmFlag = data.confirmFlag;
 						this.info.confirmUserName = data.confirmUserName;
 						this.info.confirmUserTelephone = data.confirmUserTelephone;
+						for (let i in this.goOutInfo) {
+							this.goOutInfo[i] = data[i];
+						}
+						this.startImageUrls = this.$setImageUrl(data.startImageUrls, 2);
+						this.reachImageUrls = this.$setImageUrl(data.reachImageUrls, 2);
+						this.returnImageUrls = this.$setImageUrl(data.returnImageUrls, 2);
 					}
 					this.basicData.forEach(item => {
 						item.value = data[item.name]
 					})
 					this.locationImageUrls = this.$setImageUrl(data.locationImageUrls);
-
 				})
 			},
 
@@ -397,6 +402,20 @@
 
 			submit(val) {
 				if (this.roleType == 1) {
+					if (!this.info.confirmUserName) {
+						uni.showToast({
+							title: "请输入审核人员姓名",
+							icon: "none"
+						})
+						return
+					}
+					if (!this.info.confirmUserTelephone) {
+						uni.showToast({
+							title: "请输入审核人员手机号",
+							icon: "none"
+						})
+						return;
+					}
 					this.info.confirmFlag = val.type;
 					this.info.confirmNotion = val.remark;
 					this.submitRequest(this.info);
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index 29a5776..1cc18a2 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -82,7 +82,7 @@
 					</u-form-item>
 					<u-form-item class="form-item" labelWidth="100" :required="isRequired" :disabled="isDisabled"
 						label="手机号:" prop="principalPhone">
-						<u--input border="none" v-model="form.principalPhone" placeholder="请输入">
+						<u--input border="none" type="number" v-model="form.principalPhone" placeholder="请输入">
 						</u--input>
 					</u-form-item>
 				</view>
@@ -91,10 +91,6 @@
 					<view class="box-title">
 						<box-title title="场所照片"></box-title>
 					</view>
-
-
-
-
 					<u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
 						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
@@ -262,12 +258,21 @@
 						message: '请输入场所负责人',
 						trigger: ['blur', 'change'],
 					},
-					'phone': {
-						type: 'string',
-						required: true,
-						message: '请输入手机号',
-						trigger: ['blur', 'change'],
-					},
+					'principalPhone': [{
+							required: false,
+							message: '请输入手机号',
+							trigger: ['blur', 'change'],
+						},
+						{
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+
+						}
+
+					],
 				},
 
 				labelList: [{
diff --git a/subPackage/workbench/views/editExamine.vue b/subPackage/workbench/views/editExamine.vue
index 9d0303c..0c45af0 100644
--- a/subPackage/workbench/views/editExamine.vue
+++ b/subPackage/workbench/views/editExamine.vue
@@ -18,8 +18,8 @@
 					<u-form-item label="法人信息" required class="form-item" prop="legalPerson">
 						<u--input border="none" v-model="form.legalPerson" placeholder="请填写法人信息"></u--input>
 					</u-form-item>
-					<u-form-item label="法人电话" class="form-item">
-						<u--input border="none" v-model="form.legalTel" placeholder="请填写法人电话"></u--input>
+					<u-form-item label="法人电话" class="form-item" prop="legalTel" required>
+						<u--input border="none" type="number" v-model="form.legalTel" placeholder="请填写法人电话"></u--input>
 					</u-form-item>
 				</u-form>
 			</view>
@@ -99,21 +99,34 @@
 					planImageUrls: []
 				},
 				rules: {
-					location: {
+					"location": {
 						required: true,
 						message: '请选择地址',
 						trigger: ['blur', 'change']
 					},
-					placeName: {
+					"placeName": {
 						required: true,
 						message: '请填写场所名称',
 						trigger: ['blur', 'change']
 					},
-					legalPerson: {
+					"legalPerson": {
 						required: true,
 						message: '请填写法人信息',
 						trigger: ['blur', 'change']
-					}
+					},
+					"legalTel": [{
+							required: true,
+							message: '请填写法人电话',
+							trigger: ['blur', 'change']
+						},
+						{
+							validator: (rule, value, callback) => {
+								return uni.$u.test.mobile(value);
+							},
+							message: '手机号码不正确',
+							trigger: ['change', 'blur']
+						}
+					]
 				},
 				personNum: 1,
 				curSelectSite: {},
@@ -123,6 +136,10 @@
 		onShow() {
 			this.curSelectSite = uni.getStorageSync('siteInfo')
 
+		},
+		onReady() {
+			//onReady 为uni-app支持的生命周期之一
+			this.$refs.form.setRules(this.rules)
 		},
 		mounted() {
 			this.$nextTick(() => {
@@ -238,6 +255,7 @@
 			updatePlaceExt(data) {
 				data['imageUrls'] = this.getImageUrl('imageUrls')
 				data['planImageUrls'] = this.getImageUrl('planImageUrls')
+				data.confirmFlag = 1;
 				// data['imageUrls'] = data['imageUrls'].join('、')
 				// data['planImageUrls'] = data['planImageUrls'].join('、')
 				updatePlaceExtData({
@@ -267,13 +285,20 @@
 				this.personNum++
 			},
 			submit() {
-				const placePractitioner = []
-				this.$refs.formItemRef.forEach(item => {
-					item.form.placeId = this.form.placeId
-					placePractitioner.push(item.form)
+				if (this.personNum > 0) {
+					const placePractitioner = []
+					this.$refs.formItemRef.forEach(item => {
+						item.form.placeId = this.form.placeId
+						placePractitioner.push(item.form)
+					})
+					this.form.placePractitioner = placePractitioner
+				}
+
+				this.$refs.form.validate().then(res => {
+					this.updatePlaceExt(this.form)
+				}).catch(errors => {
+					uni.$u.toast('请完善基本信息')
 				})
-				this.form.placePractitioner = placePractitioner
-				this.updatePlaceExt(this.form)
 			},
 
 			pushPage() {
diff --git a/subPackage/workbench/views/report.vue b/subPackage/workbench/views/report.vue
index b260a27..eb58887 100644
--- a/subPackage/workbench/views/report.vue
+++ b/subPackage/workbench/views/report.vue
@@ -129,6 +129,7 @@
 		onShow() {
 			this.currentRole = uni.getStorageSync("activeRole")
 			this.reportList = []
+			this.pagingParams.current = 1;
 			this.getPageList()
 		},
 		onReachBottom() {
@@ -143,8 +144,8 @@
 					confirmFlag: this.tabStatus
 				}
 				if (this.selectDate.length) {
-					params.startTime = this.selectDate[0],
-						params.endTime = this.selectDate[1]
+					params.startTime = this.selectDate[0]
+					params.endTime = this.selectDate[1]
 				}
 				if (this.houseCode) {
 					params.addressCode = this.houseCode;
diff --git a/subPackage/workbench/views/reportAudit.vue b/subPackage/workbench/views/reportAudit.vue
index be6cbd7..051cf90 100644
--- a/subPackage/workbench/views/reportAudit.vue
+++ b/subPackage/workbench/views/reportAudit.vue
@@ -348,6 +348,14 @@
 				if (type == 1) {
 					this.isShowPeoplePicker = true;
 				} else {
+					if (!this.form.confirmNotion) {
+						uni.showToast({
+							title: "请输入处理情况",
+							icon: "none"
+						})
+						return;
+					}
+
 					let data = {
 						confirmFlag: 3,
 						content: this.form.confirmNotion,
diff --git a/uni_modules/jushi-signature/components/jushi-signature/jushi-signature.vue b/uni_modules/jushi-signature/components/jushi-signature/jushi-signature.vue
index f5ff4d0..bab75cc 100644
--- a/uni_modules/jushi-signature/components/jushi-signature/jushi-signature.vue
+++ b/uni_modules/jushi-signature/components/jushi-signature/jushi-signature.vue
@@ -6,7 +6,7 @@
 				disable-scroll="true" @touchstart="touchstart" @touchmove="touchmove" @touchend="touchend"></canvas>
 		</view>
 		<view class="btn-view">
-			<view class="save" @click="save()">保存</view>
+			<view class="save" @click="save()">确定</view>
 			<view class="clear" @click="clear()">清除</view>
 		</view>
 	</view>

--
Gitblit v1.9.3