From cff535675c35ace797b0435704eb264e4f8589e8 Mon Sep 17 00:00:00 2001 From: donghao Date: Fri, 31 May 2024 16:50:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=A8=A1=E5=9E=8B=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E5=AE=8C=E6=88=90=E8=81=94?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/defaultApi.ts | 9 + mock/pools/businessProjectData.ts | 12 +- mock/pools/deviceGroupData.ts | 3 +- mock/pools/modelData.ts | 476 +++++++++--------- src/app.css | 1 - src/app.tsx | 2 +- .../BatchOperation/isBatchDelete.tsx | 1 - src/components/CategorizeUpdate/index.tsx | 1 - src/components/Tree/src/baseTree.css | 2 +- src/components/Tree/src/baseTree.less | 2 +- src/locales/zh-CN/model.ts | 6 +- .../BusinessModel/components/createForm.tsx | 2 +- .../components/createDeviceForm.tsx | 1 - .../ModelDetail/components/createForm.tsx | 165 +++--- src/pages/Model/ModelDetail/index.tsx | 26 +- .../ModelIndex/components/createForm.tsx | 71 +-- .../ModelIndex/components/updateForm.tsx | 164 ++++++ src/pages/Model/ModelIndex/index.tsx | 125 +++-- .../ModelRuntimeLib/components/createForm.tsx | 13 +- .../ModelRuntimeLib/components/updateForm.tsx | 0 src/pages/Model/ModelRuntimeLib/index.tsx | 33 +- .../BusinessInfo/components/algorithmCard.tsx | 2 +- src/pages/Project/BusinessProject/index.less | 1 - src/pages/User/Login/index.tsx | 2 +- src/services/business/basemodel.ts | 308 ------------ src/services/business/entity.ts | 4 +- src/services/business/file.ts | 3 +- src/services/business/model.ts | 311 +++++++++++- src/services/system/typings.d.ts | 3 +- 29 files changed, 998 insertions(+), 751 deletions(-) create mode 100644 config/defaultApi.ts create mode 100644 src/pages/Model/ModelIndex/components/updateForm.tsx create mode 100644 src/pages/Model/ModelRuntimeLib/components/updateForm.tsx delete mode 100644 src/services/business/basemodel.ts diff --git a/config/defaultApi.ts b/config/defaultApi.ts new file mode 100644 index 0000000..d5f6237 --- /dev/null +++ b/config/defaultApi.ts @@ -0,0 +1,9 @@ +/* + * @Author: donghao donghao@supervision.ltd + * @Date: 2024-05-31 14:46:59 + * @LastEditors: donghao donghao@supervision.ltd + * @LastEditTime: 2024-05-31 14:47:08 + * @FilePath: \general-ai-platform-web\config\defaultApi.ts + * @Description: 通用api配置 + */ +export const fileApiActionUrl = '/api/v1/file/upload'; diff --git a/mock/pools/businessProjectData.ts b/mock/pools/businessProjectData.ts index f8aedee..ea16698 100644 --- a/mock/pools/businessProjectData.ts +++ b/mock/pools/businessProjectData.ts @@ -58,7 +58,7 @@ export const mockGetBusinessProjectData = { contactWay: '17755551234', // 联系方式 validity_period: '2016-01-01 ~ 2099-12-31', remark: - '南京苏胜天信息科技有限公司成立于2016,年拥有专业计算机视觉和深度学习方面的技术团队,助力制造业工业检测实现智能化,实现企业降本增效。公司核心技术是机器视觉算法,致力于自动化成套视觉检测设备。 ', + '南京苏胜天信息科技有限公司成立于2016,年拥有专业计算机视觉和机器学习方面的技术团队,助力制造业工业检测实现智能化,实现企业降本增效。公司核心技术是机器视觉算法,致力于自动化成套视觉检测设备。 ', }, { id: '4', @@ -118,7 +118,7 @@ export const mockGetBusinessAlgorithmData = { { id: '1', name: '气泡缺陷检测', // 公司名称 - typeName: '经典算法', // 算法类型 经典算法 深度学习 + typeName: '经典算法', // 算法类型 经典算法 机器学习 version: '1.6.25', // 版本 industry: 1003, industryName: '食品、饮料、医疗卫生', // 公司所属行业 @@ -129,7 +129,7 @@ export const mockGetBusinessAlgorithmData = { { id: '2', name: '未带安全帽识别', // 公司名称 - typeName: '深度学习', // 算法类型 经典算法 深度学习 + typeName: '机器学习', // 算法类型 经典算法 机器学习 version: '3.1.09', // 版本 industry: 1004, industryName: '通用', // 公司所属行业 @@ -140,7 +140,7 @@ export const mockGetBusinessAlgorithmData = { { id: '3', name: '元器件(插件)混料检测', // 公司名称 - typeName: '经典算法', // 算法类型 经典算法 深度学习 + typeName: '经典算法', // 算法类型 经典算法 机器学习 version: '2.4.18', // 版本 industry: 1005, industryName: '手机、电子、SMT', // 公司所属行业 @@ -151,7 +151,7 @@ export const mockGetBusinessAlgorithmData = { { id: '4', name: '中心孔缺陷检测', // 公司名称 - typeName: '深度学习', // 算法类型 经典算法 深度学习 + typeName: '机器学习', // 算法类型 经典算法 机器学习 version: '1.0.89', // 版本 industry: 1006, industryName: '锂电池', // 公司所属行业 @@ -162,7 +162,7 @@ export const mockGetBusinessAlgorithmData = { { id: '5', name: '确定最佳剪切线位置', // 公司名称 - typeName: '经典算法', // 算法类型 经典算法 深度学习 + typeName: '经典算法', // 算法类型 经典算法 机器学习 version: '2.2.55', // 版本 industry: 1007, industryName: '钢铁、冶金、铸造', // 公司所属行业 diff --git a/mock/pools/deviceGroupData.ts b/mock/pools/deviceGroupData.ts index 7018a8e..f7e4b1e 100644 --- a/mock/pools/deviceGroupData.ts +++ b/mock/pools/deviceGroupData.ts @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-04-25 15:45:31 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-04-29 14:44:39 + * @LastEditTime: 2024-05-31 14:28:44 * @FilePath: \general-ai-platform-web\mock\pools\deviceGroupData.ts * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE */ @@ -304,7 +304,6 @@ export const mockGetDeviceGroupListData = { managerName: '刘芳', managerPhone: '16526365632', remark: '--', - // TODO 完成设备节点列表数据的构建 }, { level: 1, diff --git a/mock/pools/modelData.ts b/mock/pools/modelData.ts index dc85b8f..7db386a 100644 --- a/mock/pools/modelData.ts +++ b/mock/pools/modelData.ts @@ -56,7 +56,7 @@ export const mockGetModelListData = { remark: '机器视觉技术经常用于定位与引导,提供机械手或其它执行机构以准确的二维或三维坐标,进行路径规划,引导机械手完成规定的作业和任务。定位与引导系统往往和其它系统一并构成较复杂的技术系统,实现特定的功能,满足需求。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -69,7 +69,7 @@ export const mockGetModelListData = { remark: '多目标定位算法首先对目标提取关键特征,然后通过分类找到与目标最相似的位置。基于训练检测器的初始化首先需要目标检测,然后链接到已有的轨迹中。这种策略也通常被称为“Tracking -By- Detection”。多目标定位算法还需识别目标的数量、识别目标的类型,这些全部由检测算法的结果来决定,无法预知。多目标定位过程包含每一个独立的目标定位检测过程。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -95,7 +95,7 @@ export const mockGetModelListData = { remark: '下料口、出料口堵塞识别基于AI视频智能识别技术,在生产场景中对下料口、出料口提供全天候、多维度的实时监控、分析与预警,有效提高工业生产的智能化和安全性,弥补人工监看的不足,提高企业生产安全水平。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -170,7 +170,7 @@ export const mockGetModelListData = { deviceSort: '工件局部、区域颜色识别', remark: '颜色识别主要用于不同颜色产品的分选、识别、检测等问题。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -183,7 +183,7 @@ export const mockGetModelListData = { remark: '一些由细小零部件组装的工件,组装质量的好坏直接影响最终产品的质量。目前针对这一问题大多数客户选择将产品下放到很多中小型工厂,这些工厂往往都是依靠人眼去检测。然而人眼是经常会出现“漏检”,“误检”的情况,并且生产效率低、人工成本高昂,给客户造成很大的困扰和产品安全隐患。苏胜天开发了一套超高性价比的流水线视觉检测系统。不仅解放了生产力,而且提高了生产效率,同时保证了产品的质量。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -195,7 +195,7 @@ export const mockGetModelListData = { deviceSort: '元器件(插件)混料检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -207,7 +207,7 @@ export const mockGetModelListData = { deviceSort: '元器件(插件)有无检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -219,7 +219,7 @@ export const mockGetModelListData = { deviceSort: '元器件(插件)正负极检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -231,7 +231,7 @@ export const mockGetModelListData = { deviceSort: '元器件(插件)颜色识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -243,7 +243,7 @@ export const mockGetModelListData = { deviceSort: '元器件(插件)方向测量', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -255,7 +255,7 @@ export const mockGetModelListData = { deviceSort: '焊线颜色检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -267,7 +267,7 @@ export const mockGetModelListData = { deviceSort: '端子座颜色检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -279,7 +279,7 @@ export const mockGetModelListData = { deviceSort: '端子座方向检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -291,7 +291,7 @@ export const mockGetModelListData = { deviceSort: '插孔通畅检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -303,7 +303,7 @@ export const mockGetModelListData = { deviceSort: '孔直径大小测量', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -315,7 +315,7 @@ export const mockGetModelListData = { deviceSort: 'PIN间距测量', remark: 'PIN行间距检测同PIN角测量一样,一个工具、不限制PIN角个数、所有工艺参数,一次测量。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -328,7 +328,7 @@ export const mockGetModelListData = { remark: '基于机器视觉的PIN检测,主要应用在插针连接器、FFC、FPC连接端子、芯片引脚等测量。通过非接触测量,对产品质量进行检测。本方案针对PIN检测专门开发出PIN角测量工具、PIN行间距测量工具,更稳定、更便捷、更精确。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -341,7 +341,7 @@ export const mockGetModelListData = { remark: '基于机器视觉的PIN检测,主要应用在插针连接器、FFC、FPC连接端子、芯片引脚等测量。通过非接触测量,对产品质量进行检测。本方案针对PIN检测专门开发出PIN角测量工具、PIN行间距测量工具,更稳定、更便捷、更精确。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -354,7 +354,7 @@ export const mockGetModelListData = { remark: '基于机器视觉的PIN检测,主要应用在插针连接器、FFC、FPC连接端子、芯片引脚等测量。通过非接触测量,对产品质量进行检测。本方案针对PIN检测专门开发出PIN角测量工具、PIN行间距测量工具,更稳定、更便捷、更精确。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -367,7 +367,7 @@ export const mockGetModelListData = { remark: '针对环形PIN角圆形度检测,在每一个PIN边缘可获取1到3个点,通过边缘点拟合圆,测量环形PIN角的圆形度。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -380,7 +380,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -393,7 +393,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -406,7 +406,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -419,7 +419,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -432,7 +432,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -445,7 +445,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -458,7 +458,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -471,7 +471,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -484,7 +484,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -497,7 +497,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -510,7 +510,7 @@ export const mockGetModelListData = { remark: '手机、平板电子产品在组装完成后,为保证出货前的产品质量,需对手机的玻璃面、后盖、侧面、圆弧面进行全方位的检查,检测内容包括划伤、缺口、点状异物(如颗粒、玻璃珠、气泡等)、压痕、凹凸痕、锯齿状、脏污、电镀掉漆、异色等。使屏幕依次显示不同的纯色背景,检测屏幕亮点、暗点、花屏、背光不良等缺陷。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -523,7 +523,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -536,7 +536,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -549,7 +549,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -562,7 +562,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -575,7 +575,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -588,7 +588,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -601,7 +601,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -614,7 +614,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -627,7 +627,7 @@ export const mockGetModelListData = { remark: '通过机器视觉系统,检测产品制造中出现的划痕、脏污、异物等表面缺陷和其他异常,检测装配错误、表面缺陷、损坏的工件和缺失的功能,可确定对象的方向、形状、位置,还可识别功能。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -639,7 +639,7 @@ export const mockGetModelListData = { deviceSort: '异物缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -651,7 +651,7 @@ export const mockGetModelListData = { deviceSort: '污染缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -663,7 +663,7 @@ export const mockGetModelListData = { deviceSort: '刮伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -675,7 +675,7 @@ export const mockGetModelListData = { deviceSort: '白点缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -687,7 +687,7 @@ export const mockGetModelListData = { deviceSort: '高度差测量', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -699,7 +699,7 @@ export const mockGetModelListData = { deviceSort: '崩边缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -711,7 +711,7 @@ export const mockGetModelListData = { deviceSort: '断裂缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -723,7 +723,7 @@ export const mockGetModelListData = { deviceSort: '变形缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -735,7 +735,7 @@ export const mockGetModelListData = { deviceSort: '牙孔缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -747,7 +747,7 @@ export const mockGetModelListData = { deviceSort: '断柱缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -760,7 +760,7 @@ export const mockGetModelListData = { remark: '碰压伤、刮伤、料线、针孔、麻点、白点、缺口、凸包、研磨痕、拱起、变形等缺陷的检测。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -773,7 +773,7 @@ export const mockGetModelListData = { remark: '碰压伤、刮伤、料线、针孔、麻点、白点、缺口、凸包、研磨痕、拱起、变形等缺陷的检测。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -786,7 +786,7 @@ export const mockGetModelListData = { remark: '碰压伤、刮伤、料线、针孔、麻点、白点、缺口、凸包、研磨痕、拱起、变形等缺陷的检测。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -799,7 +799,7 @@ export const mockGetModelListData = { remark: '碰压伤、刮伤、料线、针孔、麻点、白点、缺口、凸包、研磨痕、拱起、变形等缺陷的检测。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -812,7 +812,7 @@ export const mockGetModelListData = { remark: '碰压伤、刮伤、料线、针孔、麻点、白点、缺口、凸包、研磨痕、拱起、变形等缺陷的检测。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -824,7 +824,7 @@ export const mockGetModelListData = { deviceSort: '漏气缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -836,7 +836,7 @@ export const mockGetModelListData = { deviceSort: '焊点缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -848,7 +848,7 @@ export const mockGetModelListData = { deviceSort: '压伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -860,7 +860,7 @@ export const mockGetModelListData = { deviceSort: '表面脏污缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -872,7 +872,7 @@ export const mockGetModelListData = { deviceSort: '裂纹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -884,7 +884,7 @@ export const mockGetModelListData = { deviceSort: '划伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -896,7 +896,7 @@ export const mockGetModelListData = { deviceSort: '刮伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -908,7 +908,7 @@ export const mockGetModelListData = { deviceSort: '气泡缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -921,7 +921,7 @@ export const mockGetModelListData = { remark: '全面屏极大的缩小了显示区到边框的距离,大大提升了视觉体验。与此同时,精确测量全面屏显示区到边缘的距离更为困难,这就需要高精度镜头和相机等相互协作达到测量目的。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -933,7 +933,7 @@ export const mockGetModelListData = { deviceSort: '缺件缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -945,7 +945,7 @@ export const mockGetModelListData = { deviceSort: '错件缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -957,7 +957,7 @@ export const mockGetModelListData = { deviceSort: '螺钉浮高缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -970,7 +970,7 @@ export const mockGetModelListData = { remark: '全面屏极大的缩小了显示区到边框的距离,大大提升了视觉体验。与此同时,精确测量全面屏显示区到边缘的距离更为困难,这就需要高精度镜头和相机等相互协作达到测量目的。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -983,7 +983,7 @@ export const mockGetModelListData = { remark: 'Tape胶是遮光胶带的一种,主要用于光学显示器件中起到黏贴和遮光的作用,广泛用于笔记本电脑、手机、PDA、数码等电子显示屏。液晶屏与Tape胶包边的的贴合程度以及边框的精准对位,直接影响显示屏的遮光效果。哪怕是很细小的贴合问题对于高标准的电子产品来说,就是严重的产品质量问题。该系统采用多相机对液晶屏与Tape胶包边进行定位检测,液晶屏四条边缘分四个工位依次进行定位贴合。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -995,7 +995,7 @@ export const mockGetModelListData = { deviceSort: '裂纹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1007,7 +1007,7 @@ export const mockGetModelListData = { deviceSort: '坑点缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1019,7 +1019,7 @@ export const mockGetModelListData = { deviceSort: '气孔缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1031,7 +1031,7 @@ export const mockGetModelListData = { deviceSort: '缩孔缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1043,7 +1043,7 @@ export const mockGetModelListData = { deviceSort: '表面啃伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1055,7 +1055,7 @@ export const mockGetModelListData = { deviceSort: '表面氧化皮缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1067,7 +1067,7 @@ export const mockGetModelListData = { deviceSort: '表面划伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1079,7 +1079,7 @@ export const mockGetModelListData = { deviceSort: '凹坑凹陷缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1091,7 +1091,7 @@ export const mockGetModelListData = { deviceSort: '褶皱缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1103,7 +1103,7 @@ export const mockGetModelListData = { deviceSort: '麻面缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1115,7 +1115,7 @@ export const mockGetModelListData = { deviceSort: '色差缺陷检测', remark: '颜色是很重要的一个图像特征,本系统针对不同颜色管材也均可检出。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1127,7 +1127,7 @@ export const mockGetModelListData = { deviceSort: '杂质缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1139,7 +1139,7 @@ export const mockGetModelListData = { deviceSort: '管径测量', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1151,7 +1151,7 @@ export const mockGetModelListData = { deviceSort: '鼓包缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1163,7 +1163,7 @@ export const mockGetModelListData = { deviceSort: '开裂缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1175,7 +1175,7 @@ export const mockGetModelListData = { deviceSort: '中心孔定位', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1187,7 +1187,7 @@ export const mockGetModelListData = { deviceSort: '中心孔缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1199,7 +1199,7 @@ export const mockGetModelListData = { deviceSort: '电池角度矫正', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1211,7 +1211,7 @@ export const mockGetModelListData = { deviceSort: '正极绝缘片缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1223,7 +1223,7 @@ export const mockGetModelListData = { deviceSort: '漏金属缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1235,7 +1235,7 @@ export const mockGetModelListData = { deviceSort: '划痕缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1247,7 +1247,7 @@ export const mockGetModelListData = { deviceSort: '脱碳缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1259,7 +1259,7 @@ export const mockGetModelListData = { deviceSort: '气泡缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1271,7 +1271,7 @@ export const mockGetModelListData = { deviceSort: '黑斑缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1283,7 +1283,7 @@ export const mockGetModelListData = { deviceSort: '白斑缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1295,7 +1295,7 @@ export const mockGetModelListData = { deviceSort: '毛刺缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1319,7 +1319,7 @@ export const mockGetModelListData = { deviceSort: '滚槽后点胶气泡缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1331,7 +1331,7 @@ export const mockGetModelListData = { deviceSort: '滚槽后点胶断胶缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1367,7 +1367,7 @@ export const mockGetModelListData = { deviceSort: '盖帽焊接偏差检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1391,7 +1391,7 @@ export const mockGetModelListData = { deviceSort: '盖帽中心点定位引导', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1403,7 +1403,7 @@ export const mockGetModelListData = { deviceSort: '盖帽正反倾斜状态检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1427,7 +1427,7 @@ export const mockGetModelListData = { deviceSort: '电池正极端面套管质量检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1439,7 +1439,7 @@ export const mockGetModelListData = { deviceSort: '电池负极端面套管质量检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1451,7 +1451,7 @@ export const mockGetModelListData = { deviceSort: '电池正极、负极端面凹坑缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1463,7 +1463,7 @@ export const mockGetModelListData = { deviceSort: '电池正极、负极端面划伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1475,7 +1475,7 @@ export const mockGetModelListData = { deviceSort: '卷绕入料缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1487,7 +1487,7 @@ export const mockGetModelListData = { deviceSort: '卷绕料线缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1499,7 +1499,7 @@ export const mockGetModelListData = { deviceSort: '隔膜褶皱缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1511,7 +1511,7 @@ export const mockGetModelListData = { deviceSort: '极耳翻折缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1523,7 +1523,7 @@ export const mockGetModelListData = { deviceSort: '极片破损缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1535,7 +1535,7 @@ export const mockGetModelListData = { deviceSort: '无铝膜检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1547,7 +1547,7 @@ export const mockGetModelListData = { deviceSort: '封口温度过高检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1559,7 +1559,7 @@ export const mockGetModelListData = { deviceSort: '封口温度过低检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1571,7 +1571,7 @@ export const mockGetModelListData = { deviceSort: '铝膜反装检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1583,7 +1583,7 @@ export const mockGetModelListData = { deviceSort: '铝膜缺损检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1595,7 +1595,7 @@ export const mockGetModelListData = { deviceSort: '铝膜虚封检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1607,7 +1607,7 @@ export const mockGetModelListData = { deviceSort: '气泡缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1619,7 +1619,7 @@ export const mockGetModelListData = { deviceSort: '结石缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1631,7 +1631,7 @@ export const mockGetModelListData = { deviceSort: '黑点缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1643,7 +1643,7 @@ export const mockGetModelListData = { deviceSort: '裂纹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1655,7 +1655,7 @@ export const mockGetModelListData = { deviceSort: '气线缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1667,7 +1667,7 @@ export const mockGetModelListData = { deviceSort: '磕碰缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1679,7 +1679,7 @@ export const mockGetModelListData = { deviceSort: '脏污缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1691,7 +1691,7 @@ export const mockGetModelListData = { deviceSort: '瓶口缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1703,7 +1703,7 @@ export const mockGetModelListData = { deviceSort: '喷码缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1715,7 +1715,7 @@ export const mockGetModelListData = { deviceSort: '瓶盖缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1727,7 +1727,7 @@ export const mockGetModelListData = { deviceSort: '标贴缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1739,7 +1739,7 @@ export const mockGetModelListData = { deviceSort: '装箱点数', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1751,7 +1751,7 @@ export const mockGetModelListData = { deviceSort: '箱体内容检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1763,7 +1763,7 @@ export const mockGetModelListData = { deviceSort: '罐身内壁杂质检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1787,7 +1787,7 @@ export const mockGetModelListData = { deviceSort: '罐身凹陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1799,7 +1799,7 @@ export const mockGetModelListData = { deviceSort: '罐底杂质、异物检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1811,7 +1811,7 @@ export const mockGetModelListData = { deviceSort: '罐口杂质、异物检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1835,7 +1835,7 @@ export const mockGetModelListData = { deviceSort: '灌口高度一致性、凹陷 ( 内凹,外凹 )检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1847,7 +1847,7 @@ export const mockGetModelListData = { deviceSort: '开裂缺陷检测', remark: '开裂是瓷砖的主要缺陷之一,裂纹缺陷的形式多种多样,有侧裂,面裂和层裂。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1860,7 +1860,7 @@ export const mockGetModelListData = { remark: '这种裂纹不容易看见,危害更大,一般当发现时已经有大量的缺陷砖生产出来。在抛光或者磨边时,这些细注的裂纹,在应力的作用下会扩展而导致砖破碎。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1873,7 +1873,7 @@ export const mockGetModelListData = { remark: '斑点一般有黑斑和黄斑两种,斑点处呈现洞穴状的称为熔洞。这两种缺陷往往是同时产生的,斑点严重时就成为熔洞。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1886,7 +1886,7 @@ export const mockGetModelListData = { remark: '这种缺陷是由于坯体表面的灰尘、油污在施釉前未擦干净;釉浆比重过大使淋釉操作不易掌握造成棱角处缺釉。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1898,7 +1898,7 @@ export const mockGetModelListData = { deviceSort: '局部色差缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1910,7 +1910,7 @@ export const mockGetModelListData = { deviceSort: '多瓷砖拼图色差缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1922,7 +1922,7 @@ export const mockGetModelListData = { deviceSort: '崩边缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1958,7 +1958,7 @@ export const mockGetModelListData = { deviceSort: '曲线曲面贴合度测量', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1970,7 +1970,7 @@ export const mockGetModelListData = { deviceSort: '尺寸误差检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1982,7 +1982,7 @@ export const mockGetModelListData = { deviceSort: '长方形纸箱外包装破损检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -1994,7 +1994,7 @@ export const mockGetModelListData = { deviceSort: '胶带开口检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2007,7 +2007,7 @@ export const mockGetModelListData = { remark: '接入监控系统,实现支持名单报警(创建人脸名单,为此名单配置人脸库图片,并设置相似度,实现名单报警等);在人脸库、抓拍库中以图搜图;通过人脸识别,进行人员属性统计(年龄、性别、岗位、资质等)。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2019,7 +2019,7 @@ export const mockGetModelListData = { deviceSort: '未带安全帽识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2031,7 +2031,7 @@ export const mockGetModelListData = { deviceSort: '未系安全带识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2043,7 +2043,7 @@ export const mockGetModelListData = { deviceSort: '违规登高识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2055,7 +2055,7 @@ export const mockGetModelListData = { deviceSort: '未穿工作服识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2067,7 +2067,7 @@ export const mockGetModelListData = { deviceSort: '未戴口罩识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2079,7 +2079,7 @@ export const mockGetModelListData = { deviceSort: '吸烟识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2091,7 +2091,7 @@ export const mockGetModelListData = { deviceSort: '接打电话识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2103,7 +2103,7 @@ export const mockGetModelListData = { deviceSort: '离岗检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2115,7 +2115,7 @@ export const mockGetModelListData = { deviceSort: '睡岗检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2164,7 +2164,7 @@ export const mockGetModelListData = { deviceSort: '设备跑冒滴漏识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2176,7 +2176,7 @@ export const mockGetModelListData = { deviceSort: '标识牌脱落识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2188,7 +2188,7 @@ export const mockGetModelListData = { deviceSort: '工器具遗留识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2201,7 +2201,7 @@ export const mockGetModelListData = { remark: '通过电子围栏对特定或临时划定区域,划定虚拟周界,一方面可实现对现场的保护,另一方面当有人员靠近或非法越界闯入区域时可进行安全警示,自动识别控制区域、高危区域等重点区域人员误入行为,实时报警。可对特定区域、临时划定区域、重点区域、高危区域进行监控,通过设定区域位置信息,生成虚拟电子围栏。可设置越界告警、滞留告警;可以设定生效时间和星期,在地图上鼠标拖动,即可快速完成电子围栏的圈定。电子围栏在地图上任意绘制,不限数量。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2213,7 +2213,7 @@ export const mockGetModelListData = { deviceSort: '人员跌倒识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2225,7 +2225,7 @@ export const mockGetModelListData = { deviceSort: '人员尾随识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2237,7 +2237,7 @@ export const mockGetModelListData = { deviceSort: '人员聚集识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2249,7 +2249,7 @@ export const mockGetModelListData = { deviceSort: '多人多姿态操作流程合规性识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2261,7 +2261,7 @@ export const mockGetModelListData = { deviceSort: '车牌识别', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2274,7 +2274,7 @@ export const mockGetModelListData = { remark: '产品焊接质量对密封效果十分重要。需要机器视觉完成产品安装前定位、装后有无检测、焊接前定位及焊后质量检测的一整个流程的视觉检测,对整体的检测速度、定位精度和焊接缺陷识别提出了系统性的要求。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2286,7 +2286,7 @@ export const mockGetModelListData = { deviceSort: '焊接缝循迹跟踪检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2299,7 +2299,7 @@ export const mockGetModelListData = { remark: '对焊接成果的检测,目的是保证焊接结构的完整性、可靠性、安全性和使用性。除了对焊接技术和焊接工艺的要求以外,焊接质量检测也是焊接结构质量管理的重要一环。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2312,7 +2312,7 @@ export const mockGetModelListData = { remark: '对焊接成果的检测,目的是保证焊接结构的完整性、可靠性、安全性和使用性。除了对焊接技术和焊接工艺的要求以外,焊接质量检测也是焊接结构质量管理的重要一环。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2325,7 +2325,7 @@ export const mockGetModelListData = { remark: '对焊接成果的检测,目的是保证焊接结构的完整性、可靠性、安全性和使用性。除了对焊接技术和焊接工艺的要求以外,焊接质量检测也是焊接结构质量管理的重要一环。', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2337,7 +2337,7 @@ export const mockGetModelListData = { deviceSort: '划痕缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2349,7 +2349,7 @@ export const mockGetModelListData = { deviceSort: '裂纹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2361,7 +2361,7 @@ export const mockGetModelListData = { deviceSort: '网纹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2373,7 +2373,7 @@ export const mockGetModelListData = { deviceSort: '过热缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2385,7 +2385,7 @@ export const mockGetModelListData = { deviceSort: '气泡缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2397,7 +2397,7 @@ export const mockGetModelListData = { deviceSort: '麻点缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2409,7 +2409,7 @@ export const mockGetModelListData = { deviceSort: '崩边缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2421,7 +2421,7 @@ export const mockGetModelListData = { deviceSort: '夹杂缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2433,7 +2433,7 @@ export const mockGetModelListData = { deviceSort: '折叠缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2445,7 +2445,7 @@ export const mockGetModelListData = { deviceSort: '结疤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2457,7 +2457,7 @@ export const mockGetModelListData = { deviceSort: '分层缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2469,7 +2469,7 @@ export const mockGetModelListData = { deviceSort: '波浪缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2481,7 +2481,7 @@ export const mockGetModelListData = { deviceSort: '辊印缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2493,7 +2493,7 @@ export const mockGetModelListData = { deviceSort: '氧化铁皮压入缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2505,7 +2505,7 @@ export const mockGetModelListData = { deviceSort: '确定最佳剪切线位置', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2517,7 +2517,7 @@ export const mockGetModelListData = { deviceSort: '智能组板', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2529,7 +2529,7 @@ export const mockGetModelListData = { deviceSort: '氧化铁皮缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2541,7 +2541,7 @@ export const mockGetModelListData = { deviceSort: '表面裂纹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2553,7 +2553,7 @@ export const mockGetModelListData = { deviceSort: '划伤缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2565,7 +2565,7 @@ export const mockGetModelListData = { deviceSort: '毛刺缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2577,7 +2577,7 @@ export const mockGetModelListData = { deviceSort: '重接缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2589,7 +2589,7 @@ export const mockGetModelListData = { deviceSort: '双浇缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2601,7 +2601,7 @@ export const mockGetModelListData = { deviceSort: '振痕缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2613,7 +2613,7 @@ export const mockGetModelListData = { deviceSort: '3D尺寸误差检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2625,7 +2625,7 @@ export const mockGetModelListData = { deviceSort: '几何尺寸缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2637,7 +2637,7 @@ export const mockGetModelListData = { deviceSort: '输出侧缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2649,7 +2649,7 @@ export const mockGetModelListData = { deviceSort: '轧制缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2661,7 +2661,7 @@ export const mockGetModelListData = { deviceSort: '表面痕迹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2673,7 +2673,7 @@ export const mockGetModelListData = { deviceSort: '坯料缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2685,7 +2685,7 @@ export const mockGetModelListData = { deviceSort: '其他缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2697,7 +2697,7 @@ export const mockGetModelListData = { deviceSort: '废钢识别定级', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2709,7 +2709,7 @@ export const mockGetModelListData = { deviceSort: '加班人员检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2721,7 +2721,7 @@ export const mockGetModelListData = { deviceSort: '上班玩手机检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2733,7 +2733,7 @@ export const mockGetModelListData = { deviceSort: '上班打瞌睡检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2745,7 +2745,7 @@ export const mockGetModelListData = { deviceSort: '上班看书报检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2757,7 +2757,7 @@ export const mockGetModelListData = { deviceSort: '上班吃东西检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2769,7 +2769,7 @@ export const mockGetModelListData = { deviceSort: '上班串岗、聊天检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2781,7 +2781,7 @@ export const mockGetModelListData = { deviceSort: '上班吸烟检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2793,7 +2793,7 @@ export const mockGetModelListData = { deviceSort: '头饰规范检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2805,7 +2805,7 @@ export const mockGetModelListData = { deviceSort: '着装合规性检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2817,7 +2817,7 @@ export const mockGetModelListData = { deviceSort: '桌面钞票额度检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2829,7 +2829,7 @@ export const mockGetModelListData = { deviceSort: 'ATM机读卡器检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2841,7 +2841,7 @@ export const mockGetModelListData = { deviceSort: 'ATM机表面广告张贴检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2853,7 +2853,7 @@ export const mockGetModelListData = { deviceSort: 'ATM机室内卫生检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2865,7 +2865,7 @@ export const mockGetModelListData = { deviceSort: '大厅自助机操作合规性检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2877,7 +2877,7 @@ export const mockGetModelListData = { deviceSort: '消防器材巡检操作合规性检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2889,7 +2889,7 @@ export const mockGetModelListData = { deviceSort: '机房巡检操作合规性检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2901,7 +2901,7 @@ export const mockGetModelListData = { deviceSort: 'ATM装钞动作及流程合规性检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2913,7 +2913,7 @@ export const mockGetModelListData = { deviceSort: '螺纹无牙缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2925,7 +2925,7 @@ export const mockGetModelListData = { deviceSort: '螺纹偏牙缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2937,7 +2937,7 @@ export const mockGetModelListData = { deviceSort: '螺纹内杂物检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2949,7 +2949,7 @@ export const mockGetModelListData = { deviceSort: '螺纹孔定位', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2961,7 +2961,7 @@ export const mockGetModelListData = { deviceSort: '螺纹孔径尺寸测量', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2973,7 +2973,7 @@ export const mockGetModelListData = { deviceSort: '隐裂缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2985,7 +2985,7 @@ export const mockGetModelListData = { deviceSort: '黑片缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -2997,7 +2997,7 @@ export const mockGetModelListData = { deviceSort: '短路缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3009,7 +3009,7 @@ export const mockGetModelListData = { deviceSort: '虚焊缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3021,7 +3021,7 @@ export const mockGetModelListData = { deviceSort: '裂纹缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3033,7 +3033,7 @@ export const mockGetModelListData = { deviceSort: '开路缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3045,7 +3045,7 @@ export const mockGetModelListData = { deviceSort: '断路缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3057,7 +3057,7 @@ export const mockGetModelListData = { deviceSort: '刻蚀过度缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3069,7 +3069,7 @@ export const mockGetModelListData = { deviceSort: '树脂气泡缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3081,7 +3081,7 @@ export const mockGetModelListData = { deviceSort: '打孔不良检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3093,7 +3093,7 @@ export const mockGetModelListData = { deviceSort: '压板缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3105,7 +3105,7 @@ export const mockGetModelListData = { deviceSort: '喷锡缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3117,7 +3117,7 @@ export const mockGetModelListData = { deviceSort: '锡珠缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3129,7 +3129,7 @@ export const mockGetModelListData = { deviceSort: '白斑缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3141,7 +3141,7 @@ export const mockGetModelListData = { deviceSort: '堵孔缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3153,7 +3153,7 @@ export const mockGetModelListData = { deviceSort: '胶渣缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', @@ -3165,7 +3165,7 @@ export const mockGetModelListData = { deviceSort: '漏铜缺陷检测', remark: '', defaultVersionFkId: 'V1.6.25', - type: '深度学习', + type: '机器学习', provider: '苏胜天', createTime: '2024-01-25T13:36:46.33681+08:00', updateTime: '2024-01-25T13:36:46.33681+08:00', diff --git a/src/app.css b/src/app.css index 90a9986..115e579 100644 --- a/src/app.css +++ b/src/app.css @@ -1,7 +1,6 @@ .app_page_wrap { height: calc(100vh); padding: 0; - /* TODO 替换整体页面背景图 */ } .app_page_wrap .ant-pro-layout .ant-pro-layout-content { position: relative; diff --git a/src/app.tsx b/src/app.tsx index 85a04f2..c229fcd 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -230,7 +230,7 @@ const csrfAndJwtHeaderInterceptor = (url: string, options: RequestConfig) => { let bearerToken = {}; const access = localStorage.getItem('access'); if (access) { - bearerToken = { 'X-Token': `${access}` }; + bearerToken = { token: `${access}` }; } let locale = getLocale(); return { diff --git a/src/components/BatchOperation/isBatchDelete.tsx b/src/components/BatchOperation/isBatchDelete.tsx index 6daea6a..5a462e9 100644 --- a/src/components/BatchOperation/isBatchDelete.tsx +++ b/src/components/BatchOperation/isBatchDelete.tsx @@ -36,7 +36,6 @@ const IsBatchDelete: React.FC = (props) => { okText: intl.formatMessage({ id: 'common.yes', defaultMessage: '$$$' }), cancelText: intl.formatMessage({ id: 'common.no', defaultMessage: '$$$' }), onOk() { - // TODO 未对接批量删除接口 props.deleteApi(); }, onCancel() { diff --git a/src/components/CategorizeUpdate/index.tsx b/src/components/CategorizeUpdate/index.tsx index 2169877..172e55b 100644 --- a/src/components/CategorizeUpdate/index.tsx +++ b/src/components/CategorizeUpdate/index.tsx @@ -35,7 +35,6 @@ const tagInputStyle: React.CSSProperties = { verticalAlign: 'top', }; -// TODO 整体样式需要按UI图调整 交互在确认时要把tags赋值给form const CategorizeUpdate: React.FC = (props) => { const [form] = Form.useForm>(); const [tags, setTags] = useState([]); diff --git a/src/components/Tree/src/baseTree.css b/src/components/Tree/src/baseTree.css index 002e52e..7fde57d 100644 --- a/src/components/Tree/src/baseTree.css +++ b/src/components/Tree/src/baseTree.css @@ -24,7 +24,7 @@ } .base_tree_wrap .tree_node_0 { width: 100%; - margin: 12px 0; + margin: 8px 0; padding: 8px 17px; background: #f5f5f5; border-radius: 4px; diff --git a/src/components/Tree/src/baseTree.less b/src/components/Tree/src/baseTree.less index d8b08f3..41ca04c 100644 --- a/src/components/Tree/src/baseTree.less +++ b/src/components/Tree/src/baseTree.less @@ -22,7 +22,7 @@ .tree_node_0 { width: 100%; - margin: 12px 0; + margin: 8px 0; padding: 8px 17px; background: #f5f5f5; border-radius: 4px; diff --git a/src/locales/zh-CN/model.ts b/src/locales/zh-CN/model.ts index 8e07fce..47b7532 100644 --- a/src/locales/zh-CN/model.ts +++ b/src/locales/zh-CN/model.ts @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-04-10 17:21:34 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-05-14 17:05:30 + * @LastEditTime: 2024-05-31 13:40:48 * @FilePath: \general-ai-manage\src\locales\zh-CN\model.ts * @Description: 模型管理 */ @@ -24,7 +24,9 @@ export const model_index: { [key: string]: string } = { 'model_index.table.list.setIndustry': '行业类别设置', 'model_index.table.list.update': '更新模型', 'model_index.table.list.detail': '详情配置', - 'model_index.create.form.add': '新建模型', + 'model_index.form.action.add': '新建模型', + 'model_index.form.action.edit': '编辑模型', + 'model_index.create.form.name': '模型名称', 'model_index.create.form.rule.required.name': '请填写模型名称', 'model_index.create.form.type': '模型分类', diff --git a/src/pages/Business/BusinessModel/components/createForm.tsx b/src/pages/Business/BusinessModel/components/createForm.tsx index f377335..7d80aaa 100644 --- a/src/pages/Business/BusinessModel/components/createForm.tsx +++ b/src/pages/Business/BusinessModel/components/createForm.tsx @@ -327,7 +327,7 @@ const CreateForm: React.FC = (props) => { data: { path: `models/${Date.now()}` }, headers: { 'X-CSRFToken': cookie.load('csrftoken'), - Authorization: `Bearer ${localStorage.getItem('access') || ''}`, + token: `Bearer ${localStorage.getItem('access') || ''}`, }, }} /> diff --git a/src/pages/Business/DeviceGroup/components/createDeviceForm.tsx b/src/pages/Business/DeviceGroup/components/createDeviceForm.tsx index bdd8470..64b8048 100644 --- a/src/pages/Business/DeviceGroup/components/createDeviceForm.tsx +++ b/src/pages/Business/DeviceGroup/components/createDeviceForm.tsx @@ -61,7 +61,6 @@ const CreateDeviceForm: React.FC = (props) => { submitTimeout={2000} onFinish={async (values) => { console.log(values, 'add_finish_values'); - // TODO 对接新增接口 let resp = await apiEntityNodesDeviceAdd({ ...values, entity_id: props.commInfo.id, diff --git a/src/pages/Model/ModelDetail/components/createForm.tsx b/src/pages/Model/ModelDetail/components/createForm.tsx index 0f95bc6..3f97f43 100644 --- a/src/pages/Model/ModelDetail/components/createForm.tsx +++ b/src/pages/Model/ModelDetail/components/createForm.tsx @@ -1,8 +1,8 @@ +import { apiFileDelete, apiFileUpload } from '@/services/business/file'; import { ProForm, ProFormInstance, ProFormList, - ProFormSelect, ProFormText, ProFormTextArea, ProFormUploadDragger, @@ -21,22 +21,13 @@ import { } from '../../../../../config/defaultForm'; // import {beforeUploadFile} from "@/utils/common"; // @ts-ignore -import cookie from 'react-cookies'; - -export type FormValueType = { - target?: string; - template?: string; - type?: string; - time?: string; - frequency?: string; -} & Partial; +import { fileApiActionUrl } from '../../../../../config/defaultApi'; export type CreateFormProps = { createModalOpen: boolean; handleModal: () => void; - values: Partial; + modelInfo: Record; reload: any; - currentDefaultFieldsData?: Record; }; const waitTime = (time: number = 100) => { return new Promise((resolve) => { @@ -56,18 +47,21 @@ const CreateForm: React.FC = (props) => { >(); const intl = useIntl(); - const [isHasModelFkId, setIsHasModelFkId] = useState(false); const [dataFormList] = useState([]); const dataFormListRef = useRef(dataFormList); - const [fileList, setFileList] = useState[]>([]); + // const [projectFileList, setProjectFileList] = useState[]>([]); + const [configFileList, setConfigFileList] = useState[]>([]); + + // const [form] = Form.useForm>(); - // const [form] = Form.useForm(); const [current, setCurrent] = useState(0); - const formRef = useRef(); - const [filePath, setFilePath] = useState(''); + const formBaseRef = useRef(); + const formProjectFileRef = useRef(); + // const [filePath, setFilePath] = useState(''); const handleFileChange = ({ file }: { file: UploadFile }) => { + console.log(configFileList, 'handleFileChange_configFileList'); let curFile: any; switch (file.status) { @@ -75,30 +69,32 @@ const CreateForm: React.FC = (props) => { case 'done': curFile = [file]; break; - case 'removed': default: curFile = []; break; } - setFileList([...curFile]); + setConfigFileList([...curFile]); }; + + // test 测试数据 useEffect(() => { - if (props.currentDefaultFieldsData) { - // 如果是在模型详情新增版本,ModelFkId不可编辑 - console.log(props.values, isHasModelFkId, 'currentDefaultFieldsData'); - setIsHasModelFkId(true); - } else { - setIsHasModelFkId(false); - } - }, []); + // if (formBaseRef) { + formBaseRef.current?.setFieldsValue({ + version: '0.0.91', // 设备分类的suid + comment: + '测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注', + }); + + // } + }, [props.createModalOpen]); return ( onFinish={async (values) => { - console.log('All form values:', values); + console.log('All form values:', values, { model_id: props.modelInfo?.model_id }); // 在这里处理提交数据,例如调用API message.success('提交成功'); }} @@ -120,8 +116,8 @@ const CreateForm: React.FC = (props) => { width={proFormSmallModelWidth} onCancel={() => { setCurrent(0); - formRef.current?.resetFields(); - setFileList([]); + formBaseRef.current?.resetFields(); + // setProjectFileList([]); props.handleModal(); }} open={props.createModalOpen} @@ -139,7 +135,7 @@ const CreateForm: React.FC = (props) => { }> className="gn_form" name="base" - formRef={formRef} + formRef={formBaseRef} title={ } @@ -152,29 +148,21 @@ const CreateForm: React.FC = (props) => { ), }} onFinish={async () => { - // setFormData(formRef.current?.getFieldsValue()); + // setFormData(formBaseRef.current?.getFieldsValue()); await waitTime(500); return true; }} > - {/* //TODO 默认填充模型 无需选择 */} - } - placeholder={`${intl.formatMessage({ - id: 'common.please_select', - defaultMessage: '$$$', - })}${intl.formatMessage({ - id: 'model_detail.version.form.modelFkId', - defaultMessage: '$$$', - })}`} required={true} - // initialValue={props.values.modelFkId} - showSearch + initialValue={props.modelInfo?.name} debounceTime={1000} disabled={true} // request={async (keyWord) => { @@ -194,7 +182,7 @@ const CreateForm: React.FC = (props) => { fieldProps={{ prefix: V, }} - name="name" + name="version" label={} placeholder={`${intl.formatMessage({ id: 'common.please_input', @@ -218,7 +206,7 @@ const CreateForm: React.FC = (props) => { /> } placeholder={`${intl.formatMessage({ id: 'common.please_input', @@ -236,6 +224,7 @@ const CreateForm: React.FC = (props) => { + formRef={formProjectFileRef} className="gn_form" name="project_file" title={ @@ -254,10 +243,11 @@ const CreateForm: React.FC = (props) => { ), }} onFinish={async (values: any) => { - if ('projectFilePath' in values && values['projectFilePath'].length > 0) { - let projectFilePath = values['projectFilePath'][0]?.response?.data?.path || ''; - setFilePath(projectFilePath); - } + console.log(values, 'values'); + // if ('projectFilePath' in values && values['projectFilePath'].length > 0) { + // let projectFilePath = values['projectFilePath'][0]?.response?.data?.path || ''; + // setFilePath(projectFilePath); + // } return true; }} > @@ -271,8 +261,45 @@ const CreateForm: React.FC = (props) => { } description="" icon={} - name="projectFilePath" - action="/api/v1/file/uploadFile" + name="model_file_name" + // action={fileApiActionUrl} + onRemove={async (file) => { + // 这里可以添加删除文件的接口调用逻辑 + // await deleteFileFromServer(file); + + // setFileList((prevList) => { + // const newList = prevList.filter((item) => item.uid !== file.uid); + // return newList; + // }); + const currFileId = formProjectFileRef?.current?.getFieldValue('model_file'); + const resp = await apiFileDelete({ file_md5: currFileId }); + console.log(resp, 'apiFileDelete_resp', file); + message.success('文件已删除'); + return true; // 确保文件从文件列表中移除 + }} + onChange={async ({ file, fileList }) => { + // 检查文件状态 + + console.log( + file, + fileList, + 'onChange_ProjectFile', + formProjectFileRef?.current?.getFieldValue('model_file'), + ); + if (file.status === 'removed') { + // 删除文件 + // setProjectFileList(fileList.filter((item) => item.uid !== file.uid)); + // const currFileId = formProjectFileRef?.current?.getFieldValue('model_file') + // const resp = await apiFileDelete({file_md5: currFileId}) + // console.log(resp,'apiFileDelete_resp') + // message.success(`${file.name} 删除成功`); + } else { + // 处理上传 + // formProjectFileRef?.current?.setFieldValue('model_file_name', [file]); + // handleUpload(file); + } + // setProjectFileList(fileList); + }} max={1} fieldProps={{ className: 'gn_proFormUploadDragger_formItem', @@ -281,8 +308,17 @@ const CreateForm: React.FC = (props) => { data: { path: `models/${Date.now()}` }, headers: { - 'X-CSRFToken': cookie.load('csrftoken'), - Authorization: `Bearer ${localStorage.getItem('access') || ''}`, + // 'X-CSRFToken': cookie.load('csrftoken'), + // Authorization: `Bearer ${localStorage.getItem('access') || ''}`, + }, + beforeUpload: async (file) => { + const formData = new FormData(); + formData.append('file', file); + const resp = await apiFileUpload(formData); + formProjectFileRef?.current?.setFieldValue('model_file', resp?.data?.result); + console.log(resp, 'apiFileUpload_resp'); + // form.setFieldValue('logo', base64); + return false; // 阻止自动上传 }, }} /> @@ -306,14 +342,15 @@ const CreateForm: React.FC = (props) => { ), }} onFinish={async (values: any) => { - setFileList([]); - let formData = formRef.current?.getFieldsValue(); - if (formData?.modelFkId) { + // setConfigFileList([]); + console.log(values, 'config_values'); + let formData1 = formBaseRef.current?.getFieldsValue(); + if (formData1?.model_name) { await waitTime(500); - formData.modelConfig = { params: values?.params || [] }; - if (filePath) { - formData.path = filePath; - } + // formData1.modelConfig = { params: values?.params || [] }; + // if (filePath) { + // formData1.path = filePath; + // } // postModelVersionCreateModelVersion(formData) // .then(() => { // message.success( @@ -342,8 +379,8 @@ const CreateForm: React.FC = (props) => { } description="" icon={} - value={fileList} - name="dragger" + name="config_file" + action={fileApiActionUrl} fieldProps={{ className: 'gn_proFormUploadDragger_formItem', onChange: handleFileChange, @@ -397,7 +434,7 @@ const CreateForm: React.FC = (props) => { {/* // TODO label字重与上面统一, 操作按钮需要与输入框对齐 */} 模型参数 diff --git a/src/pages/Model/ModelDetail/index.tsx b/src/pages/Model/ModelDetail/index.tsx index 0b5beab..95459cf 100644 --- a/src/pages/Model/ModelDetail/index.tsx +++ b/src/pages/Model/ModelDetail/index.tsx @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-04-08 10:36:06 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-05-21 09:17:25 + * @LastEditTime: 2024-05-31 14:38:28 * @FilePath: \general-ai-manage\src\pages\Model\ModelDetail\index.tsx * @Description: 模型详情(基础信息展示、模型版本列表) * @交互说明 @@ -14,7 +14,8 @@ import InnerPageBack from '@/components/Back/innerPageBack'; import { CommButton } from '@/components/Button'; import TableActionCard from '@/components/TableActionCard'; import IsDelete from '@/components/TableActionCard/isDelete'; -import { getModelDetail, getModelVersionList } from '@/services/testApi/model'; +import { apiModelInfo, apiModelVersionList } from '@/services/business/model'; +import { isSuccessApi } from '@/utils/forApi'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { ProCard, ProDescriptions, ProTable } from '@ant-design/pro-components'; @@ -35,7 +36,7 @@ const ModelDetail: React.FC = () => { // 动态设置每页数量 const [currentPageSize, setCurrentPageSize] = useState(10); // const [currentRow, setCurrentRow] = useState>({}); - + const [modelInfo, setModelInfo] = useState>({}); /** * @en-US The pop-up window of the distribution update window * @zh-CN 分布更新窗口的弹窗 @@ -67,16 +68,16 @@ const ModelDetail: React.FC = () => { title: ( ), - dataIndex: 'defaultVersionFkId', + dataIndex: 'default_version', }, { title: , - dataIndex: 'updateTime', + dataIndex: 'update_time', valueType: 'dateTime', }, { title: , - dataIndex: 'remark', + dataIndex: 'comment', }, ]; const columns: ProColumns>[] = [ @@ -227,9 +228,13 @@ const ModelDetail: React.FC = () => { columns={ModelDetailColumns} request={async () => { console.log(routeParams, 'id'); - const resp = await getModelDetail({ + const resp = await apiModelInfo({ id: Number(routeParams.id), }); + if (!isSuccessApi(resp)) { + return { data: {}, success: true }; + } + setModelInfo({ ...resp.data, model_id: Number(routeParams.id) }); // postModelVersionGetModelVersionList({modelFkId: 3}) console.log('model_detail_resp', resp); return { @@ -299,8 +304,12 @@ const ModelDetail: React.FC = () => { const reqParams = { pageNo: current, ...rest, + model_id: Number(routeParams.id), }; - let resp = await getModelVersionList({ ...reqParams }); + let resp = await apiModelVersionList({ ...reqParams }); + if (!isSuccessApi(resp)) { + return { data: [], success: true }; + } console.log(resp, 'getModelVersionList_resp'); return { data: resp.data?.data, @@ -319,6 +328,7 @@ const ModelDetail: React.FC = () => { diff --git a/src/pages/Model/ModelIndex/components/createForm.tsx b/src/pages/Model/ModelIndex/components/createForm.tsx index 0baa7d9..af8b417 100644 --- a/src/pages/Model/ModelIndex/components/createForm.tsx +++ b/src/pages/Model/ModelIndex/components/createForm.tsx @@ -1,5 +1,5 @@ -// import { postModelCategoryCreateModelCategory } from '@/services/resource/ModelCategory'; -import { getDictIndustry } from '@/services/testApi/dict'; +import { apiModelAdd, apiModelClassificationList } from '@/services/business/model'; +import { isSuccessApi } from '@/utils/forApi'; import { ModalForm, ProForm, @@ -9,36 +9,40 @@ import { ProFormTextArea, } from '@ant-design/pro-components'; import { FormattedMessage, useIntl } from '@umijs/max'; -import { Form } from 'antd'; -import React from 'react'; +import { Form, message } from 'antd'; +import React, { useEffect } from 'react'; import { proFormSmallItemStyleProps, proFormSmallModelWidth, } from '../../../../../config/defaultForm'; -// @ts-ignore -export type FormValueType = { - target?: string; - template?: string; - type?: string; - time?: string; - frequency?: string; -} & Partial>; export type CreateFormProps = { createModalOpen: boolean; handleModal: () => void; reload: any; }; + const CreateForm: React.FC = (props) => { const intl = useIntl(); const [form] = Form.useForm>(); - + // test 测试数据 + useEffect(() => { + if (props.createModalOpen) { + form.setFieldsValue({ + name: '晶圆检测工艺00', + classification: 11, // 设备分类的suid + model_type: 1001, + comment: + '测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注测试一下备注', + }); + } + }, [props.createModalOpen]); return ( > className="gn_form gn_modal_form" width={proFormSmallModelWidth} title={intl.formatMessage({ - id: 'model_index.create.form.add', + id: 'model_index.form.action.add', defaultMessage: '新建', })} open={props.createModalOpen} @@ -51,15 +55,21 @@ const CreateForm: React.FC = (props) => { submitTimeout={2000} onFinish={async (values) => { console.log(values, 'add_finish_values'); - // TODO 对接新增接口 - // postModelCategoryCreateModelCategory(values) - // .then(() => { - // message.success(intl.formatMessage({ id: 'common.action.success', defaultMessage: '$$$' })); - // props.reload(); - // }) - // .catch(() => { - // message.error(intl.formatMessage({ id: 'common.action.failure', defaultMessage: '$$$' })); - // }); + let resp = await apiModelAdd({ + ...values, + }); + if (isSuccessApi(resp)) { + message.success( + intl.formatMessage({ id: 'common.action.success', defaultMessage: '$$$' }), + ); + props.reload(); + props.handleModal(); + } else { + message.error( + resp?.meta?.message || + intl.formatMessage({ id: 'common.action.failure', defaultMessage: '$$$' }), + ); + } props.handleModal(); return true; }} @@ -89,17 +99,19 @@ const CreateForm: React.FC = (props) => { }, ]} /> - {/* //TODO 按UI效果调整模型分类 */} } radioType="button" - options={['经典算法', '深度学习']} + options={[ + { label: '经典算法', value: 1001 }, + { label: '机器学习', value: 1002 }, + ]} required={true} /> } placeholder={`${intl.formatMessage({ id: 'common.please_select', @@ -112,7 +124,8 @@ const CreateForm: React.FC = (props) => { showSearch debounceTime={500} request={async () => { - const { data } = await getDictIndustry(); + const { data } = await apiModelClassificationList(); + console.log(data, 'apiModelClassificationList_data'); return data?.data?.map((v: Record) => { return { ...v, label: v.name, value: v.id }; }); @@ -131,7 +144,7 @@ const CreateForm: React.FC = (props) => { /> } placeholder={`${intl.formatMessage({ id: 'common.please_input', diff --git a/src/pages/Model/ModelIndex/components/updateForm.tsx b/src/pages/Model/ModelIndex/components/updateForm.tsx new file mode 100644 index 0000000..39b3eb3 --- /dev/null +++ b/src/pages/Model/ModelIndex/components/updateForm.tsx @@ -0,0 +1,164 @@ +import { apiModelClassificationList, apiModelEdit } from '@/services/business/model'; +import { isSuccessApi } from '@/utils/forApi'; +import { + ModalForm, + ProForm, + ProFormRadio, + ProFormSelect, + ProFormText, + ProFormTextArea, +} from '@ant-design/pro-components'; +import { FormattedMessage, useIntl } from '@umijs/max'; +import { Form, message } from 'antd'; +import React, { useEffect } from 'react'; +import { + proFormSmallItemStyleProps, + proFormSmallModelWidth, +} from '../../../../../config/defaultForm'; + +export type UpdateFormProps = { + updateModalOpen: boolean; + values: Record; + handleModal: () => void; + reload: any; +}; + +const UpdateForm: React.FC = (props) => { + const intl = useIntl(); + const [form] = Form.useForm>(); + function resetForm() { + form.resetFields(); + } + useEffect(() => { + if (props.updateModalOpen && props.values?.id) { + form.setFieldsValue({ ...props.values, classification: props.values?.classification_id }); + console.log(props.values, 'useEffect_values'); + } else { + resetForm(); + } + }, [props.updateModalOpen, props.values]); + return ( + > + className="gn_form gn_modal_form" + width={proFormSmallModelWidth} + title={intl.formatMessage({ + id: 'model_index.form.action.edit', + defaultMessage: '编辑', + })} + open={props.updateModalOpen} + form={form} + autoFocusFirstInput + modalProps={{ + destroyOnClose: true, + onCancel: () => props.handleModal(), + }} + submitTimeout={2000} + onFinish={async (values) => { + console.log(values, 'add_finish_values'); + let resp = await apiModelEdit({ + ...values, + id: props.values?.id, + }); + if (isSuccessApi(resp)) { + message.success( + intl.formatMessage({ id: 'common.action.success', defaultMessage: '$$$' }), + ); + props.reload(); + props.handleModal(); + } else { + message.error( + resp?.meta?.message || + intl.formatMessage({ id: 'common.action.failure', defaultMessage: '$$$' }), + ); + } + props.handleModal(); + return true; + }} + > + + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'model_index.create.form.name', + defaultMessage: '$$$', + })}`} + required={true} + rules={[ + { + required: true, + message: ( + + ), + }, + ]} + /> + } + radioType="button" + options={[ + { label: '经典算法', value: 1001 }, + { label: '机器学习', value: 1002 }, + ]} + required={true} + /> + } + placeholder={`${intl.formatMessage({ + id: 'common.please_select', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'model_index.create.form.industry', + defaultMessage: '$$$', + })}`} + required={true} + showSearch + debounceTime={500} + request={async () => { + const { data } = await apiModelClassificationList(); + console.log(data, 'apiModelClassificationList_data'); + return data?.data?.map((v: Record) => { + return { ...v, label: v.name, value: v.id }; + }); + }} + rules={[ + { + required: true, + message: ( + + ), + }, + ]} + /> + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'model_index.create.form.remark', + defaultMessage: '$$$', + })}`} + required={false} + disabled={false} + /> + + + ); +}; +export default UpdateForm; diff --git a/src/pages/Model/ModelIndex/index.tsx b/src/pages/Model/ModelIndex/index.tsx index ef3cbd6..74771f9 100644 --- a/src/pages/Model/ModelIndex/index.tsx +++ b/src/pages/Model/ModelIndex/index.tsx @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-04-07 14:02:00 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-05-30 16:39:17 + * @LastEditTime: 2024-05-31 14:36:33 * @FilePath: \general-ai-manage\src\pages\ModelIndex\ModelIndex.tsx * @Description: 模型列表首页 * @交互说明 @@ -17,11 +17,13 @@ import CategorizeUpdate from '@/components/CategorizeUpdate'; import TableActionCard from '@/components/TableActionCard'; import IsDelete from '@/components/TableActionCard/isDelete'; import { - apiBasemodelClassificationAdd, - apiBasemodelClassificationDelete, - apiBasemodelClassificationList, - apiBasemodelList, -} from '@/services/business/basemodel'; + apiModelClassificationAdd, + apiModelClassificationDelete, + apiModelClassificationList, + apiModelDelete, + apiModelInfo, + apiModelList, +} from '@/services/business/model'; import { isSuccessApi } from '@/utils/forApi'; import { ReactComponent as ResetIcon } from '/public/home/reset_icon.svg'; import { ReactComponent as SearchIcon } from '/public/home/search_icon.svg'; @@ -30,10 +32,11 @@ import { SearchOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { ProCard, ProForm, ProFormText, ProTable } from '@ant-design/pro-components'; import { Access, FormattedMessage, history, useAccess, useIntl } from '@umijs/max'; -import { Button } from 'antd'; +import { Button, message } from 'antd'; import React, { useEffect, useRef, useState } from 'react'; import { proTableCommonOptions, proTablePaginationOptions } from '../../../../config/defaultTable'; import CreateForm from './components/createForm'; +import UpdateForm from './components/updateForm'; import './index.less'; const ModelIndex: React.FC = () => { @@ -43,27 +46,40 @@ const ModelIndex: React.FC = () => { const actionRef = useRef(); const [querysData, setQuerysData] = useState>({}); // 列表查询参数 const [createModalOpen, setCreateModalOpen] = useState(false); + const [updateModalOpen, setUpdateModalOpen] = useState(false); + const [currentRow, setCurrentRow] = useState>({}); + // 设置分类 const [industryOpen, setIndustryOpen] = useState(false); // const [categoryFkIdIds, setCategoryFkIdIds] = useState([]); // 动态设置每页数量 const [currentPageSize, setCurrentPageSize] = useState(10); - // const [currentRow, setCurrentRow] = useState>({}); const [form] = ProForm.useForm(); // form 对象 /**新增 设置行业分类 删除 */ // 新增 const handleCreateModal = () => { setCreateModalOpen(!createModalOpen); }; + // 编辑 + const handleUpdateModal = () => { + setUpdateModalOpen(!updateModalOpen); + }; // 设置行业分类 const handleSetIndustry = () => { setIndustryOpen(!industryOpen); }; - /** - * @en-US The pop-up window of the distribution update window - * @zh-CN 分布更新窗口的弹窗 - * */ - // const [updateModalOpen, setUpdateModalOpen] = useState(false); + + // 模型信息 + async function loadDetail(record) { + const resp = await apiModelInfo({ id: record?.id }); + if (isSuccessApi(resp) && resp?.data) { + setCurrentRow({ ...resp?.data, id: record?.id }); + } + } + + function reloadList() { + actionRef.current?.reload(); + } // const [showDetail, setShowDetail] = useState(false); const columns: ProColumns>[] = [ { @@ -75,12 +91,12 @@ const ModelIndex: React.FC = () => { }, { title: , - dataIndex: 'type', + dataIndex: 'model_type', hideInSearch: true, render: (dom, record) => { let activeName = 'active_primary'; - switch (record.type) { - case '深度学习': + switch (record.model_type) { + case '机器学习': activeName = 'active3'; break; default: @@ -97,23 +113,29 @@ const ModelIndex: React.FC = () => { }, { title: , - dataIndex: 'industry', + dataIndex: 'classification_name', hideInSearch: true, }, { title: ( ), - dataIndex: 'defaultVersionFkId', + dataIndex: 'default_version', hideInSearch: true, }, { title: , - dataIndex: 'updateTime', + dataIndex: 'update_time', sorter: true, hideInSearch: true, valueType: 'dateTime', + render: (dom, record) => { + if (record.update_time === 'None') { + return '-'; + } + return dom; + }, }, { @@ -142,29 +164,37 @@ const ModelIndex: React.FC = () => { ), }, - // { - // key: 'update', - // renderDom: ( - // - // ), - // }, + { + key: 'update', + renderDom: ( + + ), + }, { key: 'destroy', renderDom: ( { - // TODO 调用删除接口 - // handleDestroy(record).then(() => {}); + console.log('删除成功'); + apiModelDelete({ id: record.id }).then(() => { + message.success( + intl.formatMessage({ + id: 'common.action.success', + defaultMessage: '$$$', + }), + ); + reloadList(); + }); }} > ), @@ -175,9 +205,6 @@ const ModelIndex: React.FC = () => { }, ]; - function reloadList() { - actionRef.current?.reload(); - } // 筛选查询 useEffect(() => { if (actionRef) { @@ -269,6 +296,7 @@ const ModelIndex: React.FC = () => { } > + {/* // TODO 需要控制表格溢出滚动高度 */} { let sort_select = sort[reqParams.orderKey]; reqParams.desc = sort_select === 'descend'; } - let resp = await apiBasemodelList({ ...reqParams, ...querysData }); + let resp = await apiModelList({ ...reqParams, ...querysData }); + if (!isSuccessApi(resp)) { + return { data: [], success: true }; + } return { data: resp.data.data, success: resp.success, @@ -327,24 +358,30 @@ const ModelIndex: React.FC = () => { handleModal={handleCreateModal} reload={reloadList} /> + { - let resp = await apiBasemodelClassificationList(); + let resp = await apiModelClassificationList(); return { data: resp.data, }; }} beforeCloseRequest={async (params, successRes) => { - let resp = await apiBasemodelClassificationDelete({ id: params.id }); + let resp = await apiModelClassificationDelete({ id: params.id }); if (isSuccessApi(resp)) { successRes(resp); } }} beforeAddRequest={async (params, successRes) => { - let resp = await apiBasemodelClassificationAdd({ name: params }); + let resp = await apiModelClassificationAdd({ name: params }); if (isSuccessApi(resp)) { successRes(resp); } diff --git a/src/pages/Model/ModelRuntimeLib/components/createForm.tsx b/src/pages/Model/ModelRuntimeLib/components/createForm.tsx index 68c5577..86a37c8 100644 --- a/src/pages/Model/ModelRuntimeLib/components/createForm.tsx +++ b/src/pages/Model/ModelRuntimeLib/components/createForm.tsx @@ -1,5 +1,5 @@ import { CommButton } from '@/components/Button'; -import { getModelRuntimeLibFilesList } from '@/services/testApi/model'; +import { apiModelHubSync } from '@/services/business/model'; import { ModalForm, ProForm, @@ -15,19 +15,10 @@ import { proFormSmallItemStyleProps, proFormSmallModelWidth, } from '../../../../../config/defaultForm'; -// @ts-ignore -export type FormValueType = { - target?: string; - template?: string; - type?: string; - time?: string; - frequency?: string; -} & Partial; export type CreateFormProps = { createModalOpen: boolean; handleModal: () => void; - values: Partial; reload: any; }; const CreateForm: React.FC = (props) => { @@ -188,7 +179,7 @@ const CreateForm: React.FC = (props) => { showSearch debounceTime={500} request={async () => { - const { data } = await getModelRuntimeLibFilesList(); + const { data } = await apiModelHubSync(); return data?.data?.map((v: Record) => { return { ...v, label: v.name, value: v.id }; }); diff --git a/src/pages/Model/ModelRuntimeLib/components/updateForm.tsx b/src/pages/Model/ModelRuntimeLib/components/updateForm.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/Model/ModelRuntimeLib/index.tsx b/src/pages/Model/ModelRuntimeLib/index.tsx index 7371444..b32e2ba 100644 --- a/src/pages/Model/ModelRuntimeLib/index.tsx +++ b/src/pages/Model/ModelRuntimeLib/index.tsx @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-04-08 10:36:06 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-05-17 16:21:21 + * @LastEditTime: 2024-05-31 14:20:31 * @FilePath: \general-ai-manage\src\pages\Model\ModelRuntimeLib\index.tsx * @Description: 模型运行库 * @交互说明 @@ -10,10 +10,13 @@ * 2. 新增、编辑、删除(模型运行库)功能 * */ + +import { apiModelHubList } from '@/services/business/model'; +import { isSuccessApi } from '@/utils/forApi'; + import { CommButton } from '@/components/Button'; import TableActionCard from '@/components/TableActionCard'; import IsDelete from '@/components/TableActionCard/isDelete'; -import { getModelRuntimeLibList } from '@/services/testApi/model'; import { SearchOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { ProCard, ProForm, ProFormText, ProTable } from '@ant-design/pro-components'; @@ -102,24 +105,6 @@ const ModelRuntimeLib: React.FC = () => { { - // // setCurrentRow(record); - // history.push('/home/model-detail'); - // // doToDetail(record); - // // setShowDetail(true); - // }} - // > - // - // - // ), - // }, { key: 'update', renderDom: ( @@ -236,6 +221,7 @@ const ModelRuntimeLib: React.FC = () => { } > + {/* // TODO 需要控制表格溢出滚动高度 */} { let sort_select = sort[reqParams.orderKey]; reqParams.desc = sort_select === 'descend'; } - let resp = await getModelRuntimeLibList({ ...reqParams, ...querysData }); + let resp = await apiModelHubList({ ...reqParams, ...querysData }); + if (isSuccessApi(resp)) { + return { data: [], success: true }; + } return { - data: resp.data.data, + data: resp.data?.data, success: resp.success, total: resp.data.count, current: current, diff --git a/src/pages/Project/BusinessInfo/components/algorithmCard.tsx b/src/pages/Project/BusinessInfo/components/algorithmCard.tsx index 23b442c..e0d52e8 100644 --- a/src/pages/Project/BusinessInfo/components/algorithmCard.tsx +++ b/src/pages/Project/BusinessInfo/components/algorithmCard.tsx @@ -48,7 +48,7 @@ const AlgorithmCard: React.FC = ({ info }) => { className="tag_type" style={{ background: - info.typeName === '深度学习' + info.typeName === '机器学习' ? 'linear-gradient( 180deg, #FFB21A 0%, #FF9B3E 100%)' : 'linear-gradient(180deg, #21c7ff 0%, #428cff 100%)', }} diff --git a/src/pages/Project/BusinessProject/index.less b/src/pages/Project/BusinessProject/index.less index 805e043..8eea6f1 100644 --- a/src/pages/Project/BusinessProject/index.less +++ b/src/pages/Project/BusinessProject/index.less @@ -4,7 +4,6 @@ header { height: 102px; background-color: #dfecff; - // TODO 0517 缺少背景图 background-image: url('../../../../public/home/business_line.svg'); background-repeat: no-repeat; background-position: center center; diff --git a/src/pages/User/Login/index.tsx b/src/pages/User/Login/index.tsx index ee91496..c826cc2 100644 --- a/src/pages/User/Login/index.tsx +++ b/src/pages/User/Login/index.tsx @@ -187,7 +187,7 @@ const Login: React.FC = () => { } }; - // TODO 测试使用admin + // TEST 测试使用admin const [form] = Form.useForm>(); useEffect(() => { diff --git a/src/services/business/basemodel.ts b/src/services/business/basemodel.ts deleted file mode 100644 index 558522b..0000000 --- a/src/services/business/basemodel.ts +++ /dev/null @@ -1,308 +0,0 @@ -/* - * @Author: donghao donghao@supervision.ltd - * @Date: 2024-05-24 17:57:19 - * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-05-30 14:44:21 - * @FilePath: \general-ai-platform-web\src\services\business\basemodel.ts - * @Description: 基础模型 - */ -// @ts-ignore -/* eslint-disable */ -import { request } from '@umijs/max'; - -/** 基础模型管理 */ -// 添加模型分类 -export async function apiBasemodelClassificationAdd(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/classification/add`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 模型分类列表 -export async function apiBasemodelClassificationList(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/classification/list`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 删除模型分类 -export async function apiBasemodelClassificationDelete( - body: any, - options?: { [key: string]: any }, -) { - return request( - `/api/v1/basemodel/classification/delete`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 添加模型 -export async function apiBasemodelAdd(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/add`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 模型列表 -export async function apiBasemodelList(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/list`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 删除模型 -export async function apiBasemodelDelete(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/delete`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} - -// 编辑模型 -export async function apiBasemodelEdit(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/edit`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 模型信息 -export async function apiBasemodelInfo(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/info`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -/** 模型版本 */ -// 添加模型版本 -export async function apiBasemodelVersionAdd(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/version/add`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 编辑模型版本 -export async function apiBasemodelVersionEdit(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/version/edit`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 模型版本列表 -export async function apiBasemodelVersionList(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/version/list`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} - -// 模型版本信息 -export async function apiBasemodelVersionInfo(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/version/info`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} - -// 设置模型默认版本 -export async function apiBasemodelVersionSetdefault(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/version/setdefault`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} - -// 删除模型版本 -export async function apiBasemodelVersionDelete(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/version/delete`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -/** 模型运行库 */ -// 添加模型运行库 -export async function apiBasemodelHubAdd(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/hub/add`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 编辑模型运行库 -export async function apiBasemodelHubEdit(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/hub/edit`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 模型运行库列表 -export async function apiBasemodelHubList(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/hub/list`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} -// 删除模型运行库 -export async function apiBasemodelHubDelete(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/hub/delete`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} - -// 模型运行库信息 -export async function apiBasemodelHubInfo(body: any, options?: { [key: string]: any }) { - return request( - `/api/v1/basemodel/hub/info`, - { - method: 'POST', - headers: { - // 'Content-Type': 'application/json', - // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - }, - data: body, - ...(options || {}), - }, - ); -} diff --git a/src/services/business/entity.ts b/src/services/business/entity.ts index 80410b9..891a042 100644 --- a/src/services/business/entity.ts +++ b/src/services/business/entity.ts @@ -365,12 +365,12 @@ export async function apiEntityNodesDeviceModels(body: any, options?: { [key: st } // 企业节点,节点信息 -> 设备列表 -> 基础模型配置 -> 基础模型参数配置 -export async function apiEntityNodesDeviceBasemodelCustomConfig( +export async function apiEntityNodesDeviceModelCustomConfig( body: any, options?: { [key: string]: any }, ) { return request( - `/api/v1/enterprise/entity/nodes/device/basemodel/custom/config`, + `/api/v1/enterprise/entity/nodes/device/model/custom/config`, { method: 'POST', headers: { diff --git a/src/services/business/file.ts b/src/services/business/file.ts index 81fd6b8..78a794c 100644 --- a/src/services/business/file.ts +++ b/src/services/business/file.ts @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-05-24 17:57:19 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-05-30 14:14:24 + * @LastEditTime: 2024-05-31 15:11:29 * @FilePath: \general-ai-platform-web\src\services\business\file.ts * @Description: api 文件 */ @@ -18,6 +18,7 @@ export async function apiFileUpload(body: any, options?: { [key: string]: any }) { method: 'POST', headers: { + 'Content-Type': 'multipart/form-data', // 'Content-Type': 'application/json', // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, diff --git a/src/services/business/model.ts b/src/services/business/model.ts index 6690e6e..bd4eb76 100644 --- a/src/services/business/model.ts +++ b/src/services/business/model.ts @@ -2,7 +2,7 @@ * @Author: donghao donghao@supervision.ltd * @Date: 2024-05-24 17:57:19 * @LastEditors: donghao donghao@supervision.ltd - * @LastEditTime: 2024-05-30 14:58:40 + * @LastEditTime: 2024-05-31 14:19:28 * @FilePath: \general-ai-platform-web\src\services\business\model.ts * @Description: api 模型 */ @@ -88,3 +88,312 @@ export async function apiModelDeploymentInfo(body: any, options?: { [key: string }, ); } + +/** 基础模型管理 */ +// 添加模型分类 +export async function apiModelClassificationAdd(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/classification/add`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 模型分类列表 +export async function apiModelClassificationList(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/classification/list`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 删除模型分类 +export async function apiModelClassificationDelete(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/classification/delete`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 添加模型 +export async function apiModelAdd(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/add`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 模型列表 +export async function apiModelList(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/list`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 删除模型 +export async function apiModelDelete(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/delete`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} + +// 编辑模型 +export async function apiModelEdit(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/edit`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 模型信息 +export async function apiModelInfo(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/info`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +/** 模型版本 */ +// 添加模型版本 +export async function apiModelVersionAdd(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/version/add`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 编辑模型版本 +export async function apiModelVersionEdit(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/version/edit`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 模型版本列表 +export async function apiModelVersionList(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/version/list`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} + +// 模型版本信息 +export async function apiModelVersionInfo(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/version/info`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} + +// 设置模型默认版本 +export async function apiModelVersionSetdefault(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/version/setdefault`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} + +// 删除模型版本 +export async function apiModelVersionDelete(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/version/delete`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +/** 模型运行库 */ +// 查询docker registry中的镜像 +export async function apiModelHubSync(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/hub/sync`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 添加模型运行库 +export async function apiModelHubAdd(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/hub/add`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 编辑模型运行库 +export async function apiModelHubEdit(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/hub/edit`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 模型运行库列表 +export async function apiModelHubList(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/hub/list`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} +// 删除模型运行库 +export async function apiModelHubDelete(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/hub/delete`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} + +// 模型运行库信息 +export async function apiModelHubInfo(body: any, options?: { [key: string]: any }) { + return request( + `/api/v1/model/hub/info`, + { + method: 'POST', + headers: { + // 'Content-Type': 'application/json', + // "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" + }, + data: body, + ...(options || {}), + }, + ); +} diff --git a/src/services/system/typings.d.ts b/src/services/system/typings.d.ts index ccae38d..331fa7d 100644 --- a/src/services/system/typings.d.ts +++ b/src/services/system/typings.d.ts @@ -1,5 +1,5 @@ declare namespace API { - /**basemodel api */ + /**model api */ /**device api */ @@ -19,7 +19,6 @@ declare namespace API { /**file api */ - /**model api */ /**user api */ type LOGIN_DATA = { expiresAt?: number;