From 17ecbaae8d036bb1f59b1d74b153fa9dfe542f3f Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 27 三月 2025 14:17:36 +0800
Subject: [PATCH] 解决h5访客申请bug

---
 h5/pages/visitorApplication/visitorApplication.vue |  704 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 450 insertions(+), 254 deletions(-)

diff --git a/h5/pages/visitorApplication/visitorApplication.vue b/h5/pages/visitorApplication/visitorApplication.vue
index e838995..20b6bd2 100644
--- a/h5/pages/visitorApplication/visitorApplication.vue
+++ b/h5/pages/visitorApplication/visitorApplication.vue
@@ -1,52 +1,40 @@
 <template>
 	<view class="visit">
-		<view class="head">鎷滆淇℃伅</view>
+		<!-- <view class="head">鎷滆淇℃伅</view> -->
 		<view class="list">
-			<!-- <view class="list_item">
-				<view class="list_item_label">
-					<text>琚浜烘墜鏈�</text>
-					<text>*</text>
-				</view>
-				<view class="list_item_content">
-					<input type="number" maxlength="11" v-model="form1.phone1" :placeholder="verify == '0' ? '杈撳叆鎵嬫満鍙峰悗鑷姩鑾峰彇' : '璇疯緭鍏ユ墜鏈哄彿'" @blur="getUser" placeholder-style="color: #999999;" />
-				</view>
-			</view>
 			<view class="list_item">
 				<view class="list_item_label">
-					<text>琚浜哄鍚�</text>
 					<text>*</text>
-				</view>
-				<view class="list_item_content">
-					<input type="text" placeholder="璇疯緭鍏ュ鍚�" v-model="form1.receptMemberName" @blur="getUser" placeholder-style="color: #999999;" />
-				</view>
-			</view> -->
-			<view class="list_item">
-				<view class="list_item_label">
 					<text>琚浜�</text>
-					<text>*</text>
 				</view>
-				<view class="list_item_content" @click="showName = true">
-					<text :style="{color: form1.receptMemberName ? '#000000' : ''}">{{form1.receptMemberName ? form1.receptMemberName : '璇烽�夋嫨'}}</text>
+				<view class="list_item_content" @click="selName">
+					<text :style="{ color: form1.receptMemberName ? '#000000' : '' }">{{
+            form1.receptMemberName ? form1.receptMemberName : "璇烽�夋嫨"
+          }}</text>
 					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
 				</view>
 			</view>
 			<view class="list_item">
 				<view class="list_item_label">
-					<text>鍏ュ巶鏃堕棿</text>
 					<text>*</text>
+					<text>鍏ュ洯鏃堕棿</text>
 				</view>
 				<view class="list_item_content" @click="show4 = true">
-					<text :style="{color: form1.starttime ? '#000000' : ''}">{{form1.starttime ? form1.starttime : '璇烽�夋嫨'}}</text>
+					<text :style="{ color: form1.starttime ? '#000000' : '' }">{{
+            form1.starttime ? form1.starttime : "璇烽�夋嫨"
+          }}</text>
 					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
 				</view>
 			</view>
 			<view class="list_item">
 				<view class="list_item_label">
-					<text>绂诲巶鏃堕棿</text>
 					<text>*</text>
+					<text>绂诲洯鏃堕棿</text>
 				</view>
 				<view class="list_item_content" @click="openLC">
-					<text :style="{color: form1.endtime ? '#000000' : ''}">{{form1.endtime ? form1.endtime : '璇烽�夋嫨'}}</text>
+					<text :style="{ color: form1.endtime ? '#000000' : '' }">{{
+            form1.endtime ? form1.endtime : "璇烽�夋嫨"
+          }}</text>
 					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
 				</view>
 			</view>
@@ -63,73 +51,78 @@
 			<div class="empty"></div>
 			<view class="list_item">
 				<view class="list_item_label">
-					<text>鎷滆浜嬬敱</text>
 					<text>*</text>
+					<text>鎷滆浜嬬敱</text>
 				</view>
 				<view class="list_item_content" @click="showReason = true">
-					<text :style="{color: form1.reason ? '#000000' : ''}">{{form1.reason ? form1.reason : '璇烽�夋嫨鎷滆浜嬬敱'}}</text>
+					<text :style="{ color: form1.reason ? '#000000' : '' }">{{
+            form1.reason ? form1.reason : "璇烽�夋嫨鎷滆浜嬬敱"
+          }}</text>
 					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
 				</view>
 			</view>
-			<view class="list_item">
+			<!-- <view class="list_item">
 				<view class="list_item_label">
-					<text>鏄惁鏂藉伐浣滀笟</text>
-					<text>*</text>
-				</view>
-				<view class="list_item_content">
-					<switch color="#4e99a9" style="transform:scale(0.8)" @change="constructionChange" />
-				</view>
-			</view>
-			<view v-if="form1.type == '1'" class="list_item">
-				<view class="list_item_label">
-					<text>鏂藉伐鍐呭</text>
-					<text>*</text>
-				</view>
-				<view class="list_item_content">
-					<input type="text" v-model="form1.constructionReason" placeholder="璇疯緭鍏ユ柦宸ュ唴瀹�" placeholder-style="color: #999999;" />
-				</view>
-			</view>
-			<view class="list_item">
-				<view class="list_item_label">
-					<text>闅忚杞﹁締</text>
 					<text></text>
