<template>
  <div class="eibs-tab">
  
    <c-col :span="12" class="col-left">
      <c-col :span="24">
        <el-form-item label="费用代码" prop="cod">
            <c-input
                v-model="model.cod"
                placeholder="请输入费用代码"
                style="width: 100%"
            >
            </c-input>
        </el-form-item>
    </c-col>
    </c-col>

      
      <c-col :span="12" class="col-right">
        <c-col :span="24">
          <el-form-item label="名称" prop="nam">
            <c-input
                v-model="model.nam"
                placeholder="请输入名称"
                style="width: 100%"
            >
            </c-input>
        </el-form-item>
        </c-col>
      </c-col>

    <c-col :span="24">
      <c-col :span="12" style="text-align: left">
        <el-button type="primary" size="small" @click="feeAdd">新增</el-button>
      </c-col>
      <c-col :span="12" style="text-align: right">
        <el-button size="small" @click="handleReset">重置</el-button>
        <el-button
          type="primary"
          icon="el-icon-search"
          size="small"
          @click="onSearch()"
          >查询
        </el-button>
      </c-col>
    </c-col>
    <c-col :span="24">
      <c-paging-table 
        :data="feeData"
        :columns="feeColumns"
        :pageNumber="model.pageNum"
        :pageSize="model.pageSize"
        :total="model.total"
        v-on:queryFunc="queryFunc"
        :border="true"
      >
        <c-table-column fixed="right" prop="op" label="操作" width="240px">
          <template slot-scope="{ scope }">
            <c-button
              style="margin-left: 0"
              size="small"
              @click="feeInfo(scope.$index, scope.row)"
              >详情</c-button
            >
            <c-button
              style="margin-left: 5px"
              size="small"
              type="primary"
              @click="feeEdit(scope.$index, scope.row)"
              >修改</c-button
            >
            <c-button
              size="small"
              style="margin-left: 5px"
              @click="feeDelete(scope.$index, scope.row)"
              >删除</c-button
            >
            <el-popover placement="top-start" width="50" trigger="click">
              <ul class="table-button-item-list">
                <li>
                  <c-button size="small" style="margin-left: 0">指派</c-button>
                </li>
                <li>
                  <c-button size="small" style="margin-left: 0">删除</c-button>
                </li>
              </ul>
              <a
                slot="reference"
                href="javascript:void(0)"
                style="margin-left: 5px"
              >
                <i class="el-icon-more"></i>
              </a>
            </el-popover>
          </template>
        </c-table-column>
      </c-paging-table>
    </c-col>
  </div>
</template>

<script>
import codes from "~/config/CodeTable";

import { queryByPage } from "~/service/test/fee.js";

export default {
  name: "",
  props: ["model"],
  inject: ["root"],
  data() {
    return {
      feeData: [],
      feeColumns: [
				{ label: '费用代码', prop: 'cod', width: '120' },
        { label: '名称', prop: 'descrp', width: '120' },
				{ label: '计算费用相关的金额类型', prop: 'reltir', width: '190' },
				{ label: 'SWIFT报文费用代码', prop: 'sftcod', width: '170' },
        { label: 'DTA报文中的费用代码', prop: 'dtacod', width: '170' },
				{ label: '统计标志', prop: 'staflg', width: '120' },
				{ label: '默认付费角色', prop: 'rol', width: '170' },
        { label: '费用账号', prop: 'acc', width: '120' }
			],
    };
  },
  computed: {
  },
  activated() {
    const { update } = this.$route.params
    if (update) {
      this.onInffeeSearch()
    }
  },
  methods: {
    handleReset() {
      this.root.$refs.modelForm.resetFields();
    },
    onSearch(){
        this.model.pageNum = 1;
        this.model.pageSize = 5;
        this.onInffeeSearch();
    },
    onInffeeSearch() {
      var objectArr = codes['fepfeecod'];
      var map = new Map();
      for(let i =0;i<objectArr.length;i++){
        map.set(objectArr[i].value,objectArr[i].label);
      }
      var feeList = [];
      if(!this.model.cod&&this.model.nam){
        for(var fee of map){
        if(fee[1].includes(this.model.nam)){
            feeList.push(fee[0])
          }
        }
      }
      if(this.model.cod&&this.model.nam){
        for(var fee of map){
        if(fee[0].includes(this.model.cod)&&fee[1].includes(this.model.nam)){
            feeList.push(fee[0])
          }
        }
      }
      this.model.feelist = feeList;
      this.model.etgextkey = 'CEBGRP';
			queryByPage(this.model).then(res => {
        /**
         * pageNumber: 0
         * pageSize:	0
         * total: 69
         * totalPage: 0
         */
      const list = res.list;
      this.feeData = list;
      for(let i =0;i<list.length;i++){
        this.feeData[i].descrp = map.get(this.feeData[i].cod)
      }
        this.model.pageNum = res.pageNumber
        this.model.pageSize = res.pageSize
        this.model.total = res.total
        this.model.feelist=[];
      }) 
		},
    queryFunc(pageNumber, pageSize) {
      this.model.pageNum = pageNumber
      this.model.pageSize = pageSize
      this.onInffeeSearch()
    },
    feetypeChange(val) {
      this.model.feetyp = val;
    },
    getCodesByKey(key) {
      return codes[key] ?? [];
    },
    feeAdd() {
			this.$router.push(`/statics/dbafee`)
		},
    feeInfo(index, row) {
			this.$router.push(`/statics/dbifee/${row.inr}`)
		},
    feeEdit(index, row) {
			this.$router.push(`/statics/dbefee/${row.inr}`)
		},
    feeDelete(index, row) {
			this.$router.push(`/statics/dbdfee/${row.inr}`)
		},
  },
};
</script>

<style scoped>
.table-button-item-list {
  padding: 0;
  margin: 0;
}
.table-button-item-list li {
  list-style: none;
  padding: 5px 0;
  text-align: center;
  color: #606266;
  cursor: pointer;
}</style>