Commit 06ec2cd7210505d637bb38c5fd1b5764c025f02f
1 parent
963f5a4f
水电抄表测试完成
Showing
11 changed files
with
111 additions
and
238 deletions
src/api/fee/meterWaterManageApi.js
| ... | ... | @@ -206,7 +206,7 @@ export function importMeterWaterData(data) { |
| 206 | 206 | return new Promise((resolve, reject) => { |
| 207 | 207 | data.append('communityId', getCommunityId()) |
| 208 | 208 | request({ |
| 209 | - url: '/assetImport/importData', | |
| 209 | + url: '/callComponent/upload/assetImport/importData', | |
| 210 | 210 | method: 'post', |
| 211 | 211 | data, |
| 212 | 212 | headers: { | ... | ... |
src/api/system/systemInfoManageApi.js
| ... | ... | @@ -38,4 +38,13 @@ export function updateSystemInfo(data) { |
| 38 | 38 | reject(error) |
| 39 | 39 | }) |
| 40 | 40 | }) |
| 41 | +} | |
| 42 | + | |
| 43 | +export function getPropertyUrl() { | |
| 44 | + let systemInfo = localStorage.getItem('java110SystemInfo') | |
| 45 | + if (systemInfo) { | |
| 46 | + systemInfo = JSON.parse(systemInfo) | |
| 47 | + return systemInfo.propertyUrl | |
| 48 | + } | |
| 49 | + return '' | |
| 41 | 50 | } |
| 42 | 51 | \ No newline at end of file | ... | ... |
src/components/fee/addMeterWater.vue
| ... | ... | @@ -210,8 +210,8 @@ export default { |
| 210 | 210 | try { |
| 211 | 211 | const data = await getDict('pay_fee_config', 'fee_type_cd') |
| 212 | 212 | this.feeTypeOptions = data.map(item => ({ |
| 213 | - value: item.name, | |
| 214 | - label: item.label | |
| 213 | + value: item.statusCd, | |
| 214 | + label: item.name | |
| 215 | 215 | })) |
| 216 | 216 | } catch (error) { |
| 217 | 217 | console.error('Failed to load fee types:', error) |
| ... | ... | @@ -229,13 +229,12 @@ export default { |
| 229 | 229 | console.error('Failed to load meter types:', error) |
| 230 | 230 | } |
| 231 | 231 | }, |
| 232 | - async handleFeeTypeChange(feeTypeCd) { | |
| 232 | + async handleFeeTypeChange() { | |
| 233 | 233 | try { |
| 234 | 234 | const { data } = await listFeeConfigs({ |
| 235 | 235 | communityId: this.form.communityId, |
| 236 | - feeTypeCd, | |
| 236 | + feeTypeCd: this.form.feeTypeCd, | |
| 237 | 237 | isDefault: 'F', |
| 238 | - valid: '1', | |
| 239 | 238 | page: 1, |
| 240 | 239 | row: 20 |
| 241 | 240 | }) |
| ... | ... | @@ -330,14 +329,17 @@ export default { |
| 330 | 329 | color: #999; |
| 331 | 330 | margin-top: 5px; |
| 332 | 331 | } |
| 333 | -.el-form-item{ | |
| 332 | + | |
| 333 | +.el-form-item { | |
| 334 | 334 | width: 90%; |
| 335 | 335 | text-align: left; |
| 336 | 336 | } |
| 337 | -.el-select{ | |
| 337 | + | |
| 338 | +.el-select { | |
| 338 | 339 | width: 100%; |
| 339 | 340 | } |
| 340 | -.el-date-editor{ | |
| 341 | + | |
| 342 | +.el-date-editor { | |
| 341 | 343 | width: 100%; |
| 342 | 344 | } |
| 343 | 345 | </style> |
| 344 | 346 | \ No newline at end of file | ... | ... |
src/components/fee/contractCreateFeeAdd.vue
| 1 | 1 | <template> |
| 2 | 2 | <el-dialog :title="$t('contractCreateFeeAdd.title')" :visible.sync="visible" width="800px" @close="handleClose"> |
| 3 | - <el-form ref="form" :model="formData" :rules="rules" label-width="120px" label-position="right"> | |
| 3 | + <el-form ref="form" :model="formData" :rules="rules" label-width="120px" label-position="right" class="text-left"> | |
| 4 | 4 | <el-form-item :label="$t('contractCreateFeeAdd.feeTypeCd')" prop="feeTypeCd"> |
| 5 | 5 | <el-select v-model="formData.feeTypeCd" :placeholder="$t('contractCreateFeeAdd.selectFeeType')" |
| 6 | 6 | style="width: 100%" @change="handleFeeTypeChange"> |
| ... | ... | @@ -45,14 +45,14 @@ |
| 45 | 45 | </el-form-item> |
| 46 | 46 | |
| 47 | 47 | <el-form-item :label="$t('contractCreateFeeAdd.endTime')" prop="endTime" :rules="formData.feeFlag === '2006012' |
| 48 | - ? [ | |
| 49 | - { | |
| 50 | - required: true, | |
| 51 | - message: $t('contractCreateFeeAdd.endTimeRequired'), | |
| 52 | - trigger: 'blur' | |
| 53 | - } | |
| 54 | - ] | |
| 55 | - : [] | |
| 48 | + ? [ | |
| 49 | + { | |
| 50 | + required: true, | |
| 51 | + message: $t('contractCreateFeeAdd.endTimeRequired'), | |
| 52 | + trigger: 'blur' | |
| 53 | + } | |
| 54 | + ] | |
| 55 | + : [] | |
| 56 | 56 | "> |
| 57 | 57 | <el-date-picker v-model="formData.endTime" type="datetime" |
| 58 | 58 | :placeholder="$t('contractCreateFeeAdd.selectEndTime')" value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%" |
| ... | ... | @@ -72,8 +72,8 @@ |
| 72 | 72 | </template> |
| 73 | 73 | |
| 74 | 74 | <script> |
| 75 | -import { saveContractCreateFee,listFeeConfigs } from '@/api/fee/contractCreateFeeApi' | |
| 76 | -import { getCommunityId,getDict } from '@/api/community/communityApi' | |
| 75 | +import { saveContractCreateFee, listFeeConfigs } from '@/api/fee/contractCreateFeeApi' | |
| 76 | +import { getCommunityId, getDict } from '@/api/community/communityApi' | |
| 77 | 77 | |
| 78 | 78 | export default { |
| 79 | 79 | name: 'ContractCreateFeeAdd', | ... | ... |
src/components/fee/importMeterWaterFee.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('meterWater.meterReadingImport')" | |
| 4 | - :visible.sync="dialogVisible" | |
| 5 | - width="50%" | |
| 6 | - @close="handleClose" | |
| 7 | - > | |
| 8 | - <el-form | |
| 9 | - ref="form" | |
| 10 | - :model="form" | |
| 11 | - :rules="rules" | |
| 12 | - label-width="120px" | |
| 13 | - label-position="right" | |
| 14 | - > | |
| 2 | + <el-dialog :title="$t('meterWater.meterReadingImport')" :visible.sync="dialogVisible" width="40%" | |
| 3 | + @close="handleClose"> | |
| 4 | + <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="right" class="text-left"> | |
| 15 | 5 | <el-form-item :label="$t('meterWater.feeType')" prop="feeTypeCd"> |
| 16 | - <el-select | |
| 17 | - v-model="form.feeTypeCd" | |
| 18 | - :placeholder="$t('meterWater.selectFeeType')" | |
| 19 | - style="width: 100%" | |
| 20 | - @change="handleFeeTypeChange" | |
| 21 | - > | |
| 22 | - <el-option | |
| 23 | - v-for="item in feeTypeOptions" | |
| 24 | - :key="item.value" | |
| 25 | - :label="item.label" | |
| 26 | - :value="item.value" | |
| 27 | - /> | |
| 6 | + <el-select v-model="form.feeTypeCd" :placeholder="$t('meterWater.selectFeeType')" style="width: 100%" | |
| 7 | + @change="handleFeeTypeChange"> | |
| 8 | + <el-option v-for="item in feeTypeOptions" :key="item.value" :label="item.label" :value="item.value" /> | |
| 28 | 9 | </el-select> |
| 29 | 10 | </el-form-item> |
| 30 | 11 | |
| 31 | 12 | <el-form-item :label="$t('meterWater.feeItem')" prop="configId"> |
| 32 | - <el-select | |
| 33 | - v-model="form.configId" | |
| 34 | - :placeholder="$t('meterWater.selectFeeItem')" | |
| 35 | - style="width: 100%" | |
| 36 | - > | |
| 37 | - <el-option | |
| 38 | - v-for="item in feeConfigs" | |
| 39 | - :key="item.configId" | |
| 40 | - :label="item.feeName" | |
| 41 | - :value="item.configId" | |
| 42 | - /> | |
| 13 | + <el-select v-model="form.configId" :placeholder="$t('meterWater.selectFeeItem')" style="width: 100%"> | |
| 14 | + <el-option v-for="item in feeConfigs" :key="item.configId" :label="item.feeName" :value="item.configId" /> | |
| 43 | 15 | </el-select> |
| 44 | 16 | </el-form-item> |
| 45 | 17 | |
| 46 | 18 | <el-form-item :label="$t('meterWater.meterType')" prop="meterType"> |
| 47 | - <el-select | |
| 48 | - v-model="form.meterType" | |
| 49 | - :placeholder="$t('meterWater.selectMeterType')" | |
| 50 | - style="width: 100%" | |
| 51 | - > | |
| 52 | - <el-option | |
| 53 | - v-for="item in meterTypes" | |
| 54 | - :key="item.typeId" | |
| 55 | - :label="item.typeName" | |
| 56 | - :value="item.typeId" | |
| 57 | - /> | |
| 19 | + <el-select v-model="form.meterType" :placeholder="$t('meterWater.selectMeterType')" style="width: 100%"> | |
| 20 | + <el-option v-for="item in meterTypes" :key="item.typeId" :label="item.typeName" :value="item.typeId" /> | |
| 58 | 21 | </el-select> |
| 59 | 22 | </el-form-item> |
| 60 | 23 | |
| 61 | 24 | <el-form-item :label="$t('meterWater.selectFile')" prop="file"> |
| 62 | - <el-upload | |
| 63 | - ref="upload" | |
| 64 | - :auto-upload="false" | |
| 65 | - :limit="1" | |
| 66 | - :on-change="handleFileChange" | |
| 67 | - :file-list="fileList" | |
| 68 | - accept=".xls,.xlsx" | |
| 69 | - > | |
| 25 | + <el-upload ref="upload" :auto-upload="false" :limit="1" :on-change="handleFileChange" :file-list="fileList" | |
| 26 | + accept=".xls,.xlsx" action=""> | |
| 70 | 27 | <el-button size="small" type="primary">{{ $t('meterWater.selectFile') }}</el-button> |
| 71 | 28 | <div slot="tip" class="el-upload__tip"> |
| 72 | 29 | {{ fileList.length > 0 ? fileList[0].name : $t('meterWater.fileRequired') }} |
| ... | ... | @@ -195,9 +152,14 @@ export default { |
| 195 | 152 | try { |
| 196 | 153 | await exportMeterWaterTemplate({ |
| 197 | 154 | communityId: this.form.communityId, |
| 198 | - meterType: this.form.meterType | |
| 155 | + meterType: this.form.meterType, | |
| 156 | + pagePath:'exportMeterWater' | |
| 199 | 157 | }) |
| 158 | + | |
| 200 | 159 | this.$message.success(this.$t('meterWater.downloadStarted')) |
| 160 | + this.dialogVisible = false | |
| 161 | + this.$router.push('/pages/property/downloadTempFile?tab=下载中心') | |
| 162 | + | |
| 201 | 163 | } catch (error) { |
| 202 | 164 | console.error('Failed to download template:', error) |
| 203 | 165 | this.$message.error(error.message || this.$t('common.downloadFailed')) |
| ... | ... | @@ -221,13 +183,16 @@ export default { |
| 221 | 183 | formData.append('importAdapt', 'importMeterWaterFee') |
| 222 | 184 | |
| 223 | 185 | try { |
| 224 | - const { data } = await importMeterWaterData(formData) | |
| 186 | + const res = await importMeterWaterData(formData) | |
| 187 | + if(!res.code){ | |
| 188 | + this.$message.error(res) | |
| 189 | + return ; | |
| 190 | + } | |
| 225 | 191 | this.$message.success(this.$t('meterWater.importSuccess')) |
| 226 | 192 | this.dialogVisible = false |
| 227 | - this.$emit('success', data.logId) | |
| 193 | + this.$emit('success', res.logId) | |
| 228 | 194 | } catch (error) { |
| 229 | - console.error('Failed to import meter water data:', error) | |
| 230 | - this.$message.error(error.message || this.$t('common.importFailed')) | |
| 195 | + this.$message.error(error.response.data|| this.$t('common.importFailed')) | |
| 231 | 196 | } |
| 232 | 197 | }) |
| 233 | 198 | } | ... | ... |
src/components/fee/importMeterWaterFee2.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog | |
| 3 | - :title="$t('meterWater.meterReadingImport2')" | |
| 4 | - :visible.sync="dialogVisible" | |
| 5 | - width="50%" | |
| 6 | - @close="handleClose" | |
| 7 | - > | |
| 8 | - <el-form | |
| 9 | - ref="form" | |
| 10 | - :model="form" | |
| 11 | - :rules="rules" | |
| 12 | - label-width="120px" | |
| 13 | - label-position="right" | |
| 14 | - > | |
| 2 | + <el-dialog :title="$t('meterWater.meterReadingImport2')" :visible.sync="dialogVisible" width="40%" | |
| 3 | + @close="handleClose"> | |
| 4 | + <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="right" class="text-left"> | |
| 15 | 5 | <el-form-item :label="$t('meterWater.feeType')" prop="feeTypeCd"> |
| 16 | - <el-select | |
| 17 | - v-model="form.feeTypeCd" | |
| 18 | - :placeholder="$t('meterWater.selectFeeType')" | |
| 19 | - style="width: 100%" | |
| 20 | - @change="handleFeeTypeChange" | |
| 21 | - > | |
| 22 | - <el-option | |
| 23 | - v-for="item in feeTypeOptions" | |
| 24 | - :key="item.value" | |
| 25 | - :label="item.label" | |
| 26 | - :value="item.value" | |
| 27 | - /> | |
| 6 | + <el-select v-model="form.feeTypeCd" :placeholder="$t('meterWater.selectFeeType')" style="width: 100%" | |
| 7 | + @change="handleFeeTypeChange"> | |
| 8 | + <el-option v-for="item in feeTypeOptions" :key="item.value" :label="item.label" :value="item.value" /> | |
| 28 | 9 | </el-select> |
| 29 | 10 | </el-form-item> |
| 30 | 11 | |
| 31 | 12 | <el-form-item :label="$t('meterWater.feeItem')" prop="configId"> |
| 32 | - <el-select | |
| 33 | - v-model="form.configId" | |
| 34 | - :placeholder="$t('meterWater.selectFeeItem')" | |
| 35 | - style="width: 100%" | |
| 36 | - > | |
| 37 | - <el-option | |
| 38 | - v-for="item in feeConfigs" | |
| 39 | - :key="item.configId" | |
| 40 | - :label="item.feeName" | |
| 41 | - :value="item.configId" | |
| 42 | - /> | |
| 13 | + <el-select v-model="form.configId" :placeholder="$t('meterWater.selectFeeItem')" style="width: 100%"> | |
| 14 | + <el-option v-for="item in feeConfigs" :key="item.configId" :label="item.feeName" :value="item.configId" /> | |
| 43 | 15 | </el-select> |
| 44 | 16 | </el-form-item> |
| 45 | 17 | |
| 46 | 18 | <el-form-item :label="$t('meterWater.meterType')" prop="meterType"> |
| 47 | - <el-select | |
| 48 | - v-model="form.meterType" | |
| 49 | - :placeholder="$t('meterWater.selectMeterType')" | |
| 50 | - style="width: 100%" | |
| 51 | - > | |
| 52 | - <el-option | |
| 53 | - v-for="item in meterTypes" | |
| 54 | - :key="item.typeId" | |
| 55 | - :label="item.typeName" | |
| 56 | - :value="item.typeId" | |
| 57 | - /> | |
| 19 | + <el-select v-model="form.meterType" :placeholder="$t('meterWater.selectMeterType')" style="width: 100%"> | |
| 20 | + <el-option v-for="item in meterTypes" :key="item.typeId" :label="item.typeName" :value="item.typeId" /> | |
| 58 | 21 | </el-select> |
| 59 | 22 | </el-form-item> |
| 60 | 23 | |
| 61 | 24 | <el-form-item :label="$t('meterWater.selectFile')" prop="file"> |
| 62 | - <el-upload | |
| 63 | - ref="upload" | |
| 64 | - :auto-upload="false" | |
| 65 | - :limit="1" | |
| 66 | - :on-change="handleFileChange" | |
| 67 | - :file-list="fileList" | |
| 68 | - accept=".xls,.xlsx" | |
| 69 | - > | |
| 25 | + <el-upload ref="upload" :auto-upload="false" :limit="1" :on-change="handleFileChange" :file-list="fileList" | |
| 26 | + accept=".xls,.xlsx" action=""> | |
| 70 | 27 | <el-button size="small" type="primary">{{ $t('meterWater.selectFile') }}</el-button> |
| 71 | 28 | <div slot="tip" class="el-upload__tip"> |
| 72 | 29 | {{ fileList.length > 0 ? fileList[0].name : $t('meterWater.fileRequired') }} |
| ... | ... | @@ -204,6 +161,8 @@ export default { |
| 204 | 161 | pagePath: 'exportMeterWater2' |
| 205 | 162 | }) |
| 206 | 163 | this.$message.success(this.$t('meterWater.downloadStarted')) |
| 164 | + this.dialogVisible = false | |
| 165 | + this.$router.push('/pages/property/downloadTempFile?tab=下载中心') | |
| 207 | 166 | } catch (error) { |
| 208 | 167 | console.error('Failed to download template:', error) |
| 209 | 168 | this.$message.error(error.message || this.$t('common.downloadFailed')) |
| ... | ... | @@ -228,13 +187,13 @@ export default { |
| 228 | 187 | formData.append('importMeterDynamic', 'true') |
| 229 | 188 | |
| 230 | 189 | try { |
| 231 | - const { data } = await importMeterWaterData(formData) | |
| 190 | + const res = await importMeterWaterData(formData) | |
| 191 | + | |
| 232 | 192 | this.$message.success(this.$t('meterWater.importSuccess')) |
| 233 | 193 | this.dialogVisible = false |
| 234 | - this.$emit('success', data.logId) | |
| 194 | + this.$emit('success', res.logId) | |
| 235 | 195 | } catch (error) { |
| 236 | - console.error('Failed to import meter water data:', error) | |
| 237 | - this.$message.error(error.message || this.$t('common.importFailed')) | |
| 196 | + this.$message.error(error.response.data || this.$t('common.importFailed')) | |
| 238 | 197 | } |
| 239 | 198 | }) |
| 240 | 199 | } | ... | ... |
src/components/fee/roomMeterQrcode.vue
| 1 | 1 | <template> |
| 2 | - <el-dialog :title="$t('meterWater.meterQRCode')" :visible.sync="dialogVisible" width="50%" @close="handleClose"> | |
| 3 | - <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="right"> | |
| 2 | + <el-dialog :title="$t('meterWater.meterQRCode')" :visible.sync="dialogVisible" width="40%" @close="handleClose"> | |
| 3 | + <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="right" class="text-left"> | |
| 4 | 4 | <el-form-item :label="$t('meterWater.feeType')" prop="feeTypeCd"> |
| 5 | 5 | <el-select v-model="form.feeTypeCd" :placeholder="$t('meterWater.selectFeeType')" style="width: 100%" |
| 6 | 6 | @change="handleFeeTypeChange"> |
| ... | ... | @@ -29,7 +29,7 @@ |
| 29 | 29 | <el-input v-model="form.ownerName" :placeholder="$t('meterWater.inputRoom')" disabled /> |
| 30 | 30 | </el-form-item> |
| 31 | 31 | |
| 32 | - <el-form-item v-if="showQRCode" :label="$t('meterWater.qrCode')"> | |
| 32 | + <el-form-item v-show="showQRCode" :label="$t('meterWater.qrCode')"> | |
| 33 | 33 | <div class="qr-code-container"> |
| 34 | 34 | <div id="qrCodeCanvas" class="qr-code-canvas"></div> |
| 35 | 35 | <div class="qr-code-title"> |
| ... | ... | @@ -53,6 +53,7 @@ import QRCode from 'qrcodejs2' |
| 53 | 53 | import { listFeeConfigs, listMeterTypes } from '@/api/fee/meterWaterManageApi' |
| 54 | 54 | import { getDict } from '@/api/community/communityApi' |
| 55 | 55 | import { getCommunityId } from '@/api/community/communityApi' |
| 56 | +import { getPropertyUrl } from '@/api/system/systemInfoManageApi' | |
| 56 | 57 | |
| 57 | 58 | export default { |
| 58 | 59 | name: 'RoomMeterQrcode', |
| ... | ... | @@ -173,7 +174,7 @@ export default { |
| 173 | 174 | |
| 174 | 175 | this.clearQRCode() |
| 175 | 176 | |
| 176 | - const propertyUrl = this.$store.getters.systemInfo.propertyUrl | |
| 177 | + const propertyUrl = getPropertyUrl() | |
| 177 | 178 | const qrCodeUrl = `${propertyUrl}pages/meter/qrcodeMeter?configId=${this.form.configId}&meterType=${this.form.meterType}&roomId=${this.form.roomId}&communityId=${this.form.communityId}` |
| 178 | 179 | |
| 179 | 180 | this.qrCode = new QRCode(document.getElementById('qrCodeCanvas'), { | ... | ... |
src/views/fee/contractCreateFeeList.vue
| ... | ... | @@ -7,25 +7,16 @@ |
| 7 | 7 | </div> |
| 8 | 8 | <el-row :gutter="20"> |
| 9 | 9 | <el-col :span="6"> |
| 10 | - <el-input | |
| 11 | - v-model.trim="searchForm.contractCode" | |
| 12 | - :placeholder="$t('contractCreateFee.search.contractCode')" | |
| 13 | - clearable | |
| 14 | - /> | |
| 10 | + <el-input v-model.trim="searchForm.contractCode" :placeholder="$t('contractCreateFee.search.contractCode')" | |
| 11 | + clearable /> | |
| 15 | 12 | </el-col> |
| 16 | 13 | <el-col :span="6"> |
| 17 | - <el-input | |
| 18 | - v-model.trim="searchForm.contractNameLike" | |
| 19 | - :placeholder="$t('contractCreateFee.search.contractNameLike')" | |
| 20 | - clearable | |
| 21 | - /> | |
| 14 | + <el-input v-model.trim="searchForm.contractNameLike" | |
| 15 | + :placeholder="$t('contractCreateFee.search.contractNameLike')" clearable /> | |
| 22 | 16 | </el-col> |
| 23 | 17 | <el-col :span="6"> |
| 24 | - <el-input | |
| 25 | - v-model.trim="searchForm.contractType" | |
| 26 | - :placeholder="$t('contractCreateFee.search.contractType')" | |
| 27 | - clearable | |
| 28 | - /> | |
| 18 | + <el-input v-model.trim="searchForm.contractType" :placeholder="$t('contractCreateFee.search.contractType')" | |
| 19 | + clearable /> | |
| 29 | 20 | </el-col> |
| 30 | 21 | <el-col :span="6"> |
| 31 | 22 | <el-button type="primary" @click="handleSearch"> |
| ... | ... | @@ -44,77 +35,29 @@ |
| 44 | 35 | <el-card class="list-wrapper"> |
| 45 | 36 | <div slot="header" class="flex justify-between"> |
| 46 | 37 | <span>{{ $t('contractCreateFee.list.title') }}</span> |
| 47 | - <el-button | |
| 48 | - type="primary" | |
| 49 | - size="small" | |
| 50 | - @click="handleBatchCreate" | |
| 51 | - > | |
| 38 | + <el-button type="primary" size="small" @click="handleBatchCreate"> | |
| 52 | 39 | <i class="el-icon-plus"></i> |
| 53 | 40 | {{ $t('contractCreateFee.list.batchCreate') }} |
| 54 | 41 | </el-button> |
| 55 | 42 | </div> |
| 56 | 43 | |
| 57 | - <el-table | |
| 58 | - v-loading="loading" | |
| 59 | - :data="tableData" | |
| 60 | - border | |
| 61 | - style="width: 100%" | |
| 62 | - > | |
| 63 | - <el-table-column | |
| 64 | - prop="contractCode" | |
| 65 | - :label="$t('contractCreateFee.table.contractCode')" | |
| 66 | - align="center" | |
| 67 | - /> | |
| 68 | - <el-table-column | |
| 69 | - prop="parentContractCode" | |
| 70 | - :label="$t('contractCreateFee.table.parentContractCode')" | |
| 71 | - align="center" | |
| 72 | - > | |
| 44 | + <el-table v-loading="loading" :data="tableData" border style="width: 100%"> | |
| 45 | + <el-table-column prop="contractCode" :label="$t('contractCreateFee.table.contractCode')" align="center" /> | |
| 46 | + <el-table-column prop="parentContractCode" :label="$t('contractCreateFee.table.parentContractCode')" | |
| 47 | + align="center"> | |
| 73 | 48 | <template slot-scope="scope"> |
| 74 | 49 | {{ scope.row.parentContractCode || '-' }} |
| 75 | 50 | </template> |
| 76 | 51 | </el-table-column> |
| 77 | - <el-table-column | |
| 78 | - prop="contractName" | |
| 79 | - :label="$t('contractCreateFee.table.contractName')" | |
| 80 | - align="center" | |
| 81 | - /> | |
| 82 | - <el-table-column | |
| 83 | - prop="contractTypeName" | |
| 84 | - :label="$t('contractCreateFee.table.contractType')" | |
| 85 | - align="center" | |
| 86 | - /> | |
| 87 | - <el-table-column | |
| 88 | - prop="bContacts" | |
| 89 | - :label="$t('contractCreateFee.table.partyB')" | |
| 90 | - align="center" | |
| 91 | - /> | |
| 92 | - <el-table-column | |
| 93 | - prop="amount" | |
| 94 | - :label="$t('contractCreateFee.table.amount')" | |
| 95 | - align="center" | |
| 96 | - /> | |
| 97 | - <el-table-column | |
| 98 | - prop="startTime" | |
| 99 | - :label="$t('contractCreateFee.table.startTime')" | |
| 100 | - align="center" | |
| 101 | - /> | |
| 102 | - <el-table-column | |
| 103 | - prop="endTime" | |
| 104 | - :label="$t('contractCreateFee.table.endTime')" | |
| 105 | - align="center" | |
| 106 | - /> | |
| 107 | - <el-table-column | |
| 108 | - :label="$t('common.operation')" | |
| 109 | - align="center" | |
| 110 | - width="220" | |
| 111 | - > | |
| 52 | + <el-table-column prop="contractName" :label="$t('contractCreateFee.table.contractName')" align="center" /> | |
| 53 | + <el-table-column prop="contractTypeName" :label="$t('contractCreateFee.table.contractType')" align="center" /> | |
| 54 | + <el-table-column prop="bContacts" :label="$t('contractCreateFee.table.partyB')" align="center" /> | |
| 55 | + <el-table-column prop="amount" :label="$t('contractCreateFee.table.amount')" align="center" /> | |
| 56 | + <el-table-column prop="startTime" :label="$t('contractCreateFee.table.startTime')" align="center" /> | |
| 57 | + <el-table-column prop="endTime" :label="$t('contractCreateFee.table.endTime')" align="center" /> | |
| 58 | + <el-table-column :label="$t('common.operation')" align="center" width="220"> | |
| 112 | 59 | <template slot-scope="scope"> |
| 113 | - <el-button | |
| 114 | - v-if="scope.row.state !== '2002'" | |
| 115 | - size="mini" | |
| 116 | - @click="handlePayFee(scope.row)" | |
| 117 | - > | |
| 60 | + <el-button v-if="scope.row.state !== '2002'" size="mini" @click="handlePayFee(scope.row)"> | |
| 118 | 61 | {{ $t('contractCreateFee.table.payFee') }} |
| 119 | 62 | </el-button> |
| 120 | 63 | <el-button size="mini" @click="handleViewDetail(scope.row)"> |
| ... | ... | @@ -127,15 +70,9 @@ |
| 127 | 70 | </el-table-column> |
| 128 | 71 | </el-table> |
| 129 | 72 | |
| 130 | - <el-pagination | |
| 131 | - :current-page.sync="pagination.current" | |
| 132 | - :page-sizes="[10, 20, 30, 50]" | |
| 133 | - :page-size="pagination.size" | |
| 134 | - :total="pagination.total" | |
| 135 | - layout="total, sizes, prev, pager, next, jumper" | |
| 136 | - @size-change="handleSizeChange" | |
| 137 | - @current-change="handleCurrentChange" | |
| 138 | - /> | |
| 73 | + <el-pagination :current-page.sync="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size" | |
| 74 | + :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" | |
| 75 | + @current-change="handleCurrentChange" /> | |
| 139 | 76 | </el-card> |
| 140 | 77 | |
| 141 | 78 | <!-- 创建费用弹窗 --> | ... | ... |
src/views/fee/listCarFeeList.vue
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | <div>{{ listCarFeeInfo.carNum }} |
| 6 | 6 | <span>{{ $t('listCarFee.fee') }}</span>({{ listCarFeeInfo.parkingName }}) |
| 7 | 7 | </div> |
| 8 | - <div class="ibox-tools" style="top:10px;"> | |
| 8 | + <div class="" style="top:10px;"> | |
| 9 | 9 | <el-button type="primary" size="small" style="margin-left:10px" @click="_openCarCreateFeeAddModal"> |
| 10 | 10 | <i class="el-icon-plus"></i> |
| 11 | 11 | <span>{{ $t('listCarFee.createFee') }}</span> |
| ... | ... | @@ -16,7 +16,7 @@ |
| 16 | 16 | </el-button> |
| 17 | 17 | </div> |
| 18 | 18 | </div> |
| 19 | - <div class="ibox-content"> | |
| 19 | + <div class=""> | |
| 20 | 20 | <el-table :data="listCarFeeInfo.fees" border style="width: 100%"> |
| 21 | 21 | <el-table-column prop="feeName" :label="$t('listCarFee.feeItem')" align="center"> |
| 22 | 22 | <template slot-scope="scope"> |
| ... | ... | @@ -87,7 +87,7 @@ |
| 87 | 87 | </el-table-column> |
| 88 | 88 | </el-table> |
| 89 | 89 | <el-row> |
| 90 | - <el-col :span="12"> | |
| 90 | + <el-col :span="12" class="table-desc"> | |
| 91 | 91 | <div> {{ $t('listCarFee.note1') }}</div> |
| 92 | 92 | <div> {{ $t('listCarFee.note2') }}</div> |
| 93 | 93 | </el-col> |
| ... | ... | @@ -102,9 +102,9 @@ |
| 102 | 102 | </el-card> |
| 103 | 103 | |
| 104 | 104 | <!-- 子组件 --> |
| 105 | - <delete-fee ref="deleteFee"></delete-fee> | |
| 106 | - <edit-fee ref="editFee"></edit-fee> | |
| 107 | - <split-fee ref="splitFee"></split-fee> | |
| 105 | + <delete-fee ref="deleteFee" @success="handleSuccess"></delete-fee> | |
| 106 | + <edit-fee ref="editFee" @success="handleSuccess"></edit-fee> | |
| 107 | + <split-fee ref="splitFee" @success="handleSuccess"></split-fee> | |
| 108 | 108 | <car-create-fee-add ref="carCreateFeeAdd" @success="handleSuccess"></car-create-fee-add> |
| 109 | 109 | <!-- <add-meter-water ref="addMeterWater"></add-meter-water> --> |
| 110 | 110 | </div> | ... | ... |
src/views/fee/meterTypeManageList.vue
src/views/fee/meterWaterManageList.vue
| ... | ... | @@ -9,14 +9,14 @@ |
| 9 | 9 | <div slot="header" class="flex justify-between"> |
| 10 | 10 | <span>{{ $t('meterWater.queryConditions') }}</span> |
| 11 | 11 | </div> |
| 12 | - <el-form :inline="true" :model="conditions" class="demo-form-inline"> | |
| 13 | - <el-form-item :label="$t('meterWater.meterType')"> | |
| 12 | + <el-form :inline="true" :model="conditions" class="demo-form-inline text-left"> | |
| 13 | + <el-form-item > | |
| 14 | 14 | <el-select v-model="conditions.meterType" :placeholder="$t('meterWater.selectMeterType')" clearable |
| 15 | 15 | style="width: 100%"> |
| 16 | 16 | <el-option v-for="item in meterTypes" :key="item.typeId" :label="item.typeName" :value="item.typeId" /> |
| 17 | 17 | </el-select> |
| 18 | 18 | </el-form-item> |
| 19 | - <el-form-item :label="$t('meterWater.meterId')"> | |
| 19 | + <el-form-item > | |
| 20 | 20 | <el-input v-model="conditions.waterId" :placeholder="$t('meterWater.inputMeterId')" clearable /> |
| 21 | 21 | </el-form-item> |
| 22 | 22 | <el-form-item> | ... | ... |