Commit ea126845 authored by linxin's avatar linxin

解决冲突

parents 6088f060 2490cf2a
Pipeline #4298 canceled with stages
......@@ -13,7 +13,6 @@ export default {
name: 'CurrencyInput',
props: {
value: {
type: Number,
default: 0,
},
disable: {
......
......@@ -64,7 +64,9 @@
<span>合同明细</span>
</div>
</h-header>
<Tab :title="text" @getTabNum="getTabNum" />
<h-content>
<div v-show="tabNum===0">
<div class="userInfo">承租人信息</div>
<list-item :item-height="44">
<item>
......@@ -124,14 +126,25 @@
<img src="@/assets/contractStart/into.png" >
</div>
</div>
</div>
<div v-show="tabNum===1">
1
</div>
</h-content>
<bottom-tab v-if="!flag">
<tab-button class="before" @click.native="takePhonto">
<img src="@/assets/constractSigning/certification.png" >认证
</tab-button>
<tab-button class="approve" @click.native="isConfirm">确定</tab-button>
</bottom-tab>
</h-view>
</template>
<script>
import Tab from '@/pages/carConfirm/tab'
export default {
components: {
Tab,
},
filters: {
lengthCheck: function (value) {
if ((value.toString()).length === 1) {
......@@ -147,6 +160,12 @@ export default {
downNum: false,
show: false,
flag: false, // 判断是否为已确认
confirm_id: '',
tabNum: 0,
text: {
first: '合同详情',
second: '合同文本',
},
info: {
product_plan_id: '',
product_num: '',
......@@ -185,6 +204,7 @@ export default {
next(vm => {
vm.getDetail()
vm.getEquipment()
vm.confirm_id = vm.$route.params.confirm_id
if (vm.$route.params.confirm_status === 'SUBMIT') {
vm.flag = false
} else if (vm.$route.params.confirm_status === 'APPROVED') {
......@@ -193,6 +213,151 @@ export default {
})
},
methods: {
getTabNum (i) {
this.tabNum = i
},
takePhonto () {
let vm = this
hlsPopup.showPopup({
title: '提示',
content: `请自拍一张`,
onConfirm: () => {
vm.takePhontoOpenCamera()
},
})
},
// 打开相机自拍
takePhontoOpenCamera () {
let vm = this
vm.faceListUpload = []
let obj = {
'pkvalue': vm.$route.params.check_id,
'source_type': 'PRJ_CDD_ITEM_CHECK',
'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)
vm.faceListUpload.push(obj)
}
let error = function () {
hlsPopup.showLongCenter('请拍照')
}
hlsUtil.openCamera(cameraoptions, success, error)
},
// 执行同意的逻辑(查询对应的身份证正面图片->人脸识别->确认签约)
async confirmContractSign (faceImg) {
let idCardImgUrl = await this.idCardImgUrlGet()
if (idCardImgUrl) {
this.faceIdentify(faceImg, idCardImgUrl)
}
},
// 获取身份证照片
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' && res.info) {
let cardUrl = process.env.filePath + 'attachment_id=' + res.info.attachment_id + '&access_token=' + window.localStorage.access_token
return cardUrl
} else if (res.result === 'S' && !res.info) {
hlsPopup.showLongCenter('未找到身份证照片')
return null
} else {
hlsPopup.showLongCenter(res.message)
return null
}
},
// 人脸比对
faceIdentify (faceImg, idCardImgUrl) {
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) {
vm.save_picture(vm.faceListUpload)
let identifyScore = res.result.result.score.toFixed(0)
hlsPopup.showPopup({
title: '提示',
content: `识别分数为${identifyScore},请进行活体检测`,
onConfirm: () => {
// 进入活体检测页面
vm.goBodyCheck(vm.confirm_id)
},
})
} else {
hlsPopup.showLongCenter('比对失败,请保证和绑定时是同一个人')
}
})
},
goBodyCheck (confirm_id) { // 活体检测
this.$router.push({
name: 'BodyCheck',
params: {
check_id: this.$route.params.check_id,
confirm_id: confirm_id,
},
})
},
// 图片保存
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()
}
},
isConfirm () {
this.hlsPopup.showConfirm({
title: '提示',
......@@ -471,5 +636,13 @@ export default {
color: #fff;
background-color: #0041c4;
}
.before {
border: 1px solid #fdb62f;
border-radius: 4px;
color: #fdb62f;
img{
width: 18px;
}
}
}
</style>
......@@ -6,7 +6,7 @@
<span>发车确认</span>
</div>
</h-header>
<Tab @getTabNum="getTabNum" />
<Tab :title="text" @getTabNum="getTabNum" />
<div class="search has-header">
<input v-model="keyWord" placeholder="请输入合同号/产品名称/承租人名称" >
</div>
......@@ -51,6 +51,7 @@ export default {
},
data () {
return {
text: {first: '待签约', second: '已签约'},
tabNum: 0,
keyWord: '',
status: '',
......@@ -139,6 +140,8 @@ export default {
params: {
project_id: e.project_id,
confirm_status: e.confirm_status,
check_id: e.check_id,
confirm_id: e.confirm_id,
},
})
},
......
......@@ -8,9 +8,9 @@
<template>
<div class="tab-style">
<div :class="{'tab-content-bg':tabNum == 0}" class="tab-content" @click="tabNum = 0;sendTabNum()"><img :src="tabNum == 0?signed:sign"><span
:class="{'colored':tabNum == 0}">待确认</span></div>
:class="{'colored':tabNum == 0}">{{ title.first }}</span></div>
<div :class="{'tab-content-bg':tabNum == 1}" class="tab-content" @click="tabNum = 1;sendTabNum()"><img :src="tabNum == 1?finished:finish"><span
:class="{'colored':tabNum == 1}">已确认</span></div>
:class="{'colored':tabNum == 1}">{{ title.second }}</span></div>
</div>
</template>
<script>
......@@ -20,6 +20,14 @@ import sign from '@/assets/contractStart/noN.png'
import finish from '@/assets/contractStart/confirmN.png'
export default {
props: {
title: {
type: Function,
default: function () {
return {}
},
},
},
data () {
return {
tabNum: 0,
......
......@@ -31,11 +31,11 @@
</item>
<item :showArrow="true" @click.native="getProduct">
<div slot="name">产品型号</div>
<input slot="content" v-model="saveInfo.product_id_n" readonly placeholder="请选择" >
<input slot="content" v-model="productInfo.product_id_n" readonly placeholder="请选择" >
</item>
<item>
<div slot="name">产品数量</div>
<input slot="content" v-model="saveInfo.product_num" placeholder="请填写产品数量" >
<input slot="content" v-model="productInfo.product_num" placeholder="请填写产品数量" >
</item>
</list-item>
<div class="userInfo">融资信息</div>
......@@ -43,7 +43,7 @@
<img src="@/assets/contractCreate/hint.png" >提示 以下为单个设备商务政策
</div>
<list-item :item-height="44">
<item :showArrow="true" @click.native="getBusinessPolicy">
<item :showArrow="true" @click.native="showModalBusiness=true">
<div slot="name">商务政策</div>
<input slot="content" v-model="saveInfo.product_plan_name" readonly placeholder="请选择" >
</item>
......@@ -122,8 +122,8 @@
</list-item>
</h-content>
<bottom-tab class="add-box">
<tab-button class="before">计算</tab-button>
<tab-button class="next" @click.native="save">下一步</tab-button>
<tab-button class="before" @click.native="save">计算</tab-button>
<tab-button class="next" @click.native="next">下一步</tab-button>
</bottom-tab>
<h-modal ref="modal" v-model="showModalValue" class="flow" position="bottom">
<h-view id="product-list">
......@@ -154,7 +154,7 @@
<p class="seconds1">{{ item.bp_name }}</p>
</div>
<div class="centers">
<p class="firsts1">参数项</p>
<p class="firsts1">设备识别号</p>
<p class="seconds1">{{ item.product_code }}</p>
</div>
</div>
......@@ -174,8 +174,9 @@
<div class="search has-header">
<input v-model="policyKeyWord" placeholder="请输入商务政策名称" >
</div>
<div class="division-box">
<scroll ref="scroll" :updateData="[businessLists]" :pullUp="true" @pullingUp="getBusinessPolicy">
<div class="division-box">
<section v-for="(item,index) in businessLists" :key="index" @click="selectBusinessPolicy(item)">
<div class="descript">
<img src="@/assets/trial/product.png" alt >
......@@ -204,7 +205,7 @@
</div>
</div>
</section>
</scroll></div>
</div></scroll>
</h-content>
</h-view>
</h-modal>
......@@ -220,6 +221,7 @@ export default {
return {
showModalValue: false,
showModalBusiness: false,
isComputed: false,
keyWordProduct: '',
keyWord: '',
policyKeyWord: '',
......@@ -251,13 +253,16 @@ export default {
url: '',
}],
productLine: [], // 产品线
saveInfo: {
productInfo: {
project_id: window.localStorage.project_id,
product_plan_id: '',
product_plan_name: '',
product_id: '',
product_id_n: '',
product_num: '',
},
saveInfo: {
project_id: window.localStorage.project_id,
product_plan_id: '',
product_plan_name: '',
equip_price: '',
int_rate: '',
int_rate_n: '',
......@@ -285,17 +290,24 @@ export default {
},
}
},
watch: {
policyKeyWord (newVal, oldVal) {
this.getBusinessPolicy()
},
},
beforeRouteEnter (to, from, next) {
next(vm => {
vm.showModalBusiness = false
vm.showModalValue = false
vm.businessLists = []
if (from.name === 'CreateBaseInfo') {
vm.businessLists = []
vm.pagenum = 1
vm.pagenumPolicy = 1
vm.isComputed = false
vm.getProductLine() // 产品线查询
vm.repayPeriod()// 还款周期查询
vm.getPayWay()// 支付方式查询
vm.getBusinessPolicy()// 获取商务政策
}
})
},
......@@ -327,16 +339,33 @@ export default {
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
// vm.$router.push({
// name: 'CreateRentInfo',
// params: {
// bp_agent_id: vm.bp_agent_id,
// },
// })
vm.isComputed = true
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
next () {
let vm = this
if (vm.isComputed) {
let url = process.env.basePath + 'prj_product_info_save'
let param = {
master: vm.productInfo,
}
hlsPopup.showLoading('请稍候')
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.$router.push({
name: 'CreateEnclosureInfo',
})
} else {
hlsPopup.showLongCenter(res.message)
}
})
} else {
hlsPopup.showLongCenter('请先进行计算')
}
},
showTime (format) { // 预计付款日
let vm = this
......@@ -412,9 +441,48 @@ export default {
},
})
},
searchBusinessPolicy () {
let vm = this
let randomString = Math.floor(Math.random() * 21)
let url =
process.env.basePath +
'prj_product_plan_query' +
'&index' +
`'${randomString}'`
let param = {
bp_agent_id: vm.$route.params.bp_agent_id,
pagesize: 10,
pagenumPolicy: vm.pagenumPolicy,
searchInput: vm.policyKeyWord,
}
hlsPopup.showLoading('请稍候')
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
let returnData = []
returnData = res.lists
if (returnData.length === 0) {
vm.$refs.scroll.update(true)
} else if (returnData.length > 0 && returnData.length < 10) {
vum.forEach(returnData, function (data, index, array) {
vm.businessLists.push(array[index])
})
vm.pagenumPolicy++
vm.$refs.scroll.update(true)
} else if (returnData.length === 10) {
vum.forEach(returnData, function (data, index, array) {
vm.businessLists.push(array[index])
})
vm.pagenumPolicy++
vm.$refs.scroll.update(false)
}
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
getBusinessPolicy () {
let vm = this
vm.showModalBusiness = true
let randomString = Math.floor(Math.random() * 21)
let url =
process.env.basePath +
......@@ -455,8 +523,8 @@ export default {
},
selectProduct (e) {
let vm = this
this.saveInfo.product_id_n = e.product_name
this.saveInfo.product_id = e.product_id
this.productInfo.product_id_n = e.product_name
this.productInfo.product_id = e.product_id
setTimeout(() => {
vm.showModalValue = false
}, 100)
......@@ -540,8 +608,8 @@ export default {
this.$router.push({
name: 'ContractRepayPlan',
params: {
product_num: 2,
project_id: 123,
product_num: this.productInfo.product_num,
project_id: this.project_id,
},
})
},
......
......@@ -190,7 +190,7 @@
<div class="bottom-top">
<input placeholder="请输入产品名称" >
<img src="@/assets/contractStart/delete.png" >
<input placeholder="请输入参数项" >
<input placeholder="请输入设备识别号" >
<img src="@/assets/contractStart/delete.png" >
<span />
</div>
......@@ -211,7 +211,7 @@
</span>
</li>
<li>
<span class="name">参数项</span>&ensp; &ensp; GTZ226
<span class="name">设备识别号</span>&ensp; &ensp; GTZ226
<span class="to-right">
<span class="name">产品名称</span>&ensp; &ensp; *****
</span>
......
......@@ -53,7 +53,7 @@
<div class="top">{{ list.product_name }}</div>
<img src="@/assets/homePage/hot.png" class="hot">
<div class="center"><span class="firsts">经销商</span> <span class="seconds">{{ list.bp_name }}</span></div>
<div class="center"><span class="firsts">参数项</span> <span class="seconds">{{ list.product_code }}</span></div>
<div class="center"><span class="firsts">设备识别号</span> <span class="seconds">{{ list.product_code }}</span></div>
<div class="center"><span class="firsts">地址</span> <span class="seconds">{{ list.province_id_n + list.city_id_n + list.district_id_n }}</span></div>
</div>
</item>
......
......@@ -76,7 +76,7 @@
</div>
<list-item>
<item>
<div slot="name">参数项</div>
<div slot="name">设备识别号</div>
<input slot="content" v-model="rentInfo.product_code" readonly>
</item>
<item>
......
......@@ -14,7 +14,7 @@
<!-- 搜索 -->
<div class="search has-header">
<input v-model="searchInput" type="text" placeholder="请输入经销商/产品名称/参数项">
<input v-model="searchInput" type="text" placeholder="请输入经销商/产品名称/设备识别号">
</div>
<scroll
ref="scroll"
......@@ -39,7 +39,7 @@
<p class="seconds1">{{ item.bp_name }}</p>
</div>
<div class="centers">
<p class="firsts1">参数项</p>
<p class="firsts1">设备识别号</p>
<p class="seconds1">{{ item.product_code }}</p>
</div>
</div>
......
......@@ -43,7 +43,7 @@
</div>
<div class="list">
<div>
<span>参数项</span>
<span>设备识别号</span>
<span>{{ detail.product_code }}</span>
</div>
<div>
......
......@@ -35,7 +35,7 @@
</swipe>
<div class="base-content">
<div class="top-code">
<div>参数项 &nbsp;{{ baseInfo.product_code }}</div>
<div>设备识别号 &nbsp;{{ baseInfo.product_code }}</div>
<div>{{ baseInfo.division_n }}</div>
</div>
<div class="pro-name">{{ baseInfo.product_name }}</div>
......
......@@ -13,7 +13,7 @@
</h-header>
<!-- 搜索 -->
<div class="search has-header">
<input v-model="searchInput" type="text" placeholder="请输入经销商/产品名称/参数项">
<input v-model="searchInput" type="text" placeholder="请输入经销商/产品名称/设备识别号">
</div>
<scroll
ref="scroll"
......@@ -39,7 +39,7 @@
<p class="seconds1">{{ item.bp_name }}</p>
</div>
<div class="centers">
<p class="firsts1">参数项</p>
<p class="firsts1">设备识别号</p>
<p class="seconds1">{{ item.product_code }}</p>
</div>
</div>
......
......@@ -174,6 +174,7 @@ export default {
},
showModal () {
this.showModalValue = true
this.bankImg = ''
},
async checkElectonic () {
let vm = this
......
......@@ -123,6 +123,10 @@ export default {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.invoiceInfo = res.info
console.log(111111111111111111, res.info.invoice_title)
if (res.info.invoice_title == '' || res.info.invoice_title == null || res.info.invoice_title == undefined) {
vm.invoiceInfo.invoice_title = window.localStorage.bp_name
}
} 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