优化 自动抵扣功能

This commit is contained in:
java110 2022-06-23 12:32:42 +08:00
parent fc97d05859
commit e57c5a8dac
9 changed files with 817 additions and 389 deletions

View File

@ -135,14 +135,23 @@
</div>
</div>
</div>
<div class="ibox-content">
<button class="btn btn-primary float-right" type="button" v-on:click="saveFeeConfigInfo()">
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="账户抵扣" namespace="addFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<select class="custom-select" v-model="addFeeConfigInfo.deductFrom">
<option selected disabled value="">{{vc.i18n('必填,请选择是否账户自动抵扣','addFeeConfig')}}</option>
<option value="Y">{{vc.i18n('是','addFeeConfig')}}</option>
<option value="N">{{vc.i18n('否','addFeeConfig')}}</option>
</select> </div>
</div>
</div>
<div class="ibox-content">
<button class="btn btn-primary float-right" type="button" v-on:click="saveFeeConfigInfo()">
<i class="fa fa-check"></i>&nbsp;保存
</button>
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">
<i class="fa fa-times"></i>&nbsp;取消
</button>
</div>
</div>
</div>
</div>
@ -150,3 +159,4 @@
</div>
</div>
</div>
</div>

View File

@ -24,7 +24,8 @@
billType: '',
paymentCycle: '',
paymentCd: '',
computingFormulaText: ''
computingFormulaText: '',
deductFrom: 'Y'
}
},
_initMethod: function() {
@ -285,7 +286,8 @@
billType: '',
paymentCycle: '',
paymentCd: '',
computingFormulaText: ''
computingFormulaText: '',
deductFrom: 'Y'
};
}
}

View File

@ -1,5 +1,4 @@
<div id="editFeeConfigModel" class="modal fade" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div id="editFeeConfigModel" class="modal fade" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-body">
@ -10,8 +9,7 @@
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="费用类型" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<select class="custom-select" v-bind:disabled="editFeeConfigInfo.isDefault=='T'"
v-model="editFeeConfigInfo.feeTypeCd">
<select class="custom-select" v-bind:disabled="editFeeConfigInfo.isDefault=='T'" v-model="editFeeConfigInfo.feeTypeCd">
<option selected disabled value="">{{vc.i18n('必填','editFeeConfig')}},请选择费用类型</option>
<option v-for="(item,index) in editFeeConfigInfo.feeTypeCds" :key="index"
v-bind:value="item.statusCd">{{item.name}}
@ -22,16 +20,13 @@
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="收费项目" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<input v-model="editFeeConfigInfo.feeName"
v-bind:disabled="editFeeConfigInfo.isDefault=='T'" type="text"
:placeholder="vc.i18n('必填,请填写收费项目','editFeeConfig')" class="form-control">
<input v-model="editFeeConfigInfo.feeName" v-bind:disabled="editFeeConfigInfo.isDefault=='T'" type="text" :placeholder="vc.i18n('必填,请填写收费项目','editFeeConfig')" class="form-control">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="费用标识" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<select class="custom-select" v-bind:disabled="editFeeConfigInfo.isDefault=='T'"
v-model="editFeeConfigInfo.feeFlag">
<select class="custom-select" v-bind:disabled="editFeeConfigInfo.isDefault=='T'" v-model="editFeeConfigInfo.feeFlag">
<option selected disabled value="">{{vc.i18n('必填','editFeeConfig')}},请选择费用标识</option>
<option v-for="(item,index) in editFeeConfigInfo.feeFlags" :key="index"
:value="item.statusCd">{{item.name}}
@ -53,8 +48,7 @@
<div class="form-group row" v-if="editFeeConfigInfo.feeFlag=='1003006'">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="缴费周期" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<input v-model="editFeeConfigInfo.paymentCycle" type="text"
:placeholder="vc.i18n('必填,请填写缴费周期 单位为月','editFeeConfig')" class="form-control">
<input v-model="editFeeConfigInfo.paymentCycle" type="text" :placeholder="vc.i18n('必填,请填写缴费周期 单位为月','editFeeConfig')" class="form-control">
</div>
</div>
<div class="form-group row">
@ -71,22 +65,19 @@
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="计费起始时间" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<input v-model="editFeeConfigInfo.startTime" type="text" :placeholder="vc.i18n('必填,请填写计费起始时间','editFeeConfig')"
class="form-control editFeeConfigStartTime">
<input v-model="editFeeConfigInfo.startTime" type="text" :placeholder="vc.i18n('必填,请填写计费起始时间','editFeeConfig')" class="form-control editFeeConfigStartTime">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="计费终止时间" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<input v-model="editFeeConfigInfo.endTime" type="text" :placeholder="vc.i18n('必填,请填写计费终止时间','editFeeConfig')"
class="form-control editFeeConfigEndTime">
<input v-model="editFeeConfigInfo.endTime" type="text" :placeholder="vc.i18n('必填,请填写计费终止时间','editFeeConfig')" class="form-control editFeeConfigEndTime">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="计算公式" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<select class="custom-select" v-bind:disabled="editFeeConfigInfo.isDefault=='T'"
v-model="editFeeConfigInfo.computingFormula">
<select class="custom-select" v-bind:disabled="editFeeConfigInfo.isDefault=='T'" v-model="editFeeConfigInfo.computingFormula">
<option selected disabled value="">{{vc.i18n('必填','editFeeConfig')}},请选择计算公式</option>
<option v-for="(item,index) in editFeeConfigInfo.computingFormulas" :key="index"
v-bind:value="item.statusCd">
@ -95,8 +86,7 @@
</select>
</div>
</div>
<div class="form-group row"
v-show="editFeeConfigInfo.computingFormula != '2002'
<div class="form-group row" v-show="editFeeConfigInfo.computingFormula != '2002'
&& editFeeConfigInfo.computingFormula != '7007'
&& editFeeConfigInfo.computingFormula != '8008'
&& editFeeConfigInfo.computingFormula != '1101'
@ -104,12 +94,10 @@
&& editFeeConfigInfo.computingFormula != '9009'">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="计费单价" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<input v-model="editFeeConfigInfo.squarePrice" type="text" :placeholder="vc.i18n('必填,请填写计费单价','editFeeConfig')"
class="form-control">
<input v-model="editFeeConfigInfo.squarePrice" type="text" :placeholder="vc.i18n('必填,请填写计费单价','editFeeConfig')" class="form-control">
</div>
</div>
<div class="form-group row"
v-show="editFeeConfigInfo.computingFormula != '7007'
<div class="form-group row" v-show="editFeeConfigInfo.computingFormula != '7007'
&& editFeeConfigInfo.computingFormula != '8008'
&& editFeeConfigInfo.computingFormula != '1101'
&& editFeeConfigInfo.computingFormula != '4004'
@ -118,16 +106,14 @@
== '1001'
?'附加费用':'固定费用'}}</label>
<div class="col-sm-10">
<input v-model="editFeeConfigInfo.additionalAmount" type="text"
:placeholder="vc.i18n('必填,请填写附加费用','editFeeConfig')" class="form-control">
<input v-model="editFeeConfigInfo.additionalAmount" type="text" :placeholder="vc.i18n('必填,请填写附加费用','editFeeConfig')" class="form-control">
</div>
</div>
<div v-show="editFeeConfigInfo.computingFormula == '7007'">
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="公式" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<textarea v-model="editFeeConfigInfo.computingFormulaText"
:placeholder="vc.i18n('必填,请填写公式','editFeeConfig')" class="form-control"></textarea>
<textarea v-model="editFeeConfigInfo.computingFormulaText" :placeholder="vc.i18n('必填,请填写公式','editFeeConfig')" class="form-control"></textarea>
</div>
</div>
<div class="form-group row">
@ -144,12 +130,21 @@
</div>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label"><span><vc:i18n name="是否抵扣" namespace="editFeeConfig"></vc:i18n></span></label>
<div class="col-sm-10">
<select class="custom-select" v-model="editFeeConfigInfo.deductFrom">
<option selected disabled value="">{{vc.i18n('必填,请选择是否账户自动抵扣','editFeeConfig')}}</option>
<option value="Y">{{vc.i18n('是','editFeeConfig')}}</option>
<option value="N">{{vc.i18n('否','editFeeConfig')}}</option>
</select>
</div>
</div>
<div class="ibox-content">
<button class="btn btn-primary float-right" type="button" v-on:click="editFeeConfig()">
<i class="fa fa-check"></i>&nbsp;保存
</button>
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;"
data-dismiss="modal">
<button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">
<i class="fa fa-times"></i>&nbsp;取消
</button>
</div>
@ -159,4 +154,4 @@
</div>
</div>
</div>
</div>
</div>

