From 683a9411fd14a895a1d3374cbad03aab6f898a23 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Tue, 27 Oct 2026 03:28:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AD=BE=E7=BA=A6=E6=8F=90=E7=A4=BA/?= =?UTF-8?q?=E8=B5=A0=E9=80=81=E6=AC=A1=E6=95=B0/=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=88=92=E4=BB=98=E6=8F=90=E9=86=92=EF=BC=8C=E8=87=AA=E8=90=A5?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E6=88=90=E5=8A=9F=E5=BC=B9=E7=AA=97=EF=BC=8C?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E5=BE=AE=E4=BF=A1=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- components/top-bar/top-bar.vue | 9 ++ index.html | 4 +- pages/auth/login/login.vue | 5 +- pages/auth/register/register.vue | 5 +- pages/contract/index.vue | 141 ++++++++++++++--- pages/enquiry/detail.vue | 2 +- pages/enquiry/release.vue | 9 +- pages/index/index.vue | 56 +++++-- pages/index/shop/pay.vue | 5 + pages/order/order.vue | 11 ++ static/favicon.png | Bin 0 -> 81706 bytes template.h5.html | 4 +- .../service/admin/system/user/sys/getList.js | 12 +- .../admin/system/user/sys/giftQybNum.js | 46 ++++++ .../order/kh/getExpiringNotaryPayList.js | 107 ++++++++----- .../pub/remindAutoTransferPayList.js | 143 ++++++++++++++++++ uniCloud-tcb/cloudfunctions/timer/index.js | 9 ++ 通用合同模板.docx | Bin 27632 -> 27644 bytes 通用合同模板.pdf | Bin 150926 -> 155478 bytes 19 files changed, 469 insertions(+), 99 deletions(-) create mode 100644 static/favicon.png create mode 100644 uniCloud-tcb/cloudfunctions/router/service/admin/system/user/sys/giftQybNum.js create mode 100644 uniCloud-tcb/cloudfunctions/router/service/client/timedTask/pub/remindAutoTransferPayList.js diff --git a/components/top-bar/top-bar.vue b/components/top-bar/top-bar.vue index d5f15b6..7b03ae5 100644 --- a/components/top-bar/top-bar.vue +++ b/components/top-bar/top-bar.vue @@ -160,6 +160,15 @@ export default { }).then(() => { vk.userCenter.logout({ success: (data) => { + try { + if (typeof sessionStorage !== 'undefined') { + Object.keys(sessionStorage).forEach((key) => { + if (key.indexOf('notaryAutoTransferTipShown_') === 0) { + sessionStorage.removeItem(key) + } + }) + } + } catch (e) {} // 退出登录成功后的逻辑 uni.reLaunch({ url: '/' diff --git a/index.html b/index.html index 7c22e99..6e91b15 100644 --- a/index.html +++ b/index.html @@ -26,8 +26,8 @@ - - + + diff --git a/pages/auth/login/login.vue b/pages/auth/login/login.vue index 7d8654e..ee9ca31 100644 --- a/pages/auth/login/login.vue +++ b/pages/auth/login/login.vue @@ -92,13 +92,12 @@ + - + --> diff --git a/pages/auth/register/register.vue b/pages/auth/register/register.vue index 15508c3..e008521 100644 --- a/pages/auth/register/register.vue +++ b/pages/auth/register/register.vue @@ -98,13 +98,12 @@ 已有账号?去登录 + - + --> diff --git a/pages/contract/index.vue b/pages/contract/index.vue index b40e1f3..7ad69f3 100644 --- a/pages/contract/index.vue +++ b/pages/contract/index.vue @@ -833,6 +833,42 @@ + + +
+

1、若全体签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法为该文件提供存储及司法调证服务;

+

2、本次签约的实名主体信息须与注册认证阶段提交的信息保持一致;若信息发生变更,您须完成重新认证后方可继续签约。本次签约系由实名认证主体操作或经其全权授权操作,以此防范法律风险及经济损失;

+

+ 3、因法律法规及监管政策可能发生不定期更新,请您在使用我方产品及服务前,查阅最新版 + 《使用协议和隐私协议》 + ;若系统提示您需完成实名认证更新、证书续期等相关事项,您须在签约前完成对应操作,否则由此产生的一切损失,本平台不承担任何责任;您使用本平台服务即视为您已同意前述全部内容。 +

+
+ +
+ + +
+ +
@@ -851,6 +887,17 @@ export default { qybNum: 0 }, dialogVisible: false, + signTipDialog: { + show: false, + resolve: null, + reject: null + }, + agreementDialog: { + show: false, + loading: false, + title: '', + content: '' + }, qybPackageList: [], selectedQyb: null, contractTemplate: '', @@ -1155,18 +1202,16 @@ export default { this.form2.props.loading = false return false } - const res = await this.$confirm(`1、您确认,若全体各签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法对该签约文件予以保存及提供司法调证服务;
2、您确认,当前签约的实名主体名称、手机号码与注册认证阶段提交的信息未发生变更;若发生变更,必须及时进行重新认证后方可继续签约,避免产生严重法律风险与经济损失;
3、您确认,本次签约为本系统实名认证主体操作,如若不是实名认证主体操作,授权委托人需本系统进行授权认证后签约;
4、您确认,您与其他签约方均系在平等、自愿的基础上完成本次签约;
5、你确认,此次签约内容符合《中华人民共和国电子签名法》《民法典》生效保护范畴;
6、如因法律法规、监管部门政策更新等原因,系统提示您重新进行实名认证、证书续期等重要提示时,请您必须在签约前完成,否则造成任何损失,平台不承担任何责任;以上签约条件您均已经知悉并确认,否则您有权拒绝本次签约。`, '特别重要提示', { - confirmButtonText: '知悉同意', - showCancelButton: false, - type: 'warning', - dangerouslyUseHTMLString: true - }) - if (res === 'confirm') { + try { + await this.showSignImportantTip() await vk.callFunction({ url: 'client/contract/kh/addSign', data: this.form2.data }) vk.redirectTo({url: '/pages/contract/index?tab=1'}) + } catch (e) { + this.form2.props.loading = false + return false } } console.log('complete:', pdfRes) @@ -2052,15 +2097,47 @@ export default { * @param sign * @param contract */ + showSignImportantTip() { + return new Promise((resolve, reject) => { + this.signTipDialog.resolve = resolve + this.signTipDialog.reject = reject + this.signTipDialog.show = true + }) + }, + confirmSignTipDialog() { + const resolve = this.signTipDialog.resolve + this.signTipDialog.resolve = null + this.signTipDialog.reject = null + this.signTipDialog.show = false + if (typeof resolve === 'function') resolve('confirm') + }, + onSignTipDialogClose() { + const reject = this.signTipDialog.reject + this.signTipDialog.resolve = null + this.signTipDialog.reject = null + if (typeof reject === 'function') reject('cancel') + }, + async openUsageAgreement() { + this.agreementDialog.show = true + this.agreementDialog.loading = true + this.agreementDialog.content = '' + try { + const data = await vk.callFunction({ + url: 'client/otherArticle/list/pub/getDetail', + data: { id: 'adea4666684a336402937a2c5dcc448e' } + }) + this.agreementDialog.title = data.name || data.title || '使用协议和隐私协议' + this.agreementDialog.content = data.content || '' + } catch (e) { + this.agreementDialog.content = '

协议内容加载失败,请稍后重试

' + } finally { + this.agreementDialog.loading = false + } + }, async extSign(sign, contract) { if (sign) return try { - await this.$confirm(`1、您确认,若全体各签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法对该签约文件予以保存及提供司法调证服务;
2、您确认,当前签约的实名主体名称、手机号码与注册认证阶段提交的信息未发生变更;若发生变更,必须及时进行重新认证后方可继续签约,避免产生严重法律风险与经济损失;
3、您确认,本次签约为本系统实名认证主体操作,如若不是实名认证主体操作,授权委托人需本系统进行授权认证后签约;
4、您确认,您与其他签约方均系在平等、自愿的基础上完成本次签约;
5、你确认,此次签约内容符合《中华人民共和国电子签名法》《民法典》生效保护范畴;
6、如因法律法规、监管部门政策更新等原因,系统提示您重新进行实名认证、证书续期等重要提示时,请您必须在签约前完成,否则造成任何损失,平台不承担任何责任;以上签约条件您均已经知悉并确认,否则您有权拒绝本次签约。`, '提示', { - confirmButtonText: '知悉同意', - showCancelButton: false, - type: 'warning', - dangerouslyUseHTMLString: true - }) + await this.showSignImportantTip() } catch (e) { return } @@ -2500,18 +2577,16 @@ export default { this.form1.props.loading = false return false } - const res = await this.$confirm(`1、您确认,若全体各签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法对该签约文件予以保存及提供司法调证服务;
2、您确认,当前签约的实名主体名称、手机号码与注册认证阶段提交的信息未发生变更;若发生变更,必须及时进行重新认证后方可继续签约,避免产生严重法律风险与经济损失;
3、您确认,本次签约为本系统实名认证主体操作,如若不是实名认证主体操作,授权委托人需本系统进行授权认证后签约;
4、您确认,您与其他签约方均系在平等、自愿的基础上完成本次签约;
5、你确认,此次签约内容符合《中华人民共和国电子签名法》《民法典》生效保护范畴;
6、如因法律法规、监管部门政策更新等原因,系统提示您重新进行实名认证、证书续期等重要提示时,请您必须在签约前完成,否则造成任何损失,平台不承担任何责任;以上签约条件您均已经知悉并确认,否则您有权拒绝本次签约。`, '提示', { - confirmButtonText: '知悉同意', - showCancelButton: false, - type: 'warning', - dangerouslyUseHTMLString: true - }) - if (res === 'confirm') { + try { + await this.showSignImportantTip() await vk.callFunction({ url: 'client/contract/kh/launch', data: this.form1.data }) vk.redirectTo({url: '/pages/contract/index?tab=1'}) + } catch (e) { + this.form1.props.loading = false + return false } } uni.hideLoading() @@ -3182,4 +3257,30 @@ export default { .report-item .report-info { flex: 1; } + +.sign-tip-content { + color: #333; + font-size: 14px; + line-height: 1.8; + max-height: 60vh; + overflow-y: auto; + + p { + margin: 0 0 12px; + text-align: justify; + } +} + +.sign-tip-link { + color: #bd3124; + cursor: pointer; + text-decoration: underline; +} + +.agreement-dialog-body { + max-height: 70vh; + overflow-y: auto; + line-height: 1.7; + padding: 0 8px; +} diff --git a/pages/enquiry/detail.vue b/pages/enquiry/detail.vue index c6931a1..5601514 100644 --- a/pages/enquiry/detail.vue +++ b/pages/enquiry/detail.vue @@ -629,7 +629,7 @@ export default { }, openQuoteServiceFeeDialog() { const rate = this.sheet.notaryServiceRate || 0.1 - return this.$confirm(`提示着您成功签约交易,平台将收取总交易金额 ${rate}%服务费,如您存在利用系统漏洞恶意逃避支付服务费的情况,平台有将您的失信行为进行公布,情况严重的平台予以劝退。 + return this.$confirm(`若您成功签约交易,平台将收取总交易金额 ${rate}%服务费,如您存在利用系统漏洞恶意逃避支付服务费的情况,平台有将您的失信行为进行公布,情况严重的平台予以劝退。 并有权依法追回平台服务费。您承诺此次交易为合法经营,如违反相关法律法规您将承担全部任与平台无关。您已经完全理解并知悉,您不同意请点击'取消',取消报价,您同意以上约定请点击'同意并知悉'。`, '重要提示', { confirmButtonText: '同意并知悉', cancelButtonText: '取消', diff --git a/pages/enquiry/release.vue b/pages/enquiry/release.vue index 06813fa..9b999d0 100644 --- a/pages/enquiry/release.vue +++ b/pages/enquiry/release.vue @@ -227,13 +227,8 @@ - -

重要提示:

- -

1.系统不支持个人用户操作,请使用企业或个体户进行交易或选择自主交易;

-

2.企业用户需平台内进行电子签约,您也可线下双方补充纸质合同:

-

3.购销双方签约后需向平台银联监管账户支付全部货款您选择即为确认并符合以上条件。

-
+ + 重要提示:在自主交易模式下,本平台仅承担信息交互服务职能,仅确保入驻本平台的交易双方已完成实名认证;对于交易的真实性及交易过程中的任一环节,本平台均不承担责任,请用户完成风险评估与风险尽职调查后,审慎开展交易。 diff --git a/pages/index/index.vue b/pages/index/index.vue index 3196e27..d636524 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -116,7 +116,6 @@