| | |
| | | <template> |
| | | <view class="box"> |
| | | <view class="head_wrap head_success" v-if="info.status == 1"> |
| | | <view class="h1">访客é¢çº¦å®¡æ ¸éè¿</view> |
| | | <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²å®¡æ ¸éè¿ï¼è¯·å¨è®¿å®¢æºç¾å°å
¥åãå¦éç¹æ®æ
åµï¼å¯è系被访人æå®ä¿äººå</view> |
| | | </view> |
| | | <view class="qr_wrap" v-if="info.status == 1"> |
| | | <canvas class="box_head_qrcode" canvas-id="img"></canvas> |
| | | <view class="text">使ç¨è®¿å®¢æºæ«ç ç¾å°</view> |
| | | </view> |
| | | <view class="head_wrap head_padding" v-if="info.status == 2"> |
| | | <view class="h1">访客é¢çº¦å¾
å®¡æ ¸</view> |
| | | <view class="h2">æ¨çé¢çº¦åå·²æäº¤å®¡æ ¸ï¼è¯·çå¾
è¢«è®¿äººå®¡æ ¸</view> |
| | | </view> |
| | | <view class="head_wrap head_error" v-if="info.status == 3"> |
| | | <view class="h1">访客é¢çº¦å®¡æ ¸ä¸éè¿</view> |
| | | <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²è¢«é©³åï¼å¦æçé®ï¼å¯è系被访人</view> |
| | | </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_val">{{info.visitUserName}}</view> |
| | | </view> |
| | | <!-- <view class="box_list_item"> |
| | | <view class="box"> |
| | | <view class="head_wrap head_success" v-if="info.status == 2"> |
| | | <view class="h1">访客é¢çº¦å®¡æ ¸éè¿</view> |
| | | <view class="h2" |
| | | >æ¨çæ¥è®¿ç³è¯·å·²å®¡æ ¸éè¿ï¼è¯·å¨è®¿å®¢æºç¾å°å
¥åãå¦éç¹æ®æ
åµï¼å¯è系被访人æå®ä¿äººå</view |
| | | > |
| | | </view> |
| | | <view class="qr_wrap" v-if="info.status == 2"> |
| | | <canvas class="box_head_qrcode" canvas-id="img"></canvas> |
| | | <view class="text">使ç¨è®¿å®¢æºæ«ç ç¾å°</view> |
| | | </view> |
| | | <view class="head_wrap head_padding" v-if="info.status == 0"> |
| | | <view class="h1">访客é¢çº¦å¾
å®¡æ ¸</view> |
| | | <view class="h2">æ¨çé¢çº¦åå·²æäº¤å®¡æ ¸ï¼è¯·çå¾
è¢«è®¿äººå®¡æ ¸</view> |
| | | </view> |
| | | <view class="head_wrap head_error" v-if="info.status == 3"> |
| | | <view class="h1">访客é¢çº¦å®¡æ ¸ä¸éè¿</view> |
| | | <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²è¢«é©³åï¼å¦æçé®ï¼å¯è系被访人</view> |
| | | </view> |
| | | <view class="box_list"> |
| | | <view class="box_list_label">æè®¿ä¿¡æ¯</view> |
| | | <view class="box_list_tips" v-if="info.status == 6 || info.status == 3" |
| | | >è¯·æ³¨ææ¥çåºå
¥é¨ç¦ä¸åæ
åµï¼å¦è¥ä¸å失败ééæ°ç³è¯·</view |
| | | > |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">被访人åï¼</view> |
| | | <view class="box_list_item_val" |
| | | >{{ info.visitUserCompany |
| | | }}{{ info.visitUserName ? "-" + info.visitUserName : "" }}</view |
| | | > |
| | | </view> |
| | | <!-- <view class="box_list_item"> |
| | | <view class="box_list_item_label">车çå·ï¼</view> |
| | | <view class="box_list_item_val">{{info.carNos}}</view> |
| | | </view> --> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">æè®¿äºç±ï¼</view> |
| | | <view class="box_list_item_val">{{info.visitReason}}</view> |
| | | </view> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">æè®¿æ¶é´ï¼</view> |
| | | <view class="box_list_item_val">{{info.visitTime}}</view> |
| | | </view> |
| | | <view class="box_list_item"> |
| | | <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 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> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">æè®¿äºç±ï¼</view> |
| | | <view class="box_list_item_val">{{ info.visitReason }}</view> |
| | | </view> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">æè®¿æ¶é´ï¼</view> |
| | | <view class="box_list_item_val">{{ info.visitTime }}</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"> |
| | | <view class="box_list_item_label">æ½å·¥äººåï¼</view> |
| | | <view class="box_list_item_val">{{ info.type == 0 ? 'å¦' : 'æ¯'}}</view> |
| | | </view> |
| | | <view class="box_list_item" v-if="info.type == '1'"> |
| | | <view class="box_list_item_label">æ½å·¥å
容ï¼</view> |
| | | <view class="box_list_item_val">{{ info.constructionReason}}</view> |
| | | </view> |
| | | <view class="box_list_item"> |
| | | <view class="box_list_item_label">éè¡è½¦è¾ï¼</view> |
| | | <view class="box_list_item_val">{{ info.carNos }}</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' |
| | | import { visitorSubDetail } from '@/api' |
| | | import wxcode from 'uniapp-qrcode' |
| | | import { getVisitedDetail } from '@/api' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | info: { |
| | | status: 1 |
| | | }, |
| | | show: false |
| | | }; |
| | | }, |
| | | onLoad(option) { |
| | | // this.$u.api.detail({ id: option.id }) |
| | | // visitorSubDetail({ id: option.id }) |
| | | // .then(res => { |
| | | // if (res.code === 200) { |
| | | // 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' }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | export default { |
| | | data() { |
| | | return { |
| | | info: {}, |
| | | show: false |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | this.getDetail(option.id) |
| | | // visitorSubDetail({ id: option.id }) |
| | | // .then(res => { |
| | | // if (res.code === 200) { |
| | | // this.info = res.data |
| | | // if (res.data.qrcode) { |
| | | // this.$nextTick(() => { |
| | | // wxcode.qrcode('img', res.data.qrcode, 320, 320) |
| | | // }) |
| | | // } |
| | | // } |
| | | // }) |
| | | |
| | | }, |
| | | methods: { |
| | | close() { |
| | | this.show = false |
| | | }, |
| | | getDetail(id) { |
| | | getVisitedDetail({ id }).then(res => { |
| | | this.info = res.data |
| | | if (res.data.qrcode) { |
| | | this.$nextTick(() => { |
| | | wxcode.qrcode('img', res.data.qrcode, 320, 320) |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | seeQrCode(code) { |
| | | if (code.qrcode) { |
| | | this.show = true |
| | | this.$nextTick(() => { |
| | | wxcode.qrcode('img1', code.qrcode, 300, 300) |
| | | }) |
| | | } else { |
| | | uni.showToast({ title: 'ææ äºç»´ç ', icon: 'none' }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | page { |
| | | background-color: #f7f7f7; |
| | | } |
| | | page { |
| | | background-color: #f7f7f7; |
| | | } |
| | | </style> |
| | | <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%; |
| | | } |
| | | } |
| | | .qr_wrap{ |
| | | background-color: #fff; |
| | | text-align: center; |
| | | .box_head_qrcode { |
| | | width: 320rpx; |
| | | height: 320rpx; |
| | | } |
| | | .text{ |
| | | font-size: 30rpx; |
| | | color: #279BAA; |
| | | padding: 20rpx 0 30rpx; |
| | | } |
| | | } |
| | | .head_wrap{ |
| | | padding: 30px; |
| | | |
| | | .h1{ |
| | | margin-bottom: 16rpx; |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | } |
| | | .h2{ |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | } |
| | | } |
| | | .head_padding{ |
| | | background: #279BAA; |
| | | .h1{ |
| | | color: #FFFFFF; |
| | | } |
| | | .h2{ |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | .head_error{ |
| | | background: #FDEDED; |
| | | .h1{ |
| | | color: #ED4545; |
| | | } |
| | | .h2{ |
| | | color: #333333; |
| | | } |
| | | } |
| | | .head_success{ |
| | | background: #E8F4F6; |
| | | .h1{ |
| | | color: #279BAA; |
| | | } |
| | | .h2{ |
| | | color: #333333; |
| | | } |
| | | } |
| | | .box_list { |
| | | width: 100%; |
| | | margin-top: 20rpx; |
| | | 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; |
| | | color: #222222; |
| | | } |
| | | .box_list_item { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 30rpx; |
| | | .box_list_item_label { |
| | | flex-shrink: 0; |
| | | font-size: 28rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | .box_list_item_val { |
| | | font-size: 28rpx; |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .box { |
| | | width: 100%; |
| | | .qrocde { |
| | | width: 300rpx; |
| | | height: 300rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | .qrcode_img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | .qr_wrap { |
| | | background-color: #fff; |
| | | text-align: center; |
| | | .box_head_qrcode { |
| | | width: 320rpx; |
| | | height: 320rpx; |
| | | margin: 20rpx auto; |
| | | } |
| | | .text { |
| | | font-size: 30rpx; |
| | | color: #279baa; |
| | | padding: 20rpx 0 30rpx; |
| | | } |
| | | } |
| | | .head_wrap { |
| | | padding: 30px; |
| | | |
| | | .h1 { |
| | | margin-bottom: 16rpx; |
| | | font-weight: 600; |
| | | font-size: 36rpx; |
| | | } |
| | | .h2 { |
| | | font-weight: 400; |
| | | font-size: 26rpx; |
| | | } |
| | | } |
| | | .head_padding { |
| | | background: #279baa; |
| | | .h1 { |
| | | color: #ffffff; |
| | | } |
| | | .h2 { |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | .head_error { |
| | | background: #fdeded; |
| | | .h1 { |
| | | color: #ed4545; |
| | | } |
| | | .h2 { |
| | | color: #333333; |
| | | } |
| | | } |
| | | .head_success { |
| | | background: #e8f4f6; |
| | | .h1 { |
| | | color: #279baa; |
| | | } |
| | | .h2 { |
| | | color: #333333; |
| | | } |
| | | } |
| | | .box_list { |
| | | width: 100%; |
| | | margin-top: 20rpx; |
| | | 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; |
| | | color: #222222; |
| | | } |
| | | .box_list_item { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | margin-top: 30rpx; |
| | | .box_list_item_label { |
| | | flex-shrink: 0; |
| | | font-size: 28rpx; |
| | | font-family: PingFangSC, PingFang SC; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | .box_list_item_val { |
| | | font-size: 28rpx; |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |