我的签字自动回显

This commit is contained in:
2026-08-26 14:43:35 +08:00
parent 0a0840c5d2
commit 013833bc58
@@ -44,6 +44,10 @@ module.exports = {
value: {
handler(val) {
this.signatureContent = val
// 父页面异步初始化后仍未提供签名时,统一回显当前用户在“我的签名”中保存的签名。
if (!val) {
this.loadUserSignature()
}
},
immediate: true
}
@@ -51,12 +55,51 @@ module.exports = {
data() {
return {
signatureContent: null,
userSignatureContent: "",
userSignatureLoaded: false,
userSignatureLoading: false,
showSignaturePanel: false,
historyLayerName: "",
historyLayerUnsubscribe: null
}
},
methods: {
/**
* 读取当前登录用户在“我的签名”中保存的签名。
* 无请求参数;接口返回用户签名记录,组件仅在当前 v-model 为空时回填签名 URL。
*/
loadUserSignature() {
if (this.value) return
if (this.userSignatureLoaded) {
this.applyUserSignature()
return
}
if (this.userSignatureLoading) return
this.userSignatureLoading = true
this.$axios.post("/platform/signature/get")
.then((res) => {
const signatureData = res.code === 0 ? (res.data || {}) : {}
this.userSignatureContent = signatureData.signature || ""
this.userSignatureLoaded = true
this.applyUserSignature()
})
.catch(() => {
// 默认签名读取失败时保留空状态,用户仍可进入签字板完成本次签名。
this.userSignatureLoaded = true
})
.finally(() => {
this.userSignatureLoading = false
})
},
// 仅为空值补充默认签名,避免覆盖历史业务签名或用户刚完成的现场签名。
applyUserSignature() {
if (this.value || !this.userSignatureContent) return
this.signatureContent = this.userSignatureContent
this.$emit("input", this.userSignatureContent)
},
/**
* 打开签字板。
* 无请求参数;优先向全局历史栈增加当前签字弹层,返回值为空。