From 14fd60b49e6cb4a1a02816234188bba4671c70f3 Mon Sep 17 00:00:00 2001 From: zhoux Date: Fri, 3 Nov 2023 17:18:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=85=8D=E7=BD=AEcommon=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84delete=E6=96=87=E6=A1=88=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=EF=BC=8C=E8=A1=A8=E6=A0=BC=E5=88=97=E4=B8=AD=E6=96=B0=E5=A2=9E?= =?UTF-8?q?badge=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/zh-CN/common.ts | 11 + src/locales/zh-CN/project.ts | 23 +- .../ProjectList/components/UpdateForm.tsx | 266 +++++++--- src/pages/Project/ProjectList/index.tsx | 17 +- .../AlgorithmModelList/index copy.tsx | 493 ------------------ .../Resource/AlgorithmModelList/index.tsx | 78 +-- 6 files changed, 289 insertions(+), 599 deletions(-) delete mode 100644 src/pages/Resource/AlgorithmModelList/index copy.tsx diff --git a/src/locales/zh-CN/common.ts b/src/locales/zh-CN/common.ts index fdc0961..a17c10b 100644 --- a/src/locales/zh-CN/common.ts +++ b/src/locales/zh-CN/common.ts @@ -1,6 +1,16 @@ +/* + * @Author: zhoux zhouxia@supervision.ltd + * @Date: 2023-11-01 13:56:33 + * @LastEditors: zhoux zhouxia@supervision.ltd + * @LastEditTime: 2023-11-03 16:33:59 + * @FilePath: \general-ai-platform-web\src\locales\zh-CN\common.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ export default { 'common.modal.table.update.title': '更新表单', 'common.modal.table.create.title': '新增表单', + 'common.modal.table.delete.title': '确定要删除吗?', + 'common.modal.table.delete.content': '确定删除吗,删除后将无法找回,请谨慎操作', 'common.enable': '开启', 'common.disable': '禁用', 'common.yes': '是', @@ -31,4 +41,5 @@ export default { 'common.confirm_publish': '确认发布', 'common.set_default': '设为默认版本', 'common.bind_device': '绑定设备', + "common.tip.title": '温馨提示' } diff --git a/src/locales/zh-CN/project.ts b/src/locales/zh-CN/project.ts index a9db8f7..ecdfeb6 100644 --- a/src/locales/zh-CN/project.ts +++ b/src/locales/zh-CN/project.ts @@ -1 +1,22 @@ -export const project: {[key: string]: string} = {'project.project.table.list.id': 'ID', 'project.project.table.list.name': '项目名称', 'project.project.table.list.code': '项目代码', 'project.project.table.list.info': '项目简介', 'project.project.table.list.inferConfig': '推理配置', 'project.project.table.list.isEnable': '是否启用', 'project.project.table.list.remark': '备注', 'project.project.table.list.createTime': '创建时间', 'project.project.table.list.updateTime': '更新时间', 'project.project.table.rule.required.name': '项目名称为必填项', 'project.project.table.rule.required.code': '项目代码为必填项', 'project.project.table.rule.required.info': '项目简介为必填项'} +/* + * @Author: zhoux zhouxia@supervision.ltd + * @Date: 2023-11-01 13:56:33 + * @LastEditors: zhoux zhouxia@supervision.ltd + * @LastEditTime: 2023-11-03 16:28:33 + * @FilePath: \general-ai-platform-web\src\locales\zh-CN\project.ts + * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + */ +export const project: { [key: string]: string } = { + 'project.project.table.list.id': 'ID', + 'project.project.table.list.name': '项目名称', + 'project.project.table.list.code': '项目代码', + 'project.project.table.list.info': '项目简介', + 'project.project.table.list.inferConfig': '推理配置', + 'project.project.table.list.isEnable': '是否启用', + 'project.project.table.list.remark': '备注', + 'project.project.table.list.createTime': '创建时间', + 'project.project.table.list.updateTime': '更新时间', + 'project.project.table.rule.required.name': '项目名称为必填项', + 'project.project.table.rule.required.code': '项目代码为必填项', + 'project.project.table.rule.required.info': '项目简介为必填项', +}; diff --git a/src/pages/Project/ProjectList/components/UpdateForm.tsx b/src/pages/Project/ProjectList/components/UpdateForm.tsx index bfad290..54f8e2c 100644 --- a/src/pages/Project/ProjectList/components/UpdateForm.tsx +++ b/src/pages/Project/ProjectList/components/UpdateForm.tsx @@ -1,29 +1,43 @@ -import {ModalForm,ProForm} from '@ant-design/pro-components';import {ProFormText} from '@ant-design/pro-components';import {ProFormSwitch} from '@ant-design/pro-components';import {ProFormDateTimePicker} from '@ant-design/pro-components'; -import {FormattedMessage, useIntl} from '@umijs/max'; -import {putProjectUpdateProject} from "@/services/project/Project"; -import React, {useState} from 'react'; -import {Button, Form, message} from 'antd'; +import { putProjectUpdateProject } from '@/services/project/Project'; +import { + ModalForm, + ProForm, + ProFormCheckbox, + ProFormDateTimePicker, + ProFormSwitch, + ProFormText, +} from '@ant-design/pro-components'; +import { FormattedMessage, useIntl } from '@umijs/max'; +import { Form, message } from 'antd'; +import React from 'react'; export type FormValueType = { - target?: string; - template?: string; - type?: string; - time?: string; - frequency?: string; - } & Partial; + target?: string; + template?: string; + type?: string; + time?: string; + frequency?: string; +} & Partial; - export type UpdateFormProps = { - updateModalOpen: boolean; - handleModal: () => void; - values: Partial; - reload: any; - }; -const UpdateForm: React.FC = (props) => { +export type UpdateFormProps = { + updateModalOpen: boolean; + handleModal: () => void; + values: Partial; + reload: any; +}; + +/**styles 配置 */ +const formContainerWidth: number = 512; +const formItemStyleProps: Record = { + width: formContainerWidth, +}; +const UpdateForm: React.FC = (props) => { const intl = useIntl(); const [form] = Form.useForm(); return ( + width={560} title={intl.formatMessage({ id: 'common.modal.table.update.title', defaultMessage: '$$$', @@ -37,63 +51,177 @@ const UpdateForm: React.FC = (props) => { }} submitTimeout={2000} onFinish={async (values) => { - putProjectUpdateProject(values).then(()=>{ - message.success(intl.formatMessage({id: 'common.success', defaultMessage: '$$$'})) - props.reload() - }).catch(()=>{ - message.error(intl.formatMessage({id: 'common.failure', defaultMessage: '$$$'})) - }) + putProjectUpdateProject(values) + .then(() => { + message.success(intl.formatMessage({ id: 'common.success', defaultMessage: '$$$' })); + props.reload(); + }) + .catch(() => { + message.error(intl.formatMessage({ id: 'common.failure', defaultMessage: '$$$' })); + }); props.handleModal(); return true; }} > - - - -} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'project.project.table.list.name', defaultMessage: '$$$'})}`} required={true} initialValue={props.values.name} disabled={false} - rules={[ - { - required: true, - message: ( - - ), - }, - ]} + + + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'project.project.table.list.name', + defaultMessage: '$$$', + })}`} + required={true} + initialValue={props.values.name} + disabled={false} + rules={[ + { + required: true, + message: ( + -} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'project.project.table.list.code', defaultMessage: '$$$'})}`} required={true} initialValue={props.values.code} disabled={false} - rules={[ - { - required: true, - message: ( - - ), - }, - ]} + ), + }, + ]} + /> + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'project.project.table.list.code', + defaultMessage: '$$$', + })}`} + required={true} + initialValue={props.values.code} + disabled={false} + rules={[ + { + required: true, + message: ( + -} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'project.project.table.list.info', defaultMessage: '$$$'})}`} required={true} initialValue={props.values.info} disabled={false} - rules={[ - { - required: true, - message: ( - - ), - }, - ]} + ), + }, + ]} + /> + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'project.project.table.list.info', + defaultMessage: '$$$', + })}`} + required={true} + initialValue={props.values.info} + disabled={false} + rules={[ + { + required: true, + message: ( + -} initialValue={props.values.isEnable} disabled={false}/> -} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'project.project.table.list.remark', defaultMessage: '$$$'})}`} required={false} initialValue={props.values.remark} disabled={false}/> -} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'project.project.table.list.createTime', defaultMessage: '$$$'})}`} required={false} initialValue={props.values.createTime} disabled={true}/> -} placeholder={`${intl.formatMessage({id: 'common.please_input', defaultMessage: '$$$'})}${intl.formatMessage({id: 'project.project.table.list.updateTime', defaultMessage: '$$$'})}`} required={false} initialValue={props.values.updateTime} disabled={true}/> - -)} + ), + }, + ]} + /> + } + initialValue={props.values.isEnable} + disabled={false} + /> + {/* } + options={[{label: '启用此项目', value: true}]} + /> */} + {/*
+
+ {} +
+ + 启用此项目 +
*/} + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'project.project.table.list.remark', + defaultMessage: '$$$', + })}`} + required={false} + initialValue={props.values.remark} + disabled={false} + /> + + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'project.project.table.list.createTime', + defaultMessage: '$$$', + })}`} + required={false} + initialValue={props.values.createTime} + disabled={true} + /> + + } + placeholder={`${intl.formatMessage({ + id: 'common.please_input', + defaultMessage: '$$$', + })}${intl.formatMessage({ + id: 'project.project.table.list.updateTime', + defaultMessage: '$$$', + })}`} + required={false} + initialValue={props.values.updateTime} + disabled={true} + /> +
+ + ); +}; export default UpdateForm; diff --git a/src/pages/Project/ProjectList/index.tsx b/src/pages/Project/ProjectList/index.tsx index 69f5e12..3e7bc98 100644 --- a/src/pages/Project/ProjectList/index.tsx +++ b/src/pages/Project/ProjectList/index.tsx @@ -7,7 +7,7 @@ import { PlusOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; import { FooterToolbar, PageContainer, ProTable } from '@ant-design/pro-components'; import { Access, FormattedMessage, history, useAccess, useIntl } from '@umijs/max'; -import { Button, message } from 'antd'; +import { Badge, Button, message } from 'antd'; import React, { useRef, useState } from 'react'; import { ColumnDrawer } from './components/ColumnDrawer'; import MyCreateForm from './components/MyCreateForm'; @@ -121,6 +121,21 @@ const ProjectList: React.FC = () => { onFilter: true, hideInSearch: true, valueType: 'switch', + render: (_, item) => { + return ( + <> + + } + > + + ); + }, }, { diff --git a/src/pages/Resource/AlgorithmModelList/index copy.tsx b/src/pages/Resource/AlgorithmModelList/index copy.tsx deleted file mode 100644 index 5054751..0000000 --- a/src/pages/Resource/AlgorithmModelList/index copy.tsx +++ /dev/null @@ -1,493 +0,0 @@ -import { ColumnDrawer as ModelCategoryColumnDrawer } from '@/pages/Resource/ModelCategoryList/components/ColumnDrawer'; -import { ModelCategoryColumns } from '@/pages/Resource/ModelCategoryList/components/Columns'; -import { - deleteAlgorithmModelDeleteAlgorithmModel, - deleteAlgorithmModelDeleteAlgorithmModelByIds, - postAlgorithmModelGetAlgorithmModelList, -} from '@/services/resource/AlgorithmModel'; -import { - postModelCategoryGetModelCategoryById, - postModelCategoryGetModelCategoryFkSelect, - postModelCategoryGetModelCategoryNames, -} from '@/services/resource/ModelCategory'; -import { ExclamationCircleOutlined, PlusOutlined } from '@ant-design/icons'; -import type { ActionType, ProColumns } from '@ant-design/pro-components'; -import { PageContainer, ProFormSelect, ProFormText, ProTable } from '@ant-design/pro-components'; -import { Access, FormattedMessage, history, useAccess, useIntl } from '@umijs/max'; -import { Button, Modal, Popconfirm, message } from 'antd'; -import React, { useRef, useState } from 'react'; -import { ColumnDrawer } from './components/ColumnDrawer'; -import CreateForm from './components/CreateForm'; -import UpdateForm from './components/UpdateForm'; -const AlgorithmModelList: React.FC = () => { - /** - * @en-US Pop-up window of new window - * @zh-CN 新建窗口的弹窗 - * */ - const [createModalOpen, setCreateModalOpen] = useState(false); - /** - * @en-US The pop-up window of the distribution update window - * @zh-CN 分布更新窗口的弹窗 - * */ - const [updateModalOpen, setUpdateModalOpen] = useState(false); - const [showDetail, setShowDetail] = useState(false); - /** - * @en-US International configuration - * @zh-CN 国际化配置 - * */ - const access = useAccess(); - const intl = useIntl(); - const actionRef = useRef(); - // TODO 动态设置每页数量 - const [currentPageSize, setCurrentPageSize] = useState(10); - const [currentRow, setCurrentRow] = useState(); - const [selectedRowsState, setSelectedRows] = useState([]); - const [category_fk_id_open, set_category_fk_id_open] = useState(false); - const [category_fk_id, set_category_fk_id] = useState(); - const [category_fk_id_column_open, set_category_fk_id_column_open] = useState(false); - const [categoryFkIdIds, setCategoryFkIdIds] = useState([]); - const [categoryFkIdMap, setCategoryFkIdMap] = useState<{ [key: number]: string }>({}); - const handle_category_fk_id = (id: any) => { - if (category_fk_id_open) { - set_category_fk_id(undefined); - set_category_fk_id_open(false); - } else { - postModelCategoryGetModelCategoryById({ id: id }).then((resp) => { - set_category_fk_id(resp.data.modelCategory); - set_category_fk_id_open(true); - }); - } - }; - const handle_category_fk_id_column_open = () => { - if (category_fk_id_column_open) { - set_category_fk_id_column_open(false); - } else { - postModelCategoryGetModelCategoryNames({ ids: categoryFkIdIds }).then((resp) => { - let a: any = {}; - resp.data.list.forEach((v: any) => { - if (v.id) { - a[v.id] = v.name; - } - }); - setCategoryFkIdMap(a); - }); - set_category_fk_id_column_open(true); - } - }; - - const handleUpdateModal = () => { - if (updateModalOpen) { - setUpdateModalOpen(false); - setCurrentRow(undefined); - } else { - setUpdateModalOpen(true); - } - }; - const handleCreateModal = () => { - if (createModalOpen) { - setCreateModalOpen(false); - setCurrentRow(undefined); - } else { - setCreateModalOpen(true); - } - }; - const handleColumnDrawer = () => { - if (showDetail) { - setShowDetail(false); - setCurrentRow(undefined); - } else { - setShowDetail(true); - } - }; - const handleDestroy = async (selectedRow: API.AlgorithmModel) => { - deleteAlgorithmModelDeleteAlgorithmModel({ id: selectedRow.id }) - .then(() => { - message.success(intl.formatMessage({ id: 'common.success', defaultMessage: '$$$' })); - actionRef.current?.reload(); - }) - .catch(() => { - message.error(intl.formatMessage({ id: 'common.failure', defaultMessage: '$$$' })); - }); - }; - - const columns: ProColumns[] = [ - { - title: , - dataIndex: 'id', - sorter: true, - render: (dom, entity) => { - return ( - { - setCurrentRow(entity); - setShowDetail(true); - }} - > - {dom} - - ); - }, - //TODO 默认使用renderFormItem update1101 - renderFormItem: () => { - return ( - <> - - - ); - }, - }, - - { - title: ( - - ), - dataIndex: 'name', - hideInSearch: true, - }, - - { - title: ( - - ), - dataIndex: 'categoryFkId', - hideInSearch: false, - render: (text, record) => { - if (category_fk_id_column_open) { - return ( - { - handle_category_fk_id(record.categoryFkId); - }} - > - {record?.categoryFkId ? categoryFkIdMap[record.categoryFkId] : undefined} - - ); - } else { - return ( - { - handle_category_fk_id(record.categoryFkId); - }} - > - {record.categoryFkId} - - ); - } - }, - renderFormItem: () => { - return ( - // value 和 onchange 会通过 form 自动注入。 - { - const resp = await postModelCategoryGetModelCategoryFkSelect({ - keyword: keyWord?.keyWords || '', - }); - return resp.data.list.map((v: any) => { - return { - label: v.name, - value: v.id, - }; - }); - }} - /> - ); - }, - }, - { - title: ( - - ), - dataIndex: 'defaultVersionFkId', - hideInSearch: true, - }, - - { - title: ( - - ), - dataIndex: 'remark', - hideInSearch: true, - }, - - { - title: ( - - ), - dataIndex: 'createTime', - sorter: true, - hideInSearch: true, - valueType: 'dateTime', - }, - - { - title: ( - - ), - dataIndex: 'updateTime', - sorter: true, - hideInSearch: true, - valueType: 'dateTime', - }, - - { - title: , - dataIndex: 'option', - valueType: 'option', - fixed: 'right', - render: (_, record) => [ - - { - setUpdateModalOpen(true); - setCurrentRow(record); - }} - > - - - {/* update1101 */} - { - handleDestroy(record).then(() => {}); - }} - > - - - , - ], - }, - ]; - return ( - - - headerTitle={intl.formatMessage({ - id: 'pages.searchTable.title', - defaultMessage: '$$$', - })} - scroll={{ y: 500 }} - options={{ fullScreen: true, setting: true, density: true, reload: true }} - actionRef={actionRef} - rowKey="key" - search={{ - labelWidth: 120, - }} - onDataSourceChange={(data) => { - let CategoryFkIdIds: any = data.map((v) => { - return v.categoryFkId; - }); - setCategoryFkIdIds(CategoryFkIdIds); - }} - pagination={{ - showSizeChanger: true, - pageSize: currentPageSize, - onChange: (page, pageSize) => setCurrentPageSize(pageSize), - }} - columnsState={{ - persistenceKey: 'algorithm_model_list', - persistenceType: 'localStorage', - }} - tableAlertOptionRender={() => { - return ( - <> - {selectedRowsState?.length > 0 && ( - - )} - - ); - }} - toolBarRender={() => [ - - - - - , - ]} - request={async (params = {}, sort) => { - const { current, ...rest } = params; - const reqParams = { - page: current, - desc: false, - orderKey: '', - ...rest, - }; - if (sort && Object.keys(sort).length) { - reqParams.orderKey = Object.keys(sort)[0]; - let sort_select = sort[reqParams.orderKey]; - reqParams.desc = sort_select === 'descend'; - } - let resp = await postAlgorithmModelGetAlgorithmModelList({ ...reqParams }); - return { - data: resp.data.list.map((v: API.AlgorithmModel) => { - return { ...v, key: v.id }; - }), - success: resp.success, - total: resp.data.total, - current: resp.data.page, - pageSize: resp.data.pageSize, - }; - }} - columns={columns} - rowSelection={{ - onChange: (_, selectedRows) => { - setSelectedRows(selectedRows); - }, - }} - /> - {/* TODO 不明显需要重新设计 底部已选项操作固定栏 */} - {/* {selectedRowsState?.length > 0 && ( - - {' '} - {selectedRowsState.length}{' '} - - - } - > - - - )} */} - {/* 列表关联操作项组件 */} - - - - - - - ); -}; - -export default AlgorithmModelList; diff --git a/src/pages/Resource/AlgorithmModelList/index.tsx b/src/pages/Resource/AlgorithmModelList/index.tsx index cb743fc..0779ff7 100644 --- a/src/pages/Resource/AlgorithmModelList/index.tsx +++ b/src/pages/Resource/AlgorithmModelList/index.tsx @@ -12,19 +12,12 @@ import { } from '@/services/resource/ModelCategory'; import { ExclamationCircleOutlined, PlusOutlined } from '@ant-design/icons'; import type { ActionType, ProColumns } from '@ant-design/pro-components'; -import { - FooterToolbar, - PageContainer, - ProFormSelect, - ProFormText, - ProTable, -} from '@ant-design/pro-components'; +import { PageContainer, ProFormSelect, ProFormText, ProTable } from '@ant-design/pro-components'; import { Access, FormattedMessage, history, useAccess, useIntl } from '@umijs/max'; import { Button, Modal, Popconfirm, message } from 'antd'; import React, { useRef, useState } from 'react'; -import { ColumnDrawer } from './components/ColumnDrawer'; -import {ModelVersionListDrawer} from "./components/ModelVersionListDrawer"; import CreateForm from './components/CreateForm'; +import { ModelVersionListDrawer } from './components/ModelVersionListDrawer'; import UpdateForm from './components/UpdateForm'; const AlgorithmModelList: React.FC = () => { /** @@ -46,7 +39,7 @@ const AlgorithmModelList: React.FC = () => { const intl = useIntl(); const actionRef = useRef(); // TODO 动态设置每页数量 - const [currentPageSize, setCurrentPageSize] = useState(10) + const [currentPageSize, setCurrentPageSize] = useState(10); const [currentRow, setCurrentRow] = useState(); const [selectedRowsState, setSelectedRows] = useState([]); const [category_fk_id_open, set_category_fk_id_open] = useState(false); @@ -140,15 +133,13 @@ const AlgorithmModelList: React.FC = () => { <> @@ -201,8 +192,8 @@ const AlgorithmModelList: React.FC = () => { // value 和 onchange 会通过 form 自动注入。 { { - setCurrentRow(record) + setCurrentRow(record); setShowDetail(true); }} > @@ -301,10 +292,19 @@ const AlgorithmModelList: React.FC = () => { {/* update1101 */} { handleDestroy(record).then(() => {}); }} @@ -329,7 +329,7 @@ const AlgorithmModelList: React.FC = () => { actionRef={actionRef} rowKey="key" search={{ - labelWidth: 120 + labelWidth: 120, }} onDataSourceChange={(data) => { let CategoryFkIdIds: any = data.map((v) => { @@ -340,7 +340,7 @@ const AlgorithmModelList: React.FC = () => { pagination={{ showSizeChanger: true, pageSize: currentPageSize, - onChange: (page, pageSize) => setCurrentPageSize(pageSize) + onChange: (page, pageSize) => setCurrentPageSize(pageSize), }} columnsState={{ persistenceKey: 'algorithm_model_list', @@ -355,19 +355,27 @@ const AlgorithmModelList: React.FC = () => { onClick={async () => { Modal.confirm({ icon: , - title: "确定要删除此模型吗?", - content: ("确定删除这个模型吗,删除后将无法找回,请谨慎操作"), - cancelText: '', - + title: ( + intl.formatMessage({ id: 'common.modal.table.delete.title', defaultMessage: '$$$' }) + ), + content:( + intl.formatMessage({ id: 'common.modal.table.delete.content', defaultMessage: '$$$' }) + ), + okText: ( + intl.formatMessage({ id: 'common.yes', defaultMessage: '$$$' }) + ), + cancelText: ( + intl.formatMessage({ id: 'common.no', defaultMessage: '$$$' }) + ), onOk() { - // TODO 未对接批量删除接口 - deleteAlgorithmModelDeleteAlgorithmModelByIds({ - ids: selectedRowsState.map((v: API.AlgorithmModel) => { - return v.id as number; - }), - }).then(() => { - actionRef.current?.reloadAndRest?.(); - }); + // TODO 未对接批量删除接口 + deleteAlgorithmModelDeleteAlgorithmModelByIds({ + ids: selectedRowsState.map((v: API.AlgorithmModel) => { + return v.id as number; + }), + }).then(() => { + actionRef.current?.reloadAndRest?.(); + }); }, onCancel() { console.log('Cancel');