BusNavbar.vue 3.96 KB
Newer Older
1
<template>
潘际乾 committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  <el-dialog
    :visible.sync="initdialog"
    :title="'交易列表'"
    append-to-body
    :before-close="beforeClose"
    @opened="opened"
  >
    <div class="m-list-btns">
      <div class="busnavbar">
        <div class="busnavbar-items">
          <c-button
            style="margin-left: 7px"
            size="medium"
            type="primary"
            class="medium_bcs"
            v-for="(item, index) in navcode"
            v-bind:key="index"
            @click.native="onNarBtnClick(item.code, item.index)"
            :title="item.title"
            :disabled="item.isDis === 'N'"
            >{{ item.label }}</c-button
          >
        </div>
      </div>
26
    </div>
潘际乾 committed
27
  </el-dialog>
28 29 30 31 32
</template>
<script>
import Api from "~/service/Api";
import commonProcess from "~/mixin/commonProcess";

33 34
import _ from "~/utils/Lodash"

35
export default {
liuxin committed
36
  props: {
潘际乾 committed
37 38
    ownref: {
      required: true,
39
    },
潘际乾 committed
40 41 42 43 44 45 46 47 48 49 50 51 52
    trnCode: {
      required: true,
    },
    model: {
      required: true,
    },
    ownrefPath: {
      required: false,
      default: "didgrp",
    },
    tabIndex: {
      required: false,
      default: 1,
53
    },
liuxin committed
54
  },
55 56 57 58
  components: {},
  mixins: [commonProcess], // 里面包含了Default、Check等的公共处理
  data() {
    return {
潘际乾 committed
59
      initdialog: false,
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
      navcode: [
        // {code:"",label:"",isDis:"",title:""},
      ],
    };
  },
  methods: {
    //各入口按钮请求
    async onNarBtnClick(code, i) {
      this.model.cfgfil[`subtrn${i}`] = code;
      let rtnmsg = await this.executeRule(`cfgfil.hotsub${i}`);
      if (rtnmsg.respCode == SUCCESS) {
        this.navcode = [];
        this.$emit("onChoose", code.toLowerCase());
      } else {
        this.$notify.error({ title: "错误", message: "服务请求失败!" });
      }
    },
    getIndex(module) {
      for (let i = 1; i <= 12; i++) {
        var temp = this.model.cfgfil[`subtxt${i}`];
        if (module == temp) {
          return i;
        }
      }
84
      return 1;
85
    },
潘际乾 committed
86 87 88 89 90 91 92
    opened() {
      this.$emit("childmethods");
    },
    beforeClose() {
      this.navcode = [];
      this.initdialog = false;
    },
93 94
  },
  mounted() {
潘际乾 committed
95
    this.trnName = this.trnCode;
96 97
    this.$nextTick(function () {
      this.$on("childmethods", async function () {
98 99
        let res = await this.executeRule(`cfgfil.hotreg${this.tabIndex}`);
        if (res.respCode == SUCCESS) {
潘际乾 committed
100
          this.updateModel(res.data);
101
        } else {
潘际乾 committed
102 103 104 105
          this.$notify.error({
            title: "错误",
            message: "服务请求失败!",
          });
106 107
        }

108 109
        this.navcode = [];
        //请求按钮数据
110 111 112 113 114 115 116 117 118
        let rulePath
        if (this.ownrefPath.endsWith(".ownref")) {
          _.set(this.model, this.ownrefPath, this.ownref);
          rulePath = this.ownrefPath
        } else {
          this.model[this.ownrefPath].rec.ownref = this.ownref;
          rulePath = this.ownrefPath + ".rec.ownref"
        }
        let rtnmsg = await this.executeRule(rulePath); //didgrp_rec_ownref
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
        if (rtnmsg.respCode == SUCCESS) {
          //重置数组
          this.navcode = [];
          this.updateModel(rtnmsg.data);
          //this.model.cfgfil.btnstm = rtnmsg.data.cfgfil_btnstm.rows
          //给inr赋值,后面弹窗里面的按钮请求会用到
          //this.model.didgrp.rec.inr = rtnmsg.data.didgrp_rec_inr
          const length = this.model.cfgfil.btnstm.rows.length;
          let btnStr = this.model.cfgfil.btnstm.rows;
          for (let i = 0; i < length; i++) {
            let arr = btnStr[i].split("\t");
            var index = this.getIndex(arr[1]);
            let newList = {
              code: arr[0],
              label: arr[1],
134
              isDis: arr[2],
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
              title: arr[3],
              index: index,
            };
            this.navcode.push(newList);
          }
        } else {
          this.navcode = [];
          this.$notify.error({ title: "错误", message: "服务请求失败!" });
        }
      });
    });
  },
};
</script>
<style>
</style>