From 2eab29f4289b3d04cb14190af36bb8edc18abda7 Mon Sep 17 00:00:00 2001 From: hoteas Date: Mon, 27 Dec 2021 14:01:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- code/makecode.go | 47 +- example/config/app.json | 1866 ++++++++++++++--- .../27/a24a4bc4d8f4947de0eed6bcf9b7186c.jpg | Bin 0 -> 50966 bytes 3 files changed, 1553 insertions(+), 360 deletions(-) create mode 100644 example/tpt/file/2021/12/27/a24a4bc4d8f4947de0eed6bcf9b7186c.jpg diff --git a/code/makecode.go b/code/makecode.go index a2921d3..ecda328 100644 --- a/code/makecode.go +++ b/code/makecode.go @@ -403,26 +403,29 @@ func (that *MakeCode) Db2JSON(name string, path string, db *db.HoTimeDB) { if oldTableName == "parent" { oldTableName = fk } + //如果本身匹配则不再继续精简匹配 + if that.TableConfig[oldTableName] == nil { - //如果依然找不到则查询system_org是否存在 - if that.TableConfig[DefaultMenuParentName+"_"+oldTableName] != nil { - oldTableName = DefaultMenuParentName + "_" + oldTableName - } + //如果依然找不到则查询system_org是否存在 + if that.TableConfig[DefaultMenuParentName+"_"+oldTableName] != nil { + oldTableName = DefaultMenuParentName + "_" + oldTableName + } - //字段有动词前缀,自动进行解析 - prefixColumn := strings.Index(oldTableName, "_") + //字段有动词前缀,自动进行解析 + prefixColumn := strings.Index(oldTableName, "_") - //sys_org_id oldTableName即为sys此处判断为org表存在 + //sys_org_id oldTableName即为sys此处判断为org表存在 - if prefixColumn > -1 && that.TableConfig[oldTableName[prefixColumn+1:]] != nil { - oldTableName = oldTableName[prefixColumn+1:] - } - if prefixColumn >= len(oldTableName) { - prefixColumn = -1 - } - //如果依然找不到则查询system_org是否存在 - if prefixColumn > -1 && that.TableConfig[DefaultMenuParentName+"_"+oldTableName[prefixColumn+1:]] != nil { - oldTableName = DefaultMenuParentName + "_" + oldTableName[prefixColumn+1:] + if prefixColumn > -1 && that.TableConfig[oldTableName[prefixColumn+1:]] != nil { + oldTableName = oldTableName[prefixColumn+1:] + } + if prefixColumn >= len(oldTableName) { + prefixColumn = -1 + } + //如果依然找不到则查询system_org是否存在 + if prefixColumn > -1 && that.TableConfig[DefaultMenuParentName+"_"+oldTableName[prefixColumn+1:]] != nil { + oldTableName = DefaultMenuParentName + "_" + oldTableName[prefixColumn+1:] + } } //普通方式查询不到,则转换为大型项目模块划分,暂时只支持一级模块划分, @@ -571,7 +574,12 @@ func (that *MakeCode) Add(table string, req *http.Request) Map { if v.Get("add") == nil || v.GetBool("add") { if len(req.Form[v.GetString("name")]) == 0 { - return nil + if v.GetBool("must") { + return nil + } else { + continue + } + } reqValue := req.FormValue(v.GetString("name")) if (reqValue == "" || reqValue == "null") && strings.Contains(v.GetString("name"), "id") { @@ -680,6 +688,11 @@ func (that *MakeCode) Search(table string, userData Map, req *http.Request, db * hasUser = true } + reqValue := req.FormValue(v.GetString("name")) + if reqValue != "" { + data[table+"."+v.GetString("name")] = reqValue + } + } else { reStr += table + "." + v.GetString("name") + "," } diff --git a/example/config/app.json b/example/config/app.json index a8b816e..2c054c2 100644 --- a/example/config/app.json +++ b/example/config/app.json @@ -1,5 +1,5 @@ { - "id": "ede7cc05f2e6c63b4572883f4b9a9853", + "id": "a549346388b58195866106b5f2072b26", "label": "HoTime管理平台", "menus": [ { @@ -7,17 +7,40 @@ "label": "平台首页", "name": "HelloWorld" }, + { + "icon": "el-icon-setting", + "label": "生产成品", + "menus": [ + { + "label": "生产成品", + "table": "produce_product" + }, + { + "label": "生产计划", + "table": "produce" + }, + { + "label": "消耗原材料", + "table": "produce_material" + }, + { + "label": "生产计划", + "table": "produce" + } + ], + "name": "sys:produce" + }, { "icon": "el-icon-setting", "label": "系统管理", "menus": [ { - "label": "角色管理", - "table": "role" + "label": "客户管理", + "table": "user" }, { - "label": "群众管理", - "table": "user" + "label": "部门管理", + "table": "org" }, { "label": "人员管理", @@ -28,19 +51,61 @@ "table": "category" }, { - "label": "排号计划", - "table": "ctg_order_date" + "label": "角色管理", + "table": "role" }, { - "label": "预约管理", - "table": "order" - }, - { - "label": "部门管理", - "table": "org" + "label": "炉温监控", + "table": "furnace_temperature" } ], "name": "sys" + }, + { + "icon": "el-icon-setting", + "label": "抽检管理", + "menus": [ + { + "label": "抽检管理", + "table": "product_spot_check" + }, + { + "label": "成品管理", + "table": "product" + }, + { + "label": "质检管理", + "table": "product_check" + }, + { + "label": "产线管理", + "table": "product_line" + }, + { + "label": "成品管理", + "table": "product" + } + ], + "name": "sys:product" + }, + { + "icon": "el-icon-setting", + "label": "原材料管理", + "menus": [ + { + "label": "原材料管理", + "table": "material" + }, + { + "label": "出入库管理", + "table": "material_inout" + }, + { + "label": "原材料管理", + "table": "material" + } + ], + "name": "sys:material" } ], "name": "admin", @@ -284,126 +349,7 @@ "type": "select" }, { - "label": "周一上午", - "name": "am1", - "sortable": true, - "type": "number" - }, - { - "label": "周二上午", - "name": "am2", - "sortable": true, - "type": "number" - }, - { - "label": "周三上午", - "name": "am3", - "sortable": true, - "type": "number" - }, - { - "label": "周四上午", - "name": "am4", - "sortable": true, - "type": "number" - }, - { - "label": "周五上午", - "name": "am5", - "sortable": true, - "type": "number" - }, - { - "label": "周一下午", - "name": "pm1", - "sortable": true, - "type": "number" - }, - { - "label": "周二下午", - "name": "pm2", - "sortable": true, - "type": "number" - }, - { - "label": "周三下午", - "name": "pm3", - "sortable": true, - "type": "number" - }, - { - "label": "周四下午", - "name": "pm4", - "sortable": true, - "type": "number" - }, - { - "label": "周五下午", - "name": "pm5", - "sortable": true, - "type": "number" - }, - { - "label": "办理地址", - "list": false, - "must": false, - "name": "address", - "type": "text" - }, - { - "label": "叫号起始号", - "name": "startnum", - "sortable": true, - "type": "number" - }, - { - "label": "办理窗口", - "name": "window", - "type": "text" - }, - { - "label": "天府通办APP端", - "must": true, - "name": "tftbapp", - "options": [ - { - "name": "未启用", - "value": "0" - }, - { - "name": "已启用", - "value": "1" - } - ], - "sortable": true, - "type": "select" - }, - { - "label": "天府通办web端", - "must": true, - "name": "tftbweb", - "options": [ - { - "name": "未启用", - "value": "0" - }, - { - "name": "已启用", - "value": "1" - } - ], - "sortable": true, - "type": "select" - }, - { - "label": "图标", - "list": false, - "must": false, - "name": "icon", - "type": "image" - }, - { - "label": "关联部门", + "label": "部门", "link": "org", "name": "org_id", "sortable": true, @@ -442,50 +388,6 @@ "type": "search", "value": null }, - { - "label": "天府通办APP端", - "must": true, - "name": "tftbapp", - "options": [ - { - "name": "未启用", - "value": "0" - }, - { - "name": "已启用", - "value": "1" - }, - { - "name": "全部", - "value": null - } - ], - "sortable": true, - "type": "select", - "value": null - }, - { - "label": "天府通办web端", - "must": true, - "name": "tftbweb", - "options": [ - { - "name": "未启用", - "value": "0" - }, - { - "name": "已启用", - "value": "1" - }, - { - "name": "全部", - "value": null - } - ], - "sortable": true, - "type": "select", - "value": null - }, { "label": "状态", "list": false, @@ -520,7 +422,7 @@ "value": "name" }, { - "label": "关联部门", + "label": "部门", "link": "org", "name": "org_id", "type": "tree", @@ -529,7 +431,7 @@ ], "table": "category" }, - "ctg_order_date": { + "furnace_temperature": { "auth": [ "add", "delete", @@ -547,10 +449,22 @@ "type": "number" }, { - "label": "名称", + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "日期", "name": "name", "type": "text" }, + { + "label": "炉温照片", + "list": false, + "must": false, + "name": "img", + "type": "image" + }, { "add": false, "edit": false, @@ -590,38 +504,15 @@ "type": "select" }, { - "label": "预约日期", - "name": "date", - "type": "time" - }, - { - "label": "排号起始数", - "name": "start_sn", - "sortable": true, - "type": "number" - }, - { - "label": "排号结束号", - "name": "max_sn", - "sortable": true, - "type": "number" - }, - { - "label": "当前排号", - "name": "now_sn", - "sortable": true, - "type": "number" - }, - { - "label": "类别", - "link": "category", - "name": "category_id", + "label": "产线", + "link": "product_line", + "name": "product_line_id", "sortable": true, "type": "number", "value": "name" } ], - "label": "排号计划", + "label": "炉温监控", "search": [ { "label": "请输入关键词", @@ -666,18 +557,11 @@ ], "type": "select", "value": null - }, - { - "label": "类别", - "link": "category", - "name": "category_id", - "type": "tree", - "value": "name" } ], - "table": "ctg_order_date" + "table": "furnace_temperature" }, - "order": { + "material": { "auth": [ "add", "delete", @@ -695,113 +579,140 @@ "type": "number" }, { - "label": "预约时间", + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "原材料名称", "name": "name", "type": "text" }, { - "add": false, - "edit": false, - "label": "创建时间", + "label": "图片", "list": false, "must": false, - "name": "create_time", - "type": "time" + "name": "img", + "type": "image" }, { - "add": false, - "edit": false, - "label": "变更时间", - "must": false, - "name": "modify_time", - "type": "time" - }, - { - "label": "状态", - "list": false, - "must": true, - "name": "state", - "options": [ - { - "name": "已启用", - "value": "0" - }, - { - "name": "未启用", - "value": "1" - }, - { - "name": "异常", - "value": "2" - } - ], - "type": "select" - }, - { - "label": "预约用户", - "link": "user", - "name": "user_id", - "sortable": true, - "type": "number", - "value": "name" - }, - { - "label": "预约日期", - "name": "date", - "type": "time" - }, - { - "label": "排号", - "name": "sn", + "label": "当前数量", + "name": "count", "sortable": true, "type": "number" }, { - "label": "预约分类", - "link": "category", - "name": "category_id", + "label": "总消耗数", + "name": "used", "sortable": true, - "type": "number", - "value": "name" + "type": "number" }, { - "label": "预约状态", - "must": true, - "name": "status", - "options": [ - { - "name": "待分配", - "value": "0" - }, - { - "name": "待办结", - "value": "1" - }, - { - "name": "已办结", - "value": "2" - }, - { - "name": "已逾期", - "value": "3" - }, - { - "name": "异常", - "value": "4" - } - ], - "type": "select" + "label": "总存储数", + "name": "saved", + "sortable": true, + "type": "number" }, { - "label": "办事员", + "label": "默认添加数量", + "name": "num", + "sortable": true, + "type": "number" + }, + { + "label": "经办人", "link": "admin", "name": "admin_id", "sortable": true, "type": "number", "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "基本信息", + "list": false, + "must": false, + "name": "rule", + "type": "form" + }, + { + "label": "有效期", + "must": true, + "name": "validity", + "options": [ + { + "name": "半年", + "value": "0" + }, + { + "name": "一年", + "value": "1" + }, + { + "name": "两年", + "value": "2" + }, + { + "name": "三年", + "value": "3" + } + ], + "sortable": true, + "type": "select" + }, + { + "label": "识别数据", + "list": false, + "must": false, + "name": "content", + "type": "text" + }, + { + "label": "备注信息", + "list": false, + "must": false, + "name": "description", + "type": "text" } ], - "label": "预约管理", + "label": "原材料管理", "search": [ { "label": "请输入关键词", @@ -821,39 +732,6 @@ "type": "search", "value": null }, - { - "label": "预约状态", - "must": true, - "name": "status", - "options": [ - { - "name": "待分配", - "value": "0" - }, - { - "name": "待办结", - "value": "1" - }, - { - "name": "已办结", - "value": "2" - }, - { - "name": "已逾期", - "value": "3" - }, - { - "name": "异常", - "value": "4" - }, - { - "name": "全部", - "value": null - } - ], - "type": "select", - "value": null - }, { "label": "状态", "list": false, @@ -881,14 +759,211 @@ "value": null }, { - "label": "预约分类", - "link": "category", - "name": "category_id", - "type": "tree", - "value": "name" + "label": "有效期", + "must": true, + "name": "validity", + "options": [ + { + "name": "半年", + "value": "0" + }, + { + "name": "一年", + "value": "1" + }, + { + "name": "两年", + "value": "2" + }, + { + "name": "三年", + "value": "3" + }, + { + "name": "全部", + "value": null + } + ], + "sortable": true, + "type": "select", + "value": null } ], - "table": "order" + "table": "material" + }, + "material_inout": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "图片", + "list": false, + "must": false, + "name": "img", + "type": "image" + }, + { + "label": "出入库数量", + "name": "count", + "sortable": true, + "type": "number" + }, + { + "label": "剩余数量", + "name": "saved", + "sortable": true, + "type": "number" + }, + { + "label": "对应原材料", + "link": "material", + "name": "material_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "经办人", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "入库", + "value": "0" + }, + { + "name": "出库", + "value": "1" + }, + { + "name": "退货", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "基础信息", + "list": false, + "must": false, + "name": "rule", + "type": "form" + }, + { + "label": "关联生产计划", + "link": "produce", + "name": "produce_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "识别信息", + "list": false, + "must": false, + "name": "content", + "type": "text" + }, + { + "label": "备注信息", + "list": false, + "must": false, + "name": "description", + "type": "text" + } + ], + "label": "出入库管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "入库", + "value": "0" + }, + { + "name": "出库", + "value": "1" + }, + { + "name": "退货", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "material_inout" }, "org": { "auth": [ @@ -1040,6 +1115,1104 @@ ], "table": "org" }, + "produce": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "二维码起始编码", + "name": "sn", + "type": "text" + }, + { + "label": "计划名", + "name": "name", + "type": "text" + }, + { + "label": "对应成品", + "link": "product", + "name": "product_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "经办人", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "客户", + "link": "user", + "name": "user_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "开始时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "生产状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已完成", + "value": "0" + }, + { + "name": "待生产", + "value": "1" + }, + { + "name": "生产中", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "计划生产总量", + "name": "count", + "sortable": true, + "type": "number" + }, + { + "label": "当前已生产", + "name": "now", + "sortable": true, + "type": "number" + }, + { + "label": "计划完成时间", + "name": "finish_time", + "type": "time" + }, + { + "label": "其他规则", + "list": false, + "must": false, + "name": "rule", + "type": "form" + }, + { + "label": "抽检覆盖量", + "name": "spot_check_count", + "sortable": true, + "type": "number" + }, + { + "label": "发货抽检总覆盖量", + "name": "spot_check_used", + "sortable": true, + "type": "number" + }, + { + "label": "总抽检总覆盖量", + "name": "spot_check_saved", + "sortable": true, + "type": "number" + } + ], + "label": "生产计划", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "生产状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已完成", + "value": "0" + }, + { + "name": "待生产", + "value": "1" + }, + { + "name": "生产中", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "produce" + }, + "produce_material": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "原材料", + "link": "material", + "name": "material_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "计划使用数量", + "name": "count", + "sortable": true, + "type": "number" + }, + { + "label": "已使用数量", + "name": "used", + "sortable": true, + "type": "number" + }, + { + "label": "生产计划", + "link": "produce", + "name": "produce_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "生产状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "经办人", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + } + ], + "label": "消耗原材料", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "生产状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "produce_material" + }, + "produce_product": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "成品", + "link": "product", + "name": "product_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "生产计划", + "link": "produce", + "name": "produce_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "生产状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "炉温", + "link": "furnace_temperature", + "name": "furnace_temperature_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "生产线", + "link": "product_line", + "name": "product_line_id", + "sortable": true, + "type": "number", + "value": "name" + } + ], + "label": "生产成品", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "生产状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "produce_product" + }, + "product": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "成品名称", + "name": "name", + "type": "text" + }, + { + "label": "图片", + "list": false, + "must": false, + "name": "img", + "type": "image" + }, + { + "label": "当前数量", + "name": "count", + "sortable": true, + "type": "number" + }, + { + "label": "总发货量", + "name": "used", + "sortable": true, + "type": "number" + }, + { + "label": "总生产量", + "name": "saved", + "sortable": true, + "type": "number" + }, + { + "label": "抽检覆盖量", + "name": "spot_check_count", + "sortable": true, + "type": "number" + }, + { + "label": "发货抽检总覆盖量", + "name": "spot_check_used", + "sortable": true, + "type": "number" + }, + { + "label": "总抽检总覆盖量", + "name": "spot_check_saved", + "sortable": true, + "type": "number" + }, + { + "label": "经办人", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "抽检参数", + "list": false, + "must": false, + "name": "rule_spot_check", + "type": "form" + }, + { + "label": "抽检百分比", + "list": false, + "must": false, + "name": "spot_check_percentage", + "sortable": true, + "type": "number" + }, + { + "label": "质检参数", + "list": false, + "must": false, + "name": "rule_check", + "type": "form" + } + ], + "label": "成品管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "product" + }, + "product_check": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "图片", + "list": false, + "must": false, + "name": "img", + "type": "image" + }, + { + "label": "生产成品", + "link": "produce_product", + "name": "produce_product_id", + "sortable": true, + "type": "number", + "value": "sn" + }, + { + "label": "经办人", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "质检结论", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "基本信息", + "list": false, + "must": false, + "name": "rule", + "type": "form" + }, + { + "label": "生产计划", + "link": "produce", + "name": "produce_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "成品名称", + "link": "product", + "name": "product_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "备注信息", + "list": false, + "must": false, + "name": "description", + "type": "text" + } + ], + "label": "质检管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "质检结论", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "product_check" + }, + "product_line": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "名称", + "name": "name", + "type": "text" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "扫码枪ip地址", + "name": "ipaddr", + "type": "text" + } + ], + "label": "产线管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "状态", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "已启用", + "value": "0" + }, + { + "name": "未启用", + "value": "1" + }, + { + "name": "异常", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "product_line" + }, + "product_spot_check": { + "auth": [ + "add", + "delete", + "edit", + "info" + ], + "columns": [ + { + "add": false, + "edit": false, + "label": "ID", + "must": false, + "name": "id", + "sortable": true, + "type": "number" + }, + { + "label": "SN", + "name": "sn", + "type": "text" + }, + { + "label": "图片", + "list": false, + "must": false, + "name": "img", + "type": "image" + }, + { + "label": "成品", + "link": "product", + "name": "product_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "经办人", + "link": "admin", + "name": "admin_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "add": false, + "edit": false, + "label": "创建时间", + "list": false, + "must": false, + "name": "create_time", + "type": "time" + }, + { + "add": false, + "edit": false, + "label": "变更时间", + "must": false, + "name": "modify_time", + "type": "time" + }, + { + "label": "抽检结论", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + } + ], + "type": "select" + }, + { + "label": "基本信息", + "list": false, + "must": false, + "name": "rule", + "type": "form" + }, + { + "label": "生产计划", + "link": "produce", + "name": "produce_id", + "sortable": true, + "type": "number", + "value": "name" + }, + { + "label": "生产成品", + "link": "produce_product", + "name": "produce_product_id", + "sortable": true, + "type": "number", + "value": "sn" + }, + { + "label": "备注信息", + "list": false, + "must": false, + "name": "description", + "type": "text" + } + ], + "label": "抽检管理", + "search": [ + { + "label": "请输入关键词", + "name": "keyword", + "type": "search", + "value": null + }, + { + "label": "时间段", + "name": "daterange", + "type": "search", + "value": null + }, + { + "label": "排序", + "name": "sort", + "type": "search", + "value": null + }, + { + "label": "抽检结论", + "list": false, + "must": true, + "name": "state", + "options": [ + { + "name": "正常", + "value": "0" + }, + { + "name": "异常", + "value": "1" + }, + { + "name": "其他", + "value": "2" + }, + { + "name": "全部", + "value": null + } + ], + "type": "select", + "value": null + } + ], + "table": "product_spot_check" + }, "role": { "auth": [ "add", @@ -1102,8 +2275,10 @@ }, { "label": "规则", + "list": false, + "must": false, "name": "rule", - "type": "text" + "type": "form" } ], "label": "角色管理", @@ -1173,7 +2348,7 @@ "type": "number" }, { - "label": "编号", + "label": "SN", "name": "sn", "type": "text" }, @@ -1182,6 +2357,11 @@ "name": "name", "type": "text" }, + { + "label": "公司名称", + "name": "company", + "type": "text" + }, { "label": "手机号码", "name": "phone", @@ -1191,7 +2371,7 @@ "label": "邮箱", "list": false, "must": false, - "name": "idcard", + "name": "email", "type": "text" }, { @@ -1240,7 +2420,7 @@ "type": "time" } ], - "label": "群众管理", + "label": "客户管理", "search": [ { "label": "请输入关键词", @@ -1290,4 +2470,4 @@ "table": "user" } } -} \ No newline at end of file +} diff --git a/example/tpt/file/2021/12/27/a24a4bc4d8f4947de0eed6bcf9b7186c.jpg b/example/tpt/file/2021/12/27/a24a4bc4d8f4947de0eed6bcf9b7186c.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ebd3817e4810638cbb02f63bfb0854157b983b61 GIT binary patch literal 50966 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 Syqab%B