legalBillList.vue 10.3 KB
j<template>
  <a-card :bordered="false">
    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :md="6" :sm="12">
            <a-form-item label="客户名称">
              <a-input placeholder="输入客户名称" v-model="queryParam.idCardName"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="6" :sm="12">
            <a-form-item label="企业名称">
              <a-input placeholder="输入企业名称" v-model="queryParam.enterpriseName"></a-input>
            </a-form-item>
          </a-col>
          <a-col :md="6" :sm="12">
            <a-form-item label="账单编号">
              <a-input placeholder="输入账单编号" v-model="queryParam.orderBillNo"></a-input>
            </a-form-item>
          </a-col>

          <template v-if="toggleSearchStatus">
            <a-col :md="6" :sm="8">
              <a-form-item label="资金方">
                <a-select v-model="queryParam.fundNo" placeholder="请选择">
                  <a-select-option v-for="(item, index) in dbFund" :key="index" :value="item.name">{{item.title}}</a-select-option>
                </a-select>
              </a-form-item>
            </a-col>
            <a-col :md="6" :sm="8">
              <a-form-item label="账单类型">
                <a-select v-model="queryParam.billType" placeholder="请选择">
                  <a-select-option v-for="(item, index) in dbBillType" :key="index" :value="item.name">{{item.title}}</a-select-option>
                </a-select>
              </a-form-item>
            </a-col>
            <!-- <a-col :md="6" :sm="8">
              <a-form-item label="是否回购">
                <a-select v-model="queryParam.buybackStatus" placeholder="请选择">
                  <a-select-option v-for="(item, index) in dbFund" :key="index" :value="item.name">{{item.title}}</a-select-option>
                </a-select>
              </a-form-item>
            </a-col> -->
            <a-col :md="6" :sm="8">
              <a-form-item label="应还款日期" :labelCol="{span:8}" :wrapperCol="{span:16}">
                <a-date-picker style="width: 100%" :disabledDate="disabledStartDate" :format="dateFormat" v-model="remitStartDate" @change="onChangeApplyDateStarts" />
              </a-form-item>
            </a-col>
            <a-col :md="6" :sm="8">
              <a-form-item label="至" :labelCol="{span:8}" :wrapperCol="{span:16}">
                <a-date-picker style="width: 100%" :disabledDate="disabledEndDate" :format="dateFormat" v-model="remitEndDate" @change="onChangeApplyDateEnds" />
              </a-form-item>
            </a-col>
            <a-col :md="6" :sm="8">
              <a-form-item label="客户手机号">
                <a-input placeholder="输入客户手机号" v-model="queryParam.mobilePhone"></a-input>
              </a-form-item>
            </a-col>
            <a-col :md="6" :sm="12">
              <a-form-item label="产品名称">
                <a-input placeholder="输入产品名称" v-model="queryParam.productName"></a-input>
              </a-form-item>
            </a-col>
          </template>
          <a-col :md="6" :sm="8">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchResetTimes" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'" />
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- 操作按钮区域 -->
    <div class="table-operator" style="border-top: 5px">
      <a-button @click="thatDiogin" type="primary">导出</a-button>
    </div>
    <!-- table区域-begin -->
    <div>
      <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" :scroll="{x:2400}" @change="handleTableChange">
        <!-- 字符串超长截取省略号显示-->
        <span slot="esContent" slot-scope="text">
          <j-ellipsis :value="text" :length="10" />
        </span>

        <span slot="action" slot-scope="text, record">
          <a v-has="'legalBillList:look'" href="javascript:;" @click="handleDetailBai(record,'还款详情')">查看</a>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <common-bill-list-modal ref="modalForm" @ok="modalFormOk"></common-bill-list-modal>
  </a-card>
</template>
<script>
import CommonBillListModal from './modules/CommonBillListModal'
import { JeecgListMixin } from '@/mixins/CoreListMixin'
import { legalQueryLoanApplyDetail, chargeBillDetail, billDetail } from '@/api/makeLoan'

