Commit e2d2dbfb5c6131827e73c885b0f20a346faeb1bd
1 parent
94d16c26
优化房屋收费页面 的批量催缴单
Showing
6 changed files
with
70 additions
and
163 deletions
src/api/fee/addOweFeeCallableApi.js
| @@ -49,11 +49,8 @@ export function listFeeConfigs(params) { | @@ -49,11 +49,8 @@ export function listFeeConfigs(params) { | ||
| 49 | params | 49 | params |
| 50 | }).then(response => { | 50 | }).then(response => { |
| 51 | const res = response.data | 51 | const res = response.data |
| 52 | - if (res.code === 0) { | ||
| 53 | resolve(res) | 52 | resolve(res) |
| 54 | - } else { | ||
| 55 | - reject(new Error(res.msg)) | ||
| 56 | - } | 53 | + |
| 57 | }).catch(error => { | 54 | }).catch(error => { |
| 58 | reject(error) | 55 | reject(error) |
| 59 | }) | 56 | }) |
| @@ -69,11 +66,8 @@ export function queryFloors(params) { | @@ -69,11 +66,8 @@ export function queryFloors(params) { | ||
| 69 | params | 66 | params |
| 70 | }).then(response => { | 67 | }).then(response => { |
| 71 | const res = response.data | 68 | const res = response.data |
| 72 | - if (res.code === 0) { | ||
| 73 | resolve(res) | 69 | resolve(res) |
| 74 | - } else { | ||
| 75 | - reject(new Error(res.msg)) | ||
| 76 | - } | 70 | + |
| 77 | }).catch(error => { | 71 | }).catch(error => { |
| 78 | reject(error) | 72 | reject(error) |
| 79 | }) | 73 | }) |
| @@ -89,11 +83,8 @@ export function queryReportOweFee(params) { | @@ -89,11 +83,8 @@ export function queryReportOweFee(params) { | ||
| 89 | params | 83 | params |
| 90 | }).then(response => { | 84 | }).then(response => { |
| 91 | const res = response.data | 85 | const res = response.data |
| 92 | - if (res.code === 0) { | ||
| 93 | resolve(res) | 86 | resolve(res) |
| 94 | - } else { | ||
| 95 | - reject(new Error(res.msg)) | ||
| 96 | - } | 87 | + |
| 97 | }).catch(error => { | 88 | }).catch(error => { |
| 98 | reject(error) | 89 | reject(error) |
| 99 | }) | 90 | }) |
src/api/fee/exportFeeImportExcelApi.js
| @@ -27,11 +27,8 @@ export function listFeeConfigs(params) { | @@ -27,11 +27,8 @@ export function listFeeConfigs(params) { | ||
| 27 | params | 27 | params |
| 28 | }).then(response => { | 28 | }).then(response => { |
| 29 | const res = response.data | 29 | const res = response.data |
| 30 | - if (res.code === 0) { | ||
| 31 | resolve(res) | 30 | resolve(res) |
| 32 | - } else { | ||
| 33 | - reject(new Error(res.msg || 'Failed to list fee configs')) | ||
| 34 | - } | 31 | + |
| 35 | }).catch(error => { | 32 | }).catch(error => { |
| 36 | reject(error) | 33 | reject(error) |
| 37 | }) | 34 | }) |
| @@ -46,11 +43,8 @@ export function queryFloors(params) { | @@ -46,11 +43,8 @@ export function queryFloors(params) { | ||
| 46 | params | 43 | params |
| 47 | }).then(response => { | 44 | }).then(response => { |
| 48 | const res = response.data | 45 | const res = response.data |
| 49 | - if (res.code === 0) { | ||
| 50 | resolve(res) | 46 | resolve(res) |
| 51 | - } else { | ||
| 52 | - reject(new Error(res.msg || 'Failed to query floors')) | ||
| 53 | - } | 47 | + |
| 54 | }).catch(error => { | 48 | }).catch(error => { |
| 55 | reject(error) | 49 | reject(error) |
| 56 | }) | 50 | }) |
src/components/fee/doImportCreateFee.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog | ||
| 3 | - :title="$t('doImportCreateFee.title')" | ||
| 4 | - :visible.sync="visible" | ||
| 5 | - width="70%" | ||
| 6 | - :before-close="handleClose" | ||
| 7 | - > | ||
| 8 | - <el-form label-width="120px"> | 2 | + <el-dialog :title="$t('doImportCreateFee.title')" :visible.sync="visible" width="40%" :before-close="handleClose"> |
| 3 | + <el-form label-width="120px" class="text-left"> | ||
| 9 | <el-form-item :label="$t('doImportCreateFee.selectFile')"> | 4 | <el-form-item :label="$t('doImportCreateFee.selectFile')"> |
| 10 | - <el-upload | ||
| 11 | - class="upload-demo" | ||
| 12 | - action="" | ||
| 13 | - :auto-upload="false" | ||
| 14 | - :on-change="handleFileChange" | ||
| 15 | - :show-file-list="false" | ||
| 16 | - accept=".xls,.xlsx" | ||
| 17 | - > | 5 | + <el-upload class="upload-demo" action="" :auto-upload="false" :on-change="handleFileChange" |
| 6 | + :show-file-list="false" accept=".xls,.xlsx"> | ||
| 18 | <el-button size="small" type="primary">{{ $t('doImportCreateFee.clickUpload') }}</el-button> | 7 | <el-button size="small" type="primary">{{ $t('doImportCreateFee.clickUpload') }}</el-button> |
| 19 | <div slot="tip" class="el-upload__tip"> | 8 | <div slot="tip" class="el-upload__tip"> |
| 20 | {{ fileName || $t('doImportCreateFee.fileTip') }} | 9 | {{ fileName || $t('doImportCreateFee.fileTip') }} |
| @@ -25,11 +14,7 @@ | @@ -25,11 +14,7 @@ | ||
| 25 | 14 | ||
| 26 | <span slot="footer" class="dialog-footer"> | 15 | <span slot="footer" class="dialog-footer"> |
| 27 | <el-button @click="handleClose">{{ $t('common.cancel') }}</el-button> | 16 | <el-button @click="handleClose">{{ $t('common.cancel') }}</el-button> |
| 28 | - <el-button | ||
| 29 | - type="primary" | ||
| 30 | - @click="handleImport" | ||
| 31 | - :disabled="!fileName" | ||
| 32 | - >{{ $t('common.import') }}</el-button> | 17 | + <el-button type="primary" @click="handleImport" :disabled="!fileName">{{ $t('common.import') }}</el-button> |
| 33 | </span> | 18 | </span> |
| 34 | </el-dialog> | 19 | </el-dialog> |
| 35 | </template> | 20 | </template> |
| @@ -57,37 +42,37 @@ export default { | @@ -57,37 +42,37 @@ export default { | ||
| 57 | this.visible = true | 42 | this.visible = true |
| 58 | this.reset() | 43 | this.reset() |
| 59 | }, | 44 | }, |
| 60 | - | 45 | + |
| 61 | handleFileChange(file) { | 46 | handleFileChange(file) { |
| 62 | if (!this.checkFileType(file.name)) { | 47 | if (!this.checkFileType(file.name)) { |
| 63 | this.$message.error(this.$t('doImportCreateFee.validate.invalidFileType')) | 48 | this.$message.error(this.$t('doImportCreateFee.validate.invalidFileType')) |
| 64 | return false | 49 | return false |
| 65 | } | 50 | } |
| 66 | - | 51 | + |
| 67 | if (!this.checkFileSize(file.size)) { | 52 | if (!this.checkFileSize(file.size)) { |
| 68 | this.$message.error(this.$t('doImportCreateFee.validate.fileTooLarge')) | 53 | this.$message.error(this.$t('doImportCreateFee.validate.fileTooLarge')) |
| 69 | return false | 54 | return false |
| 70 | } | 55 | } |
| 71 | - | 56 | + |
| 72 | this.file = file.raw | 57 | this.file = file.raw |
| 73 | this.fileName = file.name | 58 | this.fileName = file.name |
| 74 | }, | 59 | }, |
| 75 | - | 60 | + |
| 76 | checkFileType(filename) { | 61 | checkFileType(filename) { |
| 77 | const ext = filename.split('.').pop().toLowerCase() | 62 | const ext = filename.split('.').pop().toLowerCase() |
| 78 | return ['xls', 'xlsx'].includes(ext) | 63 | return ['xls', 'xlsx'].includes(ext) |
| 79 | }, | 64 | }, |
| 80 | - | 65 | + |
| 81 | checkFileSize(size) { | 66 | checkFileSize(size) { |
| 82 | return size <= 2 * 1024 * 1024 // 2MB | 67 | return size <= 2 * 1024 * 1024 // 2MB |
| 83 | }, | 68 | }, |
| 84 | - | 69 | + |
| 85 | handleImport() { | 70 | handleImport() { |
| 86 | const formData = new FormData() | 71 | const formData = new FormData() |
| 87 | formData.append('uploadFile', this.file) | 72 | formData.append('uploadFile', this.file) |
| 88 | formData.append('communityId', this.communityId) | 73 | formData.append('communityId', this.communityId) |
| 89 | formData.append('importAdapt', 'importCustomFee') | 74 | formData.append('importAdapt', 'importCustomFee') |
| 90 | - | 75 | + |
| 91 | importData(formData).then(response => { | 76 | importData(formData).then(response => { |
| 92 | const res = response.data | 77 | const res = response.data |
| 93 | if (res.code === 0) { | 78 | if (res.code === 0) { |
| @@ -101,12 +86,12 @@ export default { | @@ -101,12 +86,12 @@ export default { | ||
| 101 | this.$message.error(error.message) | 86 | this.$message.error(error.message) |
| 102 | }) | 87 | }) |
| 103 | }, | 88 | }, |
| 104 | - | 89 | + |
| 105 | handleClose() { | 90 | handleClose() { |
| 106 | this.visible = false | 91 | this.visible = false |
| 107 | this.reset() | 92 | this.reset() |
| 108 | }, | 93 | }, |
| 109 | - | 94 | + |
| 110 | reset() { | 95 | reset() { |
| 111 | this.file = null | 96 | this.file = null |
| 112 | this.fileName = '' | 97 | this.fileName = '' |
src/components/fee/exportFeeImportExcel.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog | ||
| 3 | - :title="$t('exportFeeImportExcel.title')" | ||
| 4 | - :visible.sync="visible" | ||
| 5 | - width="70%" | ||
| 6 | - :before-close="handleClose" | ||
| 7 | - > | ||
| 8 | - <el-form label-width="120px"> | 2 | + <el-dialog :title="$t('exportFeeImportExcel.title')" :visible.sync="visible" width="70%" :before-close="handleClose"> |
| 3 | + <el-form label-width="120px" class="text-left"> | ||
| 9 | <el-form-item :label="$t('exportFeeImportExcel.floor')"> | 4 | <el-form-item :label="$t('exportFeeImportExcel.floor')"> |
| 10 | <div> | 5 | <div> |
| 11 | - <el-checkbox | ||
| 12 | - v-model="isFloorAll" | ||
| 13 | - @change="toggleAllFloors" | ||
| 14 | - >{{ $t('exportFeeImportExcel.all') }}</el-checkbox> | ||
| 15 | - <el-checkbox | ||
| 16 | - v-for="item in floors" | ||
| 17 | - :key="item.floorId" | ||
| 18 | - v-model="selectedFloorIds" | ||
| 19 | - :label="item.floorId" | ||
| 20 | - @change="handleFloorChange" | ||
| 21 | - class="margin-left" | ||
| 22 | - >{{ item.floorName }}</el-checkbox> | 6 | + <el-checkbox v-model="isFloorAll" @change="toggleAllFloors">{{ $t('exportFeeImportExcel.all') }}</el-checkbox> |
| 7 | + <el-checkbox v-for="item in floors" :key="item.floorId" v-model="selectedFloorIds" :label="item.floorId" | ||
| 8 | + @change="handleFloorChange" class="margin-left">{{ item.floorName }}</el-checkbox> | ||
| 23 | </div> | 9 | </div> |
| 24 | </el-form-item> | 10 | </el-form-item> |
| 25 | 11 | ||
| 26 | <el-form-item :label="$t('exportFeeImportExcel.feeItem')"> | 12 | <el-form-item :label="$t('exportFeeImportExcel.feeItem')"> |
| 27 | <div> | 13 | <div> |
| 28 | - <el-checkbox | ||
| 29 | - v-model="isConfigAll" | ||
| 30 | - @change="toggleAllConfigs" | ||
| 31 | - >{{ $t('exportFeeImportExcel.all') }}</el-checkbox> | ||
| 32 | - <el-checkbox | ||
| 33 | - v-for="item in configs" | ||
| 34 | - :key="item.configId" | ||
| 35 | - v-model="selectedConfigIds" | ||
| 36 | - :label="item.configId" | ||
| 37 | - @change="handleConfigChange" | ||
| 38 | - class="margin-left" | ||
| 39 | - >{{ item.feeName }}</el-checkbox> | 14 | + <el-checkbox v-model="isConfigAll" @change="toggleAllConfigs">{{ $t('exportFeeImportExcel.all') |
| 15 | + }}</el-checkbox> | ||
| 16 | + <el-checkbox v-for="item in configs" :key="item.configId" v-model="selectedConfigIds" :label="item.configId" | ||
| 17 | + @change="handleConfigChange" class="margin-left">{{ item.feeName }}</el-checkbox> | ||
| 40 | </div> | 18 | </div> |
| 41 | </el-form-item> | 19 | </el-form-item> |
| 42 | </el-form> | 20 | </el-form> |
| @@ -76,18 +54,18 @@ export default { | @@ -76,18 +54,18 @@ export default { | ||
| 76 | this.loadFloors() | 54 | this.loadFloors() |
| 77 | this.loadConfigs() | 55 | this.loadConfigs() |
| 78 | }, | 56 | }, |
| 79 | - | 57 | + |
| 80 | loadFloors() { | 58 | loadFloors() { |
| 81 | queryFloors({ | 59 | queryFloors({ |
| 82 | page: 1, | 60 | page: 1, |
| 83 | row: 150, | 61 | row: 150, |
| 84 | communityId: this.communityId | 62 | communityId: this.communityId |
| 85 | }).then(response => { | 63 | }).then(response => { |
| 86 | - this.floors = response.data.apiFloorDataVoList | 64 | + this.floors = response.apiFloorDataVoList |
| 87 | this.selectedFloorIds = this.floors.map(item => item.floorId) | 65 | this.selectedFloorIds = this.floors.map(item => item.floorId) |
| 88 | }) | 66 | }) |
| 89 | }, | 67 | }, |
| 90 | - | 68 | + |
| 91 | loadConfigs() { | 69 | loadConfigs() { |
| 92 | listFeeConfigs({ | 70 | listFeeConfigs({ |
| 93 | page: 1, | 71 | page: 1, |
| @@ -95,31 +73,31 @@ export default { | @@ -95,31 +73,31 @@ export default { | ||
| 95 | communityId: this.communityId, | 73 | communityId: this.communityId, |
| 96 | isDefault: 'F' | 74 | isDefault: 'F' |
| 97 | }).then(response => { | 75 | }).then(response => { |
| 98 | - this.configs = response.data.feeConfigs | 76 | + this.configs = response.feeConfigs |
| 99 | this.selectedConfigIds = this.configs.map(item => item.configId) | 77 | this.selectedConfigIds = this.configs.map(item => item.configId) |
| 100 | }) | 78 | }) |
| 101 | }, | 79 | }, |
| 102 | - | 80 | + |
| 103 | toggleAllFloors() { | 81 | toggleAllFloors() { |
| 104 | - this.selectedFloorIds = this.isFloorAll | 82 | + this.selectedFloorIds = this.isFloorAll |
| 105 | ? this.floors.map(item => item.floorId) | 83 | ? this.floors.map(item => item.floorId) |
| 106 | : [] | 84 | : [] |
| 107 | }, | 85 | }, |
| 108 | - | 86 | + |
| 109 | toggleAllConfigs() { | 87 | toggleAllConfigs() { |
| 110 | this.selectedConfigIds = this.isConfigAll | 88 | this.selectedConfigIds = this.isConfigAll |
| 111 | ? this.configs.map(item => item.configId) | 89 | ? this.configs.map(item => item.configId) |
| 112 | : [] | 90 | : [] |
| 113 | }, | 91 | }, |
| 114 | - | 92 | + |
| 115 | handleFloorChange() { | 93 | handleFloorChange() { |
| 116 | this.isFloorAll = this.selectedFloorIds.length === this.floors.length | 94 | this.isFloorAll = this.selectedFloorIds.length === this.floors.length |
| 117 | }, | 95 | }, |
| 118 | - | 96 | + |
| 119 | handleConfigChange() { | 97 | handleConfigChange() { |
| 120 | this.isConfigAll = this.selectedConfigIds.length === this.configs.length | 98 | this.isConfigAll = this.selectedConfigIds.length === this.configs.length |
| 121 | }, | 99 | }, |
| 122 | - | 100 | + |
| 123 | handleExport() { | 101 | handleExport() { |
| 124 | const params = { | 102 | const params = { |
| 125 | floorIds: this.selectedFloorIds.join(','), | 103 | floorIds: this.selectedFloorIds.join(','), |
| @@ -128,10 +106,10 @@ export default { | @@ -128,10 +106,10 @@ export default { | ||
| 128 | type: '1001', | 106 | type: '1001', |
| 129 | pagePath: 'exportCreateFeeTemplate' | 107 | pagePath: 'exportCreateFeeTemplate' |
| 130 | } | 108 | } |
| 131 | - | 109 | + |
| 132 | exportData(params).then(response => { | 110 | exportData(params).then(response => { |
| 133 | this.$message.success(response.data.msg) | 111 | this.$message.success(response.data.msg) |
| 134 | - if (response.data.code === 0) { | 112 | + if (response.code === 0) { |
| 135 | this.handleClose() | 113 | this.handleClose() |
| 136 | this.$router.push('/pages/property/downloadTempFile?tab=下载中心') | 114 | this.$router.push('/pages/property/downloadTempFile?tab=下载中心') |
| 137 | } | 115 | } |
| @@ -139,12 +117,12 @@ export default { | @@ -139,12 +117,12 @@ export default { | ||
| 139 | this.$message.error(error.message) | 117 | this.$message.error(error.message) |
| 140 | }) | 118 | }) |
| 141 | }, | 119 | }, |
| 142 | - | 120 | + |
| 143 | handleClose() { | 121 | handleClose() { |
| 144 | this.visible = false | 122 | this.visible = false |
| 145 | this.reset() | 123 | this.reset() |
| 146 | }, | 124 | }, |
| 147 | - | 125 | + |
| 148 | reset() { | 126 | reset() { |
| 149 | this.isFloorAll = true | 127 | this.isFloorAll = true |
| 150 | this.isConfigAll = true | 128 | this.isConfigAll = true |
src/views/fee/addOweFeeCallableList.vue
| @@ -9,15 +9,9 @@ | @@ -9,15 +9,9 @@ | ||
| 9 | <el-row :gutter="20"> | 9 | <el-row :gutter="20"> |
| 10 | <el-col :span="24"> | 10 | <el-col :span="24"> |
| 11 | <el-form-item :label="$t('addOweFeeCallable.callableWay')"> | 11 | <el-form-item :label="$t('addOweFeeCallable.callableWay')"> |
| 12 | - <el-select | ||
| 13 | - v-model="addOweFeeCallableInfo.callableWay" | ||
| 14 | - style="width:100%" | 12 | + <el-select v-model="addOweFeeCallableInfo.callableWay" style="width:100%" |
| 15 | :placeholder="$t('addOweFeeCallable.selectCallableWay')"> | 13 | :placeholder="$t('addOweFeeCallable.selectCallableWay')"> |
| 16 | - <el-option | ||
| 17 | - v-for="item in callableWayOptions" | ||
| 18 | - :key="item.value" | ||
| 19 | - :label="item.label" | ||
| 20 | - :value="item.value"> | 14 | + <el-option v-for="item in callableWayOptions" :key="item.value" :label="item.label" :value="item.value"> |
| 21 | </el-option> | 15 | </el-option> |
| 22 | </el-select> | 16 | </el-select> |
| 23 | </el-form-item> | 17 | </el-form-item> |
| @@ -28,11 +22,9 @@ | @@ -28,11 +22,9 @@ | ||
| 28 | <el-col :span="24"> | 22 | <el-col :span="24"> |
| 29 | <el-form-item :label="$t('addOweFeeCallable.feeConfigs')"> | 23 | <el-form-item :label="$t('addOweFeeCallable.feeConfigs')"> |
| 30 | <el-checkbox-group v-model="addOweFeeCallableInfo.configIds" @change="loadOweFeeRooms"> | 24 | <el-checkbox-group v-model="addOweFeeCallableInfo.configIds" @change="loadOweFeeRooms"> |
| 31 | - <el-checkbox | ||
| 32 | - v-for="item in addOweFeeCallableInfo.feeConfigs" | ||
| 33 | - :key="item.configId" | 25 | + <el-checkbox v-for="item in addOweFeeCallableInfo.feeConfigs" :key="item.configId" |
| 34 | :label="item.configId"> | 26 | :label="item.configId"> |
| 35 | - {{item.feeName}} | 27 | + {{ item.feeName }} |
| 36 | </el-checkbox> | 28 | </el-checkbox> |
| 37 | </el-checkbox-group> | 29 | </el-checkbox-group> |
| 38 | </el-form-item> | 30 | </el-form-item> |
| @@ -42,15 +34,9 @@ | @@ -42,15 +34,9 @@ | ||
| 42 | <el-row :gutter="20"> | 34 | <el-row :gutter="20"> |
| 43 | <el-col :span="24"> | 35 | <el-col :span="24"> |
| 44 | <el-form-item :label="$t('addOweFeeCallable.floor')"> | 36 | <el-form-item :label="$t('addOweFeeCallable.floor')"> |
| 45 | - <el-select | ||
| 46 | - v-model="addOweFeeCallableInfo.floorId" | ||
| 47 | - style="width:100%" | ||
| 48 | - @change="loadOweFeeRooms" | 37 | + <el-select v-model="addOweFeeCallableInfo.floorId" style="width:100%" @change="loadOweFeeRooms" |
| 49 | :placeholder="$t('addOweFeeCallable.selectFloor')"> | 38 | :placeholder="$t('addOweFeeCallable.selectFloor')"> |
| 50 | - <el-option | ||
| 51 | - v-for="item in addOweFeeCallableInfo.floors" | ||
| 52 | - :key="item.floorId" | ||
| 53 | - :label="item.floorNum" | 39 | + <el-option v-for="item in addOweFeeCallableInfo.floors" :key="item.floorId" :label="item.floorNum" |
| 54 | :value="item.floorId"> | 40 | :value="item.floorId"> |
| 55 | </el-option> | 41 | </el-option> |
| 56 | </el-select> | 42 | </el-select> |
| @@ -61,16 +47,9 @@ | @@ -61,16 +47,9 @@ | ||
| 61 | <el-row :gutter="20"> | 47 | <el-row :gutter="20"> |
| 62 | <el-col :span="24"> | 48 | <el-col :span="24"> |
| 63 | <el-form-item :label="$t('addOweFeeCallable.timeRange')"> | 49 | <el-form-item :label="$t('addOweFeeCallable.timeRange')"> |
| 64 | - <el-select | ||
| 65 | - v-model="addOweFeeCallableInfo.hasTime" | ||
| 66 | - style="width:100%" | ||
| 67 | - @change="loadOweFeeRooms" | 50 | + <el-select v-model="addOweFeeCallableInfo.hasTime" style="width:100%" @change="loadOweFeeRooms" |
| 68 | :placeholder="$t('addOweFeeCallable.selectTimeRange')"> | 51 | :placeholder="$t('addOweFeeCallable.selectTimeRange')"> |
| 69 | - <el-option | ||
| 70 | - v-for="item in timeRangeOptions" | ||
| 71 | - :key="item.value" | ||
| 72 | - :label="item.label" | ||
| 73 | - :value="item.value"> | 52 | + <el-option v-for="item in timeRangeOptions" :key="item.value" :label="item.label" :value="item.value"> |
| 74 | </el-option> | 53 | </el-option> |
| 75 | </el-select> | 54 | </el-select> |
| 76 | </el-form-item> | 55 | </el-form-item> |
| @@ -80,20 +59,14 @@ | @@ -80,20 +59,14 @@ | ||
| 80 | <el-row :gutter="20" v-show="addOweFeeCallableInfo.hasTime === 'ON'"> | 59 | <el-row :gutter="20" v-show="addOweFeeCallableInfo.hasTime === 'ON'"> |
| 81 | <el-col :span="12"> | 60 | <el-col :span="12"> |
| 82 | <el-form-item :label="$t('addOweFeeCallable.startTime')"> | 61 | <el-form-item :label="$t('addOweFeeCallable.startTime')"> |
| 83 | - <el-date-picker | ||
| 84 | - v-model="addOweFeeCallableInfo.startTime" | ||
| 85 | - type="datetime" | ||
| 86 | - style="width:100%" | 62 | + <el-date-picker v-model="addOweFeeCallableInfo.startTime" type="datetime" style="width:100%" |
| 87 | :placeholder="$t('addOweFeeCallable.selectStartTime')"> | 63 | :placeholder="$t('addOweFeeCallable.selectStartTime')"> |
| 88 | </el-date-picker> | 64 | </el-date-picker> |
| 89 | </el-form-item> | 65 | </el-form-item> |
| 90 | </el-col> | 66 | </el-col> |
| 91 | <el-col :span="12"> | 67 | <el-col :span="12"> |
| 92 | <el-form-item :label="$t('addOweFeeCallable.endTime')"> | 68 | <el-form-item :label="$t('addOweFeeCallable.endTime')"> |
| 93 | - <el-date-picker | ||
| 94 | - v-model="addOweFeeCallableInfo.endTime" | ||
| 95 | - type="datetime" | ||
| 96 | - style="width:100%" | 69 | + <el-date-picker v-model="addOweFeeCallableInfo.endTime" type="datetime" style="width:100%" |
| 97 | :placeholder="$t('addOweFeeCallable.selectEndTime')"> | 70 | :placeholder="$t('addOweFeeCallable.selectEndTime')"> |
| 98 | </el-date-picker> | 71 | </el-date-picker> |
| 99 | </el-form-item> | 72 | </el-form-item> |
| @@ -104,19 +77,13 @@ | @@ -104,19 +77,13 @@ | ||
| 104 | <el-col :span="24"> | 77 | <el-col :span="24"> |
| 105 | <el-form-item :label="$t('addOweFeeCallable.oweRooms')"> | 78 | <el-form-item :label="$t('addOweFeeCallable.oweRooms')"> |
| 106 | <div v-if="addOweFeeCallableInfo.rooms && addOweFeeCallableInfo.rooms.length > 0"> | 79 | <div v-if="addOweFeeCallableInfo.rooms && addOweFeeCallableInfo.rooms.length > 0"> |
| 107 | - <el-checkbox | ||
| 108 | - v-model="checkAllStatus" | ||
| 109 | - @change="handleCheckAllChange"> | 80 | + <el-checkbox v-model="checkAllStatus" @change="handleCheckAllChange"> |
| 110 | {{ $t('addOweFeeCallable.checkAll') }} | 81 | {{ $t('addOweFeeCallable.checkAll') }} |
| 111 | </el-checkbox> | 82 | </el-checkbox> |
| 112 | - <el-checkbox-group | ||
| 113 | - v-model="addOweFeeCallableInfo.roomIds" | ||
| 114 | - @change="handleCheckedRoomsChange"> | ||
| 115 | - <el-checkbox | ||
| 116 | - v-for="item in addOweFeeCallableInfo.rooms" | ||
| 117 | - :key="item.payerObjId" | 83 | + <el-checkbox-group v-model="addOweFeeCallableInfo.roomIds" @change="handleCheckedRoomsChange"> |
| 84 | + <el-checkbox v-for="item in addOweFeeCallableInfo.rooms" :key="item.payerObjId" | ||
| 118 | :label="item.payerObjId"> | 85 | :label="item.payerObjId"> |
| 119 | - {{item.payerObjName}} | 86 | + {{ item.payerObjName }} |
| 120 | </el-checkbox> | 87 | </el-checkbox> |
| 121 | </el-checkbox-group> | 88 | </el-checkbox-group> |
| 122 | </div> | 89 | </div> |
| @@ -130,22 +97,14 @@ | @@ -130,22 +97,14 @@ | ||
| 130 | <el-row :gutter="20"> | 97 | <el-row :gutter="20"> |
| 131 | <el-col :span="24" class="text-right"> | 98 | <el-col :span="24" class="text-right"> |
| 132 | <el-button @click="goBack">{{ $t('common.back') }}</el-button> | 99 | <el-button @click="goBack">{{ $t('common.back') }}</el-button> |
| 133 | - <el-button | ||
| 134 | - v-if="addOweFeeCallableInfo.callableWay === 'EXCEL'" | ||
| 135 | - type="primary" | 100 | + <el-button v-if="addOweFeeCallableInfo.callableWay === 'EXCEL'" type="primary" |
| 136 | @click="exportCollectionLetterExcel"> | 101 | @click="exportCollectionLetterExcel"> |
| 137 | {{ $t('common.export') }} | 102 | {{ $t('common.export') }} |
| 138 | </el-button> | 103 | </el-button> |
| 139 | - <el-button | ||
| 140 | - v-else-if="addOweFeeCallableInfo.callableWay === 'TTS'" | ||
| 141 | - type="primary" | ||
| 142 | - @click="ttsOweFee"> | 104 | + <el-button v-else-if="addOweFeeCallableInfo.callableWay === 'TTS'" type="primary" @click="ttsOweFee"> |
| 143 | {{ $t('addOweFeeCallable.ttsCall') }} | 105 | {{ $t('addOweFeeCallable.ttsCall') }} |
| 144 | </el-button> | 106 | </el-button> |
| 145 | - <el-button | ||
| 146 | - v-else | ||
| 147 | - type="primary" | ||
| 148 | - @click="saveOweFeeCallable"> | 107 | + <el-button v-else type="primary" @click="saveOweFeeCallable"> |
| 149 | {{ $t('common.submit') }} | 108 | {{ $t('common.submit') }} |
| 150 | </el-button> | 109 | </el-button> |
| 151 | </el-col> | 110 | </el-col> |
| @@ -157,7 +116,7 @@ | @@ -157,7 +116,7 @@ | ||
| 157 | 116 | ||
| 158 | <script> | 117 | <script> |
| 159 | import { getCommunityId } from '@/api/community/communityApi' | 118 | import { getCommunityId } from '@/api/community/communityApi' |
| 160 | -import { | 119 | +import { |
| 161 | saveOweFeeCallable, | 120 | saveOweFeeCallable, |
| 162 | exportCollectionLetterExcel, | 121 | exportCollectionLetterExcel, |
| 163 | listFeeConfigs, | 122 | listFeeConfigs, |
| @@ -212,8 +171,8 @@ export default { | @@ -212,8 +171,8 @@ export default { | ||
| 212 | communityId: this.addOweFeeCallableInfo.communityId, | 171 | communityId: this.addOweFeeCallableInfo.communityId, |
| 213 | isDefault: 'F' | 172 | isDefault: 'F' |
| 214 | } | 173 | } |
| 215 | - const { data } = await listFeeConfigs(params) | ||
| 216 | - this.addOweFeeCallableInfo.feeConfigs = data.feeConfigs | 174 | + const { feeConfigs } = await listFeeConfigs(params) |
| 175 | + this.addOweFeeCallableInfo.feeConfigs = feeConfigs | ||
| 217 | } catch (error) { | 176 | } catch (error) { |
| 218 | console.error('获取费用配置失败:', error) | 177 | console.error('获取费用配置失败:', error) |
| 219 | } | 178 | } |
| @@ -225,16 +184,16 @@ export default { | @@ -225,16 +184,16 @@ export default { | ||
| 225 | row: 100, | 184 | row: 100, |
| 226 | communityId: this.addOweFeeCallableInfo.communityId | 185 | communityId: this.addOweFeeCallableInfo.communityId |
| 227 | } | 186 | } |
| 228 | - const { data } = await queryFloors(params) | ||
| 229 | - this.addOweFeeCallableInfo.floors = data.apiFloorDataVoList | 187 | + const { apiFloorDataVoList } = await queryFloors(params) |
| 188 | + this.addOweFeeCallableInfo.floors = apiFloorDataVoList | ||
| 230 | } catch (error) { | 189 | } catch (error) { |
| 231 | console.error('获取楼栋失败:', error) | 190 | console.error('获取楼栋失败:', error) |
| 232 | } | 191 | } |
| 233 | }, | 192 | }, |
| 234 | async loadOweFeeRooms() { | 193 | async loadOweFeeRooms() { |
| 235 | - if (!this.addOweFeeCallableInfo.floorId || | ||
| 236 | - !this.addOweFeeCallableInfo.configIds || | ||
| 237 | - this.addOweFeeCallableInfo.configIds.length === 0) { | 194 | + if (!this.addOweFeeCallableInfo.floorId || |
| 195 | + !this.addOweFeeCallableInfo.configIds || | ||
| 196 | + this.addOweFeeCallableInfo.configIds.length === 0) { | ||
| 238 | return | 197 | return |
| 239 | } | 198 | } |
| 240 | 199 | ||
| @@ -247,7 +206,7 @@ export default { | @@ -247,7 +206,7 @@ export default { | ||
| 247 | floorId: this.addOweFeeCallableInfo.floorId | 206 | floorId: this.addOweFeeCallableInfo.floorId |
| 248 | } | 207 | } |
| 249 | const { data } = await queryReportOweFee(params) | 208 | const { data } = await queryReportOweFee(params) |
| 250 | - this.addOweFeeCallableInfo.rooms = data.data || [] | 209 | + this.addOweFeeCallableInfo.rooms = data || [] |
| 251 | this.addOweFeeCallableInfo.roomIds = this.addOweFeeCallableInfo.rooms.map(item => item.payerObjId) | 210 | this.addOweFeeCallableInfo.roomIds = this.addOweFeeCallableInfo.rooms.map(item => item.payerObjId) |
| 252 | this.checkAllStatus = this.addOweFeeCallableInfo.rooms.length > 0 | 211 | this.checkAllStatus = this.addOweFeeCallableInfo.rooms.length > 0 |
| 253 | } catch (error) { | 212 | } catch (error) { |
| @@ -255,7 +214,7 @@ export default { | @@ -255,7 +214,7 @@ export default { | ||
| 255 | } | 214 | } |
| 256 | }, | 215 | }, |
| 257 | handleCheckAllChange(val) { | 216 | handleCheckAllChange(val) { |
| 258 | - this.addOweFeeCallableInfo.roomIds = val ? | 217 | + this.addOweFeeCallableInfo.roomIds = val ? |
| 259 | this.addOweFeeCallableInfo.rooms.map(item => item.payerObjId) : [] | 218 | this.addOweFeeCallableInfo.rooms.map(item => item.payerObjId) : [] |
| 260 | }, | 219 | }, |
| 261 | handleCheckedRoomsChange(value) { | 220 | handleCheckedRoomsChange(value) { |
src/views/fee/roomCreateFeeList.vue
| @@ -297,7 +297,7 @@ export default { | @@ -297,7 +297,7 @@ export default { | ||
| 297 | this.$router.push('/pages/fee/roomCreatePayFee') | 297 | this.$router.push('/pages/fee/roomCreatePayFee') |
| 298 | }, | 298 | }, |
| 299 | _downloadCollectionLetterOrder() { | 299 | _downloadCollectionLetterOrder() { |
| 300 | - this.$router.push('/pages/fee/addOweFeeCallable?callableWay=EXCEL') | 300 | + this.$router.push('/views/fee/addOweFeeCallable?callableWay=EXCEL') |
| 301 | }, | 301 | }, |
| 302 | _downloadRoomCollectionLetterOrder(room) { | 302 | _downloadRoomCollectionLetterOrder(room) { |
| 303 | this.$refs.downloadCollectionLetterOrder.open({ | 303 | this.$refs.downloadCollectionLetterOrder.open({ |