- 将 lotNo、price 和 auctionArtworkUuid存储到本地存储 -优化个人信息页面的表单显示逻辑 - 在协议页面添加竞拍信息 - 移除签名面板中的冗余代码
106 lines
2.5 KiB
Vue
106 lines
2.5 KiB
Vue
<script setup>
|
|
import { VueSignaturePad } from 'vue-signature-pad';
|
|
import { showToast } from 'vant';
|
|
import { onMounted } from 'vue';
|
|
import {codeAuthStore} from "~/stores-collect-code/auth/index.js";
|
|
import {signOffline} from "~/api/goods/index.js";
|
|
const {formData,number}=codeAuthStore()
|
|
const signaturePad = ref(null);
|
|
definePageMeta({
|
|
layout: ''
|
|
});
|
|
const router = useRouter();
|
|
const imgUrl = ref('');
|
|
const show = ref(false);
|
|
const goBack = () => {
|
|
router.back()
|
|
// 返回逻辑
|
|
};
|
|
|
|
const submitSignature = () => {
|
|
if (signaturePad.value?.isEmpty()) {
|
|
showToast('请先签名');
|
|
return;
|
|
}
|
|
const { data } = signaturePad.value?.saveSignature(); // 返回 base64 格式的图片数据
|
|
imgUrl.value = data;
|
|
show.value = true;
|
|
};
|
|
|
|
const clearSignature = () => {
|
|
signaturePad.value?.clearSignature();
|
|
};
|
|
const confirm=async ()=>{
|
|
const res=await signOffline({
|
|
userInfo:formData.value,
|
|
signOrder:Number(number.value),
|
|
signImgFileData:imgUrl.value
|
|
})
|
|
if (res.status===0){
|
|
router.push('/collectCode/signature/result')
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<div class="signature-container">
|
|
<div class="flex flex-col h-100vh px-20px py-20px bg-gray">
|
|
<VueSignaturePad
|
|
width="100%"
|
|
class="signature bg-#fff rounded-10px mb-10px"
|
|
ref="signaturePad"
|
|
/>
|
|
<div class="flex justify-evenly">
|
|
<van-button class="!h-40px mr-15px" type="primary" @click="goBack">
|
|
返回
|
|
</van-button>
|
|
<van-button class="!h-40px" type="warning" @click="clearSignature">
|
|
清空
|
|
</van-button>
|
|
<van-button class="!h-40px" type="primary" @click="submitSignature">
|
|
确认
|
|
</van-button>
|
|
</div>
|
|
<van-dialog v-model:show="show" show-cancel-button @confirm="confirm">
|
|
<img class="w-300px h-200px" :src="imgUrl" />
|
|
</van-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<style scoped>
|
|
.signature-container {
|
|
width: 100%;
|
|
height: 100vh;
|
|
/* 强制竖屏显示 */
|
|
view-transition: none;
|
|
transform: rotate(0deg) !important;
|
|
}
|
|
|
|
:deep(.signature>canvas) {
|
|
height: 100%;
|
|
}
|
|
|
|
/* 横屏适配 */
|
|
@media screen and (orientation: landscape) {
|
|
.signature-container {
|
|
/* 在横屏时保持竖屏宽度 */
|
|
max-width: 100vh;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.flex {
|
|
/* 确保在横屏时内容不会过宽 */
|
|
max-width: 100vh;
|
|
margin: 0 auto;
|
|
}
|
|
}
|
|
|
|
/* 确保签名板在各种屏幕尺寸下都能正常显示 */
|
|
.signature {
|
|
flex: 1;
|
|
min-height: 60vh;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
</style> |