Commit c6050a51 by WF1020

Merge branch 'settle-test-20230110' of http://114.115.138.98:8900/fukai/vue-gjjs…

Merge branch 'settle-test-20230110' of http://114.115.138.98:8900/fukai/vue-gjjs into settle-test-20230110
parents e1101691 4a91a729
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.lidgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.lidgrp.apl));
}
if (model.lidgrp.adv.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.lidgrp.adv));
}
if (model.lidgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.lidgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'LID',
ownref: model.lidgrp.rec.ownref,
opndat: model.lidgrp.rec.opndat,
expdat: model.lidgrp.rec.expdat,
branchInr: model.lidgrp.rec.branchInr,
hndtyp: model.lidgrp.rec.hndtyp,
gartyp: model.lidgrp.rec.gartyp,
fingua: model.lidgrp.rec.fingua,
// segtyp: model.lidgrp.ghd.segtyp,
fromflg: model.lidgrp.rec.fromflg,
othersno: model.lidgrp.rec.othersno,
sndto: model.lidgrp.rec.sndto,
// swiftflg: model.gitp.swiftflg,
giduil: model.lidgrp.rec.giduil,
purpos: model.lidgrp.rec.purpos,
revflg: model.lidgrp.rec.revflg,
cnfsta: model.lidgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.lidgrp.cbs.max,
OLDMAX: model.lidgrp.cbs.oldmax,
MAX2: model.lidgrp.cbs.max2,
NOM1: model.lidgrp.cbs.nom1,
OPN1: model.lidgrp.cbs.opn1,
MAC: model.lidgrp.cbs.mac,
MAC2: model.lidgrp.cbs.mac2,
OPC2: model.lidgrp.cbs.opc2,
CNF: model.lidgrp.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: 'LID',
objinr: model.lidgrp.rec.objinr,
ownref: model.lidgrp.rec.ownref,
},
};
return params
},
buildDoctre (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'LID',
objinr: model.lidgrp.rec.objinr,
ownref: model.lidgrp.rec.ownref,
// swiftflg: model.gitp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
\ No newline at end of file
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/litdck/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
});
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 'setpan':
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: 'LC',
tbl: 'LC',
};
const loading = this.loading();
let res = await Api.post('/service/litdck/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取gitopn弹框表格数据
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;
}
},
// 选中gitopn弹框表格的行数据
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);
},
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
}
},
onSeainf() {},
},
};
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Brtame {
constructor() {
this.data = {
brdgrp: {
blk: {
notpty: '',
voynum: '',
roggod: '',
vesnam: '',
carnam: '',
delplc: '',
pordis: '',
porlod: '',
relstoadr: ''
},
rec: {
relgodflg: '',
shgref: '',
ownref: '',
rtoaplflg: '',
ngrcod: '',
relgoddat: '',
blnum: '',
trpdocnum: '',
expdat: '',
tradat: '',
trpdoctyp: '',
reltyp: '',
tramod: '',
nam: ''
},
cbs: {
max: {
cur: '',
amt: ''
}
},
shp: {
pts: new Pts().data,
},
apl: {
pts: new Pts().data,
},
ben: {
pts: new Pts().data,
},
prb: {
pts: new Pts().data,
},
},
brtp: {
aammod: {
addamtflg: ''
},
connum: ''
},
lidgrp: {
rec: {
revflg: '',
expdat: '',
expplc: '',
lcrtyp: '',
ownref: '',
shpdat: '',
avbby: '',
nam: '',
opndat: '',
redclsflg: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
nom1: {
cur: '',
amt: ''
}
},
avbnam: '',
apl:{
pts: new Pts().data,
},
adv:{
pts: new Pts().data,
},
ben:{
pts: new Pts().data,
}
},
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,
};
}
}
\ No newline at end of file
<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 event from "../event";
import Coninfp from "~/components/business/coninfp/views";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {
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="rog">
<m-rog :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="运输信息" name="shpdet">
<m-shpdet :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Rog from "./Rog.vue";
import Shpdet from "./Shpdet.vue";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"m-rog": Rog,
"m-shpdet": Shpdet,
},
methods: {
handleChange(val) {
console.log(val);
},
},
data() {
return {
flag: true,
activeNames: ["rog"],
};
},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<!--==========================left====================== -->
<el-col :span="12" style="padding-right:20px">
<c-col :span="24">
<el-form-item label="提货担保申请人" prop="brdgrp.rec.relgodflg">
<c-select
v-model="model.brdgrp.rec.relgodflg"
style="width:100%"
placeholder="请选择提货担保申请人"
:code="codes.relgod"
disabled
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="放货类型" prop="brdgrp.rec.reltyp">
<c-select
v-model="model.brdgrp.rec.reltyp"
style="width:100%"
placeholder="请选择放货类型"
:code="codes.reltyp1"
disabled
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="放货日期" prop="brdgrp.rec.relgoddat">
<c-date-picker type="date" disabled v-model="model.brdgrp.rec.relgoddat" style="width:100%" placeholder="请选择日期"></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="到期日" prop="brdgrp.rec.expdat">
<c-date-picker type="date" disabled v-model="model.brdgrp.rec.expdat" style="width:100%" placeholder="请选择日期"></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="货物单据类型" prop="brdgrp.rec.trpdoctyp">
<c-select v-model="model.brdgrp.rec.trpdoctyp" disabled style="width:100%" placeholder="请选择货物单据类型">
</c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="运输单据编号" prop="brdgrp.rec.trpdocnum">
<c-input disabled v-model="model.brdgrp.rec.trpdocnum" maxlength="40" placeholder="请输入运输单据编号"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="提单装船期" prop="brdgrp.rec.tradat">
<c-date-picker type="date" disabled v-model="model.brdgrp.rec.tradat" style="width:100%" placeholder="请选择日期"></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="运输模式" prop="brdgrp.rec.tramod">
<c-input v-model="model.brdgrp.rec.tramod" disabled maxlength="40" placeholder="请选择运输模式">
</c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="运输工具" prop="brdgrp.blk.vesnam">
<c-input v-model="model.brdgrp.blk.vesnam" disabled maxlength="40" placeholder="请输入运输工具"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="卸货口岸" prop="brdgrp.blk.pordis">
<c-input v-model="model.brdgrp.blk.pordis" disabled maxlength="40" placeholder="请输入卸货口岸"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="移交地点" prop="brdgrp.blk.delplc">
<c-input v-model="model.brdgrp.blk.delplc" disabled maxlength="40" placeholder="请输入移交地点"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="货物描述" prop="brdgrp.blk.roggod">
<c-input
:rows="6"
type="textarea" v-model="model.brdgrp.blk.roggod" disabled maxlength="40" show-word-limit placeholder="请输入货物描述" ></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="起运口岸" prop="brdgrp.blk.porlod">
<c-input v-model="model.brdgrp.blk.porlod" disabled maxlength="40" placeholder="请输入起运口岸"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="航号" prop="brdgrp.blk.voynum">
<c-input v-model="model.brdgrp.blk.voynum" disabled maxlength="30" placeholder="请输入航号"></c-input>
</el-form-item>
</c-col>
</el-col>
<!-- =========================right====================== -->
<el-col :span="12" style="padding-left:20px">
<c-col :span="24">
<el-form-item label="合同编号" prop="brtp.connum">
<c-input v-model="model.brtp.connum" disabled maxlength="35" placeholder="请输入合同编号"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="承运人" prop="brdgrp.blk.carnam">
<c-input v-model="model.brdgrp.blk.carnam" disabled maxlength="35" placeholder="请输入承运人"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="海运/远洋提单编号" prop="brdgrp.rec.blnum">
<c-input v-model="model.brdgrp.rec.blnum" disabled maxlength="20" placeholder="请输入海运/远洋提单编号"></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label=" " label-width="120px" prop=".brdgrp.rec.rtoaplflg">
<c-checkbox class="checkbox-left" v-model="model.brdgrp.rec.rtoaplflg" disabled
>给申请人 </c-checkbox>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="收货人名称及地址" prop="brdgrp.blk.relstoadr">
<c-input
:rows="4"
type="textarea" v-model="model.brdgrp.blk.relstoadr" disabled maxlength="180" show-word-limit placeholder="请输入收货人名称及地址" ></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="运输公司" prop="brdgrp.shp.pts.extkey">
<c-fullbox>
<c-input v-model="model.brdgrp.shp.pts.extkey" disabled maxlength="16" placeholder="请输入地址编码"></c-input>
<template slot="footer">
<c-button
style="margin: 0 10px 0 10px; padding: 0 12px"
size="small"
type="primary"
icon="el-icon-search"
>
</c-button>
<c-button
disabled
style="margin: 0 0"
size="small"
type="primary"
icon="el-icon-info"
>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="brdgrp.shp.pts.adrblk">
<c-input
:rows="4"
type="textarea" disabled v-model="model.brdgrp.shp.pts.adrblk" maxlength="35" show-word-limit placeholder="请输入地址信息" ></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="被通知人" prop="brdgrp.blk.notpty">
<c-input
:rows="4"
type="textarea" disabled v-model="model.brdgrp.blk.notpty" maxlength="35" show-word-limit placeholder="请输入被通知人" ></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="货物类型" prop="brdgrp.rec.ngrcod">
<c-select
v-model="model.brdgrp.rec.ngrcod"
style="width:100%"
placeholder="请选择货物类型"
:code="codes.bnrsec"
disabled
>
</c-select>
</el-form-item>
</c-col>
</el-col>
</div>
</template>
<script>
import event from "../event"
export default {
inject: ['root'],
props:["model","codes"],
mixins: [event],
data(){
return {
}
},
methods:{},
created:function(){
}
}
</script>
<style>
</style>
<template>
<div class="eContainer">
<c-page title="进口信用证单据提货担保修改">
<!--
<div class="fast-button">
<el-button size="small">备忘录</el-button>
<el-button size="small" @click="setDraggableContent('cms', '影像信息')">影像信息</el-button>
<el-button size="small">制裁信息</el-button>
<el-button size="small">智能提示</el-button>
/div>
-->
<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">
<!--brtame PD000057 Release Goods -->
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--limmod 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>
<!--coninf PD000000 Completion -->
<el-tab-pane label="备查/附言" name="addbcb">
<c-content>
<m-addbcb :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--trndoc PD000529 &Messages -->
<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-function-btn :handleSubmit="handleSubmit" :handleCheck="handleCheck" :handleStash="handleStash">
</c-function-btn>
</c-page>
</div>
</template>
<script>
import CodeTable from "~/config/CodeTable";
import Brtame from "../model";
import formRules from '../model/check';
import operationFunc from "~/mixin/operationFunc";
import event from "../event";
import Rog from "./Rog";
import Ovwp from "./Ovwp";
import Addbcb from "./Addbcb";
import Shpdet from "./Shpdet";
import Engp from "~/components/business/engp/views";
import Docpan from "~/components/business/docpan/views";
import Doctre from "~/components/business/doctre/views";
import Setmod from "~/components/business/setmod/views";
import Glentry from "~/components/business/glentry/views";
import Limitbody from "~/components/business/limitbody/views";
export default {
name: "Brtame",
components: {
"m-rog": Rog,
"m-ovwp": Ovwp,
"m-shpdet": Shpdet,
"m-engp": Engp,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-limitbody": Limitbody,
"m-addbcb": Addbcb,
"m-setmod": Setmod,
"m-glentry": Glentry,
},
provide() {
return {
root: this,
};
},
mixins: [operationFunc, event], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: "ovwp",
trnName: "brtame",
trnType: "",
model: new Brtame().data,
rules: formRules,
codes: {
...CodeTable
},
fyzw: ['engp'],
};
},
methods: {
// myTabClick(tab) {
// this.tabClick(tab);
/**
* do it yourself
**/
// },
},
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.lidgrp.apl.pts.extkey) {
// ptsptaList.push(this.buildPtspta(model.lidgrp.apl));
// }
// if (model.lidgrp.adv.pts.extkey) {
// ptsptaList.push(this.buildPtspta(model.lidgrp.adv));
// }
// if (model.lidgrp.ben.pts.extkey) {
// ptsptaList.push(this.buildPtspta(model.lidgrp.ben));
// }
let dataObj = {
rec: {
objtyp: 'LID',
ownref: model.lidgrp.rec.ownref,
opndat: model.lidgrp.rec.opndat,
expdat: model.lidgrp.rec.expdat,
branchInr: model.lidgrp.rec.branchInr,
hndtyp: model.lidgrp.rec.hndtyp,
gartyp: model.lidgrp.rec.gartyp,
fingua: model.lidgrp.rec.fingua,
segtyp: model.lidgrp.ghd.segtyp,
fromflg: model.lidgrp.rec.fromflg,
othersno: model.lidgrp.rec.othersno,
sndto: model.lidgrp.rec.sndto,
swiftflg: model.gitp.swiftflg,
giduil: model.lidgrp.rec.giduil,
purpos: model.lidgrp.rec.purpos,
revflg: model.lidgrp.rec.revflg,
cnfsta: model.lidgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.lidgrp.cbs.max,
OPN1: model.lidgrp.cbs.opn1,
MAC: model.lidgrp.cbs.mac,
MAC2: model.lidgrp.cbs.mac2,
OPC2: model.lidgrp.cbs.opc2,
CNF: model.lidgrp.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: 'LID',
objinr: model.lidgrp.rec.objinr,
ownref: model.lidgrp.rec.ownref,
},
};
return params
},
buildDoctre (model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'LID',
objinr: model.lidgrp.rec.objinr,
ownref: model.lidgrp.rec.ownref,
swiftflg: model.gitp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
\ No newline at end of file
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/brtcan/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
});
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 'setpan':
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;
}
},
// 公共组件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
}
},
async handleSave() {
let result = await this.save();
if (result.respCode == SUCCESS && Object.keys(result.fieldErrors).length == 0) {
this.$notify({
title: "成功",
message: "保存成功",
type: "success",
});
this.$store.dispatch("TagsView/delView", this.$route)
this.$router.go(-1)
} else if (result.fieldErrors && Object.keys(result.fieldErrors).length > 0) {
const tab = this.showBackendErrors(result.fieldErrors)
if (tab) {
// tab切换之后,需出发tab-click的事件
this.tabClick(tab);
}
this.$notify({
title: "错误",
message: "检核失败!",
type: "error",
});
} else {
this.$notify({
title: "失败",
message: "保存失败",
type: "error",
});
}
}
},
};
export default {
"brtp0.lidget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"lidgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brtp0.lidget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"lidgrp.rec.expdat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"lidgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"lidgrp.cbs.opn1.amt":[
//{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
//{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"brtp0.recget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brtp0.recget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"brdgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"brdgrp.cbs.max.amt":[
//{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"brdgrp.apl.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"brdgrp.cbs.opn1.amt":[
//{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"brdgrp.apl.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"brdgrp.rec.rcvdat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"brdgrp.rec.advdat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"brdgrp.ben.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.rec.matdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"brdgrp.ben.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"brdgrp.prb.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.prb.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"strinf":[
//{type: "string", required: false, message: "必输项"},
{max: 1750,message:"长度不能超过1750"}
],
"setmod.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"setmod.docamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"setmod.zmqacc":[
{type: "string", required: false, message: "必输项"},
{max: 20,message:"长度不能超过20"}
],
"mtabut.coninf.oitinf.oit.inftxt":[
//{type: "string", required: false, message: "必输项"},
//{max: 60,message:"长度不能超过60"}
],
"mtabut.coninf.oitset.oit.inftxt":[
//{type: "string", required: false, message: "必输项"},
//{max: 60,message:"长度不能超过60"}
],
"mtabut.coninf.conexedat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"mtabut.coninf.usr.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 8,message:"长度不能超过8"}
],
"trnmod.trndoc.advnam":[
{type: "string", required: false, message: "必输项"},
{max: 50,message:"长度不能超过50"}
],
"trnmod.trndoc.amdapl":[
{type: "string", required: false, message: "必输项"},
{max: 50,message:"长度不能超过50"}
],
"trnmod.trndoc.advdoc":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"trnmod.trndoc.filrecv":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"trnmod.trndoc.doctrestm":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"trnmod.trndoc.condocstm":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"trnmod.trndoc.rcvatt.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"liaall.limmod.ecifno":[
{type: "string", required: false, message: "必输项"},
{max: 22,message:"长度不能超过22"}
],
"liaall.limmod.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.wrkp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.othp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.limpts.wrk.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.wrkp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"liaall.limmod.limpts.oth.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.othp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"liaall.limmod.comamt":[
{required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"liaall.limmod.limpts.wrk.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"liaall.limmod.limpts.oth.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"liaall.limmod.ccvamt":[
{required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"liaall.limmod.limpts.pfcod1":[
{type: "string", required: false, message: "必输项"},
{max: 14,message:"长度不能超过14"}
],
"liaall.limmod.limpts.pfcod2":[
{type: "string", required: false, message: "必输项"},
{max: 14,message:"长度不能超过14"}
],
"liaall.limmod.limpts.oth.pts.extkey" :null,
"liaall.limmod.ownref" :null,
"liaall.limmod.ecifno" :null,
"liaall.limmod.limpts.oth.pts.nam" :null,
"setmod.dspflg" :null,
"liaall.limmod.limpts.wrk.pts.nam" :null,
"liaall.limmod.limpts.wrk.pts.extkey" :null,
"mtabut.coninf.conexedat" :null,
"liaall.limmod.limpts.nonrevflg1" :null,
"setmod.docamt" :null,
}
\ No newline at end of file
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Brtcan{
constructor () {
this.data = {
strinf:"", // Narrative .strinf
brdgrp:{
rec:{
ownref:"", // 单据参考号 .brdgrp.rec.ownref
nam:"", // Name of Bill Contract .brdgrp.rec.nam
rcvdat:"", // 到单日期 .brdgrp.rec.rcvdat
advdat:"", // Date of Advice of Payment .brdgrp.rec.advdat
docflg:"", // 单据类型 .brdgrp.rec.docflg
docsta:"", // 单据承付状态 .brdgrp.rec.docsta
matdat:"", // Maturity Date .brdgrp.rec.matdat
},
cbs:{
max:{
cur:"", // 单据金额 .brdgrp.cbs.max.cur
amt:"", // 单据金额 .brdgrp.cbs.max.amt
},
opn1:{
cur:"", // 单据余额 .brdgrp.cbs.opn1.cur
amt:"", // Balance .brdgrp.cbs.opn1.amt
},
},
apl:{
pts:new Pts().data,
},
ben:{
pts:new Pts().data,
},
prb:{
pts:new Pts().data,
},
},
lidgrp:{
rec:{
ownref:"", // 参考号 .lidgrp.rec.ownref
expdat:"", // Date of Expiry .lidgrp.rec.expdat
},
cbs:{
opn1:{
cur:"", // Currency .lidgrp.cbs.opn1.cur
amt:"", // Balance .lidgrp.cbs.opn1.amt
},
},
},
brtp0:{
lidget:{
sdamod:{
seainf:"", // .brtp0.lidget.sdamod.seainf
dadsnd:"", // Drag Drop Sender .brtp0.lidget.sdamod.dadsnd
},
},
recget:{
sdamod:{
dadsnd:"", // Drag Drop Sender .brtp0.recget.sdamod.dadsnd
seainf:"", // .brtp0.recget.sdamod.seainf
},
},
matp:{
mattxtlab:"", // Label for MATTXT .brtp0.matp.mattxtlab
},
},
sndmsg:"", // Send Message .sndmsg
rebkpflg:"", // Booking Procedure .rebkpflg
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,
pageId: "" // ctx的key
}
}
}
\ No newline at end of file
<template>
<div class="eibs">
<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 event from "../event";
import Coninfp from "~/views/Public/Coninfp";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<c-col>
<el-row>
<c-col :span="8">
<c-fullbox>
<el-form-item label="信用证编号" prop="lidgrp.rec.ownref">
<c-input
disabled
v-model="model.lidgrp.rec.ownref"
maxlength="16"
placeholder="请输入参考号"
></c-input>
</el-form-item>
<template slot="footer">
<c-button
style="margin: 0 10px 0 10px; padding: 0 12px"
size="small"
type="primary"
>
<i class="el-icon-info"></i>
</c-button>
</template>
</c-fullbox>
</c-col>
<c-col :span="4">
<el-form-item
label="有效日期"
prop="lidgrp.rec.expdat"
label-width="80px"
>
<c-date-picker
type="date"
v-model="model.lidgrp.rec.expdat"
style="width: 100%"
placeholder="请选择日期"
disabled
></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="6">
<el-form-item label="信用证余额" prop="lidgrp.cbs.opn1.cur">
<c-select
disabled
v-model="model.lidgrp.cbs.opn1.cur"
style="width: 100%"
placeholder="请选择币种"
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="6">
<el-form-item prop="lidgrp.cbs.opn1.amt" label-width="20px">
<c-input
disabled
v-model="model.lidgrp.cbs.opn1.amt"
placeholder="请输入金额"
></c-input>
</el-form-item>
</c-col>
</el-row>
<el-row>
<c-col :span="12">
<c-fullbox>
<el-form-item label="单据编号" prop="brdgrp.rec.ownref">
<c-input
v-model="model.brdgrp.rec.ownref"
maxlength="16"
placeholder="请输入单据参考号"
disabled
></c-input>
</el-form-item>
<template slot="footer">
<c-button
style="margin: 0 0 0 10px; padding: 0 12px"
size="small"
type="primary"
>
<i class="el-icon-info"></i>
</c-button>
</template>
</c-fullbox>
</c-col>
<c-col :span="12">
<el-form-item label="单据简略信息" prop="brdgrp.rec.nam">
<c-input
disabled
v-model="model.brdgrp.rec.nam"
maxlength="40"
placeholder="请输入"
></c-input>
</el-form-item>
</c-col>
</el-row>
</c-col>
<!-- ----------------------------------------------------------------- -->
<c-col :span="24">
<c-litTemp
:model="model"
:argadr="{
title: '',
trans: 'brdgrp',
trans1:'brtp0',
}"
:rol="[
{
title: '申请人',
trans: 'apl',
},
{
title: '受益人',
trans: 'ben',
},
{
title: '交单行',
trans: 'prb',
},
]"
:isAdvdat="true"
:isMattxtlab="false"
:isTenmaxday="false"
>
</c-litTemp>
</c-col>
<el-row>
<c-col :span="12">
<el-form-item label="叙述内容" prop="strinf">
<c-input
type="textarea"
v-model="model.strinf"
maxlength="1750"
:rows="10"
show-word-limit
placeholder="请输入叙述内容"
></c-input>
</el-form-item>
</c-col>
<c-col :span="3">
<el-form-item label="" prop="sndmsg">
<c-checkbox v-model="model.sndmsg">发送报文</c-checkbox>
</el-form-item>
</c-col>
</el-row>
<c-col :span="12">
<el-form-item label="预订程序" prop="rebkpflg">
<c-select
v-model="model.rebkpflg"
disabled
style="width: 100%"
placeholder="请选择预订程序"
:code="codes.rebkpflg"
>
</c-select>
</el-form-item>
</c-col>
</div>
</template>
<script>
import event from "../event";
import LitTemp from "./LitTemp.vue";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"c-litTemp": LitTemp,
},
data() {
},
};
</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 commonProcess from "~/mixin/commonProcess";
import Event from "~/model/Brtcan/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>
</style>
<template>
<!-- <div class="eibs-tab"> -->
<div>
<c-col v-if="!enRef" :span="24">
<el-form-item :label="argadr.title + ' 编号'" :prop="`${argadr.grp}.${argadr.rol}.pts.ref`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.ref"
maxlength="16"
:placeholder="'请输入' + argadr.title + '编号'"
:disabled="disabled"
></c-input>
</el-form-item>
</c-col>
<c-col v-else :span="24">
<el-form-item :label="argadr.title + '参考号'" :prop="`${argadr.grp}.${argadr.rol}.pts.ref`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.ref"
maxlength="16"
:placeholder="'请输入' + argadr.title + '参考号'"
:disabled="disabled"
></c-input>
</el-form-item>
</c-col>
<c-col v-if="!enNam" :span="24">
<el-form-item :label="argadr.title + '名称'" :prop="`${argadr.grp}.${argadr.rol}.pts.nam`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.nam"
maxlength="40"
:placeholder="'请输入' + argadr.title + '名称'"
:disabled="disabled || disabled1"
></c-input>
</el-form-item>
</c-col>
<c-col v-else :span="24">
<el-form-item :label="argadr.title + '名称'" :prop="`${argadr.grp}.${argadr.rol}.pts.nam`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.nam"
maxlength="40"
:placeholder="'请输入' + argadr.title + '名称'"
:disabled="disabled || disabled1"
></c-input>
</el-form-item>
</c-col>
</div>
</template>
<script>
import event from "../event"
export default {
inject: ["root"],
mixins: [event],
props: {
model: {
type: Object,
default: undefined,
},
codes: {},
argadr: {
type: Object,
default: function () {
return {
title: "", //角色名称
rol: "", //角色
grp: "", //所属模块
};
},
},
disabled: {
//名称地址是否灰显
type: Boolean,
default: false,
},
disabled1: {
//名称是否灰显
type: Boolean,
default: false,
},
enRef: {
//英文编号
type: Boolean,
default: false,
},
enNam: {
//英文名称
type: Boolean,
default: false,
},
},
data() {
return {
data: [],
};
},
};
</script>
<style>
</style>
<template>
<div class="eContainer">
<c-page>
<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>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setmod :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>
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<el-tab-pane label="附件信息" name="doctre">
<c-content>
<m-doctre :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>
</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 Brtcan from "../model"
import event from '../event'
import commonFuncs from "~/mixin/commonFuncs"
import Check from "../model/check"
import Canp from "./Canp"
import Ovwp from "./Ovwp"
import Addbcb from "./Addbcb"
import Setmod from "~/components/business/setmod/views";
import Docpan from "~/components/business/docpan/views";
import Doctre from "~/components/business/doctre/views";
import Limitbody from "~/components/business/limitbody/views";
export default {
name: 'Brtcan',
components: {
"m-canp": Canp,
"m-setmod": Setmod,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-limitbody": Limitbody,
"m-addbcb": Addbcb,
"m-ovwp": Ovwp,
},
provide() {
return {
root: this
}
},
mixins: [event, commonFuncs], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: "ovwp",
trnName: "brtcan",
model: new Brtcan().data,
rules: Check,
codes: {
...CodeTable,
},
activeNames: [""],
}
},
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.gidgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.apl));
}
if (model.gidgrp.adv.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.adv));
}
if (model.gidgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'GID',
ownref: model.gidgrp.rec.ownref,
opndat: model.gidgrp.rec.opndat,
expdat: model.gidgrp.rec.expdat,
branchInr: model.gidgrp.rec.branchInr,
hndtyp: model.gidgrp.rec.hndtyp,
gartyp: model.gidgrp.rec.gartyp,
fingua: model.gidgrp.rec.fingua,
segtyp: model.gidgrp.ghd.segtyp,
fromflg: model.gidgrp.rec.fromflg,
othersno: model.gidgrp.rec.othersno,
sndto: model.gidgrp.rec.sndto,
swiftflg: model.gitp.swiftflg,
giduil: model.gidgrp.rec.giduil,
purpos: model.gidgrp.rec.purpos,
revflg: model.gidgrp.rec.revflg,
cnfsta: model.gidgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.gidgrp.cbs.max,
OPN1: model.gidgrp.cbs.opn1,
MAC: model.gidgrp.cbs.mac,
MAC2: model.gidgrp.cbs.mac2,
OPC2: model.gidgrp.cbs.opc2,
CNF: model.gidgrp.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: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
swiftflg: model.gitp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
\ No newline at end of file
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/brtcsg/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
});
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 'setpan':
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/brtcsg/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtcsg弹框表格数据
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;
}
},
// 选中brtcsg弹框表格的行数据
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/brtcsg/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
}
}
},
};
export default {
"brtp0.lidget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"lidgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brtp0.lidget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"lidgrp.rec.expdat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"lidgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"lidgrp.cbs.opn1.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"brdgrp.rec.shgref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brtp0.recget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brtp0.recget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"brdgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"brdgrp.cbs.max.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"brdgrp.apl.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"brdgrp.cbs.opn1.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"brdgrp.apl.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"brdgrp.rec.rcvdat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"brdgrp.rec.advdat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"brdgrp.ben.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.rec.matdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"brdgrp.ben.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"brdgrp.prb.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"brdgrp.prb.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"liaall.outamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"liaall.outpct":[
{type: "string", required: false, message: "必输项"},
{max: 6,message:"长度不能超过6"}
],
"liaall.concur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"liaall.misamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"liaall.exttotoldamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"liaall.exttotamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"setmod.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"setmod.docamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"setmod.zmqacc":[
{type: "string", required: false, message: "必输项"},
{max: 20,message:"长度不能超过20"}
],
"setmod.glemod.gleshwstm":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"mtabut.coninf.oitinf.oit.inftxt":[
//{type: "string", required: false, message: "必输项"},
//{max: 60,message:"长度不能超过60"}
],
"mtabut.coninf.oitset.oit.inftxt":[
//{type: "string", required: false, message: "必输项"},
//{max: 60,message:"长度不能超过60"}
],
"mtabut.coninf.conexedat":[
//{type: "date", required: false, message: "输入正确的日期"}
],
"mtabut.coninf.usr.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 8,message:"长度不能超过8"}
],
"trnmod.trndoc.advnam":[
{type: "string", required: false, message: "必输项"},
{max: 50,message:"长度不能超过50"}
],
"trnmod.trndoc.amdapl":[
{type: "string", required: false, message: "必输项"},
{max: 50,message:"长度不能超过50"}
],
"trnmod.trndoc.advdoc":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"trnmod.trndoc.filrecv":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"trnmod.trndoc.doctrestm":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"trnmod.trndoc.condocstm":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"trnmod.trndoc.rcvatt.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"liaall.limmod.ecifno":[
{type: "string", required: false, message: "必输项"},
{max: 22,message:"长度不能超过22"}
],
"liaall.limmod.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.wrkp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.othp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.limpts.wrk.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.wrkp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"liaall.limmod.limpts.oth.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"liaall.limmod.othp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"liaall.limmod.comamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"liaall.limmod.limpts.wrk.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"liaall.limmod.limpts.oth.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"liaall.limmod.ccvamt":[
{type: "number", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"liaall.limmod.limpts.pfcod1":[
{type: "string", required: false, message: "必输项"},
{max: 14,message:"长度不能超过14"}
],
"liaall.limmod.limpts.pfcod2":[
{type: "string", required: false, message: "必输项"},
{max: 14,message:"长度不能超过14"}
],
"setmod.dspflg" :null,
"liaall.limmod.limpts.nonrevflg1" :null,
}
\ No newline at end of file
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Brtcsg {
constructor() {
this.data = {
gitp:{
swiftflg: '',
},
gidgrp:{
ghd: {
// wahnum: '',
// remark: '',
// bustyp: '',
segtyp: '',
},
rec:{
ownref:''
},
con: {
pts: new Pts().data,
},
iss: {
pts: new Pts().data,
},
ben: {
pts: new Pts().data,
},
atb: {
pts: new Pts().data,
},
avc: {
pts: new Pts().data,
},
apl: {
pts: new Pts().data,
},
adv: {
pts: new Pts().data,
},
ctr: {
pts: new Pts().data,
},
cbs: {
max: {
cur: '',
amt: '',
},
},
},
modelargadr: {
grpargadr: {
rol: {
pts: new Pts().data,
}
},
trans1: {
matp: {
mattxtlab: ''
}
},
trans: {
rec: {
tenmaxday: '',
rcvdat: '',
docflg: '',
docsta: '',
stadat: '',
advdat: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
}
}
}
},
brdgrp: {
rec: {
shgref: '',
ownref: '',
nam: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
opn2: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
},
max2: {
cur:'',
amt: ''
}
},
apl:{
pts:new Pts().data,
},
ben:{
pts:new Pts().data,
},
prb:{
pts:new Pts().data,
},
},
brtp0:{
lidget:{
sdamod:{
seainf:"", // .brtp0.lidget.sdamod.seainf
dadsnd:"", // Drag Drop Sender .brtp0.lidget.sdamod.dadsnd
},
},
recget:{
sdamod:{
dadsnd:"", // Drag Drop Sender .brtp0.recget.sdamod.dadsnd
seainf:"", // .brtp0.recget.sdamod.seainf
},
},
matp:{
mattxtlab:"", // Label for MATTXT .brtp0.matp.mattxtlab
},
},
lidgrp: {
rec: {
expdat: '',
ownref: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
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">
<el-collapse-item title="附言" name="coninfp">
<m-coninfp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from '../event'
import Coninfp from "~/views/Public/Coninfp";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<!-- ======================= 左边 ========================= -->
<c-col :span="12">
<c-col :span="12" style="padding-right: 20px;" >
<c-col :span="24">
<el-form-item
label="信用证编号"
prop="lidgrp.rec.ownref"
style="width:100%"
>
<c-fullbox>
<c-input
v-model="model.lidgrp.rec.ownref"
maxlength="16"
placeholder=""
disabled
></c-input>
<template slot="footer">
<c-button
style="margin: 0 0"
size="small"
type="primary"
icon="el-icon-info"
>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="提货担保编号" prop="brdgrp.rec.shgref">
<c-input
disabled
v-model="model.brdgrp.rec.shgref"
maxlength="16"
placeholder="请输入提货担保编号"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="单据编号" prop="brdgrp.rec.ownref">
<c-fullbox>
<c-input
v-model="model.brdgrp.rec.ownref"
maxlength="16"
placeholder="请输入单据参考号"
disabled
></c-input>
<template slot="footer">
<c-button
style="margin: 0 0"
size="small"
type="primary"
icon="el-icon-info"
>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
</c-col>
<!-- ======================= 右边 ========================= -->
<c-col :span="12" style="padding-left: 20px;">
<c-col :span="10">
<el-form-item label="开证金额" prop="lidgrp.cbs.opn1.cur">
<c-select
v-model="model.lidgrp.cbs.opn1.cur"
style="width: 100%"
placeholder=""
:code="codes.cur"
disabled
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="14">
<c-form-item label="" label-width="5px" prop="lidgrp.cbs.opn1.amt">
<c-input
v-model="model.lidgrp.cbs.opn1.amt"
placeholder=""
disabled
></c-input>
</c-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="生效日期" prop="lidgrp.rec.expdat">
<c-date-picker
disabled
type="date"
v-model="model.lidgrp.rec.expdat"
style="width: 100%"
placeholder="请选择日期"
></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="简略信息" prop="brdgrp.rec.nam">
<c-input
disabled
v-model="model.brdgrp.rec.nam"
maxlength="40"
placeholder="请输入简略信息"
></c-input>
</el-form-item>
</c-col>
</c-col>
</c-col>
<!-- ----------------------------------------------------------------- -->
<c-col :span="24">
<c-litTemp
:model="model"
:argadr="{
title: '',
trans: 'brdgrp',
trans1:'brtp0',
}"
:rol="[
{
title: '申请人',
trans: 'apl',
},
{
title: '受益人',
trans: 'ben',
},
{
title: '交单行',
trans: 'prb',
},
]"
:isAdvdat="true"
:isMattxtlab="false"
:isTenmaxday="false"
>
</c-litTemp>
</c-col>
</div>
</template>
<script>
import event from "../event";
import LitTemp from "./LitTemp";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"c-litTemp": LitTemp,
},
data() {
return {};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames">
<el-collapse-item title="注销内容" name="canp">
<m-canp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Canp from "./Canp"
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"m-canp" : Canp,
},
data() {
return {
activeNames: ["canp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<!-- <div class="eibs-tab"> -->
<div>
<c-col v-if="!enRef" :span="24">
<el-form-item :label="argadr.title + ' 编号'" :prop="`${argadr.grp}.${argadr.rol}.pts.ref`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.ref"
maxlength="16"
:placeholder="'请输入' + argadr.title + '编号'"
:disabled="disabled"
></c-input>
</el-form-item>
</c-col>
<c-col v-else :span="24">
<el-form-item :label="argadr.title + '参考号'" :prop="`${argadr.grp}.${argadr.rol}.pts.ref`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.ref"
maxlength="16"
:placeholder="'请输入' + argadr.title + '参考号'"
:disabled="disabled"
></c-input>
</el-form-item>
</c-col>
<c-col v-if="!enNam" :span="24">
<el-form-item :label="argadr.title + '名称'" :prop="`${argadr.grp}.${argadr.rol}.pts.nam`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.nam"
maxlength="40"
:placeholder="'请输入' + argadr.title + '名称'"
:disabled="disabled || disabled1"
></c-input>
</el-form-item>
</c-col>
<c-col v-else :span="24">
<el-form-item :label="argadr.title + '名称'" :prop="`${argadr.grp}.${argadr.rol}.pts.nam`">
<c-input
v-model="model[argadr.grp][argadr.rol].pts.nam"
maxlength="40"
:placeholder="'请输入' + argadr.title + '名称'"
:disabled="disabled || disabled1"
></c-input>
</el-form-item>
</c-col>
</div>
</template>
<script>
import event from "../event"
export default {
inject: ["root"],
mixins: [event],
props: {
model: {
type: Object,
default: undefined,
},
codes: {},
argadr: {
type: Object,
default: function () {
return {
title: "", //角色名称
rol: "", //角色
grp: "", //所属模块
};
},
},
disabled: {
//名称地址是否灰显
type: Boolean,
default: false,
},
disabled1: {
//名称是否灰显
type: Boolean,
default: false,
},
enRef: {
//英文编号
type: Boolean,
default: false,
},
enNam: {
//英文名称
type: Boolean,
default: false,
},
},
data() {
return {
data: [],
};
},
watch: {},
// 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="tabClick">
<!--PD000016 注销内容-->
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes"/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<!-- <el-tab-pane label="表外记账" name="engp">-->
<!-- <c-content>-->
<!-- &lt;!&ndash; 表外记账 &ndash;&gt;-->
<!-- <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>
<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>
<!--PD000001 -->
<el-tab-pane label="统一授信" name="limitbody">
<c-content>
<m-limitbody :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 Brtcsg from "../model";
import formRules from '../model/check';
import event from "../event";
import operationFunc from "~/mixin/operationFunc";
import Ovwp from "./Ovwp"
import Engp from "~/components/business/engp/views";
// import Setpan from "~/components/business/setmod/views"
import Setmod from "~/components/business/setmod/views";
// import Glepan from "../../Public/Glepan"
import Glentry from "~/components/business/glentry/views";
import Coninfp from "~/components/business/coninfp/views";
import Docpan from "~/components/business/docpan/views";
import Doctre from "~/components/business/doctre/views";
import Limitbody from "~/components/business/limitbody/views";
import Addbcb from "./Addbcb";
export default {
name: "Brtcsg",
components: {
"m-ovwp": Ovwp,
"m-engp": Engp,
"m-setmod": Setmod,
"m-glentry": Glentry,
"m-coninfp": Coninfp,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-limitbody": Limitbody,
"m-addbcb": Addbcb,
},
provide() {
return {
root: this
}
},
mixins: [operationFunc, event], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: "ovwp",
trnName: "brtcsg",
model: new Brtcsg().data,
rules: formRules,
codes: {},
activeNames: ["engp", "coninfp"],
}
},
methods: {},
created: async function () {
},
}
</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.gidgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.apl));
}
if (model.gidgrp.adv.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.adv));
}
if (model.gidgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'GID',
ownref: model.gidgrp.rec.ownref,
opndat: model.gidgrp.rec.opndat,
expdat: model.gidgrp.rec.expdat,
branchInr: model.gidgrp.rec.branchInr,
hndtyp: model.gidgrp.rec.hndtyp,
gartyp: model.gidgrp.rec.gartyp,
fingua: model.gidgrp.rec.fingua,
segtyp: model.gidgrp.ghd.segtyp,
fromflg: model.gidgrp.rec.fromflg,
othersno: model.gidgrp.rec.othersno,
sndto: model.gidgrp.rec.sndto,
swiftflg: model.gitp.swiftflg,
giduil: model.gidgrp.rec.giduil,
purpos: model.gidgrp.rec.purpos,
revflg: model.gidgrp.rec.revflg,
cnfsta: model.gidgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.gidgrp.cbs.max,
OPN1: model.gidgrp.cbs.opn1,
MAC: model.gidgrp.cbs.mac,
MAC2: model.gidgrp.cbs.mac2,
OPC2: model.gidgrp.cbs.opc2,
CNF: model.gidgrp.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: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
swiftflg: model.gitp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
\ No newline at end of file
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/brtdcr/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
});
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 'setpan':
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/brtdcr/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtdcr弹框表格数据
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;
}
},
// 选中brtdcr弹框表格的行数据
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/brtdcr/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 Brtdcr {
constructor() {
this.data = {
gitp:{
swiftflg: '',
},
gidgrp:{
ghd: {
// wahnum: '',
// remark: '',
// bustyp: '',
segtyp: '',
},
rec:{
ownref:''
},
con: {
pts: new Pts().data,
},
iss: {
pts: new Pts().data,
},
ben: {
pts: new Pts().data,
},
atb: {
pts: new Pts().data,
},
avc: {
pts: new Pts().data,
},
apl: {
pts: new Pts().data,
},
adv: {
pts: new Pts().data,
},
ctr: {
pts: new Pts().data,
},
cbs: {
max: {
cur: '',
amt: '',
},
},
},
brtp: {
matp:{
mattxtlab:''
},
docgrdm:{
docgrd:''
},
oth:{
pts: new Pts().data,
}
},
brdgrp: {
blk: {
chaded: '',
docdisflg: '',
chaadd: '',
disdocflg: '',
disdoc: '',
docdis: '',
docpre:'',
docgrd:''
},
prb: {
pts: new Pts().data,
},
rec: {
totcur: '',
advtyp: '',
ownref: '',
orddat: '',
payrol: '',
totamt: '',
nam: '',
docprbrol: '',
advdocflg: '',
rcvdat:'',
advdat:'',
stadat:'',
docflg:'',
tenmaxday:'',
docsta:'',
},
cbs: {
opn2: {
cur: ''
},
opn1: {
cur: '',
amt:''
},
max: {
cur: '',
amt: ''
},
max2: {
amt: ''
}
},
apl:{
pts: new Pts().data,
},
ben:{
pts: new Pts().data,
},
oth:{
pts: new Pts().data,
},
acb:{
pts: new Pts().data,
},
},
advdisflg: '',
// mtabut: {
// clsflg: ''
// },
refdocflg: '',
swtdat: '',
rejpenins: '',
advrefflg: '',
lidgrp: {
rec: {
expdat: '',
ownref: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
rejtype: '',
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">
<!--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 event from "../event";
import Coninfp from "~/components/business/coninfp/views";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<c-col>
<c-col :span="12">
<el-form-item label="不符点信息" prop="brdgrp.blk.docdis">
<c-fullbox>
<c-input
:disabled="model.advrefflg=='' && model.advdisflg==''"
type="textarea"
v-model="model.brdgrp.blk.docdis"
maxlength="3500"
:rows="8"
show-word-limit
placeholder="请输入不符点信息"
></c-input>
<template slot="footer">
<c-button :disabled="model.advrefflg=='' && model.advdisflg==''" size="small" type="primary"
>
...
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item>
<c-checkbox class="checkbox-left" disabled v-model="model.brdgrp.blk.docdisflg"
>不符点修改</c-checkbox
>
</el-form-item>
</c-col>
</c-col>
<c-col :span="12">
<c-docpre
:model="model"
:argadr="{
path: 'brdgrp.blk.docpre',
grp: 'brtp',
code: 'docpre',
}"
></c-docpre>
</c-col>
</div>
</template>
<script>
import event from "../event";
import Docpre from "~/views/Public/Docpre";
export default {
components: {
"c-docpre": Docpre,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
};
},
methods: {},
created: function () {},
};
</script>
<style>
.messageLabel >>> .el-form-item__label {
text-align: left;
font-weight: bold;
font-size: 12px;
}
</style>
<template>
<div class="eibs">
<!-- ---------------Left--------------- -->
<c-col :span="12">
<c-col :span="24">
<c-col :span="13">
<el-form-item
label="单据金额"
prop="brdgrp.cbs.max.cur"
>
<c-select
v-model="model.brdgrp.cbs.max.cur"
style="width: 100%"
placeholder="请选择单据金额"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item
label=""
label-width="5px"
prop="brdgrp.cbs.max.amt"
>
<c-input
v-model="model.brdgrp.cbs.max.amt"
placeholder="请输入单据金额"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="13">
<el-form-item label="提取附加金额" prop="brdgrp.cbs.opn2.cur">
<c-select
v-model="model.brdgrp.cbs.opn2.cur"
style="width: 100%"
placeholder="请选择附加金额"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item
label=""
label-width="5px"
prop="brdgrp.cbs.max2.amt"
>
<c-input
v-model="model.brdgrp.cbs.max2.amt"
placeholder="请输入附加金额"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="13">
<el-form-item
label="待支付金额"
prop="brdgrp.rec.totcur"
>
<c-select
v-model="model.brdgrp.rec.totcur"
style="width: 100%"
placeholder="请选择币种"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item
label=""
label-width="5px"
prop="brdgrp.rec.totamt"
>
<c-input
v-model="model.brdgrp.rec.totamt"
placeholder="请输入金额"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-ptap1
:model="model"
:argadr="{
title: '账户银行',
grp: 'brdgrp',
rol: 'acb',
}"
:disabled="true"
:disabled1="true"
>
</c-ptap1>
</c-col>
</c-col>
<!-- ---------------Right--------------- -->
<c-col :span="12">
<c-col :span="24">
<el-form-item label="已扣除费用" prop="brdgrp.blk.chaded">
<c-input
type="textarea"
v-model="model.brdgrp.blk.chaded"
maxlength="210"
:rows="4"
show-word-limit
placeholder="请输入已扣除费用"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="已添加费用" prop="brdgrp.blk.chaadd">
<c-input
type="textarea"
v-model="model.brdgrp.blk.chaadd"
maxlength="210"
:rows="4"
show-word-limit
placeholder="请输入已添加费用"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="不符点信息" prop="brdgrp.blk.docdis">
<c-input
type="textarea"
v-model="model.brdgrp.blk.docdis"
maxlength="3500"
:rows="8"
show-word-limit
placeholder="请输入不符点"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="brdgrp.blk.docdisflg">
<c-checkbox class="checkbox-left" v-model="model.brdgrp.blk.docdisflg" disabled
>不符点修改</c-checkbox
>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import event from "../event";
import Ptap1 from "~/views/Public/Ptap1";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"c-ptap1": Ptap1,
},
data() {
return {};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames">
<el-collapse-item title="基础信息" name="utlp">
<m-utlp :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="不符点/拒绝信息" name="brtdcrd">
<m-brtdcrd :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item v-if="model.brdgrp.rec.advtyp=='750'" title="不符点通知" name="mt750p">
<m-mt750p :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Utlp from "./Utlp"
import Brtdcrd from "./Brtdcrd"
import Mt750p from "./Mt750p"
export default {
components: {
"m-utlp": Utlp,
"m-brtdcrd": Brtdcrd,
"m-mt750p": Mt750p,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["utlp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eContainer">
<c-page>
<div class="eContainer">
<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>-->
<!-- &lt;!&ndash; 表外记账 &ndash;&gt;-->
<!-- <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>-->
<!--PD000000 -->
<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">
</c-grid-ety-prompt-dialog>
<c-grid-ety-prompt-dialog ref="doxpDialog" :isPty="false" :promptData="promptData">
</c-grid-ety-prompt-dialog>
<c-function-btn :handleSubmit="handleSubmit" :handleCheck="handleCheck" :handleStash="handleStash">
</c-function-btn>
</div>
</c-page>
</div>
</template>
<script>
import event from "../event"
import CodeTable from "~/config/CodeTable"
import Brtdcr from "../model"
import formRules from '../model/check'
import Utlp from "./Utlp"
import Brtdcrd from "./Brtdcrd"
import Mt750p from "./Mt750p"
import Glepan from "~/views/Public/Glepan";
import Ovwp from "./Ovwp"
import Addbcb from "./Addbcb"
import Glentry from "~/components/business/glentry/views";
import Setpan from "~/views/Public/Setpan";
import Setmod from "~/components/business/setmod/views";
import Engp from "~/components/business/engp/views";
import Coninfp from "~/components/business/coninfp/views";
import Docpan from "~/components/business/docpan/views";
import Limitbody from "~/components/business/limitbody/views";
import Doctre from "~/components/business/doctre/views";
import operationFunc from "~/mixin/operationFunc";
export default {
name: "Brtdcr",
components: {
"m-mt750p": Mt750p,
"m-utlp": Utlp,
"m-brtdcrd": Brtdcrd,
"m-engp": Engp,
"m-setmod": Setmod,
"m-coninfp": Coninfp,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-limitbody": Limitbody,
"m-glentry": Glentry,
"m-ovwp": Ovwp,
"m-addbcb": Addbcb,
},
provide() {
return {
root: this
}
},
mixins: [operationFunc, event], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: "ovwp",
trnName: "brtdcr",
model: new Brtdcr().data,
// pattern: Pattern,
rules: formRules,
codes: {
...CodeTable
},
activeNames:["engp"],
promptData: {
title: 'Select a Party',
columns: [
{
prop: 'ptyInr',
label: 'Party Number'
},
{
prop: 'inr',
label: 'Address Number'
},
{
prop: 'branch',
label: 'Branch Code'
},
{
prop: 'bchName',
label: 'Branch Name'
},
{
prop: 'adrName',
label: 'Address Name'
},
{
prop: 'adr1',
label: 'Address1'
},
{
prop: 'locCty',
label: 'City'
},
{
prop: 'locZip',
label: 'Zip'
},
{
prop: 'bicCode',
label: 'BIC'
}
],
data: []
}
}
},
methods: {},
created: async function () {},
}
</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.gidgrp.apl.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.apl));
}
if (model.gidgrp.adv.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.adv));
}
if (model.gidgrp.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'GID',
ownref: model.gidgrp.rec.ownref,
opndat: model.gidgrp.rec.opndat,
expdat: model.gidgrp.rec.expdat,
branchInr: model.gidgrp.rec.branchInr,
hndtyp: model.gidgrp.rec.hndtyp,
gartyp: model.gidgrp.rec.gartyp,
fingua: model.gidgrp.rec.fingua,
segtyp: model.gidgrp.ghd.segtyp,
fromflg: model.gidgrp.rec.fromflg,
othersno: model.gidgrp.rec.othersno,
sndto: model.gidgrp.rec.sndto,
swiftflg: model.gitp.swiftflg,
giduil: model.gidgrp.rec.giduil,
purpos: model.gidgrp.rec.purpos,
revflg: model.gidgrp.rec.revflg,
cnfsta: model.gidgrp.rec.cnfsta,
},
cbsMap: {
MAX: model.gidgrp.cbs.max,
OPN1: model.gidgrp.cbs.opn1,
MAC: model.gidgrp.cbs.mac,
MAC2: model.gidgrp.cbs.mac2,
OPC2: model.gidgrp.cbs.opc2,
CNF: model.gidgrp.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: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
swiftflg: model.gitp.swiftflg,
},
};
return params
},
// 公共组件setmod中dsp字段改变,触发联动时候的入参
buildSetgllAccts (model, trnName, setglg) {
let params = {
...this.buildCommonData(model, trnName),
setglg
};
return params
}
}
\ No newline at end of file
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/brteus/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
});
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 'setpan':
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/brteus/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brteus弹框表格数据
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;
}
},
// 选中brteus弹框表格的行数据
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/brteus/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 Brteus {
constructor() {
this.data = {
gitp:{
swiftflg: '',
},
gidgrp:{
ghd: {
// wahnum: '',
// remark: '',
// bustyp: '',
segtyp: '',
},
rec:{
ownref:''
},
con: {
pts: new Pts().data,
},
iss: {
pts: new Pts().data,
},
ben: {
pts: new Pts().data,
},
atb: {
pts: new Pts().data,
},
avc: {
pts: new Pts().data,
},
apl: {
pts: new Pts().data,
},
adv: {
pts: new Pts().data,
},
ctr: {
pts: new Pts().data,
},
cbs: {
max: {
cur: '',
amt: '',
},
},
},
brdgrp: {
blk: {
chaded: '',
nartxt77a: '',
docdisflg: '',
chaadd: '',
docdis: ''
},
prb: {
pts: new Pts().data,
},
rec: {
tenmaxday: '',
rcvdat: '',
totcur: '',
docflg: '',
advtyp: '',
docsta: '',
ownref: '',
totamt: '',
totdat: '',
advdat: '',
stadat: '',
matdat: '',
nam: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
opn2: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
},
max2: {
cur:'',
amt: ''
}
},
apl:{
pts: new Pts().data,
},
ben:{
pts: new Pts().data,
},
oth:{
pts: new Pts().data,
},
acb:{
pts: new Pts().data,
},
},
strinf: '',
lidgrp: {
rec: {
expdat: '',
ownref: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
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">
<el-collapse v-model="activeNames">
<el-collapse-item title="附言" name="coninfp">
<m-coninfp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Coninfp from "~/components/business/coninfp/views";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<!-- ===========================左边 ======================== -->
<c-col :span="12">
<!-- 信用证编号 -->
<c-col :span="24">
<c-form-item label="信用证编号" prop="lidgrp.rec.ownref">
<c-fullbox>
<c-input v-model="model.lidgrp.rec.ownref" maxlength="16" placeholder="" style="width: 100%" disabled></c-input>
<template slot="footer">
<c-button style="margin: 0 10px 0 10px; padding: 0 12px" size="small" type="primary">
<i class="el-icon-info"></i>
</c-button>
<c-button style="margin: 0 0" size="small" type="primary" :disabled="!this.flag && model.lidgrp.rec.ownref == ''? false:true">
获取
</c-button>
</template>
</c-fullbox>
</c-form-item>
</c-col>
<!-- 到期日 -->
<c-col :span="24">
<el-form-item label="生效日期" prop="lidgrp.rec.expdat">
<c-date-picker type="date" v-model="model.lidgrp.rec.expdat" style="width: 100%" placeholder="请输入生效日期" disabled>
</c-date-picker>
</el-form-item>
</c-col>
<!-- 单据参考号 -->
<c-col :span="24">
<c-form-item label="单据编号" prop="brdgrp.rec.ownref">
<c-fullbox>
<c-input v-model="model.brdgrp.rec.ownref" maxlength="16" placeholder="" disabled></c-input>
<template slot="footer">
<c-button style="margin: 0 10px 0 10px; padding: 0 12px" size="small" type="primary">
<i class="el-icon-info"></i>
</c-button>
<c-button style="margin: 0 0" size="small" type="primary" :disabled="!this.flag && model.brdgrp.rec.ownref == ''? false:true">
获取
</c-button>
</template>
</c-fullbox>
</c-form-item>
</c-col>
<!-- 单据金额 -->
<c-col :span="24">
<c-col :span="13">
<el-form-item label="单据金额" prop="brdgrp.cbs.max.cur">
<c-select v-model="model.brdgrp.cbs.max.cur" style="width: 100%" placeholder="请选择单据金额币种"
:code="codes.curtxt1" disabled>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<c-form-item label="" label-width="5px" prop="brdgrp.cbs.max.amt">
<c-input-currency v-model="model.brdgrp.cbs.max.amt" placeholder="" disabled></c-input-currency>
</c-form-item>
</c-col>
</c-col>
<!-- 单据余额 -->
<c-col :span="24">
<c-col :span="13">
<c-form-item label="单据余额" prop="brdgrp.cbs.opn1.cur">
<c-input v-model="model.brdgrp.cbs.opn1.cur" maxlength="3" placeholder="请输入" disabled></c-input>
</c-form-item>
</c-col>
<c-col :span="11">
<c-form-item label="" label-width="5px" prop="brdgrp.cbs.opn1.amt">
<c-input-currency v-model="model.brdgrp.cbs.opn1.amt" placeholder="" disabled></c-input-currency>
</c-form-item>
</c-col>
</c-col>
<!-- 到单日期 -->
<c-col :span="12">
<el-form-item label="收入日期" prop="brdgrp.rec.rcvdat">
<c-date-picker type="date" v-model="model.brdgrp.rec.rcvdat" style="width: 100%" placeholder="请选择" disabled>
</c-date-picker>
</el-form-item>
</c-col>
<!-- 通知到单日期 -->
<c-col :span="12">
<el-form-item label="通知日期" prop="brdgrp.rec.advdat">
<c-date-picker type="date" v-model="model.brdgrp.rec.advdat" style="width: 100%" placeholder="请选择" disabled>
</c-date-picker>
</el-form-item>
</c-col>
<!-- Maturity Date 到期日-->
<c-col :span="12">
<el-form-item label="到期日期" prop="brdgrp.rec.matdat">
<c-date-picker type="date" v-model="model.brdgrp.rec.matdat" style="width:100%" placeholder="请选择" disabled>
</c-date-picker>
</el-form-item>
</c-col>
<!-- Start Date 开始日-->
<c-col :span="12">
<el-form-item label="开始日期" prop="brdgrp.rec.stadat">
<c-date-picker type="date" v-model="model.brdgrp.rec.stadat" style="width:100%" placeholder="请选择" disabled>
</c-date-picker>
</el-form-item>
</c-col>
<!-- 单据类型 Document Type-->
<c-col :span="16">
<el-form-item label="单据类型" prop="brdgrp.rec.docflg">
<c-select v-model="model.brdgrp.rec.docflg" style="width:100%" placeholder="请选择单据类型" :code="codes.docflg" disabled>
</c-select>
</el-form-item>
</c-col>
<!-- Tenor -->
<c-col :span="8">
<el-form-item label="期限(天)" label-width="100px" prop="brdgrp.rec.tenmaxday">
<c-input v-model="model.brdgrp.rec.tenmaxday" placeholder="请输入期限(天)" disabled></c-input>
</el-form-item>
</c-col>
<!-- 单据状态 Document Set Status-->
<c-col :span="24">
<el-form-item label="单据状态" prop="brdgrp.rec.docsta">
<c-select v-model="model.brdgrp.rec.docsta" style="width:100%" placeholder="请选择单据状态" :code="codes.docsta1" disabled>
</c-select>
</el-form-item>
</c-col>
<!-- Narrative -->
<c-col :span="24">
<el-form-item label="叙述内容" prop="strinf">
<c-input type="textarea"
v-model="model.strinf"
show-word-limit
placeholder="请输入叙述内容"
maxlength="4950"
:autosize="{ minRows: 5, maxRows: 20}">
</c-input>
</el-form-item>
</c-col>
</c-col>
<!-- ========================== 右边 ======================== -->
<c-col :span="11" :offset="1">
<!-- 信用证余额 -->
<c-col :span="11">
<c-form-item label="信用证余额" prop="lidgrp.cbs.opn1.cur">
<c-input v-model="model.lidgrp.cbs.opn1.cur" maxlength="3"
:placeholder="$t('other.please_enter') + 'Currency'" disabled></c-input>
</c-form-item>
</c-col>
<c-col :span="11">
<c-form-item label="" label-width="10px" prop="lidgrp.cbs.opn1.amt">
<c-input v-model="model.lidgrp.cbs.opn1.amt" placeholder="" disabled></c-input>
</c-form-item>
</c-col>
<!--label="Name of Bill Contract" -->
<c-col :span="22">
<el-form-item label="单据简略信息" prop="brdgrp.rec.nam">
<c-input v-model="model.brdgrp.rec.nam" maxlength="40" placeholder="请输入单据简略信息" disabled></c-input>
</el-form-item>
</c-col>
<c-col :span="22">
<c-ptsmsg :model="model" :argadr="{ title: '申请人', grp: 'brdgrp', rol: 'apl' }" disabled>
</c-ptsmsg>
</c-col>
<!-- eneficiary Ref -->
<c-col :span="22">
<c-ptsmsg :model="model" :argadr="{ title: '受益人', grp: 'brdgrp', rol: 'ben' }" disabled>
</c-ptsmsg>
</c-col>
<!-- Presenting Bank Ref -->
<c-col :span="22">
<c-ptsmsg :model="model" :argadr="{
title: '交单行',
grp: 'brdgrp',
rol: 'prb',
}" disabled>
</c-ptsmsg>
</c-col>
</c-col>
</div>
</template>
<script>
import event from "../event"
import Ptsmsg from "./Ptsmsg";
export default {
components: {
"c-ptsmsg": Ptsmsg,
},
inject: ['root'],
props: ["model", "codes"],
mixins: [event],
data() {
return {
}
},
methods: {},
created: function () {},
computed: {
flag() {
return this.model.brdgrp.prb.pts.extkey == "";
},
},
}
</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