Commit 9e668103 authored by 刘雅文's avatar 刘雅文

需求

parent 06527d13
NODE_ENV=production
VUE_APP_ENV=production
VUE_APP_API=https://water.jqtianxia.com
VUE_APP_API=https://water.jqtianxia.com
\ No newline at end of file
......@@ -30,7 +30,7 @@
- 访问域名:https://customer.dingrongxd.com/
- API接口地址:https://drwater.dingrongxd.com
**测试部署**
**测试部署(放到金钱下面)**
- bucket:customer-vue-test
- 访问域名:http://customertest.jqtianxia.cn/
- API接口地址:http://47.99.245.36:8202
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -313,8 +313,6 @@ export default {
if (this.searchInfo.productName != '') {
return_hash['productName'] = this.searchInfo.productName
}
return return_hash;
},
......
......@@ -11,6 +11,7 @@
<el-tab-pane name="FeedList" label="反馈记录"></el-tab-pane>
<el-tab-pane name="UrgeList" label="催收记录"></el-tab-pane>
<el-tab-pane name="OperateLog" label="操作日志"></el-tab-pane>
<el-tab-pane name="Messages" label="短信信息"></el-tab-pane>
</el-tabs>
<div class="box-right">
......@@ -65,6 +66,7 @@ import OperateLog from "./componments/OperateLog";
import AddQuestion from "./componments/AddQuestion";
import updateQueDialog from "./componments/UpdateQueDialog";
import Messages from "./componments/Messages";
export default {
......@@ -76,7 +78,7 @@ export default {
FeedList,
UrgeList,
OperateLog,
Messages,
AddQuestion,
updateQueDialog
},
......@@ -89,7 +91,6 @@ export default {
firstLoanNo: '',
loan: {},
query: {},
basicInfo: {},
clientNos: "",
clientProducts: "",
......
<template>
<div class="box">
<h3>创建退款单:</h3>
<el-form
:inline="false"
:model="loanInfo"
:rules="rules"
ref="loanInfo"
label-width="200px"
>
<el-form-item label="借款编号:" prop="loanNo">
<el-input
placeholder="请输入客户编号"
v-model="loanInfo.loanNo"
></el-input>
</el-form-item>
<el-form-item label="退款金额:" prop="refundAmt">
<el-input
placeholder="请输入退款金额"
v-model="loanInfo.refundAmt"
></el-input>
</el-form-item>
<el-form-item label="备注信息:" prop="memo">
<el-input
placeholder="请输入备注信息"
v-model="loanInfo.memo"
></el-input>
</el-form-item>
</el-form>
<el-button class="btn" type="primary" @click="trueSet('loanInfo')"
>确定创建</el-button
>
</div>
</template>
<script>
export default {
name: "CreateRefund",
data() {
return {
loanInfo: {
loanNo: "", //借款编号
refundAmt: "", //退款金额
memo: "", //备注
creator: "", //创建人
},
creators: "", //创建人
rules: {
loanNo: [
{ required: true, message: "请输入借款编号", trigger: "blur" },
],
refundAmt: [
{ required: true, message: "请输入退款金额", trigger: "blur" },
],
memo: [
{ required: true, message: "填输入备注信息", trigger: "blur" },
],
},
};
},
mounted() {
//获取登录名
this.creators = localStorage.getItem("loginName");
// console.log(this.creators,'445')
},
methods: {
open() {
this.$confirm("此操作将为您创建退款单,是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
// console.log(this.creators,this.loanInfo,'zhegeshi canshu')
if(this.creators){
this.loanInfo.creator=this.creators
}
this.$$post(`/refund/createRefund`, this.loanInfo).then((res) => {
if (res.data.code != 200) {
this.$message.error(res.data.message);
return;
}
else {
this.loanInfo = {};
this.$message({
type: "success",
message: "创建成功!",
});
}
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消创建",
});
this.loanInfo = {};
});
},
//点击确定提交信息
trueSet(loanInfo) {
this.$refs[loanInfo].validate((valid) => {
if (valid) {
this.open();
} else {
console.log("提交失败!!!");
return false;
}
});
},
},
};
</script>
<style >
.box {
padding: 30px;
}
h3 {
margin-left: 50px;
margin-bottom: 30px;
}
.el-input__inner {
width: 250px;
}
.btn {
margin-left: 120px;
}
</style>
\ No newline at end of file
......@@ -83,6 +83,10 @@ export default {
data() {
return {
options: [
{
value: 'R0',
label: 'R0'
},
{
value: 'R1',
label: 'R1'
......
......@@ -77,8 +77,9 @@
<el-table-column align="center" prop="clientCell" label="手机号"></el-table-column>
<el-table-column align="center" prop="gmtCreated" label="反馈时间" :formatter="dateFormat"></el-table-column>
<el-table-column align="center" prop="feedType" label="反馈类型"></el-table-column>
<!--<el-table-column prop="feedProduct" label="产品名称" :formatter="productNameFormat" ></el-table-column>-->
<!-- <el-table-column align="center" prop="feedProduct" label="产品名称" :formatter="productNameFormat" ></el-table-column> -->
<el-table-column align="center" prop="feedSource" label="来源" :formatter="feedSourceFormat"></el-table-column>
<el-table-column align="center" prop="feedProductStr" label="渠道来源" ></el-table-column>
<el-table-column align="center" prop="feedStatus" label="解决状态"></el-table-column>
<el-table-column align="center" label="操作">
<template slot-scope="scope">
......@@ -175,8 +176,10 @@ export default {
this.$message.error(res.data.message);
return
}
// console.log(res.data.result);
listsData = res.data.result.records;
this.tablePlanRemindData = listsData;
// console.log(this.tablePlanRemindData);
this.page.total = res.data.result.total;
}).catch(error => {
......
......@@ -101,6 +101,7 @@ export default {
feedContent: '',
clientNo: '',
creater: '',
loanNo:'',
productName: '',
feedVoucher: []
},
......@@ -158,7 +159,8 @@ export default {
}
},
created() {
const {clientNo, feedNo, feedType,feedStatus,feedContent,feedVoucher, feedProduct} = this.params;
console.log(this.params,'888888888888');
const {clientNo, feedNo, feedType,feedStatus,feedContent,feedVoucher, feedProduct,loanNo} = this.params;
const list = [];
feedVoucher.forEach(item=>{
const o = {};
......@@ -168,7 +170,7 @@ export default {
});
this.fileList = list;
console.log(this.params,'内容');
// console.log(this.params,'内容');
this.ruleForm = {
feedNo,
......@@ -176,6 +178,7 @@ export default {
feedStatus,
feedContent,
feedVoucher,
loanNo,
clientNo,
productName: feedProduct,
creater: localStorage.getItem("userName"),
......@@ -249,6 +252,7 @@ export default {
feedType: this.ruleForm.feedType,
feedSource: 'CUSTOMER',
feedStatus: this.ruleForm.feedStatus,
loanNo: this.ruleForm.loanNo,
feedContent: this.ruleForm.feedContent,
clientNo: this.ruleForm.clientNo,
productName: this.ruleForm.productName,
......@@ -276,6 +280,7 @@ export default {
feedStatus: this.ruleForm.feedStatus,
feedContent: this.ruleForm.feedContent,
clientNo: this.ruleForm.clientNo,
loanNo: this.ruleForm.loanNo,
productName: this.ruleForm.productName,
feedVoucher: feedVoucher
})
......
......@@ -10,7 +10,7 @@
<div style="margin-left:50px">
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">本金:{{ this.ruleForm.principleAmt }}</div>
<div class="grid-content bg-purple">本金:{{ this.ruleForm.raiseAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div>
......@@ -76,7 +76,7 @@
</el-form-item>
<el-form-item label="减免金额" prop="derateAmt">
<el-col :span="20">
<el-input v-model="ruleForm.derateAmt" placeholder="请输入转账金额" disabled></el-input>
<el-input v-model="ruleForm.derateAmt" placeholder="请输入减免金额" disabled></el-input>
</el-col>
</el-form-item>
<el-form-item label="还款凭证" prop="attach">
......@@ -109,7 +109,6 @@
<script>
import * as moment from "moment";
export default {
name: "advanceLoanAmt",
props: {
......@@ -152,6 +151,7 @@ export default {
attach: '',
bankAccount: '',
bankOwner: '',
raiseAmt:''
},
rules: {
bankAccount: [{required: true, message: '请输入还款银行账号', trigger: 'blur'}],
......
......@@ -74,7 +74,6 @@ export default {
},
async created() {
if(this.params){
console.log(this.params,'哈哈');
const {applyVo} = this.params;
this.loanModel = applyVo;
this.productNameFormat(this.loanModel.productName);
......
<template>
<div class="tabs-content">
<block-header title="基本信息">
</block-header>
<block-header title="基本信息"> </block-header>
<div class="block-box">
<table class="table">
<tr>
......@@ -16,18 +14,42 @@
<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>
<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>
<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>
<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>
......@@ -46,23 +68,54 @@
</tr>
</table>
</div>
<block-header title="银行卡列表"/>
<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>
: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>
<el-button
type="text"
size="small"
@click="ownerBankBind(scope.row, 'BindCardRecord', '绑卡记录')"
>绑卡记录</el-button
>
<el-button type="text" size="small" @click="unSign(scope.row)"
>解绑</el-button
>
</template>
</el-table-column>
</el-table>
......@@ -71,25 +124,48 @@
<!--绑卡记录-->
<template v-if="visible">
<component
@handleClose="visible = false"
:is="activeComponents"
:dialogVisible="visible"
:params="dParams"
:title="dTitle"/>
@handleClose="visible = false"
:is="activeComponents"
:dialogVisible="visible"
:params="dParams"
:title="dTitle"
/>
</template>
<!-- 解绑 -->
<template v-if="dialogTableVisible">
<el-dialog
title="请输入手机号"
center
width="30%"
:visible.sync="dialogTableVisible"
>
<el-form :model="tellphone">
<el-form-item label="旧手机号:" label-width="100">
<el-input v-model="tellphone.ownerMobile"></el-input>
</el-form-item>
<el-form-item label="新手机号:" label-width="100">
<el-input v-model="tellphone.newOwnerMobile"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="submittel">确 定</el-button>
</div>
</el-dialog>
</template>
</div>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import BindCardRecord from './OwnerBankBind'
import BindCardRecord from "./OwnerBankBind";
import * as moment from "moment";
export default {
name: 'AddUserServiceDialog',
name: "AddUserServiceDialog",
components: {
BlockHeader,
BindCardRecord
BindCardRecord,
},
props: {
dialogVisible: {
......@@ -102,7 +178,7 @@ export default {
},
params: {
type: Object,
required: true
required: true,
},
},
data() {
......@@ -111,29 +187,43 @@ export default {
activeComponents: "",
dTitle: "",
dParams: {},
dialogTableVisible: false,
basicInfo: {},
ownerBank: []
}
ownerBank: [],
// 手机号
tellphone: {
newOwnerMobile: "",
ownerMobile: "",
},
dataInfo: {
bankAccount: "",
bizType: "",
clientNo: "",
productName: "",
},
};
},
filters: {
dateFilter: function (row) {
const exp = row;
if (!exp || typeof (exp) === undefined || typeof (exp) === null) {
return ''
if (!exp || typeof exp === undefined || typeof exp === null) {
return "";
}
return moment(exp).format("YYYY-MM-DD")
return moment(exp).format("YYYY-MM-DD");
},
},
async created() {
if (this.params) {
const params = this.params;
console.log(params, '是什么');
const {basicInfo} = params;
// console.log(params, "是什么");
const { basicInfo } = params;
this.basicInfo = basicInfo;
if (basicInfo.cardList) this.ownerBank = basicInfo.cardList;
}
// console.log(this.$route.query.clientProductName)
this.dataInfo.productName=this.$route.query.clientProductName
this.dataInfo.clientNo=this.$route.query.clientNo
},
methods: {
headerStyle() {
......@@ -141,23 +231,90 @@ export default {
},
/*日期*/
dateFormat: function (row, column) {
let date = row[column.property]
let date = row[column.property];
if (date === undefined) {
return ''
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss")
return moment(date).format("YYYY-MM-DD HH:mm:ss");
},
// 查看绑卡记录
ownerBankBind(row,com,title) {
ownerBankBind(row, com, title) {
this.activeComponents = com;
this.visible = true;
this.dTitle = title;
this.dParams = row;
}
}
}
},
//解绑
unSign(n) {
console.log(n);
// console.log(this.params);
this.$confirm("确定要解绑吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.dialogTableVisible = true;
// this.dataInfo.clientNo = n.clientNo;
this.dataInfo.bizType = n.bizType;
this.dataInfo.bankAccount = n.bankAccount;
})
.catch(() => {
this.$message({
type: "info",
message: "已取消解绑",
});
});
},
//点击取消
cancel() {
this.dialogTableVisible = false;
this.tellphone = "";
this.$message({
type: "info",
message: "已取消解绑",
});
},
//点击确定提交数据
submittel() {
//验证电话号码
if (!/^1[3-9][0-9]\d{8}$/.test(this.tellphone.newOwnerMobile)) {
this.$message({
message: "新号码填写有误",
type: "error",
});
this.tellphone.newOwnerMobile = "";
}
if (!/^1[3-9][0-9]\d{8}$/.test(this.tellphone.ownerMobile)) {
this.$message({
message: "旧号码填写有误",
type: "error",
});
this.tellphone.ownerMobile = "";
} else {
let postData = { ...this.dataInfo, ...this.tellphone };
console.log(postData);
//调接口
this.$$post(`/detail/unSign`,postData).then((res)=>{
if (res.data.code != 200) {
this.dialogTableVisible = false;
this.$message.error(res.data.message);
this.tellphone={};
return
}
this.$message({
type: 'success',
message: '解绑成功!'
});
this.dialogTableVisible = false;
this.tellphone={};
window.location.reload();
})
}
},
},
};
</script>
<style>
</style>
......@@ -10,10 +10,12 @@
<td>{{ loanVo.surAmt }}</td>
</tr>
<tr>
<td>退款金额:</td>
<td>退款金额:</td>
<td>
<span v-if="loanVo.refundAmt !== null ">{{ loanVo.refundAmt }} ({{ loanVo.refundStatusDesc }})</span>
<span v-else>¥0</span>
<span v-if="loanVo.refundAmt !== 0"
>{{ loanVo.refundAmt }} ({{ loanVo.refundStatusDesc }})</span
>
<span v-else>{{ loanVo.refundAmt }}</span>
</td>
<td>账单已还款:</td>
<td>{{ loanVo.alrAmt }}</td>
......@@ -21,13 +23,26 @@
<tr>
<td>操作:</td>
<td>
<el-button type="primary" size="mini" @click="handleAdvanceLoanAmt" v-if="isNeedAudit">线下结清</el-button>
<el-button type="primary" size="mini" @click="protocolSettleAll">代扣结清</el-button>
<el-button
type="primary"
size="mini"
@click="handleAdvanceLoanAmt"
v-if="isNeedAudit"
>线下结清</el-button
>
<el-button type="primary" size="mini" @click="protocolSettleAll"
>代扣结清</el-button
>
<el-button
type="primary"
size="mini"
v-if="params.capitalCodeStr === '自营'"
@click="handleDevicePayment"
>分笔代扣</el-button
>
</td>
<td>减免金额:</td>
<td>
{{loanVo.derateAmt}}
</td>
<td>{{ loanVo.derateAmt }}</td>
</tr>
</table>
</div>
......@@ -35,129 +50,230 @@
<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="planNo" label="计划编号" width="135px"></el-table-column>
<el-table-column align="center" prop="planIndex" label="期数"></el-table-column>
<el-table-column align="center" prop="planAmt" width="85" label="应还总金额"></el-table-column>
<el-table-column align="center" prop="planBen" label="本金"></el-table-column>
<el-table-column align="center" prop="planFu" label="服务费"></el-table-column>
<el-table-column align="center" prop="planXi" label="利息"></el-table-column>
<el-table-column align="center" prop="planFa" label="计划罚息"></el-table-column>
<el-table-column align="center" prop="accountAmt" label="手续费"></el-table-column>
<el-table-column align="center" prop="planDate" width="120" label="计划还款时间"
:formatter="dateFormats"></el-table-column>
<el-table-column align="center" prop="backedAmt" label="已还金额" :formatter="planMoneyFormat"></el-table-column>
<el-table-column align="center" prop="derateAmt" label="减免金额"></el-table-column>
<el-table-column align="center" prop="remainAmt" label="待还金额"></el-table-column>
<el-table-column align="center" prop="statusStr" label="还款状态"></el-table-column>
<el-table-column align="center" prop="gmtModified" width="120" label="结清时间"
:formatter="dateFormats"></el-table-column>
@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="planNo"
label="计划编号"
width="135px"
></el-table-column>
<el-table-column
align="center"
prop="planIndex"
label="期数"
></el-table-column>
<el-table-column
align="center"
prop="planAmt"
width="85"
label="应还总金额"
></el-table-column>
<el-table-column
align="center"
prop="planBen"
label="本金"
></el-table-column>
<el-table-column
align="center"
prop="planFu"
label="服务费"
></el-table-column>
<el-table-column
align="center"
prop="planXi"
label="利息"
></el-table-column>
<el-table-column
align="center"
prop="planFa"
label="计划罚息"
></el-table-column>
<el-table-column
align="center"
prop="accountAmt"
label="手续费"
></el-table-column>
<el-table-column
align="center"
prop="planDate"
width="120"
label="计划还款时间"
:formatter="dateFormats"
></el-table-column>
<el-table-column
align="center"
prop="backedAmt"
label="已还金额"
:formatter="planMoneyFormat"
></el-table-column>
<el-table-column
align="center"
prop="derateAmt"
label="减免金额"
></el-table-column>
<el-table-column
align="center"
prop="remainAmt"
label="待还金额"
></el-table-column>
<el-table-column
align="center"
prop="statusStr"
label="还款状态"
></el-table-column>
<el-table-column
align="center"
prop="gmtModified"
width="120"
label="结清时间"
:formatter="dateFormats"
></el-table-column>
<el-table-column fixed="right" align="center" width="120" label="操作">
<template slot-scope="scope">
<el-button type="text" size="small"
v-if=" scope.row.status !='SETTLED' && scope.row.backedSign == 'YES' "
@click="protocolOne(scope.row)">代扣
<el-button
type="text"
size="small"
v-if="
scope.row.status != 'SETTLED' && scope.row.backedSign == 'YES'
"
@click="protocolOne(scope.row)"
>代扣
</el-button>
<el-button type="text" size="small" v-else disabled @click="protocolOne(scope.row)">代扣</el-button>
<el-button
type="text"
size="small"
v-else
disabled
@click="protocolOne(scope.row)"
>代扣</el-button
>
<el-button type="text" size="small"
v-if=" scope.row.status != 'SETTLED' && scope.row.backedSign == 'YES' "
@click="offlineTransfer(scope.row)">线下转账
<el-button
type="text"
size="small"
v-if="
scope.row.status != 'SETTLED' && scope.row.backedSign == 'YES'
"
@click="offlineTransfer(scope.row)"
>线下转账
</el-button>
<el-button type="text" size="small" v-else disabled @click="offlineTransfer(scope.row)">线下转账</el-button>
<el-button
type="text"
size="small"
v-else
disabled
@click="offlineTransfer(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">
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>
<!--线下提前结清-->
<advance-loan-amt
v-if="ui.advanceLoanAmt.visible"
:loanNo="ui.advanceLoanAmt.loanNo"
:orderNo="ui.advanceLoanAmt.orderNo"
@callback="init"
:dialogVisible.sync="ui.advanceLoanAmt.visible">
v-if="ui.advanceLoanAmt.visible"
:loanNo="ui.advanceLoanAmt.loanNo"
:orderNo="ui.advanceLoanAmt.orderNo"
@callback="init"
:dialogVisible.sync="ui.advanceLoanAmt.visible"
>
</advance-loan-amt>
<!--代扣提前结清-->
<protocol-settled
v-if="ui.protocolSettled.visible"
:loanNo="ui.protocolSettled.loanNo"
:clientNo="ui.protocolSettled.clientNo"
:bizType="ui.protocolSettled.bizType"
@callback="init"
:dialogVisible.sync="ui.protocolSettled.visible">
v-if="ui.protocolSettled.visible"
:loanNo="ui.protocolSettled.loanNo"
:clientNo="ui.protocolSettled.clientNo"
:bizType="ui.protocolSettled.bizType"
@callback="init"
:dialogVisible.sync="ui.protocolSettled.visible"
>
</protocol-settled>
<!--分笔代扣-->
<device-payment
v-if="ui.devicePayment.visible"
:loanNo="ui.devicePayment.loanNo"
:orderNo="ui.devicePayment.orderNo"
:clientNo="ui.devicePayment.clientNo"
:bizType="ui.devicePayment.bizType"
@callback="init"
:dialogVisible.sync="ui.devicePayment.visible"
>
</device-payment>
<protocol-settled-one
v-if="ui.protocolSettledOne.visible"
:loanNo="ui.protocolSettledOne.loanNo"
:periodNo="ui.protocolSettledOne.periodNo"
:remainAmt="ui.protocolSettledOne.remainAmt"
:planAmt="ui.protocolSettledOne.planAmt"
:bizType="ui.protocolSettledOne.bizType"
:clientNo="ui.protocolSettledOne.clientNo"
@callback="init"
:dialogVisible.sync="ui.protocolSettledOne.visible">
v-if="ui.protocolSettledOne.visible"
:loanNo="ui.protocolSettledOne.loanNo"
:periodNo="ui.protocolSettledOne.periodNo"
:remainAmt="ui.protocolSettledOne.remainAmt"
:planAmt="ui.protocolSettledOne.planAmt"
:bizType="ui.protocolSettledOne.bizType"
:clientNo="ui.protocolSettledOne.clientNo"
:loanSign="ui.protocolSettledOne.loanSign"
@callback="init"
:dialogVisible.sync="ui.protocolSettledOne.visible"
>
</protocol-settled-one>
<!-- 线下转账 -->
<offline-transfer
v-if="ui.offineTransfer.visible"
:orderNo="ui.offineTransfer.orderNo"
:loanNo="ui.offineTransfer.loanNo"
:periodNo="ui.offineTransfer.periodNo"
:planNo="ui.offineTransfer.planNo"
:planAmt="ui.offineTransfer.planAmt"
:planFu="ui.offineTransfer.planFu"
:planBen="ui.offineTransfer.planBen"
:planXi="ui.offineTransfer.planXi"
:remainAmt="ui.offineTransfer.remainAmt"
:accountAmt="ui.offineTransfer.accountAmt"
@callback="init"
:dialogVisible.sync="ui.offineTransfer.visible">
v-if="ui.offineTransfer.visible"
:orderNo="ui.offineTransfer.orderNo"
:loanNo="ui.offineTransfer.loanNo"
:periodNo="ui.offineTransfer.periodNo"
:planNo="ui.offineTransfer.planNo"
:planAmt="ui.offineTransfer.planAmt"
:planFu="ui.offineTransfer.planFu"
:planBen="ui.offineTransfer.planBen"
:planXi="ui.offineTransfer.planXi"
:remainAmt="ui.offineTransfer.remainAmt"
:accountAmt="ui.offineTransfer.accountAmt"
@callback="init"
:dialogVisible.sync="ui.offineTransfer.visible"
>
</offline-transfer>
</div>
</template>
<script>
import * as moment from "moment";
import AdvanceLoanAmt from './AdvanceLoanAmt'
import ProtocolSettled from './ProtocolSettled'
import ProtocolSettledOne from './ProtocolSettledOne'
import OfflineTransfer from './OffineTransfer'
import AdvanceLoanAmt from "./AdvanceLoanAmt";
import ProtocolSettled from "./ProtocolSettled";
import ProtocolSettledOne from "./ProtocolSettledOne";
import OfflineTransfer from "./OffineTransfer";
import DevicePayment from "./DevicePayment";
export default {
name: 'RiskInfo',
name: "RiskInfo",
components: {
AdvanceLoanAmt,
ProtocolSettled,
ProtocolSettledOne,
OfflineTransfer
OfflineTransfer,
DevicePayment,
},
props: {
title: {
......@@ -166,12 +282,15 @@ export default {
},
params: {
type: Object,
required: true
required: true,
},
},
data() {
return {
tableStatus: [{text: '成功', value: "SUCCESS"}, {text: '失败', value: "FAIL"}],
tableStatus: [
{ text: "成功", value: "SUCCESS" },
{ text: "失败", value: "FAIL" },
],
form: {
total: 1,
current: 1,
......@@ -181,128 +300,139 @@ export default {
loanVo: {},
isNeedAudit: true,
data: [],
ui: {
offineTransfer: {
visible: false,
orderNo: '',
loanNo: '',
periodNo: '',
planAmt: '',
planFu: '',
planBen: '',
planXi: '',
planNo: '',
accountAmt: '',
orderNo: "",
loanNo: "",
periodNo: "",
planAmt: "",
planFu: "",
planBen: "",
planXi: "",
planNo: "",
accountAmt: "",
},
advanceLoanAmt: {
visible: false,
orderNo: '',
loanNo: '',
planAmt: '',
planFu: '',
planBen: '',
planXi: '',
planNo: '',
orderNo: "",
loanNo: "",
planAmt: "",
planFu: "",
planBen: "",
planXi: "",
planNo: "",
},
//分笔代扣
devicePayment: {
visible: false,
orderNo: "",
loanNo: "",
planAmt: "",
planFu: "",
planBen: "",
planXi: "",
planNo: "",
},
protocolSettled: {
visible: false,
loanNo: '',
bizType: '',
clientNo: '',
loanNo: "",
bizType: "",
clientNo: "",
},
protocolSettledOne: {
visible: false,
loanNo: '',
bizType: '',
clientNo: '',
periodNo: '',
remainAmt: '',
planAmt: '',
loanNo: "",
bizType: "",
clientNo: "",
periodNo: "",
remainAmt: "",
planAmt: "",
},
},
}
};
},
async created() {
if (this.params) {
const params = this.params;
const {loanVo, applyVo, planVo} = params;
this.advanceLoanAmt.loanNo = applyVo.loanNo;
this.advanceLoanAmt.bizType = applyVo.bizType;
this.advanceLoanAmt.clientNo = applyVo.clientNo;
this.data = planVo
if (planVo == null) {
this.data = [];
this.isNeedAudit = false;
}
this.loanVo = loanVo;
// console.log(this.params,'hhhhhh');
const { loanNo } = this.params;
this.advanceLoanAmt.loanNo = loanNo;
await this.init();
}
},
methods: {
headerStyle() {
return "tableHeaderStyle";
},
async init() {
const res = await this.$$get('/detail/customer/' + this.advanceLoanAmt.loanNo);
const {success, result} = res.data;
const res = await this.$$get(
"/detail/customer/" + this.advanceLoanAmt.loanNo
);
const { success, result } = res.data;
// console.log(res.data.result,'888');
if (success && result != null) {
const {loanVo, applyVo, planVo} = result;
const { loanVo, applyVo, planVo } = result;
this.advanceLoanAmt.loanNo = applyVo.loanNo;
this.advanceLoanAmt.bizType = applyVo.bizType;
this.advanceLoanAmt.clientNo = applyVo.clientNo;
this.data = planVo
this.data = planVo;
if (planVo == null) {
this.data = [];
this.isNeedAudit = false;
}
this.loanVo = loanVo;
}
},
// 计算小数
accAdd(arg1, arg2) {
let r1, r2, m;
try {
r1 = arg1.toString().split(".")[1].length
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2))
return (arg1 * m + arg2 * m) / m
m = Math.pow(10, Math.max(r1, r2));
return (arg1 * m + arg2 * m) / m;
},
// 线下提前结清
handleAdvanceLoanAmt() {
const {applyVo} = this.params;
this.ui.advanceLoanAmt = {
visible: true,
loanNo: applyVo.loanNo,
orderNo: applyVo.orderNo,
loanNo: this.advanceLoanAmt.loanNo,
orderNo: this.params.orderNo,
};
},
// 计算已还金额
planMoneyFormat: function (row, column) {
return this.accAdd(this.accAdd(this.accAdd(this.accAdd(this.accAdd(row.backedBen, row.backedFu), row.backedXi), row.backedFa), row.backedBurden), row.backedSpeaccount).toFixed(2)
return this.accAdd(
this.accAdd(
this.accAdd(
this.accAdd(this.accAdd(row.backedBen, row.backedFu), row.backedXi),
row.backedFa
),
row.backedBurden
),
row.backedSpeaccount
).toFixed(2);
},
offlineTransfer(record) {
const {applyVo} = this.params;
const { applyVo, orderNo, loanNo } = this.params;
// console.log(this.params, "代扣");
// 取当前用户的信息
this.ui.offineTransfer = {
visible: true,
orderNo: applyVo.orderNo,
loanNo: applyVo.loanNo,
orderNo: orderNo,
loanNo: loanNo,
planNo: record.planNo,
periodNo: record.planIndex,
planAmt: record.planAmt,
......@@ -315,34 +445,48 @@ export default {
},
//代扣提前结清
protocolSettleAll() {
const {applyVo} = this.params;
this.ui.protocolSettled = {
visible: true,
loanNo: applyVo.loanNo,
loanNo: this.advanceLoanAmt.loanNo,
bizType: this.advanceLoanAmt.bizType,
clientNo: this.advanceLoanAmt.clientNo,
};
},
//代扣当期
protocolOne(record) {
const {applyVo} = this.params;
console.log(record,'record');
const { applyVo, loanNo,loanSign } = this.params;
this.ui.protocolSettledOne = {
visible: true,
loanNo: applyVo.loanNo,
loanNo: loanNo,
loanSign:loanSign,
bizType: this.advanceLoanAmt.bizType,
clientNo: this.advanceLoanAmt.clientNo,
periodNo: record.planIndex,
remainAmt: record.remainAmt,
planAmt: record.planAmt,
};
console.log(this.ui.protocolSettledOne,'数据');
},
//分笔代扣
handleDevicePayment() {
const { applyVo, loanNo, orderNo, clientNo } = this.params;
// console.log(this.params,'params');
this.ui.devicePayment = {
visible: true,
loanNo: loanNo,
bizType: this.advanceLoanAmt.bizType,
clientNo: clientNo,
orderNo: orderNo,
};
},
// 合并日期
dateCompare: function (row, column) {
let date = row[column.property]
let date = row[column.property];
if (date === undefined) {
return ''
return "";
}
return moment(date).format("YYYY-MM-DD ") + row.backedTime
return moment(date).format("YYYY-MM-DD ") + row.backedTime;
},
// 银行信息拼接
cardBankFormat: function (row, column) {
......@@ -350,47 +494,47 @@ export default {
},
/*日期*/
dateFormat: function (row, column) {
let date = row[column.property]
let date = row[column.property];
if (date === undefined) {
return ''
return "";
}
return moment(date).format("YYYY-MM-DD HH:mm:ss")
return moment(date).format("YYYY-MM-DD HH:mm:ss");
},
/*日期*/
dateFormats: function (row, column) {
let date = row[column.property]
let date = row[column.property];
if (date === undefined) {
return ''
return "";
}
return moment(date).format("YYYY-MM-DD")
return moment(date).format("YYYY-MM-DD");
},
handleClose() {
this.$emit("handleClose");
},
//客服状态
serviceFormat: function (row, column) {
let status = row['feedStatus'];
return this.$enumUtils.toMsg('FeedStatus', status);
let status = row["feedStatus"];
return this.$enumUtils.toMsg("FeedStatus", status);
},
handleCurrentChange(e) {
this.form.current = e;
this.init();
},
handleSizeChange(e) {
this.form.size = e
this.form.size = e;
this.form.current = 1;
this.init();
},
//还款添加查询功能
handleFilterChange: function (filters, value) {
if (filters.status.length === 2) {
this.backValue = null
this.backValue = null;
} else {
this.backValue = filters.status[0]
this.backValue = filters.status[0];
}
},
}
}
},
};
</script>
<style>
......
<template>
<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.raiseAmt }}
</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 :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-row>
<br />
<el-row :gutter="20">
<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>
<br />
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="140px"
class="demo-ruleForm"
>
<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-select>
</el-form-item>
<el-form-item label="自定义扣款金额" prop="selfMoney">
<el-col :span="12">
<el-input
v-model="selfMoney"
placeholder="请输入自定义金额"
clearable
></el-input>
</el-col>
</el-form-item>
</el-form>
</div>
<div slot="footer" align="center">
<el-button @click="handleClose">取 消</el-button>
<el-button type="primary" @click="backedTransfer('ruleForm')"
>确 定</el-button
>
</div>
</el-dialog>
</template>
<script>
import * as moment from "moment";
export default {
name: "devicePayment",
props: {
dialogVisible: {
type: Boolean,
required: true,
},
loanNo: {
type: String,
},
clientNo: {
type: String,
},
bizType: {
type: String,
},
},
data() {
return {
cardList: [],
visible: this.$props.dialogVisible,
ruleForm: {
allAmt: "",
backedAmt: "",
loanNo: "",
bizType: "",
breakAmt: "",
orderNO: "",
clientNo: "",
derateAmt: "",
interestAmt: "",
loanAmt: "",
overdueAmt: "",
principleAmt: "",
serviceAmt: "",
settleAmt: "",
startDate: "",
userDay: "",
userMonth: "",
memo: "",
attach: "",
bankAccount: "",
bankOwner: "",
backAmt: "",
raiseAmt:''
//自定义金额
},
selfMoney: "",
rules: {
bankAccount: [
{
required: true,
message: "请选择银行卡",
trigger: "change",
},
],
// selfMoney: [
// {
// required: true,
// message: "请输入扣款金额",
// trigger: "blur",
// },
// ],
},
loginName: "",
backedNo: "",
};
},
filters: {
dateFilter: function (row) {
const date = row;
if (typeof date === undefined || typeof date == null) return "";
return moment(date).format("YYYY-MM-DD");
},
},
created() {
this.getMoney();
// this.selfMoney=localStorage.getItem('selfMoney');
// console.log(this.selfMoney,'1');
// localStorage.removeItem('selfMoney');
// console.log(this.selfMoney,'2');
this.getData();
this.getBankList();
this.ruleForm = {
loanNo: this.loanNo,
bizType: this.bizType,
clientNo: this.clientNo,
selfMoney:this.selfMoney
};
this.bizTypeStr = this.bizType;
},
mounted() {
this.loginName = localStorage.getItem("loginName");
},
methods: {
getData() {
// 查询当前的基础数据
this.$$get("/back/countSettle?loanNo=" + this.loanNo)
.then((res) => {
if (res.data.code != 200) {
this.$message.error(res.data.message);
this.handleClose();
} else {
this.ruleForm = res.data.result;
}
})
.catch((error) => {
this.$message.error(error || "网络异常,请稍后。。。");
});
},
getMoney() {
//获取挂账金额
this.$$get(
`/back/getRestingOrderAmt?loanNo=` + this.loanNo
).then((res) => {
if (res.data.code != 200) {
this.$message.error(res.data.message);
this.handleClose();
} else {
this.selfMoney=res.data.result;
}
});
},
getBankList() {
//获取银行卡列表
this.$$post(`/back/bankCardList`, {
clientNo: this.clientNo,
bizType: this.bizType,
loanNo: this.loanNo,
})
.then((res) => {
this.cardList = res.data.result;
})
.catch((error) => {
this.$message.error(error || "网络异常,请稍后。。。");
});
},
/** 提交点击 */
backedTransfer() {
// if (this.ruleForm.backAmt > this.selfMoney) {
// this.$message.error(
// "操作失败扣款金额已超出剩余应还款金额,请重新确认!"
// );
// this.selfMoney = "";
// return false;
// }
if(this.selfMoney==''){
this.$message.error('请输入扣款金额');
return false;
}
this.ruleForm.backAmt=this.selfMoney;
this.$confirm("是否确认分笔扣款?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "primary",
})
.then(() => {
this.$$post(`/back/createBackedSettle`, this.buildParam())
.then((res) => {
// console.log(res, "确定按钮");
if (res.data.code != 200) {
this.$message.error(res.data.message);
return;
}
this.$message({ message: "操作成功", type: "success" });
this.handleClose();
this.$emit("callback");
})
.catch((err) => {
alert("error!");
});
})
.catch(() => {
this.$message({
type: "info",
message: "已取消",
});
});
},
//参数
buildParam() {
return {
loanNo: this.ruleForm.loanNo,
bizType: this.bizTypeStr,
backAmt: this.selfMoney,
creator: this.loginName,
bankAccount: this.ruleForm.bankAccount,
periodNo: this.ruleForm.userMonth,
rePayType: "BYSTEP",
restingOrderEnum: "YES",
};
},
/** 关闭处理 */
handleClose() {
this.visible = false;
setTimeout(() => {
this.$emit("update:dialogVisible", false);
}, 300);
},
},
};
</script>
<style scoped>
</style>
......@@ -14,8 +14,9 @@
stripe
style="width: 100%;">
<el-table-column prop="feedNo" width="180" align="center" label="客服反馈编号"></el-table-column>
<el-table-column prop="clientName" align="center" label="客户姓名"></el-table-column>
<el-table-column prop="clientCell" align="center" label="客户手机号"></el-table-column>
<el-table-column prop="feedProductStr" align="center" label="产品名称"></el-table-column>
<!-- <el-table-column prop="clientName" align="center" label="客户姓名"></el-table-column> -->
<!-- <el-table-column prop="clientCell" align="center" label="客户手机号"></el-table-column> -->
<el-table-column prop="feedType" align="center" label="反馈类型"></el-table-column>
<el-table-column prop="feedContent" align="center" label="反馈内容"></el-table-column>
<el-table-column prop="feedVoucher" width="180" align="center" label="相关凭证">
......@@ -121,10 +122,11 @@ export default {
},
async created() {
const params = this.params;
console.log(this.params,'909090');
this.dialogTitle = '意见反馈'
this.form.clientCell = params.phoneNo;
this.form.loanNo = params.loanNo;
this.form.feedProduct = params.clientProductName;
this.form.feedSource = 'CUSTOMER';
this.form.sort = 'id desc';
......@@ -140,13 +142,14 @@ export default {
handleTabClick() {
this.dialogTitle = '意见反馈';
this.visible = true;
const {clientProductName,clientNo} = this.params;
const {clientProductName,clientNo,loanNo} = this.params;
this.dialogParams = {
feedType:'',
feedStatus:'',
feedContent:'',
feedVoucher:[],
clientNo,
loanNo,
feedProduct: clientProductName
}
......
<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-tab-pane name="ReliefList" 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 ReliefList from "./ReliefList";
import * as moment from "moment";
export default {
name: "AddUserServiceDialog",
components: {
BlockHeader,
ApplyInfo,
ContractList,
RePayList,
BillList,
ReliefList,
},
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;
} .loan-detail-content {
width: calc(100% - 100px);
box-sizing: border-box;
padding-left: 20px;
}
}
</style>
......@@ -2,35 +2,86 @@
<!-- 修改内容 -->
<el-drawer
:title="title"
size="70%"
size="80%"
:wrapperClosable="false"
:visible.sync="dialogVisible"
direction="rtl"
:before-close="handleClose"
>
<div class="page">
<div class="loan-detail">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="申请信息" name="1">
<ApplyInfo :params="items"></ApplyInfo>
</el-collapse-item>
<el-collapse-item title="借款合同" name="2">
<ContractList :params="items"
v-if="$permissionUtils.rolePermission('customBoss')"
></ContractList>
</el-collapse-item>
<el-collapse-item title="账单详情" name="3">
<BillList :params="items"></BillList>
</el-collapse-item>
<el-collapse-item title="还款情况" name="4">
<RePayList :params="items"></RePayList>
</el-collapse-item>
<el-collapse-item title="减免记录" name="5">
<ReliefList :params="items"></ReliefList>
</el-collapse-item>
</el-collapse>
<div class="page">
<div class="loan-detail">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="申请信息" name="1">
<!-- <ApplyInfo :params="applyInfo"></ApplyInfo> -->
<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.productNameStr }}</td>
<!-- <el-table-column align="center" prop="productName" label="产品名称" :formatter="productNameFormat"></el-table-column> -->
</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-collapse-item>
<!-- 组件 -->
<el-collapse-item title="借款合同" name="2">
<ContractList
:params="applyInfo"
v-if="$permissionUtils.rolePermission('customBoss')"
></ContractList>
</el-collapse-item>
<el-collapse-item title="账单详情" name="3">
<BillList :params="applyInfo"></BillList>
</el-collapse-item>
<el-collapse-item title="还款情况" name="4">
<RePayList :params="applyInfo"></RePayList>
</el-collapse-item>
<el-collapse-item title="减免记录" name="5">
<ReliefList :params="applyInfo"></ReliefList>
</el-collapse-item>
<el-collapse-item title="服务费退款记录" name="6">
<ServiceRefund :params="applyInfo"></ServiceRefund>
</el-collapse-item>
</el-collapse>
</div>
</div>
</div>
</el-drawer>
</template>
......@@ -41,6 +92,7 @@ import ContractList from "./ContractList";
import RePayList from "./RePayList";
import BillList from "./BillList";
import ReliefList from "./ReliefList";
import ServiceRefund from "./ServiceRefund";
import * as moment from "moment";
export default {
......@@ -52,15 +104,16 @@ export default {
RePayList,
BillList,
ReliefList,
ServiceRefund
},
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title:{
type:String,
required:true,
title: {
type: String,
required: true,
},
params: {
type: Object,
......@@ -72,19 +125,30 @@ export default {
visible: false,
active: "",
items: {},
loanModel: {},
applyInfo: {},
loan: {},
activeNames: ["1"],
activeNames: ["1",'2','3','4','5','6'],
};
},
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) {
// console.log(this.params,'自营');
const { loanNo } = this.params;
this.items = this.params;
console.log(this.items,'111');
this.applyInfo = this.params;
await this.initLoanInfo(loanNo);
}
},
methods: {
headerStyle() {
return "tableHeaderStyle";
......@@ -93,13 +157,10 @@ export default {
async initLoanInfo(loanNo) {
const res = await this.$$get("/detail/customer/" + loanNo);
const { success, result } = res.data;
console.log(res.data,'222');
console.log(result, "222");
if (success && result != null) {
this.loan = result;
this.handleChange({
name: "ApplyInfo",
label: "申请信息",
});
this.loanModel = result.applyVo;
}
},
/*日期*/
......@@ -113,8 +174,8 @@ export default {
},
// 切换选项卡
handleChange(val) {
console.log(val,'333');
this.items = {
console.log(val);
this.applyInfo = {
...this.loan,
...this.params,
};
......@@ -140,7 +201,7 @@ export default {
position: relative;
.el-collapse-item {
width:100%;
width: 100%;
box-sizing: border-box;
padding-left: 20px;
}
......
......@@ -12,8 +12,8 @@
<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="capitalCodeStr" label="放款资方"
></el-table-column>
<el-table-column align="center" prop="status" label="借款单状态">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.status==='AUDITED'" size="small">{{ loanStatusFormat(scope.row) }}
......@@ -25,7 +25,7 @@
<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">
<el-tag type="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>
......@@ -100,7 +100,7 @@ export default {
}
},
async created() {
console.log(this.params, 999);
// console.log(this.params, 999);
const {clientNo, clientProductName} = this.params;
const res = await this.$$post('/loan/getLoanListByClientNo/', {productName: clientProductName, clientNo: clientNo});
const {success, result} = res.data;
......@@ -124,12 +124,12 @@ export default {
return this.$enumUtils.toMsg('LoanStatuEnums', status);
},
capitalCodeFormat: function (row, column) {
let capitalCode = row['capitalCode'];
return this.$enumUtils.toMsg('CapitalEnums', capitalCode);
let capitalCodeStr = row['capitalCodeStr'];
return this.$enumUtils.toMsg('CapitalEnums', capitalCodeStr);
},
// 切换选项卡
handleClick(row) {
console.log(row, '一行信息');
// console.log(row, '一行信息');
this.visible = true;
this.title = '借款详情';
this.items = {
......
<template>
<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%"
:default-sort="{ prop: 'sendTime', order: 'descending' }"
>
<el-table-column
align="center"
prop="bizNo"
width="160"
label="ID/编号"
></el-table-column>
<el-table-column
align="center"
prop="smsType"
label="短信类型"
></el-table-column>
<el-table-column
align="center"
prop="content"
width="350"
label="短信内容"
></el-table-column>
<el-table-column
align="center"
prop="sendStateStr"
label="发送结果"
></el-table-column>
<el-table-column
align="center"
prop="memo"
label="备注"
></el-table-column>
<el-table-column
align="center"
prop="sendTime"
width="150"
:formatter="dateFormat"
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>
</template>
<script>
import * as moment from "moment";
export default {
props: {
dialogVisible: {
type: Boolean,
required: true,
},
title: {
type: String,
required: true,
},
params: {
type: Object,
required: true,
},
},
data() {
return {
form: {
current: 1,
size: 10,
total:1,
cell:"",
productName:""
},
data: [],
};
},
async created() {
const params = this.params;
// console.log(params,'手机号');
this.form.cell = params.clientCell;
this.form.productName = params.clientProductName;
await this.init();
},
methods: {
headerStyle() {
return "tableHeaderStyle";
},
async init() {
const res = await this.$$post("/detail/getSmsInfo", this.form);
const { success, result } = res.data;
if (success && result !== null) {
this.data = result.data;
this.form.total = result.total;
}
},
/*日期*/
dateFormat: function (row, column) {
let date = row[column.property]
if (date === undefined) {
return ''
}
return moment(date).format("YYYY-MM-DD HH:mm:ss")
},
handleClose() {
this.$emit("handleClose");
},
handleCurrentChange(e) {
this.form.current = e;
this.init();
},
handleSizeChange(e) {
this.form.size = e
this.form.current = 1;
this.init();
},
},
};
</script>
<style>
.tables {
margin-bottom: 20px;
}
.pages {
display: flex;
align-items: center;
justify-content: center;
}
</style>
\ No newline at end of file
......@@ -3,7 +3,7 @@
:append-to-body="true"
class="client-data-dialog"
title="创建转账还款单"
width="40%"
width="60%"
:visible.sync="visible"
:before-close="handleClose">
......
......@@ -65,7 +65,9 @@ export default {
},
async created() {
const params = this.params;
// console.log(params,'params');
this.form.clientNo = params.clientNo;
this.form.productName = params.clientProductName;
await this.init()
},
methods: {
......
......@@ -9,7 +9,7 @@
<div style="margin-left:50px">
<el-row :gutter="20">
<el-col :span="8">
<div class="grid-content bg-purple">本金:{{ this.ruleForm.principleAmt }}</div>
<div class="grid-content bg-purple">本金:{{ this.ruleForm.raiseAmt }}</div>
</el-col>
<el-col :span="8">
<div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div>
......@@ -126,6 +126,7 @@ export default {
attach: '',
bankAccount: '',
bankOwner: '',
raiseAmt:'',
},
bizTypeStr: '',
rules: {
......@@ -157,6 +158,8 @@ export default {
loanNo: this.loanNo,
bizType: this.bizType,
clientNo: this.clientNo,
periodNo:this.periodNo,
};
this.bizTypeStr = this.bizType;
......@@ -167,6 +170,7 @@ export default {
this.handleClose();
} else {
this.ruleForm = res.data.result;
console.log(this.ruleForm,'哈哈哈');
}
}).catch(error => {
......@@ -220,7 +224,9 @@ export default {
backAmt: this.ruleForm.settleAmt,
creator: localStorage.getItem("userName"),
bankAccount: this.ruleForm.bankAccount,
periodNo:this.ruleForm.periodNo,
rePayType: 'BYALL',
restingOrderEnum:'NO'
};
},
......
......@@ -25,12 +25,24 @@
<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-select clearable v-model="ruleForm.bankAccount"
class="select-bank-card">
<el-option
v-for="item in this.cardList"
:key="item.value"
@click.native="changeCard(item)"
:label="item.label"
:value="item.value"></el-option>
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="选择支付渠道" prop="paymentChannel">
<el-select clearable v-model="ruleForm.paymentChannel" class="select-bank-card">
<el-option
v-for="item in this.channelList"
:key="item.payChannelApi"
:label="item.message"
:value="item.payChannelApi"></el-option>
</el-select>
</el-form-item>
</el-form>
......@@ -67,6 +79,9 @@ export default {
planAmt: {
type: Number
},
loanSign:{
type:String
}
},
data() {
......@@ -75,7 +90,6 @@ export default {
submitLoading: false
},
visible: this.$props.dialogVisible,
ruleForm: {
periodNo: '',
orderNo: '',
......@@ -89,16 +103,20 @@ export default {
attach: '',
planNo: '',
bankAccount: '',
paymentChannel:'',
bankOwner: '',
backedAmt: '',
memo: '',
loanSign:"",
},
rules: {
bankAccount: [{required: true, message: '支付银行卡不能为空', trigger: 'blur'}],
// paymentChannel: [{required: true, message: '支付渠道不能为空', trigger: 'blur'}],
backAmt: [{required: true, message: "扣款金额不能为空", trigger: 'blur'}],
},
loginName: '',
cardList: [],
channelList:[]
}
},
......@@ -111,12 +129,14 @@ export default {
periodNo: this.periodNo,
remainAmt: this.remainAmt,
planAmt: this.planAmt,
loanSign:this.loanSign
};
// console.log(this.$props,'hhhhhhhhhhh');
//获取银行卡列表
this.$$post(`/back/bankCardList`, {
...this.ruleForm
}).then(res => {
console.log(res,'银行卡');
this.cardList = res.data.result;
}).catch(error => {
this.$message.error(error || '网络异常,请稍后。。。');
......@@ -146,10 +166,15 @@ export default {
}
})
},
refresh(){
//银行卡对应的支付渠道
changeCard(val){
console.log(val.payChannelApiVOS,'12131232132');
this.channelList=val.payChannelApiVOS;
if(val.payChannelApiVOS.length==0){
this.ruleForm.paymentChannel="";
}
},
//参数
buildParam() {
return {
......@@ -158,8 +183,10 @@ export default {
creator: localStorage.getItem("userName"),
bankAccount: this.ruleForm.bankAccount,
backAmt: this.ruleForm.remainAmt,
periodNo:this.ruleForm.periodNo,
rePayType: 'BYONE',
periodNo: this.ruleForm.periodNo,
restingOrderEnum:'NO',
payChannelApi:this.ruleForm.paymentChannel
};
},
......
......@@ -28,7 +28,7 @@
>
</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-column :show-overflow-tooltip="true" align="center" prop="memo" label="备注"></el-table-column>
</el-table>
</div>
<div class="pages">
......@@ -91,7 +91,7 @@ export default {
async created() {
if(this.params){
const params = this.params;
console.log(params,'哈哈3')
// console.log(params,'哈哈3')
this.form.bizNo = params.loanNo;
await this.init()
}
......@@ -112,8 +112,9 @@ export default {
const res = await this.$$post('/back/detailPageList', parB );
const {success, result} = res.data;
if (success && result !== null) {
const {data, total} = result
const {data, total} = result;
this.data = data;
// console.log(this.data[0].backedNo,'data');
this.form.total = total;
}
},
......
......@@ -23,7 +23,7 @@
>
</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-column :show-overflow-tooltip="true" align="center" prop="memo" label="备注"></el-table-column>
</el-table>
</div>
<div class="pages">
......@@ -88,9 +88,9 @@ export default {
}
},
async created() {
// console.log(this.params,'哈哈3')
if(this.params){
const params = this.params;
console.log(params,'哈哈3')
this.form.bizNo = params.loanNo;
await this.init()
}
......
<template>
<div class="page-com">
<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="loanNo" label="借款编号"></el-table-column>
<el-table-column align="center" prop="refundAmt" label="退款金额"></el-table-column>
<el-table-column align="center" prop="refundStatusDesc" label="退款单状态"></el-table-column>
<el-table-column align="center" prop="creator" label="创建人"></el-table-column>
<el-table-column align="center" prop="gmtCreated" label="创建时间" :formatter="dateFormat"></el-table-column>
<el-table-column align="center" prop="gmtModified" label="更新时间" :formatter="dateFormat"></el-table-column>
<el-table-column :show-overflow-tooltip="true" 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>
</template>
<script>
import BlockHeader from "@/components/byh/componments/blockHeader";
import * as moment from "moment";
export default {
name: 'RiskInfo',
components: {
BlockHeader
},
props: {
title: {
type: String,
required: false,
},
params: {
type: Object,
required: true
},
},
data() {
return {
tableStatus: [
{text: '成功', value: "SUCCESS"},
{text: '审核中', value: "SUBMITED"},
{text: '失败', value: "FAIL"}
],
form: {
total: 1,
current: 1,
size: 10,
// result:''
},
updateQueDialog: {
visible: false,
feedNo: '',
feedType: '',
feedStatus: '',
feedContent: '',
clientNo: '',
creater: '',
finishContent: '',
},
data: [],
backValue:null
}
},
async created() {
if(this.params){
const params = this.params;
// console.log(params,'params');
this.form.loanNo = params.loanNo;
this.form.clientNo = params.clientNo;
await this.init()
}
},
methods: {
headerStyle() {
return "tableHeaderStyle";
},
async init() {
const parB={
loanNo: this.form.loanNo,
current: this.form.current,
size: this.form.size,
total: this.form.total,
clientNo:this.form.clientNo
}
const res = await this.$$post('/refund/selectRefund',parB);
const {success, result} = res.data;
// console.log(res.data,'返回的结果');
if (success && result !== null) {
this.data = result.records;
this.form.total = result.total;
}
},
// 合并日期
dateCompare: function (row, column) {
let date = row[column.property]
if (date === undefined) {
return ''
}
return moment(date).format("YYYY-MM-DD ") + row.backedTime
},
/*日期*/
dateFormat: function (row, column) {
let date = row[column.property]
if (date === undefined) {
return ''
}
return moment(date).format("YYYY-MM-DD HH:mm:ss")
},
/*日期*/
dateFormats: function (row, column) {
let date = row[column.property]
if (date === undefined) {
return ''
}
return moment(date).format("YYYY-MM-DD")
},
handleClose() {
this.$emit("handleClose");
},
//客服状态
serviceFormat: function (row, column) {
let status = row['feedStatus'];
return this.$enumUtils.toMsg('FeedStatus', status);
},
handleCurrentChange(e) {
this.form.current = e;
this.init();
},
handleSizeChange(e) {
this.form.size = e
this.form.current = 1;
this.init();
},
}
}
</script>
<style>
.tables{
margin-bottom: 20px;
}
.pages {
display: flex;
align-items: center;
justify-content: center;
}
</style>
import Vue from 'vue'
import Router from 'vue-router'
import {
ByhService,
Controlswitch,
ByhServiceDetail,
Login,
Index,
// Default,
BankCardMaintenance,
UserManagement,
LendBankCardList,
DutyBizGroupsListDialog,
CustomerDistribution,
DistributionBatchDialog,
ByhPlanRemindDetails,
ByhPlanRemindDetailNew,
ByhLoanBackedDetails,
ByhLoanSnapList,
ServiceProblem,
ClientManagerment, DerateCreate
ByhService,
Controlswitch,
ByhServiceDetail,
Login,
Index,
// Default,
BankCardMaintenance,
UserManagement,
LendBankCardList,
DutyBizGroupsListDialog,
CustomerDistribution,
DistributionBatchDialog,
ByhPlanRemindDetails,
ByhPlanRemindDetailNew,
ByhLoanBackedDetails,
ByhLoanSnapList,
ServiceProblem,
ClientManagerment,
DerateCreate,
CreateRefund
} from './routes'
Vue.use(Router)
export default new Router({
mode: 'hash',
// mode: 'history',
routes: [
{path: '/', redirect: '/login'},
{path: '/login', name: 'Login', meta: {title: '登录', filter: false}, component: Login},
{
path: '/index',
name: 'Index',
component: Index,
meta: {title: '首页'},
children: [
{
path: '/system/bankCardMaintenance',
name: 'BankCardMaintenance',
component: BankCardMaintenance,
meta: {title: '银行卡维护', filter: true}
},
{
path: '/system/UserManagement',
name: 'UserManagement',
component: UserManagement,
meta: {title: '用户管理', filter: true}
},
{
path: '/system/CustomerDistribution',
name: 'CustomerDistribution',
component: CustomerDistribution,
meta: {title: '批次分配', filter: true}
},
{
path: '/system/DistributionBatchDialog',
name: 'DistributionBatchDialog',
component: DistributionBatchDialog,
meta: {title: '分配批次', filter: true}
},
{
path: '/system/LendBankCardList',
name: 'LendBankCardList',
component: LendBankCardList,
meta: {title: '出借人管理', filter: true}
},
{
path: '/system/DutyBizGroupsListDialog',
name: 'DutyBizGroupsListDialog',
component: DutyBizGroupsListDialog,
meta: {title: '业务组列表', filter: true}
},
{
path: '/byh/ByhPlanRemindDetails',
name: 'ByhPlanRemindDetails',
component: ByhPlanRemindDetails,
meta: {title: '还款计划详情', filter: true}
},
{
path: '/byh/ByhPlanRemindDetailNew',
name: 'ByhPlanRemindDetailNew',
component: ByhPlanRemindDetailNew,
meta: {title: '还款详情', filter: true}
},
{
path: '/byh/ByhLoanBackedDetails',
name: 'ByhLoanBackedDetails',
component: ByhLoanBackedDetails,
meta: {title: '还款详情', filter: true}
},
{
path: '/byh/ByhService',
name: 'ByhService',
component: ByhService,
meta: {title: '客服管理', filter: true}
},
{
path: '/byh/Controlswitch',
name: 'Controlswitch',
component: Controlswitch,
meta: {title: '亲家管理', filter: true}
},
{
path: '/byh/ByhServiceDetail',
name: 'ByhServiceDetail',
component: ByhServiceDetail,
meta: {title: '客服详情', filter: true}
},
{
path: '/byh/ServiceProblem',
name: 'ServiceProblem',
component: ServiceProblem,
meta: {title: '意见反馈', filter: true}
},
mode: 'hash',
// mode: 'history',
routes: [
{ path: '/', redirect: '/login' },
{ path: '/login', name: 'Login', meta: { title: '登录', filter: false }, component: Login },
{
path: '/index',
name: 'Index',
component: Index,
meta: { title: '首页' },
children: [{
path: '/system/bankCardMaintenance',
name: 'BankCardMaintenance',
component: BankCardMaintenance,
meta: { title: '银行卡维护', filter: true }
},
{
path: '/system/UserManagement',
name: 'UserManagement',
component: UserManagement,
meta: { title: '用户管理', filter: true }
},
{
path: '/system/CustomerDistribution',
name: 'CustomerDistribution',
component: CustomerDistribution,
meta: { title: '批次分配', filter: true }
},
{
path: '/system/DistributionBatchDialog',
name: 'DistributionBatchDialog',
component: DistributionBatchDialog,
meta: { title: '分配批次', filter: true }
},
{
path: '/system/LendBankCardList',
name: 'LendBankCardList',
component: LendBankCardList,
meta: { title: '出借人管理', filter: true }
},
{
path: '/system/DutyBizGroupsListDialog',
name: 'DutyBizGroupsListDialog',
component: DutyBizGroupsListDialog,
meta: { title: '业务组列表', filter: true }
},
{
path: '/byh/ByhPlanRemindDetails',
name: 'ByhPlanRemindDetails',
component: ByhPlanRemindDetails,
meta: { title: '还款计划详情', filter: true }
},
{
path: '/byh/ByhPlanRemindDetailNew',
name: 'ByhPlanRemindDetailNew',
component: ByhPlanRemindDetailNew,
meta: { title: '还款详情', filter: true }
},
{
path: '/byh/ByhLoanBackedDetails',
name: 'ByhLoanBackedDetails',
component: ByhLoanBackedDetails,
meta: { title: '还款详情', filter: true }
},
{
path: '/byh/ByhService',
name: 'ByhService',
component: ByhService,
meta: { title: '客服管理', filter: true }
},
{
path: '/byh/Controlswitch',
name: 'Controlswitch',
component: Controlswitch,
meta: { title: '亲家管理', filter: true }
},
{
path: '/byh/ByhServiceDetail',
name: 'ByhServiceDetail',
component: ByhServiceDetail,
meta: { title: '客服详情', filter: true }
},
{
path: '/byh/ServiceProblem',
name: 'ServiceProblem',
component: ServiceProblem,
meta: { title: '意见反馈', filter: true }
},
{
path: '/byh/ByhLoanSnapList',
name: 'ByhLoanSnapList',
component: ByhLoanSnapList,
meta: {
title: '临时放款列表',
filter: true
}
},
{
path: '/byh/ClientManagerment',
name: 'ClientManagerment',
component: ClientManagerment,
meta: {
title: '客户管理',
filter: true
}
},
{
path: '/byh/ByhLoanSnapList',
name: 'ByhLoanSnapList',
component: ByhLoanSnapList,
meta: {
title: '临时放款列表',
filter: true
}
},
{
path: '/byh/ClientManagerment',
name: 'ClientManagerment',
component: ClientManagerment,
meta: {
title: '客户管理',
filter: true
}
},
{
path: '/byh/DerateCreate',
name: 'DerateCreate',
component: DerateCreate,
meta: {title: '减免单管理', filter: true}
},
{
path: '/byh/RiskLevelList',
name: 'RiskLevelList',
component: resolve => require(['../components/byh/RiskLevelList.vue'], resolve),
meta: {title: '风险客户', filter: true}
},
]
}
]
})
{
path: '/byh/DerateCreate',
name: 'DerateCreate',
component: DerateCreate,
meta: { title: '减免单管理', filter: true }
},
{
path: '/byh/RiskLevelList',
name: 'RiskLevelList',
component: resolve => require(['../components/byh/RiskLevelList.vue'], resolve),
meta: { title: '风险客户', filter: true }
},
{
path: '/byh/CreateRefund',
name: 'CreateRefund',
component: resolve => require(['../components/byh/CreateRefund.vue'], resolve),
meta: { title: '创建退款单', filter: true }
},
]
}
]
})
\ No newline at end of file
......@@ -27,6 +27,8 @@ export const ByhLoanBackedDetails = resolve => require(['../components/byh/ByhLo
export const ByhLoanSnapList = resolve => require(['../components/byh/ByhLoanSnapList.vue'], resolve)
export const Controlswitch = resolve => require(['../components/byh/Controlswitch.vue'], resolve)
export const DerateCreate = resolve => require(['../components/byh/DerateCreate.vue'], resolve)
//创建退款单
export const CreateRefund = resolve => require(['../components/byh/CreateRefund.vue'], resolve)
export default {
Login,// 登录
......@@ -52,5 +54,7 @@ export default {
//客户管理
ClientManagerment,
Controlswitch,
DerateCreate
DerateCreate,
// 创建退款单
CreateRefund
}
......@@ -8,15 +8,15 @@ import Cookies from 'js-cookie'
/** 测试环境 */
axios.defaults.baseURL = process.env.VUE_APP_API;
/* 所有ajax请求拦截 */
axios.interceptors.request.use(function (req) {
axios.interceptors.request.use(function(req) {
const token = Cookies.get('x-auth-token')
if (token) {
req.headers['X-Auth-Token'] = token
// req.headers['token'] = localStorage.getItem("token_xxx")
// req.headers['token'] = localStorage.getItem("token_xxx")
}
// 在发送请求之前做些什么
return req
}, function (error) {
}, function(error) {
// 对请求错误做些什么
return Promise.reject(error)
})
......@@ -138,4 +138,4 @@ const Ajax = {
}
}
export default Ajax
export default Ajax
\ No newline at end of file
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