liukangdong
2025-03-12 908ce43ff21c2068ef5148b0a417423c8ed9eae5
h5/pages/visitorApplication/visitorApplication.vue
@@ -1,72 +1,72 @@
<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" @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" @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="openLC">
               <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> -->
         <div class="empty"></div>
         <view class="list_item">
            <view class="list_item_label">
               <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">
<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" @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" @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="openLC">
               <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> -->
         <div class="empty"></div>
         <view class="list_item">
            <view class="list_item_label">
               <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">
               <!-- <switch color="#4e99a9" style="transform: scale(0.8)" @change="constructionChange" /> -->
<!--                <u-radio-group v-model="form1.type">
                  <u-radio label="是" :name="1" activeColor="#4d99a8" class="mr24" />
@@ -84,1238 +84,1583 @@
                     <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>
               <!-- <input type="text" placeholder="请输入车牌号" v-model="form1.carNos" maxlength="8" placeholder-style="color: #999999;" /> -->
            </view>
         </view>
      </view>
      <view class="footer">
         <view class="footer_btn" @click="onSubmit">提交</view>
      </view>
      <!-- 入园时间 -->
      <u-datetime-picker :show="show4" :minDate="new Date().getTime()" mode="datetime" :formatter="formatter"
         @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>
            <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" @click="openInput(2)">
                     <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>
               <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>
      <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>
   </view>
</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 {
      getVisitedMember,
      getSystemDictData,
      getVisitedVisitReason,
      createFk
   } from '@/api'
   export default {
      data() {
         return {
            photoSrc: '',
            type: '',
            inputType: '',
            showName: false,
            show: false,
            show1: false,
            show2: false,
            show3: false,
            show4: false,
            show5: false,
            show6: false,
            show7: false,
            showReason: false,
            fileList: [],
            columns1: [
               [{
                  name: '身份证',
                  id: 0
               }, {
                  name: '港澳证件',
                  id: 1
               }, {
                  name: '护照',
                  id: 2
               }],
            ],
            VisitReason: [],
            VisitPoeple: [],
            columns: [],
            cars: [],
            day: null,
            maxTime: '',
            carName: '',
            personnel: [],
            userAnswerId: '',
            form1: {
               phone1: '',
               receptMemberId: '',
               receptMemberName: '',
               starttime: '',
               endtime: '',
               doors: '',
               doorSelectName: '',
               reason: '',
               carNos: '',
               type: 0
            },
            withUserList: {
               name: '',
               phone: '',
               idcardType: '',
               idcardTypeName: '',
               companyName: '',
               idcardNo: '',
               faceImg: '',
               faceImgUrl: '',
               imgurl: '',
               imgurlUrl: ''
            },
            visit: '',
            form: {},
            accessControl: '',
            verify: ''
         }
      },
      components: {
         tlyPictureCut,
         keyboardInput,
         QfImageCropper
      },
      onLoad(options) {
         if (options.data) {
            this.form = JSON.parse(options.data)
         }
         // 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: {
         formatter(type, value) {
            if (type === 'year') {
               return `${value}年`
            }
            if (type === 'month') {
               return `${value}月`
            }
            if (type === 'day') {
               return `${value}日`
               </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>
               <!-- <input type="text" placeholder="请输入车牌号" v-model="form1.carNos" maxlength="8" placeholder-style="color: #999999;" /> -->
            </view>
         </view>
      </view>
      <view class="footer">
         <view class="footer_btn" @click="onSubmit">提交</view>
      </view>
      <!-- 入园时间 -->
      <u-datetime-picker :show="show4" :minDate="new Date().getTime()" mode="datetime" :formatter="formatter"
         @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>
            <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" @click="openInput(2)">
                     <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>
               <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>
      <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>
   </view>
</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 {
      getVisitedMember,
      getSystemDictData,
      getVisitedVisitReason,
      createFk
   } from '@/api'
   export default {
      data() {
         return {
            photoSrc: '',
            type: '',
            inputType: '',
            showName: false,
            show: false,
            show1: false,
            show2: false,
            show3: false,
            show4: false,
            show5: false,
            show6: false,
            show7: false,
            showReason: false,
            fileList: [],
            columns1: [
               [{
                  name: '身份证',
                  id: 0
               }, {
                  name: '港澳证件',
                  id: 1
               }, {
                  name: '护照',
                  id: 2
               }],
            ],
            VisitReason: [],
            VisitPoeple: [],
            columns: [],
            cars: [],
            day: null,
            maxTime: '',
            carName: '',
            personnel: [],
            userAnswerId: '',
            form1: {
               phone1: '',
               receptMemberId: '',
               receptMemberName: '',
               starttime: '',
               endtime: '',
               doors: '',
               doorSelectName: '',
               reason: '',
               carNos: '',
               type: 0
            },
            withUserList: {
               name: '',
               phone: '',
               idcardType: '',
               idcardTypeName: '',
               companyName: '',
               idcardNo: '',
               faceImg: '',
               faceImgUrl: '',
               imgurl: '',
               imgurlUrl: ''
            },
            visit: '',
            form: {},
            accessControl: '',
            verify: ''
         }
      },
      components: {
         tlyPictureCut,
         keyboardInput,
         QfImageCropper
      },
      onLoad(options) {
         if (options.data) {
            this.form = JSON.parse(options.data)
         }
         // 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: {
         formatter(type, value) {
            if (type === 'year') {
               return `${value}年`
            }
            if (type === 'month') {
               return `${value}月`
            }
            if (type === 'day') {
               return `${value}日`
            }
<<<<<<< HEAD
            this.$forceUpdate()
            this.closeInput()
         },
         closeInput() {
            this.$refs.keyboard.close()
         },
         uploadImg(file) {
            this.$refs.cropper.close()
            uni.showLoading({ title: '上传中', mask: true });
            uni.uploadFile({
               url: `${this.$baseUrl}public/api/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
            })
         },
         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 && 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'
            this.$u.api.createFk({
               ...this.form,
               ...data,
               openid: this.$store.state.openId,
               withUserList: this.personnel
            }).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}时`
>>>>>>> f0f08cc1ff84d45de32d8bff4a40e6a7d0d7a9e6
            }
            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'
               })
            }
            if (!this.withUserList.companyName) 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) {
            this.type = type
            if (type === 'faceImg') {
               this.$refs.cropper.open()
               return
            }
            uni.chooseImage({
               success: (chooseImageRes) => {
                  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`,
                        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
         },
         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
            console.log(e.value[0].title)
            this.showReason = 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
               }
            })
         },
         openLC() {
            if (!this.form1.starttime) return uni.showToast({
               title: '请先选择入园时间',
               icon: 'none'
            })
            this.show5 = true
         },
         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
         },
         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, '/')}`))
         },
         // 查询用户
         getUser() {
            getVisitedMember().then(res => {
               this.VisitPoeple = [res.data || []]
            })
            getVisitedVisitReason({}).then(res => {
               this.VisitReason = [res.data || []]
            })
         },
         // 被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验)
         getUserValid() {
            getSystemDictData({
               dictCode: 'SYSTEM',
               label: 'BEVISITED_USER_VALID'
            }).then(res => {
               if (res.code === 200) {
                  this.verify = res.data.code
               }
            })
         },
         // 获取是否需要选择门禁/门禁列表
         getvisit() {
            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: 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;
            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: $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: 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;
               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;
                  font-family: PingFangSC, PingFang SC;
                  font-size: 30rpx;
                  text {
                     &:nth-child(1) {
                        color: #e0312a;
                     }
                     &:nth-child(2) {
                        color: #222222;
                     }
                  }
               }
               .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: #4d99a9 !important;
               color: #ffffff !important;
            }
            .adduser_footer_item {
               width: 336rpx;
               height: 88rpx;
               line-height: 88rpx;
               text-align: center;
               border-radius: 44rpx;
               border: 1rpx solid #4d99a9;
               font-size: 32rpx;
               font-family: PingFangSC, PingFang SC;
               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: 600;
            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: #4d99a9 !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: 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;
                  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: 600;
               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;
         .empty {
            width: 750rpx;
            height: 20rpx;
            background-color: #f7f7f7;
            margin: 0 -30rpx;
         }
         .list_item {
            width: 100%;
            // min-height: 98rpx;
            padding: 30rpx 0;
            box-sizing: border-box;
            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: #e42d2d;
                  }
                  &:nth-child(2) {
                     font-size: 30rpx;
                     font-weight: 400;
                     color: #222222;
                  }
               }
            }
            .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;
               }
            }
            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'
               })
            }
            if (!this.withUserList.companyName) 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) {
            this.type = type
            if (type === 'faceImg') {
               this.$refs.cropper.open()
               return
            }
            uni.chooseImage({
               success: (chooseImageRes) => {
                  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`,
                        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
         },
         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
            console.log(e.value[0].title)
            this.showReason = 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
               }
            })
         },
         openLC() {
            if (!this.form1.starttime) return uni.showToast({
               title: '请先选择入园时间',
               icon: 'none'
            })
            this.show5 = true
         },
         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
         },
         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, '/')}`))
         },
         // 查询用户
         getUser() {
            getVisitedMember().then(res => {
               this.VisitPoeple = [res.data || []]
            })
            getVisitedVisitReason({}).then(res => {
               this.VisitReason = [res.data || []]
            })
         },
         // 被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验)
         getUserValid() {
            getSystemDictData({
               dictCode: 'SYSTEM',
               label: 'BEVISITED_USER_VALID'
            }).then(res => {
               if (res.code === 200) {
                  this.verify = res.data.code
               }
            })
         },
         // 获取是否需要选择门禁/门禁列表
         getvisit() {
            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: 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;
            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: $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: 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;
               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;
                  font-family: PingFangSC, PingFang SC;
                  font-size: 30rpx;
                  text {
                     &:nth-child(1) {
                        color: #e0312a;
                     }
                     &:nth-child(2) {
                        color: #222222;
                     }
                  }
               }
               .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: #4d99a9 !important;
               color: #ffffff !important;
            }
            .adduser_footer_item {
               width: 336rpx;
               height: 88rpx;
               line-height: 88rpx;
               text-align: center;
               border-radius: 44rpx;
               border: 1rpx solid #4d99a9;
               font-size: 32rpx;
               font-family: PingFangSC, PingFang SC;
               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: 600;
            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: #4d99a9 !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: 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;
                  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: 600;
               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;
         .empty {
            width: 750rpx;
            height: 20rpx;
            background-color: #f7f7f7;
            margin: 0 -30rpx;
         }
         .list_item {
            width: 100%;
            // min-height: 98rpx;
            padding: 30rpx 0;
            box-sizing: border-box;
            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: #e42d2d;
                  }
                  &:nth-child(2) {
                     font-size: 30rpx;
                     font-weight: 400;
                     color: #222222;
                  }
               }
            }
            .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;
               }
            }
