feat: 签名优化

- 解决签名异常的问题
This commit is contained in:
Huangzhe
2025-03-23 18:44:33 +08:00
parent 9265f2da79
commit 0886599a2f
2 changed files with 29 additions and 11 deletions

View File

@@ -1,6 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { computed, onMounted, ref, useTemplateRef } from 'vue'; import { computed, onMounted, ref, useTemplateRef, watch } from 'vue';
import CommonApi from '@/api/common.js'; import { showConfirmDialog } from 'vant';
// question 属性 // question 属性
const element = defineModel<question>('element', { default: {} }); const element = defineModel<question>('element', { default: {} });
// 属性框是否激活 // 属性框是否激活
@@ -185,15 +186,24 @@ const emitValue = () => {
emit('update:element', element.value); emit('update:element', element.value);
}; };
let aIndex = 1;
/** /**
* 上传文件 * 上传文件
*/ */
async function handleUploadImg() { async function handleUploadImg() {
const file = new File([saveCanvas('blob')!], 'sign.png', { type: 'image/png' }); // const file = new File([saveCanvas('blob')!], 'sign.png', { type: 'image/png' });
const res = await CommonApi.cosUpload(file); // const res = await CommonApi.cosUpload(file);
console.log(`sign upload url`, res); // console.log(`sign upload url`, res);
// 传递答案 // // 传递答案
answer.value = res; // answer.value = res;
showConfirmDialog({
title: '提示',
message: '上传成功',
showCancelButton: false
}).then(() => {
aIndex++;
answer.value = 'this is test' + aIndex;
});
} }
</script> </script>

View File

@@ -16,7 +16,9 @@ answer.value?.value && parseAnswer();
* 监听答案,如果答案变动,重新生成答案,然后提交 * 监听答案,如果答案变动,重新生成答案,然后提交
*/ */
watch(answerValue, (newValue) => { watch(answerValue, (newValue) => {
emit('changeAnswer', { value: newValue }); // console.log(newValue);
question.value.answer = { value: newValue };
// emit('changeAnswer', { value: newValue });
}); });
/** /**
* 解析答案 * 解析答案
@@ -25,13 +27,19 @@ watch(answerValue, (newValue) => {
* value: 'url' * value: 'url'
* } * }
*/ */
function parseAnswer () { function parseAnswer() {
answerValue.value = answer.value.value; answerValue.value = answer.value.value;
} }
</script> </script>
<template> <template>
<sign-question :element="question" :active="false" :isPreview="true" :index="answerIndex" v-model:answer="answerValue" <sign-question
:error-message="question.error" /> :element="question"
:active="false"
:isPreview="true"
:index="answerIndex"
v-model:answer="answerValue"
:error-message="question.error"
/>
</template> </template>
<style scoped lang="scss"></style> <style scoped lang="scss"></style>