feat 项目部署功能完善

develop
chunquansang 1 year ago
parent e51acef3aa
commit 953bdf2a40

@ -3,7 +3,7 @@ import {
postDeviceGroupGetDeviceGroupTree, postDeviceGroupGetDeviceGroupTree,
} from '@/services/device/DeviceGroup'; } from '@/services/device/DeviceGroup';
import { postGetProjectByGroupId } from '@/services/project/Project'; import { postProjectGetProjectByGroupId } from '@/services/project/Project';
import { postModelVersionGetModelVersionListByIds } from '@/services/resource/ModelVersion'; import { postModelVersionGetModelVersionListByIds } from '@/services/resource/ModelVersion';
import { FormattedMessage } from '@@/exports'; import { FormattedMessage } from '@@/exports';
import { RedoOutlined } from '@ant-design/icons'; import { RedoOutlined } from '@ant-design/icons';
@ -42,7 +42,7 @@ const AlgorithmSetting: React.FC = () => {
const [nodeTreeData, setNodeTreeData] = React.useState<DataNode[]>([]); const [nodeTreeData, setNodeTreeData] = React.useState<DataNode[]>([]);
const [selectNodes, setSelectNodes] = React.useState<any[]>([]); const [selectNodes, setSelectNodes] = React.useState<any[]>([]);
const [currentRow, setCurrentRow] = useState<API.DeviceGroup>(); const [currentRow, setCurrentRow] = useState<API.DeviceGroup>();
const [currentCard, setCurrentCard] = useState<API.DeviceModelInGroup>(); const [currentCard, setCurrentCard] = useState();
const [selectedRowsState, setSelectedRows] = useState<API.DeviceGroup[]>([]); const [selectedRowsState, setSelectedRows] = useState<API.DeviceGroup[]>([]);
const [tabs, setTabs] = useState([]); const [tabs, setTabs] = useState([]);
@ -50,11 +50,11 @@ const AlgorithmSetting: React.FC = () => {
const [modelVersionData, setModelVersionData] = useState<any[]>([]); const [modelVersionData, setModelVersionData] = useState<any[]>([]);
const [projectData, setProjectData] = useState<any>({}); const [projectData, setProjectData] = useState<any>({});
const [targetKeys, setTargetKeys] = useState<string[]>([]); const [targetKeys, setTargetKeys] = useState<string[]>([]);
const [projectConfigId, setProjectConfigId] = useState<number>(0)
const handleUpdateModal = () => { const handleUpdateModal = () => {
if (updateModalOpen) { if (updateModalOpen) {
setUpdateModalOpen(false); setUpdateModalOpen(false);
setCurrentCard(undefined); setProjectConfigId(0);
} else { } else {
setUpdateModalOpen(true); setUpdateModalOpen(true);
} }
@ -169,8 +169,9 @@ const AlgorithmSetting: React.FC = () => {
// TODO 操作左侧网点数据节点, 项目列表数据变更 // TODO 操作左侧网点数据节点, 项目列表数据变更
function fetchProjectByGroupId(record: Record<string, any>) { function fetchProjectByGroupId(record: Record<string, any>) {
// console.log('clickTreeNode', projectCardListRef.current) // console.log('clickTreeNode', projectCardListRef.current)
postGetProjectByGroupId({ id: record.id }).then((resp) => { postProjectGetProjectByGroupId({ id: record.id }).then((resp) => {
let tab_data = (resp?.data?.list || []).map((v: any) => { let tab_data = (resp?.data?.list || []).map((v: any) => {
console.log(resp.data.list)
let model_data = ([...v?.models] || []).map((item: any) => let model_data = ([...v?.models] || []).map((item: any) =>
( (
{ {
@ -182,9 +183,9 @@ const AlgorithmSetting: React.FC = () => {
actions: [ actions: [
<Button <Button
type="link" type="link"
key={item.id} key={item.configId}
onClick={() => { onClick={() => {
setCurrentCard({ groupFkId: record.id, modelFkId: item.id }); setProjectConfigId(item.configId);
handleUpdateModal(); handleUpdateModal();
}} }}
> >
@ -389,10 +390,10 @@ const AlgorithmSetting: React.FC = () => {
</ProCard> </ProCard>
<UpdateForm <UpdateForm
updateModalOpen={updateModalOpen} updateModalOpen={updateModalOpen}
values={currentCard || {}}
handleModal={handleUpdateModal} handleModal={handleUpdateModal}
groupId={currentRow?.id || 0}
reload={actionRef.current?.reload} reload={actionRef.current?.reload}
/> projectModelConfigId={projectConfigId}/>
</PageContainer> </PageContainer>
); );
}; };

@ -6,20 +6,12 @@ import difference from 'lodash/difference';
import {randomInt} from "@antv/xflow-extension"; import {randomInt} from "@antv/xflow-extension";
import {ProTable} from "@ant-design/pro-components"; import {ProTable} from "@ant-design/pro-components";
interface RecordType { interface RecordType extends API.Device{
key: string; key: string
title: string;
description: string;
tag: string;
age: number;
} }
interface DataType { interface DataType extends API.Device{
key: string; key: string,
title: string;
description: string;
tag: string;
age: number;
} }
@ -70,10 +62,29 @@ const columns1 = [
}, },
]; ];
const testData = Array(100).fill(0).map((v, index)=>{
return {
"id": index,
"key": index+"",
"createTime": "2023-10-17T10:47:51.629494+08:00",
"updateTime": "2023-10-26T11:02:39.559715+08:00",
"name": "控制设备",
"code": "DEVICE00002",
"position": "二楼客厅",
"param": "rtsp://admin:@192.168.10.203",
"spec": "",
"categoryFkId": 2,
"groupFkId": 3,
"isEnable": true,
"remark": ""
}
})
interface TableTransferProps extends TransferProps<TransferItem> { interface TableTransferProps extends TransferProps<TransferItem> {
dataSource: DataType[]; dataSource: DataType[];
leftColumns: ColumnsType<DataType>; leftColumns: ColumnsType<DataType>;
rightColumns: ColumnsType<Pick<DataType, 'title'| 'key'>> rightColumns: ColumnsType<DataType>
} }
// Customize Table Transfer // Customize Table Transfer
@ -129,9 +140,12 @@ const TableTransfer = ({ leftColumns, rightColumns, ...restProps }: TableTransfe
<Table<any> <Table<any>
rowSelection={rowSelection} rowSelection={rowSelection}
virtual={true}
columns={columns} columns={columns}
scroll={{y: 500}}
dataSource={filteredItems} dataSource={filteredItems}
size="small" size="small"
pagination={false}
style={{ pointerEvents: listDisabled ? 'none' : undefined, width: 500 }} style={{ pointerEvents: listDisabled ? 'none' : undefined, width: 500 }}
onRow={({ key, disabled: itemDisabled }) => ({ onRow={({ key, disabled: itemDisabled }) => ({
onClick: () => { onClick: () => {
@ -161,38 +175,38 @@ const originTargetKeys = mockData
const leftTableColumns: ColumnsType<DataType> = [ const leftTableColumns: ColumnsType<DataType> = [
{ {
dataIndex: 'title', dataIndex: 'name',
title: '名称', title: '名称',
}, },
{ {
dataIndex: 'tag', dataIndex: 'code',
title: '位置', title: '编码',
}, },
{ {
dataIndex: 'description', dataIndex: 'position',
title: '编码', title: '位置',
}, },
{ {
dataIndex: 'age', dataIndex: 'param',
title: '参数', title: '参数',
}, },
]; ];
const rightTableColumns: ColumnsType<Pick<DataType, 'title' | 'key'>> = [ const rightTableColumns: ColumnsType<DataType> = [
{ {
dataIndex: 'title', dataIndex: 'name',
title: '名称', title: '名称',
}, },
{ {
dataIndex: 'tag', dataIndex: 'code',
title: '位置', title: '编码',
}, },
{ {
dataIndex: 'description', dataIndex: 'position',
title: '编码', title: '位置',
}, },
{ {
dataIndex: 'age', dataIndex: 'param',
title: '参数', title: '参数',
}, },
]; ];
@ -200,6 +214,7 @@ const rightTableColumns: ColumnsType<Pick<DataType, 'title' | 'key'>> = [
export type UpdateFormProps = { export type UpdateFormProps = {
targetKeys: string[]; targetKeys: string[];
setTargetKeys: (data: string[])=>void; setTargetKeys: (data: string[])=>void;
dataSource: DataType[];
}; };
const TableTransferList: React.FC<UpdateFormProps> = (props) => { const TableTransferList: React.FC<UpdateFormProps> = (props) => {
@ -215,8 +230,7 @@ const TableTransferList: React.FC<UpdateFormProps> = (props) => {
return ( return (
<> <>
<TableTransfer <TableTransfer
dataSource={mockData} dataSource={props.dataSource}
targetKeys={props.targetKeys} targetKeys={props.targetKeys}
showSearch={showSearch} showSearch={showSearch}
onChange={onChange} onChange={onChange}

@ -14,8 +14,15 @@ import { Table, Transfer } from 'antd';
import type { ColumnsType, TableRowSelection } from 'antd/es/table/interface'; import type { ColumnsType, TableRowSelection } from 'antd/es/table/interface';
import type { TransferItem, TransferProps } from 'antd/es/transfer'; import type { TransferItem, TransferProps } from 'antd/es/transfer';
import {TransferDirection} from "antd/es/transfer"; import {TransferDirection} from "antd/es/transfer";
import {postAlgorithmModelGetAlgorithmModelFkSelect} from "@/services/resource/AlgorithmModel"; import {
import {postDeviceGetDeviceFkSelect, postDeviceGetDeviceList} from "@/services/device/Device"; postAlgorithmModelGetAlgorithmModelFkSelect,
postAlgorithmModelGetAllVersionsById
} from "@/services/resource/AlgorithmModel";
import {
postDeviceGetAllDeviceByGroup,
postDeviceGetDeviceFkSelect,
postDeviceGetDeviceList
} from "@/services/device/Device";
import {postDeviceGroupGetDeviceGroupTree} from "@/services/device/DeviceGroup"; import {postDeviceGroupGetDeviceGroupTree} from "@/services/device/DeviceGroup";
import {putRoleUpdateDevicesInGroupModel} from "@/services/device/DeviceModelInGroup"; import {putRoleUpdateDevicesInGroupModel} from "@/services/device/DeviceModelInGroup";
import {postProjectCreateProject} from "@/services/project/Project"; import {postProjectCreateProject} from "@/services/project/Project";
@ -23,50 +30,41 @@ import {beforeUploadFile} from "@/utils/common";
import yaml from "js-yaml"; import yaml from "js-yaml";
import {CloseOutlined, SnippetsOutlined} from "@ant-design/icons"; import {CloseOutlined, SnippetsOutlined} from "@ant-design/icons";
import {FormListActionType, ProFormDatePicker} from "@ant-design/pro-form/lib"; import {FormListActionType, ProFormDatePicker} from "@ant-design/pro-form/lib";
import {postModelVersionGetModelVersionById} from "@/services/resource/ModelVersion"; import {
postModelVersionGetModelVersionById,
postModelVersionGetModelVersionFkSelect
} from "@/services/resource/ModelVersion";
import difference from 'lodash/difference'; import difference from 'lodash/difference';
import TableTransferList from "@/pages/Setting/components/TableTransfer"; import TableTransferList from "@/pages/Setting/components/TableTransfer";
import {postProjectModelConfigGetProjectModelConfigById} from "@/services/project/ProjectModelConfig";
const formContainerWidth: number = 755; const formContainerWidth: number = 755;
const stepFormItemStyleProps: Record<string, any> = { const stepFormItemStyleProps: Record<string, any> = {
width: formContainerWidth, width: formContainerWidth,
}; };
interface RecordType { interface DataType extends API.Device{
key: string; key: string,
title: string;
description: string;
disabled: boolean;
tag: string;
} }
interface DataType { interface ProjectModelConfigById {
key: string; configId: number,
title: string;
description: string;
disabled: boolean;
tag: string;
} }
interface TableTransferProps extends TransferProps<TransferItem> { interface TableTransferProps extends TransferProps<TransferItem> {
dataSource: DataType[]; dataSource: DataType[];
leftColumns: ColumnsType<DataType>; leftColumns: ColumnsType<DataType>;
rightColumns: ColumnsType<DataType>; rightColumns: ColumnsType<DataType>;
} }
export type FormValueType = {
target?: string;
template?: string;
type?: string;
time?: string;
frequency?: string;
} & Partial<API.DeviceModelInGroup>;
export type UpdateFormProps = { export type UpdateFormProps = {
updateModalOpen: boolean; updateModalOpen: boolean;
handleModal: () => void; handleModal: () => void;
values: Partial<API.DeviceModelInGroup>; projectModelConfigId: number;
groupId: number;
reload: any; reload: any;
}; };
@ -120,16 +118,16 @@ const columns = [
const UpdateForm: React.FC<UpdateFormProps> = (props) => { const UpdateForm: React.FC<UpdateFormProps> = (props) => {
const intl = useIntl(); const intl = useIntl();
const [form] = Form.useForm<API.DeviceModelInGroup>();
const [modalData, setModalData] = useState<RecordType[]>([]);
const [targetKeys, setTargetKeys] = useState<string[]>([]); const [targetKeys, setTargetKeys] = useState<string[]>([]);
const [current, setCurrent] = useState(0); const [current, setCurrent] = useState(0);
const [configData, setConfigData] = useState([]); const [configData, setConfigData] = useState([]);
const [addrValue, setAddr] = useState('') const [addrValue, setAddr] = useState('')
const [projectModelConfig, setProjectModelConfig] = useState<API.ProjectModelConfig>({})
const [deviceData, setDeviceData] = useState<DataType[]>([])
const handleSelectChange = (value)=>{ const handleSelectChange = (value)=>{
postModelVersionGetModelVersionById({ id: value }).then((resp) => { postModelVersionGetModelVersionById({ id: value }).then((resp) => {
let data = resp.data.modelVersion.modelConfig?.params || []; let data = resp.data.modelVersion.modelConfig?.params || [];
@ -152,46 +150,40 @@ const UpdateForm: React.FC<UpdateFormProps> = (props) => {
}> }>
>(); >();
const getModelData = () => { const getModelData = () => {
postDeviceGetDeviceFkSelect({keyword: ''}).then((res)=>{ // postDeviceGetDeviceFkSelect({keyword: ''}).then((res)=>{
let result = (res.data?.list || []).map((v: any)=>{ // let result = (res.data?.list || []).map((v: any)=>{
return { // return {
key: v.id, // key: v.id,
title: v.name, // title: v.name,
chosen: false, // chosen: false,
} // }
}) // })
setModalData(result); // setModalData(result);
}) // })
// setMockData(tempMockData); // setMockData(tempMockData);
// setTargetKeys(tempTargetKeys); // setTargetKeys(tempTargetKeys);
}; };
useEffect(() => { useEffect(() => {
setTargetKeys([]) setTargetKeys([])
setConfigData([]) setConfigData([])
if (props.updateModalOpen) { if (props.updateModalOpen) {
getModelData(); // getModelData();
console.log(props.projectModelConfigId)
postDeviceGetDeviceList({groupFkId: 2, page: 1, pageSize:10}).then((resp)=>{ if (props.projectModelConfigId && props.projectModelConfigId !== 0) {
console.log(111, resp) postProjectModelConfigGetProjectModelConfigById({id: props.projectModelConfigId}).then((resp)=>{
setProjectModelConfig(resp.data.ProjectModelConfig)
}) })
}
// postDeviceGetDeviceList({groupFkId: 2, page: 1, pageSize:10}).then((resp)=>{
// // console.log(111, resp)
// })
} else { } else {
} }
}, [props.updateModalOpen]) }, [props.updateModalOpen])
const handleChange = (newTargetKeys: string[]) => { const handleChange = (newTargetKeys: string[]) => {
setTargetKeys(newTargetKeys); setTargetKeys(newTargetKeys);
}; };
const handleSearch = (dir: TransferDirection, value: string) => {
postDeviceGetDeviceFkSelect({keyword: value}).then((res)=>{
let result = (res.data?.list || []).map((v: any)=>{
return {
key: v.id,
title: v.name,
chosen: false,
}
})
setModalData(result);
})
};
return ( return (
<StepsForm<{ <StepsForm<{
@ -201,7 +193,16 @@ const UpdateForm: React.FC<UpdateFormProps> = (props) => {
labelPlacement: 'vertical', labelPlacement: 'vertical',
}} }}
current={current} current={current}
onCurrentChange={setCurrent} onCurrentChange={(value)=>{
setCurrent(value)
if (value == 1) {
postDeviceGetAllDeviceByGroup({id: props.groupId}).then((resp)=>{
setDeviceData((resp.data?.list || []).map((v: API.Device)=>{
return {key: v.id, ...v}
}))
})
}
}}
onFinish={async () => { onFinish={async () => {
return true; return true;
@ -229,54 +230,47 @@ const UpdateForm: React.FC<UpdateFormProps> = (props) => {
); );
}} }}
> >
<StepsForm.StepForm<{
config: string;
}>
name="config3"
title="设备配置"
stepProps={{
description: '业务参数配置',
}}
onFinish={async (values: any) => {
console.log(targetKeys)
return true;
}}
>
<>
<TableTransferList setTargetKeys={setTargetKeys}
targetKeys={targetKeys}></TableTransferList>
</>
</StepsForm.StepForm>
{/* 关联算法模型 */}
<StepsForm.StepForm<{ <StepsForm.StepForm<{
config: string; config: string;
}> }>
name="config" name="config"
title="模型参数配置" title="模型参数配置"
stepProps={{ stepProps={{
description: '业务参数配置', description: '模型参数配置',
}}
onFocus={()=>{
console.log("进入")
}} }}
onFinish={async (values: any) => { onFinish={async (values: any) => {
return true; return true;
}} }}
> >
<> <>
{
projectModelConfig.modelFkId && projectModelConfig.modelFkId !== 0 && (
<ProFormSelect <ProFormSelect
name="addr" name="addr"
width="xs" width="xs"
label="模型版本" label="模型版本"
onChange={handleSelectChange} onChange={handleSelectChange}
initialValue={projectModelConfig.modelVersionFkId}
// dependencies 的内容会注入 request 中 // dependencies 的内容会注入 request 中
request={async () => [ request={async () => {
{ label: 'V1.0', value: 22 }, let resp =await postAlgorithmModelGetAllVersionsById({id: projectModelConfig.modelFkId})
{ label: 'V1.2', value: 23 }, return resp.data.list.map((v: any)=>{
]} return {
label: v.name,
value: v.id
}
})
}}
/> />
)
}
{ {
configData.length ?
(
configData.map((item:any, index)=> { configData.map((item:any, index)=> {
console.log(typeof item.default)
if (typeof item.default === 'number') { if (typeof item.default === 'number') {
return (<ProFormDigit return (<ProFormDigit
key={index} key={index}
@ -304,11 +298,40 @@ const UpdateForm: React.FC<UpdateFormProps> = (props) => {
} }
} }
) )
): (projectModelConfig?.modelConfig || []).map((item, index)=>{
let value_type = typeof item.value
if (value_type === 'number') {
return (<ProFormDigit
key={index}
name={item.name}
label={item.name}
initialValue={item.value}
tooltip={item.remark}
/>)
} else if (value_type === 'boolean') {
return (<ProFormSwitch
key={index}
name={item.name}
label={item.name}
initialValue={item.value}
tooltip={item.remark}
/>)
} else if (value_type === 'string') {
return (<ProFormText
key={index}
name={item.name}
label={item.name}
initialValue={item.value}
tooltip={item.remark}
/>)
} else {
return
}
})
} }
</> </>
</StepsForm.StepForm> </StepsForm.StepForm>
{/* 业务参数配置 */}
<StepsForm.StepForm<{ <StepsForm.StepForm<{
config: string; config: string;
}> }>
@ -322,38 +345,97 @@ const UpdateForm: React.FC<UpdateFormProps> = (props) => {
}} }}
> >
<> <>
<ProForm.Group>
{ {
configData.map((item:any, index)=> { (projectModelConfig?.projectConfig || []).map((item, index)=>{
console.log(typeof item.default) let value_type = typeof item.value
if (typeof item.default === 'number') { if (value_type === 'number') {
return (<ProFormDigit return (<ProFormDigit
key={index} key={index}
name={item.name} name={item.name}
label={item.name} label={item.name}
initialValue={item.default} initialValue={item.value}
tooltip={item.remark} tooltip={item.remark}
/>) />)
} else if (typeof item.default === 'boolean') { } else if (value_type === 'boolean') {
return (<ProFormSwitch return (<ProFormSwitch
key={index} key={index}
name={item.name} name={item.name}
label={item.name} label={item.name}
initialValue={item.default} initialValue={item.value}
tooltip={item.remark} tooltip={item.remark}
/>) />)
} else { } else if (value_type === 'string') {
return (<ProFormText return (<ProFormText
key={index} key={index}
name={item.name} name={item.name}
label={item.name} label={item.name}
initialValue={item.default} initialValue={item.value}
tooltip={item.remark} tooltip={item.remark}
/>) />)
} else {
return
}
})
}
{
Object.keys(projectModelConfig?.projectConfig || {}).map((item:any, index)=> {
let value_type = typeof projectModelConfig.projectConfig[item]
console.log(value_type, projectModelConfig.projectConfig[item])
if (value_type === 'number') {
return (<ProFormDigit
key={index}
name={item}
label={item}
initialValue={projectModelConfig.projectConfig[item]}
/>)
} else if (value_type === 'boolean') {
return (<ProFormSwitch
key={index}
name={item}
label={item}
initialValue={projectModelConfig.projectConfig[item]}
/>)
} else if (value_type === 'string') {
return (<ProFormText
key={index}
width='md'
name={item}
label={item}
initialValue={projectModelConfig.projectConfig[item]}
/>)
} else {
return
} }
} }
) )
} }
</ProForm.Group>
</>
</StepsForm.StepForm>
{/* 关联算法模型 */}
<StepsForm.StepForm<{
config: string;
}>
name="config3"
title="设备配置"
stepProps={{
description: '设备关联配置',
}}
onFinish={async (values: any) => {
console.log(targetKeys)
return true;
}}
>
<>
{
}
<TableTransferList setTargetKeys={setTargetKeys} dataSource={deviceData}
targetKeys={targetKeys}></TableTransferList>
</> </>
</StepsForm.StepForm> </StepsForm.StepForm>

@ -152,3 +152,20 @@ export async function postDeviceOpenRtspCamera(
}, },
); );
} }
export async function postDeviceGetAllDeviceByGroup(
body: API.GetById,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.AllResult; msg?: string }>(
`/api/v1/device/getAllDeviceByGroup`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}

@ -1,4 +1,7 @@
declare namespace API { declare namespace API {
type AllResult = {
list?: any;
};
type Device = { type Device = {
categoryFkId?: number; categoryFkId?: number;
code?: string; code?: string;

@ -3,7 +3,10 @@
import { request } from '@umijs/max'; import { request } from '@umijs/max';
/** 创建基础Project POST /project/createProject */ /** 创建基础Project POST /project/createProject */
export async function postProjectCreateProject(body: API.Project, options?: { [key: string]: any }) { export async function postProjectCreateProject(
body: API.Project,
options?: { [key: string]: any },
) {
return request<API.Response & { msg?: string }>(`/api/v1/project/createProject`, { return request<API.Response & { msg?: string }>(`/api/v1/project/createProject`, {
method: 'POST', method: 'POST',
headers: { headers: {
@ -15,7 +18,10 @@ export async function postProjectCreateProject(body: API.Project, options?: { [k
} }
/** 删除Project DELETE /project/deleteProject */ /** 删除Project DELETE /project/deleteProject */
export async function deleteProjectDeleteProject(body: API.Project, options?: { [key: string]: any }) { export async function deleteProjectDeleteProject(
body: API.Project,
options?: { [key: string]: any },
) {
return request<API.Response & { msg?: string }>(`/api/v1/project/deleteProject`, { return request<API.Response & { msg?: string }>(`/api/v1/project/deleteProject`, {
method: 'DELETE', method: 'DELETE',
headers: { headers: {
@ -27,7 +33,10 @@ export async function deleteProjectDeleteProject(body: API.Project, options?: {
} }
/** 删除选中Project DELETE /project/deleteProjectByIds */ /** 删除选中Project DELETE /project/deleteProjectByIds */
export async function deleteProjectDeleteProjectByIds(body: API.IdsReq, options?: { [key: string]: any }) { export async function deleteProjectDeleteProjectByIds(
body: API.IdsReq,
options?: { [key: string]: any },
) {
return request<API.Response & { msg?: string }>(`/api/v1/project/deleteProjectByIds`, { return request<API.Response & { msg?: string }>(`/api/v1/project/deleteProjectByIds`, {
method: 'DELETE', method: 'DELETE',
headers: { headers: {
@ -38,8 +47,26 @@ export async function deleteProjectDeleteProjectByIds(body: API.IdsReq, options?
}); });
} }
/** 根据组id获得项目id和name POST /project/getProjectByGroupId */
export async function postProjectGetProjectByGroupId(
body: API.GetById,
options?: { [key: string]: any },
) {
return request<any>(`/api/v1/project/getProjectByGroupId`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}
/** 根据id获取Project POST /project/getProjectById */ /** 根据id获取Project POST /project/getProjectById */
export async function postProjectGetProjectById(body: API.GetById, options?: { [key: string]: any }) { export async function postProjectGetProjectById(
body: API.GetById,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.ProjectProjectResponse }>( return request<API.Response & { data?: API.ProjectProjectResponse }>(
`/api/v1/project/getProjectById`, `/api/v1/project/getProjectById`,
{ {
@ -90,7 +117,10 @@ export async function postProjectGetProjectList(
} }
/** 获得Project名称列表 POST /project/getProjectNames */ /** 获得Project名称列表 POST /project/getProjectNames */
export async function postProjectGetProjectNames(body: API.IdsReq, options?: { [key: string]: any }) { export async function postProjectGetProjectNames(
body: API.IdsReq,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.NamesResult; msg?: string }>( return request<API.Response & { data?: API.NamesResult; msg?: string }>(
`/api/v1/project/getProjectNames`, `/api/v1/project/getProjectNames`,
{ {
@ -130,15 +160,3 @@ export async function putProjectUpdateProjectGroup(
...(options || {}), ...(options || {}),
}); });
} }
/** 根据组id获得项目id和name POST /project/getProjectByGroupId */
export async function postGetProjectByGroupId(body: API.GetById, options?: { [key: string]: any }) {
return request<any>(`/api/v1/project/getProjectByGroupId`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}

@ -0,0 +1,111 @@
// @ts-ignore
/* eslint-disable */
import { request } from '@umijs/max';
/** 创建基础ProjectModelConfig POST /project_model_config/createProjectModelConfig */
export async function postProjectModelConfigCreateProjectModelConfig(
body: API.ProjectModelConfig,
options?: { [key: string]: any },
) {
return request<API.Response & { msg?: string }>(
`/api/v1/project_model_config/createProjectModelConfig`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}
/** 删除ProjectModelConfig DELETE /project_model_config/deleteProjectModelConfig */
export async function deleteProjectModelConfigDeleteProjectModelConfig(
body: API.ProjectModelConfig,
options?: { [key: string]: any },
) {
return request<API.Response & { msg?: string }>(
`/api/v1/project_model_config/deleteProjectModelConfig`,
{
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}
/** 删除选中ProjectModelConfig DELETE /project_model_config/deleteProjectModelConfigByIds */
export async function deleteProjectModelConfigDeleteProjectModelConfigByIds(
body: API.IdsReq,
options?: { [key: string]: any },
) {
return request<API.Response & { msg?: string }>(
`/api/v1/project_model_config/deleteProjectModelConfigByIds`,
{
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}
/** 根据id获取ProjectModelConfig POST /project_model_config/getProjectModelConfigById */
export async function postProjectModelConfigGetProjectModelConfigById(
body: API.GetById,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.ProjectProjectModelConfigResponse }>(
`/api/v1/project_model_config/getProjectModelConfigById`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}
/** 分页获取ProjectModelConfig列表 POST /project_model_config/getProjectModelConfigList */
export async function postProjectModelConfigGetProjectModelConfigList(
body: API.SearchProjectModelConfigParams,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.PageResult; msg?: string }>(
`/api/v1/project_model_config/getProjectModelConfigList`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}
/** 修改基础ProjectModelConfig PUT /project_model_config/updateProjectModelConfig */
export async function putProjectModelConfigUpdateProjectModelConfig(
body: API.ProjectModelConfig,
options?: { [key: string]: any },
) {
return request<API.Response & { msg?: string }>(
`/api/v1/project_model_config/updateProjectModelConfig`,
{
method: 'PUT',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}

@ -3,6 +3,9 @@
// API 更新时间: // API 更新时间:
// API 唯一标识: // API 唯一标识:
import * as Project from './Project'; import * as Project from './Project';
import * as ProjectModelConfig from './ProjectModelConfig';
export default { export default {
Project, Project,
ProjectModelConfig,
}; };

@ -35,13 +35,31 @@ declare namespace API {
id?: number; id?: number;
inferConfig?: Record<string, any>; inferConfig?: Record<string, any>;
info?: string; info?: string;
projectFilePath?: string;
isEnable?: boolean; isEnable?: boolean;
name?: string; name?: string;
projectFilePath?: string;
remark?: string;
updateTime?: string;
};
type ProjectModelConfig = {
createTime?: string;
/** 设备是一个 以,隔开的存储device id的字符例如 1,2 */
devices?: string;
id?: number;
modelConfig?: Record<string, any>;
modelFkId?: number;
modelVersionFkId?: number;
projectConfig?: Record<string, any>;
projectGroupFkId?: number;
remark?: string; remark?: string;
updateTime?: string; updateTime?: string;
}; };
type ProjectProjectModelConfigResponse = {
ProjectModelConfig?: ProjectModelConfig;
};
type ProjectProjectResponse = { type ProjectProjectResponse = {
project?: Project; project?: Project;
}; };
@ -53,6 +71,30 @@ declare namespace API {
success?: boolean; success?: boolean;
}; };
type SearchProjectModelConfigParams = {
createTime?: string;
/** 排序方式:升序false(默认)|降序true */
desc?: boolean;
/** 设备是一个 以,隔开的存储device id的字符例如 1,2 */
devices?: string;
id?: number;
/** 关键字 */
keyword?: string;
modelConfig?: Record<string, any>;
modelFkId?: number;
modelVersionFkId?: number;
/** 排序 */
orderKey?: string;
/** 页码 */
page?: number;
/** 每页大小 */
pageSize?: number;
projectConfig?: Record<string, any>;
projectGroupFkId?: number;
remark?: string;
updateTime?: string;
};
type SearchProjectParams = { type SearchProjectParams = {
code?: string; code?: string;
createTime?: string; createTime?: string;
@ -72,6 +114,7 @@ declare namespace API {
page?: number; page?: number;
/** 每页大小 */ /** 每页大小 */
pageSize?: number; pageSize?: number;
projectFilePath?: string;
remark?: string; remark?: string;
updateTime?: string; updateTime?: string;
}; };

@ -136,3 +136,21 @@ export async function putAlgorithmModelUpdateAlgorithmModel(
...(options || {}), ...(options || {}),
}); });
} }
/** 根据id获取所有的版本 POST /algorithm_model/getAllVersionsById */
export async function postAlgorithmModelGetAllVersionsById(
body: API.GetById,
options?: { [key: string]: any },
) {
return request<API.Response & { data?: API.ResourceModelVersionFkSelectResponse }>(
`/api/v1/algorithm_model/getAllVersionsById`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
},
);
}

@ -1,4 +1,7 @@
declare namespace API { declare namespace API {
type ResourceModelVersionListResponse = {
modelVersions?: ModelVersion[];
};
type AlgorithmModel = { type AlgorithmModel = {
categoryFkId?: number; categoryFkId?: number;
createTime?: string; createTime?: string;
@ -9,6 +12,11 @@ declare namespace API {
updateTime?: string; updateTime?: string;
}; };
type ResourceModelVersionFkSelectResponse = {
id?: number;
name?: string;
};
type BusinessImage = { type BusinessImage = {
configHash?: string; configHash?: string;
createTime?: string; createTime?: string;

Loading…
Cancel
Save