mirror of
https://gitee.com/java110/MicroCommunityWeb.git
synced 2026-06-12 10:00:56 +08:00
211 lines
6.7 KiB
Vue
211 lines
6.7 KiB
Vue
<template>
|
|
<div class="operate-data-log-container">
|
|
<el-card class="search-card">
|
|
<div slot="header" class="flex justify-between">
|
|
<span>{{ $t('operateDataLog.search.title') }}</span>
|
|
<el-button type="text" style="float: right; padding: 3px 0" @click="_moreCondition">
|
|
{{ operateDataLogInfo.moreCondition ? $t('common.hide') : $t('common.more') }}
|
|
</el-button>
|
|
</div>
|
|
|
|
<el-row :gutter="20">
|
|
<el-col :span="6">
|
|
<el-date-picker v-model="operateDataLogInfo.conditions.logStartTime" type="datetime"
|
|
:placeholder="$t('operateDataLog.search.logStartTime')" style="width: 100%"
|
|
value-format="yyyy-MM-dd HH:mm:ss">
|
|
</el-date-picker>
|
|
</el-col>
|
|
|
|
<el-col :span="6">
|
|
<el-date-picker v-model="operateDataLogInfo.conditions.logEndTime" type="datetime"
|
|
:placeholder="$t('operateDataLog.search.logEndTime')" style="width: 100%" value-format="yyyy-MM-dd HH:mm:ss"
|
|
:picker-options="endDateOptions">
|
|
</el-date-picker>
|
|
</el-col>
|
|
|
|
<el-col :span="6">
|
|
<el-input v-model="operateDataLogInfo.conditions.staffNameLike"
|
|
:placeholder="$t('operateDataLog.search.staffNameLike')">
|
|
</el-input>
|
|
</el-col>
|
|
|
|
<el-col :span="6">
|
|
<el-button type="primary" @click="_queryDataMethod">
|
|
<i class="el-icon-search"></i>
|
|
{{ $t('common.search') }}
|
|
</el-button>
|
|
<el-button @click="_resetDataMethod">
|
|
<i class="el-icon-refresh"></i>
|
|
{{ $t('common.reset') }}
|
|
</el-button>
|
|
</el-col>
|
|
</el-row>
|
|
|
|
<el-row :gutter="20" v-show="operateDataLogInfo.moreCondition">
|
|
<el-col :span="6"
|
|
v-if="operateDataLogInfo._currentTab === 'feeConfigDetailHis' || operateDataLogInfo._currentTab === 'feeDetailHis'">
|
|
<el-input v-model="operateDataLogInfo.conditions.feeNameLike"
|
|
:placeholder="$t('operateDataLog.search.feeNameLike')">
|
|
</el-input>
|
|
</el-col>
|
|
|
|
<el-col :span="6" v-if="operateDataLogInfo._currentTab === 'feeDetailHis'">
|
|
<el-input v-model="operateDataLogInfo.conditions.payerObjName"
|
|
:placeholder="$t('operateDataLog.search.payerObjName')">
|
|
</el-input>
|
|
</el-col>
|
|
|
|
<el-col :span="6" v-if="operateDataLogInfo._currentTab === 'ownerDetailHis'">
|
|
<el-input v-model="operateDataLogInfo.conditions.ownerNameLike"
|
|
:placeholder="$t('operateDataLog.search.ownerNameLike')">
|
|
</el-input>
|
|
</el-col>
|
|
|
|
<el-col :span="6" v-if="operateDataLogInfo._currentTab === 'roomDetailHis'">
|
|
<el-input v-model="operateDataLogInfo.conditions.roomName"
|
|
:placeholder="$t('operateDataLog.search.roomName')">
|
|
</el-input>
|
|
</el-col>
|
|
|
|
<el-col :span="6" v-if="operateDataLogInfo._currentTab === 'carDetailHis'">
|
|
<el-input v-model="operateDataLogInfo.conditions.carNumLike"
|
|
:placeholder="$t('operateDataLog.search.carNumLike')">
|
|
</el-input>
|
|
</el-col>
|
|
|
|
<el-col :span="6" v-if="operateDataLogInfo._currentTab === 'contractDetailChange'">
|
|
<el-input v-model="operateDataLogInfo.conditions.contractCode"
|
|
:placeholder="$t('operateDataLog.search.contractCode')">
|
|
</el-input>
|
|
</el-col>
|
|
</el-row>
|
|
</el-card>
|
|
|
|
<el-card class="table-card">
|
|
<el-tabs v-model="operateDataLogInfo._currentTab" @tab-click="changeTab(operateDataLogInfo._currentTab)">
|
|
<el-tab-pane label="费用项" name="feeConfigDetailHis"></el-tab-pane>
|
|
<el-tab-pane label="费用" name="feeDetailHis"></el-tab-pane>
|
|
<el-tab-pane label="业主" name="ownerDetailHis"></el-tab-pane>
|
|
<el-tab-pane label="房屋" name="roomDetailHis"></el-tab-pane>
|
|
<el-tab-pane label="车辆" name="carDetailHis"></el-tab-pane>
|
|
<el-tab-pane label="合同" name="contractDetailChange"></el-tab-pane>
|
|
</el-tabs>
|
|
|
|
<component :is="currentComponent" :ref="currentComponent"></component>
|
|
</el-card>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { getCommunityId } from '@/api/community/communityApi'
|
|
import FeeConfigDetailHis from '@/components/system/feeConfigDetailHis'
|
|
import FeeDetailHis from '@/components/fee/feeDetailHis'
|
|
import OwnerDetailHis from '@/components/owner/ownerDetailHis'
|
|
import RoomDetailHis from '@/components/system/roomDetailHis'
|
|
import CarDetailHis from '@/components/system/carDetailHis'
|
|
import ContractDetailChange from '@/components/system/contractDetailChange'
|
|
|
|
export default {
|
|
name: 'OperateDataLogList',
|
|
components: {
|
|
FeeConfigDetailHis,
|
|
FeeDetailHis,
|
|
OwnerDetailHis,
|
|
RoomDetailHis,
|
|
CarDetailHis,
|
|
ContractDetailChange
|
|
},
|
|
data() {
|
|
return {
|
|
communityId: '',
|
|
operateDataLogInfo: {
|
|
_currentTab: 'feeConfigDetailHis',
|
|
moreCondition: false,
|
|
conditions: {
|
|
logStartTime: '',
|
|
logEndTime: '',
|
|
staffNameLike: '',
|
|
feeNameLike: '',
|
|
payerObjName: '',
|
|
ownerNameLike: '',
|
|
roomName: '',
|
|
carNumLike: '',
|
|
contractCode: ''
|
|
}
|
|
},
|
|
endDateOptions: {
|
|
disabledDate: (time) => {
|
|
if (this.operateDataLogInfo.conditions.logStartTime) {
|
|
return time.getTime() <= new Date(this.operateDataLogInfo.conditions.logStartTime).getTime()
|
|
}
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
computed: {
|
|
currentComponent() {
|
|
return this.operateDataLogInfo._currentTab
|
|
}
|
|
},
|
|
created() {
|
|
this.communityId = getCommunityId()
|
|
},
|
|
methods: {
|
|
changeTab(tab) {
|
|
this.operateDataLogInfo._currentTab = tab
|
|
setTimeout(() => {
|
|
if (this.$refs[tab]) {
|
|
this.$refs[tab].open(this.operateDataLogInfo.conditions)
|
|
}
|
|
}, 100)
|
|
},
|
|
_queryDataMethod() {
|
|
this.changeTab(this.operateDataLogInfo._currentTab)
|
|
},
|
|
_resetDataMethod() {
|
|
this.operateDataLogInfo.conditions = {
|
|
logStartTime: '',
|
|
logEndTime: '',
|
|
staffNameLike: '',
|
|
feeNameLike: '',
|
|
payerObjName: '',
|
|
ownerNameLike: '',
|
|
roomName: '',
|
|
carNumLike: '',
|
|
contractCode: ''
|
|
}
|
|
this.changeTab(this.operateDataLogInfo._currentTab)
|
|
},
|
|
_moreCondition() {
|
|
this.operateDataLogInfo.moreCondition = !this.operateDataLogInfo.moreCondition
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.operate-data-log-container {
|
|
padding: 20px;
|
|
|
|
.search-card {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.table-card {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.el-row {
|
|
margin-bottom: 20px;
|
|
|
|
&:last-child {
|
|
margin-bottom: 0;
|
|
}
|
|
}
|
|
|
|
.el-col {
|
|
border-radius: 4px;
|
|
}
|
|
}
|
|
</style> |