/** * 导入电话表组件 * 功能:实现电话表的Excel文件导入功能 * 后端API:/app/phoneBillFlowInfo/insertPhoneBillFlows */ (function (vc) { vc.extends({ data: { // 导入电话表信息对象 importPhoneBillFlowInfo: { // 文件名 fileName: '', // 文件对象 file: null } }, /** * 初始化方法 * 功能:初始化组件 */ _initMethod: function () { }, /** * 初始化事件监听 * 功能:监听组件间的事件通信 */ _initEvent: function () { // 监听打开导入电话表模态框事件 vc.on('importPhoneBillFlow', 'openImportPhoneBillFlowModal', function () { // 重置表单数据 $that.clearImportPhoneBillFlowInfo(); // 打开模态框 $('#importPhoneBillFlowModal').modal('show'); }); }, methods: { /** * 选择文件 * 功能:触发文件选择对话框 */ _selectFile: function () { $that.$refs.file.click(); }, /** * 文件选择变化 * 功能:处理文件选择事件,更新文件名 */ _fileChange: function (e) { let files = e.target.files; if (files && files.length > 0) { // 移除文件大小限制检查 // // 检查文件大小(10MB) // if (file.size > 10 * 1024 * 1024) { // vc.toast('文件大小不能超过10MB'); // return; // } // 检查文件类型 let fileName = files[0].name; let fileExt = fileName.substring(fileName.lastIndexOf('.') + 1).toLowerCase(); if (fileExt !== 'xlsx' && fileExt !== 'xls') { vc.toast('只支持.xlsx和.xls格式的文件'); return; } // 更新文件名和文件对象 $that.importPhoneBillFlowInfo.fileName = fileName; $that.importPhoneBillFlowInfo.file = files[0]; } }, /** * 导入电话表数据 * 功能:验证文件并调用后端API导入电话表 */ _importPhoneBillFlow: function () { // 验证文件是否选择 if (!$that.importPhoneBillFlowInfo.file) { vc.toast('请选择要导入的Excel文件'); return; } // 创建FormData对象 let formData = new FormData(); // 添加文件 formData.append('file', $that.importPhoneBillFlowInfo.file); // 添加小区ID formData.append('communityId', vc.getCurrentCommunity().communityId); // 发送POST请求导入电话表数据 vc.http.upload('/phoneBillFlowInfo/insertPhoneBillFlows', formData, function (json, res) { // 解析响应数据 let _json = JSON.parse(json); // 检查响应状态 if (_json.code === 0) { // 导入成功,关闭模态框 $('#importPhoneBillFlowModal').modal('hide'); // 刷新电话表列表 vc.emit('phoneMeterManage', 'listPhoneBillFlow', {}); // 显示成功提示 vc.toast('导入成功,共导入 ' + _json.data + ' 条记录'); return; } // 导入失败,显示错误提示 vc.toast(_json.msg); }, function (errInfo, error) { // 错误处理 console.log('请求失败处理'); vc.toast('导入失败'); } ); }, /** * 清空导入电话表表单数据 * 功能:重置表单为初始状态 */ clearImportPhoneBillFlowInfo: function () { // 重置表单数据 $that.importPhoneBillFlowInfo = { fileName: '', file: null }; // 重置文件输入 if ($that.$refs.file) { $that.$refs.file.value = ''; } } } }); })(window.vc);