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 | 778 ++++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 498 insertions(+), 280 deletions(-)
diff --git a/h5/pages/visitorApplication/visitorApplication.vue b/h5/pages/visitorApplication/visitorApplication.vue
index d143805..20b6bd2 100644
--- a/h5/pages/visitorApplication/visitorApplication.vue
+++ b/h5/pages/visitorApplication/visitorApplication.vue
@@ -1,127 +1,128 @@
<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>
+ <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 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>
- </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>
+ <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>
- <view class="list_item" v-if="accessControl === '1'" @click="show = true">
+ <!-- <view class="list_item" v-if="accessControl === '1'" @click="show = true">
<view class="list_item_label">
<text>璁块棶闂ㄧ</text>
<text>*</text>
</view>
- <!-- @click="show6 = true" -->
<view class="list_item_content">
<text :style="{color: form1.doorSelectName ? '#000000' : ''}">{{form1.doorSelectName ? form1.doorSelectName : '璇烽�夋嫨'}}</text>
<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
</view>
- </view>
+ </view> -->
+ <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>
+ <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>
</view>
<view class="list_item_content">
- <input type="text" v-model="form1.reason" placeholder="璇疯緭鍏ユ潵璁夸簨鐢�" placeholder-style="color: #999999;" />
+ <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>
+ <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="cate">
- <view class="cate_head">杞﹁締淇℃伅</view>
- <view class="cate_list">
- <view class="cate_list_item" v-for="(item, index) in cars" :key="index">
- <text>{{item}}</text>
- <u-icon name="close" color="#999999" size="20" @click="deleCars(index)"></u-icon>
- </view>
- </view>
- <view class="cate_add" @click="show2 = true">+娣诲姞杞﹁締</view>
- </view> -->
- <view class="cate">
- <view class="cate_head">闅忚浜哄憳淇℃伅</view>
- <view class="cate_list">
- <view class="cate_list_item" v-for="(item,index) in personnel" :key="index">
- <text>{{item.name}}</text>
- <u-icon name="close" color="#999999" size="20" @click="deleUser(index)"></u-icon>
- </view>
- </view>
- <view class="cate_add" @click="show3 = true">+娣诲姞闅忚浜哄憳</view>
+ <view class="footer-box">
+ <view class="submit-button" @click="onSubmit">鎻愪氦</view>
</view>
- <view class="zw"></view>
- <view class="footer">
- <view class="footer_btn" @click="submit">鎻愪氦</view>
- </view>
- <!-- 鍏ュ満鏃堕棿 -->
- <u-datetime-picker
- :show="show4"
- :minDate="new Date().getTime()"
- mode="datetime"
- @cancel="show4 = false"
- @confirm="setinDate"
- ></u-datetime-picker>
- <!-- 绂诲満鏃堕棿 -->
- <u-datetime-picker
- v-if="form1.starttime"
- :show="show5"
- :minDate="formatTimeStamp(form1.starttime)"
- :maxDate="formatTimeStamp(maxTime)"
- mode="datetime"
- @cancel="show5 = false"
- @confirm="setoutDate"
- ></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>
@@ -133,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>
@@ -173,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">
@@ -186,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">
@@ -196,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">
@@ -205,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">
@@ -214,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>
@@ -224,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>
@@ -283,6 +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>
<!-- <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>
@@ -290,16 +309,25 @@
</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'
export default {
data() {
return {
photoSrc: '',
type: '',
inputType: '',
+ showName: false,
show: false,
show1: false,
show2: false,
@@ -308,8 +336,22 @@
show5: false,
show6: false,
show7: false,
+ showReason: false,
fileList: [],
- columns1: [[{name: '韬唤璇�', id: 0}, {name: '娓境璇佷欢', id: 1},{name: '鎶ょ収', id: 2}]],
+ columns1: [
+ [{
+ name: '韬唤璇�',
+ id: 0
+ }, {
+ name: '娓境璇佷欢',
+ id: 1
+ }, {
+ name: '鎶ょ収',
+ id: 2
+ }],
+ ],
+ VisitReason: [],
+ VisitPoeple: [],
columns: [],
cars: [],
day: null,
@@ -326,7 +368,8 @@
doors: '',
doorSelectName: '',
reason: '',
- carNos: ''
+ carNos: '',
+ type: 0
},
withUserList: {
name: '',
@@ -344,30 +387,62 @@
form: {},
accessControl: '',
verify: ''
- };
+ }
},
- components: { tlyPictureCut, keyboardInput, QfImageCropper },
+ components: {
+ tlyPictureCut,
+ keyboardInput,
+ QfImageCropper
+ },
onLoad(options) {
if (options.data) {
this.form = JSON.parse(options.data)
}
- this.getvisit()
- this.getVisit1()
- this.getUserValid()
+ // this.getvisit()
+ // this.getVisit1()
+ // 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()
@@ -457,6 +532,7 @@
}).then(res => {
if (res.code === 200) {
this.day = Number(res.data.code)
+ console.log(this.day)
// console.log(nextDay('after', true, this.day))
}
})
@@ -485,6 +561,159 @@
})
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}`
+ })
+ }
+ })
+ },
+ 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
+ }
+ })
+ // 璧峰鏃堕棿鏃堕暱
+ getSystemDictData({
+ dictCode: 'VISIT_CONFIG',
+ label: 'VALIDATE_VISIT'
+ }).then(res => {
+ if (res.code === 200) {
+ this.day = Number(res.data.code)
+ // 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'
@@ -526,15 +755,13 @@
}
uni.chooseImage({
success: (chooseImageRes) => {
- // if (type === 'faceImg') {
- // this.photoSrc = chooseImageRes.tempFilePaths[0];
- // this.$refs.tlyPictureCut.showPop();
- // return
- // }
- uni.showLoading({ title: '涓婁紶涓�', mask: true });
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ })
for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
uni.uploadFile({
- url: `${this.$baseUrl}public/api/uploadFtp.do`,
+ url: `${this.$baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`,
filePath: chooseImageRes.tempFilePaths[i],
name: 'file',
formData: {
@@ -552,18 +779,31 @@
},
complete() {
if (i === chooseImageRes.tempFilePaths.length - 1) {
- uni.hideLoading();
+ uni.hideLoading()
}
}
- });
+ })
}
}
- });
+ })
},
seleIdcard(e) {
this.withUserList.idcardType = e.value[0].id
this.withUserList.idcardTypeName = e.value[0].name
this.show6 = false
+ },
+ selectedName(e) {
+ this.form1.receptMemberName = e.value[0].name
+ this.form1.receptMemberId = e.value[0].id
+ this.form1.receptMemberDepartment = e.value[0].companyId
+ this.showName = false
+ },
+ selectedReason(e) {
+ this.form1.reason = 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() {
if (!this.carName) return uni.showToast({
@@ -597,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
}
@@ -605,53 +845,37 @@
},
openLC() {
if (!this.form1.starttime) return uni.showToast({
- title: '璇峰厛閫夋嫨鍏ュ巶鏃堕棿',
+ title: '璇峰厛閫夋嫨鍏ュ洯鏃堕棿',
icon: 'none'
})
this.show5 = true
},
- setinDate(e) {
- this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
- this.maxTime = getDaysAfterDate(uni.$u.timeFormat(e.value, 'yyyy-mm-dd'), this.day)
+ setstarttime(e) {
+ 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.slice(0, 10))
this.show4 = false
},
- setoutDate(e) {
- this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
+ setendtime(e) {
+ 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() {
- if (this.verify === '0') {
- if (this.form1.phone1) {
- this.$u.api.getVisitedMember({
- mobile: this.form1.phone1
- }).then(res => {
- if (res.code === 200) {
- this.form1.receptMemberId = res.data.id
- this.form1.receptMemberName = res.data.name
- }
- })
- }
- } else {
- if (this.form1.phone1 && this.form1.receptMemberName) {
- this.$u.api.getVisitedMember({
- mobile: this.form1.phone1,
- name: this.form1.receptMemberName
- }).then(res => {
- if (res.code === 200) {
- this.form1.receptMemberId = res.data.id
- this.form1.receptMemberName = res.data.name
- }
- })
- }
- }
+ getVisitedMember().then(res => {
+ this.VisitPoeple = [res.data || []]
+ })
+ getVisitedVisitReason({}).then(res => {
+ this.VisitReason = [res.data || []]
+ })
},
// 琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛�
getUserValid() {
- this.$u.api.getSystemDictData({
+ getSystemDictData({
dictCode: 'SYSTEM',
label: 'BEVISITED_USER_VALID'
}).then(res => {
@@ -662,14 +886,16 @@
},
// 鑾峰彇鏄惁闇�瑕侀�夋嫨闂ㄧ/闂ㄧ鍒楄〃
getvisit() {
- this.$u.api.getSystemDictData({
+ getSystemDictData({
dictCode: 'SYSTEM',
label: 'SELECT_DOORS_VISIT_REQUIRED'
}).then(res => {
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) {
@@ -692,8 +918,9 @@
</script>
<style>
page {
- background-color: #F7F7F7 !important;
+ background-color: #f7f7f7 !important;
}
+
.u-upload__button {
margin: 0 !important;
}
@@ -701,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;
@@ -739,6 +973,7 @@
display: flex;
align-items: center;
justify-content: space-between;
+
.menjin_footer_item {
flex: 1;
height: 80rpx;
@@ -746,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;
@@ -828,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;
@@ -840,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;
@@ -854,54 +1101,61 @@
}
}
}
+
.adduser_footer {
width: 100%;
margin-top: 60rpx;
display: flex;
align-items: center;
justify-content: space-between;
+
.t {
- background: #025EEF !important;
+ background: #4d99a9 !important;
color: #ffffff !important;
}
+
.adduser_footer_item {
width: 336rpx;
height: 88rpx;
line-height: 88rpx;
text-align: center;
border-radius: 44rpx;
- border: 1rpx solid #025EEF;
+ border: 1rpx solid #4d99a9;
font-size: 32rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 400;
- color: #025EEF;
+ 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%;
@@ -911,85 +1165,97 @@
text-align: center;
}
}
+
.addcar_footer {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 60rpx;
+
.t {
- background: #025EEF !important;
+ 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;
@@ -997,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;
@@ -1027,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;
@@ -1043,6 +1317,7 @@
font-weight: 400;
color: #222222;
}
+
&:nth-child(2) {
font-size: 20rpx;
font-family: PingFangSC, PingFang SC;
@@ -1050,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;
@@ -1065,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;
@@ -1082,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%;
@@ -1113,6 +1415,13 @@
box-sizing: border-box;
background-color: #ffffff;
+ .empty {
+ width: 750rpx;
+ height: 20rpx;
+ background-color: #f7f7f7;
+ margin: 0 -30rpx;
+ }
+
.list_item {
width: 100%;
// min-height: 98rpx;
@@ -1121,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;
@@ -1132,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;
}
}
}
@@ -1167,97 +1476,6 @@
color: #222222;
}
}
- }
- }
-
- .cate {
- width: 100%;
- padding: 30rpx;
- box-sizing: border-box;
- background-color: #ffffff;
- margin-top: 20rpx;
-
- .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 #025EEF;
- font-size: 22rpx;
- font-family: PingFangSC, PingFang SC;
- font-weight: 400;
- margin-top: 20rpx;
- color: #025EEF;
- 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: #025EEF;
- border-radius: 44rpx;
- font-size: 32rpx;
- font-weight: 500;
- color: #FFFFFF;
}
}
}
--
Gitblit v1.9.3