feat: 签约提示/赠送次数/自动划付提醒,自营支付成功弹窗,隐藏微信登录
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -92,13 +92,12 @@
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<!-- 暂时隐藏微信登录
|
||||
<div class=" threeBorder"><span>第三方登录</span></div>
|
||||
|
||||
<div class="input-groupwpg clear">
|
||||
<a href="javascript:;" @click="toWechat" class="dsf-wetChat" title="微信"><i></i></a>
|
||||
<!-- <a href="javascript:;" @click="toQQ" class="dsf-qq" title="QQ"><i></i></a>-->
|
||||
<!-- <a href="" class="dsf-dx" title="短信"><i></i></a>-->
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -98,13 +98,12 @@
|
||||
<navigator url="/pages/auth/login/login">已有账号?<span
|
||||
style="color: #a92924">去登录</span></navigator>
|
||||
</div>
|
||||
<!-- 暂时隐藏微信登录
|
||||
<div class=" threeBorder"><span>第三方登录</span></div>
|
||||
|
||||
<div class="input-groupwpg clear">
|
||||
<a href="javascript:;" @click="toWechat" class="dsf-wetChat" title="微信"><i></i></a>
|
||||
<!-- <a href="javascript:;" @click="toQQ" class="dsf-qq" title="QQ"><i></i></a>-->
|
||||
<!-- <a href="" class="dsf-dx" title="短信"><i></i></a>-->
|
||||
</div>
|
||||
-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+121
-20
@@ -833,6 +833,42 @@
|
||||
<el-dialog title="支付凭证" :visible.sync="showPayVoucher" width="50%">
|
||||
<el-image :src="payVoucher" :preview-src-list="[payVoucher]"/>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
title="重要提示"
|
||||
:visible.sync="signTipDialog.show"
|
||||
width="640px"
|
||||
:close-on-click-modal="false"
|
||||
append-to-body
|
||||
custom-class="sign-tip-dialog"
|
||||
@close="onSignTipDialogClose"
|
||||
>
|
||||
<div class="sign-tip-content">
|
||||
<p>1、若全体签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法为该文件提供存储及司法调证服务;</p>
|
||||
<p>2、本次签约的实名主体信息须与注册认证阶段提交的信息保持一致;若信息发生变更,您须完成重新认证后方可继续签约。本次签约系由实名认证主体操作或经其全权授权操作,以此防范法律风险及经济损失;</p>
|
||||
<p>
|
||||
3、因法律法规及监管政策可能发生不定期更新,请您在使用我方产品及服务前,查阅最新版
|
||||
<span class="sign-tip-link" @click.stop="openUsageAgreement">《使用协议和隐私协议》</span>
|
||||
;若系统提示您需完成实名认证更新、证书续期等相关事项,您须在签约前完成对应操作,否则由此产生的一切损失,本平台不承担任何责任;您使用本平台服务即视为您已同意前述全部内容。
|
||||
</p>
|
||||
</div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="confirmSignTipDialog">知悉同意</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<el-dialog
|
||||
:title="agreementDialog.title || '使用协议和隐私协议'"
|
||||
:visible.sync="agreementDialog.show"
|
||||
width="70%"
|
||||
append-to-body
|
||||
top="5vh"
|
||||
>
|
||||
<div class="agreement-dialog-body" v-loading="agreementDialog.loading" v-html="agreementDialog.content"></div>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="agreementDialog.show = false">关闭</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -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、您确认,若全体各签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法对该签约文件予以保存及提供司法调证服务;<br>2、您确认,当前签约的实名主体名称、手机号码与注册认证阶段提交的信息未发生变更;若发生变更,必须及时进行重新认证后方可继续签约,避免产生严重法律风险与经济损失;<br>3、您确认,本次签约为本系统实名认证主体操作,如若不是实名认证主体操作,授权委托人需本系统进行授权认证后签约;<br>4、您确认,您与其他签约方均系在平等、自愿的基础上完成本次签约;<br>5、你确认,此次签约内容符合《中华人民共和国电子签名法》《民法典》生效保护范畴;<br>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 = '<p>协议内容加载失败,请稍后重试</p>'
|
||||
} finally {
|
||||
this.agreementDialog.loading = false
|
||||
}
|
||||
},
|
||||
async extSign(sign, contract) {
|
||||
if (sign) return
|
||||
try {
|
||||
await this.$confirm(`1、您确认,若全体各签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法对该签约文件予以保存及提供司法调证服务;<br>2、您确认,当前签约的实名主体名称、手机号码与注册认证阶段提交的信息未发生变更;若发生变更,必须及时进行重新认证后方可继续签约,避免产生严重法律风险与经济损失;<br>3、您确认,本次签约为本系统实名认证主体操作,如若不是实名认证主体操作,授权委托人需本系统进行授权认证后签约;<br>4、您确认,您与其他签约方均系在平等、自愿的基础上完成本次签约;<br>5、你确认,此次签约内容符合《中华人民共和国电子签名法》《民法典》生效保护范畴;<br>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、您确认,若全体各签约方未完成全部签约流程,本签约文件不发生法律效力,系统无法对该签约文件予以保存及提供司法调证服务;<br>2、您确认,当前签约的实名主体名称、手机号码与注册认证阶段提交的信息未发生变更;若发生变更,必须及时进行重新认证后方可继续签约,避免产生严重法律风险与经济损失;<br>3、您确认,本次签约为本系统实名认证主体操作,如若不是实名认证主体操作,授权委托人需本系统进行授权认证后签约;<br>4、您确认,您与其他签约方均系在平等、自愿的基础上完成本次签约;<br>5、你确认,此次签约内容符合《中华人民共和国电子签名法》《民法典》生效保护范畴;<br>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;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -629,7 +629,7 @@ export default {
|
||||
},
|
||||
openQuoteServiceFeeDialog() {
|
||||
const rate = this.sheet.notaryServiceRate || 0.1
|
||||
return this.$confirm(`提示着您成功签约交易,平台将收取总交易金额 ${rate}%服务费,如您存在利用系统漏洞恶意逃避支付服务费的情况,平台有将您的失信行为进行公布,情况严重的平台予以劝退。
|
||||
return this.$confirm(`若您成功签约交易,平台将收取总交易金额 ${rate}%服务费,如您存在利用系统漏洞恶意逃避支付服务费的情况,平台有将您的失信行为进行公布,情况严重的平台予以劝退。
|
||||
并有权依法追回平台服务费。您承诺此次交易为合法经营,如违反相关法律法规您将承担全部任与平台无关。您已经完全理解并知悉,您不同意请点击'取消',取消报价,您同意以上约定请点击'同意并知悉'。`, '重要提示', {
|
||||
confirmButtonText: '同意并知悉',
|
||||
cancelButtonText: '取消',
|
||||
|
||||
@@ -227,13 +227,8 @@
|
||||
</el-radio-group>
|
||||
</view>
|
||||
</view>
|
||||
<view class="text-25 text-main mb-20 flex justify-start items-start">
|
||||
<p>重要提示:</p>
|
||||
<view class="flex flex-col justify-start items-start">
|
||||
<p>1.系统不支持个人用户操作,请使用企业或个体户进行交易或选择自主交易;</p>
|
||||
<p class="my-15">2.企业用户需平台内进行电子签约,您也可线下双方补充纸质合同:</p>
|
||||
<p>3.购销双方签约后需向平台银联监管账户支付全部货款您选择即为确认并符合以上条件。</p>
|
||||
</view>
|
||||
<view class="text-25 text-main mb-20">
|
||||
重要提示:在自主交易模式下,本平台仅承担信息交互服务职能,仅确保入驻本平台的交易双方已完成实名认证;对于交易的真实性及交易过程中的任一环节,本平台均不承担责任,请用户完成风险评估与风险尽职调查后,审慎开展交易。
|
||||
</view>
|
||||
|
||||
<view class="form-title-wrap">
|
||||
|
||||
+41
-15
@@ -116,7 +116,6 @@
|
||||
<div class="mod-inner2Listcenter clearfix sliper" style="margin-top: 0">
|
||||
<ul class="clearfix flex justify-start items-start flex-wrap">
|
||||
<li v-for="(item, index) in enquirySheetData" class="inli-mask" :key="index"
|
||||
style="height: 200px"
|
||||
@click="vk.navigateTo('/pages/enquiry/detail?id=' + item._id);">
|
||||
<a href="javascript:void(0)" style="display: block;" rel="nofollow">
|
||||
<div class="detail">
|
||||
@@ -127,7 +126,7 @@
|
||||
<div class="text-30 py-10 text-black line-1">
|
||||
<span>{{ item.title.split('-')[0] }}</span>
|
||||
</div>
|
||||
<div class="text-30 py-10 text-black line-1">
|
||||
<div class="text-30 py-10 text-black line-1" v-if="item.title.split('-')[1]">
|
||||
<span>{{ item.title.split('-')[1] }}</span>
|
||||
</div>
|
||||
<div class="text-30 py-10 text-black line-1">
|
||||
@@ -135,7 +134,7 @@
|
||||
item.productList.map(product => (product.procureNumber ? product.procureNumber : '') + (product.procureUnit ? product.procureUnit : ''))[0]
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="text-25 mt-25">
|
||||
<div class="text-25 mt-25 line-1">
|
||||
<span>{{ item.fullAddress }}</span>
|
||||
</div>
|
||||
<div class="detail-num flex flex-col justify-start items-start">
|
||||
@@ -575,7 +574,7 @@
|
||||
<div slot="header" class="clearfix pointer">
|
||||
<span @click="navTo(`/pages/otherArticle/list?id=${item.id}`)">{{ item.title }}</span>
|
||||
</div>
|
||||
<div class="news-list" style="height: 140px">
|
||||
<div class="news-list news-list--zx">
|
||||
<el-link @click="navTo(`/pages/otherArticle/detail?id=${article._id}`)"
|
||||
v-for="(article, articleIndex) in item.list" :key="articleIndex"
|
||||
:underline="false">
|
||||
@@ -757,21 +756,31 @@ export default {
|
||||
vk.navigateTo(path);
|
||||
},
|
||||
async checkExpiringNotaryPayList() {
|
||||
if (!vk.getVuex('$user.userInfo._id')) return
|
||||
const userId = vk.getVuex('$user.userInfo._id')
|
||||
if (!userId) return
|
||||
const tipKey = `notaryAutoTransferTipShown_${userId}`
|
||||
// 同一登录会话只提示一次(退出登录会清除)
|
||||
try {
|
||||
if (typeof sessionStorage !== 'undefined' && sessionStorage.getItem(tipKey) === '1') return
|
||||
} catch (e) {}
|
||||
try {
|
||||
const res = await vk.callFunction({
|
||||
url: 'client/order/kh/getExpiringNotaryPayList',
|
||||
loading: false,
|
||||
})
|
||||
const count = res.data && res.data.count ? res.data.count : 0
|
||||
if (!count) return
|
||||
this.$confirm(`您有${count}笔付款申请将在24小时内自动划付,请及时处理。`, '付款申请即将到期', {
|
||||
confirmButtonText: '立即处理',
|
||||
cancelButtonText: '稍后处理',
|
||||
showCancelButton: true,
|
||||
const content = res.data && res.data.content ? res.data.content : ''
|
||||
if (!count || !content) return
|
||||
try {
|
||||
if (typeof sessionStorage !== 'undefined') sessionStorage.setItem(tipKey, '1')
|
||||
} catch (e) {}
|
||||
this.$alert(content, '重要提示', {
|
||||
confirmButtonText: '悉知同意',
|
||||
dangerouslyUseHTMLString: false,
|
||||
type: 'warning',
|
||||
}).then(() => {
|
||||
vk.navigateTo({url: '/pages/order/order?menuIndex=1'})
|
||||
closeOnClickModal: false,
|
||||
closeOnPressEscape: false,
|
||||
showClose: false,
|
||||
}).catch(() => {})
|
||||
} catch (err) {
|
||||
console.error('checkExpiringNotaryPayList error:', err)
|
||||
@@ -1031,9 +1040,20 @@ export default {
|
||||
margin: 0 auto;
|
||||
|
||||
.inli-mask {
|
||||
padding: 10px;
|
||||
height: 400rpx;
|
||||
flex: 0 0 232px
|
||||
padding: 10px 10px 16px;
|
||||
min-height: 200px;
|
||||
height: auto;
|
||||
box-sizing: border-box;
|
||||
flex: 0 0 232px;
|
||||
overflow: visible;
|
||||
|
||||
.detail-num {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.time {
|
||||
margin-top: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1269,6 +1289,12 @@ export default {
|
||||
flex-direction: column;
|
||||
align-items: self-start;
|
||||
line-height: 1.8em;
|
||||
|
||||
&--zx {
|
||||
min-height: 140px;
|
||||
padding-bottom: 16px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
.news-card {
|
||||
|
||||
@@ -325,6 +325,11 @@ export default {
|
||||
vk.redirectTo({
|
||||
url: '/pages/contract/index?tab=sign',
|
||||
})
|
||||
} else if (this.info.type === 1 || this.info.type === 14) {
|
||||
// 金久信自营:返回订单页后展示提交成功弹窗
|
||||
vk.redirectTo({
|
||||
url: '/pages/order/order?menuIndex=1&selfSupportPaySuccess=1',
|
||||
})
|
||||
} else {
|
||||
vk.redirectTo({
|
||||
url: '/pages/order/order?menuIndex=1',
|
||||
|
||||
@@ -460,6 +460,17 @@ export default {
|
||||
this.userInfo = data.userInfo
|
||||
}
|
||||
})
|
||||
if (options.selfSupportPaySuccess === '1' || options.selfSupportPaySuccess === 1) {
|
||||
this.$nextTick(() => {
|
||||
this.$alert('您已成功提交订单,请等待信息提示或平台服务人员通知。', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
showClose: false,
|
||||
closeOnClickModal: false,
|
||||
closeOnPressEscape: false,
|
||||
type: 'success'
|
||||
}).catch(() => {})
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
dayjs,
|
||||
|
||||
Reference in New Issue
Block a user