66 fetchInterfaceColList ,
77 fetchInterfaceCaseList ,
88 setColData ,
9- fetchCaseList
9+ fetchCaseList ,
10+ fetchCaseData
1011} from '../../../../reducer/modules/interfaceCol' ;
1112import { fetchProjectList } from '../../../../reducer/modules/project' ;
1213import 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