<template> 
 | 
    <view class="visit"> 
 | 
        <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="请输入手机号" @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="show4 = true"> 
 | 
                    <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> 
 | 
                </view> 
 | 
                <view class="list_item_content" @click="show5 = true"> 
 | 
                    <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_label"> 
 | 
                    <text>访问门禁</text> 
 | 
                    <text>*</text> 
 | 
                </view> 
 | 
                <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 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> 
 | 
            </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.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> 
 | 
        <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 
 | 
            :show="show5" 
 | 
            :minDate="new Date().getTime()" 
 | 
            mode="datetime" 
 | 
            @cancel="show5 = false" 
 | 
            @confirm="setoutDate" 
 | 
        ></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> 
 | 
                <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> 
 | 
                        <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> 
 | 
                </scroll-view> 
 | 
                <view class="menjin_footer"> 
 | 
                    <view class="menjin_footer_item" @click="closeMJ">取消</view> 
 | 
                    <view class="menjin_footer_item" @click="submitMJ">确认</view> 
 | 
                </view> 
 | 
            </view> 
 | 
        </u-popup> 
 | 
        <!-- 选择随行人员 --> 
 | 
        <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="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> 
 | 
                    </view> 
 | 
                    <view class="search-box-total">共0条数据</view> 
 | 
                </view> 
 | 
                <scroll-view scroll-y class="list"> 
 | 
                    <view class="item" v-for="(item, index) in 8" :key="index"> 
 | 
                        <view class="item_a"> 
 | 
                            <!-- <image src="@/static/checkbox.png" mode="widthFix" v-if="!item.active" /> --> 
 | 
                            <image src="@/static/checkbox_sel@2x.png" mode="widthFix" /> 
 | 
                        </view> 
 | 
                        <view class="item_b"> 
 | 
                            <image src="@/static/ic_mima@2x.png" mode="widthFix" /> 
 | 
                        </view> 
 | 
                        <view class="item_c"> 
 | 
                            <text>用户名</text> 
 | 
                            <text>已拉黑</text> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                </scroll-view> 
 | 
                <view class="footer1"> 
 | 
                    <view class="footer_left"> 
 | 
                        <text class="footer_left_a">已选择:0人</text> 
 | 
                        <text class="footer_left_b">李伟;</text> 
 | 
                    </view> 
 | 
                    <view class="footer_btn">确认 0/0</view> 
 | 
                </view> 
 | 
            </view> 
 | 
        </u-popup> 
 | 
        <!-- 车辆 --> 
 | 
        <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"> 
 | 
                    <input type="text" v-model="carName" placeholder="请输入车牌号" /> 
 | 
                </view> 
 | 
                <view class="addcar_footer"> 
 | 
                    <view class="addcar_footer_item" @click="show2 = false">取消</view> 
 | 
                    <view class="addcar_footer_item t" @click="submitCart">提交</view> 
 | 
                </view> 
 | 
            </view> 
 | 
        </u-popup> 
 | 
        <!-- 添加随行人员 --> 
 | 
        <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"> 
 | 
                    <view class="adduser_list_item"> 
 | 
                        <view class="adduser_list_item_label"> 
 | 
                            <text>姓名</text> 
 | 
                            <text>*</text> 
 | 
                        </view> 
 | 
                        <view class="adduser_list_item_ipt"> 
 | 
                            <input type="text" v-model="withUserList.name" 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> 
 | 
                        </view> 
 | 
                        <view class="adduser_list_item_ipt"> 
 | 
                            <input type="number" v-model="withUserList.phone" maxlength="11" 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> 
 | 
                        </view> 
 | 
                        <view class="adduser_list_item_ipt" @click="show6 = true"> 
 | 
                            <text :style="{color: withUserList.idcardTypeName ? '#000000' : ''}">{{withUserList.idcardTypeName ? withUserList.idcardTypeName : '请选择'}}</text> 
 | 
                            <u-icon name="arrow-right" color="#CCCCCC" size="16"></u-icon> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="adduser_list_item"> 
 | 
                        <view class="adduser_list_item_label"> 
 | 
                            <text>证件号码</text> 
 | 
                            <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="请输入证件号码" /> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="adduser_list_item"> 
 | 
                        <view class="adduser_list_item_label"> 
 | 
                            <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="请输入公司名称" /> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="adduser_list_item"> 
 | 
                        <view class="adduser_list_item_label"> 
 | 
                            <text>随行车辆</text> 
 | 
                            <text></text> 
 | 
                        </view> 
 | 
                        <view class="adduser_list_item_ipt"> 
 | 
                            <input type="text" v-model="withUserList.carNos" placeholder-style="color: #999999;font-size: 28rpx;" placeholder="请输入车牌号" /> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="adduser_list_item"> 
 | 
                        <view class="adduser_list_item_label1"> 
 | 
                            <text class="cc">人脸照片<b>*</b></text> 
 | 
                            <text class="aa">1、请提供五官清晰,人脸居中的正面人脸免冠照片;</text> 
 | 
                            <text class="aa">2、照片无逆光、无PS、无过度美颜处理;</text> 
 | 
                        </view> 
 | 
                        <view class="adduser_list_item_ipt"> 
 | 
                            <view class="adduser_list_item_ipt1_upload" @click="upload('faceImg')" v-if="!withUserList.faceImgUrl"> 
 | 
                                <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> 
 | 
                            </view> 
 | 
                            <view class="adduser_list_item_ipt1_upload" @click="upload('faceImg')" v-else> 
 | 
                                <image :src="withUserList.faceImgUrl" mode="widthFix"></image> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                    <view class="adduser_list_item"> 
 | 
                        <view class="adduser_list_item_label"> 
 | 
                            <text>健康证照片</text> 
 | 
                            <text v-if="visit === '1'">*</text> 
 | 
                        </view> 
 | 
                        <view class="adduser_list_item_ipt"> 
 | 
                            <view class="adduser_list_item_ipt1_upload" @click="upload('imgurl')" v-if="!withUserList.imgurlUrl"> 
 | 
                                <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> 
 | 
                            </view> 
 | 
                            <view class="adduser_list_item_ipt1_upload" @click="upload('imgurl')" v-else> 
 | 
                                <image :src="withUserList.imgurlUrl" mode="widthFix"></image> 
 | 
                            </view> 
 | 
                        </view> 
 | 
                    </view> 
 | 
                </view> 
 | 
                <view class="adduser_footer"> 
 | 
                    <view class="adduser_footer_item" @click="show3 = false">取消</view> 
 | 
                    <view class="adduser_footer_item t" @click="submitUser">提交</view> 
 | 
                </view> 
 | 
            </view> 
 | 
        </u-popup> 
 | 
        <u-picker keyName="name" :show="show6" :columns="columns1" @confirm="seleIdcard" @cancel="show6 = false"></u-picker> 
 | 
    </view> 
 | 
