diff --git a/pages/myinfo/myinfo.vue b/pages/myinfo/myinfo.vue index d617a52..2918d17 100644 --- a/pages/myinfo/myinfo.vue +++ b/pages/myinfo/myinfo.vue @@ -177,6 +177,14 @@ const showRegionPicker = ref(false) const showConfirmPopup = ref(false) const subscribeTmplId = ref('') +// 签署时的额外信息(用于重签回显) +const signExtra = reactive({ + income_amount: '', + guardian_name: '', + guardian_id_card: '', + guardian_relation: '' +}) + // 加载订阅消息模板配置 const loadSubscribeConfig = async () => { try { @@ -271,11 +279,17 @@ const regionText = computed(() => { const onSignResult = (data) => { if (data.type === 'income') { form.sign_income = data.url - if (data.amount) form.income_amount = data.amount + if (data.amount) { + form.income_amount = data.amount + signExtra.income_amount = data.amount + } } else if (data.type === 'privacy') { form.sign_privacy = data.url } else if (data.type === 'privacy_jhr') { form.sign_privacy_jhr = data.url + if (data.guardianName) signExtra.guardian_name = data.guardianName + if (data.guardianIdCard) signExtra.guardian_id_card = data.guardianIdCard + if (data.guardianRelation) signExtra.guardian_relation = data.guardianRelation } else if (data.type === 'promise') { form.sign_promise = data.url } @@ -293,7 +307,20 @@ onBeforeUnmount(() => { }) const goSign = (type) => { - uni.navigateTo({ url: `/pages/sign/sign?type=${type}` }) + let url = `/pages/sign/sign?type=${type}` + if (type === 'income') { + const amt = form.income_amount || signExtra.income_amount || '' + if (amt) url += `&amount=${encodeURIComponent(amt)}` + } + if (type === 'privacy_jhr') { + const gn = signExtra.guardian_name || '' + const gi = signExtra.guardian_id_card || '' + const gr = signExtra.guardian_relation || '' + if (gn) url += `&guardianName=${encodeURIComponent(gn)}` + if (gi) url += `&guardianIdCard=${encodeURIComponent(gi)}` + if (gr) url += `&guardianRelation=${encodeURIComponent(gr)}` + } + uni.navigateTo({ url }) } const previewSign = (type) => { @@ -368,6 +395,10 @@ const loadInfo = async () => { form.sign_privacy_jhr = res.data.sign_privacy_jhr || '' form.sign_promise = res.data.sign_promise || '' form.income_amount = res.data.income_amount || '' + signExtra.income_amount = res.data.income_amount || '' + signExtra.guardian_name = res.data.guardian_name || '' + signExtra.guardian_id_card = res.data.guardian_id_card || '' + signExtra.guardian_relation = res.data.guardian_relation || '' // 设置地区选择器默认索引 if (form.province_code && allRegions.value.length) { const pIdx = allRegions.value.findIndex(r => r.code === form.province_code) @@ -457,6 +488,9 @@ const doSubmit = async () => { sign_privacy_jhr: form.sign_privacy_jhr, sign_promise: form.sign_promise, income_amount: form.income_amount || null, + guardian_name: signExtra.guardian_name || '', + guardian_id_card: signExtra.guardian_id_card || '', + guardian_relation: signExtra.guardian_relation || '', // #ifdef MP-WEIXIN mp_env_version: uni.getAccountInfoSync().miniProgram.envVersion || 'release' // #endif diff --git a/pages/sign/sign.vue b/pages/sign/sign.vue index a2af3c1..7d1aa7c 100644 --- a/pages/sign/sign.vue +++ b/pages/sign/sign.vue @@ -75,6 +75,11 @@ const onSignatureResult = (data) => { onLoad((options) => { signType.value = options.type || 'privacy' + // 回显上次填写的数据 + if (options.amount) incomeAmount.value = decodeURIComponent(options.amount) + if (options.guardianName) guardianName.value = decodeURIComponent(options.guardianName) + if (options.guardianIdCard) guardianIdCard.value = decodeURIComponent(options.guardianIdCard) + if (options.guardianRelation) guardianRelation.value = decodeURIComponent(options.guardianRelation) uni.$on('signatureResult', onSignatureResult) loadContent() }) @@ -125,7 +130,10 @@ const confirmSign = async () => { uni.$emit('signResult', { type: signType.value, url: res.data.url, - amount: signType.value === 'income' ? incomeAmount.value : undefined + amount: signType.value === 'income' ? incomeAmount.value : undefined, + guardianName: signType.value === 'privacy_jhr' ? guardianName.value.trim() : undefined, + guardianIdCard: signType.value === 'privacy_jhr' ? guardianIdCard.value.trim() : undefined, + guardianRelation: signType.value === 'privacy_jhr' ? guardianRelation.value.trim() : undefined }) uni.showToast({ title: '签署成功', icon: 'success' })