1、缴费明细报表新增费用项查询

2、费用分向报表新增费用类型和费用项查询
3、优化左侧菜单失去焦点问题
4、优化创建停车费用显示水电费问题
This commit is contained in:
xiaogang 2020-12-31 16:59:48 +08:00
parent a84244a1bb
commit 6114fe421c
9 changed files with 146 additions and 45 deletions

View File

@ -120,20 +120,19 @@
vc.setMenuState('OFF');
},
_gotoPage: function (_href) {
let copyMenus = this.menus;
for (var menuIndex = 0; menuIndex < copyMenus.length; menuIndex++) {
if (copyMenus[menuIndex].hasOwnProperty('childs')) {
var _childs = copyMenus[menuIndex].childs;
for (var menuIndex = 0; menuIndex < this.menus.length; menuIndex++) {
if (this.menus[menuIndex].hasOwnProperty('childs')) {
var _childs = this.menus[menuIndex].childs;
for(var childIndex = 0; childIndex < _childs.length; childIndex++){
if(_href == _childs[childIndex].href){
copyMenus[menuIndex].childs[childIndex].active = true;
this.menus[menuIndex].childs[childIndex].active = true;
} else {
copyMenus[menuIndex].childs[childIndex].active = false;
this.menus[menuIndex].childs[childIndex].active = false;
}
}
}
}
this.$set(this.menus, copyMenus);
this.$forceUpdate();
vc.jumpToPage(_href);
}

View File

@ -16,7 +16,6 @@
<script src="/js/bootstrap/bootstrap.min.js"></script>
<script src="/js/bootstrap/bootstrap-datetimepicker.js"></script>
<script src="/js/toastr.min.js"></script>
</head>
<body class="vc-body">

View File

@ -5,10 +5,10 @@
<div class="ibox-title">
<h5>{{listCarFeeInfo.carNum}}费用({{listCarFeeInfo.parkingName}})</h5>
<div class="ibox-tools" style="top:10px;">
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px"
<!-- <button type="button" class="btn btn-primary btn-sm" style="margin-left:10px"
v-on:click="_openAddMeterWaterModal()">
水电抄表
</button>
</button> -->
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px"
v-on:click="_openCarCreateFeeAddModal()">
创建费用

View File

@ -5,6 +5,9 @@
<div class="ibox-title">
<h5>查询条件</h5>
<div class="ibox-tools" style="top:10px;">
<button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"
v-on:click="_moreCondition()">{{reportFeeBreakdownInfo.moreCondition == true?'隐藏':'更多'}}
</button>
</div>
</div>
<div class="ibox-content">
@ -15,7 +18,8 @@
v-model="reportFeeBreakdownInfo.conditions.floorName" class=" form-control">
<div class="input-group-prepend">
<button type="button" class="btn btn-primary btn-sm"
v-on:click="_openChooseFloorMethod()"><i class="fa fa-search"></i> 选择
v-on:click="_openChooseFloorMethod()">
<i class="fa fa-search"></i> 选择
</button>
</div>
</div>
@ -32,20 +36,36 @@
</select>
</div>
</div>
<div class="col-sm-4">
<div class="col-sm-3">
<div class="form-group">
<input type="text" placeholder="请填写房屋编号" class="form-control form-control-md"
v-model="reportFeeBreakdownInfo.conditions.roomNum">
</div>
</div>
<div class="col-sm-1">
<button type="button" class="btn btn-primary btn-md" v-on:click="_queryMethod()"><i
class="fa fa-search"></i> 查询
<div class="col-sm-2">
<button type="button" class="btn btn-primary btn-md" v-on:click="_queryMethod()">
<i class="fa fa-search"></i> 查询
</button>
<button type="button" class="btn btn-info btn-md" v-on:click="_resetMethod()"
style="margin-left: 20px;">
<i class="fa fa-repeat"></i> 重置
</button>
</div>
</div>
<div class="row">
<div class="row" v-show="reportFeeBreakdownInfo.moreCondition == true">
<div class="col-sm-4">
<div class="form-group">
<select class="form-control-md form-control input-s-sm inline"
v-model="reportFeeBreakdownInfo.conditions.configId">
<option selected value="">请选择收费项</option>
<option v-for="(item,index) in reportFeeBreakdownInfo.feeConfigDtos" :key="index"
:value="item.configId">
{{item.feeName}}
</option>
</select>
</div>
</div>
<div class="col-sm-3">
<div class="form-group input-group">
<input type="text" placeholder="请选择缴费开始时间"
v-model="reportFeeBreakdownInfo.conditions.startTime"
@ -60,6 +80,17 @@
</div>
</div>
</div>
<div class="row" v-show="reportFeeBreakdownInfo.moreCondition == true">
<!--费用类型-->
<div class="col-sm-4">
<select class="custom-select" v-model="reportFeeBreakdownInfo.conditions.feeTypeCd">
<option selected value="">请选择费用类型</option>
<option v-for="(item,index) in reportFeeBreakdownInfo.feeTypeCds" :key="index"
v-bind:value="item.statusCd">{{item.name}}
</option>
</select>
</div>
</div>
</div>
</div>
</div>
@ -71,8 +102,7 @@
<h5>费用分项表</h5>
<div class="ibox-tools" style="top:10px;">
<button type="button" class="btn btn-primary btn-sm" v-on:click="_exportFee()">
<i class="fa fa-plus"></i>
导出
<i class="fa fa-plus"></i>导出
</button>
</div>
</div>
@ -81,17 +111,19 @@
<thead>
<tr>
<th class="text-center">费用编号</th>
<th class="text-center">费用类型</th>
<th class="text-center">费用项</th>
<th class="text-center">费用开始时间</th>
<th class="text-center">缴费时间</th>
<th class="text-center">应收金额</th>
<th class="text-center">实收金额</th>
<th class="text-center">欠费金额</th>
<th class="text-center">应收金额(单位:元)</th>
<th class="text-center">实收金额(单位:元)</th>
<th class="text-center">欠费金额(单位:元)</th>
</tr>
</thead>
<tbody>
<tr v-for="(fee,index) in reportFeeBreakdownInfo.fees">
<td class="text-center">{{index+1}}</td>
<td class="text-center">{{fee.feeTypeCd}}</td>
<td class="text-center">{{fee.feeName}}</td>
<td class="text-center">{{fee.feeCreateTime}}</td>
<td class="text-center">{{fee.createTime}}</td>

View File

@ -13,24 +13,30 @@
moreCondition: false,
title: '',
roomUnits: [],
feeConfigDtos: [],
feeTypeCds: [],
conditions: {
floorId: '',
floorName: '',
roomNum: '',
unitId: '',
startTime:'',
endTime:''
configId: '',
feeTypeCd: '',
startTime: '',
endTime: ''
}
}
},
_initMethod: function () {
vc.component._initDate();
vc.component._listFees(DEFAULT_PAGE, DEFAULT_ROWS);
//关联字典表费用类型
vc.getDict('pay_fee_config', "fee_type_cd", function (_data) {
vc.component.reportFeeBreakdownInfo.feeTypeCds = _data;
});
// vc.initDateMonth('startTime', function (_startTime) {
// $that.reportFeeBreakdownInfo.conditions.startTime = _startTime;
// });
// vc.initDateMonth('endTime', function (_endTime) {
// $that.reportFeeBreakdownInfo.conditions.endTime = _endTime;
// let start = Date.parse(new Date($that.reportFeeBreakdownInfo.conditions.startTime + "-01"))
@ -40,10 +46,8 @@
// $that.reportFeeBreakdownInfo.conditions.endTime = '';
// }
// });
},
_initEvent: function () {
vc.on('reportFeeBreakdown', 'chooseFloor', function (_param) {
vc.component.reportFeeBreakdownInfo.conditions.floorId = _param.floorId;
vc.component.reportFeeBreakdownInfo.conditions.floorName = _param.floorName;
@ -93,18 +97,18 @@
}
});
},
_queryMethod:function(){
//查询
_queryMethod: function () {
vc.component._listFees(DEFAULT_PAGE, DEFAULT_ROWS);
},
//查询方法
_listFees: function (_page, _rows) {
vc.component.reportFeeBreakdownInfo.conditions.page = _page;
vc.component.reportFeeBreakdownInfo.conditions.row = _rows;
vc.component.reportFeeBreakdownInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
var param = {
params: vc.component.reportFeeBreakdownInfo.conditions
};
//发送get请求
vc.http.apiGet('/reportFeeMonthStatistics/queryFeeBreakdown',
param,
@ -113,6 +117,46 @@
vc.component.reportFeeBreakdownInfo.total = _reportFeeBreakdownInfo.total;
vc.component.reportFeeBreakdownInfo.records = _reportFeeBreakdownInfo.records;
vc.component.reportFeeBreakdownInfo.fees = _reportFeeBreakdownInfo.data;
if (_reportFeeBreakdownInfo.data.length > 0) {
vc.component.reportFeeBreakdownInfo.feeConfigDtos = _reportFeeBreakdownInfo.data[0].feeConfigDtos;
}
vc.emit('pagination', 'init', {
total: vc.component.reportFeeBreakdownInfo.records,
currentPage: _page
});
}, function (errInfo, error) {
console.log('请求失败处理');
}
);
},
//重置
_resetMethod: function () {
vc.component._resetListFee(DEFAULT_PAGE, DEFAULT_ROWS);
},
//重置方法
_resetListFee: function (_page, _rows) {
vc.component.reportFeeBreakdownInfo.conditions.floorId = "";
vc.component.reportFeeBreakdownInfo.conditions.floorName = "";
vc.component.reportFeeBreakdownInfo.conditions.unitId = "";
vc.component.reportFeeBreakdownInfo.conditions.roomNum = "";
vc.component.reportFeeBreakdownInfo.conditions.configId = "";
vc.component.reportFeeBreakdownInfo.conditions.startTime = "";
vc.component.reportFeeBreakdownInfo.conditions.endTime = "";
vc.component.reportFeeBreakdownInfo.conditions.feeTypeCd = "";
var param = {
params: vc.component.reportFeeBreakdownInfo.conditions
};
//发送get请求
vc.http.apiGet('/reportFeeMonthStatistics/queryFeeBreakdown',
param,
function (json, res) {
var _reportFeeBreakdownInfo = JSON.parse(json);
vc.component.reportFeeBreakdownInfo.total = _reportFeeBreakdownInfo.total;
vc.component.reportFeeBreakdownInfo.records = _reportFeeBreakdownInfo.records;
vc.component.reportFeeBreakdownInfo.fees = _reportFeeBreakdownInfo.data;
if (_reportFeeBreakdownInfo.data.length > 0) {
vc.component.reportFeeBreakdownInfo.feeConfigDtos = _reportFeeBreakdownInfo.data[0].feeConfigDtos;
}
vc.emit('pagination', 'init', {
total: vc.component.reportFeeBreakdownInfo.records,
currentPage: _page
@ -147,11 +191,18 @@
vc.toast(errInfo);
});
},
_openChooseFloorMethod:function(){
vc.emit('searchFloor','openSearchFloorModel',{});
_openChooseFloorMethod: function () {
vc.emit('searchFloor', 'openSearchFloorModel', {});
},
_exportFee:function(){
vc.jumpToPage('/callComponent/exportReportFee/exportData?communityId='+vc.getCurrentCommunity().communityId+"&pagePath=reportFeeBreakdown");
_moreCondition: function () {
if (vc.component.reportFeeBreakdownInfo.moreCondition) {
vc.component.reportFeeBreakdownInfo.moreCondition = false;
} else {
vc.component.reportFeeBreakdownInfo.moreCondition = true;
}
},
_exportFee: function () {
vc.jumpToPage('/callComponent/exportReportFee/exportData?communityId=' + vc.getCurrentCommunity().communityId + "&pagePath=reportFeeBreakdown");
}
}
});

View File

@ -87,15 +87,15 @@
<table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
<thead>
<tr>
<th class="text-center">缴费时间</th>
<th class="text-center">应收金额</th>
<th class="text-center">实收金额</th>
<th class="text-center">欠费金额</th>
<th class="text-center">日期</th>
<th class="text-center">应收金额(单位:元)</th>
<th class="text-center">实收金额(单位:元)</th>
<th class="text-center">欠费金额(单位:元)</th>
</tr>
</thead>
<tbody>
<tr v-for="fee in reportFeeSummaryInfo.fees">
<td class="text-center">{{fee.createTime}}</td>
<td class="text-center">{{fee.feeYear+'年'+fee.feeMonth+'月'}}</td>
<td class="text-center">{{fee.receivableAmount}}</td>
<td class="text-center">{{fee.receivedAmount}}</td>
<td class="text-center">{{fee.oweAmount}}</td>

View File

@ -17,7 +17,8 @@
class=" form-control">
<div class="input-group-prepend">
<button type="button" class="btn btn-primary btn-sm"
v-on:click="_openChooseFloorMethod()"><i class="fa fa-search"></i> 选择
v-on:click="_openChooseFloorMethod()">
<i class="fa fa-search"></i> 选择
</button>
</div>
</div>
@ -82,17 +83,17 @@
<table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
<thead>
<tr>
<th class="text-center">缴费日期</th>
<th class="text-center">日期</th>
<th class="text-center">楼栋</th>
<th class="text-center">单元</th>
<th class="text-center">应收金额</th>
<th class="text-center">实收金额</th>
<th class="text-center">欠费金额</th>
<th class="text-center">应收金额(单位:元)</th>
<th class="text-center">实收金额(单位:元)</th>
<th class="text-center">欠费金额(单位:元)</th>
</tr>
</thead>
<tbody>
<tr v-for="fee in reportFloorUnitFeeSummaryInfo.fees">
<td class="text-center">{{fee.createTime}}</td>
<td class="text-center">{{fee.feeYear+'年'+fee.feeMonth+'月'}}</td>
<td class="text-center">{{fee.floorNum}}号楼</td>
<td class="text-center">{{fee.unitNum}}单元</td>
<td class="text-center">{{fee.receivableAmount}}</td>

View File

@ -79,6 +79,20 @@
</div>
</div>
</div>
<div class="row" v-show="reportPayFeeDetailInfo.moreCondition == true">
<div class="col-sm-3">
<div class="form-group">
<select class="form-control-md form-control input-s-sm inline"
v-model="reportPayFeeDetailInfo.conditions.configId">
<option selected value="">请选择收费项</option>
<option v-for="(item,index) in reportPayFeeDetailInfo.feeConfigDtos" :key="index"
:value="item.configId">
{{item.feeName}}
</option>
</select>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -14,6 +14,7 @@
title: '',
roomUnits: [],
primeRates: [],
feeConfigDtos: [],
totalReceivableAmount: 0.0,
totalReceivedAmount: 0.0,
allReceivableAmount: 0.0,
@ -23,6 +24,7 @@
floorName: '',
roomNum: '',
unitId: '',
configId: '',
primeRate: '',
startTime: '',
endTime: ''
@ -136,6 +138,7 @@
vc.component.reportPayFeeDetailInfo.totalReceivedAmount = _reportPayFeeDetailInfo.data[0].totalReceivedAmount;
vc.component.reportPayFeeDetailInfo.allReceivableAmount = _reportPayFeeDetailInfo.data[0].allReceivableAmount;
vc.component.reportPayFeeDetailInfo.allReceivedAmount = _reportPayFeeDetailInfo.data[0].allReceivedAmount;
vc.component.reportPayFeeDetailInfo.feeConfigDtos = _reportPayFeeDetailInfo.data[0].feeConfigDtos;
} else {
vc.component.reportPayFeeDetailInfo.totalReceivableAmount = "0.0";
vc.component.reportPayFeeDetailInfo.totalReceivedAmount = "0.0";
@ -164,6 +167,7 @@
vc.component.reportPayFeeDetailInfo.conditions.primeRate = "";
vc.component.reportPayFeeDetailInfo.conditions.startTime = "";
vc.component.reportPayFeeDetailInfo.conditions.endTime = "";
vc.component.reportPayFeeDetailInfo.conditions.configId = "";
var param = {
params: vc.component.reportPayFeeDetailInfo.conditions
};
@ -180,6 +184,7 @@
vc.component.reportPayFeeDetailInfo.totalReceivedAmount = _reportPayFeeDetailInfo.data[0].totalReceivedAmount;
vc.component.reportPayFeeDetailInfo.allReceivableAmount = _reportPayFeeDetailInfo.data[0].allReceivableAmount;
vc.component.reportPayFeeDetailInfo.allReceivedAmount = _reportPayFeeDetailInfo.data[0].allReceivedAmount;
vc.component.reportPayFeeDetailInfo.feeConfigDtos = _reportPayFeeDetailInfo.data[0].feeConfigDtos;
} else {
vc.component.reportPayFeeDetailInfo.totalReceivableAmount = 0.0;
vc.component.reportPayFeeDetailInfo.totalReceivedAmount = 0.0;