zhaoxiaoqiang1
2026-01-04 f1d30d03186c79ca2cbcfe60d6d2ce7d73fba97b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<template>
  <div>
    <TableList
      @handleCurrentChange="handleCurrentChange"
      @handleSizeChange="handleSizeChange"
      :pageInfo="pageInfo"
      :list="records"
      :header="tableHeader"
      :loading="loading"
      title="资金方还款计划"
      :isShowPages="true"
      :isShowSummary="false"
    ></TableList>
  </div>
</template>
<script>
// 对资还款计划
import TableList from '../TableList'
import { queryLoanPlanList } from '@comprehensive/serve/public'
import { acctLoanPlanListHeader } from '@comprehensive/utils/tableHeaders'
// import { acctPaymentScheduleSearch } from '@comprehensive/utils/formItems'
 
export default {
  props: {
    // 申请编号
    serialNo: {
      type: String,
      required: true
    },
    objectType: {
      type: String,
      default: ''
    },
    customerID: {
      type: String,
      default: ''
    }
  },
  components: {
    TableList
  },
  data() {
    return {
      records: [],
      loading: false,
      excelLoading: false,
      flowModel: [],
      valueInfo: {},
      pageInfo: {
        currentPage: 1,
        pageSize: 10,
        total: 0
      },
      tableHeader: [...acctLoanPlanListHeader],
      // 搜索表单字段及描述
      // formInfo: [...acctPaymentScheduleSearch],
    }
  },
  created() {
    this.init()
  },
  methods: {
    init() {
      this.flowModel = []
      this.valueInfo = {}
      this.pageInfo = {
        currentPage: 1,
        pageSize: 10,
        total: 0
      }
      this.queryLoanPlanList()
    },
 
    async queryLoanPlanList(params={}, fun) {
      this.loading = true
      const { serialNo, pageInfo } = this
      const res = await queryLoanPlanList({
        busiNo: serialNo,
        ...pageInfo,
        ...params
      })
      this.loading = false
      let { records, total } = res.result
      records = records.filter(item => {
        return item.periodno != 0
      })
      const statusMap = {'01': '正常', '02': '已逾期', '03': '结清', '04': '无效', '05': '逾期还款', '06': '提前结清'}
      const payTypeMap = {'0': '正常还款', '1': '已代偿还款', '2': '回购还款'}
      records.map(item => {
        item.statusDesc = statusMap[item.status]
        item.payTypeDesc = payTypeMap[item.payType]
      })
      if(typeof fun === "function") {
        fun(records)
        return
      }
      this.records = records
      this.pageInfo.total = parseInt(total)
    },
 
    // 修改翻页条数
    handleSizeChange(val) {
      this.pageInfo.pageSize = val
      this.queryLoanPlanList()
    },
 
    // 修改翻页数
    handleCurrentChange(val) {
      this.pageInfo.currentPage = val
      this.queryLoanPlanList()
    }
  },
  watch: {
    serialNo() {
      this.init()
    }
  }
}
</script>
 
<style lang="postcss" scoped>
.form-section {
  display: flex;
  align-items: baseline;
  & .search {
    margin: 10px 0 0 50px;
    padding: 0;
  }
}
</style>