Commit 993f883d by zhoujunpeng

Merge branch 'develop' of http://192.168.0.110:11080/isc-v3.1/isc-web-vue into develop

parents 25f15f37 aa3798b0
......@@ -4,45 +4,47 @@ export default class Fxdgrp {
constructor() {
this.data = {
rec: {
ownref: "", // 结售汇业务参考号 .fxtp.fxdgrp.rec.ownref
nam: "", // 名称 .fxtp.fxdgrp.rec.nam
fxtyp: "", // 结售汇类型 .fxtp.fxdgrp.rec.fxtyp
opndat: "", // 登记日期 .fxtp.fxdgrp.rec.opndat
valdat: "", // 起息日 .fxtp.fxdgrp.rec.valdat
rat: "", // 对外牌价 .fxtp.fxdgrp.rec.rat
midrat: "", // 中间价 .fxtp.fxdgrp.rec.midrat
quoref: "", // 询价编号 .fxtp.fxdgrp.rec.quoref
fudref: "", // 资金部编号 .fxtp.fxdgrp.rec.fudref
setdat: "", // 远期交割日 .fxtp.fxdgrp.rec.setdat
setdatfrm: "", // 择期交割起始日 .fxtp.fxdgrp.rec.setdatfrm
setdatto: "", // 择期交割截止日 .fxtp.fxdgrp.rec.setdatto
trnman: "", // 交易主体 .fxtp.fxdgrp.rec.trnman
trdint: "", // 结售汇类型 .fxtp.fxdgrp.rec.trdint
trdout: "", // 结售汇类型 .fxtp.fxdgrp.rec.trdout
acc: "", // 外币结算账号 .fxtp.fxdgrp.rec.acc
acc2: "", // 本币结算账号 .fxtp.fxdgrp.rec.acc2
dsp: "", // 外币结算账号 .fxtp.fxdgrp.rec.dsp
dsp2: "", // 本币结算账号 .fxtp.fxdgrp.rec.dsp2
ownref: "", // 结售汇业务参考号 fxdgrp.rec.ownref
nam: "", // 名称 fxdgrp.rec.nam
fxtyp: "", // 结售汇类型 fxdgrp.rec.fxtyp
opndat: "", // 登记日期 fxdgrp.rec.opndat
valdat: "", // 起息日 fxdgrp.rec.valdat
rat: 0.000000, // 对外牌价 fxdgrp.rec.rat
midrat: 0.000000, // 中间价 fxdgrp.rec.midrat
quoref: "", // 询价编号 fxdgrp.rec.quoref
fudref: "", // 资金部编号 fxdgrp.rec.fudref
setdat: "", // 远期交割日 fxdgrp.rec.setdat
setdatfrm: "", // 择期交割起始日 fxdgrp.rec.setdatfrm
setdatto: "", // 择期交割截止日 fxdgrp.rec.setdatto
trnman: "", // 交易主体 fxdgrp.rec.trnman
trdint: "", // 结售汇类型 fxdgrp.rec.trdint
trdout: "", // 结售汇类型 fxdgrp.rec.trdout
acc: "", // 外币结算账号 fxdgrp.rec.acc
acc2: "", // 本币结算账号 fxdgrp.rec.acc2
dsp: "", // 外币结算账号 fxdgrp.rec.dsp
dsp2: "", // 本币结算账号 fxdgrp.rec.dsp2
usr: "", // 业务经办人 fxdgrp.rec.usr
ownusr: "", // Clearing Department Responsible User fxdgrp.rec.ownusr
},
blk: {
remark: "", // 备注 .fxtp.fxdgrp.blk.remark
remark: "", // 备注 fxdgrp.blk.remark
},
cbs: {
max: {
cur: "", // Currency .fxtp.fxdgrp.cbs.max.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.max.amt
cur: "", // Currency fxdgrp.cbs.max.cur
amt: "", // Balance fxdgrp.cbs.max.amt
},
nom1: {
cur: "", // Currency .fxtp.fxdgrp.cbs.nom1.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.nom1.amt
cur: "", // Currency fxdgrp.cbs.nom1.cur
amt: "", // Balance fxdgrp.cbs.nom1.amt
},
opn1: {
cur: "", // Currency .fxtp.fxdgrp.cbs.nom1.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.nom1.amt
cur: "", // Currency fxdgrp.cbs.nom1.cur
amt: "", // Balance fxdgrp.cbs.nom1.amt
},
opn2: {
cur: "", // Currency .fxtp.fxdgrp.cbs.nom1.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.nom1.amt
cur: "", // Currency fxdgrp.cbs.nom1.cur
amt: "", // Balance fxdgrp.cbs.nom1.amt
},
},
apl: {
......
......@@ -4847,8 +4847,8 @@ const CodeTable = {
msgtyp3: [
{label: "MT", value: "sf2"},
{label: "ISO", value: "iso"},
{label: "FMT", value: "xml"},
{label: "CIPS", value: "txt"},
{label: "FMT", value: "txt"},
{label: "CIPS", value: "xml"},
],
mylx: [
{label: "服务贸易", value: "F"},
......@@ -9516,22 +9516,16 @@ const CodeTable = {
{label: "失败", value: "FAIL"},
{label: "异常", value: "ERROR"},
],
sta1: [{label: "Newly build", value: "H"},
{label: "Pending", value: "W"},
{label: "Processed", value: "D"},
{label: "Closed volume", value: "F"},
{label: "Redistribute", value: "R"},
{label: "Automatic processing", value: "A"},
{label: "To be processed manually", value: "X"},
{label: "Processing error", value: "E"},
{label: "Interface intermediate status", value: "O"},
{label: "To be rechecked manually", value: "V"},
{label: "Message discarding", value: "G"},
{label: "Return message editing", value: "C"},
{label: "Message waiting for release", value: "L"},
{label: "Suspected blacklist", value: "B"},
{label: "Suspected blacklist", value: "Y"},
{label: "Large forehead position does not match", value: "P"},
sta1: [
{label: "新建", value: "N"},
{label: "待处理", value: "W"},
{label: "己处理", value: "D"},
{label: "忽略处理", value: "F"},
{label: "重新分发", value: "R"},
{label: "待验证", value: "V"},
{label: "禁止处理", value: "B"},
{label: "待复核", value: "Q"},
{label: "取消忽略", value: "G"},
],
elctyp: [
{value: "102", label: "elcs.102.001.01"},
......@@ -9831,22 +9825,6 @@ const CodeTable = {
{label: "头寸调拨", value: "PT"},
{label: "资金拆出", value: "LO"},
],
fxt_fxtyp: [
{label: "远期结汇", value: "UB"},
{label: "即期结汇", value: "SB"},
{label: "择期结汇", value: "NB"},
{label: "代客外汇买入", value: "XB"},
{label: "外汇平盘买入", value: "BX"},
{label: "择期售汇", value: "NS"},
{label: "兑换平盘卖出", value: "FS"},
{label: "平盘买入", value: "LB"},
{label: "远期售汇", value: "US"},
{label: "代客外汇卖出", value: "XS"},
{label: "即期售汇", value: "SS"},
{label: "外汇平盘卖出", value: "SX"},
{label: "平盘卖出", value: "LS"},
{label: "兑换平盘买入", value: "FB"},
],
mttyp: [
{label: "100", value: "100"},
{label: "103", value: "103"},
......
......@@ -35,12 +35,12 @@ if (process.env.NODE_ENV === 'production') {//生产模式
baseData = {
"hostFunds":"localhost:31096",
"hostPublic": "localhost:31081",
"hostPublic": "192.168.0.114:31081",
"hostReport": "192.168.0.114:31090",
"host": "localhost:31091",
"host": "192.168.0.114:31091",
"hostAdmin": "192.168.0.114:31092",
"hostBusiness": "localhost:31093",
"hostRemittance": "localhost:31094",
"hostBusiness": "192.168.0.114:31093",
"hostRemittance": "192.168.0.114:31094",
"hostFinance": "15.52.176.251:22002",
"hostLc": "15.52.176.251:22002",
"hostDomlc": "15.52.176.251:22002",
......
......@@ -36,6 +36,7 @@ if (process.env.NODE_ENV === 'production') {//生产模式
}
} else {//开发模式
baseData = {
"hostFunds":"localhost:31096",
"host": "114.115.138.98:9391",
"hostAdmin": "114.115.138.98:9388",
"hostBusiness": "15.52.176.251:8083",
......
......@@ -24,7 +24,7 @@ export default {
this.load = true;
let rtnmsg = await Api.post("/gjzf/msgsel/query", {
...this.model.rcvp,
dir: "<",
dir: ">",
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
rcvdatsta: moment(rcvdatsta).format("YYYY-MM-DD"),
......
......@@ -24,7 +24,7 @@ export default {
this.load = true;
let rtnmsg = await Api.post("/gjzf/msgsel/query", {
...this.model.sndp,
dir: ">",
dir: "<",
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
rcvdatsta: moment(rcvdatsta).format("YYYY-MM-DD"),
......
import Api from "~/service/Api";
import moment from "moment";
import Msgsel from '../model';
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("/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 = new Msgsel().data;
},
// pageSize改变
handleSizeChange(val) {
......
import Api from "~/service/Api"
import Pts from "~/page/Model/Common/Pts"
export default class Msgsel{
constructor () {
......@@ -25,7 +24,7 @@ export default class Msgsel{
usrnam:"", // 操作员 .sndp.usrnam
starsp:"", // 处理状态标签 .sndp.starsp
starsm:"", // 处理状态标签 .sndp.starsm
sta:"", // 处理状态 .sndp.sta
sta:"V", // 处理状态 .sndp.sta
dtlchg:"", // : .sndp.dtlchg
uetr:"", // : .sndp.uetr
gpi:"", // : .sndp.gpi
......
......@@ -6,29 +6,119 @@
<el-row>
<c-col :span="24">
<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="" style="width: 100%">
<c-select v-model="model.sndp.msgtyp" style="width: 100%"
<c-select v-model="model.sndp.msgtyp" style="width: 100%"
:code="codes.msgtyp3"/>
</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" >
<el-select v-model="model.sndp.subtyp">
<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 :span="8">
<el-form-item label="发报行BIC" prop="" style="width: 100%">
<c-input v-model="model.sndp.sndbak" style="width: 100%" />
</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="发报行BIC" prop="" style="width: 100%">
<c-input v-model="model.sndp.sndbak" style="width: 100%"/>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="收报行BIC" prop="" style="width: 100%">
<c-input v-model="model.sndp.revbak" style="width: 100%"/>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="账户行BIC" prop="" style="width: 100%">
<c-input v-model="model.sndp.actbic" style="width: 100%"/>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="20域编号" prop="" style="width: 100%">
<c-input v-model="model.sndp.ownref" style="width: 100%"/>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="21域编号" prop="" style="width: 100%">
<c-input v-model="model.sndp.othref" style="width: 100%"/>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="币种" prop="" style="width: 100%">
<c-select v-model="model.sndp.cur" :code="codes.cur" style="width: 100%"/>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="账号" prop="" style="width: 100%">
<c-input v-model="model.sndp.act" style="width: 100%"/>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="费用明细" prop="" style="width: 100%">
<c-select :code="codes.dtlchg" v-model="model.sndp.dtlchg" style="width: 100%"/>
</el-form-item>
</c-col>
<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="" style="width: 100%">
<c-select :code="codes.sta1.filter(s=>s.value==='V')" disabled v-model="model.sndp.sta" style="width: 100%"/>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="操作员" prop="" style="width: 100%">
<c-input v-model="model.sndp.usrnam" style="width: 100%"/>
</el-form-item>
</c-col>
</c-col>
</el-row>
</template>
</c-list-search>
......@@ -58,6 +148,17 @@
<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-column fixed="right" prop="op" label="操作" width="140px">
<template slot="header">
<c-col :span="11" style="text-align: center">
<span>操作</span>
</c-col>
</template>
<template slot-scope="scope">
<c-button style="margin-left: 0" type='primary' size="small" slot="reference">复核
</c-button>
</template>
</el-table-column>
</el-table>
<el-pagination layout="total, sizes, prev, pager, next, jumper" :total="pagination.total"
......@@ -103,6 +204,11 @@ export default {
width: "120px"
},
{
label: "G渠道",
prop: "sweflg",
width: "120px"
},
{
label: "币种",
prop: "cur",
width: "120px"
......@@ -118,13 +224,8 @@ export default {
width: "120px"
},
{
label: "费用明细",
prop: "dtlchg",
width: "120px"
},
{
label: "报文类型",
prop: "subtyp",
label: "子系统",
prop: "nxtchncod",
width: "120px"
},
{
......@@ -133,29 +234,24 @@ export default {
width: "120px"
},
{
label: "处理状态",
prop: "sta",
width: "120px"
},
{
label: "账户行BIC(53域)",
prop: "actbic",
width: "120px"
label: "账户行BIC(53域)",
prop: "t53bic",
width: "160px"
},
{
label: "账户行BIC(54域)",
label: "账户行BIC(54域)",
prop: "actbic",
width: "250px"
width: "160px"
},
{
label: "发报行BIC",
prop: "sndbic",
width: "150px"
width: "120px"
},
{
label: "收报行BIC",
prop: "rcvbic",
width: "150px"
width: "120px"
},
{
label: "报文标准",
......@@ -163,18 +259,28 @@ export default {
width: "150px"
},
{
label: "GPI标识",
prop: "gpi",
width: "150px"
label: "报文类型",
prop: "subtyp",
width: "120px"
},
{
label: "子系统",
prop: "",
width: "150px"
label: "发送时间",
prop: "snddattim",
width: "120px"
},
{
label: "回执状态",
prop: "rspsta",
width: "120px"
},
{
label: "处理状态",
prop: "sta",
width: "120px"
},
{
label: "处理时间",
prop: "sttdattim",
label: "操作员",
prop: "usrnam",
width: "150px"
},
],
......@@ -200,7 +306,7 @@ export default {
handler: function (newTyp, oldTyp) {
// 把已经选择的 subtyp 重置
this.model.sndp.subtyp = '';
const { codes } = this;
const {codes} = this;
if (newTyp === 'sf2') {
this.subtypCodes = codes.mttyp;
} else if (newTyp === 'iso') {
......
<template>
<div class="eibs-tab">
<el-row style="background-color: white;width :100%;height:100px;padding-top: 30px;">
<c-col :span="24">
<c-col :span="8" >
<el-form-item label="报文标准" prop="" style="width: 100%">
<c-select v-model="model.msgp.typ" style="width: 100%" :code="codes.msgtyp3"/>
</el-form-item>
</c-col>
</c-col>
</el-row>
<el-row style="height:9000px;margin-top: 20px;">
<div style="height: 100%">
<iframe v-if="model.msgp.typ === 'MT'" src="http://localhost:8080/swifteditor" width="100%" ></iframe>
<iframe v-else-if="model.msgp.typ === 'ISO'" src="http://localhost:8080/swiftiso-editor" width="100%"></iframe>
</div>
</el-row>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="报文标准" prop="" style="width: 100%">
<c-select v-model="model.msgp.typ" style="width: 100%" :code="codes.msgtyp3"/>
</el-form-item>
</c-col>
</c-col>
</el-row>
<el-row style="height:9000px;margin-top: 20px;">
<div style="height: 100%">
<iframe v-if="model.msgp.typ === 'sf2'" src="http://localhost:8080/swifteditor" width="100%"></iframe>
<iframe v-else-if="model.msgp.typ === 'iso'" src="http://localhost:8080/swiftiso-editor" width="100%"></iframe>
</div>
</el-row>
</div>
</template>
<script>
......@@ -131,7 +131,7 @@ export default {
margin-right: 10px;
}
iframe{
iframe {
height: 900px;
}
</style>
import Api from "~/service/Api";
import moment from "moment";
import Oftopn from '../model';
export default {
methods: {
async handleSearch() {
let rsptims = this.model.oftp.rel.rsptims;
if (!rsptims || rsptims === "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询开始日期必输!"),
});
return;
}
let rsptime = this.model.oftp.rel.rsptime;
if (!rsptime || rsptime === "") {
this.$notify.error({
title: this.$t("financing.错误"),
message: this.$t("financing.查询结束日期必输!"),
});
return;
}
this.load = true;
// TODO rewrite url
let rtnmsg = await Api.post("/gjzf/msgsel/query", {
...this.model.oftp.rel,
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
rsptims: moment(rsptims).format("YYYY-MM-DD"),
rsptime: moment(rsptime).format("YYYY-MM-DD"),
});
if (rtnmsg.respCode == SUCCESS) {
this.load = false;
this.stmData.data = [];
const {list} = rtnmsg.data;
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 = new Oftopn().data;
},
// pageSize改变
handleSizeChange(val) {
......
......@@ -6,29 +6,106 @@
<el-row>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="报文标准" prop="" style="width: 100%">
<el-form-item label="起止日期" style="width: 100%">
<c-col :span="11">
<c-date-picker type="date" v-model="model.oftp.rel.rsptims" 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.oftp.rel.rsptime" style="width: 100%"></c-date-picker>
</c-col>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="报文标准" style="width: 100%">
<c-select v-model="model.oftp.rel.msgtyp" style="width: 100%"
:code="codes.msgtyp3" />
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="报文类型" prop="subtype" style="width: 100%">
<el-form-item label="报文类型" style="width: 100%">
<el-select v-model="model.oftp.rel.mty" >
<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 :span="8">
<el-form-item label="发报行BIC" prop="" style="width: 100%">
<c-input v-model="model.oftp.rel.sedbak" style="width: 100%" />
</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="发报行BIC" style="width: 100%">
<c-input v-model="model.oftp.rel.sedbak" style="width: 100%" />
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="收报行BIC" style="width: 100%">
<c-input v-model="model.oftp.rel.revbak" style="width: 100%" />
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="账户行BIC" style="width: 100%">
<c-input v-model="model.oftp.rel.actbic" style="width: 100%" />
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="8">
<el-form-item label="借贷" style="width: 100%">
<c-select v-model="model.oftp.rel.dcflg" style="width: 100%" :code="codes.dcflg" />
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="币种" style="width: 100%">
<c-select v-model="model.oftp.rel.cur" style="width: 100%" :code="codes.cur" />
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item
:label="$t('lc.金额区间')"
style="width: 100%"
>
<c-col :span="11">
<c-input
v-model="model.oftp.rel.atmd"
: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.oftp.rel.amtu"
: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="20域编号" style="width: 100%">
<c-input v-model="model.oftp.rel.ref" maxlength="40" >
</c-input>
</el-form-item>
</c-col>
<c-col :span="8">
<el-form-item label="21域编号" style="width: 100%">
<c-input v-model="model.oftp.rel.relref" maxlength="40" >
</c-input>
</el-form-item>
</c-col>
</c-col>
</el-row>
</template>
</c-list-search>
......@@ -88,32 +165,52 @@ export default {
columns: [
{
label: "报文种类",
prop: "num",
prop: "mty",
width: "120px"
},
{
label: "收发时间",
prop: "num",
prop: "rsptim",
width: "120px"
},
{
label: "G渠道",
prop: "num",
prop: "sweflg",
width: "120px"
},
{
label: "记账类型",
prop: "num",
prop: "typ",
width: "120px"
},
{
label: "收支",
prop: "num",
prop: "dcflg",
width: "120px"
},
{
label: "金额",
prop: "num",
prop: "amt",
width: "120px"
},
{
label: "币种",
prop: "cur",
width: "120px"
},
{
label: "关联状态",
prop: "sta",
width: "120px"
},
{
label: "处理状态",
prop: "area",
width: "120px"
},
{
label: "起息日",
prop: "valdat",
width: "120px"
},
{
......@@ -128,37 +225,42 @@ export default {
},
{
label: "目标渠道",
prop: "num",
prop: "multimsg",
width: "120px"
},
{
label: "源渠道",
prop: "num",
prop: "chk",
width: "120px"
},
{
label: "下一渠道",
prop: "kpatyp",
width: "120px"
},
{
label: "发报行BIC",
prop: "num",
prop: "sedbak",
width: "120px"
},
{
label: "收报行BIC",
prop: "num",
prop: "revbak",
width: "120px"
},
{
label: "账户行BIC",
prop: "num",
prop: "actbic",
width: "120px"
},
{
label: "勾销标识",
prop: "num",
prop: "offsta",
width: "120px"
},
{
label: "最后处理时间",
prop: "num",
prop: "lstdat",
width: "120px"
}],
data: [],
......
......@@ -27,6 +27,7 @@ export default {
objtyp: "FXD",
objinr: model.fxdgrp.rec.inr,
ownref: model.fxdgrp.rec.ownref,
fxtyp:model.fxdgrp.rec.fxtyp,
},
cbsMap: {
MAX: model.fxdgrp.cbs.max,
......
......@@ -5,7 +5,63 @@ export default {
mixins: [commonFunctions],
methods: {
async getOwnref(){
if (this.model.fxdgrp.rec.fxtyp == "") {
this.$notify.warning({
title: '提示',
message: '请先选择平盘类型!'
});
return;
}
const loading = this.loading();
let res = await Api.post(`/${this.moduleRouter()}/fxtfop/getRef`, this.model);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.rec.ownref = res.data;
},
}
async defaultRateN1000() {
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.cbs.nom1.cur == "") {
return;
}
const loading = this.loading();
let res = await Api.post(`/${this.moduleRouter()}/fxtfop/defaultRateN1000`, this.model);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
// this.updateValueSet(res.codeSet);
this.model.fxdgrp.rec.midrat =res.data.fxdgrp.rec.midrat;
},
async defaultCalculateN1100() {
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.cbs.nom1.cur == "") {
return;
}
const loading = this.loading();
let res = await Api.post(`/${this.moduleRouter()}/fxtfop/defaultCalculateN1100`, this.model);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
// this.updateValueSet(res.codeSet);
this.model.fxdgrp.cbs.nom1.amt =res.data.fxdgrp.cbs.nom1.amt;
},
}
}
\ No newline at end of file
export default {
"fxdgrp.rec.ownref": [
{type: "string", required: true, message: "必输项"},
{max: 16, message: "长度不能超过16"}
],
"fxdgrp.rec.nam": [
{type: "string", required: false, message: "必输项"},
{max: 40, message: "长度不能超过40"}
],
"fxdgrp.apl.pts.ref": [
{type: "string", required: false, message: "必输项"},
{max: 20, message: "长度不能超过20"}
],
"fxdgrp.rec.usr": [
{type: "string", required: false, message: "必输项"},
{max: 8, message: "长度不能超过8"}
],
"fxdgrp.apl.pts.extkey": [
{type: "string", required: true, message: "必输项"},
{max: 16, message: "长度不能超过16"}
],
"fxdgrp.apl.pts.adrblk": [
{type: "string", required: true, message: "必输项"},
{max: 35*4, message: "长度不能超过35*4"}
],
"fxdgrp.cbs.max.amt": [
{type: "string", required: true, message: "必输项"},
{max: 18, message: "整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位"}
],
"fxdgrp.cbs.nom1.amt": [
{type: "string", required: false, message: "必输项"},
{max: 18, message: "整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位"}
],
"fxdgrp.rec.rat": [
{required: true, message: "必输项"},
{max: 14, message: "长度不能超过14"}
],
"fxdgrp.rec.midrat": [
{required: true, message: "必输项"},
],
"fxdgrp.rec.opndat": [
{type: "string", required: true, message: "输入正确的日期"}
],
"fxdgrp.rec.valdat": [
{type: "string", required: true, message: "输入正确的日期"}
],
"fxdgrp.blk.remark": [
{type: "string", required: false, message: "必输项"},
{max: 35, message: "长度不能超过35"}
],
}
\ No newline at end of file
import commonFunctions from "~/mixin/commonFunctions.js";
import commonDepend from "~/mixin/commonDepend";
export default {
mixins: [commonFunctions, commonDepend],
methods: {
},
};
import Api from "~/service/Api"
import Pts from "~/page/Model/Common/Pts"
import Pub from "../../../../components/business/commonModel/index.js";
import Pub from "~/components/business/commonModel/index.js";
import Fxdgrp from '~/components/business/commonModel/fxdgrp';
export default class Fxtfop{
constructor () {
this.data = {
fxdgrp:{
rec:{
ownref:"", // 业务编号 .fxdgrp.rec.ownref
nam:"", // 业务名称 .fxdgrp.rec.nam
fxtyp:"", // 平盘类型 .fxdgrp.rec.fxtyp
opndat:"", // 成交日 .fxdgrp.rec.opndat
valdat:"", // 起息日 .fxdgrp.rec.valdat
rat:"", // 平盘牌价 .fxdgrp.rec.rat
midrat:"", // 中间价 .fxdgrp.rec.midrat
ownusr:"",
},
apl:{
pts:new Pts().data,
},
blk:{
remark:"", // 备注 .fxdgrp.blk.remark
},
cbs:{
max:{
cur:"", // Currency .fxdgrp.cbs.max.cur
amt:"", // Balance .fxdgrp.cbs.max.amt
},
nom1:{
cur:"", // Currency .fxdgrp.cbs.nom1.cur
amt:"", // Balance .fxdgrp.cbs.nom1.amt
},
},
},
fxdgrp: new Fxdgrp().data,
fxtp:{
frgchk:"X"
},
setmod: new Pub().data.Setmod,
docpan: new Pub().data.Docpan,
......
......@@ -9,7 +9,7 @@
<c-input v-model="model.fxdgrp.rec.ownref" maxlength="16" placeholder="请输入业务编号" disabled>
</c-input>
<template slot="footer">
<c-button style="margin: 0 5px" size="small" type="primary" :disabled="model.fxdgrp.apl.pts.ptainr === ''"
<c-button style="margin: 0 5px" size="small" type="primary" :disabled="getOwnrefFlg"
@click="getOwnref">
获取
</c-button>
......@@ -19,9 +19,9 @@
</c-col>
<c-col :span="24">
<c-form-item label="业务负责人" prop="fxdgrp.rec.ownusr">
<c-form-item label="业务负责人" prop="fxdgrp.rec.usr">
<c-fullbox>
<c-input v-model="model.fxdgrp.rec.ownusr" placeholder="请输入业务负责人" disabled></c-input>
<c-input v-model="model.fxdgrp.rec.usr" placeholder="请输入业务负责人" ></c-input>
<template slot="footer">
<c-button style="margin: 0 5px" size="small" type="primary">
i
......@@ -33,7 +33,7 @@
</c-col>
<c-col :span="24">
<el-form-item label="平盘类型" prop="fxdgrp.rec.fxtyp">
<c-select v-model="model.fxdgrp.rec.fxtyp" style="width:100%" :code="codes.fxt_fxtyp">
<c-select v-model="model.fxdgrp.rec.fxtyp" style="width:100%" :code="codes.fxt_fxtyp" :filterKey="['FS', 'FB']">
</c-select>
</el-form-item>
</c-col>
......@@ -68,7 +68,7 @@
</c-col>
<c-col :span="24">
<c-form-item label="平盘牌价" prop="fxdgrp.rec.rat">
<c-input-currency v-model="model.fxdgrp.rec.rat" style="width:100%" :precision="6" disabled placeholder="请输入平盘牌价">
<c-input-currency v-model="model.fxdgrp.rec.rat" style="width:100%" :precision="6" placeholder="请输入平盘牌价">
</c-input-currency>
</c-form-item>
</c-col>
......@@ -95,7 +95,7 @@
<c-col :span="12" style="padding-right: 20px">
<c-col :span="24">
<c-form-item label="业务名称" prop="fxdgrp.rec.nam">
<c-input v-model="model.fxdgrp.rec.nam" maxlength="40" ></c-input>
<c-input v-model="defaultNam950" maxlength="40" disabled></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
......@@ -104,7 +104,7 @@
:isShowCard="false"
:argadr="{title: '平盘对手', grp: 'fxdgrp', rol: 'apl',}"
:label="{labelExtkey:'平盘对手',labelNam:'名称',labelAdrblk:'地址',}"
ptytyp="C">
ptytyp="B">
</c-ptap>
</el-card>
</c-col>
......@@ -130,9 +130,80 @@ export default {
props:["model","codes"],
mixins: [event,commonProcess],
data(){
return {}
return {
}
},
created() {}
computed: {
getOwnrefFlg: function () {
//debugger
console.log(this.model)
return this.model.fxdgrp.rec.fxtyp == '' || this.model.fxdgrp.apl.pts.extkey == '' || this.model.fxdgrp.rec.ownref != '';
},
defaultNam950: function () {
//debugger;
let amount = this.moneyFormat(this.model.fxdgrp.cbs.max.amt, this.model.fxdgrp.cbs.max.cur)
return this.getCodelabel(this.model.fxdgrp.rec.fxtyp, "fxt_fxtyp") + ","
+ this.model.fxdgrp.cbs.max.cur + " " + amount;
},
},
methods: {
//获取码值
getCodelabel(value, codenam) {
const codeobj = this.codes[codenam].find(obj => obj.value === value)
return codeobj ? codeobj.label : value;
},
},
created: function () {
},
watch: {
//申请人变得 本外币下拉框需变化
'model.fxdgrp.apl.pts.ptyinr': {
handler(newValue) {
// if (newValue == "" || newValue == null) {
// this.model.fxdgrp.rec.acc = "";
// this.model.fxdgrp.rec.acc2 = "";
// this.model.accLst = [];
// this.model.accLst2 = [];
// return
// }
// this.defaultAccountsN1000();
},
},
'model.fxdgrp.cbs.max.cur': {
handler(newValue) {
if (newValue !== "" && newValue !== null) {
this.defaultRateN1000();
}
},
},
'model.fxdgrp.cbs.nom1.cur': {
handler(newValue) {
if (newValue !== "" && newValue !== null) {
this.defaultRateN1000();
}
},
},
'model.fxdgrp.cbs.max.amt': {
handler(newValue) {
if (newValue !== "" && newValue !== null) {
this.defaultCalculateN1100();
}
},
},
}
}
</script>
<style>
......
......@@ -41,11 +41,12 @@ import Setpan from "~/components/business/setmod/views";
import Docpan from "~/components/business/docpan/views";
import buildFn from "../event/buildCommons.js";
import Fxtfop from "../model/index";
import Fxtfop from "../model";
import operationFunc from "~/mixin/operationFunc";
import commonDepend from "~/mixin/commonDepend";
import Regp from "./Regp";
import event from "../event";
import Check from "../model/Check.js";
export default {
name: "Fxtfop",
......@@ -64,8 +65,9 @@ export default {
return {
tabVal: "regp",
trnName: "fxtfop",
trnType: "",
model: new Fxtfop().data,
rules: "",
rules: Check,
codes: { ...CodeTable },
}
},
......@@ -74,18 +76,18 @@ export default {
this.tabClick(tab)
}
},
mounted() {
console.log("进入fxtfop交易");
let params = {
transName: this.trnName,
fxdgrp: {
rec: {
inr: this.$route.query.inr || "",
},
},
};
// this.init(params)
},
created: async function () {
console.log("进入fxtfop交易");
let params = {
transName: this.trnName,
fxdgrp: {
rec: {
inr: this.$route.query.inr || "",
},
},
};
this.init(params)
},
}
</script>
<style>
......
......@@ -27,6 +27,15 @@ export default {
objtyp: "FXD",
objinr: model.fxdgrp.rec.inr,
ownref: model.fxdgrp.rec.ownref,
fxtyp:model.fxdgrp.rec.fxtyp,
acc: model.fxdgrp.rec.acc,
acc2: model.fxdgrp.rec.acc2,
dsp: model.fxdgrp.rec.dsp,
dsp2: model.fxdgrp.rec.dsp2,
trdint: model.fxdgrp.rec.trdint,
trdout: model.fxdgrp.rec.trdout,
trnman: model.fxdgrp.rec.trnman,
rat: model.fxdgrp.rec.rat,
},
cbsMap: {
MAX: model.fxdgrp.cbs.max,
......
......@@ -5,6 +5,74 @@ import commonFunctions from "~/mixin/commonFunctions.js";
export default {
mixins: [commonFunctions],
methods: {
async getOwnref() {},
async getOwnref() {
if (this.model.fxdgrp.rec.fxtyp == "") {
this.$notify.warning({
title: '提示',
message: '请先选择结售汇类型!'
});
return;
}
const loading = this.loading();
let res = await Api.post(`/${this.moduleRouter()}/fxtlop/getRef`, this.model);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.rec.ownref = res.data;
},
async defaultAccAndRate() {
this.defaultRateN1000();
console.log("defaultAccAndRate")
this.defaultCalculateN1100();
},
async defaultCalculateN1100() {
console.log("defaultCalculateN1100")
if (this.model.fxdgrp.rec.rat == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.cbs.max.amt == "" || this.model.fxdgrp.cbs.max.amt == 0) {
return;
}
const loading = this.loading();
console.log( this.model);
let res = await Api.post(`/${this.moduleRouter()}/fxtlop/defaultCalculateN1100`, this.model);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.cbs.max.amt = res.data.fxdgrp.cbs.max.amt;
this.model.fxdgrp.cbs.nom1.amt = res.data.fxdgrp.cbs.nom1.amt;
},
async defaultRateN1000() {
if (this.model.fxdgrp.rec.fxtyp == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.apl.pts.ptyinr == "") {
return;
}
const loading = this.loading();
let res = await Api.post(`/${this.moduleRouter()}/fxtlop/defaultRateN1000`, this.model);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.rec.rat = res.data.fxdgrp.rec.rat;
this.model.fxdgrp.rec.midrat = res.data.fxdgrp.rec.midrat;
},
},
};
import Api from "~/service/Api";
import Pts from "~/page/Model/Common/Pts";
import Pub from "~/components/business/commonModel/index.js";
import Fxdgrp from '~/components/business/commonModel/fxdgrp';
export default class Fxtlop {
constructor() {
......@@ -8,57 +9,13 @@ export default class Fxtlop {
setmod: new Pub().data.Setmod,
docpan: new Pub().data.Docpan,
trndia: new Pub().data.Trndia,
fxdgrp: {
rec: {
ownref: "", // 业务编号 .fxdgrp.rec.ownref
nam: "", // 业务名称 .fxdgrp.rec.nam
fxtyp: "", // 平盘类型 .fxdgrp.rec.fxtyp
opndat: "", // 成交日 .fxdgrp.rec.opndat
valdat: "", // 起息日 .fxdgrp.rec.valdat
rat: "", // 平盘牌价 .fxdgrp.rec.rat
midrat: "", // 中间价 .fxdgrp.rec.midrat
},
apl: {
pts: new Pts().data,
dbfadrblkcn: "", // Chinese address .fxdgrp.apl.dbfadrblkcn
},
blk: {
remark: "", // 备注 .fxdgrp.blk.remark
},
cbs: {
max: {
cur: "", // Currency .fxdgrp.cbs.max.cur
amt: "", // Balance .fxdgrp.cbs.max.amt
},
nom1: {
cur: "", // Currency .fxdgrp.cbs.nom1.cur
amt: "", // Balance .fxdgrp.cbs.nom1.amt
},
},
},
fxdgrp: new Fxdgrp().data,
fxtp: {
amtlab: "", // Amount Label .fxtp.amtlab
cnylab: "", // Amount LabelCNY .fxtp.cnylab
frgchk: "", // 外币 .fxtp.frgchk
cnychk: "", // 人民币 .fxtp.cnychk
aplp: {
ptsget: {
sdamod: {
seainf: "", // .fxtp.aplp.ptsget.sdamod.seainf
dadsnd: "", // Drag Drop Sender .fxtp.aplp.ptsget.sdamod.dadsnd
},
},
},
usrget: {
sdamod: {
seainf: "", // .fxtp.usrget.sdamod.seainf
},
},
usr: {
extkey: "", // 业务负责人 .fxtp.usr.extkey
},
},
pageId: "", // ctx的key
};
}
}
}
}
......@@ -18,7 +18,7 @@
style="margin: 0 0"
size="small"
type="primary"
:disabled="model.fxdgrp.apl.pts.ptainr === ''"
:disabled="getOwnrefFlg"
@click="getOwnref"
>
获取
......@@ -28,11 +28,8 @@
</c-form-item>
</c-col>
<c-col :span="24">
<c-form-item label="业务负责人" prop="fxdgrp.rec.ownusr">
<c-input
v-model="model.fxdgrp.rec.ownusr"
placeholder="请输入业务负责人"
/>
<c-form-item label="业务负责人" prop="fxdgrp.rec.usr">
<c-input v-model="model.fxdgrp.rec.usr" placeholder="请输入业务负责人" disabled></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
......@@ -42,6 +39,7 @@
style="width: 100%"
placeholder="请输入平盘类型"
:code="codes.fxt_fxtyp"
:filterKey="['LB', 'LS']"
>
</c-select>
</el-form-item>
......@@ -52,7 +50,8 @@
<c-select-cur
v-model="model.fxdgrp.cbs.max.cur"
style="width: 100%"
:code="codes.bopcur"
dbCode="curtxt"
@change="defaultAccAndRate"
>
</c-select-cur>
</el-form-item>
......@@ -140,7 +139,7 @@
<c-col :span="12" style="padding-right: 20px">
<c-col :span="24">
<c-form-item :label="$t('fxtlop.业务名称')" prop="fxdgrp.rec.nam">
<c-input v-model="model.fxdgrp.rec.nam" maxlength="40" ></c-input>
<c-input v-model="defaultNam950" maxlength="40" disabled></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
......@@ -192,6 +191,25 @@ export default {
data() {
return {};
},
computed:{
getOwnrefFlg: function () {
let flg = this.model.fxdgrp.rec.fxtyp == '' || this.model.fxdgrp.apl.pts.ptainr == ''
|| this.model.fxdgrp.cbs.max.cur == '' || this.model.fxdgrp.rec.ownref != ''
return flg;
},
defaultNam950: function () {
let amount = this.moneyFormat(this.model.fxdgrp.cbs.max.amt, this.model.fxdgrp.cbs.max.cur)
return this.getCodelabel(this.model.fxdgrp.rec.fxtyp, "fxt_fxtyp") + ","
+ this.model.fxdgrp.cbs.max.cur + " " + amount;
},
},
methods: {
//获取码值
getCodelabel(value, codenam) {
const codeobj = this.codes[codenam].find(obj => obj.value === value)
return codeobj ? codeobj.label : value;
},
},
created: function () {},
};
</script>
......
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.fxtp.fxdgrp, this.buildPtspta);
return {
rec: {
objtyp: "FXT",
objinr: model.fxtp.fxdgrp.rec.inr,
ownref: model.fxtp.fxdgrp.rec.ownref,
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,
};
},
cbsMap: {
MAX: model.fxtp.fxdgrp.cbs.max,
NOM1: model.fxtp.fxdgrp.cbs.nom1,
buildCommonData(model, trnName) {
let ptsptaList = Utils.formatPtspta(model.fxdgrp, this.buildPtspta);
return {
rec: {
objtyp: "FXD",
objinr: model.fxdgrp.rec.inr,
ownref: model.fxdgrp.rec.ownref,
fxtyp: model.fxdgrp.rec.fxtyp,
acc: model.fxdgrp.rec.acc,
acc2: model.fxdgrp.rec.acc2,
dsp: model.fxdgrp.rec.dsp,
dsp2: model.fxdgrp.rec.dsp2,
trdint: model.fxdgrp.rec.trdint,
trdout: model.fxdgrp.rec.trdout,
trnman: model.fxdgrp.rec.trnman,
rat: model.fxdgrp.rec.rat,
},
cbsMap: {
MAX: model.fxdgrp.cbs.max,
NOM1: model.fxdgrp.cbs.nom1,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : "ZL",
};
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : "ZL",
};
},
},
};
import commonFunctions from '~/mixin/commonFunctions.js';
import Api from '~/service/Api';
import commonFunctions from "~/mixin/commonFunctions.js";
import Api from "~/service/Api";
export default {
mixins: [commonFunctions],
methods: {
async getOwnref() {
if (this.model.fxdgrp.rec.fxtyp == "") {
this.$notify.warning({
title: "提示",
message: "请先选择结售汇类型!",
});
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtssb/getRef`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.rec.ownref = res.data;
},
}
}
}
\ No newline at end of file
async defaultAccountsN1000() {
if (this.model.fxdgrp.rec.fxtyp == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.apl.pts.ptyinr == "") {
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtssb/defaultAccountsN1000`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
// this.updateValueSet(res.codeSet);
this.accLst = res.codeSet["accLst"];
this.accLst2 = res.codeSet["acc2Lst"];
this.model.fxdgrp.rec.acc = res.data.fxdgrp.rec.acc;
this.model.fxdgrp.rec.acc2 = res.data.fxdgrp.rec.acc2;
},
async defaultRateN1000() {
if (this.model.fxdgrp.rec.fxtyp == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.apl.pts.ptyinr == "") {
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtssb/defaultRateN1000`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.rec.rat = res.data.fxdgrp.rec.rat;
this.model.fxdgrp.rec.midrat = res.data.fxdgrp.rec.midrat;
},
async defaultAccAndRate() {
this.defaultAccountsN1000();
await this.defaultRateN1000();
this.defaultCalculateN1100();
},
async defaultCalculateN1100() {
if (this.model.fxdgrp.rec.rat == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (
this.model.fxdgrp.cbs.max.amt == "" ||
this.model.fxdgrp.cbs.max.amt == 0
) {
this.model.fxdgrp.cbs.nom1.amt = "0.00";
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtssb/defaultCalculateN1100`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.cbs.max.amt = res.data.fxdgrp.cbs.max.amt;
this.model.fxdgrp.cbs.nom1.amt = res.data.fxdgrp.cbs.nom1.amt;
},
},
};
export default {
"fxtp.fxdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
import JshmodCheck from "~/components/business/jshmod/model/check";
"fxtp.fxdgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"fxtp.fxdgrp.apl.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 20,message:"长度不能超过20"}
],
"fxtp.usrget.usr.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 8,message:"长度不能超过8"}
],
"fxtp.usrget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"fxtp.aplp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.aplp.ptspta.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.aplp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"fxtp.aplp.ptspta.pts.adrblk":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"fxtp.aplp.ptspta.dbfadrblkcn":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"fxtp.fxdgrp.cbs.max.amt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"fxtp.fxdgrp.cbs.nom1.amt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"fxtp.fxdgrp.rec.rat":[
{type: "string", required: false, message: "必输项"},
{max: 12,message:"长度不能超过12"}
],
"fxtp.fxdgrp.rec.quoref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.fxdgrp.rec.midrat":[
{type: "string", required: false, message: "必输项"},
{max: 12,message:"长度不能超过12"}
],
"fxtp.fxdgrp.rec.fudref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.fxdgrp.rec.opndat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.valdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.setdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.setdatto":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.setdatfrm":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.blk.remark":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
}
\ No newline at end of file
export default function () {
return {
...new JshmodCheck(this).check,
"fxdgrp.rec.ownref": [
{ type: "string", required: true, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.rec.nam": [
{ type: "string", required: false, message: "必输项" },
{ max: 40, message: "长度不能超过40" },
],
"fxdgrp.apl.pts.ref": [
{ type: "string", required: false, message: "必输项" },
{ max: 20, message: "长度不能超过20" },
],
"fxdgrp.rec.usr": [
{ type: "string", required: false, message: "必输项" },
{ max: 8, message: "长度不能超过8" },
],
"fxdgrp.apl.pts.extkey": [
{ type: "string", required: false, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.apl.pts.adrblk": [
{ type: "string", required: true, message: "必输项" },
{ max: 140, message: "长度不能超过140" },
],
"fxdgrp.cbs.max.cur": [
{ type: "string", required: true, message: "必输项" },
{ max: 3, message: "3" },
],
"fxdgrp.cbs.max.amt": [
{ type: "string", required: true, message: "必输项" },
{ max: 18, message: "整数位不能超过14位" },
{
pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/,
message: "小数位不能超过3位",
},
],
"fxdgrp.cbs.nom1.amt": [
{ type: "string", required: false, message: "必输项" },
{ max: 18, message: "整数位不能超过14位" },
{
pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/,
message: "小数位不能超过3位",
},
],
"fxdgrp.rec.quoref": [
{ type: "string", required: false, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.rec.fudref": [
{ type: "string", required: false, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.rec.opndat": [{ required: true, message: "输入正确的日期" }],
"fxdgrp.rec.valdat": [{ required: true, message: "输入正确的日期" }],
"fxdgrp.rec.setdat": [{ required: false, message: "输入正确的日期" }],
"fxdgrp.rec.setdatto": [{ required: false, message: "输入正确的日期" }],
"fxdgrp.rec.setdatfrm": [{ required: false, message: "输入正确的日期" }],
"fxdgrp.blk.remark": [
{ type: "string", required: false, message: "必输项" },
{ max: 35, message: "长度不能超过35" },
],
"fxdgrp.rec.dsp": [
{ type: "string", required: true, message: "必输项" },
{ max: 2, message: "长度不能超过2" },
],
"fxdgrp.rec.dsp2": [
{ type: "string", required: true, message: "必输项" },
{ max: 2, message: "长度不能超过2" },
],
"fxdgrp.rec.acc": [
{ type: "string", required: true, message: "必输项" },
{ max: 21, message: "长度不能超过21" },
],
"fxdgrp.rec.acc2": [
{ type: "string", required: true, message: "必输项" },
{ max: 21, message: "长度不能超过21" },
],
"fxdgrp.rec.trnman": [
{ type: "string", required: true, message: "必输项" },
{ max: 2, message: "长度不能超过2" },
],
"fxdgrp.rec.trdint": [
{ type: "string", required: true, message: "必输项" },
{ max: 3, message: "长度不能超过3" },
],
};
}
import Api from "~/service/Api"
import Pts from "~/page/Model/Common/Pts"
import Pub from "~/components/business/commonModel/index.js";
import Fxdgrp from '~/components/business/commonModel/fxdgrp';
export default class Fxtssb {
constructor() {
this.data = {
fxtp: {
fxdgrp: {
rec: {
ownref: "", // 结售汇业务参考号 .fxtp.fxdgrp.rec.ownref
nam: "", // 名称 .fxtp.fxdgrp.rec.nam
fxtyp: "", // 结售汇类型 .fxtp.fxdgrp.rec.fxtyp
opndat: "", // 登记日期 .fxtp.fxdgrp.rec.opndat
valdat: "", // 起息日 .fxtp.fxdgrp.rec.valdat
rat: "", // 对外牌价 .fxtp.fxdgrp.rec.rat
midrat: "", // 中间价 .fxtp.fxdgrp.rec.midrat
quoref: "", // 询价编号 .fxtp.fxdgrp.rec.quoref
fudref: "", // 资金部编号 .fxtp.fxdgrp.rec.fudref
setdat: "", // 远期交割日 .fxtp.fxdgrp.rec.setdat
setdatfrm: "", // 择期交割起始日 .fxtp.fxdgrp.rec.setdatfrm
setdatto: "", // 择期交割截止日 .fxtp.fxdgrp.rec.setdatto
trnman: "", // 交易主体 .fxtp.fxdgrp.rec.trnman
trdint: "", // 结售汇类型 .fxtp.fxdgrp.rec.trdint
trdout: "", // 结售汇类型 .fxtp.fxdgrp.rec.trdout
acc: "", // 外币结算账号 .fxtp.fxdgrp.rec.acc
acc2: "", // 本币结算账号 .fxtp.fxdgrp.rec.acc2
dsp: "", // 外币结算账号 .fxtp.fxdgrp.rec.dsp
dsp2: "", // 本币结算账号 .fxtp.fxdgrp.rec.dsp2
},
cbs: {
max: {
cur: "", // Currency .fxtp.fxdgrp.cbs.max.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.max.amt
},
nom1: {
cur: "", // Currency .fxtp.fxdgrp.cbs.nom1.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.nom1.amt
},
},
apl: {
pts: new Pts().data,
},
blk: {
remark: "", // 备注 .fxtp.fxdgrp.blk.remark
},
},
amtlab: "", // Amount Label .fxtp.amtlab
cnylab: "", // Amount LabelCNY .fxtp.cnylab
frgchk: "", // 外币 .fxtp.frgchk
cnychk: "", // 人民币 .fxtp.cnychk
aplp: {
ptspta: {
pts: new Pts().data,
dbfadrblkcn: "", // Chinese address .fxtp.aplp.ptspta.dbfadrblkcn
},
ptsget: {
sdamod: {
seainf: "", // .fxtp.aplp.ptsget.sdamod.seainf
dadsnd: "", // Drag Drop Sender .fxtp.aplp.ptsget.sdamod.dadsnd
constructor() {
this.data = {
fxtp: {
amtlab: "", // Amount Label .fxtp.amtlab
cnylab: "", // Amount LabelCNY .fxtp.cnylab
frgchk: "", // 外币 .fxtp.frgchk
cnychk: "", // 人民币 .fxtp.cnychk
cshflg: "", // 钞汇标志 .fxtp.cshflg
},
},
},
cshflg: "", // 钞汇标志 .fxtp.cshflg
usrget: {
sdamod: {
seainf: "", // .fxtp.usrget.sdamod.seainf
},
usr: {
extkey: "", // User ID .fxtp.usrget.usr.extkey
},
},
},
fxdgrp: {
apl: {
pts: new Pts().data,
},
},
setmod: new Pub().data.Setmod,
docpan: new Pub().data.Docpan,
trndia: new Pub().data.Trndia,
fxdgrp: new Fxdgrp().data,
setmod: new Pub().data.Setmod,
docpan: new Pub().data.Docpan,
trndia: new Pub().data.Trndia,
jshmod: new Pub().data.Jshmod,
}
}
}
}
\ No newline at end of file
<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-form
:model="model"
:rules="rawRules"
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="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes" />
......@@ -14,9 +26,14 @@
<m-setpan :codes="codes" :model="model" />
</c-content>
</el-tab-pane>
<el-tab-pane label="报文/面函" name="docpan">
<!-- <el-tab-pane label="报文/面函" name="docpan">-->
<!-- <c-content>-->
<!-- <m-docpan :codes="codes" :model="model" />-->
<!-- </c-content>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="结售汇申报" name="jshmod">
<c-content>
<m-docpan :codes="codes" :model="model" />
<m-jshmod :codes="codes" :model="model" ref="jshmod" />
</c-content>
</el-tab-pane>
</c-tabs>
......@@ -32,10 +49,9 @@
</div>
</template>
<script>
import Api from "~/service/Api"
import CodeTable from "~/config/CodeTable"
import Fxtssb from "../model"
import Ovwp from "./Ovwp"
import CodeTable from "~/config/CodeTable";
import Fxtssb from "../model";
import Ovwp from "./Ovwp";
import Setpan from "~/components/business/setmod/views";
import Docpan from "~/components/business/docpan/views";
......@@ -44,33 +60,41 @@ import commonDepend from "~/mixin/commonDepend";
import event from "../event";
import buildFn from "../event/buildCommons.js";
import Check from "../model/Check.js";
import Jshmod from "~/components/business/jshmod/views/index";
export default {
name: "Fxtssb",
components: {
"m-ovwp": Ovwp,
"m-setpan": Setpan,
"m-docpan": Docpan,
"m-jshmod": Jshmod,
},
provide() {
return {
root: this
}
root: this,
};
},
mixins: [operationFunc, commonDepend, event, buildFn],
computed: {
rawRules() {
return { ...this.rules, ...Check.apply(this) };
},
},
data() {
return {
tabVal: "ovwp",
trnName: "fxtssb",
trnType: "",
model: new Fxtssb().data,
rules: Check,
rules: { },
codes: { ...CodeTable },
}
};
},
methods: {
myTabClick(tab) {
this.tabClick(tab)
}
this.tabClick(tab);
},
},
created: async function () {
console.log("进入fxtssb交易");
......@@ -82,8 +106,8 @@ export default {
},
},
};
this.init(params)
}
}
this.init(params);
},
};
</script>
<style></style>
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.fxtp.fxdgrp, this.buildPtspta);
return {
rec: {
objtyp: "FXT",
objinr: model.fxtp.fxdgrp.rec.inr,
ownref: model.fxtp.fxdgrp.rec.ownref,
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,
};
},
cbsMap: {
MAX: model.fxtp.fxdgrp.cbs.max,
NOM1: model.fxtp.fxdgrp.cbs.nom1,
buildCommonData(model, trnName) {
let ptsptaList = Utils.formatPtspta(model.fxdgrp, this.buildPtspta);
return {
rec: {
objtyp: "FXD",
objinr: model.fxdgrp.rec.inr,
ownref: model.fxdgrp.rec.ownref,
fxtyp: model.fxdgrp.rec.fxtyp,
acc: model.fxdgrp.rec.acc,
acc2: model.fxdgrp.rec.acc2,
dsp: model.fxdgrp.rec.dsp,
dsp2: model.fxdgrp.rec.dsp2,
trdint: model.fxdgrp.rec.trdint,
trdout: model.fxdgrp.rec.trdout,
trnman: model.fxdgrp.rec.trnman,
rat: model.fxdgrp.rec.rat,
},
cbsMap: {
MAX: model.fxdgrp.cbs.max,
NOM1: model.fxdgrp.cbs.nom1,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : "ZL",
};
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : "ZL",
};
},
},
};
import commonFunctions from '~/mixin/commonFunctions.js';
import Api from '~/service/Api';
import commonFunctions from "~/mixin/commonFunctions.js";
import Api from "~/service/Api";
export default {
mixins: [commonFunctions],
methods: {
async getOwnref(){
mixins: [commonFunctions],
methods: {
async getOwnref() {
if (this.model.fxdgrp.rec.fxtyp == "") {
this.$notify.warning({
title: "提示",
message: "请先选择结售汇类型!",
});
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtsss/getRef`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.rec.ownref = res.data;
},
}
}
}
\ No newline at end of file
async defaultAccountsN1000() {
if (this.model.fxdgrp.rec.fxtyp == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.apl.pts.ptyinr == "") {
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtsss/defaultAccountsN1000`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
// this.updateValueSet(res.codeSet);
this.accLst = res.codeSet["accLst"];
this.accLst2 = res.codeSet["acc2Lst"];
this.model.fxdgrp.rec.acc = res.data.fxdgrp.rec.acc;
this.model.fxdgrp.rec.acc2 = res.data.fxdgrp.rec.acc2;
},
async defaultRateN1000() {
if (this.model.fxdgrp.rec.fxtyp == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (this.model.fxdgrp.apl.pts.ptyinr == "") {
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtsss/defaultRateN1000`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.rec.rat = res.data.fxdgrp.rec.rat;
this.model.fxdgrp.rec.midrat = res.data.fxdgrp.rec.midrat;
},
async defaultAccAndRate() {
this.defaultAccountsN1000();
await this.defaultRateN1000();
this.defaultCalculateN1100();
},
async defaultCalculateN1100() {
if (this.model.fxdgrp.rec.rat == "") {
return;
}
if (this.model.fxdgrp.cbs.max.cur == "") {
return;
}
if (
this.model.fxdgrp.cbs.max.amt == "" ||
this.model.fxdgrp.cbs.max.amt == 0
) {
this.model.fxdgrp.cbs.nom1.amt = "0.00";
return;
}
const loading = this.loading();
let res = await Api.post(
`/${this.moduleRouter()}/fxtsss/defaultCalculateN1100`,
this.model
);
loading.close();
if (res.respCode !== SUCCESS) {
this.$message.error(res.respMsg);
return;
}
this.model.fxdgrp.cbs.max.amt = res.data.fxdgrp.cbs.max.amt;
this.model.fxdgrp.cbs.nom1.amt = res.data.fxdgrp.cbs.nom1.amt;
},
},
};
export default {
"fxtp.fxdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
import JshmodCheck from "~/components/business/jshmod/model/check";
"fxtp.fxdgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"fxtp.fxdgrp.apl.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 20,message:"长度不能超过20"}
],
"fxtp.usrget.usr.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 8,message:"长度不能超过8"}
],
"fxtp.usrget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"fxtp.aplp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.aplp.ptspta.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.aplp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"fxtp.aplp.ptspta.pts.adrblk":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"fxtp.aplp.ptspta.dbfadrblkcn":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"fxtp.fxdgrp.cbs.max.amt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"fxtp.fxdgrp.cbs.nom1.amt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"fxtp.fxdgrp.rec.rat":[
{type: "string", required: false, message: "必输项"},
{max: 12,message:"长度不能超过12"}
],
"fxtp.fxdgrp.rec.quoref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.fxdgrp.rec.midrat":[
{type: "string", required: false, message: "必输项"},
{max: 12,message:"长度不能超过12"}
],
"fxtp.fxdgrp.rec.fudref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fxtp.fxdgrp.rec.opndat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.valdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.setdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.setdatto":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.rec.setdatfrm":[
{type: "date", required: false, message: "输入正确的日期"}
],
"fxtp.fxdgrp.blk.remark":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
}
\ No newline at end of file
export default function () {
return {
...new JshmodCheck(this).check,
"fxdgrp.rec.ownref": [
{ type: "string", required: false, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.rec.nam": [
{ type: "string", required: false, message: "必输项" },
{ max: 40, message: "长度不能超过40" },
],
"fxdgrp.apl.pts.ref": [
{ type: "string", required: false, message: "必输项" },
{ max: 20, message: "长度不能超过20" },
],
"fxdgrp.rec.usr": [
{ type: "string", required: false, message: "必输项" },
{ max: 8, message: "长度不能超过8" },
],
"fxdgrp.apl.pts.extkey": [
{ type: "string", required: false, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.apl.pts.adrblk": [
{ type: "string", required: true, message: "必输项" },
{ max: 140, message: "长度不能超过140" },
],
"fxdgrp.cbs.max.cur": [
{ type: "string", required: true, message: "必输项" },
{ max: 3, message: "3" },
],
"fxdgrp.cbs.max.amt": [
{ type: "string", required: true, message: "必输项" },
{ max: 18, message: "整数位不能超过14位" },
{
pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/,
message: "小数位不能超过3位",
},
],
"fxdgrp.cbs.nom1.amt": [
{ type: "string", required: false, message: "必输项" },
{ max: 18, message: "整数位不能超过14位" },
{
pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/,
message: "小数位不能超过3位",
},
],
"fxdgrp.rec.quoref": [
{ type: "string", required: false, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.rec.fudref": [
{ type: "string", required: false, message: "必输项" },
{ max: 16, message: "长度不能超过16" },
],
"fxdgrp.rec.opndat": [{ required: true, message: "输入正确的日期" }],
"fxdgrp.rec.valdat": [{ required: true, message: "输入正确的日期" }],
"fxdgrp.rec.setdat": [{ required: false, message: "输入正确的日期" }],
"fxdgrp.rec.setdatto": [{ required: false, message: "输入正确的日期" }],
"fxdgrp.rec.setdatfrm": [{ required: false, message: "输入正确的日期" }],
"fxdgrp.blk.remark": [
{ type: "string", required: false, message: "必输项" },
{ max: 35, message: "长度不能超过35" },
],
"fxdgrp.rec.dsp": [
{ type: "string", required: true, message: "必输项" },
{ max: 2, message: "长度不能超过2" },
],
"fxdgrp.rec.dsp2": [
{ type: "string", required: true, message: "必输项" },
{ max: 2, message: "长度不能超过2" },
],
"fxdgrp.rec.acc": [
{ type: "string", required: true, message: "必输项" },
{ max: 21, message: "长度不能超过21" },
],
"fxdgrp.rec.acc2": [
{ type: "string", required: true, message: "必输项" },
{ max: 21, message: "长度不能超过21" },
],
"fxdgrp.rec.trnman": [
{ type: "string", required: true, message: "必输项" },
{ max: 2, message: "长度不能超过2" },
],
"fxdgrp.rec.trdout": [
{ type: "string", required: true, message: "必输项" },
{ max: 3, message: "长度不能超过3" },
],
};
}
import Api from "~/service/Api"
import Pts from "~/page/Model/Common/Pts"
import Pub from "~/components/business/commonModel/index.js";
import Fxdgrp from '~/components/business/commonModel/fxdgrp';
export default class Fxtsss {
constructor() {
this.data = {
fxtp: {
fxdgrp: {
rec: {
ownref: "", // 结售汇业务参考号 .fxtp.fxdgrp.rec.ownref
nam: "", // 名称 .fxtp.fxdgrp.rec.nam
fxtyp: "", // 结售汇类型 .fxtp.fxdgrp.rec.fxtyp
opndat: "", // 登记日期 .fxtp.fxdgrp.rec.opndat
valdat: "", // 起息日 .fxtp.fxdgrp.rec.valdat
rat: "", // 对外牌价 .fxtp.fxdgrp.rec.rat
midrat: "", // 中间价 .fxtp.fxdgrp.rec.midrat
quoref: "", // 询价编号 .fxtp.fxdgrp.rec.quoref
fudref: "", // 资金部编号 .fxtp.fxdgrp.rec.fudref
setdat: "", // 远期交割日 .fxtp.fxdgrp.rec.setdat
setdatfrm: "", // 择期交割起始日 .fxtp.fxdgrp.rec.setdatfrm
setdatto: "", // 择期交割截止日 .fxtp.fxdgrp.rec.setdatto
trnman: "", // 交易主体 .fxtp.fxdgrp.rec.trnman
trdint: "", // 结售汇类型 .fxtp.fxdgrp.rec.trdint
trdout: "", // 结售汇类型 .fxtp.fxdgrp.rec.trdout
acc: "", // 外币结算账号 .fxtp.fxdgrp.rec.acc
acc2: "", // 本币结算账号 .fxtp.fxdgrp.rec.acc2
dsp: "", // 外币结算账号 .fxtp.fxdgrp.rec.dsp
dsp2: "", // 本币结算账号 .fxtp.fxdgrp.rec.dsp2
},
cbs: {
max: {
cur: "", // Currency .fxtp.fxdgrp.cbs.max.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.max.amt
constructor() {
this.data = {
fxtp: {
amtlab: "", // Amount Label .fxtp.amtlab
cnylab: "", // Amount LabelCNY .fxtp.cnylab
frgchk: "", // 外币 .fxtp.frgchk
cnychk: "", // 人民币 .fxtp.cnychk
cshflg: "", // 钞汇标志 .fxtp.cshflg
},
nom1: {
cur: "", // Currency .fxtp.fxdgrp.cbs.nom1.cur
amt: "", // Balance .fxtp.fxdgrp.cbs.nom1.amt
},
},
apl: {
pts: new Pts().data,
},
blk: {
remark: "", // 备注 .fxtp.fxdgrp.blk.remark
},
},
amtlab: "", // Amount Label .fxtp.amtlab
cnylab: "", // Amount LabelCNY .fxtp.cnylab
frgchk: "", // 外币 .fxtp.frgchk
cnychk: "", // 人民币 .fxtp.cnychk
aplp: {
ptspta: {
pts: new Pts().data,
dbfadrblkcn: "", // Chinese address .fxtp.aplp.ptspta.dbfadrblkcn
},
ptsget: {
sdamod: {
seainf: "", // .fxtp.aplp.ptsget.sdamod.seainf
dadsnd: "", // Drag Drop Sender .fxtp.aplp.ptsget.sdamod.dadsnd
},
},
},
cshflg: "", // 钞汇标志 .fxtp.cshflg
usrget: {
sdamod: {
seainf: "", // .fxtp.usrget.sdamod.seainf
},
usr: {
extkey: "", // User ID .fxtp.usrget.usr.extkey
},
},
},
fxdgrp: {
apl: {
pts: new Pts().data,
},
},
setmod: new Pub().data.Setmod,
docpan: new Pub().data.Docpan,
trndia: new Pub().data.Trndia,
fxdgrp: new Fxdgrp().data,
setmod: new Pub().data.Setmod,
docpan: new Pub().data.Docpan,
trndia: new Pub().data.Trndia,
jshmod: new Pub().data.Jshmod,
}
}
}
}
\ No newline at end of file
<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-form
:model="model"
:rules="rawRules"
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"
>
<!--fxtp PD000001 概要 -->
<el-tab-pane :label="$t('fxtp.概要')" name="ovwp">
<c-content>
......@@ -15,9 +27,14 @@
<m-setpan :codes="codes" :model="model" />
</c-content>
</el-tab-pane>
<el-tab-pane label="报文/面函" name="docpan">
<!-- <el-tab-pane label="报文/面函" name="docpan">-->
<!-- <c-content>-->
<!-- <m-docpan :codes="codes" :model="model"/>-->
<!-- </c-content>-->
<!-- </el-tab-pane>-->
<el-tab-pane label="结售汇申报" name="jshmod">
<c-content>
<m-docpan :codes="codes" :model="model" />
<m-jshmod :codes="codes" :model="model" ref="jshmod" />
</c-content>
</el-tab-pane>
</c-tabs>
......@@ -33,10 +50,9 @@
</div>
</template>
<script>
import Api from "~/service/Api"
import CodeTable from "~/config/CodeTable"
import Fxtsss from "../model"
import Ovwp from "./Ovwp"
import CodeTable from "~/config/CodeTable";
import Fxtsss from "../model";
import Ovwp from "./Ovwp";
import Setpan from "~/components/business/setmod/views";
import Docpan from "~/components/business/docpan/views";
......@@ -45,33 +61,41 @@ import commonDepend from "~/mixin/commonDepend";
import event from "../event";
import Check from "../model/Check.js";
import buildFn from "../event/buildCommons.js";
import Jshmod from "~/components/business/jshmod/views/index";
export default {
name: "Fxtsss",
components: {
"m-ovwp": Ovwp,
"m-setpan": Setpan,
"m-docpan": Docpan,
"m-jshmod": Jshmod,
},
provide() {
return {
root: this
}
root: this,
};
},
mixins: [operationFunc, commonDepend, event, buildFn],
computed: {
rawRules() {
return { ...this.rules, ...Check.apply(this) };
},
},
data() {
return {
tabVal: "ovwp",
trnName: "fxtsss",
trnType: "",
model: new Fxtsss().data,
rules: Check,
rules: {},
codes: { ...CodeTable },
}
};
},
methods: {
myTabClick(tab) {
this.tabClick(tab)
}
this.tabClick(tab);
},
},
created: async function () {
console.log("进入fxtsss交易");
......@@ -83,8 +107,8 @@ export default {
},
},
};
this.init(params)
}
}
this.init(params);
},
};
</script>
<style></style>
......@@ -6,6 +6,7 @@ export default {
async handleSearch() {
console.log("serach......");
console.log(this.activeTab )
let opndatfrom = this.model.infcon.opndatfrom;
if (!opndatfrom || opndatfrom == "") {
this.$notify.error({
......@@ -24,23 +25,29 @@ export default {
}
this.load = true;
let rtnmsg = await Api.post("/funds/fxdsel/query", {
let rtnmsg = await Api.post("/funds/fxtsel/list"+this.activeTab , {
...this.model.infcon,
dir: ">",
pageNum: this.pagination.pageNum,
pageSize: this.pagination.pageSize,
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;
this.pagination = {
pageNum: rtnmsg.data.pageNum || 1,
pageSize: rtnmsg.data.pageSize || 10,
total: rtnmsg.data.total,
};
if (this.activeTab==="jsh"){
this.stmData.data = rtnmsg.data.list;
}
else if(this.activeTab==="dhpp"){
this.stmDataDh.data = rtnmsg.data.list;
}
else if(this.activeTab==="jshpp"){
this.stmDatajshpp.data = rtnmsg.data.list;
}
this.pagination.total = rtnmsg.data.total;
} else {
this.$notify.error({
title: this.$t("financing.错误"),
......@@ -73,15 +80,69 @@ export default {
this.model.infcon.accmng = "";
this.model.infcon.fxtyp = "";
},
//首字母大写
toTitleCase(str){
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()
},
// 处理
async handler(row) {
this.handleModel = row;
this.trnUrl = 'funds';
this.inifrm = 'fxtsel';
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' + this.toTitleCase(this.activeTab)] = 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.pageNum = 1;
this.pagination.pageNumber = 1;
this.pagination.pageSize = val;
this.handleSearch();
},
// 页码改变
handleCurrentChange(val) {
this.pagination.pageNum = val;
this.pagination.pageNumber = val;
this.handleSearch();
},
......@@ -110,6 +171,139 @@ toFxtfop() {
});
},
// 详情
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/fxdinf",
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
}
},
},
};
......@@ -5,7 +5,7 @@ export default class inffxd {
this.data = {
infcon: {
seaownref: "", // 业务编号 .infcon.seaownref
nam: "", // 业务名称 .infcon.nam
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
......
<template>
<Xxdinf></Xxdinf>
</template>
<script>
import Xxdinf from "~/page/Statics/Xxdinf/views";
export default {
name: "Info-Fxd",
components: { Xxdinf },
created() { },
mounted() { }
};
</script>
<style></style>
\ No newline at end of file
......@@ -119,6 +119,12 @@ const DisplayRouter = [
component: () => import("./InfoFtd.vue"),
meta: {keepAlive: true, title: "Info-资金拆借"}
},
{
name: "InfoFxd",
path: "fxdinf",
component: () => import("./InfoFxd.vue"),
meta: {keepAlive: true, title: "Info-结售汇/兑换平盘交易"}
},
];
export default DisplayRouter;
\ No newline at end of file
......@@ -217,6 +217,9 @@ export default {
case 'MCD':
trnUrl = '/Derivative/mctsel'
break;
case 'FXD':
trnUrl = '/funds/fxtsel'
break;
default:
break;
}
......
......@@ -57,6 +57,9 @@
<div v-else-if="obj.objtyp === 'MCD' ">
<m-mcdovwp :model="model" :codes="codes" />
</div>
<div v-else-if="obj.objtyp === 'FXD' ">
<m-fxdovwp :model="model" :codes="codes" />
</div>
<div v-else-if="obj.objtyp === 'CPD' && obj.paytyp === 'I'">
<m-cpdovwp :model="model" :codes="codes" />
</div>
......@@ -212,6 +215,7 @@ import trdOvwp from "~/page/Financing/Trtopn/views/ovwp";
import bpdOvwp from "~/page/Financing/Bptopn/views/Ovwp";
import dfdOvwp from "~/page/Financing/Dftame/views/Ovwp1";
import mcdOvwp from "~/page/Derivative/Mctopn/views/Ovwp";
import fxdOvwp from "~/page/Funds/Fxtfop/views/Regp";
import cptOvwp from "~/page/Remittance/Cptopn/views/Ovwp";
import cpdOvwp from "~/page/Remittance/Cptadv/views/Ovwp";
import jsdopnOvwp from "~/page/Derivative/Jstopn/views/Ovwp";
......@@ -253,6 +257,7 @@ export default {
"m-bpdovwp": bpdOvwp,
"m-dfdovwp": dfdOvwp,
"m-mcdovwp": mcdOvwp,
"m-fxdovwp": fxdOvwp,
"m-cpdovwp": cpdOvwp,
"m-cptovwp": cptOvwp,
"m-jsdopnOvwp": jsdopnOvwp,
......
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