Commit 76d4c8fc70d9dbab836cc06f8c2c0097b596b12d

Authored by wuxw
1 parent 06ec2cd7

优惠需要申请测试中

src/components/fee/addApplyRoomDiscount.vue
1 <template> 1 <template>
2 - <el-dialog :title="$t('applyRoomDiscount.add.title')" :visible.sync="visible" width="60%" @close="handleClose"> 2 + <el-dialog :title="$t('applyRoomDiscount.add.title')" :visible.sync="visible" width="40%" @close="handleClose">
3 <el-form ref="form" :model="form" :rules="rules" label-width="120px"> 3 <el-form ref="form" :model="form" :rules="rules" label-width="120px">
4 <el-form-item :label="$t('applyRoomDiscount.add.room')" prop="roomName"> 4 <el-form-item :label="$t('applyRoomDiscount.add.room')" prop="roomName">
5 <el-input v-model.trim="form.roomName" :placeholder="$t('applyRoomDiscount.add.roomPlaceholder')" 5 <el-input v-model.trim="form.roomName" :placeholder="$t('applyRoomDiscount.add.roomPlaceholder')"
@@ -64,9 +64,10 @@ @@ -64,9 +64,10 @@
64 </template> 64 </template>
65 65
66 <script> 66 <script>
67 -import { queryApplyRoomDiscountType ,listRoomsWhereFeeSet} from '@/api/fee/applyRoomDiscountManageApi' 67 +import { queryApplyRoomDiscountType, listRoomsWhereFeeSet,saveApplyRoomDiscount } from '@/api/fee/applyRoomDiscountManageApi'
68 import UploadImageUrl from '@/components/upload/UploadImageUrl' 68 import UploadImageUrl from '@/components/upload/UploadImageUrl'
69 import { getCommunityId } from '@/api/community/communityApi' 69 import { getCommunityId } from '@/api/community/communityApi'
  70 +import { listFee } from '@/api/fee/feeApi'
