(function(vc) { vc.extends({ data: { importOwnerRoomInfo: { communityId: vc.getCurrentCommunity().communityId, excelTemplate: '' } }, _initMethod: function() {}, _initEvent: function() { vc.on('importOwnerRoom', 'openImportOwnerRoomModal', function(_param) { $('#importOwnerRoomModel').modal('show'); }); }, methods: { importOwnerRoomValidate() { return vc.validate.validate({ importOwnerRoomInfo: $that.importOwnerRoomInfo }, { 'importOwnerRoomInfo.communityId': [{ limit: "required", param: "", errInfo: "数据异常还没有入驻小区" }], 'importOwnerRoomInfo.excelTemplate': [{ limit: "required", param: "", errInfo: "文件不能为空" }] }); }, _importData: function() { if (!$that.importOwnerRoomValidate()) { vc.toast(vc.validate.errInfo); return; } // 导入数据 if (!$that.checkOwnerFileType($that.importOwnerRoomInfo.excelTemplate.name.split('.')[1])) { vc.toast('不是有效的Excel格式'); return; } // 移除文件大小限制检查 // if (!$that.checkOwnerFileSize($that.importOwnerRoomInfo.excelTemplate.size)) { // vc.toast('Excel文件大小不能超过20M'); // return; // } // 使用实际的userId,如果没有则使用默认值 let userId = vc.getData() && vc.getData().userInfo && vc.getData().userInfo.userId ? vc.getData().userInfo.userId : '-1'; // 构建表单数据,与车辆导入保持一致 var param = new FormData(); param.append("uploadFile", $that.importOwnerRoomInfo.excelTemplate); // 添加Excel文件 param.append('communityId', $that.importOwnerRoomInfo.communityId); // 添加小区ID param.append('importAdapt', "importRoomOwnerV2"); // 指定使用的导入适配器 param.append('userId', userId); // 添加userId参数 param.append('USER-ID', userId); // 添加USER-ID参数(大写形式),与车辆导入保持一致 // 上传文件并处理响应,与车辆导入保持一致 vc.http.upload( 'assetImport', // 模块名 'importData', // 方法名 param, // 参数 { // 移除emulateJSON,避免与Content-Type冲突 headers: { "Content-Type": "multipart/form-data" } }, function(json, res) { // 成功回调 console.log('导入请求成功响应:', json); // 打印完整的响应数据到console let _json = JSON.parse(json); console.log('解析后的响应数据:', _json); // 打印解析后的响应数据到console if (_json.code == 0) { // 导入成功 vc.toast("处理成功"); console.log('导入成功,logId:', _json.data.logId); // 打印logId到console $('#importOwnerRoomModel').modal('hide'); // 关闭模态框 // 跳转到导入日志详情页面 vc.jumpToPage('/#/pages/property/assetImportLogDetail?logId=' + _json.data.logId + '&logType=importRoomOwnerV2'); return; } // 导入失败,显示错误信息 console.log('导入失败,错误信息:', _json.msg); // 打印失败错误信息到console // 确保错误信息有意义,避免显示"数据有误: null" let errorMsg = _json.msg; if (!errorMsg || errorMsg === null || errorMsg === undefined || errorMsg.includes('null') || errorMsg.includes('undefined')) { errorMsg = '导入失败,请检查数据格式是否正确,或联系管理员查看详细日志'; } // 优化错误信息显示,替换不友好的后端错误 if (errorMsg.includes('sheet 未找到') || errorMsg.includes('excel sheet')) { errorMsg = '导入失败:未找到正确的sheet,请确保Excel文件中包含名称为"住宅物业费导入新模板"或"商铺物业费导入新模板"的sheet,且名称正确无空格'; } vc.toast(errorMsg, 10000); }, function(errInfo, error) { // 失败回调 console.log('请求失败处理,原始错误信息:', errInfo); // 打印原始错误信息到console console.log('请求失败,错误对象:', error); // 打印完整的错误对象到console // 确保错误信息有意义,避免显示"null"或空错误 let errorMsg = errInfo; if (!errorMsg || errorMsg === null || errorMsg === undefined || errorMsg.trim() === '') { errorMsg = '导入失败,请检查文件格式或网络连接,或联系管理员'; } // 优化网络错误信息 if (errorMsg.includes('SocketException') || errorMsg.includes('timeout') || errorMsg.includes('Network Error')) { errorMsg = '导入失败:网络连接异常,请检查网络连接或稍后重试'; } console.log('最终显示的错误信息:', errorMsg); // 打印最终显示的错误信息到console vc.toast(errorMsg, 10000); // 关闭模态框 $('#importOwnerRoomModel').modal('hide'); }); }, clearAddFeeConfigInfo: function() { $that.importOwnerRoomInfo = { communityId: vc.getCurrentCommunity().communityId, excelTemplate: '' }; }, _changeFeeTypeCd: function(_feeTypeCd) {}, getExcelTemplate: function(e) { $that.importOwnerRoomInfo.excelTemplate = e.target.files[0]; }, checkOwnerFileType: function(fileType) { const acceptTypes = ['xlsx', 'xls']; for (var i = 0; i < acceptTypes.length; i++) { if (fileType === acceptTypes[i]) { return true; } } return false; }, checkOwnerFileSize: function(fileSize) { //2M const MAX_SIZE = 20 * 1024 * 1024; if (fileSize > MAX_SIZE) { return false; } return true; } } }); })(window.vc);