Files
app-govern/pages/device/transfer.vue

158 lines
4.7 KiB
Vue
Raw Normal View History

2023-02-09 16:37:53 +08:00
<template>
2024-09-02 09:50:59 +08:00
<view>
<Cn-page :loading="loading" beforeRender>
<view slot="body">
<view class="transfer">
<!-- <div class="transfer-img" ref="qrCodeUrl" /> -->
<!-- <uqrcode ref="uqrcode" canvas-id="qrcode" :value="content" :options="{ margin: 10 }"></uqrcode> -->
<uqrcode
ref="uqrcode"
canvas-id="qrcode"
:value="content"
size="200"
@complete="complete"
:loading="false"
></uqrcode>
<view style="height: 200rpx"></view>
<view class="transfer-text">请让接收人员扫码接收</view>
<view class="transfer-btn">
<button class="transfer-btn-item" style="background-color: #fff; color: #111" @click="back">
返回
</button>
<button class="transfer-btn-item ml20" @click="scan">扫一扫</button>
</view>
2023-02-09 16:37:53 +08:00
</view>
</view>
2024-09-02 09:50:59 +08:00
</Cn-page>
2024-09-05 09:01:16 +08:00
<uni-popup ref="alertDialog" type="dialog">
<uni-popup-dialog
style="width: 90%; margin: 5%"
type="info"
cancelText="禁止"
confirmText="允许"
title="权限说明"
content='是否允许"灿能物联"使用相机?'
@confirm="handleScon('camera')"
@close="dialogClose"
></uni-popup-dialog>
</uni-popup>
<uni-popup ref="message" type="message">
<uni-popup-message type="info" :duration="0" style="width: 90%; margin: 5%">
<view style="color: #909399; font-style: 16px">相机权限使用说明:</view>
<view style="color: #6c6c6c; margin-top: 3rpx; "> 用于相机扫描二维码!</view>
</uni-popup-message>
</uni-popup>
2024-09-02 09:50:59 +08:00
</view>
2023-02-09 16:37:53 +08:00
</template>
<script>
2023-07-24 15:00:19 +08:00
// import QRCode from 'qrcodejs2'
// import UQRCode from '@/uni_modules/Sansnn-uQRCode/js_sdk/uqrcode/uqrcode.js';
2024-09-02 09:50:59 +08:00
import { transferDevice } from '@/common/api/device'
2023-08-23 16:22:08 +08:00
2023-02-09 16:37:53 +08:00
export default {
2023-07-24 15:00:19 +08:00
data() {
2023-02-09 16:37:53 +08:00
return {
2023-08-30 10:03:07 +08:00
loading: true,
2023-07-31 09:00:30 +08:00
content: '',
2023-08-23 16:22:08 +08:00
options: {},
2023-02-09 16:37:53 +08:00
}
},
methods: {
2023-08-30 10:03:07 +08:00
complete() {
this.loading = false
},
2023-07-24 15:00:19 +08:00
back() {
2024-09-02 09:50:59 +08:00
uni.navigateBack({ delta: 1 })
2023-02-09 16:37:53 +08:00
},
2023-07-24 15:00:19 +08:00
home() {
2024-09-02 09:50:59 +08:00
uni.navigateBack({ delta: 1 })
2023-08-23 16:22:08 +08:00
},
transferDevice(userId) {
transferDevice(this.options.id, userId).then((res) => {
uni.showToast({
title: '移交成功',
icon: 'none',
})
uni.navigateBack()
})
},
scan() {
2024-09-02 09:50:59 +08:00
if (
plus.os.name == 'Android' &&
plus.navigator.checkPermission('android.permission.CAMERA') === 'undetermined'
) {
2024-09-05 09:01:16 +08:00
//未授权
this.$refs.message.open()
this.$refs.alertDialog.open('bottom')
2024-09-02 09:50:59 +08:00
} else {
this.handleScon()
}
},
handleScon() {
2024-09-05 09:01:16 +08:00
this.$refs.message.close()
2023-08-23 16:22:08 +08:00
uni.scanCode({
2024-09-10 08:48:01 +08:00
onlyFromCamera:true,
2023-08-23 16:22:08 +08:00
success: (res) => {
console.log(res)
let data = JSON.parse(res.result)
if (data.type === 'userId') {
this.transferDevice(data.id)
} else {
uni.showToast({
title: '请扫描正确的二维码',
icon: 'none',
})
}
},
})
2023-07-24 15:00:19 +08:00
},
2024-09-05 09:01:16 +08:00
dialogClose() {this.$refs.message.close()},
2023-07-24 15:00:19 +08:00
},
onLoad(options) {
2023-08-23 16:22:08 +08:00
this.options = options
2023-07-31 09:00:30 +08:00
this.content = JSON.stringify({
type: 'transferDevice',
id: options.id,
})
2023-07-24 15:00:19 +08:00
},
2023-02-09 16:37:53 +08:00
}
</script>
2023-07-24 15:00:19 +08:00
<style lang="scss">
2023-02-09 16:37:53 +08:00
.transfer {
padding: 200rpx 34rpx 0;
display: flex;
flex-direction: column;
align-items: center;
.transfer-img {
}
.transfer-text {
font-size: 28rpx;
color: #999999;
margin-top: 30rpx;
}
.transfer-btn {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 100rpx;
width: 100%;
.transfer-btn-item {
flex: 1;
height: 80rpx;
border-radius: 12rpx;
2023-08-03 14:51:36 +08:00
background-color: $uni-theme-color;
2023-02-09 16:37:53 +08:00
font-size: 28rpx;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
}
}
2023-07-24 15:00:19 +08:00
</style>