<template>
  <!-- 单据查询 待付单-->
  <div class="platinum_fixed_investment_price_query_tab">
    <Filter @search="search" />
    <a-table :columns="columns" class="srcollYTable" :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }" :pagination="false" :expandedRowKeys="expandedRowKeys" :customRow="Rowclick" :rowKey="(record,index)=>index" :data-source="tableList">
      <!-- 账户类型 -->
      <template #userinfotype="{ record }">
        <a>{{ record.userinfotype === 1 ? '个人' : '企业' }}</a>
      </template>
      <template #paylimitedtime="{ record }">
        <a>{{ isOverTime(record.paylimitedtime) }}</a>
      </template>
    </a-table>
  </div>
</template>

<script lang="ts">
import { ComposeTableParam, defineComponent, handleComposeTable, queryTableList } from '@/common/export/commonTable';
import { getUserId } from '@/services/bus/user';
import { queryTradePayOrder } from '@/services/go/ermcp/qhj';
import { QhjPayOrder, QueryTradePayOrderReq } from '@/services/go/ermcp/qhj/interface';
import Filter from './compoments/filter/index.vue';
import moment from 'moment';
import { EnumRouterName } from '@/common/constants/enumRouterName';

export default defineComponent({
  name: 'platinum_document_query_waiting',
  components: { Filter },
  setup() {
    // 表格列表数据
    const { loading, tableList, queryTable } = queryTableList<QhjPayOrder>();
    const queryTableAction = () => {
      // 获取列表数据
      queryTable(queryTradePayOrder, { userid: getUserId(), payflag: '1,3,5' });
    };

    // 表格通用逻辑
    const param: ComposeTableParam = {
      queryFn: queryTableAction,
      tableName: 'table_pcweb_qhj_pay_bill',
    };

    function search(value: any) {
      const { includesub, goodsid, filtername, userid, ordertime, userinfotype, isOverTime } = value;
      const len = ordertime.length;
      const param: QueryTradePayOrderReq = {
        userid: userid[0] ? userid[0] : getUserId(),
        userinfotype: userinfotype[0] ? userinfotype[0] : 0,
        filtername: filtername[0],
        begindate: len > 1 ? ordertime[0] : '',
        enddate: len > 1 ? ordertime[len - 1] : '',
        goodsid: goodsid[0],
        includesub,
        payflag: isOverTime ? '1' : '1,3,5', // 付款标识(逗号隔开,如1,2) - 1:未支付 2:已支付 3:已过期 4:已撤销 5:结算过期 6:预售终止
      };
      queryTable(queryTradePayOrder, param);
    }
    const isOverTime = (value: string) => (moment().isAfter(moment(value)) ? '付款超时' : value);

    return {
      ...handleComposeTable<QhjPayOrder>(param),
      search,
      isOverTime,
      loading,
      tableList,
    };
  },
});
</script>