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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<template>
  <div class="base-contract ">
    <!-- <TableList
      :list="records"
      :pageInfo="pageInfo"
      :header="tableHeader"
      :loading="loading"
      title="电子合同信息"
      @doAction="doAction"
      @handleCurrentChange="handleCurrentChange"
      @handleSizeChange="handleSizeChange"
      @handleSelectionChange="handleSelectionChange"
      :isMultipleSelect="isEdit"
    ></TableList> -->
 
    <loanContactList :applyInfo="{serialNo}"/>
  </div>
</template>
<script>
// 电子合同信息
import { mapState, mapMutations } from 'vuex'
import { qryEContractList, getContractUrl } from '@comprehensive/serve/public'
import loanContactList from "@/views/product/views/CreditFlowPublic/baseContract/loanContactList.vue";
import TableList from '../TableList'
import { EContractListHeader } from '@comprehensive/utils/tableHeaders'
 
export default {
  props: {
    // 申请编号
    serialNo: {
      type: String,
      default: ''
    }
  },
  components: {
    TableList,
    loanContactList
  },
  data() {
    return {
      records: [],
      loading: false,
      pageInfo: {
        currentPage: 1,
        pageSize: 10,
        total: 0
      },
      tableHeader: [...EContractListHeader]
    }
  },
  created() {
    this.init()
  },
  methods: {
    init() {
      this.pageInfo.currentPage = 1
      this.qryEContractList()
    },
 
    async qryEContractList() {
      this.loading = true
      const { serialNo, pageInfo } = this
      const { applySerialNo } = this.$route.query
      const objectno = serialNo || applySerialNo
 
      const res = await qryEContractList({
        objectno: objectno,
        ...pageInfo
      })
      this.loading = false
      const { records, total } = res.result
      this.records = records
      this.pageInfo.total = total
    },
 
    // 修改翻页条数
    handleSizeChange(val) {
      this.pageInfo.pageSize = val
      this.qryEContractList()
    },
 
    // 修改翻页数
    handleCurrentChange(val) {
      this.pageInfo.currentPage = val
      this.qryEContractList()
    },
 
    // 表单事件回调
    doAction(name, item, index) {
      // 点击申请编号的处理
      if (name === 'edocno') {
        // 点击电子合同编号
        this.getContractUrl(item.edocno, item.bucketname)
      }
    },
 
    handleSelectionChange(arr) {
      this.SET_ContractNoArray(arr.map(({ serialno }) => serialno))
    },
 
    // 打开pdf
    async getContractUrl(edocno, bucketname) {
      const res = await getContractUrl({
        edocno,
        bucketname
      })
      window.open(res.result.url, '_blank')
    },
 
    ...mapMutations(['SET_ContractNoArray'])
  },
  computed: {
    ...mapState({
      isEdit: state => state.comprehensiveTransaction.isEdit
    })
  },
  watch: {
    serialNo() {
      this.init()
    }
  }
}
</script>
 
<style lang="postcss" scoped>
.form-section {
  display: flex;
  align-items: baseline;
  & .search {
    margin: 10px 0 0 50px;
    padding: 0;
  }
}
 
.base-contract {
  & >>> .title {
 
    margin: 30px 0 20px 0;
    padding: 0 0 0 10px;
    border-left: solid 2px #0081F0;
    line-height: 16px;
    font-size: 14px;
    color: #222222;
  }
}
</style>