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

需求

parent 06527d13
NODE_ENV=production NODE_ENV=production
VUE_APP_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 @@ ...@@ -30,7 +30,7 @@
- 访问域名:https://customer.dingrongxd.com/ - 访问域名:https://customer.dingrongxd.com/
- API接口地址:https://drwater.dingrongxd.com - API接口地址:https://drwater.dingrongxd.com
**测试部署** **测试部署(放到金钱下面)**
- bucket:customer-vue-test - bucket:customer-vue-test
- 访问域名:http://customertest.jqtianxia.cn/ - 访问域名:http://customertest.jqtianxia.cn/
- API接口地址:http://47.99.245.36:8202 - API接口地址:http://47.99.245.36:8202
......
This diff is collapsed.
...@@ -313,8 +313,6 @@ export default { ...@@ -313,8 +313,6 @@ export default {
if (this.searchInfo.productName != '') { if (this.searchInfo.productName != '') {
return_hash['productName'] = this.searchInfo.productName return_hash['productName'] = this.searchInfo.productName
} }
return return_hash; return return_hash;
}, },
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
<el-tab-pane name="FeedList" label="反馈记录"></el-tab-pane> <el-tab-pane name="FeedList" label="反馈记录"></el-tab-pane>
<el-tab-pane name="UrgeList" 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="OperateLog" label="操作日志"></el-tab-pane>
<el-tab-pane name="Messages" label="短信信息"></el-tab-pane>
</el-tabs> </el-tabs>
<div class="box-right"> <div class="box-right">
...@@ -65,6 +66,7 @@ import OperateLog from "./componments/OperateLog"; ...@@ -65,6 +66,7 @@ import OperateLog from "./componments/OperateLog";
import AddQuestion from "./componments/AddQuestion"; import AddQuestion from "./componments/AddQuestion";
import updateQueDialog from "./componments/UpdateQueDialog"; import updateQueDialog from "./componments/UpdateQueDialog";
import Messages from "./componments/Messages";
export default { export default {
...@@ -76,7 +78,7 @@ export default { ...@@ -76,7 +78,7 @@ export default {
FeedList, FeedList,
UrgeList, UrgeList,
OperateLog, OperateLog,
Messages,
AddQuestion, AddQuestion,
updateQueDialog updateQueDialog
}, },
...@@ -89,7 +91,6 @@ export default { ...@@ -89,7 +91,6 @@ export default {
firstLoanNo: '', firstLoanNo: '',
loan: {}, loan: {},
query: {}, query: {},
basicInfo: {}, basicInfo: {},
clientNos: "", clientNos: "",
clientProducts: "", 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 { ...@@ -83,6 +83,10 @@ export default {
data() { data() {
return { return {
options: [ options: [
{
value: 'R0',
label: 'R0'
},
{ {
value: 'R1', value: 'R1',
label: 'R1' label: 'R1'
......
...@@ -77,8 +77,9 @@ ...@@ -77,8 +77,9 @@
<el-table-column align="center" prop="clientCell" label="手机号"></el-table-column> <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="gmtCreated" label="反馈时间" :formatter="dateFormat"></el-table-column>
<el-table-column align="center" prop="feedType" label="反馈类型"></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="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" prop="feedStatus" label="解决状态"></el-table-column>
<el-table-column align="center" label="操作"> <el-table-column align="center" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -175,8 +176,10 @@ export default { ...@@ -175,8 +176,10 @@ export default {
this.$message.error(res.data.message); this.$message.error(res.data.message);
return return
} }
// console.log(res.data.result);
listsData = res.data.result.records; listsData = res.data.result.records;
this.tablePlanRemindData = listsData; this.tablePlanRemindData = listsData;
// console.log(this.tablePlanRemindData);
this.page.total = res.data.result.total; this.page.total = res.data.result.total;
}).catch(error => { }).catch(error => {
......
...@@ -101,6 +101,7 @@ export default { ...@@ -101,6 +101,7 @@ export default {
feedContent: '', feedContent: '',
clientNo: '', clientNo: '',
creater: '', creater: '',
loanNo:'',
productName: '', productName: '',
feedVoucher: [] feedVoucher: []
}, },
...@@ -158,7 +159,8 @@ export default { ...@@ -158,7 +159,8 @@ export default {
} }
}, },
created() { 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 = []; const list = [];
feedVoucher.forEach(item=>{ feedVoucher.forEach(item=>{
const o = {}; const o = {};
...@@ -168,7 +170,7 @@ export default { ...@@ -168,7 +170,7 @@ export default {
}); });
this.fileList = list; this.fileList = list;
console.log(this.params,'内容'); // console.log(this.params,'内容');
this.ruleForm = { this.ruleForm = {
feedNo, feedNo,
...@@ -176,6 +178,7 @@ export default { ...@@ -176,6 +178,7 @@ export default {
feedStatus, feedStatus,
feedContent, feedContent,
feedVoucher, feedVoucher,
loanNo,
clientNo, clientNo,
productName: feedProduct, productName: feedProduct,
creater: localStorage.getItem("userName"), creater: localStorage.getItem("userName"),
...@@ -249,6 +252,7 @@ export default { ...@@ -249,6 +252,7 @@ export default {
feedType: this.ruleForm.feedType, feedType: this.ruleForm.feedType,
feedSource: 'CUSTOMER', feedSource: 'CUSTOMER',
feedStatus: this.ruleForm.feedStatus, feedStatus: this.ruleForm.feedStatus,
loanNo: this.ruleForm.loanNo,
feedContent: this.ruleForm.feedContent, feedContent: this.ruleForm.feedContent,
clientNo: this.ruleForm.clientNo, clientNo: this.ruleForm.clientNo,
productName: this.ruleForm.productName, productName: this.ruleForm.productName,
...@@ -276,6 +280,7 @@ export default { ...@@ -276,6 +280,7 @@ export default {
feedStatus: this.ruleForm.feedStatus, feedStatus: this.ruleForm.feedStatus,
feedContent: this.ruleForm.feedContent, feedContent: this.ruleForm.feedContent,
clientNo: this.ruleForm.clientNo, clientNo: this.ruleForm.clientNo,
loanNo: this.ruleForm.loanNo,
productName: this.ruleForm.productName, productName: this.ruleForm.productName,
feedVoucher: feedVoucher feedVoucher: feedVoucher
}) })
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<div style="margin-left:50px"> <div style="margin-left:50px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <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>
<el-col :span="8"> <el-col :span="8">
<div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div> <div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
</el-form-item> </el-form-item>
<el-form-item label="减免金额" prop="derateAmt"> <el-form-item label="减免金额" prop="derateAmt">
<el-col :span="20"> <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-col>
</el-form-item> </el-form-item>
<el-form-item label="还款凭证" prop="attach"> <el-form-item label="还款凭证" prop="attach">
...@@ -109,7 +109,6 @@ ...@@ -109,7 +109,6 @@
<script> <script>
import * as moment from "moment"; import * as moment from "moment";
export default { export default {
name: "advanceLoanAmt", name: "advanceLoanAmt",
props: { props: {
...@@ -152,6 +151,7 @@ export default { ...@@ -152,6 +151,7 @@ export default {
attach: '', attach: '',
bankAccount: '', bankAccount: '',
bankOwner: '', bankOwner: '',
raiseAmt:''
}, },
rules: { rules: {
bankAccount: [{required: true, message: '请输入还款银行账号', trigger: 'blur'}], bankAccount: [{required: true, message: '请输入还款银行账号', trigger: 'blur'}],
......
...@@ -74,7 +74,6 @@ export default { ...@@ -74,7 +74,6 @@ export default {
}, },
async created() { async created() {
if(this.params){ if(this.params){
console.log(this.params,'哈哈');
const {applyVo} = this.params; const {applyVo} = this.params;
this.loanModel = applyVo; this.loanModel = applyVo;
this.productNameFormat(this.loanModel.productName); this.productNameFormat(this.loanModel.productName);
......
This diff is collapsed.
This diff is collapsed.
<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 @@ ...@@ -14,8 +14,9 @@
stripe stripe
style="width: 100%;"> style="width: 100%;">
<el-table-column prop="feedNo" width="180" align="center" label="客服反馈编号"></el-table-column> <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="feedProductStr" align="center" label="产品名称"></el-table-column>
<el-table-column prop="clientCell" 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="feedType" align="center" label="反馈类型"></el-table-column>
<el-table-column prop="feedContent" 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="相关凭证"> <el-table-column prop="feedVoucher" width="180" align="center" label="相关凭证">
...@@ -121,10 +122,11 @@ export default { ...@@ -121,10 +122,11 @@ export default {
}, },
async created() { async created() {
const params = this.params; const params = this.params;
console.log(this.params,'909090');
this.dialogTitle = '意见反馈' this.dialogTitle = '意见反馈'
this.form.clientCell = params.phoneNo; this.form.clientCell = params.phoneNo;
this.form.loanNo = params.loanNo;
this.form.feedProduct = params.clientProductName; this.form.feedProduct = params.clientProductName;
this.form.feedSource = 'CUSTOMER'; this.form.feedSource = 'CUSTOMER';
this.form.sort = 'id desc'; this.form.sort = 'id desc';
...@@ -140,13 +142,14 @@ export default { ...@@ -140,13 +142,14 @@ export default {
handleTabClick() { handleTabClick() {
this.dialogTitle = '意见反馈'; this.dialogTitle = '意见反馈';
this.visible = true; this.visible = true;
const {clientProductName,clientNo} = this.params; const {clientProductName,clientNo,loanNo} = this.params;
this.dialogParams = { this.dialogParams = {
feedType:'', feedType:'',
feedStatus:'', feedStatus:'',
feedContent:'', feedContent:'',
feedVoucher:[], feedVoucher:[],
clientNo, clientNo,
loanNo,
feedProduct: clientProductName 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 @@ ...@@ -2,35 +2,86 @@
<!-- 修改内容 --> <!-- 修改内容 -->
<el-drawer <el-drawer
:title="title" :title="title"
size="70%" size="80%"
:wrapperClosable="false" :wrapperClosable="false"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
direction="rtl" direction="rtl"
:before-close="handleClose" :before-close="handleClose"
> >
<div class="page"> <div class="page">
<div class="loan-detail"> <div class="loan-detail">
<el-collapse v-model="activeNames" @change="handleChange"> <el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="申请信息" name="1"> <el-collapse-item title="申请信息" name="1">
<ApplyInfo :params="items"></ApplyInfo> <!-- <ApplyInfo :params="applyInfo"></ApplyInfo> -->
</el-collapse-item> <div class="page-com">
<el-collapse-item title="借款合同" name="2"> <!-- <block-header :title="title"></block-header> -->
<ContractList :params="items" <table class="table">
v-if="$permissionUtils.rolePermission('customBoss')" <tr>
></ContractList> <td>申请日期:</td>
</el-collapse-item> <td>{{ loanModel.gmtCreated | dateFilter }}</td>
<el-collapse-item title="账单详情" name="3"> <td>放款日期:</td>
<BillList :params="items"></BillList> <td>{{ loanModel.raiseDate | dateFilter }}</td>
</el-collapse-item> <td>项目名称:</td>
<el-collapse-item title="还款情况" name="4"> <td>{{ loanModel.productNameStr }}</td>
<RePayList :params="items"></RePayList> <!-- <el-table-column align="center" prop="productName" label="产品名称" :formatter="productNameFormat"></el-table-column> -->
</el-collapse-item> </tr>
<el-collapse-item title="减免记录" name="5"> <tr>
<ReliefList :params="items"></ReliefList> <td>总应还金额:</td>
</el-collapse-item> <td>{{ loanModel.loanAmt }}</td>
</el-collapse> <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>
</div>
</el-drawer> </el-drawer>
</template> </template>
...@@ -41,6 +92,7 @@ import ContractList from "./ContractList"; ...@@ -41,6 +92,7 @@ import ContractList from "./ContractList";
import RePayList from "./RePayList"; import RePayList from "./RePayList";
import BillList from "./BillList"; import BillList from "./BillList";
import ReliefList from "./ReliefList"; import ReliefList from "./ReliefList";
import ServiceRefund from "./ServiceRefund";
import * as moment from "moment"; import * as moment from "moment";
export default { export default {
...@@ -52,15 +104,16 @@ export default { ...@@ -52,15 +104,16 @@ export default {
RePayList, RePayList,
BillList, BillList,
ReliefList, ReliefList,
ServiceRefund
}, },
props: { props: {
dialogVisible: { dialogVisible: {
type: Boolean, type: Boolean,
required: true, required: true,
}, },
title:{ title: {
type:String, type: String,
required:true, required: true,
}, },
params: { params: {
type: Object, type: Object,
...@@ -72,19 +125,30 @@ export default { ...@@ -72,19 +125,30 @@ export default {
visible: false, visible: false,
active: "", active: "",
items: {}, items: {},
loanModel: {},
applyInfo: {},
loan: {}, 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() { async created() {
if (this.params) { if (this.params) {
// console.log(this.params,'自营');
const { loanNo } = this.params; const { loanNo } = this.params;
this.items = this.params; this.applyInfo = this.params;
console.log(this.items,'111');
await this.initLoanInfo(loanNo); await this.initLoanInfo(loanNo);
} }
}, },
methods: { methods: {
headerStyle() { headerStyle() {
return "tableHeaderStyle"; return "tableHeaderStyle";
...@@ -93,13 +157,10 @@ export default { ...@@ -93,13 +157,10 @@ export default {
async initLoanInfo(loanNo) { async initLoanInfo(loanNo) {
const res = await this.$$get("/detail/customer/" + loanNo); const res = await this.$$get("/detail/customer/" + loanNo);
const { success, result } = res.data; const { success, result } = res.data;
console.log(res.data,'222'); console.log(result, "222");
if (success && result != null) { if (success && result != null) {
this.loan = result; this.loan = result;
this.handleChange({ this.loanModel = result.applyVo;
name: "ApplyInfo",
label: "申请信息",
});
} }
}, },
/*日期*/ /*日期*/
...@@ -113,8 +174,8 @@ export default { ...@@ -113,8 +174,8 @@ export default {
}, },
// 切换选项卡 // 切换选项卡
handleChange(val) { handleChange(val) {
console.log(val,'333'); console.log(val);
this.items = { this.applyInfo = {
...this.loan, ...this.loan,
...this.params, ...this.params,
}; };
...@@ -140,7 +201,7 @@ export default { ...@@ -140,7 +201,7 @@ export default {
position: relative; position: relative;
.el-collapse-item { .el-collapse-item {
width:100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding-left: 20px; padding-left: 20px;
} }
......
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
<el-table-column align="center" prop="gmtCreated" label="申请日期" :formatter="dateFormats"></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="startDate" label="放款日期" :formatter="dateFormats"></el-table-column>
<el-table-column align="center" prop="raiseAmt" label="放款本金"></el-table-column> <el-table-column align="center" prop="raiseAmt" label="放款本金"></el-table-column>
<el-table-column align="center" prop="capitalCode" label="放款资方" <el-table-column align="center" prop="capitalCodeStr" label="放款资方"
:formatter="capitalCodeFormat"></el-table-column> ></el-table-column>
<el-table-column align="center" prop="status" label="借款单状态"> <el-table-column align="center" prop="status" label="借款单状态">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag type="success" v-if="scope.row.status==='AUDITED'" size="small">{{ loanStatusFormat(scope.row) }} <el-tag type="success" v-if="scope.row.status==='AUDITED'" size="small">{{ loanStatusFormat(scope.row) }}
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<el-tag type="warning" v-else-if="scope.row.status==='SUBMITED'" size="small"> <el-tag type="warning" v-else-if="scope.row.status==='SUBMITED'" size="small">
{{ loanStatusFormat(scope.row) }} {{ loanStatusFormat(scope.row) }}
</el-tag> </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) }} {{ loanStatusFormat(scope.row) }}
</el-tag> </el-tag>
<el-tag type="info" v-else 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 { ...@@ -100,7 +100,7 @@ export default {
} }
}, },
async created() { async created() {
console.log(this.params, 999); // console.log(this.params, 999);
const {clientNo, clientProductName} = this.params; const {clientNo, clientProductName} = this.params;
const res = await this.$$post('/loan/getLoanListByClientNo/', {productName: clientProductName, clientNo: clientNo}); const res = await this.$$post('/loan/getLoanListByClientNo/', {productName: clientProductName, clientNo: clientNo});
const {success, result} = res.data; const {success, result} = res.data;
...@@ -124,12 +124,12 @@ export default { ...@@ -124,12 +124,12 @@ export default {
return this.$enumUtils.toMsg('LoanStatuEnums', status); return this.$enumUtils.toMsg('LoanStatuEnums', status);
}, },
capitalCodeFormat: function (row, column) { capitalCodeFormat: function (row, column) {
let capitalCode = row['capitalCode']; let capitalCodeStr = row['capitalCodeStr'];
return this.$enumUtils.toMsg('CapitalEnums', capitalCode); return this.$enumUtils.toMsg('CapitalEnums', capitalCodeStr);
}, },
// 切换选项卡 // 切换选项卡
handleClick(row) { handleClick(row) {
console.log(row, '一行信息'); // console.log(row, '一行信息');
this.visible = true; this.visible = true;
this.title = '借款详情'; this.title = '借款详情';
this.items = { 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 @@ ...@@ -3,7 +3,7 @@
:append-to-body="true" :append-to-body="true"
class="client-data-dialog" class="client-data-dialog"
title="创建转账还款单" title="创建转账还款单"
width="40%" width="60%"
:visible.sync="visible" :visible.sync="visible"
:before-close="handleClose"> :before-close="handleClose">
......
...@@ -65,7 +65,9 @@ export default { ...@@ -65,7 +65,9 @@ export default {
}, },
async created() { async created() {
const params = this.params; const params = this.params;
// console.log(params,'params');
this.form.clientNo = params.clientNo; this.form.clientNo = params.clientNo;
this.form.productName = params.clientProductName;
await this.init() await this.init()
}, },
methods: { methods: {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div style="margin-left:50px"> <div style="margin-left:50px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <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>
<el-col :span="8"> <el-col :span="8">
<div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div> <div class="grid-content bg-purple">起息日:{{ this.ruleForm.startDate | dateFilter }}</div>
...@@ -126,6 +126,7 @@ export default { ...@@ -126,6 +126,7 @@ export default {
attach: '', attach: '',
bankAccount: '', bankAccount: '',
bankOwner: '', bankOwner: '',
raiseAmt:'',
}, },
bizTypeStr: '', bizTypeStr: '',
rules: { rules: {
...@@ -157,6 +158,8 @@ export default { ...@@ -157,6 +158,8 @@ export default {
loanNo: this.loanNo, loanNo: this.loanNo,
bizType: this.bizType, bizType: this.bizType,
clientNo: this.clientNo, clientNo: this.clientNo,
periodNo:this.periodNo,
}; };
this.bizTypeStr = this.bizType; this.bizTypeStr = this.bizType;
...@@ -167,6 +170,7 @@ export default { ...@@ -167,6 +170,7 @@ export default {
this.handleClose(); this.handleClose();
} else { } else {
this.ruleForm = res.data.result; this.ruleForm = res.data.result;
console.log(this.ruleForm,'哈哈哈');
} }
}).catch(error => { }).catch(error => {
...@@ -220,7 +224,9 @@ export default { ...@@ -220,7 +224,9 @@ export default {
backAmt: this.ruleForm.settleAmt, backAmt: this.ruleForm.settleAmt,
creator: localStorage.getItem("userName"), creator: localStorage.getItem("userName"),
bankAccount: this.ruleForm.bankAccount, bankAccount: this.ruleForm.bankAccount,
periodNo:this.ruleForm.periodNo,
rePayType: 'BYALL', rePayType: 'BYALL',
restingOrderEnum:'NO'
}; };
}, },
......
...@@ -25,12 +25,24 @@ ...@@ -25,12 +25,24 @@
<el-input v-model="ruleForm.remainAmt" placeholder="请输入转账金额" disabled></el-input> <el-input v-model="ruleForm.remainAmt" placeholder="请输入转账金额" disabled></el-input>
</el-form-item> </el-form-item>
<el-form-item label="选择银行卡" prop="bankAccount"> <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 <el-option
v-for="item in this.cardList" v-for="item in this.cardList"
:key="item.value" :key="item.value"
@click.native="changeCard(item)"
:label="item.label" :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-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -67,6 +79,9 @@ export default { ...@@ -67,6 +79,9 @@ export default {
planAmt: { planAmt: {
type: Number type: Number
}, },
loanSign:{
type:String
}
}, },
data() { data() {
...@@ -75,7 +90,6 @@ export default { ...@@ -75,7 +90,6 @@ export default {
submitLoading: false submitLoading: false
}, },
visible: this.$props.dialogVisible, visible: this.$props.dialogVisible,
ruleForm: { ruleForm: {
periodNo: '', periodNo: '',
orderNo: '', orderNo: '',
...@@ -89,16 +103,20 @@ export default { ...@@ -89,16 +103,20 @@ export default {
attach: '', attach: '',
planNo: '', planNo: '',
bankAccount: '', bankAccount: '',
paymentChannel:'',
bankOwner: '', bankOwner: '',
backedAmt: '', backedAmt: '',
memo: '', memo: '',
loanSign:"",
}, },
rules: { rules: {
bankAccount: [{required: true, message: '支付银行卡不能为空', trigger: 'blur'}], bankAccount: [{required: true, message: '支付银行卡不能为空', trigger: 'blur'}],
// paymentChannel: [{required: true, message: '支付渠道不能为空', trigger: 'blur'}],
backAmt: [{required: true, message: "扣款金额不能为空", trigger: 'blur'}], backAmt: [{required: true, message: "扣款金额不能为空", trigger: 'blur'}],
}, },
loginName: '', loginName: '',
cardList: [], cardList: [],
channelList:[]
} }
}, },
...@@ -111,12 +129,14 @@ export default { ...@@ -111,12 +129,14 @@ export default {
periodNo: this.periodNo, periodNo: this.periodNo,
remainAmt: this.remainAmt, remainAmt: this.remainAmt,
planAmt: this.planAmt, planAmt: this.planAmt,
loanSign:this.loanSign
}; };
// console.log(this.$props,'hhhhhhhhhhh');
//获取银行卡列表 //获取银行卡列表
this.$$post(`/back/bankCardList`, { this.$$post(`/back/bankCardList`, {
...this.ruleForm ...this.ruleForm
}).then(res => { }).then(res => {
console.log(res,'银行卡');
this.cardList = res.data.result; this.cardList = res.data.result;
}).catch(error => { }).catch(error => {
this.$message.error(error || '网络异常,请稍后。。。'); this.$message.error(error || '网络异常,请稍后。。。');
...@@ -146,10 +166,15 @@ export default { ...@@ -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() { buildParam() {
return { return {
...@@ -158,8 +183,10 @@ export default { ...@@ -158,8 +183,10 @@ export default {
creator: localStorage.getItem("userName"), creator: localStorage.getItem("userName"),
bankAccount: this.ruleForm.bankAccount, bankAccount: this.ruleForm.bankAccount,
backAmt: this.ruleForm.remainAmt, backAmt: this.ruleForm.remainAmt,
periodNo:this.ruleForm.periodNo,
rePayType: 'BYONE', rePayType: 'BYONE',
periodNo: this.ruleForm.periodNo, restingOrderEnum:'NO',
payChannelApi:this.ruleForm.paymentChannel
}; };
}, },
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
> >
</el-table-column> </el-table-column>
<el-table-column align="center" prop="creator" label="创建人"></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> </el-table>
</div> </div>
<div class="pages"> <div class="pages">
...@@ -91,7 +91,7 @@ export default { ...@@ -91,7 +91,7 @@ export default {
async created() { async created() {
if(this.params){ if(this.params){
const params = this.params; const params = this.params;
console.log(params,'哈哈3') // console.log(params,'哈哈3')
this.form.bizNo = params.loanNo; this.form.bizNo = params.loanNo;
await this.init() await this.init()
} }
...@@ -112,8 +112,9 @@ export default { ...@@ -112,8 +112,9 @@ export default {
const res = await this.$$post('/back/detailPageList', parB ); const res = await this.$$post('/back/detailPageList', parB );
const {success, result} = res.data; const {success, result} = res.data;
if (success && result !== null) { if (success && result !== null) {
const {data, total} = result const {data, total} = result;
this.data = data; this.data = data;
// console.log(this.data[0].backedNo,'data');
this.form.total = total; this.form.total = total;
} }
}, },
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
> >
</el-table-column> </el-table-column>
<el-table-column align="center" prop="creator" label="创建人"></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> </el-table>
</div> </div>
<div class="pages"> <div class="pages">
...@@ -88,9 +88,9 @@ export default { ...@@ -88,9 +88,9 @@ export default {
} }
}, },
async created() { async created() {
// console.log(this.params,'哈哈3')
if(this.params){ if(this.params){
const params = this.params; const params = this.params;
console.log(params,'哈哈3')
this.form.bizNo = params.loanNo; this.form.bizNo = params.loanNo;
await this.init() 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 Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
import { import {
ByhService, ByhService,
Controlswitch, Controlswitch,
ByhServiceDetail, ByhServiceDetail,
Login, Login,
Index, Index,
// Default, // Default,
BankCardMaintenance, BankCardMaintenance,
UserManagement, UserManagement,
LendBankCardList, LendBankCardList,
DutyBizGroupsListDialog, DutyBizGroupsListDialog,
CustomerDistribution, CustomerDistribution,
DistributionBatchDialog, DistributionBatchDialog,
ByhPlanRemindDetails, ByhPlanRemindDetails,
ByhPlanRemindDetailNew, ByhPlanRemindDetailNew,
ByhLoanBackedDetails, ByhLoanBackedDetails,
ByhLoanSnapList, ByhLoanSnapList,
ServiceProblem, ServiceProblem,
ClientManagerment, DerateCreate ClientManagerment,
DerateCreate,
CreateRefund
} from './routes' } from './routes'
Vue.use(Router) Vue.use(Router)
export default new Router({ export default new Router({
mode: 'hash', mode: 'hash',
// mode: 'history', // mode: 'history',
routes: [ routes: [
{path: '/', redirect: '/login'}, { path: '/', redirect: '/login' },
{path: '/login', name: 'Login', meta: {title: '登录', filter: false}, component: Login}, { path: '/login', name: 'Login', meta: { title: '登录', filter: false }, component: Login },
{ {
path: '/index', path: '/index',
name: 'Index', name: 'Index',
component: Index, component: Index,
meta: {title: '首页'}, meta: { title: '首页' },
children: [ children: [{
{ path: '/system/bankCardMaintenance',
path: '/system/bankCardMaintenance', name: 'BankCardMaintenance',
name: 'BankCardMaintenance', component: BankCardMaintenance,
component: BankCardMaintenance, meta: { title: '银行卡维护', filter: true }
meta: {title: '银行卡维护', filter: true} },
}, {
{ path: '/system/UserManagement',
path: '/system/UserManagement', name: 'UserManagement',
name: 'UserManagement', component: UserManagement,
component: UserManagement, meta: { title: '用户管理', filter: true }
meta: {title: '用户管理', filter: true} },
}, {
{ path: '/system/CustomerDistribution',
path: '/system/CustomerDistribution', name: 'CustomerDistribution',
name: 'CustomerDistribution', component: CustomerDistribution,
component: CustomerDistribution, meta: { title: '批次分配', filter: true }
meta: {title: '批次分配', filter: true} },
}, {
{ path: '/system/DistributionBatchDialog',
path: '/system/DistributionBatchDialog', name: 'DistributionBatchDialog',
name: 'DistributionBatchDialog', component: DistributionBatchDialog,
component: DistributionBatchDialog, meta: { title: '分配批次', filter: true }
meta: {title: '分配批次', filter: true} },
}, {
{ path: '/system/LendBankCardList',
path: '/system/LendBankCardList', name: 'LendBankCardList',
name: 'LendBankCardList', component: LendBankCardList,
component: LendBankCardList, meta: { title: '出借人管理', filter: true }
meta: {title: '出借人管理', filter: true} },
}, {
{ path: '/system/DutyBizGroupsListDialog',
path: '/system/DutyBizGroupsListDialog', name: 'DutyBizGroupsListDialog',
name: 'DutyBizGroupsListDialog', component: DutyBizGroupsListDialog,
component: DutyBizGroupsListDialog, meta: { title: '业务组列表', filter: true }
meta: {title: '业务组列表', filter: true} },
}, {
{ path: '/byh/ByhPlanRemindDetails',
path: '/byh/ByhPlanRemindDetails', name: 'ByhPlanRemindDetails',
name: 'ByhPlanRemindDetails', component: ByhPlanRemindDetails,
component: ByhPlanRemindDetails, meta: { title: '还款计划详情', filter: true }
meta: {title: '还款计划详情', filter: true} },
}, {
{ path: '/byh/ByhPlanRemindDetailNew',
path: '/byh/ByhPlanRemindDetailNew', name: 'ByhPlanRemindDetailNew',
name: 'ByhPlanRemindDetailNew', component: ByhPlanRemindDetailNew,
component: ByhPlanRemindDetailNew, meta: { title: '还款详情', filter: true }
meta: {title: '还款详情', filter: true} },
}, {
{ path: '/byh/ByhLoanBackedDetails',
path: '/byh/ByhLoanBackedDetails', name: 'ByhLoanBackedDetails',
name: 'ByhLoanBackedDetails', component: ByhLoanBackedDetails,
component: ByhLoanBackedDetails, meta: { title: '还款详情', filter: true }
meta: {title: '还款详情', filter: true} },
}, {
{ path: '/byh/ByhService',
path: '/byh/ByhService', name: 'ByhService',
name: 'ByhService', component: ByhService,
component: ByhService, meta: { title: '客服管理', filter: true }
meta: {title: '客服管理', filter: true} },
}, {
{ path: '/byh/Controlswitch',
path: '/byh/Controlswitch', name: 'Controlswitch',
name: 'Controlswitch', component: Controlswitch,
component: Controlswitch, meta: { title: '亲家管理', filter: true }
meta: {title: '亲家管理', filter: true} },
}, {
{ path: '/byh/ByhServiceDetail',
path: '/byh/ByhServiceDetail', name: 'ByhServiceDetail',
name: 'ByhServiceDetail', component: ByhServiceDetail,
component: ByhServiceDetail, meta: { title: '客服详情', filter: true }
meta: {title: '客服详情', filter: true} },
}, {
{ path: '/byh/ServiceProblem',
path: '/byh/ServiceProblem', name: 'ServiceProblem',
name: 'ServiceProblem', component: ServiceProblem,
component: ServiceProblem, meta: { title: '意见反馈', filter: true }
meta: {title: '意见反馈', filter: true} },
},
{ {
path: '/byh/ByhLoanSnapList', path: '/byh/ByhLoanSnapList',
name: 'ByhLoanSnapList', name: 'ByhLoanSnapList',
component: ByhLoanSnapList, component: ByhLoanSnapList,
meta: { meta: {
title: '临时放款列表', title: '临时放款列表',
filter: true filter: true
} }
}, },
{ {
path: '/byh/ClientManagerment', path: '/byh/ClientManagerment',
name: 'ClientManagerment', name: 'ClientManagerment',
component: ClientManagerment, component: ClientManagerment,
meta: { meta: {
title: '客户管理', title: '客户管理',
filter: true filter: true
} }
}, },
{ {
path: '/byh/DerateCreate', path: '/byh/DerateCreate',
name: 'DerateCreate', name: 'DerateCreate',
component: DerateCreate, component: DerateCreate,
meta: {title: '减免单管理', filter: true} meta: { title: '减免单管理', filter: true }
}, },
{ {
path: '/byh/RiskLevelList', path: '/byh/RiskLevelList',
name: 'RiskLevelList', name: 'RiskLevelList',
component: resolve => require(['../components/byh/RiskLevelList.vue'], resolve), component: resolve => require(['../components/byh/RiskLevelList.vue'], resolve),
meta: {title: '风险客户', filter: true} 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 ...@@ -27,6 +27,8 @@ export const ByhLoanBackedDetails = resolve => require(['../components/byh/ByhLo
export const ByhLoanSnapList = resolve => require(['../components/byh/ByhLoanSnapList.vue'], resolve) export const ByhLoanSnapList = resolve => require(['../components/byh/ByhLoanSnapList.vue'], resolve)
export const Controlswitch = resolve => require(['../components/byh/Controlswitch.vue'], resolve) export const Controlswitch = resolve => require(['../components/byh/Controlswitch.vue'], resolve)
export const DerateCreate = resolve => require(['../components/byh/DerateCreate.vue'], resolve) export const DerateCreate = resolve => require(['../components/byh/DerateCreate.vue'], resolve)
//创建退款单
export const CreateRefund = resolve => require(['../components/byh/CreateRefund.vue'], resolve)
export default { export default {
Login,// 登录 Login,// 登录
...@@ -52,5 +54,7 @@ export default { ...@@ -52,5 +54,7 @@ export default {
//客户管理 //客户管理
ClientManagerment, ClientManagerment,
Controlswitch, Controlswitch,
DerateCreate DerateCreate,
// 创建退款单
CreateRefund
} }
...@@ -8,15 +8,15 @@ import Cookies from 'js-cookie' ...@@ -8,15 +8,15 @@ import Cookies from 'js-cookie'
/** 测试环境 */ /** 测试环境 */
axios.defaults.baseURL = process.env.VUE_APP_API; axios.defaults.baseURL = process.env.VUE_APP_API;
/* 所有ajax请求拦截 */ /* 所有ajax请求拦截 */
axios.interceptors.request.use(function (req) { axios.interceptors.request.use(function(req) {
const token = Cookies.get('x-auth-token') const token = Cookies.get('x-auth-token')
if (token) { if (token) {
req.headers['X-Auth-Token'] = token req.headers['X-Auth-Token'] = token
// req.headers['token'] = localStorage.getItem("token_xxx") // req.headers['token'] = localStorage.getItem("token_xxx")
} }
// 在发送请求之前做些什么 // 在发送请求之前做些什么
return req return req
}, function (error) { }, function(error) {
// 对请求错误做些什么 // 对请求错误做些什么
return Promise.reject(error) return Promise.reject(error)
}) })
...@@ -138,4 +138,4 @@ const Ajax = { ...@@ -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