<template> <div class="eibs-tab"> <el-collapse v-model="activeNames" @change="handleChange"> <el-collapse-item title="索赔付款" name="gitsetp1"> <m-gitsetp1 ref="gitsetp1" :model="model" :codes="codes" /> </el-collapse-item> <el-collapse-item title="索赔付款(1)" name="gitsetp"> <m-gitsetp ref="gitsetp" :model="model" :codes="codes" /> </el-collapse-item> <el-collapse-item title="CIPS" name="cips" v-if="model.trnmod.cmtflg == 'P'&&model.gidgrp.rec.cmtflg"> <m-cips :model="model" :codes="codes" /> </el-collapse-item> <el-collapse-item title="CIPS2" name="cips2" v-if="model.trnmod.cmtflg == 'P'&&model.gidgrp.rec.cmtflg"> <m-cips2 :model="model" :codes="codes" /> </el-collapse-item> <!-- <el-collapse-item title="通知付款(MT756)" name="det756"> <m-det756 :model="model" :codes="codes" /> </el-collapse-item> <el-collapse-item title="头寸调拨(MT202)" name="det202cv" v-if=" model.trnmod.cmtflg == 'C' || model.gcdgrp.cbs.max.cur != 'CNY' "> <m-det202cv :model="model" :codes="codes" /> </el-collapse-item> --> <el-collapse-item v-for="(pac, idx) in pacs" :key="idx" :title="pac.title" :name="pac.name"> <m-det756 v-if="pac.type === '756'" :model="model" :codes="codes" :idx="pac.idx"/> <m-det202cv v-else-if="pac.type === '202'" :model="model" :codes="codes" :idx="pac.idx" /> </el-collapse-item> </el-collapse> </div> </template> <script> import Api from "~/service/Api"; import commonProcess from "~/mixin/commonProcess"; import Event from "~/model/Gitset/Event"; import Utils from "~/utils"; import Det756 from "./Det756"; import Det202cv from "./Det202cv"; import Cips from "./Cips"; import Cips2 from "./Cips2"; import Gitsetp1 from "./Gitsetp1"; import Gitsetp from "./Gitsetp"; const tabNameToRulePathMapping = { "cips": "trnmod.cipmod.cips", } export default { components: { "m-gitsetp1": Gitsetp1, "m-gitsetp": Gitsetp, "m-det756": Det756, "m-det202cv": Det202cv, "m-cips": Cips, "m-cips2": Cips2, }, inject: ["root"], props: ["model", "codes"], mixins: [commonProcess], data() { return { activeNames: ["gitsetp1"], }; }, computed: { pacs() { const pa = [] const setgll = this.model.setmod.setglg.setgll for (let i = 0; i < setgll.length; i++) { const setg = setgll[i]; // 765和202页面出现条件(费用/账务页面:结算,处理方式是PAC时,756和202页面才能显示) if (setg.dsp === 'PAC') { const temp = [] temp.push(setg.rol ) temp.push(setg.acccur ) temp.push(setg.fmtaccamt ) pa.push({ idx: i, title: '通知付款(MT756 ' + temp.join(' ') + ')', name: 'det756_' + temp.join('_'), type: '756' }) pa.push({ idx: i, title: '头寸调拨(MT202 ' + temp.join(' ') + ')', name: 'det202cv_' + temp.join('_'), type: '202' }) } } if(pa.length !== 0){ tabNameToRulePathMapping[pa[0].name] = "setmod.setglg.setgll(2).sespay.det756"; tabNameToRulePathMapping[pa[1].name] = "setmod.setglg.setgll(2).sespay.det202cv"; } return pa; } }, methods: { ...Event, handleChange(names){ // console.log(names);//激活的(展开的)面板的name数组集合 if (this.isInDisplay) { return } const arr = [] for (let i = 0; i < names.length; i++) { const n = names[i]; const path = tabNameToRulePathMapping[n]//取出激活/展开面板name对应的rulePath if (path) { arr.push(path) } } let rulePath = arr.join(",");//把arr数组加入逗号分割,变成字符串 if (!!rulePath) {//rulePath不为空串 this.executeRule(rulePath).then((res) => { if (res.respCode == SUCCESS) { this.updateModel(res.data); } }); } }, myTabClick(tab) { this.tabClick(tab); const name = tab.name; let rulePath; if(name === tabNameToRulePathMapping[1]){ rulePath = "setmod.setglg.setgll(2).sespay.det756" } if (name === tabNameToRulePathMapping[2]) { rulePath = "setmod.setglg.setgll(2).sespay.det202cv" } if (!!rulePath) { this.executeRule(rulePath).then((res) => { if (res.respCode == SUCCESS) { this.updateModel(res.data); } }); } }, }, created: function () {}, mounted() { console.log(pacs); } }; </script> <style> </style>