Commit f27f3b1a authored by 李晓兵's avatar 李晓兵

Merge branch 'develop' of https://hel.hand-china.com/xugong/hls-xcmg-vue-app into develop

parents f54556aa 56a54d6f
......@@ -19,8 +19,8 @@
<div class="center">
<div><span>合同金额</span><p>{{ item.total_price|currency }}</p></div>
<div><span>已还金额</span><p class="bold">{{ item.recivied_amount|currency }}</p></div>
<span class="red">逾期{{ item.overdue_times }}</span>
<section @click="toRepayDetails(item.project_id)">
<span v-if="item.overdue_status==='Y'" class="red">已逾</span>
<section @click="toRepayDetails(item)">
<img src="@/assets/contractRepayment/view.png" alt="">
<span>查看合同明细</span>
</section>
......@@ -90,7 +90,8 @@ export default {
this.$router.push({
name: 'RepayDetails',
params: {
project_id: e,
project_id: e.project_id,
overdue_status: e.overdue_status,
},
})
},
......@@ -213,7 +214,6 @@ export default {
div:first-child {
border-top: 1px solid #F3F3F7;
}
span.red{
margin-top: 10px;
position: relative;
......
......@@ -62,6 +62,7 @@
</div>
</div>
<div slot="content">
<span :class="['status','red']">{{ '逾期X期' }}</span>
<div class="plan" @click="toRepayPlan(item.contract_id)">
<img src="@/assets/contractRepayment/plan.png" alt="">
<span>还款计划</span>
......@@ -81,6 +82,7 @@ export default {
},
data () {
return {
overdue_status: this.$route.params.overdue_status,
detailInfo: {
project_number: '',
agent_bp_name: '',
......@@ -155,6 +157,18 @@ export default {
</script>
<style lang='less' >
#repay-details {
.status{
margin-bottom:20px;
display: inline-block;
}
.red{
color: red;
border-bottom: 1px solid red;
}
.blue{
color: blue;
border-bottom: 1px solid blue;
}
.h-header {
background-color: @headerColor;
.h-header-btn {
......
<!--
* @Author: your name
* @Date: 2019-09-29 10:02:11
* @LastEditTime: 2019-11-13 09:37:51
* @LastEditTime: 2019-11-13 17:20:21
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
......@@ -567,12 +567,11 @@ export default {
auth_credit_flag: 'Y',
},
}
// vm.hlsPopup.showLoading('数据加载中')
vm.hlsPopup.showLoading('请稍后')
vm.hlsHttp.post(url, param).then(function (res) {
// vm.hlsPopup.hideLoading()
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
// vm.guarantorInfo = res.lists
console.log('同意')
}
})
},
......
......@@ -96,10 +96,10 @@ export default {
vm.done = []
vm.tabNum = 0
vm.undo = vm.lists.filter(i => {
return i.leases_status === 'N'
return i.car_start_status === 'REJECTED' || i.car_start_status === 'NEW'
})
vm.done = vm.lists.filter(i => {
return i.leases_status === 'Y'
return i.car_start_status === 'APPROVED'
})
this.showList = this.undo
},
......
......@@ -2,7 +2,7 @@
* @Description: 合同详情
* @Author: your name
* @Date: 2019-09-25 15:38:21
* @LastEditTime: 2019-10-29 09:53:42
* @LastEditTime: 2019-11-13 18:38:45
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -171,7 +171,7 @@
</div>
</h-content>
<h-content v-if="tabNum === 2">
<list-item :item-height="56">
<!-- <list-item :item-height="56">
<item :proportion="[4,1]">
<div slot="name" class="aguremrnt-list">
<img src="@/assets/distributorSign/agreement.png" alt="" class="pic">
......@@ -179,7 +179,7 @@
</div>
<img slot="content" src="@/assets/distributorSign/into.png" alt="">
</item>
</list-item>
</list-item> -->
<list-item :item-height="56">
<item :proportion="[4,1]">
<div slot="name" class="aguremrnt-list">
......@@ -187,10 +187,10 @@
<p class="second">经销商担保协议</p>
<img src="@/assets/distributorSign/read.png" alt="" class="read">
</div>
<img slot="content" src="@/assets/distributorSign/into.png" alt="">
<div slot="content" class="in-detail"><img src="@/assets/constractSigning/detail.png" alt=""></div>
</item>
</list-item>
<list-item :item-height="56">
<!-- <list-item :item-height="56">
<item :proportion="[4,1]">
<div slot="name" class="aguremrnt-list">
<img src="@/assets/distributorSign/gray.png" alt="" class="pics">
......@@ -199,37 +199,13 @@
</div>
<img slot="content" src="@/assets/distributorSign/into.png" alt="">
</item>
</list-item>
</list-item> -->
</h-content>
<bottom-tab v-if="confirm_status!=='APPROVED'&& (this.$route.params.hasButtom || hasButtomStorage)" class="footer-button">
<!-- <tab-button class="approve" @click.native="showModalValue=true"> -->
<!-- <img src="@/assets/intoApproval/approve.png" > -->
<tab-button class="approve" @click.native="contractConfirm">
<bottom-tab v-if="confirm_status!=='APPROVED'" class="footer-button">
<tab-button class="approve" @click.native="contractConfirm('APPROVED')">
确认签约
</tab-button>
</bottom-tab>
<!-- <h-modal
v-if="confirm_status!=='APPROVED'&& (this.$route.params.hasButtom || hasButtomStorage)" ref="modal" v-model="showModalValue" position="bottom">
<h-view>
<h-content class="approveContent">
<div class="approveBottom">
<span>
审批意见
<img src="@/assets/intoApproval/close1.png" @click="showModalValue=false" >
</span>
<textarea v-model="confirm_note" cols="8" rows="20" placeholder="请输入" />
</div>
</h-content>
<bottom-tab>
<tab-button class="reject" @click.native="showModalValue=true;charge('拒绝','REJECTED')">
<img src="@/assets/intoApproval/reject.png" >拒绝
</tab-button>
<tab-button class="same" @click.native="showModalValue=true;charge('同意','APPROVED')">
<img src="@/assets/intoApproval/approve.png" >同意
</tab-button>
</bottom-tab>
</h-view>
</h-modal> -->
</h-view>
</template>
......@@ -246,7 +222,6 @@ export default {
},
data () {
return {
hasButtomStorage: window.localStorage.getItem('hasButtom'),
showModalValue: false,
info: {},
tabNum: 0,
......@@ -254,8 +229,10 @@ export default {
bp_flag: false,
guarantorInfo: [],
bp_class: window.sessionStorage.getItem('bp_class'),
confirm_status: this.$route.params.confirm_status,
confirm_status: '',
faceListUpload: [], // 自拍照上传
confirm_note: '',
confirm_id: window.sessionStorage.getItem('confirm_id'),
}
},
computed: {},
......@@ -275,6 +252,7 @@ export default {
},
},
created () {
this.confirm_status = window.sessionStorage.getItem('confirm_status')
if (this.bp_class === 'NP') {
this.bp_flag = false
......@@ -291,27 +269,117 @@ export default {
methods:
{
// 签约确认
contractConfirm () {
contractConfirm (status) {
let vm = this
this.hlsPopup.showConfirm({
title: '提示',
content: '您确认签约吗?',
onConfirm: (data) => {
if (data) {
this.issure('APPROVED')
} else {
// this.issure('APPROVED')
vm.takePhonto(status)
}
},
})
},
takePhonto (status) {
let vm = this
hlsPopup.showPopup({
title: '提示',
content: `请自拍一张`,
onConfirm: () => {
vm.takePhontoOpenCamera(status)
},
})
},
// 打开相机自拍
takePhontoOpenCamera (status) {
let vm = this
vm.faceListUpload = []
let obj = {
'pkvalue': vm.confirm_id,
'source_type': 'PRJ_PROJECT_BP_CONFIRM',
'picture': '',
'filePath': '',
'attachment_id': '',
'user_id': 1,
'fileName': 'face',
}
let cameraoptions = {
quality: 100,
cameraDirection: 1,
}
let success = function (imgdata) {
obj.filePath = imgdata
// obj.filePath = 'http://hlsapp.hand-china.com/file/XCMG/2.jpg'
vm.confirmContractSign(imgdata, status)
vm.faceListUpload.push(obj)
}
let error = function () {
hlsPopup.showLongCenter('请拍照')
}
hlsUtil.openCamera(cameraoptions, success, error)
},
// 执行同意的逻辑(查询对应的身份证正面图片->人脸识别->确认签约)
async confirmContractSign (faceImg, status) {
let idCardImgUrl = await this.idCardImgUrlGet()
this.faceIdentify(faceImg, idCardImgUrl, status)
},
// 获取身份证照片
async idCardImgUrlGet () {
let vm = this
let url = $config.basePath + 'prj_id_card_query'
let param = {
confirm_id: vm.confirm_id,
}
hlsPopup.showLoading('请稍候')
let res = await vm.$post(url, param)
hlsPopup.hideLoading()
if (res.result === 'S') {
let cardUrl = process.env.filePath + 'attachment_id=' + res.info.attachment_id + '&access_token=' + window.localStorage.access_token
return cardUrl
} else {
hlsPopup.showLongCenter(res.message)
return null
}
},
// 人脸比对
faceIdentify (faceImg, idCardImgUrl, status) {
let vm = this
let obj = {
'fileUrl': faceImg,
'idCardImgUrl': idCardImgUrl,
}
hlsPopup.showLoading('正在比对')
let url = process.env.ocrPath + '/baidu/ocr/face'
hlsUtil.baiduOcrFace(obj, url, function (res) {
hlsPopup.hideLoading()
if (res.success) {
let identifyScore = res.result.result.score.toFixed(0)
hlsPopup.showConfirm({
title: '提示',
content: `识别分数为${identifyScore}`,
onConfirm: (data) => {
if (data) {
vm.issure(status)
} else {
}
},
})
}
})
},
// 确认逻辑
issure (status) {
let vm = this
let url = process.env.basePath + 'do_confrim_bp'
let param = {
'master': {
confirm_id: vm.$route.params.confirm_id,
confirm_id: vm.confirm_id,
confirm_status: status,
confirm_note: vm.confirm_note,
},
......@@ -320,6 +388,7 @@ export default {
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.save_picture(vm.faceListUpload)
vm.hlsPopup.showSuccess('签约成功')
vm.$router.push({
name: 'ContractList',
......@@ -329,6 +398,46 @@ export default {
}
})
},
// 图片保存
save_picture (list) {
alert('list' + JSON.stringify(list))
let vm = this
if (list.length) {
// hlsPopup.showLoading('图片上传请稍候')
var alreadyUploadNum = 0
var attLength = 0
var recordUploadInterval = setInterval(function () {
if (alreadyUploadNum === attLength) {
clearInterval(recordUploadInterval)
/* hlsPopup.hideLoading()
hlsPopup.showLongCenter('图片上传成功') */
}
}, 500)
for (var i = 0; i < list.length; i++) {
let uploadSuccess = function (res) {
if (res.result === 'S') {
alreadyUploadNum++
for (var j = 0; j < list.length; j++) {
if (list[j].filePath === res.response.filePath) {
list[j].attachment_id = res.response.attachment_id
vm.faceListUpload.push(list[j])
alert('faceListUpload' + JSON.stringify(vm.faceListUpload))
break
}
}
} else {
hlsPopup.hideLoading()
}
}
if (!list[i].attachment_id) {
attLength++
hlsUtil.fileUploadSvc(list[i], uploadSuccess)
}
}
} else {
hlsPopup.hideLoading()
}
},
// 基本信息
getBseMsg () {
let vm = this
......@@ -396,44 +505,11 @@ export default {
name: 'FinancDetails',
params: {
project_id: window.sessionStorage.getItem('project_id'),
confirm_status: this.confirm_status,
// confirm_status: this.confirm_status,
product_num: this.info.product_num,
},
})
},
charge (val, status) {
this.hlsPopup.showConfirm({
title: '提示',
content: `您确认${val}吗?`,
onConfirm: (data) => {
if (data) {
debugger
let vm = this
let url = process.env.basePath + 'do_confrim_bp'
let param = {
'master': {
confirm_id: vm.$route.params.confirm_id,
confirm_status: status,
confirm_note: vm.confirm_note,
},
}
vm.hlsPopup.showLoading('提交数据中!')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.hlsPopup.showSuccess(`审批成功,已${val}`)
vm.$router.push({
name: 'ContractList',
})
} else {
vm.hlsPopup.showSuccess(res.message)
}
})
}
// }
},
})
},
},
}
</script>
......@@ -453,6 +529,17 @@ export default {
line-height: 24px;
}
}
.in-detail{
background-color: rgba(0,70,156,0.08);
width: 48px;
height: 56px;
text-align: center;
line-height: 65px;
img{
width: 16px;
}
}
.name-box {
display: inline-block;
text-align: center;
......
......@@ -110,20 +110,20 @@ export default {
if (vm.approvedLists.length > 0 && vm.approvedLists.length < 10) {
vm.$refs.scrollList.update(true)
}
}else {
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
goDetails (item) {
window.sessionStorage.setItem('confirm_id', item.confirm_id)
window.sessionStorage.setItem('bp_class', item.bp_class)
window.sessionStorage.setItem('project_id', item.project_id)
window.sessionStorage.setItem('confirm_status', item.confirm_status)
this.$router.push({
name: 'ContractDetails',
params: {
confirm_id: item.confirm_id,
confirm_status: item.confirm_status,
hasButtom: true,
},
})
},
......
<!--
* @Author: your name
* @Date: 2019-10-30 19:29:24
* @LastEditTime: 2019-11-13 10:39:56
* @LastEditTime: 2019-11-13 16:36:01
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
......@@ -17,7 +17,7 @@
<div class="total">
<div class="sum">
<div>融资</div>
<div>租金总</div>
<p>{{ info.total_rental_sum | currency }}</p>
<img src="@/assets/contractInquire/num.png" alt="">
<h3><span>{{ info.lease_times }}</span></h3>
......@@ -46,11 +46,11 @@
<span>{{ dateConverse(item.due_date).substr(5,10) }}</span>
</div>
<div class="name">
<p>款项</p>
<p>租金</p>
<span>款项</span>
<span>租金</span>
</div>
<div class="number">
<p>应还金额</p>
<span>应还金额</span>
<span :class="{'orang':statu==='orange','blu':statu==='blue','gree':statu==='green'}">{{ item.rental*product_num |currency }}</span>
</div>
<img v-if="statu === 'black'" src="@/assets/contractInquire/done.png" alt="" class="status">
......
<!--
* @Author: your name
* @Date: 2019-11-07 17:48:53
* @LastEditTime: 2019-11-08 14:20:16
* @LastEditTime: 2019-11-13 11:29:25
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
......
......@@ -172,7 +172,6 @@ export default {
<style lang='less' >
#contract-record {
.top-head {
position: fixed;
width: 100%;
height: 142px;
background: url("../../../assets/payment/back1.png");
......@@ -204,8 +203,7 @@ export default {
.pay-content {
width: 100%;
position: relative;
top: 80px;
margin-top:-60px;
height: 370px;
overflow: scroll;
.contract-item {
......
......@@ -77,7 +77,8 @@
</section>
</item>
</list-item>
</scroll></div>
</scroll>
</div>
</div>
</transition>
<transition name="trans">
......@@ -202,7 +203,7 @@ export default {
return (this.money * (this.rate / 100)).toFixed(2)
},
rate () {
return this.checkType.bank_full_name.indexOf('农业') !== -1 ? 0.00 : 0.18
return this.checkType.bank_full_name.indexOf('农业') !== -1 ? 0.0 : 0.18
},
sumMoney () {
return (parseFloat(this.serviceCharge) + parseFloat(this.money)).toFixed(
......@@ -355,7 +356,7 @@ export default {
</script>
<style lang='less' >
#pay-entry {
.vue-better-scroll__wrapper{
.vue-better-scroll__wrapper {
padding: 0;
}
.trans-enter-active,
......@@ -379,7 +380,7 @@ export default {
height: 466px;
width: 100%;
position: relative;
top:16%;
top: 18%;
background-color: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
......@@ -404,7 +405,6 @@ export default {
text-align: center;
}
}
}
}
.modal-show-bank {
......@@ -420,7 +420,7 @@ export default {
height: 466px;
width: 100%;
position: relative;
top:16%;
top: 18%;
background-color: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
......@@ -447,7 +447,6 @@ export default {
}
}
.pay-way {
width: 100%;
padding: 0 4% 0 4%;
background: #fff;
......@@ -459,7 +458,7 @@ export default {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
div{
div {
display: flex;
justify-content: center;
align-items: center;
......@@ -568,6 +567,7 @@ export default {
margin: 12px 8px 0 3px;
}
.push {
margin-left:20px;
width: 35px;
}
.modal-show {
......
......@@ -385,7 +385,7 @@ export default {
height: 466px;
width: 100%;
position: relative;
top:16%;
top:18%;
background: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
......@@ -428,7 +428,7 @@ export default {
height: 466px;
width: 100%;
position: relative;
top:16%;
top:18%;
background: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
......@@ -580,6 +580,7 @@ export default {
/* position: absolute;
top: 10px;
margin-left: 10px;*/
margin-left:20px;
width: 35px;
}
.modal-show {
......
......@@ -2,7 +2,7 @@
* @Descrip: 产品明细
* @Author: your name
* @Date: 2019-10-15 14:30:00
* @LastEditTime: 2019-11-08 14:06:15
* @LastEditTime: 2019-11-13 14:44:06
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -178,6 +178,7 @@ export default {
vueTouch: function (s, e) {
let clientHeight = document.body.clientHeight // 屏幕可视高度
let procnfGather = document.getElementsByClassName('procnf')[0].getBoundingClientRect() // 配置信息元素集合
console.log(procnfGather)
let detailGather = document.getElementsByClassName('prodetail')[0].getBoundingClientRect() // 详情信息元素集合
let baseGather = document.getElementsByClassName('base')[0].getBoundingClientRect() // 基本信息元素集合
if (clientHeight - procnfGather.top >= procnfGather.height) {
......@@ -277,7 +278,6 @@ export default {
item['url'] = process.env.filePath + 'attachment_id=' + item.product_attachment_id + '&access_token=' + window.localStorage.access_token
})
vm.picLists = res.lists
console.log(vm.picLists)
} else {
hlsPopup.showLongCenter(res.message)
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment