+ imports
This commit is contained in:
parent
258457e2bd
commit
b6c65a63f1
7 changed files with 123 additions and 0 deletions
1
imports/imports.go
Normal file
1
imports/imports.go
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
package imports
|
||||||
41
imports/types.go
Normal file
41
imports/types.go
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
package imports
|
||||||
|
|
||||||
|
import "github.com/yaoapp/gou"
|
||||||
|
|
||||||
|
// PreviewAuto 一直显示
|
||||||
|
const PreviewAuto = "auto"
|
||||||
|
|
||||||
|
// PreviewAlways 一直显示
|
||||||
|
const PreviewAlways = "always"
|
||||||
|
|
||||||
|
// PreviewNever 从不显示
|
||||||
|
const PreviewNever = "never"
|
||||||
|
|
||||||
|
// Imports 数据导入
|
||||||
|
type Imports struct {
|
||||||
|
Title string `json:"title,omitempty"` // 导入名称
|
||||||
|
Process *gou.Process `json:"process"` // 处理器名称
|
||||||
|
Columns []Column `json:"columns"` // 字段列表
|
||||||
|
Option Option `json:"option,omitempty"` // 导入配置项
|
||||||
|
}
|
||||||
|
|
||||||
|
// Column 导入字段定义
|
||||||
|
type Column struct {
|
||||||
|
Label string `json:"label"` // 字段标签
|
||||||
|
Name string `json:"name"` // 字段名称
|
||||||
|
Match []string `json:"match,omitempty"` // 匹配建议
|
||||||
|
Rules []gou.Process `json:"rules,omitempty"` // 清洗规则定义
|
||||||
|
Nullable bool `json:"nullable,omitempty"` // 是否可以为空
|
||||||
|
|
||||||
|
Key string // 字段键名 Object Only
|
||||||
|
IsArray bool // 字段是否为 Array
|
||||||
|
IsObject bool // 字段是否为 Object
|
||||||
|
}
|
||||||
|
|
||||||
|
// Option 导入配置项定
|
||||||
|
type Option struct {
|
||||||
|
AutoMatching bool `json:"autoMatching,omitempty"` // 是否自动匹配已设定模板
|
||||||
|
ChunkSize int `json:"chunkSize,omitempty"` // 每次处理记录数量
|
||||||
|
MappingPreview string `json:"mappingPreview,omitempty"` // 显示字段映射界面方式 auto 匹配模板失败显示, always 一直显示, never 不显示
|
||||||
|
DataPreview string `json:"dataPreview,omitempty"` // 数据预览界面方式 auto 有异常数据时显示, always 一直显示, never 不显示
|
||||||
|
}
|
||||||
BIN
tests/imports/assets/multiple-columns.xlsx
Normal file
BIN
tests/imports/assets/multiple-columns.xlsx
Normal file
Binary file not shown.
BIN
tests/imports/assets/multiple.xlsx
Normal file
BIN
tests/imports/assets/multiple.xlsx
Normal file
Binary file not shown.
5
tests/imports/assets/simple.csv
Normal file
5
tests/imports/assets/simple.csv
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
订单号,姓名,手机,性别,年龄,商品名称,数量,单价,总价,备注
|
||||||
|
SN202101120018,张三,13211000011,男,26,彩绘湖北地图,3,65.5,196.5,
|
||||||
|
,李四,13211000011,男,42,景祐遁甲符应经,1,34.8,34.8,
|
||||||
|
SN202101120019,王二麻子,13410001998,男,51,太极先天后天三图说,1,24.35,72.85,孔夫子二手交易
|
||||||
|
SN202101120019,王二麻子,13410001998,男,51,五要奇书,1,48.5,72.85,孔夫子二手交易
|
||||||
|
BIN
tests/imports/assets/simple.xlsx
Normal file
BIN
tests/imports/assets/simple.xlsx
Normal file
Binary file not shown.
76
tests/imports/manu.imp.json
Normal file
76
tests/imports/manu.imp.json
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
"title": "导入订单数据",
|
||||||
|
"process": "flows.order.Import",
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"label": "订单号",
|
||||||
|
"name": "order_sn",
|
||||||
|
"match": ["订单号", "订单", "order_sn", "id"],
|
||||||
|
"rules": ["scripts.rules.order_sn"],
|
||||||
|
"primary": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "用户",
|
||||||
|
"name": "user.name",
|
||||||
|
"match": ["用户名称", "姓名", "user_id"],
|
||||||
|
"rules": ["scripts.rules.FmtUser"],
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "性别",
|
||||||
|
"name": "user.sex",
|
||||||
|
"match": ["性别", "gender", "sex"],
|
||||||
|
"rules": ["scripts.rules.FmtUser"],
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "年龄",
|
||||||
|
"name": "user.age",
|
||||||
|
"match": ["年龄", "age"],
|
||||||
|
"rules": ["scripts.rules.FmtUser"],
|
||||||
|
"nullable": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "手机号",
|
||||||
|
"name": "mobile",
|
||||||
|
"match": ["手机号", "手机", "mobile"],
|
||||||
|
"rules": ["scripts.rules.mobile"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "商品",
|
||||||
|
"name": "skus[*].name",
|
||||||
|
"match": ["商品", "商品名称", "goods", "skus", "sku_id", "goods_id"],
|
||||||
|
"rules": ["scripts.rules.FmtGoods"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "数量",
|
||||||
|
"name": "skus[*].amount",
|
||||||
|
"match": ["数量", "amount"],
|
||||||
|
"rules": ["scripts.rules.FmtGoods"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "单价",
|
||||||
|
"name": "skus[*].price",
|
||||||
|
"match": ["单价", "price", "价格"],
|
||||||
|
"rules": ["scripts.rules.FmtGoods"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "总价",
|
||||||
|
"name": "total",
|
||||||
|
"match": ["总价", "total", "total_price"],
|
||||||
|
"rules": ["scripts.rules.FmtGoods"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "备注",
|
||||||
|
"name": "remark",
|
||||||
|
"match": ["备注", "说明", "其他"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"option": {
|
||||||
|
"autoMatching": true,
|
||||||
|
"chunkSize": 500,
|
||||||
|
"logging": "error",
|
||||||
|
"mappingPreview": "auto",
|
||||||
|
"dataPreview": "auto"
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue