nidapeng
2024-03-28 e8158d16a13c2ea1f2d8566578137db4394ab610
h5/pages/appointmentDetails/appointmentDetails.vue
@@ -1,24 +1,27 @@
<template>
   <view class="box">
      <view class="box_head">
         <image src="@/static/logo@2x.png" mode="widthFix"></image>
         <text class="box_head_a" v-if="info.status === 0">访客预约待审核</text>
         <text class="box_head_a" style="color: ;" v-if="info.status === 2">访客预约审核通过</text>
         <text class="box_head_a" v-if="info.status === 3">访客预约审核不通过</text>
         <text class="box_head_b" v-if="info.status === 0">您的预约单已提交审核,请等待被访人审核</text>
         <text class="box_head_b" v-if="info.status === 2">您的来访申请已审核通过,请在门卫处进行登</text>
         <text class="box_head_b" v-if="info.status === 3">您的来访申请已被驳回,原因是:这是原因</text>
         <canvas class="box_head_qrcode" canvas-id="img" v-if="[2,5,7,8,9].includes(info.status)"></canvas>
         <image class="box_head_logo" src="../../static/logo@2x.png" mode="widthFix" v-else></image>
         <text class="box_head_a" v-if="[0, 1].includes(info.status)">访客预约待审核</text>
         <text class="box_head_a" style="color: #03AF76;" v-if="info.status === 2">访客预约审核通过</text>
         <text class="box_head_a" style="color: #ED4545;" v-if="info.status === 3">访客预约审核不通过</text>
         <text class="box_head_b" v-if="[0, 1].includes(info.status)">您的预约单已提交审核,请等待被访人审核</text>
         <text class="box_head_b" v-if="info.status === 2">您的来访申请已审核通过,请在门卫处进行登记入场
如遇特殊情况,可联系被访人或安保人员</text>
         <text class="box_head_b" v-if="info.status === 3">您的来访申请已被驳回,如有疑问,可联系被访人</text>
      </view>
      <view class="box_list">
         <view class="box_list_label">拜访信息</view>
         <view class="box_list_tips" v-if="info.status === 2">请注意查看出入门禁下发情况,如若下发失败需重新申请</view>
         <view class="box_list_item">
            <view class="box_list_item_label">拜访员工:</view>
            <view class="box_list_item_label">被访人员:</view>
            <view class="box_list_item_val">{{info.visitUserName}}</view>
         </view>
         <view class="box_list_item">
         <!-- <view class="box_list_item">
            <view class="box_list_item_label">车牌号:</view>
            <view class="box_list_item_val">{{info.carNos}}</view>
         </view>
         </view> -->
         <view class="box_list_item">
            <view class="box_list_item_label">拜访事由:</view>
            <view class="box_list_item_val">{{info.visitReason}}</view>
@@ -31,29 +34,67 @@
            <view class="box_list_item_label">访问门禁:</view>
            <view class="box_list_item_val" v-if="info.doorGroupName && info.doorGroupName.length > 0">{{info.doorGroupName.join('、')}}</view>
         </view>
         <view class="box_list_item">
            <view class="box_list_item_label">主访客:</view>
            <view class="box_list_item_val">
               {{info.name}} {{info.phone}}
            </view>
         </view>
         <view class="box_list_item" v-for="(item, index) in info.withVisitsList" :key="index">
            <view class="box_list_item_label">随访人员{{index + 1}}:</view>
            <view class="box_list_item_val">{{item.name}} {{item.phone}}</view>
            <view class="box_list_item_val">
               {{item.name}} {{item.phone}}
               <view class="box_list_item_val_btn" v-if="[2,5,7,8,9].includes(item.status)">
                  <u-button text="查看二维码" size="mini" @click="seeQrCode(item)" type="primary"></u-button>
               </view>
            </view>
         </view>
      </view>
      <u-popup :show="show" mode="center" @close="close">
         <view class="qrocde">
            <canvas class="qrcode_img" canvas-id="img1"></canvas>
         </view>
      </u-popup>
   </view>
</template>
<script>
   import wxcode from 'uniapp-qrcode'
   export default {
      data() {
         return {
            info: {}
            info: {},
            show: false
         };
      },
      onLoad(option) {
         this.$u.api.detail({ id: option.id })
            .then(res => {
               if (res.code === 200) {
                  console.log(res)
                  this.info = res.data
                  if (res.data.qrcode) {
                     this.$nextTick(() => {
                        wxcode.qrcode('img', res.data.qrcode, 320, 320)
                     })
                  }
               }
            })
      },
      methods: {
         close() {
            this.show = false
         },
         seeQrCode(code) {
            if (code.qrcode) {
               this.show = true
               this.$nextTick(() => {
                  wxcode.qrcode('img1', code.qrcode, 300, 300)
               })
            } else {
               uni.showToast({ title: '暂无二维码', icon: 'none' })
            }
         }
      }
   }
</script>
@@ -65,6 +106,17 @@
<style lang="scss" scoped>
   .box {
      width: 100%;
      .qrocde {
         width: 300rpx;
         height: 300rpx;
         display: flex;
         align-items: center;
         justify-content: center;
         .qrcode_img {
            width: 100%;
            height: 100%;
         }
      }
      .box_head {
         width: 100%;
         padding: 40rpx 0;
@@ -74,9 +126,13 @@
         align-items: center;
         justify-content: center;
         flex-direction: column;
         image {
         .box_head_qrcode {
            width: 320rpx;
            height: 320rpx;
         }
         .box_head_logo {
            width: 220rpx;
            height: 220rpx;
         }
         .box_head_a {
            font-size: 36rpx;
@@ -89,6 +145,7 @@
            font-weight: 400;
            color: #666666;
            margin-top: 24rpx;
            text-align: center;
         }
      }
      .box_list {
@@ -97,6 +154,19 @@
         background-color: #ffffff;
         padding: 40rpx 30rpx;
         box-sizing: border-box;
         .box_list_tips {
            width: 100%;
            height: 52rpx;
            padding: 0 20rpx;
            box-sizing: border-box;
            line-height: 52rpx;
            background-color: rgba(224, 49, 42, 0.06);
            font-weight: 400;
            font-size: 24rpx;
            color: #E0312A;
            border-radius: 4rpx;
            margin: 30rpx 0;
         }
         .box_list_label {
            font-size: 32rpx;
            font-weight: 500;
@@ -108,6 +178,7 @@
            align-items: center;
            margin-top: 30rpx;
            .box_list_item_label {
               flex-shrink: 0;
               font-size: 28rpx;
               font-family: PingFangSC, PingFang SC;
               font-weight: 400;
@@ -118,6 +189,12 @@
               font-family: PingFangSC, PingFang SC;
               font-weight: 400;
               color: #333333;
               display: flex;
               align-items: center;
               .box_list_item_val_btn {
                  width: 140rpx;
                  margin-left: 15rpx;
               }
            }
         }
      }