Commit 59833eeb6d90236fb91b9ebfe669e5aaa9a4ec3b

Authored by wuxw
1 parent 56c7fec9

测试报表代码

src/api/dev/taskApi.js
... ... @@ -117,6 +117,24 @@ export function stopTask(taskId) {
117 117 })
118 118 })
119 119 }
  120 +export function runTask(taskId) {
  121 + return new Promise((resolve, reject) => {
  122 + request({
  123 + url: '/job.runJob',
  124 + method: 'post',
  125 + data: { taskId }
  126 + }).then(response => {
  127 + const res = response.data
  128 + if (res.code == 0) {
  129 + resolve(res)
  130 + } else {
  131 + reject(new Error(res.msg || '执行定时任务失败'))
  132 + }
  133 + }).catch(error => {
  134 + reject(error)
  135 + })
  136 + })
  137 +}
120 138  
121 139 // 获取定时任务列表
122 140 export function getTaskTemplateList(params) {
... ...
src/components/report/configFeeSummary.vue
1 1 <template>
2 2 <el-card class="config-fee-summary-container">
3   - <div slot="header">
4   - <span>{{ $t('reportFeeSummary.configFeeSummary') }}</span>
5   - </div>
  3 +
6 4 <div id="configFeeSummary" style="height:300px;width:100%;"></div>
7 5 </el-card>
8 6 </template>
... ...
src/components/report/floorFeeSummary.vue
1 1 <template>
2 2 <el-card class="floor-fee-summary-container">
3   - <div slot="header">
4   - <span>{{ $t('reportFeeSummary.floorFeeSummary') }}</span>
5   - </div>
  3 +
6 4 <div id="floorFeeSummary" style="height:300px;width:100%;"></div>
7 5 </el-card>
8 6 </template>
... ...
src/components/report/reportProficientCarFee.vue
1 1 <template>
2 2 <div class="report-proficient-car-fee">
3   - <el-row :gutter="20">
4   - <el-col :span="12">
5   - <el-table :data="reportProficientCarFeeInfo.fees" border style="width: 100%" height="500">
6   - <el-table-column prop="ownerName" :label="$t('reportProficientCarFee.name')" align="center">
7   - </el-table-column>
8   - <el-table-column prop="objName" :label="$t('reportProficientCarFee.carNumber')" align="center">
9   - </el-table-column>
10   - <el-table-column prop="ownerLink" :label="$t('reportProficientCarFee.phone')" align="center">
11   - </el-table-column>
12   - <el-table-column prop="feeTypeCdName" :label="$t('reportProficientCarFee.feeType')" align="center">
13   - </el-table-column>
14   - <el-table-column prop="feeName" :label="$t('reportProficientCarFee.feeName')" align="center">
15   - </el-table-column>
16   - </el-table>
17   - </el-col>
18   - <el-col :span="12">
19   - <div class="table-wrapper">
20   - <el-table :data="reportProficientCarFeeInfo.fees" border style="width: 100%" height="500">
21   - <el-table-column v-for="(item, index) in reportProficientCarFeeInfo.listColumns" :key="index"
22   - :label="item + $t('reportProficientCarFee.year')" align="center" width="120">
23   - <template slot-scope="scope">
24   - <el-link type="primary" @click="_showCarFeeDetail(scope.row, item)">
25   - {{ _getProficientCarFeeValue(scope.row.reportFeeYearCollectionDetailDtos, item) }}
26   - </el-link>
27   - </template>
28   - </el-table-column>
29   - </el-table>
30   - </div>
31   - </el-col>
32   - </el-row>
  3 + <div class="table-container">
  4 + <el-table :data="reportProficientCarFeeInfo.fees" border style="width: 100%" height="500">
  5 + <!-- 固定列:基本信息 -->
  6 + <el-table-column prop="ownerName" :label="$t('reportProficientCarFee.name')" align="center" fixed="left" width="120">
  7 + </el-table-column>
  8 + <el-table-column prop="objName" :label="$t('reportProficientCarFee.carNumber')" align="center" fixed="left" width="120">
  9 + </el-table-column>
  10 + <el-table-column prop="ownerLink" :label="$t('reportProficientCarFee.phone')" align="center" fixed="left" width="120">
  11 + </el-table-column>
  12 + <el-table-column prop="feeTypeCdName" :label="$t('reportProficientCarFee.feeType')" align="center" fixed="left" width="120">
  13 + </el-table-column>
  14 + <el-table-column prop="feeName" :label="$t('reportProficientCarFee.feeName')" align="center" fixed="left" width="120">
  15 + </el-table-column>
  16 +
  17 + <!-- 动态列:年度费用数据 -->
  18 + <el-table-column v-for="(item, index) in reportProficientCarFeeInfo.listColumns" :key="index"
  19 + :label="item + $t('reportProficientCarFee.year')" align="center" >
  20 + <template slot-scope="scope">
  21 + <el-link type="primary" @click="_showCarFeeDetail(scope.row, item)">
  22 + {{ _getProficientCarFeeValue(scope.row.reportFeeYearCollectionDetailDtos, item) }}
  23 + </el-link>
  24 + </template>
  25 + </el-table-column>
  26 + </el-table>
  27 + </div>
33 28  
34 29 <el-row :gutter="20" class="margin-top">
35 30 <el-col :span="12">
... ... @@ -44,14 +39,19 @@
44 39 </el-pagination>
45 40 </el-col>
46 41 </el-row>
  42 + <view-fee-detail ref="viewFeeDetail"></view-fee-detail>
47 43 </div>
48 44 </template>
49 45  
50 46 <script>
51 47 import { queryReportFeeYear } from '@/api/report/reportProficientApi'
  48 +import ViewFeeDetail from '@/components/report/viewFeeDetail'
52 49  
53 50 export default {
54 51 name: 'ReportProficientCarFee',
  52 + components: {
  53 + ViewFeeDetail
  54 + },
55 55 props: {
56 56 conditions: {
57 57 type: Object,
... ... @@ -72,14 +72,12 @@ export default {
72 72 }
73 73 },
74 74 created() {
75   - this.$bus.$on('reportProficientCarFee-switch', this.handleSwitch)
76   - this.$bus.$on('reportProficientCarFee-notify', this.listReportProficientCarFee)
77   - },
78   - beforeDestroy() {
79   - this.$bus.$off('reportProficientCarFee-switch', this.handleSwitch)
80   - this.$bus.$off('reportProficientCarFee-notify', this.listReportProficientCarFee)
81 75 },
82 76 methods: {
  77 + open(params) {
  78 + this.conditions = params
  79 + this.listReportProficientCarFee()
  80 + },
83 81 handleSwitch(params) {
84 82 console.log(params)
85 83 this.clearReportProficientCarFeeInfo()
... ... @@ -149,8 +147,18 @@ export default {
149 147  
150 148 <style lang="scss" scoped>
151 149 .report-proficient-car-fee {
152   - .table-wrapper {
  150 + .table-container {
153 151 overflow-x: auto;
  152 +
  153 + // 确保表格容器有足够的宽度来显示滚动条
  154 + .el-table {
  155 + min-width: 100%;
  156 +
  157 + // 设置表格的最小宽度,确保横向滚动生效
  158 + &::v-deep .el-table__body-wrapper {
  159 + overflow-x: auto;
  160 + }
  161 + }
154 162 }
155 163  
156 164 .margin-top {
... ...
src/components/report/reportProficientRoomFee.vue
1 1 <template>
2 2 <div class="report-proficient-room-fee">
3   - <el-row :gutter="20">
4   - <el-col :span="12">
5   - <el-table :data="reportProficientRoomFeeInfo.fees" border style="width: 100%" height="500">
6   - <el-table-column prop="ownerName" :label="$t('reportProficientRoomFee.name')" align="center">
7   - </el-table-column>
8   - <el-table-column prop="objName" :label="$t('reportProficientRoomFee.roomNumber')" align="center">
9   - </el-table-column>
10   - <el-table-column prop="ownerLink" :label="$t('reportProficientRoomFee.phone')" align="center">
11   - </el-table-column>
12   - <el-table-column prop="builtUpArea" :label="$t('reportProficientRoomFee.area')" align="center">
13   - </el-table-column>
14   - <el-table-column prop="feeTypeCdName" :label="$t('reportProficientRoomFee.feeType')" align="center">
15   - </el-table-column>
16   - <el-table-column prop="feeName" :label="$t('reportProficientRoomFee.feeName')" align="center">
17   - </el-table-column>
18   - </el-table>
19   - </el-col>
20   - <el-col :span="12">
21   - <div class="table-wrapper">
22   - <el-table :data="reportProficientRoomFeeInfo.fees" border style="width: 100%" height="500">
23   - <el-table-column v-for="(item, index) in reportProficientRoomFeeInfo.listColumns" :key="index"
24   - :label="item + $t('reportProficientRoomFee.year')" align="center" width="120">
25   - <template slot-scope="scope">
26   - <el-link type="primary" @click="_showFeeDetail(scope.row, item)">
27   - {{ _getProficientRoomFeeValue(scope.row.reportFeeYearCollectionDetailDtos, item) }}
28   - </el-link>
29   - </template>
30   - </el-table-column>
31   - </el-table>
32   - </div>
33   - </el-col>
34   - </el-row>
  3 + <div class="table-container">
  4 + <el-table :data="reportProficientRoomFeeInfo.fees" border style="width: 100%" height="500">
  5 + <!-- 固定列:基本信息 -->
  6 + <el-table-column prop="ownerName" :label="$t('reportProficientRoomFee.name')" align="center" fixed="left" width="120">
  7 + </el-table-column>
  8 + <el-table-column prop="objName" :label="$t('reportProficientRoomFee.roomNumber')" align="center" fixed="left" width="120">
  9 + </el-table-column>
  10 + <el-table-column prop="ownerLink" :label="$t('reportProficientRoomFee.phone')" align="center" fixed="left" width="120">
  11 + </el-table-column>
  12 + <el-table-column prop="builtUpArea" :label="$t('reportProficientRoomFee.area')" align="center" fixed="left" width="100">
  13 + </el-table-column>
  14 + <el-table-column prop="feeTypeCdName" :label="$t('reportProficientRoomFee.feeType')" align="center" fixed="left" width="120">
  15 + </el-table-column>
  16 + <el-table-column prop="feeName" :label="$t('reportProficientRoomFee.feeName')" align="center" fixed="left" width="120">
  17 + </el-table-column>
  18 +
  19 + <!-- 动态列:年度费用数据 -->
  20 + <el-table-column v-for="(item, index) in reportProficientRoomFeeInfo.listColumns" :key="index"
  21 + :label="item + $t('reportProficientRoomFee.year')" align="center" >
  22 + <template slot-scope="scope">
  23 + <el-link type="primary" @click="_showFeeDetail(scope.row, item)">
  24 + {{ _getProficientRoomFeeValue(scope.row.reportFeeYearCollectionDetailDtos, item) }}
  25 + </el-link>
  26 + </template>
  27 + </el-table-column>
  28 + </el-table>
  29 + </div>
35 30  
36 31 <el-row :gutter="20" class="margin-top">
37 32 <el-col :span="12">
38   - <div class="tip-text">
  33 + <div class="tip-text text-left">
39 34 {{ $t('reportProficientRoomFee.tip') }}
40 35 </div>
41 36 </el-col>
42 37 <el-col :span="12">
43   - <el-pagination :current-page.sync="pagination.current" :page-sizes="[10, 20, 30, 50]" :page-size="pagination.size"
44   - :total="pagination.total" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
45   - @current-change="handleCurrentChange">
  38 + <el-pagination :current-page.sync="pagination.current" :page-sizes="[10, 20, 30, 50]"
  39 + :page-size="pagination.size" :total="pagination.total" layout="total, sizes, prev, pager, next, jumper"
  40 + @size-change="handleSizeChange" @current-change="handleCurrentChange">
46 41 </el-pagination>
47 42 </el-col>
48 43 </el-row>
  44 + <view-fee-detail ref="viewFeeDetail"></view-fee-detail>
49 45 </div>
50 46 </template>
51 47  
52 48 <script>
53 49 import { queryReportFeeYear } from '@/api/report/reportProficientApi'
  50 +import ViewFeeDetail from '@/components/report/viewFeeDetail'
54 51  
55 52 export default {
56 53 name: 'ReportProficientRoomFee',
  54 + components: {
  55 + ViewFeeDetail
  56 + },
57 57 props: {
58 58 conditions: {
59 59 type: Object,
... ... @@ -74,14 +74,12 @@ export default {
74 74 }
75 75 },
76 76 created() {
77   - this.$bus.$on('reportProficientRoomFee-switch', this.handleSwitch)
78   - this.$bus.$on('reportProficientRoomFee-notify', this.listReportProficientRoomFee)
79   - },
80   - beforeDestroy() {
81   - this.$bus.$off('reportProficientRoomFee-switch', this.handleSwitch)
82   - this.$bus.$off('reportProficientRoomFee-notify', this.listReportProficientRoomFee)
83 77 },
84 78 methods: {
  79 + open(params) {
  80 + this.conditions = params
  81 + this.listReportProficientRoomFee()
  82 + },
85 83 handleSwitch(params) {
86 84 console.log(params)
87 85 this.clearReportProficientRoomFeeInfo()
... ... @@ -151,8 +149,18 @@ export default {
151 149  
152 150 <style lang="scss" scoped>
153 151 .report-proficient-room-fee {
154   - .table-wrapper {
  152 + .table-container {
155 153 overflow-x: auto;
  154 +
  155 + // 确保表格容器有足够的宽度来显示滚动条
  156 + .el-table {
  157 + min-width: 100%;
  158 +
  159 + // 设置表格的最小宽度,确保横向滚动生效
  160 + &::v-deep .el-table__body-wrapper {
  161 + overflow-x: auto;
  162 + }
  163 + }
156 164 }
157 165  
158 166 .margin-top {
... ...
src/components/report/selectCommunityFloor.vue
1 1 <template>
2   - <div class="select-community-floor-container">
3   - <div class="border-radius">
4   - <div class="margin-xs-r treeview attendance-staff" style="height: 650px;">
5   - <ul class="list-group text-center border-radius">
6   - <li v-for="(item, index) in floors" :key="index" class="list-group-item node-orgTree"
7   - :class="{ 'vc-node-selected': selectedFloorId === item.floorId }" @click="handleSelectFloor(item)">
8   - {{ item.floorNum }}
9   - </li>
10   - </ul>
11   - </div>
12   - </div>
  2 + <div class="">
  3 + <div class="list-group-border-radius">
  4 + <div class=" treeview">
  5 + <ul class="list-group text-center ">
  6 + <li v-for="(item, index) in floors" :key="index" @click="handleSelectFloor(item)"
  7 + :class="{ 'vc-node-selected': selectedFloorId === item.floorId }"
  8 + class="list-group-item node-orgTree">
  9 + {{ item.floorNum }}
  10 + </li>
  11 + </ul>
  12 + </div>
  13 + </div>
13 14 </div>
14 15 </template>
15 16  
... ... @@ -46,7 +47,7 @@ export default {
46 47 floorId: ''
47 48 }
48 49  
49   - const data = await queryFloors(params)
  50 + const data = await queryFloors(params)
50 51 this.floors = [defaultFloor, ...data.apiFloorDataVoList]
51 52 this.handleSelectFloor(defaultFloor)
52 53 } catch (error) {
... ...
src/components/report/viewFeeDetail.vue
... ... @@ -8,12 +8,12 @@
8 8 <el-table-column prop="createTime" :label="$t('viewFeeDetail.table.payTime')" align="center" />
9 9 <el-table-column prop="startTime" :label="$t('viewFeeDetail.table.startTime')" align="center">
10 10 <template slot-scope="scope">
11   - {{ $dayjs(scope.row.startTime).format('YYYY-MM-DD') }}
  11 + {{ dateFormat(scope.row.startTime) }}
12 12 </template>
13 13 </el-table-column>
14 14 <el-table-column prop="endTime" :label="$t('viewFeeDetail.table.endTime')" align="center">
15 15 <template slot-scope="scope">
16   - {{ $dayjs(scope.row.endTime).format('YYYY-MM-DD') }}
  16 + {{ dateFormat(scope.row.endTime) }}
17 17 </template>
18 18 </el-table-column>
19 19 <el-table-column prop="stateName" :label="$t('viewFeeDetail.table.status')" align="center" />
... ... @@ -28,6 +28,7 @@
28 28 <script>
29 29 import { queryFeeDetail } from '@/api/report/reportHuaningApi'
30 30 import { getCommunityId } from '@/api/community/communityApi'
  31 +import {dateFormat} from '@/utils/dateUtil'
31 32  
32 33 export default {
33 34 name: 'ViewFeeDetail',
... ... @@ -75,9 +76,9 @@ export default {
75 76 payerObjId: this.viewFeeDetailInfo.payerObjId
76 77 }
77 78  
78   - const { data, total } = await queryFeeDetail(params)
  79 + const { feeDetails, total } = await queryFeeDetail(params)
79 80  
80   - this.viewFeeDetailInfo.feeDetails = data
  81 + this.viewFeeDetailInfo.feeDetails = feeDetails
81 82 this.pagination.total = total
82 83 } catch (error) {
83 84 console.error('获取费用明细失败:', error)
... ... @@ -86,7 +87,8 @@ export default {
86 87 handlePageChange(currentPage) {
87 88 this.pagination.current = currentPage
88 89 this.listFeeDetail()
89   - }
  90 + },
  91 + dateFormat
90 92 }
91 93 }
92 94 </script>
... ...
src/views/dev/taskList.vue
... ... @@ -36,6 +36,7 @@
36 36 <el-button size="mini" type="warn" @click="handleStart(scope.row)" v-if="scope.row.state == '001'">{{
37 37 $t('task.start') }}</el-button>
38 38 <el-button size="mini" type="warn" @click="handleStop(scope.row)" v-else>{{ $t('task.stop') }}</el-button>
  39 + <el-button size="mini" type="warn" @click="handleTest(scope.row)" v-if="scope.row.state == '002'">Test</el-button>
39 40 </template>
40 41 </el-table-column>
41 42 </el-table>
... ... @@ -53,7 +54,7 @@
53 54 </template>
54 55  
55 56 <script>
56   -import { getTaskList, startTask, stopTask } from '@/api/dev/taskApi'
  57 +import { getTaskList, startTask, stopTask ,runTask} from '@/api/dev/taskApi'
57 58 import AddTask from '@/components/dev/AddTask'
58 59 import EditTask from '@/components/dev/EditTask'
59 60 import DelTask from '@/components/dev/DelTask'
... ... @@ -148,6 +149,17 @@ export default {
148 149 this.currentRow = { ...row }
149 150 this.delVisible = true
150 151 },
  152 + async handleTest(row) {
  153 + try {
  154 + this.loading = true
  155 + await runTask(row.taskId)
  156 + this.getList()
  157 + } catch (error) {
  158 + this.$message.error(this.$t('task.fetchError'))
  159 + } finally {
  160 + this.loading = false
  161 + }
  162 + },
151 163 handleSuccess() {
152 164 this.getList()
153 165 },
... ...
src/views/oa/addComplaintTypeList.vue
1 1 <template>
2   - <el-card class="complaint-type-container">
3   - <div class="header-wrapper">
4   - <h3>{{ $t('addComplaintType.title') }}</h3>
5   - </div>
  2 + <div class="padding">
  3 + <el-card class="complaint-type-container">
  4 + <div class="header-wrapper">
  5 + <h3>{{ $t('addComplaintType.title') }}</h3>
  6 + </div>
6 7  
7   - <el-form ref="form" :model="addComplaintTypeInfo" label-width="120px">
8   - <el-row :gutter="20">
9   - <el-col :span="12">
10   - <el-form-item :label="$t('addComplaintType.typeName')" prop="typeName">
11   - <el-input v-model="addComplaintTypeInfo.typeName" :placeholder="$t('addComplaintType.typeNamePlaceholder')"
12   - clearable />
13   - </el-form-item>
14   - </el-col>
15   - <el-col :span="12">
16   - <el-form-item :label="$t('addComplaintType.notifyWay')" prop="notifyWay">
17   - <el-select v-model="addComplaintTypeInfo.notifyWay" :placeholder="$t('addComplaintType.notifyWayPlaceholder')"
18   - style="width:100%">
19   - <el-option v-for="item in notifyWayOptions" :key="item.value" :label="item.label" :value="item.value" />
20   - </el-select>
21   - </el-form-item>
22   - </el-col>
23   - </el-row>
  8 + <el-form ref="form" :model="addComplaintTypeInfo" label-width="120px">
  9 + <el-row :gutter="20">
  10 + <el-col :span="12">
  11 + <el-form-item :label="$t('addComplaintType.typeName')" prop="typeName">
  12 + <el-input v-model="addComplaintTypeInfo.typeName"
  13 + :placeholder="$t('addComplaintType.typeNamePlaceholder')" clearable />
  14 + </el-form-item>
  15 + </el-col>
  16 + <el-col :span="12">
  17 + <el-form-item :label="$t('addComplaintType.notifyWay')" prop="notifyWay">
  18 + <el-select v-model="addComplaintTypeInfo.notifyWay"
  19 + :placeholder="$t('addComplaintType.notifyWayPlaceholder')" style="width:100%">
  20 + <el-option v-for="item in notifyWayOptions" :key="item.value" :label="item.label" :value="item.value" />
  21 + </el-select>
  22 + </el-form-item>
  23 + </el-col>
  24 + </el-row>
24 25  
25   - <el-row :gutter="20">
26   - <el-col :span="12">
27   - <el-form-item :label="$t('addComplaintType.appraiseReply')" prop="appraiseReply">
28   - <el-select v-model="addComplaintTypeInfo.appraiseReply"
29   - :placeholder="$t('addComplaintType.appraiseReplyPlaceholder')" style="width:100%">
30   - <el-option v-for="item in appraiseReplyOptions" :key="item.value" :label="item.label" :value="item.value" />
31   - </el-select>
32   - </el-form-item>
33   - </el-col>
34   - <el-col :span="12">
35   - <el-form-item :label="$t('addComplaintType.remark')" prop="remark">
36   - <el-input v-model="addComplaintTypeInfo.remark" type="textarea"
37   - :placeholder="$t('addComplaintType.remarkPlaceholder')" :rows="2" />
38   - </el-form-item>
39   - </el-col>
40   - </el-row>
  26 + <el-row :gutter="20">
  27 + <el-col :span="12">
  28 + <el-form-item :label="$t('addComplaintType.appraiseReply')" prop="appraiseReply">
  29 + <el-select v-model="addComplaintTypeInfo.appraiseReply"
  30 + :placeholder="$t('addComplaintType.appraiseReplyPlaceholder')" style="width:100%">
  31 + <el-option v-for="item in appraiseReplyOptions" :key="item.value" :label="item.label"
  32 + :value="item.value" />
  33 + </el-select>
  34 + </el-form-item>
  35 + </el-col>
  36 + <el-col :span="12">
  37 + <el-form-item :label="$t('addComplaintType.remark')" prop="remark">
  38 + <el-input v-model="addComplaintTypeInfo.remark" type="textarea"
  39 + :placeholder="$t('addComplaintType.remarkPlaceholder')" :rows="2" />
  40 + </el-form-item>
  41 + </el-col>
  42 + </el-row>
41 43  
42   - <el-row>
43   - <el-col :span="24">
44   - <el-form-item :label="$t('addComplaintType.selectStaff')">
45   - <select-staffs ref="selectStaffs" @selectStaffs="handleStaffSelected" />
46   - </el-form-item>
47   - </el-col>
48   - </el-row>
  44 + <el-row>
  45 + <el-col :span="24">
  46 + <el-form-item :label="$t('addComplaintType.selectStaff')">
  47 + <select-staffs ref="selectStaffs" @selectStaffs="handleStaffSelected" />
  48 + </el-form-item>
  49 + </el-col>
  50 + </el-row>
49 51  
50   - <el-row>
51   - <el-col :span="24" class="button-group">
52   - <el-button type="primary" @click="saveComplaintTypeInfo">
53   - {{ $t('common.save') }}
54   - </el-button>
55   - <el-button @click="goBack">
56   - {{ $t('common.back') }}
57   - </el-button>
58   - </el-col>
59   - </el-row>
60   - </el-form>
61   - </el-card>
  52 + <el-row>
  53 + <el-col :span="24" class="button-group">
  54 + <el-button type="primary" @click="saveComplaintTypeInfo">
  55 + {{ $t('common.save') }}
  56 + </el-button>
  57 + <el-button @click="goBack">
  58 + {{ $t('common.back') }}
  59 + </el-button>
  60 + </el-col>
  61 + </el-row>
  62 + </el-form>
  63 + </el-card>
  64 + </div>
62 65 </template>
63 66  
64 67 <script>
... ...
src/views/report/reportFeeSummaryList.vue
1 1 <template>
2 2 <div class="report-fee-summary-container animated fadeInRight">
3   - <el-row class="flex justify-start">
4   - <el-col :span="2" class="padding-r-0">
  3 + <el-row class="flex justify-start" :gutter="20">
  4 + <el-col :span="3" class="padding-r-0">
5 5 <select-community-floor ref="selectCommunityFloor" />
6 6 </el-col>
7   - <el-col :span="22">
  7 + <el-col :span="21">
8 8 <el-card class="box-card">
9 9 <div slot="header" class="flex justify-between">
10 10 <span>{{ $t('reportFeeSummary.queryCondition') }}</span>
... ... @@ -254,7 +254,7 @@ export default {
254 254 },
255 255 async _loadStaffCommunitys() {
256 256 try {
257   - const { data } = await queryCommunitys()
  257 + const data = await queryCommunitys()
258 258 this.reportFeeSummaryInfo.communitys = data.communitys
259 259 } catch (error) {
260 260 console.error('Failed to load communities:', error)
... ... @@ -269,7 +269,7 @@ export default {
269 269 isDefault: 'F'
270 270 }
271 271  
272   - const { data } = await queryFeeConfigs(params)
  272 + const data = await queryFeeConfigs(params)
273 273 this.reportFeeSummaryInfo.feeConfigs = data.feeConfigs
274 274 } catch (error) {
275 275 console.error('Failed to list fee configs:', error)
... ...
src/views/report/reportProficientList.vue
... ... @@ -46,7 +46,7 @@
46 46  
47 47 <!-- 内容区域 -->
48 48 <el-card class="content-wrapper">
49   - <el-tabs v-model="reportProficientInfo._currentTab" @tab-click="changeTab">
  49 + <el-tabs v-model="reportProficientInfo._currentTab" @tab-click="changeTab(reportProficientInfo._currentTab)">
50 50 <el-tab-pane :label="$t('reportProficient.roomFee')" name="reportProficientRoomFee">
51 51 <report-proficient-room-fee ref="reportProficientRoomFee" v-if="reportProficientInfo._currentTab === 'reportProficientRoomFee'"
52 52 :conditions="reportProficientInfo.conditions">
... ... @@ -96,6 +96,7 @@ export default {
96 96 },
97 97 created() {
98 98 this._initData()
  99 + this.changeTab(this.reportProficientInfo._currentTab)
99 100 },
100 101 methods: {
101 102 async _initData() {
... ... @@ -122,12 +123,14 @@ export default {
122 123 }
123 124 },
124 125 changeTab(tab) {
125   - this.reportProficientInfo._currentTab = tab.name || tab
126   - this._queryMethod()
  126 + this.reportProficientInfo._currentTab = tab
  127 + setTimeout(() => {
  128 + this.$refs[`${this.reportProficientInfo._currentTab}`].open(this.reportProficientInfo.conditions)
  129 + },500)
127 130 },
128 131 _queryMethod() {
129 132 setTimeout(() => {
130   - this.$refs[`${this.reportProficientInfo._currentTab}`].handleSwitch()
  133 + this.$refs[`${this.reportProficientInfo._currentTab}`].open(this.reportProficientInfo.conditions)
131 134 },500)
132 135 },
133 136 _resetMethod() {
... ... @@ -141,9 +144,9 @@ export default {
141 144 },
142 145 _getReportProficientRoomName() {
143 146 if (this.reportProficientInfo._currentTab === 'reportProficientRoomFee') {
144   - return this.$t('reportProficient.roomPlaceholder')
  147 + return this.$t('reportProficient.search.roomPlaceholder')
145 148 }
146   - return this.$t('reportProficient.carPlaceholder')
  149 + return this.$t('reportProficient.search.carPlaceholder')
147 150 },
148 151 async _exportFee() {
149 152 try {
... ...