export default {
  name: 'legalBillList',
  mixins: [JeecgListMixin],
  components: {
    CommonBillListModal,
  },
  data () {
    return {
      queryParam: {},
      dbShowPayStatus: JSON.parse(sessionStorage.getItem('DB_SHOW_PAY_STATUS')), // 还款状态
      dbFund: JSON.parse(sessionStorage.getItem('DBFUND')), // 资金方
      dbBillType: JSON.parse(sessionStorage.getItem('DB_BILL_TYPE')), // 账单类型
      visible: false,
      dateFormat: 'YYYY-MM-DD 00:00:00',
      value: [],
      billNo: '',
      columns: [
        {
          title: '序号',
          dataIndex: '',
          key: 'rowIndex',
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          }
        },
        {
          title: '账单编号',
          align: 'center',
          dataIndex: 'orderBillNo'
        },
        {
          title: '子账单编号',
          align: 'center',
          dataIndex: 'billNo'
        },
        {
          title: '期数',
          align: 'center',
          dataIndex: 'stagesIndex'
        },
        {
          title: '资金方',
          align: 'center',
          dataIndex: 'fundNo',
          customRender: (t, r, index) => {
            for (var i = 0; i < this.dbFund.length; i++) {
              if (t === this.dbFund[i].name) {
                return this.dbFund[i].title
              }
            }
          }
        },
        {
          title: '客户名称',
          align: 'center',
          dataIndex: 'idCardName'
        },
        {
          title: '客户身份证号',
          align: 'center',
          dataIndex: 'idCardNoView'
        },
        {
          title: '客户手机号',
          align: 'center',
          dataIndex: 'mobilePhoneView'
        },
        {
          title: '企业名称',
          align: 'center',
          dataIndex: 'enterpriseName'
        },
        {
          title: '统一社会信用代码',
          align: 'center',
          dataIndex: 'orgCode'
        },
        {
          title: '产品名称',
          align: 'center',
          dataIndex: 'productName'
        },
        {
          title: '账单类型',
          align: 'center',
          dataIndex: 'billType',
          customRender: (t, r, index) => {
            for (var i = 0; i < this.dbBillType.length; i++) {
              if (t === this.dbBillType[i].name) {
                return this.dbBillType[i].title
              }
            }
          }
        },
        {
          title: '应还总金额(元)',
          align: 'center',
          dataIndex: 'dueSumMoney'
        },
        {
          title: '应还日期',
          align: 'center',
          dataIndex: 'planTime'
        },
        {
          title: '实还总金额(元)',
          align: 'center',
          dataIndex: 'actualSumMoney'
        },
        {
          title: '实还日期',
          align: 'center',
          dataIndex: 'actualTime'
        },
        // {
        //   title: '是否回购',
        //   align: 'center',
        //   dataIndex: 'buybackStatus'
        // },
        {
          title: '还款状态',
          align: 'center',
          dataIndex: 'showStatus',
          customRender: (t, r, index) => {
            for (var i = 0; i < this.dbShowPayStatus.length; i++) {
              if (t === this.dbShowPayStatus[i].name) {
                return this.dbShowPayStatus[i].title
              }
            }
          }
        },
        {
          title: '备注',
          align: 'center',
          dataIndex: 'remark'
        },
        {
          title: '操作',
          dataIndex: 'action',
          scopedSlots: { customRender: 'action' },
          align: 'center',
          width: 120,
          fixed: 'right'
        }
      ],
      url: {
        list: '/transaction/admin/repayment/queryRepaymentLegalPersonalList'
      },
      remitStartDate: undefined,
      remitEndDate: undefined
    }
  },
  methods: {
    handleDetailBai: function (record, title) {
      let _p = { billNo: record.billNo }
      if (record.billType == 10) {
        billDetail(_p).then(res => {
          if (res.status.statusCode == 0) {
            this.$refs.modalForm.edit(res.result, record.billType, record.billNo, 3)
            this.$refs.modalForm.title = title
            this.$refs.modalForm.disableSubmit = true
            this.$refs.modalForm.onlyread = true
          } else {
            this.$message.warning(res.status.statusReason)
          }
        })
      } else {
        chargeBillDetail(_p).then(res => {
          if (res.status.statusCode == 0) {
            this.$refs.modalForm.edit(res.result, record.billType, record.billNo, 3)
            this.$refs.modalForm.title = title
            this.$refs.modalForm.disableSubmit = true
            this.$refs.modalForm.onlyread = true
          } else {
            this.$message.warning(res.status.statusReason)
          }
        })
      }

    },
    onChangeApplyDateStarts (value, dateString) {
      this.queryParam.remitStartDate = dateString
    },
    onChangeApplyDateEnds (value, dateString) {
      this.queryParam.remitEndDate = dateString
    },
    searchResetTimes () {
      this.remitStartDate = undefined
      this.remitEndDate = undefined
      this.queryParam = {}
      this.loadData(1);
    }
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>