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,15 +90,85 @@
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>
<div class="add-card-button">
<button v-if="!flag" @click="isSave">保存</button>
</div>
</div>
</div>
</transition>
<h-header :proportion="[5, 1, 1]" class="bar-custom">
<div slot="left" class="h-header-btn" @click="$routeGo()" >
......@@ -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>
<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">{{ 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>
<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>
<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">{{ 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>
<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>
<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">{{ 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>
<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>
......@@ -11,6 +11,10 @@
<Checkbox v-else-if="ele.type === 'checkbox'" :value="baseInfo[ele.prop]==='Y'" shape="square"/>
<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 v-if="['FACTORY'].indexOf(baseInfo.bp_type)===-1" class="baseinfo-supp">
......@@ -33,6 +37,17 @@
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item>
</div>
<div>
<div slot="name" class="section-title" style="">实际控制人信息</div>
<item v-for="(ele, i) of ctrlInfo" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ baseInfo[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ baseInfo[ele.prop] | currency }}</span>
<Checkbox v-else-if="ele.type === 'checkbox'" :value="baseInfo[ele.prop]==='Y'" shape="square"/>
<span v-else-if="ele.type === 'bool'" slot="content">{{ baseInfo[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item>
</div>
<div v-if="baseInfo.auth_flag==='Y'">
<div slot="name" class="section-title" style="">法人授权信息</div>
<item v-for="(ele, i) of authInfo" :key="ele.title">
......@@ -58,22 +73,30 @@
<button class="success" style=" border: 1px solid #e6b500;background-color: white;color: #e6b500;" @click="signAuth">签署认证</button>
<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 { Checkbox, Field } from 'vant'
import { Checkbox, Field, ActionSheet } from 'vant'
import 'vant/lib/checkbox/style'
import 'vant/lib/field/style'
import 'vant/lib/action-sheet/style'
export default {
components: {
Checkbox,
Field,
ActionSheet,
},
props: ['baseInfo'],
data () {
return {
actions: [], // 下拉框
customerType: [], // 客户性质下拉框
picker_show: false,
}
},
computed: {
......@@ -86,6 +109,9 @@ export default {
orgInfo () {
return this.createFormOrg()
},
ctrlInfo () {
return this.createFormCtrl()
},
authInfo () {
return this.createFormAuth()
},
......@@ -93,7 +119,33 @@ 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 signAuth () {
let vm = this
// console.log('qianshu renzhneg ', this.baseInfo)
......@@ -126,12 +178,15 @@ export default {
this.baseInfo_B.forEach(item => {
obj[item.prop] = this.baseInfo[item.prop]
})
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
......@@ -151,7 +206,6 @@ export default {
let param = {
'master': obj,
}
hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param)
this.hlsPopup.hideLoading()
......@@ -199,6 +253,9 @@ export default {
['公司名称', 'bp_name', 'text'],
['企业类型', 'enterprise_type', 'text'],
['注册地址', 'registered_place', 'text'],
['营业期限从', 'business_term_from', 'text'],
['营业期限到', 'business_term_to', 'text'],
['营业期限', 'business_term_type_n', 'text'],
['经营地址', 'business_address', 'text'],
['法定代表人', 'legal_person', 'text'],
['纳税人识别号', 'organization_code', 'text'],
......@@ -215,6 +272,9 @@ export default {
['公司名称', 'bp_name', 'text'],
['企业类型', 'enterprise_type', 'text'],
['注册地址', 'registered_place', 'text'],
['营业期限从', 'business_term_from', 'text'],
['营业期限到', 'business_term_to', 'text'],
['营业期限', 'business_term_type_n', 'text'],
['经营地址', 'business_address', 'text'],
['纳税人识别号', 'organization_code', 'text'],
['注册资本(万元)', 'registered_capital', 'text'],
......@@ -226,14 +286,24 @@ export default {
['logo上传的超链接', 'logo_upload', 'text'],
['是否授权', 'auth_flag', 'checkbox'],
]
let info = []
let bp_type = this.baseInfo.bp_type
if (['TENANT', 'GUTA'].indexOf(bp_type) !== -1) {
return this.factory(baseInfo_A2)
info = baseInfo_A2
} else if (bp_type === 'AGENT') {
return this.factory(baseInfo_A)
info = baseInfo_A
} else {
return this.factory(baseInfo_A3)
info = baseInfo_A3
}
if (this.baseInfo.business_term_type_n !== '长期') {
info.push(
['营业期限从', 'business_term_from', 'date'],
['营业期限到', 'business_term_to', 'date'],
)
} else {
info.push(['营业期限', 'business_term_type_n', 'text'])
}
return this.factory(info)
},
createFormB () {
let baseInfo_B = [// 基本信息补录 经销商
......@@ -258,6 +328,17 @@ export default {
]
return this.factory(orgInfo)
},
createFormCtrl () {
let orgInfo = [// 实际控制人信息
['姓名', 'bp_control_name', 'text'],
['身份证号', 'id_card_no_c', 'text'],
['证件有效期从', 'id_card_date_from_c', 'date'],
['证件有效期到', 'id_card_date_to_c', 'date'],
['手机号', 'cell_phone_c', 'text'],
['联系地址', 'living_address_c', 'text'],
]
return this.factory(orgInfo)
},
createFormAuth () {
let authInfo = [// 法人授权信息
['姓名', 'auth_person_name', 'text'],
......@@ -296,4 +377,7 @@ export default {
padding-left:5px
}
}
/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: {
......
<!-- 附件 -->
<template>
<div style="width: 100%;">
<Tabs v-model="active" color="#02459a">
<Tab title="附件信息">
<p class="notice">tips:点击上传目录即可上传,点击文件即可下载或预览。</p>
<div class="table-box">
<table class="att_table">
<tr>
<th>上传目录</th>
<th>附件</th>
<th>备注</th>
</tr>
<tr v-for="(item, index) of attachFileArr" :key="item.check_id">
<td @click="chooseFile(item.check_id)">{{ item.description }}</td>
<td>
<span v-for="(attach, ai) in item.attachArr" :key="attach.attachId" @click="previewOrDownload(attach)">
{{ attach.fileName + (ai === item.attachArr.length - 1 ? '' : ',') }}
</span>
</td>
<td>{{ item.note }}</td>
</tr>
</table>
</div>
</Tab>
<Tab title="特批附件">
<p class="notice">tips:点击上传目录即可上传,点击文件即可下载或预览。</p>
<div class="table-box">
......@@ -10,7 +33,7 @@
<th>附件</th>
<th>备注</th>
</tr>
<tr v-for="(item, index) of appendixData" :key="item.check_id">
<tr v-for="(item, index) of spcialArr" :key="item.check_id">
<td @click="chooseFile(item.check_id)">{{ item.description }}</td>
<td>
<span v-for="(attach, ai) in item.attachArr" :key="attach.attachId" @click="previewOrDownload(attach)">
......@@ -21,31 +44,68 @@
</tr>
</table>
</div>
</Tab>
</Tabs>
</div>
</template>
<script>
import { Tab, Tabs } from 'vant'
import 'vant/lib/tab/style'
import 'vant/lib/tabs/style'
export default {
components: {
Tabs, Tab},
props: ['appendixData'],
data() {
data () {
return {
licenseImg: '',
active: 0, // tab索引值
attachFileArr: [], // 附件信息
spcialArr: [], // 特批附件
}
},
// watch:{
// appendixData(){
// console.log('mounted执行', this.appendixData );
// this.attachFileArr = this.appendixData.filter((item, index) => {
// if (item.cdd_item === 'SPCIAL_REPORT') {
// this.spcialArr.push(item)
// }
// return item.cdd_item !== 'SPCIAL_REPORT'
// })
// },
// active(n,o){
// console.log('xin',n,'jiu',o);
// }
// },
created(){
this.attachFileArr = this.appendixData.filter((item, index) => {
if (item.cdd_item === 'SPCIAL_REPORT') {
this.spcialArr.push(item)
}
return item.cdd_item !== 'SPCIAL_REPORT'
})
},
methods: {
previewOrDownload(attObj) {
getspcialArr () {
return this.spcialArr[0]
},
previewOrDownload (attObj) {
let picUrl = `${process.env.filePath}attachment_id=${attObj.attachId}&access_token=${window.localStorage.access_token}`
if (/.png|.jpg$/.test(attObj.fileName)) {
this.showBigPicture(picUrl)
} else {
console.log(hlsUtil.convertImageUrl(picUrl));
console.log(hlsUtil.convertImageUrl(picUrl))
window.open(hlsUtil.convertImageUrl(picUrl))
}
console.log(attObj);
console.log(attObj)
},
// 上传窗口
chooseFile(check_id) {
chooseFile (check_id) {
let vm = this
hlsPopup.showActionSheet({
titleText: '请选择照片',
......@@ -59,7 +119,7 @@ export default {
},
})
},
openCamera(check_id) {
openCamera (check_id) {
let vm = this
let cameraoptions = {
quality: 60,
......@@ -73,12 +133,12 @@ export default {
vm.licenseImg = hlsUtil.convertImageUrl(imgdata)
let list = [{
pkvalue: check_id,
source_type: "PRJ_CDD_ITEM_CHECK",
source_type: 'PRJ_CDD_ITEM_CHECK',
picture: '',
filePath: imgdata,
attachment_id: '',
user_id: 1,
fileName: ''
fileName: '',
}]
vm.save_file(list)
......@@ -89,7 +149,7 @@ export default {
}
hlsUtil.openCamera(cameraoptions, success, error)
},
takePicture(check_id) {
takePicture (check_id) {
let vm = this
var cameraoptions = {
quality: 70,
......@@ -104,12 +164,12 @@ export default {
vm.licenseImg = hlsUtil.convertImageUrl(imgUrl[0])
let list = [{
pkvalue: check_id,
source_type: "PRJ_CDD_ITEM_CHECK",
source_type: 'PRJ_CDD_ITEM_CHECK',
picture: '',
filePath: imgUrl[0],
attachment_id: '',
user_id: 1,
fileName: ''
fileName: '',
}]
vm.save_file(list)
......@@ -122,9 +182,9 @@ export default {
},
// 图片保存
save_file(list) {
save_file (list) {
let vm = this
let upView = vm.debounce(function () { vm.$emit("upData") }, 1500)
let upView = vm.debounce(function () { vm.$emit('upData') }, 1500)
if (list.length) {
// hlsPopup.showLoading('图片上传请稍候')
var alreadyUploadNum = 0
......@@ -162,24 +222,24 @@ export default {
}
},
// 查看图片
showBigPicture(picUrl) {
showBigPicture (picUrl) {
let vm = this
vm.hlsPopup.showBigPicture({ imgUrl: picUrl, width: '100%', })
vm.hlsPopup.showBigPicture({ imgUrl: picUrl, width: '100%' })
},
debounce(func, wait) {
let timer;
debounce (func, wait) {
let timer
return function () {
let context = this; // 注意 this 指向
let args = arguments; // arguments中存着e
let context = this // 注意 this 指向
let args = arguments // arguments中存着e
if (timer) clearTimeout(timer);
if (timer) clearTimeout(timer)
timer = setTimeout(() => {
func.apply(this, args)
}, wait)
}
}
}
},
},
}
</script>
......
......@@ -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
......
<!-- 承租人 -->
<template>
<list-item :item-height="44">
<!-- <item v-for="(ele, i) of formdata" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div>
<span slot="content" v-if="ele.type === 'currency'">{{ lesseeData[ele.prop] || currency }}</span>
<span slot="content" v-else-if="ele.type === 'bool'">{{ lesseeData[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span slot="content" v-else="ele.type === 'text'">{{ lesseeData[ele.prop] }}</span>
</item> -->
<div>
<!-- <div class="equipment-list-fund">
<span />
<p>设备清单</p>
</div> -->
<Collapse v-model="equipActive">
<CollapseItem v-for="(item, index) of equipmentData" :key="index">
<template #title>
<div class="equipment">
<!-- <div class="left">
<span>
{{index+1}}
</span>
</div> -->
<div class="center">
<span>租赁物信息</span>
<p>
产品型号
<span>{{ item.product_code }}-{{ (index + 1) | lengthCheck }}</span>
</p>
<p>
设备识别号
<span>{{ item.contract_number }}</span>
</p>
</div>
</div>
</template>
<list-item :item-height="44" class="second-part">
<item>
<div slot="name" class="font-color">车架号</div>
<input slot="content" v-model="item.frame_number" readonly>
</item>
<item>
<div slot="name" class="font-color">发动机号</div>
<input slot="content" v-model="item.engine" readonly>
</item>
<item>
<div slot="name" class="font-color">合格证编号</div>
<input slot="content" v-model="item.certificate_number" readonly>
</item>
<item>
<div slot="name" class="font-color">产品型号</div>
<input slot="content" v-model="item.product_code" readonly>
</item>
<item>
<div slot="name" class="font-color">发车日期</div>
<input slot="content" v-model="item.departure_date" readonly>
</item>
<item>
<div slot="name" class="font-color">开票日期</div>
<input slot="content" v-model="item.invoice_date" readonly>
</item>
<!-- <item>
<div slot="name" class="font-color">设备识别号</div>
<input slot="content" v-model="item.contract_number" readonly>
</item> -->
<item>
<div slot="name" class="font-color">是否上牌</div>
<input slot="content" v-model="item.register_flag_n" readonly>
</item>
<item>
<div slot="name" class="font-color">是否挂靠</div>
<input slot="content" v-model="item.associate_flag_n" readonly>
</item>
<item>
<div slot="name" class="font-color">挂靠单位名称</div>
<input slot="content" v-model="item.associate_company" readonly>
</item>
<item>
<div slot="name" class="font-color">是否提供挂靠协议</div>
<input slot="content" v-model="item.associate_agreement_n" readonly>
</item>
<item>
<div slot="name" class="font-color">租赁物是否办理抵押</div>
<input slot="content" v-model="item.lease_mortgage_n" readonly>
</item>
<item>
<div slot="name" class="font-color">gps是否安装</div>
<input slot="content" v-model="item.gps_flag_n" readonly>
</item>
<item>
<div slot="name" class="font-color">设备是否办理保险</div>
<input slot="content" v-model="item.insurance_flag_n" readonly>
</item>
</list-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: ["equipmentData"],
data() {
return {
equipActive: ['0']
}
},
computed: {
formdata() {
return this.createForm()
}
},
methods: {
factory(arr) {
let outArr = []
if (arr.length) {
arr.forEach(ele => {
let [title, prop, type] = ele
outArr.push({
title: title || '',
prop: prop || 'fdf',
type: type || 'text'
})
});
}
return outArr
},
createForm() {
let formArr = [
['车架号', 'frame_number', 'text'],
['发动机号', 'engine', 'text'],
['合格证编码', 'certificate_number', 'text'],
['产品型号', 'product_code', 'text'],
['发车日期', 'departure_date', 'date'],
['开票日期', 'invoice_date', 'date'],
['设备识别号', 'contract_number', 'text'],
['是否上牌', 'register_flag_n', 'text'],
['是否挂靠', 'associate_flag_n', 'text'],
['挂靠单位名称', 'associate_company', 'text'],
['是否提供挂靠协议', 'associate_agreement_n', 'text'],
['租赁物是否办理抵押', 'lease_mortgage_n', 'text'],
['gps是否安装', 'gps_flag_n', 'text'],
['设备是否办理保险', 'insurance_flag_n', 'text'],
]
let nowForm = formArr
return this.factory(nowForm)
}
}
}
</script>
<style lang="less" scoped>
.equipment-list-fund {
height: 40px;
line-height: 40px;
background-color: #fafafa;
display: flex;
align-items: center;
color: #00469c;
font-size: 15px;
//margin-left: 16px;
position: relative;
//margin-top: -10px;
span {
width: 4px;
height: 20px;
background: #00469c;
}
p {
padding-left: 10px;
}
}
.equipment {
// width: 359px;
// height: 72px;
// background-color: #fff;
margin: 0 auto;
display: flex;
.left {
flex: 1;
span {
display: block;
width: 30px;
height: 30px;
// background-color: #e8e9ed;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
margin-left: 10px;
margin-top: 8px;
img {
width: 11px;
height: 14px;
}
}
}
.center {
flex: 6;
span:first-child {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383f45;
letter-spacing: 0.43px;
margin-left: 10px;
margin-top: 12px;
}
.status {
display: inline-block;
width: 46px;
height: 16px;
text-align: center;
line-height: 16px;
font-family: PingFangSC-Medium;
font-size: 12px;
color: #ffffff;
letter-spacing: 0;
margin-left: 21px;
margin-top: 12px;
}
p {
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0.4px;
margin-left: 10px;
margin-top: 10px;
span {
font-family: Helvetica;
font-size: 13px;
color: rgba(56, 63, 69, 0.6);
}
}
}
.right {
flex: 1;
display: flex;
align-items: center;
img {
width: 13px;
height: 13px;
}
}
}
</style>
\ No newline at end of file
......@@ -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.
......@@ -133,6 +133,7 @@ const ContractCreateList = resolve => require.ensure([], () => { resolve(require
const SalesInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/sales-info')) }, 'contractCreate')
const PickLessee = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/pick-lessee')) }, 'contractCreate')
const CreateBaseInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/create-base-info')) }, 'contractCreate')
const CreateEquipInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/create-equip-info')) }, 'contractCreate')
const CreateRentInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/creat-rent-info')) }, 'contractCreate')
const CreateEnclosureInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/create-enclosure-info')) }, 'contractCreate')
const previewPdf = resolve => require.ensure([], () => { resolve(require('@/pages/contractSigning/previewPdf')) }, 'contractSigning')
......@@ -347,6 +348,7 @@ export default new Router({
{path: '/sales-info', component: SalesInfo, name: 'SalesInfo', meta: {keepAlive: true}},
{path: '/pick-lessee', component: PickLessee, name: 'PickLessee', meta: {keepAlive: true}},
{path: '/create-base-info', component: CreateBaseInfo, name: 'CreateBaseInfo', meta: {keepAlive: true}},
{path: '/create-equip-info', component: CreateEquipInfo, name: 'CreateEquipInfo', meta: {keepAlive: false}},
{path: '/create-rent-info', component: CreateRentInfo, name: 'CreateRentInfo', meta: {keepAlive: true}},
{path: '/create-enclosure-info', component: CreateEnclosureInfo, name: 'CreateEnclosureInfo', meta: {keepAlive: true}},
{path: '/previewPdf', component: previewPdf, name: 'previewPdf', meta: {keepAlive: false}},
......
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