Commit 0f7e0a5163028d4caac69c9b8567bb61699f82c2

Authored by wuxw
1 parent e3a9add5

v1.9 优化客户反馈 欠费缴费选择问题

src/views/fee/owePayFeeOrderList.vue
@@ -18,8 +18,8 @@ @@ -18,8 +18,8 @@
18 </div> 18 </div>
19 </div> 19 </div>
20 20
21 - <el-table :data="owePayFeeOrderInfo.oweFees" border style="width: 100%">  
22 - <el-table-column type="selection" width="55" @selection-change="handleSelectionChange"></el-table-column> 21 + <el-table ref="oweTable" :data="owePayFeeOrderInfo.oweFees" border style="width: 100%" @selection-change="handleSelectionChange">
  22 + <el-table-column type="selection" width="55"></el-table-column>
23 <el-table-column prop="payerObjName" :label="$t('owePayFeeOrder.payerObj')" align="center"></el-table-column> 23 <el-table-column prop="payerObjName" :label="$t('owePayFeeOrder.payerObj')" align="center"></el-table-column>
24 <el-table-column prop="feeTypeCdName" :label="$t('owePayFeeOrder.feeType')" align="center"></el-table-column> 24 <el-table-column prop="feeTypeCdName" :label="$t('owePayFeeOrder.feeType')" align="center"></el-table-column>
25 <el-table-column prop="feeName" :label="$t('owePayFeeOrder.feeItem')" align="center"></el-table-column> 25 <el-table-column prop="feeName" :label="$t('owePayFeeOrder.feeItem')" align="center"></el-table-column>
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 <el-table-column prop="feeTotalPrice" :label="$t('owePayFeeOrder.oweAmount')" align="center"></el-table-column> 38 <el-table-column prop="feeTotalPrice" :label="$t('owePayFeeOrder.oweAmount')" align="center"></el-table-column>
39 </el-table> 39 </el-table>
40 40
41 - <el-row class="footer-row"> 41 + <el-row class="footer-row" :gutter="10">
42 <el-col :span="16"></el-col> 42 <el-col :span="16"></el-col>
43 <el-col :span="4" class="amount-col"> 43 <el-col :span="4" class="amount-col">
44 {{ $t('owePayFeeOrder.paymentAmount') }}: 44 {{ $t('owePayFeeOrder.paymentAmount') }}:
@@ -50,7 +50,7 @@ @@ -50,7 +50,7 @@
50 {{ $t('owePayFeeOrder.scanPay') }} 50 {{ $t('owePayFeeOrder.scanPay') }}
51 </el-button> 51 </el-button>
52 </el-col> 52 </el-col>
53 - <el-col :span="2"> 53 + <el-col :span="2" >
54 <el-button type="primary" size="medium" @click="_payFee()" class="pay-btn"> 54 <el-button type="primary" size="medium" @click="_payFee()" class="pay-btn">
55 {{ $t('owePayFeeOrder.pay') }} 55 {{ $t('owePayFeeOrder.pay') }}
56 </el-button> 56 </el-button>
@@ -59,8 +59,8 @@ @@ -59,8 +59,8 @@
59 </el-card> 59 </el-card>
60 60
61 <!-- 缴费确认弹窗 --> 61 <!-- 缴费确认弹窗 -->
62 - <el-dialog :title="$t('owePayFeeOrder.paymentConfirm')" :visible.sync="showPayModal" width="50%">  
63 - <el-form label-width="120px"> 62 + <el-dialog :title="$t('owePayFeeOrder.paymentConfirm')" :visible.sync="showPayModal" width="40%">
  63 + <el-form label-width="120px" class="text-left">
