Commit 5a355fe5 authored by 郑娟's avatar 郑娟

Merge branch 'dev20230131_android' into i-0-s_uat

parents 8f28f062 405837b3
...@@ -43,6 +43,8 @@ export default { ...@@ -43,6 +43,8 @@ export default {
data () { data () {
return { return {
prolists: [], prolists: [],
// title: this.$route.query.name === 'confirmList' ? '批量签署电子文件' : '批量签署电子文件',
// buttonName: this.$route.query.name === 'confirmList' ? '签署电子文件' : '签署电子文件',
title: this.$route.query.name === 'confirmList' ? '批量签署电子合同' : '批量签署征信授权书', title: this.$route.query.name === 'confirmList' ? '批量签署电子合同' : '批量签署征信授权书',
buttonName: this.$route.query.name === 'confirmList' ? '签署电子合同' : '签署征信授权', buttonName: this.$route.query.name === 'confirmList' ? '签署电子合同' : '签署征信授权',
list: JSON.parse(window.localStorage.getItem('handleContact')), list: JSON.parse(window.localStorage.getItem('handleContact')),
...@@ -63,6 +65,9 @@ export default { ...@@ -63,6 +65,9 @@ export default {
let url = process.env.basePath + 'batch_check_sign' let url = process.env.basePath + 'batch_check_sign'
let data_class = vm.$route.query.name === 'confirmList' ? 'LEASE_ITEM' : 'PRJ_CONFIRM' 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 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('请稍候') hlsPopup.showLoading('请稍候')
let res = await vm.$post(url, param) let res = await vm.$post(url, param)
vm.hlsPopup.hideLoading() vm.hlsPopup.hideLoading()
...@@ -112,7 +117,8 @@ export default { ...@@ -112,7 +117,8 @@ export default {
let data_class = this.$route.query.name === 'confirmList' ? 'LEASE_ITEM' : 'PRJ_CONFIRM' 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 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('请稍候') hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param) let res = await this.$post(url, param)
this.hlsPopup.hideLoading() this.hlsPopup.hideLoading()
...@@ -184,7 +190,8 @@ export default { ...@@ -184,7 +190,8 @@ export default {
bp_id: JSON.parse(window.localStorage.getItem('now_user_bp_bind_id')).bp_id, 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('请稍候') hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param) let res = await this.$post(url, param)
this.hlsPopup.hideLoading() this.hlsPopup.hideLoading()
......
...@@ -327,7 +327,7 @@ export default { ...@@ -327,7 +327,7 @@ export default {
} }
}, },
changePage () { changePage () {
window.localStorage.setItem('formPage', 'sale') window.localStorage.setItem('fromPage', 'sale')
this.$router.push({ this.$router.push({
name: 'SalesInfo', name: 'SalesInfo',
}) })
......
...@@ -20,6 +20,11 @@ ...@@ -20,6 +20,11 @@
<span class="line" /> <span class="line" />
<div class="item"> <div class="item">
<span>3</span> <span>3</span>
<p>设备清单</p>
</div>
<span class="line" />
<div class="item">
<span>4</span>
<p>附件信息</p> <p>附件信息</p>
</div> </div>
</div> </div>
...@@ -34,6 +39,11 @@ ...@@ -34,6 +39,11 @@
<p>租赁信息</p> <p>租赁信息</p>
</div> </div>
<span class="line"/> <span class="line"/>
<div class="item">
<img src="@/assets/contractCreate/finished.png">
<p>设备清单</p>
</div>
<span class="line"/>
<div class="item"> <div class="item">
<img src="@/assets/contractCreate/finished.png"> <img src="@/assets/contractCreate/finished.png">
<p>附件信息</p> <p>附件信息</p>
...@@ -715,7 +725,9 @@ export default { ...@@ -715,7 +725,9 @@ export default {
vm.$post(url, param).then(function (res) { vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading() vm.hlsPopup.hideLoading()
if (res.result === 'S') { 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 { } else {
hlsPopup.showLongCenter(res.message) hlsPopup.showLongCenter(res.message)
} }
...@@ -1164,6 +1176,8 @@ export default { ...@@ -1164,6 +1176,8 @@ export default {
} }
p { p {
margin-top: 10px; margin-top: 10px;
width: 9vw;
text-align: center;
} }
} }
.item:nth-of-type(1) { .item:nth-of-type(1) {
......
...@@ -19,7 +19,12 @@ ...@@ -19,7 +19,12 @@
</div> </div>
<span class="line" /> <span class="line" />
<div class="item"> <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" > <img v-if="isReadOnly" src="@/assets/contractCreate/finished.png" >
<p style="color: #383F45;">附件信息</p> <p style="color: #383F45;">附件信息</p>
</div> </div>
...@@ -748,9 +753,11 @@ export default { ...@@ -748,9 +753,11 @@ export default {
} }
p { p {
margin-top: 10px; margin-top: 10px;
width: 9vw;
text-align: center;
} }
} }
.item:nth-of-type(3) { .item:nth-of-type(4) {
font-family: PingFangSC-Semibold; font-family: PingFangSC-Semibold;
font-size: 12px; font-size: 12px;
color: rgb(56, 63, 69); color: rgb(56, 63, 69);
......
This diff is collapsed.
...@@ -14,16 +14,16 @@ ...@@ -14,16 +14,16 @@
</div> </div>
</h-header> </h-header>
<h-content class="my-contractlist"> <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" > <img src="@/assets/myInfo/contractCreate.png" >
<span>融租方案创建</span> <span>融租方案创建</span>
</div> </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> <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" > <img src="@/assets/myInfo/unSign.png" >
<span>融租方案确认</span> <span>融租方案确认</span>
</div> </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> <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" > <img src="@/assets/myInfo/carConfirm.png" >
<span>合同签订</span> <span>合同签订</span>
......
...@@ -284,16 +284,7 @@ export default { ...@@ -284,16 +284,7 @@ export default {
// 合同记录 // 合同记录
recordQuery (status, arr) { recordQuery (status, arr) {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE' || vm.bp_type === 'MANAGER') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
// let url = $config.basePath + 'con_contract_list'
let url = $config.basePath + name
let param = { let param = {
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
bp_id: JSON.parse(window.localStorage.now_user_bp_bind_id).bp_id, bp_id: JSON.parse(window.localStorage.now_user_bp_bind_id).bp_id,
...@@ -392,16 +383,7 @@ export default { ...@@ -392,16 +383,7 @@ export default {
vm.other_pagenum++ vm.other_pagenum++
vm.pageNum = vm.other_pagenum vm.pageNum = vm.other_pagenum
} }
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
// let url = $config.basePath + 'con_contract_list'
let url = $config.basePath + name
let param = { let param = {
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
bp_id: JSON.parse(window.localStorage.now_user_bp_bind_id).bp_id, bp_id: JSON.parse(window.localStorage.now_user_bp_bind_id).bp_id,
...@@ -504,16 +486,7 @@ export default { ...@@ -504,16 +486,7 @@ export default {
}, },
async searchAll () { async searchAll () {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
// let url = $config.basePath + 'con_contract_list'
let url = $config.basePath + name
let param = { let param = {
contract_status_n: '全部', contract_status_n: '全部',
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
...@@ -545,16 +518,7 @@ export default { ...@@ -545,16 +518,7 @@ export default {
}, },
async searchUnsign () { async searchUnsign () {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
let url = $config.basePath + name
// let url = $config.basePath + 'con_contract_list'
let param = { let param = {
contract_status_n: '待首付', contract_status_n: '待首付',
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
...@@ -586,16 +550,7 @@ export default { ...@@ -586,16 +550,7 @@ export default {
async searchUnrepay () { async searchUnrepay () {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
let url = $config.basePath + name
// let url = $config.basePath + 'con_contract_list'
let param = { let param = {
contract_status_n: '首付还款中', contract_status_n: '首付还款中',
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
...@@ -627,16 +582,7 @@ export default { ...@@ -627,16 +582,7 @@ export default {
async searchRepaying () { async searchRepaying () {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
let url = $config.basePath + name
// let url = $config.basePath + 'con_contract_list'
let param = { let param = {
contract_status_n: '还款中', contract_status_n: '还款中',
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
...@@ -668,16 +614,7 @@ export default { ...@@ -668,16 +614,7 @@ export default {
searchRepayed () { searchRepayed () {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
let url = $config.basePath + name
// let url = $config.basePath + 'con_contract_list'
let param = { let param = {
contract_status_n: '已结清', contract_status_n: '已结清',
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
...@@ -703,16 +640,7 @@ export default { ...@@ -703,16 +640,7 @@ export default {
}, },
searchUndo () { searchUndo () {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
let url = $config.basePath + name
// let url = $config.basePath + 'con_contract_list'
let param = { let param = {
contract_status_n: '撤销', contract_status_n: '撤销',
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
...@@ -738,16 +666,7 @@ export default { ...@@ -738,16 +666,7 @@ export default {
}, },
searchOther () { searchOther () {
let vm = this let vm = this
let name = '' let url = $config.basePath + 'con_contract_list'
if (vm.bp_type === 'TENANT') {
name = 'con_contract_list_tenant'
} else if (vm.bp_type === 'AGENT' || vm.bp_type === 'OFFICE') {
name = 'con_contract_list_saleman'
} else if (vm.bp_type === 'GUTA') {
name = 'con_contract_list_guta'
}
let url = $config.basePath + name
// let url = $config.basePath + 'con_contract_list'
let param = { let param = {
contract_status_n: '其他', contract_status_n: '其他',
// user_phone: window.localStorage.user_phone, // user_phone: window.localStorage.user_phone,
......
...@@ -82,6 +82,7 @@ ...@@ -82,6 +82,7 @@
<span :style="{ color: chooseAll ? '#1d3fff' : 'rgb(212,214,212)' }">全选</span> <span :style="{ color: chooseAll ? '#1d3fff' : 'rgb(212,214,212)' }">全选</span>
</div> </div>
<button class="cancel" @click="cancelRadio">× 取消批量</button> <button class="cancel" @click="cancelRadio">× 取消批量</button>
<!-- <button class="sign" @click="signContract">签订电子文件</button> -->
<button class="sign" @click="signContract">签订征信授权书</button> <button class="sign" @click="signContract">签订征信授权书</button>
</div> </div>
......
...@@ -90,15 +90,85 @@ ...@@ -90,15 +90,85 @@
placeholder="请输入开票日期" placeholder="请输入开票日期"
> >
</item> </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"> <!-- <item :showArrow="true" @click.native="showModalValue=true">
<div slot="name">产品参数</div> <div slot="name">产品参数</div>
<input slot="content" v-model="info.bank_branch_name" placeholder="请选择产品参数" @click="changeHeight"> <input slot="content" v-model="info.bank_branch_name" placeholder="请选择产品参数" @click="changeHeight">
</item>--> </item>-->
</list-item> </list-item>
</div> </div>
<div class="add-card-button">
<button v-if="!flag" @click="isSave">保存</button> <button v-if="!flag" @click="isSave">保存</button>
</div> </div>
</div> </div>
</div>
</transition> </transition>
<h-header :proportion="[5, 1, 1]" class="bar-custom"> <h-header :proportion="[5, 1, 1]" class="bar-custom">
<div slot="left" class="h-header-btn" @click="$routeGo()" > <div slot="left" class="h-header-btn" @click="$routeGo()" >
...@@ -390,13 +460,19 @@ ...@@ -390,13 +460,19 @@
</div> </div>
</div> </div>
</div> </div>
<ActionSheet
v-model="picker_show" :actions="actions" :close-on-click-action="true" :closeable="false"
title="请选择" @select="onSelect" />
</h-view> </h-view>
</template> </template>
<script> <script>
import Tab from '@/pages/carConfirm/tab' import Tab from '@/pages/carConfirm/tab'
import { ActionSheet } from 'vant'
import 'vant/lib/action-sheet/style'
export default { export default {
components: { components: {
Tab, Tab,
ActionSheet,
}, },
filters: { filters: {
lengthCheck: function (value) { lengthCheck: function (value) {
...@@ -441,6 +517,19 @@ export default { ...@@ -441,6 +517,19 @@ export default {
certificate_number: '', certificate_number: '',
departure_date: '', departure_date: '',
invoice_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: { detail: {
product_num: '', product_num: '',
...@@ -463,6 +552,10 @@ export default { ...@@ -463,6 +552,10 @@ export default {
vehicleImg: '', vehicleImg: '',
vehicleImgUpload: '', vehicleImgUpload: '',
generateContractFlag: false, generateContractFlag: false,
YesNoType: [], // 是否类型
now_nodeName: '', // 当前点击的名称
picker_show: false, // 选择面板控制
actions: [], // 选择组
} }
}, },
computed: { computed: {
...@@ -505,6 +598,7 @@ export default { ...@@ -505,6 +598,7 @@ export default {
vm.read = true vm.read = true
vm.getDetail() vm.getDetail()
vm.getEquipment() vm.getEquipment()
vm.getDropBox()
if ( if (
vm.$route.query.car_start_status === 'REJECTED' || vm.$route.query.car_start_status === 'REJECTED' ||
vm.$route.query.car_start_status === 'NEW' vm.$route.query.car_start_status === 'NEW'
...@@ -517,6 +611,35 @@ export default { ...@@ -517,6 +611,35 @@ export default {
}) })
}, },
methods: { 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 () { handSave () {
// hlsPopup.showLongCenter('保存成功!') // hlsPopup.showLongCenter('保存成功!')
...@@ -934,6 +1057,14 @@ export default { ...@@ -934,6 +1057,14 @@ export default {
hlsPopup.showLongCenter('请输入发车日期') hlsPopup.showLongCenter('请输入发车日期')
} else if (!this.info.invoice_date) { } else if (!this.info.invoice_date) {
hlsPopup.showLongCenter('请输入开票日期') 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 { } else {
this.hlsPopup.showConfirm({ this.hlsPopup.showConfirm({
title: '提示', title: '提示',
...@@ -1387,6 +1518,7 @@ export default { ...@@ -1387,6 +1518,7 @@ export default {
z-index: 999; z-index: 999;
background-size: 301px 24.7px; background-size: 301px 24.7px;
background-color: #fff; background-color: #fff;
overflow-y: auto;
} }
.top { .top {
width: 100%; width: 100%;
...@@ -1440,6 +1572,15 @@ export default { ...@@ -1440,6 +1572,15 @@ export default {
background-color: #0041c4; background-color: #0041c4;
border-radius: 4px; border-radius: 4px;
} }
.add-card-button{
width:100%;
display: flex;
justify-content: center;
margin: 2vh 0;
button{
position: static;
}
}
} }
.userInfo { .userInfo {
height: 45px; height: 45px;
......
...@@ -2,44 +2,67 @@ ...@@ -2,44 +2,67 @@
<list-item :item-height="44"> <list-item :item-height="44">
<div> <div>
<div slot="name" class="section-title" style="">车辆行驶证</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"> <item v-for="(ele, i) of driving_permit" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div> <div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ car[ele.prop] | dateFormat }}</span> <span v-if="ele.type === 'date'" slot="content">{{ item[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ car[ele.prop] | currency }}</span> <span v-else-if="ele.type === 'currency'" slot="content">{{ item[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ car[ele.prop] === 'Y' ? '是' : '否' }}</span> <span v-else-if="ele.type === 'bool'" slot="content">{{ item[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ car[ele.prop] }}</span> <span v-else slot="content">{{ item[ele.prop] }}</span>
</item> </item>
</CollapseItem>
</Collapse>
</div> </div>
<div> <div>
<div slot="name" class="section-title" style="">房产证</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"> <item v-for="(ele, i) of house_card" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div> <div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ house[ele.prop] | dateFormat }}</span> <span v-if="ele.type === 'date'" slot="content">{{ item[ele.prop] | dateFormat }}</span>
<span v-else-if="ele.type === 'currency'" slot="content">{{ house[ele.prop] | currency }}</span> <span v-else-if="ele.type === 'currency'" slot="content">{{ item[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ house[ele.prop] === 'Y' ? '是' : '否' }}</span> <span v-else-if="ele.type === 'bool'" slot="content">{{ item[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ house[ele.prop] }}</span> <span v-else slot="content">{{ item[ele.prop] }}</span>
</item> </item>
</CollapseItem>
</Collapse>
</div> </div>
<div> <div>
<div slot="name" class="section-title" style="">不动产权证</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"> <item v-for="(ele, i) of real_est" :key="ele.title">
<div slot="name" class="font-color">{{ ele.title }}</div> <div slot="name" class="font-color">{{ ele.title }}</div>
<span v-if="ele.type === 'date'" slot="content">{{ real[ele.prop] | dateFormat }}</span> <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 === 'currency'" slot="content">{{ item[ele.prop] | currency }}</span>
<span v-else-if="ele.type === 'bool'" slot="content">{{ real[ele.prop] === 'Y' ? '是' : '否' }}</span> <span v-else-if="ele.type === 'bool'" slot="content">{{ item[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ real[ele.prop] }}</span> <span v-else slot="content">{{ item[ele.prop] }}</span>
</item> </item>
</CollapseItem>
</Collapse>
</div> </div>
</list-item> </list-item>
</template> </template>
<script> <script>
import { Collapse, CollapseItem } from 'vant'
import 'vant/lib/collapse/style'
import 'vant/lib/collapse-item/style'
export default { export default {
components: {
Collapse, CollapseItem},
props: ['car', 'house', 'real'], props: ['car', 'house', 'real'],
data () { data () {
return { return {
activeNames_h: [0], // 折叠面板 房产证
activeNames_p: [0], // 折叠面板 不动产权
activeNames_c: [0], // 折叠面板 车辆行驶证
} }
}, },
computed: { computed: {
...@@ -81,6 +104,7 @@ export default { ...@@ -81,6 +104,7 @@ export default {
['号牌号码', 'plate_number', 'text'], ['号牌号码', 'plate_number', 'text'],
['注册日期', 'regist_date', 'date'], ['注册日期', 'regist_date', 'date'],
['数量', 'words_result_num', 'text'], ['数量', 'words_result_num', 'text'],
// ['驾照类型', 'driving_license_type_n', 'text'],
] ]
return this.factory(driving_permit) return this.factory(driving_permit)
}, },
......
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
<span v-else-if="ele.type === 'bool'" slot="content">{{ baseInfo[ele.prop] === 'Y' ? '是' : '否' }}</span> <span v-else-if="ele.type === 'bool'" slot="content">{{ baseInfo[ele.prop] === 'Y' ? '是' : '否' }}</span>
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span> <span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item> </item>
<Field
v-model="baseInfo.customer_nature_n"
:required="true" :is-link="true" input-align="right"
label="客户性质选择" @click="showPicker()" placeholder="请选择"/>
</div> </div>
<div> <div>
...@@ -32,14 +36,30 @@ ...@@ -32,14 +36,30 @@
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span> <span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item> </item>
</div> </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> </list-item>
</template> </template>
<script> <script>
import { Field, ActionSheet } from 'vant'
import 'vant/lib/field/style'
import 'vant/lib/action-sheet/style'
export default { export default {
components: {
Field,
ActionSheet,
},
props: ['baseInfo'], props: ['baseInfo'],
data () { data () {
return { return {
actions: [], // 下拉框
customerType: [], // 客户性质下拉框
picker_show: false,
} }
}, },
computed: { computed: {
...@@ -53,7 +73,65 @@ export default { ...@@ -53,7 +73,65 @@ export default {
return this.createForm_quality() return this.createForm_quality()
}, },
}, },
created () {
this.getDropBox()
},
methods: { 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) { factory (arr) {
let outArr = [] let outArr = []
if (arr.length) { if (arr.length) {
...@@ -88,6 +166,8 @@ export default { ...@@ -88,6 +166,8 @@ export default {
['户籍地址', 'address_on_resident_booklit', 'text'], ['户籍地址', 'address_on_resident_booklit', 'text'],
['联系地址', 'living_address', 'text'], ['联系地址', 'living_address', 'text'],
['资产', 'capital', 'text'], ['资产', 'capital', 'text'],
['驾照类型', 'driving_license_type_n', 'text'],
] ]
let baseInfo_B = [// 经销商/主机厂/办事处 let baseInfo_B = [// 经销商/主机厂/办事处
...@@ -95,6 +175,8 @@ export default { ...@@ -95,6 +175,8 @@ export default {
['学历', 'academic_background_n', 'text'], ['学历', 'academic_background_n', 'text'],
['婚姻状况', 'marital_status_n', 'text'], ['婚姻状况', 'marital_status_n', 'text'],
['身份证', 'id_card_no', 'text'], ['身份证', 'id_card_no', 'text'],
['年份', 'id_card_no_yy', 'text'],
['月份', 'id_card_no_mm', 'text'],
['证件有效期从', 'id_card_date_from', 'date'], ['证件有效期从', 'id_card_date_from', 'date'],
['证件有效期到', 'id_card_date_to', 'date'], ['证件有效期到', 'id_card_date_to', 'date'],
['业务办理地(省)', 'province_n', 'text'], ['业务办理地(省)', 'province_n', 'text'],
...@@ -145,4 +227,7 @@ export default { ...@@ -145,4 +227,7 @@ export default {
line-height: 0.5rem; line-height: 0.5rem;
margin-top: 12px; margin-top: 12px;
} }
/deep/ #contract-details .van-cell{
background-color: white;
}
</style> </style>
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<Checkbox v-else-if="ele.type === 'checkbox'" :value="baseInfo[ele.prop]==='Y'" shape="square"/> <Checkbox v-else-if="ele.type === 'checkbox'" :value="baseInfo[ele.prop]==='Y'" shape="square"/>
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span> <span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item> </item>
<Field
v-model="baseInfo.customer_nature_n"
:required="true" :is-link="true" input-align="right"
label="客户性质选择" @click="showPicker()" placeholder="请选择"/>
</div> </div>
<div v-if="['FACTORY'].indexOf(baseInfo.bp_type)===-1" class="baseinfo-supp"> <div v-if="['FACTORY'].indexOf(baseInfo.bp_type)===-1" class="baseinfo-supp">
...@@ -33,6 +37,17 @@ ...@@ -33,6 +37,17 @@
<span v-else slot="content">{{ baseInfo[ele.prop] }}</span> <span v-else slot="content">{{ baseInfo[ele.prop] }}</span>
</item> </item>
</div> </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 v-if="baseInfo.auth_flag==='Y'">
<div slot="name" class="section-title" style="">法人授权信息</div> <div slot="name" class="section-title" style="">法人授权信息</div>
<item v-for="(ele, i) of authInfo" :key="ele.title"> <item v-for="(ele, i) of authInfo" :key="ele.title">
...@@ -58,22 +73,30 @@ ...@@ -58,22 +73,30 @@
<button class="success" style=" border: 1px solid #e6b500;background-color: white;color: #e6b500;" @click="signAuth">签署认证</button> <button class="success" style=" border: 1px solid #e6b500;background-color: white;color: #e6b500;" @click="signAuth">签署认证</button>
<button class="success" @click="save">保存</button> <button class="success" @click="save">保存</button>
</div> </div>
<ActionSheet
v-model="picker_show" :actions="actions" :close-on-click-action="true" :closeable="false"
title="客户性质选择" @select="onSelect" />
</list-item> </list-item>
</template> </template>
<script> <script>
import { Checkbox, Field } from 'vant' import { Checkbox, Field, ActionSheet } from 'vant'
import 'vant/lib/checkbox/style' import 'vant/lib/checkbox/style'
import 'vant/lib/field/style' import 'vant/lib/field/style'
import 'vant/lib/action-sheet/style'
export default { export default {
components: { components: {
Checkbox, Checkbox,
Field, Field,
ActionSheet,
}, },
props: ['baseInfo'], props: ['baseInfo'],
data () { data () {
return { return {
actions: [], // 下拉框
customerType: [], // 客户性质下拉框
picker_show: false,
} }
}, },
computed: { computed: {
...@@ -86,6 +109,9 @@ export default { ...@@ -86,6 +109,9 @@ export default {
orgInfo () { orgInfo () {
return this.createFormOrg() return this.createFormOrg()
}, },
ctrlInfo () {
return this.createFormCtrl()
},
authInfo () { authInfo () {
return this.createFormAuth() return this.createFormAuth()
}, },
...@@ -93,7 +119,33 @@ export default { ...@@ -93,7 +119,33 @@ export default {
return this.createForm_quality() return this.createForm_quality()
}, },
}, },
created () {
this.getDropBox()
},
methods: { 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 () { async signAuth () {
let vm = this let vm = this
// console.log('qianshu renzhneg ', this.baseInfo) // console.log('qianshu renzhneg ', this.baseInfo)
...@@ -126,12 +178,15 @@ export default { ...@@ -126,12 +178,15 @@ export default {
this.baseInfo_B.forEach(item => { this.baseInfo_B.forEach(item => {
obj[item.prop] = this.baseInfo[item.prop] 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 => { Object.keys(obj).map(key => {
if (obj[key] === undefined || obj[key] === null || obj[key] === '') { if (obj[key] === undefined || obj[key] === null || obj[key] === '') {
flag = true flag = true
} }
}) })
console.log(obj)
if (flag) { if (flag) {
hlsPopup.showLongCenter('请将必填字段填写完整') hlsPopup.showLongCenter('请将必填字段填写完整')
return return
...@@ -151,7 +206,6 @@ export default { ...@@ -151,7 +206,6 @@ export default {
let param = { let param = {
'master': obj, 'master': obj,
} }
hlsPopup.showLoading('请稍候') hlsPopup.showLoading('请稍候')
let res = await this.$post(url, param) let res = await this.$post(url, param)
this.hlsPopup.hideLoading() this.hlsPopup.hideLoading()
...@@ -199,6 +253,9 @@ export default { ...@@ -199,6 +253,9 @@ export default {
['公司名称', 'bp_name', 'text'], ['公司名称', 'bp_name', 'text'],
['企业类型', 'enterprise_type', 'text'], ['企业类型', 'enterprise_type', 'text'],
['注册地址', 'registered_place', 'text'], ['注册地址', 'registered_place', 'text'],
['营业期限从', 'business_term_from', 'text'],
['营业期限到', 'business_term_to', 'text'],
['营业期限', 'business_term_type_n', 'text'],
['经营地址', 'business_address', 'text'], ['经营地址', 'business_address', 'text'],
['法定代表人', 'legal_person', 'text'], ['法定代表人', 'legal_person', 'text'],
['纳税人识别号', 'organization_code', 'text'], ['纳税人识别号', 'organization_code', 'text'],
...@@ -215,6 +272,9 @@ export default { ...@@ -215,6 +272,9 @@ export default {
['公司名称', 'bp_name', 'text'], ['公司名称', 'bp_name', 'text'],
['企业类型', 'enterprise_type', 'text'], ['企业类型', 'enterprise_type', 'text'],
['注册地址', 'registered_place', 'text'], ['注册地址', 'registered_place', 'text'],
['营业期限从', 'business_term_from', 'text'],
['营业期限到', 'business_term_to', 'text'],
['营业期限', 'business_term_type_n', 'text'],
['经营地址', 'business_address', 'text'], ['经营地址', 'business_address', 'text'],
['纳税人识别号', 'organization_code', 'text'], ['纳税人识别号', 'organization_code', 'text'],
['注册资本(万元)', 'registered_capital', 'text'], ['注册资本(万元)', 'registered_capital', 'text'],
...@@ -226,14 +286,24 @@ export default { ...@@ -226,14 +286,24 @@ export default {
['logo上传的超链接', 'logo_upload', 'text'], ['logo上传的超链接', 'logo_upload', 'text'],
['是否授权', 'auth_flag', 'checkbox'], ['是否授权', 'auth_flag', 'checkbox'],
] ]
let info = []
let bp_type = this.baseInfo.bp_type let bp_type = this.baseInfo.bp_type
if (['TENANT', 'GUTA'].indexOf(bp_type) !== -1) { if (['TENANT', 'GUTA'].indexOf(bp_type) !== -1) {
return this.factory(baseInfo_A2) info = baseInfo_A2
} else if (bp_type === 'AGENT') { } else if (bp_type === 'AGENT') {
return this.factory(baseInfo_A) info = baseInfo_A
} else { } 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 () { createFormB () {
let baseInfo_B = [// 基本信息补录 经销商 let baseInfo_B = [// 基本信息补录 经销商
...@@ -258,6 +328,17 @@ export default { ...@@ -258,6 +328,17 @@ export default {
] ]
return this.factory(orgInfo) 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 () { createFormAuth () {
let authInfo = [// 法人授权信息 let authInfo = [// 法人授权信息
['姓名', 'auth_person_name', 'text'], ['姓名', 'auth_person_name', 'text'],
...@@ -296,4 +377,7 @@ export default { ...@@ -296,4 +377,7 @@ export default {
padding-left:5px padding-left:5px
} }
} }
/deep/ #contract-details .van-cell{
background-color: white;
}
</style> </style>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<div v-if="tabNum === 5" class="z100"> <div v-if="tabNum === 5" class="z100">
<AttachmentInfo :car="attachmentInfo.car" :house="attachmentInfo.house" :real="attachmentInfo.real"/> <AttachmentInfo :car="attachmentInfo.car" :house="attachmentInfo.house" :real="attachmentInfo.real"/>
<Appendix :appendixData="appendixData" @upData="getData"/> <Appendix :appendixData="appendixData" @upData="getData"/>
<div class="approveBottom"> <div v-show="isTodo" class="approveBottom">
<span> 审批意见 </span> <span> 审批意见 </span>
<textarea v-model="confirm_note" cols="8" rows="5" placeholder="请输入" /> <textarea v-model="confirm_note" cols="8" rows="5" placeholder="请输入" />
</div> </div>
...@@ -104,7 +104,6 @@ export default { ...@@ -104,7 +104,6 @@ export default {
historyData: [], historyData: [],
appendixData: [], appendixData: [],
isTodo: true, isTodo: true,
isEditType: false, // 30节点可编辑合同类型、开票类型
} }
}, },
beforeRouteEnter (to, from, next) { beforeRouteEnter (to, from, next) {
...@@ -121,8 +120,7 @@ export default { ...@@ -121,8 +120,7 @@ export default {
vm.roleInfo = [] // 角色信息 vm.roleInfo = [] // 角色信息
vm.historyData = [] vm.historyData = []
vm.appendixData = [] vm.appendixData = []
vm.isTodo = true vm.isTodo = vm.$route.params.type === 'todo'
vm.isEditType = false // 30节点可编辑合同类型、开票类型
vm.getData() vm.getData()
vm.getHistory() vm.getHistory()
...@@ -175,18 +173,6 @@ export default { ...@@ -175,18 +173,6 @@ export default {
this.history_Coll = !this.history_Coll this.history_Coll = !this.history_Coll
}, },
approv (action_type) { 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 params = this.$route.params
let param = { let param = {
master: { master: {
......
<!-- 附件 --> <!-- 附件 -->
<template> <template>
<div style="width: 100%;"> <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> <p class="notice">tips:点击上传目录即可上传,点击文件即可下载或预览。</p>
<div class="table-box"> <div class="table-box">
...@@ -10,7 +33,7 @@ ...@@ -10,7 +33,7 @@
<th>附件</th> <th>附件</th>
<th>备注</th> <th>备注</th>
</tr> </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 @click="chooseFile(item.check_id)">{{ item.description }}</td>
<td> <td>
<span v-for="(attach, ai) in item.attachArr" :key="attach.attachId" @click="previewOrDownload(attach)"> <span v-for="(attach, ai) in item.attachArr" :key="attach.attachId" @click="previewOrDownload(attach)">
...@@ -21,31 +44,68 @@ ...@@ -21,31 +44,68 @@
</tr> </tr>
</table> </table>
</div> </div>
</Tab>
</Tabs>
</div> </div>
</template> </template>
<script> <script>
import { Tab, Tabs } from 'vant'
import 'vant/lib/tab/style'
import 'vant/lib/tabs/style'
export default { export default {
components: {
Tabs, Tab},
props: ['appendixData'], props: ['appendixData'],
data() { data () {
return { return {
licenseImg: '', 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: { 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}` let picUrl = `${process.env.filePath}attachment_id=${attObj.attachId}&access_token=${window.localStorage.access_token}`
if (/.png|.jpg$/.test(attObj.fileName)) { if (/.png|.jpg$/.test(attObj.fileName)) {
this.showBigPicture(picUrl) this.showBigPicture(picUrl)
} else { } else {
console.log(hlsUtil.convertImageUrl(picUrl)); console.log(hlsUtil.convertImageUrl(picUrl))
window.open(hlsUtil.convertImageUrl(picUrl)) window.open(hlsUtil.convertImageUrl(picUrl))
} }
console.log(attObj); console.log(attObj)
}, },
// 上传窗口 // 上传窗口
chooseFile(check_id) { chooseFile (check_id) {
let vm = this let vm = this
hlsPopup.showActionSheet({ hlsPopup.showActionSheet({
titleText: '请选择照片', titleText: '请选择照片',
...@@ -59,7 +119,7 @@ export default { ...@@ -59,7 +119,7 @@ export default {
}, },
}) })
}, },
openCamera(check_id) { openCamera (check_id) {
let vm = this let vm = this
let cameraoptions = { let cameraoptions = {
quality: 60, quality: 60,
...@@ -73,12 +133,12 @@ export default { ...@@ -73,12 +133,12 @@ export default {
vm.licenseImg = hlsUtil.convertImageUrl(imgdata) vm.licenseImg = hlsUtil.convertImageUrl(imgdata)
let list = [{ let list = [{
pkvalue: check_id, pkvalue: check_id,
source_type: "PRJ_CDD_ITEM_CHECK", source_type: 'PRJ_CDD_ITEM_CHECK',
picture: '', picture: '',
filePath: imgdata, filePath: imgdata,
attachment_id: '', attachment_id: '',
user_id: 1, user_id: 1,
fileName: '' fileName: '',
}] }]
vm.save_file(list) vm.save_file(list)
...@@ -89,7 +149,7 @@ export default { ...@@ -89,7 +149,7 @@ export default {
} }
hlsUtil.openCamera(cameraoptions, success, error) hlsUtil.openCamera(cameraoptions, success, error)
}, },
takePicture(check_id) { takePicture (check_id) {
let vm = this let vm = this
var cameraoptions = { var cameraoptions = {
quality: 70, quality: 70,
...@@ -104,12 +164,12 @@ export default { ...@@ -104,12 +164,12 @@ export default {
vm.licenseImg = hlsUtil.convertImageUrl(imgUrl[0]) vm.licenseImg = hlsUtil.convertImageUrl(imgUrl[0])
let list = [{ let list = [{
pkvalue: check_id, pkvalue: check_id,
source_type: "PRJ_CDD_ITEM_CHECK", source_type: 'PRJ_CDD_ITEM_CHECK',
picture: '', picture: '',
filePath: imgUrl[0], filePath: imgUrl[0],
attachment_id: '', attachment_id: '',
user_id: 1, user_id: 1,
fileName: '' fileName: '',
}] }]
vm.save_file(list) vm.save_file(list)
...@@ -122,9 +182,9 @@ export default { ...@@ -122,9 +182,9 @@ export default {
}, },
// 图片保存 // 图片保存
save_file(list) { save_file (list) {
let vm = this let vm = this
let upView = vm.debounce(function () { vm.$emit("upData") }, 1500) let upView = vm.debounce(function () { vm.$emit('upData') }, 1500)
if (list.length) { if (list.length) {
// hlsPopup.showLoading('图片上传请稍候') // hlsPopup.showLoading('图片上传请稍候')
var alreadyUploadNum = 0 var alreadyUploadNum = 0
...@@ -162,24 +222,24 @@ export default { ...@@ -162,24 +222,24 @@ export default {
} }
}, },
// 查看图片 // 查看图片
showBigPicture(picUrl) { showBigPicture (picUrl) {
let vm = this let vm = this
vm.hlsPopup.showBigPicture({ imgUrl: picUrl, width: '100%', }) vm.hlsPopup.showBigPicture({ imgUrl: picUrl, width: '100%' })
}, },
debounce(func, wait) { debounce (func, wait) {
let timer; let timer
return function () { return function () {
let context = this; // 注意 this 指向 let context = this // 注意 this 指向
let args = arguments; // arguments中存着e let args = arguments // arguments中存着e
if (timer) clearTimeout(timer); if (timer) clearTimeout(timer)
timer = setTimeout(() => { timer = setTimeout(() => {
func.apply(this, args) func.apply(this, args)
}, wait) }, wait)
} }
} },
} },
} }
</script> </script>
......
...@@ -55,6 +55,7 @@ export default { ...@@ -55,6 +55,7 @@ export default {
['工程合同', 'engineer_con_n', 'text'], ['工程合同', 'engineer_con_n', 'text'],
['农行代扣', 'abc_deduction_flag', 'bool'], ['农行代扣', 'abc_deduction_flag', 'bool'],
['是否授权', 'auth_flag', 'bool'], ['是否授权', 'auth_flag', 'bool'],
['管家卡', 'bank_card_number', 'text'],
['合同补充条款', 'contract_supplementary_file', 'text'], ['合同补充条款', 'contract_supplementary_file', 'text'],
] ]
...@@ -76,6 +77,7 @@ export default { ...@@ -76,6 +77,7 @@ export default {
['配偶联系地址', 'address_sp', 'text'], ['配偶联系地址', 'address_sp', 'text'],
['农行代扣', 'abc_deduction_flag', 'bool'], ['农行代扣', 'abc_deduction_flag', 'bool'],
['是否抵押', 'mortgega_flag', 'bool'], ['是否抵押', 'mortgega_flag', 'bool'],
['管家卡', 'bank_card_number', 'text'],
['合同补充条款', 'contract_supplementary_file', 'text'], ['合同补充条款', 'contract_supplementary_file', 'text'],
] ]
let nowForm = this.lesseeData.bp_class === 'NP' ? personalFormArr : corporationFormArr let nowForm = this.lesseeData.bp_class === 'NP' ? personalFormArr : corporationFormArr
......
This diff is collapsed.
...@@ -78,7 +78,7 @@ export default { ...@@ -78,7 +78,7 @@ export default {
let vm = this let vm = this
let url = process.env.basePath + 'user_invoice_query' let url = process.env.basePath + 'user_invoice_query'
let param = { 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.hlsPopup.showLoading('请稍候!')
vm.hlsHttp.post(url, param).then(function (res) { 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 ...@@ -133,6 +133,7 @@ const ContractCreateList = resolve => require.ensure([], () => { resolve(require
const SalesInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/sales-info')) }, 'contractCreate') 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 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 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 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 CreateEnclosureInfo = resolve => require.ensure([], () => { resolve(require('@/pages/contractCreate/create-enclosure-info')) }, 'contractCreate')
const previewPdf = resolve => require.ensure([], () => { resolve(require('@/pages/contractSigning/previewPdf')) }, 'contractSigning') const previewPdf = resolve => require.ensure([], () => { resolve(require('@/pages/contractSigning/previewPdf')) }, 'contractSigning')
...@@ -347,6 +348,7 @@ export default new Router({ ...@@ -347,6 +348,7 @@ export default new Router({
{path: '/sales-info', component: SalesInfo, name: 'SalesInfo', meta: {keepAlive: true}}, {path: '/sales-info', component: SalesInfo, name: 'SalesInfo', meta: {keepAlive: true}},
{path: '/pick-lessee', component: PickLessee, name: 'PickLessee', 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-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-rent-info', component: CreateRentInfo, name: 'CreateRentInfo', meta: {keepAlive: true}},
{path: '/create-enclosure-info', component: CreateEnclosureInfo, name: 'CreateEnclosureInfo', meta: {keepAlive: true}}, {path: '/create-enclosure-info', component: CreateEnclosureInfo, name: 'CreateEnclosureInfo', meta: {keepAlive: true}},
{path: '/previewPdf', component: previewPdf, name: 'previewPdf', meta: {keepAlive: false}}, {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