(function (vc) { var DEFAULT_PAGE = 1; var DEFAULT_ROW = 10; var TEMP_SEARCH = 'contractCreateFeeSearch'; vc.extends({ data: { roomUnits: [], contractCreateFeeInfo: { contracts: [], total: 0, records: 1, floorId: '', unitId: '', state: '', roomNum: '', moreCondition: false, conditions: { contractName: '', contractNameLike: '', contractCode: '', contractType: '' } }, currentPage: 1, }, _initMethod: function () { console.log('=== 组件初始化开始 ==='); console.log('当前组件数据:', vc.component); console.log('当前contractCreateFeeInfo:', vc.component.contractCreateFeeInfo); let _tempData = vc.getData(TEMP_SEARCH); console.log('临时搜索数据:', _tempData); if (_tempData == null) { console.log('首次加载,使用默认参数'); vc.component.contractCreateFeeInfo.conditions.floorId = vc.getParam("floorId"); vc.component.contractCreateFeeInfo.conditions.floorName = vc.getParam("floorName"); console.log('调用listContract:', DEFAULT_PAGE, DEFAULT_ROW); vc.component.listContract(DEFAULT_PAGE, DEFAULT_ROW); } else { console.log('使用临时数据', _tempData.currentPage); vc.component.contractCreateFeeInfo.conditions = _tempData.conditions; vc.component.updateCurrentPage(_tempData.currentPage); console.log('调用listContract:', _tempData.currentPage, DEFAULT_ROW); vc.component.listContract(_tempData.currentPage, DEFAULT_ROW); } console.log('=== 组件初始化完成 ==='); }, _initEvent: function () { vc.on('room', 'chooseFloor', function (_param) { vc.component.contractCreateFeeInfo.conditions.floorId = _param.floorId; vc.component.contractCreateFeeInfo.conditions.floorName = _param.floorName; vc.component.loadUnits(_param.floorId); }); vc.on('pagination', 'page_event', function (_currentPage) { vc.component.updateCurrentPage(_currentPage); vc.component.listContract(_currentPage, DEFAULT_ROW); }); }, methods: { listContract: function (_page, _row) { try { vc.component.contractCreateFeeInfo.conditions.page = _page; vc.component.contractCreateFeeInfo.conditions.row = _row; // 调试communityId获取 console.log('=== 获取communityId ==='); console.log('vc.getCurrentCommunity():', vc.getCurrentCommunity()); var currentCommunity = vc.getCurrentCommunity(); var communityId = currentCommunity ? currentCommunity.communityId : ''; console.log('获取到的communityId:', communityId); vc.component.contractCreateFeeInfo.conditions.communityId = communityId; vc.component.contractCreateFeeInfo.conditions.contractName = vc.component.contractCreateFeeInfo.conditions.contractName.trim(); vc.component.contractCreateFeeInfo.conditions.contractNameLike = vc.component.contractCreateFeeInfo.conditions.contractNameLike.trim(); vc.component.contractCreateFeeInfo.conditions.contractCode = vc.component.contractCreateFeeInfo.conditions.contractCode.trim(); vc.component.contractCreateFeeInfo.conditions.contractType = vc.component.contractCreateFeeInfo.conditions.contractType.trim(); let _conditions = JSON.parse(JSON.stringify(vc.component.contractCreateFeeInfo.conditions)); let param = { params: _conditions }; console.log('=== 开始查询合同数据 ==='); console.log('查询参数:', param); console.log('当前contracts:', vc.component.contractCreateFeeInfo.contracts); console.log('当前contractCreateFeeInfo:', vc.component.contractCreateFeeInfo); vc.http.apiGet('/contract/queryContract', param, function (json, res) { try { console.log('=== 收到响应数据 ==='); console.log('原始响应:', json); console.log('响应类型:', typeof json); // 检查响应是否已经是对象 var listContractData = typeof json === 'string' ? JSON.parse(json) : json; console.log('处理后的数据:', listContractData); // 验证响应数据结构 if (!listContractData) { console.error('响应数据为空'); vc.component.contractCreateFeeInfo.contracts = []; vc.component.contractCreateFeeInfo.total = 0; vc.component.contractCreateFeeInfo.records = 0; return; } console.log('data字段:', listContractData.data); console.log('data类型:', typeof listContractData.data); console.log('data是否为数组:', Array.isArray(listContractData.data)); console.log('data长度:', listContractData.data ? listContractData.data.length : 0); console.log('total:', listContractData.total); console.log('records:', listContractData.records); // 保存数据前的状态 console.log('保存前contracts:', vc.component.contractCreateFeeInfo.contracts); vc.component.contractCreateFeeInfo.total = listContractData.total || 0; vc.component.contractCreateFeeInfo.records = listContractData.records || 0; // 强制Vue更新 - 解决响应式问题 console.log('=== 开始强制更新 ==='); vc.component.contractCreateFeeInfo.contracts = []; console.log('清空后contracts:', vc.component.contractCreateFeeInfo.contracts); setTimeout(() => { try { // 确保data是数组 var contractData = Array.isArray(listContractData.data) ? listContractData.data : []; console.log('准备赋值的data:', contractData); console.log('准备赋值的data长度:', contractData.length); // 深拷贝数据,确保响应式 var deepCopiedData = JSON.parse(JSON.stringify(contractData)); console.log('深拷贝后的数据:', deepCopiedData); vc.component.contractCreateFeeInfo.contracts = deepCopiedData; console.log('保存后contracts:', vc.component.contractCreateFeeInfo.contracts); console.log('保存后contracts长度:', vc.component.contractCreateFeeInfo.contracts.length); console.log('保存后contractCreateFeeInfo:', vc.component.contractCreateFeeInfo); // 手动触发Vue更新 if (vc.$forceUpdate) { console.log('调用$forceUpdate'); vc.$forceUpdate(); } // 确保分页组件初始化 var totalPages = Math.ceil(vc.component.contractCreateFeeInfo.total / _row) || 1; vc.emit('pagination', 'init', { total: totalPages, dataCount: vc.component.contractCreateFeeInfo.total, currentPage: _page }); vc.component.saveTempSearchData(); console.log('=== 查询完成 ==='); } catch (innerError) { console.error('处理响应数据时出错:', innerError); vc.component.contractCreateFeeInfo.contracts = []; } }, 0); } catch (error) { console.error('解析响应数据时出错:', error); vc.component.contractCreateFeeInfo.contracts = []; } }, function (errInfo, error) { console.error('请求失败处理:', errInfo, error); // 请求失败时显示空数组 vc.component.contractCreateFeeInfo.contracts = []; vc.component.contractCreateFeeInfo.total = 0; vc.component.contractCreateFeeInfo.records = 0; // 确保分页组件初始化 vc.emit('pagination', 'init', { total: 0, dataCount: 0, currentPage: _page }); } ); } catch (error) { console.error('查询合同数据时出错:', error); vc.component.contractCreateFeeInfo.contracts = []; } }, _openViewRoomCreateFee: function (_contract) { vc.jumpToPage("/#/pages/contract/contractDetail?contractId=" + _contract.contractId + "&contractCode=" + _contract.contractCode); }, _queryRoomMethod: function () { vc.component.updateCurrentPage(DEFAULT_PAGE); vc.component.listContract(DEFAULT_PAGE, DEFAULT_ROW); }, _resetRoomMethod: function () { vc.component.contractCreateFeeInfo.conditions.contractName = ""; vc.component.contractCreateFeeInfo.conditions.contractNameLike = ""; vc.component.contractCreateFeeInfo.conditions.contractCode = ""; vc.component.contractCreateFeeInfo.conditions.contractType = ""; vc.component.updateCurrentPage(DEFAULT_PAGE); vc.component.listContract(DEFAULT_PAGE, DEFAULT_ROW); }, _moreCondition: function () { if (vc.component.contractCreateFeeInfo.moreCondition) { vc.component.contractCreateFeeInfo.moreCondition = false; } else { vc.component.contractCreateFeeInfo.moreCondition = true; } }, _toOwnerPayFee: function (_ContractFeeInfo) { vc.jumpToPage('/#/pages/property/owePayFeeOrder?payObjId=' + _ContractFeeInfo.contractId + '&payObjType=7777&contractName=' + _ContractFeeInfo.contractName); }, _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) { let _json = JSON.parse(json); if (_json.code == 0) { vc.jumpToPage('/#/pages/property/feeManualCollectionManage'); vc.toast("保存成功"); return; } else { vc.toast(_json.msg); } }, function (errInfo, error) { console.log('请求失败处理'); vc.message(errInfo); } ); }, updateCurrentPage: function (page) { vc.component.currentPage = page; }, saveTempSearchData: function () { let conditions = vc.component.contractCreateFeeInfo.conditions; vc.saveData(TEMP_SEARCH, { conditions: conditions, currentPage: vc.component.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); }, _viewContract: function (_contract) { vc.jumpToPage("/#/pages/common/contractApplyDetail?contractId=" + _contract.contractId); }, _openContractCreateFeeAddModal: function (_room, _isMore) { console.log("look here"); console.log(_room); console.log(_isMore); vc.emit('contractCreateFeeAdd', 'openContractCreateFeeAddModal', { isMore: _isMore, contract: _room }); }, // 打开导入弹窗 _importContract: function () { vc.emit('importContract', 'openImportContractModal', {}); } } }); })(window.vc);