Commit 0dfac473 authored by 李晓兵's avatar 李晓兵

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

parents 9b6078e9 3352ddd9
Pipeline #4273 canceled with stages
......@@ -9,13 +9,13 @@
<h-content>
<div class="top">
<div class="item">
<span>1</span>
<img src="@/assets/contractCreate/finished.png" >
<p>基本信息</p>
</div>
<span class="line" />
<div class="item">
<span>2</span>
<p>租赁信息</p>
<p style="color: #383F45;">租赁信息</p>
</div>
<span class="line" />
<div class="item">
......@@ -23,17 +23,573 @@
<p>附件信息</p>
</div>
</div>
<div class="userInfo">租赁产品</div>
<list-item :item-height="44">
<item :showArrow="true" @click.native="showModalValue=true">
<div slot="name">产品线</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item :showArrow="true">
<div slot="name">产品型号</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">产品数量</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
</list-item>
<div class="userInfo">融资信息</div>
<div class="hint-info">
<img src="@/assets/contractCreate/hint.png" >提示 以下为单个设备商务政策
</div>
<list-item :item-height="44">
<item :showArrow="true" @click.native="showModalBusiness = true">
<div slot="name">商务政策</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">设备单价</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" /></item>
<item>
<div slot="name">融资金额</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" /></item>
<item>
<div slot="name">首付比例</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">首付款</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" /></item>
<item>
<div slot="name">保证金比例</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">保证金</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" /></item>
<item>
<div slot="name">手续费比例</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">手续费</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" /></item>
<item>
<div slot="name">GPS费用</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" /></item>
<item>
<div slot="name">保险押金</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" /></item>
<item class="date-check">
<div slot="name">预计付款日</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item :showArrow="true">
<div slot="name">还款周期</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">租赁期数</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">年利率</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item :showArrow="true">
<div slot="name">支付方式</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">逾期日利率</div>
<input slot="content" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">留购价</div>
<CurrencyInput slot="content" readonly placeholder="暂无信息" />
</item>
<item :showArrow="true" @click.native="goPlan">
<div slot="name">查看还款计划</div>
<input slot="content" readonly>
</item>
</list-item>
</h-content>
<bottom-tab class="add-box">
<tab-button class="before">计算</tab-button>
<tab-button class="next" @click.native="goRent">下一步</tab-button>
</bottom-tab>
<h-modal ref="modal" v-model="showModalValue" class="flow" position="bottom">
<h-view id="product-list">
<h-header :proportion="[1,4,1]" class="bar-custom">
<span slot="center" style="color:#fff">选择产品</span>
<span slot="right" style="color:#fff" @click="showModalValue=false">取消</span>
</h-header>
<h-content>
<div class="search has-header">
<input v-model="keyWord" placeholder="请输入产品名称" >
</div>
<div class="division-box">
<list-item v-for="(item,index) in divisionLists" :key="index">
<item :proportion="[1,4]" @click.native="goDetailed(item.product_id,item.collect_status,item.bp_id)">
<div slot="name" class="item-pic">
<img :src="item.url" alt="">
</div>
<div slot="content" class="item-content">
<div class="pro-name">
<p>{{ item.product_name }}</p>
<img class="arrow" src="@/assets/productQuery/getIn.png" alt="" >
</div>
<div class="centers">
<p class="firsts1">{{ item.bp_type_n }}</p>
<p class="seconds1">{{ item.bp_name }}</p>
</div>
<div class="centers">
<p class="firsts1">参数项</p>
<p class="seconds1">{{ item.product_code }}</p>
</div>
</div>
</item>
</list-item>
</div>
</h-content>
</h-view>
</h-modal>
<h-modal ref="modal" v-model="showModalBusiness " class="flow" position="bottom">
<h-view id="businuss-list">
<h-header :proportion="[1,4,1]" class="bar-custom">
<span slot="center" style="color:#fff">选择商务政策</span>
<span slot="right" style="color:#fff" @click="showModalBusiness=false">取消</span>
</h-header>
<h-content>
<div class="search has-header">
<input v-model="keyWord" placeholder="请输入商务政策名称" >
</div>
<div class="division-box">
<section v-for="(item,index) in businessLists" :key="index">
<div class="descript" @click="goDetails(item.product_plan_id)">
<img src="@/assets/trial/product.png" alt="">
<p class="produc">{{ item.product_plan_id_n }}</p>
</div>
<div class="tario">
<div class="wrap">
<p class="ratio">
<span>保证金比例</span>
<span>{{ item.deposit_ratio_n }}</span>
</p>
<p>
<span>手续费比例</span>
<span>{{ item.lease_charge_ratio_n }}</span>
</p>
</div>
<div class="wrap">
<p>
<span>年利率</span>
<span>{{ item.int_rate_n }}</span>
</p>
<p>
<span>&nbsp;&nbsp;&nbsp;</span>
<span>{{ item.lease_times }}</span>
</p>
</div>
</div>
</section>
</div>
</h-content>
</h-view>
</h-modal>
</h-view>
</template>
<script>
import CurrencyInput from '../../components/currencyInput'
export default {
components: {
CurrencyInput,
},
data () {
return {
showModalValue: false,
showModalBusiness: false,
keyWord: '',
businessLists: [
{
'lease_times': '12',
'deposit_ratio_n': ' 16.00%',
'lease_charge_ratio_n': ' 4.00%',
'product_plan_id': '69',
'lease_charge_ratio': '0.04',
'int_rate_n': ' 6.00%',
'int_rate': '0.06',
'deposit_ratio': '0.16',
'product_plan_id_n': '等额本息-按月-12期',
},
{
'lease_times': '4',
'deposit_ratio_n': ' 10.00%',
'lease_charge_ratio_n': ' 5.00%',
'product_plan_id': '70',
'lease_charge_ratio': '0.05',
'int_rate_n': ' 6.00%',
'int_rate': '0.06',
'deposit_ratio': '0.1',
'product_plan_id_n': '等额本息-按季-4期',
},
{
'lease_times': '12',
'deposit_ratio_n': ' 25.00%',
'lease_charge_ratio_n': ' 5.00%',
'product_plan_id': '109',
'lease_charge_ratio': '0.05',
'int_rate_n': ' 7.50%',
'int_rate': '0.075',
'deposit_ratio': '0.25',
'product_plan_id_n': '等额本金-双月-12期',
},
{
'lease_times': '24',
'deposit_ratio_n': ' 15.00%',
'lease_charge_ratio_n': ' 15.00%',
'product_plan_id': '132',
'lease_charge_ratio': '0.15',
'int_rate_n': ' 7.00%',
'int_rate': '0.07',
'deposit_ratio': '0.15',
'product_plan_id_n': '等额本息-按月-24期',
}],
divisionLists: [
{
'bp_name': '重型重庆办',
'bp_id': '41',
'product_id': '5',
'product_attachment_id': '88039',
'product_code': 'QAY130',
'product_name': '全地面起重机QAY130',
'bp_type_n': '办事处',
'collect_status': 'Y',
},
{
'bp_name': '重型银川办',
'bp_id': '61',
'product_id': '5',
'product_attachment_id': '88039',
'product_code': 'QAY130',
'product_name': '全地面起重机QAY130',
'bp_type_n': '办事处',
'collect_status': 'N',
},
{
'bp_name': '上海汉得信息技术股份有限公司',
'bp_id': '7781',
'product_id': '5',
'product_attachment_id': '88039',
'product_code': 'QAY130',
'product_name': '全地面起重机QAY130',
'bp_type_n': '经销商',
'collect_status': 'N',
},
{
'bp_name': '广州市易推信息商务科技有限公司',
'bp_id': '8143',
'product_id': '5',
'product_attachment_id': '88039',
'product_code': 'QAY130',
'product_name': '全地面起重机QAY130',
'bp_type_n': '经销商',
'collect_status': 'N',
},
],
}
},
methods: {
goPlan () {
this.$router.push({
name: 'ContractRepayPlan',
params: {
product_num: 2,
project_id: 123,
},
})
},
},
}
</script>
<style lang="less" scoped>
#create-rent-info{
.top {
<style lang="less">
#create-rent-info {
.flow{
z-index:999;
}
.hls-list-item {
margin-bottom: 0px !important;
}
.h-header-right{
display: flex;
align-items: center;
}
#businuss-list{
.search {
background-color: #fff;
padding: 8px 12px;
width: 100%;
height: 1.02rem;
z-index: 100;
margin-bottom: 8px;
input {
background: url("../../assets/contractStart/search1.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
padding-left: 12px;
height:36px;
line-height: 36px;
border-radius: 4px;
width: 100%;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888c8f;
}
input::placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888c8f;
letter-spacing: 0;
}
input:focus {
background: url("../../assets/contractStart/search2.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
border: 2px solid #bcc6ff;
}
}
.descript {
width: 100%;
height: 44px;
display: flex;
flex-direction: row;
background: #fff;
img {
width: 30px;
height: 30px;
margin-left: 10px;
margin-top: 8px;
// margin-right: 8px;
}
.linkPic {
width: 16px;
height: 16px;
margin-top: 15px;
margin-left: -7px;
margin-right: 10px;
}
.produc {
height: 44px;
display: flex;
flex: 1;
font-size: 15px;
color: #4B4A4B;
line-height: 44px;
font-weight: 500;
letter-spacing: 0;
margin-left: 10px;
font-family: PingFangSC-Semibold;
border-bottom: 1px solid #F3F3F7;
}
}
.tario {
width: 100%;
height: 60px;
position: relative;
background: #fff;
// margin-bottom: 8px;
.wrap:nth-of-type(1) {
height: 60px;
position: absolute;
left: 50px;
}
.wrap:nth-of-type(2) {
height: 60px;
position: absolute;
right: 30px;
}
p {
height: 30px;
line-height: 30px;
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56, 63, 69, 0.60);
span:nth-of-type(2) {
margin-left: 16px;
color: rgb(56, 63, 69);
}
}
}
}
#product-list{
.hls-list-item {
border-radius: 4px;
}
.item-pic {
width: 100px;
//height: 110px;
img {
width: 100%;
height: 100%;
}
}
.item-content {
width: 100%;
margin-left: 20px;
.pro-name {
height: 42px;
width: 100%;
position: relative;
border-bottom: 1px solid #F3F3F7;
.arrow {
position: absolute;
width: 16px;
height: 16px;
right: 0;
top: 13px;
}
p {
height: 42px;
line-height: 42px;
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #4B4A4B;
letter-spacing: 0;
font-weight: 600;
}
}
.centers {
font-family: PingFangSC-Semibold;
font-size: 13px;
color: rgba(56,63,69,0.60);
letter-spacing: 0.5px;
display: flex;
flex-direction: row;
margin-top: 8px;
.firsts1 {
width: 60px;
height: 17px;
font-family: PingFangSC-Regular;
font-size: 13px;
color: rgba(56,63,69,0.60);
}
.seconds1 {
width: 70%;
margin-left: 16px;
height: auto;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #4B4A4B;
}
}
}
.item{
width:359px;
margin:0 auto;
}
.search {
background-color: #fff;
padding: 8px 12px;
width: 100%;
height: 1.02rem;
z-index: 100;
margin-bottom: 8px;
input {
background: url("../../assets/contractStart/search1.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
padding-left: 12px;
height:36px;
line-height: 36px;
border-radius: 4px;
width: 100%;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888c8f;
}
input::placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888c8f;
letter-spacing: 0;
}
input:focus {
background: url("../../assets/contractStart/search2.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
border: 2px solid #bcc6ff;
}
}
}
.date-check{
background:url('../../assets/trial/date.png') 350px no-repeat;
background-size: 16px 16px;
padding-right:15px;
}
.hint-info {
width: 100%;
height: 36px;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #fcc800;
letter-spacing: 0.5px;
background-color: #faf5e0;
display:flex;
align-items: center;
img{
width:16px;
height:16px;
margin-left:17px;
margin-right: 17px;
}
}
.add-box {
.before {
border: 1px solid #fdb62f;
border-radius: 4px;
color: #fdb62f;
}
.next {
background: #1d3fff;
border-radius: 4px;
color: #fff;
}
}
.userInfo:first-of-type {
margin-top: 10px;
}
.userInfo {
height: 40px;
line-height: 40px;
color: @headerColor;
// margin-top: -10px;
font-size: 15px;
margin-left: 16px;
position: relative;
}
.userInfo::before {
content: "";
display: block;
width: 4px;
height: 20px;
background-color: @headerColor;
position: absolute;
left: -15px;
top: 12px;
}
.top {
width: 100%;
height: 81px;
background-color: #faf5e0;
......@@ -46,6 +602,9 @@ export default {
border-top: 1px solid #a4a4a4;
margin-bottom: 18px;
}
.line:nth-of-type(1) {
border-top: 1px solid #ffa000;
}
.item {
display: flex;
justify-content: center;
......@@ -55,6 +614,9 @@ export default {
font-size: 12px;
color: rgba(56, 63, 69, 0.5);
letter-spacing: 0.43px;
img {
width: 18px;
}
span {
display: block;
text-align: center;
......@@ -69,10 +631,10 @@ export default {
margin-top: 10px;
}
}
.item:nth-of-type(1) {
.item:not(:nth-of-type(3)) {
font-family: PingFangSC-Semibold;
font-size: 12px;
color: #383f45;
color: rgba(56, 63, 69, 0.5);
letter-spacing: 0.43px;
span {
background-color: #ffa000;
......
......@@ -29,46 +29,51 @@
<list-item :item-height="44">
<item>
<div slot="name">姓名</div>
<input slot="content" readonly placeholder="暂无信息" >
<input slot="content" v-model="NPBaseInfo.bp_name" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">身份证号</div>
<input slot="content" readonly placeholder="暂无信息" >
<input slot="content" v-model="NPBaseInfo.id_card_no" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">手机号码</div>
<input slot="content" readonly placeholder="暂无信息" >
<input slot="content" v-model="NPBaseInfo.cell_phone" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">婚姻</div>
<input slot="content" placeholder="暂无信息" readonly >
<input
slot="content"
v-model="NPBaseInfo.marital_status_n"
placeholder="暂无信息"
readonly
>
</item>
<item>
<div slot="name">户籍地址</div>
<input slot="content" readonly placeholder="暂无信息" >
<span slot="content">{{ NPBaseInfo.address_on_resident_booklit }}</span>
</item>
<item>
<div slot="name">联系地址</div>
<input slot="content" readonly placeholder="暂无信息" >
<span slot="content">{{ NPBaseInfo.address_on_resident_booklit }}</span>
</item>
</list-item>
<div class="userInfo">配偶信息</div>
<list-item :item-height="44">
<div v-if="NPBaseInfo.marital_status_n==='已婚'" class="userInfo">配偶信息</div>
<list-item v-if="NPBaseInfo.marital_status_n==='已婚'" :item-height="44">
<item>
<div slot="name">姓名</div>
<input slot="content" readonly placeholder="暂无信息" >
<input slot="content" v-model="NPBaseInfo.bp_name_sp" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">手机号码</div>
<input slot="content" readonly placeholder="暂无信息" >
<input slot="content" v-model="NPBaseInfo.spouse_phone" readonly placeholder="暂无信息" >
</item>
<item>
<div slot="name">工作单位</div>
<input slot="content" readonly placeholder="暂无信息" >
<span slot="content">{{ NPBaseInfo.working_place_sp }}</span>
</item>
<item>
<div slot="name">居住地址</div>
<input slot="content" placeholder="暂无信息" readonly >
<span slot="content">{{ NPBaseInfo.address_sp }}</span>
</item>
</list-item>
<div class="another-info">
......@@ -77,19 +82,27 @@
<list-item :item-height="44">
<item :showArrow="true">
<div slot="name">行业情况</div>
<input slot="content" readonly placeholder="请选择" >
<input
slot="content" v-model="saveInfo.np_industry_exp_n" readonly placeholder="请选择"
@click="selectBussinessSituation" >
</item>
<item :showArrow="true">
<item :showArrow="true" >
<div slot="name">职业情况</div>
<input slot="content" readonly placeholder="请选择" >
<input
slot="content" v-model="saveInfo.np_occupation_n" readonly placeholder="请选择"
@click="selectJobSituation" >
</item>
<item :showArrow="true">
<div slot="name">房产信息</div>
<input slot="content" readonly placeholder="请选择" >
<input
slot="content" v-model="saveInfo.house_type_n" readonly placeholder="请选择"
@click="selectHouseInfo">
</item>
<item :showArrow="true">
<div slot="name">设备价值</div>
<input slot="content" placeholder="请选择" readonly >
<input
slot="content" v-model="saveInfo.equip_value" placeholder="请选择" readonly
@click="selectEquipInfo">
</item>
<item class="check" @click.native="checked=!checked">
<div slot="name">农行代扣</div>
......@@ -103,7 +116,7 @@
</item>
<item>
<div slot="name">特批事项</div>
<input slot="content" placeholder="暂无信息" readonly >
<input slot="content" v-model="saveInfo.special_matter" placeholder="暂无信息" readonly >
</item>
</list-item>
</div>
......@@ -222,13 +235,13 @@
<tab-button class="before" @click.native="$routeGo()">上一步</tab-button>
<tab-button class="next" @click.native="goRent">下一步</tab-button>
</bottom-tab>
<h-modal ref="modal" v-model="showModalValue" position="bottom">
<h-modal ref="modal" v-model="showModalValue" class="flow" position="bottom">
<h-view id="add-person">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<span>添加担保人</span>
</div>
<img slot="right" src="@/assets/userBind/arrow.png" @click="showModalValue=false" >
<h-header :proportion="[1,4,1]" class="bar-custom">
<!-- <div class="h-header-btn"> -->
<span slot="center" style="color:#fff">添加担保人</span>
<span slot="right" style="color:#fff" @click="showModalValue=false">取消</span>
<!-- </div> -->
</h-header>
<h-content>
<div class="search has-header">
......@@ -237,7 +250,10 @@
<list-item :item-height="68" class="item">
<item>
<img slot="left-icon" src="@/assets/contractCreate/name.png" class="left-icon" >
<div slot="name">担保人名称<br>证件号</div>
<div slot="name">
担保人名称
<br >证件号
</div>
<div slot="content">
<input placeholder="暂无信息" readonly >
<input placeholder="暂无信息" readonly >
......@@ -255,16 +271,49 @@ export default {
return {
checked: false, // 农行代扣
checkedApproved: false, // 是否特批
bp_class: 'ORG',
bp_class: '',
showModalValue: false,
keyWord: '',
BussinessSituationList: [], // 行业情况
jobSituationList: [], // 职业情况
houseInfonList: [], // 房产信息
equipInfonList: [], // 设备信息
NPBaseInfo: {}, // 自然人基本信息
ORGBaseInfo: {}, // 企业基本信息
saveInfo: {// 需要保存的信息
project_id: '',
bp_id: window.localStorage.bp_id,
bp_class: window.localStorage.bp_class,
equip_num: '',
equip_value: '',
engineer_con: '',
enterpriese_nature: '',
abc_deduction_flag: '',
special_flag: '',
special_matter: '',
np_industry_exp: '',
np_occupation: '',
house_type: '',
house_type_n: '',
np_industry_exp_n: '',
np_occupation_n: '',
bp_id_guta_1: '',
bp_id_guta_2: '',
bp_id_guta_3: '',
},
}
},
beforeRouteEnter (to, from, next) {
next(vm => {
vm.showModalValue = false
vm.bp_class = window.localStorage.bp_class
if (from.name === 'ContractCreateList') {
vm.getBaseInfo()
}
})
},
methods: {
addPerson () {
// this.$router.push({
// name:
// 'AddPerson',
// })
this.showModalValue = true
},
goRent () {
......@@ -272,11 +321,154 @@ export default {
name: 'CreateRentInfo',
})
},
getBaseInfo () {
if (this.bp_class === 'NP') {
this.getNPInfo()
this.getBussinessSituation()
this.getJobSituation()
this.getHouseInfo()
this.getEquipInfo()
} else if (this.bp_class === 'ORG') {
this.getORGInfo()
}
},
getNPInfo () {
let vm = this
let url = process.env.basePath + 'bp_np_info_query'
let param = {
bp_id: window.localStorage.getItem('bp_id'),
}
hlsPopup.showLoading('请稍候')
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.NPBaseInfo = res.info
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
getEquipInfo () {
let vm = this
let url = process.env.basePath + 'prj_equip_values_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.equipInfonList = res.lists.map(item => {
return {
code: item.equip_value,
code_name: item.equip_value,
}
})
}
})
},
selectEquipInfo (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.equipInfonList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.saveInfo.equip_value = obj.bp_type
},
})
},
getHouseInfo () {
let vm = this
let url = process.env.basePath + 'prj_estate_type_query'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.houseInfonList = res.lists.map(item => {
return {
code: item.house_type,
code_name: item.house_type_n,
}
})
}
})
},
selectHouseInfo (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.houseInfonList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.saveInfo.house_type = obj.bp_type
vm.saveInfo.house_type_n = obj.bp_type_n
},
})
},
getBussinessSituation () {
let vm = this
let url = process.env.basePath + 'prj_bussiness_situation'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.BussinessSituationList = res.lists.map(item => {
return {
code: item.np_industry_exp,
code_name: item.np_industry_exp_n,
}
})
}
})
},
selectBussinessSituation (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.BussinessSituationList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.saveInfo.np_industry_exp = obj.bp_type
vm.saveInfo.np_industry_exp_n = obj.bp_type_n
},
})
},
getJobSituation () {
let vm = this
let url = process.env.basePath + 'prj_job_situation'
let param = {}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.jobSituationList = res.lists.map(item => {
return {
code: item.np_occupation,
code_name: item.np_occupation_n,
}
})
}
})
},
selectJobSituation (e) {
let vm = this
vm.hlsPopup.selectList({
list: vm.jobSituationList,
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.saveInfo.np_occupation = obj.bp_type
vm.saveInfo.np_occupation_n = obj.bp_type_n
},
})
},
getORGInfo () {},
deleteFun () {},
},
}
</script>
<style lang="less" scoped>
<style lang="less" >
#create-base-info {
.swipeout-list .item .function {
height: 68px;
......@@ -290,6 +482,13 @@ export default {
.swipeout-list {
padding: 0px;
}
.h-header-right {
display: flex;
align-items: center;
}
.flow {
z-index: 999;
}
.left-icon {
width: 18px;
height: 18px;
......@@ -355,8 +554,8 @@ export default {
border: 1px solid #1d3fff;
border-radius: 3px;
}
img{
width:16px;
img {
width: 16px;
}
}
.another-info {
......@@ -417,12 +616,12 @@ export default {
}
}
}
#add-person{
.item{
width:359px;
margin:0 auto;
}
.search {
#add-person {
.item {
width: 359px;
margin: 0 auto;
}
.search {
background-color: #fff;
padding: 8px 12px;
width: 100%;
......@@ -434,7 +633,7 @@ export default {
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
padding-left: 12px;
height:36px;
height: 36px;
line-height: 36px;
border-radius: 4px;
width: 100%;
......
<!--
* @Author: your name
* @Date: 2019-09-29 10:02:11
* @LastEditTime: 2019-12-19 16:06:34
* @LastEditTime: 2019-12-20 17:03:56
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
......@@ -17,12 +17,13 @@
<list-item :item-height="44" class="second-part">
<item :showArrow="true" @click.native="picker">
<div slot="name" class="font-color">承租人</div>
<span slot="content">{{ '请选择' }}</span>
<input slot="content" v-model="lessee" placeholder="请选择">
</item>
<item :showArrow="true">
<div slot="name" class="font-color">业务类型</div>
<input
slot="content"
v-model="business"
type="text"
readonly
placeholder="请选择"
......@@ -31,19 +32,40 @@
</item>
<item>
<div slot="name" class="font-color">经销商</div>
<input slot="content" placeholder="上海汉得信息技术股份有限公司">
<input slot="content" v-model="bp_agent_name" readonly>
</item>
<item :showArrow="true">
<div slot="name" class="font-color">销售人员</div>
<input slot="content" readonly placeholder="请选择">
<input
slot="content"
v-model="sales"
type="text"
readonly
placeholder="请选择"
@click="selectSales"
>
</item>
<item :showArrow="true">
<div slot="name" class="font-color">办事处</div>
<input slot="content" readonly placeholder="请选择">
<input
slot="content"
v-model="office_name"
type="text"
readonly
placeholder="请选择"
@click="selectOffice"
>
</item>
<item :showArrow="true">
<div slot="name" class="font-color">主机厂</div>
<input slot="content" readonly placeholder="请选择">
<input
slot="content"
v-model="factory_name"
type="text"
readonly
placeholder="请选择"
@click="selectFactory"
>
</item>
<item>
<div slot="name" class="font-color">主机厂业务员</div>
......@@ -51,12 +73,12 @@
</item>
<item @click.native="showTime('YYYY-MM-DD')">
<div slot="name" class="font-color">签约日期</div>
<input slot="content" v-model="dates" readonly>
<input slot="content" v-model="salesInfo.dates" readonly>
<img src="@/assets/contractCreate/date.png" alt="" class="date-pic">
</item>
</list-item>
<list-item :item-height="44" class="second-part">
<list-item v-if="false" :item-height="44" class="second-part">
<item :showArrow="true">
<div slot="name" class="font-color">承租人</div>
<span slot="content">{{ '请选择' }}</span>
......@@ -99,16 +121,48 @@
</item>
<item @click.native="showTime('YYYY-MM-DD')">
<div slot="name" class="font-color">签约日期</div>
<input slot="content" v-model="dates" readonly>
<input slot="content" v-model="salesInfo.dates" readonly>
<img src="@/assets/contractCreate/date.png" alt="" class="date-pic">
</item>
</list-item>
</h-content>
<bottom-tab>
<tab-button class="footer">
<tab-button class="footer" @click.native="confirmCreate">
确认创建
</tab-button>
</bottom-tab>
<h-modal v-model="showModal" position="bottom" class="hmodal">
<h-view id="picker">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="hideModal">
<span>选择承租人</span>
</div>
</h-header>
<!-- 搜索 -->
<div class="search">
<input type="text" placeholder="请输入承租人名称/证件号码">
</div>
<scroll
ref="scroll"
>
<div class="wrap">
<div v-for="(item,index) in showLists" :key="index" class="contract-lists" >
<div class="box" @click="pickLessee(item)">
<img src="@/assets/distributorSign/fileIcon.png" alt="" class="file-icon">
<div><p>承租人名称</p><p>{{ item.bp_name }}</p></div>
<div><p>证件号</p><p>{{ item.bp_id_card_no }}</p></div>
</div>
</div>
</div>
</scroll>
<!-- <bottom-tab>
<tab-button class="footer">
确认创建
</tab-button>
</bottom-tab> -->
</h-view>
</h-modal>
</h-view>
</template>
......@@ -117,7 +171,29 @@
export default {
data () {
return {
dates: '请选择',
lessee: '', // 承租人
sales: '', // 销售人员
office_name: '', // 办事处
factory_name: '',
business: '',
showModal: false,
showLists: [],
businessLists: [], // 业务人员查询结果
salesLists: [], // 销售人员查询结果
officeLists: [], // 办事处查询结果
factoryLists: [], // 主机厂
bp_agent_id: '', // 经销商id
bp_agent_name: '', // 经销商名称
salesInfo: {
bp_id_tenant: '', // 承租人id
business_type: '', // 业务类型
bp_id_agent: '', // 经销商id
bp_user_id: '', // 业务员id
office_id: '', // 办事处id
factory: '', // 主机厂id
manu_manager: '', // 办事处业务员
dates: '请选择',
},
}
},
watch: {
......@@ -130,12 +206,29 @@ export default {
},
beforeRouteEnter (to, from, next) {
next(vm => {
vm.businessQuery()
vm.agentQuery()
vm.factoryQuery()
vm.salesQuery()
vm.officeQuery()
vm.creditQuery()
if (from.name === 'ContractCreateList') {
vm.showModal = false
vm.lessee = ''
vm.business = ''
vm.office_name = ''
vm.factory_name = ''
vm.bp_agent_id = ''
vm.bp_agent_name = ''
vm.sales = window.localStorage.bp_name
vm.salesInfo = {
bp_id_tenant: '', // 承租人id
business_type: '', // 业务类型
bp_id_agent: '', // 经销商id
bp_user_id: '', // 业务员id
office_id: '', // 办事处id
factory: '', // 主机厂id
manu_manager: '', // 办事处业务员
dates: '请选择',
}
vm.businessQuery()
vm.agentQuery()
vm.factoryQuery()
}
})
},
methods: {
......@@ -146,10 +239,26 @@ export default {
nowDate: (new Date()).format('yyyy-MM-dd'),
format: format,
callback: (date) => {
vm.dates = date
vm.salesInfo.dates = date
},
})
},
// 承租人查询
lesseeQuery () {
let vm = this
let url = process.env.basePath + 'prj_bp_master_query'
let param = {
bp_agent_id: vm.bp_agent_id,
}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
console.log('承租人', res)
if (res.result === 'S') {
vm.showLists = res.lists
}
})
},
// 业务类型查询
businessQuery () {
let vm = this
......@@ -160,7 +269,12 @@ export default {
vm.hlsPopup.hideLoading()
console.log('业务类型', res)
if (res.result === 'S') {
// vm.certification_status = res.info.certification_status
vm.businessLists = res.lists.map(item => {
return {
code: item.business_type,
code_name: item.business_type_n,
}
})
}
})
},
......@@ -168,14 +282,13 @@ export default {
selectBusiness () {
let vm = this
vm.hlsPopup.selectList({
// list: vm.taxpayerList,
// code: 'bp_type',
// object: {},
// returnItem: function (index, obj) {
// vm.invoiceInfo.taxpayer_type = obj.bp_type
// vm.invoiceInfo.taxpayer_type_n = obj.bp_type_n
// console.log('obj', vm.invoiceInfo)
// },
list: vm.businessLists,
code: 'business_type',
object: {},
returnItem: function (index, obj) {
vm.business = obj.business_type_n
vm.salesInfo.business_type = obj.business_type
},
})
},
// 经销商查询
......@@ -190,7 +303,13 @@ export default {
vm.hlsPopup.hideLoading()
console.log('经销商', res)
if (res.result === 'S') {
// vm.certification_status = res.info.certification_status
vm.bp_agent_name = res.info.bp_agent_name
vm.bp_agent_id = res.info.bp_agent_id
vm.salesInfo.bp_id_agent = res.info.bp_agent_id
vm.lesseeQuery()
vm.salesQuery()
vm.officeQuery()
vm.creditQuery()
}
})
},
......@@ -204,48 +323,102 @@ export default {
vm.hlsPopup.hideLoading()
console.log('主机厂', res)
if (res.result === 'S') {
// vm.certification_status = res.info.certification_status
vm.factoryLists = res.lists.map(item => {
return {
code: item.bp_factory_id,
code_name: item.bp_factory_name,
}
})
}
})
},
// 主机厂选择
selectFactory () {
let vm = this
vm.hlsPopup.selectList({
list: vm.factoryLists,
code: 'factory_type',
object: {},
returnItem: function (index, obj) {
vm.salesInfo.factory = obj.factory_type
vm.factory_name = obj.factory_type_n
},
})
},
// 销售人员查询
salesQuery () {
let vm = this
let url = process.env.basePath + 'prj_bp_agent_user'
let param = {
bp_agent_id: '7781',
bp_agent_id: vm.bp_agent_id,
}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
console.log('销售人员', res)
if (res.result === 'S') {
// vm.certification_status = res.info.certification_status
vm.salesLists = res.lists.map(item => {
return {
code: item.user_id,
code_name: item.agent_username,
}
})
}
})
},
selectSales () {
let vm = this
vm.hlsPopup.selectList({
list: vm.salesLists,
code: 'agent_type',
object: {},
returnItem: function (index, obj) {
console.log(obj)
vm.sales = obj.agent_type_n
},
})
},
// 办事处查询
officeQuery () {
let vm = this
let url = process.env.basePath + 'prj_office_list'
let param = {
bp_agent_id: '7781',
bp_agent_id: vm.bp_agent_id,
}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
console.log('办事处', res)
if (res.result === 'S') {
// vm.certification_status = res.info.certification_status
vm.officeLists = res.lists.map(item => {
return {
code: item.office_id,
code_name: item.office_name,
}
})
}
})
},
// 选择办事处
selectOffice () {
let vm = this
vm.hlsPopup.selectList({
list: vm.officeLists,
code: 'office_type',
object: {},
returnItem: function (index, obj) {
vm.salesInfo.office_id = obj.office_type
vm.office_name = obj.office_type_n
},
})
},
// 授信额度查询
creditQuery () {
let vm = this
let url = process.env.basePath + 'prj_agent_credit_query'
let param = {
bp_agent_id: '7781',
bp_agent_id: vm.bp_agent_id,
}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
......@@ -256,9 +429,36 @@ export default {
}
})
},
// 查询承租人
picker () {
this.$router.push({
name: 'PickLessee',
// this.$router.push({
// name: 'PickLessee',
// })
this.showModal = true
},
// 选择承租人
pickLessee (item) {
this.lessee = item.bp_name
this.salesInfo.bp_id_tenant = item.bp_id
this.showModal = false
},
hideModal () {
this.showModal = false
},
// 销售信息保存
confirmCreate () {
let vm = this
let url = process.env.basePath + 'prj_sales_info_save'
let param = {
master: vm.salesInfo,
}
vm.hlsPopup.showLoading('请稍候')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
console.log('销售信息保存', res)
if (res.result === 'S') {
hlsPopup.showLongCenter('创建成功!')
}
})
},
},
......@@ -280,6 +480,135 @@ export default {
height: 40px;
margin: 4px 2% 0 2%;
}
}
.hmodal {
z-index: 99;
.search {
background-color: #fff;
padding: 8px 12px;
position: absolute;
width: 100%;
z-index: 100;
margin-bottom: 8px;
input {
padding-left: 12px;
border-radius: 4px;
height: 36px;
width: 100%;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888C8F;
line-height: 36px;
background: url("../../assets/contractStart/search1.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
}
input::placeholder {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888C8F;
letter-spacing: 0;
}
input:focus {
background: url("../../assets/contractStart/search2.png") 320px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
border: 2px solid #bcc6ff;
}
}
.wrap {
width: 100%;
padding: 8px;
.contract-lists {
width: 100%;
background: #fff;
margin-bottom: 8px;
border-radius: 2px;
position: relative;
.box {
height: 68px;
margin-left: 50px;
margin-right: 19px;
.file-icon {
width: 30px;
height: 30px;
position: absolute;
left: 10px;
top: 8px;
}
div {
width: 100%;
height: 32px;
position: relative;
p {
height: 32px;
line-height: 32px;
position: absolute;
font-family: PingFangSC-Regular;
font-size: 14px;
letter-spacing: 0;
}
p:nth-of-type(1){
left: 0;
color: rgba(75,74,75,0.60);
}
p:nth-of-type(2){
right: 0;
color: #4B4A4B;
}
}
}
}
}
.content{
position: absolute;
top:0;
}
.scrollContent{
padding-top: 1.92rem;
padding-bottom: 20px;
}
}
}
.platform-ios {
#picker {
.scrollContent {
padding-top: 2.32rem;
}
}
}
// iPhoneX适配
@media (device-width: 375px) and (device-height: 812px) and (-webkit-min-device-pixel-ratio: 3) {
.platform-ios {
#picker {
.scrollContent {
padding-top: 2.72rem;
}
}
}
}
// iPhoneXR适配
@media (device-width: 414px) and (device-height: 896px) {
.platform-ios {
#picker {
.scrollContent {
padding-top: 2.72rem;
}
.search {
input {
background: url("../../assets/contractStart/search1.png") 320px
no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
padding: 8px 12px;
border-radius: 4px;
width: 100%;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888c8f;
}
}
}
}
}
</style>
......@@ -87,7 +87,7 @@ export default {
watch: {},
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'ContractDetail') {
if (from.name === 'ContractDetail' || from.name === 'CreateRentInfo') {
vm.product_num = vm.$route.params.product_num
vm.getInfo()
}
......
......@@ -2,7 +2,7 @@
* @Description: 合同详情
* @Author: your name
* @Date: 2019-09-25 15:38:21
* @LastEditTime: 2019-11-28 17:42:24
* @LastEditTime: 2019-12-20 15:36:19
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -167,6 +167,16 @@
</list-item>
</h-content>
<bottom-tab v-show="confirm_status!=='APPROVED'&&tabNum === 0" class="footer-button">
<tab-button class="approve" @click.native="goBodyCheck">
活体检测
</tab-button>
</bottom-tab>
<bottom-tab v-show="confirm_status!=='APPROVED'&&tabNum === 0" class="footer-button">
<tab-button class="approve" @click.native="goElectronicSign">
电子签
</tab-button>
</bottom-tab>
<bottom-tab v-if="confirm_status!=='APPROVED'" class="footer-button">
<tab-button class="approve" @click.native="contractConfirm('APPROVED')">
确认签约
......@@ -250,6 +260,33 @@ export default {
created () {},
methods:
{
goBodyCheck () { // 活体检测
this.$router.push({
name: 'BodyCheck',
})
},
goElectronicSign () { // 电子签
let vm = this
let url = process.env.basePath + 'get_sign_url'
let param = {
confirm_id: vm.confirm_id,
data_class: 'PRJ_PROJECT',
}
vm.hlsPopup.showLoading('请稍后')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.info.msg === 'success') {
vm.$router.push({
name: 'ElectronicSign',
params: {
url: res.info.data.url,
},
})
} else {
vm.hlsPopup.showLongCenter(res.info.msg)
}
})
},
// 签约确认
contractConfirm (status) {
let vm = this
......@@ -766,6 +803,32 @@ export default {
}
}
}
.footer-button:nth-of-type(1) {
bottom: 92px;
.approve {
width: 358.6px;
height: 44px;
background: @headerColor;
border-radius: 4px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 15px;
line-height: 20px;
}
}
.footer-button:nth-of-type(2) {
bottom: 46px;
.approve {
width: 358.6px;
height: 44px;
background: @headerColor;
border-radius: 4px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 15px;
line-height: 20px;
}
}
.approveContent {
position: absolute;
top: 50%;
......
......@@ -724,6 +724,7 @@ export default {
window.localStorage.setItem('user_bp_status', res.info.user_bp_status)
window.localStorage.setItem('bp_name', res.info.user_bp_name)
window.localStorage.setItem('bp_identity', res.info.bp_identity)
window.localStorage.setItem('bp_class', res.info.user_bp_class)
vm.user_bp_name = res.info.user_bp_name
vm.user_bp_type = res.info.user_bp_type
vm.user_phone = res.info.user_phone
......
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