Commit ddedf319 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 c2bdfe55 8ec39148
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 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";
import buildFn from './buildCommons.js';
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/gctadd/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/gctadd/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取gctadd弹框表格数据
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;
}
},
// 选中gctadd弹框表格的行数据
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/gctadd/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 {
"aplp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fcdgrp.apl.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"aplp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"fcdgrp.apl.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"fcdgrp.apl.pta.nam1":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"fcdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"fcdgrp.rec.reason":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"fcdgrp.rec.amt":[
{required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"fcdgrp.rec.extact":[
{type: "string", required: false, message: "必输项"},
{max: 8,message:"长度不能超过8"}
],
"fcdgrp.rec.engact":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"cshstm":[
{type: "string", required: false, message: "必输项"},
{max: 1,message:"长度不能超过1"}
],
"fcdgrp.apl.pts.extkey" :null,
"fcdgrp.apl.pts.nam" :null,
"fcdgrp.rec.ownref" :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 Fctcan{
constructor () {
this.data = {
fcdgrp:{
apl:{
pts:new Pts().data,
pta:{
nam1:"", // Externally Visible Name of Address .fcdgrp.apl.pta.nam1
},
},
rec:{
ownref:"", // Our Reference .fcdgrp.rec.ownref
cur:"", // currency .fcdgrp.rec.cur
amt:"", // 保证金金额 .fcdgrp.rec.amt
reason:"", // collect reason .fcdgrp.rec.reason
extact:"", // Extend Account .fcdgrp.rec.extact
engact:"", // Engagement account .fcdgrp.rec.engact
},
},
aplp:{
ptsget:{
sdamod:{
dadsnd:"", // Drag Drop Sender .aplp.ptsget.sdamod.dadsnd
seainf:"", // .aplp.ptsget.sdamod.seainf
},
},
},
gleflg:"", // 是否过�'� .gleflg
cshstm:"", // stream of csh .cshstm
errflg:"", // 已使用保证金 .errflg
pageId: "", // ctx的key
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">
<c-col :span="24">
<c-col :span="12">
<c-fullbox>
<el-form-item label="申请人" prop="fcdgrp.apl.pts.extkey">
<c-input
v-model="model.fcdgrp.apl.pts.extkey"
maxlength="16"
placeholder="请输入申请人Extkey"
@keyup.enter.native="showGridPromptDialog('fcdgrp.apl.pts.extkey')"
></c-input>
</el-form-item>
<template slot="footer">
<c-button size="small" type="primary" @click="onAplpDet">
详情
</c-button>
</template>
</c-fullbox>
</c-col>
<c-col :span="12">
<el-form-item label="">
<c-checkbox v-model="model.errflg">已使用保证金</c-checkbox>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="12">
<el-form-item label="" prop="fcdgrp.apl.pts.nam">
<c-input
v-model="model.fcdgrp.apl.pts.nam"
maxlength="40"
placeholder="请输入"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="12">
<el-form-item label="" prop="fcdgrp.apl.pta.nam1">
<c-input
v-model="model.fcdgrp.apl.pta.nam1"
maxlength="40"
placeholder="请输入Externally Visible Name of Address"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="12">
<el-form-item label="参考号" prop="fcdgrp.rec.ownref">
<c-input
v-model="model.fcdgrp.rec.ownref"
maxlength="16"
placeholder="请输入参考号"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="说明" prop="fcdgrp.rec.reason">
<c-input
v-model="model.fcdgrp.rec.reason"
maxlength="40"
placeholder="请输入collect reason"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="12">
<c-col :span="12">
<el-form-item label="保证金金额" prop="fcdgrp.rec.cur">
<c-select
v-model="model.fcdgrp.rec.cur"
style="width: 100%"
placeholder="请选择currency"
disabled
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="" label-width="20px" prop="fcdgrp.rec.amt">
<c-input
v-model="model.fcdgrp.rec.amt"
placeholder="请输入保证金金额"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="12">
<c-col :span="12">
<el-form-item label="保证金账户" prop="fcdgrp.rec.extact">
<c-input
v-model="model.fcdgrp.rec.extact"
maxlength="8"
placeholder="请输入Extend Account"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="12">
<c-fullbox>
<el-form-item label="" label-width="20px" prop="fcdgrp.rec.engact">
<c-input
v-model="model.fcdgrp.rec.engact"
maxlength="16"
placeholder="请输入Engagement account"
disabled
></c-input>
</el-form-item>
<template slot="footer">
<el-form-item label="" label-width="0" prop="gleflg">
<c-checkbox v-model="model.gleflg" style="margin-left: 10px"
class="" @change="eventFunction('model.gleflg')"
>是否过帐</c-checkbox
>
</el-form-item>
</template>
</c-fullbox>
</c-col>
</c-col>
</c-col>
<!-- <c-col :span="12">
<el-form-item label="" prop="aplp.ptsget.sdamod.seainf">
<c-input
v-model="model.aplp.ptsget.sdamod.seainf"
placeholder="请输入"
></c-input>
</el-form-item>
</c-col> -->
<c-col :span="24">
<c-istream-table
:list="model.cshstm.rows || []"
:columns="columns"
:showSelection="true"
v-on:multipleSelect="multipleSelect"
></c-istream-table>
</c-col>
</div>
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import CodeTable from "~/config/CodeTable";
import Event from "~/model/Fctcan/Event";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
columns: [
'0 1 "INR" 100',
'1 2 "Own Reference" 150',
'2 3 "收取日期" 120 4 7',
'3 4 "Cur" 100',
'4 5 "Relevant Amount" 150 2 8:1 2 5',
'5 6 "" auto',
'6 7 "保证金帐号" 120',
'7 8 "是否过帐" 120',
'8 9 "是否到帐" 120',
'9 10 "是否被用" 120',
'10 11 "说明 " 200',
'11 12 "被用在交易" 120',
"P COLORED TRUE",
"P VERTLINES TRUE",
"P HORZLINES TRUE",
"P MULTISELECT FLASE",
],
};
},
methods: {
...Event,
async multipleSelect(selection) {
console.log(selection);
if (selection) {
let selIds = selection.map(x=>x+1);
let params = {selDst:"cshstm",selIds}
const rtnmsg = await this.executeRule("cshstm",params);
if (rtnmsg.respCode == SUCCESS) {
this.updateModel(rtnmsg.data)
}
else
{
this.$notify.error({title: '错误',message: '服务请求失败!'});
}
}
},
},
created: function () {},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" >
<el-collapse-item title="Opnp1" name="Opnp1">
<m-Opnp1 :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from '../event'
import Opnp1 from "./Opnp1";
export default {
components: {
"m-Opnp1" : Opnp1,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["Opnp1"],
};
},
methods: {},
created () {},
};
</script>
<style>
</style>
\ No newline at end of file
<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">
<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="setpan">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-function-btn
:handleSubmit="handleSubmit"
:handleCheck="handleCheck"
:handleStash="handleStash"
>
</c-function-btn>
<c-grid-ety-prompt-dialog
ref="etyDialog"
:promptData="promptData"
v-on:select-ety="selectEty"
>
</c-grid-ety-prompt-dialog>
</c-page>
</div>
</template>
<script>
import Api from "~/service/Api";
import operationFunc from "~/mixin/operationFunc";
import event from '../event';
import CodeTable from "~/config/CodeTable";
import Fctcan from "../model";
import Opnp1 from "./Opnp1";
import Ovwp from "./Ovwp";
import formRules from '../model/check'
// import Setpan from "~/components/business/setpan/views";
import Setmod from "~/components/business/setmod/views";
export default {
name: "Gctcan",
components: {
"m-opnp1" : Opnp1,
"m-ovwp" :Ovwp,
// "m-setpan" :Setpan
"m-setmod": Setmod,
},
provide() {
return {
root: this,
};
},
mixins: [event,operationFunc],
data() {
return {
tabVal: "ovwp",
trnName: "fctcan",
model: new Fctcan().data,
rules: formRules,
codes: {
...CodeTable
},
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:{
selectEty(row) {
this.$emit("selectEty", {
...row,
role: this.promptData.type
});
this.show = false;
this.currentPage = 1;
},
},
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 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";
import buildFn from './buildCommons.js';
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/gctadd/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/gctadd/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取gctadd弹框表格数据
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;
}
},
// 选中gctadd弹框表格的行数据
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/gctadd/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
}
}
},
};
/**
* Gitadd Check规则
*/
export default {
"gctp.gidget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gidgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp.gidget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gidgrp.rec.expdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gidgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gidgrp.cbs.opn1.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gctp.recget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gcdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp.recget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gcdgrp.cbs.max.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.cbs.max.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gcdgrp.apl.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gcdgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.cbs.opn1.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gcdgrp.apl.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gcdgrp.ben.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gidgrp.rec.liadat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gcdgrp.ben.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gcdgrp.rec.clmdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gcdgrp.prb.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp.prechkdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gctp.prbp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gcdgrp.prb.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp.prbp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.prb.namelc":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"gcdgrp.prb.pts.adrblk":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"gcdgrp.prb.dbfadrblkcn":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"gcdgrp.prb.adrelc":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"gctp.othp.ptsget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gcdgrp.oth.pts.extkey":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp.othp.ptsget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.oth.namelc":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"gcdgrp.oth.pts.adrblk":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"gcdgrp.oth.dbfadrblkcn":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"gcdgrp.oth.adrelc":[
{type: "string", required: true, message: "必输项"},
{max: 35,message:"长度不能超过35"}
],
"mtabut.coninf.oitinf.oit.inftxt":[
{type: "string", required: true, message: "必输项"},
{max: 60,message:"长度不能超过60"}
],
"mtabut.coninf.oitset.oit.inftxt":[
{type: "string", required: true, 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"}
],
"gctp.ischktyp" :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 Gctadd {
constructor() {
this.data = {
gctp0: {
recget: {
sdamod: {
seainf: ''
}
}
},
gctp: {
prechkdat: '',
prbp: {
ptsget: {
sdamod: {
seainf: ''
}
}
},
othp: {
ptsget: {
sdamod: {
seainf: ''
}
}
},
ischktyp: ''
},
gcdgrp: {
prb: {
pts: new Pts().data,
},
rec: {
ownref: '',
clmdat: '',
payrol: '',
nam: '',
docprbrol: ''
},
oth: {
pts: new Pts().data,
},
cbs: {
opn1: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
}
},
ben: {
pts: new Pts().data,
},
apl: {
pts: new Pts().data,
}
},
gidgrp: {
rec: {
ownref: '',
gartyp: ''
},
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,
}
}
}
\ No newline at end of file
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames">
<!--el-collapse-item title="备查表" name="addbcb1">
<m-addbcb1 :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,
//"m-addbcb1": Addbcb1,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="eibs">
<el-collapse v-model="activeNames">
<el-collapse-item title="索赔信息" name="gitsetp1">
<m-gitsetp1 :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import commonProcess from "~/mixin/commonProcess";
import event from '../event'
import Gitsetp1 from "./Gitsetp1";
export default {
components: {
"m-gitsetp1": Gitsetp1,
},
inject: ['root'],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["gitsetp1"],
}
},
methods: {},
created: function () {
}
}
</script>
<style>
</style>
\ No newline at end of file
<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">
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :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>
<c-function-btn :handleSubmit="handleSubmit" :handleCheck="handleCheck" :handleStash="handleStash">
</c-function-btn>
</c-tabs>
</el-form>
</c-page>
</div>
</template>
<script>
import CodeTable from "~/config/CodeTable"
import Gctadd from "../model"
import Ovwp from "./Ovwp"
import Addbcb from "./Addbcb"
import formRules from '../model/check'
import operationFunc from "@/mixin/operationFunc";
import event from '../event'
export default {
name: "Gctadd",
components:{
"m-ovwp" : Ovwp,
"m-addbcb": Addbcb,
},
provide() {
return {
root: this
}
},
mixins: [operationFunc, event], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "ovwp",
trnName: "gctadd",
trnType: "",
model: new Gctadd().data,
// checkRules: Check,
// defaultRules: Default,
// pattern: Pattern,
rules: formRules,
codes: { ...CodeTable },
}
},
methods:{},
mounted () {
this.init()
},
};
</script>
<style>
</style>
export default {
buildPtspta (ptsptaObj) {
let pts = ptsptaObj.pts;
let ptspta = {
rol: pts.rol,
name: pts.nam,
ptyinr: pts.ptyinr,
ptainr: pts.ptainr,
extkey: pts.extkey,
dftdsp: pts.dftdsp,
dftcur: pts.dftcur,
dftact: pts.dftact,
dftfeecur: pts.dftfeecur,
dftactptainr: pts.dftactptainr,
glggrpflg: pts.glggrpflg,
adrblk: pts.adrblk
};
return ptspta;
},
buildCommonData (model, trnName) {
let ptsptaList = [];
if (model.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/gctrop/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/gctrop/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取gctrop弹框表格数据
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;
}
},
// 选中gctrop弹框表格的行数据
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/gctrop/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 {
"gctp0.gidget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gidgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp0.gidget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gidgrp.rec.expdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gidgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gidgrp.cbs.opn1.amt":[
{type: "string", required: false, message: "必输项"},
{max: 17,message:"整数位不能超过14位"},
// {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gcdgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp0.recget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gctp0.recget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gcdgrp.cbs.max.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.cbs.max.amt":[
{type: "string", required: false, message: "必输项"},
{max: 17,message:"整数位不能超过14位"},
// {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gcdgrp.apl.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gcdgrp.apl.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gcdgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gcdgrp.cbs.opn1.amt":[
{type: "string", required: false, message: "必输项"},
{max: 17,message:"整数位不能超过14位"},
// {pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gcdgrp.ben.pts.ref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gidgrp.rec.liadat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gcdgrp.ben.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gcdgrp.rec.clmdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"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"}
],
"mtabut.coninf.oitinf.oit.inftxt":[
{type: "string", required: true, message: "必输项"},
{max: 60,message:"长度不能超过60"}
],
"mtabut.coninf.oitset.oit.inftxt":[
{type: "string", required: true, 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: true, 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.misamt" :null,
"setmod.dspflg" :null,
"mtabut.coninf.conexedat" :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 Gctcan{
constructor () {
this.data = {
activeNames:'',
gctp0: {
recget: {
sdamod: {
seainf: ''
}
},
gctp0: ''
},
rebkpflg: '',
gcdgrp: {
rec: {
ownref: '',
clmdat: '',
nam: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
}
},
ben: {
pts: {
ref: '',
nam: ''
}
},
apl: {
pts: {
ref: '',
nam: ''
}
}
},
gidgrp: {
rec: {
expdat: '',
liadat: '',
ownref: '',
expflg: '',
gartyp: ''
},
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,
}
}
}
\ No newline at end of file
<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 Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";
import Utils from "~/utils";
import Event from "~/model/Gctcan/Event";
import Coninfp from "~/views/Public/Coninfp";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [commonProcess],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {
...Event,
handleChange(val) {
console.log(val);
},
},
created: function () { },
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="eibs">
<c-col :span="12" style="padding-right: 20px">
<c-col
:span="16"
v-if="model.gidgrp.rec.expflg == 'X' || model.gidgrp.rec.expdat != ''"
>
<el-form-item
label="保函编号"
prop="gidgrp.rec.ownref"
style="width: 100%"
>
<c-fullbox>
<c-input
v-model="model.gidgrp.rec.ownref"
placeholder="请输入"
disabled
></c-input>
<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>
</el-form-item>
</c-col>
<c-col
:span="24"
v-if="model.gidgrp.rec.expflg != 'X' && model.gidgrp.rec.expdat == ''"
>
<el-form-item
label="保函编号"
prop="gidgrp.rec.ownref"
style="width: 100%"
>
<c-fullbox>
<c-input
v-model="model.gidgrp.rec.ownref"
maxlength="8"
placeholder="请输入"
disabled
></c-input>
<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>
</el-form-item>
</c-col>
<c-col :span="8" v-if="model.gidgrp.rec.expflg == 'X'">
<el-form-item style="margin-left: 20px" label="我行责任敞口">
</el-form-item>
</c-col>
<c-col :span="8" v-if="model.gidgrp.rec.expdat != ''">
<el-form-item
label="保函效期"
label-width="50px"
prop="gidgrp.rec.expdat"
>
<c-date-picker
type="date"
v-model="model.gidgrp.rec.expdat"
disabled
style="width: 100%"
placeholder="请选择保函效期"
></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item
label="索赔编号"
prop="gcdgrp.rec.ownref"
style="width: 100%"
>
<c-fullbox>
<c-input
v-model="model.gcdgrp.rec.ownref"
placeholder="请输入"
disabled
></c-input>
<template slot="footer">
<c-button
v-model="model.gctp0.recget.sdamod.seainf"
style="margin: 0 0 0 10px; padding: 0 12px"
size="small"
type="primary"
>
<i class="el-icon-info"></i>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="11">
<c-form-item
label="索赔金额"
prop="gcdgrp.cbs.max.cur"
previewLabel="信用证币种"
>
<c-input
v-model="model.gcdgrp.cbs.max.cur"
maxlength="3"
disabled
placeholder="请输入索赔金额"
></c-input>
</c-form-item>
</c-col>
<c-col :span="8">
<c-form-item
previewLabel="信用证金额"
style="text-align: left"
label-width="5px"
prop="gcdgrp.cbs.max.amt"
>
<c-input-currency
v-model="model.gcdgrp.cbs.max.amt"
placeholder="请输入索赔金额"
disabled
></c-input-currency>
</c-form-item>
</c-col>
<c-col :span="5">
<c-checkbox
v-model="model.gctp0.gctp0"
style="
margin-left: 18px;
height: 32px;
line-height: 32px;
padding-bottom: 2px;
"
disabled
>附加金额</c-checkbox
>
</c-col>
<c-col :span="11">
<c-form-item
label="保函余额"
prop="gcdgrp.cbs.opn1.cur"
previewLabel="信用证币种"
>
<c-select
v-model="model.gcdgrp.cbs.opn1.cur"
placeholder=""
style="width: 100%"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</c-form-item>
</c-col>
<c-col :span="8">
<c-form-item
previewLabel="信用证金额"
style="text-align: left"
label-width="5px"
prop="gcdgrp.cbs.opn1.amt"
>
<c-input-currency
v-model="model.gcdgrp.cbs.opn1.amt"
placeholder="请输入保函余额"
disabled
></c-input-currency>
</c-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="保函种类" prop="gidgrp.rec.gartyp">
<c-select
disabled
v-model="model.gidgrp.rec.gartyp"
style="width: 100%"
placeholder="请选择保函种类"
:code="codes.typgar"
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="24" v-if="model.gidgrp.rec.liadat == 'X'">
<el-form-item label="我行责任敞口"> </el-form-item>
</c-col>
<c-col :span="24" v-if="model.gidgrp.rec.liadat != ''">
<el-form-item label="责任截至日" prop="gidgrp.rec.liadat">
<c-date-picker
type="date"
v-model="model.gidgrp.rec.liadat"
disabled
style="width: 100%"
placeholder="请选择责任截至日"
></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="索赔日期" prop="gcdgrp.rec.clmdat">
<c-input
v-model="model.gcdgrp.rec.clmdat"
maxlength="40"
disabled
placeholder="请输入索赔日期"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="预订程序" prop="rebkpflg">
<c-select
v-model="model.rebkpflg"
style="width: 100%"
placeholder="请选择预订程序"
><el-option
v-for="item in codes.rebkpflg2"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
</c-col>
<c-col :span="12" style="padding-left: 20px">
<c-col :span="12">
<c-form-item
label="保函金额余额"
prop="gidgrp.cbs.opn1.cur"
previewLabel="信用证币种"
>
<c-select
v-model="model.gidgrp.cbs.opn1.cur"
placeholder=""
style="width: 100%"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</c-form-item>
</c-col>
<c-col :span="12">
<c-form-item
previewLabel="信用证金额"
style="text-align: left"
label-width="5px"
prop="gidgrp.cbs.opn1.amt"
>
<c-input-currency
v-model="model.gidgrp.cbs.opn1.amt"
placeholder="请输入保函金额余额"
disabled
></c-input-currency>
</c-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="简略信息" prop="gcdgrp.rec.nam">
<c-input
v-model="model.gcdgrp.rec.nam"
maxlength="40"
placeholder="请输入简略信息"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="申请人参考号" prop="gcdgrp.apl.pts.ref">
<c-input
v-model="model.gcdgrp.apl.pts.ref"
maxlength="16"
placeholder="请输入申请人参考号"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="当事人姓名" prop="gcdgrp.apl.pts.nam">
<c-input
v-model="model.gcdgrp.apl.pts.nam"
maxlength="40"
placeholder="请输入"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="受益人参考号" prop="gcdgrp.ben.pts.ref">
<c-input
v-model="model.gcdgrp.ben.pts.ref"
maxlength="16"
disabled
placeholder="请输入受益人参考号"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="受益人姓名" prop="gcdgrp.ben.pts.nam">
<c-input
v-model="model.gcdgrp.ben.pts.nam"
maxlength="40"
placeholder="请输入"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import event from '../event'
export default {
components: { },
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {};
},
methods: {},
created () {},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<el-collapse v-model="activeNames">
<el-collapse-item title="关闭索赔" name="gitsetp1">
<m-gitsetp1 :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from '../event'
import Gitsetp1 from "./Gitsetp1";
export default {
components: {
"m-gitsetp1": Gitsetp1,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["gitsetp1"],
};
},
methods: {},
created () {},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="eContainer">
<c-page title="保函索赔注销">
<!-- <el-button size="small">备忘录</el-button>
<el-button size="small">影像信息</el-button>
<el-button size="small">保存模板</el-button>
<el-button size="small">使用模板</el-button>
<el-button size="small">制裁信息</el-button>
<el-button size="small">拆分报文</el-button>
<el-button size="small">智能提示</el-button> -->
<el-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">
<!--PD000031 -->
<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>
<!-- 表外记账 -->
<m-engp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setpan">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="会计分录" name="glepan">
<c-content>
<m-glentry :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000510 -->
<el-tab-pane label="备查/附言" name="addbcb">
<c-content>
<m-addbcb :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--trndoc PD000546 Attachments -->
<el-tab-pane label="附件信息" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<c-function-btn :handleSubmit="handleSubmit" :handleCheck="handleCheck" :handleStash="handleStash">
</c-function-btn>
</c-tabs>
</el-form>
</c-page>
</div>
</template>
<script>
import Api from "~/service/Api";
import event from '../event'
import operationFunc from "~/mixin/operationFunc";
import formRules from '../model/check'
import CodeTable from "~/config/CodeTable";
import Ovwp from "./Ovwp";
import Gctcan from "../model";
import Coninfp from "~/components/business/coninfp/views";
import Doctre from "~/components/business/doctre/views";
import Setmod from "~/components/business/setmod/views";
import Engp from "~/components/business/engp/views";
import Docpan from "~/components/business/docpan/views";
import Glentry from "~/components/business/glentry/views";
// import Setpan from "~/components/business/setpan/views";
import Addbcb from "./Addbcb";
export default {
name: "Gctcan",
components: {
"m-ovwp": Ovwp,
"m-engp": Engp,
"m-addbcb": Addbcb,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-setmod": Setmod,
"m-glentry": Glentry,
},
provide() {
return {
root: this,
};
},
mixins: [event,operationFunc],
data() {
return {
tabVal: "ovwp",
trnName: "gctcan",
model: new Gctcan().data,
rules: formRules,
codes: {
...CodeTable
},
};
},
methods:{},
mounted () {
this.init()
},
};
</script>
<style>
</style>
export default {
buildPtspta (ptsptaObj) {
let pts = ptsptaObj.pts;
let ptspta = {
rol: pts.rol,
name: pts.nam,
ptyinr: pts.ptyinr,
ptainr: pts.ptainr,
extkey: pts.extkey,
dftdsp: pts.dftdsp,
dftcur: pts.dftcur,
dftact: pts.dftact,
dftfeecur: pts.dftfeecur,
dftactptainr: pts.dftactptainr,
glggrpflg: pts.glggrpflg,
adrblk: pts.adrblk
};
return ptspta;
},
buildCommonData (model, trnName) {
let ptsptaList = [];
if (model.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/gctfre/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/gctfre/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取gctrop弹框表格数据
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;
}
},
// 选中gctrop弹框表格的行数据
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/gctfre/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 Gctfre{
constructor () {
this.data = {
gcdgrp:{
rec: {
purpos: '',
newexpdat: '',
ownref: '',
clmdat: '',
nam: '',
demstat: '',
purposin: ''
},
blk:{
addamtinf:"", // Add. Amt. Information .gcdgrp.blk.addamtinf
presentdet:"", // Present. Compl. Det. .gcdgrp.blk.presentdet
},
int:{
pts:new Pts().data,
},
awi:{
pts:new Pts().data,
},
iss:{
pts:new Pts().data,
},
ctr:{
pts:new Pts().data,
},
cbs:{
max:{
cur:"", // Amount Claimed .gcdgrp.cbs.max.cur
amt:"", // Balance .gcdgrp.cbs.max.amt
},
opn1:{
cur:"", // Open Amount .gcdgrp.cbs.opn1.cur
amt:"", // Balance .gcdgrp.cbs.opn1.amt
},
},
apl:{
pts:new Pts().data,
},
ben:{
pts:new Pts().data,
},
},
clmtxts20:"", // Demand Statem. Text .clmtxts20
gctp0: {
recget: {
sdamod: {
seainf: ''
}
},
gctp0: '',
gidget: {
sdamod: {
seainf: ''
}
}
},
extpay:"", // Extend or Pay .extpay
gidgrp: {
rec: {
expdat: '',
ownref: '',
gartyp: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
fremsg: {
othmsgp: {
ptsget: {
sdamod: {
seainf: ''
}
}
},
flg: '',
othmsg: {
pts:new Pts().data,
},
strinf: '',
iss: {
pts:new Pts().data,
},
msgrol: '',
tag23: '',
ccrol: '',
fulmt: '',
othcc: {
pts: {
pts:new Pts().data,
}
},
tag45d: '',
issrol: '',
tag22d: '',
det: '',
frttitle: '',
reldat: '',
tag23h: '',
relmt: '',
sndmt: '',
tag20ref: '',
reldir: '',
tag77a: ''
},
didgrp: {
apl: {
pts:new Pts().data,
}
},
pageId: "", // ctx的key
gctfrel1blk:"",
gctfrel2blk:"",
gct752l1blk:"",
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
}
}
}
\ No newline at end of file
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="附言" name="coninfp">
<m-coninfp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import Coninfp from "~/views/Public/Coninfp";
import event from "../event"
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
}
};
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<c-col :span="12">
<c-form-item label="需求/答复" prop="fremsg.det">
<c-input
type="textarea"
v-model="model.fremsg.det"
maxlength="35"
show-word-limit
:placeholder="$t('other.please_enter')+$t('fremsg.SF000077')"
></c-input>
</c-form-item>
</c-col>
<c-col :span="12">
<c-form-item label="叙述内容" prop="fremsg.tag77a">
<c-input
type="textarea"
v-model="model.fremsg.tag77a"
maxlength="35"
show-word-limit
:placeholder="$t('other.please_enter')+$t('fremsg.SF000078')"
></c-input>
</c-form-item>
</c-col>
</div>
</template>
<script>
import event from "../event"
export default {
inject: ['root'],
props:["model","codes"],
mixins: [event],
data(){
return {
}
},
}
</script>
<style>
</style>
<template>
<div class="eibs">
<!-- ============左边================= -->
<c-col :span="12" style="padding-right: 20px;">
<c-col :span="24">
<el-form-item label="需求声明" prop="gcdgrp.rec.demstat">
<c-select
v-model="model.gcdgrp.rec.demstat"
style="width: 100%"
placeholder="请选择需求声明"
:code="demstat"
>
</c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="需求声明文本 " prop="clmtxts20">
<c-input
type="textarea"
v-model="model.clmtxts20"
maxlength="65"
rows="10"
show-word-limit
placeholder="请输入需求声明文本 "
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="附加金额附言" prop="gcdgrp.blk.addamtinf">
<c-input
type="textarea"
v-model="model.gcdgrp.blk.addamtinf"
maxlength="65"
rows="10"
show-word-limit
placeholder="请输入附加金额附言"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="Present. Compl. Det." prop="gcdgrp.blk.presentdet">
<c-input
type="textarea"
v-model="model.gcdgrp.blk.presentdet"
maxlength="35"
rows="9"
show-word-limit
placeholder="请输入Present. Compl. Det."
></c-input>
</el-form-item>
</c-col>
</c-col>
<!-- ============右边================= -->
<c-col :span="12" style="padding-left: 20px;">
<c-col :span="24">
<el-form-item label=" " label-width="150px" prop="extpay">
<c-checkbox class="checkbox-left" v-model="model.extpay"
>延期或付款</c-checkbox>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="有效请求日期" prop="gcdgrp.rec.newexpdat" style="width: 100%">
<c-date-picker
type="date"
v-model="model.gcdgrp.rec.newexpdat"
style="width: 100%"
placeholder="请选择日期"
:disabled="!model.extpay"
></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="中间行" prop="gcdgrp.int.pts.extkey">
<c-fullbox>
<c-input
v-model="model.gcdgrp.int.pts.extkey"
maxlength="16"
placeholder="请输入"
@keyup.enter.native="
showGridPromptDialog(
'gcdgrp.int.pts.extkey'
)
"
></c-input>
<template slot="footer">
<c-button
style="margin: 0 10px 0 10px; padding: 0 12px"
size="small"
type="primary"
@click="onSeainf"
>
<i class="el-icon-info"></i>
</c-button>
<c-button size="small" type="primary" @click="onIntpDet">
详情
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="gcdgrp.int.pts.nam">
<c-input
type="textarea"
v-model="model.gcdgrp.int.pts.nam"
rows="4"
maxlength="100"
show-word-limit
placeholder="请输入"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="帐户行" prop="gcdgrp.awi.pts.extkey">
<c-fullbox>
<c-input
v-model="model.gcdgrp.awi.pts.extkey"
maxlength="16"
placeholder="请输入"
@keyup.enter.native="
showGridPromptDialog('gcdgrp.awi.pts.extkey')
"
></c-input>
<template slot="footer">
<c-button
style="margin: 0 10px 0 10px; padding: 0 12px"
size="small"
type="primary"
@click="onSeainf"
>
<i class="el-icon-info"></i>
</c-button>
<c-button size="small" type="primary" @click="onAwipDet">
详情
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="gcdgrp.awi.pts.nam">
<c-input
type="textarea"
v-model="model.gcdgrp.awi.pts.nam"
rows="4"
maxlength="100"
show-word-limit
placeholder="请输入"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import event from "../event";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
demstat: [
{
label:
"COMP 完整需求,没有其他单据伴随或跟踪此消息",
value: "COMP",
},
{
label:
"INCP 不完整需求,支持单据单独提交",
value: "INCP",
},
],
};
},
computed:{
extpay: {
get() {
return this.model.extpay != "";
},
set(val) {
this.model.extpay = val ? "X" : "";
},
},
},
computed: {
flag() {
return this.model.didgrp.apl.pts.extkey == "";
},
},
};
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<!-- SF000256 : Form of Undertaking -->
<c-col :span="12" style="padding-right: 20px">
<c-col :span="24">
<el-form-item label="承诺形式" prop="fremsg.tag22d">
<c-select v-model="model.fremsg.tag22d" style="width:100%" :code="codes.legfrm3" placeholder="">
</c-select>
</el-form-item>
</c-col>
<!-- SF000257 : Undertaking Number -->
<c-col :span="24">
<c-form-item label="企业编号" prop="fremsg.tag23">
<c-input v-model="model.fremsg.tag23" maxlength="16" placeholder=""></c-input>
</c-form-item>
</c-col>
<!-- SF000258 : Issuer of Undertak. -->
<c-col :span="24">
<el-form-item label="发行人" prop="fremsg.issrol">
<c-select v-model="model.fremsg.issrol" style="width: 100%" placeholder="请选择发行人" :code="codes.payrol"
@change="eventFunction('fremsg.issrol')"
>
<!-- <el-option v-for="item in codes.docprbrol" :key="item.value" :label="item.label" :value="item.value">
</el-option> -->
</c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="fremsg.iss.pts.extkey">
<c-fullbox>
<c-input v-model="model.fremsg.iss.pts.extkey" maxlength="16" placeholder="请输入" disabled
@keyup.enter.native="
showGridPromptDialog('fremsg.iss.pts.extkey')
"></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">
详情
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="fremsg.iss.pts.adrblk">
<c-input :rows="4" type="textarea" v-model="model.fremsg.iss.pts.adrblk" :disabled="model.fremsg.issrol!='OTH'"
maxlength="300" show-word-limit placeholder="请输入">
</c-input>
</el-form-item>
</c-col>
<!-- SF000259 : Function -->
<c-col :span="24">
<el-form-item label="功能" prop="fremsg.tag23h">
<c-select v-model="model.fremsg.tag23h" style="width:100%" :code="codes.tag23h" placeholder="">
</c-select>
</el-form-item>
</c-col>
<!-- SF000260 : Details of Request -->
<c-col :span="24">
<c-form-item label="请求的详细信息" prop="fremsg.tag45d">
<!-- :code="tag45d" -->
<c-input type="textarea" v-model="model.fremsg.tag45d" :rows="5" maxlength="65" show-word-limit placeholder="" ></c-input>
</c-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import event from "../event"
export default {
inject: ['root'],
props:["model","codes"],
mixins: [event],
data(){
return {
}
},
}
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="免税报文" name="frep">
<m-frep :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="报文详情 " name="Fredet" v-if="model.fremsg.sndmt=='95'||model.fremsg.sndmt=='96'" >
<m-fredet :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="详情" name="gitdetp" >
<m-gitdetp :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="报文详情Mt759" name="Mt759p" v-if="model.fremsg.sndmt=='59'">
<m-mt759p :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Frep from "./Frep";
import Fredet from "./Fredet";
import Mt759p from "./Mt759p";
import Gitdetp from "./Gitdetp";
export default {
components: {
"m-frep": Frep,
"m-fredet": Fredet,
"m-mt759p": Mt759p,
"m-gitdetp": Gitdetp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["frep"],
};
},
};
</script>
<style>
</style>
\ No newline at end of file
<template>
<div class="eContainer">
<c-page title="自由格式报文">
<el-form
:model="model"
:rules="rules"
ref="modelForm"
label-width="150px"
label-position="right"
size="small"
:validate-on-rule-change="false"
>
<c-tabs
v-model="tabVal"
ref="elment"
type="card"
@tab-click="tabClick"
>
<!--getfre PD000141 Common Messages -->
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :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>
<!--setmod PD000000 Settlement -->
<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>
</c-tabs>
</el-form>
<c-grid-ety-prompt-dialog
ref="etyDialog"
:promptData="promptData"
@select-ety="selectEty"
>
</c-grid-ety-prompt-dialog>
<c-grid-ety-prompt-dialog
ref="doxpDialog"
:isPty="false"
:promptData="promptData"
@select-ety="selectMsg"
>
</c-grid-ety-prompt-dialog>
<c-function-btn
:handleSubmit="handleSubmit"
:handleCheck="handleCheck"
:handleStash="handleStash"
>
</c-function-btn>
</c-page>
</div>
</template>
<script>
import CodeTable from "~/config/CodeTable"
import Gctfre from "../model"
import event from '../event'
import commonFuncs from "~/mixin/commonFuncs"
import Check from "../model/check"
import Ovwp from "./Ovwp"
import Addbcb from "./Addbcb.vue"
import Coninfp from "~/components/business/coninfp/views";
import Docpan from "~/components/business/docpan/views";
import Doctre from "~/components/business/doctre/views";
export default {
name: "Gctfre",
components:{
"m-ovwp" : Ovwp,
"m-doctre" : Doctre,
"m-docpan" : Docpan,
"m-coninfp" : Coninfp,
"m-addbcb" : Addbcb,
},
provide() {
return {
root: this
}
},
mixins: [event, commonFuncs], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "ovwp",
trnName: "gctfre",
model: new Gctfre().data,
checkRules: Check,
rules: null,
codes: {
...CodeTable
},
}
},
mounted () {
this.init()
},
}
</script>
<style>
</style>
......@@ -2,7 +2,7 @@
<div class="eibs-tab">
<!-- ======================= 左边 ========================= -->
<c-col :span="12" style="padding-right: 20px">
<!-- S0000054 : Guarantee -->
<!-- S0000054 : 担保 -->
<el-col :span="24">
<c-form-item
:label="$t('gctp.S0000054')"
......
......@@ -11,7 +11,7 @@
:validate-on-rule-change="false">
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="tabClick">
<!--gctp PD000047 Overview -->
<!--gctp PD000047 业务信息 -->
<el-tab-pane :label="$t('gctp.PD000047')" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes"/>
......
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.ben.pts.extkey) {
ptsptaList.push(this.buildPtspta(model.gidgrp.ben));
}
let dataObj = {
rec: {
objtyp: 'GID',
objinr: model.gidgrp.rec.objinr,
ownref: model.gidgrp.rec.ownref,
segtyp: model.gidgrp.rec.segtyp,
fromflg: model.gidgrp.rec.fromflg,
othersno: model.gidgrp.rec.othersno,
sndto: model.gidgrp.rec.sndto,
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,
};
return params;
},
buildGlentry(model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'GID',
segtyp: model.gidgrp.rec.segtyp,
fromflg: model.gidgrp.rec.fromflg,
othersno: model.gidgrp.rec.othersno,
sndto: model.gidgrp.rec.sndto,
giduil: model.gidgrp.rec.giduil,
purpos: model.gidgrp.rec.purpos,
revflg: model.gidgrp.rec.revflg,
cnfsta: model.gidgrp.rec.cnfsta,
},
liaccv: model.liaccv,
doceot: model.trnmod.trndoc.doceot,
transName: trnName,
};
return params;
},
buildEngp(model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
cbsMap: {
CNF: model.gidgrp.cbs.cnf,
},
liaccv: model.liaccv,
doceot: model.trnmod.trndoc.doceot,
transName: trnName,
};
params.rec = {
...params.rec,
opndat: model.gidgrp.rec.opndat,
branchInr: model.gidgrp.rec.branchInr,
hndtyp: model.gidgrp.rec.hndtyp,
gartyp: model.gidgrp.rec.gartyp,
fingua: model.gidgrp.rec.fingua,
};
return params;
},
buildDocpan(model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
rec: {
objtyp: 'GID',
fromflg: model.gidgrp.rec.fromflg,
othersno: model.gidgrp.rec.othersno,
sndto: model.gidgrp.rec.sndto,
giduil: model.gidgrp.rec.giduil,
purpos: model.gidgrp.rec.purpos,
cnfsta: model.gidgrp.rec.cnfsta,
revflg: model.gidgrp.rec.revflg,
},
liaccv: model.liaccv,
doceot: model.trnmod.trndoc.doceot,
transName: trnName,
};
return params;
},
buildCcvpan(model, trnName) {
let params = {
...this.buildCommonData(model, trnName),
};
params.rec = {
...params.rec,
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,
liaccvg: model.liaccv.liaccvg,
oldamt: model.liaccv.oldamt,
chgamt: model.liaccv.chgamt,
concur: model.liaccv.concur,
};
return params;
},
};
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import buildFn from './buildCommons.js';
import setmod from '~/components/business/setmod/event';
import glentry from '~/components/business/glentry/event';
import engp from '~/components/business/engp/event';
import docpan from '~/components/business/docpan/event';
import ccvpan from '~/components/business/ccvpan/event';
import Utils from "~/utils"
export default {
mixins: [commonFunctions],
methods: {
...setmod,
...glentry,
...engp,
...docpan,
...ccvpan,
async init () {
const res = await Api.post('/service/gitatt/init', {
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
gidInr: this.$route.query.inr
});
if (!res.data) {
return
}
this.copyValueFromVoData(this.model, res.data)
this.copyValueFromVoData(this.model.setmod.setfeg, res.data.setfeg)
this.copyValueFromVoData(this.model.setmod.setfog, res.data.setfog)
this.copyValueFromVoData(this.model.setmod.setglg, res.data.setglg)
},
// 兼容处理在前端model中定义了字段,后端返回的数据中不存在字段的问题
copyValueFromVoData (model, data) {
let keysList = Object.keys(model)
keysList.map((key) => {
if (data[key]) {
if (Utils.typeOf(model[key]) === 'Object') {
this.copyValueFromVoData(model[key], data[key])
} else {
this.$set(model, key, data[key])
}
}
})
},
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
},
}
}
\ No newline at end of file
export default {
"mtabut.coninf.oitinf.oit.inftxt":[
{type: "string", required: true, message: "必输项"},
{max: 60,message:"长度不能超过60"}
],
"mtabut.coninf.oitset.oit.inftxt":[
{type: "string", required: true, 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"}
],
"gitp0.recget.sdamod.dadsnd":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gidgrp.rec.ownref":[
{type: "string", required: false, message: "必输项"},
{max: 16,message:"长度不能超过16"}
],
"gitp0.recget.sdamod.seainf":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gidgrp.rec.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gidgrp.cbs.max.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gidgrp.cbs.max.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gidgrp.apl.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gidgrp.cbs.opn1.cur":[
{type: "string", required: false, message: "必输项"},
{max: 3,message:"长度不能超过3"}
],
"gidgrp.cbs.opn1.amt":[
{type: "string", required: false, message: "必输项"},
{max: 18,message:"整数位不能超过14位"},
{pattern: /(^\d+$)|(^\.\d{1,3}$)|(^\d+\.\d{1,3}$)/, message: "小数位不能超过3位" }
],
"gidgrp.ben.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gidgrp.ctr.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"gidgrp.rec.expdat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gidgrp.rec.liadat":[
{type: "date", required: false, message: "输入正确的日期"}
],
"gidgrp.iss.pts.nam":[
{type: "string", required: false, message: "必输项"},
{max: 40,message:"长度不能超过40"}
],
"mtabut.coninf.conexedat" :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 Gitatt{
constructor () {
this.data = {
mtabut: new Pub().data.Mtabut,
setmod: {
refdat: ''
},
gitp0: {
aamgid: {
addamtflg: ''
}
},
gidgrp: {
ctr: {
pts: {
nam: ''
}
},
rec: {
expdat: '',
purpos: '',
liadat: '',
liatypc: '',
ownref: '',
exptyp: '',
nam: '',
gartyp: '',
purposin: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
}
},
apl:{
pts:new Pts().data,
},
ben:{
pts:new Pts().data,
},
ctr:{
pts:new Pts().data,
},
iss:{
pts:new Pts().data,
},
},
pageId: "" , // ctx的key
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
liaall: new Pub().data.Liaall,
}
}
}
\ No newline at end of file
<template>
<div class="eibs">
<c-col :span="12" style="padding-right: 20px;">
<c-col :span="24">
<el-form-item label="保函编号" prop="gidgrp.rec.ownref">
<c-fullbox>
<c-input
v-model="model.gidgrp.rec.ownref"
maxlength="16"
placeholder="请输入保函编号"
disabled
></c-input>
<template slot="footer">
<c-button
style="margin: 0 0 0 10px; padding: 0 12px"
size="small"
type="primary"
icon="el-icon-info"
@click="onSeainf"
>
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item label="保函币种和金额" prop="gidgrp.cbs.max.cur">
<c-select
v-model="model.gidgrp.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="8">
<el-form-item
label-width="5px"
prop="gidgrp.cbs.max.amt"
>
<c-input-currency
disabled
v-model="model.gidgrp.cbs.max.amt"
></c-input-currency>
</el-form-item>
</c-col>
<c-col :span="4" class="centerLable">
<c-checkbox
disabled
v-model="model.gitp0.aamgid.addamtflg"
>
附加金额
</c-checkbox>
</c-col>
<c-col :span="24">
<c-col :span="12">
<el-form-item label="保函余额" prop="gidgrp.cbs.opn1.cur">
<c-select
disabled
v-model="model.gidgrp.cbs.opn1.cur"
style="width: 100%"
placeholder="请选择保函余额币种"
@keyup.enter.native="nom1CurEvent"
>
<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="8">
<el-form-item label-width="5px" prop="gidgrp.cbs.opn1.amt">
<c-input-currency
disabled
v-model="model.gidgrp.cbs.opn1.amt"
></c-input-currency>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<el-form-item label="接收目的" prop="gidgrp.rec.purposin">
<c-select
v-model="model.gidgrp.rec.purposin"
style="width: 100%"
placeholder="请选择接收目的 "
:code="codes.purposin"
disabled
></c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="报文目的" prop="gidgrp.rec.purpos">
<c-select
v-model="model.gidgrp.rec.purpos"
style="width: 100%"
placeholder="请选择报文目的"
:code="codes.purpos"
disabled
></c-select>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="保函类型" prop="gidgrp.rec.gartyp">
<c-select
disabled
v-model="model.gidgrp.rec.gartyp"
style="width: 100%"
placeholder="请选择保函类型"
:code="codes.typgar"
></c-select>
</el-form-item>
</c-col>
<c-col :span="13">
<el-form-item label="到期" prop="gidgrp.rec.expdat">
<c-date-picker
disabled
type="date"
v-model="model.gidgrp.rec.expdat"
style="width: 100%"
placeholder="请选择"
></c-date-picker>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item style="text-align: left" label-width="5px" prop="gidgrp.rec.exptyp">
<c-select
v-model="model.gidgrp.rec.exptyp"
style="width: 100%"
placeholder="请选择到期类型"
:code="codes.exptyp"
disabled
></c-select>
</el-form-item>
</c-col>
</c-col>
<c-col :span="12" style="padding-left: 20px;">
<c-col :span="24">
<el-form-item label="简略信息" prop="gidgrp.rec.nam">
<c-input
disabled
v-model="model.gidgrp.rec.nam"
maxlength="40"
placeholder="请输入简略信息"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="申请人" prop="gidgrp.apl.pts.nam">
<c-input
disabled
v-model="model.gidgrp.apl.pts.nam"
maxlength="40"
placeholder="请输入"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="受益人" prop="gidgrp.ben.pts.nam">
<c-input
disabled
v-model="model.gidgrp.ben.pts.nam"
maxlength="40"
placeholder="请输入"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="帐户行" prop="gidgrp.ctr.pts.nam">
<c-input
disabled
v-model="model.gidgrp.ctr.pts.nam"
maxlength="40"
placeholder="请输入"
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="开证行" prop="gidgrp.iss.pts.nam">
<c-input
disabled
v-model="model.gidgrp.iss.pts.nam"
maxlength="40"
placeholder="请输入开证行"
></c-input>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import CodeTable from "~/config/CodeTable"
import event from "../event"
export default {
inject: ['root'],
props:["model","codes"],
mixins: [event],
data(){
return {
codes:{
...CodeTable,
},
}
},
}
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="附加传入消息" name="gitfrep1">
<m-gitfrep1 :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Gitfrep1 from "./Gitfrep1";
export default {
components:{
"m-gitfrep1" : Gitfrep1
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["gitfrep1"],
};
},
};
</script>
<style>
</style>
\ No newline at end of file
<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">
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes"/>
</c-content>
</el-tab-pane>
<el-tab-pane label="附言" name="coninfp">
<c-content>
<m-coninfp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-function-btn
:handleSubmit="handleSubmit"
:handleCheck="handleCheck"
:handleStash="handleStash">
</c-function-btn>
</c-page>
</div>
</template>
<script>
import event from '../event';
import CodeTable from "~/config/CodeTable";
import Gitatt from "../model";
import Check from "../model/check";
import Ovwp from "./Ovwp";
import commonFuncs from "~/mixin/commonFuncs";
import Gitfrep1 from "./Gitfrep1";
import Coninfp from "~/components/business/coninfp/views";
export default {
name: "Gitatt",
components:{
"m-ovwp": Ovwp,
"m-coninfp" : Coninfp,
"m-gitfrep1" : Gitfrep1,
},
provide() {
return {
root: this
}
},
mixins: [event,commonFuncs], // 里面包含了Default、Check等的公共处理
data(){
return {
tabVal: "ovwp",
trnName: "gitatt",
trnType: "",
model: new Gitatt().data,
checkRules: Check,
rules: null,
codes: {
...CodeTable,
},
}
},
mounted () {
this.init()
},
}
</script>
<style>
</style>
......@@ -54,7 +54,7 @@ export default {
let engpRequest = buildFn.buildEngp(this.model, this.trnName);
this.processLiaall(engpRequest);
break;
case 'setpan':
case 'setmod':
let setfegRequest = buildFn.buildSetfeg(this.model, this.trnName);
// 此处利用回调是为了等setfeg的接口调用完成后才去获取setglg参数,由于setglg参数依赖于setfeg函数的返回值
this.processSetpan(setfegRequest, () => {
......
......@@ -42,9 +42,9 @@
</el-tab-pane>
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setpan">
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setpan :model="model" :codes="codes" />
<m-setmod :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
......@@ -111,7 +111,6 @@ export default {
name: "Gitcan",
components: {
"m-engp": Engp,
"m-setpan": Setpan,
"m-coninfp": Coninfp,
"m-docpan": Docpan,
"m-doctre": Doctre,
......
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/gitdla/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/gitdla/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);
},
// 初始化保函开立类型码表下拉列表
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/gitdla/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 Gitdla{
constructor () {
this.data = {
amenbr: '',
amecur: '',
decstm: {
rows: ''
},
gidgrp: {
blk: {
covgodsrv: '',
deltoadr: '',
gtxgidtxtc: '',
gartyptxtc: '',
atxpreper: '',
atxliatxtc: '',
preper: '',
preperc: '',
addinfc: '',
atxexptxt: '',
gidtxt: '',
addinf: '',
orcplc: '',
axtcovgodsrv: '',
exptxt: '',
atxcovgodsrvc: '',
trfcondc: '',
covgodsrvc: '',
apprulc: '',
feetxtc: '',
apprultxtc: '',
feetxt: '',
liatxtc: '',
trfcond: '',
apprul: '',
gtxgidtxt: '',
addamtcovc: '',
gidtxtc: '',
deltoadrc: '',
apprultxt: '',
orcplcc: ''
},
ctr: {
pts: new Pts().data,
},
bec: {
pts: new Pts().data,
},
ghd: {
wahnum: '',
remark: '',
bustyp: '',
segtyp: ''
},
con: {
dbfadrblkcn: '',
pts: new Pts().data,
},
cnr: {
pts: new Pts().data,
},
iss: {
pts: new Pts().data,
},
ben: {
pts: new Pts().data,
},
atb: {
pts: new Pts().data,
},
avc: {
pts: new Pts().data,
},
gidcxm: {
benefi: '',
cxmflg: '',
warran: ''
},
rec: {
acc: '',
deloritxt: '',
cunqii: '',
bngcod: '',
orcamtc: '',
jurplc: '',
atxinr: '',
expflg: '',
fenlishi: '',
opndat: '',
demandc: '',
partcon: '',
orcrefc: '',
jurplcc: '',
hndtyp: '',
orcrat: '',
cfaguatyp: '',
nam: '',
delori: '',
liaflg: '',
tendatc: '',
gtxinrc: '',
tenrefc: '',
bilvvv: '',
legfrmc: '',
deloric: '',
sndto: '',
demand: '',
purposin: '',
guaflg: '',
accc: '',
gartypc: '',
chato: '',
orcamt: '',
orcratc: '',
deltoc: '',
jurlaw: '',
orccur: '',
gtxinr: '',
fingua: '',
cnfsta: '',
jurlaws20: '',
orddat: '',
stdwrduilc: '',
jurlawtxtc: '',
trmdatc: '',
liadat: '',
inudat: '',
legfrm: '',
purpos: '',
tenref: '',
trmdat: '',
mannum: '',
deloritxtc: '',
liatypc: '',
exptyp: '',
ownref: '',
orcdat: '',
giduil: '',
orcref: '',
reccnfdet: '',
tendat: '',
cnfdat: '',
cmtflg: '',
orcdatc: '',
expdat: '',
cnfdet: '',
opndatc: '',
delto: '',
juscod: '',
tenclsdatc: '',
jurlawc: '',
gartyp: '',
orccurc: '',
vrfdat: ''
},
adv: {
pts: new Pts().data,
},
ctc: {
pts: new Pts().data,
},
apc: {
pts: new Pts().data,
},
cbs: {
opn1: {
cur: '',
amt: ''
},
mac2: {
cur: '',
amt: ''
},
opc2: {
cur: '',
amt: ''
},
max: {
cur: '',
amt: ''
},
cnf: {
cur: '',
amt: ''
},
mac: {
cur: '',
amt: ''
}
},
apl: {
pts: new Pts().data,
}
},
ameamt: '',
amedat: '',
liaall: {
limmod: {
limpfp: {
clmpty: [],
clmcbe: [],
clmcbb: [],
}
}
},
ameflg: '',
gitp: {
aacp: {
aacmod: {
addamtflg: ''
}
},
chkpreper: '',
swiftflg: '',
chargic: {
chkast: ''
},
gidtxtmodflgc: '',
indirectswiadd: '',
gidtxtmodflg: '',
exptxtmodflg: '',
covgodsrvcmodflg: '',
prepercmodflg: '',
covgodsrvmodflg: '',
chargi: {
chkast: ''
},
covgod: {
chkast: ''
},
chkgidtxt: '',
dzbhflg: '',
covgodc: {
chkast: ''
},
chkpreperc: '',
liatxtcmodflg: '',
usr: {
extkey: ''
},
oppbnkl: '',
chkgidtxtc: '',
prepermodflg: '',
lettername: '',
inc760: ''
},
cfagit: {
cfaflg: ''
},
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
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