Commit 76d4c8fc70d9dbab836cc06f8c2c0097b596b12d
1 parent
06ec2cd7
优惠需要申请测试中
Showing
11 changed files
with
118 additions
and
284 deletions
src/components/fee/addApplyRoomDiscount.vue
| 1 | 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 | 3 | <el-form ref="form" :model="form" :rules="rules" label-width="120px"> |
| 4 | 4 | <el-form-item :label="$t('applyRoomDiscount.add.room')" prop="roomName"> |
| 5 | 5 | <el-input v-model.trim="form.roomName" :placeholder="$t('applyRoomDiscount.add.roomPlaceholder')" |
| ... | ... | @@ -64,9 +64,10 @@ |
| 64 | 64 | </template> |
| 65 | 65 | |
| 66 | 66 | <script> |
| 67 | -import { queryApplyRoomDiscountType ,listRoomsWhereFeeSet} from '@/api/fee/applyRoomDiscountManageApi' | |
| 67 | +import { queryApplyRoomDiscountType, listRoomsWhereFeeSet,saveApplyRoomDiscount } from '@/api/fee/applyRoomDiscountManageApi' | |
| 68 | 68 | import UploadImageUrl from '@/components/upload/UploadImageUrl' |
| 69 | 69 | import { getCommunityId } from '@/api/community/communityApi' |
| 70 | +import { listFee } from '@/api/fee/feeApi' | |
| 70 | 71 | |
| 71 | 72 | export default { |
| 72 | 73 | name: 'AddApplyRoomDiscount', |
| ... | ... | @@ -130,7 +131,7 @@ export default { |
| 130 | 131 | }, |
| 131 | 132 | handleClose() { |
| 132 | 133 | this.$refs.form.resetFields() |
| 133 | - this.$refs.uploadImage.clear() | |
| 134 | + this.$refs.uploadImage.close() | |
| 134 | 135 | this.form = { |
| 135 | 136 | roomName: '', |
| 136 | 137 | roomId: '', |
| ... | ... | @@ -150,7 +151,7 @@ export default { |
| 150 | 151 | const { data } = await queryApplyRoomDiscountType({ |
| 151 | 152 | page: 1, |
| 152 | 153 | row: 50, |
| 153 | - communityId: this.form.communityId | |
| 154 | + communityId: getCommunityId() | |
| 154 | 155 | }) |
| 155 | 156 | this.applyTypes = data |
| 156 | 157 | } catch (error) { |
| ... | ... | @@ -171,7 +172,7 @@ export default { |
| 171 | 172 | const params = { |
| 172 | 173 | page: 1, |
| 173 | 174 | row: 1, |
| 174 | - communityId: this.form.communityId, | |
| 175 | + communityId: getCommunityId(), | |
| 175 | 176 | flag: 0, |
| 176 | 177 | floorNum: parts[0].trim(), |
| 177 | 178 | unitNum: parts[1].trim(), |
| ... | ... | @@ -199,13 +200,13 @@ export default { |
| 199 | 200 | const params = { |
| 200 | 201 | page: 1, |
| 201 | 202 | row: 50, |
| 202 | - communityId: this.form.communityId, | |
| 203 | + communityId: getCommunityId(), | |
| 203 | 204 | payerObjId: this.form.roomId, |
| 204 | 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 | 210 | } catch (error) { |
| 210 | 211 | console.error('查询费用项失败:', error) |
| 211 | 212 | } |
| ... | ... | @@ -233,7 +234,7 @@ export default { |
| 233 | 234 | async saveApplyRoomDiscount() { |
| 234 | 235 | try { |
| 235 | 236 | this.form.communityId = getCommunityId() |
| 236 | - await this.$api.applyRoomDiscount.saveApplyRoomDiscount(this.form) | |
| 237 | + await saveApplyRoomDiscount(this.form) | |
| 237 | 238 | this.$message.success(this.$t('applyRoomDiscount.message.saveSuccess')) |
| 238 | 239 | this.visible = false |
| 239 | 240 | this.$emit('success') | ... | ... |
src/components/fee/addApplyRoomDiscountType.vue
| 1 | 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 | 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 | 10 | </el-form-item> |
| 34 | 11 | </el-form> |
| 35 | 12 | ... | ... |
src/components/fee/addFeeDiscount.vue
| 1 | 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 | 3 | <el-form ref="form" :model="addFeeDiscountInfo" label-width="120px" :rules="rules"> |
| 4 | 4 | <el-form-item :label="$t('feeDiscountManage.add.discountName')" prop="discountName"> |
| 5 | 5 | <el-input v-model.trim="addFeeDiscountInfo.discountName" | ... | ... |
src/components/fee/addPayFeeConfigDiscount.vue
| 1 | 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 | 4 | <el-form ref="form" :model="form" :rules="rules" label-width="160px"> |
| 10 | 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 | 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 | 13 | </el-select> |
| 21 | 14 | </el-form-item> |
| 22 | 15 | |
| 23 | 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 | 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 | 22 | </el-select> |
| 37 | 23 | </el-form-item> |
| 38 | 24 | |
| 39 | 25 | <el-form-item :label="$t('addPayFeeConfigDiscount.paymentPeriod')" required> |
| 40 | 26 | <el-col :span="11"> |
| 41 | 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 | 31 | </el-form-item> |
| 49 | 32 | <div class="el-form-item__tip">{{ $t('addPayFeeConfigDiscount.paymentPeriodTip') }}</div> |
| 50 | 33 | </el-col> |
| 51 | 34 | <el-col :span="2" class="text-center">-</el-col> |
| 52 | 35 | <el-col :span="11"> |
| 53 | 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 | 40 | </el-form-item> |
| 61 | 41 | </el-col> |
| 62 | 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 | 49 | <div class="el-form-item__tip">{{ $t('addPayFeeConfigDiscount.discountEndTimeTip') }}</div> |
| 76 | 50 | </el-form-item> |
| 77 | 51 | </el-form> |
| ... | ... | @@ -144,7 +118,7 @@ export default { |
| 144 | 118 | }, |
| 145 | 119 | async changeDiscountType() { |
| 146 | 120 | if (!this.form.discountType) return |
| 147 | - | |
| 121 | + | |
| 148 | 122 | try { |
| 149 | 123 | const params = { |
| 150 | 124 | page: 1, |
| ... | ... | @@ -161,7 +135,7 @@ export default { |
| 161 | 135 | async savePayFeeConfigDiscount() { |
| 162 | 136 | this.$refs.form.validate(async valid => { |
| 163 | 137 | if (!valid) return |
| 164 | - | |
| 138 | + | |
| 165 | 139 | try { |
| 166 | 140 | this.loading = true |
| 167 | 141 | await savePayFeeConfigDiscount(this.form) |
| ... | ... | @@ -183,6 +157,7 @@ export default { |
| 183 | 157 | .text-center { |
| 184 | 158 | text-align: center; |
| 185 | 159 | } |
| 160 | + | |
| 186 | 161 | .el-form-item__tip { |
| 187 | 162 | text-align: left; |
| 188 | 163 | color: #999; | ... | ... |
src/components/fee/applyRoomDiscountRecord.vue
| ... | ... | @@ -96,8 +96,10 @@ export default { |
| 96 | 96 | isTrue: null, |
| 97 | 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 | 104 | handleClose() { |
| 103 | 105 | this.visible = false | ... | ... |
src/components/fee/editApplyRoomDiscount.vue
| ... | ... | @@ -93,17 +93,17 @@ export default { |
| 93 | 93 | ...data, |
| 94 | 94 | communityId: getCommunityId() |
| 95 | 95 | } |
| 96 | - this.$nextTick(() => { | |
| 96 | + setTimeout(() => { | |
| 97 | 97 | if (this.$refs.uploadImage) { |
| 98 | 98 | this.$refs.uploadImage.setImages(this.form.urls || []) |
| 99 | 99 | } |
| 100 | - }) | |
| 100 | + }, 500) | |
| 101 | 101 | this.visible = true |
| 102 | 102 | }, |
| 103 | 103 | handleClose() { |
| 104 | 104 | this.$refs.form.resetFields() |
| 105 | 105 | if (this.$refs.uploadImage) { |
| 106 | - this.$refs.uploadImage.clear() | |
| 106 | + this.$refs.uploadImage.close() | |
| 107 | 107 | } |
| 108 | 108 | this.form = { |
| 109 | 109 | ardId: '', | ... | ... |
src/components/fee/editApplyRoomDiscountType.vue
| 1 | 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 | 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 | 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 | 13 | </el-form-item> |
| 43 | 14 | </el-form> |
| 44 | 15 | ... | ... |
src/components/fee/editFeeDiscount.vue
| 1 | 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 | 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 | 14 | </el-select> |
| 40 | 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 | 21 | </el-select> |
| 58 | 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 | 25 | required: true, |
| 66 | - message: $t('feeDiscountManage.edit.specValueRequired', {specName: item.specName}), | |
| 26 | + message: $t('feeDiscountManage.edit.specValueRequired', { specName: item.specName }), | |
| 67 | 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 | 30 | </el-form-item> |
| 76 | 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 | 34 | </el-form-item> |
| 84 | 35 | </el-form> |
| 85 | 36 | <span slot="footer" class="dialog-footer"> |
| ... | ... | @@ -164,7 +115,7 @@ export default { |
| 164 | 115 | }, |
| 165 | 116 | async _loadEditFeeDiscountRules() { |
| 166 | 117 | if (!this.editFeeDiscountInfo.discountType) return |
| 167 | - | |
| 118 | + | |
| 168 | 119 | try { |
| 169 | 120 | const params = { |
| 170 | 121 | page: 1, |
| ... | ... | @@ -196,7 +147,7 @@ export default { |
| 196 | 147 | async editFeeDiscount() { |
| 197 | 148 | this.$refs.form.validate(async valid => { |
| 198 | 149 | if (!valid) return |
| 199 | - | |
| 150 | + | |
| 200 | 151 | try { |
| 201 | 152 | await updateFeeDiscount(this.editFeeDiscountInfo) |
| 202 | 153 | this.$message.success(this.$t('common.saveSuccess')) | ... | ... |
src/components/fee/reviewApplyRoomDiscount.vue
| ... | ... | @@ -103,6 +103,7 @@ |
| 103 | 103 | import { queryFeeDiscount, updateReviewApplyRoomDiscount } from '@/api/fee/applyRoomDiscountManageApi' |
| 104 | 104 | import ViewImage from '@/components/system/viewImage' |
| 105 | 105 | import { getCommunityId } from '@/api/community/communityApi' |
| 106 | +import { queryFeeDetail } from '@/api/fee/propertyFeeApi' | |
| 106 | 107 | |
| 107 | 108 | export default { |
| 108 | 109 | name: 'ReviewApplyRoomDiscount', |
| ... | ... | @@ -228,14 +229,14 @@ export default { |
| 228 | 229 | }, |
| 229 | 230 | async loadFees() { |
| 230 | 231 | try { |
| 231 | - const { data } = await this.$api.fee.queryFeeDetail({ | |
| 232 | + const { feeDetails } = await queryFeeDetail({ | |
| 232 | 233 | page: 1, |
| 233 | 234 | row: 50, |
| 234 | 235 | communityId: this.form.communityId, |
| 235 | 236 | feeId: this.form.feeId, |
| 236 | 237 | state: '1400' |
| 237 | 238 | }) |
| 238 | - this.fees = data.feeDetails | |
| 239 | + this.fees = feeDetails | |
| 239 | 240 | } catch (error) { |
| 240 | 241 | console.error('加载缴费记录失败:', error) |
| 241 | 242 | } |
| ... | ... | @@ -266,7 +267,9 @@ export default { |
| 266 | 267 | return `/callComponent/download/getFile/file?fileId=${url}&communityId=-1&time=${new Date().getTime()}` |
| 267 | 268 | }, |
| 268 | 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 | 274 | submitForm() { |
| 272 | 275 | this.$refs.form.validate(valid => { | ... | ... |
src/views/fee/discountTypeList.vue
| ... | ... | @@ -2,23 +2,15 @@ |
| 2 | 2 | <div class="discount-type-container"> |
| 3 | 3 | <!-- 查询条件 --> |
| 4 | 4 | <el-card class="search-card"> |
| 5 | - <div slot="header" class="clearfix"> | |
| 5 | + <div slot="header" class="flex justify-between"> | |
| 6 | 6 | <span>{{ $t('discountType.search.title') }}</span> |
| 7 | 7 | </div> |
| 8 | 8 | <el-row :gutter="20"> |
| 9 | 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 | 11 | </el-col> |
| 16 | 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 | 14 | </el-col> |
| 23 | 15 | <el-col :span="4"> |
| 24 | 16 | <el-button type="primary" @click="handleSearch"> |
| ... | ... | @@ -30,7 +22,7 @@ |
| 30 | 22 | |
| 31 | 23 | <!-- 列表 --> |
| 32 | 24 | <el-card class="list-card"> |
| 33 | - <div slot="header" class="clearfix"> | |
| 25 | + <div slot="header" class="flex justify-between"> | |
| 34 | 26 | <span>{{ $t('discountType.list.title') }}</span> |
| 35 | 27 | <div style="float: right;"> |
| 36 | 28 | <el-button type="primary" size="small" @click="handleAdd"> |
| ... | ... | @@ -42,65 +34,26 @@ |
| 42 | 34 | </div> |
| 43 | 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 | 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 | 45 | {{ $t('common.edit') }} |
| 83 | 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 | 48 | {{ $t('common.delete') }} |
| 90 | 49 | </el-button> |
| 91 | 50 | </template> |
| 92 | 51 | </el-table-column> |
| 93 | 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 | 57 | </el-card> |
| 105 | 58 | |
| 106 | 59 | <!-- 组件 --> | ... | ... |
src/views/fee/payFeeConfigDiscountManageList.vue
| ... | ... | @@ -18,7 +18,11 @@ |
| 18 | 18 | |
| 19 | 19 | <el-table :data="payFeeConfigDiscounts" border style="width: 100%"> |
| 20 | 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 | 26 | <el-table-column prop="discountName" :label="$t('payFeeConfigDiscountManage.discountName')" align="center" /> |
| 23 | 27 | <el-table-column :label="$t('payFeeConfigDiscountManage.rule')" align="center"> |
| 24 | 28 | <template slot-scope="scope"> |
| ... | ... | @@ -29,7 +33,8 @@ |
| 29 | 33 | </el-table-column> |
| 30 | 34 | <el-table-column :label="$t('payFeeConfigDiscountManage.discountType')" align="center"> |
| 31 | 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 | 38 | </template> |
| 34 | 39 | </el-table-column> |
| 35 | 40 | <el-table-column :label="$t('payFeeConfigDiscountManage.paymentPeriod')" align="center"> |
| ... | ... | @@ -55,15 +60,9 @@ |
| 55 | 60 | <div>{{ $t('payFeeConfigDiscountManage.currentYearTip2') }}</div> |
| 56 | 61 | </el-col> |
| 57 | 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 | 66 | </el-col> |
| 68 | 67 | </el-row> |
| 69 | 68 | |
| ... | ... | @@ -145,9 +144,11 @@ export default { |
| 145 | 144 | .margin-top-xs { |
| 146 | 145 | margin-top: 20px; |
| 147 | 146 | } |
| 147 | + | |
| 148 | 148 | .text-right { |
| 149 | 149 | text-align: right; |
| 150 | 150 | } |
| 151 | + | |
| 151 | 152 | .discount-desc { |
| 152 | 153 | text-align: left; |
| 153 | 154 | font-size: 13px; | ... | ... |