64 <el-form-item :label="$t('owePayFeeOrder.room')"> 64 <el-form-item :label="$t('owePayFeeOrder.room')">
65 <span>{{ owePayFeeOrderInfo.roomName }}</span> 65 <span>{{ owePayFeeOrderInfo.roomName }}</span>
66 </el-form-item> 66 </el-form-item>
@@ -102,7 +102,7 @@ @@ -102,7 +102,7 @@
102 <el-button type="primary" @click="_printAndBack('ON')"> 102 <el-button type="primary" @click="_printAndBack('ON')">
103 {{ $t('owePayFeeOrder.mergePrint') }} 103 {{ $t('owePayFeeOrder.mergePrint') }}
104 </el-button> 104 </el-button>
105 - <el-button type="primary" @click="_printAndBack('OFF')"> 105 + <el-button type="primary" @click="_printAndBack('OFF')">
106 {{ $t('owePayFeeOrder.printReceipt') }} 106 {{ $t('owePayFeeOrder.printReceipt') }}
107 </el-button> 107 </el-button>
108 </span> 108 </span>
@@ -194,6 +194,8 @@ export default { @@ -194,6 +194,8 @@ export default {
194 194
195 handleSelectionChange(val) { 195 handleSelectionChange(val) {
196 this.owePayFeeOrderInfo.selectPayFeeIds = val.map(item => item.feeId) 196 this.owePayFeeOrderInfo.selectPayFeeIds = val.map(item => item.feeId)
  197 + this._dealSelectFee()
  198 +
197 }, 199 },
198 200
199 async _loadOweFees() { 201 async _loadOweFees() {
@@ -224,6 +226,13 @@ export default { @@ -224,6 +226,13 @@ export default {
224 }) 226 })
225 227
226 this._dealSelectFee() 228 this._dealSelectFee()
  229 +
  230 + // 等待表格渲染完成后选中所有行
  231 + this.$nextTick(() => {
  232 + this.owePayFeeOrderInfo.oweFees.forEach(row => {
  233 + this.$refs.oweTable.toggleRowSelection(row, true)
  234 + })
  235 + })
227 } catch (error) { 236 } catch (error) {
228 console.error('获取欠费数据失败:', error) 237 console.error('获取欠费数据失败:', error)
229 } 238 }
@@ -420,6 +429,7 @@ export default { @@ -420,6 +429,7 @@ export default {
420 }, 2000) 429 }, 2000)
421 430
422 this.owePayFeeOrderInfo.selectPayFeeIds = [] 431 this.owePayFeeOrderInfo.selectPayFeeIds = []
  432 + this.$refs.oweTable && this.$refs.oweTable.clearSelection()
