/**
|
* 导入电话表组件
|
* 功能:实现电话表的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);
|