View File

@ -20,7 +20,8 @@
billType: '',
paymentCycle: '',
paymentCd: '',
computingFormulaText: ''
computingFormulaText: '',
deductFrom: ''
}
},
_initMethod: function() {
@ -276,7 +277,8 @@
paymentCycle: '',
paymentCd: '',
billType: '',
computingFormulaText: ''
computingFormulaText: '',
deductFrom: ''
};
vc.component.editFeeConfigInfo.feeTypeCds = _feeTypeCds;
vc.component.editFeeConfigInfo.computingFormulas = _computingFormulas;

View File

@ -1,25 +1,23 @@
(function(vc){
(function(vc) {
let DEFAULT_PAGE = 1;
let DEFAULT_ROW = 10;
vc.extends({
data:{
data: {
roomTreeInfo: {
units:[],
callName:''
units: [],
callName: ''
}
},
_initMethod:function(){
},
_initEvent:function(){
vc.on('roomTree','openRoomTree',function(_param){
_initMethod: function() {},
_initEvent: function() {
vc.on('roomTree', 'openRoomTree', function(_param) {
$that.roomTreeInfo.callName = _param.callName;
$('#roomTreeModal').modal('show');
$that._loadRoomTreeFloorAndUnits();
});
},
methods:{
methods: {
_loadRoomTreeFloorAndUnits: function() {
let param = {
params: {
communityId: vc.getCurrentCommunity().communityId
@ -77,59 +75,59 @@
//console.log(_selected, data.node.original.unitId)
if (_selected.startsWith('u_')) {
$that._roomTreeLoadRoom(data.node.original.unitId,data);
$that._roomTreeLoadRoom(data.node.original.unitId, data);
}
if(_selected.startsWith('r_')){
if (_selected.startsWith('r_')) {
$('#roomTreeModal').modal('hide');
vc.emit($that.roomTreeInfo.callName, 'selectRoom', {
vc.emit($that.roomTreeInfo.callName, 'selectRoom', {
roomName: data.node.original.roomName,
roomId:data.node.original.roomId
roomId: data.node.original.roomId
})
}
});
},
_roomTreeLoadRoom:function(_unitId,data){
_roomTreeLoadRoom: function(_unitId, data) {
//获取选中的节点
let node = data.instance.get_node(data.selected[0]);
//遍历选中节点的子节点
let childNodes = data.instance.get_children_dom(node);
if(childNodes && childNodes.length>0){
for(var childIndex = 0; childIndex<childNodes.length;childIndex++){
$('#jstree_floorUnitRoom').jstree('delete_node', childNodes[childIndex]);
if (childNodes && childNodes.length > 0) {
for (var childIndex = 0; childIndex < childNodes.length; childIndex++) {
$('#jstree_floorUnitRoom').jstree('delete_node', childNodes[childIndex]);
}
}
let param = {
params:{
page:1,
row:1000,
unitId:_unitId,
communityId:vc.getCurrentCommunity().communityId
params: {
page: 1,
row: 1000,
unitId: _unitId,
communityId: vc.getCurrentCommunity().communityId
}
}
}
//发送get请求
//发送get请求
vc.http.apiGet('/room.queryRooms',
param,
function(json, res) {
let listRoomData = JSON.parse(json);
if(listRoomData.total< 1){
return ;
if (listRoomData.total < 1) {
return;
}
listRoomData.rooms.forEach(_room =>{
listRoomData.rooms.forEach(_room => {
let _text = _room.roomNum;
if(_room.ownerName){
_text +=('('+_room.ownerName+")")
if (_room.ownerName) {
_text += ('(' + _room.ownerName + ")")
}
let _data = {
id: 'r_' + _room.roomId,
roomId: _room.roomId,
roomName:_room.floorNum+"-"+_room.unitNum+"-"+_room.roomNum,
roomName: _room.floorNum + "-" + _room.unitNum + "-" + _room.roomNum,
text: _text,
icon: "/img/room.png",
};
$('#jstree_floorUnitRoom').jstree('create_node', $('#u_'+_unitId), _data, "last", false, false);
$('#jstree_floorUnitRoom').jstree('create_node', $('#u_' + _unitId), _data, "last", false, false);
})
$('#jstree_floorUnitRoom').jstree('open_node', $('#u_'+_unitId));
$('#jstree_floorUnitRoom').jstree('open_node', $('#u_' + _unitId));
},
function(errInfo, error) {
console.log('请求失败处理');

View File

@ -1,179 +1,165 @@
<div>
<div class="bg-white padding-sm">
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openFeeImportExcel()">
<vc:i18n name="自定义模板" namespace="roomCreateFee"></vc:i18n>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openDoCreateRoomFee()">
<vc:i18n name="自定义创建" namespace="roomCreateFee"></vc:i18n>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openRoomCreateFeeAddModal(null,true)">
<i class="fa fa-plus"></i> <span><vc:i18n name="批量创建" namespace="roomCreateFee"></vc:i18n></span>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_downloadCollectionLetterOrder()">
<i class="fa fa-download"></i> <span><vc:i18n name="批量催缴单" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
<div class="row">
<div class="col-lg-12">
<div class="ibox ">
<div class="ibox-title">
<h5><span><vc:i18n name="查询条件" namespace="roomCreateFee"></vc:i18n></span>
</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()">{{roomCreateFeeInfo.moreCondition == true?'隐藏':'更多'}}
</button>
</div>
</div>
<div class="ibox-content">
<div class="row">
<div class="col-sm-3">
<select class="custom-select" v-model="roomCreateFeeInfo.conditions.roomType">
<option selected value="">{{vc.i18n('房屋类型','roomCreateFee')}}</option>
<option value="1010301">{{vc.i18n('普通房屋','roomCreateFee')}}</option>
<option value="2020602">{{vc.i18n('商铺','roomCreateFee')}}</option>
</select>
</div>
<div class="col-sm-3">
<div class="form-group">
<input type="text" :placeholder="roomCreateFeeInfo.conditions.roomType == '2020602'?'请填写楼栋-商铺 如1-1123':'请填写楼栋-单元-房屋 如1-1-1123'" class="form-control " v-model="roomCreateFeeInfo.conditions.allNum" @keyup.enter="_queryRoomMethod">
<div class="col-md-2" style="padding-right:0px">
<vc:create path="property/roomTree" callBackListener="roomCreateFee"></vc:create>
</div>
<div class="col-md-10 margin-top-xs">
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-title">
<h5>{{roomCreateFeeInfo.roomName}}
<span><span><vc:i18n name="费用" namespace="listRoomFee"></vc:i18n></span></span>
</h5>
<div class="ibox-tools" style="top:10px;">
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px" v-on:click="_openProxyFeeModal()" v-if="roomCreateFeeInfo.hireOwnerFee == '0'">
代收费用
</button>
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px" v-on:click="_openAddMeterWaterModal()" v-if="roomCreateFeeInfo.hireOwnerFee == '0'">
水电抄表
</button>
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px" v-on:click="_openRoomCreateFeeComboModal()" v-if="roomCreateFeeInfo.hireOwnerFee == '0'">
创建费用套餐
</button>
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px" v-on:click="_openRoomCreateFeeAddModal()" v-if="roomCreateFeeInfo.hireOwnerFee == '0'">
创建费用
</button>
<button type="button" class="btn btn-primary btn-sm" style="margin-left:10px" v-on:click="_toOwnerPayFee()" v-if="roomCreateFeeInfo.hireOwnerFee == '0'">
欠费缴费
</button>
</div>
</div>
<div class="col-sm-3">
<input type="text" :placeholder="vc.i18n('请填写业主名称','roomCreateFee')" class="form-control " v-model="roomCreateFeeInfo.conditions.ownerNameLike" @keyup.enter="_queryRoomMethod">
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-primary btn-sm" v-on:click="_queryRoomMethod()">
<i class="fa fa-search"></i> <span><vc:i18n name="查询" namespace="roomCreateFee"></vc:i18n></span>
</button>
<button type="button" class="btn btn-white btn-sm" v-on:click="_resetRoomMethod()" style="margin-left: 20px;">
<i class="fa fa-repeat"></i> <span><vc:i18n name="重置" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
</div>
<div class="row" v-if="roomCreateFeeInfo.moreCondition == true">
<div class="col-sm-3">
<div class="form-group input-group">
<input type="text" :placeholder="vc.i18n('请选择楼栋','roomCreateFee')" v-model="roomCreateFeeInfo.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> <span><vc:i18n name="选择" namespace="roomCreateFee"></vc:i18n></span>
</button>
<div class="ibox-content">
<table class="footable table table-stripped toggle-arrow-tiny" style="margin-top:10px" data-page-size="10">
<thead>
<tr>
<th class="text-center">
<span><span><vc:i18n name="费用项目" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="费用标识" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="费用类型" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="应收金额" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="建账时间" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="计费起始时间" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="计费结束时间" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="说明" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="状态" namespace="listRoomFee"></vc:i18n></span></span>
</th>
<th class="text-center">
<span><span><vc:i18n name="操作" namespace="listRoomFee"></vc:i18n></span></span>
</th>
</tr>
</thead>
<tbody>
<tr v-for="fee in roomCreateFeeInfo.fees">
<td class="text-center">{{fee.feeName}}</td>
<td class="text-center">{{fee.feeFlagName}}</td>
<td class="text-center">{{fee.feeTypeCdName}}</td>
<td class="text-center">{{fee.amountOwed}}</td>
<td class="text-center">{{fee.startTime}}</td>
<td class="text-center">{{_getEndTime(fee)}}</td>
<td class="text-center">{{_getDeadlineTime(fee)}}</td>
<td class="text-center" v-if="fee.computingFormula == '5005' || fee.computingFormula == '9009'">
<div>
<span><span><vc:i18n name="上期度数" namespace="listRoomFee"></vc:i18n></span></span>{{fee.preDegrees}}</div>
<div>
<span><span><vc:i18n name="本期度数" namespace="listRoomFee"></vc:i18n></span></span>{{fee.curDegrees}}</div>
<div>
<span><span><vc:i18n name="单价" namespace="listRoomFee"></vc:i18n></span></span>{{getOnePrice1(fee)}}</div>
<div>
<span><span><vc:i18n name="附加费" namespace="listRoomFee"></vc:i18n></span></span>{{fee.additionalAmount}}</div>
</td>
<td class="text-center" v-else-if="fee.computingFormula == '6006'">
<div>
<span><span><vc:i18n name="用量" namespace="listRoomFee"></vc:i18n></span></span>{{_getAttrValue(fee.feeAttrs,'390006')}}</div>
<div>
<span><span><vc:i18n name="单价" namespace="listRoomFee"></vc:i18n></span></span>{{fee.squarePrice}}</div>
<div>
<span><span><vc:i18n name="附加费" namespace="listRoomFee"></vc:i18n></span></span>{{fee.additionalAmount}}</div>
</td>
<td class="text-center" width="150" v-else-if="fee.feeTypeCd == '888800010017'">
<div>
<span><span><vc:i18n name="算法" namespace="listRoomFee"></vc:i18n></span></span>{{_getAttrValue(fee.feeAttrs,'390005')}}</div>
<div>
<span><span><vc:i18n name="用量" namespace="listRoomFee"></vc:i18n></span></span>{{_getAttrValue(fee.feeAttrs,'390003')}}</div>
</td>
<td class="text-center" width="150" v-else-if="fee.computingFormula == '4004'">
<div>
<span><span><vc:i18n name="费用根据实际情况而定" namespace="listRoomFee"></vc:i18n></span></span>
</div>
</td>
<td class="text-center" v-else>
<div>
<span><span><vc:i18n name="面积" namespace="listRoomFee"></vc:i18n></span></span>{{roomCreateFeeInfo.builtUpArea}}</div>
<div>
<span><span><vc:i18n name="单价" namespace="listRoomFee"></vc:i18n></span></span>{{fee.squarePrice}}</div>
<div v-if="fee.feeFlag == '1003006'">
<span><span><vc:i18n name="附加费" namespace="listRoomFee"></vc:i18n></span></span>{{fee.additionalAmount}}</div>
<div v-else>
<span><span><vc:i18n name="固定费" namespace="listRoomFee"></vc:i18n></span></span>{{fee.additionalAmount}}</div>
</td>
<td class="text-center">{{fee.stateName}}</td>
<td class="text-center">
<button class="btn btn-link btn-xs" v-if="fee.state != '2009001' && vc.hasPrivilege('502020082314267912')" v-on:click="_payFee(fee)"><span><span><vc:i18n name="缴费" namespace="listRoomFee"></vc:i18n></span></span>
</button>
<button class="btn btn-link btn-xs" v-on:click="_payFeeHis(fee)"><span><span><vc:i18n name="缴费历史" namespace="listRoomFee"></vc:i18n></span></span></button>
<button class="btn btn-link btn-xs" v-if="vc.hasPrivilege('502020090604200029')" v-on:click="_deleteFee(fee)"><span><span><vc:i18n name="取消费用" namespace="listRoomFee"></vc:i18n></span></span>
</button>
<button class="btn btn-link btn-xs" v-if="fee.state != '2009001' && vc.hasPrivilege('502020090427190001')" v-on:click="_editFee(fee)"><span><span><vc:i18n name="费用变更" namespace="listRoomFee"></vc:i18n></span></span>
</button>
</td>
</tr>
</tbody>
</table>
<!-- 分页 -->
<div class="row">
<div class="col-sm-5">
<div> 注意: 计费结束时间 “-” 表示未到计费时间 或 收费已结束</div>
<div> 应收金额 为-1 一般为费用项公式设置出错请检查</div>
</div>
<div class="col-sm-7 float-right">
<vc:create path="frame/pagination"></vc:create>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<select class=" form-control input-s-sm inline" v-model="roomCreateFeeInfo.conditions.unitId">
<option selected value="">{{vc.i18n('请选择单元','roomCreateFee')}}</option>
<option v-for="(unit,index) in roomUnits" :key="index" v-bind:value="unit.unitId">
{{unit.unitNum}}{{vc.i18n('单元','roomCreateFee')}}
</option>
</select>
</div>
</div>
<div class="col-sm-3">
<input type="text" :placeholder="vc.i18n('请填写业主身份证号','roomCreateFee')" class="form-control " v-model="roomCreateFeeInfo.conditions.idCard" @keyup.enter="_queryRoomMethod">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-title">
<h5><span><vc:i18n name="房屋信息" namespace="roomCreateFee"></vc:i18n></span>
</h5>
<div class="ibox-tools" style="top:10px;">
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openFeeImportExcel()">
<vc:i18n name="自定义模板" namespace="roomCreateFee"></vc:i18n>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openDoCreateRoomFee()">
<vc:i18n name="自定义创建" namespace="roomCreateFee"></vc:i18n>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openRoomCreateFeeAddModal(null,true)">
<i class="fa fa-plus"></i> <span><vc:i18n name="批量创建" namespace="roomCreateFee"></vc:i18n></span>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_downloadCollectionLetterOrder()">
<i class="fa fa-download"></i> <span><vc:i18n name="批量催缴单" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
</div>
<div class="ibox-content">
<table class="footable table table-stripped toggle-arrow-tiny" style="margin-top:10px" data-page-size="10">
<thead>
<tr>
<th data-hide="phone" class="text-center">{{vc.i18n('房屋类型','roomCreateFee')}}</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="房屋(栋/单元/室)" namespace="roomCreateFee"></vc:i18n></span></th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="楼层(单位:层)" namespace="roomCreateFee"></vc:i18n></span></th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="房屋状态" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="业主名称" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="联系电话" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="业主身份证号" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th class="text-center"><span><vc:i18n name="房屋ID" namespace="roomCreateFee"></vc:i18n></span></th>
<th class="text-center"><span><vc:i18n name="操作" namespace="roomCreateFee"></vc:i18n></span>
</th>
</tr>
</thead>
<tbody>
<tr v-for="room in roomCreateFeeInfo.rooms">
<td class="text-center">
{{room.roomType=='1010301'?'房屋':'商铺'}}
</td>
<td class="text-center" v-if="room.roomType=='1010301'">
{{room.floorNum}}-{{room.unitNum}}-{{room.roomNum}}
</td>
<td class="text-center" v-else>
{{room.floorNum}}-{{room.roomNum}}
</td>
<td class="text-center">
{{room.layer}}
</td>
<td class="text-center">
{{room.stateName}}
</td>
<td class="text-center">
{{room.ownerName}}
</td>
<td class="text-center">
{{room.link}}
<td class="text-center">
{{room.idCard}}
</td>
<td class="text-center">
{{room.roomId}}
</td>
<td class="text-center">
<div class="btn-group" v-if="room.state != '2002'">
<button class="btn-white btn btn-xs" v-on:click="_toOwnerPayFee(room)"><span><vc:i18n name="欠费" namespace="roomCreateFee"></vc:i18n></span></button>
</div>
<!-- <div class="btn-group" v-if="room.state != '2002'">
<button class="btn-white btn btn-xs"
v-on:click="_openTranslateFeeManualCollectionDetailModel(room)"><span><vc:i18n name="人工托收" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div> -->
<div class="btn-group" v-if="room.state != '2002'">
<button class="btn-white btn btn-xs" v-on:click="_downloadRoomCollectionLetterOrder(room)"><span><vc:i18n name="催缴单" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
<div class="btn-group">
<button class="btn-white btn btn-xs" v-on:click="_openViewRoomCreateFee(room)"><span><vc:i18n name="费用" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="9">
<ul class="pagination float-right"></ul>
</td>
</tr>
</tfoot>
</table>
<!-- 分页 -->
<vc:create path="frame/pagination"></vc:create>
</div>
</div>
</div>
</div>
<vc:create path="property/searchFloor" emitChooseFloor="room" emitLoadData="room"></vc:create>
<vc:create path="property/deleteFee"></vc:create>
<vc:create path="property/editFee"></vc:create>
<vc:create path="property/roomCreateFeeAdd"></vc:create>
<vc:create path="property/exportFeeImportExcel"></vc:create>
<vc:create path="property/doImportCreateFee"></vc:create>
<vc:create path="property/addMeterWater" callBackListener="" callBackFunction=""></vc:create>
<vc:create path="property/addProxyFee" callBackListener="" callBackFunction=""></vc:create>
</div>

View File

@ -7,9 +7,7 @@
var TEMP_SEARCH = 'roomCreateFeeSearch';
vc.extends({
data: {
roomUnits: [],
roomCreateFeeInfo: {
rooms: [],
total: 0,
records: 1,
floorId: '',
@ -17,20 +15,17 @@
state: '',
roomNum: '',
moreCondition: false,
conditions: {
floorId: '',
ownerName: '',
ownerNameLike: '',
floorName: '',
unitId: '',
roomNum: '',
roomId: '',
state: '',
section: '',
allNum: '',
idCard: '',
roomType: ''
}
fees: [],
roomName: '',
roomId: '',
builtUpArea: 0.00,
floorNum: '',
unitNum: '',
roomNum: '',
ownerName: '',
roomType: '',
hireOwnerFee: '0',
urlOwnerId: ''
},
currentPage: 1,
},
@ -42,17 +37,17 @@
vc.component.roomCreateFeeInfo.conditions.floorName = vc.getParam("floorName");
vc.component.listRoom(DEFAULT_PAGE, DEFAULT_ROW);
} else {
console.log('here is tempData : ', _tempData);
vc.component.roomCreateFeeInfo.conditions = _tempData.conditions;
$that.updateCurrentPage(_tempData.currentPage);
vc.component.listRoom(_tempData.currentPage, DEFAULT_ROW);
}
},
_initEvent: function() {
vc.on('room', 'chooseFloor', function(_param) {
vc.component.roomCreateFeeInfo.conditions.floorId = _param.floorId;
vc.component.roomCreateFeeInfo.conditions.floorName = _param.floorName;
vc.component.loadUnits(_param.floorId);
vc.on('roomCreateFee', 'selectRoom', function(_param) {
vc.component.roomCreateFeeInfo.roomId = _param.roomId;
vc.component.roomCreateFeeInfo.roomName = _param.roomName;
vc.component._loadListRoomCreateFeeInfo();
});
vc.on('pagination', 'page_event', function(_currentPage) {
$that.updateCurrentPage(_currentPage);
@ -60,145 +55,13 @@
});
},
methods: {
listRoom: function(_page, _row) {
if (vc.component.roomCreateFeeInfo.conditions.floorName == '' || vc.component.roomCreateFeeInfo.conditions.floorName == null) {
vc.component.roomCreateFeeInfo.conditions.floorId = ''
}
vc.component.roomCreateFeeInfo.conditions.page = _page;
vc.component.roomCreateFeeInfo.conditions.row = _row;
vc.component.roomCreateFeeInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
let _allNum = $that.roomCreateFeeInfo.conditions.allNum;
let _conditions = JSON.parse(JSON.stringify(vc.component.roomCreateFeeInfo.conditions));
let param = {
params: _conditions
};
if (_allNum.split('-').length == 3) {
let _allNums = _allNum.split('-')
param.params.floorNum = _allNums[0].trim();
param.params.unitNum = _allNums[1].trim();
param.params.roomNum = _allNums[2].trim();
}
if (_allNum.split('-').length == 2) {
let _allNums = _allNum.split('-')
param.params.floorNum = _allNums[0].trim();
param.params.unitNum = '0';
param.params.roomNum = _allNums[1].trim();
}
//业主名称选框去空
param.params.ownerName = param.params.ownerName.trim();
//身份证号选框去空
param.params.idCard = param.params.idCard.trim();
//房屋编号去空
param.params.roomNum = param.params.roomNum.trim();
//发送get请求
vc.http.apiGet('/fee.listRoomsWhereFeeSet',
param,
function(json, res) {
var listRoomData = JSON.parse(json);
vc.component.roomCreateFeeInfo.total = listRoomData.total;
vc.component.roomCreateFeeInfo.records = listRoomData.records;
vc.component.roomCreateFeeInfo.rooms = listRoomData.rooms;
vc.emit('pagination', 'init', {
total: vc.component.roomCreateFeeInfo.records,
dataCount: vc.component.roomCreateFeeInfo.total,
currentPage: _page
});
// 换存搜索条件
$that.saveTempSearchData();
},
function(errInfo, error) {
vc.toast(errInfo);
console.log('请求失败处理');
}
);
},
_openRoomCreateFeeAddModal: function(_room, _isMore) {
vc.emit('roomCreateFeeAdd', 'openRoomCreateFeeAddModal', {
isMore: _isMore,
room: _room
});
},
_openViewRoomCreateFee: function(_room) {
vc.jumpToPage("/#/pages/property/listRoomFee?roomId=" + _room.roomId + '&ownerId=' + _room.ownerId);
},
/**
根据楼ID加载房屋
**/
loadUnits: function(_floorId) {
vc.component.addRoomUnits = [];
var param = {
params: {
floorId: _floorId,
communityId: vc.getCurrentCommunity().communityId
}
}
vc.http.get(
'roomCreateFee',
'loadUnits',
param,
function(json, res) {
//vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
if (res.status == 200) {
var tmpUnits = JSON.parse(json);
vc.component.roomUnits = tmpUnits;
return;
}
vc.toast(json);
},
function(errInfo, error) {
console.log('请求失败处理');
vc.toast(errInfo);
});
},
//查询
_queryRoomMethod: function() {
// 搜索时重置缓存分页
$that.updateCurrentPage(DEFAULT_PAGE);
vc.component.listRoom(DEFAULT_PAGE, DEFAULT_ROW);
},
//重置
_resetRoomMethod: function() {
vc.resetObject(vc.component.roomCreateFeeInfo.conditions);
vc.component.listRoom(DEFAULT_PAGE, DEFAULT_ROW);
},
_loadDataByParam: function() {
vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorId");
vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorName");
let param = {
params: {
communityId: vc.getCurrentCommunity().communityId,
floorId: vc.component.roomCreateFeeInfo.conditions.floorId
}
}
vc.http.get(
'roomCreateFee',
'loadFloor',
param,
function(json, res) {
if (res.status == 200) {
var _floorInfo = JSON.parse(json);
var _tmpFloor = _floorInfo.apiFloorDataVoList[0];
/*vc.emit('roomSelectFloor','chooseFloor', _tmpFloor);*/
return;
}
vc.toast(json);
},
function(errInfo, error) {
console.log('请求失败处理');
vc.toast(errInfo);
});
},
_moreCondition: function() {
if (vc.component.roomCreateFeeInfo.moreCondition) {
vc.component.roomCreateFeeInfo.moreCondition = false;
} else {
vc.component.roomCreateFeeInfo.moreCondition = true;
}
},
_openChooseFloorMethod: function() {
vc.emit('searchFloor', 'openSearchFloorModel', {});
},
_toOwnerPayFee: function(_room) {
let roomName = _room.floorNum + "栋" + _room.unitNum + "单元" + _room.roomNum + "室"
vc.jumpToPage('/#/pages/property/owePayFeeOrder?payObjId=' + _room.roomId + "&payObjType=3333&roomName=" + roomName);
@ -264,7 +127,130 @@
},
_openDoCreateRoomFee: function() {
vc.emit('doImportCreateFee', 'openDoImportCreateFeeModal', {})
}
},
getOnePrice1: function(fee) {
let _price = fee.mwPrice;
if (!_price) {
return fee.squarePrice;
}
if (parseFloat(_price) > 0) {
return _price;
}
return fee.squarePrice;
},
_loadListRoomCreateFeeInfo: function(_page, _row) {
var param = {
params: {
page: _page,
row: _row,
communityId: vc.getCurrentCommunity().communityId,
payerObjId: vc.component.roomCreateFeeInfo.roomId
// ownerId: $that.roomCreateFeeInfo.urlOwnerId
}
};
//发送get请求
vc.http.apiGet('/fee.listFee',
param,
function(json) {
let _feeConfigInfo = JSON.parse(json);
vc.component.roomCreateFeeInfo.total = _feeConfigInfo.total;
vc.component.roomCreateFeeInfo.records = _feeConfigInfo.records;
vc.component.roomCreateFeeInfo.fees = _feeConfigInfo.fees;
vc.emit('pagination', 'init', {
total: _feeConfigInfo.records,
dataCount: _feeConfigInfo.total,
currentPage: _page
});
},
function() {
console.log('请求失败处理');
}
);
},
_payFee: function(_fee) {
_fee.roomName = $that.roomCreateFeeInfo.roomName;
_fee.builtUpArea = $that.roomCreateFeeInfo.builtUpArea;
vc.jumpToPage('/#/pages/property/payFeeOrder?' + vc.objToGetParam(_fee));
},
_editFee: function(_fee) {
vc.emit('editFee', 'openEditFeeModal', _fee);
},
_payFeeHis: function(_fee) {
_fee.builtUpArea = $that.roomCreateFeeInfo.builtUpArea;
vc.jumpToPage('/#/pages/property/propertyFee?' + vc.objToGetParam(_fee));
},
_deleteFee: function(_fee) {
// var dateA = new Date(_fee.startTime);
// var dateB = new Date();
// if(dateA.setHours(0, 0, 0, 0) != dateB.setHours(0, 0, 0, 0)){
// vc.toast("只能取消当天添加的费用");
// return;
// }
vc.emit('deleteFee', 'openDeleteFeeModal', {
communityId: vc.getCurrentCommunity().communityId,
feeId: _fee.feeId
});
},
_refreshListRoomCreateFeeInfo: function() {
vc.component.roomCreateFeeInfo._currentFeeConfigName = "";
},
_goBack: function() {
vc.goBack();
},
_toOwnerPayFee: function() {
vc.jumpToPage('/#/pages/property/owePayFeeOrder?payObjId=' + $that.roomCreateFeeInfo.roomId + "&payObjType=3333&roomName=" + $that.roomCreateFeeInfo.roomName);
},
_openRoomCreateFeeAddModal: function() {
vc.emit('roomCreateFeeAdd', 'openRoomCreateFeeAddModal', {
isMore: false,
room: $that.roomCreateFeeInfo
});
},
_openRoomCreateFeeComboModal: function() {
vc.jumpToPage('/#/pages/property/createFeeByCombo?payerObjId=' +
$that.roomCreateFeeInfo.roomId +
"&payerObjName=" + $that.roomCreateFeeInfo.roomName +
"&payerObjType=3333")
},
_openAddMeterWaterModal: function() {
vc.emit('addMeterWater', 'openAddMeterWaterModal', {
roomId: $that.roomCreateFeeInfo.roomId,
roomName: $that.roomCreateFeeInfo.roomName,
ownerName: $that.roomCreateFeeInfo.ownerName
});
},
_getAttrValue: function(_attrs, _specCd) {
let _value = "";
_attrs.forEach(item => {
if (item.specCd == _specCd) {
_value = item.value;
return;
}
});
return _value;
},
_getDeadlineTime: function(_fee) {
if (_fee.amountOwed == 0 && _fee.endTime == _fee.deadlineTime) {
return "-";
}
if (_fee.state == '2009001') {
return "-";
}
return vc.dateSubOneDay(_fee.startTime, _fee.deadlineTime, _fee.feeFlag);
},
_getEndTime: function(_fee) {
if (_fee.state == '2009001') {
return "-";
}
return vc.dateFormat(_fee.endTime);
},
_openProxyFeeModal: function() { //创建代收费用
vc.emit('addProxyFee', 'openAddProxyFeeModal', {
roomId: $that.roomCreateFeeInfo.roomId,
roomName: $that.roomCreateFeeInfo.roomName,
ownerName: $that.roomCreateFeeInfo.ownerName
});
},
}
});
})(window.vc);

View File

@ -0,0 +1,179 @@
<div>
<div class="row">
<div class="col-lg-12">
<div class="ibox ">
<div class="ibox-title">
<h5><span><vc:i18n name="查询条件" namespace="roomCreateFee"></vc:i18n></span>
</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()">{{roomCreateFeeInfo.moreCondition == true?'隐藏':'更多'}}
</button>
</div>
</div>
<div class="ibox-content">
<div class="row">
<div class="col-sm-3">
<select class="custom-select" v-model="roomCreateFeeInfo.conditions.roomType">
<option selected value="">{{vc.i18n('房屋类型','roomCreateFee')}}</option>
<option value="1010301">{{vc.i18n('普通房屋','roomCreateFee')}}</option>
<option value="2020602">{{vc.i18n('商铺','roomCreateFee')}}</option>
</select>
</div>
<div class="col-sm-3">
<div class="form-group">
<input type="text" :placeholder="roomCreateFeeInfo.conditions.roomType == '2020602'?'请填写楼栋-商铺 如1-1123':'请填写楼栋-单元-房屋 如1-1-1123'" class="form-control " v-model="roomCreateFeeInfo.conditions.allNum" @keyup.enter="_queryRoomMethod">
</div>
</div>
<div class="col-sm-3">
<input type="text" :placeholder="vc.i18n('请填写业主名称','roomCreateFee')" class="form-control " v-model="roomCreateFeeInfo.conditions.ownerNameLike" @keyup.enter="_queryRoomMethod">
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-primary btn-sm" v-on:click="_queryRoomMethod()">
<i class="fa fa-search"></i> <span><vc:i18n name="查询" namespace="roomCreateFee"></vc:i18n></span>
</button>
<button type="button" class="btn btn-white btn-sm" v-on:click="_resetRoomMethod()" style="margin-left: 20px;">
<i class="fa fa-repeat"></i> <span><vc:i18n name="重置" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
</div>
<div class="row" v-if="roomCreateFeeInfo.moreCondition == true">
<div class="col-sm-3">
<div class="form-group input-group">
<input type="text" :placeholder="vc.i18n('请选择楼栋','roomCreateFee')" v-model="roomCreateFeeInfo.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> <span><vc:i18n name="选择" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
</div>
</div>
<div class="col-sm-3">
<div class="form-group">
<select class=" form-control input-s-sm inline" v-model="roomCreateFeeInfo.conditions.unitId">
<option selected value="">{{vc.i18n('请选择单元','roomCreateFee')}}</option>
<option v-for="(unit,index) in roomUnits" :key="index" v-bind:value="unit.unitId">
{{unit.unitNum}}{{vc.i18n('单元','roomCreateFee')}}
</option>
</select>
</div>
</div>
<div class="col-sm-3">
<input type="text" :placeholder="vc.i18n('请填写业主身份证号','roomCreateFee')" class="form-control " v-model="roomCreateFeeInfo.conditions.idCard" @keyup.enter="_queryRoomMethod">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-title">
<h5><span><vc:i18n name="房屋信息" namespace="roomCreateFee"></vc:i18n></span>
</h5>
<div class="ibox-tools" style="top:10px;">
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openFeeImportExcel()">
<vc:i18n name="自定义模板" namespace="roomCreateFee"></vc:i18n>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openDoCreateRoomFee()">
<vc:i18n name="自定义创建" namespace="roomCreateFee"></vc:i18n>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_openRoomCreateFeeAddModal(null,true)">
<i class="fa fa-plus"></i> <span><vc:i18n name="批量创建" namespace="roomCreateFee"></vc:i18n></span>
</button>
<button type="button" class="btn btn-white btn-sm" style="margin-left:10px" v-on:click="_downloadCollectionLetterOrder()">
<i class="fa fa-download"></i> <span><vc:i18n name="批量催缴单" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
</div>
<div class="ibox-content">
<table class="footable table table-stripped toggle-arrow-tiny" style="margin-top:10px" data-page-size="10">
<thead>
<tr>
<th data-hide="phone" class="text-center">{{vc.i18n('房屋类型','roomCreateFee')}}</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="房屋(栋/单元/室)" namespace="roomCreateFee"></vc:i18n></span></th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="楼层(单位:层)" namespace="roomCreateFee"></vc:i18n></span></th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="房屋状态" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="业主名称" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="联系电话" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th data-hide="phone" class="text-center"><span><vc:i18n name="业主身份证号" namespace="roomCreateFee"></vc:i18n></span>
</th>
<th class="text-center"><span><vc:i18n name="房屋ID" namespace="roomCreateFee"></vc:i18n></span></th>
<th class="text-center"><span><vc:i18n name="操作" namespace="roomCreateFee"></vc:i18n></span>
</th>
</tr>
</thead>
<tbody>
<tr v-for="room in roomCreateFeeInfo.rooms">
<td class="text-center">
{{room.roomType=='1010301'?'房屋':'商铺'}}
</td>
<td class="text-center" v-if="room.roomType=='1010301'">
{{room.floorNum}}-{{room.unitNum}}-{{room.roomNum}}
</td>
<td class="text-center" v-else>
{{room.floorNum}}-{{room.roomNum}}
</td>
<td class="text-center">
{{room.layer}}
</td>
<td class="text-center">
{{room.stateName}}
</td>
<td class="text-center">
{{room.ownerName}}
</td>
<td class="text-center">
{{room.link}}
<td class="text-center">
{{room.idCard}}
</td>
<td class="text-center">
{{room.roomId}}
</td>
<td class="text-center">
<div class="btn-group" v-if="room.state != '2002'">
<button class="btn-white btn btn-xs" v-on:click="_toOwnerPayFee(room)"><span><vc:i18n name="欠费" namespace="roomCreateFee"></vc:i18n></span></button>
</div>
<!-- <div class="btn-group" v-if="room.state != '2002'">
<button class="btn-white btn btn-xs"
v-on:click="_openTranslateFeeManualCollectionDetailModel(room)"><span><vc:i18n name="人工托收" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div> -->
<div class="btn-group" v-if="room.state != '2002'">
<button class="btn-white btn btn-xs" v-on:click="_downloadRoomCollectionLetterOrder(room)"><span><vc:i18n name="催缴单" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
<div class="btn-group">
<button class="btn-white btn btn-xs" v-on:click="_openViewRoomCreateFee(room)"><span><vc:i18n name="费用" namespace="roomCreateFee"></vc:i18n></span>
</button>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="9">
<ul class="pagination float-right"></ul>
</td>
</tr>
</tfoot>
</table>
<!-- 分页 -->
<vc:create path="frame/pagination"></vc:create>
</div>
</div>
</div>
</div>
<vc:create path="property/searchFloor" emitChooseFloor="room" emitLoadData="room"></vc:create>
<vc:create path="property/roomCreateFeeAdd"></vc:create>
<vc:create path="property/exportFeeImportExcel"></vc:create>
<vc:create path="property/doImportCreateFee"></vc:create>
</div>

View File

@ -0,0 +1,270 @@
/**
入驻小区
**/
(function(vc) {
var DEFAULT_PAGE = 1;
var DEFAULT_ROW = 10;
var TEMP_SEARCH = 'roomCreateFeeSearch';
vc.extends({
data: {
roomUnits: [],
roomCreateFeeInfo: {
rooms: [],
total: 0,
records: 1,
floorId: '',
unitId: '',
state: '',
roomNum: '',
moreCondition: false,
conditions: {
floorId: '',
ownerName: '',
ownerNameLike: '',
floorName: '',
unitId: '',
roomNum: '',
roomId: '',
state: '',
section: '',
allNum: '',
idCard: '',
roomType: ''
}
},
currentPage: 1,
},
_initMethod: function() {
//检查是否有缓存数据
let _tempData = vc.getData(TEMP_SEARCH);
if (_tempData == null) {
vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorId");
vc.component.roomCreateFeeInfo.conditions.floorName = vc.getParam("floorName");
vc.component.listRoom(DEFAULT_PAGE, DEFAULT_ROW);
} else {
console.log('here is tempData : ', _tempData);
vc.component.roomCreateFeeInfo.conditions = _tempData.conditions;
$that.updateCurrentPage(_tempData.currentPage);
vc.component.listRoom(_tempData.currentPage, DEFAULT_ROW);
}
},
_initEvent: function() {
vc.on('room', 'chooseFloor', function(_param) {
vc.component.roomCreateFeeInfo.conditions.floorId = _param.floorId;
vc.component.roomCreateFeeInfo.conditions.floorName = _param.floorName;
vc.component.loadUnits(_param.floorId);
});
vc.on('pagination', 'page_event', function(_currentPage) {
$that.updateCurrentPage(_currentPage);
vc.component.listRoom(_currentPage, DEFAULT_ROW);
});
},
methods: {
listRoom: function(_page, _row) {
if (vc.component.roomCreateFeeInfo.conditions.floorName == '' || vc.component.roomCreateFeeInfo.conditions.floorName == null) {
vc.component.roomCreateFeeInfo.conditions.floorId = ''
}
vc.component.roomCreateFeeInfo.conditions.page = _page;
vc.component.roomCreateFeeInfo.conditions.row = _row;
vc.component.roomCreateFeeInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
let _allNum = $that.roomCreateFeeInfo.conditions.allNum;
let _conditions = JSON.parse(JSON.stringify(vc.component.roomCreateFeeInfo.conditions));
let param = {
params: _conditions
};
if (_allNum.split('-').length == 3) {
let _allNums = _allNum.split('-')
param.params.floorNum = _allNums[0].trim();
param.params.unitNum = _allNums[1].trim();
param.params.roomNum = _allNums[2].trim();
}
if (_allNum.split('-').length == 2) {
let _allNums = _allNum.split('-')
param.params.floorNum = _allNums[0].trim();
param.params.unitNum = '0';
param.params.roomNum = _allNums[1].trim();
}
//业主名称选框去空
param.params.ownerName = param.params.ownerName.trim();
//身份证号选框去空
param.params.idCard = param.params.idCard.trim();
//房屋编号去空
param.params.roomNum = param.params.roomNum.trim();
//发送get请求
vc.http.apiGet('/fee.listRoomsWhereFeeSet',
param,
function(json, res) {
var listRoomData = JSON.parse(json);
vc.component.roomCreateFeeInfo.total = listRoomData.total;
vc.component.roomCreateFeeInfo.records = listRoomData.records;
vc.component.roomCreateFeeInfo.rooms = listRoomData.rooms;
vc.emit('pagination', 'init', {
total: vc.component.roomCreateFeeInfo.records,
dataCount: vc.component.roomCreateFeeInfo.total,
currentPage: _page
});
// 换存搜索条件
$that.saveTempSearchData();
},
function(errInfo, error) {
vc.toast(errInfo);
console.log('请求失败处理');
}
);
},
_openRoomCreateFeeAddModal: function(_room, _isMore) {
vc.emit('roomCreateFeeAdd', 'openRoomCreateFeeAddModal', {
isMore: _isMore,
room: _room
});
},
_openViewRoomCreateFee: function(_room) {
vc.jumpToPage("/#/pages/property/listRoomFee?roomId=" + _room.roomId + '&ownerId=' + _room.ownerId);
},
/**
根据楼ID加载房屋
**/
loadUnits: function(_floorId) {
vc.component.addRoomUnits = [];
var param = {
params: {
floorId: _floorId,
communityId: vc.getCurrentCommunity().communityId
}
}
vc.http.get(
'roomCreateFee',
'loadUnits',
param,
function(json, res) {
//vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
if (res.status == 200) {
var tmpUnits = JSON.parse(json);
vc.component.roomUnits = tmpUnits;
return;
}
vc.toast(json);
},
function(errInfo, error) {
console.log('请求失败处理');
vc.toast(errInfo);
});
},
//查询
_queryRoomMethod: function() {
// 搜索时重置缓存分页
$that.updateCurrentPage(DEFAULT_PAGE);
vc.component.listRoom(DEFAULT_PAGE, DEFAULT_ROW);
},
//重置
_resetRoomMethod: function() {
vc.resetObject(vc.component.roomCreateFeeInfo.conditions);
vc.component.listRoom(DEFAULT_PAGE, DEFAULT_ROW);
},
_loadDataByParam: function() {
vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorId");
vc.component.roomCreateFeeInfo.conditions.floorId = vc.getParam("floorName");
let param = {
params: {
communityId: vc.getCurrentCommunity().communityId,
floorId: vc.component.roomCreateFeeInfo.conditions.floorId
}
}
vc.http.get(
'roomCreateFee',
'loadFloor',
param,
function(json, res) {
if (res.status == 200) {
var _floorInfo = JSON.parse(json);
var _tmpFloor = _floorInfo.apiFloorDataVoList[0];
/*vc.emit('roomSelectFloor','chooseFloor', _tmpFloor);*/
return;
}
vc.toast(json);
},
function(errInfo, error) {
console.log('请求失败处理');
vc.toast(errInfo);
});
},
_moreCondition: function() {
if (vc.component.roomCreateFeeInfo.moreCondition) {
vc.component.roomCreateFeeInfo.moreCondition = false;
} else {
vc.component.roomCreateFeeInfo.moreCondition = true;
}
},
_openChooseFloorMethod: function() {
vc.emit('searchFloor', 'openSearchFloorModel', {});
},
_toOwnerPayFee: function(_room) {
let roomName = _room.floorNum + "栋" + _room.unitNum + "单元" + _room.roomNum + "室"
vc.jumpToPage('/#/pages/property/owePayFeeOrder?payObjId=' + _room.roomId + "&payObjType=3333&roomName=" + roomName);
},
_printOwnOrder: function(_room) {
//打印催交单
vc.jumpToPage('print.html#/pages/property/printOweFee?roomId=' + _room.roomId)
},
_openTranslateFeeManualCollectionDetailModel: function(_room) {
let _data = {
roomId: _room.roomId,
communityId: vc.getCurrentCommunity().communityId
}
//重新同步房屋欠费
vc.http.apiPost(
'/feeManualCollection/saveFeeManualCollection',
JSON.stringify(_data), {
emulateJSON: true
},
function(json, res) {
//vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
let _json = JSON.parse(json);
if (_json.code == 0) {
//关闭model
vc.toast(_json.msg);
vc.jumpToPage('/#/pages/property/feeManualCollectionManage');
return;
}
vc.toast(_json.msg);
},
function(errInfo, error) {
console.log('请求失败处理');
vc.message(errInfo);
});
},
/**
* 更新当前页码
*/
updateCurrentPage: function(page) {
$that.currentPage = page;
},
/**
* 保存搜索条件页码
*/
saveTempSearchData: function() {
let conditions = $that.roomCreateFeeInfo.conditions;
//缓存起来=
vc.saveData(TEMP_SEARCH, {
conditions: conditions,
currentPage: $that.currentPage
});
},
_downloadCollectionLetterOrder: function() {
vc.jumpToPage('/callComponent/feeManualCollection/downloadCollectionLetterOrder?communityId=' + vc.getCurrentCommunity().communityId);
},
_downloadRoomCollectionLetterOrder: function(_room) {
vc.jumpToPage('/callComponent/feeManualCollection/downloadCollectionLetterOrder?communityId=' + vc.getCurrentCommunity().communityId + "&roomId=" + _room.roomId);
},
_openFeeImportExcel: function() {
vc.emit('exportFeeImportExcel', 'openExportFeeImportExcelModal', {})
},
_openDoCreateRoomFee: function() {
vc.emit('doImportCreateFee', 'openDoImportCreateFeeModal', {})
}
}
});
})(window.vc);