Commit b0d10ca2 by jianglong

修改crtsel

parent 883b9a11
import Api from "~/service/Api";
import moment from "moment";
export default {
methods: {
async handleSearch() {
let opndatfrom = this.model.infcon.opndatfrom;
if (!opndatfrom || opndatfrom == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询开始日期必输!"),
});
return;
}
let opndatto = this.model.infcon.opndatto;
if (!opndatto || opndatto == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询结束日期必输!"),
});
return;
}
this.load = true;
let rtnmsg = await Api.post("/funds/crtsel/list" , {
...this.model.infcon,
pageNumber: this.pagination.pageNumber <= 0 ? 1 : this.pagination.pageNumber,
pageSize: this.pagination.pageSize <= 0 ? 10 : this.pagination.pageSize,
opndatfrom: moment(opndatfrom).format("YYYY-MM-DD"),
opndatto: moment(opndatto).format("YYYY-MM-DD"),
});
if (rtnmsg.respCode == SUCCESS) {
this.load = false;
this.stmData.data = [];
this.stmData.data = rtnmsg.data.list;
console.log(this.stmData)
this.pagination.total = rtnmsg.data.total;
} else {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.服务请求失败!"),
});
}
this.load = false;
},
async handleReset() {
this.model.infcon.seaownref = "";
this.model.infcon.opndatfrom = new Date();
this.model.infcon.opndatto = new Date();
this.model.infcon.nam = "";
this.model.infcon.seacur = "";
this.model.infcon.eaamtfr = "";
this.model.infcon.eaamtto = "";
this.model.infcon.ownusr = "";
this.model.infcon.usr = "";
this.model.infcon.acc = "";
this.model.infcon.acc2 = "";
this.model.infcon.searef = "";
this.model.infcon.ptyextkey = "";
this.model.infcon.ptynam = "";
this.model.infcon.seapty = "";
this.model.infcon.searol = "";
this.model.infcon.usrextkey = "";
this.model.infcon.seasta = "";
this.model.infcon.accmng = "";
this.model.infcon.seapaytyp = "";
this.model.infcon.msgtyp = "";
},
//首字母大写
toTitleCase(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
},
// 处理
async handler(row) {
this.handleModel = row;
this.trnUrl = "funds";
this.inifrm = "crtsel";
this.initdialog = true;
},
//双击表格数据
async TableDblRow(row) {
this.handler(row);
},
//点击页签
async handleClickTab() {
// switch (this.activeTab) {
// case "jsh":
// this.titleNam = "结售汇交易列表";
// break;
// case "dhpp":
// this.titleNam = "外币兑换平盘交易列表";
// break;
// default:
// this.titleNam = "交易列表";
// break;
// }
},
//单击表格数据
TableRowClick(row) {
this["selectedModel" ] = row;
},
changeOwnref() {},
async handleClick(btn, row) {
this.routerPush({
path: "/business/" + btn.code.toLowerCase(),
query: { inr: row.inr, pntinr: row.pntinr },
});
this.initdialog = false;
},
// pageSize改变
handleSizeChange(val) {
this.pagination.pageNumber = 1;
this.pagination.pageSize = val;
this.handleSearch();
},
// 页码改变
handleCurrentChange(val) {
this.pagination.pageNumber = val;
this.handleSearch();
},
toCrtcri() {
this.routerPush({
path: "/business/crtcri",
});
},
toCrtcro() {
this.routerPush({
path: "/business/crtcro",
});
},
// 详情
async details(row) {
const params = {
ownref: row.ownref,
shgref: row.shgref ? row.shgref.trim() : "",
};
const res = await Api.post("/manager/trn/getTrnListByOwnref", params);
if (res.respCode === SUCCESS) {
if (res.data.length === 1) {
if (this.oldRefId && this.$refs[this.oldRefId]) {
this.$refs[this.oldRefId].showPopper = false;
}
this.display(res.data[0]);
} else {
this.trnData.data = res.data;
this.oldRefId = "popover_" + row.inr;
this.$refs[this.oldRefId].showPopper = true;
}
}
},
closeDisplayDialog() {
if (this.oldRefId && this.$refs[this.oldRefId]) {
this.$refs[this.oldRefId].showPopper = false;
}
},
//Info
toInfo(row, objtyp, subobjtyp) {
this.routerPush({
path: "/business/crdinf",
query: {
inr: row.inr,
objtyp: objtyp,
pntinr: row.pntinr,
subobjtyp: subobjtyp,
},
});
},
// 关闭详情弹框
closeDetailsDialog(refId) {
if (refId && this.$refs[refId]) {
this.$refs[refId].showPopper = false;
}
},
// 关闭处理弹框
closeHandlerDialog() {
this.initdialog = false;
},
/**
* 打开详情页面
* @param row
*/
display(row) {
if (this.oldRefId && this.$refs[this.oldRefId]) {
this.$refs[this.oldRefId].showPopper = false;
}
// 历史快照
if (row.inr.length == 8) {
this.routerPush({
path: "/business/HistoryRecord",
query: {
businessInr: row.inr,
businessType: "TRN",
type: "view",
},
});
} else if (row.inr.length == 16) {
this.routerPush({
path: `/display/${row.inifrm.toLowerCase()}`,
query: {
businessInr: row.inr,
businessType: "TRN",
},
});
}
},
checkData(row) {
this.routerPush({
path: "/business-new/litdck",
query: {
inr: this.handleModel.inr,
brdinr: row.inr,
},
});
this.litdckdialog = false;
this.$options.methods.closeHandlerDialog.call(this);
},
//修改弹窗状态
changeBtn(isVisible) {
this.initdialog = isVisible;
},
//获取码表数据
getCodeTable(tbl, uil, value) {
if (uil) {
uil = "EN";
}
let localCodes = localStorage.getItem("localCodes");
if (localCodes) {
let codeobj = JSON.parse(localCodes)[tbl + "_" + uil + "_COD"];
if (codeobj) {
let codeobj = codeobj.filter((m) => m.value === value);
return codeobj ? codeobj.label : value;
} else {
return value;
}
} else {
return value;
}
},
//获取码表数据
getCodelabel(value, codenam) {
const codeobj = this.model.dbCodes[codenam].find(
(obj) => obj.value === value
);
return codeobj ? codeobj.label : value;
},
async getdbCode(codeType, uil, codeNam) {
let params = {
codeType: codeType,
uil: uil ? uil : "EN",
};
let rtnmsg = await Api.post("/manager/dic/listDicInfo", params);
if (rtnmsg.respCode === SUCCESS) {
let curList = rtnmsg.data.map((item) => ({
value: item.codeValue,
label: item.codeName,
}));
this.model.dbCodes[codeNam] = curList;
}
},
},
};
import Api from "~/service/Api";
export default class infcrd {
constructor() {
this.data = {
infcon: {
seaownref: "", // 业务编号 .infcon.seaownref
seanam: "", // 业务名称 .infcon.nam
opndat: "", //
opndatfrom: new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000), // 有效日期自 .infcon.opndatfrom
opndatto: new Date(), // Open Date to .infcon.opndatto
seacur: "", // 币种 .infcon.seacur
seaamtfr: "", // 金额自 .infcon.seaamtfr
seaamtto: "", // Amount to .infcon.seaamtto
ownusr: "",
usr: "",
acc: "",
acc2: "",
searef: "",
ptyextkey: "", // 选择一个参与方 .infcon.pty.extkey
ptynam: "", // External Visible Name .infcon.pty.nam
seapty: "", // 参与方名称/BIC .infcon.seapty
searol: "",
usrextkey: "", // User ID .infcon.usr.extkey
seasta: "", // Status .infcon.seasta
accmng: "", // Account manager .infcon.accmng
seapaytyp: "", //类型
msgtyp: "", //类型
clrtyp:"I",
},
infbut: {
dspstm: "", // display stream .infbut.dspstm
},
//fttyp: "", // Funds Trans. Type .fttyp
pageId: "", // ctx的key
dbCodes: {
TRAINT: [],
TRAOUT: [],
},
};
}
}
<template>
<div class="eibs-tab">
<c-list-search @form-reset="handleReset" @form-search="handleSearch">
<!-- 持续展示区 -->
<template v-slot="searchSlot">
<el-row>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="业务编号" prop="seaownref" style="width: 100%">
<c-input v-model="model.infcon.seaownref" maxlength="40" placeholder="请输入业务编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="交易有效日期" prop="opndatfrom" style="width: 100%">
<c-col :span="11">
<c-date-picker type="date" v-model="model.infcon.opndatfrom" 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.infcon.opndatto" style="width: 100%"></c-date-picker>
</c-col>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="业务名称" prop="seanam" style="width: 100%">
<c-input v-model="model.infcon.seanam" maxlength="40" placeholder="请填写业务名称">
</c-input>
</el-form-item>
</c-col>
</c-col>
</el-row>
<!-- 可控展示区 -->
<el-row v-show="searchSlot.searchToggle">
<c-col :span="24">
<c-col :span="8">
<el-form-item label="客户" prop="ptyextkey" style="width: 100%">
<c-input v-model="model.infcon.ptyextkey" maxlength="20" placeholder="请输入客户编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="客户名称" prop="ptynam" style="width: 100%">
<c-input v-model="model.infcon.ptynam" maxlength="40" placeholder="请输入客户名称">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="账户经理" prop="accmng" style="width: 100%">
<c-input v-model="model.infcon.accmng" maxlength="40" placeholder="请输入账户经理名称">
</c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="付款类型" prop="seapaytyp" style="width: 100%">
<c-select v-model="model.infcon.seapaytyp" style="width: 100%" placeholder="请选择类型" :code="codes.seapaytyp">
</c-select>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="SWIFT类型" prop="msgtyp" style="width: 100%">
<c-select v-model="model.infcon.msgtyp" style="width: 100%" placeholder="请选择类型" :code="codes.msgtyp">
</c-select>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="是否闭卷" prop="isClosed" style="width: 100%">
<c-select v-model="model.infcon.isClosed" dbCode='cxmflg' placeholder="请选择是否闭卷">
</c-select>
</el-form-item>
</c-col>
</c-col>
</el-row>
</template>
</c-list-search>
<c-col :span="24" style="margin-top: 10px; margin-bottom: 10px">
<c-button class="medium_bcs" size="medium" type="primary" style="margin-top: 10px; margin-bottom: 10px" title="汇入清算" @click="toCrtcri">
汇入清算
</c-button>
</c-col>
<div style="height: 90%">
<c-col :span="24">
<c-tabs v-model="activeTab" type="card" ref="elment">
<el-tab-pane label="清算查询" name="crosel">
<el-table :data="stmData.data" :columns="stmData.columns" v-loading="load" style="width: 100%" size="small" :border="true" height="calc(100vh - 480px)" :highlight-current-row="true">
<el-table-column v-for="(item, key) in stmData.columns" :key="key" :label="item.label" :prop="item.prop" :min-width="item.width">
<template slot-scope="scope">
<div style="text-align: center" v-if="item.prop.indexOf('clrtyp') >= 0">
{{
findCodeLabel(
codes.clrtyp1,
scope.row[item.prop].trim()
)
}}
</div>
<div style="text-align: center" v-else-if="item.prop.indexOf('trnman') >= 0">
{{
findCodeLabel(codes.trnman, scope.row[item.prop].trim())
}}
</div>
<div style="text-align: center" v-else-if="item.prop.indexOf('trdint') >= 0">
{{ getCodelabel(scope.row[item.prop].trim(), "TRAINT") }}
</div>
<div style="text-align: center" v-else-if="item.prop.indexOf('trdout') >= 0">
{{ getCodelabel(scope.row[item.prop].trim(), "TRAOUT") }}
</div>
<div v-else>{{ scope.row[item.prop] }}</div>
</template>
</el-table-column>
<el-table-column fixed="right" prop="op" label="操作" width="180px">
<template slot="header">
<c-col :span="11" style="text-align: center">
<span>操作</span>
</c-col>
</template>
<template slot-scope="scope">
<c-button style="margin-right: 5px" size="small" type="text" @click="handler(scope.row)">处理
</c-button>
<span> </span>
<el-popover trigger="manual" v-clickOutside="closeDisplayDialog" placement="top-end" title="历史信息" width="1200" :ref="'popover_' + scope.row.inr">
<div style="
text-align: right;
margin-top: -30px;
margin-right: 5px;
font-size: 16px;
">
<span class="el-icon-close" style="cursor: pointer" @click="
closeDetailsDialog('popover_' + scope.row.inr)
"></span>
</div>
<el-table :data="trnData.data" :columns="trnData.columns" :showButtonFlg="true">
<el-table-column v-for="(item, key) in trnData.columns" :key="key" :label="item.label" :prop="item.prop" :width="item.width">
<template slot-scope="scope">
<div>{{ scope.row[item.prop] }}</div>
</template>
</el-table-column>
<el-table-column fixed="right" prop="op" label="操作" width="100px">
<template slot-scope="scope">
<c-button style="margin-left: 0" size="small" @click="display(scope.row)">快照
</c-button>
</template>
</el-table-column>
</el-table>
<c-button style="margin-left: 0" type="text" size="small" slot="reference" @click="details(scope.row)">
快照
</c-button>
<c-button style="margin-left: 0" type="text" size="small" slot="reference" @click="toInfo(scope.row, 'CRD')">
Info
</c-button>
</el-popover>
</template>
</el-table-column>
</el-table>
<div class="pagination-box" style="display: block">
<el-pagination layout="total, sizes, prev, pager, next, jumper" :total="Number(pagination.total)" :page-size="pagination.pageSize" :current-page.sync="pagination.pageNumber" @size-change="handleSizeChange" @current-change="handleCurrentChange">
</el-pagination>
</div>
</el-tab-pane>
</c-tabs>
</c-col>
<!-- 点击处理弹框 -->
<el-dialog v-dialogDrag v-if="initdialog" :visible.sync="initdialog" :title="titleNam" append-to-body width="70%">
<m-busbtn ref="childs" :trnUrl="trnUrl" :inifrm="inifrm" :activeTab="activeTab" :model="handleModel" @onChoose="handleClick"></m-busbtn>
</el-dialog>
<!--业务锁及待处理数据弹窗-->
<m-chklap ref="lockAndPending" @changeBtn="changeBtn"></m-chklap>
</div>
</div>
</template>
<script>
import event from "../event";
import BusNavbar from "~/components/business/BusNavbar1";
import CheckLockAndPending from "~/components/business/CheckLockAndPending";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"m-busbtn": BusNavbar,
"m-chklap": CheckLockAndPending,
},
data() {
return {
activeTab: "crosel",
load: false,
sptVisible: false,
dealSptData: [],
selectedModelCr: {},
handleModel: {},
queryCon: {},
trnUrl: "",
inifrm: "",
oldRefId: "",
load: false,
titleNam: "清算交易列表",
stmData: {
columns: [{
label: "类型",
prop: "clrtyp",
width: "80px",
},
{
label: "业务编号",
prop: "ownref",
width: "140px",
},
{
label: "业务名称",
prop: "nam",
width: "200px",
},
{
label: "清算币种",
prop: "maxcur",
width: "80px",
},
{
label: "清算金额",
prop: "maxamt",
width: "80px",
},
{
label: "发报方",
prop: "sndExtkey",
width: "150px",
},
{
label: "发报方名称",
prop: "sndName",
width: "240px",
},
{
label: "收报方",
prop: "rcvExtkey",
width: "150px",
},
{
label: "收报方名称",
prop: "rcvName",
width: "240px",
},
{
label: "账户行",
prop: "accExtkey",
width: "150px",
},
{
label: "账户行名称",
prop: "accName",
width: "240px",
},
{
label: "经办人",
prop: "ownusr",
width: "120px",
},
{
label: "清算日期",
prop: "opndat",
width: "90px",
},
{
label: "闭卷日期",
prop: "clsdat",
width: "90px",
},
],
data: [],
},
// 快照
trnData: {
columns: [{
label: "业务编号",
prop: "ownref",
width: "160",
},
{
label: "交易名称",
prop: "inifrmname",
width: "220",
},
{
label: "交易码",
prop: "inifrm",
width: "100",
},
{
label: "交易时间",
prop: "inidattim",
width: "160",
},
{
label: "状态",
prop: "relflgName",
width: "100",
},
{
label: "币种",
prop: "reloricur",
width: "100",
},
{
label: "金额",
prop: "reloriamt",
width: "150",
},
],
data: [],
},
// 处理
initdialog: false,
handlerDataList: [],
pagination: {
pageNumber: 1,
pageSize: 10,
total: 0,
},
};
},
methods: {},
mounted() {
// this.getdbCode("TRAINT", "EN", "TRAINT");
// this.getdbCode("TRAOUT", "EN", "TRAOUT");
},
created: 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;
}
}
.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-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-infsea :model="model" :codes="codes" ref="infsea"/>
</c-content>
</el-form>
</div>
</template>
<script>
import CodeTable from "~/config/CodeTable";
import infcrd from "../model";
import event from "../event"
import Infsea from "./Infsea.vue"
export default {
name: "Crisel",
components:{
"m-infsea" : Infsea,
},
provide() {
return {
root: this
}
},
mixins: [event], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "infsea",
trnName: "crisel",
model: new infcrd().data,
rules: null,
codes:{...CodeTable},
};
},
methods:{},
created:async function() {},
};
</script>
<style scoped>
</style>
import Api from "~/service/Api";
import moment from "moment";
export default {
methods: {
async handleSearch() {
let opndatfrom = this.model.infcon.opndatfrom;
if (!opndatfrom || opndatfrom == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询开始日期必输!"),
});
return;
}
let opndatto = this.model.infcon.opndatto;
if (!opndatto || opndatto == "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询结束日期必输!"),
});
return;
}
this.load = true;
let rtnmsg = await Api.post("/funds/crtsel/list" , {
...this.model.infcon,
pageNumber: this.pagination.pageNumber <= 0 ? 1 : this.pagination.pageNumber,
pageSize: this.pagination.pageSize <= 0 ? 10 : this.pagination.pageSize,
opndatfrom: moment(opndatfrom).format("YYYY-MM-DD"),
opndatto: moment(opndatto).format("YYYY-MM-DD"),
});
if (rtnmsg.respCode == SUCCESS) {
this.load = false;
this.stmData.data = [];
this.stmData.data = rtnmsg.data.list;
console.log(this.stmData)
this.pagination.total = rtnmsg.data.total;
} else {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.服务请求失败!"),
});
}
this.load = false;
},
async handleReset() {
this.model.infcon.seaownref = "";
this.model.infcon.opndatfrom = new Date();
this.model.infcon.opndatto = new Date();
this.model.infcon.nam = "";
this.model.infcon.seacur = "";
this.model.infcon.eaamtfr = "";
this.model.infcon.eaamtto = "";
this.model.infcon.ownusr = "";
this.model.infcon.usr = "";
this.model.infcon.acc = "";
this.model.infcon.acc2 = "";
this.model.infcon.searef = "";
this.model.infcon.ptyextkey = "";
this.model.infcon.ptynam = "";
this.model.infcon.seapty = "";
this.model.infcon.searol = "";
this.model.infcon.usrextkey = "";
this.model.infcon.seasta = "";
this.model.infcon.accmng = "";
this.model.infcon.seapaytyp = "";
this.model.infcon.msgtyp = "";
},
//首字母大写
toTitleCase(str) {
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
},
// 处理
async handler(row) {
this.handleModel = row;
this.trnUrl = "funds";
this.inifrm = "crtsel";
this.initdialog = true;
},
//双击表格数据
async TableDblRow(row) {
this.handler(row);
},
//点击页签
async handleClickTab() {
// switch (this.activeTab) {
// case "jsh":
// this.titleNam = "结售汇交易列表";
// break;
// case "dhpp":
// this.titleNam = "外币兑换平盘交易列表";
// break;
// default:
// this.titleNam = "交易列表";
// break;
// }
},
//单击表格数据
TableRowClick(row) {
this["selectedModel" ] = row;
},
changeOwnref() {},
async handleClick(btn, row) {
this.routerPush({
path: "/business/" + btn.code.toLowerCase(),
query: { inr: row.inr, pntinr: row.pntinr },
});
this.initdialog = false;
},
// pageSize改变
handleSizeChange(val) {
this.pagination.pageNumber = 1;
this.pagination.pageSize = val;
this.handleSearch();
},
// 页码改变
handleCurrentChange(val) {
this.pagination.pageNumber = val;
this.handleSearch();
},
toCrtcri() {
this.routerPush({
path: "/business/crtcri",
});
},
toCrtcro() {
this.routerPush({
path: "/business/crtcro",
});
},
// 详情
async details(row) {
const params = {
ownref: row.ownref,
shgref: row.shgref ? row.shgref.trim() : "",
};
const res = await Api.post("/manager/trn/getTrnListByOwnref", params);
if (res.respCode === SUCCESS) {
if (res.data.length === 1) {
if (this.oldRefId && this.$refs[this.oldRefId]) {
this.$refs[this.oldRefId].showPopper = false;
}
this.display(res.data[0]);
} else {
this.trnData.data = res.data;
this.oldRefId = "popover_" + row.inr;
this.$refs[this.oldRefId].showPopper = true;
}
}
},
closeDisplayDialog() {
if (this.oldRefId && this.$refs[this.oldRefId]) {
this.$refs[this.oldRefId].showPopper = false;
}
},
//Info
toInfo(row, objtyp, subobjtyp) {
this.routerPush({
path: "/business/crdinf",
query: {
inr: row.inr,
objtyp: objtyp,
pntinr: row.pntinr,
subobjtyp: subobjtyp,
},
});
},
// 关闭详情弹框
closeDetailsDialog(refId) {
if (refId && this.$refs[refId]) {
this.$refs[refId].showPopper = false;
}
},
// 关闭处理弹框
closeHandlerDialog() {
this.initdialog = false;
},
/**
* 打开详情页面
* @param row
*/
display(row) {
if (this.oldRefId && this.$refs[this.oldRefId]) {
this.$refs[this.oldRefId].showPopper = false;
}
// 历史快照
if (row.inr.length == 8) {
this.routerPush({
path: "/business/HistoryRecord",
query: {
businessInr: row.inr,
businessType: "TRN",
type: "view",
},
});
} else if (row.inr.length == 16) {
this.routerPush({
path: `/display/${row.inifrm.toLowerCase()}`,
query: {
businessInr: row.inr,
businessType: "TRN",
},
});
}
},
checkData(row) {
this.routerPush({
path: "/business-new/litdck",
query: {
inr: this.handleModel.inr,
brdinr: row.inr,
},
});
this.litdckdialog = false;
this.$options.methods.closeHandlerDialog.call(this);
},
//修改弹窗状态
changeBtn(isVisible) {
this.initdialog = isVisible;
},
//获取码表数据
getCodeTable(tbl, uil, value) {
if (uil) {
uil = "EN";
}
let localCodes = localStorage.getItem("localCodes");
if (localCodes) {
let codeobj = JSON.parse(localCodes)[tbl + "_" + uil + "_COD"];
if (codeobj) {
let codeobj = codeobj.filter((m) => m.value === value);
return codeobj ? codeobj.label : value;
} else {
return value;
}
} else {
return value;
}
},
//获取码表数据
getCodelabel(value, codenam) {
const codeobj = this.model.dbCodes[codenam].find(
(obj) => obj.value === value
);
return codeobj ? codeobj.label : value;
},
async getdbCode(codeType, uil, codeNam) {
let params = {
codeType: codeType,
uil: uil ? uil : "EN",
};
let rtnmsg = await Api.post("/manager/dic/listDicInfo", params);
if (rtnmsg.respCode === SUCCESS) {
let curList = rtnmsg.data.map((item) => ({
value: item.codeValue,
label: item.codeName,
}));
this.model.dbCodes[codeNam] = curList;
}
},
},
};
import Api from "~/service/Api";
export default class infcrd {
constructor() {
this.data = {
infcon: {
seaownref: "", // 业务编号 .infcon.seaownref
seanam: "", // 业务名称 .infcon.nam
opndat: "", //
opndatfrom: new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000), // 有效日期自 .infcon.opndatfrom
opndatto: new Date(), // Open Date to .infcon.opndatto
seacur: "", // 币种 .infcon.seacur
seaamtfr: "", // 金额自 .infcon.seaamtfr
seaamtto: "", // Amount to .infcon.seaamtto
ownusr: "",
usr: "",
acc: "",
acc2: "",
searef: "",
ptyextkey: "", // 选择一个参与方 .infcon.pty.extkey
ptynam: "", // External Visible Name .infcon.pty.nam
seapty: "", // 参与方名称/BIC .infcon.seapty
searol: "",
usrextkey: "", // User ID .infcon.usr.extkey
seasta: "", // Status .infcon.seasta
accmng: "", // Account manager .infcon.accmng
seapaytyp: "", //类型
msgtyp: "", //类型
clrtyp:"O",
},
infbut: {
dspstm: "", // display stream .infbut.dspstm
},
//fttyp: "", // Funds Trans. Type .fttyp
pageId: "", // ctx的key
dbCodes: {
TRAINT: [],
TRAOUT: [],
},
};
}
}
<template>
<div class="eibs-tab">
<c-list-search @form-reset="handleReset" @form-search="handleSearch">
<!-- 持续展示区 -->
<template v-slot="searchSlot">
<el-row>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="业务编号" prop="seaownref" style="width: 100%">
<c-input v-model="model.infcon.seaownref" maxlength="40" placeholder="请输入业务编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="交易有效日期" prop="opndatfrom" style="width: 100%">
<c-col :span="11">
<c-date-picker type="date" v-model="model.infcon.opndatfrom" 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.infcon.opndatto" style="width: 100%"></c-date-picker>
</c-col>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="业务名称" prop="seanam" style="width: 100%">
<c-input v-model="model.infcon.seanam" maxlength="40" placeholder="请填写业务名称">
</c-input>
</el-form-item>
</c-col>
</c-col>
</el-row>
<!-- 可控展示区 -->
<el-row v-show="searchSlot.searchToggle">
<c-col :span="24">
<c-col :span="8">
<el-form-item label="客户" prop="ptyextkey" style="width: 100%">
<c-input v-model="model.infcon.ptyextkey" maxlength="20" placeholder="请输入客户编号">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="客户名称" prop="ptynam" style="width: 100%">
<c-input v-model="model.infcon.ptynam" maxlength="40" placeholder="请输入客户名称">
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="账户经理" prop="accmng" style="width: 100%">
<c-input v-model="model.infcon.accmng" maxlength="40" placeholder="请输入账户经理名称">
</c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="付款类型" prop="seapaytyp" style="width: 100%">
<c-select v-model="model.infcon.seapaytyp" style="width: 100%" placeholder="请选择类型" :code="codes.seapaytyp">
</c-select>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="SWIFT类型" prop="msgtyp" style="width: 100%">
<c-select v-model="model.infcon.msgtyp" style="width: 100%" placeholder="请选择类型" :code="codes.msgtyp">
</c-select>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="是否闭卷" prop="isClosed" style="width: 100%">
<c-select v-model="model.infcon.isClosed" dbCode='cxmflg' placeholder="请选择是否闭卷">
</c-select>
</el-form-item>
</c-col>
</c-col>
</el-row>
</template>
</c-list-search>
<c-col :span="24" style="margin-top: 10px; margin-bottom: 10px">
<c-button class="medium_bcs" size="medium" type="primary" style="margin-top: 10px; margin-bottom: 10px" title="汇出清算" @click="toCrtcro">
汇出清算
</c-button>
</c-col>
<div style="height: 90%">
<c-col :span="24">
<c-tabs v-model="activeTab" type="card" ref="elment">
<el-tab-pane label="清算查询" name="crosel">
<el-table :data="stmData.data" :columns="stmData.columns" v-loading="load" style="width: 100%" size="small" :border="true" height="calc(100vh - 480px)" :highlight-current-row="true">
<el-table-column v-for="(item, key) in stmData.columns" :key="key" :label="item.label" :prop="item.prop" :min-width="item.width">
<template slot-scope="scope">
<div style="text-align: center" v-if="item.prop.indexOf('clrtyp') >= 0">
{{
findCodeLabel(
codes.clrtyp1,
scope.row[item.prop].trim()
)
}}
</div>
<div style="text-align: center" v-else-if="item.prop.indexOf('trnman') >= 0">
{{
findCodeLabel(codes.trnman, scope.row[item.prop].trim())
}}
</div>
<div style="text-align: center" v-else-if="item.prop.indexOf('trdint') >= 0">
{{ getCodelabel(scope.row[item.prop].trim(), "TRAINT") }}
</div>
<div style="text-align: center" v-else-if="item.prop.indexOf('trdout') >= 0">
{{ getCodelabel(scope.row[item.prop].trim(), "TRAOUT") }}
</div>
<div v-else>{{ scope.row[item.prop] }}</div>
</template>
</el-table-column>
<el-table-column fixed="right" prop="op" label="操作" width="180px">
<template slot="header">
<c-col :span="11" style="text-align: center">
<span>操作</span>
</c-col>
</template>
<template slot-scope="scope">
<c-button style="margin-right: 5px" size="small" type="text" @click="handler(scope.row)">处理
</c-button>
<span> </span>
<el-popover trigger="manual" v-clickOutside="closeDisplayDialog" placement="top-end" title="历史信息" width="1200" :ref="'popover_' + scope.row.inr">
<div style="
text-align: right;
margin-top: -30px;
margin-right: 5px;
font-size: 16px;
">
<span class="el-icon-close" style="cursor: pointer" @click="
closeDetailsDialog('popover_' + scope.row.inr)
"></span>
</div>
<el-table :data="trnData.data" :columns="trnData.columns" :showButtonFlg="true">
<el-table-column v-for="(item, key) in trnData.columns" :key="key" :label="item.label" :prop="item.prop" :width="item.width">
<template slot-scope="scope">
<div>{{ scope.row[item.prop] }}</div>
</template>
</el-table-column>
<el-table-column fixed="right" prop="op" label="操作" width="100px">
<template slot-scope="scope">
<c-button style="margin-left: 0" size="small" @click="display(scope.row)">快照
</c-button>
</template>
</el-table-column>
</el-table>
<c-button style="margin-left: 0" type="text" size="small" slot="reference" @click="details(scope.row)">
快照
</c-button>
<c-button style="margin-left: 0" type="text" size="small" slot="reference" @click="toInfo(scope.row, 'CRD')">
Info
</c-button>
</el-popover>
</template>
</el-table-column>
</el-table>
<div class="pagination-box" style="display: block">
<el-pagination layout="total, sizes, prev, pager, next, jumper" :total="Number(pagination.total)" :page-size="pagination.pageSize" :current-page.sync="pagination.pageNumber" @size-change="handleSizeChange" @current-change="handleCurrentChange">
</el-pagination>
</div>
</el-tab-pane>
</c-tabs>
</c-col>
<!-- 点击处理弹框 -->
<el-dialog v-dialogDrag v-if="initdialog" :visible.sync="initdialog" :title="titleNam" append-to-body width="70%">
<m-busbtn ref="childs" :trnUrl="trnUrl" :inifrm="inifrm" :activeTab="activeTab" :model="handleModel" @onChoose="handleClick"></m-busbtn>
</el-dialog>
<!--业务锁及待处理数据弹窗-->
<m-chklap ref="lockAndPending" @changeBtn="changeBtn"></m-chklap>
</div>
</div>
</template>
<script>
import event from "../event";
import BusNavbar from "~/components/business/BusNavbar1";
import CheckLockAndPending from "~/components/business/CheckLockAndPending";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"m-busbtn": BusNavbar,
"m-chklap": CheckLockAndPending,
},
data() {
return {
activeTab: "crosel",
load: false,
sptVisible: false,
dealSptData: [],
selectedModelCr: {},
handleModel: {},
queryCon: {},
trnUrl: "",
inifrm: "",
oldRefId: "",
load: false,
titleNam: "清算交易列表",
stmData: {
columns: [{
label: "类型",
prop: "clrtyp",
width: "80px",
},
{
label: "业务编号",
prop: "ownref",
width: "140px",
},
{
label: "业务名称",
prop: "nam",
width: "200px",
},
{
label: "清算币种",
prop: "maxcur",
width: "80px",
},
{
label: "清算金额",
prop: "maxamt",
width: "80px",
},
{
label: "发报方",
prop: "sndExtkey",
width: "150px",
},
{
label: "发报方名称",
prop: "sndName",
width: "240px",
},
{
label: "收报方",
prop: "rcvExtkey",
width: "150px",
},
{
label: "收报方名称",
prop: "rcvName",
width: "240px",
},
{
label: "账户行",
prop: "accExtkey",
width: "150px",
},
{
label: "账户行名称",
prop: "accName",
width: "240px",
},
{
label: "经办人",
prop: "ownusr",
width: "120px",
},
{
label: "清算日期",
prop: "opndat",
width: "90px",
},
{
label: "闭卷日期",
prop: "clsdat",
width: "90px",
},
],
data: [],
},
// 快照
trnData: {
columns: [{
label: "业务编号",
prop: "ownref",
width: "160",
},
{
label: "交易名称",
prop: "inifrmname",
width: "220",
},
{
label: "交易码",
prop: "inifrm",
width: "100",
},
{
label: "交易时间",
prop: "inidattim",
width: "160",
},
{
label: "状态",
prop: "relflgName",
width: "100",
},
{
label: "币种",
prop: "reloricur",
width: "100",
},
{
label: "金额",
prop: "reloriamt",
width: "150",
},
],
data: [],
},
// 处理
initdialog: false,
handlerDataList: [],
pagination: {
pageNumber: 1,
pageSize: 10,
total: 0,
},
};
},
methods: {},
mounted() {
// this.getdbCode("TRAINT", "EN", "TRAINT");
// this.getdbCode("TRAOUT", "EN", "TRAOUT");
},
created: 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;
}
}
.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-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-infsea :model="model" :codes="codes" ref="infsea"/>
</c-content>
</el-form>
</div>
</template>
<script>
import CodeTable from "~/config/CodeTable";
import infcrd from "../model";
import event from "../event"
import Infsea from "./Infsea.vue"
export default {
name: "Crosel",
components:{
"m-infsea" : Infsea,
},
provide() {
return {
root: this
}
},
mixins: [event], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "infsea",
trnName: "crosel",
model: new infcrd().data,
rules: null,
codes:{...CodeTable},
};
},
methods:{},
created:async function() {},
};
</script>
<style scoped>
</style>
...@@ -15,6 +15,10 @@ const BusRouter = [ ...@@ -15,6 +15,10 @@ const BusRouter = [
{ path: 'fxtfcm', component: () => import("./Fxtfcm/views"), name: 'Fxtfcm', meta: {keepAlive: true, title: '外币兑换平盘确认' , module: 'funds'} }, { path: 'fxtfcm', component: () => import("./Fxtfcm/views"), name: 'Fxtfcm', meta: {keepAlive: true, title: '外币兑换平盘确认' , module: 'funds'} },
{ path: 'fxtfcn', component: () => import("./Fxtfcn/views"), name: 'Fxtfcn', meta: {keepAlive: true, title: '外币兑换平盘销账' , module: 'funds' }}, { path: 'fxtfcn', component: () => import("./Fxtfcn/views"), name: 'Fxtfcn', meta: {keepAlive: true, title: '外币兑换平盘销账' , module: 'funds' }},
{ path: 'infcrd', component: () => import("./Infcrd/views"), name: 'Infcrd', meta: {keepAlive: true, title: '清算入口交易' , module: 'funds' }}, { path: 'infcrd', component: () => import("./Infcrd/views"), name: 'Infcrd', meta: {keepAlive: true, title: '清算入口交易' , module: 'funds' }},
{ path: 'crisel', component: () => import("./Crisel/views"), name: 'Crisel', meta: {keepAlive: true, title: '汇入清算' , module: 'funds' }},
{ path: 'crosel', component: () => import("./Crosel/views"), name: 'Crosel', meta: {keepAlive: true, title: '汇出清算' , module: 'funds' }},
{ {
path: "fxtfop", path: "fxtfop",
component: () => import("./Fxtfop/views"), component: () => import("./Fxtfop/views"),
......
...@@ -188,11 +188,11 @@ ...@@ -188,11 +188,11 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div <div
style="text-align: center" style="text-align: center"
v-if="item.prop.indexOf('crtyp') >= 0" v-if="item.prop.indexOf('clrtyp') >= 0"
> >
{{ {{
findCodeLabel( findCodeLabel(
codes.crt_crtyp, codes.clrtyp1,
scope.row[item.prop].trim() scope.row[item.prop].trim()
) )
}} }}
...@@ -396,48 +396,66 @@ export default { ...@@ -396,48 +396,66 @@ export default {
{ {
label: "类型", label: "类型",
prop: "clrtyp", prop: "clrtyp",
width: "180px", width: "80px",
}, },
{ {
label: "业务编号", label: "业务编号",
prop: "ownref", prop: "ownref",
width: "180px", width: "140px",
}, },
{ {
label: "业务名称", label: "业务名称",
prop: "nam", prop: "nam",
width: "180px", width: "200px",
}, },
{ {
label: "清算币种", label: "清算币种",
prop: "maxcur", prop: "maxcur",
width: "180px", width: "80px",
}, },
{ {
label: "清算金额", label: "清算金额",
prop: "maxamt", prop: "maxamt",
width: "180px", width: "80px",
}, },
{ {
label: "发报方", label: "发报方",
prop: "sndExtkey", prop: "sndExtkey",
width: "180px", width: "150px",
},
{
label: "发报方名称",
prop: "sndName",
width: "240px",
}, },
{ {
label: "收报方", label: "收报方",
prop: "rcvExtkey", prop: "rcvExtkey",
width: "180px", width: "150px",
},
{
label: "收报方名称",
prop: "rcvName",
width: "240px",
}, },
{ {
label: "账户行", label: "账户行",
prop: "accExtkey", prop: "accExtkey",
width: "180px", width: "150px",
},
{
label: "账户行名称",
prop: "accName",
width: "240px",
}, },
...@@ -450,13 +468,13 @@ export default { ...@@ -450,13 +468,13 @@ export default {
{ {
label: "清算日期", label: "清算日期",
prop: "opndat", prop: "opndat",
width: "120px", width: "90px",
}, },
{ {
label: "闭卷日期", label: "闭卷日期",
prop: "clsdat", prop: "clsdat",
width: "120px", width: "90px",
}, },
......
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