Browse Source

fix: 公开的数据集和模型不允许删除

pull/45/head
cp3hnu 1 year ago
parent
commit
808b97aa4f
12 changed files with 54 additions and 144 deletions
  1. +1
    -1
      react-ui/config/defaultSettings.ts
  2. +1
    -3
      react-ui/src/components/KFModal/index.less
  3. +1
    -2
      react-ui/src/overrides.less
  4. +14
    -10
      react-ui/src/pages/Dataset/datasetIntro.jsx
  5. +1
    -1
      react-ui/src/pages/Dataset/personalData.jsx
  6. +2
    -26
      react-ui/src/pages/Dataset/publicData.jsx
  7. +2
    -2
      react-ui/src/pages/Experiment/experimentText/props.jsx
  8. +15
    -10
      react-ui/src/pages/Model/modelIntro.jsx
  9. +2
    -2
      react-ui/src/pages/Model/personalData.jsx
  10. +3
    -27
      react-ui/src/pages/Model/publicData.jsx
  11. +8
    -13
      react-ui/src/pages/Pipeline/index.jsx
  12. +4
    -47
      react-ui/src/pages/Pipeline/index.less

+ 1
- 1
react-ui/config/defaultSettings.ts View File

@@ -19,7 +19,7 @@ const Settings: ProLayoutProps & {
title: '智能软件开发平台',
pwa: true,
logo: '/assets/images/left-top-logo.png',
iconfontUrl: '//at.alicdn.com/t/c/font_4511326_t634djsqobs.js',
iconfontUrl: '//at.alicdn.com/t/c/font_4511326_a182r7rksx5.js',
token: {
// 参见ts声明,demo 见文档,通过token 修改样式
//https://procomponents.ant.design/components/layout#%E9%80%9A%E8%BF%87-token-%E4%BF%AE%E6%94%B9%E6%A0%B7%E5%BC%8F


+ 1
- 3
react-ui/src/components/KFModal/index.less View File

@@ -17,14 +17,12 @@
margin-top: 40px;

.ant-btn {
height: 42px;
height: 40px;
padding: 0 30px;
font-size: @font-size-content;
border-radius: 10px;
}
.ant-btn-default {
color: @text-color;
background: rgba(22, 100, 255, 0.06);
border-color: transparent;
}
.ant-btn + .ant-btn {


+ 1
- 2
react-ui/src/overrides.less View File

@@ -129,8 +129,6 @@
border-radius: 10px;
}
.ant-btn-default {
color: @text-color;
background: rgba(22, 100, 255, 0.06);
border-color: transparent;
}
.ant-btn + .ant-btn {
@@ -139,6 +137,7 @@
}
}

// 表单类型为large时,font-size为15px
.ant-form-large {
.ant-form-item-label {
label {


+ 14
- 10
react-ui/src/pages/Dataset/datasetIntro.jsx View File

@@ -9,10 +9,10 @@ import {
} from '@/services/dataset/index.js';
import { downLoadZip } from '@/utils/downloadfile';
import { UploadOutlined } from '@ant-design/icons';
import { useParams, useSearchParams } from '@umijs/max';
import { Button, Form, Input, Modal, Select, Table, Tabs, Upload, message } from 'antd';
import moment from 'moment';
import { useEffect, useRef, useState } from 'react';
import { useParams } from 'react-router-dom';
import Styles from './index.less';
const { Search } = Input;
const { TabPane } = Tabs;
@@ -53,9 +53,11 @@ const Dataset = () => {
const [version, setVersion] = useState(null);
const [versionList, setVersionList] = useState([]);
const locationParams = useParams(); //新版本获取路由参数接口
const [searchParams] = useSearchParams();
const [wordList, setWordList] = useState([]);
const [activeTabKey, setActiveTabKey] = useState('1');
const [uuid, setUuid] = useState(Date.now());
const isPublic = searchParams.get('isPublic') === 'true';
const getDatasetByDetail = () => {
getDatasetById(locationParams.id).then((ret) => {
console.log(ret);
@@ -264,15 +266,17 @@ const Dataset = () => {
<div
style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}
>
<Button
type="default"
className={Styles.plusButton}
style={{ margin: '0 20px 0 0' }}
onClick={deleteDataset}
icon={<KFIcon type="icon-shanchu" />}
>
删除
</Button>
{!isPublic && (
<Button
type="default"
className={Styles.plusButton}
style={{ margin: '0 20px 0 0' }}
onClick={deleteDataset}
icon={<KFIcon type="icon-shanchu" />}
>
删除
</Button>
)}
<Button
type="default"
disabled={!version}


+ 1
- 1
react-ui/src/pages/Dataset/personalData.jsx View File

@@ -155,7 +155,7 @@ const PublicData = (React.FC = () => {
const routeToIntro = (e, record) => {
e.stopPropagation();
console.log(record);
navgite({ pathname: `/dataset/dataset/${record.id}` });
navgite({ pathname: `/dataset/dataset/${record.id}?isPublic=false` });
};
const onFinishFailed = (errorInfo) => {
console.log('Failed:', errorInfo);


+ 2
- 26
react-ui/src/pages/Dataset/publicData.jsx View File

@@ -1,8 +1,6 @@
import clock from '@/assets/img/clock.png';
import creatByImg from '@/assets/img/creatBy.png';
import deleteIcon from '@/assets/img/delete-icon.png';
import { deleteDataset, getAssetIcon, getDatasetList } from '@/services/dataset/index.js';
import { modalConfirm } from '@/utils/ui';
import { getAssetIcon, getDatasetList } from '@/services/dataset/index.js';
import { Form, Input, Pagination } from 'antd';
import moment from 'moment';
import { useEffect, useState } from 'react';
@@ -108,7 +106,7 @@ const PublicData = () => {
const routeToIntro = (e, record) => {
e.stopPropagation();
console.log(record);
navgite({ pathname: `/dataset/dataset/${record.id}` });
navgite({ pathname: `/dataset/dataset/${record.id}?isPublic=true` });
};
const onFinishFailed = (errorInfo) => {
console.log('Failed:', errorInfo);
@@ -227,28 +225,6 @@ const PublicData = () => {
return (
<div className={Styles.dataItem} onClick={(e) => routeToIntro(e, item)}>
<span className={Styles.itemText}>{item.name}</span>
<img
onClick={(e) => {
e.stopPropagation();
modalConfirm({
title: '确定删除该条数据集实例吗?',
onOk: () => {
deleteDataset(item.id).then((ret) => {
if (ret.code === 200) {
message.success('删除成功');
getModelLists(queryFlow);
} else {
message.error(ret.msg);
}
});
},
});
}}
className={Styles.dropdown}
style={{ width: '17px', marginRight: '6px' }}
src={deleteIcon}
alt=""
/>
<div className={Styles.itemDescripition}>{item.description}</div>
<div className={Styles.itemTime}>
<img


+ 2
- 2
react-ui/src/pages/Experiment/experimentText/props.jsx View File

@@ -246,8 +246,8 @@ const Props = forwardRef(({ onParentChange }, ref) => {
>
下载
</a>
<a style={{ marginRight: '10px' }}>导出到模型库</a>
<a style={{ marginRight: '10px' }}>导出到数据集</a>
{/* <a style={{ marginRight: '10px' }}>导出到模型库</a>
<a style={{ marginRight: '10px' }}>导出到数据集</a> */}
</div>
</div>
<div style={{ margin: '15px 0' }} className={Styles.resultContent}>


+ 15
- 10
react-ui/src/pages/Model/modelIntro.jsx View File

@@ -9,10 +9,10 @@ import {
} from '@/services/dataset/index.js';
import { downLoadZip } from '@/utils/downloadfile';
import { UploadOutlined } from '@ant-design/icons';
import { useParams, useSearchParams } from '@umijs/max';
import { Button, Form, Input, Modal, Select, Table, Tabs, Upload, message } from 'antd';
import moment from 'moment';
import { useEffect, useRef, useState } from 'react';
import { useParams } from 'react-router-dom';
import Styles from './index.less';
const { Search } = Input;
const { TabPane } = Tabs;
@@ -53,9 +53,11 @@ const Dataset = () => {
const [version, setVersion] = useState(null);
const [versionList, setVersionList] = useState([]);
const locationParams = useParams(); //新版本获取路由参数接口
const [searchParams] = useSearchParams();
console.log(locationParams);
const [wordList, setWordList] = useState([]);
const [uuid, setUuid] = useState(Date.now());
const isPublic = searchParams.get('isPublic') === 'true';
const getModelByDetail = () => {
getModelById(locationParams.id).then((ret) => {
console.log(ret);
@@ -262,15 +264,18 @@ const Dataset = () => {
<div
style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}
>
<Button
type="default"
className={Styles.plusButton}
style={{ margin: '0 20px 0 0' }}
onClick={deleteDataset}
icon={<KFIcon type="icon-shanchu" />}
>
删除
</Button>
{!isPublic && (
<Button
type="default"
className={Styles.plusButton}
style={{ margin: '0 20px 0 0' }}
onClick={deleteDataset}
icon={<KFIcon type="icon-shanchu" />}
>
删除
</Button>
)}

<Button
type="default"
className={Styles.plusButton}


+ 2
- 2
react-ui/src/pages/Model/personalData.jsx View File

@@ -152,7 +152,7 @@ const PublicData = () => {
const routeToIntro = (e, record) => {
e.stopPropagation();
console.log(record);
navgite({ pathname: `/dataset/model/${record.id}` });
navgite({ pathname: `/dataset/model/${record.id}?isPublic=false` });
};
const onFinishFailed = (errorInfo) => {
console.log('Failed:', errorInfo);
@@ -357,7 +357,7 @@ const PublicData = () => {
/>
</div>
</Dropdown> */}
,<div className={Styles.itemDescripition}>{item.description}</div>
<div className={Styles.itemDescripition}>{item.description}</div>
<div className={Styles.itemTime}>
<img
style={{ width: '17px', marginRight: '6px' }}


+ 3
- 27
react-ui/src/pages/Model/publicData.jsx View File

@@ -1,9 +1,7 @@
import clock from '@/assets/img/clock.png';
import creatByImg from '@/assets/img/creatBy.png';
import deleteIcon from '@/assets/img/delete-icon.png';
import { deleteModel, getAssetIcon, getModelList } from '@/services/dataset/index.js';
import { modalConfirm } from '@/utils/ui';
import { Form, Input, Modal, Pagination, Radio, message } from 'antd';
import { getAssetIcon, getModelList } from '@/services/dataset/index.js';
import { Form, Input, Modal, Pagination, Radio } from 'antd';
import moment from 'moment';
import { useEffect, useState } from 'react';
import { useNavigate } from 'react-router-dom';
@@ -109,7 +107,7 @@ const PublicData = () => {
const routeToIntro = (e, record) => {
e.stopPropagation();
console.log(record);
navgite({ pathname: `/dataset/model/${record.id}` });
navgite({ pathname: `/dataset/model/${record.id}?isPublic=true` });
};
const onFinishFailed = (errorInfo) => {
console.log('Failed:', errorInfo);
@@ -233,28 +231,6 @@ const PublicData = () => {
}}
>
<span className={Styles.itemText}>{item.name}</span>
<img
onClick={(e) => {
e.stopPropagation();
modalConfirm({
title: '确定删除该条模型实例吗?',
onOk: () => {
deleteModel(item.id).then((ret) => {
if (ret.code === 200) {
message.success('删除成功');
getModelLists(queryFlow);
} else {
message.error(ret.msg);
}
});
},
});
}}
className={Styles.dropdown}
style={{ width: '17px', marginRight: '6px' }}
src={deleteIcon}
alt=""
/>
<div className={Styles.itemDescripition}>{item.description}</div>
<div className={Styles.itemTime}>
<img


+ 8
- 13
react-ui/src/pages/Pipeline/index.jsx View File

@@ -1,4 +1,5 @@
import KFIcon from '@/components/KFIcon';
import KFModal from '@/components/KFModal';
import {
addWorkflow,
cloneWorkflow,
@@ -9,12 +10,13 @@ import {
} from '@/services/pipeline/index.js';
import themes from '@/styles/theme.less';
import { modalConfirm } from '@/utils/ui';
import { Button, ConfigProvider, Form, Input, Modal, Space, Table, message } from 'antd';
import { Button, ConfigProvider, Form, Input, Space, Table, message } from 'antd';
import classNames from 'classnames';
import momnet from 'moment';
import { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import Styles from './index.less';

const { TextArea } = Input;
const Pipeline = () => {
const [form] = Form.useForm();
@@ -254,17 +256,10 @@ const Pipeline = () => {
scroll={{ y: 'calc(100% - 55px)' }}
/>
</div>
<Modal
title={
<div style={{ display: 'flex', alignItems: 'center', fontWeight: 500 }}>
<img
style={{ width: '20px', marginRight: '10px' }}
src={`/assets/images/pipeline-edit-icon.png`}
alt=""
/>
{dialogTitle}
</div>
}
<KFModal
title={dialogTitle}
image={require('@/assets/img/create-experiment.png')}
width={825}
open={isModalOpen}
className={Styles.modal}
okButtonProps={{
@@ -314,7 +309,7 @@ const Pipeline = () => {
/>
</Form.Item>
</Form>
</Modal>
</KFModal>
</div>
);
};


+ 4
- 47
react-ui/src/pages/Pipeline/index.less View File

@@ -8,60 +8,17 @@
padding-right: 30px;
background-image: url(/assets/images/pipeline-back.png);
background-size: 100% 100%;

}

.modal {
:global {
.ant-modal-content {
width: 825px;
padding: 20px 67px;
background-image: url(/assets/images/modal-back.png);
background-repeat: no-repeat;
background-position: top center;
background-size: 100%;
border-radius: 21px;
}
.ant-modal-header {
margin: 20px 0;
background-color: transparent;
}
.ant-input {
height: 40px;
border-color: #e6e6e6;
}
.ant-form-item .ant-form-item-label > label {
color: rgba(29, 29, 32, 0.8);
}
.ant-modal-footer {
display: flex;
justify-content: center;
margin: 40px 0 30px 0;
}
.ant-btn {
width: 110px;
height: 40px;
font-size: 18px;
background: rgba(22, 100, 255, 0.06);
border-color: transparent;
border-radius: 10px;
}
.ant-btn-primary {
background: #1664ff;
}
}
}
.PipelineBox{
.PipelineBox {
height: calc(100% - 20px);
.PipelineTable{
.PipelineTable {
height: calc(100% - 60px);
:global{
.ant-table-wrapper .ant-table{
:global {
.ant-table-wrapper .ant-table {
// overflow-y: auto;
height: calc(100% - 48px);
}
}
}

}


Loading…
Cancel
Save