<<<<<<< HEAD
            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) {
            this.type = type
            if (type === 'faceImg') {
               this.$refs.cropper.open()
               return
            }
            uni.chooseImage({
               success: (chooseImageRes) => {
                  // if (type === 'faceImg') {
                  //    this.photoSrc = chooseImageRes.tempFilePaths[0];
                  //    this.$refs.tlyPictureCut.showPop();
                  //    return
                  // }
                  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
               }
            })
         },
         openLC() {
            if (!this.form1.starttime) return uni.showToast({
               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 - 1)
            this.show4 = false
         },
         setoutDate(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,'/')}`))
         },
         // 查询用户
         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
                     }
                  })
               }
            }
         },
         // 被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验)
         getUserValid() {
            this.$u.api.getSystemDictData({
               dictCode: 'SYSTEM',
               label: 'BEVISITED_USER_VALID'
            }).then(res => {
               if (res.code === 200) {
                  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%;
=======
            .checkbox_wrap{
>>>>>>> f0f08cc1ff84d45de32d8bff4a40e6a7d0d7a9e6
               display: flex;
               align-items: center;
               .check_item{
@@ -1328,99 +1673,99 @@
                  height: 42rpx;
                  margin-left: 10rpx;
               }
            }
         }
      }
      .cate {
         width: 100%;
         padding: 30rpx;
         box-sizing: border-box;
         background-color: #ffffff;
         .cate_head {
            font-size: 32rpx;
            font-family: PingFangSC, PingFang SC;
            font-weight: 600;
            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;
         margin-top: 80rpx;
         // 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: 600;
            color: #ffffff;
         }
      }
   }
            }
         }
      }
      .cate {
         width: 100%;
         padding: 30rpx;
         box-sizing: border-box;
         background-color: #ffffff;
         .cate_head {
            font-size: 32rpx;
            font-family: PingFangSC, PingFang SC;
            font-weight: 600;
            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;
         margin-top: 80rpx;
         // 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: 600;
            color: #ffffff;
         }
      }
   }
</style>