423 this._loadOweFees() 433 this._loadOweFees()
424 this.$message.success(res.msg) 434 this.$message.success(res.msg)
425 }, 435 },
src/views/fee/printPayFeeBangTaiList.vue
1 <template> 1 <template>
2 <div class="print-pay-fee-container"> 2 <div class="print-pay-fee-container">
3 - <el-row>  
4 - <el-col :span="24">  
5 - <div class="text-center">  
6 - <div style="color:#000;font-size:36px">{{ printPayFeeInfo.communityName }} {{ printPayFeeInfo.apply ==  
7 - 'Y' ? $t('printPayFeeBangTai.applyForm') : $t('printPayFeeBangTai.receiptForm')}}</div>  
8 - <span style="color:#000;font-size:20px">  
9 - <span>{{ $t('printPayFeeBangTai.receiptNum') }}</span>:{{ printPayFeeInfo.receiptNum }}  
10 - </span>  
11 - </div>  
12 - <div style="color:#000;font-size:20px;margin-left:20px">  
13 - <div class="float-left">  
14 - <span>{{ $t('printPayFeeBangTai.owner') }}</span>{{ printPayFeeInfo.payObjName }}  
15 - </div>  
16 - <div class="float-right text-right">  
17 - <span>{{ $t('printPayFeeBangTai.paymentTime') }}</span>{{ printPayFeeInfo.feeTime }}  
18 - </div>  
19 - </div>  
20 - <table class="table vc-table-border" style="color:#000;font-size:20px">  
21 - <thead>  
22 - <tr>  
23 - <th scope="col" class="text-center" width="80px">{{ $t('printPayFeeBangTai.serialNum') }}</th>  
24 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.feeItem') }}</th>  
25 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.houseCar') }}</th>  
26 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.feeRange') }}</th>  
27 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.cycle') }}</th>  
28 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.unitPrice') }}</th>  
29 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.areaUsage') }}</th>  
30 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.paymentMethod') }}</th>  
31 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.amount') }}</th>  
32 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.discountAmount') }}</th>  
33 - <th scope="col" class="text-center">{{ $t('printPayFeeBangTai.remark') }}</th>  
34 - </tr>  
35 - </thead>  
36 - <tbody class="vc-table-border" style="color:#000;font-size:20px">  
37 - <tr v-for="(item, index) in printPayFeeInfo.fees" class="vc-table-border" :key="index">  
38 - <th scope="row" class="text-center">{{ index + 1 }}</th>  
39 - <td class="text-center">{{ item.feeName }}</td>  
40 - <td class="text-center">{{ item.objName }}</td>  
41 - <td class="text-center" v-if="item.preDegrees">  
42 - {{ formatDate(item.startTime) }}<span>{{ $t('printPayFeeBangTai.to') }}</span>{{ formatDate(item.endTime) }}<br>  
43 - {{ item.preDegrees }} {{ $t('printPayFeeBangTai.to') }} {{ item.curDegrees }}  
44 - </td>  
45 - <td class="text-center" v-else-if="item.feeTypeCd == '888800010006'">  
46 - {{ $t('printPayFeeBangTai.none') }}  
47 - </td>  
48 - <td class="text-center" v-else>  
49 - {{ formatDate(item.startTime) }}<span>{{ $t('printPayFeeBangTai.to') }}</span>{{ formatDate(item.endTime) }}  
50 - </td>  
51 - <td class="text-center">{{ item.cycle }}</td>  
52 - <td class="text-center">{{ item.squarePrice }}</td>  
53 - <td class="text-center">{{ item.area }}</td>  
54 - <td class="text-center">{{ item.primeRate }}</td>  
55 - <td class="text-center">{{ item.amount }}</td>  
56 - <td class="text-center">{{ item.discountPrice }}</td>  
57 - <td class="text-center" width="200px">{{ item.remark }}</td>  
58 - </tr>  
59 - <tr>  
60 - <td colspan="3" class="text-center">  
61 - <span>{{ $t('printPayFeeBangTai.capitalRMB') }}</span>(元)  
62 - </td>  
63 - <td colspan="4" class="text-center">{{ changeNumMoneyToChinese(printPayFeeInfo.amount) }}</td>  
64 - <td colspan="1" class="text-center">{{ computeSumArea() }}</td>  
65 - <td colspan="3" class="text-center">{{ printPayFeeInfo.amount }}</td>  
66 - </tr>  
67 - <tr height="60px">  
68 - <td colspan="6">  
69 - <div style="max-width: 600px;">  
70 - <div v-html="printPayFeeInfo.content"></div>  
71 - </div>  
72 - </td>  
73 - <td colspan="5">  
74 - <img :src="printPayFeeInfo.qrImg" width="100px" height="100px">  
75 - </td>  
76 - </tr>  
77 - </tbody>  
78 - </table>  
79 - </el-col>  
80 - </el-row>  
81 - <el-row>  
82 - <el-col :span="20">  
83 - <div class="row" style="color:#000;font-size:20px;margin-left: 10px;">  
84 - <div class="float-left" style="width: 20%;">  
85 - <span>{{ $t('printPayFeeBangTai.departmentHead') }}</span>:  
86 - </div>  
87 - <div class="float-left" style="width: 20%;">  
88 - <span>{{ $t('printPayFeeBangTai.handler') }}</span>:{{ userInfo.name }} 3 + <div class="text-center">
  4 + <div style="color:#000;font-size:36px">
  5 + {{ printPayFeeInfo.communityName }}
  6 + <span v-if="printPayFeeInfo.apply === 'Y'">{{ $t('printPayFeeBangTai.applyForm') }}</span>
  7 + <span v-if="printPayFeeInfo.apply === 'N'">{{ $t('printPayFeeBangTai.receiptForm') }}</span>
  8 + </div>
  9 + <span style="color:#000;font-size:20px">
  10 + {{ $t('printPayFeeBangTai.receiptNum') }}:{{ printPayFeeInfo.receiptNum }}
  11 + </span>
  12 + </div>
  13 + <div style="color:#000;font-size:20px;margin-left:20px">
  14 + <div class="float-left">
  15 + <span>{{ $t('printPayFeeBangTai.owner') }}</span>:{{ printPayFeeInfo.payObjName }}
  16 + </div>
  17 + <div class="float-right text-right">
  18 + <span>{{ $t('printPayFeeBangTai.paymentTime') }}</span>:{{ printPayFeeInfo.feeTime }}
  19 + </div>
  20 + </div>
  21 +
  22 + <table class="table vc-table-border" style="color:#000;font-size:20px;width:100%;border-collapse:collapse;">
  23 + <thead>
  24 + <tr>
  25 + <th class="text-center" width="80px">{{ $t('printPayFeeBangTai.serialNum') }}</th>
  26 + <th class="text-center">{{ $t('printPayFeeBangTai.feeItem') }}</th>
  27 + <th class="text-center">{{ $t('printPayFeeBangTai.houseCar') }}</th>
  28 + <th class="text-center">{{ $t('printPayFeeBangTai.feeRange') }}</th>
  29 + <th class="text-center">{{ $t('printPayFeeBangTai.cycle') }}</th>
  30 + <th class="text-center">{{ $t('printPayFeeBangTai.unitPrice') }}</th>
  31 + <th class="text-center">{{ $t('printPayFeeBangTai.areaUsage') }}</th>
  32 + <th class="text-center">{{ $t('printPayFeeBangTai.paymentMethod') }}</th>
  33 + <th class="text-center">{{ $t('printPayFeeBangTai.amount') }}</th>
  34 + <th class="text-center">{{ $t('printPayFeeBangTai.discountAmount') }}</th>
  35 + <th class="text-center">{{ $t('printPayFeeBangTai.remark') }}</th>
  36 + </tr>
  37 + </thead>
  38 + <tbody style="color:#000;font-size:20px">
  39 + <tr v-for="(item, index) in printPayFeeInfo.fees" :key="index">
  40 + <th scope="row" class="text-center">{{ index + 1 }}</th>
  41 + <td class="text-center">{{ item.feeName }}</td>
  42 + <td class="text-center">{{ item.objName }}</td>
  43 + <td class="text-center">
  44 + <div v-if="item.preDegrees">
  45 + {{ formatDate(item.startTime) }}{{ $t('printPayFeeBangTai.to') }}{{ formatDate(item.endTime) }}<br>
  46 + {{ item.preDegrees }} {{ $t('printPayFeeBangTai.to') }} {{ item.curDegrees }}
