diff --git a/ruoyi-ui/src/views/prod/products/index.vue b/ruoyi-ui/src/views/prod/products/index.vue index 7b28f61e..6c2a7630 100644 --- a/ruoyi-ui/src/views/prod/products/index.vue +++ b/ruoyi-ui/src/views/prod/products/index.vue @@ -551,31 +551,47 @@ export default { // 提交文件表单 submitFileForm() { - console.log('处理文件提交'); if (!this.selectedFile) { this.$message.error('请先选择Excel文件'); return; } - // 直接解析选择的文件 - parseExcelFile(this.selectedFile).then(data => { - console.log('解析Excel成功', data); - if (data.length <= 1) { - this.$message.error('导入数据为空'); - return; - } - - // 第一行是标题,从第二行开始 - this.asinList = data.slice(1).map(row => row[0]).filter(asin => asin); - this.upload.open = false; - this.$message.success(`成功解析到${this.asinList.length}个ASIN`); - - // 保存ASIN列表到缓存 - this.saveToCache(); - }).catch(err => { - console.error('解析Excel失败', err); - this.$message.error('解析Excel失败: ' + err); - }); + try { + // 直接解析选择的文件 + parseExcelFile(this.selectedFile).then(data => { + if (!data || data.length <= 1) { + this.$message.error('导入数据为空'); + return; + } + + // 第一行是标题,从第二行开始 + const asinList = data.slice(1) + .map(row => row[0]) + .filter(asin => asin && typeof asin === 'string' && asin.trim() !== ''); + + if (asinList.length === 0) { + this.$message.error('未找到有效的ASIN数据'); + return; + } + + this.asinList = asinList; + this.$message.success(`成功解析到${this.asinList.length}个ASIN`); + + // 保存ASIN列表到缓存 + this.saveToCache(); + + // 关闭对话框并清除文件选择 + this.upload.open = false; + this.$refs.upload && this.$refs.upload.clearFiles(); + this.selectedFile = null; + }).catch(err => { + console.error('解析Excel失败', err); + this.$message.error('解析Excel失败: ' + (err.message || err)); + }); + } catch (error) { + console.error('处理文件提交出错', error); + this.$message.error('处理文件失败: ' + (error.message || error)); + } }, // 处理爬取