Commit 26e6c5ad by zenghuan

报文疑似重复、报文失败

parent 55c3bffe
import Api from "~/service/Api";
import moment from "moment";
export default {
methods: {
async handleSearch() {
let rcvdatsta = this.model.sndp.rcvdatsta;
if (!rcvdatsta || rcvdatsta == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询开始日期必输!"),
});
return;
}
let rcvdatend = this.model.sndp.rcvdatend;
if (!rcvdatend || rcvdatend == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询结束日期必输!"),
});
return;
}
this.load = true;
let rtnmsg = await Api.post("/webapi/gjzf/msgsel/query", {
...this.model.sndp,
dir: ">",
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
rcvdatsta: moment(rcvdatsta).format("YYYY-MM-DD"),
rcvdatend: moment(rcvdatend).format("YYYY-MM-DD"),
});
if (rtnmsg.respCode == SUCCESS) {
this.load = false;
this.stmData.data = [];
const {list} = rtnmsg.data;
const {codes:{sta1}} = this;
list.forEach(v=>{
for(let i in sta1){
if(sta1[i].value == v.sta){
v.sta = sta1[i].label;
}
}
})
this.stmData.data = list;
this.pagination = {
pageNum: rtnmsg.data.pageNum || 1,
pageSize: rtnmsg.data.pageSize || 10,
total: parseInt(rtnmsg.data.total),
};
} else {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.服务请求失败!"),
});
}
this.load = false;
},
async handleReset() {
this.model.sndp.msgtyp = "";
this.model.sndp.rcvdatsta = new Date();
this.model.sndp.rcvdatend = new Date();
this.model.sndp.subtyp = "";
this.model.sndp.sndbak = "";
this.model.sndp.revbak = "";
this.model.sndp.actbic = "";
this.model.sndp.othref = "";
this.model.sndp.ownref = "";
this.model.sndp.cur = "";
this.model.sndp.act = "";
this.model.sndp.amtmin = "";
this.model.sndp.amtmax = "";
this.model.sndp.chnipt = "";
this.model.sndp.rspsta = "";
this.model.sndp.dtlchg = "";
this.model.sndp.sta = "";
},
// pageSize改变
handleSizeChange(val) {
this.pagination.pageNum = 1;
this.pagination.pageSize = val;
this.handleSearch();
},
// 页码改变
handleCurrentChange(val) {
this.pagination.pageNum = val;
this.handleSearch();
},
handleSelectionChange(val){
this.multipleSelection = val;
}
},
};
import Api from "~/service/Api"
import Utils from "~/utils"
export default {
async onMdtmodTnsbtn(){
let rtnmsg = await this.executeRule("mdtmod.tnsbtn")
if(rtnmsg.respCode == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
},
async onMdtmodOrgmsg(){
let rtnmsg = await this.executeRule("mdtmod.orgmsg")
if(rtnmsg.respCode == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
},
async onMdtmodExpmsg(){
let rtnmsg = await this.executeRule("mdtmod.expmsg")
if(rtnmsg.respCode == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
},
async onMdtmodShwcipsdtl(){
let rtnmsg = await this.executeRule("mdtmod.shwcipsdtl")
if(rtnmsg.respCode == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
},
async onRsmpSnd(){
let rtnmsg = await this.executeRule("rsmp.snd")
if(rtnmsg.respCode == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
},
async onRsmpDrp(){
let rtnmsg = await this.executeRule("rsmp.drp")
if(rtnmsg.respCode == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
},
async onRsmpRtn(){
let rtnmsg = await this.executeRule("rsmp.rtn")
if(rtnmsg.respCode == SUCCESS)
{
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
},
}
\ No newline at end of file
import Api from "~/service/Api"
import Pts from "~/page/Model/Common/Pts"
export default class Msgrsm{
constructor () {
export default class Msgrsm {
constructor() {
this.data = {
msggrp:{
mps:{
rcvdattim:"", // 消息接收时间 .msggrp.mps.rcvdattim
srcchncod:"", // 源渠道代码 .msggrp.mps.srcchncod
tgtchncod:"", // 最终渠道代码 .msggrp.mps.tgtchncod
},
mpi:{
ownref:"", // 我方编号 .msggrp.mpi.ownref
othref:"", // 对方编码 .msggrp.mpi.othref
act:"", // 账号 .msggrp.mpi.act
cur:"", // 币种 .msggrp.mpi.cur
amt:"", // 金额 .msggrp.mpi.amt
valdat:"", // 有效期 .msggrp.mpi.valdat
},
mpe:{
txt:"", // 处理说明 .msggrp.mpe.txt
},
},
rsmp:{
pcrmod:{
mpelst:[], // .rsmp.pcrmod.mpelst
beizhu:"", // 备注 .rsmp.pcrmod.beizhu
},
nxtcldchn:"", // 国际支付前置子系统 .rsmp.nxtcldchn
chk:"", // 抄送 .rsmp.chk
nxttxtchn:"", // 子系统标签 .rsmp.nxttxtchn
mdtmod:{
mpelst:[], // .rsmp.mdtmod.mpelst
msgdtl:"", // 报文展示 .rsmp.mdtmod.msgdtl
gpelst:[], // .rsmp.mdtmod.gpelst
gpe192lst:[], // .rsmp.mdtmod.gpe192lst
gpeutrlst:[], // .rsmp.mdtmod.gpeutrlst
sndp: {
rcvdatsta: "", // : 起始日期
rcvdatend: "", // : 截止日期
msgtyp: "", // : 报文标准
subtyp: "", // : 报文类型
sndbak: "", // : 发报行BIC
revbak: "", // : 收报行BIC
actbic: "", // : 账户行
othref: "", // : 21域编号
ownref: "", // : 20域编
cur: "", // : 币种
act: "", // : 账号
amtmin: "", // : 金额下限
amtmax: "", // : 金额上限
chnipt: "", // 行内系统 .sndp.chnipt
rspsta: "", // 回执状态 .sndp.rspsta
tblrsp: "", // 回执状态标签 .sndp.tblrsp
tblrsm: "", // 回执状态标签 .sndp.tblrsm
usrnam: "", // 操作员 .sndp.usrnam
starsp: "", // 处理状态标签 .sndp.starsp
starsm: "", // 处理状态标签 .sndp.starsm
sta: "", // 处理状态 .sndp.sta
dtlchg: "", // : 费用明细
starsp1: "", // 处理状态标签1 .sndp.starsp1
starsm1: "", // 处理状态标签1 .sndp.starsm1
sta1: "", // 处理状态1 .sndp.sta1
expexl: "", // 导出 .sndp.expexl
expexl2: "", // 3910导出 .sndp.expexl2
},
msggrp: {
rcvlst: [], // .msggrp.rcvlst
},
pageId: "" // ctx的key
}
......
<template>
<div class="eibs-tab">
<!-- FD000001 : 境外渠道: -->
<c-col :span="12">
<span v-text="model.msggrp.mps.tgtchncod" data-code="chncod" data-path=".msggrp.mps.tgtchncod" > </span>
</c-col>
<!-- FD000006 : 帐号: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.act" data-path=".msggrp.mpi.act" > </span>
</c-col>
<!-- FD000002 : 行内系统: -->
<c-col :span="12">
<span v-text="model.msggrp.mps.srcchncod" data-code="chncod" data-path=".msggrp.mps.srcchncod" > </span>
</c-col>
<!-- FD000007 : 币种/金额: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.amt" data-path=".msggrp.mpi.amt" > </span>
</c-col>
<c-col :span="12">
<span v-text="model.msggrp.mpi.cur" data-code="cur" data-path=".msggrp.mpi.cur" > </span>
</c-col>
<c-list-search @form-reset="handleReset" @form-search="handleSearch">
<!-- 持续展示区 -->
<template v-slot="searchSlot">
<el-row>
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.rsmp.mdtmod.gpe192lst"
style="width: 100%"
>
<el-table-column
prop="subtyp"
label="报文类型"
sortable
width="80">
</el-table-column>
<el-table-column
prop="orgbic"
label="状态发起行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="rspsta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.gpista.find(item=>item.value==scope.row.rspsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="rspcod"
label="原因码"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.gpicod.find(item=>item.value==scope.row.rspcod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="credattim"
label="创建时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="upddattim"
label="更新时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="mpstim"
label="发送/接收时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="txt"
label="处理说明"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="报文标准" prop="msgtyp" style="width: 100%">
<c-select v-model="model.sndp.msgtyp" style="width: 100%" placeholder="请选择货押标识" :code="codes.msgtyp3">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<span v-text="model.rsmp.mdtmod.msgdtl" data-path=".rsmp.mdtmod.msgdtl" > </span>
</c-col>
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.rsmp.mdtmod.mpelst"
style="width: 100%"
>
<el-table-column
prop="dattim"
label="处理时间"
sortable
width="160">
</el-table-column>
<el-table-column
prop="usr"
label="操作用户"
sortable
width="100">
</el-table-column>
<el-table-column
prop="chncod"
label="当前渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.chncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="nxtchncod"
label="下一渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.nxtchncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="prvsta"
label="处理前状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.msgsta.find(item=>item.value==scope.row.prvsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="sta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.msgsta.find(item=>item.value==scope.row.sta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="txt"
label="备注"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="开立日期" prop="rcvdatsta" style="width: 100%">
<c-col :span="11">
<c-date-picker type="date" v-model="model.sndp.rcvdatsta" style="width: 100%"></c-date-picker>
</c-col>
<c-col :span="2" style="text-align: center">
<label style="display: inline-block; width: 100%">-</label>
</c-col>
<c-col :span="11">
<c-date-picker type="date" v-model="model.sndp.rcvdatend" style="width: 100%"></c-date-picker>
</c-col>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="报文类型" prop="subtype" style="width: 100%">
<el-select v-model="model.sndp.subtyp" placeholder="请选择报文类型">
<el-option v-for="code in subtypCodes" :key="code.label" :label="code.label" :value="code.value">
</el-option>
</el-select>
</el-form-item>
</c-col>
</c-col>
</el-row>
<!-- 可控展示区 -->
<el-row v-show="searchSlot.searchToggle">
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.rsmp.mdtmod.gpelst"
style="width: 100%"
>
<el-table-column
prop="subtyp"
label="报文类型"
sortable
width="80">
</el-table-column>
<el-table-column
prop="orgbic"
label="状态发起行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="fwdbic"
label="状态转发行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="rspsta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.gpista.find(item=>item.value==scope.row.rspsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="rspcod"
label="处理码"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.gpicod.find(item=>item.value==scope.row.rspcod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="stasndtim"
label="处理时间"
sortable
width="135">
</el-table-column>
<el-table-column
prop="utc"
label="时区"
sortable
width="70">
</el-table-column>
<el-table-column
prop="cur"
label="收款币种"
sortable
width="70">
</el-table-column>
<el-table-column
prop="amt"
label="收款金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="oricur"
label="原始币种"
sortable
width="80">
</el-table-column>
<el-table-column
prop="exgcur"
label="转换币种"
sortable
width="80">
</el-table-column>
<el-table-column
prop="exgrat"
label="货币转换汇率"
sortable
width="100">
</el-table-column>
<el-table-column
prop="deucur"
label="扣费币种"
sortable
width="80">
</el-table-column>
<el-table-column
prop="deuamt"
label="扣费金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="credattim"
label="创建时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="upddattim"
label="更新时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="mpstim"
label="发送/接收时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="txt"
label="处理说明"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="发报行BIC" prop="sndbak" style="width: 100%">
<c-input v-model="model.sndp.sndbak" maxlength="40" placeholder="请输入发报行BIC">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="收报行BIC" prop="revbak" style="width: 100%">
<c-input v-model="model.sndp.revbak" maxlength="40" placeholder="请输入收报行BIC">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="账户行BIC" prop="actbic" style="width: 100%">
<c-input v-model="model.sndp.actbic" maxlength="40" placeholder="请输入账户行BIC">
</c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.rsmp.mdtmod.gpeutrlst"
style="width: 100%"
>
<el-table-column
prop="subtyp"
label="报文类型"
sortable
width="80">
</el-table-column>
<el-table-column
prop="dir"
label="收发方向"
sortable
width="80">
<template slot-scope="scope">
<span>{{ this.codes.dircod.find(item=>item.value==scope.row.dir).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="cur"
label="收款币种"
sortable
width="70">
</el-table-column>
<el-table-column
prop="amt"
label="收款金额"
sortable
width="110">
</el-table-column>
<el-table-column
prop="sndbic"
label="发报行BIC"
sortable
width="100">
</el-table-column>
<el-table-column
prop="rcvbic"
label="收报行BIC"
sortable
width="100">
</el-table-column>
<el-table-column
prop="orgbic"
label="状态发起行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="fwdbic"
label="状态转发行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="rspsta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.gpista.find(item=>item.value==scope.row.rspsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="rspcod"
label="处理码"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.gpicod.find(item=>item.value==scope.row.rspcod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="setmth"
label="结算方式"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.setmth.find(item=>item.value==scope.row.setmth).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="clrsys"
label="清算系统"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.clrsys.find(item=>item.value==scope.row.clrsys).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="stasndtim"
label="处理时间"
sortable
width="135">
</el-table-column>
<el-table-column
prop="utc"
label="时区"
sortable
width="70">
</el-table-column>
<el-table-column
prop="credattim"
label="创建时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="usrnam"
label="操作员"
sortable
width="80">
</el-table-column>
<el-table-column
prop="mpstim"
label="发送/接收时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="txt"
label="处理说明"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="20域编号" prop="ownref" style="width: 100%">
<c-input v-model="model.sndp.ownref" maxlength="40" placeholder="请输入20域编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="21域编号" prop="othref" style="width: 100%">
<c-input v-model="model.sndp.othref" maxlength="40" placeholder="请输入21域编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="币种" prop="cur" style="width: 100%">
<c-select v-model="model.sndp.cur" style="width: 100%" placeholder="请选择币种" :code="codes.cur">
</c-select>
</el-form-item>
</c-col>
</c-col>
<!-- FD000003 : 接收时间: -->
<c-col :span="12">
<span v-text="model.msggrp.mps.rcvdattim" data-path=".msggrp.mps.rcvdattim" > </span>
</c-col>
<!-- FD000008 : 起息日: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.valdat" data-path=".msggrp.mpi.valdat" > </span>
</c-col>
<!-- FD000005 : 21域编号: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.othref" data-path=".msggrp.mpi.othref" > </span>
</c-col>
<!-- FD000004 : 20域编号: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.ownref" data-path=".msggrp.mpi.ownref" > </span>
</c-col>
<!-- LT000010 : 处理历史记录: -->
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.rsmp.pcrmod.mpelst"
style="width: 100%"
>
<el-table-column
prop="dattim"
label="处理时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="usr"
label="操作用户"
sortable
width="100">
</el-table-column>
<el-table-column
prop="frmnam"
label="处理交易"
sortable
width="180">
</el-table-column>
<el-table-column
prop="chncod"
label="当前渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.chncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="nxtchncod"
label="下一渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.nxtchncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="prvsta"
label="处理前状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.stacod.find(item=>item.value==scope.row.prvsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="sta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.stacod.find(item=>item.value==scope.row.sta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="txt"
label="备注"
sortable
width="250">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="账号" prop="act" style="width: 100%">
<c-input v-model="model.sndp.act" maxlength="40" placeholder="请输入账号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<span v-text="model.rsmp.pcrmod.beizhu" data-path=".rsmp.pcrmod.beizhu" > </span>
</c-col>
<c-col :span="12">
<c-form-item label="处理说明" prop="msggrp.mpe.txt">
<c-input type="textarea" v-model="model.msggrp.mpe.txt" maxlength="600" show-word-limit :placeholder="$t('other.please_enter')+'处理说明'" ></c-input>
</c-form-item>
<c-col :span="8">
<el-form-item label="费用明细" prop="dtlchg" style="width: 100%">
<c-select v-model="model.sndp.dtlchg" style="width: 100%" placeholder="请选择费用明细" :code="codes.dtlchg">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="国际支付前置子系统" prop="rsmp.nxtcldchn">
<c-select v-model="model.rsmp.nxtcldchn" style="width:100%" :placeholder="$t('other.please_enter')+'国际支付前置子系统'">
<c-col :span="8">
<el-form-item :label="$t('lc.金额区间')" style="width: 100%">
<c-col :span="11">
<c-input v-model="model.sndp.amtmin" :placeholder="$t('lc.请输入金额下限')" style="width: 100%"></c-input>
</c-col>
<c-col :span="2" style="text-align: center">
<label style="display: inline-block; width: 100%">-</label>
</c-col>
<c-col :span="11">
<c-input v-model="model.sndp.amtmax" :placeholder="$t('lc.请输入金额上限')" style="width: 100%"></c-input>
</c-col>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="行内系统" prop="chnipt" style="width: 100%">
<c-select v-model="model.sndp.chnipt" style="width: 100%" placeholder="请选择行内系统" :code="codes.chnipt">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.rsmp.chk">{{$t('rsmp.GT000612')}}</c-checkbox>
<c-col :span="8">
<el-form-item label="回执状态" prop="rspsta" style="width: 100%">
<c-select v-model="model.sndp.rspsta" style="width: 100%" placeholder="请选择回执状态" :code="codes.rspsta">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<span v-text="model.rsmp.nxttxtchn" data-path=".rsmp.nxttxtchn" > </span>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodTnsbtn">
{{$t('mdtmod.BT000023')}}
</c-button>
<c-col :span="8">
<el-form-item label="处理状态" prop="sta" style="width: 100%">
<c-select v-model="model.sndp.sta" style="width: 100%" placeholder="请选择处理状态" :code="codes.sta1">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodOrgmsg">
{{$t('mdtmod.BT000019')}}
</c-button>
</c-col>
</el-row>
</template>
</c-list-search>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodExpmsg">
{{$t('mdtmod.BT000020')}}
<el-col :span="24" style="margin-top: 2px;margin-bottom: 1px;">
<c-button :disabled="isFoldDisable" class="medium_bcs" size="medium" style="margin-left: 0"
type="primary" >{{ $t('public.归档') }}
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodShwcipsdtl">
{{$t('mdtmod.BT000117')}}
<c-button :disabled="isRoutingDisable" class="medium_bcs" size="medium"
style="margin-left: 20" type="primary">ReRouting
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onRsmpSnd">
{{$t('rsmp.BT000517')}}
<c-button class="medium_bcs" size="medium" style="margin-left: 20" type="primary">
{{ $t('public.导出Excel') }}
</c-button>
</c-col>
</el-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onRsmpDrp">
{{$t('rsmp.BT000518')}}
</c-button>
</c-col>
<el-col :span="24" style="margin-top: 10px">
<div style="height: 90%">
<c-col :span="24">
<el-tabs v-model="activeTab" class="y-tabs">
<el-tab-pane label="发报疑似重复处理" name="fb">
<el-table :data="stmData.data" :columns="stmData.columns" v-loading="load" style="width: 100%"
@selection-change="handleSelectionChange"
size="small" :border="true" height="calc(100vh - 480px)" :highlight-current-row="true">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column v-for="(item, key) in stmData.columns" :key="key" :label="item.label" :prop="item.prop"
:min-width="item.width">
</el-table-column>
</el-table>
<c-col :span="12">
<c-button size="small" type="primary" @click="onRsmpRtn">
{{$t('rsmp.BT000023')}}
</c-button>
<el-pagination layout="total, sizes, prev, pager, next, jumper" :total="pagination.total"
:page-size="pagination.pageSize" :current-page.sync="pagination.pageNum" @size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination>
</el-tab-pane>
</el-tabs>
</c-col>
</div>
</el-col>
</div>
</template>
<script>
import Api from "~/service/Api"
import commonProcess from "~/mixin/commonProcess";
import CodeTable from "~/config/CodeTable"
import Event from "../model/Event"
import event from "../event";
export default {
inject: ['root'],
props:["model","codes"],
mixins: [commonProcess],
data(){
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeTab: 'fb',
load: false,
subtypCodes: [],
multipleSelection:[],
stmData: {
columns: [
{
label: "起息日",
prop: "valdat",
width: "180px"
},
{
label: "20域编号",
prop: "ownref",
width: "180px"
},
{
label: "21域名编号",
prop: "othref",
width: "120px"
},
{
label: "币种",
prop: "cur",
width: "120px"
},
{
label: "金额",
prop: "amt",
width: "120px"
},
{
label: "账号",
prop: "act",
width: "120px"
},
{
label: "费用明细",
prop: "dtlchg",
width: "120px"
},
{
label: "报文类型",
prop: "subtyp",
width: "120px"
},
{
label: "行内系统",
prop: "chnipt",
width: "120px"
},
{
label: "处理状态",
prop: "sta",
width: "120px"
},
{
label: "账户行BIC(53域)",
prop: "actbic",
width: "120px"
},
{
label: "账户行BIC(54域)",
prop: "actbic",
width: "250px"
},
{
label: "发报行BIC",
prop: "sndbic",
width: "150px"
},
{
label: "收报行BIC",
prop: "rcvbic",
width: "150px"
},
{
label: "报文标准",
prop: "msgtyp",
width: "150px"
},
{
label: "GPI标识",
prop: "gpi",
width: "150px"
},
{
label: "子系统",
prop: "",
width: "150px"
},
{
label: "处理时间",
prop: "sttdattim",
width: "150px"
},
],
data: [],
},
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
};
},
computed:{
isFoldDisable: function(){
return this.multipleSelection.length == 0;
} ,
isRoutingDisable:function(){
return this.multipleSelection.length == 0;
}
},
watch: {
'model.sndp.msgtyp': {
handler: function (newTyp, oldTyp) {
// 把已经选择的 subtyp 重置
this.model.sndp.subtyp = '';
const { codes } = this;
if (newTyp == 'txt') {
this.subtypCodes = codes.subtypfps;
} else if (newTyp == 'iso') {
this.subtypCodes = codes.subtypiso;
} else if (newTyp == 'xml') {
this.subtypCodes = codes.subtypcps;
} else {
this.subtypCodes = codes.subtyp1;
}
},
deep: true
}
},
methods:{...Event},
created:function(){
methods: {
},
mounted: function () {
},
};
</script>
<style lang="less" scoped>
::v-deep .c-content-scrollbar {
height: 100% !important;
}
.eibs-tabs /deep/ {
.m-table-search {
padding: 20px 0px 10px 0px;
}
}
</script>
<style>
.header-wrap {
height: 36px;
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 16px;
color: #000;
}
.close-btn {
padding: 3px;
cursor: pointer;
}
}
.m-list-btns {
height: 300px;
overflow: auto;
}
.medium_bcs {
border-radius: 5px;
}
.m-table-search {
padding: 20px 0px 10px 0px;
}
.pagination-box {
width: 100%;
height: 30px;
display: flex;
align-items: center;
justify-content: flex-end;
padding: 0 10px;
background: #fff;
margin-top: 5px;
}
.el-dialog__body {
padding: 10px 5px 50px;
}
.m-table-search {
padding: 20px 0px 10px 0px;
}
.btn-group-wrap {
max-height: 200px;
width: 100%;
overflow-y: auto;
display: flex;
align-items: flex-start;
justify-content: flex-start;
flex-wrap: wrap;
}
.btn-item {
margin-bottom: 10px;
margin-right: 10px;
}
</style>
<template>
<div class="eContainer">
<el-form :model="model" :rules="rules" ref="modelForm" label-width="150px" label-position="right" size="small" :validate-on-rule-change="false">
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="myTabClick">
<!--rsmp PD000011 疑似重复主页面 -->
<el-tab-pane :label="$t('rsmp.PD000011')" name="rsmp">
<m-rsmp :model="model" :codes="codes"/>
</el-tab-pane>
</c-tabs>
<div class="eContainer-search">
<el-form
:model="model"
:rules="rules"
ref="modelForm"
label-width="120px"
label-position="right"
size="small"
:validate-on-rule-change="false"
>
<c-content>
<m-rsmp :model="model" :codes="codes" ref="rsmp"/>
</c-content>
</el-form>
</div>
</template>
<script>
import Api from "~/service/Api"
import CodeTable from "~/config/CodeTable"
import Msgrsm from "../model"
import commonProcess from "~/mixin/commonProcess"
import Check from "../model/Check"
import Default from "../model/Default"
import Pattern from "../model/Pattern"
import Rsmp from "./Rsmp"
import CodeTable from "~/config/CodeTable";
import Msgrsm from "../model";
import event from "../event"
import Rsmp from "./Rsmp.vue"
export default {
name: "Msgrsm",
components:{
"m-rsmp" : Rsmp,
},
provide() {
return {
root: this
}
},
mixins: [commonProcess], // 里面包含了Default、Check等的公共处理
mixins: [event], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "rsmp",
trnName: "msgrsm",
trnType: "",
model: new Msgrsm().data,
checkRules: Check,
defaultRules: Default,
pattern: Pattern,
rules: null,
codes: {
kpatyp:CodeTable.kpatyp,
cur:CodeTable.cur,
sdcflg:CodeTable.sdcflg,
gpicod:CodeTable.gpicod,
fmssta:CodeTable.fmssta,
clrsys:CodeTable.clrsys,
stacod:CodeTable.stacod,
bnksta:CodeTable.bnksta,
gpista:CodeTable.gpista,
kpadir:CodeTable.kpadir,
area:CodeTable.area,
cpsfxdtyp:CodeTable.cpsfxdtyp,
sta:CodeTable.sta,
actsta:CodeTable.actsta,
offsta:CodeTable.offsta,
batcharge:CodeTable.batcharge,
msgmst:CodeTable.msgmst,
yosflg:CodeTable.yosflg,
filtyp:CodeTable.filtyp,
dircod:CodeTable.dircod,
kpstyp:CodeTable.kpstyp,
dcflg:CodeTable.dcflg,
msgtyp:CodeTable.msgtyp,
chncod:CodeTable.chncod,
msgsta:CodeTable.msgsta,
usratr:CodeTable.usratr,
setmth:CodeTable.setmth,
},
}
},
methods:{
myTabClick(tab){
this.tabClick(tab)
/**
* do it yourself
**/
}
codes:{...CodeTable},
};
},
created:async function(){
console.log("进入msgrsm交易");
let rtnmsg = {}; // await this.init({})
if(rtnmsg.respCode == SUCCESS)
{
this.updateModel(rtnmsg.data)
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
}
}
methods:{},
created:async function() {},
};
</script>
<style>
<style scoped>
</style>
import Api from "@/service/Api";
import moment from "moment";
export default {
methods: {
async handleSearch() {
let rcvdatsta = this.model.sndp.rcvdatsta;
if (!rcvdatsta || rcvdatsta == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询开始日期必输!"),
});
return;
}
let rcvdatend = this.model.sndp.rcvdatend;
if (!rcvdatend || rcvdatend == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询结束日期必输!"),
});
return;
}
this.load = true;
let rtnmsg = await Api.post("/webapi/gjzf/msgsel/query", {
...this.model.sndp,
dir: ">",
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
rcvdatsta: moment(rcvdatsta).format("YYYY-MM-DD"),
rcvdatend: moment(rcvdatend).format("YYYY-MM-DD"),
});
if (rtnmsg.respCode == SUCCESS) {
this.load = false;
this.stmData.data = [];
const {list} = rtnmsg.data;
const {codes:{sta1}} = this;
list.forEach(v=>{
for(let i in sta1){
if(sta1[i].value == v.sta){
v.sta = sta1[i].label;
}
}
})
this.stmData.data = list;
this.pagination = {
pageNum: rtnmsg.data.pageNum || 1,
pageSize: rtnmsg.data.pageSize || 10,
total: parseInt(rtnmsg.data.total),
};
} else {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.服务请求失败!"),
});
}
this.load = false;
},
async handleReset() {
this.model.sndp.msgtyp = "";
this.model.sndp.rcvdatsta = new Date();
this.model.sndp.rcvdatend = new Date();
this.model.sndp.subtyp = "";
this.model.sndp.sndbak = "";
this.model.sndp.revbak = "";
this.model.sndp.actbic = "";
this.model.sndp.othref = "";
this.model.sndp.ownref = "";
this.model.sndp.cur = "";
this.model.sndp.act = "";
this.model.sndp.amtmin = "";
this.model.sndp.amtmax = "";
this.model.sndp.chnipt = "";
this.model.sndp.rspsta = "";
this.model.sndp.dtlchg = "";
this.model.sndp.sta = "";
},
// pageSize改变
handleSizeChange(val) {
this.pagination.pageNum = 1;
this.pagination.pageSize = val;
this.handleSearch();
},
// 页码改变
handleCurrentChange(val) {
this.pagination.pageNum = val;
this.handleSearch();
},
handleSelectionChange(val){
this.multipleSelection = val;
}
},
};
import Api from "~/service/Api"
import Pts from "~/page/Model/Common/Pts"
export default class Msgsep{
constructor () {
export default class Msgsep {
constructor() {
this.data = {
msggrp:{
mps:{
rcvdattim:"", // 消息接收时间 .msggrp.mps.rcvdattim
srcchncod:"", // 源渠道代码 .msggrp.mps.srcchncod
tgtchncod:"", // 最终渠道代码 .msggrp.mps.tgtchncod
},
mpi:{
ownref:"", // 我方编号 .msggrp.mpi.ownref
othref:"", // 对方编码 .msggrp.mpi.othref
act:"", // 账号 .msggrp.mpi.act
cur:"", // 币种 .msggrp.mpi.cur
amt:"", // 金额 .msggrp.mpi.amt
valdat:"", // 有效期 .msggrp.mpi.valdat
},
mpe:{
txt:"", // 处理说明 .msggrp.mpe.txt
},
},
sepp:{
pcrmod:{
mpelst:[], // .sepp.pcrmod.mpelst
beizhu:"", // 备注 .sepp.pcrmod.beizhu
},
mdtmod:{
mpelst:[], // .sepp.mdtmod.mpelst
msgdtl:"", // 报文展示 .sepp.mdtmod.msgdtl
gpelst:[], // .sepp.mdtmod.gpelst
gpe192lst:[], // .sepp.mdtmod.gpe192lst
gpeutrlst:[], // .sepp.mdtmod.gpeutrlst
sndp: {
rcvdatsta: "", // : 起始日期
rcvdatend: "", // : 截止日期
msgtyp: "", // : 报文标准
subtyp: "", // : 报文类型
sndbak: "", // : 发报行BIC
revbak: "", // : 收报行BIC
actbic: "", // : 账户行
othref: "", // : 21域编号
ownref: "", // : 20域编
cur: "", // : 币种
act: "", // : 账号
amtmin: "", // : 金额下限
amtmax: "", // : 金额上限
chnipt: "", // 行内系统 .sndp.chnipt
rspsta: "", // 回执状态 .sndp.rspsta
tblrsp: "", // 回执状态标签 .sndp.tblrsp
tblrsm: "", // 回执状态标签 .sndp.tblrsm
usrnam: "", // 操作员 .sndp.usrnam
starsp: "", // 处理状态标签 .sndp.starsp
starsm: "", // 处理状态标签 .sndp.starsm
sta: "", // 处理状态 .sndp.sta
dtlchg: "", // : 费用明细
starsp1: "", // 处理状态标签1 .sndp.starsp1
starsm1: "", // 处理状态标签1 .sndp.starsm1
sta1: "", // 处理状态1 .sndp.sta1
expexl: "", // 导出 .sndp.expexl
expexl2: "", // 3910导出 .sndp.expexl2
},
msggrp: {
rcvlst: [], // .msggrp.rcvlst
},
pageId: "" // ctx的key
}
......
<template>
<div class="eibs-tab">
<!-- FD000001 : 境外渠道: -->
<c-col :span="12">
<span v-text="model.msggrp.mps.tgtchncod" data-code="chncod" data-path=".msggrp.mps.tgtchncod" > </span>
</c-col>
<!-- FD000006 : 帐号: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.act" data-path=".msggrp.mpi.act" > </span>
</c-col>
<!-- FD000002 : 行内系统: -->
<c-col :span="12">
<span v-text="model.msggrp.mps.srcchncod" data-code="chncod" data-path=".msggrp.mps.srcchncod" > </span>
</c-col>
<!-- FD000007 : 币种/金额: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.amt" data-path=".msggrp.mpi.amt" > </span>
</c-col>
<c-col :span="12">
<span v-text="model.msggrp.mpi.cur" data-code="cur" data-path=".msggrp.mpi.cur" > </span>
</c-col>
<c-list-search @form-reset="handleReset" @form-search="handleSearch">
<!-- 持续展示区 -->
<template v-slot="searchSlot">
<el-row>
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.sepp.mdtmod.gpe192lst"
style="width: 100%"
>
<el-table-column
prop="subtyp"
label="报文类型"
sortable
width="80">
</el-table-column>
<el-table-column
prop="orgbic"
label="状态发起行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="rspsta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.gpista.find(item=>item.value==scope.row.rspsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="rspcod"
label="原因码"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.gpicod.find(item=>item.value==scope.row.rspcod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="credattim"
label="创建时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="upddattim"
label="更新时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="mpstim"
label="发送/接收时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="txt"
label="处理说明"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="报文标准" prop="msgtyp" style="width: 100%">
<c-select v-model="model.sndp.msgtyp" style="width: 100%" placeholder="请选择货押标识" :code="codes.msgtyp3">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<span v-text="model.sepp.mdtmod.msgdtl" data-path=".sepp.mdtmod.msgdtl" > </span>
</c-col>
<c-col :span="8">
<el-form-item label="开立日期" prop="rcvdatsta" style="width: 100%">
<c-col :span="11">
<c-date-picker type="date" v-model="model.sndp.rcvdatsta" style="width: 100%"></c-date-picker>
</c-col>
<c-col :span="2" style="text-align: center">
<label style="display: inline-block; width: 100%">-</label>
</c-col>
<c-col :span="11">
<c-date-picker type="date" v-model="model.sndp.rcvdatend" style="width: 100%"></c-date-picker>
</c-col>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="报文类型" prop="subtype" style="width: 100%">
<el-select v-model="model.sndp.subtyp" placeholder="请选择报文类型">
<el-option v-for="code in subtypCodes" :key="code.label" :label="code.label" :value="code.value">
</el-option>
</el-select>
</el-form-item>
</c-col>
</c-col>
</el-row>
<!-- 可控展示区 -->
<el-row v-show="searchSlot.searchToggle">
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.sepp.mdtmod.mpelst"
style="width: 100%"
>
<el-table-column
prop="dattim"
label="处理时间"
sortable
width="160">
</el-table-column>
<el-table-column
prop="usr"
label="操作用户"
sortable
width="100">
</el-table-column>
<el-table-column
prop="chncod"
label="当前渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.chncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="nxtchncod"
label="下一渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.nxtchncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="prvsta"
label="处理前状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.msgsta.find(item=>item.value==scope.row.prvsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="sta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.msgsta.find(item=>item.value==scope.row.sta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="txt"
label="备注"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="发报行BIC" prop="sndbak" style="width: 100%">
<c-input v-model="model.sndp.sndbak" maxlength="40" placeholder="请输入发报行BIC">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="收报行BIC" prop="revbak" style="width: 100%">
<c-input v-model="model.sndp.revbak" maxlength="40" placeholder="请输入收报行BIC">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="账户行BIC" prop="actbic" style="width: 100%">
<c-input v-model="model.sndp.actbic" maxlength="40" placeholder="请输入账户行BIC">
</c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.sepp.mdtmod.gpelst"
style="width: 100%"
>
<el-table-column
prop="subtyp"
label="报文类型"
sortable
width="80">
</el-table-column>
<el-table-column
prop="orgbic"
label="状态发起行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="fwdbic"
label="状态转发行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="rspsta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.gpista.find(item=>item.value==scope.row.rspsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="rspcod"
label="处理码"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.gpicod.find(item=>item.value==scope.row.rspcod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="stasndtim"
label="处理时间"
sortable
width="135">
</el-table-column>
<el-table-column
prop="utc"
label="时区"
sortable
width="70">
</el-table-column>
<el-table-column
prop="cur"
label="收款币种"
sortable
width="70">
</el-table-column>
<el-table-column
prop="amt"
label="收款金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="oricur"
label="原始币种"
sortable
width="80">
</el-table-column>
<el-table-column
prop="exgcur"
label="转换币种"
sortable
width="80">
</el-table-column>
<el-table-column
prop="exgrat"
label="货币转换汇率"
sortable
width="100">
</el-table-column>
<el-table-column
prop="deucur"
label="扣费币种"
sortable
width="80">
</el-table-column>
<el-table-column
prop="deuamt"
label="扣费金额"
sortable
width="100">
</el-table-column>
<el-table-column
prop="credattim"
label="创建时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="upddattim"
label="更新时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="mpstim"
label="发送/接收时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="txt"
label="处理说明"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="20域编号" prop="ownref" style="width: 100%">
<c-input v-model="model.sndp.ownref" maxlength="40" placeholder="请输入20域编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="21域编号" prop="othref" style="width: 100%">
<c-input v-model="model.sndp.othref" maxlength="40" placeholder="请输入21域编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="币种" prop="cur" style="width: 100%">
<c-select v-model="model.sndp.cur" style="width: 100%" placeholder="请选择币种" :code="codes.cur">
</c-select>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.sepp.mdtmod.gpeutrlst"
style="width: 100%"
>
<el-table-column
prop="subtyp"
label="报文类型"
sortable
width="80">
</el-table-column>
<el-table-column
prop="dir"
label="收发方向"
sortable
width="80">
<template slot-scope="scope">
<span>{{ this.codes.dircod.find(item=>item.value==scope.row.dir).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="cur"
label="收款币种"
sortable
width="70">
</el-table-column>
<el-table-column
prop="amt"
label="收款金额"
sortable
width="110">
</el-table-column>
<el-table-column
prop="sndbic"
label="发报行BIC"
sortable
width="100">
</el-table-column>
<el-table-column
prop="rcvbic"
label="收报行BIC"
sortable
width="100">
</el-table-column>
<el-table-column
prop="orgbic"
label="状态发起行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="fwdbic"
label="状态转发行BIC"
sortable
width="110">
</el-table-column>
<el-table-column
prop="rspsta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.gpista.find(item=>item.value==scope.row.rspsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="rspcod"
label="处理码"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.gpicod.find(item=>item.value==scope.row.rspcod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="setmth"
label="结算方式"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.setmth.find(item=>item.value==scope.row.setmth).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="clrsys"
label="清算系统"
sortable
width="150">
<template slot-scope="scope">
<span>{{ this.codes.clrsys.find(item=>item.value==scope.row.clrsys).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="stasndtim"
label="处理时间"
sortable
width="135">
</el-table-column>
<el-table-column
prop="utc"
label="时区"
sortable
width="70">
</el-table-column>
<el-table-column
prop="credattim"
label="创建时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="usrnam"
label="操作员"
sortable
width="80">
</el-table-column>
<el-table-column
prop="mpstim"
label="发送/接收时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="txt"
label="处理说明"
sortable
width="300">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="账号" prop="act" style="width: 100%">
<c-input v-model="model.sndp.act" maxlength="40" placeholder="请输入账号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="费用明细" prop="dtlchg" style="width: 100%">
<c-select v-model="model.sndp.dtlchg" style="width: 100%" placeholder="请选择费用明细" :code="codes.dtlchg">
</c-select>
</el-form-item>
</c-col>
<!-- FD000003 : 接收时间: -->
<c-col :span="12">
<span v-text="model.msggrp.mps.rcvdattim" data-path=".msggrp.mps.rcvdattim" > </span>
</c-col>
<!-- FD000008 : 起息日: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.valdat" data-path=".msggrp.mpi.valdat" > </span>
</c-col>
<!-- FD000005 : 21域编号: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.othref" data-path=".msggrp.mpi.othref" > </span>
</c-col>
<!-- FD000004 : 20域编号: -->
<c-col :span="12">
<span v-text="model.msggrp.mpi.ownref" data-path=".msggrp.mpi.ownref" > </span>
</c-col>
<!-- LT000010 : 处理历史记录: -->
<c-col :span="8">
<el-form-item :label="$t('lc.金额区间')" style="width: 100%">
<c-col :span="11">
<c-input v-model="model.sndp.amtmin" :placeholder="$t('lc.请输入金额下限')" style="width: 100%"></c-input>
</c-col>
<c-col :span="2" style="text-align: center">
<label style="display: inline-block; width: 100%">-</label>
</c-col>
<c-col :span="11">
<c-input v-model="model.sndp.amtmax" :placeholder="$t('lc.请输入金额上限')" style="width: 100%"></c-input>
</c-col>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<div class="e-table-wrapper">
<el-table
:data="model.sepp.pcrmod.mpelst"
style="width: 100%"
>
<el-table-column
prop="dattim"
label="处理时间"
sortable
width="150">
</el-table-column>
<el-table-column
prop="usr"
label="操作用户"
sortable
width="100">
</el-table-column>
<el-table-column
prop="frmnam"
label="处理交易"
sortable
width="180">
</el-table-column>
<el-table-column
prop="chncod"
label="当前渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.chncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="nxtchncod"
label="下一渠道"
sortable
width="160">
<template slot-scope="scope">
<span>{{ this.codes.chncod.find(item=>item.value==scope.row.nxtchncod).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="prvsta"
label="处理前状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.stacod.find(item=>item.value==scope.row.prvsta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="sta"
label="处理状态"
sortable
width="100">
<template slot-scope="scope">
<span>{{ this.codes.stacod.find(item=>item.value==scope.row.sta).label }}</span>
</template>
</el-table-column>
<el-table-column
prop="txt"
label="备注"
sortable
width="250">
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="1">
</el-pagination>
</div>
<c-col :span="8">
<el-form-item label="行内系统" prop="chnipt" style="width: 100%">
<c-select v-model="model.sndp.chnipt" style="width: 100%" placeholder="请选择行内系统" :code="codes.chnipt">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<span v-text="model.sepp.pcrmod.beizhu" data-path=".sepp.pcrmod.beizhu" > </span>
</c-col>
<c-col :span="12">
<c-form-item label="处理说明" prop="msggrp.mpe.txt">
<c-input type="textarea" v-model="model.msggrp.mpe.txt" maxlength="600" show-word-limit :placeholder="$t('other.please_enter')+'处理说明'" ></c-input>
</c-form-item>
<c-col :span="8">
<el-form-item label="回执状态" prop="rspsta" style="width: 100%">
<c-select v-model="model.sndp.rspsta" style="width: 100%" placeholder="请选择回执状态" :code="codes.rspsta">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodTnsbtn">
{{$t('mdtmod.BT000023')}}
</c-button>
<c-col :span="8">
<el-form-item label="处理状态" prop="sta" style="width: 100%">
<c-select v-model="model.sndp.sta" style="width: 100%" placeholder="请选择处理状态" :code="codes.sta1">
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodOrgmsg">
{{$t('mdtmod.BT000019')}}
</c-button>
</c-col>
</el-row>
</template>
</c-list-search>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodExpmsg">
{{$t('mdtmod.BT000020')}}
<el-col :span="24" style="margin-top: 2px;margin-bottom: 1px;">
<c-button :disabled="isFoldDisable" class="medium_bcs" size="medium" style="margin-left: 0"
type="primary" >{{ $t('public.归档') }}
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onMdtmodShwcipsdtl">
{{$t('mdtmod.BT000117')}}
<c-button :disabled="isRoutingDisable" class="medium_bcs" size="medium"
style="margin-left: 20" type="primary">ReRouting
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onSeppSndagn">
{{$t('sepp.BT000015')}}
<c-button class="medium_bcs" size="medium" style="margin-left: 20" type="primary">
{{ $t('public.导出Excel') }}
</c-button>
</c-col>
</el-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onSeppDrp">
{{$t('sepp.BT000016')}}
</c-button>
</c-col>
<el-col :span="24" style="margin-top: 10px">
<div style="height: 90%">
<c-col :span="24">
<el-tabs v-model="activeTab" class="y-tabs">
<el-tab-pane label="报文失败处理" name="fb">
<el-table :data="stmData.data" :columns="stmData.columns" v-loading="load" style="width: 100%"
@selection-change="handleSelectionChange"
size="small" :border="true" height="calc(100vh - 480px)" :highlight-current-row="true">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column v-for="(item, key) in stmData.columns" :key="key" :label="item.label" :prop="item.prop"
:min-width="item.width">
</el-table-column>
</el-table>
<c-col :span="12">
<c-button size="small" type="primary" @click="onSeppRtn">
{{$t('sepp.BT000014')}}
</c-button>
<el-pagination layout="total, sizes, prev, pager, next, jumper" :total="pagination.total"
:page-size="pagination.pageSize" :current-page.sync="pagination.pageNum" @size-change="handleSizeChange"
@current-change="handleCurrentChange">
</el-pagination>
</el-tab-pane>
</el-tabs>
</c-col>
</div>
</el-col>
</div>
</template>
<script>
import Api from "~/service/Api"
import commonProcess from "~/mixin/commonProcess";
import CodeTable from "~/config/CodeTable"
import Event from "../model/Event"
import event from "../event";
export default {
inject: ['root'],
props:["model","codes"],
mixins: [commonProcess],
data(){
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeTab: 'fb',
load: false,
subtypCodes: [],
multipleSelection:[],
stmData: {
columns: [
{
label: "起息日",
prop: "valdat",
width: "180px"
},
{
label: "20域编号",
prop: "ownref",
width: "180px"
},
{
label: "21域名编号",
prop: "othref",
width: "120px"
},
{
label: "币种",
prop: "cur",
width: "120px"
},
{
label: "金额",
prop: "amt",
width: "120px"
},
{
label: "账号",
prop: "act",
width: "120px"
},
{
label: "费用明细",
prop: "dtlchg",
width: "120px"
},
{
label: "报文类型",
prop: "subtyp",
width: "120px"
},
{
label: "行内系统",
prop: "chnipt",
width: "120px"
},
{
label: "处理状态",
prop: "sta",
width: "120px"
},
{
label: "账户行BIC(53域)",
prop: "actbic",
width: "120px"
},
{
label: "账户行BIC(54域)",
prop: "actbic",
width: "250px"
},
{
label: "发报行BIC",
prop: "sndbic",
width: "150px"
},
{
label: "收报行BIC",
prop: "rcvbic",
width: "150px"
},
{
label: "报文标准",
prop: "msgtyp",
width: "150px"
},
{
label: "GPI标识",
prop: "gpi",
width: "150px"
},
{
label: "子系统",
prop: "",
width: "150px"
},
{
label: "处理时间",
prop: "sttdattim",
width: "150px"
},
],
data: [],
},
pagination: {
pageNum: 1,
pageSize: 10,
total: 0,
},
};
},
computed:{
isFoldDisable: function(){
return this.multipleSelection.length == 0;
} ,
isRoutingDisable:function(){
return this.multipleSelection.length == 0;
}
},
methods:{...Event},
created:function(){
watch: {
'model.sndp.msgtyp': {
handler: function (newTyp, oldTyp) {
// 把已经选择的 subtyp 重置
this.model.sndp.subtyp = '';
const { codes } = this;
if (newTyp == 'txt') {
this.subtypCodes = codes.subtypfps;
} else if (newTyp == 'iso') {
this.subtypCodes = codes.subtypiso;
} else if (newTyp == 'xml') {
this.subtypCodes = codes.subtypcps;
} else {
this.subtypCodes = codes.subtyp1;
}
},
deep: true
}
},
methods: {
},
mounted: function () {
},
};
</script>
<style lang="less" scoped>
::v-deep .c-content-scrollbar {
height: 100% !important;
}
.eibs-tabs /deep/ {
.m-table-search {
padding: 20px 0px 10px 0px;
}
}
</script>
<style>
.header-wrap {
height: 36px;
display: flex;
justify-content: space-between;
align-items: center;
.title {
font-size: 16px;
color: #000;
}
.close-btn {
padding: 3px;
cursor: pointer;
}
}
.m-list-btns {
height: 300px;
overflow: auto;
}
.medium_bcs {
border-radius: 5px;
}
.m-table-search {
padding: 20px 0px 10px 0px;
}
.pagination-box {
width: 100%;
height: 30px;
display: flex;
align-items: center;
justify-content: flex-end;
padding: 0 10px;
background: #fff;
margin-top: 5px;
}
.el-dialog__body {
padding: 10px 5px 50px;
}
.m-table-search {
padding: 20px 0px 10px 0px;
}
.btn-group-wrap {
max-height: 200px;
width: 100%;
overflow-y: auto;
display: flex;
align-items: flex-start;
justify-content: flex-start;
flex-wrap: wrap;
}
.btn-item {
margin-bottom: 10px;
margin-right: 10px;
}
</style>
<template>
<div class="eContainer">
<el-form :model="model" :rules="rules" ref="modelForm" label-width="150px" label-position="right" size="small" :validate-on-rule-change="false">
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="myTabClick">
<!--sepp PD000000 发送失败处理主页 -->
<el-tab-pane :label="$t('sepp.PD000000')" name="mainp">
<m-mainp :model="model" :codes="codes"/>
</el-tab-pane>
</c-tabs>
<div class="eContainer-search">
<el-form
:model="model"
:rules="rules"
ref="modelForm"
label-width="120px"
label-position="right"
size="small"
:validate-on-rule-change="false"
>
<c-content>
<m-mainp :model="model" :codes="codes" ref="mainp"/>
</c-content>
</el-form>
</div>
</template>
<script>
import Api from "~/service/Api"
import CodeTable from "~/config/CodeTable"
import Msgsep from "../model"
import commonProcess from "~/mixin/commonProcess"
import Check from "../model/Check"
import Default from "../model/Default"
import Pattern from "../model/Pattern"
import Mainp from "./Mainp"
import CodeTable from "~/config/CodeTable";
import Msgsep from "../model";
import event from "../event"
import Mainp from "./Mainp.vue"
export default {
name: "Msgsep",
components:{
"m-mainp" : Mainp,
},
provide() {
return {
root: this
}
},
mixins: [commonProcess], // 里面包含了Default、Check等的公共处理
mixins: [event], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "mainp",
trnName: "msgsep",
trnType: "",
model: new Msgsep().data,
checkRules: Check,
defaultRules: Default,
pattern: Pattern,
rules: null,
codes: {
kpatyp:CodeTable.kpatyp,
cur:CodeTable.cur,
sdcflg:CodeTable.sdcflg,
gpicod:CodeTable.gpicod,
fmssta:CodeTable.fmssta,
clrsys:CodeTable.clrsys,
stacod:CodeTable.stacod,
bnksta:CodeTable.bnksta,
gpista:CodeTable.gpista,
kpadir:CodeTable.kpadir,
area:CodeTable.area,
cpsfxdtyp:CodeTable.cpsfxdtyp,
rspsta:CodeTable.rspsta,
sta:CodeTable.sta,
actsta:CodeTable.actsta,
offsta:CodeTable.offsta,
batcharge:CodeTable.batcharge,
msgmst:CodeTable.msgmst,
yosflg:CodeTable.yosflg,
filtyp:CodeTable.filtyp,
dircod:CodeTable.dircod,
kpstyp:CodeTable.kpstyp,
dcflg:CodeTable.dcflg,
msgtyp:CodeTable.msgtyp,
chncod:CodeTable.chncod,
msgsta:CodeTable.msgsta,
usratr:CodeTable.usratr,
msgchksta:CodeTable.msgchksta,
setmth:CodeTable.setmth,
chniptcod:CodeTable.chniptcod,
dtlchg:CodeTable.dtlchg,
},
}
},
methods:{
myTabClick(tab){
this.tabClick(tab)
/**
* do it yourself
**/
}
codes:{...CodeTable},
};
},
created:async function(){
console.log("进入msgsep交易");
let rtnmsg = {}; // await this.init({})
if(rtnmsg.respCode == SUCCESS)
{
this.updateModel(rtnmsg.data)
//TODO 处理数据逻辑
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
}
}
methods:{},
created:async function() {},
};
</script>
<style>
<style scoped>
</style>
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