Commit 7c9a052f authored by 李晓兵's avatar 李晓兵

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

parents e9ed2635 9d44e4cf
src/assets/myInfo/about.png

893 Bytes | W: | H:

src/assets/myInfo/about.png

936 Bytes | W: | H:

src/assets/myInfo/about.png
src/assets/myInfo/about.png
src/assets/myInfo/about.png
src/assets/myInfo/about.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/back.png

70.6 KB | W: | H:

src/assets/myInfo/back.png

31.4 KB | W: | H:

src/assets/myInfo/back.png
src/assets/myInfo/back.png
src/assets/myInfo/back.png
src/assets/myInfo/back.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/carConfirm.png

2.27 KB | W: | H:

src/assets/myInfo/carConfirm.png

2.7 KB | W: | H:

src/assets/myInfo/carConfirm.png
src/assets/myInfo/carConfirm.png
src/assets/myInfo/carConfirm.png
src/assets/myInfo/carConfirm.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/collect.png

1.88 KB | W: | H:

src/assets/myInfo/collect.png

1.77 KB | W: | H:

src/assets/myInfo/collect.png
src/assets/myInfo/collect.png
src/assets/myInfo/collect.png
src/assets/myInfo/collect.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/exit.png

952 Bytes | W: | H:

src/assets/myInfo/exit.png

908 Bytes | W: | H:

src/assets/myInfo/exit.png
src/assets/myInfo/exit.png
src/assets/myInfo/exit.png
src/assets/myInfo/exit.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/help.png

2.01 KB | W: | H:

src/assets/myInfo/help.png

1.91 KB | W: | H:

src/assets/myInfo/help.png
src/assets/myInfo/help.png
src/assets/myInfo/help.png
src/assets/myInfo/help.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/myRefund.png

831 Bytes | W: | H:

src/assets/myInfo/myRefund.png

773 Bytes | W: | H:

src/assets/myInfo/myRefund.png
src/assets/myInfo/myRefund.png
src/assets/myInfo/myRefund.png
src/assets/myInfo/myRefund.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/pay.png

11 KB | W: | H:

src/assets/myInfo/pay.png

8.81 KB | W: | H:

src/assets/myInfo/pay.png
src/assets/myInfo/pay.png
src/assets/myInfo/pay.png
src/assets/myInfo/pay.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/refresh.png

1.41 KB | W: | H:

src/assets/myInfo/refresh.png

1.43 KB | W: | H:

src/assets/myInfo/refresh.png
src/assets/myInfo/refresh.png
src/assets/myInfo/refresh.png
src/assets/myInfo/refresh.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/refund.png

11.2 KB | W: | H:

src/assets/myInfo/refund.png

9.7 KB | W: | H:

src/assets/myInfo/refund.png
src/assets/myInfo/refund.png
src/assets/myInfo/refund.png
src/assets/myInfo/refund.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/repay.png

2.2 KB | W: | H:

src/assets/myInfo/repay.png

2.1 KB | W: | H:

src/assets/myInfo/repay.png
src/assets/myInfo/repay.png
src/assets/myInfo/repay.png
src/assets/myInfo/repay.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/unConfirm.png

2.32 KB | W: | H:

src/assets/myInfo/unConfirm.png

2.36 KB | W: | H:

src/assets/myInfo/unConfirm.png
src/assets/myInfo/unConfirm.png
src/assets/myInfo/unConfirm.png
src/assets/myInfo/unConfirm.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/unFace.png

2.44 KB | W: | H:

src/assets/myInfo/unFace.png

2.31 KB | W: | H:

src/assets/myInfo/unFace.png
src/assets/myInfo/unFace.png
src/assets/myInfo/unFace.png
src/assets/myInfo/unFace.png
  • 2-up
  • Swipe
  • Onion skin
src/assets/myInfo/unSign.png

1.92 KB | W: | H:

src/assets/myInfo/unSign.png

1.96 KB | W: | H:

