Commit 5d499edb by jianglong

新增INFCRD交易

parent ab7910ae
......@@ -2003,6 +2003,11 @@ const CodeTable = {
{ label: "线下清算登记", value: "OFLN" },
{ label: "线上清算申请", value: "ONLN" },
],
clrtyp1: [
{ label: "汇入清算", value: "I" },
{ label: "汇出清算", value: "O" },
],
clsflg: [
{ label: "全部", value: "A" },
{ label: "只打开", value: "" },
......
import Utils from "~/utils";
export default {
methods: {
buildPtspta(ptsptaObj) {
let pts = ptsptaObj.pts;
return {
rol: pts.rol,
name: pts.nam,
ptyinr: pts.ptyinr,
ptainr: pts.ptainr,
extkey: pts.extkey,
dftdsp: pts.dftdsp,
dftcur: pts.dftcur,
dftact: pts.dftact,
dftfeecur: pts.dftfeecur,
dftactptainr: pts.dftactptainr,
glggrpflg: pts.glggrpflg,
adrblk: pts.adrblk,
pts,
};
},
buildCommonData(model, trnName) {
let ptsptaList = Utils.formatPtspta(model.crdgrp, this.buildPtspta);
return {
rec: {
objtyp: "FXT",
ownref: model.crdgrp.rec.ownref,
},
cbsMap: {
MAX: model.crdgrp.cbs.max,
NOM1: model.crdgrp.cbs.nom1,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : "ZL",
};
},
},
};
......@@ -3,6 +3,280 @@ 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;
}
},
},
};
export default {
"recpan.recget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"crdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"recpan.recget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"crdgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"crdgrp.snd.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 20,message:"长度不能超过20"}
],
"recpan.usr.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 8,message:"长度不能超过8"}
],
"recpan.usrget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"recpan.sndp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"crdgrp.snd.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"recpan.sndp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"crdgrp.cbs.max.amt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"crdgrp.snd.pts.adrblk":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"crdgrp.snd.dbfadrblkcn":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"crdgrp.rec.msgref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"crdgrp.rec.msgact":[
{type: "string", required: false, message: "必输项"},
{max: 21,message:"长度不能超过21"}
],
"crdgrp.acc.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 20,message:"长度不能超过20"}
],
"recpan.accp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"crdgrp.acc.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"recpan.accp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"crdgrp.rec.errmsg":[
{type: "string", required: true, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"crdgrp.acc.pts.adrblk":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"crdgrp.acc.dbfadrblkcn":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"recpan.valdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
}
\ No newline at end of file
import Api from "~/service/Api"
import Pts from "~/page/Model/Common/Pts"
import Pub from "~/components/business/commonModel/index.js";
import Api from "~/service/Api";
export default class Infcrd {
constructor() {
this.data = {
crdgrp: {
cbs: {
max: {
cur: "", // 清算币种及金额 .crdgrp.cbs.max.cur
amt: "", // 清算币种及金额 .crdgrp.cbs.max.amt
},
},
rec: {
msgact: "", // 汇款账号(Tag59) .crdgrp.rec.msgact
ownref: "", // 业务编号 .crdgrp.rec.ownref
nam: "", // 名称 .crdgrp.rec.nam
msgref: "", // 本行业务编号 .crdgrp.rec.msgref
rcvobjtyp: "", // 业务种类 .crdgrp.rec.rcvobjtyp
rcvbchinr: "", // 归属机构 .crdgrp.rec.rcvbchinr
errmsg: "", // 出错信息 .crdgrp.rec.errmsg
custyp: "", // 客户类型 .crdgrp.rec.custyp
},
snd: {
pts: new Pts().data,
dbfadrblkcn: "", // Chinese address .crdgrp.snd.dbfadrblkcn
},
acc: {
pts: new Pts().data,
dbfadrblkcn: "", // Chinese address .crdgrp.acc.dbfadrblkcn
},
},
setmod: new Pub().data.Setmod,
docpan: new Pub().data.Docpan,
trndia: new Pub().data.Trndia,
recpan: {
recget: {
sdamod: {
seainf: "", // .recpan.recget.sdamod.seainf
dadsnd: "", // Drag Drop Sender .recpan.recget.sdamod.dadsnd
},
},
usr: {
extkey: "", // 经办柜员 .recpan.usr.extkey
},
usrget: {
sdamod: {
seainf: "", // .recpan.usrget.sdamod.seainf
},
},
sndp: {
ptsget: {
sdamod: {
seainf: "", // .recpan.sndp.ptsget.sdamod.seainf
dadsnd: "", // Drag Drop Sender .recpan.sndp.ptsget.sdamod.dadsnd
},
},
},
accp: {
ptsget: {
sdamod: {
seainf: "", // .recpan.accp.ptsget.sdamod.seainf
dadsnd: "", // Drag Drop Sender .recpan.accp.ptsget.sdamod.dadsnd
},
},
},
valdat: "", // 起息日 .recpan.valdat
forare: "", // USE FOR ARE AMTOUNT .recpan.forare
},
pageId: "" // ctx的key
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: "",
}
}
}
\ No newline at end of file
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: "", //类型
},
infbut: {
dspstm: "", // display stream .infbut.dspstm
},
//fttyp: "", // Funds Trans. Type .fttyp
pageId: "", // ctx的key
dbCodes: {
TRAINT: [],
TRAOUT: [],
},
};
}
}
<template>
<div class="eibs-tab">
<c-col :span="24">
<!-- ==================左边================ -->
<c-col :span="12" style="padding-right: 20px">
<!-- S0000005 : 业务编号 -->
<c-col :span="24">
<c-form-item :label="$t('crdgrp.业务编号')" prop="crdgrp.rec.ownref">
<c-input v-model="model.crdgrp.rec.ownref" maxlength="16"></c-input>
</c-form-item>
</c-col>
<!-- S0000026 : 清算币种及金额 -->
<c-col :span="24" class="custom-box-wrap">
<el-form-item :label="$t('crtp.清算币种及金额')" prop="crdgrp.cbs.max.cur">
<c-select-cur v-model="model.crdgrp.cbs.max.cur" style="width: 115px" placeholder="请选择币种" dbCode="curtxt">
</c-select-cur>
</el-form-item>
<div class="box-3">
<el-form-item label-width="5px" prop="crdgrp.cbs.max.amt">
<c-input-currency v-model="model.crdgrp.cbs.max.amt" :currency="model.crdgrp.cbs.max.cur"
style="width: 100%">
</c-input-currency>
</el-form-item>
</div>
</c-col>
<!-- S0000014 : 本行业务编号 -->
<c-col :span="24">
<c-form-item :label="$t('crdgrp.报文编号')" prop="crdgrp.rec.msgref">
<c-input v-model="model.crdgrp.rec.msgref" maxlength="16"></c-input>
</c-form-item>
</c-col>
<!-- S0000056 : 起息日 -->
<c-col :span="24">
<el-form-item :label="$t('crdgrp.清算时间')" prop="recpan.valdat">
<c-date-picker type="date" v-model="model.recpan.valdat" style="width: 100%"></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="24">
<c-ptap-ext
:argadr="{
title: '发报行',
grp: 'crdgrp',
rol: 'snd',
}"
:requiredExtkey="true"
:isFieldLabelVisible="true"
:refVisiable="true"
:isAdrblk="true"
:disabled="true"
:model="model" ptytyp="B"
></c-ptap-ext>
</c-col>
</c-col>
<!-- ============右边================= -->
<c-col :span="12" style="padding-left: 20px">
<!-- S0000015 : 业务种类 -->
<c-col :span="24">
<el-form-item :label="$t('crdgrp.清算类型')" prop="crdgrp.rec.rcvobjtyp">
<c-select v-model="model.crdgrp.rec.rcvobjtyp" style="width: 100%">
</c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item :label="$t('crdgrp.业务类型')" prop="crdgrp.rec.custyp">
<c-select v-model="model.crdgrp.rec.custyp" style="width: 100%">
</c-select>
</el-form-item>
</c-col>
<!-- S0000004 : 汇款账号(Tag59) -->
<c-col :span="24">
<c-form-item :label="$t('crdgrp.报文中账号')" prop="crdgrp.rec.msgact">
<c-input v-model="model.crdgrp.rec.msgact" maxlength="21"></c-input>
</c-form-item>
</c-col>
<!-- S0000006 : 名称 -->
<c-col :span="24">
<c-form-item :label="$t('crdgrp.简略信息')" prop="crdgrp.rec.nam">
<c-input v-model="model.crdgrp.rec.nam" maxlength="40"></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<c-ptap-ext
:argadr="{
title: '收报行',
grp: 'crdgrp',
rol: 'acc',
}"
:requiredExtkey="true"
:isFieldLabelVisible="true"
:refVisiable="true"
:isAdrblk="true"
:disabled="true"
:model="model" ptytyp="C"
></c-ptap-ext>
</c-col>
</c-col>
</c-col>
</div>
</template>
<script>
import Api from "~/service/Api";
import Event from "../event";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [Event],
data() {
return {};
},
methods: {},
created: function () { },
};
</script>
<style></style>
<template>
<div class="eContainer">
<c-page title="清算入口交易">
<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">
<el-tab-pane label="业务信息" name="infconp">
<c-content>
<m-infconp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-function-btn :handleCheck="handleCheck" :handleStash="handleStash" :handleSubmit="handleSubmit"
@handleSureWarning="handleSureWarning" ref="commonBtn"></c-function-btn>
</c-page>
<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 Api from "~/service/Api"
import CodeTable from "~/config/CodeTable"
import Infcrd from "../model"
import Infconp from "./Infconp"
import operationFunc from "~/mixin/operationFunc";
import commonDepend from "~/mixin/commonDepend";
import event from "../event/index.js";
import Check from "../model/Check.js";
import buildFn from "../event/buildCommons.js";
import CodeTable from "~/config/CodeTable";
import infcrd from "../model";
import event from "../event"
import Infsea from "./Infsea.vue"
export default {
name: "Infcrd",
components: {
"m-infconp": Infconp,
name: "infcrd",
components:{
"m-infsea" : Infsea,
},
provide() {
return {
root: this
}
},
mixins: [operationFunc, commonDepend, event, buildFn],
data() {
mixins: [event], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "infconp",
tabVal: "infsea",
trnName: "infcrd",
trnType: "",
model: new Infcrd().data,
rules: Check,
codes: { ...CodeTable },
}
model: new infcrd().data,
rules: null,
codes:{...CodeTable},
};
},
methods: {
myTabClick(tab) {
this.tabClick(tab)
}
},
created: async function () {
console.log("进入infcrd交易");
let rtnmsg = await this.init({})
if (rtnmsg.respCode == SUCCESS) {
this.updateModel(rtnmsg.data)
}
else {
this.$notify.error({ title: '错误', message: '服务请求失败!' });
}
}
}
methods:{},
created:async function() {},
};
</script>
<style></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