From 58095315b32885b736a4ed8b479a88f0a577f858 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: Thu, 19 Oct 2023 02:10:55 +0800
Subject: [PATCH] optimize batch create room fee
---
.../roomCreateFeeAdd/roomCreateFeeAdd.html | 2 -
.../roomCreatePayFee/roomCreatePayFee.html | 151 ++++++++++++
.../fee/roomCreatePayFee/roomCreatePayFee.js | 217 ++++++++++++++++++
.../property/roomCreateFee/roomCreateFee.js | 13 +-
4 files changed, 373 insertions(+), 10 deletions(-)
create mode 100644 public/pages/fee/roomCreatePayFee/roomCreatePayFee.html
create mode 100644 public/pages/fee/roomCreatePayFee/roomCreatePayFee.js
diff --git a/public/components/property/roomCreateFeeAdd/roomCreateFeeAdd.html b/public/components/property/roomCreateFeeAdd/roomCreateFeeAdd.html
index 50a1f0b1a..849328ac4 100644
--- a/public/components/property/roomCreateFeeAdd/roomCreateFeeAdd.html
+++ b/public/components/property/roomCreateFeeAdd/roomCreateFeeAdd.html
@@ -7,7 +7,6 @@
+
\ No newline at end of file
diff --git a/public/pages/fee/roomCreatePayFee/roomCreatePayFee.js b/public/pages/fee/roomCreatePayFee/roomCreatePayFee.js
new file mode 100644
index 000000000..ddfec61db
--- /dev/null
+++ b/public/pages/fee/roomCreatePayFee/roomCreatePayFee.js
@@ -0,0 +1,217 @@
+(function (vc) {
+ vc.extends({
+ data: {
+ roomCreatePayFeeInfo: {
+ feeTypeCds: [],
+ feeConfigs: [],
+ remark: '',
+ floorId: '',
+ communityId: vc.getCurrentCommunity().communityId,
+ feeTypeCd: '',
+ configId: '',
+ roomIds: [],
+ rooms: [],
+ hasTime: 'OFF',
+ startTime: '',
+ endTime: '',
+ feeFlag: '',
+ computingFormula: '',
+ amount: '',
+ rateCycle: '',
+ rate: '',
+ rateStartTime: '',
+ floors: []
+ }
+ },
+ watch: {
+ 'roomCreatePayFeeInfo.roomIds': {
+ deep: true,
+ handler: function () {
+ let checkObj = document.querySelectorAll('.all-check'); // 获取所有checkbox项
+ if ($that.roomCreatePayFeeInfo.roomIds.length < $that.roomCreatePayFeeInfo.rooms.length) {
+ checkObj[0].checked = false;
+ } else {
+ checkObj[0].checked = true;
+ }
+ }
+ }
+ },
+ _initMethod: function () {
+ vc.getDict('pay_fee_config', "fee_type_cd", function (_data) {
+ let _datanew = [];
+ _data.forEach((item, index) => {
+ if (item.statusCd != "888800010015" && item.statusCd != "888800010016") {
+ _datanew.push(item);
+ }
+ });
+ $that.roomCreatePayFeeInfo.feeTypeCds = _datanew;
+ });
+ vc.initDate('roomCreateFeeStartTime', function (_value) {
+ $that.roomCreatePayFeeInfo.startTime = _value;
+ });
+ vc.initDate('roomCreateFeeEndTime', function (_value) {
+ $that.roomCreatePayFeeInfo.endTime = _value;
+ });
+ vc.initDate('addRoomRateStartTime', function (_value) {
+ $that.roomCreatePayFeeInfo.rateStartTime = _value;
+ });
+ $that._loadFloors();
+ },
+ _initEvent: function () {
+ vc.on('roomCreatePayFee', 'notifySelectRooms', function (_selectRooms) {
+ let _roomIds = [];
+ _selectRooms.forEach(item => {
+ _roomIds.push(item.roomId);
+ })
+ $that.roomCreatePayFeeInfo.roomIds = _roomIds;
+ });
+ },
+ methods: {
+ roomCreatePayFeeValidate() {
+ return vc.validate.validate({
+ roomCreatePayFeeInfo: $that.roomCreatePayFeeInfo
+ }, {
+ 'roomCreatePayFeeInfo.configId': [{
+ limit: "required",
+ param: "",
+ errInfo: "费用项不存在"
+ },],
+ });
+ },
+ _saveRoomCreatePayFee: function () {
+ if (!$that.roomCreatePayFeeValidate()) {
+ //侦听回传
+ vc.toast(vc.validate.errInfo);
+ return;
+ }
+ let _roomIds = $that.roomCreatePayFeeInfo.roomIds;
+ if (!_roomIds || _roomIds.length < 1) {
+ vc.toast('未包含房屋');
+ return;
+ }
+ vc.http.apiPost('/fee.roomCreatePayFee',
+ JSON.stringify($that.roomCreatePayFeeInfo),
+ {
+ emulateJSON: true
+ },
+ function (json, res) {
+ //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+ let _json = JSON.parse(json);
+ if (_json.code == 0) {
+ //关闭model
+ vc.goBack();
+ return;
+ } else {
+ vc.toast(_json.msg);
+ }
+ },
+ function (errInfo, error) {
+ console.log('请求失败处理');
+ vc.toast(errInfo);
+ });
+ },
+ _changeFeeTypeCdX: function (_feeTypeCd) {
+ // 押金默认开始时间为当前时间,结束时间+1月
+ if (_feeTypeCd == '888800010006' || _feeTypeCd == '888800010014') {
+ $that.roomCreatePayFeeInfo.startTime = vc.dateFormat(new Date());
+ $that.roomCreatePayFeeInfo.endTime = vc.addMonthDate(new Date(), 1);
+ }
+ $that.roomCreatePayFeeInfo.configId = '';
+ let param = {
+ params: {
+ page: 1,
+ row: 500,
+ communityId: vc.getCurrentCommunity().communityId,
+ feeTypeCd: _feeTypeCd,
+ isDefault: 'F',
+ valid: '1'
+ }
+ };
+ //发送get请求
+ vc.http.apiGet('/feeConfig.listFeeConfigs', param,
+ function (json, res) {
+ let _feeConfigManageInfo = JSON.parse(json);
+ $that.roomCreatePayFeeInfo.feeConfigs = _feeConfigManageInfo.feeConfigs;
+ },
+ function (errInfo, error) {
+ console.log('请求失败处理');
+ });
+ },
+ _loadFloors: function () {
+ let param = {
+ params: {
+ page: 1,
+ row: 100,
+ communityId: vc.getCurrentCommunity().communityId,
+ }
+ }
+ vc.http.apiGet(
+ '/floor.queryFloors',
+ param,
+ function (json, res) {
+ let _json = JSON.parse(json);
+ $that.roomCreatePayFeeInfo.floors = _json.apiFloorDataVoList;
+ },
+ function (errInfo, error) {
+ console.log('请求失败处理');
+ vc.toast(errInfo);
+ });
+ },
+ _loadFloorRooms: function () {
+ $that.roomCreatePayFeeInfo.rooms = [];
+ $that.roomCreatePayFeeInfo.roomIds = [];
+ if (!$that.roomCreatePayFeeInfo.floorId) {
+ return;
+ }
+ let param = {
+ params: {
+ page: 1,
+ row: 500,
+ communityId: vc.getCurrentCommunity().communityId,
+ floorId: $that.roomCreatePayFeeInfo.floorId
+ }
+ };
+ //发送get请求
+ vc.http.apiGet('/room.queryRooms',
+ param,
+ function (json) {
+ let _feeConfigInfo = JSON.parse(json);
+ $that.roomCreatePayFeeInfo.rooms = _feeConfigInfo.rooms;
+ if (_feeConfigInfo.rooms && _feeConfigInfo.rooms.length > 0) {
+ _feeConfigInfo.rooms.forEach(_room => {
+ $that.roomCreatePayFeeInfo.roomIds.push(_room.roomId);
+ })
+ }
+ },
+ function () {
+ console.log('请求失败处理');
+ }
+ );
+ },
+ _roomCreatePayFeeIfOnceFee(_configId) {
+ // 当费用类型不是押金/其他类型,并且是周期性费用时, 将结束时间清空
+ if ($that.roomCreatePayFeeInfo.feeTypeCd != '888800010006'
+ && $that.roomCreatePayFeeInfo.feeTypeCd != '888800010014'
+ && $that.roomCreatePayFeeInfo.feeFlag == '1003006') {
+ $that.roomCreatePayFeeInfo.endTime = '';
+ }
+ $that.roomCreatePayFeeInfo.feeConfigs.forEach(item => {
+ if (_configId == item.configId) {
+ $that.roomCreatePayFeeInfo.feeFlag = item.feeFlag;
+ $that.roomCreatePayFeeInfo.computingFormula = item.computingFormula;
+ return;
+ }
+ });
+ },
+ checkAll: function (e) {
+ let checkObj = document.querySelectorAll('.checkItem'); // 获取所有checkbox项
+ $that.roomCreatePayFeeInfo.roomIds = [];
+ if (e.target.checked) { // 判定全选checkbox的勾选状态
+ for (var i = 0; i < checkObj.length; i++) {
+ $that.roomCreatePayFeeInfo.roomIds.push(checkObj[i].value);
+ }
+ }
+ }
+ }
+ });
+})(window.vc);
\ No newline at end of file
diff --git a/public/pages/property/roomCreateFee/roomCreateFee.js b/public/pages/property/roomCreateFee/roomCreateFee.js
index 4484f36bf..148eddb4a 100644
--- a/public/pages/property/roomCreateFee/roomCreateFee.js
+++ b/public/pages/property/roomCreateFee/roomCreateFee.js
@@ -35,10 +35,6 @@
currentPage: 1,
},
_initMethod: function () {
- /*if (vc.isBack()) {
- console.log('back and select');
- vc.component._loadListRoomCreateFeeInfo(DEFAULT_PAGE, DEFAULT_ROW);
- }*/
vc.emit('roomTreeDiv', 'initRoomTreeDiv', {
callName: 'roomCreateFee'
});
@@ -107,10 +103,11 @@
},
methods: {
_openRoomCreateFeeAddModal: function (_room, _isMore) {
- vc.emit('roomCreateFeeAdd', 'openRoomCreateFeeAddModal', {
- isMore: _isMore,
- room: _room
- });
+ // vc.emit('roomCreateFeeAdd', 'openRoomCreateFeeAddModal', {
+ // isMore: _isMore,
+ // room: _room
+ // });
+ vc.jumpToPage('/#/pages/fee/roomCreatePayFee')
},
listRoomInRoomCreateFee: function (_page, _row) {
let param = {