Commit 3b49147a authored by linxin's avatar linxin

home

parent 96d040f8
<!--
* @Author: your name
* @Date: 2019-10-31 09:49:57
* @LastEditTime: 2019-10-31 16:58:23
* @LastEditors: Please set LastEditors
* @Description: 合同查询--记录
* @FilePath:
-->
<template>
<h-view id="contract-records" class="public-style">
<h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()">
<span>合同还款</span>
<span>合同记录</span>
</div>
</h-header>
<div v-if="data!==null" class="tab">
<div v-if="data!==null">
<div class="tab">
<p><span :class="{'selected':selected === 'all'}" @click="isSelected('all')">全部</span></p>
<p><span :class="{'selected':selected === 'one'}" @click="isSelected('one')">待签约</span></p>
<p><span :class="{'selected':selected === 'two'}" @click="isSelected('two')">待还款</span></p>
......@@ -19,27 +27,31 @@
<img src="@/assets/contractInquire/search.png" alt="">
<input type="text" placeholder="请输入合同号/承租人名称">
</div>
</div>
<h-content v-if="data!==null" class="pay-content">
<div v-for="(item,index) in 6" :key="index" class="contract-item">
<scroll ref="scrollList">
<div v-for="(item,index) in lists" :key="index" class="contract-item">
<div class="header">
<img src="@/assets/contractRepayment/contract.png" alt="">
<h2>CON201903022001</h2>
<h2>{{ item.project_number }}</h2>
<!-- 状态用类名控制 待还款orange,待签约blue,还款中green,已结清black -->
<p class="green">待还款</p>
</div>
<div class="center">
<div><span>承租人</span><p>张三</p></div>
<div><span>年利率</span><p>5%</p></div>
<div><span>期限</span><p>12</p></div>
<div><span>融资金额</span><p class="bold">90,000.00</p></div>
<div><span>承租人</span><p>{{ item.bp_name }}</p></div>
<div><span>年利率</span><p>{{ item.int_rate_n }}</p></div>
<div><span>期限</span><p>{{ item.lease_times }}</p></div>
<div><span>融资金额</span><p class="bold">{{ item.finance_amount | currency }}</p></div>
<span class="red">逾期一周</span>
<section @click="toRepayDetail">
<section @click="toRepayDetail(item.project_id)">
<img src="@/assets/contractRepayment/view.png" alt="">
<span>查看合同明细</span>
</section>
</div>
</div>
</scroll>
</h-content>
<h-content v-if="data===null" class="null">
<div class="display">
......@@ -59,22 +71,56 @@ export default {
},
data () {
return {
// data: null, 无记录时
// data: null, // 无记录时
data: 1,
lists: [],
selected: 'all',
}
},
computed: {},
watch: {},
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'HomePage') {
vm.recordQuery()
}
})
},
methods: {
toRepayDetail () {
// 合同明细 val: project_id
toRepayDetail (val) {
this.$router.push({
name: 'RepayDetail',
params: {
project_id: val,
},
})
},
isSelected (name) {
this.selected = name
},
// 合同记录
recordQuery () {
let vm = this
let url = $config.basePath + 'con_contract_list'
let param = {
user_phone: window.localStorage.user_phone,
}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
if (res.lists.length === 0) {
vm.data = null
} else {
vm.data = 1
}
vm.lists = res.lists
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
},
}
</script>
......@@ -137,7 +183,7 @@ export default {
padding-left: 12px;
border-radius: 4px;
height: 36px;
width: 351px;
width: 100%;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #888C8F;
......@@ -157,12 +203,12 @@ export default {
}
.pay-content {
padding: 0 8px;
padding: 8px 8px;
.contract-item {
height: 208px;
background-color: #fff;
margin-top: 8px;
margin-bottom: 8px;
.header {
position: relative;
......
<!--
* @Author: your name
* @Date: 2019-10-31 09:49:57
* @LastEditTime: 2019-10-31 17:33:52
* @LastEditors: Please set LastEditors
* @Description: 合同查询--明细
* @FilePath:
-->
<template>
<h-view id="repay-detail" class="public-style">
<h-header :proportion="[5,1,1]" class="bar-custom">
......@@ -15,23 +23,23 @@
<list-item :item-height="44" class="invoice">
<item>
<div slot="name">合同号</div>
<div slot="content">CON2019080310020</div>
<div slot="content">{{ detailInfo.project_number }}</div>
</item>
<item>
<div slot="name">经销商</div>
<div slot="content">****代理商</div>
<div slot="content">{{ detailInfo.bp_agent_name }}</div>
</item>
<item>
<div slot="name">承租人</div>
<div slot="content">张三</div>
<div slot="content">{{ detailInfo.bp_name }}</div>
</item>
<item>
<div slot="name">产品线</div>
<div slot="content">起重机</div>
<div slot="content">{{ detailInfo.division_n }}</div>
</item>
<item>
<div slot="name">合同金额</div>
<div slot="content">90,000.00</div>
<div slot="content">{{ detailInfo.total_price | currency }}</div>
</item>
<item>
<div slot="name">商务政策</div>
......@@ -39,33 +47,33 @@
</item>
<item>
<div slot="name">租赁物数量</div>
<div slot="content">3</div>
<div slot="content">{{ detailInfo.product_num }}</div>
</item>
</list-item>
<div class="header">设备清单</div>
<list-item :item-height="104" class="equipment-list">
<item v-for="(item,index) in 4" :proportion="[2,1]" :key="index">
<item v-for="(item,index) in lists" :proportion="[2,1]" :key="index">
<div slot="name" class="parameters">
<div class="list">
<p>参数项</p>
<span class="bold">JC1213</span>
<span class="bold">{{ item.product_code }}</span>
</div>
<div class="list">
<p>发动机号</p>
<span>JC12131111</span>
<span>{{ item.lease_item_engine_num }}</span>
</div>
<div class="list">
<p>厂商型号</p>
<span>****</span>
<span>{{ item.lease_item_factory_num }}</span>
</div>
<div class="list">
<p>车牌号</p>
<span>********</span>
<span>{{ item.lease_item_car_num }}</span>
</div>
</div>
<div slot="content">
<div class="plan" @click="toRepayPlans">
<div class="plan" @click="toRepayPlans(item.contract_id)">
<img src="@/assets/contractRepayment/plan.png" alt="">
<span>还款计划</span>
</div>
......@@ -85,16 +93,60 @@ export default {
},
data () {
return {
lists: [],
detailInfo: {},
}
},
computed: {},
watch: {},
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'ContractRecords') {
vm.detailQuery()
vm.equipQuery()
}
})
},
methods: {
toRepayPlans () {
// val: contract_id
toRepayPlans (val) {
this.$router.push({
name: 'RepayPlans',
params: {
contract_id: val,
},
})
},
detailQuery () {
let vm = this
let url = $config.basePath + 'con_contract_detial'
let param = {
project_id: vm.$route.params.project_id,
}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.detailInfo = res.info
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
equipQuery () {
let vm = this
let url = $config.basePath + 'con_equip_list'
let param = {
project_id: vm.$route.params.project_id,
}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.lists = res.lists
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
},
......@@ -140,7 +192,7 @@ export default {
border-radius: 5px;
height: 24px;
line-height: 24px;
width: 93px;
// width: 93px;
font-family: PingFangSC-Regular;
font-size: 11px;
color: #1D3FFF;
......
<!--
* @Author: your name
* @Date: 2019-10-31 09:49:57
* @LastEditTime: 2019-11-01 09:36:50
* @LastEditors: Please set LastEditors
* @Description: 还款
* @FilePath:
-->
<template>
<h-view id="repay-plan" class="public-style">
<h-header :proportion="[5,1,1]" class="bar-custom">
......@@ -13,12 +21,12 @@
<div>融资额</div>
<p>190,000.00</p>
<img src="@/assets/contractInquire/num.png" alt="">
<h3><span>12</span></h3>
<h3><span>{{ info.lease_times }}</span></h3>
</div>
<div class="single">
<div><h4>保证金</h4><p>5,000.00</p></div>
<div><h4>保证金</h4><p>¥ 5,000.00</p></div>
<div><h4>保证金</h4><p>¥ 5,000.00</p></div>
<div><h4>保证金</h4><p>{{ info.deposit | currency }}</p></div>
<div><h4>首付款</h4><p>{{ info.down_payment | currency }}</p></div>
<div><h4>手续费</h4><p>{{ parseFloat(info.lease_charge).toFixed(2) | currency }}</p></div>
</div>
</div>
<div class="plan-name">
......@@ -68,10 +76,18 @@ export default {
height: 0,
oldHeight: 0,
newHeight: 0,
info: {},
}
},
computed: {},
watch: {},
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'RepayDetail') {
vm.repayPlan()
}
})
},
methods: {
showDetails () {
if (!this.flag) {
......@@ -96,6 +112,23 @@ export default {
document.getElementById('content').style.transform = 'translate(0px, -' + 0 + 'px) scale(1) translateZ(0px)'
}
},
repayPlan () {
let vm = this
let url = $config.basePath + 'con_equip_cashflow_query'
let param = {
contract_id: vm.$route.params.contract_id,
}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
console.log(res)
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.info = res.info
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
},
}
</script>
......
......@@ -69,6 +69,7 @@ export default {
],
}
},
computed: {},
watch: {},
beforeRouteEnter (to, from, next) {
......
......@@ -2,7 +2,7 @@
* @Descrip""/>User Settings Edit
* @Author: your name
* @Date: 2019-09-29 20:31:00
* @LastEditTime: 2019-10-30 19:03:32
* @LastEditTime: 2019-11-01 12:27:20
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -188,7 +188,7 @@ export default {
'down_payment': vm.equip_price * (vm.info.down_payment_ratio_n.replace('%', '') / 100),
'deposit': vm.equip_price * (vm.info.deposit_ratio_n.replace('%', '') / 100),
'lease_charge': vm.equip_price * (vm.info.lease_charge_ratio_n.replace('%', '') / 100),
'due_date': vm.price_date_to,
'due_date': (vm.price_date_to).substr(0, 10),
},
}
vm.hlsPopup.showLoading('试算中,请稍后')
......
......@@ -2,7 +2,7 @@
* @Descrip 融资试算
* @Author: your name
* @Date: 2019-09-29 17:09:49
* @LastEditTime: 2019-10-31 09:25:17
* @LastEditTime: 2019-11-01 11:13:22
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -15,15 +15,13 @@
</h-header>
<!-- 搜索 -->
<div class="hinput">
<div class="search-box">
<div class="search">
<img src="@/assets/contractInquire/search.png" alt="">
<input type="text" placeholder="请输入产品名称">
<img src="@/assets/distributorSign/search.png" alt="">
</div>
</div>
<h-content>
<scroll
ref="scrollList"
:pullUp="true"
>
<section v-for="(item,index) in lists" :key="index">
......@@ -57,6 +55,7 @@
</div>
</section>
</scroll>
</h-content>
</h-view>
</template>
......@@ -77,7 +76,7 @@ export default {
if (from.name === 'ProDetailed') {
vm.price_date_to = vm.$route.params.price_date_to // 有效日期
vm.plan_price = vm.$route.params.plan_price // 参考价
vm.calculationQuery()
vm.calculationQuery('collect')
} else if (from.name === 'HomePage') {
vm.calculationQuery()
vm.price_date_to = '' // 清楚缓存(从收藏带来的数据)
......@@ -105,13 +104,27 @@ export default {
})
},
// 试算查询
calculationQuery () {
calculationQuery (val) {
let vm = this
if (val) {
let url = $config.basePath + 'prd_product_calculation_query'
let param = {
division: window.sessionStorage.division,
}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.lists = res.lists
} else {
hlsPopup.showLongCenter(res.message)
}
})
} else {
let url = $config.basePath + 'prd_calculation_query'
let param = {}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
console.log(res)
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.lists = res.lists
......@@ -119,6 +132,7 @@ export default {
hlsPopup.showLongCenter(res.message)
}
})
}
},
},
}
......@@ -139,40 +153,67 @@ export default {
line-height: 24px;
}
}
.hinput {
.search {
background-color: #fff;
padding: 8px 12px;
position: relative;
z-index: 50;
width: 100%;
height: 50px;
//border-bottom: 1px solid #cccccc70;
display: flex;
justify-content: center;
align-items: center;
background: #fff;
.search-box {
width: 93.6%;
margin-bottom: 8px;
input {
background: rgba(239,239,239,0.55);
padding-left: 12px;
border-radius: 4px;
height: 36px;
font-size: 14px;
color: #B4B4B5;
letter-spacing: 0;
width: 100%;
font-family: PingFangSC-Regular;
border: 1px solid #1D3FFF;
border-radius: 4px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
font-size: 14px;
color: #888C8F;
}
input {
width: 90%;
height: 100%;
opacity: 0.4;
border: none;
line-height: 34px;
input::placeholder {
font-size: 14px;
color: #888C8F;
}
img {
position: absolute;
height: 16px;
right: 25px;
top: 20px;
}
}
// .hinput {
// position: relative;
// z-index: 50;
// width: 100%;
// height: 50px;
// //border-bottom: 1px solid #cccccc70;
// display: flex;
// justify-content: center;
// align-items: center;
// background: #fff;
// .search-box {
// width: 93.6%;
// height: 36px;
// font-size: 14px;
// color: #B4B4B5;
// letter-spacing: 0;
// font-family: PingFangSC-Regular;
// border: 1px solid #1D3FFF;
// border-radius: 4px;
// display: flex;
// flex-direction: row;
// justify-content: center;
// align-items: center;
// input {
// width: 90%;
// height: 100%;
// opacity: 0.4;
// border: none;
// line-height: 34px;
// }
// }
// }
section {
width: 95%;
margin: 0 auto;
......@@ -218,25 +259,19 @@ section {
.tario {
width: 100%;
height: 60px;
display: flex;
flex-direction: row;
justify-content: space-around;
position: relative;
background: #fff;
// margin-bottom: 8px;
padding-left: 18px;
img {
width: 16px;
height: 16px;
margin-top: 22px;
.wrap:nth-of-type(1) {
height: 60px;
position: absolute;
left: 50px;
}
.wrap {
.wrap:nth-of-type(2) {
height: 60px;
// margin-left: 6.4%
position: absolute;
right: 30px;
}
// .wrap:nth-of-type(2) {
// // margin-left: 12.5%s
// }
p {
height: 30px;
line-height: 30px;
......
......@@ -121,7 +121,6 @@ export default {
}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
console.log(res)
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.info = res.info
......
......@@ -2,7 +2,7 @@
* @Description: In User Settings Edit
* @Author: your name
* @Date: 2019-09-24 12:34:06
* @LastEditTime: 2019-10-29 13:37:18
* @LastEditTime: 2019-10-31 10:35:01
* @LastEditors: Please set LastEditors
*/
export default {
......@@ -26,7 +26,7 @@ export default {
'moduleIcon': require('@/assets/homePage/product-trial.png'),
},
{
'moduleState': '',
'moduleState': 'ContractRecords',
'moduleName': '合同查询',
'moduleIcon': require('@/assets/homePage/contract-query.png'),
},
......
......@@ -18,12 +18,18 @@
<img src="@/assets/distributorSign/search.png" alt="">
</div>
</div>
<div class="division-box">
<list-item v-for="item in lists" :key="item.product_id">
<item :proportion="[1,4]" @click.native="goDetailed(item.product_id,item.collect_status,item.bp_id)">
<div slot="name" class="item-pic">
<img src="@/assets/homePage/WechatIMG2 Copy@2x.png" 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>
......@@ -32,16 +38,11 @@
<p class="firsts1">参数项</p>
<p class="seconds1">{{ item.product_code }}</p>
</div>
<div class="centers">
<p class="firsts1">产品名称</p>
<p class="seconds1">{{ item.product_name }}</p>
</div>
</div>
<div slot="right-icon">
<img class="arrow" src="@/assets/productQuery/getIn.png" alt="" >
</div>
<div slot="right-icon"/>
</item>
</list-item>
</div>
</h-content>
</h-view>
</template>
......@@ -95,21 +96,6 @@ export default {
</script>
<style lang='less' scoped>
#prolist {
.h-header-btn {
img {
width: 16px;
height: 16px;
margin-left: 4px;
}
span {
font-family: PingFangSC-Semibold;
margin-left: 16px;
font-size: 17px;
letter-spacing: 0.61px;
line-height: 24px;
}
}
.hinput {
position: relative;
z-index: 50;
......@@ -143,15 +129,10 @@ export default {
}
}
}
.arrow {
width: 16px;
height: 16px;
// margin-left: 30px;
margin-top: 16px;
.division-box {
padding: 8px;
}
// .hls-item .contents .add-name {
// flex: none!important;
// }
.item-pic {
width: 100px;
//height: 110px;
......@@ -161,28 +142,39 @@ export default {
}
}
.item-content {
// height: 102px;
width: 100%;
margin-left: 20px;
.centers:nth-of-type(1) {
margin-top: 16px;
.pro-name {
height: 42px;
width: 100%;
position: relative;
border-bottom: 1px solid #F3F3F7;
.arrow {
position: absolute;
width: 16px;
height: 16px;
right: 0;
top: 13px;
}
.centers:nth-of-type(2) {
margin-top: 6px;
p {
height: 42px;
line-height: 42px;
font-family: PingFangSC-Semibold;
font-size: 15px;
color: #4B4A4B;
letter-spacing: 0;
font-weight: 600;
}
.centers:nth-of-type(3) {
margin-top: 6px;
}
.centers {
// margin-top: 6px;
// white-space: nowrap;
// width: 100%;
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;
......@@ -196,9 +188,10 @@ export default {
height: auto;
font-family: PingFangSC-Regular;
font-size: 13px;
color: #383F45;
color: #4B4A4B;
}
}
}
}
</style>
......@@ -2,7 +2,7 @@
* @Descrip: 查询首页
* @Author: your name
* @Date: 2019-10-15 14:30:00
* @LastEditTime: 2019-10-29 09:42:12
* @LastEditTime: 2019-11-01 10:21:19
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -21,11 +21,17 @@
<img src="@/assets/distributorSign/search.png" alt="">
</div>
</div>
<scroll ref="scrollLists">
<div class="scroll-box">
<div v-for="(item,index) in prolists" :key="index" class="wrap">
<div class="box" @click="goLists(item.division)">
<div class="leftPic">
<img src="@/assets/productQuery/product-query.png" alt="" class="leftPic">
</div>
<div class="first">
<img src="@/assets/productQuery/product-query.png" alt="">
<p class="product-class">主机厂</p>
<p class="product">{{ item.factory_bp_name }}</p>
</div>
......@@ -34,11 +40,13 @@
<div class="product">
<p>{{ item.division_n }}</p>
</div>
<img src="@/assets/productQuery/pull.png" alt="" @click.stop="queryDivision(item.factory_bp_id,index)">
<img src="@/assets/productQuery/down.png" alt="" @click.stop="queryDivision(item.factory_bp_id,index)">
</div>
<!-- <img class="arrow" src="@/assets/productQuery/getIn.png" alt="" > -->
</div>
<img class="arrow" src="@/assets/productQuery/getIn.png" alt="" >
</div>
</div>
</scroll>
</h-content>
</h-view>
</template>
......@@ -175,10 +183,13 @@ export default {
}
}
}
.scroll-box {
padding: 8px;
}
.box {
position: relative;
width: 100%;
height: 79px;
height: 85px;
background: #fff;
border-top: 1px solid #cccccc70;
margin-bottom: 8px;
......@@ -186,52 +197,73 @@ export default {
flex-direction: column;
justify-content: center;
align-items: center;
.first {
height: 20px;
width: 100%;
display: flex;
flex-direction: row;
margin-top: 16px;
.leftPic {
position: absolute;
left: 12px;
top:29px;
height: 26px;
width: 26px;
background: rgba(29, 63, 255, 0.1);
border-radius: 8px;
img {
width: 16px;
height: 16px;
margin-left: 16px;
width: 16px;
position: absolute;
left: 5px;
top: 5px;
}
}
.first {
height: 42px;
line-height: 42px;
width: 80%;
position: absolute;
left: 50px;
top: 0;
border-bottom: 1px solid #F3F3F7;
// display: flex;
// flex-direction: row;
//margin-top: 16px;
.product-class {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56,63,69,0.60);
margin-left: 8px;
position: absolute;
}
.product {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383F45;
margin-left: 16px
position: absolute;
right: 0px;
}
}
.second {
height: 20px;
width: 100%;
display: flex;
flex-direction: row;
margin-top: 7px;
height: 42px;
line-height: 42px;
width: 80%;
position: absolute;
left: 50px;
top: 43px;
.product-class {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56,63,69,0.60);
margin-left: 54px;
position: absolute;
}
.product {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #383F45;
margin-left: 16px;
position: absolute;
right: 30px;
}
img {
width: 16px;
height: 16px;
margin-left: 9px;
position: absolute;
right: 0;
top: 12px;
}
}
.arrow {
......
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