58 lines
1.4 KiB
Vue
58 lines
1.4 KiB
Vue
<script setup>
|
||
import {watch, ref} from "vue";
|
||
import XModal from "./XModal.vue";
|
||
import Api from "../api/index.js";
|
||
|
||
const show = defineModel('show');
|
||
const qrCode = ref(null);
|
||
|
||
watch(
|
||
() => show.value,
|
||
(val) => {
|
||
if (val) Api.system.createQrcode().then(({data}) => {
|
||
qrCode.value = data.url;
|
||
})
|
||
}
|
||
)
|
||
</script>
|
||
|
||
<template>
|
||
<view @click="show=true">
|
||
<slot></slot>
|
||
</view>
|
||
|
||
<x-modal
|
||
v-model:show="show">
|
||
<view class="px-[30rpx] py-[40rpx] relative">
|
||
<image @click="show=false" class="!w-[52rpx] !h-[52rpx] absolute top-[-110rpx] right-[calc(-100%-10rpx)]"
|
||
src="/static/icons/close.png"></image>
|
||
|
||
<view class="title">绑定</view>
|
||
<view class="!mt-[24rpx] w-[320rpx] !mx-auto aspect-square">
|
||
<image v-if="qrCode" class="!size-full" :src="qrCode"></image>
|
||
<tui-loading v-else type="row"></tui-loading>
|
||
</view>
|
||
<view class="desc !mt-[24rpx]">截图保存后,使用微信扫码并关注</view>
|
||
</view>
|
||
</x-modal>
|
||
</template>
|
||
|
||
<style lang="scss" scoped>
|
||
.title {
|
||
color: rgb(29, 33, 41);
|
||
font-size: 34rpx;
|
||
font-weight: 500;
|
||
line-height: 48rpx;
|
||
letter-spacing: 0;
|
||
text-align: center;
|
||
}
|
||
|
||
.desc {
|
||
color: rgb(78, 89, 105);
|
||
font-size: 28rpx;
|
||
font-weight: 500;
|
||
letter-spacing: 0;
|
||
text-align: center;
|
||
}
|
||
</style>
|