Commit bd4b90d1 by WH

brtdcr前端代码

parent e34789fe
import Api from '~/service/Api';
import commonFunctions from '~/mixin/commonFunctions.js';
import buildFn from './buildCommons.js';
import setmod from '~/components/business/setmod/event';
import glentry from '~/components/business/glentry/event';
import engp from '~/components/business/engp/event';
import docpan from '~/components/business/docpan/event';
import ccvpan from '~/components/business/ccvpan/event';
import limitbody from '~/components/business/limitbody/event';
import doctre from '~/components/business/doctre/event';
import Utils from "~/utils"
export default {
mixins: [commonFunctions],
methods: {
...setmod,
...glentry,
...engp,
...docpan,
...ccvpan,
...limitbody,
...doctre,
async init () {
const params = {
spt: JSON.parse(localStorage.getItem('row_' + this.trnName))
}
const res = await Api.post('/service/brtdcr/init', {
...params,
transName: this.trnName,
userId: window.sessionStorage.userId || 'ZL',
});
if (!res.data) {
return
}
this.copyValueFromVoData(this.model, res.data)
this.copyValueFromVoData(this.model.setmod.setfeg, res.data.setfeg)
this.copyValueFromVoData(this.model.setmod.setfog, res.data.setfog)
this.copyValueFromVoData(this.model.setmod.setglg, res.data.setglg)
},
// 兼容处理在前端model中定义了字段,后端返回的数据中不存在字段的问题
copyValueFromVoData (model, data) {
let keysList = Object.keys(model)
keysList.map((key) => {
if (data[key]) {
if (Utils.typeOf(model[key]) === 'Object') {
this.copyValueFromVoData(model[key], data[key])
} else {
this.$set(model, key, data[key])
}
}
})
},
async tabClick(tab) {
if (this.isInDisplay) {
return;
}
let name = tab.name;
switch (name) {
case 'ccvpan':
let ccvpanRequest = buildFn.buildCcvpan(this.model, this.trnName);
this.processLiaccv(ccvpanRequest);
break;
case 'engp':
let engpRequest = buildFn.buildEngp(this.model, this.trnName);
this.processLiaall(engpRequest);
break;
case 'setpan':
let setfegRequest = buildFn.buildSetfeg(this.model, this.trnName);
// 此处利用回调是为了等setfeg的接口调用完成后才去获取setglg参数,由于setglg参数依赖于setfeg函数的返回值
this.processSetpan(setfegRequest, () => {
return buildFn.buildSetglg(this.model, this.trnName);
});
break;
case 'docpan':
let docpanRequest = buildFn.buildDocpan(this.model, this.trnName);
this.processTrndoc(docpanRequest);
break;
case 'glepan':
let glentryRequest = buildFn.buildGlentry(this.model, this.trnName);
this.processGlentry(glentryRequest);
break;
case 'limitbody':
let limitbodyRequest = buildFn.buildLimitbody(this.model, this.trnName);
this.processLimitbody(limitbodyRequest);
break;
case 'doctre':
let doctreRequest = buildFn.buildDoctre(this.model, this.trnName);
this.processDoctre(doctreRequest);
break;
default:
return;
}
},
// 点击获取按钮拉取当前key字段下的表单数据
queryFormData(key) {
console.log(key);
},
// 业务信息=》基本信息=》保函编号-----获取保函编号
async queryOwnref() {
let params = {
ptainr: this.model.gidgrp.apl.pts.ptainr,
businessType: 'LG',
tbl: 'LG',
};
const loading = this.loading();
let res = await Api.post('/service/brtdcr/getOwnRef', params);
if (res.respCode == SUCCESS) {
loading.close();
this.model.gidgrp.rec.ownref = res.data;
}
},
// 获取brtdcr弹框表格数据
async queryGridEtyPromptDialogData(type, ptytyp) {
let params = {
userId: window.sessionStorage.userId || 'ZL',
ptytyp: ptytyp,
extkey: this.model.gidgrp[type.toLowerCase()].pts.extkey,
};
let res = await Api.post('/service/ptspta/list', params);
if (res.respCode == SUCCESS) {
this.root.$refs['etyDialog'].show = true;
this.root.promptData.data = res.data.ptaInfos;
this.root.promptData.type = type;
}
},
// 选中brtdcr弹框表格的行数据
async selectGridEtyPromptData(row) {
let params = {
...row,
};
let res = await Api.post('/service/ptspta/fetch', params);
if (res.respCode == SUCCESS) {
this.$set(this.model.gidgrp, row.role.toLowerCase(), res.data);
}
},
// 业务信息=》基本信息=》支出目的
purposChange(key, value) {
this.handleChangeForm(key, value);
},
// 初始化保函开立类型码表下拉列表
async queryHndtypCodeTableList(trnName) {
let params = {
gitp: {
swiftflg: this.model.gitp.swiftflg,
},
gidgrp: {
rec: {
purpos: this.model.gidgrp.rec.purpos,
},
},
transName: trnName.toUpperCase(),
};
let res = await Api.post('/service/brtdcr/initHndtyp', params);
if (res.respCode == SUCCESS) {
this.$set(this.codes, 'voHndtyp', res.data);
}
},
// 是否SWIFT格式修改--联动保函开立类型
handleChangeSwiftflg() {
this.queryHndtypCodeTableList(this.root.trnName);
},
// 支出目的修改--联动保函开立类型
handleChangePurpos() {
this.queryHndtypCodeTableList(this.root.trnName);
},
buildLiaccv () {
let params = {
...buildFn.buildCommonData(this.model, this.trnName),
liaccvg: this.model.liaccv.liaccvg,
oldamt: this.model.liaccv.oldamt,
chgamt: this.model.liaccv.chgamt,
concur: this.model.liaccv.concur,
};
return params
},
// 公共组件setmod处理方式改变触发联动
changeSetmodModel (emitParams) {
let reqParams = {}
switch (emitParams.code) {
case 'processMethods':
reqParams = buildFn.buildSetglg(this.model, this.trnName);
this.calcPayDetail(reqParams)
break
case 'changeDsp':
let index = emitParams.index;
let setglgRequest = buildFn.buildSetglg(this.model, this.trnName);
setglgRequest.setglg = {setgll: emitParams.list};
this.setgllAccts(setglgRequest, index);
break
default:
return
}
}
},
};
import Pts from '~/components/business/commonModel/Pts';
import Pub from '~/components/business/commonModel/index.js';
export default class Brtdcr {
constructor() {
this.data = {
gitp:{
swiftflg: '',
},
gidgrp:{
ghd: {
// wahnum: '',
// remark: '',
// bustyp: '',
segtyp: '',
},
rec:{
ownref:''
},
con: {
pts: new Pts().data,
},
iss: {
pts: new Pts().data,
},
ben: {
pts: new Pts().data,
},
atb: {
pts: new Pts().data,
},
avc: {
pts: new Pts().data,
},
apl: {
pts: new Pts().data,
},
adv: {
pts: new Pts().data,
},
ctr: {
pts: new Pts().data,
},
cbs: {
max: {
cur: '',
amt: '',
},
},
},
brtp: {
matp:{
mattxtlab:''
},
docgrdm:{
docgrd:''
},
oth:{
pts: new Pts().data,
}
},
brdgrp: {
blk: {
chaded: '',
docdisflg: '',
chaadd: '',
disdocflg: '',
disdoc: '',
docdis: '',
docpre:'',
docgrd:''
},
prb: {
pts: new Pts().data,
},
rec: {
totcur: '',
advtyp: '',
ownref: '',
orddat: '',
payrol: '',
totamt: '',
nam: '',
docprbrol: '',
advdocflg: '',
rcvdat:'',
advdat:'',
stadat:'',
docflg:'',
tenmaxday:'',
docsta:'',
},
cbs: {
opn2: {
cur: ''
},
opn1: {
cur: '',
amt:''
},
max: {
cur: '',
amt: ''
},
max2: {
amt: ''
}
},
apl:{
pts: new Pts().data,
},
ben:{
pts: new Pts().data,
},
oth:{
pts: new Pts().data,
},
acb:{
pts: new Pts().data,
},
},
advdisflg: '',
// mtabut: {
// clsflg: ''
// },
refdocflg: '',
swtdat: '',
rejpenins: '',
advrefflg: '',
lidgrp: {
rec: {
expdat: '',
ownref: ''
},
cbs: {
opn1: {
cur: '',
amt: ''
}
}
},
rejtype: '',
setmod: new Pub().data.Setmod,
mtabut: new Pub().data.Mtabut,
trnmod: new Pub().data.Trnmod,
liaall: new Pub().data.Liaall,
liaccv: new Pub().data.Liaccv,
docpan: new Pub().data.Docpan,
};
}
}
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames">
<!--el-collapse-item title="备查表" name="addbcb">
<m-addbcb :model="model" :codes="codes" />
</el-collapse-item-->
<el-collapse-item title="附言" name="coninfp">
<m-coninfp :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Coninfp from "~/components/business/coninfp/views";
export default {
components: {
"m-coninfp": Coninfp,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["coninfp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs">
<c-col>
<c-col :span="12">
<el-form-item label="不符点信息" prop="brdgrp.blk.docdis">
<c-fullbox>
<c-input
:disabled="model.advrefflg=='' && model.advdisflg==''"
type="textarea"
v-model="model.brdgrp.blk.docdis"
maxlength="3500"
:rows="8"
show-word-limit
placeholder="请输入不符点信息"
></c-input>
<template slot="footer">
<c-button :disabled="model.advrefflg=='' && model.advdisflg==''" size="small" type="primary"
>
...
</c-button>
</template>
</c-fullbox>
</el-form-item>
</c-col>
<c-col :span="12">
<el-form-item>
<c-checkbox class="checkbox-left" disabled v-model="model.brdgrp.blk.docdisflg"
>不符点修改</c-checkbox
>
</el-form-item>
</c-col>
</c-col>
<c-col :span="12">
<c-docpre
:model="model"
:argadr="{
path: 'brdgrp.blk.docpre',
grp: 'brtp',
code: 'docpre',
}"
></c-docpre>
</c-col>
</div>
</template>
<script>
import event from "../event";
import Docpre from "~/views/Public/Docpre";
export default {
components: {
"c-docpre": Docpre,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
};
},
methods: {},
created: function () {},
};
</script>
<style>
.messageLabel >>> .el-form-item__label {
text-align: left;
font-weight: bold;
font-size: 12px;
}
</style>
<template>
<div class="eibs">
<!-- ---------------Left--------------- -->
<c-col :span="12">
<c-col :span="24">
<c-col :span="13">
<el-form-item
label="单据金额"
prop="brdgrp.cbs.max.cur"
>
<c-select
v-model="model.brdgrp.cbs.max.cur"
style="width: 100%"
placeholder="请选择单据金额"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item
label=""
label-width="5px"
prop="brdgrp.cbs.max.amt"
>
<c-input
v-model="model.brdgrp.cbs.max.amt"
placeholder="请输入单据金额"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="13">
<el-form-item label="提取附加金额" prop="brdgrp.cbs.opn2.cur">
<c-select
v-model="model.brdgrp.cbs.opn2.cur"
style="width: 100%"
placeholder="请选择附加金额"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item
label=""
label-width="5px"
prop="brdgrp.cbs.max2.amt"
>
<c-input
v-model="model.brdgrp.cbs.max2.amt"
placeholder="请输入附加金额"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-col :span="13">
<el-form-item
label="待支付金额"
prop="brdgrp.rec.totcur"
>
<c-select
v-model="model.brdgrp.rec.totcur"
style="width: 100%"
placeholder="请选择币种"
disabled
>
<el-option
v-for="item in codes.cur"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</c-select>
</el-form-item>
</c-col>
<c-col :span="11">
<el-form-item
label=""
label-width="5px"
prop="brdgrp.rec.totamt"
>
<c-input
v-model="model.brdgrp.rec.totamt"
placeholder="请输入金额"
disabled
></c-input>
</el-form-item>
</c-col>
</c-col>
<c-col :span="24">
<c-ptap1
:model="model"
:argadr="{
title: '账户银行',
grp: 'brdgrp',
rol: 'acb',
}"
:disabled="true"
:disabled1="true"
>
</c-ptap1>
</c-col>
</c-col>
<!-- ---------------Right--------------- -->
<c-col :span="12">
<c-col :span="24">
<el-form-item label="已扣除费用" prop="brdgrp.blk.chaded">
<c-input
type="textarea"
v-model="model.brdgrp.blk.chaded"
maxlength="210"
:rows="4"
show-word-limit
placeholder="请输入已扣除费用"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="已添加费用" prop="brdgrp.blk.chaadd">
<c-input
type="textarea"
v-model="model.brdgrp.blk.chaadd"
maxlength="210"
:rows="4"
show-word-limit
placeholder="请输入已添加费用"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="不符点信息" prop="brdgrp.blk.docdis">
<c-input
type="textarea"
v-model="model.brdgrp.blk.docdis"
maxlength="3500"
:rows="8"
show-word-limit
placeholder="请输入不符点"
disabled
></c-input>
</el-form-item>
</c-col>
<c-col :span="24">
<el-form-item label="" prop="brdgrp.blk.docdisflg">
<c-checkbox class="checkbox-left" v-model="model.brdgrp.blk.docdisflg" disabled
>不符点修改</c-checkbox
>
</el-form-item>
</c-col>
</c-col>
</div>
</template>
<script>
import event from "../event";
import Ptap1 from "~/views/Public/Ptap1";
export default {
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
components: {
"c-ptap1": Ptap1,
},
data() {
return {};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eibs-tab">
<el-collapse v-model="activeNames">
<el-collapse-item title="基础信息" name="utlp">
<m-utlp :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item title="不符点/拒绝信息" name="brtdcrd">
<m-brtdcrd :model="model" :codes="codes" />
</el-collapse-item>
<el-collapse-item v-if="model.brdgrp.rec.advtyp=='750'" title="不符点通知" name="mt750p">
<m-mt750p :model="model" :codes="codes" />
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
import event from "../event";
import Utlp from "./Utlp"
import Brtdcrd from "./Brtdcrd"
import Mt750p from "./Mt750p"
export default {
components: {
"m-utlp": Utlp,
"m-brtdcrd": Brtdcrd,
"m-mt750p": Mt750p,
},
inject: ["root"],
props: ["model", "codes"],
mixins: [event],
data() {
return {
activeNames: ["utlp"],
};
},
methods: {},
created: function () {},
};
</script>
<style>
</style>
<template>
<div class="eContainer">
<c-page>
<div class="eContainer">
<el-form :model="model" :rules="rules" ref="modelForm" label-width="120px" label-position="right" size="small" :validate-on-rule-change="false">
<c-tabs v-model="tabVal" ref="elment" type="card" @tab-click="tabClick">
<el-tab-pane label="业务信息" name="ovwp">
<c-content>
<m-ovwp :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000001 -->
<el-tab-pane label="统一授信" name="limitbody">
<c-content>
<m-limitbody :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000027 -->
<!-- <el-tab-pane label="表外记账" name="engp">-->
<!-- <c-content>-->
<!-- &lt;!&ndash; 表外记账 &ndash;&gt;-->
<!-- <m-engp :model="model" :codes="codes" />-->
<!-- </c-content>-->
<!-- </el-tab-pane>-->
<!--PD000027 -->
<el-tab-pane label="费用/账务" name="setmod">
<c-content>
<m-setmod
:model="model"
:codes="codes"
@changeSetmodModel="changeSetmodModel"
/>
</c-content>
</el-tab-pane>
<!--PD000027 -->
<!-- <el-tab-pane label="会计分录" name="glepan">-->
<!-- <c-content>-->
<!-- <m-glentry :model="model" :codes="codes" />-->
<!-- </c-content>-->
<!-- </el-tab-pane>-->
<!--PD000000 -->
<el-tab-pane label="备查/附言" name="addbcb">
<c-content>
<m-addbcb :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000529 -->
<el-tab-pane label="报文/面函" name="docpan">
<c-content>
<m-docpan :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
<!--PD000546 -->
<el-tab-pane label="附件信息" name="doctre">
<c-content>
<m-doctre :model="model" :codes="codes" />
</c-content>
</el-tab-pane>
</c-tabs>
</el-form>
<c-grid-ety-prompt-dialog ref="etyDialog" :promptData="promptData">
</c-grid-ety-prompt-dialog>
<c-grid-ety-prompt-dialog ref="doxpDialog" :isPty="false" :promptData="promptData">
</c-grid-ety-prompt-dialog>
<c-function-btn :handleSubmit="handleSubmit" :handleCheck="handleCheck" :handleStash="handleStash">
</c-function-btn>
</div>
</c-page>
</div>
</template>
<script>
import event from "../event"
import CodeTable from "~/config/CodeTable"
import Brtdcr from "../model"
import formRules from '../model/check'
import Utlp from "./Utlp"
import Brtdcrd from "./Brtdcrd"
import Mt750p from "./Mt750p"
import Glepan from "~/views/Public/Glepan";
import Ovwp from "./Ovwp"
import Addbcb from "./Addbcb"
import Glentry from "~/components/business/glentry/views";
import Setpan from "~/views/Public/Setpan";
import Setmod from "~/components/business/setmod/views";
import Engp from "~/components/business/engp/views";
import Coninfp from "~/components/business/coninfp/views";
import Docpan from "~/components/business/docpan/views";
import Limitbody from "~/components/business/limitbody/views";
import Doctre from "~/components/business/doctre/views";
import operationFunc from "~/mixin/operationFunc";
export default {
name: "Brtdcr",
components: {
"m-mt750p": Mt750p,
"m-utlp": Utlp,
"m-brtdcrd": Brtdcrd,
"m-engp": Engp,
"m-setmod": Setmod,
"m-coninfp": Coninfp,
"m-docpan": Docpan,
"m-doctre": Doctre,
"m-limitbody": Limitbody,
"m-glentry": Glentry,
"m-ovwp": Ovwp,
"m-addbcb": Addbcb,
},
provide() {
return {
root: this
}
},
mixins: [operationFunc, event], // 里面包含了Default、Check等的公共处理
data() {
return {
tabVal: "ovwp",
trnName: "brtdcr",
model: new Brtdcr().data,
// pattern: Pattern,
rules: formRules,
codes: {
...CodeTable
},
activeNames:["engp"],
promptData: {
title: 'Select a Party',
columns: [
{
prop: 'ptyInr',
label: 'Party Number'
},
{
prop: 'inr',
label: 'Address Number'
},
{
prop: 'branch',
label: 'Branch Code'
},
{
prop: 'bchName',
label: 'Branch Name'
},
{
prop: 'adrName',
label: 'Address Name'
},
{
prop: 'adr1',
label: 'Address1'
},
{
prop: 'locCty',
label: 'City'
},
{
prop: 'locZip',
label: 'Zip'
},
{
prop: 'bicCode',
label: 'BIC'
}
],
data: []
}
}
},
methods: {},
created: async function () {},
}
</script>
<style>
</style>
...@@ -38,6 +38,8 @@ const Business = [ ...@@ -38,6 +38,8 @@ const Business = [
{ path: 'brtset', component: () => import('~/business/brtset/views'), name: 'brtset', meta: { title: '进口信用证单据进口付汇' } }, { path: 'brtset', component: () => import('~/business/brtset/views'), name: 'brtset', meta: { title: '进口信用证单据进口付汇' } },
{ path: 'litdav', component: () => import('~/business/litdav/views'), name: 'litdav', meta: { title: '进口信用证通知到单' } }, { path: 'litdav', component: () => import('~/business/litdav/views'), name: 'litdav', meta: { title: '进口信用证通知到单' } },
{ path: 'brtcan', component: () => import('~/business/brtcan/views'), name: 'brtcan', meta: { title: '进口信用证单据注销' } }, { path: 'brtcan', component: () => import('~/business/brtcan/views'), name: 'brtcan', meta: { title: '进口信用证单据注销' } },
{ path: 'brtdcr', component: () => import('~/business/brtdcr/views'), name: 'brtdcr', meta: { title: '进口信用证单据拒付/不符点处理' } },
// { path: 'brteus', component: () => import('~/business/brteus/views'), name: 'brteus', meta: { title: '进口信用证单据展期' } },
{ path: 'brtame', component: () => import('~/business/brtame/views'), name: 'brtame', meta: { title: '进口信用证单据提货担保修改' } }, { path: 'brtame', component: () => import('~/business/brtame/views'), name: 'brtame', meta: { title: '进口信用证单据提货担保修改' } },
] ]
......
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