<template> <div class="eibs-tab"> <c-col :span="24" style=""> <el-table :data="stmData.data"> <el-table-column label="介质" width="110px"> <template slot-scope="scope"> <el-form-item label-width="0" :prop="'docpan.doceot.' + scope.$index + '.cortyp'" > <c-select v-model="scope.row.cortyp" style="width: 100%" disabled placeholder="请选择" > <el-option v-for="item in codes.doceotCortyp" :key="item.value" :label="item.label" :value="item.value" > </el-option> </c-select> </el-form-item> </template> </el-table-column> <el-table-column label="报文格式" width="150px"> <template slot-scope="scope"> <c-select v-model="scope.row.docsnf" style="width: 100%" placeholder="请选择" @change="executeDefault('docpan.doccur.docsnf')" > <el-option v-for="item in codes.docsnf" :key="item.value" :label="item.label" :value="item.value" > </el-option> </c-select> </template> </el-table-column> <el-table-column label="语言" width="150px"> <template slot-scope="scope"> <c-select v-model="scope.row.docuil" style="width: 100%" placeholder="请选择" > <el-option v-for="item in codes.uiltxt1" :key="item.value" :label="item.label" :value="item.value" > </el-option> </c-select> </template> </el-table-column> <el-table-column label="传送方式" width="110px"> <template slot-scope="scope"> <el-form-item label-width="0" :prop="'docpan.doceot.' + scope.$index + '.apf'" > <c-select v-model="scope.row.apf" disabled style="width: 100%" placeholder="请选择" > <el-option v-for="item in codes.apftxt" :key="item.value" :label="item.label" :value="item.value" > </el-option> </c-select> </el-form-item> </template> </el-table-column> <el-table-column label="发送份数" width="70"> <template slot-scope="scope"> <c-input v-model="scope.row.apfcpy1" :readonly="true" style="width: 100%" placeholder="请选择" > </c-input> </template> </el-table-column> <el-table-column label="抄送份数" width="70"> <template slot-scope="scope"> <c-input v-model="scope.row.apfcpy2" style="width: 100%" placeholder="请选择" > </c-input> </template> </el-table-column> <el-table-column label="" width="110px"> <template slot-scope="scope"> <el-form-item label-width="0" :prop="'docpan.doceot.' + scope.$index + '.staflg'" > <c-select v-model="scope.row.staflg" style="width: 100%" placeholder="请选择" > <el-option v-for="item in codes.swttlx" :key="item.value" :label="item.label" :value="item.value" > </el-option> </c-select> </el-form-item> </template> </el-table-column> <el-table-column label="操作" width="200px" fixed="right"> <template slot-scope="scope"> <c-button type="primary" size="small" :disabled=" (scope.row.pandsc == 'MT799' && model.didgrp && model.didgrp.rec && model.didgrp.rec.elcflg == 'Y') || suppress " @click=" handleDisplay(scope.row.index, scope.row)" style="margin-right: 10px" >预览</c-button > <!-- 2023.4.13临时注释,为了当次演示使用,后期详情接口做完了在放开注释联调 --> <!-- <c-button size="small" type="primary" style="margin-left: 0" @click="handleDetail(scope.row.index, scope.row)" >详情</c-button > --> </template> </el-table-column> </el-table> </c-col> <c-col :span="12" style="margin-top: 20px"> <c-col :span="24"> <el-form-item label="国内证落款" prop="docpan.advnam" v-if=" root.trnName == 'DITCAN' || root.trnName == 'BDTSET' || root.trnName == 'TRTAME' || root.trnName == 'TRTSET' || root.trnName == 'DETOPN' || root.trnName == 'DETAME' || root.trnName == 'BFTDRV' || root.trnName == 'BFTSND' || root.trnName == 'BPTOPN' || root.trnName == 'BPTAME' || root.trnName == 'BPTSET' || root.trnName == 'BFTACC' || root.trnName == 'DFTAME' || root.trnName == 'DFTSET' " > <c-input v-model="model.docpan.advnam" maxlength="50" placeholder="请输入" ></c-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label="修改申请人名称" prop="docpan.amdapl" v-if="root.trnName == 'detame' || root.trnName == 'bftsnd'" > <c-input v-model="model.docpan.amdapl" maxlength="100" placeholder="请输入" ></c-input> </el-form-item> </c-col> <c-col :span="24"> <el-form-item label="国内证通知书" prop="docpan.advdoc" v-if="root.trnName == 'detopn' || root.trnName == 'detame'" > <c-select v-model="model.docpan.advdoc" placeholder="请选择" style="width: 100%" :code="codes.trndoc_advdoc" > </c-select> </el-form-item> </c-col> </c-col> <template> <el-dialog :title="title" :visible.sync="centerDialogVisible" width="60%" center > <el-form label-width="100px" :model="dialog" :disabled="suppress"> <c-row> <c-col :span="12"> <c-col> <el-form-item label="介质"> <c-select disabled v-model="dialog.cortyp" :code="codes.doceotCortyp" > </c-select> </el-form-item> </c-col> <c-col> <el-form-item label="表单集合"> <!-- <el-input disabled v-model="dialog.cortyp" /> --> <c-select disabled v-model="dialog.cortyp" :code="codes.doceotCortyp" > </c-select> </el-form-item> </c-col> <c-col v-if="title != 'elcs.101.001.01'"> <el-form-item> <el-input disabled style="width: 150px" value="Original" /> <el-input v-model="dialog.apfcpy1" style="width: 100px; margin-left: 20px" /> </el-form-item> <el-form-item> <el-input disabled style="width: 150px" value="Customer Copy" /> <el-input v-model="dialog.apfcpy2" style="width: 100px; margin-left: 20px" /> </el-form-item> <el-form-item> <el-input disabled style="width: 150px" value="File Copy" /> <el-input v-model="dialog.apfcpy3" style="width: 100px; margin-left: 20px" /> </el-form-item> <el-form-item> <el-input disabled style="width: 150px" value="Internal Copy" /> <el-input v-model="dialog.apfcpy4" style="width: 100px; margin-left: 20px" /> </el-form-item> </c-col> </c-col> <c-col :span="12"> <el-form-item label="发送至" label-width="150px"> <!-- <el-input disabled v-model="dialog.roladr" /> --> <c-select disabled v-model="dialog.roladr" :code="codes.payrol"> </c-select> </el-form-item> <el-form-item label-width="150px" v-if="title == 'elcs.101.001.01'" > <c-fullbox> <c-input v-model="dialog.rcv.pts.extkey" @keyup.enter.native=" showGridPromptDialog('docpan.doccur.rcv.pts.extkey') " /> <template slot="footer"> <c-button size="small" type="primary" icon="el-icon-search" ></c-button> <c-button size="small" type="primary"> 详情 </c-button> </template> </c-fullbox> </el-form-item> <el-form-item v-else label="BIC编码" label-width="150px"> <el-input v-model="dialog.rcv.pts.extkey" /> </el-form-item> <el-form-item v-if=" title == 'elcs.101.001.01' || (title != 'elcs.101.001.01' && dialog.rcv.pts.bankno != '') " label="联行行号" label-width="150px" > <el-input v-model="dialog.rcv.pts.bankno" /> </el-form-item> <el-form-item label-width="30px"> <el-input :value=" title == 'elcs.101.001.01' ? dialog.rcv.namelc : dialog.rcv.pts.jigomc " :disabled="title != 'elcs.101.001.01'" type="textarea" :rows="2" /> <br /> <el-input :value=" title == 'elcs.101.001.01' ? dialog.rcv.adrelc : dialog.rcv.pts.dizzhii " :disabled="title == 'MT799'" type="textarea" :rows="2" /> </el-form-item> <el-form-item label="参考号" label-width="100px"> <el-input disabled v-model="dialog.adrref" /> </el-form-item> <el-form-item label="介质" label-width="100px"> <!-- <el-input disabled style="width: 40%" v-model="dialog.cortyp" /> --> <c-select disabled style="width: 40%" v-model="dialog.cortyp" :code="codes.doceotCortyp" > </c-select> <!-- <el-input disabled v-model="dialog.docuil" style="width: 40%; margin-left: 20px" /> --> <c-select disabled style="width: 40%; margin-left: 20px" v-model="dialog.docuil" :code="codes.payuil" > </c-select> </el-form-item> </c-col> <c-col> </c-col> <c-col :span="12" v-if="title != 'MT799'"> <el-form-item label="地址修改" label-width="120px"> <el-input type="textarea" v-model="dialog.adrblk" :rows="4" /> </el-form-item> </c-col> <c-col :span="12" v-else> <el-form-item label="BIC编码"> <el-input disabled v-model="dialog.adrbic" /> </el-form-item> <el-form-item label="Authenticator" ><el-input disabled v-model="dialog.adrbicaut" /></el-form-item> <el-form-item label="优先级" ><el-input disabled v-model="dialog.msgpri" /></el-form-item> </c-col> <c-col :span="12"> <el-form-item label-width="30px"> <el-table :data="dialog.rcv.ptyinftxt.rows" size="mini" stripe :border="true" empty-text=" " max-height="430px" > <el-table-column label="报文类型" sortable> </el-table-column> <el-table-column label="地址" sortable> </el-table-column> <el-table-column label="Authentication" sortable> </el-table-column> </el-table> </el-form-item> </c-col> <c-col v-if="title != 'MT799'" ><el-form-item label="面函日期"> <el-date-picker type="date" v-model="dialog.docdat"> </el-date-picker ></el-form-item> </c-col> <c-col v-if="this.suppress != true" ><el-form-item label="Contact" ><el-input v-model="dialog.ptcnam" /></el-form-item> </c-col> <c-col :span="22" v-if="this.suppress != true" ><el-form-item :label=" title == 'MT799' ? 'Sender to Rec. information' : 'Remark' " > <div v-if="title == 'MT799'"> <el-input type="textarea" :rows="10" disabled v-model="dialog.addtxt" /> </div> <div v-else> <el-input type="textarea" :rows="10" v-model="dialog.addtxt" /> </div> </el-form-item> </c-col> <c-col :span="2" v-if="this.suppress != true"> <c-button size="mini" icon="el-icon-more"> </c-button> </c-col> </c-row> </el-form> <template #footer> <span class="dialog-footer"> <c-button type="primary" @click="saveDialog">确 定</c-button> <c-button type="primary" @click="activateDialog" v-if="dialog.delflg == 'D'" >应用</c-button > <c-button type="primary" @click="suppressDialog" v-else-if="dialog.lev == '1' || dialog.mliflg != ''" >禁用</c-button > <c-button type="primary" @click="activateDialog" v-else >删除</c-button > <c-button @click="centerDialogVisible = false">取 消</c-button> </span> </template> </el-dialog> </template> </div> </template> <script> import commonProcess from '~/mixin/commonProcess'; import Api from '~/service/Api'; export default { inject: ['root'], props: ['model', 'codes'], mixins: [commonProcess], data() { return { index: 0, title: '', dialog: { rcv: { pts: {}, ptyinftxt: {}, }, }, centerDialogVisible: false, stmData: { columns: [], data: [], }, gitopn: { gidgrp: {}, gitp: {}, trnmodVo: {}, addbcb: {}, cnybop: {}, codcny: {}, doceot: {}, }, suppress: false, }; }, watch: { 'model.docpan.doceot': { handler(val, oldVal) { this.stmData.data = val; }, immediate: true, }, }, methods: { saveDialog() { this.centerDialogVisible = false; this.model.docpan.doceot.splice(this.index, 1, this.dialog); this.executeRule('docpan.doccur.butaddok').then((res) => { if (res.respCode == SUCCESS) { //TODO } else { this.$notify.error({ title: '错误', message: '服务请求失败!' }); } }); }, activateDialog() { this.executeRule(`docpan.doceot(${this.index + 1}).butdel`).then( (res) => { if (res.respCode == SUCCESS) { //TODO this.updateModel(res.data); this.dialog = this.model.docpan.doceot[this.index]; this.suppress = false; } else { this.$notify.error({ title: '错误', message: '服务请求失败!' }); } } ); }, suppressDialog() { this.executeRule(`docpan.doceot(${this.index + 1}).butdel`).then( (res) => { if (res.respCode == SUCCESS) { //TODO this.updateModel(res.data); this.dialog = this.model.docpan.doceot[this.index]; this.suppress = true; } else { this.$notify.error({ title: '错误', message: '服务请求失败!' }); } } ); }, async handleDisplay(index, row) { //后续要根据快照模式切换请求方式 let cortyp = row.cortyp; let docnam = row.docnam; docnam = docnam .substr(docnam.indexOf('\\') + 1) .toLowerCase() .replaceAll('\\', '_'); let rtnmsg; // if (cortyp == 'SWT' || cortyp == 'FMT' || cortyp == 'CMT') { // // this.model.setmod.msgmod.doccod = row.id // rtnmsg = await Api.post(`${this.requestPrefix}/msgmod_butshw`, this.wrapper()) // } else { // // this.model.docpan.doccod = row.id // // this.model.docpan.cortyp = cortyp // } let params = { docVo: row, }; this.gitopn.gidgrp = this.model.gidgrp; this.gitopn.gitp = this.model.gitp; this.gitopn.trnmodVo = this.model.trnmod; this.gitopn.addbcb = this.model.addbcb; this.gitopn.cnybop = this.model.cnybop; this.gitopn.doceot = this.model.docpan.doceot; console.log(this.gitopn); rtnmsg = await Api.post( `${this.requestPrefix}/executeDocpan`, this.gitopn ); if (rtnmsg.respCode == SUCCESS) { if (cortyp == 'SWT' || cortyp == 'FMT' || cortyp == 'CMT') { // let viewurl = rtnmsg.data.setmod_msgmod_docpth; let viewurl = '/#/docpan/swift'; // this.viewurl = viewurl // window.sessionStorage.docTXT = rtnmsg.data.lidgrp_blk_feetxt + rtnmsg.data.lidgrp_blk_insbnk ; let doctxt = rtnmsg.data.trnmod_trndoc_doceot[index]['doctxt']; window.sessionStorage.docTXT = doctxt.rows .filter((d) => d != '') .join('\n'); this.title = '报文'; window.open( viewurl, 'newwindow', 'height=1200,width=800,top=100,left=100,toolbar=no,resizable=no,menubar=no,location=no, status=no' ); } else if (cortyp == 'ELC') { Modal.info({ title: '电证报文', content: ( <div style={{ height: 400, overflow: 'auto' }}> <ELCMessage mty={row.id} message={rtnmsg.data['\\trnmod\\trndoc\\docinf']} /> </div> ), width: 1000, }); } else { this.title = '面函'; let viewurl = '/#/docpan/show'; let base64Str = rtnmsg.data.executeDocpan; let bstr = window.atob(base64Str); // 解码 base-64 编码的字符串,base-64 编码使用方法是 btoa() let length = bstr.length; let u8arr = new Uint8Array(length); // 创建初始化为0的,包含length个元素的无符号整型数组 while (length--) { u8arr[length] = bstr.charCodeAt(length); // 返回在指定的位置的字符的 Unicode 编码 } let blob = new Blob([u8arr]); let param = { blob: blob, docnam: row.docnam, }; window['params'] = param; window.open( viewurl, 'newwindow', 'height=1200,width=800,top=100,left=100,toolbar=no,resizable=no,menubar=no,location=no, status=no' ); } this.dialogOpen = true; } else { this.$notify.error({ title: '错误', message: '服务请求失败!' }); } }, async handleDetail(index, row) { const params = { index: row.idx, }; let rtnmsg = await Api.post( `${this.requestPrefix}/executeDocpanDetail`, this.wrapper(params) ); if (rtnmsg.respCode == SUCCESS) { this.title = row.pandsc; (this.centerDialogVisible = true), this.updateModel(rtnmsg.data); this.dialog = this.model.docpan.doceot[row.idx]; this.index = row.idx; } }, }, created: function () {}, }; </script> <style></style>