243 lines
6.6 KiB
Vue
243 lines
6.6 KiB
Vue
<template>
|
|
<view class="main-content">
|
|
<!--顶部内容-->
|
|
<view class="top">
|
|
<image class="top-image" :src="contract_bg" mode="widthFix"></image>
|
|
<view class="top-title">线上签约合同</view>
|
|
</view>
|
|
<!--主要内容-->
|
|
<view class="contract-content">
|
|
<image class="tips-icon" :src="Number(info.binding_status) === 1 ? contract_yes : contract_no" mode="widthFix"></image>
|
|
<view class="tips">温馨提示</view>
|
|
<view class="sub-tips">
|
|
<text v-if="Number(info.binding_status) === 0">您还未授权,请先授权!</text>
|
|
<text v-else-if="Number(info.sign_status) === 0">您还未签署电子合同,请尽快前往签约!</text>
|
|
<text v-else-if="Number(info.binding_status) === 1 && Number(info.sign_status) === 1">您已签署电子合同,可点击下载合同!</text>
|
|
<text v-else-if="Number(info.sign_status) === 2">您已拒绝签署合同!</text>
|
|
</view>
|
|
<view class="operation-btn" v-if="Number(info.binding_status) === 0" @click="goToAuth">去授权</view>
|
|
<view class="operation-btn" v-else-if="Number(info.sign_status) === 0" @click="getSignInfo">去签约</view>
|
|
<view class="operation-btn" v-else-if="Number(info.binding_status) === 1 && Number(info.sign_status) === 1" @click="getSignInfo">查看合同</view>
|
|
<view class="operation-btn" v-else-if="Number(info.sign_status) === 2" @click="againSign">重新签约</view>
|
|
</view>
|
|
<!-- 授权登录 -->
|
|
<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authClose"></authorize>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {mapGetters} from "vuex";
|
|
import authorize from '@/components/Authorize';
|
|
import { HTTP_REQUEST_URL } from '@/config/app';
|
|
import { contractAuthInfo,contractSignInfo,contractAgainSign } from "@/api/agent";
|
|
|
|
export default {
|
|
name: 'business',
|
|
components: {
|
|
authorize
|
|
},
|
|
computed: {
|
|
...mapGetters(['isLogin', 'uid', 'userInfo', 'viewColor'])
|
|
},
|
|
data() {
|
|
return {
|
|
// 登录相关
|
|
isAuto: false, //没有授权的不会自动授权
|
|
isShowAuth: false,//是否隐藏授权
|
|
// 图标
|
|
contract_bg: '',
|
|
contract_no: '',
|
|
contract_yes: '',
|
|
// 签约信息
|
|
role_id: '',
|
|
role_type: '',
|
|
info: {},
|
|
}
|
|
},
|
|
onReady() {
|
|
this.contract_bg = `${HTTP_REQUEST_URL}/static/images/icon/contract_bg.png`;
|
|
this.contract_no = `${HTTP_REQUEST_URL}/static/images/icon/contract_no.png`;
|
|
this.contract_yes = `${HTTP_REQUEST_URL}/static/images/icon/contract_yes.png`;
|
|
},
|
|
onLoad(options) {
|
|
this.role_id = options.role_id || 0;
|
|
this.role_type = options.role_type || 0;
|
|
console.log("接收的所有参数", options)
|
|
// 判断:是否登录
|
|
if (!this.isLogin) {
|
|
// 未登录 授权登录
|
|
this.isAuto = true;
|
|
this.isShowAuth = true
|
|
}else{
|
|
// 已登录 获取信息
|
|
this.init();
|
|
}
|
|
},
|
|
methods: {
|
|
// 授权回调
|
|
onLoadFun() {
|
|
if(this.isLogin){
|
|
this.isShowAuth = false;
|
|
this.init();
|
|
}
|
|
},
|
|
// 授权关闭
|
|
authClose(e) {
|
|
this.isShowAuth = e
|
|
},
|
|
// 授权成功 初始化
|
|
init () {
|
|
this.getAuthInfo();
|
|
},
|
|
// 授权流程 - 获取授权信息
|
|
getAuthInfo(){
|
|
let _this = this;
|
|
let params = {
|
|
role_type: _this.role_type,
|
|
role_id: _this.role_id
|
|
};
|
|
contractAuthInfo(params).then(res => {
|
|
if(Number(res.status) === 200){
|
|
let data = res.data || {};
|
|
_this.info = data || {};
|
|
}else{
|
|
_this.$util.Tips({title: res.msg});
|
|
}
|
|
}).catch(err => {
|
|
_this.$util.Tips({title: err});
|
|
});
|
|
},
|
|
// 授权流程 - 去授权
|
|
goToAuth(){
|
|
// 存在个人授权链接 跳转并且进行签约
|
|
let authUrl = this.info.authUrl || '';
|
|
if(authUrl){
|
|
uni.navigateTo({
|
|
url: '/pages/webview/webview?url=' + encodeURIComponent(authUrl)
|
|
})
|
|
}
|
|
},
|
|
// 签署流程 - 获取签署信息
|
|
getSignInfo(){
|
|
let _this = this;
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
});
|
|
contractSignInfo({ id: _this.info.id }).then(res => {
|
|
uni.hideLoading();
|
|
if(Number(res.status) === 200){
|
|
let data = res.data || {};
|
|
if(data.actorSignTaskEmbedUrl){
|
|
uni.navigateTo({
|
|
url: '/pages/webview/webview?url=' + encodeURIComponent(data.actorSignTaskEmbedUrl)
|
|
})
|
|
}
|
|
}else{
|
|
_this.$util.Tips({title: res.msg});
|
|
}
|
|
}).catch(err => {
|
|
uni.hideLoading();
|
|
_this.$util.Tips({title: err});
|
|
});
|
|
},
|
|
// 重新签约
|
|
againSign(){
|
|
let _this = this;
|
|
uni.showLoading({
|
|
title: '加载中...',
|
|
mask: true
|
|
});
|
|
contractAgainSign({ id: _this.info.id }).then(res => {
|
|
uni.hideLoading();
|
|
if(Number(res.status) === 200){
|
|
let data = res.data || {};
|
|
if(data.actorSignTaskEmbedUrl){
|
|
uni.navigateTo({
|
|
url: '/pages/webview/webview?url=' + encodeURIComponent(data.actorSignTaskEmbedUrl)
|
|
})
|
|
}
|
|
}else{
|
|
_this.$util.Tips({title: res.msg});
|
|
}
|
|
}).catch(err => {
|
|
uni.hideLoading();
|
|
_this.$util.Tips({title: err});
|
|
});
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.main-content{
|
|
width: 100vw!important;
|
|
min-height: 100vh!important;
|
|
background: #ffffff;//#F6F6F6
|
|
|
|
.top{
|
|
width: 100vw;
|
|
position: relative;
|
|
|
|
.top-image{
|
|
width: 100vw!important;
|
|
}
|
|
.top-title{
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
height: 230rpx;
|
|
line-height: 230rpx;
|
|
padding-left: 50rpx;
|
|
font-size: 41rpx;
|
|
font-weight: bold;
|
|
color: #eb0000;
|
|
}
|
|
}
|
|
|
|
.contract-content{
|
|
width: 100vw;
|
|
display: inline-flex;
|
|
flex-direction: column;
|
|
flex-wrap: nowrap;
|
|
justify-content: center;
|
|
align-items: center;
|
|
position: absolute;
|
|
top: 230rpx;
|
|
z-index: 10;
|
|
background: #ffffff;
|
|
padding-top: 50rpx;
|
|
border-top-left-radius: 30rpx;
|
|
border-top-right-radius: 30rpx;
|
|
|
|
.tips-icon{
|
|
width: 50rpx!important;
|
|
}
|
|
.tips{
|
|
height: 70rpx;
|
|
line-height: 70rpx;
|
|
font-size: 32rpx;
|
|
font-weight: bold;
|
|
}
|
|
.sub-tips{
|
|
height: 50rpx;
|
|
line-height: 50rpx;
|
|
font-size: 28rpx;
|
|
color: #6a6a6a;
|
|
}
|
|
.operation-btn{
|
|
margin-top: 50rpx;
|
|
width: 80%;
|
|
border-radius: 100rpx;
|
|
text-align: center;
|
|
height: 90rpx;
|
|
line-height: 90rpx;
|
|
background-color: #d60000;
|
|
color: #ffffff;
|
|
}
|
|
}
|
|
}
|
|
</style>
|