Commit d7e1af67 authored by 郑娟's avatar 郑娟

Merge remote-tracking branch 'origin/i-0-s_uat' into dev20230131_ios

parents 91499bc0 4c1235f2
......@@ -43,6 +43,8 @@ export default {
data () {
return {
prolists: [],
// title: this.$route.query.name === 'confirmList' ? '批量签署电子文件' : '批量签署电子文件',
// buttonName: this.$route.query.name === 'confirmList' ? '签署电子文件' : '签署电子文件',
title: this.$route.query.name === 'confirmList' ? '批量签署电子合同' : '批量签署征信授权书',
buttonName: this.$route.query.name === 'confirmList' ? '签署电子合同' : '签署征信授权',
list: JSON.parse(window.localStorage.getItem('handleContact')),
......@@ -63,6 +65,9 @@ export default {
let url = process.env.basePath + 'batch_check_sign'
let data_class = vm.$route.query.name === 'confirmList' ? 'LEASE_ITEM' : 'PRJ_CONFIRM'
let param = { 'master': list.map(item => ({ confirm_id: item.confirm_id, data_class })) }
// let user_bp_type = JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_type
// console.log('~~~',user_bp_type === 'AGENT');
// if (user_bp_type === 'AGENT') param['content_type'] = 'PRODUCT_SALE_CONTRACT'
hlsPopup.showLoading('请稍候')
let res = await vm.$post(url, param)
vm.hlsPopup.hideLoading()
......@@ -112,7 +117,8 @@ export default {
let data_class = this.$route.query.name === 'confirmList' ? 'LEASE_ITEM' : 'PRJ_CONFIRM'
let param = { 'master': this.list.map(item => ({ confirm_id: item.confirm_id, data_class })) }
// let user_bp_type = JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_type
// if (user_bp_type === 'AGENT') param['content_type'] = 'PRODUCT_SALE_CONTRACT'
hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param)
this.hlsPopup.hideLoading()
......@@ -184,7 +190,8 @@ export default {
bp_id: JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_id,
},
}
// let user_bp_type = JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_type
// if (user_bp_type === 'AGENT') param.master['content_type'] = 'PRODUCT_SALE_CONTRACT'
hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param)
this.hlsPopup.hideLoading()
......
......@@ -327,7 +327,7 @@ export default {
}
},
changePage () {
window.localStorage.setItem('formPage', 'sale')
window.localStorage.setItem('fromPage', 'sale')
this.$router.push({
name: 'SalesInfo',
})
......
......@@ -20,6 +20,11 @@
<span class="line" />
<div class="item">
<span>3</span>
<p>设备清单</p>
</div>
<span class="line" />
<div class="item">
<span>4</span>
<p>附件信息</p>
</div>
</div>
......@@ -34,6 +39,11 @@
<p>租赁信息</p>
</div>
<span class="line"/>
<div class="item">
<img src="@/assets/contractCreate/finished.png">
<p>设备清单</p>
</div>
<span class="line"/>
<div class="item">
<img src="@/assets/contractCreate/finished.png">
<p>附件信息</p>
......@@ -715,7 +725,9 @@ export default {
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.bp_agent_id = res.info.bp_agent_id
if (res.info) {
vm.bp_agent_id = res.info.bp_agent_id ? res.info.bp_agent_id : ''
}
} else {
hlsPopup.showLongCenter(res.message)
}
......@@ -1164,6 +1176,8 @@ export default {
}
p {
margin-top: 10px;
width: 9vw;
text-align: center;
}
}
.item:nth-of-type(1) {
......
......@@ -19,7 +19,12 @@
</div>
<span class="line" />
<div class="item">
<span v-if="!isReadOnly">3</span>
<img src="@/assets/contractCreate/finished.png" >
<p>设备清单</p>
</div>
<span class="line" />
<div class="item">
<span v-if="!isReadOnly">4</span>
<img v-if="isReadOnly" src="@/assets/contractCreate/finished.png" >
<p style="color: #383F45;">附件信息</p>
</div>
......@@ -748,9 +753,11 @@ export default {
}
p {
margin-top: 10px;
width: 9vw;
text-align: center;
}
}
.item:nth-of-type(3) {
.item:nth-of-type(4) {
font-family: PingFangSC-Semibold;
font-size: 12px;
color: rgb(56, 63, 69);
......
This diff is collapsed.
......@@ -14,16 +14,16 @@
</div>
</h-header>
<h-content class="my-contractlist">
<div v-if="user_bp_type == 'MANAGER'" class="contract-item" @click="goCreate()">
<div v-if="['AGENT', 'OFFICE'].includes(user_bp_type)" class="contract-item" @click="goCreate()">
<img src="@/assets/myInfo/contractCreate.png" >
<span>融租方案创建</span>
</div>
<div v-if="user_bp_type == 'TENANT'" class="contract-item" @click="goSign()">
<div v-if="['TENANT', 'GUTA'].includes(user_bp_type)" class="contract-item" @click="goSign()">
<p v-if="signCount > 0" :class="{'content-wrap-class-width':signCount > 99, 'content-wrap-class':signCount < 99}">{{ signCount > 99 ? '99+' : signCount }}</p>
<img src="@/assets/myInfo/unSign.png" >
<span>融租方案确认</span>
</div>
<div v-if="user_bp_type == 'TENANT'" class="contract-item" @click="goCarConfirm()">
<div v-if="['TENANT', 'GUTA', 'AGENT'].includes(user_bp_type)" class="contract-item" @click="goCarConfirm()">
<p v-if="carCount > 0" :class="{'content-wrap-class-width':carCount > 99, 'content-wrap-class':carCount < 99}">{{ carCount > 99 ? '99+' : carCount }}</p>
<img src="@/assets/myInfo/carConfirm.png" >
<span>合同签订</span>
......
......@@ -82,6 +82,7 @@
<span :style="{ color: chooseAll ? '#1d3fff' : 'rgb(212,214,212)' }">全选</span>
</div>
<button class="cancel" @click="cancelRadio">× 取消批量</button>
<!-- <button class="sign" @click="signContract">签订电子文件</button> -->
<button class="sign" @click="signContract">签订征信授权书</button>
</div>
......
......@@ -90,13 +90,83 @@
placeholder="请输入开票日期"
>
</item>
<item>
<div slot="name" >是否上牌</div>
<input
slot="content"
v-model="info.register_flag_n"
readonly
placeholder="请选择"
@click="showPicker('register_flag')"
>
</item>
<item>
<div slot="name" >是否挂靠</div>
<input
slot="content"
v-model="info.associate_flag_n"
readonly
placeholder="请选择"
@click="showPicker('associate_flag')"
>
</item>
<item>
<div slot="name" :class="info.associate_flag==='Y'?'required':''">挂靠单位全称</div>
<input
slot="content"
v-model="info.associate_company"
placeholder="请输入"
>
</item>
<item>
<div slot="name" :class="info.associate_flag==='Y'?'required':''">是否提供挂靠协议</div>
<input
slot="content"
v-model="info.associate_agreement_n"
readonly
placeholder="请选择"
@click="showPicker('associate_agreement')"
>
</item>
<item>
<div slot="name" :class="info.associate_flag==='Y'?'required':''">租赁物是否办理抵押</div>
<input
slot="content"
v-model="info.lease_mortgage_n"
readonly
placeholder="请选择"
@click="showPicker('lease_mortgage')"
>
</item>
<item>
<div slot="name" class="required">GPS是否安装</div>
<input
slot="content"
v-model="info.gps_flag_n"
readonly
placeholder="请选择"
@click="showPicker('gps_flag')"
>
</item>
<item>
<div slot="name" >设备是否购买保险</div>
<input
slot="content"
v-model="info.insurance_flag_n"
readonly
placeholder="请选择"
@click="showPicker('insurance_flag')"
>
</item>
<!-- <item :showArrow="true" @click.native="showModalValue=true">
<div slot="name">产品参数</div>
<input slot="content" v-model="info.bank_branch_name" placeholder="请选择产品参数" @click="changeHeight">
</item>-->
</list-item>
</div>
<button v-if="!flag" @click="isSave">保存</button>
<div class="add-card-button">
<button v-if="!flag" @click="isSave">保存</button>
</div>
</div>
</div>
</transition>
......@@ -390,13 +460,19 @@
</div>
</div>
</div>
<ActionSheet
v-model="picker_show" :actions="actions" :close-on-click-action="true" :closeable="false"
title="请选择" @select="onSelect" />
</h-view>
</template>
<script>
import Tab from '@/pages/carConfirm/tab'
import { ActionSheet } from 'vant'
import 'vant/lib/action-sheet/style'
export default {
components: {
Tab,
ActionSheet,
},
filters: {
lengthCheck: function (value) {
......@@ -441,6 +517,19 @@ export default {
certificate_number: '',
departure_date: '',
invoice_date: '',
register_flag_n: '',
register_flag_: '',
associate_flag_n: '',
associate_flag: '',
associate_company: '',
associate_agreement_n: '',
associate_agreement: '',
lease_mortgage_n: '',
lease_mortgage: '',
gps_flag_n: '',
gps_flag: '',
insurance_flag_n: '',
insurance_flag: '',
},
detail: {
product_num: '',
......@@ -463,6 +552,10 @@ export default {
vehicleImg: '',
vehicleImgUpload: '',
generateContractFlag: false,
YesNoType: [], // 是否类型
now_nodeName: '', // 当前点击的名称
picker_show: false, // 选择面板控制
actions: [], // 选择组
}
},
computed: {
......@@ -505,6 +598,7 @@ export default {
vm.read = true
vm.getDetail()
vm.getEquipment()
vm.getDropBox()
if (
vm.$route.query.car_start_status === 'REJECTED' ||
vm.$route.query.car_start_status === 'NEW'
......@@ -517,6 +611,35 @@ export default {
})
},
methods: {
onSelect (value) {
let val = value.name
this.info[this.now_nodeName + '_n'] = val
let arr = this.YesNoType.filter(item => item.code_name === val)
this.info[this.now_nodeName] = arr[0].code
},
showPicker (flag, index) {
// console.log(this.flag);
if (this.flag) return
this.now_nodeName = flag
this.actions = this.YesNoType.map(item => ({name: item.code_name}))
this.picker_show = true
},
// 下拉框数据获取
async getDropBox () {
let url = process.env.basePath + 'app_get_syscode'
let param = {
'YES_NO': 'YES_NO',
}
hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param)
this.hlsPopup.hideLoading()
if (res.return_status === 'S') {
this.YesNoType = res.YES_NO
}
},
// 同步电子签
handSave () {
// hlsPopup.showLongCenter('保存成功!')
......@@ -934,6 +1057,14 @@ export default {
hlsPopup.showLongCenter('请输入发车日期')
} else if (!this.info.invoice_date) {
hlsPopup.showLongCenter('请输入开票日期')
} else if (this.info.associate_flag === 'Y' && !this.info.associate_company) {
hlsPopup.showLongCenter('请输入挂靠单位全称')
} else if (this.info.associate_flag === 'Y' && !this.info.associate_agreement) {
hlsPopup.showLongCenter('请选择是否提供挂靠协议')
} else if (this.info.associate_flag === 'Y' && !this.info.lease_mortgage) {
hlsPopup.showLongCenter('请选择租赁物是否办理抵押')
} else if (!this.info.gps_flag) {
hlsPopup.showLongCenter('请选择gps是否安裝')
} else {
this.hlsPopup.showConfirm({
title: '提示',
......@@ -1387,6 +1518,7 @@ export default {
z-index: 999;
background-size: 301px 24.7px;
background-color: #fff;
overflow-y: auto;
}
.top {
width: 100%;
......@@ -1440,6 +1572,15 @@ export default {
background-color: #0041c4;
border-radius: 4px;
}
.add-card-button{
width:100%;
display: flex;
justify-content: center;
margin: 2vh 0;
button{
position: static;
}
}
}
.userInfo {
height: 45px;
......
......@@ -2,44 +2,67 @@
<list-item :item-height="44">
<div>
<div slot="name" class="section-title" style="">车辆行驶证</div>
<item v-for="(ele, i) of driving_permit" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ car[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ car[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ car[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ car[ele.prop] }}</span>
</item>
<Collapse v-model="activeNames_c">
<CollapseItem v-for="(item,index) of car" :key="'c'+index" :name="'c'+index" :title="'车辆行驶证'+(index+1)">
<item v-for="(ele, i) of driving_permit" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ item[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ item[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ item[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ item[ele.prop] }}</span>
</item>
</CollapseItem>
</Collapse>
</div>
<div>
<div slot="name" class="section-title" style="">房产证</div>
<item v-for="(ele, i) of house_card" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ house[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ house[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ house[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ house[ele.prop] }}</span>
</item>
<Collapse v-model="activeNames_h">
<CollapseItem v-for="(item,index) of house" :key="'h'+index" :name="'h'+index" :title="'房产证'+(index+1)">
<item v-for="(ele, i) of house_card" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ item[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ item[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ item[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ item[ele.prop] }}</span>
</item>
</CollapseItem>
</Collapse>
</div>
<div>
<div slot="name" class="section-title" style="">不动产权证</div>
<item v-for="(ele, i) of real_est" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ real[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ real[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ real[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ real[ele.prop] }}</span>
</item>
<Collapse v-model="activeNames_p">
<CollapseItem v-for="(item,index) of real" :key="'p'+index" :name="'p'+index" :title="'不动产权证'+(index+1)">
<item v-for="(ele, i) of real_est" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ real[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ item[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ item[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ item[ele.prop] }}</span>
</item>
</CollapseItem>
</Collapse>
</div>
</list-item>
</template>
<script>
import { Collapse, CollapseItem } from 'vant'
import 'vant/lib/collapse/style'
import 'vant/lib/collapse-item/style'
export default {
components: {
Collapse, CollapseItem},
props: ['car', 'house', 'real'],
data () {
return {
activeNames_h: [0], // 折叠面板 房产证
activeNames_p: [0], // 折叠面板 不动产权
activeNames_c: [0], // 折叠面板 车辆行驶证
}
},
computed: {
......@@ -81,6 +104,7 @@ export default {
['号牌号码', 'plate_number', 'text'],
['注册日期', 'regist_date', 'date'],
['数量', 'words_result_num', 'text'],
// ['驾照类型', 'driving_license_type_n', 'text'],
]
return this.factory(driving_permit)
},
......
......@@ -10,6 +10,10 @@
<span v-else-if="ele.type === 'bool'" slot="content">{{ baseInfo[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item>
<Field
v-model="baseInfo.customer_nature_n"
:required="true" :is-link="true" input-align="right"
label="客户性质选择" @click="showPicker()" placeholder="请选择"/>
</div>
<div>
......@@ -32,14 +36,30 @@
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item>
</div>
<div class="foot-bottom">
<button class="success" @click="save">保存</button>
</div>
<ActionSheet
v-model="picker_show" :actions="actions" :close-on-click-action="true" :closeable="false"
title="客户性质选择" @select="onSelect" />
</list-item>
</template>
<script>
import { Field, ActionSheet } from 'vant'
import 'vant/lib/field/style'
import 'vant/lib/action-sheet/style'
export default {
components: {
Field,
ActionSheet,
},
props: ['baseInfo'],
data () {
return {
actions: [], // 下拉框
customerType: [], // 客户性质下拉框
picker_show: false,
}
},
computed: {
......@@ -53,7 +73,65 @@ export default {
return this.createForm_quality()
},
},
created () {
this.getDropBox()
},
methods: {
onSelect (value) {
let val = value.name
this.$set(this.baseInfo, 'customer_nature_n', val)
let arr = this.customerType.filter(item => item.code_name === val)
this.$set(this.baseInfo, 'customer_nature', arr[0].code)
},
showPicker () {
this.actions = this.customerType.map(item => ({name: item.code_name}))
this.picker_show = true
},
// 下拉框数据获取
async getDropBox () {
let url = process.env.basePath + 'app_get_syscode'
let param = {
'CUSTOMER_NATURE': 'CUSTOMER_NATURE',
}
// hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param)
// this.hlsPopup.hideLoading()
if (res.return_status === 'S') {
this.customerType = res.CUSTOMER_NATURE
}
},
async save () {
let flag = false
let obj = {
'bp_id': this.baseInfo['bp_id'],
}
obj['customer_nature_n'] = this.baseInfo['customer_nature_n']
obj['customer_nature'] = this.baseInfo['customer_nature']
Object.keys(obj).map(key => {
if (obj[key] === undefined || obj[key] === null || obj[key] === '') {
flag = true
}
})
console.log(obj)
if (flag) {
hlsPopup.showLongCenter('请将必填字段填写完整')
return
}
let url = process.env.basePath + 'bp_access_info_save'
let param = {
'master': obj,
}
hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param)
this.hlsPopup.hideLoading()
if (res.result === 'S') {
hlsPopup.showLongCenter('保存成功')
} else {
hlsPopup.showLongCenter('保存失败')
}
},
factory (arr) {
let outArr = []
if (arr.length) {
......@@ -88,6 +166,8 @@ export default {
['户籍地址', 'address_on_resident_booklit', 'text'],
['联系地址', 'living_address', 'text'],
['资产', 'capital', 'text'],
['驾照类型', 'driving_license_type_n', 'text'],
]
let baseInfo_B = [// 经销商/主机厂/办事处
......@@ -95,6 +175,8 @@ export default {
['学历', 'academic_background_n', 'text'],
['婚姻状况', 'marital_status_n', 'text'],
['身份证', 'id_card_no', 'text'],
['年份', 'id_card_no_yy', 'text'],
['月份', 'id_card_no_mm', 'text'],
['证件有效期从', 'id_card_date_from', 'date'],
['证件有效期到', 'id_card_date_to', 'date'],
['业务办理地(省)', 'province_n', 'text'],
......@@ -145,4 +227,7 @@ export default {
line-height: 0.5rem;
margin-top: 12px;
}
/deep/ #contract-details .van-cell{
background-color: white;
}
</style>
......@@ -104,7 +104,6 @@ export default {
historyData: [],
appendixData: [],
isTodo: true,
isEditType: false, // 30节点可编辑合同类型、开票类型
}
},
beforeRouteEnter (to, from, next) {
......@@ -175,18 +174,6 @@ export default {
this.history_Coll = !this.history_Coll
},
approv (action_type) {
if (this.isEditType) {
let flag = false
this.planData.map(item => {
if (!item.repurchase_flag && !item.rent_invoice_type) {
flag = true
}
})
if (flag) {
hlsPopup.showLongCenter('请将必填字段填写完整')
return
}
}
let params = this.$route.params
let param = {
master: {
......
......@@ -55,6 +55,7 @@ export default {
['工程合同', 'engineer_con_n', 'text'],
['农行代扣', 'abc_deduction_flag', 'bool'],
['是否授权', 'auth_flag', 'bool'],
['管家卡', 'bank_card_number', 'text'],
['合同补充条款', 'contract_supplementary_file', 'text'],
]
......@@ -76,6 +77,7 @@ export default {
['配偶联系地址', 'address_sp', 'text'],
['农行代扣', 'abc_deduction_flag', 'bool'],
['是否抵押', 'mortgega_flag', 'bool'],
['管家卡', 'bank_card_number', 'text'],
['合同补充条款', 'contract_supplementary_file', 'text'],
]
let nowForm = this.lesseeData.bp_class === 'NP' ? personalFormArr : corporationFormArr
......
This diff is collapsed.
......@@ -78,7 +78,7 @@ export default {
let vm = this
let url = process.env.basePath + 'user_invoice_query'
let param = {
bp_id: window.localStorage.bp_id,
bp_id: JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_id,
}
vm.hlsPopup.showLoading('请稍候!')
vm.hlsHttp.post(url, param).then(function (res) {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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