Commit 6f9168702157da397bf7501dc54dba360a403b9c
1 parent
0c52f32a
优化甘肃客户反馈bug
Showing
21 changed files
with
350 additions
and
199 deletions
src/api/fee/listApplyRoomDiscountRecordDetailsApi.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | + | ||
| 3 | +/** | ||
| 4 | + * 查询房间折扣记录详情 | ||
| 5 | + * @param {Object} params 查询参数 | ||
| 6 | + * @param {string} params.ardrId 折扣记录ID | ||
| 7 | + * @param {string} params.roomName 房间名称 | ||
| 8 | + * @param {string} params.state 状态 | ||
| 9 | + * @param {string} params.roomId 房间ID | ||
| 10 | + * @param {string} params.communityId 小区ID | ||
| 11 | + * @param {number} params.page 当前页码 | ||
| 12 | + * @param {number} params.row 每页条数 | ||
| 13 | + * @returns {Promise} 返回Promise对象 | ||
| 14 | + */ | ||
| 15 | +export function queryApplyRoomDiscountRecordDetail(params) { | ||
| 16 | + return new Promise((resolve, reject) => { | ||
| 17 | + request({ | ||
| 18 | + url: '/applyRoomDiscountRecord/queryApplyRoomDiscountRecordDetail', | ||
| 19 | + method: 'get', | ||
| 20 | + params | ||
| 21 | + }).then(response => { | ||
| 22 | + const res = response.data | ||
| 23 | + resolve({ | ||
| 24 | + data: res.data, | ||
| 25 | + total: res.total | ||
| 26 | + }) | ||
| 27 | + }).catch(error => { | ||
| 28 | + reject(error) | ||
| 29 | + }) | ||
| 30 | + }) | ||
| 31 | +} | ||
| 0 | \ No newline at end of file | 32 | \ No newline at end of file |
src/components/fee/applyRoomDiscountRecord.vue
| 1 | <template> | 1 | <template> |
| 2 | <el-dialog :title="$t('applyRoomDiscountRecord.title')" :visible.sync="visible" width="60%" | 2 | <el-dialog :title="$t('applyRoomDiscountRecord.title')" :visible.sync="visible" width="60%" |
| 3 | :before-close="handleClose"> | 3 | :before-close="handleClose"> |
| 4 | - <el-form :model="form" label-width="120px" label-position="left"> | 4 | + <el-form :model="form" label-width="120px" label-position="left" class="text-left"> |
| 5 | <el-form-item :label="$t('applyRoomDiscountRecord.room')"> | 5 | <el-form-item :label="$t('applyRoomDiscountRecord.room')"> |
| 6 | <el-input v-model="form.roomName" disabled></el-input> | 6 | <el-input v-model="form.roomName" disabled></el-input> |
| 7 | </el-form-item> | 7 | </el-form-item> |
| @@ -20,7 +20,7 @@ | @@ -20,7 +20,7 @@ | ||
| 20 | :placeholder="$t('applyRoomDiscountRecord.remarkPlaceholder')"></el-input> | 20 | :placeholder="$t('applyRoomDiscountRecord.remarkPlaceholder')"></el-input> |
| 21 | </el-form-item> | 21 | </el-form-item> |
| 22 | <el-form-item :label="$t('applyRoomDiscountRecord.uploadImages')"> | 22 | <el-form-item :label="$t('applyRoomDiscountRecord.uploadImages')"> |
| 23 | - <upload-image-url ref="uploadImageUrl" /> | 23 | + <upload-image-url ref="uploadImageUrl" @notifyUploadCoverImage="handleNotifyUploadCoverImage" /> |
| 24 | </el-form-item> | 24 | </el-form-item> |
| 25 | <el-form-item :label="$t('applyRoomDiscountRecord.uploadVideo')"> | 25 | <el-form-item :label="$t('applyRoomDiscountRecord.uploadVideo')"> |
| 26 | <upload-vedio ref="uploadVedio" /> | 26 | <upload-vedio ref="uploadVedio" /> |
| @@ -105,10 +105,7 @@ export default { | @@ -105,10 +105,7 @@ export default { | ||
| 105 | this.visible = false | 105 | this.visible = false |
| 106 | }, | 106 | }, |
| 107 | validateForm() { | 107 | validateForm() { |
| 108 | - if (this.form.isTrue === null) { | ||
| 109 | - this.$message.error(this.$t('applyRoomDiscountRecord.violationRequired')) | ||
| 110 | - return false | ||
| 111 | - } | 108 | + |
| 112 | if (!this.form.remark) { | 109 | if (!this.form.remark) { |
| 113 | this.$message.error(this.$t('applyRoomDiscountRecord.remarkRequired')) | 110 | this.$message.error(this.$t('applyRoomDiscountRecord.remarkRequired')) |
| 114 | return false | 111 | return false |
| @@ -119,7 +116,6 @@ export default { | @@ -119,7 +116,6 @@ export default { | ||
| 119 | if (!this.validateForm()) return | 116 | if (!this.validateForm()) return |
| 120 | 117 | ||
| 121 | try { | 118 | try { |
| 122 | - this.form.photos = this.$refs.uploadImageUrl.getPhotos() | ||
| 123 | this.form.videoName = this.$refs.uploadVedio.getVideoName() | 119 | this.form.videoName = this.$refs.uploadVedio.getVideoName() |
| 124 | 120 | ||
| 125 | const res = await addApplyRoomDiscountRecord(this.form) | 121 | const res = await addApplyRoomDiscountRecord(this.form) |
| @@ -131,8 +127,12 @@ export default { | @@ -131,8 +127,12 @@ export default { | ||
| 131 | this.$message.error(res.msg) | 127 | this.$message.error(res.msg) |
| 132 | } | 128 | } |
| 133 | } catch (error) { | 129 | } catch (error) { |
| 130 | + console.log(error) | ||
| 134 | this.$message.error(this.$t('common.saveFailed')) | 131 | this.$message.error(this.$t('common.saveFailed')) |
| 135 | } | 132 | } |
| 133 | + }, | ||
| 134 | + handleNotifyUploadCoverImage(photosUrl) { | ||
| 135 | + this.form.photos = photosUrl | ||
| 136 | } | 136 | } |
| 137 | } | 137 | } |
| 138 | } | 138 | } |
src/components/fee/batchFeeCycle.vue
| 1 | <template> | 1 | <template> |
| 2 | - <el-dialog | ||
| 3 | - :title="batchFeeCycleInfo.fee.feeName" | ||
| 4 | - :visible.sync="visible" | ||
| 5 | - width="500px" | ||
| 6 | - :before-close="handleClose" | ||
| 7 | - > | 2 | + <el-dialog :title="batchFeeCycleInfo.feeName" :visible.sync="visible" width="500px" :before-close="handleClose"> |
| 8 | <el-form label-width="120px"> | 3 | <el-form label-width="120px"> |
| 9 | <el-form-item :label="$t('batchFeeCycle.paymentCycle')"> | 4 | <el-form-item :label="$t('batchFeeCycle.paymentCycle')"> |
| 10 | - <el-select | ||
| 11 | - v-model="batchFeeCycleInfo.tempCycle" | ||
| 12 | - @change="changeTempCycle" | ||
| 13 | - style="width:100%" | ||
| 14 | - :placeholder="$t('batchFeeCycle.selectCycleTip')" | ||
| 15 | - > | ||
| 16 | - <el-option | ||
| 17 | - value="-100" | ||
| 18 | - :label="$t('batchFeeCycle.default')" | ||
| 19 | - ></el-option> | ||
| 20 | - <el-option | ||
| 21 | - value="-102" | ||
| 22 | - :label="$t('batchFeeCycle.customCycle')" | ||
| 23 | - ></el-option> | ||
| 24 | - <el-option | ||
| 25 | - value="-101" | ||
| 26 | - :label="$t('batchFeeCycle.customAmount')" | ||
| 27 | - ></el-option> | ||
| 28 | - <el-option | ||
| 29 | - value="-103" | ||
| 30 | - :label="$t('batchFeeCycle.customEndTime')" | ||
| 31 | - ></el-option> | 5 | + <el-select v-model="batchFeeCycleInfo.tempCycle" @change="changeTempCycle" style="width:100%" |
| 6 | + :placeholder="$t('batchFeeCycle.selectCycleTip')"> | ||
| 7 | + <el-option value="-100" :label="$t('batchFeeCycle.default')"></el-option> | ||
| 8 | + <el-option value="-102" :label="$t('batchFeeCycle.customCycle')"></el-option> | ||
| 9 | + <el-option value="-101" :label="$t('batchFeeCycle.customAmount')"></el-option> | ||
| 10 | + <el-option value="-103" :label="$t('batchFeeCycle.customEndTime')"></el-option> | ||
| 32 | </el-select> | 11 | </el-select> |
| 33 | </el-form-item> | 12 | </el-form-item> |
| 34 | 13 | ||
| 35 | - <el-form-item | ||
| 36 | - v-if="batchFeeCycleInfo.tempCycle === '-101'" | ||
| 37 | - :label="$t('batchFeeCycle.customAmount')" | ||
| 38 | - > | ||
| 39 | - <el-input | ||
| 40 | - type="number" | ||
| 41 | - v-model="batchFeeCycleInfo.receivedAmount" | ||
| 42 | - :placeholder="$t('batchFeeCycle.enterCustomAmount')" | ||
| 43 | - ></el-input> | 14 | + <el-form-item v-if="batchFeeCycleInfo.tempCycle === '-101'" :label="$t('batchFeeCycle.customAmount')"> |
| 15 | + <el-input type="number" v-model="batchFeeCycleInfo.receivedAmount" | ||
| 16 | + :placeholder="$t('batchFeeCycle.enterCustomAmount')"></el-input> | ||
| 44 | </el-form-item> | 17 | </el-form-item> |
| 45 | 18 | ||
| 46 | - <el-form-item | ||
| 47 | - v-if="batchFeeCycleInfo.tempCycle === '-102'" | ||
| 48 | - :label="$t('batchFeeCycle.actualCycle')" | ||
| 49 | - > | ||
| 50 | - <el-input | ||
| 51 | - type="number" | ||
| 52 | - v-model="batchFeeCycleInfo.cycles" | ||
| 53 | - :placeholder="$t('batchFeeCycle.enterActualCycle')" | ||
| 54 | - ></el-input> | 19 | + <el-form-item v-if="batchFeeCycleInfo.tempCycle === '-102'" :label="$t('batchFeeCycle.actualCycle')"> |
| 20 | + <el-input type="number" v-model="batchFeeCycleInfo.cycles" | ||
| 21 | + :placeholder="$t('batchFeeCycle.enterActualCycle')"></el-input> | ||
| 55 | </el-form-item> | 22 | </el-form-item> |
| 56 | 23 | ||
| 57 | - <el-form-item | ||
| 58 | - v-if="batchFeeCycleInfo.tempCycle === '-103'" | ||
| 59 | - :label="$t('batchFeeCycle.endTime')" | ||
| 60 | - > | ||
| 61 | - <el-date-picker | ||
| 62 | - v-model="batchFeeCycleInfo.custEndTime" | ||
| 63 | - type="date" | ||
| 64 | - style="width:100%" | ||
| 65 | - :placeholder="$t('batchFeeCycle.selectEndTime')" | ||
| 66 | - value-format="yyyy-MM-dd" | ||
| 67 | - ></el-date-picker> | 24 | + <el-form-item v-if="batchFeeCycleInfo.tempCycle === '-103'" :label="$t('batchFeeCycle.endTime')"> |
| 25 | + <el-date-picker v-model="batchFeeCycleInfo.custEndTime" type="date" style="width:100%" | ||
| 26 | + :placeholder="$t('batchFeeCycle.selectEndTime')" value-format="yyyy-MM-dd"></el-date-picker> | ||
| 68 | </el-form-item> | 27 | </el-form-item> |
| 69 | </el-form> | 28 | </el-form> |
| 70 | 29 | ||
| @@ -92,12 +51,7 @@ export default { | @@ -92,12 +51,7 @@ export default { | ||
| 92 | }, | 51 | }, |
| 93 | methods: { | 52 | methods: { |
| 94 | open(fee) { | 53 | open(fee) { |
| 95 | - this.batchFeeCycleInfo = { | ||
| 96 | - cycles: fee.cycles, | ||
| 97 | - tempCycle: fee.tempCycle, | ||
| 98 | - receivedAmount: fee.receivedAmount, | ||
| 99 | - fee: { ...fee } | ||
| 100 | - } | 54 | + this.batchFeeCycleInfo = fee |
| 101 | this.visible = true | 55 | this.visible = true |
| 102 | }, | 56 | }, |
| 103 | 57 | ||
| @@ -113,15 +67,8 @@ export default { | @@ -113,15 +67,8 @@ export default { | ||
| 113 | }, | 67 | }, |
| 114 | 68 | ||
| 115 | _doSubmitFeeCycle() { | 69 | _doSubmitFeeCycle() { |
| 116 | - const updatedFee = { | ||
| 117 | - ...this.batchFeeCycleInfo.fee, | ||
| 118 | - tempCycle: this.batchFeeCycleInfo.tempCycle, | ||
| 119 | - cycles: this.batchFeeCycleInfo.cycles, | ||
| 120 | - custEndTime: this.batchFeeCycleInfo.custEndTime, | ||
| 121 | - receivedAmount: this.batchFeeCycleInfo.receivedAmount | ||
| 122 | - } | ||
| 123 | 70 | ||
| 124 | - this.$emit('changeMonth', updatedFee) | 71 | + this.$emit('changeMonth', this.batchFeeCycleInfo) |
| 125 | this.handleClose() | 72 | this.handleClose() |
| 126 | } | 73 | } |
| 127 | } | 74 | } |
src/components/fee/simplifyFeeReceipt.vue
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | - <el-row class="margin-top-lg"> | ||
| 4 | - <el-col :span="4" class="padding-right-xs padding-left-xl"> | ||
| 5 | - <el-select v-model="simplifyFeeReceiptInfo.objType" size="small" @change="_changeSimplifyFeeReceiptFeeTypeCd" | ||
| 6 | - :placeholder="$t('simplifyFeeReceipt.selectFeeType')"> | ||
| 7 | - <el-option v-for="(item, index) in simplifyFeeReceiptInfo.objTypes" :key="index" :label="item.name" | ||
| 8 | - :value="item.statusCd"></el-option> | ||
| 9 | - </el-select> | ||
| 10 | - </el-col> | ||
| 11 | - <el-col :span="4" class="padding-right-xs padding-left-xl" v-if="simplifyFeeReceiptInfo.objType == '6666'"> | ||
| 12 | - <el-select v-model="simplifyFeeReceiptInfo.carId" size="small" @change="changeSimplifyFeeReceiptCar" | ||
| 13 | - :placeholder="$t('simplifyFeeReceipt.selectCar')"> | ||
| 14 | - <el-option v-for="(item, index) in simplifyFeeReceiptInfo.ownerCars" :key="index" :label="item.carNum" | ||
| 15 | - :value="item.carId"></el-option> | ||
| 16 | - </el-select> | ||
| 17 | - </el-col> | ||
| 18 | - <el-col :span="4" class="padding-right-xs padding-left-xl" v-else-if="simplifyFeeReceiptInfo.objType == '7777'"> | ||
| 19 | - <el-select v-model="simplifyFeeReceiptInfo.contractId" size="small" @change="changeSimplifyFeeReceiptCar" | ||
| 20 | - :placeholder="$t('simplifyFeeReceipt.selectContract')"> | ||
| 21 | - <el-option v-for="(item, index) in simplifyFeeReceiptInfo.ownerContracts" :key="index" | ||
| 22 | - :label="item.contractCode" :value="item.contractId"></el-option> | ||
| 23 | - </el-select> | ||
| 24 | - </el-col> | ||
| 25 | - <el-col :span="4" class="padding-right-xs padding-left-xl" v-if="simplifyFeeReceiptInfo.objType != '7777'"> | ||
| 26 | - <el-select v-model="simplifyFeeReceiptInfo.ownerFlag" size="small" @change="_queryFeeReceiptMethod"> | ||
| 27 | - <el-option | ||
| 28 | - :label="$t('simplifyFeeReceipt.current') + (simplifyFeeReceiptInfo.objType == '6666' ? $t('simplifyFeeReceipt.car') : $t('simplifyFeeReceipt.room'))" | ||
| 29 | - value="F"></el-option> | ||
| 30 | - <el-option | ||
| 31 | - :label="$t('simplifyFeeReceipt.all') + (simplifyFeeReceiptInfo.objType == '6666' ? $t('simplifyFeeReceipt.car') : $t('simplifyFeeReceipt.room'))" | ||
| 32 | - value="T"></el-option> | ||
| 33 | - </el-select> | ||
| 34 | - </el-col> | ||
| 35 | - <el-col :span="4" class="padding-right-xs padding-left-xl"> | ||
| 36 | - <el-input v-model="simplifyFeeReceiptInfo.receiptCode" size="small" | ||
| 37 | - :placeholder="$t('simplifyFeeReceipt.receiptCode')"></el-input> | ||
| 38 | - </el-col> | ||
| 39 | - <el-col :span="4" class="padding-right-xs padding-left-xl"> | ||
| 40 | - <el-button type="primary" size="small" @click="_queryFeeReceiptMethod"> | ||
| 41 | - {{ $t('simplifyFeeReceipt.query') }} | ||
| 42 | - </el-button> | ||
| 43 | - </el-col> | ||
| 44 | - <el-col :span="8" class="text-right padding-right-lg"> | 3 | + <div class="margin-top-lg flex justify-between"> |
| 4 | + <div class="flex justify-start"> | ||
| 5 | + <div :span="3" class="padding-right-xs padding-left-xl"> | ||
| 6 | + <el-select v-model="simplifyFeeReceiptInfo.objType" size="small" @change="_changeSimplifyFeeReceiptFeeTypeCd" | ||
| 7 | + :placeholder="$t('simplifyFeeReceipt.selectFeeType')"> | ||
| 8 | + <el-option v-for="(item, index) in simplifyFeeReceiptInfo.objTypes" :key="index" :label="item.name" | ||
| 9 | + :value="item.statusCd"></el-option> | ||
| 10 | + </el-select> | ||
| 11 | + </div> | ||
| 12 | + <div :span="3" class="padding-right-xs padding-left-xl" v-if="simplifyFeeReceiptInfo.objType == '6666'"> | ||
| 13 | + <el-select v-model="simplifyFeeReceiptInfo.carId" size="small" @change="changeSimplifyFeeReceiptCar" | ||
| 14 | + :placeholder="$t('simplifyFeeReceipt.selectCar')"> | ||
| 15 | + <el-option v-for="(item, index) in simplifyFeeReceiptInfo.ownerCars" :key="index" :label="item.carNum" | ||
| 16 | + :value="item.carId"></el-option> | ||
| 17 | + </el-select> | ||
| 18 | + </div> | ||
| 19 | + <div :span="3" class="padding-right-xs padding-left-xl" v-else-if="simplifyFeeReceiptInfo.objType == '7777'"> | ||
| 20 | + <el-select v-model="simplifyFeeReceiptInfo.contractId" size="small" @change="changeSimplifyFeeReceiptCar" | ||
| 21 | + :placeholder="$t('simplifyFeeReceipt.selectContract')"> | ||
| 22 | + <el-option v-for="(item, index) in simplifyFeeReceiptInfo.ownerContracts" :key="index" | ||
| 23 | + :label="item.contractCode" :value="item.contractId"></el-option> | ||
| 24 | + </el-select> | ||
| 25 | + </div> | ||
| 26 | + <div :span="3" class="padding-right-xs padding-left-xl" v-if="simplifyFeeReceiptInfo.objType != '7777'"> | ||
| 27 | + <el-select v-model="simplifyFeeReceiptInfo.ownerFlag" size="small" @change="_queryFeeReceiptMethod"> | ||
| 28 | + <el-option | ||
| 29 | + :label="$t('simplifyFeeReceipt.current') + (simplifyFeeReceiptInfo.objType == '6666' ? $t('simplifyFeeReceipt.car') : $t('simplifyFeeReceipt.room'))" | ||
| 30 | + value="F"></el-option> | ||
| 31 | + <el-option | ||
| 32 | + :label="$t('simplifyFeeReceipt.all') + (simplifyFeeReceiptInfo.objType == '6666' ? $t('simplifyFeeReceipt.car') : $t('simplifyFeeReceipt.room'))" | ||
| 33 | + value="T"></el-option> | ||
| 34 | + </el-select> | ||
| 35 | + </div> | ||
| 36 | + <div :span="3" class="padding-right-xs padding-left-xl"> | ||
| 37 | + <el-input v-model="simplifyFeeReceiptInfo.receiptCode" size="small" | ||
| 38 | + :placeholder="$t('simplifyFeeReceipt.receiptCode')"></el-input> | ||
| 39 | + </div> | ||
| 40 | + <div :span="2" class="padding-right-xs padding-left-xl"> | ||
| 41 | + <el-button type="primary" size="small" @click="_queryFeeReceiptMethod"> | ||
| 42 | + {{ $t('simplifyFeeReceipt.query') }} | ||
| 43 | + </el-button> | ||
| 44 | + </div> | ||
| 45 | + </div> | ||
| 46 | + <div :span="8" class="text-right padding-right-lg"> | ||
| 45 | <el-button type="primary" size="small" @click="_printFeeReceipt('OFF')"> | 47 | <el-button type="primary" size="small" @click="_printFeeReceipt('OFF')"> |
| 46 | {{ $t('simplifyFeeReceipt.print') }} | 48 | {{ $t('simplifyFeeReceipt.print') }} |
| 47 | </el-button> | 49 | </el-button> |
| @@ -54,11 +56,11 @@ | @@ -54,11 +56,11 @@ | ||
| 54 | <el-button type="primary" size="small" @click="_printApplyFeeReceipt"> | 56 | <el-button type="primary" size="small" @click="_printApplyFeeReceipt"> |
| 55 | {{ $t('simplifyFeeReceipt.apply') }} | 57 | {{ $t('simplifyFeeReceipt.apply') }} |
| 56 | </el-button> | 58 | </el-button> |
| 57 | - </el-col> | ||
| 58 | - </el-row> | 59 | + </div> |
| 60 | + </div> | ||
| 59 | <div class="margin-top"> | 61 | <div class="margin-top"> |
| 60 | <el-table :data="simplifyFeeReceiptInfo.feeReceipts" @selection-change="handleSelectionChange" border stripe> | 62 | <el-table :data="simplifyFeeReceiptInfo.feeReceipts" @selection-change="handleSelectionChange" border stripe> |
| 61 | - <el-table-column type="selection" width="55" align="center" ></el-table-column> | 63 | + <el-table-column type="selection" width="55" align="center"></el-table-column> |
| 62 | <el-table-column prop="receiptCode" :label="$t('simplifyFeeReceipt.receiptCode')" | 64 | <el-table-column prop="receiptCode" :label="$t('simplifyFeeReceipt.receiptCode')" |
| 63 | align="center"></el-table-column> | 65 | align="center"></el-table-column> |
| 64 | <el-table-column :label="$t('simplifyFeeReceipt.feeType')" align="center"> | 66 | <el-table-column :label="$t('simplifyFeeReceipt.feeType')" align="center"> |
| @@ -143,12 +145,14 @@ export default { | @@ -143,12 +145,14 @@ export default { | ||
| 143 | } | 145 | } |
| 144 | }, | 146 | }, |
| 145 | created() { | 147 | created() { |
| 146 | - this._loadDictData() | ||
| 147 | }, | 148 | }, |
| 148 | methods: { | 149 | methods: { |
| 149 | handleSwitch(param) { | 150 | handleSwitch(param) { |
| 150 | if (param.roomId === '') return | 151 | if (param.roomId === '') return |
| 152 | + | ||
| 151 | this.clearSimplifyFeeReceiptInfo() | 153 | this.clearSimplifyFeeReceiptInfo() |
| 154 | + this._loadDictData() | ||
| 155 | + | ||
| 152 | this._listFeePrintPages() | 156 | this._listFeePrintPages() |
| 153 | Object.assign(this.simplifyFeeReceiptInfo, param) | 157 | Object.assign(this.simplifyFeeReceiptInfo, param) |
| 154 | this.simplifyFeeReceiptInfo.objId = param.roomId | 158 | this.simplifyFeeReceiptInfo.objId = param.roomId |
src/components/org/ChooseOrgTree.vue
| @@ -52,7 +52,7 @@ export default { | @@ -52,7 +52,7 @@ export default { | ||
| 52 | const { data } = await listOrgTree(params) | 52 | const { data } = await listOrgTree(params) |
| 53 | 53 | ||
| 54 | // 确保数据是数组格式 | 54 | // 确保数据是数组格式 |
| 55 | - let treeData = data | 55 | + let treeData = [data] |
| 56 | 56 | ||
| 57 | // 如果返回的是对象而不是数组,尝试提取数组 | 57 | // 如果返回的是对象而不是数组,尝试提取数组 |
| 58 | if (Array.isArray(treeData)) { | 58 | if (Array.isArray(treeData)) { |
src/components/room/selectRooms.vue
| @@ -110,6 +110,10 @@ export default { | @@ -110,6 +110,10 @@ export default { | ||
| 110 | } | 110 | } |
| 111 | const res = await queryRooms(params) | 111 | const res = await queryRooms(params) |
| 112 | this.rooms = res.rooms | 112 | this.rooms = res.rooms |
| 113 | + this.rooms.forEach(item => { | ||
| 114 | + this.roomIds.push(item) | ||
| 115 | + }); | ||
| 116 | + this.handleRoomSelect() | ||
| 113 | } catch (error) { | 117 | } catch (error) { |
| 114 | this.$message.error(this.$t('selectRoom.loadRoomError')) | 118 | this.$message.error(this.$t('selectRoom.loadRoomError')) |
| 115 | } | 119 | } |
src/components/simplify/simplifyCarFee.vue
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | - <el-row class="margin-top"> | ||
| 4 | - <el-col :span="4"> | 3 | + <div class="margin-top flex justify-between"> |
| 4 | + <div > | ||
| 5 | <el-select v-model="simplifyCarFeeInfo.carId" @change="changeSimplifyCar"> | 5 | <el-select v-model="simplifyCarFeeInfo.carId" @change="changeSimplifyCar"> |
| 6 | <el-option | 6 | <el-option |
| 7 | v-for="(item,index) in simplifyCarFeeInfo.ownerCars" | 7 | v-for="(item,index) in simplifyCarFeeInfo.ownerCars" |
| @@ -10,9 +10,8 @@ | @@ -10,9 +10,8 @@ | ||
| 10 | :value="item.carId"> | 10 | :value="item.carId"> |
| 11 | </el-option> | 11 | </el-option> |
| 12 | </el-select> | 12 | </el-select> |
| 13 | - </el-col> | ||
| 14 | - <el-col :span="16"></el-col> | ||
| 15 | - <el-col :span="4" v-if="simplifyCarFeeInfo.carId"> | 13 | + </div> |
| 14 | + <div v-if="simplifyCarFeeInfo.carId"> | ||
| 16 | <el-button type="primary" size="small" @click="_toBuyCarMonthCard"> | 15 | <el-button type="primary" size="small" @click="_toBuyCarMonthCard"> |
| 17 | {{ $t('simplifyCarFee.buyMonthCard') }} | 16 | {{ $t('simplifyCarFee.buyMonthCard') }} |
| 18 | </el-button> | 17 | </el-button> |
| @@ -22,8 +21,8 @@ | @@ -22,8 +21,8 @@ | ||
| 22 | <el-button type="primary" size="small" @click="_openSimplifyCarCreateFeeAddModal"> | 21 | <el-button type="primary" size="small" @click="_openSimplifyCarCreateFeeAddModal"> |
| 23 | {{ $t('simplifyCarFee.createFee') }} | 22 | {{ $t('simplifyCarFee.createFee') }} |
| 24 | </el-button> | 23 | </el-button> |
| 25 | - </el-col> | ||
| 26 | - </el-row> | 24 | + </div> |
| 25 | + </div> | ||
| 27 | 26 | ||
| 28 | <el-table | 27 | <el-table |
| 29 | :data="simplifyCarFeeInfo.fees" | 28 | :data="simplifyCarFeeInfo.fees" |
| @@ -115,12 +114,22 @@ | @@ -115,12 +114,22 @@ | ||
| 115 | </el-pagination> | 114 | </el-pagination> |
| 116 | </el-col> | 115 | </el-col> |
| 117 | </el-row> | 116 | </el-row> |
| 117 | + <car-create-fee-add ref="carCreateFeeAdd" @success="handleNotify" /> | ||
| 118 | + <delete-fee ref="deleteFee" @success="handleNotify"></delete-fee> | ||
| 119 | + <edit-fee ref="editFee" @success="handleNotify"></edit-fee> | ||
| 120 | + <finish-fee ref="finishFee" @success="handleNotify"></finish-fee> | ||
| 121 | + | ||
| 118 | </div> | 122 | </div> |
| 119 | </template> | 123 | </template> |
| 120 | 124 | ||
| 121 | <script> | 125 | <script> |
| 122 | import { getCommunityId } from '@/api/community/communityApi' | 126 | import { getCommunityId } from '@/api/community/communityApi' |
| 123 | import { listFee, queryOwnerCars } from '@/api/simplify/simplifyCarFeeApi' | 127 | import { listFee, queryOwnerCars } from '@/api/simplify/simplifyCarFeeApi' |
| 128 | +import CarCreateFeeAdd from '@/components/fee/carCreateFeeAdd' | ||
| 129 | +import DeleteFee from '@/components/fee/deleteFee' | ||
| 130 | +import EditFee from '@/components/fee/editFee' | ||
| 131 | +import FinishFee from '@/components/fee/finishFee' | ||
| 132 | + | ||
| 124 | 133 | ||
| 125 | export default { | 134 | export default { |
| 126 | name: 'SimplifyCarFee', | 135 | name: 'SimplifyCarFee', |
| @@ -145,14 +154,20 @@ export default { | @@ -145,14 +154,20 @@ export default { | ||
| 145 | total: 0 | 154 | total: 0 |
| 146 | } | 155 | } |
| 147 | }, | 156 | }, |
| 157 | + components: { | ||
| 158 | + CarCreateFeeAdd, | ||
| 159 | + DeleteFee, | ||
| 160 | + EditFee, | ||
| 161 | + FinishFee | ||
| 162 | + }, | ||
| 148 | created() { | 163 | created() { |
| 149 | this.communityId = getCommunityId() | 164 | this.communityId = getCommunityId() |
| 150 | - this.initEvents() | 165 | + |
| 151 | }, | 166 | }, |
| 152 | methods: { | 167 | methods: { |
| 153 | - initEvents() { | ||
| 154 | - this.$on('switch', this.handleSwitch) | ||
| 155 | - this.$on('notify', this.handleNotify) | 168 | + |
| 169 | + open(param) { | ||
| 170 | + this.handleSwitch(param) | ||
| 156 | }, | 171 | }, |
| 157 | handleSwitch(param) { | 172 | handleSwitch(param) { |
| 158 | if (param.ownerId == '') return | 173 | if (param.ownerId == '') return |
| @@ -204,13 +219,14 @@ export default { | @@ -204,13 +219,14 @@ export default { | ||
| 204 | } | 219 | } |
| 205 | 220 | ||
| 206 | queryOwnerCars(params).then(res => { | 221 | queryOwnerCars(params).then(res => { |
| 207 | - this.simplifyCarFeeInfo.ownerCars = res.data | ||
| 208 | - if (res.data.length > 0) { | ||
| 209 | - this.simplifyCarFeeInfo.carId = res.data[0].carId | ||
| 210 | - this.simplifyCarFeeInfo.carNum = res.data[0].carNum | ||
| 211 | - this.simplifyCarFeeInfo.num = res.data[0].num | ||
| 212 | - this.simplifyCarFeeInfo.parkingName = `${res.data[0].areaNum}${this.$t('simplifyCarFee.parkingLot')}${res.data[0].num}${this.$t('simplifyCarFee.parkingSpace')}` | ||
| 213 | - resolve(res.data) | 222 | + let _json = res.data; |
| 223 | + this.simplifyCarFeeInfo.ownerCars = _json.data | ||
| 224 | + if (_json.data.length > 0) { | ||
| 225 | + this.simplifyCarFeeInfo.carId = _json.data[0].carId | ||
| 226 | + this.simplifyCarFeeInfo.carNum = _json.data[0].carNum | ||
| 227 | + this.simplifyCarFeeInfo.num = _json.data[0].num | ||
| 228 | + this.simplifyCarFeeInfo.parkingName = `${_json.data[0].areaNum}${this.$t('simplifyCarFee.parkingLot')}${_json.data[0].num}${this.$t('simplifyCarFee.parkingSpace')}` | ||
| 229 | + resolve(_json.data) | ||
| 214 | } else { | 230 | } else { |
| 215 | reject(this.$t('simplifyCarFee.noParkingSpace')) | 231 | reject(this.$t('simplifyCarFee.noParkingSpace')) |
| 216 | } | 232 | } |
| @@ -262,37 +278,39 @@ export default { | @@ -262,37 +278,39 @@ export default { | ||
| 262 | return `${this.$t('simplifyCarFee.owner')}:${ownerName},${this.$t('simplifyCarFee.phone')}:${ownerLink}` | 278 | return `${this.$t('simplifyCarFee.owner')}:${ownerName},${this.$t('simplifyCarFee.phone')}:${ownerLink}` |
| 263 | }, | 279 | }, |
| 264 | _simplifyCarPayFee(fee) { | 280 | _simplifyCarPayFee(fee) { |
| 265 | - this.$router.push(`/views/fee/payFeeOrderfeeId=${fee.feeId}`) | 281 | + this.$router.push(`/views/fee/payFeeOrder?feeId=${fee.feeId}`) |
| 266 | }, | 282 | }, |
| 267 | _simplifyCarPayFeeHis(fee) { | 283 | _simplifyCarPayFeeHis(fee) { |
| 268 | - this.$router.push(`/views/fee/propertyFee?${this.objToGetParam(fee)}`) | 284 | + |
| 285 | + this.$router.push({ | ||
| 286 | + path: '/views/fee/propertyFee', | ||
| 287 | + query: fee | ||
| 288 | + }) | ||
| 269 | }, | 289 | }, |
| 270 | _simplifyCarEditFee(fee) { | 290 | _simplifyCarEditFee(fee) { |
| 271 | - this.$emit('editFee', fee) | 291 | + fee.maxEndTime = this._getAttrValue(fee.feeAttrs, '390010') |
| 292 | + this.$refs.editFee.open(fee) | ||
| 272 | }, | 293 | }, |
| 273 | _simplifyCarDeleteFee(fee) { | 294 | _simplifyCarDeleteFee(fee) { |
| 274 | - this.$emit('deleteFee', { | ||
| 275 | - communityId: this.communityId, | 295 | + this.$refs.deleteFee.open({ |
| 296 | + communityId: getCommunityId(), | ||
| 276 | feeId: fee.feeId | 297 | feeId: fee.feeId |
| 277 | }) | 298 | }) |
| 278 | }, | 299 | }, |
| 279 | _openSimplifyCarCreateFeeAddModal() { | 300 | _openSimplifyCarCreateFeeAddModal() { |
| 280 | - this.$emit('carCreateFeeAdd', { | ||
| 281 | - isMore: false, | ||
| 282 | - car: this.simplifyCarFeeInfo | ||
| 283 | - }) | 301 | + this.$refs.carCreateFeeAdd.open({ isMore: false, car: this.simplifyCarFeeInfo }) |
| 284 | }, | 302 | }, |
| 285 | _simplifyCarFinishFee(fee) { | 303 | _simplifyCarFinishFee(fee) { |
| 286 | - this.$emit('finishFee', { | ||
| 287 | - communityId: this.communityId, | 304 | + this.$refs.finishFee.open({ |
| 305 | + communityId: getCommunityId(), | ||
| 288 | feeId: fee.feeId | 306 | feeId: fee.feeId |
| 289 | }) | 307 | }) |
| 290 | }, | 308 | }, |
| 291 | _toBuyCarMonthCard() { | 309 | _toBuyCarMonthCard() { |
| 292 | - this.$router.push(`/pages/fee/buyCarMonthCard?carNum=${this.simplifyCarFeeInfo.carNum}`) | 310 | + this.$router.push(`/views/fee/buyCarMonthCard?carNum=${this.simplifyCarFeeInfo.carNum}`) |
| 293 | }, | 311 | }, |
| 294 | _openBatchPayCarFeeModal() { | 312 | _openBatchPayCarFeeModal() { |
| 295 | - this.$router.push(`/pages/property/batchPayFeeOrder?ownerId=${this.simplifyCarFeeInfo.ownerId}&payerObjType=6666`) | 313 | + this.$router.push(`/views/fee/batchPayFeeOrder?ownerId=${this.simplifyCarFeeInfo.ownerId}&payerObjType=6666`) |
| 296 | }, | 314 | }, |
| 297 | _viewCarFeeConfig(fee) { | 315 | _viewCarFeeConfig(fee) { |
| 298 | // Implement view fee config logic | 316 | // Implement view fee config logic |
src/components/staff/selectStaffsDiv.vue
| @@ -64,10 +64,10 @@ export default { | @@ -64,10 +64,10 @@ export default { | ||
| 64 | }, | 64 | }, |
| 65 | 65 | ||
| 66 | async handleNodeClick(node) { | 66 | async handleNodeClick(node) { |
| 67 | - this.currentOrgId = node.id | 67 | + this.currentOrgId = node.orgId |
| 68 | try { | 68 | try { |
| 69 | const { staffs } = await listStaffsByOrgId({ | 69 | const { staffs } = await listStaffsByOrgId({ |
| 70 | - orgId: node.id, | 70 | + orgId: node.orgId, |
| 71 | page: 1, | 71 | page: 1, |
| 72 | row: 100 | 72 | row: 100 |
| 73 | }) | 73 | }) |
src/i18n/commonLang.js
| @@ -60,7 +60,9 @@ export const messages = { | @@ -60,7 +60,9 @@ export const messages = { | ||
| 60 | saveSuccess:'successfully', | 60 | saveSuccess:'successfully', |
| 61 | noData:'No Data', | 61 | noData:'No Data', |
| 62 | file:'File', | 62 | file:'File', |
| 63 | - hide:'Hide' | 63 | + hide:'Hide', |
| 64 | + viewDetail:'View Detail', | ||
| 65 | + yuan:'yuan' | ||
| 64 | } | 66 | } |
| 65 | }, | 67 | }, |
| 66 | zh: { | 68 | zh: { |
| @@ -124,7 +126,9 @@ export const messages = { | @@ -124,7 +126,9 @@ export const messages = { | ||
| 124 | saveSuccess:'成功', | 126 | saveSuccess:'成功', |
| 125 | noData:'暂无数据', | 127 | noData:'暂无数据', |
| 126 | file:'附件', | 128 | file:'附件', |
| 127 | - hide:'隐藏' | 129 | + hide:'隐藏', |
| 130 | + viewDetail:'查看详情', | ||
| 131 | + yuan:'元' | ||
| 128 | } | 132 | } |
| 129 | } | 133 | } |
| 130 | } | 134 | } |
| 131 | \ No newline at end of file | 135 | \ No newline at end of file |
src/i18n/feeI18n.js
| @@ -36,6 +36,7 @@ import { messages as feeDetailMessages } from '../views/fee/feeDetailLang' | @@ -36,6 +36,7 @@ import { messages as feeDetailMessages } from '../views/fee/feeDetailLang' | ||
| 36 | import { messages as roomCreatePayFeeMessages } from '../views/fee/roomCreatePayFeeLang' | 36 | import { messages as roomCreatePayFeeMessages } from '../views/fee/roomCreatePayFeeLang' |
| 37 | import { messages as printAccountReceiptMessages } from '../views/account/printAccountReceiptLang' | 37 | import { messages as printAccountReceiptMessages } from '../views/account/printAccountReceiptLang' |
| 38 | import { messages as printSmallAccountReceiptMessages } from '../views/account/printSmallAccountReceiptLang' | 38 | import { messages as printSmallAccountReceiptMessages } from '../views/account/printSmallAccountReceiptLang' |
| 39 | +import { messages as listApplyRoomDiscountRecordDetailsMessages } from '../views/fee/listApplyRoomDiscountRecordDetailsLang' | ||
| 39 | 40 | ||
| 40 | export const messages = { | 41 | export const messages = { |
| 41 | en: { | 42 | en: { |
| @@ -77,6 +78,7 @@ export const messages = { | @@ -77,6 +78,7 @@ export const messages = { | ||
| 77 | ...roomCreatePayFeeMessages.en, | 78 | ...roomCreatePayFeeMessages.en, |
| 78 | ...printAccountReceiptMessages.en, | 79 | ...printAccountReceiptMessages.en, |
| 79 | ...printSmallAccountReceiptMessages.en, | 80 | ...printSmallAccountReceiptMessages.en, |
| 81 | + ...listApplyRoomDiscountRecordDetailsMessages.en, | ||
| 80 | }, | 82 | }, |
| 81 | zh: { | 83 | zh: { |
| 82 | ...contractCreateFeeMessages.zh, | 84 | ...contractCreateFeeMessages.zh, |
| @@ -117,5 +119,6 @@ export const messages = { | @@ -117,5 +119,6 @@ export const messages = { | ||
| 117 | ...roomCreatePayFeeMessages.zh, | 119 | ...roomCreatePayFeeMessages.zh, |
| 118 | ...printAccountReceiptMessages.zh, | 120 | ...printAccountReceiptMessages.zh, |
| 119 | ...printSmallAccountReceiptMessages.zh, | 121 | ...printSmallAccountReceiptMessages.zh, |
| 122 | + ...listApplyRoomDiscountRecordDetailsMessages.zh, | ||
| 120 | } | 123 | } |
| 121 | } | 124 | } |
| 122 | \ No newline at end of file | 125 | \ No newline at end of file |
src/router/feeRouter.js
| @@ -164,6 +164,11 @@ export default [ | @@ -164,6 +164,11 @@ export default [ | ||
| 164 | name: '/pages/fee/roomCreatePayFee', | 164 | name: '/pages/fee/roomCreatePayFee', |
| 165 | component: () => import('@/views/fee/roomCreatePayFeeList.vue') | 165 | component: () => import('@/views/fee/roomCreatePayFeeList.vue') |
| 166 | }, | 166 | }, |
| 167 | + { | ||
| 168 | + path:'/views/fee/listApplyRoomDiscountRecordDetails', | ||
| 169 | + name:'/views/fee/listApplyRoomDiscountRecordDetails', | ||
| 170 | + component: () => import('@/views/fee/listApplyRoomDiscountRecordDetailsList.vue') | ||
| 171 | + }, | ||
| 167 | 172 | ||
| 168 | 173 | ||
| 169 | ] | 174 | ] |
| 170 | \ No newline at end of file | 175 | \ No newline at end of file |
src/views/car/parkingBoxManageList.vue
| @@ -93,6 +93,7 @@ | @@ -93,6 +93,7 @@ | ||
| 93 | 93 | ||
| 94 | <script> | 94 | <script> |
| 95 | import { getParkingBoxList } from '@/api/car/parkingBoxManageApi' | 95 | import { getParkingBoxList } from '@/api/car/parkingBoxManageApi' |
| 96 | +import {jumpToIot} from '@/api/user/menuApi.js' | ||
| 96 | 97 | ||
| 97 | export default { | 98 | export default { |
| 98 | name: 'ParkingBoxManageList', | 99 | name: 'ParkingBoxManageList', |
| @@ -182,13 +183,8 @@ export default { | @@ -182,13 +183,8 @@ export default { | ||
| 182 | 183 | ||
| 183 | handleOpenConsole(row) { | 184 | handleOpenConsole(row) { |
| 184 | // 跳转到控制台页面 | 185 | // 跳转到控制台页面 |
| 185 | - this.$router.push({ | ||
| 186 | - path: '/car/parkingAreaControl', | ||
| 187 | - query: { | ||
| 188 | - boxId: row.boxId, | ||
| 189 | - paId: row.paId | ||
| 190 | - } | ||
| 191 | - }) | 186 | + jumpToIot(`/#/pages/car/parkingAreaControl?paId=${row.paId}&boxId=${row.boxId}`) |
| 187 | + | ||
| 192 | } | 188 | } |
| 193 | } | 189 | } |
| 194 | } | 190 | } |
src/views/car/tempCarPaymentList.vue
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | <div class="treeview"> | 6 | <div class="treeview"> |
| 7 | <ul class="list-group"> | 7 | <ul class="list-group"> |
| 8 | <li v-for="(item, index) in parkingAreas" :key="index" class="list-group-item" | 8 | <li v-for="(item, index) in parkingAreas" :key="index" class="list-group-item" |
| 9 | - :class="{ 'vc-node-selected': conditions.paId === item.paId }" @click="handleSwitchParkingArea(item)"> | 9 | + :class="{ 'vc-node-selected': conditions.paNum === item.num }" @click="handleSwitchParkingArea(item)"> |
| 10 | {{ item.num }} | 10 | {{ item.num }} |
| 11 | </li> | 11 | </li> |
| 12 | </ul> | 12 | </ul> |
| @@ -106,7 +106,7 @@ export default { | @@ -106,7 +106,7 @@ export default { | ||
| 106 | total: 0 | 106 | total: 0 |
| 107 | }, | 107 | }, |
| 108 | conditions: { | 108 | conditions: { |
| 109 | - paId: '', | 109 | + paNum: '', |
| 110 | state: null, | 110 | state: null, |
| 111 | carNum: '', | 111 | carNum: '', |
| 112 | startTime: null, | 112 | startTime: null, |
| @@ -139,7 +139,7 @@ export default { | @@ -139,7 +139,7 @@ export default { | ||
| 139 | }, | 139 | }, |
| 140 | 140 | ||
| 141 | handleSwitchParkingArea(parkingArea) { | 141 | handleSwitchParkingArea(parkingArea) { |
| 142 | - this.conditions.paId = parkingArea.paId | 142 | + this.conditions.paNum = parkingArea.num |
| 143 | this.queryCarInoutMethod() | 143 | this.queryCarInoutMethod() |
| 144 | }, | 144 | }, |
| 145 | 145 |
src/views/common/commonLang.js deleted
src/views/fee/batchPayFeeOrderList.vue
| @@ -106,7 +106,7 @@ | @@ -106,7 +106,7 @@ | ||
| 106 | </el-row> | 106 | </el-row> |
| 107 | 107 | ||
| 108 | <batch-pay-confirm ref="batchPayConfirm"></batch-pay-confirm> | 108 | <batch-pay-confirm ref="batchPayConfirm"></batch-pay-confirm> |
| 109 | - <batch-fee-cycle ref="batchFeeCycle"></batch-fee-cycle> | 109 | + <batch-fee-cycle ref="batchFeeCycle" @changeMonth="batchChangeMonth"></batch-fee-cycle> |
| 110 | </div> | 110 | </div> |
| 111 | </template> | 111 | </template> |
| 112 | 112 | ||
| @@ -459,6 +459,9 @@ export default { | @@ -459,6 +459,9 @@ export default { | ||
| 459 | }) | 459 | }) |
| 460 | } | 460 | } |
| 461 | this._doComputeTotalFee(); | 461 | this._doComputeTotalFee(); |
| 462 | + }, | ||
| 463 | + batchChangeMonth(fee) { | ||
| 464 | + this._changeMonth(fee.cycle, fee) | ||
| 462 | } | 465 | } |
| 463 | } | 466 | } |
| 464 | } | 467 | } |
src/views/fee/buyCarMonthCardList.vue
| @@ -164,7 +164,7 @@ export default { | @@ -164,7 +164,7 @@ export default { | ||
| 164 | } | 164 | } |
| 165 | 165 | ||
| 166 | const res = await getOpenApi(params) | 166 | const res = await getOpenApi(params) |
| 167 | - this.buyCarMonthCardInfo.cards = res.data.data || [] | 167 | + this.buyCarMonthCardInfo.cards = res.data || [] |
| 168 | } catch (error) { | 168 | } catch (error) { |
| 169 | console.error('获取月卡列表失败:', error) | 169 | console.error('获取月卡列表失败:', error) |
| 170 | this.$message.error(this.$t('buyCarMonthCard.errors.getCardsFailed')) | 170 | this.$message.error(this.$t('buyCarMonthCard.errors.getCardsFailed')) |
src/views/fee/listApplyRoomDiscountRecordDetailsLang.js
0 → 100644
| 1 | +export const messages = { | ||
| 2 | + en: { | ||
| 3 | + listApplyRoomDiscountRecordDetails: { | ||
| 4 | + title: 'Decoration Records', | ||
| 5 | + back: 'Back', | ||
| 6 | + room: 'Room', | ||
| 7 | + image: 'Image/Video', | ||
| 8 | + createTime: 'Create Time' | ||
| 9 | + } | ||
| 10 | + }, | ||
| 11 | + zh: { | ||
| 12 | + listApplyRoomDiscountRecordDetails: { | ||
| 13 | + title: '装修记录', | ||
| 14 | + back: '返回', | ||
| 15 | + room: '房屋', | ||
| 16 | + image: '图片/视频', | ||
| 17 | + createTime: '创建时间' | ||
| 18 | + } | ||
| 19 | + } | ||
| 20 | +} | ||
| 0 | \ No newline at end of file | 21 | \ No newline at end of file |
src/views/fee/listApplyRoomDiscountRecordDetailsList.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="listApplyRoomDiscountRecordDetails-container"> | ||
| 3 | + <el-card class="box-card"> | ||
| 4 | + <div slot="header" class="clearfix"> | ||
| 5 | + <span>{{ applyRoomDiscountRecordDetailsInfo.conditions.roomName }} {{ | ||
| 6 | + $t('listApplyRoomDiscountRecordDetails.title') }}</span> | ||
| 7 | + <el-button type="primary" size="small" style="float: right;" @click="_goBack"> | ||
| 8 | + <i class="el-icon-close"></i> | ||
| 9 | + {{ $t('listApplyRoomDiscountRecordDetails.back') }} | ||
| 10 | + </el-button> | ||
| 11 | + </div> | ||
| 12 | + | ||
| 13 | + <el-table :data="applyRoomDiscountRecordDetailsInfo.applyRoomDiscountRecordDetails" border style="width: 100%"> | ||
| 14 | + <el-table-column prop="roomName" :label="$t('listApplyRoomDiscountRecordDetails.room')" align="center" /> | ||
| 15 | + <el-table-column :label="$t('listApplyRoomDiscountRecordDetails.image')" align="center"> | ||
| 16 | + <template slot-scope="scope"> | ||
| 17 | + <div v-if="scope.row.relTypeCd === '19000'" style="position: relative; display: inline-block;" | ||
| 18 | + @click="showImg(scope.row.url)"> | ||
| 19 | + <img width="50" height="50" :src="scope.row.url" @error="handleImageError"> | ||
| 20 | + <img src="/img/icon-bigimg.png" style="position: absolute; right: 0; bottom: 0;" width="50" height="50" | ||
| 21 | + alt=""> | ||
| 22 | + </div> | ||
| 23 | + <video v-else-if="scope.row.relTypeCd === '21000'" width="200" height="200" controls autoplay> | ||
| 24 | + <source :src="scope.row.url" type="video/mp4"> | ||
| 25 | + </video> | ||
| 26 | + </template> | ||
| 27 | + </el-table-column> | ||
| 28 | + <el-table-column prop="createTime" :label="$t('listApplyRoomDiscountRecordDetails.createTime')" | ||
| 29 | + align="center" /> | ||
| 30 | + </el-table> | ||
| 31 | + | ||
| 32 | + <el-pagination :current-page.sync="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size" | ||
| 33 | + :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" | ||
| 34 | + @current-change="handleCurrentChange" /> | ||
| 35 | + </el-card> | ||
| 36 | + | ||
| 37 | + <view-image ref="viewImage" /> | ||
| 38 | + </div> | ||
| 39 | +</template> | ||
| 40 | + | ||
| 41 | +<script> | ||
| 42 | +import { queryApplyRoomDiscountRecordDetail } from '@/api/fee/listApplyRoomDiscountRecordDetailsApi' | ||
| 43 | +import { getCommunityId } from '@/api/community/communityApi' | ||
| 44 | +import ViewImage from '@/components/system/viewImage' | ||
| 45 | + | ||
| 46 | +export default { | ||
| 47 | + name: 'ListApplyRoomDiscountRecordDetails', | ||
| 48 | + components: { | ||
| 49 | + ViewImage | ||
| 50 | + }, | ||
| 51 | + data() { | ||
| 52 | + return { | ||
| 53 | + applyRoomDiscountRecordDetailsInfo: { | ||
| 54 | + applyRoomDiscountRecordDetails: [], | ||
| 55 | + conditions: { | ||
| 56 | + ardrId: '', | ||
| 57 | + roomName: '', | ||
| 58 | + state: '', | ||
| 59 | + roomId: '', | ||
| 60 | + communityId: '' | ||
| 61 | + } | ||
| 62 | + }, | ||
| 63 | + pagination: { | ||
| 64 | + current: 1, | ||
| 65 | + size: 10, | ||
| 66 | + total: 0 | ||
| 67 | + } | ||
| 68 | + } | ||
| 69 | + }, | ||
| 70 | + created() { | ||
| 71 | + this.applyRoomDiscountRecordDetailsInfo.conditions.ardrId = this.$route.query.ardrId | ||
| 72 | + this.applyRoomDiscountRecordDetailsInfo.conditions.roomName = this.$route.query.roomName | ||
| 73 | + this.applyRoomDiscountRecordDetailsInfo.conditions.state = this.$route.query.state | ||
| 74 | + this.applyRoomDiscountRecordDetailsInfo.conditions.communityId = getCommunityId() | ||
| 75 | + this._listApplyRoomDiscountRecordDetails() | ||
| 76 | + }, | ||
| 77 | + methods: { | ||
| 78 | + async _listApplyRoomDiscountRecordDetails() { | ||
| 79 | + try { | ||
| 80 | + const params = { | ||
| 81 | + page: this.pagination.current, | ||
| 82 | + row: this.pagination.size, | ||
| 83 | + ...this.applyRoomDiscountRecordDetailsInfo.conditions | ||
| 84 | + } | ||
| 85 | + const { data, total } = await queryApplyRoomDiscountRecordDetail(params) | ||
| 86 | + this.applyRoomDiscountRecordDetailsInfo.applyRoomDiscountRecordDetails = data | ||
| 87 | + this.pagination.total = total | ||
| 88 | + } catch (error) { | ||
| 89 | + console.error('Failed to fetch apply room discount record details:', error) | ||
| 90 | + } | ||
| 91 | + }, | ||
| 92 | + handleSizeChange(val) { | ||
| 93 | + this.pagination.size = val | ||
| 94 | + this._listApplyRoomDiscountRecordDetails() | ||
| 95 | + }, | ||
| 96 | + handleCurrentChange(val) { | ||
| 97 | + this.pagination.current = val | ||
| 98 | + this._listApplyRoomDiscountRecordDetails() | ||
| 99 | + }, | ||
| 100 | + _goBack() { | ||
| 101 | + this.$router.go(-1) | ||
| 102 | + }, | ||
| 103 | + showImg(url) { | ||
| 104 | + this.$refs.viewImage.open(url) | ||
| 105 | + }, | ||
| 106 | + handleImageError(e) { | ||
| 107 | + e.target.src = '/img/noPhoto.jpg' | ||
| 108 | + } | ||
| 109 | + } | ||
| 110 | +} | ||
| 111 | +</script> | ||
| 112 | + | ||
| 113 | +<style lang="scss" scoped> | ||
| 114 | +.listApplyRoomDiscountRecordDetails-container { | ||
| 115 | + padding: 20px; | ||
| 116 | + | ||
| 117 | + .box-card { | ||
| 118 | + margin-bottom: 20px; | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + .el-pagination { | ||
| 122 | + margin-top: 20px; | ||
| 123 | + text-align: right; | ||
| 124 | + } | ||
| 125 | +} | ||
| 126 | +</style> | ||
| 0 | \ No newline at end of file | 127 | \ No newline at end of file |
src/views/fee/listApplyRoomDiscountRecordList.vue
| @@ -3,8 +3,10 @@ | @@ -3,8 +3,10 @@ | ||
| 3 | <el-card class="box-card"> | 3 | <el-card class="box-card"> |
| 4 | <div slot="header" class="clearfix"> | 4 | <div slot="header" class="clearfix"> |
| 5 | <div class="card-header"> | 5 | <div class="card-header"> |
| 6 | - <span>{{ listApplyRoomDiscountRecordsInfo.conditions.roomName }}</span> | ||
| 7 | - <span class="header-title">{{ $t('listApplyRoomDiscountRecord.title') }}</span> | 6 | + <div> |
| 7 | + <span>{{ listApplyRoomDiscountRecordsInfo.conditions.roomName }}</span> | ||
| 8 | + <span class="header-title">{{ $t('listApplyRoomDiscountRecord.title') }}</span> | ||
| 9 | + </div> | ||
| 8 | <div class="header-tools"> | 10 | <div class="header-tools"> |
| 9 | <el-button type="primary" size="small" @click="_openAddModal(listApplyRoomDiscountRecordsInfo.applyRoomDiscount)"> | 11 | <el-button type="primary" size="small" @click="_openAddModal(listApplyRoomDiscountRecordsInfo.applyRoomDiscount)"> |
| 10 | <i class="el-icon-plus"></i> | 12 | <i class="el-icon-plus"></i> |
| @@ -35,7 +37,7 @@ | @@ -35,7 +37,7 @@ | ||
| 35 | <template slot-scope="scope"> | 37 | <template slot-scope="scope"> |
| 36 | <el-button-group> | 38 | <el-button-group> |
| 37 | <el-button size="mini" @click="_openApplyRoomDiscountRecordDetailsModel(scope.row)"> | 39 | <el-button size="mini" @click="_openApplyRoomDiscountRecordDetailsModel(scope.row)"> |
| 38 | - {{ $t('common.viewDetails') }} | 40 | + {{ $t('common.viewDetail') }} |
| 39 | </el-button> | 41 | </el-button> |
| 40 | <el-button size="mini" type="danger" @click="_openDeleteApplyRoomDiscountRecordModel(scope.row)"> | 42 | <el-button size="mini" type="danger" @click="_openDeleteApplyRoomDiscountRecordModel(scope.row)"> |
| 41 | {{ $t('common.delete') }} | 43 | {{ $t('common.delete') }} |
src/views/fee/listOweFeeList.vue
| @@ -47,7 +47,7 @@ | @@ -47,7 +47,7 @@ | ||
| 47 | <el-col :span="6"> | 47 | <el-col :span="6"> |
| 48 | <el-select v-model="listOweFeeInfo.conditions.roomSubType" :placeholder="$t('listOweFee.search.roomType')" | 48 | <el-select v-model="listOweFeeInfo.conditions.roomSubType" :placeholder="$t('listOweFee.search.roomType')" |
| 49 | style="width:100%"> | 49 | style="width:100%"> |
| 50 | - <el-option :label="$t('common.selectRoomType')" value=""></el-option> | 50 | + <el-option :label="$t('listOweFee.search.roomType')" value=""></el-option> |
| 51 | <el-option v-for="(item, index) in listOweFeeInfo.roomSubTypes" :key="index" :label="item.name" | 51 | <el-option v-for="(item, index) in listOweFeeInfo.roomSubTypes" :key="index" :label="item.name" |
| 52 | :value="item.statusCd"></el-option> | 52 | :value="item.statusCd"></el-option> |
| 53 | </el-select> | 53 | </el-select> |
| @@ -59,14 +59,14 @@ | @@ -59,14 +59,14 @@ | ||
| 59 | <el-col :span="6"> | 59 | <el-col :span="6"> |
| 60 | <el-select v-model="listOweFeeInfo.conditions.payObjType" :placeholder="$t('listOweFee.search.payObjType')" | 60 | <el-select v-model="listOweFeeInfo.conditions.payObjType" :placeholder="$t('listOweFee.search.payObjType')" |
| 61 | style="width:100%"> | 61 | style="width:100%"> |
| 62 | - <el-option :label="$t('common.selectPayObjType')" value=""></el-option> | 62 | + <el-option :label="$t('listOweFee.search.payObjType')" value=""></el-option> |
| 63 | <el-option v-for="(item, index) in listOweFeeInfo.payObjTypes" :key="index" :label="item.name" | 63 | <el-option v-for="(item, index) in listOweFeeInfo.payObjTypes" :key="index" :label="item.name" |
| 64 | :value="item.statusCd"></el-option> | 64 | :value="item.statusCd"></el-option> |
| 65 | </el-select> | 65 | </el-select> |
| 66 | </el-col> | 66 | </el-col> |
| 67 | </el-row> | 67 | </el-row> |
| 68 | 68 | ||
| 69 | - <el-row v-show="listOweFeeInfo.moreCondition" :gutter="20"> | 69 | + <el-row v-show="listOweFeeInfo.moreCondition" :gutter="20" class="margin-top"> |
| 70 | <el-col v-if="listOweFeeInfo.conditions.payObjType === '3333'" :span="6"> | 70 | <el-col v-if="listOweFeeInfo.conditions.payObjType === '3333'" :span="6"> |
| 71 | <el-input v-model.trim="listOweFeeInfo.conditions.num" | 71 | <el-input v-model.trim="listOweFeeInfo.conditions.num" |
| 72 | :placeholder="$t('listOweFee.search.roomNumFormat')"></el-input> | 72 | :placeholder="$t('listOweFee.search.roomNumFormat')"></el-input> |
| @@ -148,7 +148,7 @@ | @@ -148,7 +148,7 @@ | ||
| 148 | <script> | 148 | <script> |
| 149 | import { getDict } from '@/api/community/communityApi' | 149 | import { getDict } from '@/api/community/communityApi' |
| 150 | import { getCommunityId } from '@/api/community/communityApi' | 150 | import { getCommunityId } from '@/api/community/communityApi' |
| 151 | -import { queryReportOweFee, listFeeConfigs, exportData,queryUnits } from '@/api/fee/listOweFeeApi' | 151 | +import { queryReportOweFee, listFeeConfigs, exportData, queryUnits } from '@/api/fee/listOweFeeApi' |
| 152 | import SearchFloor from '@/components/fee/searchFloor' | 152 | import SearchFloor from '@/components/fee/searchFloor' |
| 153 | 153 | ||
| 154 | export default { | 154 | export default { |
src/views/oa/staffAttendanceManageList.vue
| @@ -16,9 +16,11 @@ | @@ -16,9 +16,11 @@ | ||
| 16 | :placeholder="$t('staffAttendance.staffPlaceholder')" class="filter-item" | 16 | :placeholder="$t('staffAttendance.staffPlaceholder')" class="filter-item" |
| 17 | @keyup.enter.native="loadStaffs"></el-input> | 17 | @keyup.enter.native="loadStaffs"></el-input> |
| 18 | 18 | ||
| 19 | - <el-button type="primary" class="filter-item" @click="loadStaffs"> | ||
| 20 | - {{ $t('common.search') }} | ||
| 21 | - </el-button> | 19 | + <div class="filter-item text-right"> |
| 20 | + <el-button type="primary" @click="loadStaffs"> | ||
| 21 | + {{ $t('common.search') }} | ||
| 22 | + </el-button> | ||
| 23 | + </div> | ||
| 22 | </div> | 24 | </div> |
| 23 | 25 | ||
| 24 | <div class="staff-list"> | 26 | <div class="staff-list"> |
| @@ -71,7 +73,7 @@ | @@ -71,7 +73,7 @@ | ||
| 71 | </el-row> | 73 | </el-row> |
| 72 | 74 | ||
| 73 | <!-- 子组件 --> | 75 | <!-- 子组件 --> |
| 74 | - | 76 | + |
| 75 | <choose-org-tree ref="chooseOrgTree" @switchOrg="handleSwitchOrg"></choose-org-tree> | 77 | <choose-org-tree ref="chooseOrgTree" @switchOrg="handleSwitchOrg"></choose-org-tree> |
| 76 | <staff-attendance-detail ref="staffAttendanceDetail"></staff-attendance-detail> | 78 | <staff-attendance-detail ref="staffAttendanceDetail"></staff-attendance-detail> |
| 77 | <staff-attendance-replenish-check-in ref="staffAttendanceReplenishCheckIn"></staff-attendance-replenish-check-in> | 79 | <staff-attendance-replenish-check-in ref="staffAttendanceReplenishCheckIn"></staff-attendance-replenish-check-in> |
| @@ -83,7 +85,7 @@ import { getCommunityId } from '@/api/community/communityApi' | @@ -83,7 +85,7 @@ import { getCommunityId } from '@/api/community/communityApi' | ||
| 83 | import { | 85 | import { |
| 84 | queryStaffInfos, | 86 | queryStaffInfos, |
| 85 | queryAttendanceClassesTask, | 87 | queryAttendanceClassesTask, |
| 86 | - | 88 | + |
| 87 | } from '@/api/oa/staffAttendanceManageApi' | 89 | } from '@/api/oa/staffAttendanceManageApi' |
| 88 | import { dateFormat } from '@/utils/dateUtil' | 90 | import { dateFormat } from '@/utils/dateUtil' |
| 89 | import ChooseOrgTree from '@/components/org/ChooseOrgTree' | 91 | import ChooseOrgTree from '@/components/org/ChooseOrgTree' |
| @@ -149,7 +151,7 @@ export default { | @@ -149,7 +151,7 @@ export default { | ||
| 149 | communityId: this.communityId | 151 | communityId: this.communityId |
| 150 | } | 152 | } |
| 151 | 153 | ||
| 152 | - const { data } = await queryStaffInfos(params) | 154 | + const data = await queryStaffInfos(params) |
| 153 | this.staffAttendanceManageInfo.staffs = data.staffs || [] | 155 | this.staffAttendanceManageInfo.staffs = data.staffs || [] |
| 154 | 156 | ||
| 155 | if (this.staffAttendanceManageInfo.staffs.length > 0) { | 157 | if (this.staffAttendanceManageInfo.staffs.length > 0) { |