70 71
71 export default { 72 export default {
72 name: 'AddApplyRoomDiscount', 73 name: 'AddApplyRoomDiscount',
@@ -130,7 +131,7 @@ export default { @@ -130,7 +131,7 @@ export default {
130 }, 131 },
131 handleClose() { 132 handleClose() {
132 this.$refs.form.resetFields() 133 this.$refs.form.resetFields()
133 - this.$refs.uploadImage.clear() 134 + this.$refs.uploadImage.close()
134 this.form = { 135 this.form = {
135 roomName: '', 136 roomName: '',
136 roomId: '', 137 roomId: '',
@@ -150,7 +151,7 @@ export default { @@ -150,7 +151,7 @@ export default {
150 const { data } = await queryApplyRoomDiscountType({ 151 const { data } = await queryApplyRoomDiscountType({
151 page: 1, 152 page: 1,
152 row: 50, 153 row: 50,
153 - communityId: this.form.communityId 154 + communityId: getCommunityId()
154 }) 155 })
155 this.applyTypes = data 156 this.applyTypes = data
156 } catch (error) { 157 } catch (error) {
@@ -171,7 +172,7 @@ export default { @@ -171,7 +172,7 @@ export default {
171 const params = { 172 const params = {
172 page: 1, 173 page: 1,
173 row: 1, 174 row: 1,
174 - communityId: this.form.communityId, 175 + communityId: getCommunityId(),
175 flag: 0, 176 flag: 0,
176 floorNum: parts[0].trim(), 177 floorNum: parts[0].trim(),
177 unitNum: parts[1].trim(), 178 unitNum: parts[1].trim(),
@@ -199,13 +200,13 @@ export default { @@ -199,13 +200,13 @@ export default {
199 const params = { 200 const params = {
200 page: 1, 201 page: 1,
201 row: 50, 202 row: 50,
202 - communityId: this.form.communityId, 203 + communityId: getCommunityId(),
203 payerObjId: this.form.roomId, 204 payerObjId: this.form.roomId,
204 state: '2008001' 205 state: '2008001'
205 } 206 }
206 207
207 - const { data } = await this.$api.fee.listFee(params)  
208 - this.feeTypeCds = data.fees 208 + const { fees } = await listFee(params)
  209 + this.feeTypeCds = fees
209 } catch (error) { 210 } catch (error) {
210 console.error('查询费用项失败:', error) 211 console.error('查询费用项失败:', error)
211 } 212 }
@@ -233,7 +234,7 @@ export default { @@ -233,7 +234,7 @@ export default {
233 async saveApplyRoomDiscount() { 234 async saveApplyRoomDiscount() {
234 try { 235 try {
235 this.form.communityId = getCommunityId() 236 this.form.communityId = getCommunityId()
236 - await this.$api.applyRoomDiscount.saveApplyRoomDiscount(this.form) 237 + await saveApplyRoomDiscount(this.form)
237 this.$message.success(this.$t('applyRoomDiscount.message.saveSuccess')) 238 this.$message.success(this.$t('applyRoomDiscount.message.saveSuccess'))
238 this.visible = false 239 this.visible = false
239 this.$emit('success') 240 this.$emit('success')
src/components/fee/addApplyRoomDiscountType.vue
1 <template> 1 <template>
2 - <el-dialog  
3 - :title="$t('discountType.add.title')"  
4 - :visible.sync="visible"  
5 - width="50%"  
6 - @close="handleClose"  
7 - >  
8 - <el-form  
9 - ref="form"  
10 - :model="formData"  
11 - :rules="rules"  
12 - label-width="120px"  
13 - >  
14 - <el-form-item  
15 - :label="$t('discountType.form.typeName')"  
16 - prop="typeName"  
17 - >  
18 - <el-input  
19 - v-model="formData.typeName"  
20 - :placeholder="$t('discountType.form.typeNamePlaceholder')"  
21 - /> 2 + <el-dialog :title="$t('discountType.add.title')" :visible.sync="visible" width="40%" @close="handleClose">
  3 + <el-form ref="form" :model="formData" :rules="rules" label-width="120px">
  4 + <el-form-item :label="$t('discountType.form.typeName')" prop="typeName">
  5 + <el-input v-model="formData.typeName" :placeholder="$t('discountType.form.typeNamePlaceholder')" />
22 </el-form-item> 6 </el-form-item>
23 - <el-form-item  
24 - :label="$t('discountType.form.typeDesc')"  
25 - prop="typeDesc"  
26 - >  
27 - <el-input  
28 - v-model="formData.typeDesc"  
29 - type="textarea"  
30 - :placeholder="$t('discountType.form.typeDescPlaceholder')"  
31 - :rows="3"  
32 - /> 7 + <el-form-item :label="$t('discountType.form.typeDesc')" prop="typeDesc">
  8 + <el-input v-model="formData.typeDesc" type="textarea" :placeholder="$t('discountType.form.typeDescPlaceholder')"
  9 + :rows="3" />
33 </el-form-item> 10 </el-form-item>
34 </el-form> 11 </el-form>
35 12
src/components/fee/addFeeDiscount.vue
1 <template> 1 <template>
2 - <el-dialog :title="$t('feeDiscountManage.add.title')" :visible.sync="visible" width="60%" @close="handleClose"> 2 + <el-dialog :title="$t('feeDiscountManage.add.title')" :visible.sync="visible" width="40%" @close="handleClose">
3 <el-form ref="form" :model="addFeeDiscountInfo" label-width="120px" :rules="rules"> 3 <el-form ref="form" :model="addFeeDiscountInfo" label-width="120px" :rules="rules">
4 <el-form-item :label="$t('feeDiscountManage.add.discountName')" prop="discountName"> 4 <el-form-item :label="$t('feeDiscountManage.add.discountName')" prop="discountName">
5 <el-input v-model.trim="addFeeDiscountInfo.discountName" 5 <el-input v-model.trim="addFeeDiscountInfo.discountName"
src/components/fee/addPayFeeConfigDiscount.vue
1 <template> 1 <template>
2 - <el-dialog  
3 - :title="$t('addPayFeeConfigDiscount.addTitle')"  
4 - :visible.sync="visible"  
5 - width="800px"  
6 - :close-on-click-modal="false"  
7 - @closed="resetForm"  
8 - > 2 + <el-dialog :title="$t('addPayFeeConfigDiscount.addTitle')" :visible.sync="visible" width="800px"
  3 + :close-on-click-modal="false" @closed="resetForm">
9 <el-form ref="form" :model="form" :rules="rules" label-width="160px"> 4 <el-form ref="form" :model="form" :rules="rules" label-width="160px">
10 <el-form-item :label="$t('addPayFeeConfigDiscount.discountType')" prop="discountType"> 5 <el-form-item :label="$t('addPayFeeConfigDiscount.discountType')" prop="discountType">
11 - <el-select  
12 - v-model="form.discountType"  
13 - :placeholder="$t('addPayFeeConfigDiscount.requiredPlaceholder')"  
14 - @change="changeDiscountType"  
15 - style="width: 100%"  
16 - > 6 + <el-select v-model="form.discountType" :placeholder="$t('addPayFeeConfigDiscount.requiredPlaceholder')"
  7 + @change="changeDiscountType" style="width: 100%">
17 <el-option disabled value="">{{ $t('addPayFeeConfigDiscount.selectDiscountType') }}</el-option> 8 <el-option disabled value="">{{ $t('addPayFeeConfigDiscount.selectDiscountType') }}</el-option>
18 - <el-option value="1001">{{ $t('addPayFeeConfigDiscount.discount') }}</el-option>  
19 - <el-option value="2002">{{ $t('addPayFeeConfigDiscount.penalty') }}</el-option> 9 + <el-option value="1001" :label="$t('addPayFeeConfigDiscount.discount')">{{
  10 + $t('addPayFeeConfigDiscount.discount') }}</el-option>
  11 + <el-option value="2002" :label="$t('addPayFeeConfigDiscount.penalty')">{{
  12 + $t('addPayFeeConfigDiscount.penalty') }}</el-option>
20 </el-select> 13 </el-select>
21 </el-form-item> 14 </el-form-item>
22 15
23 <el-form-item :label="$t('addPayFeeConfigDiscount.discountName')" prop="discountId"> 16 <el-form-item :label="$t('addPayFeeConfigDiscount.discountName')" prop="discountId">
24 - <el-select  
25 - v-model="form.discountId"  
26 - :placeholder="$t('addPayFeeConfigDiscount.requiredPlaceholder')"  
27 - style="width: 100%"  
28 - > 17 + <el-select v-model="form.discountId" :placeholder="$t('addPayFeeConfigDiscount.requiredPlaceholder')"
  18 + style="width: 100%">
29 <el-option disabled value="">{{ $t('addPayFeeConfigDiscount.selectDiscountName') }}</el-option> 19 <el-option disabled value="">{{ $t('addPayFeeConfigDiscount.selectDiscountName') }}</el-option>
30 - <el-option  
31 - v-for="item in discounts"  
32 - :key="item.discountId"  
33 - :label="item.discountName"  
34 - :value="item.discountId"  
35 - /> 20 + <el-option v-for="item in discounts" :key="item.discountId" :label="item.discountName"
  21 + :value="item.discountId" />
36 </el-select> 22 </el-select>
37 </el-form-item> 23 </el-form-item>
38 24
39 <el-form-item :label="$t('addPayFeeConfigDiscount.paymentPeriod')" required> 25 <el-form-item :label="$t('addPayFeeConfigDiscount.paymentPeriod')" required>
40 <el-col :span="11"> 26 <el-col :span="11">
41 <el-form-item prop="startTime"> 27 <el-form-item prop="startTime">
42 - <el-date-picker  
43 - v-model="form.startTime"  
44 - type="datetime"  
45 - :placeholder="$t('addPayFeeConfigDiscount.startTimePlaceholder')"  
46 - style="width: 100%"  
47 - /> 28 + <el-date-picker v-model="form.startTime" type="datetime"
  29 + :placeholder="$t('addPayFeeConfigDiscount.startTimePlaceholder')" style="width: 100%"
  30 + value-format="yyyy-MM-dd HH:mm:ss" />
48 </el-form-item> 31 </el-form-item>
49 <div class="el-form-item__tip">{{ $t('addPayFeeConfigDiscount.paymentPeriodTip') }}</div> 32 <div class="el-form-item__tip">{{ $t('addPayFeeConfigDiscount.paymentPeriodTip') }}</div>
50 </el-col> 33 </el-col>
51 <el-col :span="2" class="text-center">-</el-col> 34 <el-col :span="2" class="text-center">-</el-col>
52 <el-col :span="11"> 35 <el-col :span="11">
53 <el-form-item prop="endTime"> 36 <el-form-item prop="endTime">
54 - <el-date-picker  
55 - v-model="form.endTime"  
56 - type="datetime"  
57 - :placeholder="$t('addPayFeeConfigDiscount.endTimePlaceholder')"  
58 - style="width: 100%"  
59 - /> 37 + <el-date-picker v-model="form.endTime" type="datetime"
  38 + :placeholder="$t('addPayFeeConfigDiscount.endTimePlaceholder')" style="width: 100%"
  39 + value-format="yyyy-MM-dd HH:mm:ss" />
60 </el-form-item> 40 </el-form-item>
61 </el-col> 41 </el-col>
62 </el-form-item> 42 </el-form-item>
63 43
64 - <el-form-item  
65 - v-if="form.discountType !== '2002'"  
66 - :label="$t('addPayFeeConfigDiscount.discountEndTime')"  
67 - prop="payMaxEndTime"  
68 - >  
69 - <el-date-picker  
70 - v-model="form.payMaxEndTime"  
71 - type="datetime"  
72 - :placeholder="$t('addPayFeeConfigDiscount.discountEndTimePlaceholder')"  
73 - style="width: 100%"  
74 - /> 44 + <el-form-item v-if="form.discountType !== '2002'" :label="$t('addPayFeeConfigDiscount.discountEndTime')"
  45 + prop="payMaxEndTime">
  46 + <el-date-picker v-model="form.payMaxEndTime" type="datetime"
  47 + :placeholder="$t('addPayFeeConfigDiscount.discountEndTimePlaceholder')" style="width: 100%"
  48 + value-format="yyyy-MM-dd HH:mm:ss" />
75 <div class="el-form-item__tip">{{ $t('addPayFeeConfigDiscount.discountEndTimeTip') }}</div> 49 <div class="el-form-item__tip">{{ $t('addPayFeeConfigDiscount.discountEndTimeTip') }}</div>
76 </el-form-item> 50 </el-form-item>
77 </el-form> 51 </el-form>
@@ -144,7 +118,7 @@ export default { @@ -144,7 +118,7 @@ export default {
144 }, 118 },
145 async changeDiscountType() { 119 async changeDiscountType() {
146 if (!this.form.discountType) return 120 if (!this.form.discountType) return
147 - 121 +
148 try { 122 try {
149 const params = { 123 const params = {
150 page: 1, 124 page: 1,
@@ -161,7 +135,7 @@ export default { @@ -161,7 +135,7 @@ export default {
161 async savePayFeeConfigDiscount() { 135 async savePayFeeConfigDiscount() {
162 this.$refs.form.validate(async valid => { 136 this.$refs.form.validate(async valid => {
163 if (!valid) return 137 if (!valid) return
164 - 138 +
165 try { 139 try {
166 this.loading = true 140 this.loading = true
167 await savePayFeeConfigDiscount(this.form) 141 await savePayFeeConfigDiscount(this.form)
@@ -183,6 +157,7 @@ export default { @@ -183,6 +157,7 @@ export default {
183 .text-center { 157 .text-center {
184 text-align: center; 158 text-align: center;
185 } 159 }
  160 +
186 .el-form-item__tip { 161 .el-form-item__tip {
187 text-align: left; 162 text-align: left;
188 color: #999; 163 color: #999;
src/components/fee/applyRoomDiscountRecord.vue
@@ -96,8 +96,10 @@ export default { @@ -96,8 +96,10 @@ export default {
96 isTrue: null, 96 isTrue: null,
97 communityId: '' 97 communityId: ''
98 } 98 }
99 - this.$refs.uploadImageUrl.clear()  
100 - this.$refs.uploadVedio.clear() 99 + setTimeout(() => {
  100 + this.$refs.uploadImageUrl.clearImages()
  101 + this.$refs.uploadVedio.clear()
  102 + }, 500)
101 }, 103 },
102 handleClose() { 104 handleClose() {
103 this.visible = false 105 this.visible = false
src/components/fee/editApplyRoomDiscount.vue
@@ -93,17 +93,17 @@ export default { @@ -93,17 +93,17 @@ export default {
93 ...data, 93 ...data,
94 communityId: getCommunityId() 94 communityId: getCommunityId()
95 } 95 }
96 - this.$nextTick(() => { 96 + setTimeout(() => {
97 if (this.$refs.uploadImage) { 97 if (this.$refs.uploadImage) {
98 this.$refs.uploadImage.setImages(this.form.urls || []) 98 this.$refs.uploadImage.setImages(this.form.urls || [])
99 } 99 }
100 - }) 100 + }, 500)
101 this.visible = true 101 this.visible = true
102 }, 102 },
103 handleClose() { 103 handleClose() {
104 this.$refs.form.resetFields() 104 this.$refs.form.resetFields()
105 if (this.$refs.uploadImage) { 105 if (this.$refs.uploadImage) {
106 - this.$refs.uploadImage.clear() 106 + this.$refs.uploadImage.close()
107 } 107 }
108 this.form = { 108 this.form = {
109 ardId: '', 109 ardId: '',
src/components/fee/editApplyRoomDiscountType.vue
1 <template> 1 <template>
2 - <el-dialog  
3 - :title="$t('discountType.edit.title')"  
4 - :visible.sync="visible"  
5 - width="50%"  
6 - @close="handleClose"  
7 - >  
8 - <el-form  
9 - ref="form"  
10 - :model="formData"  
11 - :rules="rules"  
12 - label-width="120px"  
13 - >  
14 - <el-form-item  
15 - :label="$t('discountType.form.applyType')"  
16 - prop="applyType"  
17 - >  
18 - <el-input  
19 - v-model="formData.applyType"  
20 - disabled  
21 - /> 2 + <el-dialog :title="$t('discountType.edit.title')" :visible.sync="visible" width="40%" @close="handleClose">
  3 + <el-form ref="form" :model="formData" :rules="rules" label-width="120px">
  4 + <el-form-item :label="$t('discountType.form.applyType')" prop="applyType">
  5 + <el-input v-model="formData.applyType" disabled />
22 </el-form-item> 6 </el-form-item>
23 - <el-form-item  
24 - :label="$t('discountType.form.typeName')"  
25 - prop="typeName"  
26 - >  
27 - <el-input  
28 - v-model="formData.typeName"  
29 - :placeholder="$t('discountType.form.typeNamePlaceholder')"  
30 - /> 7 + <el-form-item :label="$t('discountType.form.typeName')" prop="typeName">
  8 + <el-input v-model="formData.typeName" :placeholder="$t('discountType.form.typeNamePlaceholder')" />
31 </el-form-item> 9 </el-form-item>
32 - <el-form-item  
33 - :label="$t('discountType.form.typeDesc')"  
34 - prop="typeDesc"  
35 - >  
36 - <el-input  
37 - v-model="formData.typeDesc"  
38 - type="textarea"  
39 - :placeholder="$t('discountType.form.typeDescPlaceholder')"  
40 - :rows="3"  
41 - /> 10 + <el-form-item :label="$t('discountType.form.typeDesc')" prop="typeDesc">
  11 + <el-input v-model="formData.typeDesc" type="textarea" :placeholder="$t('discountType.form.typeDescPlaceholder')"
  12 + :rows="3" />
42 </el-form-item> 13 </el-form-item>
43 </el-form> 14 </el-form>
44 15
src/components/fee/editFeeDiscount.vue
1 <template> 1 <template>
2 - <el-dialog  
3 - :title="$t('feeDiscountManage.edit.title')"  
4 - :visible.sync="visible"  
5 - width="60%"  
6 - @close="handleClose"  
7 - >  
8 - <el-form  
9 - ref="form"  
10 - :model="editFeeDiscountInfo"  
11 - label-width="120px"  
12 - :rules="rules"  
13 - >  
14 - <el-form-item  
15 - :label="$t('feeDiscountManage.edit.discountName')"  
16 - prop="discountName"  
17 - >  
18 - <el-input  
19 - v-model.trim="editFeeDiscountInfo.discountName"  
20 - :placeholder="$t('feeDiscountManage.edit.discountNamePlaceholder')"  
21 - /> 2 + <el-dialog :title="$t('feeDiscountManage.edit.title')" :visible.sync="visible" width="40%" @close="handleClose">
  3 + <el-form ref="form" :model="editFeeDiscountInfo" label-width="120px" :rules="rules">
  4 + <el-form-item :label="$t('feeDiscountManage.edit.discountName')" prop="discountName">
  5 + <el-input v-model.trim="editFeeDiscountInfo.discountName"
  6 + :placeholder="$t('feeDiscountManage.edit.discountNamePlaceholder')" />
22 </el-form-item> 7 </el-form-item>
23 - <el-form-item  
24 - :label="$t('feeDiscountManage.edit.discountType')"  
25 - prop="discountType"  
26 - >  
27 - <el-select  
28 - v-model="editFeeDiscountInfo.discountType"  
29 - :placeholder="$t('feeDiscountManage.edit.discountTypePlaceholder')"  
30 - style="width:100%"  
31 - @change="_changeEditFeeDiscountType"  
32 - >  
33 - <el-option  
34 - v-for="item in editFeeDiscountInfo.discountTypes"  
35 - :key="item.statusCd"  
36 - :label="item.name"  
37 - :value="item.statusCd"  
38 - /> 8 + <el-form-item :label="$t('feeDiscountManage.edit.discountType')" prop="discountType">
  9 + <el-select v-model="editFeeDiscountInfo.discountType"
  10 + :placeholder="$t('feeDiscountManage.edit.discountTypePlaceholder')" style="width:100%"
  11 + @change="_changeEditFeeDiscountType">
  12 + <el-option v-for="item in editFeeDiscountInfo.discountTypes" :key="item.statusCd" :label="item.name"
  13 + :value="item.statusCd" />
39 </el-select> 14 </el-select>
40 </el-form-item> 15 </el-form-item>
41 - <el-form-item  
42 - :label="$t('feeDiscountManage.edit.rule')"  
43 - prop="ruleId"  
44 - >  
45 - <el-select  
46 - v-model="editFeeDiscountInfo.ruleId"  
47 - :placeholder="$t('feeDiscountManage.edit.rulePlaceholder')"  
48 - style="width:100%"  
49 - @change="_changeEditFeeDiscountRule"  
50 - >  
51 - <el-option  
52 - v-for="item in editFeeDiscountInfo.rules"  
53 - :key="item.ruleId"  
54 - :label="item.ruleName"  
55 - :value="item.ruleId"  
56 - /> 16 + <el-form-item :label="$t('feeDiscountManage.edit.rule')" prop="ruleId">
  17 + <el-select v-model="editFeeDiscountInfo.ruleId" :placeholder="$t('feeDiscountManage.edit.rulePlaceholder')"
  18 + style="width:100%" @change="_changeEditFeeDiscountRule">
  19 + <el-option v-for="item in editFeeDiscountInfo.rules" :key="item.ruleId" :label="item.ruleName"
  20 + :value="item.ruleId" />
57 </el-select> 21 </el-select>
58 </el-form-item> 22 </el-form-item>
59 - <el-form-item  
60 - v-for="(item,index) in editFeeDiscountInfo.feeDiscountRuleSpecs"  
61 - :key="index"  
62 - :label="item.specName"  
63 - :prop="'feeDiscountRuleSpecs.' + index + '.specValue'"  
64 - :rules="{ 23 + <el-form-item v-for="(item, index) in editFeeDiscountInfo.feeDiscountRuleSpecs" :key="index" :label="item.specName"
  24 + :prop="'feeDiscountRuleSpecs.' + index + '.specValue'" :rules="{
65 required: true, 25 required: true,
66 - message: $t('feeDiscountManage.edit.specValueRequired', {specName: item.specName}), 26 + message: $t('feeDiscountManage.edit.specValueRequired', { specName: item.specName }),
67 trigger: 'blur' 27 trigger: 'blur'
68 - }"  
69 - >  
70 - <el-input  
71 - v-model.trim="item.specValue"  
72 - type="number"  
73 - :placeholder="item.remark"  
74 - /> 28 + }">
  29 + <el-input v-model.trim="item.specValue" type="number" :placeholder="item.remark" />
75 </el-form-item> 30 </el-form-item>
76 <el-form-item :label="$t('feeDiscountManage.edit.discountDesc')"> 31 <el-form-item :label="$t('feeDiscountManage.edit.discountDesc')">
77 - <el-input  
78 - v-model.trim="editFeeDiscountInfo.discountDesc"  
79 - type="textarea"  
80 - :placeholder="$t('feeDiscountManage.edit.discountDescPlaceholder')"  
81 - :rows="3"  
82 - /> 32 + <el-input v-model.trim="editFeeDiscountInfo.discountDesc" type="textarea"
  33 + :placeholder="$t('feeDiscountManage.edit.discountDescPlaceholder')" :rows="3" />
83 </el-form-item> 34 </el-form-item>
84 </el-form> 35 </el-form>
85 <span slot="footer" class="dialog-footer"> 36 <span slot="footer" class="dialog-footer">
@@ -164,7 +115,7 @@ export default { @@ -164,7 +115,7 @@ export default {
164 }, 115 },
165 async _loadEditFeeDiscountRules() { 116 async _loadEditFeeDiscountRules() {
166 if (!this.editFeeDiscountInfo.discountType) return 117 if (!this.editFeeDiscountInfo.discountType) return
167 - 118 +
168 try { 119 try {
169 const params = { 120 const params = {
170 page: 1, 121 page: 1,
@@ -196,7 +147,7 @@ export default { @@ -196,7 +147,7 @@ export default {
196 async editFeeDiscount() { 147 async editFeeDiscount() {
197 this.$refs.form.validate(async valid => { 148 this.$refs.form.validate(async valid => {
198 if (!valid) return 149 if (!valid) return
199 - 150 +
200 try { 151 try {
201 await updateFeeDiscount(this.editFeeDiscountInfo) 152 await updateFeeDiscount(this.editFeeDiscountInfo)
202 this.$message.success(this.$t('common.saveSuccess')) 153 this.$message.success(this.$t('common.saveSuccess'))
src/components/fee/reviewApplyRoomDiscount.vue
@@ -103,6 +103,7 @@ @@ -103,6 +103,7 @@
103 import { queryFeeDiscount, updateReviewApplyRoomDiscount } from '@/api/fee/applyRoomDiscountManageApi' 103 import { queryFeeDiscount, updateReviewApplyRoomDiscount } from '@/api/fee/applyRoomDiscountManageApi'
104 import ViewImage from '@/components/system/viewImage' 104 import ViewImage from '@/components/system/viewImage'
105 import { getCommunityId } from '@/api/community/communityApi' 105 import { getCommunityId } from '@/api/community/communityApi'
  106 +import { queryFeeDetail } from '@/api/fee/propertyFeeApi'
106 107
107 export default { 108 export default {
108 name: 'ReviewApplyRoomDiscount', 109 name: 'ReviewApplyRoomDiscount',
@@ -228,14 +229,14 @@ export default { @@ -228,14 +229,14 @@ export default {
228 }, 229 },
229 async loadFees() { 230 async loadFees() {
230 try { 231 try {
231 - const { data } = await this.$api.fee.queryFeeDetail({ 232 + const { feeDetails } = await queryFeeDetail({
232 page: 1, 233 page: 1,
233 row: 50, 234 row: 50,
234 communityId: this.form.communityId, 235 communityId: this.form.communityId,
235 feeId: this.form.feeId, 236 feeId: this.form.feeId,
236 state: '1400' 237 state: '1400'
237 }) 238 })
238 - this.fees = data.feeDetails 239 + this.fees = feeDetails
239 } catch (error) { 240 } catch (error) {
240 console.error('加载缴费记录失败:', error) 241 console.error('加载缴费记录失败:', error)
241 } 242 }
@@ -266,7 +267,9 @@ export default { @@ -266,7 +267,9 @@ export default {
266 return `/callComponent/download/getFile/file?fileId=${url}&communityId=-1&time=${new Date().getTime()}` 267 return `/callComponent/download/getFile/file?fileId=${url}&communityId=-1&time=${new Date().getTime()}`
267 }, 268 },
268 showImage(url) { 269 showImage(url) {
269 - this.$refs.viewImage.open(this.getImageUrl(url)) 270 + setTimeout(() => {
  271 + this.$refs.viewImage.open(this.getImageUrl(url))
  272 + }, 100)
270 }, 273 },
271 submitForm() { 274 submitForm() {
272 this.$refs.form.validate(valid => { 275 this.$refs.form.validate(valid => {
src/views/fee/discountTypeList.vue
@@ -2,23 +2,15 @@ @@ -2,23 +2,15 @@
2 <div class="discount-type-container"> 2 <div class="discount-type-container">
3 <!-- 查询条件 --> 3 <!-- 查询条件 -->
4 <el-card class="search-card"> 4 <el-card class="search-card">
5 - <div slot="header" class="clearfix"> 5 + <div slot="header" class="flex justify-between">
6 <span>{{ $t('discountType.search.title') }}</span> 6 <span>{{ $t('discountType.search.title') }}</span>
7 </div> 7 </div>
8 <el-row :gutter="20"> 8 <el-row :gutter="20">
9 <el-col :span="6"> 9 <el-col :span="6">
10 - <el-input  
11 - v-model.trim="searchForm.applyType"  
12 - :placeholder="$t('discountType.search.applyType')"  
13 - clearable  
14 - /> 10 + <el-input v-model.trim="searchForm.applyType" :placeholder="$t('discountType.search.applyType')" clearable />
15 </el-col> 11 </el-col>
16 <el-col :span="6"> 12 <el-col :span="6">
17 - <el-input  
18 - v-model.trim="searchForm.typeName"  
19 - :placeholder="$t('discountType.search.typeName')"  
20 - clearable  
21 - /> 13 + <el-input v-model.trim="searchForm.typeName" :placeholder="$t('discountType.search.typeName')" clearable />
22 </el-col> 14 </el-col>
23 <el-col :span="4"> 15 <el-col :span="4">
24 <el-button type="primary" @click="handleSearch"> 16 <el-button type="primary" @click="handleSearch">
@@ -30,7 +22,7 @@ @@ -30,7 +22,7 @@
30 22
31 <!-- 列表 --> 23 <!-- 列表 -->
32 <el-card class="list-card"> 24 <el-card class="list-card">
33 - <div slot="header" class="clearfix"> 25 + <div slot="header" class="flex justify-between">
34 <span>{{ $t('discountType.list.title') }}</span> 26 <span>{{ $t('discountType.list.title') }}</span>
35 <div style="float: right;"> 27 <div style="float: right;">
36 <el-button type="primary" size="small" @click="handleAdd"> 28 <el-button type="primary" size="small" @click="handleAdd">
@@ -42,65 +34,26 @@ @@ -42,65 +34,26 @@
42 </div> 34 </div>
43 </div> 35 </div>
44 36
45 - <el-table  
46 - v-loading="loading"  
47 - :data="tableData"  
48 - border  
49 - style="width: 100%"  
50 - >  
51 - <el-table-column  
52 - prop="applyType"  
53 - :label="$t('discountType.table.applyType')"  
54 - align="center"  
55 - />  
56 - <el-table-column  
57 - prop="typeName"  
58 - :label="$t('discountType.table.typeName')"  
59 - align="center"  
60 - />  
61 - <el-table-column  
62 - prop="typeDesc"  
63 - :label="$t('discountType.table.typeDesc')"  
64 - align="center"  
65 - />  
66 - <el-table-column  
67 - prop="createTime"  
68 - :label="$t('discountType.table.createTime')"  
69 - align="center"  
70 - />  
71 - <el-table-column  
72 - :label="$t('common.operation')"  
73 - align="center"  
74 - width="200"  
75 - > 37 + <el-table v-loading="loading" :data="tableData" border style="width: 100%">
  38 + <el-table-column prop="applyType" :label="$t('discountType.table.applyType')" align="center" />
  39 + <el-table-column prop="typeName" :label="$t('discountType.table.typeName')" align="center" />
  40 + <el-table-column prop="typeDesc" :label="$t('discountType.table.typeDesc')" align="center" />
  41 + <el-table-column prop="createTime" :label="$t('discountType.table.createTime')" align="center" />
  42 + <el-table-column :label="$t('common.operation')" align="center" width="200">
76 <template slot-scope="scope"> 43 <template slot-scope="scope">
77 - <el-button  
78 - size="mini"  
79 - type="primary"  
80 - @click="handleEdit(scope.row)"  
81 - > 44 + <el-button size="mini" type="primary" @click="handleEdit(scope.row)">
82 {{ $t('common.edit') }} 45 {{ $t('common.edit') }}
83 </el-button> 46 </el-button>
84 - <el-button  
85 - size="mini"  
86 - type="danger"  
87 - @click="handleDelete(scope.row)"  
88 - > 47 + <el-button size="mini" type="danger" @click="handleDelete(scope.row)">
89 {{ $t('common.delete') }} 48 {{ $t('common.delete') }}
90 </el-button> 49 </el-button>
91 </template> 50 </template>
92 </el-table-column> 51 </el-table-column>
93 </el-table> 52 </el-table>
94 53
95 - <el-pagination  
96 - :current-page.sync="page.current"  
97 - :page-sizes="[10, 20, 30, 50]"  
98 - :page-size="page.size"  
99 - :total="page.total"  
100 - layout="total, sizes, prev, pager, next, jumper"  
101 - @size-change="handleSizeChange"  
102 - @current-change="handleCurrentChange"  
103 - /> 54 + <el-pagination :current-page.sync="page.current" :page-sizes="[10, 20, 30, 50]" :page-size="page.size"
  55 + :total="page.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
  56 + @current-change="handleCurrentChange" />
104 </el-card> 57 </el-card>
105 58
106 <!-- 组件 --> 59 <!-- 组件 -->
src/views/fee/payFeeConfigDiscountManageList.vue
@@ -18,7 +18,11 @@ @@ -18,7 +18,11 @@
18 18
19 <el-table :data="payFeeConfigDiscounts" border style="width: 100%"> 19 <el-table :data="payFeeConfigDiscounts" border style="width: 100%">
20 <el-table-column prop="configDiscountId" :label="$t('payFeeConfigDiscountManage.discountId')" align="center" /> 20 <el-table-column prop="configDiscountId" :label="$t('payFeeConfigDiscountManage.discountId')" align="center" />
21 - <el-table-column prop="feeName" :label="$t('payFeeConfigDiscountManage.feeName')" align="center" /> 21 + <el-table-column prop="feeName" :label="$t('payFeeConfigDiscountManage.feeName')" align="center" >
  22 + <template >
  23 + {{ feeName }}
  24 + </template>
  25 + </el-table-column>
22 <el-table-column prop="discountName" :label="$t('payFeeConfigDiscountManage.discountName')" align="center" /> 26 <el-table-column prop="discountName" :label="$t('payFeeConfigDiscountManage.discountName')" align="center" />
23 <el-table-column :label="$t('payFeeConfigDiscountManage.rule')" align="center"> 27 <el-table-column :label="$t('payFeeConfigDiscountManage.rule')" align="center">
24 <template slot-scope="scope"> 28 <template slot-scope="scope">
@@ -29,7 +33,8 @@ @@ -29,7 +33,8 @@
29 </el-table-column> 33 </el-table-column>
30 <el-table-column :label="$t('payFeeConfigDiscountManage.discountType')" align="center"> 34 <el-table-column :label="$t('payFeeConfigDiscountManage.discountType')" align="center">
31 <template slot-scope="scope"> 35 <template slot-scope="scope">
32 - {{ scope.row.discountType === '1001' ? $t('payFeeConfigDiscountManage.discount') : $t('payFeeConfigDiscountManage.penalty') }} 36 + {{ scope.row.discountType === '1001' ? $t('payFeeConfigDiscountManage.discount') :
  37 + $t('payFeeConfigDiscountManage.penalty') }}
33 </template> 38 </template>
34 </el-table-column> 39 </el-table-column>
35 <el-table-column :label="$t('payFeeConfigDiscountManage.paymentPeriod')" align="center"> 40 <el-table-column :label="$t('payFeeConfigDiscountManage.paymentPeriod')" align="center">
@@ -55,15 +60,9 @@ @@ -55,15 +60,9 @@
55 <div>{{ $t('payFeeConfigDiscountManage.currentYearTip2') }}</div> 60 <div>{{ $t('payFeeConfigDiscountManage.currentYearTip2') }}</div>
56 </el-col> 61 </el-col>
57 <el-col :span="3" class="text-right"> 62 <el-col :span="3" class="text-right">
58 - <el-pagination  
59 - :current-page.sync="page.current"  
60 - :page-sizes="[10, 20, 30, 50]"  
61 - :page-size="page.size"  
62 - :total="page.total"  
63 - layout="total, prev, pager, next"  
64 - @size-change="handleSizeChange"  
65 - @current-change="handleCurrentChange"  
66 - /> 63 + <el-pagination :current-page.sync="page.current" :page-sizes="[10, 20, 30, 50]" :page-size="page.size"
  64 + :total="page.total" layout="total, prev, pager, next" @size-change="handleSizeChange"
  65 + @current-change="handleCurrentChange" />
67 </el-col> 66 </el-col>
68 </el-row> 67 </el-row>
69 68
@@ -145,9 +144,11 @@ export default { @@ -145,9 +144,11 @@ export default {
145 .margin-top-xs { 144 .margin-top-xs {
146 margin-top: 20px; 145 margin-top: 20px;
147 } 146 }
  147 +
148 .text-right { 148 .text-right {
149 text-align: right; 149 text-align: right;
150 } 150 }
  151 +
151 .discount-desc { 152 .discount-desc {
152 text-align: left; 153 text-align: left;
153 font-size: 13px; 154 font-size: 13px;