+					<text>鏄惁鏂藉伐浣滀笟</text>
+				</view>
+				<view class="list_item_content">
+					<view class="checkbox_wrap">
+						<view class="check_item" @click="constructionChange(1)">
+							<text>鏄�</text>
+							<image v-if="form1.type == 1" src="@/static/checkbox_sel@2x.png" mode=""></image>
+							<image v-if="form1.type == 0" src="@/static/checkbox_disable@3x.png" mode=""></image>
+						</view>
+						<view class="check_item" @click="constructionChange(0)">
+							<text>鍚�</text>
+							<image v-if="form1.type == 0" src="@/static/checkbox_sel@2x.png" mode=""></image>
+							<image v-else src="@/static/checkbox_disable@3x.png" mode=""></image>
+						</view>
+						
+					</view>
+				</view>
+			</view> -->
+			<view v-if="form1.type == 1" class="list_item">
+				<view class="list_item_label">
+					<text></text>
+					<text>鏂藉伐鍐呭</text>
+					<!-- <text>*</text> -->
+				</view>
+				<view class="list_item_content">
+					<input type="text" v-model="form1.constructionReason" placeholder="璇疯緭鍏ユ柦宸ュ唴瀹�"
+						placeholder-style="color: #999999;" />
+				</view>
+			</view>
+			<view class="list_item">
+				<view class="list_item_label">
+					<text></text>
+					<text>闅忚杞﹁締</text>
 				</view>
 				<view class="list_item_content" @click="openInput(1)">
