Просмотр исходного кода

feat: show love value import row errors

Developer 4 недель назад
Родитель
Сommit
f5cff4d473
1 измененных файлов с 26 добавлено и 6 удалено
  1. 26 6
      src/views/modules/member/query.vue

+ 26 - 6
src/views/modules/member/query.vue

@@ -39,9 +39,9 @@
               </el-upload>
               <el-button type="default" @click="handleDownloadLove" style="margin-left: 10px;" v-if="$hasPermission('core:appuser:downloadLove')">下载爱心值导入模板</el-button>
               <el-upload v-if="$hasPermission('core:appuser:importLove')"
-                :action="uploadUrl2"
-                :headers="uploadHeaders"
-                :on-success="uploadFileSuccess"
+                :action="uploadUrl2"
+                :headers="uploadHeaders"
+                :on-success="uploadLoveValueSuccess"
                 :before-upload="beforeAvatarUpload"
                 :limit="1">
                 <el-button type="primary" style="margin-left: 10px;">导入爱心值</el-button>
@@ -186,14 +186,34 @@ export default {
       }
       return isXls || isXlsx
     },
-    uploadFileSuccess (response, file, fileList) {
+    uploadFileSuccess (response, file, fileList) {
       if (response && response.code === 0) {
         this.$message.success('导入成功!')
         this.getList()
       } else {
         this.$message.error(response.msg || '文件上传失败!')
-      }
-    },
+        }
+    },
+    uploadLoveValueSuccess (response, file, fileList) {
+      if (!response || response.code !== 0) {
+        this.$message.error((response && response.msg) || '文件上传失败!')
+        return
+      }
+      const data = response.data || {}
+      const failures = data.failures || []
+      if (failures.length > 0) {
+        const details = failures.map(item => `第${item.rowNumber}行:${item.reason}`).join('<br>')
+        this.$alert(`成功导入${data.successCount || 0}行,失败${data.failureCount || failures.length}行。<br>${details}`, '爱心值导入结果', {
+          dangerouslyUseHTMLString: true,
+          confirmButtonText: '知道了'
+        })
+      } else {
+        this.$message.success(`导入成功,共${data.successCount || 0}行!`)
+      }
+      if ((data.successCount || 0) > 0) {
+        this.getList()
+      }
+    },
     handleAdd () {
       this.$router.push({ name: 'memberAdd' })
     },