Skip to content

Commit 3a2cf83

Browse files
committed
feat: 增加用例复制功能
1 parent 25adf5f commit 3a2cf83

1 file changed

Lines changed: 48 additions & 12 deletions

File tree

client/containers/Project/Interface/InterfaceCol/InterfaceColMenu.js

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ import {
66
fetchInterfaceColList,
77
fetchInterfaceCaseList,
88
setColData,
9-
fetchCaseList
9+
fetchCaseList,
10+
fetchCaseData
1011
} from '../../../../reducer/modules/interfaceCol';
1112
import { fetchProjectList } from '../../../../reducer/modules/project';
1213
import axios from 'axios';
@@ -54,6 +55,7 @@ const ColModalForm = Form.create()(props => {
5455
{
5556
fetchInterfaceColList,
5657
fetchInterfaceCaseList,
58+
fetchCaseData,
5759
// fetchInterfaceListMenu,
5860
fetchCaseList,
5961
setColData,
@@ -69,6 +71,7 @@ export default class InterfaceColMenu extends Component {
6971
fetchInterfaceCaseList: PropTypes.func,
7072
// fetchInterfaceListMenu: PropTypes.func,
7173
fetchCaseList: PropTypes.func,
74+
fetchCaseData: PropTypes.func,
7275
setColData: PropTypes.func,
7376
currCaseId: PropTypes.number,
7477
history: PropTypes.object,
@@ -236,6 +239,26 @@ export default class InterfaceColMenu extends Component {
236239
content: '温馨提示:建议不要删除'
237240
});
238241
};
242+
caseCopy = async caseId=> {
243+
let that = this;
244+
let caseData = await that.props.fetchCaseData(caseId);
245+
let data = caseData.payload.data.data;
246+
data.casename=`${data.casename}_copy`
247+
data._id=null
248+
const res = await axios.post('/api/col/add_case',data);
249+
if (!res.data.errcode) {
250+
message.success('克隆用例成功');
251+
let colId = res.data.data.col_id;
252+
let projectId=res.data.data.project_id;
253+
await this.getList();
254+
this.props.history.push('/project/' + projectId + '/interface/col/' + colId);
255+
this.setState({
256+
visible: false
257+
});
258+
} else {
259+
message.error(res.data.errmsg);
260+
}
261+
};
239262
showDelCaseConfirm = caseId => {
240263
let that = this;
241264
const params = this.props.match.params;
@@ -429,17 +452,30 @@ export default class InterfaceColMenu extends Component {
429452
title={interfaceCase.casename}
430453
>
431454
<span className="casename">{interfaceCase.casename}</span>
432-
<Tooltip title="删除用例">
433-
<Icon
434-
type="delete"
435-
className="case-delete-icon"
436-
onClick={e => {
437-
e.stopPropagation();
438-
this.showDelCaseConfirm(interfaceCase._id);
439-
}}
440-
style={{ display: this.state.delIcon == interfaceCase._id ? 'block' : 'none' }}
441-
/>
442-
</Tooltip>
455+
<div className="btns">
456+
<Tooltip title="删除用例">
457+
<Icon
458+
type="delete"
459+
className="interface-delete-icon"
460+
onClick={e => {
461+
e.stopPropagation();
462+
this.showDelCaseConfirm(interfaceCase._id);
463+
}}
464+
style={{ display: this.state.delIcon == interfaceCase._id ? 'block' : 'none' }}
465+
/>
466+
</Tooltip>
467+
<Tooltip title="克隆用例">
468+
<Icon
469+
type="copy"
470+
className="interface-delete-icon"
471+
onClick={e => {
472+
e.stopPropagation();
473+
this.caseCopy(interfaceCase._id);
474+
}}
475+
style={{ display: this.state.delIcon == interfaceCase._id ? 'block' : 'none' }}
476+
/>
477+
</Tooltip>
478+
</div>
443479
</div>
444480
}
445481
/>

0 commit comments

Comments
 (0)