Commit f956abcc by wanggang_yf

letame letcan betrcl betacc betcan 页面修改

parent 0bc2218e
export default {
buildPtspta (ptsptaObj) {
let pts = ptsptaObj.pts;
let ptspta = {
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
};
return ptspta;
},
buildCommonData (model, trnName) {
let ptsptaList = [];
if (model.brdgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.apl));
}
if (model.brdgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'lid',
ownref: model.brdgrp.rec.ownref,
opndat: model.brdgrp.rec.opndat,
expdat: model.brdgrp.rec.expdat,
branchInr: model.brdgrp.rec.branchInr,
hndtyp: model.brdgrp.rec.hndtyp,
gartyp: model.brdgrp.rec.gartyp,
fingua: model.brdgrp.rec.fingua,
fromflg: model.brdgrp.rec.fromflg,
othersno: model.brdgrp.rec.othersno,
sndto: model.brdgrp.rec.sndto,
swiftflg: model.brtp.swiftflg,
brduil: model.brdgrp.rec.brduil,
purpos: model.brdgrp.rec.purpos,
revflg: model.brdgrp.rec.revflg,
cnfsta: model.brdgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.brdgrp.cbs.max,
OPN1: model.brdgrp.cbs.opn1,
MAC: model.brdgrp.cbs.mac,
MAC2: model.brdgrp.cbs.mac2,
OPC2: model.brdgrp.cbs.opc2,
CNF: model.brdgrp.cbs.cnf,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : 'ZL'
};
return dataObj
},
buildSetfeg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaall: model.liaall,
liaccv: model.liaccv,
// doceot: model.trnmod.trndoc.doceot,
};
return params
},
buildSetglg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
setfeg: model.setmod.setfeg,
liaall: model.liaall,
liaccv: model.liaccv,
};
return params
},
buildGlentry (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
setfog: model.setmod.setfog,
setfeg: model.setmod.setfeg,
setglg: model.setmod.setglg,
};
return params
},
buildEngp (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
};
return params
},
buildDocpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
};
return params
},
buildCcvpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaccvg: model.liaccv.liaccvg,
oldamt: model.liaccv.oldamt,
chgamt: model.liaccv.chgamt,
concur: model.liaccv.concur,
};
return params
},
buildLimitbody (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
},
};
return params
},
buildDoctre (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'lid',
objinr: model.brdgrp.rec.objinr,
ownref: model.brdgrp.rec.ownref,
swiftflg: model.brtp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import buildFn from './buildCommons.js';
import setmod from '~/components/business/setmod/event';
import glentry from '~/components/business/glentry/event';
import engp from '~/components/business/engp/event';
import docpan from '~/components/business/docpan/event';
import ccvpan from '~/components/business/ccvpan/event';
import limitbody from '~/components/business/limitbody/event';
import doctre from '~/components/business/doctre/event';
import Utils from "~/utils"
export default {
mixins: [commonFunctions],
methods: {
...setmod,
...glentry,
...engp,
...docpan,
...ccvpan,
...limitbody,
...doctre,
async init () {
const params = {
spt: JSON.parse(localStorage.getItem('row_' + this.trnName))
}
const res = await Api.post('/service/betacc/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
brdgrp:{
rec:{
inr:this.$route.query.inr
}
}
});
if (!res.data) {
return
}
this.copyValueFromVoData(this.model, res.data)
this.copyValueFromVoData(this.model.setmod.setfeg, res.data.setfeg)
this.copyValueFromVoData(this.model.setmod.setfog, res.data.setfog)
this.copyValueFromVoData(this.model.setmod.setglg, res.data.setglg)
},
// 兼容处理在前端model中定义了字段,后端返回的数据中不存在字段的问题
copyValueFromVoData (model, data) {
let keysList = Object.keys(model)
keysList.map((key) => {
if (data[key]) {
if (Utils.typeOf(model[key]) === 'Object') {
this.copyValueFromVoData(model[key], data[key])
} else {
this.$set(model, key, data[key])
}
}
})
},
async tabClick(tab) {
if (this.isInDisplay) {
return;
}
let name = tab.name;
switch (name) {
case 'ccvpan':
let ccvpanRequest = buildFn.buildCcvpan(this.model, this.trnName);
this.processLiaccv(ccvpanRequest);
break;
case 'engp':
let engpRequest = buildFn.buildEngp(this.model, this.trnName);
this.processLiaall(engpRequest);
break;
case 'setmod':
let setfegRequest = buildFn.buildSetfeg(this.model, this.trnName);
// 此处利用回调是为了等setfeg的接口调用完成后才去获取setglg参数,由于setglg参数依赖于setfeg函数的返回值
this.processSetpan(setfegRequest, () => {
return buildFn.buildSetglg(this.model, this.trnName);
});
break;
case 'docpan':
let docpanRequest = buildFn.buildDocpan(this.model, this.trnName);
this.processTrndoc(docpanRequest);
break;
case 'glepan':
let glentryRequest = buildFn.buildGlentry(this.model, this.trnName);
this.processGlentry(glentryRequest);
break;
case 'limitbody':
let limitbodyRequest = buildFn.buildLimitbody(this.model, this.trnName);
this.processLimitbody(limitbodyRequest);
break;
case 'doctre':
let doctreRequest = buildFn.buildDoctre(this.model, this.trnName);
this.processDoctre(doctreRequest);
break;
default:
return;
}
},
// 点击获取按钮拉取当前key字段下的表单数据
queryFormData(key) {
console.log(key);
},
// 业务信息=》基本信息=》保函编号-----获取保函编号
async queryOwnref() {
let params = {
ptainr: this.model.gidgrp.apl.pts.ptainr,
businessType: 'LG',
tbl: 'LG',
};
const loading = this.loading();
let res = await Api.post('/service/betacc/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtacp弹框表格数据
async queryGridEtyPromptDialogData(type, ptytyp) {
let params = {
userId: window.sessionStorage.userId || 'ZL',
ptytyp: ptytyp,
extkey: this.model.gidgrp[type.toLowerCase()].pts.extkey,
};
let res = await Api.post('/service/ptspta/list', params);
if (res.respCode == SUCCESS) {
this.root.$refs['etyDialog'].show = true;
this.root.promptData.data = res.data.ptaInfos;
this.root.promptData.type = type;
}
},
// 选中brtacp弹框表格的行数据
async selectGridEtyPromptData(row) {
let params = {
...row,
};
let res = await Api.post('/service/ptspta/fetch', params);
if (res.respCode == SUCCESS) {
this.$set(this.model.gidgrp, row.role.toLowerCase(), res.data);
}
},
// 业务信息=》基本信息=》支出目的
purposChange(key, value) {
this.handleChangeForm(key, value);
},
// 初始化保函开立类型码表下拉列表
async queryHndtypCodeTableList(trnName) {
let params = {
gitp: {
swiftflg: this.model.gitp.swiftflg,
},
gidgrp: {
rec: {
purpos: this.model.gidgrp.rec.purpos,
},
},
transName: trnName.toUpperCase(),
};
let res = await Api.post('/service/betacc/initHndtyp', params);
if (res.respCode == SUCCESS) {
this.$set(this.codes, 'voHndtyp', res.data);
}
},
// 是否SWIFT格式修改--联动保函开立类型
handleChangeSwiftflg() {
this.queryHndtypCodeTableList(this.root.trnName);
},
// 支出目的修改--联动保函开立类型
handleChangePurpos() {
this.queryHndtypCodeTableList(this.root.trnName);
},
buildLiaccv () {
let params = {
...buildFn.buildCommonData(this.model, this.trnName),
liaccvg: this.model.liaccv.liaccvg,
oldamt: this.model.liaccv.oldamt,
chgamt: this.model.liaccv.chgamt,
concur: this.model.liaccv.concur,
};
return params
},
// 公共组件setmod处理方式改变触发联动
changeSetmodModel (emitParams) {
let reqParams = {}
switch (emitParams.code) {
case 'processMethods':
reqParams = buildFn.buildSetglg(this.model, this.trnName);
this.calcPayDetail(reqParams)
break
case 'changeDsp':
let index = emitParams.index;
let setglgRequest = buildFn.buildSetglg(this.model, this.trnName);
setglgRequest.setglg = {setgll: emitParams.list};
this.setgllAccts(setglgRequest, index);
break
default:
return
}
}
},
};
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Betacc {
constructor() {
this.data = {
betp: {
furide: '',
adaflg: '',
cre752flg: ''
},
setmod: {
redamt: '',
doccur: '',
docamt: ''
},
ledgrp: {
rec: {
ownref: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
aamset: {
utlamt: '',
utlamt2: ''
},
mtabut: {
coninf: {
usr: {
extkey: ''
}
}
},
snadat: '',
bedgrp: {
rec: {
predat: '',
rcvdat: '',
doctypcod: '',
docsta: '',
ownref: '',
matdat: '',
disdat: '',
nam: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
opn2: {
cur: ''
},
max: {
cur: '',
amt: ''
}
}
},
trnmod: {
swiadd: {
strinf: ''
}
},
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
liaall: new Pub().data.Liaall,
liaccv: new Pub().data.Liaccv,
docpan: new Pub().data.Docpan,
};
}
}
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="承兑" name="accp">
<m-accp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import CodeTable from "~/config/CodeTable";
import Event from "~/model/Gitcrj/Event";
import Accp from "./Accp"
export default {
components: {
"m-accp": Accp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
activeNames: ["accp"],
};
},
methods: { ...Event },
created:
function () { },
};
</script>
<style></style>
<template>
<div class="eContainer">
<c-page title="出口信用证单据承兑">
<!-- <c-bus-button :$pntvm="this"></c-bus-button> -->
<!-- <c-function-btn>
<el-button size="small">流程附言</el-button>
<el-button size="small">交易历史</el-button>
<el-button size="small">备忘录</el-button>
<el-button size="small">影像信息</el-button>
<el-button size="small">保存模板</el-button> -->
<!-- <el-button size="small">使用模板</el-button> -->
<!-- <el-button size="small">制裁信息</el-button>
<el-button size="small">拆分报文</el-button> -->
<!-- <el-button size="small">智能提示</el-button>
</c-function-btn> -->
<el-form :model="model" :rules="rules" ref="modelForm" label-width="120px" label-position="right" size="small"
:validate-on-rule-change="false">
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="tabClick">
<!--PD000033 -->
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000001 -->
<el-tab-pane label="统一授信" name="limitbody">
<c-content>
<m-limitbody :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="表外记账" name="engp">
<c-content>
<!-- 表外记账 -->
<m-engp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="会计分录" name="glepan">
<c-content>
<m-glentry :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000510 -->
<el-tab-pane label="备查/附言" name="addbcb">
<c-content>
<div class="eibs-tab">
<m-addbcb :model="model" :codes="codes" />
</div>
</c-content>
</el-tab-pane>
<!--PD000529 -->
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000546 -->
<el-tab-pane label="附件信息" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-function-btn :handleSubmit="handleSubmit" :handleCheck="handleCheck" :handleStash="handleStash">
</c-function-btn>
</c-page>
</div>
</template>
<script>
import CodeTable from "~/config/CodeTable";
import Betacc from "~/model/Betacc";
import commonProcess from "~/mixin/commonProcess";
import commonFuncs from "~/mixin/commonFuncs";
import Check from "~/model/Betacc/Check";
import Default from "~/model/Betacc/Default";
import Pattern from "~/model/Betacc/Pattern";
import Accp from "./Accp";
import Engp from "~/views/Public/Engp";
import Doctre from "~/views/Public/Doctre";
import Setpan from "~/views/Public/Setpan";
import Coninfp from "~/components/business/coninfp/views";
import Docpan from "~/components/business/docpan/views";
import Limitbody from "~/components/business/limitbody/views";
import Ovwp from "./Ovwp";
export default {
name: "Betacc",
components: {
"m-accp": Accp,
"m-setpan": Setpan,
"m-engp": Engp,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-coninfp": Coninfp,
"m-limitbody": Limitbody,
"m-ovwp": Ovwp,
},
provide() {
return {
root: this,
};
},
mixins: [operationFunc, event],
data() {
return {
tabVal: "ovwp",
trnName: "betacc",
model: new Betacc().data,
rules: formRules,
codes: {
...CodeTable,
},
activeNames: ["engp"],
};
},
methods: {}
};
</script>
<style></style>
export default {
buildPtspta (ptsptaObj) {
let pts = ptsptaObj.pts;
let ptspta = {
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
};
return ptspta;
},
buildCommonData (model, trnName) {
let ptsptaList = [];
if (model.brdgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.apl));
}
if (model.brdgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'lid',
ownref: model.brdgrp.rec.ownref,
opndat: model.brdgrp.rec.opndat,
expdat: model.brdgrp.rec.expdat,
branchInr: model.brdgrp.rec.branchInr,
hndtyp: model.brdgrp.rec.hndtyp,
gartyp: model.brdgrp.rec.gartyp,
fingua: model.brdgrp.rec.fingua,
fromflg: model.brdgrp.rec.fromflg,
othersno: model.brdgrp.rec.othersno,
sndto: model.brdgrp.rec.sndto,
swiftflg: model.brtp.swiftflg,
brduil: model.brdgrp.rec.brduil,
purpos: model.brdgrp.rec.purpos,
revflg: model.brdgrp.rec.revflg,
cnfsta: model.brdgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.brdgrp.cbs.max,
OPN1: model.brdgrp.cbs.opn1,
MAC: model.brdgrp.cbs.mac,
MAC2: model.brdgrp.cbs.mac2,
OPC2: model.brdgrp.cbs.opc2,
CNF: model.brdgrp.cbs.cnf,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : 'ZL'
};
return dataObj
},
buildSetfeg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaall: model.liaall,
liaccv: model.liaccv,
// doceot: model.trnmod.trndoc.doceot,
};
return params
},
buildSetglg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
setfeg: model.setmod.setfeg,
liaall: model.liaall,
liaccv: model.liaccv,
};
return params
},
buildGlentry (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
setfog: model.setmod.setfog,
setfeg: model.setmod.setfeg,
setglg: model.setmod.setglg,
};
return params
},
buildEngp (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
};
return params
},
buildDocpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
};
return params
},
buildCcvpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaccvg: model.liaccv.liaccvg,
oldamt: model.liaccv.oldamt,
chgamt: model.liaccv.chgamt,
concur: model.liaccv.concur,
};
return params
},
buildLimitbody (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
},
};
return params
},
buildDoctre (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'lid',
objinr: model.brdgrp.rec.objinr,
ownref: model.brdgrp.rec.ownref,
swiftflg: model.brtp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import buildFn from './buildCommons.js';
import setmod from '~/components/business/setmod/event';
import glentry from '~/components/business/glentry/event';
import engp from '~/components/business/engp/event';
import docpan from '~/components/business/docpan/event';
import ccvpan from '~/components/business/ccvpan/event';
import limitbody from '~/components/business/limitbody/event';
import doctre from '~/components/business/doctre/event';
import Utils from "~/utils"
export default {
mixins: [commonFunctions],
methods: {
...setmod,
...glentry,
...engp,
...docpan,
...ccvpan,
...limitbody,
...doctre,
async init () {
const params = {
spt: JSON.parse(localStorage.getItem('row_' + this.trnName))
}
const res = await Api.post('/service/betcan/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
brdgrp:{
rec:{
inr:this.$route.query.inr
}
}
});
if (!res.data) {
return
}
this.copyValueFromVoData(this.model, res.data)
this.copyValueFromVoData(this.model.setmod.setfeg, res.data.setfeg)
this.copyValueFromVoData(this.model.setmod.setfog, res.data.setfog)
this.copyValueFromVoData(this.model.setmod.setglg, res.data.setglg)
},
// 兼容处理在前端model中定义了字段,后端返回的数据中不存在字段的问题
copyValueFromVoData (model, data) {
let keysList = Object.keys(model)
keysList.map((key) => {
if (data[key]) {
if (Utils.typeOf(model[key]) === 'Object') {
this.copyValueFromVoData(model[key], data[key])
} else {
this.$set(model, key, data[key])
}
}
})
},
async tabClick(tab) {
if (this.isInDisplay) {
return;
}
let name = tab.name;
switch (name) {
case 'ccvpan':
let ccvpanRequest = buildFn.buildCcvpan(this.model, this.trnName);
this.processLiaccv(ccvpanRequest);
break;
case 'engp':
let engpRequest = buildFn.buildEngp(this.model, this.trnName);
this.processLiaall(engpRequest);
break;
case 'setmod':
let setfegRequest = buildFn.buildSetfeg(this.model, this.trnName);
// 此处利用回调是为了等setfeg的接口调用完成后才去获取setglg参数,由于setglg参数依赖于setfeg函数的返回值
this.processSetpan(setfegRequest, () => {
return buildFn.buildSetglg(this.model, this.trnName);
});
break;
case 'docpan':
let docpanRequest = buildFn.buildDocpan(this.model, this.trnName);
this.processTrndoc(docpanRequest);
break;
case 'glepan':
let glentryRequest = buildFn.buildGlentry(this.model, this.trnName);
this.processGlentry(glentryRequest);
break;
case 'limitbody':
let limitbodyRequest = buildFn.buildLimitbody(this.model, this.trnName);
this.processLimitbody(limitbodyRequest);
break;
case 'doctre':
let doctreRequest = buildFn.buildDoctre(this.model, this.trnName);
this.processDoctre(doctreRequest);
break;
default:
return;
}
},
// 点击获取按钮拉取当前key字段下的表单数据
queryFormData(key) {
console.log(key);
},
// 业务信息=》基本信息=》保函编号-----获取保函编号
async queryOwnref() {
let params = {
ptainr: this.model.gidgrp.apl.pts.ptainr,
businessType: 'LG',
tbl: 'LG',
};
const loading = this.loading();
let res = await Api.post('/service/betcan/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtacp弹框表格数据
async queryGridEtyPromptDialogData(type, ptytyp) {
let params = {
userId: window.sessionStorage.userId || 'ZL',
ptytyp: ptytyp,
extkey: this.model.gidgrp[type.toLowerCase()].pts.extkey,
};
let res = await Api.post('/service/ptspta/list', params);
if (res.respCode == SUCCESS) {
this.root.$refs['etyDialog'].show = true;
this.root.promptData.data = res.data.ptaInfos;
this.root.promptData.type = type;
}
},
// 选中brtacp弹框表格的行数据
async selectGridEtyPromptData(row) {
let params = {
...row,
};
let res = await Api.post('/service/ptspta/fetch', params);
if (res.respCode == SUCCESS) {
this.$set(this.model.gidgrp, row.role.toLowerCase(), res.data);
}
},
// 业务信息=》基本信息=》支出目的
purposChange(key, value) {
this.handleChangeForm(key, value);
},
// 初始化保函开立类型码表下拉列表
async queryHndtypCodeTableList(trnName) {
let params = {
gitp: {
swiftflg: this.model.gitp.swiftflg,
},
gidgrp: {
rec: {
purpos: this.model.gidgrp.rec.purpos,
},
},
transName: trnName.toUpperCase(),
};
let res = await Api.post('/service/betcan/initHndtyp', params);
if (res.respCode == SUCCESS) {
this.$set(this.codes, 'voHndtyp', res.data);
}
},
// 是否SWIFT格式修改--联动保函开立类型
handleChangeSwiftflg() {
this.queryHndtypCodeTableList(this.root.trnName);
},
// 支出目的修改--联动保函开立类型
handleChangePurpos() {
this.queryHndtypCodeTableList(this.root.trnName);
},
buildLiaccv () {
let params = {
...buildFn.buildCommonData(this.model, this.trnName),
liaccvg: this.model.liaccv.liaccvg,
oldamt: this.model.liaccv.oldamt,
chgamt: this.model.liaccv.chgamt,
concur: this.model.liaccv.concur,
};
return params
},
// 公共组件setmod处理方式改变触发联动
changeSetmodModel (emitParams) {
let reqParams = {}
switch (emitParams.code) {
case 'processMethods':
reqParams = buildFn.buildSetglg(this.model, this.trnName);
this.calcPayDetail(reqParams)
break
case 'changeDsp':
let index = emitParams.index;
let setglgRequest = buildFn.buildSetglg(this.model, this.trnName);
setglgRequest.setglg = {setgll: emitParams.list};
this.setgllAccts(setglgRequest, index);
break
default:
return
}
}
},
};
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Betcan {
constructor() {
this.data = {
sndmsg: '',
ledgrp: {
rec: {
ownref: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
rebkpflg: '',
strinf: '',
bedgrp: {
rec: {
predat: '',
rcvdat: '',
doctypcod: '',
docsta: '',
ownref: '',
orddat: '',
matdat: '',
nam: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
opn2: {
amt: ''
},
max: {
cur: '',
amt: ''
}
},
iss: {
pts: {
ref: '',
nam: ''
}
},
ben: {
pts: {
ref: '',
nam: ''
}
},
apl: {
pts: {
ref: '',
nam: ''
}
}
},
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
liaall: new Pub().data.Liaall,
liaccv: new Pub().data.Liaccv,
docpan: new Pub().data.Docpan,
};
}
}
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<!--el-collapse-item title="备查表" name="addbcb">
<m-addbcb :model="model" :codes="codes" />
</el-collapse-item-->
<el-collapse-item title="附言" name="coninfp">
<m-coninfp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import Utils from "~/utils";
import Event from "~/model/Betcan/Event";
import Coninfp from "~/views/Public/Coninfp";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {
...Event,
handleChange(val) {
console.log(val);
},
},
created: function () { },
};
</script>
<style>
</style>
<template>
<div class="eibs">
<!-- ======================= 左边 ========================= -->
<c-col :span="12" style="padding-right: 20px">
<!--SF000044 : Reference参考号 Export L/C Ref. -->
<c-col :span="24">
<el-form-item label="出口信用证编号" prop="ledgrp.rec.ownref">
<c-fullbox>
<c-input v-model="model.ledgrp.rec.ownref" maxlength="16" placeholder="请输入编号" style="width: 95%"
:disabled="true" @keyup.enter.native="eventFunction(
'ledgrp.rec.ownref'
)">
</c-input>
<template slot="footer">
<c-button style="margin: 0 0 0 0; padding: 0 12px" size="small" type="primary" @click="onSeainf">
<i class="el-icon-info" style="font-size:15px"></i>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="24">
<!-- SF000053 : 单据编号 单据参考号-->
<el-form-item label="单据编号" prop="bedgrp.rec.ownref">
<c-fullbox>
<c-input v-model="model.bedgrp.rec.ownref" maxlength="16" placeholder="请输入单据编号" style="width: 95%" disabled>
</c-input>
<template slot="footer">
<c-button style="margin: 0 0 0 0; padding: 0 12px" size="small" type="primary" @click="onSeainf">
<i class="el-icon-info" style="font-size:15px"></i>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="24">
<c-col :span="10">
<el-form-item label="单据金额" prop="bedgrp.cbs.max.cur">
<c-select v-model="model.bedgrp.cbs.max.cur" style="width: 100%" placeholder="请选择币种"
@keyup.enter.native="maxCurEvent" :code="codes.curtxt" disabled>
</c-select>
</el-form-item>
</c-col>
<c-col :span="7">
<el-form-item label="" label-width="5px" prop="bedgrp.cbs.max.amt">
<c-input-currency v-model="model.bedgrp.cbs.max.amt" style="text-align: left; width: 100%"
placeholder="请输入金额" @keyup.enter.native="
defaultFunction(
'bedgrp.cbs.max.amt',
model.bedgrp.cbs.max.amt
)
" disabled></c-input-currency>
</el-form-item>
</c-col>
<c-col :span="7">
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="10">
<el-form-item label="单据余额" prop="bedgrp.cbs.opn1.cur">
<c-select v-model="model.bedgrp.cbs.opn1.cur" maxlength="3" placeholder="请选择币种" style="width: 100%" disabled
:code="codes.curtxt"></c-select>
</el-form-item>
</c-col>
<c-col :span="7">
<el-form-item label="" label-width="5px" prop="bedgrp.cbs.opn1.amt">
<c-input-currency v-model="model.bedgrp.cbs.opn1.amt" style="text-align: left; width: 100%"
placeholder="请输入金额" disabled></c-input-currency>
</el-form-item>
</c-col>
<c-col :span="7">
<c-form-item label="" label-width="5px" prop="bedgrp.cbs.opn2.amt">
<c-input v-model="model.bedgrp.cbs.opn2.amt" placeholder="请输入" class="m-input-currency" disabled>
</c-input>
</c-form-item>
</c-col>
</c-col>
<!-- Document Type 单据类型-->
<c-col :span="24">
<el-form-item label="单据类型" prop="bedgrp.rec.doctypcod">
<c-select v-model="model.bedgrp.rec.doctypcod" maxlength="1" style="width: 100%" placeholder="请选择单据类型"
:code="codes.doctypcod1" disabled>
</c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<c-col :span="12">
<el-form-item label="到期日" prop="bedgrp.rec.matdat">
<c-date-picker type="date" v-model="model.bedgrp.rec.matdat" style="width: 100%" placeholder="请选择到期日"
value-format="yyyy-MM-dd" :disabled="true"></c-date-picker>
</el-form-item>
</c-col>
<!-- SF000079 : 寄单日期 -->
<c-col :span="12">
<el-form-item label="订单日期" prop="bedgrp.rec.orddat">
<c-date-picker type="date" v-model="model.bedgrp.rec.orddat" style="width: 100%" value-format="yyyy-MM-dd"
placeholder="请选择寄单日期" :disabled="true"></c-date-picker>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<!-- Received on SF000046 :到单日期-->
<c-col :span="12">
<el-form-item label="收到日期" prop="bedgrp.rec.rcvdat">
<c-date-picker type="date" v-model="model.bedgrp.rec.rcvdat" style="width: 100%" placeholder="请选择收到日期"
value-format="yyyy-MM-dd" :disabled="true"></c-date-picker>
</el-form-item>
</c-col>
<!-- Presented on SF000049 :提示日期 -->
<c-col :span="12">
<el-form-item label="交单日期" prop="bedgrp.rec.predat">
<c-date-picker type="date" v-model="model.bedgrp.rec.predat" style="width: 100%" placeholder="请选择提示日期"
value-format="yyyy-MM-dd" :disabled="true"></c-date-picker>
</el-form-item>
</c-col>
</c-col>
<!-- Document Status SF000056 :单据状态 -->
<c-col :span="24">
<el-form-item label="单据状态" prop="bedgrp.rec.docsta">
<c-select v-model="model.bedgrp.rec.docsta" maxlength="40" style="width: 100%" placeholder="请输入单据状态"
:code="codes.docsta" disabled></c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<c-form-item label="受益人陈述" prop="strinf">
<c-input type="textarea" v-model="model.strinf" maxlength="1750" show-word-limit :rows="5"
placeholder="请输入内容"></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="预订程序" prop="rebkpflg">
<c-select v-model="model.rebkpflg" style="width: 100%" placeholder="请选择" :code="codes.rebkpflg">
</c-select>
</el-form-item>
</c-col>
</c-col>
<c-col :span="12" style="padding-left: 20px">
<c-col :span="24">
<c-col :span="12">
<el-form-item label="信用证余额" prop="ledgrp.cbs.opn1.cur">
<c-select v-model="model.ledgrp.cbs.opn1.cur" maxlength="3" placeholder="请选择币种" :code="codes.curtxt"
disabled></c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="" label-width="5px" prop="ledgrp.cbs.opn1.amt">
<c-input v-model="model.ledgrp.cbs.opn1.amt" placeholder="请输入信用证余额" disabled class="m-input-currency">
</c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<el-form-item label="单据简略信息" prop="bedgrp.rec.nam">
<c-input text-align="middle" v-model="model.bedgrp.rec.nam" maxlength="40" placeholder="请输入" disabled>
</c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<c-form-item label="受益人参考号" prop="bedgrp.ben.pts.ref">
<c-input v-model="model.bedgrp.ben.pts.ref" maxlength="16" placeholder="请输入受益人" disabled></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="bedgrp.ben.pts.nam">
<c-input v-model="model.bedgrp.ben.pts.nam" maxlength="40" placeholder="请输入" disabled></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="开证行参考号" prop="bedgrp.iss.pts.ref">
<c-input v-model="model.bedgrp.iss.pts.ref" maxlength="16" placeholder="请输入开证行" disabled></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="bedgrp.iss.pts.nam">
<c-input v-model="model.bedgrp.iss.pts.nam" maxlength="40" placeholder="请输入" disabled></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="申请人参考号" prop="bedgrp.apl.pts.ref">
<c-input v-model="model.bedgrp.apl.pts.ref" maxlength="16" placeholder="请输入申请人" disabled></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="bedgrp.apl.pts.nam">
<c-input v-model="model.bedgrp.apl.pts.nam" maxlength="40" placeholder="请输入" disabled></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item>
<c-checkbox v-model="model.sndmsg" class="checkbox-left">发送消息</c-checkbox>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Betcan/Event'
export default {
inject: ['root'],
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event, onSeainf() { } },
created: function () { },
}
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="取消信息" name="canp">
<m-canp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import CodeTable from "~/config/CodeTable";
import Event from "~/model/Betcan/Event";
import Canp from "./Canp";
export default {
components: {
"m-canp": Canp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
activeNames: ["canp"],
};
},
methods: {
...Event,
handleChange(val) {
console.log(val);
},
},
created: function () { },
};
</script>
<style>
.marginLable {
padding-left: 160px;
}
</style>
<template>
<div class="eContainer">
<c-page title="出口信用证单据闭卷">
<el-form :model="model" :rules="rules" ref="modelForm" label-width="120px" label-position="right" size="small"
:validate-on-rule-change="false">
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="tabClick">
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000001 -->
<el-tab-pane label="统一授信" name="limitbody">
<c-content>
<m-limitbody :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="表外记账" name="engp">
<c-content>
<!-- 表外记账 -->
<m-engp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="会计分录" name="glepan">
<c-content>
<m-glentry :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000510 -->
<el-tab-pane label="备查/附言" name="addbcb">
<c-content>
<m-addbcb :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--trndoc PD000546 Attachments -->
<el-tab-pane label="附件" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-grid-ety-prompt-dialog ref="etyDialog" :promptData="promptData" v-on:select-ety="selectEty">
</c-grid-ety-prompt-dialog>
<c-function-btn :handleSubmit="handleSubmit" :handleCheck="handleCheck" :handleStash="handleStash">
<!-- <el-button size="small">用户确认</el-button>
<el-button size="small">检核</el-button>
<el-button size="small">日志</el-button>
<el-button size="small">inc to Ben</el-button>
<el-button size="small">imgyge</el-button>
<el-button size="small">img</el-button>
<el-button size="small">His.img</el-button> -->
</c-function-btn>
</c-page>
</div>
</template>
<script>
import Betcan from "~/model/Betcan";
import event from '../event';
import operationFunc from "~/mixin/operationFunc";
import formRules from '../model/check'
import Ovwp from './Ovwp'
import Canp from './Canp'
import Addbcb from "./Addbcb"
import Limitbody from "~/components/business/limitbody/views";
import Engp from "~/components/business/engp/views";
import Setmod from "~/components/business/setmod/views";
// import Glepan from "~/components/business/glepan/views";
import Docpan from "~/components/business/docpan/views";
import Doctre from "~/components/business/doctre/views";
export default {
name: 'Betcan',
components: {
'm-ovwp': Ovwp,
'm-canp': Canp,
'm-limitbody': Limitbody,
'm-engp': Engp,
"m-ccvpan": Ccvpan,
"m-setmod": Setmod,
"m-glentry": Glentry,
// 'm-glepan': Glepan,
'm-addbcb': Addbcb,
'm-docpan': Docpan,
'm-doctre': Doctre,
},
provide() {
return {
root: this,
}
},
mixins: [operationFunc, event],
data() {
return {
tabVal: 'ovwp',
trnName: 'betcan',
trnType: '',
model: new Betcan().data,
rules: formRules,
codes: {
...CodeTable
},
activeNames: ["setpan"],
}
},
methods: {},
mounted () {
this.init()
},
}
</script>
<style>
</style>
export default {
buildPtspta (ptsptaObj) {
let pts = ptsptaObj.pts;
let ptspta = {
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
};
return ptspta;
},
buildCommonData (model, trnName) {
let ptsptaList = [];
if (model.brdgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.apl));
}
if (model.brdgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'lid',
ownref: model.brdgrp.rec.ownref,
opndat: model.brdgrp.rec.opndat,
expdat: model.brdgrp.rec.expdat,
branchInr: model.brdgrp.rec.branchInr,
hndtyp: model.brdgrp.rec.hndtyp,
gartyp: model.brdgrp.rec.gartyp,
fingua: model.brdgrp.rec.fingua,
fromflg: model.brdgrp.rec.fromflg,
othersno: model.brdgrp.rec.othersno,
sndto: model.brdgrp.rec.sndto,
swiftflg: model.brtp.swiftflg,
brduil: model.brdgrp.rec.brduil,
purpos: model.brdgrp.rec.purpos,
revflg: model.brdgrp.rec.revflg,
cnfsta: model.brdgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.brdgrp.cbs.max,
OPN1: model.brdgrp.cbs.opn1,
MAC: model.brdgrp.cbs.mac,
MAC2: model.brdgrp.cbs.mac2,
OPC2: model.brdgrp.cbs.opc2,
CNF: model.brdgrp.cbs.cnf,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : 'ZL'
};
return dataObj
},
buildSetfeg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaall: model.liaall,
liaccv: model.liaccv,
// doceot: model.trnmod.trndoc.doceot,
};
return params
},
buildSetglg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
setfeg: model.setmod.setfeg,
liaall: model.liaall,
liaccv: model.liaccv,
};
return params
},
buildGlentry (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
setfog: model.setmod.setfog,
setfeg: model.setmod.setfeg,
setglg: model.setmod.setglg,
};
return params
},
buildEngp (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
};
return params
},
buildDocpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
};
return params
},
buildCcvpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaccvg: model.liaccv.liaccvg,
oldamt: model.liaccv.oldamt,
chgamt: model.liaccv.chgamt,
concur: model.liaccv.concur,
};
return params
},
buildLimitbody (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
},
};
return params
},
buildDoctre (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'lid',
objinr: model.brdgrp.rec.objinr,
ownref: model.brdgrp.rec.ownref,
swiftflg: model.brtp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import buildFn from './buildCommons.js';
import setmod from '~/components/business/setmod/event';
import glentry from '~/components/business/glentry/event';
import engp from '~/components/business/engp/event';
import docpan from '~/components/business/docpan/event';
import ccvpan from '~/components/business/ccvpan/event';
import limitbody from '~/components/business/limitbody/event';
import doctre from '~/components/business/doctre/event';
import Utils from "~/utils"
export default {
mixins: [commonFunctions],
methods: {
...setmod,
...glentry,
...engp,
...docpan,
...ccvpan,
...limitbody,
...doctre,
async init () {
const params = {
spt: JSON.parse(localStorage.getItem('row_' + this.trnName))
}
const res = await Api.post('/service/betrcl/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
brdgrp:{
rec:{
inr:this.$route.query.inr
}
}
});
if (!res.data) {
return
}
this.copyValueFromVoData(this.model, res.data)
this.copyValueFromVoData(this.model.setmod.setfeg, res.data.setfeg)
this.copyValueFromVoData(this.model.setmod.setfog, res.data.setfog)
this.copyValueFromVoData(this.model.setmod.setglg, res.data.setglg)
},
// 兼容处理在前端model中定义了字段,后端返回的数据中不存在字段的问题
copyValueFromVoData (model, data) {
let keysList = Object.keys(model)
keysList.map((key) => {
if (data[key]) {
if (Utils.typeOf(model[key]) === 'Object') {
this.copyValueFromVoData(model[key], data[key])
} else {
this.$set(model, key, data[key])
}
}
})
},
async tabClick(tab) {
if (this.isInDisplay) {
return;
}
let name = tab.name;
switch (name) {
case 'ccvpan':
let ccvpanRequest = buildFn.buildCcvpan(this.model, this.trnName);
this.processLiaccv(ccvpanRequest);
break;
case 'engp':
let engpRequest = buildFn.buildEngp(this.model, this.trnName);
this.processLiaall(engpRequest);
break;
case 'setmod':
let setfegRequest = buildFn.buildSetfeg(this.model, this.trnName);
// 此处利用回调是为了等setfeg的接口调用完成后才去获取setglg参数,由于setglg参数依赖于setfeg函数的返回值
this.processSetpan(setfegRequest, () => {
return buildFn.buildSetglg(this.model, this.trnName);
});
break;
case 'docpan':
let docpanRequest = buildFn.buildDocpan(this.model, this.trnName);
this.processTrndoc(docpanRequest);
break;
case 'glepan':
let glentryRequest = buildFn.buildGlentry(this.model, this.trnName);
this.processGlentry(glentryRequest);
break;
case 'limitbody':
let limitbodyRequest = buildFn.buildLimitbody(this.model, this.trnName);
this.processLimitbody(limitbodyRequest);
break;
case 'doctre':
let doctreRequest = buildFn.buildDoctre(this.model, this.trnName);
this.processDoctre(doctreRequest);
break;
default:
return;
}
},
// 点击获取按钮拉取当前key字段下的表单数据
queryFormData(key) {
console.log(key);
},
// 业务信息=》基本信息=》保函编号-----获取保函编号
async queryOwnref() {
let params = {
ptainr: this.model.gidgrp.apl.pts.ptainr,
businessType: 'LG',
tbl: 'LG',
};
const loading = this.loading();
let res = await Api.post('/service/betrcl/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtacp弹框表格数据
async queryGridEtyPromptDialogData(type, ptytyp) {
let params = {
userId: window.sessionStorage.userId || 'ZL',
ptytyp: ptytyp,
extkey: this.model.gidgrp[type.toLowerCase()].pts.extkey,
};
let res = await Api.post('/service/ptspta/list', params);
if (res.respCode == SUCCESS) {
this.root.$refs['etyDialog'].show = true;
this.root.promptData.data = res.data.ptaInfos;
this.root.promptData.type = type;
}
},
// 选中brtacp弹框表格的行数据
async selectGridEtyPromptData(row) {
let params = {
...row,
};
let res = await Api.post('/service/ptspta/fetch', params);
if (res.respCode == SUCCESS) {
this.$set(this.model.gidgrp, row.role.toLowerCase(), res.data);
}
},
// 业务信息=》基本信息=》支出目的
purposChange(key, value) {
this.handleChangeForm(key, value);
},
// 初始化保函开立类型码表下拉列表
async queryHndtypCodeTableList(trnName) {
let params = {
gitp: {
swiftflg: this.model.gitp.swiftflg,
},
gidgrp: {
rec: {
purpos: this.model.gidgrp.rec.purpos,
},
},
transName: trnName.toUpperCase(),
};
let res = await Api.post('/service/betrcl/initHndtyp', params);
if (res.respCode == SUCCESS) {
this.$set(this.codes, 'voHndtyp', res.data);
}
},
// 是否SWIFT格式修改--联动保函开立类型
handleChangeSwiftflg() {
this.queryHndtypCodeTableList(this.root.trnName);
},
// 支出目的修改--联动保函开立类型
handleChangePurpos() {
this.queryHndtypCodeTableList(this.root.trnName);
},
buildLiaccv () {
let params = {
...buildFn.buildCommonData(this.model, this.trnName),
liaccvg: this.model.liaccv.liaccvg,
oldamt: this.model.liaccv.oldamt,
chgamt: this.model.liaccv.chgamt,
concur: this.model.liaccv.concur,
};
return params
},
// 公共组件setmod处理方式改变触发联动
changeSetmodModel (emitParams) {
let reqParams = {}
switch (emitParams.code) {
case 'processMethods':
reqParams = buildFn.buildSetglg(this.model, this.trnName);
this.calcPayDetail(reqParams)
break
case 'changeDsp':
let index = emitParams.index;
let setglgRequest = buildFn.buildSetglg(this.model, this.trnName);
setglgRequest.setglg = {setgll: emitParams.list};
this.setgllAccts(setglgRequest, index);
break
default:
return
}
}
},
};
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Betrcl {
constructor() {
this.data = {
betp: {
adaflg: ''
},
ledgrp: {
rec: {
ownref: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
aamset: {
utlamt: '',
utlamt2: ''
},
mtabut: {
coninf: {
usr: {
extkey: ''
}
}
},
rmbclm: {
valdat: '',
clmrmbflg: '',
rmbrol: ''
},
liaall: {
tenstm: {
rows: ||=''
},
tensetstm: ''
},
bedgrp: {
rec: {
predat: '',
rcvdat: '',
doctypcod: '',
docsta: '',
ownref: '',
lescom: '',
matdat: '',
nam: ''
},
cbs: {
opn1: {
cur: ''
},
opn2: {
cur: ''
},
max: {
cur: '',
amt: ''
}
}
},
trnmod: {
trndoc: {
nar754: ''
}
},
payinstxt: '',
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
liaall: new Pub().data.Liaall,
liaccv: new Pub().data.Liaccv,
docpan: new Pub().data.Docpan,
};
}
}
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="索汇信息" name="rclp">
<c-content>
<m-rclp :model="model" :codes="codes" />
</c-content>
</el-collapse-item>
<el-collapse-item title="索汇详情" name="remp" v-if="model.rmbclm.clmrmbflg != ''">
<c-content>
<m-remp :model="model" :codes="codes" />
</c-content>
</el-collapse-item>
<!-- <el-tab-pane
v-if="model.rmbclm.clmrmbflg"
label="索汇详情"
name="remp">
<m-remp :model="model" :codes="codes" />
</el-tab-pane> -->
</el-collapse>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import CodeTable from "~/config/CodeTable";
import Event from "~/model/Gitcrj/Event";
import Rclp from "./Rclp"
import Remp from "./Remp"
export default {
components:{
"m-rclp" : Rclp,
"m-remp" : Remp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
activeNames: ["rclp"],
};
},
methods: { ...Event },
created:
function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<!-- left -->
<c-col :span="11">
<c-col :span="24">
<el-form-item label="偿付行" prop="rmbclm.rmbrol">
<c-select
v-model="model.rmbclm.rmbrol"
style="width: 100%"
placeholder="请选择偿付行"
@change="selectOrCheckboxRule('rmbclm.rmbrol')"
>
<el-option
v-for="item in codes.rolall"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '',
grp: 'rmbclm',
rol: 'rmbrmb',
}"
:noRef="false"
:isAdrblk="true"
:disabled="true"
@onSeainf="onSeainf"
@onAplpDet="onBenpDet"
:disabledRef="rmbrolFlag"
:disabledExtkey="rmbrolFlag"
>
</c-ptap>
</c-col>
<c-col :span="24">
<el-form-item label="起息日" prop="rmbclm.valdat">
<c-date-picker
type="date"
v-model="model.rmbclm.valdat"
style="width: 100%"
placeholder="请选择日期"
></c-date-picker>
</el-form-item>
</c-col>
</c-col>
<!-- right -->
<c-col :span="11" :offset="1">
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '账户号',
grp: 'rmbclm',
rol: 'acwacw',
}"
:noRef="false"
:disabled="true"
:isAdrblk="true"
@onSeainf="onSeainf"
@onAplpDet="onBenpDet"
>
</c-ptap>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '受益人银行',
grp: 'rmbclm',
rol: 'bebbeb',
}"
:noRef="false"
:disabled="true"
:isAdrblk="true"
@onSeainf="onSeainf"
@onAplpDet="onBenpDet"
>
</c-ptap>
</c-col>
</c-col>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import CodeTable from "~/config/CodeTable";
import Event from "~/model/Betrcl/Event";
import Ptap from "~/views/Public/Ptap";
export default {
components: {"c-ptap": Ptap },
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {};
},
computed:{
rmbrolFlag: {
get() {
return (
this.model.rmbclm.rmbrol == 'AVB' ||
this.model.rmbclm.rmbrol == 'ISS'
)
},
},
},
methods: { ...Event },
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eContainer">
<c-page title="出口信用证单据承兑">
<!-- <c-bus-button :$pntvm="this"></c-bus-button> -->
<!-- <el-button size="small">流程附言</el-button>
<el-button size="small">交易历史</el-button>
<el-button size="small">备忘录</el-button>
<el-button size="small">影像信息</el-button>
// <el-button size="small">保存模板</el-button>
// <el-button size="small">使用模板</el-button>
<el-button size="small">制裁信息</el-button>
// <el-button size="small">拆分报文</el-button>
<el-button size="small">智能提示</el-button>
</c-function-btn> -->
<el-form
:model="model"
:rules="rules"
ref="modelForm"
label-width="120px"
label-position="right"
size="small"
:validate-on-rule-change="false"
>
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="tabClick">
<!--PD000033 -->
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000001 -->
<el-tab-pane label="统一授信" name="limitbody">
<c-content>
<m-limitbody :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="表外记账" name="engp">
<c-content>
<!-- 表外记账 -->
<m-engp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="会计分录" name="glepan">
<c-content>
<m-glentry :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<el-tab-pane label="备查/附言" name="coninfp">
<c-content>
<m-coninfp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000529 -->
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000546 -->
<el-tab-pane label="附件信息" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-grid-ety-prompt-dialog
ref="doxpDialog"
:isPty="false"
:promptData="promptData"
@select-ety="selectMsg"
>
</c-grid-ety-prompt-dialog>
<c-function-btn
:handleSubmit="handleSubmit"
:handleCheck="handleCheck"
:handleStash="handleStash">
</c-function-btn>
</c-page>
</div>
</template>
<script>
import Api from "~/service/Api";
import CodeTable from "~/config/CodeTable";
import Betrcl from "~/model/Betrcl";
import commonProcess from "~/mixin/commonProcess";
import commonFuncs from "~/mixin/commonFuncs";
import Check from "~/model/Betrcl/Check";
import Default from "~/model/Betrcl/Default";
import Pattern from "~/model/Betrcl/Pattern";
import Ovwp from "./Ovwp";
import Remp from "./Remp";
import Engp from "~/views/Public/Engp";
import Doctre from "~/views/Public/Doctre";
import Setpan from "~/views/Public/Setpan";
import Coninfp from "~/views/Public/Coninfp";
import Docpan from "~/views/Public/Docpan";
import Limitbody from "~/views/Public/Limitbody";
export default {
name: "Betrcl",
components: {
"m-ovwp": Ovwp,
"m-engp": Engp,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-coninfp": Coninfp,
"m-remp": Remp,
"m-limitbody": Limitbody,
"m-setpan": Setpan,
},
provide() {
return {
root: this,
};
},
mixins: [commonProcess, commonFuncs], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: "ovwp",
trnName: "betrcl",
trnType: "",
model: new Betrcl().data,
checkRules: Check,
defaultRules: Default,
pattern: Pattern,
rules: null,
codes: {
...CodeTable,
},
activeNames: ["engp"],
};
},
methods: {
tabClick(tab) {
this.tabClick(tab);
/**
* do it yourself
**/
},
},
created: async function () {
console.log("进入betrcl交易");
let rtnmsg = await this.init({});
if (rtnmsg.respCode == SUCCESS) {
this.updateModel(rtnmsg.data);
if (this.isInDisplay) {
this.restoreDisplay();
}
this.$refs.rclp.$refs.table.$refs.table.toggleAllSelection();
//TODO 处理数据逻辑
} else {
this.$notify.error({ title: "错误", message: "服务请求失败!" });
}
},
};
</script>
<style>
</style>
export default {
buildPtspta (ptsptaObj) {
let pts = ptsptaObj.pts;
let ptspta = {
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
};
return ptspta;
},
buildCommonData (model, trnName) {
let ptsptaList = [];
if (model.brdgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.apl));
}
if (model.brdgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'lid',
ownref: model.brdgrp.rec.ownref,
opndat: model.brdgrp.rec.opndat,
expdat: model.brdgrp.rec.expdat,
branchInr: model.brdgrp.rec.branchInr,
hndtyp: model.brdgrp.rec.hndtyp,
gartyp: model.brdgrp.rec.gartyp,
fingua: model.brdgrp.rec.fingua,
fromflg: model.brdgrp.rec.fromflg,
othersno: model.brdgrp.rec.othersno,
sndto: model.brdgrp.rec.sndto,
swiftflg: model.brtp.swiftflg,
brduil: model.brdgrp.rec.brduil,
purpos: model.brdgrp.rec.purpos,
revflg: model.brdgrp.rec.revflg,
cnfsta: model.brdgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.brdgrp.cbs.max,
OPN1: model.brdgrp.cbs.opn1,
MAC: model.brdgrp.cbs.mac,
MAC2: model.brdgrp.cbs.mac2,
OPC2: model.brdgrp.cbs.opc2,
CNF: model.brdgrp.cbs.cnf,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : 'ZL'
};
return dataObj
},
buildSetfeg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaall: model.liaall,
liaccv: model.liaccv,
// doceot: model.trnmod.trndoc.doceot,
};
return params
},
buildSetglg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
setfeg: model.setmod.setfeg,
liaall: model.liaall,
liaccv: model.liaccv,
};
return params
},
buildGlentry (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
setfog: model.setmod.setfog,
setfeg: model.setmod.setfeg,
setglg: model.setmod.setglg,
};
return params
},
buildEngp (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
};
return params
},
buildDocpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
};
return params
},
buildCcvpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaccvg: model.liaccv.liaccvg,
oldamt: model.liaccv.oldamt,
chgamt: model.liaccv.chgamt,
concur: model.liaccv.concur,
};
return params
},
buildLimitbody (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
},
};
return params
},
buildDoctre (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'lid',
objinr: model.brdgrp.rec.objinr,
ownref: model.brdgrp.rec.ownref,
swiftflg: model.brtp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import buildFn from './buildCommons.js';
import setmod from '~/components/business/setmod/event';
import glentry from '~/components/business/glentry/event';
import engp from '~/components/business/engp/event';
import docpan from '~/components/business/docpan/event';
import ccvpan from '~/components/business/ccvpan/event';
import limitbody from '~/components/business/limitbody/event';
import doctre from '~/components/business/doctre/event';
import Utils from "~/utils"
export default {
mixins: [commonFunctions],
methods: {
...setmod,
...glentry,
...engp,
...docpan,
...ccvpan,
...limitbody,
...doctre,
async init () {
const params = {
spt: JSON.parse(localStorage.getItem('row_' + this.trnName))
}
const res = await Api.post('/service/letame/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
brdgrp:{
rec:{
inr:this.$route.query.inr
}
}
});
if (!res.data) {
return
}
this.copyValueFromVoData(this.model, res.data)
this.copyValueFromVoData(this.model.setmod.setfeg, res.data.setfeg)
this.copyValueFromVoData(this.model.setmod.setfog, res.data.setfog)
this.copyValueFromVoData(this.model.setmod.setglg, res.data.setglg)
},
// 兼容处理在前端model中定义了字段,后端返回的数据中不存在字段的问题
copyValueFromVoData (model, data) {
let keysList = Object.keys(model)
keysList.map((key) => {
if (data[key]) {
if (Utils.typeOf(model[key]) === 'Object') {
this.copyValueFromVoData(model[key], data[key])
} else {
this.$set(model, key, data[key])
}
}
})
},
async tabClick(tab) {
if (this.isInDisplay) {
return;
}
let name = tab.name;
switch (name) {
case 'ccvpan':
let ccvpanRequest = buildFn.buildCcvpan(this.model, this.trnName);
this.processLiaccv(ccvpanRequest);
break;
case 'engp':
let engpRequest = buildFn.buildEngp(this.model, this.trnName);
this.processLiaall(engpRequest);
break;
case 'setmod':
let setfegRequest = buildFn.buildSetfeg(this.model, this.trnName);
// 此处利用回调是为了等setfeg的接口调用完成后才去获取setglg参数,由于setglg参数依赖于setfeg函数的返回值
this.processSetpan(setfegRequest, () => {
return buildFn.buildSetglg(this.model, this.trnName);
});
break;
case 'docpan':
let docpanRequest = buildFn.buildDocpan(this.model, this.trnName);
this.processTrndoc(docpanRequest);
break;
case 'glepan':
let glentryRequest = buildFn.buildGlentry(this.model, this.trnName);
this.processGlentry(glentryRequest);
break;
case 'limitbody':
let limitbodyRequest = buildFn.buildLimitbody(this.model, this.trnName);
this.processLimitbody(limitbodyRequest);
break;
case 'doctre':
let doctreRequest = buildFn.buildDoctre(this.model, this.trnName);
this.processDoctre(doctreRequest);
break;
default:
return;
}
},
// 点击获取按钮拉取当前key字段下的表单数据
queryFormData(key) {
console.log(key);
},
// 业务信息=》基本信息=》保函编号-----获取保函编号
async queryOwnref() {
let params = {
ptainr: this.model.gidgrp.apl.pts.ptainr,
businessType: 'LG',
tbl: 'LG',
};
const loading = this.loading();
let res = await Api.post('/service/letame/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtacp弹框表格数据
async queryGridEtyPromptDialogData(type, ptytyp) {
let params = {
userId: window.sessionStorage.userId || 'ZL',
ptytyp: ptytyp,
extkey: this.model.gidgrp[type.toLowerCase()].pts.extkey,
};
let res = await Api.post('/service/ptspta/list', params);
if (res.respCode == SUCCESS) {
this.root.$refs['etyDialog'].show = true;
this.root.promptData.data = res.data.ptaInfos;
this.root.promptData.type = type;
}
},
// 选中brtacp弹框表格的行数据
async selectGridEtyPromptData(row) {
let params = {
...row,
};
let res = await Api.post('/service/ptspta/fetch', params);
if (res.respCode == SUCCESS) {
this.$set(this.model.gidgrp, row.role.toLowerCase(), res.data);
}
},
// 业务信息=》基本信息=》支出目的
purposChange(key, value) {
this.handleChangeForm(key, value);
},
// 初始化保函开立类型码表下拉列表
async queryHndtypCodeTableList(trnName) {
let params = {
gitp: {
swiftflg: this.model.gitp.swiftflg,
},
gidgrp: {
rec: {
purpos: this.model.gidgrp.rec.purpos,
},
},
transName: trnName.toUpperCase(),
};
let res = await Api.post('/service/letame/initHndtyp', params);
if (res.respCode == SUCCESS) {
this.$set(this.codes, 'voHndtyp', res.data);
}
},
// 是否SWIFT格式修改--联动保函开立类型
handleChangeSwiftflg() {
this.queryHndtypCodeTableList(this.root.trnName);
},
// 支出目的修改--联动保函开立类型
handleChangePurpos() {
this.queryHndtypCodeTableList(this.root.trnName);
},
buildLiaccv () {
let params = {
...buildFn.buildCommonData(this.model, this.trnName),
liaccvg: this.model.liaccv.liaccvg,
oldamt: this.model.liaccv.oldamt,
chgamt: this.model.liaccv.chgamt,
concur: this.model.liaccv.concur,
};
return params
},
// 公共组件setmod处理方式改变触发联动
changeSetmodModel (emitParams) {
let reqParams = {}
switch (emitParams.code) {
case 'processMethods':
reqParams = buildFn.buildSetglg(this.model, this.trnName);
this.calcPayDetail(reqParams)
break
case 'changeDsp':
let index = emitParams.index;
let setglgRequest = buildFn.buildSetglg(this.model, this.trnName);
setglgRequest.setglg = {setgll: emitParams.list};
this.setgllAccts(setglgRequest, index);
break
default:
return
}
}
},
};
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Letame {
constructor() {
this.data = {
number: '',
oldledgrp: {
rec: {
expdat: '',
nomton: '',
shpdat: '',
nomtop: '',
prepertxts18: '',
prepers18: ''
},
cbs: {
max: {
amt: ''
},
nom1: {
amt: ''
}
}
},
ledgrp: {
a2b: {
pts: {
extkey: ''
}
},
blk: {
insbnk: '',
revnotes: '',
feetxt: '',
mixdet: '',
revcls: '',
adlcnd: '',
shpper: '',
addamtcov: '',
avbwthtxt: '',
defdet: '',
lcrdoc: '',
lcrgod: '',
lcrdocame: '',
dftat: '',
adlcndame: '',
lcrgodame: ''
},
rec: {
tenmaxday: '',
nomton: '',
expplc: '',
stacty: '',
revtyp: '',
revtimes: '',
opndat: '',
nomtop: '',
avbwth: '',
revflg: '',
spcbenflg: '',
dbtflg: '',
shpdat: '',
revdat: '',
nam: '',
prepertxts18: '',
redclsflg: '',
cnfins: '',
nomspc: '',
shptrss18: '',
spcrcbflg: '',
collflg: '',
inctrf: '',
shpfro: '',
lcrtyp: '',
nonban: '',
ownref: '',
teskeyunc: '',
preadvdt: '',
avbby: '',
pordis: '',
apprul: '',
shppar: '',
prepers18: '',
expdat: '',
shpto: '',
revnbr: '',
chato: '',
cnfdet: '',
revcum: '',
aplbnkdirsnd: '',
advdat: '',
porloa: '',
apprultxt: ''
},
con: {
pts: {
nam: ''
}
},
cbs: {
opn2: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
},
nom1: {
cur: '',
amt: ''
},
max2: {
cur: '',
amt: ''
}
},
rmb: {
rolsetflg: ''
},
drw: {
pts: {
extkey: '',
adrblk: ''
}
},
ben: {
pts: {
adrblk: ''
}
},
preadvflg: '',
avb: {
pts: {
extkey: ''
}
}
},
letp: {
usr: {
extkey: ''
},
aamp: {
aammod: {
addamtflg: ''
}
}
},
letamep: {
amenbr: '',
cre707flg: '',
lcrdocame: {
buttxmsel: ''
},
benaccflg: '',
lcrdocamep: {
modflg: '',
modmanflg: '',
usrblk: ''
},
adlcndame: {
buttxmsel: ''
},
lcrgodamep: {
modflg: '',
modmanflg: '',
usrblk: ''
},
maxamt: '',
adlcndamep: {
modflg: '',
modmanflg: '',
usrblk: ''
},
engamt: '',
lcrgodame: {
buttxmsel: ''
}
},
rmbclm: {
acwacw: {
pts: {
ref: ''
}
},
valdat: '',
rmbrmb: {
pts: {
ref: ''
}
},
bebbeb: {
pts: {
ref: ''
}
},
rmbrol: ''
},
trnmod: {
swiadd: {
newnomtop: '',
shpfro: '',
shpper: '',
amedat: '',
pordis: '',
addamtcov: '',
newnomton: '',
amenbr: '',
addamt: '',
amecur: '',
newshpdat: '',
newamt: '',
shpto: '',
newexpdat: '',
ameamt: '',
newcur: '',
porloa: '',
nomspc: ''
}
},
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
liaall: new Pub().data.Liaall,
liaccv: new Pub().data.Liaccv,
docpan: new Pub().data.Docpan,
};
}
}
<template>
<div class="eibs">
<!-- ====================左边======================= -->
<c-col :span="12" style="padding-right: 20px;">
<c-col :span="13">
<el-form-item label="附加金额" prop="ledgrp.cbs.max2.cur">
<c-select
v-model="model.ledgrp.cbs.max2.cur"
style="width: 100%"
placeholder="请选择币种"
disabled
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item label="" label-width="5px" prop="ledgrp.cbs.max2.amt">
<c-input
v-model="model.ledgrp.cbs.max2.amt"
placeholder="请输入金额"
class="m-input-currency"
disabled
@keyup.enter.native="$event.target.blur()"
></c-input>
</el-form-item>
</c-col>
<c-col :span="13">
<el-form-item label="附加金额余额" prop="ledgrp.cbs.opn2.cur">
<c-select
v-model="model.ledgrp.cbs.opn2.cur"
style="width: 100%"
placeholder="请选择币种"
disabled
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item label="" label-width="5px" prop="ledgrp.cbs.opn2.amt">
<c-input
v-model="model.ledgrp.cbs.opn2.amt"
class="m-input-currency"
placeholder="请输入附加金额余额"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="金额覆盖" prop="ledgrp.blk.addamtcov">
<c-input
type="textarea"
v-model="model.ledgrp.blk.addamtcov"
maxlength="140"
show-word-limit
placeholder="请输入"
rows="4"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
export default {
inject: ['root'],
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () {},
}
</script>
<style></style>
<template>
<div class="eibs">
<c-col :span="12">
<el-form-item label="附加条款历史记录" prop="ledgrp.blk.adlcndame">
<c-input type="textarea" v-model="model.ledgrp.blk.adlcndame" maxlength="50" show-word-limit
placeholder="请输入附加条款历史记录"></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="附加条款" prop="ledgrp.blk.adlcnd">
<c-input type="textarea" v-model="model.ledgrp.blk.adlcnd" maxlength="65" show-word-limit
placeholder="请输入附加条款"></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.ledgrp.rec.redclsflg">红/绿条款</c-checkbox>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.ledgrp.rec.spcbenflg">受益人特殊付款条款</c-checkbox>
</c-col>
<c-col :span="12">
<el-form-item label="阻止为添加/删除输入附加信息" prop="letamep.adlcndamep.usrblk">
<c-input type="textarea" v-model="model.letamep.adlcndamep.usrblk" maxlength="65" show-word-limit
placeholder="请输入阻止为添加/删除输入附加信息"></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.ledgrp.rec.spcrcbflg">银行专用特殊付款条款</c-checkbox>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.letamep.adlcndamep.modflg">修改要替换的文本</c-checkbox>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.letamep.adlcndamep.modmanflg">手动更新的修改字段</c-checkbox>
</c-col>
<c-col :span="12">
<el-form-item label="..." prop="letamep.adlcndame.buttxmsel">
<c-input v-model="model.letamep.adlcndame.buttxmsel" placeholder="请输入..."></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onAdlcndamepButdif">
显示不符点
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onAdlcndamepButadd">
添加文本
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" icon="el-icon-delete" @click="onAdlcndamepButdel">
删除文本
</c-button>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
export default {
inject: ['root'],
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () { },
}
</script>
<style></style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="提示信息" name="coninfp">
<m-coninfp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import Event from "~/model/Letame/Event";
import Coninfp from "~/views/Public/Coninfp";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {
...Event,
handleChange(val) {
console.log(val);
},
},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<c-col :span="12">
<el-form-item
label="历史货物描述信息"
prop="ledgrp.blk.lcrgodame"
>
<c-input
type="textarea"
v-model="model.ledgrp.blk.lcrgodame"
maxlength="50"
show-word-limit
placeholder="请输入历史货物描述信息"
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="货物描述" prop="ledgrp.blk.lcrgod">
<c-input
type="textarea"
v-model="model.ledgrp.blk.lcrgod"
maxlength="65"
show-word-limit
placeholder="请输入货物描述"
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item
label="在当前修订中添加/删除文本"
prop="letamep.lcrgodamep.usrblk"
>
<c-input
type="textarea"
v-model="model.letamep.lcrgodamep.usrblk"
maxlength="65"
show-word-limit
placeholder="请输入内容"
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.letamep.lcrgodamep.modflg"
>修改替换文本</c-checkbox
>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.letamep.lcrgodamep.modmanflg"
>人手修改文本</c-checkbox
>
</c-col>
<c-col :span="12">
<el-form-item label="..." prop="letamep.lcrgodame.buttxmsel">
<c-input
v-model="model.letamep.lcrgodame.buttxmsel"
placeholder="请输入..."
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onLcrgodamepButdif">
Show Diff
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onLcrgodamepButadd">
添加文本
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" icon="el-icon-delete" @click="onLcrgodamepButdel">
删除文本
</c-button>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
export default {
inject: ['root'],
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () {},
}
</script>
<style></style>
<template>
<div class="eibs">
<c-col :span="12">
<el-form-item
label="历史单据要求"
prop="ledgrp.blk.lcrdocame"
>
<c-input
type="textarea"
v-model="model.ledgrp.blk.lcrdocame"
maxlength="50"
show-word-limit
placeholder="请输入历史单据要求"
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="单据要求" prop="ledgrp.blk.lcrdoc">
<c-input
type="textarea"
v-model="model.ledgrp.blk.lcrdoc"
maxlength="65"
show-word-limit
placeholder="请输入单据要求"
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item
label="阻止为添加/删除输入附加信息"
prop="letamep.lcrdocamep.usrblk"
>
<c-input
type="textarea"
v-model="model.letamep.lcrdocamep.usrblk"
maxlength="65"
show-word-limit
placeholder="请输入阻止为添加/删除输入附加信息"
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.letamep.lcrdocamep.modflg"
>修改要替换的文本</c-checkbox
>
</c-col>
<c-col :span="12">
<c-checkbox v-model="model.letamep.lcrdocamep.modmanflg"
>手动更新的修改字段</c-checkbox
>
</c-col>
<c-col :span="12">
<el-form-item label="..." prop="letamep.lcrdocame.buttxmsel">
<c-input
v-model="model.letamep.lcrdocame.buttxmsel"
placeholder="请输入..."
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onLcrdocamepButdif">
显示不符点
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" type="primary" @click="onLcrdocamepButadd">
添加文本
</c-button>
</c-col>
<c-col :span="12">
<c-button size="small" icon="el-icon-delete" @click="onLcrdocamepButdel">
删除文本
</c-button>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
export default {
inject: ['root'],
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () {},
}
</script>
<style></style>
<template>
<div class="eibs">
<span class="letame_amed_amt">给付款、承兑、议付行的指示</span>
<c-col :span="24">
<el-form-item label=" ">
</el-form-item>
</c-col>
<c-col :span="20">
<el-form-item
label="原始文本"
prop="ledgrp.blk.insbnk"
>
<c-input
type="textarea"
v-model="model.ledgrp.blk.insbnk"
maxlength="780"
:rows="20"
show-word-limit
placeholder="请输指示内容"
></c-input>
</el-form-item>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
export default {
inject: ['root'],
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () {},
}
</script>
<style>
.letame_amed_amt {
margin-left: 30px;
height: 16px;
color: #606266;
line-height: 16px;
font-size: 12px;
}</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="修改内容" name="amep">
<m-amep :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="附加金额" name="aamp" v-if="model.letp.aamp.aammod.addamtflg">
<m-aamp :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="概览信息" name="ovwp1">
<m-ovwp1 :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="详细信息" name="detp">
<m-detp :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="当事人信息" name="ptyp">
<m-ptyp :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="附加条款" name="adcpame">
<m-doxpame
:model="model"
:codes="codes"
:recgrp="'ledgrp'"
:ametyp="'lcrgod'"
/>
</el-collapse-item>
<el-collapse-item title="银行专用特殊付款条款(修改)" name="sprpame" v-if="model.ledgrp.rec.spcrcbflg">
<m-doxpame
:model="model"
:codes="codes"
:recgrp="'ledgrp'"
:ametyp="'spcrcb'" />
</el-collapse-item>
<el-collapse-item title="受益人特殊付款条款(修改)" name="spbpame" v-if="model.ledgrp.rec.spcbenflg">
<m-doxpame
:model="model"
:codes="codes"
:recgrp="'ledgrp'"
:ametyp="'spcben'" />
</el-collapse-item>
<el-collapse-item title="单据修改" name="dorpame">
<m-doxpame
:model="model"
:codes="codes"
:recgrp="'ledgrp'"
:ametyp="'lcrgod'"
/>
</el-collapse-item>
<el-collapse-item title="货物修改" name="dogpame">
<m-doxpame
:model="model"
:codes="codes"
:recgrp="'ledgrp'"
:ametyp="'lcrgod'"
/>
</el-collapse-item>
<el-collapse-item title="给付款、承兑、议付行的指示" name="inspame">
<m-inspame :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="循环信用证详情" name="revp">
<m-revp :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="MT 742 Reimbursement Clain" name="rcldetp" v-if="model.ledgrp.rmb.rolsetflg=='Y'">
<m-rcldetp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import commonProcess from "~/mixin/commonProcess";
import Event from "~/model/Getamc/Event";
import Amep from "./Amep";
import Aamp from "./Aamp";
import Ovwp1 from "./Ovwp1";
import Detp from "./Detp";
import Ptyp from "./Ptyp";
import Doxpame from "~/views/Public/Doxpame";
import Inspame from "./Inspame";
import Revp from './Revp';
import Rcldetp from "./Rcldetp";
export default {
components: {
"m-amep": Amep,
"m-aamp": Aamp,
"m-ovwp1": Ovwp1,
"m-detp": Detp,
"m-ptyp": Ptyp,
"m-doxpame": Doxpame,
"m-inspame": Inspame,
'm-revp': Revp,
"m-rcldetp" : Rcldetp,
},
inject: ['root'],
props:["model","codes"],
mixins: [commonProcess],
data(){
return {
activeNames: ["amep"],
}
},
methods:{...Event},
created:function(){
}
}
</script>
<style>
</style>
<template>
<div class="eibs">
<c-row>
<!-- =================================左边================================= -->
<c-col :span="12" style="padding-right: 20px;">
<!-- 第一通知行 第一通知行-->
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '第一通知行',
grp: 'ledgrp',
rol: 'adv',
}"
:disabledRef="true"
:disabledExtkey="true"
:disabled="true"
@onSeainf="onSeainf"
@onAplpDet="onAdvpDet"
>
</c-ptap>
</c-col>
<!-- 第二通知行 第二通知行-->
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '第二通知行',
grp: 'ledgrp',
rol: 'a2b',
}"
@onSeainf="onSeainf"
@onAplpDet="onA2bpDet"
>
</c-ptap>
</c-col>
<!-- Confirm. Instruct.第二通知行确认指令 -->
<c-col :span="24">
<el-form-item label="第二通知行确认指令" prop="ledgrp.rec.cnfins">
<c-select
v-model="model.ledgrp.rec.cnfins"
style="width: 100%"
placeholder="第二通知行确认指令"
:code="codes.cnfflg1"
:disabled="model.ledgrp.a2b.pts.extkey==''"
>
</c-select>
</el-form-item>
</c-col>
</c-col>
<!-- ========================右边======================= -->
<c-col :span="12" style="padding-right: 20px;">
<!-- Applicant's Bank 申请银行-->
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '申请人银行',
grp: 'ledgrp',
rol: 'apb',
}"
@onSeainf="onSeainf"
@onAplpDet="onApbpDet"
>
</c-ptap>
</c-col>
<!-- Send Directly to Applicant's Bank 直接发送至申请银行-->
<el-form-item label="" prop="" class="checkbox-left">
<c-checkbox v-model="model.ledgrp.rec.aplbnkdirsnd"
disabled
>直接发送至申请人银行</c-checkbox
>
</el-form-item>
<!-- Reimbursement Bank偿付银行 -->
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '偿付银行',
grp: 'ledgrp',
rol: 'rmb',
}"
@onSeainf="onSeainf"
@onAplpDet="onRmbpDet"
>
</c-ptap>
</c-col>
<!-- Confirmation Bank 保兑行-->
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '保兑银行',
grp: 'ledgrp',
rol: 'con',
}"
:disabledRef="true"
:disabledExtkey="true"
:onlySearch="true"
@onSeainf="onSeainf"
@onAplpDet="onConpDet"
>
</c-ptap>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="ledgrp.con.pts.nam">
<c-input
v-model="model.ledgrp.con.pts.nam"
maxlength="40"
placeholder="请输入名称"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<!-- =============================底部表格========================= -->
<c-edit-table :model="model" v-bind="ptsaddg">
<el-table-column label="操作" text-align="center">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleEdit(scope.$index, scope.row)"
type="primary"
>详情</el-button
>
</template>
</el-table-column>
</c-edit-table>
</c-row>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
import Ptap from "~/views/Public/Ptap"
export default {
inject: ['root'],
components: { "c-ptap": Ptap },
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {
ptsaddg: {
columns: [
{
title: "角色",
width: "120px",
dataIndex: "rol",
show: "select",
},
{
title: "机构实体",
width: "180px",
dataIndex: "ptyextkey",
show: "input",
},
{
title: "名称",
width: "300px",
dataIndex: "nam",
},
{
title: "参考地址",
width: "300px",
dataIndex: "ref",
},
],
urls: "letp.ptsaddp.ptsaddg",
},
};
},
methods: {
...Event,
handleEdit() {
console.log("1111测试");
},
},
created: function () {},
}
</script>
<style></style>
<template>
<div class="eibs">
<!-- ==========================左半边================================== -->
<c-col :span="12" style="padding-right: 20px;">
<!-- SF000021 : 偿付行 -->
<c-col :span="24">
<el-form-item label="偿付银行" prop="rmbclm.rmbrol">
<c-select
v-model="model.rmbclm.rmbrol"
style="width: 100%"
placeholder="请选择"
:code="codes.rolall"
@change="selectOrCheckboxRule('rmbclm.rmbrol')"
>
</c-select>
</el-form-item>
</c-col>
<!-- SF000020 : 编号 Reference for Address Optional -->
<c-col :span="24">
<c-form-item label="偿付行参考号" prop="rmbclm.rmbrmb.pts.ref">
<c-input
v-model="model.rmbclm.rmbrmb.pts.ref"
maxlength="16"
placeholder="请输入参考号"
:disabled="rmbrolRefFlag"
></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '',
grp: 'rmbclm',
rol: 'rmbrmb',
}"
:noRef="true"
@onSeainf="onSeainf"
@onAplpDet="onRmbp1Det"
:disabledExtkey="rmbrolRefFlag"
:disabled="rmbrolAdrblkFlag"
>
</c-ptap>
</c-col>
<!-- SF000011 : Account with Bank -->
<!-- SF000018 : 编号 -->
<c-col :span="24">
<c-form-item
label="账户行参考号"
prop="rmbclm.acwacw.pts.ref"
>
<c-input
v-model="model.rmbclm.acwacw.pts.ref"
maxlength="16"
placeholder="请输入"
></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '',
grp: 'rmbclm',
rol: 'acwacw',
}"
:noRef="true"
@onSeainf="onSeainf"
@onAplpDet="onAcwpDet"
>
</c-ptap>
</c-col>
<!-- SF000016 : Beneficiary Bank -->
<!-- SF000019 : 编号 -->
<c-col :span="24">
<c-form-item
label="受益人银行参考号"
prop="rmbclm.bebbeb.pts.ref"
>
<c-input
v-model="model.rmbclm.bebbeb.pts.ref"
maxlength="16"
placeholder="请输入"
></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '',
grp: 'rmbclm',
rol: 'bebbeb',
}"
:noRef="true"
@onSeainf="onSeainf"
@onAplpDet="onBebpDet"
>
</c-ptap>
</c-col>
<!-- SG000133 : value date -->
<c-col :span="24">
<el-form-item label="起息日" prop="rmbclm.valdat">
<c-date-picker
type="date"
value-format="yyyy-MM-dd"
v-model="model.rmbclm.valdat"
style="width: 100%"
placeholder="请选择"
></c-date-picker>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
import Ptap from '~/views/Public/Ptap'
export default {
inject: ['root'],
components: { 'c-ptap': Ptap },
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () {},
computed:{
rmbrolRefFlag: {
get() {
return (
this.model.rmbclm.rmbrol=='ADV'||this.model.rmbclm.rmbrol=='AVB'
||this.model.rmbclm.rmbrol=='ISS'||this.model.rmbclm.rmbrol=='CON'
)
},
},
rmbrolAdrblkFlag: {
get() {
return (
this.model.rmbclm.rmbrol=='ADV'||this.model.rmbclm.rmbrol=='AVB'
||this.model.rmbclm.rmbrol=='ISS'||this.model.rmbclm.rmbrol=='CON'
||this.model.rmbclm.rmbrol=='RMB'
)
},
},
}
}
</script>
<style></style>
<template>
<div class="eibs">
<c-row>
<c-col :span="12" style="padding-right: 20px;">
<el-form-item label="循环信用证信息"></el-form-item>
</c-col>
</c-row>
<c-row>
<c-col :span="12" style="padding-right: 20px;">
<el-form-item label="循环信用证类型" prop="ledgrp.rec.revtyp">
<c-select
v-model="model.ledgrp.rec.revtyp"
style="width: 100%"
placeholder="请选择类型"
:code="codes.revtyp"
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="8">
<!-- Credit is Marked as Cumulative -->
<c-checkbox v-model="model.ledgrp.rec.revcum" class="checkbox-left"
style="margin-left:10px"
>累计标识</c-checkbox
>
</c-col>
</c-row>
<c-row>
<c-col :span="12" style="padding-right: 20px;">
<c-col :span="12">
<el-form-item label="循环时间" prop="ledgrp.rec.revtimes">
<c-input
v-model.number="model.ledgrp.rec.revtimes"
placeholder="请输入时间"
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="循环次数" prop="ledgrp.rec.revnbr">
<c-input
v-model.number="model.ledgrp.rec.revnbr"
placeholder="请输入内容"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
</c-row>
<c-row>
<c-col :span="12" style="padding-right: 20px;">
<el-form-item label="下次循环日期" prop="ledgrp.rec.revdat">
<c-date-picker
type="date"
v-model="model.ledgrp.rec.revdat"
style="width: 100%"
placeholder="请选择日期"
value-format="yyyy-MM-dd"
></c-date-picker>
</el-form-item>
</c-col>
</c-row>
<c-row>
<c-col :span="12" style="padding-right: 20px;">
<el-form-item label="循环条款" prop="ledgrp.blk.revcls">
<c-fullbox>
<c-input
type="textarea"
v-model="model.ledgrp.blk.revcls"
maxlength="390"
:rows="5"
show-word-limit
placeholder="请输入内容"
></c-input>
<template slot="footer">
<!-- @click="onRevclauseButtxmsel" -->
<c-button
size="small"
type="primary"
icon="el-icon-more"
@click="showGridPromptDialog('letp.revclause.buttxmsel', null, null,{TXT: 'ledgrp.blk.revcls'}, {TXT: false},'doxpDialog')"
>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
</c-row>
<c-row>
<c-col :span="12" style="padding-right: 20px;">
<el-form-item label="受益人须知" prop="ledgrp.blk.revnotes">
<c-input
type="textarea"
v-model="model.ledgrp.blk.revnotes"
maxlength="210"
:rows="5"
show-word-limit
placeholder="请输入内容"
></c-input>
</el-form-item>
</c-col>
</c-row>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letame/Event'
export default {
inject: ['root'],
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () {},
}
</script>
<style></style>
<template>
<div class="eContainer">
<c-page title="出口信用证修改">
<el-form
:model="model"
:rules="rules"
ref="modelForm"
label-width="120px"
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" />
</c-content>
</el-tab-pane>
<el-tab-pane label="统一授信" name="limitbody">
<c-content>
<m-limitbody :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="表外记账" name="engp">
<c-content>
<!-- 表外记账 -->
<m-engp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="会计分录" name="glepan">
<c-content>
<m-glentry :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<el-tab-pane label="备查/附言" name="addbcb">
<c-content>
<m-addbcb :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000529 报文及面函-->
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000546 附件-->
<el-tab-pane label="附件信息" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-grid-ety-prompt-dialog
ref="etyDialog"
:promptData="promptData"
@select-ety="selectEty"
>
</c-grid-ety-prompt-dialog>
<c-grid-ety-prompt-dialog
ref="doxpDialog"
:isPty="false"
:promptData="promptData"
@select-ety="selectMsg"
>
</c-grid-ety-prompt-dialog>
<c-function-btn
:handleSubmit="handleSubmit"
:handleCheck="handleCheck"
:handleStash="handleStash"
>
</c-function-btn>
</c-page>
</div>
</template>
<script>
import Addbcb from "./Addbcb";
import Api from '~/service/Api'
import CodeTable from '~/config/CodeTable'
import Letame from '~/model/Letame'
import commonProcess from '~/mixin/commonProcess'
import commonFuncs from "~/mixin/commonFuncs"
import Check from '~/model/Letame/Check'
import Default from '~/model/Letame/Default'
import Pattern from '~/model/Letame/Pattern'
import Amep from './Amep'
import Ovwp from './Ovwp'
import Detp from './Detp'
import Aamp from './Aamp'
import Ptyp from './Ptyp'
import Ovwp1 from './Ovwp1'
import Inspame from './Inspame'
import Doxpame from "~/views/Public/Doxpame";
import Engp from "~/views/Public/Engp";
import Setpan from '~/views/Public/Setpan';
import Glepan from "~/views/Public/Glepan";
import Coninfp from "~/views/Public/Coninfp";
import Docpan from "~/views/Public/Docpan";
import Doctre from '~/views/Public/Doctre';
import Limitbody from '~/views/Public/Limitbody';
export default {
name: 'Letame',
components: {
'm-amep': Amep,
'm-ovwp': Ovwp,
'm-detp': Detp,
'm-aamp': Aamp,
"m-addbcb": Addbcb,
'm-ptyp': Ptyp,
"m-doxpame": Doxpame,
'm-inspame': Inspame,
'm-engp': Engp,
'm-setpan': Setpan,
'm-glepan': Glepan,
'm-coninfp': Coninfp,
'm-docpan': Docpan,
'm-doctre': Doctre,
'm-limitbody': Limitbody,
},
provide() {
return {
root: this,
}
},
mixins: [commonProcess, commonFuncs], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: 'ovwp',
trnName: 'letame',
model: new Letame().data,
checkRules: Check,
defaultRules: Default,
pattern: Pattern,
rules: null,
codes: { ...CodeTable },
activeNames: ["engp"],
}
},
methods: {
myTabClick(tab) {
this.tabClick(tab)
/**
* do it yourself
**/
},
},
created: async function () {
console.log('进入letame交易')
let rtnmsg = await this.init({})
if (rtnmsg.respCode == SUCCESS) {
this.updateModel(rtnmsg.data)
//TODO 处理数据逻辑
if (this.isInDisplay) {
this.restoreDisplay();
}
} else {
this.$notify.error({ title: '错误', message: '服务请求失败!' })
}
},
}
</script>
<style></style>
export default {
buildPtspta (ptsptaObj) {
let pts = ptsptaObj.pts;
let ptspta = {
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
};
return ptspta;
},
buildCommonData (model, trnName) {
let ptsptaList = [];
if (model.brdgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.apl));
}
if (model.brdgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.brdgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'lid',
ownref: model.brdgrp.rec.ownref,
opndat: model.brdgrp.rec.opndat,
expdat: model.brdgrp.rec.expdat,
branchInr: model.brdgrp.rec.branchInr,
hndtyp: model.brdgrp.rec.hndtyp,
gartyp: model.brdgrp.rec.gartyp,
fingua: model.brdgrp.rec.fingua,
fromflg: model.brdgrp.rec.fromflg,
othersno: model.brdgrp.rec.othersno,
sndto: model.brdgrp.rec.sndto,
swiftflg: model.brtp.swiftflg,
brduil: model.brdgrp.rec.brduil,
purpos: model.brdgrp.rec.purpos,
revflg: model.brdgrp.rec.revflg,
cnfsta: model.brdgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.brdgrp.cbs.max,
OPN1: model.brdgrp.cbs.opn1,
MAC: model.brdgrp.cbs.mac,
MAC2: model.brdgrp.cbs.mac2,
OPC2: model.brdgrp.cbs.opc2,
CNF: model.brdgrp.cbs.cnf,
},
ptsList: ptsptaList,
transName: trnName,
userId: window.sessionStorage.userId ? window.sessionStorage.userId : 'ZL'
};
return dataObj
},
buildSetfeg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaall: model.liaall,
liaccv: model.liaccv,
// doceot: model.trnmod.trndoc.doceot,
};
return params
},
buildSetglg (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
setfeg: model.setmod.setfeg,
liaall: model.liaall,
liaccv: model.liaccv,
};
return params
},
buildGlentry (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
setfog: model.setmod.setfog,
setfeg: model.setmod.setfeg,
setglg: model.setmod.setglg,
};
return params
},
buildEngp (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaallg: model.liaall.liaallg,
};
return params
},
buildDocpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
};
return params
},
buildCcvpan (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
liaccvg: model.liaccv.liaccvg,
oldamt: model.liaccv.oldamt,
chgamt: model.liaccv.chgamt,
concur: model.liaccv.concur,
};
return params
},
buildLimitbody (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
},
};
return params
},
buildDoctre (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'lid',
objinr: model.brdgrp.rec.objinr,
ownref: model.brdgrp.rec.ownref,
swiftflg: model.brtp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import buildFn from './buildCommons.js';
import setmod from '~/components/business/setmod/event';
import glentry from '~/components/business/glentry/event';
import engp from '~/components/business/engp/event';
import docpan from '~/components/business/docpan/event';
import ccvpan from '~/components/business/ccvpan/event';
import limitbody from '~/components/business/limitbody/event';
import doctre from '~/components/business/doctre/event';
import Utils from "~/utils"
export default {
mixins: [commonFunctions],
methods: {
...setmod,
...glentry,
...engp,
...docpan,
...ccvpan,
...limitbody,
...doctre,
async init () {
const params = {
spt: JSON.parse(localStorage.getItem('row_' + this.trnName))
}
const res = await Api.post('/service/letcan/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
brdgrp:{
rec:{
inr:this.$route.query.inr
}
}
});
if (!res.data) {
return
}
this.copyValueFromVoData(this.model, res.data)
this.copyValueFromVoData(this.model.setmod.setfeg, res.data.setfeg)
this.copyValueFromVoData(this.model.setmod.setfog, res.data.setfog)
this.copyValueFromVoData(this.model.setmod.setglg, res.data.setglg)
},
// 兼容处理在前端model中定义了字段,后端返回的数据中不存在字段的问题
copyValueFromVoData (model, data) {
let keysList = Object.keys(model)
keysList.map((key) => {
if (data[key]) {
if (Utils.typeOf(model[key]) === 'Object') {
this.copyValueFromVoData(model[key], data[key])
} else {
this.$set(model, key, data[key])
}
}
})
},
async tabClick(tab) {
if (this.isInDisplay) {
return;
}
let name = tab.name;
switch (name) {
case 'ccvpan':
let ccvpanRequest = buildFn.buildCcvpan(this.model, this.trnName);
this.processLiaccv(ccvpanRequest);
break;
case 'engp':
let engpRequest = buildFn.buildEngp(this.model, this.trnName);
this.processLiaall(engpRequest);
break;
case 'setmod':
let setfegRequest = buildFn.buildSetfeg(this.model, this.trnName);
// 此处利用回调是为了等setfeg的接口调用完成后才去获取setglg参数,由于setglg参数依赖于setfeg函数的返回值
this.processSetpan(setfegRequest, () => {
return buildFn.buildSetglg(this.model, this.trnName);
});
break;
case 'docpan':
let docpanRequest = buildFn.buildDocpan(this.model, this.trnName);
this.processTrndoc(docpanRequest);
break;
case 'glepan':
let glentryRequest = buildFn.buildGlentry(this.model, this.trnName);
this.processGlentry(glentryRequest);
break;
case 'limitbody':
let limitbodyRequest = buildFn.buildLimitbody(this.model, this.trnName);
this.processLimitbody(limitbodyRequest);
break;
case 'doctre':
let doctreRequest = buildFn.buildDoctre(this.model, this.trnName);
this.processDoctre(doctreRequest);
break;
default:
return;
}
},
// 点击获取按钮拉取当前key字段下的表单数据
queryFormData(key) {
console.log(key);
},
// 业务信息=》基本信息=》保函编号-----获取保函编号
async queryOwnref() {
let params = {
ptainr: this.model.gidgrp.apl.pts.ptainr,
businessType: 'LG',
tbl: 'LG',
};
const loading = this.loading();
let res = await Api.post('/service/letcan/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtacp弹框表格数据
async queryGridEtyPromptDialogData(type, ptytyp) {
let params = {
userId: window.sessionStorage.userId || 'ZL',
ptytyp: ptytyp,
extkey: this.model.gidgrp[type.toLowerCase()].pts.extkey,
};
let res = await Api.post('/service/ptspta/list', params);
if (res.respCode == SUCCESS) {
this.root.$refs['etyDialog'].show = true;
this.root.promptData.data = res.data.ptaInfos;
this.root.promptData.type = type;
}
},
// 选中brtacp弹框表格的行数据
async selectGridEtyPromptData(row) {
let params = {
...row,
};
let res = await Api.post('/service/ptspta/fetch', params);
if (res.respCode == SUCCESS) {
this.$set(this.model.gidgrp, row.role.toLowerCase(), res.data);
}
},
// 业务信息=》基本信息=》支出目的
purposChange(key, value) {
this.handleChangeForm(key, value);
},
// 初始化保函开立类型码表下拉列表
async queryHndtypCodeTableList(trnName) {
let params = {
gitp: {
swiftflg: this.model.gitp.swiftflg,
},
gidgrp: {
rec: {
purpos: this.model.gidgrp.rec.purpos,
},
},
transName: trnName.toUpperCase(),
};
let res = await Api.post('/service/letcan/initHndtyp', params);
if (res.respCode == SUCCESS) {
this.$set(this.codes, 'voHndtyp', res.data);
}
},
// 是否SWIFT格式修改--联动保函开立类型
handleChangeSwiftflg() {
this.queryHndtypCodeTableList(this.root.trnName);
},
// 支出目的修改--联动保函开立类型
handleChangePurpos() {
this.queryHndtypCodeTableList(this.root.trnName);
},
buildLiaccv () {
let params = {
...buildFn.buildCommonData(this.model, this.trnName),
liaccvg: this.model.liaccv.liaccvg,
oldamt: this.model.liaccv.oldamt,
chgamt: this.model.liaccv.chgamt,
concur: this.model.liaccv.concur,
};
return params
},
// 公共组件setmod处理方式改变触发联动
changeSetmodModel (emitParams) {
let reqParams = {}
switch (emitParams.code) {
case 'processMethods':
reqParams = buildFn.buildSetglg(this.model, this.trnName);
this.calcPayDetail(reqParams)
break
case 'changeDsp':
let index = emitParams.index;
let setglgRequest = buildFn.buildSetglg(this.model, this.trnName);
setglgRequest.setglg = {setgll: emitParams.list};
this.setgllAccts(setglgRequest, index);
break
default:
return
}
}
},
};
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Letcan {
constructor() {
this.data = {
sndmsg: '',
ledgrp: {
rec: {
revflg: '',
expdat: '',
expplc: '',
lcrtyp: '',
ownref: '',
shpdat: '',
avbby: '',
nam: '',
opndat: '',
redclsflg: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
nom1: {
cur: '',
amt: ''
}
},
rmb: {
rolsetflg: ''
},
iss: {
pts: {
ref: '',
nam: ''
}
},
ben: {
pts: {
ref: '',
nam: ''
}
},
apl: {
pts: {
ref: '',
nam: ''
}
},
avbnam: ''
},
letp0: {
aammod: {
addamtflg: ''
},
cnftxt: ''
},
letcanf: {
strinf: ''
},
rmbclm: {
acwacw: {
pts: {
ref: ''
}
},
valdat: '',
rmbrmb: {
pts: {
ref: ''
}
},
bebbeb: {
pts: {
ref: ''
}
},
rmbrol: ''
},
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
liaall: new Pub().data.Liaall,
liaccv: new Pub().data.Liaccv,
docpan: new Pub().data.Docpan,
};
}
}
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="提示信息" name="coninfp">
<m-coninfp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import Event from "~/model/Letcan/Event";
import Coninfp from "~/views/Public/Coninfp";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {
...Event,
handleChange(val) {
console.log(val);
},
},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="取消信息" name="canp">
<m-canp :model="model" :codes="codes" />
</el-collapse-item>
<!-- v-if="model.ledgrp.rmb.rolsetflg=='Y'" -->
<el-collapse-item title="索偿(MT 742)" name="rcldetp" >
<m-rcldetp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import commonProcess from "~/mixin/commonProcess";
import Event from "~/model/Getamc/Event";
import Canp from "./Canp";
import Rcldetp from "./Rcldetp";
export default {
components: {
"m-canp": Canp,
"m-rcldetp": Rcldetp,
},
inject: ['root'],
props:["model","codes"],
mixins: [commonProcess],
data(){
return {
activeNames: ["canp"],
}
},
methods:{...Event,handleChange(){}},
created:function(){
}
}
</script>
<style>
</style>
<template>
<div class="eibs">
<!-- ==========================左半边================================== -->
<c-col :span="12" style="padding-right: 20px;">
<!-- SF000021 : 偿付行 -->
<c-col :span="24">
<el-form-item label="偿付行" prop="rmbclm.rmbrol">
<c-select
v-model="model.rmbclm.rmbrol"
style="width: 100%"
placeholder="请选择"
:code="codes.rolall"
@change="selectOrCheckboxRule('rmbclm.rmbrol')"
>
</c-select>
</el-form-item>
</c-col>
<!-- SF000020 : 编号 Reference for Address Optional -->
<c-col :span="24">
<c-form-item label="参考号" prop="rmbclm.rmbrmb.pts.ref">
<c-input
v-model="model.rmbclm.rmbrmb.pts.ref"
maxlength="16"
placeholder="请输入"
:disabled="rmbrolRefFlag"
></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '',
grp: 'rmbclm',
rol: 'rmbrmb',
}"
:noRef="true"
@onSeainf="onSeainf"
@onAplpDet="onRmbpDet"
:disabledExtkey="rmbrolRefFlag"
:disabled="rmbrolAdrblkFlag"
>
</c-ptap>
</c-col>
<!-- SF000011 : Account with Bank -->
<!-- SF000018 : 编号 -->
<c-col :span="24">
<c-form-item
label="账户号参考号"
prop="rmbclm.acwacw.pts.ref"
>
<c-input
v-model="model.rmbclm.acwacw.pts.ref"
maxlength="16"
placeholder="请输入"
></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '',
grp: 'rmbclm',
rol: 'acwacw',
}"
:noRef="true"
@onSeainf="onSeainf"
@onAplpDet="onAcwpDet"
>
</c-ptap>
</c-col>
<!-- SF000016 : Beneficiary Bank -->
<!-- SF000019 : 编号 -->
<c-col :span="24">
<c-form-item
label="受益人银行参考号"
prop="rmbclm.bebbeb.pts.ref"
>
<c-input
v-model="model.rmbclm.bebbeb.pts.ref"
maxlength="16"
placeholder="请输入"
></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<c-ptap
:model="model"
:argadr="{
title: '',
grp: 'rmbclm',
rol: 'bebbeb',
}"
:noRef="true"
@onSeainf="onSeainf"
@onAplpDet="onBebpDet"
>
</c-ptap>
</c-col>
<!-- SG000133 : value date -->
<c-col :span="24">
<el-form-item label="起息日" prop="rmbclm.valdat">
<c-date-picker
type="date"
value-format="yyyy-MM-dd"
v-model="model.rmbclm.valdat"
style="width: 100%"
placeholder="请选择"
></c-date-picker>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import Api from '~/service/Api'
import commonProcess from '~/mixin/commonProcess'
import CodeTable from '~/config/CodeTable'
import Event from '~/model/Letcan/Event'
import Ptap from '~/views/Public/Ptap'
export default {
inject: ['root'],
components: { 'c-ptap': Ptap },
props: ['model', 'codes'],
mixins: [commonProcess],
data() {
return {}
},
methods: { ...Event },
created: function () {},
computed:{
rmbrolRefFlag: {
get() {
return (
this.model.rmbclm.rmbrol=='ADV'||this.model.rmbclm.rmbrol=='AVB'
||this.model.rmbclm.rmbrol=='ISS'||this.model.rmbclm.rmbrol=='CON'
)
},
},
rmbrolAdrblkFlag: {
get() {
return (
this.model.rmbclm.rmbrol=='ADV'||this.model.rmbclm.rmbrol=='AVB'
||this.model.rmbclm.rmbrol=='ISS'||this.model.rmbclm.rmbrol=='CON'
||this.model.rmbclm.rmbrol=='RMB'
)
},
},
}
}
</script>
<style></style>
<template>
<div class="eContainer">
<c-page title="出口信用证注销">
<!-- <c-bus-button :$pntvm="this"></c-bus-button> -->
<el-form
:model="model"
:rules="rules"
ref="modelForm"
label-width="120px"
label-position="left"
size="small"
:validate-on-rule-change="false"
>
<c-tabs
v-model="tabVal"
ref="elment"
type="card"
@tab-click="tabClick"
>
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000001 -->
<el-tab-pane label="统一授信" name="limitbody">
<c-content>
<m-limitbody :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="表外记账" name="engp">
<c-content>
<!-- 表外记账 -->
<m-engp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="会计分录" name="glepan">
<c-content>
<m-glentry :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<el-tab-pane label="备查/附言" name="addbcb">
<c-content>
<m-addbcb :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000529 Messages报文及面函-->
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000546 Attachments附件-->
<el-tab-pane label="附件信息" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<!-- 数据回填效果 -->
<c-grid-ety-prompt-dialog
ref="etyDialog"
:promptData="promptData"
@select-ety="selectEty"
>
</c-grid-ety-prompt-dialog>
<c-grid-ety-prompt-dialog
ref="doxpDialog"
:isPty="false"
:promptData="promptData"
@select-ety="selectMsg"
>
</c-grid-ety-prompt-dialog>
<c-function-btn
:handleSubmit="handleSubmit"
:handleCheck="handleCheck"
:handleStash="handleStash"
>
</c-function-btn>
</c-page>
</div>
</template>
<script>
import Api from '~/service/Api'
import Utils from '~/utils/index'
import CodeTable from '~/config/CodeTable'
import Letcan from '~/model/Letcan'
import commonProcess from '~/mixin/commonProcess'
import commonFuncs from '~/mixin/commonFuncs'
import Check from '~/model/Letcan/Check'
import Default from '~/model/Letcan/Default'
import Pattern from '~/model/Letcan/Pattern'
import Ovwp from './Ovwp'
import Addbcb from "./Addbcb"
import Engp from "~/views/Public/Engp";
import Setpan from '~/views/Public/Setpan';
import Glepan from "~/views/Public/Glepan";
import Rcldetp from "./Rcldetp";
import Coninfp from '~/views/Public/Coninfp'
import Docpan from '~/views/Public/Docpan'
import Doctre from '~/views/Public/Doctre'
import Limitbody from '~/views/Public/Limitbody'
export default {
name: "Letcan",
components: {
'm-ovwp': Ovwp,
'm-engp': Engp,
'm-setpan': Setpan,
'm-glepan': Glepan,
'm-rcldetp':Rcldetp,
'm-coninfp': Coninfp,
'm-docpan': Docpan,
'm-doctre': Doctre,
'm-limitbody': Limitbody,
'm-addbcb': Addbcb,
},
provide() {
return {
root: this,
}
},
mixins: [commonProcess, commonFuncs], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: 'ovwp',
trnName: 'letcan',
model: new Letcan().data,
checkRules: Check,
defaultRules: Default,
pattern: Pattern,
rules: null,
activeNames: ["engp"],
codes: { ...CodeTable },
}
},
methods: {
tabClick(tab) {
this.tabClick(tab)
/**
* do it yourself
**/
},
},
created: async function () {
console.log('进入letcan交易')
let rtnmsg = await this.init({})
if (rtnmsg.respCode == SUCCESS) {
//TODO 处理数据逻辑
Utils.copyValueFromVO(this.model, rtnmsg.data)
if (this.isInDisplay) {
this.restoreDisplay()
}
} else {
this.$notify.error({ title: '错误', message: '服务请求失败!' })
}
},
}
</script>
<style>
</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