sf-batch-import-dialog 批量导入组件

sf-batch-import-dialog 介绍

1.该组件提供一个.xlsx模板文件下载和.xlsx文件解析的功能;
2.读取.xlsx文件时对有验证规则的属性进行验证,含有未通过的数据时,将无法进行提交。
3.当属性showErrorTable为true时,默认会将错误的数据前10条通过table方式展示,并对出错的列进行高亮显示,鼠标悬浮时会有报错信息提示;

sf-batch-import-dialog Attributes

参数 说明 类型 是否为必传参数 可选值 默认值
visible 是否显示 BatchImportDialog,支持.sync 修饰符 Boolean 必传 ---- false
title BatchImportDialog 的标题 String 必传 ---- 批量导入
templateName 被下载模板的文件名称(文件所在路径默认在public/static/ExcelTpl/下) String 必传 ---- ------
templateDownloadName 模板下载后的名字 String 可选 ---- undefined.xlsx
xlsxSettings 导入Excel文件时设置其读取的行和列 Object 必传 ---- ------
importAction 传入一个post请求方法 ,将转化后的Excel数据在保存时提交到数据库中,新增数据 Function 必传 ---- -----
showErrorTable 是否显示错误数据的表格 Boolean 可选 ---- false
maxErrorCount 最大显示异常条数 Number 可选 ---- 10

sf-batch-import-dialog Events

事件名 说明 参数
success 保存数据成功后触发的事件 -
fail 有数据验证出错时触发的事件 -
success 导入文件解析异常时触发的事件 -

sf-batch-import-dialog 组件使用

<template>
  <sf-batch-import-dialog
    v-if="importDialogVisible"
    :visible.sync="importDialogVisible"
    :import-action="importData"
    template-name="USER.xlsx"
    :template-download-name="`用户导入模板${new Date().getTime()}.xlsx`"
    :xlsx-settings="batchImportSetting"
    show-error-table
    @success="search"
  ></sf-batch-import-dialog>
</template>

<script >
import {
  importData
} from '@/api/XXX.js'

export default {
  data() {
    return {
      importData,
      importDialogVisible: false
     }
  },
  computed: {
    /**
       * 批量导入设定
       */
      batchImportSetting() {
        return {
          // Sheet页的下标
          sheetIndex: 0,
          // 起始行号
          startRow: 3,
          // 导入列设置
          columns: [
          {
            // 封装的数据结构属性
            propName: 'loginName',
            // Excel的列
            colName: 'B',
            label: this.$L_Label('loginName')
          },
          {
            propName: 'realName',
            colName: 'C',
            label: this.$L_Label('realName')
          },
          {
            propName: 'password',
            colName: 'D',
            label: this.$L_Label('password')
          },
          {
            propName: 'age',
            colName: 'E',
            label: this.$L_Label('age')
          },
          {
            propName: 'gender',
            colName: 'F',
            label: this.$L_Label('gender')
          },
          {
            propName: 'tel',
            colName: 'G',
            label: this.$L_Label('tel'),
            validator: val => {
              if (isPhoneNumber(val)) {
                return
              }
              return this.$L_Msg('telNotCorrect')
            }
          },
          {
            propName: 'mail',
            colName: 'H',
            label: this.$L_Label('mail'),
            validator: val => {
              if (isEmail(val)) {
                return
              }
              return this.$L_Msg('mailNotCorrect')
            }
          }
        ]
      }
    }
  },
  methods: {
    openImport() {
      this.importDialogVisible = true
    },
    /**
     * 检索
     */
    search() {
    }
  }
}
</script>
控制组件打开的按钮

组件使用效果

sf-batch-import-dialog对话框及错误数据行的显示

组件使用效果

Copyright © 2022. 恩梯梯数据(中国)信息技术有限公司. all right reserved,powered by Gitbook该文件修订时间: 2022-02-28 15:10:28

results matching ""

    No results matching ""