89 </div> 47 </div>
90 - <div class="float-left" style="width: 20%;">  
91 - <span>{{ $t('printPayFeeBangTai.financialCollection') }}</span>: 48 + <div v-else-if="item.feeTypeCd === '888800010006'">
  49 + {{ $t('printPayFeeBangTai.none') }}
92 </div> 50 </div>
93 - <div class="float-left" style="width: 20%;">  
94 - <span>{{ $t('printPayFeeBangTai.customerConfirmation') }}</span>: 51 + <div v-else>
  52 + {{ formatDate(item.startTime) }}{{ $t('printPayFeeBangTai.to') }}{{ formatDate(item.endTime) }}
95 </div> 53 </div>
96 - </div>  
97 - </el-col>  
98 - <el-col :span="4" id="print-btn">  
99 - <el-button type="primary" class="float-right" @click="printPurchaseApplyDiv">  
100 - <i class="el-icon-printer"></i>&nbsp;{{ $t('printPayFeeBangTai.print') }}  
101 - </el-button>  
102 - <el-button type="warning" class="float-right" style="margin-right:20px;" @click="closePage">  
103 - {{ $t('printPayFeeBangTai.cancel') }}  
104 - </el-button>  
105 - </el-col>  
106 - </el-row> 54 + </td>
  55 + <td class="text-center">{{ item.cycle }}</td>
  56 + <td class="text-center">{{ item.squarePrice }}</td>
  57 + <td class="text-center">{{ item.area }}</td>
  58 + <td class="text-center">{{ item.primeRate }}</td>
  59 + <td class="text-center">{{ item.amount }}</td>
  60 + <td class="text-center">{{ item.discountPrice }}</td>
  61 + <td class="text-center" width="200px">{{ item.remark }}</td>
  62 + </tr>
  63 + <tr>
  64 + <td colspan="3" class="text-center">{{ $t('printPayFeeBangTai.capitalRMB') }}(元)</td>
  65 + <td colspan="4" class="text-center">{{ changeNumMoneyToChinese(printPayFeeInfo.amount) }}</td>
  66 + <td colspan="1" class="text-center">{{ computeSumArea() }}</td>
  67 + <td colspan="3" class="text-center">{{ printPayFeeInfo.amount }}</td>
  68 + </tr>
  69 + <tr v-if="printPayFeeInfo.content || printPayFeeInfo.qrImg" height="60px">
  70 + <td colspan="6">
  71 + <div style="max-width: 600px;" v-html="printPayFeeInfo.content"></div>
  72 + </td>
  73 + <td colspan="5">
  74 + <img v-if="printPayFeeInfo.qrImg" :src="printPayFeeInfo.qrImg" width="100px" height="100px">
  75 + </td>
  76 + </tr>
  77 + </tbody>
  78 + </table>
  79 +
  80 + <el-row style="color:#000;font-size:18px;margin-left: 10px;" class="flex justify-between">
  81 + <el-col :span="6">{{ $t('printPayFeeBangTai.departmentHead') }}</el-col>
  82 + <el-col :span="6">{{ $t('printPayFeeBangTai.handler') }}:{{ userInfo.name }}</el-col>
  83 + <el-col :span="6">{{ $t('printPayFeeBangTai.financialCollection') }}</el-col>
  84 + <el-col :span="6">{{ $t('printPayFeeBangTai.customerConfirmation') }}</el-col>
  85 + </el-row>
  86 +
  87 + <el-row id="print-btn">
  88 + <el-col :span="24">
  89 + <el-button type="primary" class="float-right" @click="handlePrint">
  90 + <i class="el-icon-printer"></i>&nbsp;{{ $t('common.print') }}
  91 + </el-button>
  92 + <el-button type="warning" class="float-right" style="margin-right:20px;" @click="handleClose">
  93 + {{ $t('common.cancel') }}
  94 + </el-button>
  95 + </el-col>
  96 + </el-row>
