Commit 9c0bb5162edb17904aabd39c0f58ee25960b7607
1 parent
b550a0c6
v1.9 优化车辆添加成员bug
Showing
9 changed files
with
51 additions
and
28 deletions
src/api/car/addCarModalApi.js
| 1 | import request from '@/utils/request' | 1 | import request from '@/utils/request' |
| 2 | export function saveOwnerCarMember(data) { | 2 | export function saveOwnerCarMember(data) { |
| 3 | - return request({ | ||
| 4 | - url: '/owner.saveOwnerCarMember', | ||
| 5 | - method: 'post', | ||
| 6 | - data | 3 | + return new Promise((resolve, reject) => { |
| 4 | + request({ | ||
| 5 | + url: '/owner.saveOwnerCarMember', | ||
| 6 | + method: 'post', | ||
| 7 | + data | ||
| 8 | + }).then(response => { | ||
| 9 | + resolve(response.data) | ||
| 10 | + }).catch(error => { | ||
| 11 | + reject(error.response.data) | ||
| 12 | + }) | ||
| 7 | }) | 13 | }) |
| 8 | } | 14 | } |
| 9 | \ No newline at end of file | 15 | \ No newline at end of file |
src/components/car/addCarModal.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog :title="$t('addCarModal.addCar')" :visible.sync="visible" width="50%"> | 2 | + <el-dialog :title="$t('common.add')" :visible.sync="visible" width="50%"> |
| 3 | <el-form :model="addCarModelInfo" :rules="rules" ref="addCarForm"> | 3 | <el-form :model="addCarModelInfo" :rules="rules" ref="addCarForm"> |
| 4 | <el-form-item :label="$t('listOwnerCar.carNum')" prop="carNum"> | 4 | <el-form-item :label="$t('listOwnerCar.carNum')" prop="carNum"> |
| 5 | <el-input v-model="addCarModelInfo.carNum" :placeholder="$t('listOwnerCar.carNum')"></el-input> | 5 | <el-input v-model="addCarModelInfo.carNum" :placeholder="$t('listOwnerCar.carNum')"></el-input> |
| @@ -15,7 +15,7 @@ | @@ -15,7 +15,7 @@ | ||
| 15 | </el-select> | 15 | </el-select> |
| 16 | </el-form-item> | 16 | </el-form-item> |
| 17 | <el-form-item :label="$t('listOwnerCar.color')" prop="carColor"> | 17 | <el-form-item :label="$t('listOwnerCar.color')" prop="carColor"> |
| 18 | - <el-input v-model="addCarModelInfo.carColor" :placeholder="$t('listOwnerCar.carColor')"></el-input> | 18 | + <el-input v-model="addCarModelInfo.carColor" :placeholder="$t('listOwnerCar.color')"></el-input> |
| 19 | </el-form-item> | 19 | </el-form-item> |
| 20 | <el-form-item :label="$t('listOwnerCar.remark')"> | 20 | <el-form-item :label="$t('listOwnerCar.remark')"> |
| 21 | <el-input type="textarea" v-model="addCarModelInfo.remark" :placeholder="$t('listOwnerCar.remark')" | 21 | <el-input type="textarea" v-model="addCarModelInfo.remark" :placeholder="$t('listOwnerCar.remark')" |
| @@ -51,19 +51,19 @@ export default { | @@ -51,19 +51,19 @@ export default { | ||
| 51 | carTypes: [], | 51 | carTypes: [], |
| 52 | rules: { | 52 | rules: { |
| 53 | carNum: [ | 53 | carNum: [ |
| 54 | - { required: true, message: this.$t('addCarModal.licensePlateRequired'), trigger: 'blur' }, | ||
| 55 | - { min: 2, max: 12, message: this.$t('addCarModal.licensePlateInvalid'), trigger: 'blur' } | 54 | + { required: true, message: this.$t('common.required'), trigger: 'blur' }, |
| 55 | + { min: 2, max: 12, message: this.$t('common.invalid'), trigger: 'blur' } | ||
| 56 | ], | 56 | ], |
| 57 | carBrand: [ | 57 | carBrand: [ |
| 58 | - { required: true, message: this.$t('addCarModal.carBrandRequired'), trigger: 'blur' }, | ||
| 59 | - { max: 50, message: this.$t('addCarModal.carBrandTooLong'), trigger: 'blur' } | 58 | + { required: true, message: this.$t('common.required'), trigger: 'blur' }, |
| 59 | + { max: 50, message: this.$t('common.invalid'), trigger: 'blur' } | ||
| 60 | ], | 60 | ], |
| 61 | carType: [ | 61 | carType: [ |
| 62 | - { required: true, message: this.$t('addCarModal.carTypeRequired'), trigger: 'change' } | 62 | + { required: true, message: this.$t('common.required'), trigger: 'change' } |
| 63 | ], | 63 | ], |
| 64 | carColor: [ | 64 | carColor: [ |
| 65 | - { required: true, message: this.$t('addCarModal.colorRequired'), trigger: 'blur' }, | ||
| 66 | - { max: 12, message: this.$t('addCarModal.colorTooLong'), trigger: 'blur' } | 65 | + { required: true, message: this.$t('common.required'), trigger: 'blur' }, |
| 66 | + { max: 12, message: this.$t('common.invalid'), trigger: 'blur' } | ||
| 67 | ] | 67 | ] |
| 68 | } | 68 | } |
| 69 | } | 69 | } |
| @@ -97,7 +97,7 @@ export default { | @@ -97,7 +97,7 @@ export default { | ||
| 97 | this.visible = false | 97 | this.visible = false |
| 98 | this.clearAddCarModalInfo() | 98 | this.clearAddCarModalInfo() |
| 99 | this.$emit('notify') | 99 | this.$emit('notify') |
| 100 | - this.$message.success(this.$t('common.addSuccess')) | 100 | + this.$message.success(this.$t('common.saveSuccess')) |
| 101 | } else { | 101 | } else { |
| 102 | this.$message.error(response.msg) | 102 | this.$message.error(response.msg) |
| 103 | } | 103 | } |
src/components/car/carDetailMember.vue
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | </el-col> | 8 | </el-col> |
| 9 | </el-row> | 9 | </el-row> |
| 10 | 10 | ||
| 11 | - <div class="margin-top"> | 11 | + <div class=""> |
| 12 | <el-table :data="carDetailMemberInfo.ownerCars" style="width: 100%"> | 12 | <el-table :data="carDetailMemberInfo.ownerCars" style="width: 100%"> |
| 13 | <el-table-column prop="carNum" :label="$t('listOwnerCar.carNum')" align="center"></el-table-column> | 13 | <el-table-column prop="carNum" :label="$t('listOwnerCar.carNum')" align="center"></el-table-column> |
| 14 | <el-table-column prop="roomName" :label="$t('listOwnerCar.roomNum')" align="center"></el-table-column> | 14 | <el-table-column prop="roomName" :label="$t('listOwnerCar.roomNum')" align="center"></el-table-column> |
| @@ -101,6 +101,12 @@ export default { | @@ -101,6 +101,12 @@ export default { | ||
| 101 | this.communityId = getCommunityId() | 101 | this.communityId = getCommunityId() |
| 102 | }, | 102 | }, |
| 103 | methods: { | 103 | methods: { |
| 104 | + open(data) { | ||
| 105 | + this.carDetailMemberInfo.carId = data.carId | ||
| 106 | + this.carDetailMemberInfo.carNum = data.carNum | ||
| 107 | + this.carDetailMemberInfo.memberId = data.memberId | ||
| 108 | + this._loadCarDetailMemberData(1, this.pagination.pageSize) | ||
| 109 | + }, | ||
| 104 | switch(data) { | 110 | switch(data) { |
| 105 | this.carDetailMemberInfo.carId = data.carId | 111 | this.carDetailMemberInfo.carId = data.carId |
| 106 | this.carDetailMemberInfo.carNum = data.carNum | 112 | this.carDetailMemberInfo.carNum = data.carNum |
src/components/car/deleteOwnerCar.vue
| @@ -33,7 +33,8 @@ export default { | @@ -33,7 +33,8 @@ export default { | ||
| 33 | }, | 33 | }, |
| 34 | 34 | ||
| 35 | async confirmDelete() { | 35 | async confirmDelete() { |
| 36 | - if (!this.carInfo || !this.carInfo.carId) return | 36 | + console.log(this.carInfo) |
| 37 | + if (!this.carInfo || !this.carInfo.memberId) return | ||
| 37 | 38 | ||
| 38 | this.loading = true | 39 | this.loading = true |
| 39 | try { | 40 | try { |
src/components/car/editMemberCar.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog :title="$t('editMemberCar.edit')" :visible.sync="visible" width="50%"> | 2 | + <el-dialog :title="$t('common.edit')" :visible.sync="visible" width="50%"> |
| 3 | <el-form :model="editMemberCarInfo" :rules="rules" ref="editMemberCarForm"> | 3 | <el-form :model="editMemberCarInfo" :rules="rules" ref="editMemberCarForm"> |
| 4 | - <el-form-item :label="$t('editMemberCar.licensePlate')" prop="carNum"> | ||
| 5 | - <el-input v-model="editMemberCarInfo.carNum" :placeholder="$t('editMemberCar.licensePlateRequired')"></el-input> | 4 | + <el-form-item :label="$t('listOwnerCar.carNum')" prop="carNum"> |
| 5 | + <el-input v-model="editMemberCarInfo.carNum" :placeholder="$t('listOwnerCar.licensePlateRequired')"></el-input> | ||
| 6 | </el-form-item> | 6 | </el-form-item> |
| 7 | - <el-form-item :label="$t('editMemberCar.carBrand')"> | ||
| 8 | - <el-input v-model="editMemberCarInfo.carBrand" :placeholder="$t('editMemberCar.carBrandOptional')"></el-input> | 7 | + <el-form-item :label="$t('listOwnerCar.carBrand')"> |
| 8 | + <el-input v-model="editMemberCarInfo.carBrand" :placeholder="$t('listOwnerCar.carBrandOptional')"></el-input> | ||
| 9 | </el-form-item> | 9 | </el-form-item> |
| 10 | - <el-form-item :label="$t('editMemberCar.carType')" prop="carType"> | ||
| 11 | - <el-select v-model="editMemberCarInfo.carType" :placeholder="$t('editMemberCar.carTypeRequired')" style="width:100%"> | 10 | + <el-form-item :label="$t('listOwnerCar.carType')" prop="carType"> |
| 11 | + <el-select v-model="editMemberCarInfo.carType" :placeholder="$t('listOwnerCar.carTypeRequired')" style="width:100%"> | ||
| 12 | <el-option v-for="carType in carTypes" :key="carType.statusCd" | 12 | <el-option v-for="carType in carTypes" :key="carType.statusCd" |
| 13 | :label="carType.name" :value="carType.statusCd"></el-option> | 13 | :label="carType.name" :value="carType.statusCd"></el-option> |
| 14 | </el-select> | 14 | </el-select> |
| 15 | </el-form-item> | 15 | </el-form-item> |
| 16 | - <el-form-item :label="$t('editMemberCar.color')"> | ||
| 17 | - <el-input v-model="editMemberCarInfo.carColor" :placeholder="$t('editMemberCar.colorOptional')"></el-input> | 16 | + <el-form-item :label="$t('listOwnerCar.color')"> |
| 17 | + <el-input v-model="editMemberCarInfo.carColor" :placeholder="$t('listOwnerCar.colorOptional')"></el-input> | ||
| 18 | </el-form-item> | 18 | </el-form-item> |
| 19 | - <el-form-item :label="$t('editMemberCar.remark')"> | ||
| 20 | - <el-input type="textarea" v-model="editMemberCarInfo.remark" :placeholder="$t('editMemberCar.remarkPlaceholder')" rows="3"></el-input> | 19 | + <el-form-item :label="$t('listOwnerCar.remark')"> |
| 20 | + <el-input type="textarea" v-model="editMemberCarInfo.remark" :placeholder="$t('listOwnerCar.remarkPlaceholder')" rows="3"></el-input> | ||
| 21 | </el-form-item> | 21 | </el-form-item> |
| 22 | </el-form> | 22 | </el-form> |
| 23 | <div slot="footer" class="dialog-footer"> | 23 | <div slot="footer" class="dialog-footer"> |
src/i18n/commonLang.js
| @@ -67,6 +67,8 @@ export const messages = { | @@ -67,6 +67,8 @@ export const messages = { | ||
| 67 | process:'Process', | 67 | process:'Process', |
| 68 | jpgOnly:'Only JPG files are allowed', | 68 | jpgOnly:'Only JPG files are allowed', |
| 69 | sizeLimit:'File size must be less than 2MB', | 69 | sizeLimit:'File size must be less than 2MB', |
| 70 | + required:'Required', | ||
| 71 | + invalid:'Invalid', | ||
| 70 | } | 72 | } |
| 71 | }, | 73 | }, |
| 72 | zh: { | 74 | zh: { |
| @@ -137,6 +139,8 @@ export const messages = { | @@ -137,6 +139,8 @@ export const messages = { | ||
| 137 | process:'处理', | 139 | process:'处理', |
| 138 | jpgOnly:'只允许上传JPG文件', | 140 | jpgOnly:'只允许上传JPG文件', |
| 139 | sizeLimit:'文件大小必须小于2MB', | 141 | sizeLimit:'文件大小必须小于2MB', |
| 142 | + required:'必填', | ||
| 143 | + invalid:'无效', | ||
| 140 | } | 144 | } |
| 141 | } | 145 | } |
| 142 | } | 146 | } |
| 143 | \ No newline at end of file | 147 | \ No newline at end of file |
src/views/car/carDetail.vue
| @@ -208,6 +208,10 @@ export default { | @@ -208,6 +208,10 @@ export default { | ||
| 208 | created() { | 208 | created() { |
| 209 | this.communityId = getCommunityId() | 209 | this.communityId = getCommunityId() |
| 210 | this.carDetailInfo.memberId = this.$route.query.memberId | 210 | this.carDetailInfo.memberId = this.$route.query.memberId |
| 211 | + let tab = this.$route.query.tab | ||
| 212 | + if (tab) { | ||
| 213 | + this.carDetailInfo._currentTab = tab | ||
| 214 | + } | ||
| 211 | if (this.carDetailInfo.memberId) { | 215 | if (this.carDetailInfo.memberId) { |
| 212 | this._loadCarDetailInfo() | 216 | this._loadCarDetailInfo() |
| 213 | } | 217 | } |
src/views/car/listOwnerCarLang.js
| @@ -87,6 +87,7 @@ export const messages = { | @@ -87,6 +87,7 @@ export const messages = { | ||
| 87 | endTimeAfterStart: 'End time must be after start time', | 87 | endTimeAfterStart: 'End time must be after start time', |
| 88 | iotSyncDetail: 'IoT sync details', | 88 | iotSyncDetail: 'IoT sync details', |
| 89 | confirmRelease: 'Are you sure to release the car?', | 89 | confirmRelease: 'Are you sure to release the car?', |
| 90 | + parkingLot: 'Parking Lot', | ||
| 90 | } | 91 | } |
| 91 | }, | 92 | }, |
| 92 | zh: { | 93 | zh: { |
| @@ -177,6 +178,7 @@ export const messages = { | @@ -177,6 +178,7 @@ export const messages = { | ||
| 177 | endTimeAfterStart: '结租时间必须大于起租时间', | 178 | endTimeAfterStart: '结租时间必须大于起租时间', |
| 178 | iotSyncDetail: '同步物联网详情', | 179 | iotSyncDetail: '同步物联网详情', |
| 179 | confirmRelease: '确认释放车辆?', | 180 | confirmRelease: '确认释放车辆?', |
| 181 | + parkingLot: '车场', | ||
| 180 | } | 182 | } |
| 181 | } | 183 | } |
| 182 | } | 184 | } |
| 183 | \ No newline at end of file | 185 | \ No newline at end of file |
src/views/car/listOwnerCarList.vue
| @@ -316,7 +316,7 @@ export default { | @@ -316,7 +316,7 @@ export default { | ||
| 316 | }, | 316 | }, |
| 317 | 317 | ||
| 318 | toCarMember(car) { | 318 | toCarMember(car) { |
| 319 | - this.$router.push(`/pages/property/listOwnerCarMember?carId=${car.carId}&carNum=${car.carNum}`) | 319 | + this.$router.push(`/views/car/carDetail?memberId=${car.carId}&tab=carDetailMember`) |
| 320 | }, | 320 | }, |
| 321 | 321 | ||
| 322 | getCarState(car) { | 322 | getCarState(car) { |