Commit 6f9168702157da397bf7501dc54dba360a403b9c

Authored by wuxw
1 parent 0c52f32a

优化甘肃客户反馈bug

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 &#39;../views/fee/feeDetailLang&#39; @@ -36,6 +36,7 @@ import { messages as feeDetailMessages } from &#39;../views/fee/feeDetailLang&#39;
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
1 -export const messages = {  
2 - en: {  
3 - common: {  
4 - cancel: 'Cancel',  
5 - confirm: 'Confirm'  
6 - }  
7 - },  
8 - zh: {  
9 - common: {  
10 - cancel: '取消',  
11 - confirm: '确定'  
12 - }  
13 - }  
14 -}  
15 \ No newline at end of file 0 \ No newline at end of file
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 &#39;@/api/community/communityApi&#39; @@ -83,7 +85,7 @@ import { getCommunityId } from &#39;@/api/community/communityApi&#39;
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) {