src/assets/myInfo/unSign.png
src/assets/myInfo/unSign.png
src/assets/myInfo/unSign.png
src/assets/myInfo/unSign.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -89,6 +89,9 @@ export default {
methods: {
selectShowList () {
let vm = this
vm.undo = []
vm.done = []
vm.tabNum = 0
this.lists.forEach(item => {
if (item.confirm_status === 'SUBMIT') {
vm.undo.push(item)
......@@ -96,6 +99,7 @@ export default {
vm.done.push(item)
}
})
this.showList = this.undo
},
getTabNum (i) {
this.tabNum = i
......@@ -119,30 +123,6 @@ export default {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.lists = res.lists
// vm.lists = [{
// 'project_id': '48812',
// 'project_number': '',
// 'bp_name': '张三',
// 'total_price': '51',
// 'division_n': 'PDJ',
// 'confirm_status': 'SUBMIT',
// },
// {
// 'project_id': '48800',
// 'project_number': '',
// 'bp_name': '李四',
// 'total_price': '51',
// 'division_n': 'PDJ',
// 'confirm_status': 'APPROVED',
// },
// {
// 'project_id': '48800',
// 'project_number': '',
// 'bp_name': '王五',
// 'total_price': '51',
// 'division_n': 'PDJ',
// 'confirm_status': 'APPROVED',
// }]
vm.selectShowList()
} else {
hlsPopup.showLongCenter(res.message)
......
<!--
* @Author: your name
* @Date: 2019-09-29 10:02:11
* @LastEditTime: 2019-11-05 18:15:37
* @LastEditTime: 2019-11-06 16:47:37
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
-->
......@@ -113,7 +113,7 @@ export default {
// 合同查询
contractList () {
let vm = this
let url = $config.basePath + 'con_confirm_list_query'
let url = $config.basePath + 'prj_confirm_list_query'
let param = {
user_phone: window.localStorage.user_phone,
}
......
......@@ -6,7 +6,7 @@
<span>合同发车</span>
</div>
</h-header>
<Tab :tabNum="tabNum" @getTabNum="getTabNum" />
<Tab @getTabNum="getTabNum" />
<div class="search">
<input placeholder="请输入合同号/产品线/承租人名称" >
</div>
......@@ -61,7 +61,7 @@ export default {
},
data () {
return {
tabNum: 0,
tabNum: '',
contructs: [],
lists: [],
showList: [],
......@@ -91,18 +91,18 @@ export default {
created () {
},
methods: {
selectShowList (e) {
selectShowList () {
let vm = this
vm.undo = []
vm.done = []
vm.tabNum = 0
e.forEach(item => {
if (item.leases_status === 'N') {
vm.undo.push(item)
} else if (item.leases_status === 'Y') {
vm.done.push(item)
}
vm.undo = vm.lists.filter(i => {
return i.leases_status === 'N'
})
vm.done = vm.lists.filter(i => {
return i.leases_status === 'Y'
})
this.showList = this.undo
},
getTabNum (i) {
this.tabNum = i
......@@ -133,7 +133,7 @@ export default {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.lists = res.lists
vm.selectShowList(res.lists)
vm.selectShowList()
} else {
hlsPopup.showLongCenter(res.message)
}
......
......@@ -20,15 +20,15 @@ import sign from '@/assets/contractStart/1.png'
import finish from '@/assets/contractStart/3.png'
export default {
props: {
'tabNum': {
type: Number,
default: 0,
},
},
// props: {
// 'tabNum': {
// type: Number,
// default: 0,
// },
// },
data () {
return {
// tabNum: 0,
tabNum: 0,
signed: signed,
finished: finished,
sign: sign,
......
/**
* @Author Sean
* @Date 2019/10/22
*/
<template>
<h-view id="reimburseDetail" class="public-style" style="height: 100%">
<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>
</div>
</h-header>
<h-content>
<list-item :item-height="44">
<item>
<div slot="name">交易流水号</div>
<div slot="content">{{ detail.order_number }}</div>
</item>
<item>
<div slot="name">交易时间</div>
<div slot="content">{{ detail.order_date }}</div>
</item>
<item>
<div slot="name">收款账号</div>
<div slot="content">{{ '暂无字段' }}</div>
</item>
<item>
<div slot="name">收款账户名称</div>
<div slot="content">{{ '暂无字段' }}</div>
</item>
<item>
<div slot="name">商业伙伴</div>
<div slot="content">{{ detail.bp_name }}</div>
</item>
<item>
<div slot="name">商业伙伴类型</div>
<div slot="content">{{ detail.bp_type_n }}</div>
</item>
<item>
<div slot="name">付款账号</div>
<div slot="content">{{ '暂无字段' }}</div>
</item>
<item>
<div slot="name">付款账户名称</div>
<div slot="content">{{ '暂无字段' }}</div>
</item>
</list-item>
<div v-for="(list,index) in conList" :key="index" class="contract">
<div>
<div class="top">
<img src="@/assets/reimburseMyself/q.png" >
<span class="number">合同号</span>
<span>{{ list.project_number }}</span>
</div>
<div v-for="(item,indexTwo) in list.con_lists" :key="indexTwo" class="bottom">
<list-item >
<item>
<div slot="name">首付款</div>
<div slot="content">{{ item.down_payment | currency }}</div>
</item>
<item>
<div slot="name">保证金</div>
<div slot="content">{{ item.deposit | currency }}</div>
</item>
<item>
<div slot="name">手续费</div>
<div slot="content">{{ item.lease_charge | currency }}</div>
</item>
<item>
<div slot="name">GPS费用</div>
<div slot="content">{{ item.gps_fee | currency }}</div>
</item>
<item>
<div slot="name">保险押金</div>
<div slot="content">{{ item.insurance_fee | currency }}</div>
</item>
</list-item>
</div>
</div>
</div>
</h-content>
</h-view>
</template>
<script>
export default {
data () {
return {
detail: {},
conList: [],
}
},
beforeRouteEnter (to, from, next) {
next(vm => {
vm.getDetail()
vm.getConList()
})
},
created: function () {},
mounted: function () {},
updated: function () {},
destroyed: function () {},
methods: {
getDetail () {
let vm = this
let url = process.env.basePath + 'my_repayment_detial_query'
let param = {
order_id: vm.$route.params.order_id,
}
hlsPopup.showLoading('请稍候')
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.detail = res.info
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
getConList () {
let vm = this
let url = process.env.basePath + 'my_con_list_query'
let param = {
order_id: vm.$route.params.order_id,
}
hlsPopup.showLoading('请稍候')
vm.$post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.conList = res.prj_lists
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
},
}
</script>
<style lang="less" rel="stylesheet">
#reimburseDetail {
.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;
}
}
.hls-item .contents .add-name .left-icon {
width: 30px;
}
.list-wrap {
margin: 10px;
}
.add-name {
.time-font {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
}
}
.add-content {
.money-font {
font-family: Verdana-Bold;
font-size: 15px;
color: rgba(56, 63, 69, 0.6);
font-weight: 600;
}
.time-font {
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
}
}
.contract {
width: 359px;
background-color: #fff;
margin: 0 auto;
margin-top: 8px;
.top {
height: 43px;
display: flex;
align-items: center;
display: flex;
img {
width: 30px;
height: 30px;
margin-left: 10px;
}
.number {
margin-left: 10px;
font-family: PingFangSC-Semibold;
font-size: 14px;
color: #4b4a4b;
letter-spacing: 0;
line-height: 18px;
}
span:last-child {
margin-left: 116px;
font-family: PingFangSC-Semibold;
font-size: 14px;
color: rgba(75, 74, 75, 0.97);
letter-spacing: 0;
line-height: 18px;
}
}
.bottom {
width: 300px;
margin: 0 auto;
display: flex;
}
.left {
flex: 1;
}
.right {
flex: 1;
text-align: right;
}
}
}
</style>
<template>
<h-view id="reimburse" class="public-style" style="height: 100%">
<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>
</div>
</h-header>
<div class="hinput">
<input v-model="keyWords" type="text" placeholder="请输入退款金额" >
</div>
<scroll ref="scroll" :updateData="[reimburseList]" :pullUp="true">
<section class="reimburse-wrap">
<list-item
v-for="(list,index) in reimburseList"
:key="index"
@click.native="godetail(list.order_id)"
>
<item>
<img slot="left-icon" src="@/assets/reimburseMyself/reimburse.png" class="left-icon" >
<div slot="name">退款金额</div>
<div slot="content" class="money-font">{{ list.orderamount | currency }}</div>
</item>
<item>
<div slot="left-icon" class="left-icon" />
<div slot="name" class="time-font">还款时间</div>
<div slot="content" class="time-font">{{ list.order_date }}</div>
</item>
</list-item>
</section>
</scroll>
</h-view>
</template>
<script>
export default {
data () {
return {
reimburseList: [],
keyWords: '',
}
},
beforeRouteEnter (to, from, next) {
next(vm => {
vm.getList()
})
},
methods: {
godetail (e) {
this.$router.push({
name: 'DrawbackDetail',
params: {
order_id: e,
},
})
},
getList () {
// let vm = this
// let url = process.env.basePath + 'my_repayment_query'
// let param = {
// user_phone: window.localStorage.getItem('user_phone'),
// }
// vm.hlsPopup.showLoading('数据加载中,请稍后!')
// vm.hlsHttp.post(url, param).then(function (res) {
// vm.hlsPopup.hideLoading()
// if (res.result === 'S') {
// vm.reimburseList = res.lists
this.reimburseList = [
{
order_date: '2019/10/24',
orderamount: '0',
order_id: '16',
},
]
// if (res.lists.length > 0 && res.lists.length < 10) {
// vm.$refs.scroll.update(true)
// }
// }
// })
},
},
}
</script>
<style lang="less" rel="stylesheet">
#reimburse {
.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;
width: 100%;
height: 68px;
display: flex;
justify-content: center;
align-items: center;
margin-top: 3px;
background: #fff;
input {
width: 351px;
height: 36px;
padding-left: 20px;
margin: 0 auto;
opacity: 0.4;
border: none;
line-height: 34px;
border: none;
background: url("../../assets/drawback/uncheck.png") 310px no-repeat;
background-size: 16px 16px;
background-color: rgba(239, 239, 239, 0.55);
}
input:focus {
background-color: #fff;
background: url("../../assets/drawback/check.png") 310px no-repeat;
background-size: 16px 16px;
border: 1px solid #1d3fff;
}
}
.content {
margin-top: 10px;
}
.scrollContent {
padding-bottom: 70px;
}
.reimburse-wrap {
margin: 10px;
}
.hls-item .contents .add-name .left-icon {
width: 30px;
}
.add-name {
.time-font {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56, 63, 69, 0.6);
}
}
.add-content {
.money-font {
font-family: Verdana-Bold;
font-size: 15px;
color: #1d3fff;
}
.time-font {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56, 63, 69, 0.6);
}
}
}
</style>
......@@ -2,7 +2,7 @@
* @Descrip""/>User Settings Edit
* @Author: your name
* @Date: 2019-09-29 20:31:00
* @LastEditTime: 2019-11-05 15:35:42
* @LastEditTime: 2019-11-06 15:14:34
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -54,7 +54,7 @@
<item>
<div slot="name" class="font-color">手续费</div>
<span v-if="!equip_price" slot="content" class="autoColor">手续费金额自动填充</span>
<span v-if="equip_price" slot="content">{{ (equip_price - equip_price*info.down_payment_ratio_n.replace("%","")/100)*(info.lease_charge_ratio_n.replace("%","")/100) | currency }}</span>
<span v-if="equip_price" slot="content">{{ parseFloat((equip_price - equip_price*info.down_payment_ratio_n.replace("%","")/100)*(info.lease_charge_ratio_n.replace("%","")/100)).toFixed(2) | currency }}</span>
</item>
<item>
<div slot="name" class="font-color">保险押金</div>
......@@ -67,15 +67,16 @@
<item>
<div slot="name" class="font-color">首次付款合计</div>
<span v-if="!equip_price" slot="content" class="autoColor">首次付款合计金额自动填充</span>
<span v-if="equip_price" slot="content">{{ equip_price*info.down_payment_ratio_n.replace("%","")/100 + equip_price*info.deposit_ratio_n.replace("%","")/100 + (equip_price - equip_price*info.down_payment_ratio_n.replace("%","")/100)*(info.lease_charge_ratio_n.replace("%","")/100) | currency }}</span>
<!-- 合计 = 首付款+保证金+手续费+GPS费用+保险押金 -->
<span v-if="equip_price" slot="content">{{ parseFloat(equip_price*info.down_payment_ratio_n.replace("%","")/100 + equip_price*info.deposit_ratio_n.replace("%","")/100 + (equip_price - equip_price*info.down_payment_ratio_n.replace("%","")/100)*(info.lease_charge_ratio_n.replace("%","")/100) + Number(gps_fee) + Number(insurance_fee)).toFixed(2) | currency }}</span>
</item>
<item>
<div slot="name" class="font-color">预计付款日</div>
<!-- <input slot="content" placeholder="YYYY-MM-DD" readonly> -->
<div slot="content" class="autoColor">{{ price_date_to | dateFormat }}</div>
<div slot="content" class="autoColor">{{ price_date_to }}</div>
<img src="@/assets/trial/date.png" alt="" class="date-pic" @click="showTime('YYYY-MM-DD')">
</item>
<item>
<item @click.native="periodPull" :show-arrow="true">
<div slot="name" class="font-color">还款周期</div>
<input slot="content" v-model="info.annual_pay_times_n" placeholder="月">
</item>
......@@ -114,9 +115,9 @@
</template>
<script>
export default {
export default {
name: 'FinancingDetails',
data() {
data () {
return {
info: {},
dates: '',
......@@ -125,6 +126,7 @@
quotation_id: '', // 试算成功返回id
trial_flag: false, // 检测是否通过试算
equip_price: null,
periodLists: [], // 还款周期
product_num: '',
price_date_to: '',
product_plan_id: '',
......@@ -132,28 +134,29 @@
},
computed: {},
watch: {
equip_price() {
equip_price () {
},
},
beforeRouteEnter(to, from, next) {
beforeRouteEnter (to, from, next) {
next(vm => {
if (from.name === 'FinancingTrial') {
vm.price_date_to = vm.$route.params.price_date_to // 有效日期
// vm.price_date_to = vm.$route.params.price_date_to // 有效日期
vm.equip_price = vm.$route.params.plan_price // 参考价
if (vm.product_plan_id !== vm.$route.params.product_plan_id) {
vm.product_plan_id = vm.$route.params.product_plan_id
vm.quotation_id = ''
vm.trial_flag = false
vm.insurance_fee = ''
vm.gps_fee = ''
}
vm.detailsQuery()
vm.repayPeriod()
}
})
next()
},
created() {
},
created () {},
methods:
{
// 还款计划
......@@ -171,7 +174,7 @@
},
// 时间选择
showTime(format) {
showTime (format) {
let vm = this
hlsPopup.showTime({
nowDate: (new Date()).format('yyyy-MM-dd'),
......@@ -181,8 +184,48 @@
},
})
},
// 还款周期查询
repayPeriod () {
let vm = this
let url = $config.basePath + 'annual_pay_times_query'
let param = {
product_plan_id: vm.product_plan_id,
}
vm.hlsPopup.showLoading('数据加载中')
vm.hlsHttp.post(url, param).then(function (res) {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.periodLists = res.lists.map(item => {
return {
code: item.annual_pay_times,
code_name: item.annual_pay_times_n,
}
})
} else {
hlsPopup.showLongCenter(res.message)
}
})
},
periodPull () {
let vm = this
vm.hlsPopup.selectList({
list: vm.periodLists, // 下拉列表
code: 'bp_type',
object: {},
returnItem: function (index, obj) {
vm.info.annual_pay_times_n = obj.bp_type_n
},
})
},
// 试算明细查询
detailsQuery() {
detailsQuery () {
let vm = this
let url = $config.basePath + 'finance_detial'
let param = {
......@@ -199,7 +242,7 @@
})
},
// 试算保存
calculationSave() {
calculationSave () {
if (!this.equip_price) {
hlsPopup.showLongCenter('请输入设备总价')
} else if (!this.price_date_to) {
......@@ -230,8 +273,8 @@
})
}
},
},
}
},
}
</script>
<style lang='less' scoped>
#details1 {
......
<!--
* @Author: your name
* @Date: 2019-10-30 19:29:24
* @LastEditTime: 2019-10-31 10:26:52
* @LastEditTime: 2019-11-06 15:56:54
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \hls-xcmg-vue-app\src\pages\financingTrial\trial-repay-plan.vue
......@@ -36,15 +36,15 @@
</div>
<h-content id="content" class="plan-content">
<!-- 已结清 black , 逾期 orange , 还款中 blue , 未还款 green -->
<div v-for="(item,index) in 5" :key="index" :class="{'plan-list':true,'or':statu==='orange','bl':statu==='blue','gr':statu==='green'}">
<div v-for="(item,index) in repayLists" :key="index" :class="{'plan-list':true,'or':statu==='orange','bl':statu==='blue','gr':statu==='green'}">
<div :class="{'period':true,'orange':statu==='orange','blue':statu==='blue','green':statu==='green'}">{{ index + 1 }}</div>
<img v-if="statu === 'black'" src="@/assets/contractInquire/black.png" alt="" class="left">
<img v-if="statu === 'orange'" src="@/assets/contractInquire/orange.png" alt="" class="left">
<img v-if="statu === 'blue'" src="@/assets/contractInquire/blue.png" alt="" class="left">
<img v-if="statu === 'green'" src="@/assets/contractInquire/green.png" alt="" class="left">
<div class="time">
<p>2019</p>
<span>01-01</span>
<p>{{ item.due_date.substr(0,4) }}</p>
<span>{{ dateConverse(item.due_date).substr(5,10) }}</span>
</div>
<div class="name">
<p>现金流项目</p>
......@@ -52,7 +52,7 @@
</div>
<div class="number">
<p>租金</p>
<span :class="{'orang':statu==='orange','blu':statu==='blue','gree':statu==='green'}">90,000.00</span>
<span :class="{'orang':statu==='orange','blu':statu==='blue','gree':statu==='green'}">{{ item.rental |currency }}</span>
</div>
<img v-if="statu === 'black'" src="@/assets/contractInquire/done.png" alt="" class="status">
<img v-if="statu === 'orange'" src="@/assets/contractInquire/prompt.png" alt="" class="status">
......@@ -71,12 +71,13 @@ export default {
data () {
return {
// 已结清 black , 逾期 orange , 还款中 blue , 未还款 green
statu: 'black',
statu: 'orange',
info: {},
show: false,
height: 0,
oldHeight: 0,
newHeight: 0,
repayLists: [], // 每期还款
}
},
computed: {},
......@@ -90,6 +91,16 @@ export default {
next()
},
methods: {
dateConverse (date) {
return date.replace(/\//g, '-')
},
arrSort (property) {
return function (a, b) {
var value1 = a[property]
var value2 = b[property]
return value1 - value2
}
},
showDetails () {
if (!this.flag) {
this.flag = true
......@@ -124,6 +135,8 @@ export default {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.info = res.info
vm.repayLists = res.lists.sort(vm.arrSort('times')) // 根据还款期排序
} else {
hlsPopup.showLongCenter(res.message)
}
......@@ -283,7 +296,7 @@ export default {
display: flex;
padding-right: 20px;
padding-left: 10px;
padding-top: 16px;
padding-top: 20px;
margin-bottom: 10px;
.left {
......@@ -306,13 +319,14 @@ export default {
left: 0;
background: rgba(75,74,75,.5);
border-radius: 4px 0 4px 0;
width: 30px;
height: 15px;
// width: 30px;
padding: 1px 2px;
height: 20px;
color: #fff;
font-family: PingFangSC-Semibold;
font-size: 12px;
letter-spacing: 1.09px;
line-height: 15px;
line-height: 20px;
text-align: center;
}
......@@ -336,7 +350,7 @@ export default {
font-size: 12px;
color: rgba(56,63,69,0.60);
margin-bottom: 4px;
margin-top: 5px;
margin-top: 8px;
}
span {
......
......@@ -4,12 +4,18 @@
<h-header class="header">
<div slot="center" class="top-word">个人中心</div>
</h-header>
<div class="card">
<div class="card-info">
<div class="card-top">
<img src="@/assets/myInfo/1.jpg" @click="changePageHead" >
<img src="@/assets/myInfo/1.png" @click="showActionSheet" >
<div class="sign">
<span>{{ user_phone }}</span>
<div>
电子签
<p :class="[elecStatus?'across':'un-across']">{{ elecStatus?'已通过':'未通过' }}</p>
</div>
</div>
</div>
<div class="card">
<div class="card-info">
<div class="card-bottom">
<div @click="goStart">
<img src="@/assets/myInfo/car.png" >
......@@ -28,20 +34,27 @@
</div>
</div>
<h-content class="my-content">
<div class="content-top">
<div class="userInfo">我的合同</div>
<div class="my-contract">
<div class="content-wrap" @click="goSign">
<span :class="{'content-wrap-class-width':signCount>99, 'content-wrap-class':signCount<99}">{{ signCount > 99 ? '99+' : signCount }}</span>
<span
:class="{'content-wrap-class-width':signCount>99, 'content-wrap-class':signCount<99}"
>{{ signCount > 99 ? '99+' : signCount }}</span>
<img src="@/assets/myInfo/unSign.png" >
<p>待签约</p>
</div>
<!--<div class="content-wrap" @click="goConfirm">
<span :class="{'content-wrap-class-width':confirmCount>99, 'content-wrap-class':confirmCount<99}">{{ confirmCount > 99 ? '99+' : confirmCount }}</span>
<!-- <div class="content-wrap" @click="goConfirm">
<span
:class="{'content-wrap-class-width':confirmCount>99, 'content-wrap-class':confirmCount<99}"
>{{ confirmCount > 99 ? '99+' : confirmCount }}</span>
<img src="@/assets/myInfo/unConfirm.png" >
<p>待确认</p>
</div>-->
</div> -->
<div class="content-wrap">
<span :class="{'content-wrap-class-width':vedioCount>99, 'content-wrap-class':vedioCount<99}">{{ vedioCount > 99 ? '99+' : vedioCount }}</span>
<span
:class="{'content-wrap-class-width':vedioCount>99, 'content-wrap-class':vedioCount<99}"
>{{ vedioCount > 99 ? '99+' : vedioCount }}</span>
<img src="@/assets/myInfo/unFace.png" >
<p>待面签</p>
</div>
......@@ -51,24 +64,27 @@
</div>
</div>
<list-item :item-height="44" class="list">
<item :show-arrow="true" @click.native="goReimburse">
<item @click.native="goReimburse">
<img slot="left-icon" src="@/assets/myInfo/myRefund.png" class="left-icon" >
<div slot="name">我的还款</div>
</item>
<item :show-arrow="true">
<item @click.native="changeDrawbackList">
<img slot="left-icon" src="@/assets/myInfo/repay.png" class="left-icon" >
<div slot="name">业务退款</div>
</item>
<item :show-arrow="true" @click.native="goMyProduct">
<item @click.native="goMyProduct">
<img slot="left-icon" src="@/assets/myInfo/collect.png" class="left-icon" >
<div slot="name">我的收藏</div>
<div slot="right-icon" :class="{'right-icon-width':productCount>99, 'right-icon':productCount<99}">{{ productCount > 99 ? '99+' : productCount }}</div>
<div
slot="right-icon"
:class="{'right-icon-width':productCount>99, 'right-icon':productCount<99}"
>{{ productCount > 99 ? '99+' : productCount }}</div>
</item>
<item :show-arrow="true" @click.native="changeHelp">
<item @click.native="changeHelp">
<img slot="left-icon" src="@/assets/myInfo/help.png" class="left-icon" >
<div slot="name">帮助与反馈</div>
</item>
<item :show-arrow="true">
<item>
<img slot="left-icon" src="@/assets/myInfo/about.png" class="left-icon" >
<div slot="name">关于徐工</div>
</item>
......@@ -82,8 +98,9 @@
</item>
<!-- <button v-if="flag" @click="changePageHead">用户绑定</button>
<button v-if="!flag" @click="unBind">解除绑定</button>-->
<button @click="approveBtn ? unBind() : changePageHead()">{{ description }}</button>
</list-item>
<button @click="approveBtn ? unBind() : changePageHead()">{{ description }}</button>
</div>
</h-content>
</h-view>
</template>
......@@ -105,10 +122,11 @@ export default {
productCount: '0',
description: '',
approveBtn: false,
elecStatus: false,
}
},
watch: {
/*'user_bp_status' (newVal, oldVal) {
/* 'user_bp_status' (newVal, oldVal) {
console.log('@@@@@@@@@@@@@@@@@')
if (!this.bp_id && newVal === 'NEW') {
this.description = '用户绑定'
......@@ -127,8 +145,8 @@ export default {
} else {
this.flag = true
} *!/
},*/
'user_bp_type' (newVal, oldVal) {
}, */
user_bp_type (newVal, oldVal) {
if (newVal === 'AGENT') {
this.isAGENT = true
} else {
......@@ -146,7 +164,7 @@ export default {
this.isAGENT = true
} else {
this.isAGENT = false
}*/
} */
},
beforeRouteEnter (to, from, next) {
next(vm => {
......@@ -163,7 +181,7 @@ export default {
activated () {},
methods: {
// 监听用户状态
watchBpStatus(){
watchBpStatus () {
if (!this.bp_id && this.user_bp_status === 'NEW') {
this.description = '用户绑定'
} else if (this.bp_id && this.user_bp_status === 'NEW') {
......@@ -171,7 +189,10 @@ export default {
} else if (this.bp_id && this.user_bp_status === 'APPROVED') {
this.description = '解除绑定'
this.approveBtn = true
} else if ((this.bp_id && this.user_bp_status === 'RETURN') || (this.bp_id && this.user_bp_status === 'REJECT')) {
} else if (
(this.bp_id && this.user_bp_status === 'RETURN') ||
(this.bp_id && this.user_bp_status === 'REJECT')
) {
this.description = '审核未通过'
} else {
this.description = '审批中'
......@@ -193,7 +214,7 @@ export default {
goConfirm () {
/* this.$router.push({
name: 'IntoList',
})*/
}) */
this.$router.push({
name: 'IframTest',
})
......@@ -227,6 +248,11 @@ export default {
name: 'HelpList',
})
},
changeDrawbackList () {
this.$router.push({
name: 'DrawbackList',
})
},
changePay () {
this.$router.push({
name: 'FirstPay',
......@@ -274,6 +300,14 @@ export default {
},
})
},
showActionSheet () {
this.hlsPopup.showActionSheet({
buttonArray: ['查看头像', '选择头像'],
callback: (index) => {
console.log(index)
},
})
},
unBind () {
let vm = this
hlsPopup.showConfirm({
......@@ -300,7 +334,7 @@ export default {
if (res.result === 'S') {
vm.hlsPopup.showLongCenter('解绑成功')
vm.userQuery()
//vm.flag = true
// vm.flag = true
vm.approveBtn = false
} else {
vm.hlsPopup.showLongCenter(res.message)
......@@ -316,7 +350,11 @@ export default {
changePageHead () {
let vm = this
if (vm.bp_id) {
if (vm.user_bp_status === 'NEW' || vm.user_bp_status === 'REJECT' || vm.user_bp_status === 'RETURN') {
if (
vm.user_bp_status === 'NEW' ||
vm.user_bp_status === 'REJECT' ||
vm.user_bp_status === 'RETURN'
) {
vm.flag = true
if (vm.user_bp_class === 'NP') {
vm.$router.push({
......@@ -418,6 +456,58 @@ export default {
<style lang="less" scoped>
#my-info {
.card-top {
width: 330px;
margin: 0 auto;
height: 110px;
display: flex;
align-items: center;
.sign {
margin-left: 24px;
height:55px;
span {
font-family: PingFangSC-Semibold;
font-size: 18px;
color: #fff;
margin-top: 10px;
}
div {
display: flex;
align-items: center;
margin-top: 20px;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #ffffff;
letter-spacing: 0;
p {
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 20px;
margin-left: 10px;
border: 1px solid #fff;
border-radius: 4px;
font-family: PingFangSC-Regular;
font-size: 12px;
color: #ffffff;
letter-spacing: 0;
}
.across{
background-color: #1D3FFF;
}
.un-across{
background: #0523ce;
}
}
}
img {
width: 59px;
height: 59px;
border-radius: 50%;
border: 1px solid #00469c;
}
}
.top {
width: 100%;
height: 206px;
......@@ -433,37 +523,18 @@ export default {
}
}
.card {
width: 343px;
height: 217px;
width: 359px;
height: 108px;
margin: 0 auto;
z-index: 10;
position: relative;
top: 0px;
left: 0px;
background-color: #fff;
box-shadow: 0 2px 17px -1px rgba(0, 0, 0, 0.1);
border-radius: 4px;
.card-info {
width: 295px;
margin: 0 auto;
.card-top {
height: 110px;
display: flex;
align-items: center;
border-bottom: 1px solid #d9dbdf;
img {
width: 59px;
height: 59px;
border-radius: 50%;
border: 1px solid #00469c;
}
span {
font-family: PingFangSC-Semibold;
font-size: 18px;
color: #383f45;
margin-left: 24px;
}
}
.card-bottom {
height: 100px;
width: 285px;
......@@ -487,21 +558,29 @@ export default {
}
}
.my-content {
background-color: #efefef;
.content-top {
width: 359px;
height: 121px;
margin: 0 auto;
margin-top: 82px;
background-color: #fff;
border-radius: 4px;
}
.userInfo {
height: 45px;
line-height: 45px;
color: #00469c;
color: @headerColor;
font-size: 15px;
margin-left: 16px;
position: relative;
margin-top: 70px;
}
.userInfo::before {
content: "";
display: block;
width: 4px;
height: 20px;
background-color: #00469c;
background-color: @headerColor;
position: absolute;
left: -15px;
top: 12px;
......@@ -513,9 +592,9 @@ export default {
justify-content: space-between;
align-items: center;
text-align: center;
.content-wrap{
.content-wrap {
position: relative;
.content-wrap-class{
.content-wrap-class {
position: absolute;
top: -10px;
left: 25px;
......@@ -528,7 +607,7 @@ export default {
color: #fff;
border-radius: 50%;
}
.content-wrap-class-width{
.content-wrap-class-width {
position: absolute;
top: -10px;
left: 25px;
......@@ -554,30 +633,32 @@ export default {
}
}
.list {
width: 359px;
margin: 0 auto;
background-color: #fff;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
letter-spacing: 0;
line-height: 18px;
border-top: 1px solid rgba(0, 0, 0, 0.1);
margin-top: 20px;
margin-top: 25px;
}
}
button {
width: 359px;
height: 40px;
background: #00469c;
background: @headerColor;
border-radius: 4px;
color: #fff;
margin: 0 auto;
margin-bottom: 68px;
margin-left:2%;
margin-top: 20px;
margin-top: 10px;
}
}
.content {
background-color: #fff;
}
.right-icon{
.right-icon {
width: 18px;
height: 18px;
font-size: 10px;
......@@ -586,8 +667,8 @@ export default {
background-color: red;
color: #fff;
border-radius: 50%;
}
.right-icon-width{
}
.right-icon-width {
width: 24px;
height: 18px;
font-size: 10px;
......@@ -596,5 +677,5 @@ export default {
background-color: red;
color: #fff;
border-radius: 50%;
}
}
</style>
......@@ -122,21 +122,22 @@ export default {
newList () {
let vm = this
vm.nongBank = []
let newList = vm.lists.map(i => {
return i.bank_full_name.indexOf('农业') === -1
})
vm.lists.forEach((item, i) => {
if (item.bank_full_name.indexOf('农业') !== -1) {
vm.nongBank.push(vm.lists[i])
vm.flag = true
}
})
let notNong = vm.lists.filter(i => {
return (i.bank_full_name.indexOf('农业') === -1)
})
console.log(notNong)
if (vm.flag) {
vm.select = 'nong0'
} else {
vm.select = 'one'
}
return newList
return notNong
},
},
watch: {},
......
......@@ -121,20 +121,23 @@ export default {
computed: {
newList () {
let vm = this
let value
vm.nongBank = []
vm.lists.forEach((item, i) => {
if (item.bank_full_name.indexOf('农业') !== -1) {
value = vm.lists.splice(i, 1)
vm.nongBank.push(...value)
vm.nongBank.push(vm.lists[i])
vm.flag = true
}
})
let notNong = vm.lists.filter(i => {
return (i.bank_full_name.indexOf('农业') === -1)
})
console.log(notNong)
if (vm.flag) {
vm.select = 'nong0'
} else {
vm.select = 'one'
}
return vm.lists
return notNong
},
},
watch: {},
......
......@@ -112,20 +112,23 @@ export default {
computed: {
newList () {
let vm = this
let value
vm.nongBank = []
vm.lists.forEach((item, i) => {
if (item.bank_full_name.indexOf('农业') !== -1) {
value = vm.lists.splice(i, 1)
vm.nongBank.push(...value)
vm.nongBank.push(vm.lists[i])
vm.flag = true
}
})
let notNong = vm.lists.filter(i => {
return (i.bank_full_name.indexOf('农业') === -1)
})
console.log(notNong)
if (vm.flag) {
vm.select = 'nong0'
} else {
vm.select = 'one'
}
return vm.lists
return notNong
},
},
watch: {},
......
......@@ -2,7 +2,7 @@
* @Descrip: 产品明细
* @Author: your name
* @Date: 2019-10-15 14:30:00
* @LastEditTime: 2019-11-06 10:36:40
* @LastEditTime: 2019-11-06 16:35:55
* @LastEditors: Please set LastEditors
-->
<template>
......@@ -23,11 +23,14 @@
<!-- <Tab v-if="slide" :tabNums="tabNum" @getTabNum="getTabNum"/> -->
<!-- 基本信息 -->
<h-content v-swipeup="(e)=>vueTouch('上滑',e)" v-swipedown="(e)=>vueTouch('下滑',e)" class="hcontent">
<scroll class="scrolls">
<scroll class="scrolls" ref="scrolls">
<!-- 基本信息 -->
<div id="baseInfo" class="base">
<img :src="picLists[0].url" alt="" class="detail-pic">
<swipe :interval="5000" class="hls-swipe">
<swipe-item v-for="(item,index) in picLists" :key="index" class="hls-swipe">
<img :src="item.url" alt="">
</swipe-item>
</swipe>
<div class="base-content">
<div class="top-code">
<div>参数项 &nbsp;{{ baseInfo.product_code }}</div>
......@@ -155,23 +158,33 @@ export default {
}
},
methods:
{
// tab切换
tabCheck (num) {
let scrollContent = document.getElementsByClassName('scrollContent')[0]
if(num === 0){
this.num = 0
console.log('基本信息',document.getElementsByClassName('base')[0].getBoundingClientRect().top)
this.height = document.getElementsByClassName('base')[0].getBoundingClientRect().top - 83
// console.log(height)
scrollContent.style.transition = 'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
scrollContent.style.transform = 'translate(0px, -' + this.height + 'px) scale(1) translateZ(0px)'
}else if(num === 1){
this.num = 1
console.log('详情信息',document.getElementsByClassName('prodetail')[0].getBoundingClientRect().top)
this.height = document.getElementsByClassName('prodetail')[0].getBoundingClientRect().top - 83
console.log(this.height)
scrollContent.style.transition = 'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
scrollContent.style.transform = 'translate(0px, -' + this.height + 'px) scale(1) translateZ(0px)'
}else{
this.num = 2
console.log('配置信息',document.getElementsByClassName('procnf')[0].getBoundingClientRect().top)
this.height = document.getElementsByClassName('procnf')[0].getBoundingClientRect().top - 83
// console.log(height)
document.getElementsByClassName('scrollContent')[0].style.transition = 'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
document.getElementsByClassName('scrollContent')[0].style.transform = 'translate(0px, -' + this.height + 'px) scale(1) translateZ(0px)'
scrollContent.style.transition = 'all .3s cubic-bezier(0.165, 0.84, 0.44, 1) 0s'
scrollContent.style.transform = 'translate(0px, -' + this.height + 'px) scale(1) translateZ(0px)'
}
},
returnGo () {
......@@ -183,12 +196,7 @@ export default {
vueTouch: function (s, e) {
// console.log(s, e)
this.slide = true
this.height = 0
// document.getElementsByTagName('hcontent')[0].addEventListener('touchmove',function(e){
// console.log("开始滑动了touchstart");
// let a = document.documentElement.scrollTop;
// console.log("滑动距离为:",a);
// });
// this.height = 0
// console.log(this.$refs.detail.style)
let clientHeight = document.body.clientHeight // 屏幕可视高度
let procnfGather = document.getElementsByClassName('procnf')[0].getBoundingClientRect() // 配置信息元素集合
......@@ -198,7 +206,7 @@ export default {
this.num = 2
} else if (clientHeight - detailGather.top >= detailGather.height) {
this.num = 1
} else if (clientHeight - baseGather.top >= baseGather.height) {
} else if ( -(baseGather.top) <= baseGather.height/2) {
this.num = 0
}
},
......
......@@ -23,7 +23,7 @@
<list-item v-for="(item,index) in lists" :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="@/assets/homePage/WechatIMG2 Copy@2x.png" alt="">
<img :src="item.url" alt="">
</div>
<div slot="content" class="item-content">
<div class="pro-name">
......@@ -81,6 +81,11 @@ export default {
vm.hlsPopup.hideLoading()
if (res.result === 'S') {
vm.lists = res.lists
res.lists.forEach(item => {
item['url'] = process.env.filePath + 'attachment_id=' + item.product_attachment_id + '&access_token=' + window.localStorage.access_token
})
// vm.picLists = res.lists
// console.log('........',vm.picLists)
} else {
hlsPopup.showLongCenter(res.message)
}
......
......@@ -96,6 +96,10 @@ import ContractRecords from '@/pages/contractInquire/contract-records'
import RepayDetail from '@/pages/contractInquire/repay-detail'
import RepayPlans from '@/pages/contractInquire/repay-plans'
// 业务退款
import DrawbackList from '@/pages/drawback/drawback-list'
import DrawbackDetail from '@/pages/drawback/drawback-detail'
Vue.use(Router)
export default new Router({
......@@ -239,6 +243,11 @@ export default new Router({
{path: '/repay-detail', component: RepayDetail, name: 'RepayDetail', meta: {keepAlive: true}},
{path: '/repay-plans', component: RepayPlans, name: 'RepayPlans', meta: {keepAlive: true}},
{path: '/ifram-test', component: IframTest, name: 'IframTest', meta: {keepAlive: false}},
// 业务退款
{path: '/drawback-list', component: DrawbackList, name: 'DrawbackList', meta: {keepAlive: false}},
{path: '/drawback-detail', component: DrawbackDetail, name: 'DrawbackDetail', meta: {keepAlive: false}},
],
scrollBehavior (to, from, savedPosition) {
if (to.hash) {
......
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