Commit 957dcce7 authored by caimeng's avatar caimeng

优化客户详情样式12-9

parent db95428f
......@@ -12,10 +12,10 @@
//window.APIHOST = "http://192.168.0.50:8202";
//测试
window.APIHOST = "http://47.99.245.36:8202";
// window.APIHOST = "http://47.99.245.36:8202";
//生产环境
//window.APIHOST = "https://water.jqtianxia.com";
window.APIHOST = "https://water.jqtianxia.com";
</script>
</head>
......
<template>
<div>
<div class="page-byh-service">
<block-header title="搜索"/>
<div class="page-search">
<el-form :inline="true" :model="searchInfo" class="demo-form-inline">
<el-form-item label="手机号">
<el-input v-model="searchInfo.clientCell"
@keyup.enter.native="onSubmit"
placeholder="请输入手机号"></el-input>
<el-form size="small" label-suffix=":" :inline="true" ref="refForm" :model="searchInfo" class="demo-form-inline">
<el-form-item prop="clientCell" label="手机号码">
<el-input
clearable
v-model="searchInfo.clientCell"
@keyup.enter.native="onSubmit"
placeholder="请输入手机号码"></el-input>
</el-form-item>
<el-form-item label="客户编号">
<el-input v-model="searchInfo.clientNo"
@keyup.enter.native="onSubmit"
placeholder="请输入客户编号"></el-input>
<el-form-item prop="clientNo" label="客户编号">
<el-input
clearable
v-model="searchInfo.clientNo"
@keyup.enter.native="onSubmit"
placeholder="请输入客户编号"></el-input>
</el-form-item>
<el-form-item label="身份证号">
<el-input v-model="searchInfo.certNo"
@keyup.enter.native="onSubmit"
placeholder="请输入身份证号"></el-input>
<el-form-item prop="certNo" label="身份证号">
<el-input
clearable
v-model="searchInfo.certNo"
@keyup.enter.native="onSubmit"
placeholder="请输入身份证号"></el-input>
</el-form-item>
<el-form-item label="产品名称">
<el-form-item prop="productName" label="产品名称">
<el-select clearable v-model="searchInfo.productName">
<el-option v-for="item in this.$enumUtils.toValue('BusinessType')" :key="item.value"
:label="item.label" :value="item.value"></el-option>
......@@ -30,28 +36,26 @@
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
<el-button @click="onReset('refForm')">清空</el-button>
</el-form-item>
</el-form>
</div>
<!-- 列表 -->
<div v-show="isShow">
<el-table :data="loanApplyList" stripe style="width: 100%;">
<el-table-column prop="clientNo" label="客户编号"></el-table-column>
<el-table-column prop="clientName" label="姓名"></el-table-column>
<el-table-column prop="clientCell" label="手机号"></el-table-column>
<el-table-column prop="certNo" label="身份证号"></el-table-column>
<el-table-column prop="level" label="授信级别"></el-table-column>
<el-table-column prop="productName" label="产品名称" :formatter="productNameFormat"></el-table-column>
<el-table-column prop="userStatus" label="状态" :formatter="userStatusFormat"></el-table-column>
<!--<el-table-column label="操作">
<template scope="scope">
<el-button type="primary" size="small" v-if="$permissionUtils.rolePermission('customBoss') && scope.row.userStatus == 'REAL_NAME' " @click="cancellation(scope.row)">注销</el-button>
</template>
</el-table-column>-->
<el-table-column label="查看详情">
<block-header title="借款列表"/>
<el-table
border
size="small"
:data="loanApplyList" stripe style="width: 100%;">
<el-table-column align="center" width="180" prop="clientNo" label="客户编号"></el-table-column>
<el-table-column align="center" prop="clientName" label="姓名"></el-table-column>
<el-table-column align="center" prop="clientCell" label="手机号"></el-table-column>
<el-table-column align="center" prop="certNo" label="身份证号"></el-table-column>
<el-table-column align="center" prop="level" label="授信级别"></el-table-column>
<el-table-column align="center" prop="productName" label="产品名称" :formatter="productNameFormat"></el-table-column>
<el-table-column align="center" prop="userStatus" label="状态" :formatter="userStatusFormat"></el-table-column>
<el-table-column align="center" label="查看详情">
<template slot-scope="scope">
<el-button type="text" size="small" @click="loanDetail(scope.row)">查看详情</el-button>
</template>
......@@ -69,10 +73,14 @@
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import * as moment from "moment";
export default {
name: "ByhService",
components: {
BlockHeader
},
data() {
return {
flag: false,
......
This diff is collapsed.
This diff is collapsed.
<template>
<div>
<el-table :data="baseConfigList" stripe style="width: 100%;">
<el-table-column prop="content" label="内容"></el-table-column>
<el-table-column prop="valueContent" label="当前配置"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="updateQue(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
<div class="page">
<div class="page">
<block-header title="资方配置列表"/>
<div class="b-table">
<el-table size="small" border :data="baseConfigList" stripe style="width: 100%;">
<el-table-column align="center" prop="content" label="内容"></el-table-column>
<el-table-column align="center" prop="valueContent" label="当前配置"></el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="updateQue(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="b-pagination">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="page.current"
......@@ -21,9 +25,6 @@
:total="page.total">
</el-pagination>
</div>
<br/>
</div>
</template>
......@@ -57,13 +58,12 @@ export default {
created() {
this.getRiaseOrPut();
},
methods: {
getRiaseOrPut(){
this.$$post("/raise/getRiaseOrPut",{
getRiaseOrPut() {
this.$$post("/raise/getRiaseOrPut", {
size: this.page.size,
current: this.page.current
}).then(res=>{
}).then(res => {
if (res.data.code != 200) {
// this.isShow = false;
this.$message.error(res.data.message);
......@@ -94,9 +94,9 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
center: true
}).then(({ value }) => {
}).then(({value}) => {
if(value == null || value == '' ){
if (value == null || value == '') {
this.$message.error("请输入后再提交");
return
}
......@@ -128,10 +128,5 @@ export default {
}
}
}
</script>
<style scoped>
</style>
<template>
<div style="width: 600px">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="140px" class="demo-ruleForm">
<block-header title="创建减免单" />
<el-form
size="small"
label-suffix=":"
:model="ruleForm"
:rules="rules" ref="ruleForm"
label-width="120px" class="demo-ruleForm">
<el-form-item label="借款编号" prop="loanNo">
<el-col :span="20">
<el-input v-model="ruleForm.loanNo" placeholder="请正确填写借款编号"></el-input>
......@@ -16,10 +22,10 @@
<el-input v-model="ruleForm.applyDesc" placeholder="请输入减免描述信息"></el-input>
</el-col>
</el-form-item>
<el-form-item>
<el-button size="small" type="primary" @click="createDerate('ruleForm')">确 定</el-button>
</el-form-item>
</el-form>
<div slot="footer">
<el-button style="float:right; margin-right:200px" type="primary" @click="createDerate('ruleForm')">确 定</el-button>
</div>
</div>
</template>
......@@ -103,4 +109,4 @@ export default {
<style scoped>
</style>
\ No newline at end of file
</style>
......@@ -38,7 +38,7 @@
</el-form>
</div>
<div class="table">
<div class="b-table">
<block-header title="客户列表"></block-header>
<el-table
border
......
This diff is collapsed.
......@@ -2,12 +2,13 @@
<el-dialog
class="client-data-dialog"
:title="title"
width="30%"
:visible.sync="dialogVisible"
:before-close="handleClose">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="80px" class="demo-ruleForm">
<el-form size="small" label-suffix=":" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="反馈类型" prop="feedType">
<el-select v-model="ruleForm.feedType" label="反馈类型" placeholder="请选择" style="width:80%">
<el-select v-model="ruleForm.feedType" label="反馈类型" placeholder="请选择" >
<el-option
v-for="item in optionsFeedType"
:key="item.value"
......@@ -22,7 +23,7 @@
type="textarea"
:rows="2"
placeholder="请输入反馈内容"
v-model="ruleForm.feedContent" style="width:80%">
v-model="ruleForm.feedContent" >
</el-input>
</el-form-item>
......@@ -42,9 +43,9 @@
</el-form-item>
</el-form>
<div slot="footer" style="margin-right:30px">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="submitForm('ruleForm')">新 增</el-button>
<div slot="footer">
<el-button size="small" @click="handleClose">取 消</el-button>
<el-button size="small" icon="el-icon-plus" type="primary" @click="submitForm('ruleForm')">新 增</el-button>
</div>
</el-dialog>
</template>
......
<template>
<el-dialog class="client-data-dialog" title="创建线下提前结清" width="40%" :visible.sync="visible"
:before-close="handleClose">
<div style="margin-left:50px">
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">本金:{{ this.ruleForm.principleAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div>
</el-col>
<!-- <el-col :span="6">
<div class="grid-content bg-purple">还款日:{{ this.ruleForm.planAmt }}</div>
</el-col> -->
</el-row>
<br/>
<el-row :gutter="20" :center="true">
<el-col :span="8">
<div class="grid-content bg-purple">占用天数:{{ this.ruleForm.userDay }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">占用期数:{{ this.ruleForm.userMonth }}</div>
</el-col>
<el-dialog
:append-to-body="true"
class="client-data-dialog"
title="创建线下提前结清"
width="40%"
:visible.sync="visible"
:before-close="handleClose">
<div>
<div style="margin-left:50px">
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">本金:{{ this.ruleForm.principleAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div>
</el-col>
<!-- <el-col :span="6">
<div class="grid-content bg-purple">还款日:{{ this.ruleForm.planAmt }}</div>
</el-col> -->
</el-row>
<br/>
<el-row :gutter="20" :center="true">
<el-col :span="8">
<div class="grid-content bg-purple">占用天数:{{ this.ruleForm.userDay }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">占用期数:{{ this.ruleForm.userMonth }}</div>
</el-col>
</el-row>
<br/>
</el-row>
<br/>
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">还款本金:{{ this.ruleForm.principleAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">利息:{{ this.ruleForm.interestAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">服务费:{{ this.ruleForm.serviceAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">违约金:{{ this.ruleForm.breakAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">退款金额:{{ this.ruleForm.refundAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">罚息:{{ this.ruleForm.overdueAmt }}</div>
</el-col>
</el-row>
<br/>
<el-row :gutter="20">
<el-col :span="16">
<div class="grid-content bg-purple">总应还金额:{{ this.ruleForm.settleAmt }}</div>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">还款本金:{{ this.ruleForm.principleAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">利息:{{ this.ruleForm.interestAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">服务费:{{ this.ruleForm.serviceAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">违约金:{{ this.ruleForm.breakAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">退款金额:{{ this.ruleForm.refundAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">罚息:{{ this.ruleForm.overdueAmt }}</div>
</el-col>
</el-row>
<br/>
<el-row :gutter="20">
<el-col :span="16">
<div class="grid-content bg-purple">总应还金额:{{ this.ruleForm.settleAmt }}</div>
</el-col>
</el-row>
</div>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="140px" class="demo-ruleForm">
<el-form-item label="还款银行账号" prop="bankAccount">
<el-col :span="20">
<el-input v-model="ruleForm.bankAccount" placeholder="请输入还款银行账号"></el-input>
</el-col>
</el-form-item>
<el-form-item label="还款银行账户名称" prop="bankOwner">
<el-col :span="20">
<el-input v-model="ruleForm.bankOwner" placeholder="请输入还款银行账户名称"></el-input>
</el-col>
</el-form-item>
<el-form-item label="转账金额" prop="settleAmt">
<el-col :span="20">
<el-input v-model="ruleForm.settleAmt" placeholder="请输入转账金额" disabled></el-input>
</el-col>
</el-form-item>
<el-form-item label="减免金额" prop="derateAmt">
<el-col :span="20">
<el-input v-model="ruleForm.derateAmt" placeholder="请输入转账金额" disabled></el-input>
</el-col>
</el-form-item>
<el-form-item label="还款凭证" prop="attach">
<el-upload
list-type="picture-card"
:multiple="oss.multiple"
:action="oss.action"
:data="oss.data"
accept=".jpeg,.jpg,.png"
:before-upload="handleBeforeApplyUpload"
:on-success="handleLoanApplySuccess"
:on-remove="handleLoanApplyRemove">
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
<el-form-item label="还款备注" prop="memo">
<el-col :span="20">
<el-input v-model="ruleForm.memo" placeholder="请输入还款备注"></el-input>
</el-col>
</el-form-item>
</el-form>
</div>
<br/>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="140px" class="demo-ruleForm">
<el-form-item label="还款银行账号" prop="bankAccount">
<el-col :span="20">
<el-input v-model="ruleForm.bankAccount" placeholder="请输入还款银行账号"></el-input>
</el-col>
</el-form-item>
<el-form-item label="还款银行账户名称" prop="bankOwner">
<el-col :span="20">
<el-input v-model="ruleForm.bankOwner" placeholder="请输入还款银行账户名称"></el-input>
</el-col>
</el-form-item>
<el-form-item label="转账金额" prop="settleAmt">
<el-col :span="20">
<el-input v-model="ruleForm.settleAmt" placeholder="请输入转账金额" disabled></el-input>
</el-col>
</el-form-item>
<el-form-item label="减免金额" prop="derateAmt">
<el-col :span="20">
<el-input v-model="ruleForm.derateAmt" placeholder="请输入转账金额" disabled></el-input>
</el-col>
</el-form-item>
<el-form-item label="还款凭证" prop="attach">
<el-upload
list-type="picture-card"
:multiple="oss.multiple"
:action="oss.action"
:data="oss.data"
accept=".jpeg,.jpg,.png"
:before-upload="handleBeforeApplyUpload"
:on-success="handleLoanApplySuccess"
:on-remove="handleLoanApplyRemove">
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
<el-form-item label="还款备注" prop="memo">
<el-col :span="20">
<el-input v-model="ruleForm.memo" placeholder="请输入还款备注"></el-input>
</el-col>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="backedTransfer('ruleForm')">确 定</el-button>
</div>
</el-dialog>
</template>
......@@ -163,10 +169,8 @@ export default {
filters: {
dateFilter: function (row) {
var date = row
if (typeof (date) == undefined || typeof (date) == null) {
return ''
}
const date = row;
if (typeof (date) === undefined || typeof (date) == null) return ''
return moment(date).format("YYYY-MM-DD")
},
},
......@@ -178,7 +182,6 @@ export default {
this.$message.error(res.data.message);
this.handleClose();
} else {
this.ruleForm = res.data.result;
}
......@@ -202,9 +205,7 @@ export default {
}
this.$message({message: '操作成功', type: 'success'});
this.handleClose();
setTimeout(() => {
window.location.reload();
}, 1000);
this.$emit('callback')
})
.catch(err => {
alert("error!")
......
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<!--<block-header :title="title"></block-header>-->
<table class="table">
<tr>
<td>申请日期:</td>
<td>{{ loanModel.gmtCreated | dateFilter }}</td>
<td>放款日期:</td>
<td>{{ loanModel.raiseDate | dateFilter }}</td>
<td>项目名称:</td>
<td>{{ loanModel.bizTypeStr }}</td>
</tr>
<tr>
<td>总应还金额:</td>
<td>{{ loanModel.loanAmt }}</td>
<td>申请期数:</td>
<td>{{ loanModel.loanLimit }}</td>
<td>
<span v-if="loanModel.cardBankAccount">放款银行卡(所属银行):</span>
<span v-else>放款银行卡(所属银行)</span>
</td>
<td>
<div class="page-com">
<block-header :title="title"></block-header>
<table class="table">
<tr>
<td>申请日期:</td>
<td>{{ loanModel.gmtCreated | dateFilter }}</td>
<td>放款日期:</td>
<td>{{ loanModel.raiseDate | dateFilter }}</td>
<td>项目名称:</td>
<td>{{ loanModel.bizTypeStr }}</td>
</tr>
<tr>
<td>总应还金额:</td>
<td>{{ loanModel.loanAmt }}</td>
<td>申请期数:</td>
<td>{{ loanModel.loanLimit }}</td>
<td>
<span v-if="loanModel.cardBankAccount">放款银行卡(所属银行):</span>
<span v-else>放款银行卡(所属银行)</span>
</td>
<td>
<span v-if="loanModel.cardBankAccount">{{ loanModel.cardBankAccount }}{{
loanModel.cardBankCodeStr
}}</span>
<span v-else>{{ loanModel.bankAccount }}</span>
</td>
</tr>
<tr>
<td>本金:</td>
<td>{{ loanModel.raiseAmt }}</td>
<td>总服务费:</td>
<td>{{ loanModel.serviceAmt }}</td>
<td>总利息:</td>
<td>{{ loanModel.rateAmt }}</td>
</tr>
<tr>
<td>总手续费:</td>
<td colspan="5">{{ loanModel.accountAmt }}</td>
</tr>
</table>
</div>
</el-dialog>
<span v-else>{{ loanModel.bankAccount }}</span>
</td>
</tr>
<tr>
<td>本金:</td>
<td>{{ loanModel.raiseAmt }}</td>
<td>总服务费:</td>
<td>{{ loanModel.serviceAmt }}</td>
<td>总利息:</td>
<td>{{ loanModel.rateAmt }}</td>
</tr>
<tr>
<td>总手续费:</td>
<td colspan="5">{{ loanModel.accountAmt }}</td>
</tr>
</table>
</div>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import * as moment from "moment";
export default {
name: 'AddUserServiceDialog',
components: {
BlockHeader
},
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
......@@ -89,24 +72,15 @@ export default {
},
},
async created() {
const {loanNo} = this.params;
await this.init(loanNo)
if(this.params){
console.log(this.params,'哈哈');
const {applyVo} = this.params;
this.loanModel = applyVo
}
},
methods: {
headerStyle() {
return "tableHeaderStyle";
},
async init(loanNo) {
const res = await this.$$get('/detail/customer/' + loanNo)
const {success, result} = res.data
if (success && result != null) {
const {applyVo} = result;
this.loanModel = applyVo
}
},
handleClose() {
this.$emit("handleClose");
}
}
}
......
<template>
<div class="tabs-content">
<block-header title="基本信息">
</block-header>
<div class="block-box">
<table class="table">
<tr>
<td>姓名:</td>
<td>{{ basicInfo.name }}</td>
<td>身份证号:</td>
<td>{{ basicInfo.idCard }}</td>
<td>手机号:</td>
<td>{{ basicInfo.phone }}</td>
</tr>
<tr>
<td>实名认证:</td>
<td>
<el-tag size="mini" type="danger" v-if="basicInfo.isIdentity==='未认证'"> {{ basicInfo.isIdentity }}</el-tag>
<el-tag size="mini" type="success" v-else> {{ basicInfo.isIdentity }}</el-tag>
</td>
<td>基础信息认证:</td>
<td>
<el-tag size="mini" type="danger" v-if="basicInfo.isIdentity==='未认证'"> {{ basicInfo.isBasicInfo }}</el-tag>
<el-tag size="mini" type="success" v-else> {{ basicInfo.isBasicInfo }}</el-tag>
</td>
<td>活体认证:</td>
<td>
<el-tag size="mini" type="danger" v-if="basicInfo.isIdentity==='未认证'"> {{ basicInfo.isFace }}</el-tag>
<el-tag size="mini" type="success" v-else> {{ basicInfo.isFace }}</el-tag>
</td>
</tr>
<tr>
<td>客户单位名称:</td>
<td>{{ basicInfo.companyName }}</td>
<td>客户单位地址:</td>
<td>{{ basicInfo.companyAddress }}</td>
<td>住宅地址:</td>
<td>{{ basicInfo.houseAddress }}</td>
</tr>
<tr>
<td>第一联系人姓名:</td>
<td>{{ basicInfo.firstName }}</td>
<td>第一联系人电话:</td>
<td colspan="3">{{ basicInfo.firstPhone }}</td>
</tr>
</table>
</div>
<block-header title="银行卡列表"/>
<div class="block-box">
<el-table
:header-row-class-name="headerStyle"
:highlight-current-row="true"
border
size="small"
:data="ownerBank"
stripe style="width: 100%;">
<el-table-column align="center" prop="bankAccount" label="银行卡号"></el-table-column>
<el-table-column align="center" prop="openBankName" label="银行名称"></el-table-column>
<el-table-column align="center" prop="ownerName" label="姓名"></el-table-column>
<el-table-column align="center" prop="payChannelApi" label="渠道名称"></el-table-column>
<el-table-column align="center" prop="gmtCreated" label="绑定时间" :formatter="dateFormat"></el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="ownerBankBind(scope.row,'BindCardRecord','绑卡记录')">绑卡记录</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!--绑卡记录-->
<template v-if="visible">
<component
@handleClose="visible = false"
:is="activeComponents"
:dialogVisible="visible"
:params="dParams"
:title="dTitle"/>
</template>
</div>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import BindCardRecord from './OwnerBankBind'
import * as moment from "moment";
export default {
name: 'AddUserServiceDialog',
components: {
BlockHeader,
BindCardRecord
},
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
},
params: {
type: Object,
required: true
},
},
data() {
return {
visible: false,
activeComponents: "",
dTitle: "",
dParams: {},
basicInfo: {},
ownerBank: []
}
},
filters: {
dateFilter: function (row) {
const exp = row;
if (!exp || typeof (exp) === undefined || typeof (exp) === null) {
return ''
}
return moment(exp).format("YYYY-MM-DD")
},
},
async created() {
if (this.params) {
const params = this.params;
console.log(params, '是什么');
const {basicInfo} = params;
this.basicInfo = basicInfo;
if (basicInfo.cardList) this.ownerBank = basicInfo.cardList;
}
},
methods: {
headerStyle() {
return "tableHeaderStyle";
},
/*日期*/
dateFormat: function (row, column) {
let date = row[column.property]
if (date === undefined) {
return ''
}
return moment(date).format("YYYY-MM-DD HH:mm:ss")
},
// 查看绑卡记录
ownerBankBind(row,com,title) {
this.activeComponents = com;
this.visible = true;
this.dTitle = title;
this.dParams = row;
}
}
}
</script>
<style>
</style>
This diff is collapsed.
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column prop="contractName" align="center" label="合同类型"></el-table-column>
<el-table-column prop="contractUrl" align="center" label="下载">
<template slot-scope="scope">
<a :href="scope.row.contractUrl" target="_blank" class="buttonText">合同下载</a>
</template>
</el-table-column>
</el-table>
</div>
</el-dialog>
<div class="page-com">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column prop="contractName" align="center" label="合同类型"></el-table-column>
<el-table-column prop="contractUrl" align="center" label="下载">
<template slot-scope="scope">
<a :href="scope.row.contractUrl" target="_blank" class="buttonText">合同下载</a>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import * as moment from "moment";
export default {
name: 'RiskInfo',
components: {
BlockHeader
},
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
......
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column prop="feedNo" label="客服反馈编号"></el-table-column>
<el-table-column prop="clientName" label="客户姓名"></el-table-column>
<el-table-column prop="clientCell" label="客户手机号"></el-table-column>
<el-table-column prop="feedType" label="反馈类型"></el-table-column>
<el-table-column prop="feedContent" label="反馈内容"></el-table-column>
<el-table-column prop="finishContent" label="处理意见"></el-table-column>
<el-table-column prop="feedStatus" label="状态" :formatter="serviceFormat"></el-table-column>
<el-table-column prop="creater" label="处理人"></el-table-column>
<el-table-column prop="gmtCreated" label="记录时间" :formatter="dateFormat"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="updateQueDialog(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
<div class="page-dialog">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column prop="feedNo" label="客服反馈编号"></el-table-column>
<el-table-column prop="clientName" label="客户姓名"></el-table-column>
<el-table-column prop="clientCell" label="客户手机号"></el-table-column>
<el-table-column prop="feedType" label="反馈类型"></el-table-column>
<el-table-column prop="feedContent" label="反馈内容"></el-table-column>
<el-table-column prop="finishContent" label="处理意见"></el-table-column>
<el-table-column prop="feedStatus" label="状态" :formatter="serviceFormat"></el-table-column>
<el-table-column prop="creater" label="处理人"></el-table-column>
<el-table-column prop="gmtCreated" label="记录时间" :formatter="dateFormat"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="small" @click="updateQueDialog(scope.row)">修改</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
</div>
<updateQueDialog
v-if="updateQueDialog.visible"
:feedNo="updateQueDialog.feedNo"
:feedType="updateQueDialog.feedType"
:feedStatus="updateQueDialog.feedStatus"
:feedContent="updateQueDialog.feedContent"
:creater="updateQueDialog.creater"
:finishContent="updateQueDialog.finishContent"
:dialogVisible.sync="updateQueDialog.visible">
</updateQueDialog>
</el-dialog>
</template>
<script>
......@@ -91,16 +72,6 @@ export default {
current: 1,
size: 10,
},
updateQueDialog: {
visible: false,
feedNo: '',
feedType: '',
feedStatus: '',
feedContent: '',
clientNo: '',
creater: '',
finishContent: '',
},
data: []
}
},
......@@ -157,20 +128,7 @@ export default {
this.form.size = e
this.form.current = 1;
this.init();
},
// 修改用户的反馈问题
updateQueDialog(record) {
this.updateQueDialog = {
visible: true,
feedNo: record.feedNo,
feedType: record.feedType,
feedStatus: record.feedStatus,
feedContent: record.feedContent,
clientNo: record.clientNo,
creater: record.creater,
finishContent: record.finishContent,
};
},
}
}
}
</script>
......
<template>
<el-drawer
:title="title"
size="70%"
:wrapperClosable="false"
:visible.sync="dialogVisible"
direction="rtl"
:before-close="handleClose">
<div class="page">
<div class="loan-detail">
<el-tabs
class="loan-tabs"
tab-position="left"
v-model="activeComponents"
@tab-click="handleTabClick">
<el-tab-pane name="ApplyInfo" label="申请信息"></el-tab-pane>
<el-tab-pane v-if="$permissionUtils.rolePermission('customBoss')" name="ContractList"
label="借款合同"></el-tab-pane>
<el-tab-pane name="BillList" label="账单详情"></el-tab-pane>
<el-tab-pane name="RePayList" label="还款情况"></el-tab-pane>
</el-tabs>
<div class="loan-detail-content">
<template v-if="visible">
<component
@handleClose="visible = false"
:is="activeComponents"
:params="items"
:title="dTitle"/>
</template>
</div>
</div>
</div>
</el-drawer>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import ApplyInfo from "./ApplyInfo";
import ContractList from "./ContractList";
import RePayList from "./RePayList";
import BillList from "./BillList";
import * as moment from "moment";
export default {
name: 'AddUserServiceDialog',
components: {
BlockHeader,
ApplyInfo,
ContractList,
RePayList,
BillList
},
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
},
params: {
type: Object,
required: true
},
},
data() {
return {
visible: false,
activeComponents: '',
dTitle: '',
active: "",
items: {},
loan: {}
}
},
async created() {
if (this.params) {
const {loanNo} = this.params;
this.items = this.params;
await this.initLoanInfo(loanNo)
}
},
methods: {
headerStyle() {
return "tableHeaderStyle";
},
//根据借款信息查借款所有信息
async initLoanInfo(loanNo) {
const res = await this.$$get('/detail/customer/' + loanNo);
const {success, result} = res.data;
if (success && result != null) {
this.loan = result;
this.handleTabClick({
name: "ApplyInfo",
label: "申请信息"
});
}
},
/*日期*/
dateFormats: function (row, column) {
let date = row[column.property]
if (date === undefined) return '';
return moment(date).format("YYYY-MM-DD")
},
handleClose() {
this.$emit("handleClose");
},
// 切换选项卡
handleTabClick(tab) {
this.activeComponents = tab.name;
this.visible = true;
this.dTitle = tab.label;
this.items = {
...this.loan,
...this.params
};
}
}
}
</script>
<style scoped lang="less">
.page, .loan-detail {
height: 100%;
overflow: auto;
}
.page{
padding-right: 0;
}
.loan-detail {
display: flex;
position: relative;
.loan-tabs {
position: sticky;
top: 0;
right: 0;
width: 100px;
}
.loan-detail-content {
width: calc(100% - 100px);
box-sizing: border-box;
padding-left: 20px;
}
}
</style>
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<block-header title="借款信息"></block-header>
<div class="page-dialog">
<block-header title="借款记录"></block-header>
<div class="block-box">
<el-table
border
size="mini"
......@@ -15,40 +9,52 @@
:header-row-class-name="headerStyle"
:data="data" stripe style="width: 100%;">
<el-table-column align="center" width="140" prop="loanNo" label="借款编号"></el-table-column>
<el-table-column align="center" prop="gmtCreated" label="申请日期" :formatter="dateFormats"></el-table-column>
<el-table-column align="center" prop="startDate" label="放款日期" :formatter="dateFormats"></el-table-column>
<el-table-column align="center" prop="raiseAmt" label="放款本金"></el-table-column>
<el-table-column align="center" prop="capitalCode" label="放款资方" :formatter="capitalCodeFormat"></el-table-column>
<el-table-column align="center" prop="status" label="借款单状态" :formatter="loanStatusFormat"></el-table-column>
<el-table-column align="center" prop="cancelMemo" label="备注"></el-table-column>
<el-table-column align="center" label="查看详情">
<el-table-column align="center" prop="gmtCreated" label="申请日期" :formatter="dateFormats"></el-table-column>
<el-table-column align="center" prop="startDate" label="放款日期" :formatter="dateFormats"></el-table-column>
<el-table-column align="center" prop="raiseAmt" label="放款本金"></el-table-column>
<el-table-column align="center" prop="capitalCode" label="放款资方"
:formatter="capitalCodeFormat"></el-table-column>
<el-table-column align="center" prop="status" label="借款单状态">
<template slot-scope="scope">
<el-button type="text" size="small" @click="addLoanDetail(scope.row.loanNo)">详情</el-button>
<el-tag type="success" v-if="scope.row.status==='AUDITED'" size="small">{{loanStatusFormat(scope.row)}}</el-tag>
<el-tag v-else-if="scope.row.status==='SETTLED'" size="small">{{loanStatusFormat(scope.row)}}</el-tag>
<el-tag type="danger" v-else-if="scope.row.status==='OVERDUED'" size="small">{{loanStatusFormat(scope.row)}}</el-tag>
<el-tag type="warning" v-else-if="scope.row.status==='SUBMITED'" size="small">{{loanStatusFormat(scope.row)}}</el-tag>
<el-tag effect="warning" v-else-if="scope.row.status==='BACKING'" size="small">{{loanStatusFormat(scope.row)}}</el-tag>
<el-tag type="info" v-else size="small">{{loanStatusFormat(scope.row)}}</el-tag>
</template>
</el-table-column>
<el-table-column align="center" prop="cancelMemo" label="备注"></el-table-column>
<el-table-column align="center" label="查看详情">
<template slot-scope="scope">
<el-button type="text" size="small" @click="handleClick(scope.row)">详情</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-dialog>
<!--借款详情-->
<template v-if="visible">
<loan-detail
@handleClose="visible=false"
:title="title"
:params="items"
:dialogVisible="visible"/>
</template>
</div>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import LoanDetail from "./LoanDetail";
import * as moment from "moment";
export default {
name: 'AddUserServiceDialog',
components: {
BlockHeader
LoanDetail
},
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
},
params: {
type: Object,
required: true
......@@ -56,6 +62,12 @@ export default {
},
data() {
return {
visible: false,
activeComponents: "BaseInfo",
title: "基本信息",
items: {},
data: []
}
},
......@@ -71,65 +83,31 @@ export default {
headerStyle() {
return "tableHeaderStyle";
},
capitalCodeFormat: function (row, column) {
let capitalCode = row['capitalCode'];
return this.$enumUtils.toMsg('CapitalEnums', capitalCode);
},
/*日期*/
dateFormats: function (row, column) {
let date = row[column.property]
if (date === undefined) {
return ''
}
if (date === undefined) return '';
return moment(date).format("YYYY-MM-DD")
},
handleClose() {
this.$emit("handleClose");
//借款单状态
loanStatusFormat: function (row) {
let status = row['status'];
return this.$enumUtils.toMsg('LoanStatuEnums', status);
},
//根据借款信息查借款所有信息
addLoanDetail(record) {
this.isNeedAudit = true;
this.$$get('/detail/customer/' + record).then(res => {
if (res.data.code != 200) {
// this.isShow = false;
this.$message.error(res.data.message);
return
} else {
//打开借款的面板
this.activeNames = ['1', '2', '3', '4', '5', '8'];
//还款计划
if (res.data.result.planVo == null) {
this.loanApplyList = [];
this.isNeedAudit = false;
} else {
this.loanApplyList = res.data.result.planVo ? res.data.result.planVo : '';
this.advanceLoanAmt.loanNo = res.data.result.applyVo.loanNo;
this.advanceLoanAmt.bizType = res.data.result.applyVo.bizType;
this.advanceLoanAmt.clientNo = res.data.result.applyVo.clientNo;
this.clientNos = res.data.result.applyVo.clientNo;
this.loanNos = res.data.result.applyVo.loanNo;
}
//借款信息
if (res.data.result.loanVo == null) {
this.loanVo = [];
} else {
this.loanVo = res.data.result.loanVo ? res.data.result.loanVo : '';
}
//借款信息放款信息
this.loanModel = res.data.result.applyVo ? res.data.result.applyVo : '';
//还款信息
this.loanBackedData(res.data.result.applyVo.loanNo);
//合同列表
this.contractData(res.data.result.applyVo.loanNo);
}
//操作信息
this.clientDailyInfo(res.data.result.applyVo.clientNo);
}).catch(error => {
this.$message.error(error || '网络异常,请稍后。。。');
});
capitalCodeFormat: function (row, column) {
let capitalCode = row['capitalCode'];
return this.$enumUtils.toMsg('CapitalEnums', capitalCode);
},
// 切换选项卡
handleClick(row) {
console.log(row,'一行信息');
this.visible = true;
this.title = '借款详情';
this.items = {
...this.params,
...row
};
}
}
}
</script>
......
<template>
<el-dialog class="client-data-dialog" title="创建转账还款单" width="40%" :visible.sync="visible" :before-close="handleClose">
<el-dialog
:append-to-body="true"
class="client-data-dialog"
title="创建转账还款单"
width="40%"
:visible.sync="visible"
:before-close="handleClose">
<div style="margin-left:50px">
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">还款计划:{{ this.ruleForm.planNo }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">期数:{{ this.ruleForm.periodNo }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">应还总金额:{{ this.ruleForm.planAmt }}</div>
</el-col>
</el-row>
<br/>
<el-row :gutter="20" :center="true">
<el-col :span="8">
<div class="grid-content bg-purple">本金:{{ this.ruleForm.planBen }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">服务费:{{ this.ruleForm.planFu }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">利息:{{ this.ruleForm.planXi }}</div>
</el-col>
</el-row>
<br/>
<el-row :gutter="20" :center="true">
<el-col :span="8">
<div class="grid-content bg-purple">手续费:{{ this.ruleForm.accountAmt }}</div>
</el-col>
</el-row>
<div class="b-table">
<table class="table">
<tr>
<td>还款计划:</td>
<td>{{ ruleForm.planNo }}</td>
<td>期数:</td>
<td>{{ ruleForm.periodNo }}</td>
<td>应还总金额:</td>
<td>{{ ruleForm.planAmt }}</td>
</tr>
<tr>
<td>本金:</td>
<td>{{ ruleForm.planBen }}</td>
<td>服务费:</td>
<td>{{ ruleForm.planFu }}</td>
<td>利息:</td>
<td>{{ ruleForm.planXi }}</td>
</tr>
<tr>
<td>手续费:</td>
<td colspan="5">{{ ruleForm.accountAmt }}</td>
</tr>
</table>
</div>
<br/>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="140px" class="demo-ruleForm">
<el-form
size="small"
label-suffix=":"
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="140px" class="demo-ruleForm">
<el-form-item label="还款银行账号" prop="bankAccount">
<el-col :span="20">
<el-input v-model="ruleForm.bankAccount" placeholder="请输入还款银行账号"></el-input>
......@@ -70,8 +74,8 @@
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="backedTransfer('ruleForm')">确 定</el-button>
<el-button size="small" @click="handleClose">取 消</el-button>
<el-button size="small" type="primary" @click="backedTransfer('ruleForm')">确 定</el-button>
</div>
</el-dialog>
</template>
......@@ -187,6 +191,7 @@ export default {
}
this.$message({message: '操作成功', type: 'success'});
this.handleClose();
this.$emit('callback')
})
.catch(err => {
alert("error!")
......
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="typeStr" label="操作类型"></el-table-column>
<el-table-column align="center" prop="gmtCreated" label="操作时间" :formatter="dateFormat"></el-table-column>
<el-table-column align="center" prop="memo" label="备注"></el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
<div class="page-dialog">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="typeStr" label="操作类型"></el-table-column>
<el-table-column align="center" prop="memo" label="备注"></el-table-column>
<el-table-column align="center" prop="gmtCreated" label="操作时间" :formatter="dateFormat"></el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
</el-dialog>
</div>
</template>
<script>
......
<template>
<el-dialog title="绑卡记录" :visible.sync="dialogVisible" width="50%" :before-close="handleClose">
<el-dialog
:title="title"
:visible.sync="dialogVisible"
width="50%"
:before-close="handleClose">
<div class="page">
<div >
<el-table :data="records" stripe style="width: 100%;">
<el-table-column prop="gmtCreated" label="签约时间" :formatter="dateFormat" ></el-table-column>
<el-table-column prop="operaterDesc" label="备注" ></el-table-column>
</el-table>
</div>
</el-dialog>
<block-header :title="title"/>
<div class="b-table">
<el-table
size="small"
border
:data="records"
stripe
style="width: 100%;">
<el-table-column align="center" prop="gmtCreated" label="签约时间" :formatter="dateFormat"></el-table-column>
<el-table-column align="center" prop="operaterDesc" label="备注"></el-table-column>
</el-table>
</div>
</div>
</el-dialog>
</template>
<script>
import * as moment from "moment";
export default {
name: "ByhContactDialog",
props: {
dialogVisible: {
type: Boolean
},
cardLogList: {
type: Array
},
},
data () {
return {
records:[],
}
},
created() {
this.records = this.reverse(this.cardLogList);
},
methods: {
/** 关闭处理 */
handleClose () {
this.visible = false
setTimeout(() => {
this.$emit('update:dialogVisible', false)
}, 100)
},
/*日期*/
dateFormat: function (row, column) {
var date = row[column.property]
if (date == undefined) {
return ''
}
return moment(date).format("YYYY-MM-DD HH:mm:ss")
},
reverse(array){
var newArr = [];
for(var i=array.length-1;i>=0;i--){
newArr[newArr.length] = array[i];
}
return newArr;
},
submitMarket() {
},
},
mounted: function () {
this.submitMarket();
},
export default {
name: "BindBankRecords",
props: {
cardLogList: {
type: Array
},
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
},
params: {
type: Object,
required: true
},
},
data() {
return {
records: [],
}
},
created() {
if (this.params) {
const {cardLogList} = this.params;
this.records = cardLogList.length ? this.reverse(cardLogList) : [];
}
},
methods: {
handleClose() {
this.$emit('handleClose')
},
reverse(array) {
const newArr = [];
for (let i = array.length - 1; i >= 0; i--) {
newArr[newArr.length] = array[i];
}
return newArr;
}
}
}
</script>
<style scoped lang="stylus" rel="stylesheet/stylus">
</style>
\ No newline at end of file
<template>
<el-dialog class="client-data-dialog" title="创建代扣提前结清" width="40%" :visible.sync="visible"
:before-close="handleClose">
<el-dialog
:append-to-body="true"
class="client-data-dialog"
title="创建代扣提前结清"
width="40%"
:visible.sync="visible"
:before-close="handleClose">
<div style="margin-left:50px">
<el-row :gutter="20">
<el-col :span="8">
......@@ -198,9 +203,8 @@ export default {
}
this.$message({message: '操作成功', type: 'success'});
this.handleClose();
setTimeout(() => {
window.location.reload();
}, 1000);
this.$emit('callback')
}).catch(err => {
alert("error!")
})
......
<template>
<el-dialog class="client-data-dialog" title="创建当期代扣" width="40%" :visible.sync="visible" :before-close="handleClose">
<div style="margin-left:50px">
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">期数:第{{ this.ruleForm.periodNo }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">计划还款金额:{{ this.ruleForm.planAmt }}</div>
</el-col>
</el-row>
<br/>
</div>
<br/>
<el-dialog
:append-to-body="true"
class="client-data-dialog"
title="创建当期代扣"
width="40%"
:visible.sync="visible"
:before-close="handleClose">
<el-form
:model="ruleForm"
label-suffix=":" size="small"
:rules="rules" ref="ruleForm"
label-width="140px"
class="demo-ruleForm">
<el-form-item label="期数">
<span>{{ ruleForm.periodNo }}</span>
</el-form-item>
<el-form-item label="计划还款金额">
<span>{{ ruleForm.planAmt }}</span>
</el-form-item>
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="140px" class="demo-ruleForm">
<el-form-item label="扣款金额" prop="backedAmt">
<el-col :span="20">
<el-input v-model="ruleForm.remainAmt" placeholder="请输入转账金额" disabled></el-input>
</el-col>
<el-input v-model="ruleForm.remainAmt" placeholder="请输入转账金额" disabled></el-input>
</el-form-item>
<el-form-item label="选择银行卡" prop="bankAccount">
<el-select clearable v-model="ruleForm.bankAccount" class="select-bank-card">
<el-option v-for="item in this.cardList" :key="item.value"
:label="item.label" :value="item.value"></el-option>
<el-option
v-for="item in this.cardList"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="protocolOne('ruleForm')">确 定</el-button>
<el-button size="small" @click="handleClose">取 消</el-button>
<el-button size="small" type="primary" @click="protocolOne('ruleForm')">确 定</el-button>
</div>
</el-dialog>
</template>
......@@ -124,25 +131,25 @@ export default {
/** 提交点击 */
protocolOne() {
this.$refs['ruleForm'].validate((valid) => {
if (!valid) {
return false
if (valid) {
this.$$post(`/back/createBackedSettle`, this.buildParam()).then(res => {
if (res.data.code != 200) {
this.$message.error(res.data.message);
return
}
this.handleClose();
this.$message({message: '操作成功', type: 'success'});
this.$emit('callback')
}).catch(err => {
alert("error!")
})
}
this.$$post(`/back/createBackedSettle`, this.buildParam()).then(res => {
if (res.data.code != 200) {
this.$message.error(res.data.message);
return
}
this.$message({message: '操作成功', type: 'success'});
this.handleClose();
setTimeout(() => {
window.location.reload();
}, 1000);
}).catch(err => {
alert("error!")
})
})
},
refresh(){
},
//参数
buildParam() {
return {
......
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
@filter-change="handleFilterChange"
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="backedNo" label="还款编号"></el-table-column>
<el-table-column align="center" prop="planIndex" label="期数"></el-table-column>
<el-table-column align="center" prop="backedAmt" label="还款金额"></el-table-column>
<el-table-column align="center" prop="backedTypeStr" label="还款方式"></el-table-column>
<el-table-column align="center" prop="statusStr" label="还款单状态"></el-table-column>
<el-table-column align="center" prop="cardOwnerName" label="银行账号户主名称"></el-table-column>
<el-table-column align="center" prop="cardOwnerMobile" label="银行账号户主电话"></el-table-column>
<el-table-column align="center" prop="cardBankAccount" label="银行账号" :formatter="cardBankFormat"></el-table-column>
<el-table-column align="center" prop="bankAccount" label="还款银行账号"></el-table-column>
<el-table-column align="center" prop="bankOwner" label="还款银行账户"></el-table-column>
<el-table-column align="center" prop="backedDate" label="还款时间" :formatter="dateCompare"></el-table-column>
<el-table-column align="center" prop="resultStr" label="还款结果" width="100" :formatter="resultBankFormat"
:filters="tableStatus"
column-key="status"
>
</el-table-column>
<el-table-column align="center" prop="creator" label="创建人"></el-table-column>
<el-table-column align="center" prop="memo" label="备注"></el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
<div class="page-com">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
@filter-change="handleFilterChange"
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="backedNo" label="还款编号"></el-table-column>
<el-table-column align="center" prop="planIndex" label="期数"></el-table-column>
<el-table-column align="center" prop="backedAmt" label="还款金额"></el-table-column>
<el-table-column align="center" prop="backedTypeStr" label="还款方式"></el-table-column>
<el-table-column align="center" prop="statusStr" label="还款单状态"></el-table-column>
<el-table-column align="center" prop="cardOwnerName" label="银行账号户主名称"></el-table-column>
<el-table-column align="center" prop="cardOwnerMobile" label="银行账号户主电话"></el-table-column>
<el-table-column align="center" prop="cardBankAccount" label="银行账号" :formatter="cardBankFormat"></el-table-column>
<el-table-column align="center" prop="bankAccount" label="还款银行账号"></el-table-column>
<el-table-column align="center" prop="bankOwner" label="还款银行账户"></el-table-column>
<el-table-column align="center" prop="backedDate" label="还款时间" :formatter="dateCompare"></el-table-column>
<el-table-column align="center" prop="resultStr" label="还款结果" width="100" :formatter="resultBankFormat"
:filters="tableStatus"
column-key="status"
>
</el-table-column>
<el-table-column align="center" prop="creator" label="创建人"></el-table-column>
<el-table-column align="center" prop="memo" label="备注"></el-table-column>
</el-table>
</div>
</el-dialog>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
</div>
</template>
<script>
......@@ -66,10 +56,6 @@ export default {
BlockHeader
},
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
......@@ -101,11 +87,13 @@ export default {
}
},
async created() {
const params = this.params;
console.log(params,'哈哈')
this.form.bizNo = params.firstLoanNo;
//this.form.result = params.phoneNo;
await this.init()
if(this.params){
const params = this.params;
console.log(params,'哈哈3')
this.form.bizNo = params.loanNo;
await this.init()
}
},
methods: {
headerStyle() {
......
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="clientName" label="姓名"></el-table-column>
<el-table-column align="center" width="140" prop="riskGmtCreated" :formatter="dateFormats" label="修改日期"></el-table-column>
<el-table-column align="center" prop="riskType" label="风险等级" ></el-table-column>
<el-table-column align="center" prop="riskContent" label="风险描述" ></el-table-column>
<el-table-column align="center" prop="memo" label="备注"></el-table-column>
</el-table>
</div>
</el-dialog>
<div class="page-dialog">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="clientName" label="姓名"></el-table-column>
<el-table-column align="center" width="140" prop="riskGmtCreated" :formatter="dateFormats" label="修改日期"></el-table-column>
<el-table-column align="center" prop="riskType" label="风险等级" ></el-table-column>
<el-table-column align="center" prop="riskContent" label="风险描述" ></el-table-column>
<el-table-column align="center" prop="memo" label="备注"></el-table-column>
</el-table>
</div>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import * as moment from "moment";
export default {
name: 'RiskInfo',
components: {
BlockHeader
},
props: {
dialogVisible: {
type: Boolean,
......
<template>
<el-dialog
width="70%"
class="client-data-dialog"
:title="title"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page-dialog">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="collectContact.contactMobile" label="联系人手机号"></el-table-column>
<el-table-column align="center" prop="collectContact.contactName" label="联系人姓名"></el-table-column>
<el-table-column align="center" prop="collectContact.contactRelation" label="联系人关系"></el-table-column>
<el-table-column align="center" prop="collectContact.overdueDay" label="逾期天数"></el-table-column>
<el-table-column align="center" prop="collectContact.state" label="状态" :formatter="collectStatueFormat"></el-table-column>
<el-table-column align="center" width="150" prop="collectContact.created" label="联系时间"
:formatter="collectDateFormat"></el-table-column>
<el-table-column align="center" prop="collectContact.resultType" label="结果"
:formatter="collectResultFormat"></el-table-column>
<el-table-column align="center" prop="collectContact.callSeconds" label="语音时长"
:formatter="formatSeconds"></el-table-column>
<el-table-column align="center" prop="collectContact.record" label="催记"></el-table-column>
</el-table>
</div>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
<div class="page-dialog">
<div class="tables">
<block-header :title="title"></block-header>
<el-table
border
size="mini"
:highlight-current-row="true"
:header-row-class-name="headerStyle"
:data="data"
stripe
style="width: 100%;">
<el-table-column align="center" prop="collectContact.contactMobile" label="联系人手机号"></el-table-column>
<el-table-column align="center" prop="collectContact.contactName" label="联系人姓名"></el-table-column>
<el-table-column align="center" prop="collectContact.contactRelation" label="联系人关系"></el-table-column>
<el-table-column align="center" prop="collectContact.overdueDay" label="逾期天数"></el-table-column>
<el-table-column align="center" prop="collectContact.state" label="状态" :formatter="collectStatueFormat"></el-table-column>
<el-table-column align="center" width="150" prop="collectContact.created" label="联系时间"
:formatter="collectDateFormat"></el-table-column>
<el-table-column align="center" prop="collectContact.resultType" label="结果"
:formatter="collectResultFormat"></el-table-column>
<el-table-column align="center" prop="collectContact.callSeconds" label="语音时长"
:formatter="formatSeconds"></el-table-column>
<el-table-column align="center" prop="collectContact.record" label="催记"></el-table-column>
</el-table>
</div>
</el-dialog>
<div class="pages">
<el-pagination
background
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page.sync="form.current"
:page-sizes="[10, 20, 50, 100]"
:page-size="form.size"
layout="total, sizes, prev, pager, next, jumper"
:total="form.total">
</el-pagination>
</div>
</div>
</template>
<script>
......
<template>
<el-dialog
:title="title"
size="30%"
:visible.sync="dialogVisible"
:before-close="handleClose">
<div class="page">
<el-form
style="max-width: 400px;"
size="small"
ref="pubForm"
label-position="right"
label-width="140px"
label-suffix=":"
:rules="rules"
:model="form"
class="search-form">
<el-form-item prop="awardInterval" label="奖励间隔">
<el-input v-model="form.awardInterval"></el-input>
</el-form-item>
<el-form-item prop="dayMaxPoint" label="单日最大奖励值">
<el-input v-model="form.dayMaxPoint"></el-input>
</el-form-item>
<el-form-item prop="dayMaxTimes" label="单日最大奖励次数">
<el-input v-model="form.dayMaxTimes"></el-input>
</el-form-item>
<template v-if="form.limitId">
<el-form-item prop="status" label="状态">
<el-switch active-value="ENABLED" inactive-value="UNENABLED" v-model="form.status"></el-switch>
</el-form-item>
</template>
<el-form-item label="描述">
<el-input type="textarea" :rows="3" v-model="form.memo"></el-input>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="onSubmit('pubForm')">确 定</el-button>
</div>
</el-dialog>
</template>
<script>
import API from "@/api/delivery";
import BlockHeader from "@/components/block-header";
export default {
name: "CardNew",
components: {
BlockHeader
},
props: {
title: {
type: String,
required: true
},
items: {
type: Object,
required: false
},
dialogVisible: {
type: Boolean,
required: true
}
},
data() {
return {
item: null,
detail: {},
rules: {
awardInterval: [
{ required: true, message: "请输入奖励间隔", trigger: "blur" },
{
validator: (rule, value, callback) => {
const reg = /^\d+$/;
if (!reg.test(value)) {
callback(new Error("请输入数字"));
} else {
callback();
}
},
trigger: "blur"
}
],
dayMaxPoint: [
{ required: true, message: "请输入单日最大奖励值", trigger: "blur" },
{
validator: (rule, value, callback) => {
const reg = /^\d+$/;
if (!reg.test(value)) {
callback(new Error("请输入数字"));
} else {
callback();
}
},
trigger: "blur"
}
],
dayMaxTimes: [
{ required: true, message: "请输入单日最大奖励次数", trigger: "blur" },
{
validator: (rule, value, callback) => {
const reg = /^\d+$/;
if (!reg.test(value)) {
callback(new Error("请输入数字"));
} else {
callback();
}
},
trigger: "blur"
}
],
status: [
{ required: true, message: "请选择状态", trigger: "blur" }
]
},
form: {
awardType: "TaiPoint",
awardInterval: "",
dayMaxPoint: "",
dayMaxTimes: "",
memo: "",
status: ""
}
};
},
async mounted() {
if (this.items) {
const items = this.items;
this.form = items;
this.form.limitId = items.id;
}
},
methods: {
headerStyle() {
return "tableHeaderStyle";
},
handleClose() {
this.$emit("handleClose");
},
async onSubmit(formName) {
this.$refs[formName].validate(async (valid) => {
if (valid) {
let result;
if (this.items) {
result = await API.editDeliveryAwardLimit({
...this.form
});
} else {
result = await API.addDeliveryAwardLimit({
...this.form
});
}
if (result.status === 200) {
this.$message.success("保存成功");
this.handleClose();
this.$emit("callback");
}
}
});
}
}
};
</script>
......@@ -176,7 +176,7 @@ export default {
},
mounted: function () {
this.readDetail(this.ruleForm.planNo);
},
}
}
</script>
......
......@@ -124,7 +124,7 @@ export default {
font-weight: normal;
/*background url('./imgs/img-logo.png') 0 center no-repeat;*/
background-size 40px 40px;
padding 0 0 0 50px;
padding 0 0 0 40px;
margin 0 20px 0 0
}
......
......@@ -220,7 +220,7 @@ export default {
}
</script>
<style lang="stylus" rel="stylesheet/stylus">
<style lang="stylus" scoped rel="stylesheet/stylus">
#login {
width 100%
height 100%
......
<template>
<div id="system-registration">
<br>
<div class="top">
<el-form :inline="true" :model="queryModel">
<el-input class="search-input" placeholder="请输入用户查询条件(登陆名)" icon="search" v-model="search"></el-input>
<div class="btn">
<div class="page">
<block-header title="搜索"/>
<div class="page-search">
<el-form :inline="true" size="small" label-suffix=":" :model="queryModel">
<el-form-item prop="search" label="登陆名">
<el-input placeholder="请输入用户查询条件(登陆名)" icon="search" v-model="search"></el-input>
</el-form-item>
<el-form-item>
<el-button @click="querySearchUser" type="primary">查询</el-button>
<el-button @click="addUser" type="primary"><i
class="el-icon-plus"></i>新增用户
</el-button>
</div>
<el-button @click="addUser" icon="el-icon-plus" type="primary">新增用户</el-button>
</el-form-item>
</el-form>
</div>
<!--用户信息列表-->
<div>
<div class="system-list">
<el-table :data="records" stripe style="width: 100%">
<el-table-column type="index" width="60"></el-table-column>
<el-table-column prop="loginName" sortable label="登录用户"></el-table-column>
<el-table-column prop="userCell" sortable label="手机号码"></el-table-column>
<el-table-column prop="userName" sortable label="用户姓名"></el-table-column>
<el-table-column prop="lastLogin" :formatter="dateFormat" sortable label="最近登陆时间"></el-table-column>
<el-table-column prop="status" sortable label="状态" :formatter="statusFormat"></el-table-column>
<el-table-column prop="memo" sortable label="备注信息"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="small"
@click="resetPassword(scope.row)">重置密码
</el-button>
<el-button type="text" size="small"
@click="updateUsers(scope.row)">修改用户
</el-button>
<el-button type="text" size="small" @click="userSetRole(scope.row)">设置用户角色</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="page">
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="page.current"
:page-size="page.size"
layout="prev, pager, next"
:total="page.total">
</el-pagination>
</div>
<block-header title="用户列表"/>
<div class="b-table">
<el-table :data="records" size="small" border stripe style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
<el-table-column prop="loginName" sortable label="登录用户"></el-table-column>
<el-table-column prop="userCell" sortable label="手机号码"></el-table-column>
<el-table-column prop="userName" sortable label="用户姓名"></el-table-column>
<el-table-column prop="lastLogin" :formatter="dateFormat" sortable label="最近登陆时间"></el-table-column>
<el-table-column align="center" prop="status" label="状态" :formatter="statusFormat"></el-table-column>
<el-table-column prop="memo" sortable label="备注信息"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="text" size="small"
@click="resetPassword(scope.row)">重置密码
</el-button>
<el-button type="text" size="small"
@click="updateUsers(scope.row)">修改用户
</el-button>
<el-button type="text" size="small" @click="userSetRole(scope.row)">设置用户角色</el-button>
</template>
</el-table-column>
</el-table>
</div>
<!--分页-->
<div class="b-pagination">
<el-pagination
background
@current-change="handleCurrentChange"
:current-page.sync="page.current"
:page-size="page.size"
layout="prev, pager, next"
:total="page.total">
</el-pagination>
</div>
<!--窗口组件-->
<template>
<!--新增窗口-->
......@@ -217,19 +218,6 @@ export default {
handleCurrentChange() {
this.loadSearchData();
},
statusFormat: function (row, column) {
var status = row['status'];
return this.$enumUtils.toMsg('UserStatusEnum', status);
},
dateFormat: function (row, column) {
var date = row[column.property];
if (date === undefined) {
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
}
}
......@@ -241,13 +229,5 @@ export default {
width 30%
}
.search-input {
width 55%
float left
}
.btn {
float right
}
</style>
......@@ -21,6 +21,9 @@ export default {
size: res.size,
total: res.total
}
},
onReset(formName){
this.$refs[formName].resetFields();
}
}
}
import BlockHeader from "@/components/byh/componments/blockHeader";
export default {
components: {
BlockHeader
}
}
import error from './error'
import clone from './clone'
import components from './components'
import methods from './methods'
export default {
mixins: [
components,
methods,
error,
clone
]
......
import * as moment from "moment";
export default {
methods: {
onReset(formName) {
this.$refs[formName].resetFields();
},
// 格式化状态
statusFormat: function (row, column) {
const status = row['status'];
return this.$enumUtils.toMsg('UserStatusEnum', status);
},
// 格式化时间
dateFormat: function (row, column) {
const date = row[column.property];
if (date === undefined) return "";
return moment(date).format("YYYY-MM-DD HH:mm:ss");
}
}
}
.page{
box-sizing: border-box;
padding: 20px;
}
// 为table 添加标头
.tableHeaderStyle {
background: #FAFBFC !important;
......@@ -8,3 +12,81 @@
color: #666;
}
}
.el-table__header{
th {
background: #FAFBFC !important;
padding: 8px 0 !important;
color: #666;
}
}
//
.block-box {
margin-bottom: 15px;
}
// 表格样式
.table {
width: 100%;
color: #666;
border-collapse: collapse;
background-color: #fff;
td {
position: relative;
padding: 9px 15px;
overflow: hidden;
font-size: 14px;
line-height: 20px;
text-overflow: ellipsis;
white-space: nowrap;
border: 1px solid #e6e6e6;
&:nth-child(odd) {
width: 15%;
text-align: right;
background-color: #f7f7f7;
}
}
}
.el-menu-trigger {
display: none !important;
}
// 分页
.b-table{
margin-bottom: 16px;
}
.b-pagination{
display: flex;
align-items: center;
justify-content: center;
}
.el-drawer__header,.el-dialog__header{
position: relative;
&::before{
position: absolute;
left: 0;
top:60px;
width:100%;
height: 1px;
background: #f7f8fa;
content: "";
}
}
.el-dialog__title{
font-size: 14px;
}
.el-drawer__body{
overflow: hidden;
}
.page-com{
margin-right: 20px;
}
......@@ -25,7 +25,8 @@ const enumUtils = {
};
/** 借款类型*/
enumOpts[1] = {
enumName: 'LoanTypeEnum', values: [
enumName: 'LoanTypeEnum',
values: [
{code: 'NEW', message: '新增'},
{code: 'CONTINUE', message: '续贷'},
{code: 'EXTENSION', message: '展期'},
......
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