zhangjq
2026-01-27 6f51f667ae7b13dca029045c221d0b1722cf98df
public/components/property/importOwnerRoom/importOwnerRoom.js
@@ -9,7 +9,6 @@
        _initMethod: function() {},
        _initEvent: function() {
            vc.on('importOwnerRoom', 'openImportOwnerRoomModal', function(_param) {
                $that.clearAddFeeConfigInfo();
                $('#importOwnerRoomModel').modal('show');
            });
        },
@@ -40,60 +39,87 @@
                    vc.toast('不是有效的Excel格式');
                    return;
                }
                if (!$that.checkOwnerFileSize($that.importOwnerRoomInfo.excelTemplate.size)) {
                    vc.toast('Excel文件大小不能超过20M');
                    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);
                param.append('communityId', $that.importOwnerRoomInfo.communityId);
                param.append('importAdapt', "importRoomOwnerV2");
                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参数(大写形式),与车辆导入保持一致
                // param.append('feeTypeCd', vc.component.importRoomFeeInfo.feeTypeCd);
                // param.append('objType', $that.importRoomFeeInfo.objType);
                // 上传文件并处理响应,与车辆导入保持一致
                vc.http.upload(
                    'assetImport',
                    'importData',
                    param, {
                        emulateJSON: true,
                        //添加请求头
                    'assetImport', // 模块名
                    'importData', // 方法名
                    param, // 参数
                    {
                        // 移除emulateJSON,避免与Content-Type冲突
                        headers: {
                            "Content-Type": "multipart/form-data"
                        }
                    },
                    function(json, res) {
                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                        // 成功回调
                        console.log('导入请求成功响应:', json); // 打印完整的响应数据到console
                        let _json = JSON.parse(json);
                        console.log('解析后的响应数据:', _json); // 打印解析后的响应数据到console
                        if (_json.code == 0) {
                            //关闭model
                            // vc.toast(_json.data);
                            $('#importOwnerRoomModel').modal('hide');
                            $that.clearAddFeeConfigInfo();
                            // 导入成功
                            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;
                        }
                        vc.toast(_json.msg, 10000);
                        // 导入失败,显示错误信息
                        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('请求失败处理');
                        vc.toast(errInfo, 10000);
                        // 失败回调
                        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() {
                // var _feeTypeCds = $that.importRoomFeeInfo.feeTypeCds;
                $that.importOwnerRoomInfo = {
                    communityId: vc.getCurrentCommunity().communityId,
                    excelTemplate: ''
                        // feeTypeCd: '',
                        // feeTypeCds: [],
                        // objType: '3333'
                };
                // $that.importRoomFeeInfo.feeTypeCds = _feeTypeCds;
            },
            _changeFeeTypeCd: function(_feeTypeCd) {},
            getExcelTemplate: function(e) {
                //console.log("getExcelTemplate 开始调用")
                $that.importOwnerRoomInfo.excelTemplate = e.target.files[0];
            },
            checkOwnerFileType: function(fileType) {
@@ -115,4 +141,4 @@
            }
        }
    });
})(window.vc);
})(window.vc);