-					<text :style="{color: form1.carNos ? '#000000' : ''}">{{form1.carNos ? form1.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�'}}</text>
+					<text :style="{ color: form1.carNos ? '#000000' : '' }">{{
+            form1.carNos ? form1.carNos : "璇疯緭鍏ヨ溅鐗屽彿鐮�"
+          }}</text>
 					<!-- <input type="text" placeholder="璇疯緭鍏ヨ溅鐗屽彿" v-model="form1.carNos" maxlength="8" placeholder-style="color: #999999;" /> -->
 				</view>
 			</view>
 		</view>
-		<view class="zw"></view>
-		<view class="footer">
-			<view class="footer_btn" @click="onSubmit">鎻愪氦</view>
+		<view class="footer-box">
+			<view class="submit-button" @click="onSubmit">鎻愪氦</view>
 		</view>
-		<!-- 鍏ュ満鏃堕棿 -->
-		<u-datetime-picker
-			:show="show4"
-			:minDate="new Date().getTime()"
-			mode="datetime"
-			@cancel="show4 = false"
-			@confirm="setstarttime"
-		></u-datetime-picker>
-		<!-- 绂诲満鏃堕棿 -->
-		<u-datetime-picker
-			v-if="form1.starttime"
-			:show="show5"
-			:minDate="formatTimeStamp(form1.starttime)"
-			mode="datetime"
-			@cancel="show5 = false"
-			@confirm="setendtime"
-		></u-datetime-picker>
+		<!-- 鍏ュ洯鏃堕棿 -->
+		<u-datetime-picker :show="show4" :minDate="new Date().getTime()" :formatter="formatter" mode="datetime"
+			@cancel="show4 = false" @confirm="setstarttime"></u-datetime-picker>
+		<!-- 绂诲洯鏃堕棿  -->
+		<u-datetime-picker v-if="form1.starttime" :show="show5" :formatter="formatter"
+			:minDate="formatTimeStamp(form1.starttime)" :maxDate="formatTimeStamp(form1.starttime.slice(0,10) + ' 23:59')"
+			mode="datetime" @cancel="show5 = false" @confirm="setendtime"></u-datetime-picker>
 		<!-- 闂ㄧ -->
 		<u-popup :show="show" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom" @close="closeMJ">
 			<view class="menjin">
-				<view class="respondent-title">
-					閫夋嫨闂ㄧ
-				</view>
+				<view class="respondent-title"> 閫夋嫨闂ㄧ </view>
 				<scroll-view scroll-y class="list">
 					<view class="list_item" v-for="(item, index) in columns" :key="index" @click="seleMJ(index)">
-						<text>{{item.name}}</text>
+						<text>{{ item.name }}</text>
 						<image src="@/static/checkbox@2x.png" mode="widthFix" v-show="!item.active"></image>
 						<image src="@/static/checkbo1x_sel@2x.png" mode="widthFix" v-show="item.active"></image>
 					</view>
@@ -141,18 +134,20 @@
 			</view>
 		</u-popup>
 		<!-- 閫夋嫨闅忚浜哄憳 -->
-		<u-popup :show="show1" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom" @close="show1 = false">
+		<u-popup :show="show1" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom"
+			@close="show1 = false">
 			<view class="popup-content">
-				<view class="respondent-title">
-					閫夋嫨闅忚浜哄憳
-				</view>
+				<view class="respondent-title"> 閫夋嫨闅忚浜哄憳 </view>
 				<view class="search-box">
 					<view class="search-box-top">
 						<view class="search-box-top-ipt">
 							<image src="@/static/ic_search@2x.png" mode="widthFix"></image>
 							<input type="text" placeholder="鎼滅储濮撳悕/鎵嬫満鍙�" />
 						</view>
-						<text @click="show1 = false; show3 = true">鏂板</text>
+						<text @click="
+                show1 = false;
+                show3 = true;
+              ">鏂板</text>
 					</view>
 					<view class="search-box-total">鍏�0鏉℃暟鎹�</view>
 				</view>
@@ -181,7 +176,8 @@
 			</view>
 		</u-popup>
 		<!-- 杞﹁締 -->
-		<u-popup :show="show2" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom" @close="show2 = false">
+		<u-popup :show="show2" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom"
+			@close="show2 = false">
 			<view class="addcar">
 				<view class="addcar_head">娣诲姞杞﹁締</view>
 				<view class="addcar_ipt">
@@ -194,7 +190,8 @@
 			</view>
 		</u-popup>
 		<!-- 娣诲姞闅忚浜哄憳 -->
-		<u-popup :show="show3" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom" @close="show3 = false">
+		<u-popup :show="show3" :round="10" :safeAreaInsetBottom="true" :closeable="true" mode="bottom"
+			@close="show3 = false">
 			<view class="adduser">
 				<view class="adduser_head">闅忚浜哄憳</view>
 				<view class="adduser_list">
@@ -204,7 +201,8 @@
 							<text>*</text>
 						</view>
 						<view class="adduser_list_item_ipt">
-							<input type="text" v-model="withUserList.name" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ョ湡瀹炲鍚�" />
+							<input type="text" v-model="withUserList.name" placeholder-style="color: #999999;font-size: 28rpx;"
+								placeholder="璇疯緭鍏ョ湡瀹炲鍚�" />
 						</view>
 					</view>
 					<view class="adduser_list_item">
@@ -213,7 +211,8 @@
 							<text>*</text>
 						</view>
 						<view class="adduser_list_item_ipt">
-							<input type="number" v-model="withUserList.phone" maxlength="11" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+							<input type="number" v-model="withUserList.phone" maxlength="11"
+								placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
 						</view>
 					</view>
 					<view class="adduser_list_item">
@@ -222,7 +221,11 @@
 							<text>*</text>
 						</view>
 						<view class="adduser_list_item_ipt" @click="show6 = true">
-							<text :style="{color: withUserList.idcardTypeName ? '#000000' : ''}">{{withUserList.idcardTypeName ? withUserList.idcardTypeName : '璇烽�夋嫨'}}</text>
+							<text :style="{ color: withUserList.idcardTypeName ? '#000000' : '' }">{{
+                  withUserList.idcardTypeName
+                    ? withUserList.idcardTypeName
+                    : "璇烽�夋嫨"
+                }}</text>
 							<u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon>
 						</view>
 					</view>
@@ -232,25 +235,29 @@
 							<text>*</text>
 						</view>
 						<view class="adduser_list_item_ipt">
-							<input type="text" v-model="withUserList.idcardNo" maxlength="18" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�" />
+							<input type="text" v-model="withUserList.idcardNo" maxlength="18"
+								placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ヨ瘉浠跺彿鐮�" />
 						</view>
 					</view>
 					<view class="adduser_list_item">
 						<view class="adduser_list_item_label">
-							<text>鍏徃</text>
 							<text>*</text>
+							<text>鍏徃</text>
 						</view>
 						<view class="adduser_list_item_ipt">
-							<input type="text" v-model="withUserList.companyName" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ュ叕鍙稿悕绉�" />
+							<input type="text" v-model="withUserList.companyName" placeholder-style="color: #999999;font-size: 28rpx;"
+								placeholder="璇疯緭鍏ュ叕鍙稿悕绉�" />
 						</view>
 					</view>
 					<view class="adduser_list_item">
 						<view class="adduser_list_item_label">
-							<text>闅忚杞﹁締</text>
 							<text></text>
+							<text>闅忚杞﹁締</text>
 						</view>
 						<view class="adduser_list_item_ipt" @click="openInput(2)">
-							<text :style="{color: withUserList.carNos ? '#000000' : ''}">{{withUserList.carNos ? withUserList.carNos : '璇疯緭鍏ヨ溅鐗屽彿鐮�'}}</text>
+							<text :style="{ color: withUserList.carNos ? '#000000' : '' }">{{
+                withUserList.carNos ? withUserList.carNos : "璇疯緭鍏ヨ溅鐗屽彿鐮�"
+              }}</text>
 							<!-- <input type="text" v-model="withUserList.carNos" disabled placeholder-style="color: #999999;font-size: 28rpx;" placeholder="璇疯緭鍏ヨ溅鐗屽彿" /> -->
 						</view>
 					</view>
@@ -291,8 +298,10 @@
 			</view>
 		</u-popup>
 		<u-picker keyName="name" :show="show6" :columns="columns1" @confirm="seleIdcard" @cancel="show6 = false"></u-picker>
-		<u-picker keyName="name" :show="showName" :columns="VisitPoeple" @confirm="selectedName" @cancel="showName = false"></u-picker>
-		<u-picker keyName="title" :show="showReason" :columns="VisitReason" @confirm="selectedReason" @cancel="showReason = false"></u-picker>
+		<u-picker keyName="name" :show="showName" :columns="VisitPoeple" @confirm="selectedName"
+			@cancel="showName = false"></u-picker>
+		<u-picker keyName="title" :show="showReason" :columns="VisitReason" @confirm="selectedReason"
+			@cancel="showReason = false"></u-picker>
 		<!-- <tly-picture-cut ref="tlyPictureCut" :pictureSrc="photoSrc" @createImg="uploadImg"></tly-picture-cut> -->
 		<keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
 		<qf-image-cropper ref="cropper" :width="280" :height="280" :radius="30" @crop="uploadImg"></qf-image-cropper>
@@ -300,16 +309,18 @@
 </template>
 
 <script>
-	import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue";
-	import keyboardInput from "@/components/keyboard-input/keyboard-input.vue";
-	import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue';
-	import { getDaysAfterDate } from '@/utils/utils.js'
+	import tlyPictureCut from "@/components/tly-picture-cut/tlyPictureCut.vue"
+	import keyboardInput from "@/components/keyboard-input/keyboard-input.vue"
+	import QfImageCropper from '@/uni_modules/qf-image-cropper/components/qf-image-cropper/qf-image-cropper.vue'
+	import {
+		getDaysAfterDate
+	} from '@/utils/utils.js'
 	import {
 		getVisitedMember,
 		getSystemDictData,
 		getVisitedVisitReason,
 		createFk
- } from '@/api'
+	} from '@/api'
 	export default {
 		data() {
 			return {
@@ -328,7 +339,16 @@
 				showReason: false,
 				fileList: [],
 				columns1: [
-					[{name: '韬唤璇�', id: 0}, {name: '娓境璇佷欢', id: 1},{name: '鎶ょ収', id: 2}],
+					[{
+						name: '韬唤璇�',
+						id: 0
+					}, {
+						name: '娓境璇佷欢',
+						id: 1
+					}, {
+						name: '鎶ょ収',
+						id: 2
+					}],
 				],
 				VisitReason: [],
 				VisitPoeple: [],
@@ -367,9 +387,13 @@
 				form: {},
 				accessControl: '',
 				verify: ''
-			};
+			}
 		},
-		components: { tlyPictureCut, keyboardInput, QfImageCropper },
+		components: {
+			tlyPictureCut,
+			keyboardInput,
+			QfImageCropper
+		},
 		onLoad(options) {
 			if (options.data) {
 				this.form = JSON.parse(options.data)
@@ -379,33 +403,55 @@
 			// this.getUserValid()
 			this.getUser()
 		},
+		mounted() {
+			this.$eventBus.$on('svisitorAppSel', (option) => {
+				// this.$set(this.param, 'checkUserId', option.id)
+				// this.$set(this.param, 'applyCheckUserId', option.id)
+				// this.$set(this.param, 'checkorName', option.name)
+
+				this.form1.receptMemberName = option.name
+				this.form1.receptMemberId = option.id
+				this.form1.receptMemberDepartment = option.companyName
+			})
+		},
 		methods: {
-			openInput(type) {
-				this.inputType = type
-				this.$refs.keyboard.open()
-			},
-			setPlate(e) {
-				if (this.inputType === 1) {
-					this.form1.carNos = e
-				} else if (this.inputType === 2) {
-					this.withUserList.carNos = e
+			formatter(type, value) {
+				// if (type === 'year') {
+				// 	return `${value}骞碻
+				// }
+				// if (type === 'month') {
+				// 	return `${value}鏈坄
+				// }
+				// if (type === 'day') {
+				// 	return `${value}鏃
+				// }
+				if (type === 'year') {
+					return `${value}骞碻
 				}
-				this.$forceUpdate()
-				this.closeInput()
+				if (type === 'month') {
+					return `${value}鏈坄
+				}
+				if (type === 'day') {
+					return `${value}鏃
+				}
+				if (type === 'hour') {
+					return `${value}鏃禶
+				}
+				if (type === 'minute') {
+					return `${value}鍒哷
+				}
+				// this.$forceUpdate()
+				// this.closeInput()
+				return value
 			},
 			closeInput() {
 				this.$refs.keyboard.close()
-			},
-			constructionChange(e) {
-				console.log(e.detail.value);
-				this.form1.type = Number(e.detail.value)
-				console.log(this.form1.type);
 			},
 			uploadImg(file) {
 				this.$refs.cropper.close()
 				uni.showLoading({ title: '涓婁紶涓�', mask: true });
 				uni.uploadFile({
-					url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
+					url: `${this.$baseUrl}public/api/uploadFtp.do`,
 					filePath: file.tempFilePath,
 					name: 'file',
 					formData: {
@@ -427,7 +473,7 @@
 					item.active = false
 				})
 			},
-			onSubmit() {
+			submit() {
 				if (!this.form1.receptMemberId) return uni.showToast({
 					title: '璇峰~鍐欐湁鏁堢殑璁块棶浜�',
 					icon: 'none'
@@ -453,7 +499,7 @@
 				let data = JSON.parse(JSON.stringify(this.form1))
 				data.starttime = data.starttime + ':00'
 				data.endtime = data.endtime + ':00'
-				createFk({
+				this.$u.api.createFk({
 					...this.form,
 					...data,
 					openid: this.$store.state.openId,
@@ -461,6 +507,160 @@
 				}).then(res => {
 					if (res.code === 200) {
 						uni.reLaunch({
+							url: `/pages/appointmentDetails/appointmentDetails?id=${res.data}`
+						})
+					}
+				})
+			},
+			deleUser(i) {
+				this.personnel.splice(i, 1)
+			},
+			getVisit1() {
+				// 鏄惁闇�瑕佺瓟棰�
+				this.$u.api.getSystemDictData({
+					dictCode: 'SYSTEM',
+					label: 'HEALTH_CARD'
+				}).then(res => {
+					if (res.code === 200) {
+						this.visit = res.data.code
+					}
+				})
+				// 璧峰鏃堕棿鏃堕暱
+				this.$u.api.getSystemDictData({
+					dictCode: 'VISIT_CONFIG',
+					label: 'VALIDATE_VISIT'
+				}).then(res => {
+					if (res.code === 200) {
+						this.day = Number(res.data.code)
+						console.log(this.day)
+						// console.log(nextDay('after', true, this.day))
+					}
+				})
+			},
+			submitUser() {
+				if (!this.withUserList.name) return uni.showToast({
+					title: '濮撳悕涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.withUserList.phone) return uni.showToast({
+					title: '鎵嬫満鍙蜂笉鑳戒负绌�',
+					icon: 'none'
+				})
+				const regExp = /^1[3456789]\d{9}$/;
+				if (!regExp.test(this.withUserList.phone)) return uni.showToast({
+					title: '鎵嬫満鍙锋牸寮忛敊璇�',
+					icon: 'none'
+				})
+				if (!String(this.withUserList.idcardType)) return uni.showToast({
+					title: '璇佷欢绫诲瀷涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.withUserList.idcardNo) return uni.showToast({
+					title: '璇佷欢鍙风爜涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (this.withUserList.idcardType === 0) {
+					const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
+					if (!regex.test(this.withUserList.idcardNo)) return uni.showToast({
+						title: '璇佷欢鍙风爜鏍煎紡閿欒',
+						icon: 'none'
+					})
+				}
+				if (type === 'hour') {
+					return `${value}鏃禶
+				}
+				if (type === 'minute') {
+					return `${value}鍒哷
+				}
+				return value
+			},
+			selName() {
+				uni.navigateTo({
+					url: '/pages/visitorApplication/memberSel'
+				})
+			},
+			openInput(type) {
+				this.inputType = type
+				this.$refs.keyboard.open()
+			},
+			setPlate(e) {
+				if (this.inputType === 1) {
+					this.form1.carNos = e
+				} else if (this.inputType === 2) {
+					this.withUserList.carNos = e
+				}
+				this.$forceUpdate()
+				this.closeInput()
+			},
+			closeInput() {
+				this.$refs.keyboard.close()
+			},
+			constructionChange(value) {
+				this.form1.type = value
+			},
+			uploadImg(file) {
+				this.$refs.cropper.close()
+				uni.showLoading({
+					title: '涓婁紶涓�',
+					mask: true
+				})
+				uni.uploadFile({
+					url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
+					filePath: file.tempFilePath,
+					name: 'file',
+					formData: {
+						folderCode: 'MEMBER_IMG'
+					},
+					success: (uploadFileRes) => {
+						let res = JSON.parse(uploadFileRes.data)
+						this.withUserList.faceImg = res.data.halfPath
+						this.withUserList.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
+					},
+					complete() {
+						uni.hideLoading()
+					}
+				})
+			},
+			closeMJ() {
+				this.show = false
+				this.columns.forEach(item => {
+					item.active = false
+				})
+			},
+			onSubmit() {
+				if (!this.form1.receptMemberId) return uni.showToast({
+					title: '璇峰~鍐欐湁鏁堢殑璁块棶浜�',
+					icon: 'none'
+				})
+				if (!this.form1.starttime) return uni.showToast({
+					title: '鍏ュ洯鏃堕棿涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.form1.endtime) return uni.showToast({
+					title: '绂诲洯鏃堕棿涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.form1.doorSelectName && this.accessControl == 1) return uni.showToast({
+					title: '璁块棶闂ㄧ涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				if (!this.form1.reason) return uni.showToast({
+					title: '鎷滆浜嬬敱涓嶈兘涓虹┖',
+					icon: 'none'
+				})
+				// this.form1.starttime = this.form1.starttime + ':00'
+				// this.form1.endtime = this.form1.endtime + ':00'
+				let data = JSON.parse(JSON.stringify(this.form1))
+				data.starttime = data.starttime + ':00'
+				data.endtime = data.endtime + ':00'
+				createFk({
+					...this.form,
+					...data,
+					openid: this.$store.state.openId,
+					withUserList: this.personnel
+				}).then(res => {
+					if (res.code === 200) {
+						uni.navigateTo({
 							url: `/pages/appointmentDetails/appointmentDetails?id=${res.data}`
 						})
 					}
@@ -499,7 +699,7 @@
 					title: '鎵嬫満鍙蜂笉鑳戒负绌�',
 					icon: 'none'
 				})
-				const regExp = /^1[3456789]\d{9}$/;
+				const regExp = /^1[3456789]\d{9}$/
 				if (!regExp.test(this.withUserList.phone)) return uni.showToast({
 					title: '鎵嬫満鍙锋牸寮忛敊璇�',
 					icon: 'none'
@@ -513,7 +713,7 @@
 					icon: 'none'
 				})
 				if (this.withUserList.idcardType === 0) {
-					const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/;
+					const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dxX]$/
 					if (!regex.test(this.withUserList.idcardNo)) return uni.showToast({
 						title: '璇佷欢鍙风爜鏍煎紡閿欒',
 						icon: 'none'
@@ -555,7 +755,10 @@
 				}
 				uni.chooseImage({
 					success: (chooseImageRes) => {
-						uni.showLoading({ title: '涓婁紶涓�', mask: true });
+						uni.showLoading({
+							title: '涓婁紶涓�',
+							mask: true
+						})
 						for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
 							uni.uploadFile({
 								url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
@@ -576,13 +779,13 @@
 								},
 								complete() {
 									if (i === chooseImageRes.tempFilePaths.length - 1) {
-										uni.hideLoading();
+										uni.hideLoading()
 									}
 								}
-							});
+							})
 						}
 					}
-				});
+				})
 			},
 			seleIdcard(e) {
 				this.withUserList.idcardType = e.value[0].id
@@ -597,7 +800,9 @@
 			},
 			selectedReason(e) {
 				this.form1.reason = e.value[0].title
-				console.log(e.value[0].title);
+				this.form1.type = e.value[0].constructionType
+				console.log(e.value[0].title)
+				console.log(e.value[0].constructionType)
 				this.showReason = false
 			},
 			submitCart() {
@@ -632,7 +837,7 @@
 				this.show = false
 			},
 			seleMJ(i) {
-				this.columns.forEach((item,index) => {
+				this.columns.forEach((item, index) => {
 					if (index === i) {
 						item.active = !item.active
 					}
@@ -640,24 +845,24 @@
 			},
 			openLC() {
 				if (!this.form1.starttime) return uni.showToast({
-					title: '璇峰厛閫夋嫨鍏ュ巶鏃堕棿',
+					title: '璇峰厛閫夋嫨鍏ュ洯鏃堕棿',
 					icon: 'none'
 				})
 				this.show5 = true
 			},
 			setstarttime(e) {
-				this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
+				this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
 				// this.maxTime = getDaysAfterDate(uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM'), this.day)
 				this.maxTime = this.form1.starttime
-				console.log(this.form1.starttime);
+				console.log(this.form1.starttime.slice(0, 10))
 				this.show4 = false
 			},
 			setendtime(e) {
-				this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
+				this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
 				this.show5 = false
 			},
 			formatTimeStamp(date) {
-			    return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g,'/')}`))
+				return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g, '/')}`))
 			},
 			// 鏌ヨ鐢ㄦ埛
 			getUser() {
@@ -688,7 +893,9 @@
 					if (res.code === 200) {
 						this.accessControl = res.data.code
 						if (res.data.code === '1') {
-							this.$u.api.deviceRoleList({ type: 1 })
+							this.$u.api.deviceRoleList({
+									type: 1
+								})
 								.then(device => {
 									if (device.code === 200) {
 										if (device.data.length > 0) {
@@ -711,8 +918,9 @@
 </script>
 <style>
 	page {
-		background-color: #F7F7F7 !important;
+		background-color: #f7f7f7 !important;
 	}
+
 	.u-upload__button {
 		margin: 0 !important;
 	}
@@ -720,37 +928,44 @@
 <style lang="scss" scoped>
 	.visit {
 		width: 100%;
+
 		.menjin {
 			width: 100%;
+
 			.respondent-title {
 				width: 100%;
 				height: 100rpx;
 				line-height: 100rpx;
 				text-align: center;
 				font-size: 32rpx;
-				font-weight: 500;
+				font-weight: 600;
 				color: #222222;
 			}
+
 			.list {
 				width: 100%;
 				height: 400rpx;
 				display: flex;
 				flex-direction: column;
+
 				.list_item {
 					width: 100%;
 					display: flex;
 					align-items: center;
 					justify-content: space-between;
+
 					text {
 						font-size: 28rpx;
 						color: #000000;
 					}
+
 					image {
 						width: 30rpx;
 						height: 30rpx;
 					}
 				}
 			}
+
 			.menjin_footer {
 				width: 100%;
 				padding: 30rpx;
@@ -758,6 +973,7 @@
 				display: flex;
 				align-items: center;
 				justify-content: space-between;
+
 				.menjin_footer_item {
 					flex: 1;
 					height: 80rpx;
@@ -765,81 +981,90 @@
 					align-items: center;
 					justify-content: center;
 					border-radius: 10rpx;
-					background-color: #025EEF;
+					background-color: $uni-color-primary;
 					color: #ffffff;
 					font-size: 26rpx;
 					margin-left: 30rpx;
+
 					&:first-child {
 						margin-left: 0 !important;
 					}
 				}
 			}
 		}
+
 		.adduser {
 			padding: 30rpx;
 			width: 100%;
 			box-sizing: border-box;
+
 			.adduser_head {
 				width: 100%;
 				text-align: center;
 				font-size: 32rpx;
 				font-family: PingFangSC, PingFang SC;
-				font-weight: 500;
+				font-weight: 600;
 				color: #222222;
 			}
+
 			.adduser_list {
 				width: 100%;
 				margin-top: 40rpx;
+
 				.adduser_list_item {
 					width: 100%;
 					padding: 24rpx 0;
 					box-sizing: border-box;
-					border-bottom: 1rpx solid #E5E5E5;
+					border-bottom: 1rpx solid #e5e5e5;
 					display: flex;
 					align-items: center;
 					justify-content: space-between;
+
 					.adduser_list_item_label1 {
 						flex: 1;
 						display: flex;
 						flex-direction: column;
+
 						.cc {
 							font-size: 30rpx;
 							font-family: PingFangSC, PingFang SC;
 							font-weight: 400;
 							color: #222222;
 							margin-bottom: 20rpx;
+
 							b {
 								font-size: 30rpx;
 								font-family: PingFangSC, PingFang SC;
 								font-weight: 400;
-								color: #E0312A;
+								color: #e0312a;
 							}
 						}
+
 						.aa {
 							font-size: 24rpx;
 							font-weight: 400;
 							color: #999999;
 						}
 					}
+
 					.adduser_list_item_label {
 						flex-shrink: 0;
 						display: flex;
 						align-items: center;
+						font-family: PingFangSC, PingFang SC;
+						font-size: 30rpx;
+
 						text {
 							&:nth-child(1) {
-								font-size: 30rpx;
-								font-family: PingFangSC, PingFang SC;
-								font-weight: 400;
-								color: #222222;
+								color: #e0312a;
 							}
+
 							&:nth-child(2) {
-								font-size: 30rpx;
-								font-family: PingFangSC, PingFang SC;
-								font-weight: 400;
-								color: #E0312A;
+								color: #222222;
 							}
 						}
 					}
+
 					.adduser_list_item_ipt {
 						flex-shrink: 0;
 						text-align: right;
@@ -847,10 +1072,11 @@
 						font-family: PingFangSC, PingFang SC;
 						font-weight: 400;
 						color: #333333;
-						margin-left: 30rpx;	
+						margin-left: 30rpx;
 						display: flex;
 						align-items: center;
 						justify-content: flex-end;
+
 						.adduser_list_item_ipt1_upload {
 							width: 120rpx;
 							height: 120rpx;
@@ -859,11 +1085,13 @@
 							align-items: center;
 							justify-content: center;
 							overflow: hidden;
+
 							image {
 								width: 100%;
 								height: 100%;
 							}
 						}
+
 						text {
 							font-size: 28rpx;
 							font-family: PingFangSC, PingFang SC;
@@ -873,16 +1101,19 @@
 					}
 				}
 			}
+
 			.adduser_footer {
 				width: 100%;
 				margin-top: 60rpx;
 				display: flex;
 				align-items: center;
 				justify-content: space-between;
+
 				.t {
 					background: #4d99a9 !important;
 					color: #ffffff !important;
 				}
+
 				.adduser_footer_item {
 					width: 336rpx;
 					height: 88rpx;
@@ -895,32 +1126,36 @@
 					font-weight: 400;
 					color: #4d99a9;
 					margin-right: 18rpx;
+
 					&:last-child {
 						margin: 0 !important;
 					}
 				}
 			}
 		}
-		
+
 		.addcar {
 			padding: 30rpx;
 			width: 100%;
 			box-sizing: border-box;
+
 			.addcar_head {
 				text-align: center;
 				font-size: 32rpx;
 				font-family: PingFangSC, PingFang SC;
-				font-weight: 500;
+				font-weight: 600;
 				color: #222222;
 			}
+
 			.addcar_ipt {
 				width: 100%;
 				height: 100rpx;
 				line-height: 100rpx;
 				text-align: center;
-				background: #F7F7F7;
+				background: #f7f7f7;
 				border-radius: 50rpx;
 				margin-top: 60rpx;
+
 				input {
 					width: 100%;
 					height: 100%;
@@ -930,85 +1165,97 @@
 					text-align: center;
 				}
 			}
+
 			.addcar_footer {
 				width: 100%;
 				display: flex;
 				align-items: center;
 				justify-content: space-between;
 				margin-top: 60rpx;
+
 				.t {
 					background: #4d99a9 !important;
 					color: #ffffff !important;
 				}
+
 				.addcar_footer_item {
 					flex: 1;
 					height: 88rpx;
 					line-height: 88rpx;
 					font-size: 32rpx;
 					font-weight: 400;
-					color: #025EEF;
+					color: #025eef;
 					text-align: center;
 					border-radius: 44rpx;
-					border: 1rpx solid #025EEF;
+					border: 1rpx solid #025eef;
 					margin-right: 18rpx;
+
 					&:last-child {
 						margin-right: 0 !important;
 					}
 				}
 			}
 		}
-		
+
 		.popup-content {
 			padding: 30rpx 30rpx 0 30rpx;
 			overflow: hidden;
 			display: flex;
 			flex-flow: column;
+
 			.respondent-title {
 				width: 100%;
 				text-align: center;
 				font-size: 32rpx;
-				font-weight: 500;
+				font-weight: 600;
 				color: #222222;
 			}
+
 			.search-box {
 				width: 100%;
 				margin-top: 40rpx;
+
 				.search-box-top {
 					width: 100%;
 					height: 68rpx;
 					display: flex;
 					align-items: center;
+
 					.search-box-top-ipt {
 						flex: 1;
 						height: 100%;
 						padding: 0 30rpx;
 						box-sizing: border-box;
-						background: #F7F7F7;
+						background: #f7f7f7;
 						border-radius: 4rpx;
 						display: flex;
 						align-items: center;
+
 						image {
 							width: 36rpx;
 							height: 36rpx;
 							flex-shrink: 0;
 							margin-right: 22rpx;
 						}
+
 						input {
 							flex: 1;
 							height: 100%;
 							font-size: 26rpx;
 							font-weight: 400;
-							color: #B2B2B2;
+							color: #b2b2b2;
 						}
 					}
+
 					text {
 						flex-shrink: 0;
 						margin-left: 30rpx;
 						font-size: 28rpx;
 						font-weight: 400;
-						color: #025EEF;
+						color: #025eef;
 					}
 				}
+
 				.search-box-total {
 					font-size: 26rpx;
 					font-weight: 400;
@@ -1016,27 +1263,32 @@
 					margin-top: 24rpx;
 				}
 			}
+
 			.list {
 				width: 100%;
 				height: 800rpx;
 				margin-top: 30rpx;
 				padding: 0 !important;
+
 				.item {
 					width: 100%;
 					height: 102rpx;
 					display: flex;
 					align-items: center;
-					border-bottom: 1rpx solid #E5E5E5;
+					border-bottom: 1rpx solid #e5e5e5;
+
 					.item_a {
 						flex-shrink: 0;
 						width: 36rpx;
 						height: 36rpx;
 						margin-right: 24rpx;
+
 						image {
 							width: 100%;
 							height: 100%;
 						}
 					}
+
 					.item_b {
 						flex-shrink: 0;
 						width: 80rpx;
@@ -1046,15 +1298,18 @@
 						justify-content: center;
 						overflow: hidden;
 						margin-right: 24rpx;
+
 						image {
 							width: 100%;
 							height: 100%;
 						}
 					}
+
 					.item_c {
 						flex: 1;
 						display: flex;
 						align-items: center;
+
 						text {
 							&:nth-child(1) {
 								font-size: 30rpx;
@@ -1062,6 +1317,7 @@
 								font-weight: 400;
 								color: #222222;
 							}
+
 							&:nth-child(2) {
 								font-size: 20rpx;
 								font-family: PingFangSC, PingFang SC;
@@ -1069,13 +1325,14 @@
 								color: #999999;
 								padding: 1rpx 4rpx;
 								box-sizing: border-box;
-								background-color: #EEEEEE;
+								background-color: #eeeeee;
 								margin-left: 12rpx;
 							}
 						}
 					}
 				}
 			}
+
 			.footer1 {
 				width: 100%;
 				height: 100rpx;
@@ -1084,16 +1341,19 @@
 				justify-content: space-between;
 				padding: 14rpx 0 0 0;
 				box-sizing: border-box;
+
 				.footer_left {
 					flex: 1;
 					display: flex;
 					flex-direction: column;
+
 					.footer_left_a {
 						font-size: 26rpx;
 						font-family: PingFangSC, PingFang SC;
 						font-weight: 400;
 						color: #333333;
 					}
+
 					.footer_left_b {
 						font-size: 24rpx;
 						font-family: PingFangSC, PingFang SC;
@@ -1101,21 +1361,44 @@
 						color: #999999;
 					}
 				}
+
 				.footer_btn {
 					flex-shrink: 0;
 					width: 216rpx;
 					height: 72rpx;
 					line-height: 72rpx;
 					text-align: center;
-					background: #025EEF;
+					background: #025eef;
 					border-radius: 8rpx;
 					font-size: 28rpx;
-					font-weight: 500;
-					color: #FFFFFF;
+					font-weight: 600;
+					color: #ffffff;
 				}
 			}
 		}
-		    
+		
+		.footer-box {
+			width: 100%;
+			position: fixed;
+			bottom: 30rpx;
+			height: 80rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			.submit-button {
+				width: calc(100% - 60rpx);
+				height: 88rpx;
+				line-height: 88rpx;
+				background: #4d99a8;
+				border-radius: 4rpx;
+				color: #fff;
+				border-radius: 44rpx;
+				font-size: 32rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+		}
 
 		.head {
 			width: 100%;
@@ -1131,12 +1414,14 @@
 			padding: 0 30rpx;
 			box-sizing: border-box;
 			background-color: #ffffff;
-			.empty{
+
+			.empty {
 				width: 750rpx;
 				height: 20rpx;
 				background-color: #f7f7f7;
 				margin: 0 -30rpx;
 			}
+
 			.list_item {
 				width: 100%;
 				// min-height: 98rpx;
@@ -1145,7 +1430,7 @@
 				display: flex;
 				align-items: center;
 				justify-content: space-between;
-				border-bottom: 1rpx solid #E5E5E5;
+				border-bottom: 1rpx solid #e5e5e5;
 
 				.list_item_label {
 					flex-shrink: 0;
@@ -1156,13 +1441,13 @@
 						&:nth-child(1) {
 							font-size: 30rpx;
 							font-weight: 400;
-							color: #222222;
+							color: #e42d2d;
 						}
 
 						&:nth-child(2) {
 							font-size: 30rpx;
 							font-weight: 400;
-							color: #E42D2D;
+							color: #222222;
 						}
 					}
 				}
@@ -1191,95 +1476,6 @@
 						color: #222222;
 					}
 				}
-			}
-		}
-
-		.cate {
-			width: 100%;
-			padding: 30rpx;
-			box-sizing: border-box;
-			background-color: #ffffff;
-			.cate_head {
-				font-size: 32rpx;
-				font-family: PingFangSC, PingFang SC;
-				font-weight: 500;
-				color: #222222;
-			}
-
-			.cate_list {
-				width: 100%;
-				display: flex;
-				align-items: center;
-				flex-wrap: wrap;
-				margin-top: 30rpx;
-
-				.cate_list_item {
-					height: 64rpx;
-					padding: 0 20rpx;
-					box-sizing: border-box;
-					background-color: #EEEEEE;
-					border-radius: 4rpx;
-					margin-right: 20rpx;
-					margin-bottom: 20rpx;
-					display: flex;
-					align-items: center;
-
-					&:last-child {
-						margin-right: 0 !important;
-					}
-
-					text {
-						font-size: 26rpx;
-						font-family: PingFangSC, PingFang SC;
-						font-weight: 400;
-						color: #333333;
-						margin-right: 30rpx;
-					}
-				}
-			}
-
-			.cate_add {
-				width: 200rpx;
-				height: 50rpx;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				background: rgba(2, 94, 239, 0);
-				border-radius: 25rpx;
-				border: 1rpx solid #4c99a8;
-				font-size: 22rpx;
-				font-family: PingFangSC, PingFang SC;
-				font-weight: 400;
-				margin-top: 20rpx;
-				color: #4c99a8;
-				margin: 0 auto;
-			}
-		}
-
-		.zw {
-			width: 100%;
-			height: calc(env(safe-area-inset-bottom) + 118rpx);
-		}
-
-		.footer {
-			width: 100%;
-			padding: 0 30rpx;
-			padding-bottom: env(safe-area-inset-bottom);
-			box-sizing: border-box;
-			position: fixed;
-			left: 0;
-			bottom: 30rpx;
-
-			.footer_btn {
-				width: 100%;
-				height: 88rpx;
-				line-height: 88rpx;
-				text-align: center;
-				background: #4c99a8;
-				border-radius: 44rpx;
-				font-size: 32rpx;
-				font-weight: 500;
-				color: #FFFFFF;
 			}
 		}
 	}

--
Gitblit v1.9.3