</template> 
 | 
  
 | 
<script> 
 | 
    export default { 
 | 
        data() { 
 | 
            return { 
 | 
                show: false, 
 | 
                show1: false, 
 | 
                show2: false, 
 | 
                show3: false, 
 | 
                show4: false, 
 | 
                show5: false, 
 | 
                show6: false, 
 | 
                fileList: [], 
 | 
                columns1: [[{name: '身份证', id: 0}, {name: '港澳证件', id: 1},{name: '护照', id: 2}]], 
 | 
                columns: [], 
 | 
                cars: [], 
 | 
                carName: '', 
 | 
                personnel: [], 
 | 
                userAnswerId: '', 
 | 
                form1: { 
 | 
                    phone1: '', 
 | 
                    receptMemberId: '', 
 | 
                    receptMemberName: '', 
 | 
                    starttime: '', 
 | 
                    endtime: '', 
 | 
                    doors: '', 
 | 
                    doorSelectName: '', 
 | 
                    reason: '', 
 | 
                    carNos: '' 
 | 
                }, 
 | 
                withUserList: { 
 | 
                    name: '', 
 | 
                    phone: '', 
 | 
                    idcardType: '', 
 | 
                    idcardTypeName: '', 
 | 
                    companyName: '', 
 | 
                    idcardNo: '', 
 | 
                    faceImg: '', 
 | 
                    faceImgUrl: '', 
 | 
                    imgurl: '', 
 | 
                    imgurlUrl: '' 
 | 
                }, 
 | 
                visit: '', 
 | 
                form: {}, 
 | 
                accessControl: '', 
 | 
                verify: '' 
 | 
            }; 
 | 
        }, 
 | 
        onLoad(options) { 
 | 
            this.form = JSON.parse(options.data) 
 | 
            this.getvisit() 
 | 
            this.getVisit1() 
 | 
            this.getUserValid() 
 | 
        }, 
 | 
        methods: { 
 | 
            closeMJ() { 
 | 
                this.show = false 
 | 
                this.columns.forEach(item => { 
 | 
                    item.active = false 
 | 
                }) 
 | 
            }, 
 | 
            submit() { 
 | 
                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) 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' 
 | 
                this.$u.api.createFk({ 
 | 
                    ...this.form, 
 | 
                    ...data, 
 | 
                    openid: this.$store.state.openId, 
 | 
                    withUserList: this.personnel 
 | 
                }).then(res => { 
 | 
                    if (res.code === 200) { 
 | 
                        console.log(res) 
 | 
                        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 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            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 (!this.withUserList.faceImg) return uni.showToast({ 
 | 
                    title: '人脸照片不能为空', 
 | 
                    icon: 'none' 
 | 
                }) 
 | 
                if (this.visit === '1') { 
 | 
                    if (!this.withUserList.imgurl) return uni.showToast({ 
 | 
                        title: '人脸照片不能为空', 
 | 
                        icon: 'none' 
 | 
                    }) 
 | 
                } 
 | 
                let arr = JSON.parse(JSON.stringify(this.withUserList)) 
 | 
                this.personnel.push(arr) 
 | 
                this.show3 = false 
 | 
                this.withUserList.name = '' 
 | 
                this.withUserList.phone = '' 
 | 
                this.withUserList.idcardType = '' 
 | 
                this.withUserList.idcardTypeName = '' 
 | 
                this.withUserList.companyName = '' 
 | 
                this.withUserList.idcardNo = '' 
 | 
                this.withUserList.faceImg = '' 
 | 
                this.withUserList.faceImgUrl = '' 
 | 
                this.withUserList.imgurl = '' 
 | 
                this.withUserList.imgurlUrl = '' 
 | 
            }, 
 | 
            upload(type) { 
 | 
                uni.chooseImage({ 
 | 
                    success: (chooseImageRes) => { 
 | 
                        uni.showLoading({ title: '上传中', mask: true }); 
 | 
                        for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) { 
 | 
                            uni.uploadFile({ 
 | 
                                url: `${this.$baseUrl}public/api/uploadFtp.do`, 
 | 
                                filePath: chooseImageRes.tempFilePaths[i], 
 | 
                                name: 'file', 
 | 
                                formData: { 
 | 
                                    folderCode: 'MEMBER_IMG' 
 | 
                                }, 
 | 
                                success: (uploadFileRes) => { 
 | 
                                    let res = JSON.parse(uploadFileRes.data) 
 | 
                                    if (type === 'faceImg') { 
 | 
                                        this.withUserList.faceImg = res.data.halfPath 
 | 
                                        this.withUserList.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath 
 | 
                                    } else { 
 | 
                                        this.withUserList.imgurl = res.data.halfPath 
 | 
                                        this.withUserList.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath 
 | 
                                    } 
 | 
                                }, 
 | 
                                complete() { 
 | 
                                    if (i === chooseImageRes.tempFilePaths.length - 1) { 
 | 
                                        uni.hideLoading(); 
 | 
                                    } 
 | 
                                } 
 | 
                            }); 
 | 
                        } 
 | 
                    } 
 | 
                }); 
 | 
            }, 
 | 
            seleIdcard(e) { 
 | 
                this.withUserList.idcardType = e.value[0].id 
 | 
                this.withUserList.idcardTypeName = e.value[0].name 
 | 
                this.show6 = false 
 | 
            }, 
 | 
            submitCart() { 
 | 
                if (!this.carName) return uni.showToast({ 
 | 
                    title: '请输入车牌号码', 
 | 
                    icon: 'none' 
 | 
                }) 
 | 
                this.cars.push(this.carName) 
 | 
                this.form1.carNos = this.cars.join(',') 
 | 
                this.carName = '' 
 | 
                this.show2 = false 
 | 
            }, 
 | 
            deleCars(i) { 
 | 
                this.cars.splice(i, 1) 
 | 
                this.form1.carNos = this.cars.join(',') 
 | 
            }, 
 | 
            submitMJ() { 
 | 
                let arr = [] 
 | 
                let names = [] 
 | 
                this.columns.forEach(item => { 
 | 
                    if (item.active) { 
 | 
                        arr.push(item.id) 
 | 
                        names.push(item.name) 
 | 
                    } 
 | 
                }) 
 | 
                if (arr.length === 0) return uni.showToast({ 
 | 
                    title: '请选择门禁', 
 | 
                    icon: 'none' 
 | 
                }) 
 | 
                this.form1.doorSelectName = names.join(',') 
 | 
                this.form1.doors = arr.join(',') 
 | 
                this.show = false 
 | 
            }, 
 | 
            seleMJ(i) { 
 | 
                this.columns.forEach((item,index) => { 
 | 
                    if (index === i) { 
 | 
                        item.active = !item.active 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            setinDate(e) { 
 | 
                this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM'); 
 | 
                this.show4 = false 
 | 
            }, 
 | 
            setoutDate(e) { 
 | 
                this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM'); 
 | 
                this.show5 = false 
 | 
            }, 
 | 
            // 查询用户 
 | 
            getUser() { 
 | 
                console.log(this.verify) 
 | 
                console.log(this.form1.phone1) 
 | 
                console.log(this.form1.receptMemberName) 
 | 
                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 
 | 
                            } 
 | 
                        }) 
 | 
                    } 
 | 
                } 
 | 
            }, 
 | 
            // 被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验) 
 | 
            getUserValid() { 
 | 
                this.$u.api.getSystemDictData({ 
 | 
                    dictCode: 'SYSTEM', 
 | 
                    label: 'BEVISITED_USER_VALID' 
 | 
                }).then(res => { 
 | 
                    if (res.code === 200) { 
 | 
                        console.log(res) 
 | 
                        this.verify = res.data.code 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            // 获取是否需要选择门禁/门禁列表 
 | 
            getvisit() { 
 | 
                this.$u.api.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 }) 
 | 
                                .then(device => { 
 | 
                                    if (device.code === 200) { 
 | 
                                        if (device.data.length > 0) { 
 | 
                                            device.data.forEach(item => { 
 | 
                                                item.active = false 
 | 
                                            }) 
 | 
                                            this.columns = device.data 
 | 
                                        } 
 | 
                                    } 
 | 
                                }) 
 | 
                        } 
 | 
                    } 
 | 
                }) 
 | 
            }, 
 | 
            confirm(e) { 
 | 
                this.show = false 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</script> 
 | 
<style> 
 | 
    page { 
 | 
        background-color: #F7F7F7 !important; 
 | 
    } 
 | 
    .u-upload__button { 
 | 
        margin: 0 !important; 
 | 
    } 
 | 
</style> 
 | 
<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; 
 | 
                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; 
 | 
                box-sizing: border-box; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: space-between; 
 | 
                .menjin_footer_item { 
 | 
                    flex: 1; 
 | 
                    height: 80rpx; 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    justify-content: center; 
 | 
                    border-radius: 10rpx; 
 | 
                    background-color: #025EEF; 
 | 
                    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; 
 | 
                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; 
 | 
                    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; 
 | 
                            } 
 | 
                        } 
 | 
                        .aa { 
 | 
                            font-size: 24rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #999999; 
 | 
                        } 
 | 
                    } 
 | 
                    .adduser_list_item_label { 
 | 
                        flex-shrink: 0; 
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        text { 
 | 
                            &:nth-child(1) { 
 | 
                                font-size: 30rpx; 
 | 
                                font-family: PingFangSC, PingFang SC; 
 | 
                                font-weight: 400; 
 | 
                                color: #222222; 
 | 
                            } 
 | 
                            &:nth-child(2) { 
 | 
                                font-size: 30rpx; 
 | 
                                font-family: PingFangSC, PingFang SC; 
 | 
                                font-weight: 400; 
 | 
                                color: #E0312A; 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                    .adduser_list_item_ipt { 
 | 
                        flex-shrink: 0; 
 | 
                        text-align: right; 
 | 
                        font-size: 28rpx; 
 | 
                        font-family: PingFangSC, PingFang SC; 
 | 
                        font-weight: 400; 
 | 
                        color: #333333; 
 | 
                        margin-left: 30rpx;     
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        justify-content: flex-end; 
 | 
                        .adduser_list_item_ipt1_upload { 
 | 
                            width: 120rpx; 
 | 
                            height: 120rpx; 
 | 
                            background-color: #ececec; 
 | 
                            display: flex; 
 | 
                            align-items: center; 
 | 
                            justify-content: center; 
 | 
                            overflow: hidden; 
 | 
                            image { 
 | 
                                width: 100%; 
 | 
                                height: 100%; 
 | 
                            } 
 | 
                        } 
 | 
                        text { 
 | 
                            font-size: 28rpx; 
 | 
                            font-family: PingFangSC, PingFang SC; 
 | 
                            font-weight: 400; 
 | 
                            color: #999999; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            .adduser_footer { 
 | 
                width: 100%; 
 | 
                margin-top: 60rpx; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: space-between; 
 | 
                .t { 
 | 
                    background: #025EEF !important; 
 | 
                    color: #ffffff !important; 
 | 
                } 
 | 
                .adduser_footer_item { 
 | 
                    width: 336rpx; 
 | 
                    height: 88rpx; 
 | 
                    line-height: 88rpx; 
 | 
                    text-align: center; 
 | 
                    border-radius: 44rpx; 
 | 
                    border: 1rpx solid #025EEF; 
 | 
                    font-size: 32rpx; 
 | 
                    font-family: PingFangSC, PingFang SC; 
 | 
                    font-weight: 400; 
 | 
                    color: #025EEF; 
 | 
                    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; 
 | 
                color: #222222; 
 | 
            } 
 | 
            .addcar_ipt { 
 | 
                width: 100%; 
 | 
                height: 100rpx; 
 | 
                line-height: 100rpx; 
 | 
                text-align: center; 
 | 
                background: #F7F7F7; 
 | 
                border-radius: 50rpx; 
 | 
                margin-top: 60rpx; 
 | 
                input { 
 | 
                    width: 100%; 
 | 
                    height: 100%; 
 | 
                    font-size: 28rpx; 
 | 
                    font-weight: 400; 
 | 
                    color: #000000; 
 | 
                    text-align: center; 
 | 
                } 
 | 
            } 
 | 
            .addcar_footer { 
 | 
                width: 100%; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: space-between; 
 | 
                margin-top: 60rpx; 
 | 
                .t { 
 | 
                    background: #025EEF !important; 
 | 
                    color: #ffffff !important; 
 | 
                } 
 | 
                .addcar_footer_item { 
 | 
                    flex: 1; 
 | 
                    height: 88rpx; 
 | 
                    line-height: 88rpx; 
 | 
                    font-size: 32rpx; 
 | 
                    font-weight: 400; 
 | 
                    color: #025EEF; 
 | 
                    text-align: center; 
 | 
                    border-radius: 44rpx; 
 | 
                    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; 
 | 
                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; 
 | 
                        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; 
 | 
                        } 
 | 
                    } 
 | 
                    text { 
 | 
                        flex-shrink: 0; 
 | 
                        margin-left: 30rpx; 
 | 
                        font-size: 28rpx; 
 | 
                        font-weight: 400; 
 | 
                        color: #025EEF; 
 | 
                    } 
 | 
                } 
 | 
                .search-box-total { 
 | 
                    font-size: 26rpx; 
 | 
                    font-weight: 400; 
 | 
                    color: #666666; 
 | 
                    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; 
 | 
                    .item_a { 
 | 
                        flex-shrink: 0; 
 | 
                        width: 36rpx; 
 | 
                        height: 36rpx; 
 | 
                        margin-right: 24rpx; 
 | 
                        image { 
 | 
                            width: 100%; 
 | 
                            height: 100%; 
 | 
                        } 
 | 
                    } 
 | 
                    .item_b { 
 | 
                        flex-shrink: 0; 
 | 
                        width: 80rpx; 
 | 
                        height: 80rpx; 
 | 
                        display: flex; 
 | 
                        align-items: center; 
 | 
                        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; 
 | 
                                font-family: PingFangSC, PingFang SC; 
 | 
                                font-weight: 400; 
 | 
                                color: #222222; 
 | 
                            } 
 | 
                            &:nth-child(2) { 
 | 
                                font-size: 20rpx; 
 | 
                                font-family: PingFangSC, PingFang SC; 
 | 
                                font-weight: 400; 
 | 
                                color: #999999; 
 | 
                                padding: 1rpx 4rpx; 
 | 
                                box-sizing: border-box; 
 | 
                                background-color: #EEEEEE; 
 | 
                                margin-left: 12rpx; 
 | 
                            } 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            .footer1 { 
 | 
                width: 100%; 
 | 
                height: 100rpx; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                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; 
 | 
                        font-weight: 400; 
 | 
                        color: #999999; 
 | 
                    } 
 | 
                } 
 | 
                .footer_btn { 
 | 
                    flex-shrink: 0; 
 | 
                    width: 216rpx; 
 | 
                    height: 72rpx; 
 | 
                    line-height: 72rpx; 
 | 
                    text-align: center; 
 | 
                    background: #025EEF; 
 | 
                    border-radius: 8rpx; 
 | 
                    font-size: 28rpx; 
 | 
                    font-weight: 500; 
 | 
                    color: #FFFFFF; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
             
 | 
  
 | 
        .head { 
 | 
            width: 100%; 
 | 
            padding: 20rpx 30rpx; 
 | 
            box-sizing: border-box; 
 | 
            font-size: 28rpx; 
 | 
            font-weight: 400; 
 | 
            color: #666666; 
 | 
        } 
 | 
  
 | 
        .list { 
 | 
            width: 100%; 
 | 
            padding: 0 30rpx; 
 | 
            box-sizing: border-box; 
 | 
            background-color: #ffffff; 
 | 
  
 | 
            .list_item { 
 | 
                width: 100%; 
 | 
                height: 98rpx; 
 | 
                display: flex; 
 | 
                align-items: center; 
 | 
                justify-content: space-between; 
 | 
                border-bottom: 1rpx solid #E5E5E5; 
 | 
  
 | 
                .list_item_label { 
 | 
                    flex-shrink: 0; 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
  
 | 
                    text { 
 | 
                        &:nth-child(1) { 
 | 
                            font-size: 30rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #222222; 
 | 
                        } 
 | 
  
 | 
                        &:nth-child(2) { 
 | 
                            font-size: 30rpx; 
 | 
                            font-weight: 400; 
 | 
                            color: #E42D2D; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                .list_item_content { 
 | 
                    flex: 1; 
 | 
                    height: 100%; 
 | 
                    margin-left: 30rpx; 
 | 
                    display: flex; 
 | 
                    align-items: center; 
 | 
                    justify-content: flex-end; 
 | 
  
 | 
                    text { 
 | 
                        font-size: 28rpx; 
 | 
                        font-weight: 400; 
 | 
                        color: #999999; 
 | 
                        margin-right: 6rpx; 
 | 
                    } 
 | 
  
 | 
                    input { 
 | 
                        width: 100%; 
 | 
                        height: 100%; 
 | 
                        text-align: right; 
 | 
                        font-size: 28rpx; 
 | 
                        font-weight: 400; 
 | 
                        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; 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
</style> 
 |