<template>
|
<div class="ledgerCheck">
|
<el-dialog title="编辑-录入"
|
:visible.sync="editShow"
|
width="80%"
|
@close="closeMask">
|
<!-- 编辑蒙版下方数据表格 -->
|
<el-dialog width="30%"
|
title="删除确定"
|
:visible.sync="innerVisible"
|
append-to-body>
|
<p>是否删除该条数据?</p>
|
<span slot="footer">
|
<el-button size="small"
|
@click="innerVisible = false">取消</el-button>
|
<el-button size="small"
|
@click="oneDeleteOk">确定</el-button>
|
</span>
|
</el-dialog>
|
<!-- 编辑蒙版头部表单 -->
|
<el-form :model="editForm"
|
class="editForm"
|
label-width="36%"
|
v-show="!panelShow"
|
ref="editForm"
|
:rules="editRules">
|
<el-form-item label="接入机构"
|
prop="institutionId">
|
<span v-if="isEdit">{{enumerMap(editForm.institutionId,'institution')}}</span>
|
<el-select v-model="editForm.institutionId"
|
v-if="!isEdit"
|
placeholder="请选择">
|
<el-option v-for="item in institution"
|
:key="item.key"
|
:label="item.label"
|
:value="item.key"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="交易开始日期"
|
prop="beginDate">
|
<span v-if="isEdit">{{editForm.beginDate}}</span>
|
<el-date-picker v-model="editForm.beginDate"
|
type="date"
|
v-if="!isEdit"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="交易结束日期"
|
prop="endDate">
|
<span v-if="isEdit">{{editForm.endDate}}</span>
|
<el-date-picker v-model="editForm.endDate"
|
type="date"
|
v-if="!isEdit"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期">
|
</el-date-picker>
|
</el-form-item>
|
<!-- <el-form-item label="总账报送">
|
<span>{{enumerMap(editForm.sendStatus,'sendStatus')}}</span>
|
</el-form-item> -->
|
</el-form>
|
<!-- 编辑蒙版点击下一步时展示的蒙版框 -->
|
<ul class="detail_dialog_head"
|
v-show="panelShow">
|
<li>
|
<span>接入机构</span>
|
<span>{{enumerMap(addFormBack.institutionId,'institution')}}</span>
|
</li>
|
<li>
|
<span>交易开始日期</span>
|
<span>{{addFormBack.beginDate}}</span>
|
</li>
|
<li>
|
<span>交易结束日期</span>
|
<span>{{addFormBack.endDate}}</span>
|
</li>
|
</ul>
|
|
<div class="dialog_btn">
|
<h5>交易汇总详情</h5>
|
<el-button size="mini"
|
class="dialog_btn_btn"
|
@click="editAdd"
|
v-show="!panelShow">新增</el-button>
|
</div>
|
<!-- 还未点击下一步时的表格 -->
|
<el-form :model="editForm"
|
ref="editTableForm"
|
v-show="!panelShow">
|
<div class="formHead">
|
<span>资金通道</span>
|
<span>收付类型</span>
|
<span>财务收付款项</span>
|
<span>银行到账日期</span>
|
<span>报送状态</span>
|
<span>操作</span>
|
</div>
|
<el-form-item v-for="(it,index) in editForm.paymentDetails"
|
:key="index"
|
class="formItem">
|
<el-form-item class="item-cell">
|
<span v-if="it.sendStatus == '1'">{{it.payCompany + '/' + it.merId}}</span>
|
<el-select v-model="it.capitalChannel"
|
placeholder="请选择"
|
v-if="it.sendStatus != '1'"
|
@change="selectHandle(index,it)">
|
<el-option v-for="item in accessList"
|
:key="item"
|
:label="item"
|
:value="item"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item class="item-cell">
|
<span v-if="it.sendStatus == '1'">{{payTypeText(it)}}</span>
|
<el-select v-model="it.paymentType"
|
v-if="it.sendStatus != '1'"
|
placeholder="请选择">
|
<el-option v-for="item in it.incomeTypeList"
|
:key="item.paymentTypeId"
|
:label="item.paymentType"
|
:value="item.paymentTypeId"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item class="item-cell"
|
:prop="'paymentDetails.'+ index +'.paymentAmount'"
|
:rules="{validator: amt,trigger: 'blur'}">
|
<span v-if="it.sendStatus == '1'">{{it.paymentAmount}}</span>
|
<el-input v-if="it.sendStatus != '1'"
|
v-model="it.paymentAmount"></el-input>
|
</el-form-item>
|
<el-form-item class="item-cell"
|
:prop="'paymentDetails.'+ index +'.arriveDate'">
|
<span v-if="it.sendStatus == '1'">{{it.arriveDate}}</span>
|
<el-date-picker v-model="it.arriveDate"
|
type="date"
|
v-if="it.sendStatus != '1'"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item class="item-cell"
|
:prop="'paymentDetails.'+ index +'.sendStatus'">
|
<span>{{enumerMap(it.sendStatus,'sendStatus')}}</span>
|
</el-form-item>
|
<el-form-item class="item-cell">
|
<el-button size="mini"
|
type="danger"
|
v-if="it.sendStatus != '1'"
|
@click="editHandleDetele(index, it,editForm)">删除</el-button>
|
</el-form-item>
|
</el-form-item>
|
</el-form>
|
<!-- 点击下一步后的表格 -->
|
<el-table :data="addFormBack.paymentDetails"
|
border
|
style="width: 100%"
|
v-show="panelShow">
|
<el-table-column prop="capitalChannel"
|
label="资金通道"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.payCompany + '/' + scope.row.merId}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="paymentTypeId"
|
label="收付类型"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{enumerMap(scope.row.paymentType,'paymentType')}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="check"
|
label="财务收付款金额(元)"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.paymentAmount}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="check"
|
label="支付系统金额(元)"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.transAmount || '无'}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="check"
|
label="报送状态"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{enumerMap(scope.row.sendStatus,'sendStatus') || '未报送'}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="交易核对"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.capitalChannel === "线下转账放款" || scope.row.capitalChannel === "认领转账收款" ? "一致" : enumerMap(scope.row.checkResult,'ledgerCheck')}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作"
|
align="center">
|
<template slot-scope="scope">
|
<el-button size="mini"
|
:disabled="scope.$index === submitIndex"
|
@click="submit(scope.row,scope.$index)"
|
v-if="validateSubmit(scope.row.sendStatus,scope.row.checkResult)">报送提交</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<p v-if="panelShow && !editShowSubmit"
|
class="submitInfo">交易核对结果必须全部一致,否则只能保存不能提交!</p>
|
<span slot="footer">
|
<el-button @click="editShow = false"
|
size="mini">取消</el-button>
|
<el-button size="mini"
|
@click="editNext(editForm)">{{panelShow ?'上一步':'下一步'}}</el-button>
|
<el-button size="mini"
|
v-if="panelShow"
|
@click="savePaymentEdit">保存</el-button>
|
<el-button size="mini"
|
v-if="panelShow && editShowSubmit && !isSubmit"
|
@click="submit">提交</el-button>
|
</span>
|
</el-dialog>
|
<el-dialog title="详情"
|
:visible.sync="detailShow"
|
width="80%"
|
class="detail_dialog">
|
<ul class="detail_dialog_head">
|
<li>
|
<span>接入机构</span>
|
<span>{{enumerMap(detailForm.institutionId,'institution')}}</span>
|
</li>
|
<li>
|
<span>交易开始日期</span>
|
<span>{{detailForm.beginDate}}</span>
|
</li>
|
<li>
|
<span>交易结束日期</span>
|
<span>{{detailForm.endDate}}</span>
|
</li>
|
</ul>
|
<el-table :data="detailForm.paymentDetails"
|
border
|
style="width: 100%">
|
<el-table-column prop="capitalChannel"
|
label="资金通道"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.payCompany + '/' + scope.row.merId}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="paymentType"
|
label="收付类型"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{enumerMap(scope.row.paymentType,"paymentType")}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="paymentAmount"
|
label="财务收付款金额(元)"
|
align="center"></el-table-column>
|
<el-table-column prop="transAmount"
|
label="支付系统金额(元)"
|
align="center"></el-table-column>
|
<el-table-column prop="arriveDate"
|
label="银行到账日期"
|
align="center"></el-table-column>
|
<el-table-column prop="checkResult"
|
label="交易核对"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{enumerMap(scope.row.checkResult,"ledgerCheck")}}</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
<h5 style="margin-bottom: 0px;">备注:</h5>
|
<ul style="margin-top: 5px;">
|
<li>1.提交成功后数据将送到核心系统验证,通过后将把核心账务数据报送到总账系统。</li>
|
<li>2.交易核对不一致请检查对账差错订单。</li>
|
</ul>
|
<span slot="footer">
|
<el-button @click="detailShow = false"
|
size="mini">关闭</el-button>
|
</span>
|
</el-dialog>
|
<el-dialog title="删除记录"
|
:visible.sync="deleteShow"
|
width="50%"
|
class="detail_dialog">
|
<p class="deleteInfo">删除选中记录,确认?</p>
|
<span slot="footer">
|
<el-button @click="deleteShow = false"
|
size="mini">取消</el-button>
|
<el-button size="mini"
|
@click="deleteOk">确定</el-button>
|
</span>
|
</el-dialog>
|
<el-dialog title="新增"
|
:visible.sync="addShow"
|
width="80%"
|
class="detail_dialog"
|
@close="closeMask">
|
<!-- 新增蒙版头部表单 -->
|
<el-form :model="addForm"
|
class="editForm"
|
label-width="36%"
|
v-show="!panelShow"
|
ref="addForm"
|
:rules="addRules">
|
<el-form-item label="接入机构"
|
prop="institutionId">
|
<el-select v-model="addForm.institutionId"
|
placeholder="请选择">
|
<el-option v-for="item in institution"
|
:key="item.key"
|
:label="item.label"
|
:value="item.key"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="交易开始日期"
|
prop="beginDate">
|
<el-date-picker v-model="addForm.beginDate"
|
type="date"
|
placeholder="选择日期"
|
value-format="yyyy-MM-dd"
|
format="yyyy-MM-dd">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="交易结束日期"
|
prop="endDate">
|
<el-date-picker v-model="addForm.endDate"
|
type="date"
|
placeholder="选择日期"
|
value-format="yyyy-MM-dd"
|
format="yyyy-MM-dd">
|
</el-date-picker>
|
</el-form-item>
|
|
</el-form>
|
<!-- 新增蒙版点击下一步时展示的蒙版框 -->
|
<ul class="detail_dialog_head"
|
v-show="panelShow">
|
<li>
|
<span>接入机构</span>
|
<span>{{enumerMap(addFormBack.institutionId,'institution')}}</span>
|
</li>
|
<li>
|
<span>交易开始日期</span>
|
<span>{{addFormBack.beginDate}}</span>
|
</li>
|
<li>
|
<span>交易结束日期</span>
|
<span>{{addFormBack.endDate}}</span>
|
</li>
|
</ul>
|
<!-- 新增蒙版下方数据表格 -->
|
<div class="dialog_btn">
|
<h5>交易汇总详情</h5>
|
<el-button size="mini"
|
class="dialog_btn_btn"
|
@click="addAdd"
|
v-show="!panelShow">新增</el-button>
|
</div>
|
<!-- 还未点击下一步时的表格 -->
|
<el-form :model="addForm"
|
ref="addTableForm"
|
v-show="!panelShow">
|
<div class="formHead">
|
<span>资金通道</span>
|
<span>收付类型</span>
|
<span>财务收付款项</span>
|
<span>银行到账日期</span>
|
<span>操作</span>
|
</div>
|
<el-form-item v-for="(it,index) in addForm.paymentDetails"
|
:key="index"
|
class="formItem">
|
<el-form-item class="item-cell">
|
<el-select v-model="it.capitalChannel"
|
placeholder="请选择"
|
@change="selectHandle(index,it)">
|
<el-option v-for="item in accessList"
|
:key="item"
|
:label="item"
|
:value="item"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item class="item-cell">
|
<el-select v-model="it.paymentType"
|
placeholder="请选择">
|
<el-option v-for="item in it.incomeTypeList"
|
:key="item.paymentTypeId"
|
:label="item.paymentType"
|
:value="item.paymentTypeId"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item class="item-cell"
|
:prop="'paymentDetails.'+ index +'.paymentAmount'"
|
:rules="{validator: amt,trigger: 'blur'}">
|
<el-input v-model="it.paymentAmount"></el-input>
|
</el-form-item>
|
<el-form-item class="item-cell"
|
:prop="'paymentDetails.' + index + '.arriveDate'">
|
<el-date-picker v-model="it.arriveDate"
|
type="date"
|
placeholder="选择日期"
|
value-format="yyyy-MM-dd"
|
format="yyyy-MM-dd">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item class="item-cell">
|
<el-button size="mini"
|
type="danger"
|
@click="editHandleDetele(index, it,addForm)">删除</el-button>
|
</el-form-item>
|
</el-form-item>
|
|
</el-form>
|
<!-- 点击下一步后的表格 -->
|
<el-table :data="addFormBack.paymentDetails"
|
style="width: 100%"
|
border
|
v-show="panelShow">
|
<el-table-column prop="startDate"
|
label="资金通道"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.payCompany + '/' + scope.row.merId}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="endDate"
|
label="收付类型"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{enumerMap(scope.row.paymentType,'paymentType')}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="arriveDate"
|
label="银行到账日期"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{enumerMap(scope.row.paymentType,'paymentType')}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="check"
|
label="财务收付款金额(元)"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.paymentAmount}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="check"
|
label="支付系统金额(元)"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.transAmount || '无'}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="交易核对"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{scope.row.capitalChannel === "线下转账放款" || scope.row.capitalChannel === "认领转账收款" ? "一致" : enumerMap(scope.row.checkResult,'ledgerCheck')}}</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
<p v-if="panelShow && !showSubmit"
|
class="submitInfo">交易核对结果必须全部一致,否则只能保存不能提交!</p>
|
<span slot="footer">
|
<el-button @click="addShow = false;"
|
size="mini">取消</el-button>
|
<el-button size="mini"
|
@click="addNext(addForm)">{{panelShow ?'上一步':'下一步'}}</el-button>
|
<el-button size="mini"
|
v-if="panelShow"
|
@click="savePaymentAdd">保存</el-button>
|
<el-button size="mini"
|
v-if="panelShow && showSubmit"
|
@click="submit">提交</el-button>
|
</span>
|
</el-dialog>
|
<!-- 表格搜索 -->
|
<el-form :inline="true"
|
:model="FormValue"
|
class="searchForm form-inline"
|
ref="searchForm"
|
:rules="rules">
|
<el-form-item label="开始日期"
|
prop="beginDate">
|
<el-date-picker type="date"
|
placeholder="选择日期"
|
v-model="FormValue.beginDate"
|
style="width: 100%;"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"></el-date-picker>
|
</el-form-item>
|
<el-form-item label="结束日期"
|
prop="endDate">
|
<el-date-picker type="date"
|
placeholder="选择日期"
|
v-model="FormValue.endDate"
|
format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd"
|
style="width: 100%;"></el-date-picker>
|
</el-form-item>
|
<el-form-item>
|
<el-button @click="search" type="primary">查询</el-button>
|
</el-form-item>
|
</el-form>
|
<!-- 按钮区 -->
|
<div class="btn">
|
<el-button @click="handleAdd">新增</el-button>
|
</div>
|
<!-- 展示数据表格 -->
|
<el-table :data="tableData"
|
border
|
style="width: 100%">
|
<el-table-column prop="beginDate"
|
label="交易开始日期"
|
align="center">
|
</el-table-column>
|
<el-table-column prop="endDate"
|
label="交易结束日期"
|
align="center">
|
</el-table-column>
|
<el-table-column prop="sendStatus"
|
label="接入机构"
|
align="center">
|
<template slot-scope="scope">
|
<span>{{enumerMap(scope.row.institutionId,'institution')}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作"
|
align="center">
|
<template slot-scope="scope">
|
<el-button size="mini"
|
type="danger"
|
@click="handleDetele(scope.$index, scope.row)"
|
v-if="scope.row.sendStatus=='0'">删除</el-button>
|
<el-button size="mini"
|
@click="handleEdit(scope.$index, scope.row)">编辑</el-button>
|
<el-button size="mini"
|
@click="handleDetail(scope.$index, scope.row)">详情</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-pagination @current-change="handleChange"
|
:current-page="FormValue.page"
|
background
|
:page-size="FormValue.pageSize"
|
layout="total, prev, pager, next, jumper"
|
:total="totalSize"
|
style="margin-top: 10px;">
|
</el-pagination>
|
<!-- 编辑蒙版框 -->
|
|
</div>
|
</template>
|
|
<script>
|
import {
|
AssetsPayment,
|
CapitalChannel,
|
AssetsPaymentDetail,
|
PaymentType,
|
AssetsPaymentAdd,
|
AssetsPaymentEdit,
|
SavePayment,
|
SaveNewPayment,
|
DeletePayment,
|
LedgerDeliver
|
} from "@/assets/api/api";
|
|
import { Message } from "element-ui";
|
|
export default {
|
data() {
|
const checkBegin = (rule, value, callback) => {
|
if (!value) {
|
callback(new Error("开始时间不能为空"));
|
} else {
|
let start = Date.UTC(
|
value.split("-")[0],
|
value.split("-")[1],
|
value.split("-")[2]
|
);
|
if (this.addForm.endDate) {
|
let end = Date.UTC(
|
this.addForm.endDate.split("-")[0],
|
this.addForm.endDate.split("-")[1],
|
this.addForm.endDate.split("-")[2]
|
);
|
if (start > end) {
|
callback("开始时间不能大于结束时间");
|
} else {
|
callback();
|
}
|
} else {
|
callback();
|
}
|
}
|
};
|
const checkEnd = (rule, value, callback) => {
|
if (!value) {
|
callback(new Error("结束时间不能为空"));
|
} else {
|
let end = Date.UTC(
|
value.split("-")[0],
|
value.split("-")[1],
|
value.split("-")[2]
|
);
|
if (this.addForm.beginDate) {
|
let start = Date.UTC(
|
this.addForm.beginDate.split("-")[0],
|
this.addForm.beginDate.split("-")[1],
|
this.addForm.beginDate.split("-")[2]
|
);
|
if (start > end) {
|
callback(new Error("结束时间不能小于开始时间"));
|
} else {
|
callback();
|
}
|
} else {
|
this.addForm.endDate = null;
|
callback(new Error("请先输入开始时间"));
|
}
|
}
|
};
|
const editCheckBegin = (rule, value, callback) => {
|
if (!value) {
|
callback(new Error("开始时间不能为空"));
|
} else {
|
let start = Date.UTC(
|
value.split("-")[0],
|
value.split("-")[1],
|
value.split("-")[2]
|
);
|
if (this.editForm.endDate) {
|
let end = Date.UTC(
|
this.editForm.endDate.split("-")[0],
|
this.editForm.endDate.split("-")[1],
|
this.editForm.endDate.split("-")[2]
|
);
|
if (start > end) {
|
callback("开始时间不能大于结束时间");
|
} else {
|
callback();
|
}
|
} else {
|
callback();
|
}
|
}
|
};
|
const editCheckEnd = (rule, value, callback) => {
|
if (!value) {
|
callback(new Error("结束时间不能为空"));
|
} else {
|
let end = Date.UTC(
|
value.split("-")[0],
|
value.split("-")[1],
|
value.split("-")[2]
|
);
|
if (this.editForm.beginDate) {
|
let start = Date.UTC(
|
this.editForm.beginDate.split("-")[0],
|
this.editForm.beginDate.split("-")[1],
|
this.editForm.beginDate.split("-")[2]
|
);
|
if (start > end) {
|
callback(new Error("结束时间不能小于开始时间"));
|
} else {
|
callback();
|
}
|
} else {
|
this.editForm.endDate = null;
|
callback(new Error("请先输入开始时间"));
|
}
|
}
|
};
|
const formCheckBegin = (rule, value, callback) => {
|
if (!value) {
|
callback(new Error("开始时间不能为空"));
|
} else {
|
let start = Date.UTC(
|
value.split("-")[0],
|
value.split("-")[1],
|
value.split("-")[2]
|
);
|
if (this.FormValue.endDate) {
|
let end = Date.UTC(
|
this.FormValue.endDate.split("-")[0],
|
this.FormValue.endDate.split("-")[1],
|
this.FormValue.endDate.split("-")[2]
|
);
|
if (start > end) {
|
callback("开始时间不能大于结束时间");
|
} else {
|
callback();
|
}
|
} else {
|
callback();
|
}
|
}
|
};
|
const formCheckEnd = (rule, value, callback) => {
|
if (!value) {
|
callback(new Error("结束时间不能为空"));
|
} else {
|
let end = Date.UTC(
|
value.split("-")[0],
|
value.split("-")[1],
|
value.split("-")[2]
|
);
|
if (this.FormValue.beginDate) {
|
let start = Date.UTC(
|
this.FormValue.beginDate.split("-")[0],
|
this.FormValue.beginDate.split("-")[1],
|
this.FormValue.beginDate.split("-")[2]
|
);
|
if (start > end) {
|
callback(new Error("结束时间不能小于开始时间"));
|
} else {
|
callback();
|
}
|
} else {
|
this.FormValue.endDate = null;
|
callback(new Error("请先输入开始时间"));
|
}
|
}
|
};
|
return {
|
FormValue: {
|
beginDate: null,
|
endDate: null,
|
page: 1,
|
pageSize: 10
|
},
|
checkList: [
|
{ label: "未报送", key: "0" },
|
{ label: "已报送", key: "1" },
|
{ label: "报送失败", key: "2" }
|
],
|
tableData: [],
|
editShow: false,
|
editForm: {
|
paymentDetails: []
|
},
|
institution: [
|
{
|
key: "1",
|
label: "世联小贷"
|
}
|
],
|
panelShow: false,
|
detailShow: false,
|
deleteShow: false,
|
detailForm: {},
|
addShow: false,
|
addForm: {
|
paymentDetails: [],
|
institutionId: null,
|
beginDate: null,
|
endDate: null,
|
arriveDate: null
|
},
|
addFormBack: {},
|
accessList: [],
|
typeList: [],
|
rules: {
|
beginDate: [
|
{ type: "date", validator: formCheckBegin, trigger: "change" }
|
],
|
endDate: [{ type: "date", validator: formCheckEnd, trigger: "change" }],
|
institutionId: [
|
{ required: true, message: "机构不能为空", trigger: "blur,change" }
|
]
|
},
|
addRules: {
|
beginDate: [{ type: "date", validator: checkBegin, trigger: "change" }],
|
endDate: [{ type: "date", validator: checkEnd, trigger: "change" }],
|
institutionId: [
|
{ required: true, message: "机构不能为空", trigger: "blur,change" }
|
]
|
},
|
editRules: {
|
beginDate: [
|
{ type: "date", validator: editCheckBegin, trigger: "change" }
|
],
|
endDate: [{ type: "date", validator: editCheckEnd, trigger: "change" }],
|
institutionId: [
|
{ required: true, message: "机构不能为空", trigger: "blur,change" }
|
]
|
},
|
deleteForm: {},
|
showSubmit: true,
|
editShowSubmit: true,
|
totalSize: 0,
|
innerVisible: false,
|
oneForm: {},
|
submitIndex: null
|
};
|
},
|
created() {
|
this.getTableData();
|
},
|
computed: {
|
isEdit() {
|
let can = this.editForm.paymentDetails.some(item => {
|
return item.sendStatus == "1";
|
});
|
return can;
|
},
|
isSubmit() {
|
if (
|
this.addFormBack.paymentDetails &&
|
this.addFormBack.paymentDetails.length
|
) {
|
let can = this.addFormBack.paymentDetails.every(item => {
|
return item.sendStatus == "1";
|
});
|
return can;
|
}
|
}
|
},
|
methods: {
|
// 获取表格数据
|
async getTableData() {
|
// 初始化表格数据
|
let table = (await AssetsPayment(this.FormValue)).data;
|
// 初始化通道
|
let channel = (await CapitalChannel()).data;
|
// 初始收付款类型
|
let payType = (await PaymentType()).data;
|
if (table.retHeader.retCode && table.retHeader.retCode === "0000") {
|
this.tableData = table.retBody.paymentSums;
|
this.totalSize = table.retBody.totalSize;
|
} else {
|
this.tableData = [];
|
}
|
this.accessList = channel.retBody;
|
this.typeList = payType.retBody;
|
},
|
// 查询
|
search() {
|
this.getTableData();
|
},
|
// 新增
|
handleAdd() {
|
if (this.$refs["addForm"]) {
|
this.$refs["addForm"].clearValidate();
|
}
|
this.addForm = {
|
paymentDetails: [],
|
institutionId: null,
|
beginDate: null,
|
endDate: null
|
};
|
this.addShow = true;
|
},
|
// 编辑
|
async handleEdit(index, row) {
|
if (this.$refs.editForm) {
|
this.$refs["editForm"].clearValidate();
|
}
|
this.editForm = (await AssetsPaymentDetail(row)).data.retBody;
|
this.editForm.paymentDetails.forEach(item => {
|
item.incomeTypeList = this.filterType(item.capitalChannel);
|
item.capitalChannel = item.payCompany + '/' + item.merId
|
});
|
|
this.editShow = true;
|
},
|
// 详情
|
async handleDetail(index, row) {
|
let result = (await AssetsPaymentDetail(row)).data;
|
if (result.retHeader.retCode && result.retHeader.retCode === "0000") {
|
this.detailForm = result.retBody;
|
this.detailShow = true;
|
} else {
|
Message.error("详情未知错误!");
|
}
|
},
|
// 删除
|
handleDetele(index, row) {
|
this.deleteForm = row;
|
this.deleteShow = true;
|
},
|
// 文本翻译
|
payTypeText(it) {
|
let text = it.incomeTypeList.filter(item => {
|
return item.paymentTypeId === it.paymentType;
|
});
|
return text[0].paymentType;
|
},
|
|
// 删除确定
|
async deleteOk() {
|
let result = (await DeletePayment(this.deleteForm)).data;
|
if (result.retHeader.retCode && result.retHeader.retCode == "0000") {
|
Message.success("删除成功");
|
} else {
|
Message.error("删除失败");
|
}
|
this.getTableData();
|
this.deleteShow = false;
|
},
|
|
// 编辑页新增
|
editAdd() {
|
this.maskTableAdd(this.editForm);
|
},
|
|
// 新增页新增
|
addAdd() {
|
this.maskTableAdd(this.addForm);
|
},
|
|
// 编辑页删除
|
editHandleDetele(index, row, form) {
|
this.innerVisible = true;
|
this.oneForm = { index: index, row: row, form: form };
|
},
|
|
// 蒙版表单新增
|
maskTableAdd(form) {
|
let obj = {
|
payCompany: this.accessList[0].split("/")[0],
|
merId: this.accessList[0].split("/")[1],
|
capitalChannel: this.accessList[0],
|
paymentType: "0",
|
paymentAmount: null,
|
sendStatus: "0",
|
incomeTypeList: this.filterType("中金支付/002476"),
|
arriveDate: null
|
};
|
form.paymentDetails.push(obj);
|
},
|
|
//新增 保存
|
async savePaymentAdd() {
|
try {
|
let result = (await SaveNewPayment(this.addFormBack)).data;
|
if (result.retHeader.retCode && result.retHeader.retCode === "0000") {
|
this.addFormBack = result.retBody;
|
Message.success("保存成功!");
|
this.getTableData();
|
this.addShow = false;
|
} else {
|
Message.error(result.retHeader.retMessage);
|
}
|
} catch (error) {
|
Message.error("保存失败");
|
}
|
},
|
|
// 编辑 保存
|
async savePaymentEdit() {
|
try {
|
let result = (await SavePayment(this.addFormBack)).data;
|
if (result.retHeader.retCode && result.retHeader.retCode === "0000") {
|
this.addFormBack = result.retBody;
|
Message.success("保存成功!");
|
this.getTableData();
|
this.editShow = false;
|
} else {
|
Message.error(result.retHeader.retMessage);
|
}
|
} catch (error) {
|
Message.error("保存失败");
|
}
|
},
|
|
// 编辑上一步、下一步
|
async editNext(form) {
|
if (!this.panelShow) {
|
form.paymentDetails.forEach(element => {
|
element.merId = element.capitalChannel.split("/")[1];
|
element.payCompany = element.capitalChannel.split("/")[0];
|
});
|
let flag = this.checkRepeat(form);
|
if (flag) {
|
try {
|
await this.$refs["editForm"].validate();
|
await this.$refs["editTableForm"].validate();
|
try {
|
let result = (await AssetsPaymentEdit(form)).data;
|
if (
|
result.retHeader.retCode &&
|
result.retHeader.retCode === "0000"
|
) {
|
this.addFormBack = result.retBody;
|
|
if(this.addFormBack.paymentDetails && this.addFormBack.paymentDetails.length) {
|
this.addFormBack.paymentDetails.forEach(item => {
|
item.capitalChannel = item.payCompany + '/' + item.merId
|
})
|
}
|
this.editShowSubmit = !this.addFormBack.paymentDetails.some(
|
item => {
|
return item.checkResult == "0";
|
}
|
);
|
this.panelShow = !this.panelShow;
|
} else {
|
Message.error(result.retHeader.retMessage);
|
}
|
} catch (error) {
|
Message.error("表单提交失败,请检查。");
|
}
|
} catch (error) {
|
Message.error("表单未通过格式校验,请检查。");
|
}
|
}
|
} else {
|
this.$refs[("editTableForm", "editForm")].clearValidate();
|
this.panelShow = !this.panelShow;
|
}
|
},
|
|
// 新增 上一步、下一步
|
async addNext(form) {
|
if (!this.panelShow) {
|
form.paymentDetails.forEach(element => {
|
element.merId = element.capitalChannel.split("/")[1];
|
element.payCompany = element.capitalChannel.split("/")[0];
|
});
|
let flag = this.checkRepeat(form);
|
if (flag) {
|
try {
|
await this.$refs["addForm"].validate();
|
await this.$refs["addTableForm"].validate();
|
try {
|
let result = (await AssetsPaymentAdd(form)).data;
|
if (
|
result.retHeader.retCode &&
|
result.retHeader.retCode === "0000"
|
) {
|
this.addFormBack = result.retBody;
|
this.showSubmit = !this.addFormBack.paymentDetails.some(
|
item => {
|
return item.checkResult == "0";
|
}
|
);
|
this.panelShow = !this.panelShow;
|
} else {
|
Message.error(result.retHeader.retMessage);
|
}
|
} catch (error) {
|
Message.error("提交失败!");
|
}
|
} catch (error) {
|
Message.error("表单未通过格式校验,请检查。");
|
}
|
}
|
} else {
|
this.$refs[("addTableForm", "addForm")].clearValidate();
|
this.panelShow = !this.panelShow;
|
}
|
},
|
// 下拉框选择事件
|
selectHandle(index, row) {
|
row.incomeTypeList = this.filterType(row.payCompany + row.merId);
|
row.paymentType = row.incomeTypeList[0].paymentTypeId;
|
},
|
// 收付类型过滤
|
filterType(capital) {
|
let incomeList = [];
|
if (capital != "线下转账放款" && capital != "认领转账收款") {
|
incomeList = JSON.parse(JSON.stringify(this.typeList)).filter(item => {
|
return item.paymentTypeId != "2" && item.paymentTypeId != "3";
|
});
|
} else if (capital == "线下转账放款") {
|
incomeList = JSON.parse(JSON.stringify(this.typeList)).filter(item => {
|
return item.paymentTypeId == "2";
|
});
|
} else if (capital == "认领转账收款") {
|
incomeList = JSON.parse(JSON.stringify(this.typeList)).filter(item => {
|
return item.paymentTypeId == "3";
|
});
|
}
|
return incomeList;
|
},
|
// 蒙版关闭
|
closeMask() {
|
this.panelShow = false;
|
},
|
// 分页
|
handleChange(val) {
|
this.FormValue.page = val;
|
this.getTableData();
|
},
|
// 检验是否有重复项
|
checkRepeat(form) {
|
let arr = [form.paymentDetails[0]];
|
let flag = true;
|
for (let i = 1, len = form.paymentDetails.length; i < len; i++) {
|
for (let j = 0, slen = arr.length; j < slen; j++) {
|
if (
|
form.paymentDetails[i].payCompany === arr[j].payCompany &&
|
form.paymentDetails[i].paymentType === arr[j].paymentType
|
) {
|
Message.error(
|
`资金通道为${form.paymentDetails[i].payCompany +
|
"/" +
|
form.paymentDetails[i].merId},收付类型为${this.enumerMap(
|
form.paymentDetails[i].paymentType,
|
"paymentType"
|
)}重复了`
|
);
|
flag = false;
|
break;
|
} else {
|
arr.push(form.paymentDetails[i]);
|
}
|
}
|
if (!flag) {
|
break;
|
}
|
}
|
return flag;
|
},
|
// 检验金额是否为0
|
amt(rule, value, callback) {
|
if (!value && value != 0) {
|
callback("金额必填");
|
} else if (
|
!/^(([1-9][0-9]*)|(([0]\.\d{1,2}|[1-9][0-9]*\.\d{1,2})))$/.test(
|
value
|
) &&
|
value != 0
|
) {
|
callback("最多保留两位小数");
|
} else {
|
callback();
|
}
|
},
|
// 提交
|
async submit(val, index) {
|
this.submitIndex = index;
|
let params = JSON.parse(JSON.stringify(this.addFormBack));
|
if (val.capitalChannel) {
|
params.paymentDetails = [val];
|
} else {
|
if (params.paymentDetails && params.paymentDetails.length) {
|
params.paymentDetails = params.paymentDetails.filter(item => {
|
return item.sendStatus == "0" || !item.sendStatus;
|
});
|
}
|
}
|
if (params.paymentDetails && params.paymentDetails.length) {
|
try {
|
let result = await LedgerDeliver(params);
|
if (
|
result.data.retHeader.retCode &&
|
result.data.retHeader.retCode === "0000"
|
) {
|
Message.success("报送成功!");
|
if (this.editShow && !this.addShow) {
|
const arr = result.data.retBody;
|
this.changeStatus(arr.paymentDetails[0]);
|
this.editShow = val.payCompany ? true : false;
|
} else if (this.addShow && !this.editShow) {
|
this.addShow = false;
|
}
|
this.getTableData();
|
} else {
|
Message.error(result.data.retHeader.retMessage);
|
}
|
} catch (error) {
|
Message.error("报送失败");
|
console.log(error);
|
this.submitIndex = null;
|
}
|
} else {
|
Message.warning("已全部提交报送,不需再次提交");
|
}
|
},
|
// 单条编辑删除确定
|
async oneDeleteOk() {
|
if (this.editShow) {
|
if (this.oneForm.row.paymentNo) {
|
let res = await DeletePayment(this.oneForm.row);
|
if (res.data.retHeader.retCode === "0000") {
|
Message.success("删除成功!");
|
this.oneForm.form.paymentDetails.splice(this.oneForm.index, 1);
|
} else {
|
Message.error("删除失败");
|
}
|
} else {
|
this.editForm.paymentDetails.splice(this.oneForm.index, 1);
|
Message.success("删除成功!");
|
}
|
} else if (this.addShow) {
|
this.addForm.paymentDetails.splice(this.oneForm.index, 1);
|
Message.success("删除成功!");
|
}
|
|
this.innerVisible = false;
|
},
|
|
// 判断是否显示报送提交按钮
|
validateSubmit(sendStatus, result) {
|
if ((sendStatus == "0" || !sendStatus) && result == "1") {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
|
// 改变状态
|
changeStatus(params) {
|
this.editForm.paymentDetails.some(item => {
|
if (
|
item.paymentType == params.paymentType &&
|
item.capitalChannel == params.capitalChannel
|
) {
|
item.sendStatus = params.sendStatus;
|
return true;
|
}
|
});
|
this.addFormBack.paymentDetails.some(item => {
|
if (
|
item.paymentType == params.paymentType &&
|
item.capitalChannel == params.capitalChannel
|
) {
|
item.sendStatus = params.sendStatus;
|
return true;
|
}
|
});
|
}
|
}
|
};
|
</script>
|
|
<style lang="less">
|
.ledgerCheck {
|
background-color: #fff;
|
.searchForm {
|
padding: 20px 0px;
|
.el-input__icon.el-icon-date {
|
display: none;
|
}
|
}
|
.btn {
|
margin: 20px 0px;
|
}
|
.el-dialog {
|
background-color: #fafafa;
|
.el-dialog__header {
|
background-color: #fff;
|
text-align: center;
|
.el-dialog__title {
|
font-size: 16px;
|
}
|
.el-dialog__close.el-icon.el-icon-close {
|
background-color: #666;
|
color: white;
|
width: 18px;
|
height: 18px;
|
font-size: 14px;
|
border-radius: 9px;
|
text-align: center;
|
line-height: 18px;
|
font-weight: 700;
|
}
|
}
|
.el-dialog__footer {
|
text-align: center;
|
}
|
.el-dialog__body {
|
padding: 20px;
|
.formHead {
|
height: 65px;
|
border: 1px solid #ebeef5;
|
display: flex;
|
justify-content: space-between;
|
background-color: #fff;
|
> span {
|
flex: 1;
|
text-align: center;
|
line-height: 64px;
|
border-right: 1px solid #ebeef5;
|
}
|
}
|
.formItem {
|
> .el-form-item__content {
|
display: flex;
|
justify-content: space-between;
|
background-color: #fff;
|
border: 1px solid #ebeef5;
|
border-top: none;
|
.item-cell {
|
flex: 1;
|
height: 65px;
|
text-align: center;
|
padding: 12px 10px;
|
border-right: 1px solid #ebeef5;
|
}
|
.item-cell:last-child {
|
border-right: 1px solid #ebeef5;
|
}
|
}
|
}
|
.editForm {
|
background-color: #fff;
|
border: 1px solid #eee;
|
margin-bottom: 20px;
|
.el-form-item {
|
margin: 0 auto;
|
padding: 8px 8px;
|
border: 1px solid #eee;
|
margin-top: -1px;
|
.el-input__icon.el-icon-date {
|
display: none;
|
}
|
.el-input {
|
width: 60%;
|
}
|
.el-select {
|
width: 60%;
|
.el-input {
|
width: 100%;
|
}
|
}
|
}
|
}
|
.dialog_btn {
|
height: 40px;
|
padding: 6px 0px;
|
> h5 {
|
line-height: 28px;
|
float: left;
|
margin: 0px;
|
font-size: 16px;
|
}
|
.dialog_btn_btn {
|
float: right;
|
}
|
}
|
.submitInfo {
|
text-align: center;
|
color: red;
|
}
|
.cell {
|
height: 40px;
|
.editTable_panel {
|
display: inline-block;
|
width: 200px;
|
height: 40px;
|
line-height: 40px;
|
border: 1px solid #eee;
|
border-radius: 4px;
|
background-color: #fff;
|
}
|
}
|
.detail_dialog_head {
|
background-color: #fff;
|
width: 100%;
|
border: 1px solid #eee;
|
list-style: none;
|
padding: 0px;
|
> li {
|
overflow: hidden;
|
> span {
|
float: left;
|
line-height: 40px;
|
height: 40px;
|
border-right: 1px solid #eee;
|
border-bottom: 1px solid #eee;
|
text-align: center;
|
}
|
> span:first-child {
|
width: 30%;
|
}
|
> span:last-child {
|
width: 70%;
|
}
|
}
|
}
|
.deleteInfo {
|
line-height: 40px;
|
padding: 25px;
|
background-color: #fff;
|
text-align: center;
|
color: black;
|
font-size: 16px;
|
}
|
}
|
}
|
}
|
</style>
|