107 </div> 97 </div>
108 </template> 98 </template>
109 99
@@ -141,67 +131,69 @@ export default { @@ -141,67 +131,69 @@ export default {
141 } 131 }
142 }, 132 },
143 created() { 133 created() {
  134 + this.communityId = getCommunityId()
  135 + this.userInfo = {
  136 + userId: getUserId(),
  137 + name: getUserName()
  138 + }
144 this.initData() 139 this.initData()
145 - this.loadData()  
146 }, 140 },
147 methods: { 141 methods: {
148 initData() { 142 initData() {
149 this.printPayFeeInfo.receiptId = this.$route.query.receiptId 143 this.printPayFeeInfo.receiptId = this.$route.query.receiptId
150 this.printPayFeeInfo.receiptIds = this.$route.query.receiptIds 144 this.printPayFeeInfo.receiptIds = this.$route.query.receiptIds
  145 + this.printPayFeeInfo.detailIds = this.$route.query.detailIds
  146 +
151 this.printPayFeeInfo.apply = this.$route.query.apply || 'N' 147 this.printPayFeeInfo.apply = this.$route.query.apply || 'N'
152 this.printPayFeeInfo.merge = this.$route.query.merge 148 this.printPayFeeInfo.merge = this.$route.query.merge
153 - this.communityId = getCommunityId()  
154 - this.userInfo = {  
155 - userId: getUserId(),  
156 - name: getUserName()  
157 - }  
158 - },  
159 - async loadData() {  
160 this.printPayFeeInfo.communityName = getCommunityName() 149 this.printPayFeeInfo.communityName = getCommunityName()
161 - await this.loadReceipt()  
162 - await this.loadPrintSpec() 150 +
  151 + this.loadReceipt()
  152 + this.loadPrintSpec()
163 }, 153 },
164 - async loadReceipt() {  
165 - try {  
166 - const params = {  
167 - page: 1,  
168 - row: 30,  
169 - receiptId: this.printPayFeeInfo.receiptId,  
170 - receiptIds: this.printPayFeeInfo.receiptIds,  
171 - communityId: this.communityId  
172 - }  
173 - const { data } = await queryFeeReceipt(params)  
174 - const _feeReceipt = data  
175 - let _amount = 0  
176 - _feeReceipt.forEach(item => {  
177 - _amount += parseFloat(item.amount) 154 + loadReceipt() {
  155 + const params = {
  156 + page: 1,
  157 + row: 30,
  158 + receiptId: this.printPayFeeInfo.receiptId,
  159 + receiptIds: this.printPayFeeInfo.receiptIds,
  160 + detailIds: this.printPayFeeInfo.detailIds,
  161 + communityId: this.communityId
  162 + }
  163 +
  164 + queryFeeReceipt(params).then(response => {
  165 + const feeReceipt = response.data
  166 + let amount = 0
  167 + feeReceipt.forEach(item => {
  168 + amount += parseFloat(item.amount)
178 }) 169 })
179 170
180 - this.printPayFeeInfo.amount = _amount.toFixed(2)  
181 - this.printPayFeeInfo.roomName = _feeReceipt[0].objName  
182 - this.printPayFeeInfo.feeTime = _feeReceipt[0].createTime  
183 - this.printPayFeeInfo.payObjName = _feeReceipt[0].payObjName  
184 - this.printPayFeeInfo.feeReceipt = _feeReceipt  
185 - this.printPayFeeInfo.receiptNum = _feeReceipt[0].receiptCode  
186 - await this.loadReceiptDetail()  
187 - } catch (error) {  
188 - console.error('Failed to load receipt:', error)  
189 - } 171 + this.printPayFeeInfo.amount = amount.toFixed(2)
  172 + this.printPayFeeInfo.roomName = feeReceipt[0].objName
  173 + this.printPayFeeInfo.feeTime = feeReceipt[0].createTime
  174 + this.printPayFeeInfo.payObjName = feeReceipt[0].payObjName
  175 + this.printPayFeeInfo.feeReceipt = feeReceipt
  176 + this.printPayFeeInfo.receiptNum = feeReceipt[0].receiptCode
  177 +
  178 + this.loadReceiptDetail()
  179 + })
190 }, 180 },
191 - async loadReceiptDetail() {  
192 - try {  
193 - const params = {  
194 - page: 1,  
195 - row: 100,  
196 - receiptId: this.printPayFeeInfo.receiptId,  
197 - receiptIds: this.printPayFeeInfo.receiptIds,  
198 - communityId: this.communityId,  
199 - mergeFee: this.printPayFeeInfo.merge  
200 - }  
201 - const { data } = await queryFeeReceiptDetail(params)  
202 - const _feeReceiptDetails = data  
203 - this.printPayFeeInfo.receiptNum = this.printPayFeeInfo.receiptNum + "(" + _feeReceiptDetails[0].payOrderId + ")"  
204 - _feeReceiptDetails.forEach(item => { 181 + loadReceiptDetail() {
  182 + const params = {
  183 + page: 1,
  184 + row: 100,
  185 + receiptId: this.printPayFeeInfo.receiptId,
  186 + receiptIds: this.printPayFeeInfo.receiptIds,
  187 + detailIds: this.printPayFeeInfo.detailIds,
  188 +
  189 + communityId: this.communityId,
  190 + mergeFee: this.printPayFeeInfo.merge
  191 + }
  192 +
  193 + queryFeeReceiptDetail(params).then(response => {
  194 + const feeReceiptDetails = response.data
  195 + this.printPayFeeInfo.receiptNum = this.printPayFeeInfo.receiptNum + "(" + feeReceiptDetails[0].payOrderId + ")"
  196 + feeReceiptDetails.forEach(item => {
205 this.printPayFeeInfo.feeReceipt.forEach(im => { 197 this.printPayFeeInfo.feeReceipt.forEach(im => {
206 if (item.receiptId == im.receiptId) { 198 if (item.receiptId == im.receiptId) {
207 item.objName = im.objName 199 item.objName = im.objName
@@ -209,20 +201,19 @@ export default { @@ -209,20 +201,19 @@ export default {
209 } 201 }
210 }) 202 })
211 }) 203 })
212 - this.printPayFeeInfo.fees = _feeReceiptDetails  
213 - } catch (error) {  
214 - console.error('Failed to load receipt detail:', error)  
215 - } 204 + this.printPayFeeInfo.fees = feeReceiptDetails
  205 + })
216 }, 206 },
217 - async loadPrintSpec() {  
218 - try {  
219 - const params = {  
220 - page: 1,  
221 - row: 1,  
222 - specCd: 2020,  
223 - communityId: this.communityId  
224 - }  
225 - const { data } = await queryFeePrintSpec(params) 207 + loadPrintSpec() {
  208 + const params = {
  209 + page: 1,
  210 + row: 1,
  211 + specCd: 2020,
  212 + communityId: this.communityId
  213 + }
  214 +
  215 + queryFeePrintSpec(params).then(response => {
  216 + const data = response.data
226 if (data.length > 0) { 217 if (data.length > 0) {
227 this.printPayFeeInfo.content = data[0].content 218 this.printPayFeeInfo.content = data[0].content
228 this.printPayFeeInfo.qrImg = data[0].qrImg 219 this.printPayFeeInfo.qrImg = data[0].qrImg
@@ -230,18 +221,16 @@ export default { @@ -230,18 +221,16 @@ export default {
230 this.printPayFeeInfo.communityName = data[0].printName 221 this.printPayFeeInfo.communityName = data[0].printName
231 } 222 }
232 } 223 }
233 - } catch (error) {  
234 - console.error('Failed to load print spec:', error)  
235 - } 224 + })
236 }, 225 },
237 computeSumArea() { 226 computeSumArea() {
238 - let _sum = 0.00 227 + let sum = 0.00
239 this.printPayFeeInfo.fees.forEach(item => { 228 this.printPayFeeInfo.fees.forEach(item => {
240 if (item.area && this.isNumber(item.area)) { 229 if (item.area && this.isNumber(item.area)) {
241 - _sum += parseFloat(item.area) 230 + sum += parseFloat(item.area)
242 } 231 }
243 }) 232 })
244 - return _sum.toFixed(2) 233 + return sum.toFixed(2)
245 }, 234 },
246 isNumber(value) { 235 isNumber(value) {
247 return !isNaN(parseFloat(value)) && isFinite(value) 236 return !isNaN(parseFloat(value)) && isFinite(value)
@@ -251,15 +240,13 @@ export default { @@ -251,15 +240,13 @@ export default {
251 return dateFormat(date) 240 return dateFormat(date)
252 }, 241 },
253 changeNumMoneyToChinese, 242 changeNumMoneyToChinese,
254 - printPurchaseApplyDiv() { 243 + handlePrint() {
255 this.printFlag = '1' 244 this.printFlag = '1'
256 document.getElementById("print-btn").style.display = "none" 245 document.getElementById("print-btn").style.display = "none"
257 window.print() 246 window.print()
258 - window.opener = null  
259 window.close() 247 window.close()
260 }, 248 },
261 - closePage() {  
262 - window.opener = null 249 + handleClose() {
263 window.close() 250 window.close()
264 } 251 }
265 } 252 }
@@ -271,10 +258,6 @@ export default { @@ -271,10 +258,6 @@ export default {
271 padding: 20px; 258 padding: 20px;
272 } 259 }
273 260
274 -.text-center {  
275 - text-align: center;  
276 -}  
277 -  
278 .float-left { 261 .float-left {
279 float: left; 262 float: left;
280 } 263 }
@@ -283,9 +266,12 @@ export default { @@ -283,9 +266,12 @@ export default {
283 float: right; 266 float: right;
284 } 267 }
285 268
286 -.vc-table-border {  
287 - border: 1px solid #000;  
288 - border-collapse: collapse; 269 +.text-center {
  270 + text-align: center;
  271 +}
  272 +
  273 +.text-right {
  274 + text-align: right;
289 } 275 }
290 276
291 .vc-table-border th, 277 .vc-table-border th,
@@ -294,8 +280,12 @@ export default { @@ -294,8 +280,12 @@ export default {
294 padding: 5px; 280 padding: 5px;
295 } 281 }
296 282
297 -#print-btn {  
298 - text-align: right;  
299 - margin-top: 20px; 283 +.el-row {
  284 + width: 100%;
  285 + margin-bottom: 20px;
  286 +}
  287 +
  288 +.el-col {
  289 + width: 100%;
300 } 290 }
301 </style> 291 </style>
302 \ No newline at end of file 292 \ No newline at end of file