zhangjiaqing
8 天以前 1cef3adee31c6934c0da4b4f0b8a6f5ac03b364f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
/**
 入驻小区
 **/
(function (vc) {
    var DEFAULT_PAGE = 1;
    var DEFAULT_ROWS = 10;
    vc.extends({
        data: {
            reportFeeBreakdownInfo: {
                fees: [],
                total: 0,
                records: 1,
                moreCondition: false,
                title: '',
                roomUnits: [],
                feeTypeCds: [],
                feeConfigDtos: [],
                totalReceivableAmount: 0.0,
                allReceivableAmount: 0.0,
                totalReceivedAmount: 0.0,
                allReceivedAmount: 0.0,
                totalPreferentialAmount: 0.0,
                allHisOweReceivedAmount: 0.0,
                allOweAmount: 0.0,
                conditions: {
                    floorId: '',
                    floorName: '',
                    roomNum: '',
                    unitId: '',
                    configId: '',
                    feeTypeCd: '',
                    startTime: '',
                    endTime: '',
                    yearMonth: '',
                    communityId: vc.getCurrentCommunity().communityId
                }
            }
        },
        _initMethod: function () {
            //vc.component._initDate();
            //$that.reportFeeBreakdownInfo.conditions.yearMonth = $that._getCurrentMonth();
            $that._listFees(DEFAULT_PAGE, DEFAULT_ROWS);
            //关联字典表费用类型
            vc.getDict('pay_fee_config', "fee_type_cd", function (_data) {
                vc.component.reportFeeBreakdownInfo.feeTypeCds = _data;
            });
            $(".popover-show").mouseover(() => {
                $('.popover-show').popover('show');
            })
            $(".popover-show").mouseleave(() => {
                $('.popover-show').popover('hide');
            })
        },
        _initEvent: function () {
            vc.on('reportFeeBreakdown', 'chooseFloor', function (_param) {
                vc.component.reportFeeBreakdownInfo.conditions.floorId = _param.floorId;
                vc.component.reportFeeBreakdownInfo.conditions.floorName = _param.floorName;
                vc.component.loadUnits(_param.floorId);
            });
            vc.on('pagination', 'page_event', function (_currentPage) {
                vc.component._listFees(_currentPage, DEFAULT_ROWS);
            });
        },
        methods: {
            _initDate: function () {
                $(".startTime").datetimepicker({
                    minView: "month",
                    language: 'zh-CN',
                    fontAwesome: 'fa',
                    format: 'yyyy-mm-dd',
                    initTime: true,
                    initialDate: new Date(),
                    autoClose: 1,
                    todayBtn: true
                });
                $(".endTime").datetimepicker({
                    minView: "month",
                    language: 'zh-CN',
                    fontAwesome: 'fa',
                    format: 'yyyy-mm-dd',
                    initTime: true,
                    initialDate: new Date(),
                    autoClose: 1,
                    todayBtn: true
                });
                $('.startTime').datetimepicker()
                    .on('changeDate', function (ev) {
                        var value = $(".startTime").val();
                        vc.component.reportFeeBreakdownInfo.conditions.startTime = value;
                    });
                $('.endTime').datetimepicker()
                    .on('changeDate', function (ev) {
                        var value = $(".endTime").val();
                        vc.component.reportFeeBreakdownInfo.conditions.endTime = value;
                        let start = Date.parse(new Date($that.reportFeeBreakdownInfo.conditions.startTime))
                        let end = Date.parse(new Date($that.reportFeeBreakdownInfo.conditions.endTime))
                        if (start - end >= 0) {
                            vc.toast("结束时间必须大于开始时间")
                            $that.reportFeeBreakdownInfo.conditions.endTime = '';
                        }
                    });
                //防止多次点击时间插件失去焦点
                document.getElementsByClassName(' form-control startTime')[0].addEventListener('click', myfunc)
 
                function myfunc(e) {
                    e.currentTarget.blur();
                }
 
                document.getElementsByClassName(" form-control endTime")[0].addEventListener('click', myfunc)
 
                function myfunc(e) {
                    e.currentTarget.blur();
                }
            },
            //查询
            _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,
                    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;
                        }
                        //计算小计
                        let _totalReceivableAmount = 0.0;
                        let _totalReceivedAmount = 0.0;
                        let _totalPreferentialAmount = 0.0;
                        _reportFeeBreakdownInfo.data.forEach(item => {
                            _totalReceivableAmount += parseFloat(item.receivableAmount);
                            _totalReceivedAmount += parseFloat(item.receivedAmount);
                            _totalPreferentialAmount += parseFloat(item.oweAmount);
                        });
                        $that.reportFeeBreakdownInfo.totalReceivableAmount = _totalReceivableAmount.toFixed(2);
                        $that.reportFeeBreakdownInfo.totalReceivedAmount = _totalReceivedAmount.toFixed(2);
                        $that.reportFeeBreakdownInfo.totalPreferentialAmount = _totalPreferentialAmount.toFixed(2);
                        if (_reportFeeBreakdownInfo.data.length > 0) {
                            $that.reportFeeBreakdownInfo.allReceivableAmount = _reportFeeBreakdownInfo.data[0].allReceivableAmount;
                            $that.reportFeeBreakdownInfo.allReceivedAmount = _reportFeeBreakdownInfo.data[0].allReceivedAmount;
                            $that.reportFeeBreakdownInfo.allOweAmount = _reportFeeBreakdownInfo.data[0].allOweAmount;
                            $that.reportFeeBreakdownInfo.allHisOweReceivedAmount = _reportFeeBreakdownInfo.data[0].allHisOweReceivedAmount;
                        } else {
                            $that.reportFeeBreakdownInfo.allReceivableAmount = 0.0.toFixed(2);
                            $that.reportFeeBreakdownInfo.allReceivedAmount = 0.0.toFixed(2);
                            $that.reportFeeBreakdownInfo.allOweAmount = 0.0.toFixed(2);
                            $that.reportFeeBreakdownInfo.allHisOweReceivedAmount = 0.0.toFixed(2);
                        }
                        vc.emit('pagination', 'init', {
                            total: vc.component.reportFeeBreakdownInfo.records,
                            dataCount: vc.component.reportFeeBreakdownInfo.total,
                            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 = "";
                vc.component.reportFeeBreakdownInfo.conditions.yearMonth = "";
                $that._listFees(DEFAULT_PAGE, DEFAULT_ROWS);
            },
            loadUnits: function (_floorId) {
                let param = {
                    params: {
                        floorId: _floorId,
                        communityId: vc.getCurrentCommunity().communityId
                    }
                }
                vc.http.apiGet(
                    '/unit.queryUnits',
                    param,
                    function (json, res) {
                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                        if (res.status == 200) {
                            let tmpUnits = JSON.parse(json);
                            vc.component.reportFeeBreakdownInfo.roomUnits = tmpUnits;
                            return;
                        }
                        vc.toast(json);
                    },
                    function (errInfo, error) {
                        console.log('请求失败处理');
                        vc.toast(errInfo);
                    });
            },
            _openChooseFloorMethod: function () {
                vc.emit('searchFloor', 'openSearchFloorModel', {});
            },
            _moreCondition: function () {
                if (vc.component.reportFeeBreakdownInfo.moreCondition) {
                    vc.component.reportFeeBreakdownInfo.moreCondition = false;
                } else {
                    vc.component.reportFeeBreakdownInfo.moreCondition = true;
                }
            },
            _exportExcel: function () {
                vc.jumpToPage('/callComponent/exportReportFee/exportData?pagePath=reportFeeBreakdown&' + vc.objToGetParam($that.reportFeeBreakdownInfo.conditions));
            },
            _computeSum: function (a, b) {
                return (parseFloat(a) + parseFloat(b)).toFixed(2)
            },
            _computeOweFee: function (fee) {
                let _oweFee = (parseFloat(fee.hisOweAmount) + parseFloat(fee.curReceivableAmount) - parseFloat(fee.curReceivedAmount) - parseFloat(fee.hisOweReceivedAmount)).toFixed(2);
                if (_oweFee < 0) {
                    return 0;
                }
                return _oweFee;
            },
            _computeTotalOweAmount: function () {
                if (!window.$that) {
                    return 0;
                }
                if (!$that.reportFeeBreakdownInfo) {
                    return 0;
                }
                let _amount = 0;
                $that.reportFeeBreakdownInfo.fees.forEach(item => {
                    _amount += parseFloat($that._computeOweFee(item));
                })
                return _amount.toFixed(2);
            },
            _getCurrentMonth: function () {
                let date = new Date();
                let year = date.getFullYear();
                let month = date.getMonth() + 1;
                if (month < 10) {
                    month = '0' + month;
                }
                return year + '' + month;
            },
            _computeTotalHisOweReceivedAmount: function () {
                if (!window.$that) {
                    return 0;
                }
                if (!$that.reportFeeBreakdownInfo) {
                    return 0;
                }
                let _amount = 0;
                $that.reportFeeBreakdownInfo.fees.forEach(item => {
                    _amount += parseFloat(item.hisOweReceivedAmount);
                })
                return _amount.toFixed(2);
            },
            _toDetail: function (_fee) {
                let _condition = {
                    floorId: vc.component.reportFeeBreakdownInfo.conditions.floorId,
                    floorName: vc.component.reportFeeBreakdownInfo.conditions.floorName,
                    unitId: vc.component.reportFeeBreakdownInfo.conditions.unitId,
                    roomNum: vc.component.reportFeeBreakdownInfo.conditions.roomNum,
                    startTime: vc.component.reportFeeBreakdownInfo.conditions.startTime,
                    endTime: vc.component.reportFeeBreakdownInfo.conditions.endTime,
                    feeTypeCd: vc.component.reportFeeBreakdownInfo.conditions.feeTypeCd,
                    yearMonth: vc.component.reportFeeBreakdownInfo.conditions.yearMonth,
                }
                vc.jumpToPage('/#/pages/property/reportFeeBreakdownDetail?configId=' + _fee.configId +
                    "&" + vc.objToGetParam(_condition))
            },
            _viewFeeConfig: function (_fee) {
                vc.emit('viewFeeConfigData', 'showData', {
                    configId: _fee.configId
                })
            },
        }
    });
})(window.vc);