lepu-test-platform-web/dist/static/js/1.5ea73d8c812e95ec5d67.js.map

1 line
382 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///src/components/test/interface/InterfaceStatistic.vue","webpack:///./src/components/test/interface/InterfaceStatistic.vue?692b","webpack:///./src/components/test/interface/InterfaceStatistic.vue","webpack:///src/components/test/interface/InterfaceDefineBasicInfo.vue","webpack:///./src/components/test/interface/InterfaceDefineBasicInfo.vue?d3ab","webpack:///./src/components/test/interface/InterfaceDefineBasicInfo.vue","webpack:///src/components/test/interface/InterfaceDefineResponseInfo.vue","webpack:///./src/components/test/interface/InterfaceDefineResponseInfo.vue?7fa5","webpack:///./src/components/test/interface/InterfaceDefineResponseInfo.vue","webpack:///src/components/test/interface/InterfaceDefineParamInfoRequestBody.vue","webpack:///./src/components/test/interface/InterfaceDefineParamInfoRequestBody.vue?535f","webpack:///./src/components/test/interface/InterfaceDefineParamInfoRequestBody.vue","webpack:///src/components/test/interface/InterfaceDefineParamInfoScript.vue","webpack:///./src/components/test/interface/InterfaceDefineParamInfoScript.vue?1009","webpack:///./src/components/test/interface/InterfaceDefineParamInfoScript.vue","webpack:///./src/components/test/interface/InterfaceDefineParamInfoRelation.vue?c8f1","webpack:///./src/components/test/interface/InterfaceDefineParamInfoRelation.vue","webpack:///./src/components/test/interface/InterfaceDefineParamInfoAssert.vue?2aea","webpack:///./src/components/test/interface/InterfaceDefineParamInfoAssert.vue","webpack:///src/components/test/interface/InterfaceDefineParamInfo.vue","webpack:///src/components/test/interface/InterfaceDefineParamInfoRelation.vue","webpack:///src/components/test/interface/InterfaceDefineParamInfoAssert.vue","webpack:///./src/components/test/interface/InterfaceDefineParamInfo.vue?789f","webpack:///./src/components/test/interface/InterfaceDefineParamInfo.vue","webpack:///src/components/test/interface/InterfaceDefine.vue","webpack:///./src/components/test/interface/InterfaceDefine.vue?6ed3","webpack:///./src/components/test/interface/InterfaceDefine.vue","webpack:///src/components/test/interface/InterfaceMenuList.vue","webpack:///./src/components/test/interface/InterfaceMenuList.vue?ec9d","webpack:///./src/components/test/interface/InterfaceMenuList.vue","webpack:///src/components/test/interface/InterfaceList.vue","webpack:///./src/components/test/interface/InterfaceList.vue?8ff6","webpack:///./src/components/test/interface/InterfaceList.vue","webpack:///src/components/test/interface/InterfaceInfo.vue","webpack:///./src/components/test/interface/InterfaceInfo.vue?f25f","webpack:///./src/components/test/interface/InterfaceInfo.vue","webpack:///src/components/test/interface/InterfaceTestReport.vue","webpack:///./src/components/test/interface/InterfaceTestReport.vue?c450","webpack:///./src/components/test/interface/InterfaceTestReport.vue","webpack:///src/components/test/interface/InterfaceTestTaskCaseList.vue","webpack:///./src/components/test/interface/InterfaceTestTaskCaseList.vue?07f4","webpack:///./src/components/test/interface/InterfaceTestTaskCaseList.vue","webpack:///src/components/test/interface/InterfaceTestTaskList.vue","webpack:///./src/components/test/interface/InterfaceTestTaskList.vue?ce46","webpack:///./src/components/test/interface/InterfaceTestTaskList.vue","webpack:///src/views/testmanager/Interface.vue","webpack:///./src/views/testmanager/Interface.vue?9336","webpack:///./src/views/testmanager/Interface.vue"],"names":["InterfaceStatistic","data","loading","interfaceStatisticChartByCaseNum","id","title_text","trigger","legend","grid","xAxis","name","type","yAxis","series","color","interfaceStatisticChartByExceStatus","interfaceStatisticChartByTestTask","left","top","right","bottom","containLabel","tooltip","showContent","splitLine","show","axisLabel","axisTick","axisLine","fontSize","barWidth","label","position","formatter","itemStyle","normal","barBorderRadius","zlevel","barGap","colorList","mounted","_this","this","setTimeout","drawAllCharts","beforeCreate","created","getAllTestItemCaseNum","getAllTestTaskExecCondition","methods","_this2","$api","testresult","queryInterfaceTestCaseExecCountAndSuccessNumAndFailNum","then","res","testTaskConditions","orginYAxis1Datas","yAxis1Datas","series1Datas","series2Datas","caseCounts","length","splice","forEach","ele","taskName","push","substring","execScale","caseCount","JSON","parse","stringify_default","catch","_this3","xAxisDatas","seriesDatas","queryInterfaceTestCaseNumGroupByItemName","itemName","caseNum","caseNumChart","$echarts","init","document","getElementById","setOptionChart","exceStatusChart","testTaskChart","setProgressOptionChart","window","onresize","resize","e","chart","params","showLoading","text","hideLoading","setOption","dataZoom","height","xAxisIndex","start","end","title","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","orient","interface_InterfaceStatistic","render","_h","$createElement","_c","_self","directives","rawName","value","expression","staticClass","attrs","gutter","span","_v","staticRenderFns","test_interface_InterfaceStatistic","__webpack_require__","normalizeComponent","ssrContext","InterfaceDefineBasicInfo","noDebug","noDebugNum","basicInfo","itemId","requestType","protocolType","ipPath","port","interfacePath","interfaceName","isSave","requestOptions","protocolOptions","execEnvOptions","execEnvironment","defaultCaseId","defaultItemId","operatorPerson","localStorage","getItem","nick","basicInfoRules","required","message","min","max","changeNoDebugFlag","getRequestType","destroyed","saveToEnvHandleClick","command","addOrUpdataInterfaceData","flag","$forceUpdate","clearExecEnvironment","changeInterfaceInfoByEnv","testdata","queryInterfaceTestDataById","caseId","$emit","$notify","test","queryInterfaceTestCaseById","changeInterfaceBasicInfo","obj","isDebug","$common","getSessionStorage","env","envCode","createTime","Date","getTime","updateTime","createPerson","updatePerson","sendRequestOrSaveTestCase","$refs","basicInfoRef","validate","valid","dict","queryAllDataDict","environment","interface_InterfaceDefineBasicInfo","_vm","_m","ref","model","rules","label-width","prop","placeholder","clearable","callback","$$v","$set","_l","item","key","dictValue","dictCode","on","change","_e","click","$event","split-button","slot","_s","test_interface_InterfaceDefineBasicInfo","InterfaceDefineBasicInfo_normalizeComponent","InterfaceDefineResponseInfo","activeName","responseInfo","statusCode","responseHeader","responseContent","assertResult","props","watch","changeInterfaceResponseInfo","formatJsonData","setResponseInfo","response","msg","status","toString","headers","assertResult2","errorCause","getInterfaceRequestResult","getResponseInfo","handleClick","interface_InterfaceDefineResponseInfo","tab-click","rows","nativeOn","keyup","indexOf","_k","keyCode","test_interface_InterfaceDefineResponseInfo","InterfaceDefineResponseInfo_normalizeComponent","InterfaceDefineParamInfoRequestBody","requestBody","requestParamsList","items","keys","raw_textarea","xWwwFormUrlencodedList","formDataList","binaryList","changeRequestBody","_requestParam","requestParams","slice","paramsList","split","paramList","Math","random","addItem","arr","removeRequestParamsList","index","addRequestParamsList","now","removeXWwwFormUrlencodedList","addXWwwFormUrlencodedList","removeFormDataList","addFormDataList","removeBinaryList","addBinaryList","interface_InterfaceDefineParamInfoRequestBody","test_interface_InterfaceDefineParamInfoRequestBody","InterfaceDefineParamInfoRequestBody_normalizeComponent","InterfaceDefineParamInfoScript","scriptInfo","preScript_textarea","posScript_textarea","preSql_textarea","posSql_textarea","interfaceScriptInfo","Object","changeScriptInfo","interface_InterfaceDefineParamInfoScript","interface_InterfaceDefineParamInfoRelation","relationValues","interface_InterfaceDefineParamInfoAssert","assertInfo","InterfaceDefineParamInfo","components","InterfaceDefineParamInfoScript_normalizeComponent","InterfaceDefineParamInfoRelation","InterfaceDefineParamInfoRelation_normalizeComponent","changeRelationInfo","info","InterfaceDefineParamInfoAssert","InterfaceDefineParamInfoAssert_normalizeComponent","assertField","expectResult","changeAssertInfo","requestHeadersList","requestBodyInfo","relationInfo","openTips","$alert","dangerouslyUseHTMLString","changeInterfaceParamInfo","assert","relation","_requestHeader","requestHeaders","reqHeaders","replace","reqHeaderList","headerList","getInterfaceDefineParamInfo","paramInfo","removeRequestHeadersList","addRequestHeadersList","interface_InterfaceDefineParamInfo","interfaceRequestBody","interfaceAssertInfo","interfaceRelationInfo","InterfaceDefine","InterfaceDefineParamInfo_normalizeComponent","interfaceDefine","interfaceCaseResponseInfo","interfaceCaseParamInfo","interfaceCaseBasicInfo","computed","getRequestBackInfo","backInfo","changeInterfaceInfo","requestHeader","backParams","testInterfaceCase","paramInfos","parseListItemsBackJsonString","paramStr","interfaceCaseObj","assign_default","definePage","insertInterfaceTestData","list","jsonStr","interface_InterfaceDefine","interface-define-basic-info-test","interface-define-basic-info-change-env","test_interface_InterfaceDefine","InterfaceDefine_normalizeComponent","InterfaceMenuList","menuTreeList","defaultShowNodes","defaultExpandNodes","defaultProps","children","notDataText","loadDataText","iconCloseStyle","iconOpenStyle","getAllInterfaceTestItem","queryAllInterfaceTestItem","$nextTick","menuTreeRef","setCurrentKey","changeFolderStyle","currNode","className","clickCurrentNode","giveFObj","setSessionStorage","handler","deep","interface_InterfaceMenuList","highlight-current","expand-on-click-node","default-checked-keys","empty-text","element-loading-text","default-expanded-keys","accordion","node-key","render-after-expand","node-click","node-expand","node-collapse","scopedSlots","_u","fn","node","class","undefined","test_interface_InterfaceMenuList","InterfaceMenuList_normalizeComponent","InterfaceList","fileType","add_value","testDomain","testPort","itemOptions","taskOptions","joinTimingTaskForm","taskId","editForm","detailForm","queryInfo","pageNum","pageSize","testPerson","testCaseStatus","writePerson","comments","testCaseList","currpage","total","importDialogVisible","addDialogVisible","editDialogVisible","detailDialogVisible","joinTimingTaskDialogVisible","requestResultDialogVisible","environmentVariableVisible","environmentVariableList","requestBackInfo","multipleSelection","caseTypeOptions","caseLevelOptions","caseStatusOptions","caseExecLevelOptions","addForm","testMode","testCaseLevel","sheetName","basicInfoShowFlag","listShowFlag","interfaceInfoObj","cycleInterfaceRequestDialogVisible","cycleRequest","requestNumber","addFormRules","joinTimingTaskFormRules","addEnvironmentVariableFormRules","variableName","variableValue","setCycleRequestRules","validator","rule","Error","UploadFile","getItemNameList","getTaskNameList","getCaseTypeAndCaseStatusAndCaseLevel","autoFitResolution","getInterfaceTestCaseList","autoFitWindowWidth","val","box","interfaceListBoxRef","clientWidth","getElementsByClassName","mid","j","style","width","middle","lineHeight","body","clientHeight","_loop","i","onmousedown","startX","clientX","offsetLeft","onmousemove","endX","moveLen","maxT","offsetWidth","onmouseup","evt","releaseCapture","debugInterfaceTestCase","changeRightShowFlag","refreshTableListAndTreeList","interfaceMenuListRef","selectInterfaceTestCaseList","cycleInterfaceRequest","cycleRequestRef","cycleNumber","parseInt","interfaceTestList","cycleInterfaceRequestDialogVisibleClose","cycleInterfaceRequestDialogVisibleOpen","resetFields","changeRequestBackInfo","interfaceDefineRef","editSaveInterfaceTestCase","updateInterfaceTestCase","addInterfaceTestCase","changeLeftMenuRightTableWidth","leftMenu","querySelector","rightInterfaceInfo","changeToPageShow","row","_this4","updateTestDomain","_this5","testTaskId","execDomain","execPort","taskrelation","updateInterfaceTestTaskCaseExecLevelAndDomainAndPort","setEnvironmentVariable","_this6","testvariable","queryNotTaskVariableInfo","environmentVariableDialogClose","addEnvironmentVariable","delEnvironmentVariable","scope","$index","updateEnvironmentVariable","_this7","querySelectorAll","border","updateTestVariableInfo","updateTestCaseExecLevelIpPathPort","_this8","updateInterfaceTestCaseDefaultExecLevel","batchInterfaceRequest","_this9","element","singleInterfaceRequest","_this10","interfaceTestRequest","uploadSuccessStartImport","_this11","fileName","importInterfaceTestCaseByExcel","comm","deleteFile","_this12","caseType","caseLevel","caseStatus","caseExecLevel","testDomainOptions","domain","testPortOptions","_this13","task","queryAllTaskManagerInfo","jobName","options","beanClass","showTimingTaskDialogVisible","canclejoinTimingTaskDialogVisible","joinTimingTask","_this14","joinTimingTaskFormRef","joinTimingTaskCaseList","TimingTaskRelation","execLevel","interfaceCaseBatchJoinTestTask","updateTestCaseStatus","_this15","updateInterfaceTestCaseStatus","cancelImportDialogVisible","uploadFile","cancel","importInterfaceTestCase","uploadComplatedFlag","uploadSectionFile","batchExportInterfaceTestCase","_this16","batchExportInterfaceTestCaseToExcel","downloadFiles","exportAllInterfaceTestCase","_this17","exportWhenQueryINfo","exportAllInterfaceTestCaseToExcel","code","batchDelInterfaceTestCase","_this18","selectDatas","$confirm","confirmButtonText","cancelButtonText","batchDeleteInterfaceTestCase","handleSelectionChange","_this19","addFormRef","cancelAddDialogVisible","cancelEditDialogVisible","editFormRef","showEditDialog","_this20","editInterfaceTestCase","_this21","delInterfaceTestCase","_this22","deleteInterfaceTestCaseById","_this23","queryAllItemIdAndItemName","_this24","queryAllInterfaceTestCase","count","handleSizeChange","newSize","handleCurrentChange","newpageNum","getRowKeys","interface_InterfaceList","interface-menu-event","interface-menu-expand-fold-event","interface-case-update-event","interface-case-request-event","inline","tooltip-effect","fit","row-key","selection-change","cell-dblclick","reserve-selection","align","fixed","show-overflow-tooltip","size","page-sizes","page-size","layout","size-change","current-change","visible","close-on-click-modal","update:visible","close","upload-file-event","staticStyle","max-height","InterfaceInfo","InterfaceList_normalizeComponent","invokeInterfaceInfo","interfaceListRef","interface_InterfaceInfo","test_interface_InterfaceInfo","InterfaceInfo_normalizeComponent","InterfaceTestReport","tableIsShow","reportIsShow","taskNames","taskConditions","interfaceTestResultList","reportCaseNum","testResultDetails","testReportId","testReportType","onlySuccessOrFail","getTaskList","getInterfaceTestResultList","onlyLookSuccessOrFail","queryInterfaceTestResult","downLoadInterfaceTestReportToExcel","exportInterfaceTestResultToExcel","queryAllInterfaceTestResult","testDetailVOS","conditions","tableObj","picObj","testSuccessNum","num","testFailNum","testAllNum","showDetailDialog","backParentPage","allNum","myChart","subtext","x","valueOf","parseFloat","toFixed","textStyle","toolbox","feature","saveAsImage","radius","center","emphasis","lableLine","delInterfaceTestResult","deleteInterfaceTestResultById","interface_InterfaceTestReport","current-page","disabled","test_interface_InterfaceTestReport","InterfaceTestReport_normalizeComponent","InterfaceTestTaskCaseList","queryTaskVariableInfoByTaskId","selectInterfaceTestTaskCaseList","runEnvCode","queryAllInterfaceTestDataByTaskIdAndEnvCode","queryInterfaceTestTaskCase","updateTestCaseExecLevel","delJoinedTestTaskCaseByTaskIdAndCaseId","interface_InterfaceTestTaskCaseList","InterfaceTestTaskList","taskListIsShow","interfaceTestTaskList","jobGroup","runEnvironmentOptions","InterfaceTestTaskCaseList_normalizeComponent","getTaskRunEnvironmentDataDict","updateRunEnvironment","updateTaskRunEnvironment","changeShowCaseFlag","changeJobStatus","updateTaskManagerStatus","selectTaskList","runEnvironment","delTestTaskAndTestCase","delAllJoinedTestTaskCaseByTaskId","interface_InterfaceTestTaskList","active-value","inactive-value","test-task-case","Interface","load","statistic","taskList","report","pageName","tab","event","invokeInterface","interfaceInfoRef","InterfaceTestTaskList_normalizeComponent","testmanager_Interface","Interface_Component","Interface_normalizeComponent","__webpack_exports__"],"mappings":"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","file":"static/js/1.5ea73d8c812e95ec5d67.js","sourcesContent":["<template>\n <div class=\"interface-statistic-box\" v-loading=\"loading\">\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <div class=\"grid-content bg-purple\" id=\"interfaceStatisticChartByCaseNum\"></div>\n </el-col>\n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <div class=\"grid-content bg-purple\" id=\"interfaceStatisticChartByExceStatus\"></div>\n </el-col>\n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <div class=\"grid-content bg-purple\" id=\"interfaceStatisticChartByTestTask\"></div>\n </el-col>\n </el-row>\n </div>\n</template>\n<script>\nexport default { \n data () {\n return {\n loading: false,\n interfaceStatisticChartByCaseNum: {\n id: 'interfaceStatisticChartByCaseNum',\n title_text: '项目用例统计',\n trigger: 'axis',\n legend: [],\n grid: {},\n xAxis: {\n name: '',\n type: 'category',\n data: []\n },\n yAxis: {},\n series: {\n name: '',\n color: '#4285F4',\n type: 'bar',\n data: []\n }\n },\n interfaceStatisticChartByExceStatus: {\n id: 'interfaceStatisticChartByExceStatus',\n title_text: '任务用例统计',\n trigger: 'item',\n legend: [],\n xAxis: {\n name: '',\n type: 'category',\n data: [] \n },\n yAxis: {},\n series: {\n name: '',\n color: '#85C0D9',\n type: 'bar',\n data: [] \n }\n },\n interfaceStatisticChartByTestTask: {\n id: 'interfaceStatisticChartByTestTask',\n title_text: '任务执行成功率',\n trigger: 'item',\n legend: [],\n grid: {\n left: '80',\n top: '80',\n right: '0',\n bottom: '0',\n containLabel: true\n },\n tooltip: {\n showContent: false,\n },\n xAxis: {\n type: 'value', // 'value'-数值轴 'category'-类目轴 'time'-时间轴 'log'-对数轴\n splitLine: {show: false},\n axisLabel: {show: false},\n axisTick: {show: false},\n axisLine: {show: false},\n },\n yAxis: {\n type: 'category',\n axisTick: {show: false},\n axisLine: {show: false},\n axisLabel: {\n color: 'black',\n fontSize: 14\n },\n data: [] \n },\n series: [\n {\n name: '',\n type: 'bar',\n barWidth: 19,\n data: [], \n color: '#0505F5',\n label: { \n show: true,\n position: 'right',\n // offset: [0, -10],\n formatter: '{c}%',\n color: 'black',\n fontSize: 12\n },\n itemStyle: {\n normal: {\n barBorderRadius: 10,\n }\n },\n zlevel: 1\n },\n {\n name: '%',\n type: 'bar',\n barGap: '-100%',\n barWidth: 19,\n data: [], \n color: '#FFFFFF',\n itemStyle: {\n normal: {\n barBorderRadius: 10\n }\n }\n }\n ]\n },\n colorList: ['#4285F4', '#EA4335', '#FBBC05', '#34A853', '#85C0D9', '#043269', '#78C31C', '#916B86', '#202124', '#00818D', '#F5EDA7']\n }\n },\n mounted () {\n let _this = this\n setTimeout(function(){\n _this.loading = false\n _this.drawAllCharts()\n }, 800)\n },\n beforeCreate(){\n },\n created (){\n this.loading = true\n this.getAllTestItemCaseNum()\n this.getAllTestTaskExecCondition()\n },\n methods: {\n getAllTestTaskExecCondition(){\n this.$api.testresult.queryInterfaceTestCaseExecCountAndSuccessNumAndFailNum().then(res=>{\n var testTaskConditions = res.data.data\n var orginYAxis1Datas = []\n var yAxis1Datas = []\n var series1Datas = []\n var series2Datas = []\n var caseCounts = []\n if(testTaskConditions.length > 5)\n testTaskConditions = testTaskConditions.splice(0, 5)\n testTaskConditions.forEach(ele=>{\n let taskName = ele.taskName\n orginYAxis1Datas.push(taskName)\n if(taskName.length > 10){\n taskName = taskName.substring(0, 5) + '...' + taskName.substring(taskName.length - 5)\n }\n yAxis1Datas.push(taskName)\n series1Datas.push(ele.execScale)\n caseCounts.push(ele.caseCount)\n series2Datas.push(100)\n })\n this.interfaceStatisticChartByTestTask.yAxis.data = JSON.parse(JSON.stringify(yAxis1Datas))\n this.interfaceStatisticChartByTestTask.series[0].data = JSON.parse(JSON.stringify(series1Datas))\n this.interfaceStatisticChartByTestTask.series[1].data = JSON.parse(JSON.stringify(series2Datas))\n this.interfaceStatisticChartByExceStatus.xAxis.data = orginYAxis1Datas\n this.interfaceStatisticChartByExceStatus.series.data = caseCounts\n }).catch(()=>{})\n },\n getAllTestItemCaseNum(){\n var xAxisDatas = []\n var seriesDatas = []\n this.$api.testresult.queryInterfaceTestCaseNumGroupByItemName().then(res=>{\n var interfaceTests = res.data.data\n interfaceTests.forEach(ele => {\n xAxisDatas.push(ele.itemName)\n seriesDatas.push(ele.caseNum)\n })\n this.interfaceStatisticChartByCaseNum.xAxis.data = JSON.parse(JSON.stringify(xAxisDatas))\n this.interfaceStatisticChartByCaseNum.series.data = JSON.parse(JSON.stringify(seriesDatas)) \n }).catch(()=>{})\n },\n drawAllCharts(){\n try{\n var caseNumChart = this.$echarts.init(document.getElementById(this.interfaceStatisticChartByCaseNum.id))\n this.setOptionChart(caseNumChart, this.interfaceStatisticChartByCaseNum)\n var exceStatusChart = this.$echarts.init(document.getElementById(this.interfaceStatisticChartByExceStatus.id))\n this.setOptionChart(exceStatusChart, this.interfaceStatisticChartByExceStatus)\n var testTaskChart = this.$echarts.init(document.getElementById(this.interfaceStatisticChartByTestTask.id))\n this.setProgressOptionChart(testTaskChart, this.interfaceStatisticChartByTestTask)\n window.onresize = function(){\n caseNumChart.resize()\n exceStatusChart.resize()\n testTaskChart.resize()\n }\n }catch(e){}\n },\n setOptionChart(chart, params){\n chart.showLoading({\n text: 'loading...'\n })\n chart.hideLoading()\n chart.setOption({\n dataZoom: [\n {\n height: 24,\n type: 'slider',\n show: true,\n xAxisIndex: [0],\n start: 0,\n end: 100,\n bottom: 5\n }\n ],\n title: {\n text: params.title_text\n },\n tooltip: {\n trigger: params.trigger\n },\n itemStyle: {\n shadowBlur: 200,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: \"rgba(0, 0, 0, 0.5)\"\n },\n legend: {\n orient: 'horizontal',\n data: params.legend\n },\n xAxis: params.xAxis,\n yAxis: params.yAxis,\n series: params.series\n })\n },\n setProgressOptionChart(chart, params){\n chart.showLoading({\n text: 'loading...'\n })\n chart.hideLoading()\n chart.setOption({\n dataZoom: [\n {\n height: 24,\n type: 'slider',\n show: true,\n xAxisIndex: [0],\n start: 0,\n end: 100,\n bottom: 5\n }\n ],\n title: {\n text: params.title_text\n },\n tooltip: {\n show: true,\n formatter: function(params){\n return params.name\n }\n },\n itemStyle: {\n shadowBlur: 200,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: \"rgba(0, 0, 0, 0.5)\"\n },\n legend: {\n orient: 'horizontal',\n data: params.legend\n },\n xAxis: params.xAxis,\n yAxis: params.yAxis,\n series: params.series\n })\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.interface-statistic-box {\n margin: 0 0 15px 0;\n padding: 5px 20px;\n width: 98%;\n height: 100%;\n}\n.el-row {\n margin-bottom: 20px;\n &:last-child {\n margin-bottom: 0;\n }\n .el-col {\n border-radius: 4px;\n width: 100%;\n }\n .bg-purple {\n background: #F4F5F7;\n }\n .grid-content {\n border-radius: 4px;\n min-height: 300px;\n }\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceStatistic.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"interface-statistic-box\"},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticClass:\"grid-content bg-purple\",attrs:{\"id\":\"interfaceStatisticChartByCaseNum\"}})])],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticClass:\"grid-content bg-purple\",attrs:{\"id\":\"interfaceStatisticChartByExceStatus\"}})])],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticClass:\"grid-content bg-purple\",attrs:{\"id\":\"interfaceStatisticChartByTestTask\"}})])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-493089c1\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceStatistic.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-493089c1\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceStatistic.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceStatistic.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceStatistic.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-493089c1\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceStatistic.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-493089c1\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceStatistic.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-define-base-info\" v-loading=\"loading\">\n <div class=\"define-base-info interface-define base-body\">\n <div class=\"interface-define-title base-info-title\">\n <span>|</span>\n 基本信息\n </div>\n <div class=\"interface-define-body case-info-form\">\n <el-form :model=\"basicInfo\" :rules=\"basicInfoRules\" ref=\"basicInfoRef\" label-width=\"100px\">\n <el-row>\n <el-col :span=\"6\">\n <el-form-item label=\"协议类型\" prop=\"protocolType\">\n <el-select v-model=\"basicInfo.protocolType\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in protocolOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n <el-form-item label=\"请求方式\" prop=\"requestType\">\n <el-select v-model=\"basicInfo.requestType\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in requestOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"7\">\n <el-form-item label=\"IP/域名\" prop=\"ipPath\">\n <el-input type=\"text\" v-model=\"basicInfo.ipPath\" placeholder=\"请输入IP/域名地址\" clearable></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"5\">\n <el-form-item label=\"端口号\">\n <el-input type=\"text\" v-model=\"basicInfo.port\" placeholder=\"请输入端口号\" class=\"port-class\" clearable></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"6\">\n <el-form-item label=\"接口名称\" prop=\"interfaceName\">\n <el-input type=\"text\" v-model=\"basicInfo.interfaceName\" placeholder=\"请输入接口名称\" clearable></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"接口地址\">\n <el-input type=\"text\" v-model=\"basicInfo.interfacePath\" placeholder=\"请输入接口地址\" clearable></el-input>\n </el-form-item>\n </el-col>\n <div class=\"no-debug-class\" v-if=\"noDebug\" :key=\"noDebugNum\">\n <el-col :span=\"5\">\n <el-form-item label=\"选择环境\" prop=\"\">\n <el-select v-model=\"execEnvironment\" placeholder=\"请选择\" @change=\"changeInterfaceInfoByEnv\" clearable>\n <el-option\n v-for=\"item in execEnvOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n </div>\n <el-col :span=\"5\">\n <el-form-item>\n <el-dropdown>\n <el-button type=\"primary\" @click=\"sendRequestOrSaveTestCase(false)\">测试</el-button>\n <el-dropdown-menu></el-dropdown-menu>\n </el-dropdown>\n <!-- <el-button @click=\"sendRequestOrSaveTestCase(true)\">保存</el-button> -->\n <el-dropdown \n :split-button=\"true\"\n @click=\"sendRequestOrSaveTestCase(true)\"\n @command=\"saveToEnvHandleClick\"\n >\n 保存\n <el-dropdown-menu slot=\"dropdown\">\n <div v-for=\"item in execEnvOptions\" :key=\"item.id\">\n <el-dropdown-item :command=\"item.dictCode\">{{item.dictValue}}</el-dropdown-item>\n </div>\n </el-dropdown-menu>\n </el-dropdown>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n data(){\n return{\n noDebug: true,\n noDebugNum: 0,\n loading: false,\n basicInfo: {\n id: '',\n itemId: '',\n requestType: '',\n protocolType: '',\n ipPath: '',\n port: '',\n interfacePath: '',\n interfaceName: '',\n isSave: false\n },\n requestOptions: [],\n protocolOptions: [],\n execEnvOptions: [],\n execEnvironment: '',\n defaultCaseId: '',\n defaultItemId: '',\n operatorPerson: JSON.parse(localStorage.getItem('userInfo')).nick,\n basicInfoRules: {\n protocolType: [\n { required: true, message: '请选择协议类型', trigger: 'blur' }\n ],\n requestType: [\n { required: true, message: '请选择请求方式', trigger: 'blur' }\n ],\n ipPath: [\n { required: true, message: '请输入IP/域名地址', trigger: 'blur' },\n { min:1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }\n ],\n interfaceName: [\n { required: true, message: '请输入接口名称', trigger: 'blur' },\n { min:1, max: 100, message: '长度在 1 到 50 个字符', trigger: 'blur' }\n ]\n }\n }\n },\n mounted(){\n this.changeNoDebugFlag(false)\n },\n created (){\n this.getRequestType()\n },\n destroyed(){\n this.execEnvironment = ''\n this.defaultCaseId = ''\n this.defaultItemId = ''\n },\n methods: {\n saveToEnvHandleClick(command){\n this.addOrUpdataInterfaceData(command)\n },\n changeNoDebugFlag(flag){\n this.noDebug = flag\n this.noDebugNum += 1\n this.$forceUpdate()\n },\n clearExecEnvironment(){\n this.execEnvironment = ''\n },\n changeInterfaceInfoByEnv(){\n if(this.execEnvironment && this.defaultCaseId){ \n this.$api.testdata.queryInterfaceTestDataById(this.defaultCaseId + '/' + this.execEnvironment).then(res =>{\n let data = res.data.data\n if(data){\n this.defaultCaseId = data.caseId\n data.id = this.defaultCaseId\n this.$emit('interface-define-basic-info-change-env', data)\n }else{\n this.$notify({\n type: 'warning',\n message: '您选择的环境,暂无数据'\n })\n this.execEnvironment = ''\n }\n }).catch(()=>{})\n }else if(this.defaultCaseId){\n this.$api.test.queryInterfaceTestCaseById(this.defaultCaseId).then(res =>{\n let data = res.data.data\n data.id = this.defaultCaseId\n this.$emit('interface-define-basic-info-change-env', data)\n }).catch(()=>{})\n }\n },\n changeInterfaceBasicInfo(obj){\n this.isDebug = this.$common.getSessionStorage('isDebug')\n this.basicInfo.id = obj.id\n this.basicInfo.itemId = obj.itemId\n this.basicInfo.requestType = obj.requestType\n this.basicInfo.protocolType = obj.protocolType\n this.basicInfo.ipPath = obj.ipPath\n this.basicInfo.port = obj.port\n this.basicInfo.interfacePath = obj.interfacePath\n this.basicInfo.interfaceName = obj.interfaceName\n this.defaultCaseId = this.basicInfo.id\n },\n addOrUpdataInterfaceData(env){\n this.basicInfo.addOrUpdataInterfaceData = true\n this.basicInfo.envCode = env\n this.basicInfo.itemId = this.$common.getSessionStorage('currentInterfaceCaseItemId')\n this.basicInfo.createTime = new Date().getTime()\n this.basicInfo.updateTime = new Date().getTime()\n this.basicInfo.createPerson = this.operatorPerson\n this.basicInfo.updatePerson = this.operatorPerson\n this.$emit('interface-define-basic-info-test', this.basicInfo)\n },\n sendRequestOrSaveTestCase(flag){\n this.$refs.basicInfoRef.validate(valid => {\n if (!valid){\n return\n }\n if(!this.basicInfo.itemId)\n this.basicInfo.itemId = 1\n if(this.execEnvironment && flag){\n this.addOrUpdataInterfaceData(this.execEnvironment)\n }else{\n this.basicInfo.isSave = flag\n this.basicInfo.addOrUpdataInterfaceData = false\n this.basicInfo.id = this.defaultCaseId\n this.$emit('interface-define-basic-info-test', this.basicInfo)\n }\n })\n },\n getRequestType(){\n this.$api.dict.queryAllDataDict().then(res=>{\n this.requestOptions = res.data.data.requestType\n this.protocolOptions = res.data.data.protocolType\n this.execEnvOptions = res.data.data.environment\n }).catch(()=>{})\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n/deep/ .port-class {\n width: 90%;\n}\n.base-info-title {\n margin-bottom: 10px;\n}\n/deep/ .base-body {\n padding-bottom: 0px !important;\n}\n/deep/ .case-info-form .el-select {\n width: 100%;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefineBasicInfo.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"interface-define-base-info\"},[_c('div',{staticClass:\"define-base-info interface-define base-body\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"interface-define-body case-info-form\"},[_c('el-form',{ref:\"basicInfoRef\",attrs:{\"model\":_vm.basicInfo,\"rules\":_vm.basicInfoRules,\"label-width\":\"100px\"}},[_c('el-row',[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"协议类型\",\"prop\":\"protocolType\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.basicInfo.protocolType),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"protocolType\", $$v)},expression:\"basicInfo.protocolType\"}},_vm._l((_vm.protocolOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"请求方式\",\"prop\":\"requestType\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.basicInfo.requestType),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"requestType\", $$v)},expression:\"basicInfo.requestType\"}},_vm._l((_vm.requestOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":7}},[_c('el-form-item',{attrs:{\"label\":\"IP/域名\",\"prop\":\"ipPath\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入IP/域名地址\",\"clearable\":\"\"},model:{value:(_vm.basicInfo.ipPath),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"ipPath\", $$v)},expression:\"basicInfo.ipPath\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":5}},[_c('el-form-item',{attrs:{\"label\":\"端口号\"}},[_c('el-input',{staticClass:\"port-class\",attrs:{\"type\":\"text\",\"placeholder\":\"请输入端口号\",\"clearable\":\"\"},model:{value:(_vm.basicInfo.port),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"port\", $$v)},expression:\"basicInfo.port\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"接口名称\",\"prop\":\"interfaceName\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入接口名称\",\"clearable\":\"\"},model:{value:(_vm.basicInfo.interfaceName),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"interfaceName\", $$v)},expression:\"basicInfo.interfaceName\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"接口地址\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入接口地址\",\"clearable\":\"\"},model:{value:(_vm.basicInfo.interfacePath),callback:function ($$v) {_vm.$set(_vm.basicInfo, \"interfacePath\", $$v)},expression:\"basicInfo.interfacePath\"}})],1)],1),_vm._v(\" \"),(_vm.noDebug)?_c('div',{key:_vm.noDebugNum,staticClass:\"no-debug-class\"},[_c('el-col',{attrs:{\"span\":5}},[_c('el-form-item',{attrs:{\"label\":\"选择环境\",\"prop\":\"\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":_vm.changeInterfaceInfoByEnv},model:{value:(_vm.execEnvironment),callback:function ($$v) {_vm.execEnvironment=$$v},expression:\"execEnvironment\"}},_vm._l((_vm.execEnvOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":5}},[_c('el-form-item',[_c('el-dropdown',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.sendRequestOrSaveTestCase(false)}}},[_vm._v(\"测试\")]),_vm._v(\" \"),_c('el-dropdown-menu')],1),_vm._v(\" \"),_c('el-dropdown',{attrs:{\"split-button\":true},on:{\"click\":function($event){return _vm.sendRequestOrSaveTestCase(true)},\"command\":_vm.saveToEnvHandleClick}},[_vm._v(\"\\n 保存\\n \"),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},_vm._l((_vm.execEnvOptions),function(item){return _c('div',{key:item.id},[_c('el-dropdown-item',{attrs:{\"command\":item.dictCode}},[_vm._v(_vm._s(item.dictValue))])],1)}),0)],1)],1)],1)],1)],1)],1)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interface-define-title base-info-title\"},[_c('span',[_vm._v(\"|\")]),_vm._v(\"\\n 基本信息\\n \")])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-5a94a32a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefineBasicInfo.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-5a94a32a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefineBasicInfo.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineBasicInfo.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineBasicInfo.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5a94a32a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefineBasicInfo.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5a94a32a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefineBasicInfo.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"define-response-info interface-define body-bottom\">\n <div class=\"interface-define-title\">\n <span>|</span>\n 响应信息\n </div>\n <div class=\"interface-define-body\">\n <el-tabs v-model=\"activeName\" @tab-click=\"handleClick\">\n <el-tab-pane label=\"响应体\" name=\"responseBody\">\n <div class=\"raw-area\">\n <el-input\n type=\"textarea\"\n :rows=\"10\"\n placeholder=\"\"\n v-model=\"responseInfo.responseContent\"\n @keyup.enter.native=\"formatJsonData\">\n </el-input>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"响应头\" name=\"responseHeader\">\n <div class=\"raw-area\">\n <el-input\n type=\"textarea\"\n :rows=\"10\"\n placeholder=\"\"\n v-model=\"responseInfo.responseHeader\">\n </el-input>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"状态码\" name=\"statusCode\">\n <div class=\"raw-area\">\n <el-input\n type=\"textarea\"\n :rows=\"10\"\n placeholder=\"\"\n v-model=\"responseInfo.statusCode\">\n </el-input>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"断言结果\" name=\"assertResult\">\n <div class=\"assert-result-area\">\n <el-input\n type=\"textarea\"\n :rows=\"10\"\n placeholder=\"\"\n v-model=\"assertResult\">\n </el-input>\n </div>\n </el-tab-pane>\n </el-tabs>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n data(){\n return{\n activeName: 'responseBody',\n responseInfo: {\n statusCode: '',\n responseHeader: '',\n responseContent: ''\n },\n assertResult: ''\n }\n },\n props: {\n },\n watch: {\n },\n methods: {\n changeInterfaceResponseInfo(obj){\n this.responseInfo.statusCode = ''\n this.responseInfo.responseHeader = ''\n this.responseInfo.responseContent = ''\n this.assertResult = ''\n },\n formatJsonData(){\n if(this.responseInfo.responseContent){\n try{\n this.responseInfo.responseContent = JSON.stringify(JSON.parse(this.responseInfo.responseContent), null, 4)\n }catch(e){\n this.$notify({\n type: 'error',\n message: 'JSON格式化错误请检查!'\n })\n }\n }\n },\n setResponseInfo(response, id){\n this.responseInfo.statusCode = ''\n this.responseInfo.responseHeader = ''\n this.responseInfo.responseContent = ''\n this.assertResult = ''\n try{\n if(response.data.msg){\n this.responseInfo.responseContent = response.data.msg\n try{\n var res = JSON.parse(response.data.msg)\n this.responseInfo.statusCode = res.status\n }catch(e){\n this.responseInfo.statusCode = response.status\n }\n }else if(response.data){\n this.responseInfo.responseContent = response.data.toString()\n this.responseInfo.statusCode = response.status\n }else{\n this.responseInfo.responseContent = response.toString()\n this.responseInfo.statusCode = response.status\n }\n }catch(e){\n this.responseInfo.responseContent = response.toString()\n this.responseInfo.statusCode = response.status\n }\n this.responseInfo.responseHeader = JSON.stringify(response.headers)\n if(id){\n this.$api.test.queryInterfaceTestCaseById(id).then(res => {\n var data = res.data.data\n var assertResult2 = data.assertResult ? '断言结果:' + data.assertResult : ''\n var errorCause = data.errorCause ? '\\n错误原因' + data.errorCause : ''\n this.assertResult = assertResult2 + errorCause\n }).catch(()=>{}) \n }else{\n this.$api.test.getInterfaceRequestResult().then(res=>{\n var data = res.data.data\n var assertResult2 = data.assertResult ? '断言结果:' + data.assertResult : ''\n var errorCause = data.errorCause ? '\\n错误原因' + data.errorCause : ''\n this.assertResult = assertResult2 + errorCause\n })\n }\n },\n getResponseInfo(){\n return this.responseInfo\n },\n handleClick(){}\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefineResponseInfo.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"define-response-info interface-define body-bottom\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"interface-define-body\"},[_c('el-tabs',{on:{\"tab-click\":_vm.handleClick},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"响应体\",\"name\":\"responseBody\"}},[_c('div',{staticClass:\"raw-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":10,\"placeholder\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.formatJsonData($event)}},model:{value:(_vm.responseInfo.responseContent),callback:function ($$v) {_vm.$set(_vm.responseInfo, \"responseContent\", $$v)},expression:\"responseInfo.responseContent\"}})],1)]),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"响应头\",\"name\":\"responseHeader\"}},[_c('div',{staticClass:\"raw-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":10,\"placeholder\":\"\"},model:{value:(_vm.responseInfo.responseHeader),callback:function ($$v) {_vm.$set(_vm.responseInfo, \"responseHeader\", $$v)},expression:\"responseInfo.responseHeader\"}})],1)]),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"状态码\",\"name\":\"statusCode\"}},[_c('div',{staticClass:\"raw-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":10,\"placeholder\":\"\"},model:{value:(_vm.responseInfo.statusCode),callback:function ($$v) {_vm.$set(_vm.responseInfo, \"statusCode\", $$v)},expression:\"responseInfo.statusCode\"}})],1)]),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"断言结果\",\"name\":\"assertResult\"}},[_c('div',{staticClass:\"assert-result-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":10,\"placeholder\":\"\"},model:{value:(_vm.assertResult),callback:function ($$v) {_vm.assertResult=$$v},expression:\"assertResult\"}})],1)])],1)],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interface-define-title\"},[_c('span',[_vm._v(\"|\")]),_vm._v(\"\\n 响应信息\\n \")])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4042cc78\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefineResponseInfo.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4042cc78\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefineResponseInfo.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineResponseInfo.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineResponseInfo.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4042cc78\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefineResponseInfo.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-4042cc78\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefineResponseInfo.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"define-request-info-body\">\n <el-tabs v-model=\"activeName\" @tab-click=\"handleClick\">\n <el-tab-pane label=\"raw\" name=\"raw\">\n <div class=\"raw-area\">\n <el-input\n type=\"textarea\"\n :rows=\"8\"\n placeholder=\"\"\n v-model=\"requestBody.raw_textarea\"\n @keyup.enter.native=\"formatJsonData\">\n </el-input>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"param\" name=\"params\">\n <el-form :model=\"requestBody.requestParamsList\" ref=\"requestParamsFormRef\">\n <el-row :gutter=\"20\" v-for=\"(item, index) in requestBody.requestParamsList.items\" :key=\"item.key\"> \n <el-col :span=\"6\"> \n <el-form-item :prop=\"'items.' + index + '.keys'\">\n <el-input v-model=\"item.keys\" placeholder=\"请输入key\" clearable></el-input>\n </el-form-item> \n </el-col> \n <el-col :span=\"16\"> \n <el-form-item :prop=\"'items.' + index + '.value'\">\n <el-input v-model=\"item.value\" placeholder=\"请输入value\" clearable></el-input>\n </el-form-item> \n </el-col>\n <el-col :span=\"2\">\n <div class=\"add-del-param-btn\">\n <el-tag type=\"danger\" class=\"line-add-del\" v-if=\"requestBody.requestParamsList.items.length !== 1\" @click=\"removeRequestParamsList(item)\">-</el-tag>\n <el-tag type=\"danger\" class=\"line-add-del\" @click=\"addRequestParamsList\">+</el-tag>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </el-tab-pane>\n <el-tab-pane label=\"form-data\" name=\"formData\" v-if=\"false\">\n <div class=\"form-data-line\">\n <el-form :model=\"requestBody.formDataList\" ref=\"requestParamsFormRef\">\n <el-row :gutter=\"20\" v-for=\"(item, index) in requestBody.formDataList.items\" :key=\"item.key\"> \n <el-col :span=\"6\"> \n <el-form-item :prop=\"'items.' + index + '.keys'\">\n <el-input v-model=\"item.keys\" placeholder=\"请输入key\"></el-input>\n </el-form-item> \n </el-col> \n <el-col :span=\"16\"> \n <el-form-item :prop=\"'items.' + index + '.value'\">\n <el-input v-model=\"item.value\" placeholder=\"请输入value\"></el-input>\n </el-form-item> \n </el-col>\n <el-col :span=\"2\">\n <div class=\"add-del-param-btn\">\n <el-tag type=\"danger\" class=\"line-add-del\" v-if=\"requestBody.formDataList.items.length !== 1\" @click=\"removeFormDataList(item)\">-</el-tag>\n <el-tag type=\"danger\" class=\"line-add-del\" @click=\"addFormDataList\">+</el-tag>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"x-www-form-urlencoded\" name=\"xWwwFormUrlencoded\" v-if=\"false\">\n <div class=\"x-www-form-urlencoded-line\">\n <el-form :model=\"requestBody.xWwwFormUrlencodedList\" ref=\"requestParamsFormRef\">\n <el-row :gutter=\"20\" v-for=\"(item, index) in requestBody.xWwwFormUrlencodedList.items\" :key=\"item.key\"> \n <el-col :span=\"6\"> \n <el-form-item :prop=\"'items.' + index + '.keys'\">\n <el-input v-model=\"item.keys\" placeholder=\"请输入key\"></el-input>\n </el-form-item> \n </el-col> \n <el-col :span=\"16\"> \n <el-form-item :prop=\"'items.' + index + '.value'\">\n <el-input v-model=\"item.value\" placeholder=\"请输入value\"></el-input>\n </el-form-item> \n </el-col>\n <el-col :span=\"2\">\n <div class=\"add-del-param-btn\">\n <el-tag type=\"danger\" class=\"line-add-del\" v-if=\"requestBody.xWwwFormUrlencodedList.items.length !== 1\" @click=\"removeXWwwFormUrlencodedList(item)\">-</el-tag>\n <el-tag type=\"danger\" class=\"line-add-del\" @click=\"addXWwwFormUrlencodedList\">+</el-tag>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"binary\" name=\"binary\" v-if=\"false\">\n <div class=\"binary-area\">\n <el-form :model=\"requestBody.binaryList\" ref=\"requestParamsFormRef\">\n <el-row :gutter=\"20\" v-for=\"(item, index) in requestBody.binaryList.items\" :key=\"item.key\"> \n <el-col :span=\"6\"> \n <el-form-item :prop=\"'items.' + index + '.keys'\">\n <el-input v-model=\"item.keys\" placeholder=\"请输入key\"></el-input>\n </el-form-item> \n </el-col> \n <el-col :span=\"16\"> \n <el-form-item :prop=\"'items.' + index + '.value'\">\n <el-input v-model=\"item.value\" placeholder=\"请输入value\"></el-input>\n </el-form-item> \n </el-col>\n <el-col :span=\"2\">\n <div class=\"add-del-param-btn\">\n <el-tag type=\"danger\" class=\"line-add-del\" v-if=\"requestBody.binaryList.items.length !== 1\" @click=\"removeBinaryList(item)\">-</el-tag>\n <el-tag type=\"danger\" class=\"line-add-del\" @click=\"addBinaryList\">+</el-tag>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </div>\n </el-tab-pane>\n </el-tabs>\n </div>\n</template>\n\n<script>\nexport default {\n data(){\n return{\n activeName: 'raw',\n requestBody: {\n requestParamsList: {\n items: [{\n keys: '',\n value: ''\n }]\n },\n raw_textarea: '',\n xWwwFormUrlencodedList: {\n items: [{\n keys: '',\n value: ''\n }]\n },\n formDataList: {\n items: [{\n keys: '',\n value: ''\n }]\n },\n binaryList: {\n items: [{\n keys: '',\n value: ''\n }]\n }\n }\n }\n },\n methods: {\n changeRequestBody(obj){\n if(obj){\n this.requestBody.raw_textarea = obj.requestBody\n var _requestParam = obj.requestParams\n if(_requestParam){\n if(_requestParam.slice(0,1) == '?')\n _requestParam = _requestParam.slice(1)\n var paramsList = _requestParam.split('&')\n this.requestBody.requestParamsList.items = []\n paramsList.forEach(ele=>{\n var paramList = ele.split('=')\n var item = {\n keys: paramList[0],\n value: paramList[1],\n key: Math.random()\n }\n this.requestBody.requestParamsList.items.push(item)\n })\n }else{\n this.requestBody.requestParamsList.items = []\n this.addItem(this.requestBody.requestParamsList.items)\n }\n }else{\n this.requestBody.raw_textarea = ''\n this.requestBody.requestParamsList.items = []\n this.requestBody.xWwwFormUrlencodedList.items = []\n this.requestBody.formDataList.items = []\n this.requestBody.binaryList.items = []\n this.addItem(this.requestBody.requestParamsList.items)\n this.addItem(this.requestBody.xWwwFormUrlencodedList.items)\n this.addItem(this.requestBody.formDataList.items)\n this.addItem(this.requestBody.binaryList.items)\n }\n },\n addItem(arr){\n var item = {\n keys: '',\n value: ''\n }\n arr.push(item)\n },\n handleClick(){},\n formatJsonData(){\n if(this.requestBody.raw_textarea){\n try{\n this.requestBody.raw_textarea = JSON.stringify(JSON.parse(this.requestBody.raw_textarea), null, 4)\n }catch(e){\n this.$notify({\n type: 'error',\n message: 'JSON格式化错误请检查!'\n })\n }\n }\n },\n removeRequestParamsList(item) { \n\t\t\tvar index = this.requestBody.requestParamsList.items.indexOf(item)\n\t\t\tif (index !== -1)\n\t\t\t\tthis.requestBody.requestParamsList.items.splice(index, 1) \n\t\t},\n\t\taddRequestParamsList() {\n\t\t\tthis.requestBody.requestParamsList.items.push({\n keys: '',\n value: '',\n\t\t\t\tkey: Date.now()\n\t\t\t})\n\t\t},\n removeXWwwFormUrlencodedList(item) { \n\t\t\tvar index = this.requestBody.xWwwFormUrlencodedList.items.indexOf(item)\n\t\t\tif (index !== -1)\n\t\t\t\tthis.requestBody.xWwwFormUrlencodedList.items.splice(index, 1) \n\t\t},\n\t\taddXWwwFormUrlencodedList() {\n\t\t\tthis.requestBody.xWwwFormUrlencodedList.items.push({\n keys: '',\n value: '',\n\t\t\t\tkey: Date.now()\n\t\t\t})\n\t\t},\n removeFormDataList(item) { \n var index = this.requestBody.formDataList.items.indexOf(item)\n if (index !== -1)\n this.requestBody.formDataList.items.splice(index, 1) \n },\n addFormDataList() {\n this.requestBody.formDataList.items.push({\n keys: '',\n value: '',\n key: Date.now()\n })\n },\n removeBinaryList(item) { \n var index = this.requestBody.binaryList.items.indexOf(item)\n if (index !== -1)\n this.requestBody.binaryList.items.splice(index, 1) \n },\n addBinaryList() {\n this.requestBody.binaryList.items.push({\n keys: '',\n value: '',\n key: Date.now()\n })\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n.add-del-param-btn {\n text-align: center;\n padding-top: 4px;\n span {\n margin-right: 10px;\n }\n}\n/deep/ .line-add-del:hover{\n cursor: pointer;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefineParamInfoRequestBody.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"define-request-info-body\"},[_c('el-tabs',{on:{\"tab-click\":_vm.handleClick},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"raw\",\"name\":\"raw\"}},[_c('div',{staticClass:\"raw-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":8,\"placeholder\":\"\"},nativeOn:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.formatJsonData($event)}},model:{value:(_vm.requestBody.raw_textarea),callback:function ($$v) {_vm.$set(_vm.requestBody, \"raw_textarea\", $$v)},expression:\"requestBody.raw_textarea\"}})],1)]),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"param\",\"name\":\"params\"}},[_c('el-form',{ref:\"requestParamsFormRef\",attrs:{\"model\":_vm.requestBody.requestParamsList}},_vm._l((_vm.requestBody.requestParamsList.items),function(item,index){return _c('el-row',{key:item.key,attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.keys'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入key\",\"clearable\":\"\"},model:{value:(item.keys),callback:function ($$v) {_vm.$set(item, \"keys\", $$v)},expression:\"item.keys\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.value'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入value\",\"clearable\":\"\"},model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":2}},[_c('div',{staticClass:\"add-del-param-btn\"},[(_vm.requestBody.requestParamsList.items.length !== 1)?_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":function($event){return _vm.removeRequestParamsList(item)}}},[_vm._v(\"-\")]):_vm._e(),_vm._v(\" \"),_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":_vm.addRequestParamsList}},[_vm._v(\"+\")])],1)])],1)}),1)],1),_vm._v(\" \"),(false)?_c('el-tab-pane',{attrs:{\"label\":\"form-data\",\"name\":\"formData\"}},[_c('div',{staticClass:\"form-data-line\"},[_c('el-form',{ref:\"requestParamsFormRef\",attrs:{\"model\":_vm.requestBody.formDataList}},_vm._l((_vm.requestBody.formDataList.items),function(item,index){return _c('el-row',{key:item.key,attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.keys'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入key\"},model:{value:(item.keys),callback:function ($$v) {_vm.$set(item, \"keys\", $$v)},expression:\"item.keys\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.value'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入value\"},model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":2}},[_c('div',{staticClass:\"add-del-param-btn\"},[(_vm.requestBody.formDataList.items.length !== 1)?_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":function($event){return _vm.removeFormDataList(item)}}},[_vm._v(\"-\")]):_vm._e(),_vm._v(\" \"),_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":_vm.addFormDataList}},[_vm._v(\"+\")])],1)])],1)}),1)],1)]):_vm._e(),_vm._v(\" \"),(false)?_c('el-tab-pane',{attrs:{\"label\":\"x-www-form-urlencoded\",\"name\":\"xWwwFormUrlencoded\"}},[_c('div',{staticClass:\"x-www-form-urlencoded-line\"},[_c('el-form',{ref:\"requestParamsFormRef\",attrs:{\"model\":_vm.requestBody.xWwwFormUrlencodedList}},_vm._l((_vm.requestBody.xWwwFormUrlencodedList.items),function(item,index){return _c('el-row',{key:item.key,attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.keys'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入key\"},model:{value:(item.keys),callback:function ($$v) {_vm.$set(item, \"keys\", $$v)},expression:\"item.keys\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.value'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入value\"},model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":2}},[_c('div',{staticClass:\"add-del-param-btn\"},[(_vm.requestBody.xWwwFormUrlencodedList.items.length !== 1)?_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":function($event){return _vm.removeXWwwFormUrlencodedList(item)}}},[_vm._v(\"-\")]):_vm._e(),_vm._v(\" \"),_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":_vm.addXWwwFormUrlencodedList}},[_vm._v(\"+\")])],1)])],1)}),1)],1)]):_vm._e(),_vm._v(\" \"),(false)?_c('el-tab-pane',{attrs:{\"label\":\"binary\",\"name\":\"binary\"}},[_c('div',{staticClass:\"binary-area\"},[_c('el-form',{ref:\"requestParamsFormRef\",attrs:{\"model\":_vm.requestBody.binaryList}},_vm._l((_vm.requestBody.binaryList.items),function(item,index){return _c('el-row',{key:item.key,attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.keys'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入key\"},model:{value:(item.keys),callback:function ($$v) {_vm.$set(item, \"keys\", $$v)},expression:\"item.keys\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.value'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入value\"},model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":2}},[_c('div',{staticClass:\"add-del-param-btn\"},[(_vm.requestBody.binaryList.items.length !== 1)?_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":function($event){return _vm.removeBinaryList(item)}}},[_vm._v(\"-\")]):_vm._e(),_vm._v(\" \"),_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":_vm.addBinaryList}},[_vm._v(\"+\")])],1)])],1)}),1)],1)]):_vm._e()],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-485ab872\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefineParamInfoRequestBody.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-485ab872\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefineParamInfoRequestBody.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoRequestBody.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoRequestBody.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-485ab872\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefineParamInfoRequestBody.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-485ab872\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefineParamInfoRequestBody.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"define-request-params-other-set\">\n <el-tabs v-model=\"activeName\" @tab-click=\"handleClick\">\n <el-tab-pane label=\"前置脚本\" name=\"preScript\">\n <div class=\"pre-script-area\">\n <el-input\n type=\"textarea\"\n :rows=\"7\"\n placeholder=\"请输入前置脚本现仅支持Java\"\n v-model=\"scriptInfo.preScript_textarea\">\n </el-input>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"后置脚本\" name=\"posScript\">\n <div class=\"pos-script-area\">\n <el-input\n type=\"textarea\"\n :rows=\"7\"\n placeholder=\"请输入后置脚本现仅支持Java\"\n v-model=\"scriptInfo.posScript_textarea\">\n </el-input>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"前置SQL\" name=\"preSql\">\n <div class=\"pre-sql-area\">\n <el-input\n type=\"textarea\"\n :rows=\"7\"\n placeholder=\"请输入前置SQL\"\n v-model=\"scriptInfo.preSql_textarea\">\n </el-input>\n </div>\n </el-tab-pane>\n <el-tab-pane label=\"后置SQL\" name=\"posSql\">\n <div class=\"pos-sql-area\">\n <el-input\n type=\"textarea\"\n :rows=\"7\"\n placeholder=\"请输入后置SQL\"\n v-model=\"scriptInfo.posSql_textarea\">\n </el-input>\n </div>\n </el-tab-pane>\n </el-tabs>\n </div>\n</template>\n\n<script>\nexport default {\n data(){\n return{\n activeName: 'preScript',\n scriptInfo: {\n preScript_textarea: '',\n posScript_textarea: '',\n preSql_textarea: '',\n posSql_textarea: ''\n }\n }\n },\n props: {\n interfaceScriptInfo: Object\n },\n watch: {\n interfaceScriptInfo: 'changeScriptInfo'\n },\n methods: {\n handleClick(){},\n changeScriptInfo(){\n this.scriptInfo = this.interfaceScriptInfo\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefineParamInfoScript.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"define-request-params-other-set\"},[_c('el-tabs',{on:{\"tab-click\":_vm.handleClick},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"前置脚本\",\"name\":\"preScript\"}},[_c('div',{staticClass:\"pre-script-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":7,\"placeholder\":\"请输入前置脚本现仅支持Java\"},model:{value:(_vm.scriptInfo.preScript_textarea),callback:function ($$v) {_vm.$set(_vm.scriptInfo, \"preScript_textarea\", $$v)},expression:\"scriptInfo.preScript_textarea\"}})],1)]),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"后置脚本\",\"name\":\"posScript\"}},[_c('div',{staticClass:\"pos-script-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":7,\"placeholder\":\"请输入后置脚本现仅支持Java\"},model:{value:(_vm.scriptInfo.posScript_textarea),callback:function ($$v) {_vm.$set(_vm.scriptInfo, \"posScript_textarea\", $$v)},expression:\"scriptInfo.posScript_textarea\"}})],1)]),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"前置SQL\",\"name\":\"preSql\"}},[_c('div',{staticClass:\"pre-sql-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":7,\"placeholder\":\"请输入前置SQL\"},model:{value:(_vm.scriptInfo.preSql_textarea),callback:function ($$v) {_vm.$set(_vm.scriptInfo, \"preSql_textarea\", $$v)},expression:\"scriptInfo.preSql_textarea\"}})],1)]),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"后置SQL\",\"name\":\"posSql\"}},[_c('div',{staticClass:\"pos-sql-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":7,\"placeholder\":\"请输入后置SQL\"},model:{value:(_vm.scriptInfo.posSql_textarea),callback:function ($$v) {_vm.$set(_vm.scriptInfo, \"posSql_textarea\", $$v)},expression:\"scriptInfo.posSql_textarea\"}})],1)])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-e6ef200c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefineParamInfoScript.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-e6ef200c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefineParamInfoScript.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoScript.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoScript.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e6ef200c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefineParamInfoScript.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-e6ef200c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefineParamInfoScript.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"define-request-params-relation\"},[_c('div',{staticClass:\"relation-field-area\"},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":10,\"placeholder\":\"多个以逗号隔开name,age,code 或者 name:myName,age:myAge,code\"},model:{value:(_vm.relationValues),callback:function ($$v) {_vm.relationValues=$$v},expression:\"relationValues\"}})],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-42104a1a\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefineParamInfoRelation.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-42104a1a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefineParamInfoRelation.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoRelation.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoRelation.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-42104a1a\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefineParamInfoRelation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-42104a1a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefineParamInfoRelation.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"define-request-params-assert\"},[_c('div',[_c('el-input',{attrs:{\"placeholder\":\"多个以逗号隔开\",\"clearable\":\"\"},model:{value:(_vm.assertInfo.assertField),callback:function ($$v) {_vm.$set(_vm.assertInfo, \"assertField\", $$v)},expression:\"assertInfo.assertField\"}},[_c('template',{slot:\"prepend\"},[_vm._v(\"断言字段\")])],2)],1),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('div',[_c('el-input',{attrs:{\"placeholder\":\"多个以逗号隔开\",\"clearable\":\"\"},model:{value:(_vm.assertInfo.expectResult),callback:function ($$v) {_vm.$set(_vm.assertInfo, \"expectResult\", $$v)},expression:\"assertInfo.expectResult\"}},[_c('template',{slot:\"prepend\"},[_vm._v(\"预期结果\")])],2)],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-750cddb1\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefineParamInfoAssert.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-750cddb1\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefineParamInfoAssert.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoAssert.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfoAssert.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-750cddb1\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefineParamInfoAssert.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-750cddb1\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefineParamInfoAssert.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"define-request-info interface-define body-bottom\">\n <div class=\"interface-define-title\">\n <span>|</span>\n 参数信息\n <span class=\"friend_tips\" @click=\"openTips\">?</span>\n </div>\n <div class=\"interface-define-body\">\n <el-tabs v-model=\"activeName\" @tab-click=\"handleClick\">\n <el-tab-pane label=\"请求头\" name=\"requestHeader\">\n <el-form :model=\"requestHeadersList\" ref=\"requestHeadersFormRef\"> \n <el-row :gutter=\"20\" v-for=\"(item, index) in requestHeadersList.items\" :key=\"item.key\"> \n <el-col :span=\"6\"> \n <el-form-item :prop=\"'items.' + index + '.keys'\">\n <el-input v-model=\"item.keys\" placeholder=\"请输入key\" clearable></el-input>\n </el-form-item> \n </el-col> \n <el-col :span=\"16\"> \n <el-form-item :prop=\"'items.' + index + '.value'\">\n <el-input v-model=\"item.value\" placeholder=\"请输入value\" clearable></el-input>\n </el-form-item> \n </el-col>\n <el-col :span=\"2\">\n <div class=\"add-del-param-btn\">\n <el-tag type=\"danger\" class=\"line-add-del\" v-if=\"requestHeadersList.items.length !== 1\" @click=\"removeRequestHeadersList(item)\">-</el-tag>\n <el-tag type=\"danger\" class=\"line-add-del\" @click=\"addRequestHeadersList\">+</el-tag>\n </div>\n </el-col>\n </el-row>\n </el-form>\n </el-tab-pane>\n <el-tab-pane label=\"请求体\" name=\"body\">\n <interface-define-param-info-request-body ref=\"requestBody\" :interfaceRequestBody=\"requestBodyInfo\"></interface-define-param-info-request-body>\n </el-tab-pane>\n <el-tab-pane label=\"断言\" name=\"assert\">\n <interface-define-param-info-assert ref=\"assert\" :interfaceAssertInfo=\"assertInfo\"></interface-define-param-info-assert>\n </el-tab-pane>\n <el-tab-pane label=\"关联\" name=\"relation\">\n <interface-define-param-info-relation ref=\"relation\" :interfaceRelationInfo=\"relationInfo\"></interface-define-param-info-relation>\n </el-tab-pane>\n <el-tab-pane label=\"脚本\" name=\"other\" v-if=\"false\">\n <interface-define-param-info-script ref=\"script\" :interfaceScriptInfo=\"scriptInfo\"></interface-define-param-info-script>\n </el-tab-pane>\n </el-tabs>\n </div>\n </div>\n</template>\n\n<script>\nimport InterfaceDefineParamInfoRequestBody from './InterfaceDefineParamInfoRequestBody.vue'\nimport InterfaceDefineParamInfoScript from './InterfaceDefineParamInfoScript.vue'\nimport InterfaceDefineParamInfoRelation from './InterfaceDefineParamInfoRelation.vue'\nimport InterfaceDefineParamInfoAssert from './InterfaceDefineParamInfoAssert.vue'\nexport default {\n components: {\n InterfaceDefineParamInfoRequestBody,\n InterfaceDefineParamInfoScript,\n InterfaceDefineParamInfoRelation,\n InterfaceDefineParamInfoAssert\n },\n data(){\n return{\n activeName: 'requestHeader',\n requestHeadersList: {\n\t\t\t\titems: [{\n\t\t\t\t\tkeys: '',\n\t\t\t\t\tvalue: ''\n\t\t\t\t}]\n\t\t\t},\n requestBodyInfo: {\n requestParams: '',\n requestBody: ''\n },\n assertInfo: {\n assertField: '',\n expectResult: ''\n },\n relationInfo: '',\n scriptInfo: {}\n }\n },\n mounted(){\n },\n methods: {\n openTips() {\n var text = '${lp69Code} 69码<br>' + \n '${lpRandomUUID} UUID<br>' + \n '${lpCurrentDateTime} 当前时间<br>' + \n '${lpCurrentTimestamp} 当前时间戳<br>' + \n '${lpRandomString} 17位随机字符串<br>' + \n '${lpTodayStartTime} 今日开始时间<br>' + \n '${lpTodayEndTime} 今日结束时间<br>' + \n '${lpYesterdayStartTime} 昨日开始时间<br>' + \n '${lpYesterdayEndTime} 昨日结束时间';\n this.$alert(text, '内置变量', {\n dangerouslyUseHTMLString: true\n }).catch(()=>{})\n },\n changeInterfaceParamInfo(obj){\n this.requestBodyInfo.requestParams = obj.requestParams\n this.requestBodyInfo.requestBody = obj.requestBody\n this.assertInfo.assertField = obj.assertField\n this.assertInfo.expectResult = obj.expectResult\n this.$refs.requestBody.changeRequestBody(this.requestBodyInfo)\n this.$refs.assert.changeAssertInfo(this.assertInfo)\n this.$refs.relation.changeRelationInfo(obj.relationValues)\n let _requestHeader = obj.requestHeaders\n if(_requestHeader){\n var reqHeaders = _requestHeader.replace(/\"/g, '').replace('{','').replace('', ',').replace(/,\\s*/g, ',')\n var reqHeaderList = reqHeaders.slice(0, reqHeaders.length-1).split(',')\n this.requestHeadersList.items = []\n reqHeaderList.forEach(ele => {\n var headerList = ele.split(':')\n var item = {}\n item.keys = headerList[0]\n item.value = headerList[1]\n item.key = Math.random()\n this.requestHeadersList.items.push(item)\n })\n }else{\n this.requestHeadersList.items = []\n var item = {\n keys: '',\n\t\t\t\t\tvalue: ''\n }\n this.requestHeadersList.items.push(item)\n }\n },\n handleClick(){\n },\n getInterfaceDefineParamInfo(){\n var paramInfo = {}\n paramInfo.requestHeaders = this.requestHeadersList.items\n paramInfo.requestParams = this.$refs.requestBody.requestParams\n paramInfo.requestBody = this.$refs.requestBody.requestBody\n paramInfo.assertInfo = this.$refs.assert.assertInfo\n paramInfo.relationValues = this.$refs.relation.relationValues\n // paramInfo.scriptInfo = this.$refs.script.scriptInfo\n return paramInfo\n },\n removeRequestHeadersList(item) { \n\t\t\tvar index = this.requestHeadersList.items.indexOf(item)\n\t\t\tif (index !== -1)\n\t\t\t\tthis.requestHeadersList.items.splice(index, 1) \n\t\t},\n\t\taddRequestHeadersList() {\n\t\t\tthis.requestHeadersList.items.push({\n keys: '',\n value: '',\n\t\t\t\tkey: Date.now()\n\t\t\t})\n\t\t}\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n.add-del-param-btn {\n text-align: center;\n padding-top: 4px;\n span {\n margin-right: 10px;\n }\n}\n/deep/ .line-add-del:hover{\n cursor: pointer;\n}\n/deep/ .friend_tips {\n color: pink !important;\n font-size: 12px !important;\n}\n/deep/ .friend_tips:hover {\n cursor: pointer;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefineParamInfo.vue","<template>\n <div class=\"define-request-params-relation\">\n <div class=\"relation-field-area\">\n <el-input\n type=\"textarea\"\n :rows=\"10\"\n placeholder=\"多个以逗号隔开name,age,code 或者 name:myName,age:myAge,code\"\n v-model=\"relationValues\">\n </el-input>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n data(){\n return{\n relationValues: ''\n }\n },\n methods: {\n changeRelationInfo(info){\n this.relationValues = info\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefineParamInfoRelation.vue","<template>\n <div class=\"define-request-params-assert\">\n <div>\n <el-input placeholder=\"多个以逗号隔开\" v-model=\"assertInfo.assertField\" clearable>\n <template slot=\"prepend\">断言字段</template>\n </el-input>\n </div>\n <br>\n <div>\n <el-input placeholder=\"多个以逗号隔开\" v-model=\"assertInfo.expectResult\" clearable>\n <template slot=\"prepend\">预期结果</template>\n </el-input>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n data(){\n return{\n assertInfo: {\n assertField: '',\n expectResult: '',\n }\n }\n },\n methods: {\n changeAssertInfo(obj){\n this.assertInfo = obj\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefineParamInfoAssert.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"define-request-info interface-define body-bottom\"},[_c('div',{staticClass:\"interface-define-title\"},[_c('span',[_vm._v(\"|\")]),_vm._v(\"\\n 参数信息\\n \"),_c('span',{staticClass:\"friend_tips\",on:{\"click\":_vm.openTips}},[_vm._v(\"?\")])]),_vm._v(\" \"),_c('div',{staticClass:\"interface-define-body\"},[_c('el-tabs',{on:{\"tab-click\":_vm.handleClick},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"请求头\",\"name\":\"requestHeader\"}},[_c('el-form',{ref:\"requestHeadersFormRef\",attrs:{\"model\":_vm.requestHeadersList}},_vm._l((_vm.requestHeadersList.items),function(item,index){return _c('el-row',{key:item.key,attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.keys'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入key\",\"clearable\":\"\"},model:{value:(item.keys),callback:function ($$v) {_vm.$set(item, \"keys\", $$v)},expression:\"item.keys\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"prop\":'items.' + index + '.value'}},[_c('el-input',{attrs:{\"placeholder\":\"请输入value\",\"clearable\":\"\"},model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":2}},[_c('div',{staticClass:\"add-del-param-btn\"},[(_vm.requestHeadersList.items.length !== 1)?_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":function($event){return _vm.removeRequestHeadersList(item)}}},[_vm._v(\"-\")]):_vm._e(),_vm._v(\" \"),_c('el-tag',{staticClass:\"line-add-del\",attrs:{\"type\":\"danger\"},on:{\"click\":_vm.addRequestHeadersList}},[_vm._v(\"+\")])],1)])],1)}),1)],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"请求体\",\"name\":\"body\"}},[_c('interface-define-param-info-request-body',{ref:\"requestBody\",attrs:{\"interfaceRequestBody\":_vm.requestBodyInfo}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"断言\",\"name\":\"assert\"}},[_c('interface-define-param-info-assert',{ref:\"assert\",attrs:{\"interfaceAssertInfo\":_vm.assertInfo}})],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"关联\",\"name\":\"relation\"}},[_c('interface-define-param-info-relation',{ref:\"relation\",attrs:{\"interfaceRelationInfo\":_vm.relationInfo}})],1),_vm._v(\" \"),(false)?_c('el-tab-pane',{attrs:{\"label\":\"脚本\",\"name\":\"other\"}},[_c('interface-define-param-info-script',{ref:\"script\",attrs:{\"interfaceScriptInfo\":_vm.scriptInfo}})],1):_vm._e()],1)],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-18f3e2b1\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefineParamInfo.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-18f3e2b1\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefineParamInfo.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfo.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefineParamInfo.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-18f3e2b1\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefineParamInfo.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-18f3e2b1\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefineParamInfo.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-define-base-info\" v-loading=\"loading\">\n <interface-define-basic-info ref=\"basicInfo\" @interface-define-basic-info-test=\"testInterfaceCase\" @interface-define-basic-info-change-env=\"changeInterfaceInfo\"></interface-define-basic-info>\n <interface-define-param-info ref=\"paramInfo\"></interface-define-param-info>\n <interface-define-response-info ref=\"responseInfo\"></interface-define-response-info>\n </div>\n</template>\n\n<script>\nimport InterfaceDefineBasicInfo from './InterfaceDefineBasicInfo.vue'\nimport InterfaceDefineResponseInfo from './InterfaceDefineResponseInfo.vue'\nimport InterfaceDefineParamInfo from './InterfaceDefineParamInfo.vue'\nexport default {\n components:{\n InterfaceDefineParamInfo,\n InterfaceDefineResponseInfo,\n InterfaceDefineBasicInfo\n },\n props: {\n 'interfaceDefine': Object\n },\n watch: {\n interfaceDefine: 'changeInterfaceInfo'\n },\n data(){\n return{\n loading: false,\n interfaceCaseResponseInfo: {},\n interfaceCaseParamInfo: {},\n interfaceCaseBasicInfo: {}\n }\n },\n computed: {\n },\n mounted(){\n },\n methods: {\n getRequestBackInfo(backInfo){\n this.$refs.responseInfo.setResponseInfo(backInfo, this.interfaceCaseBasicInfo.id)\n this.loading = false\n },\n changeInterfaceInfo(obj){\n if(obj){\n this.loading = true\n this.interfaceCaseBasicInfo.id = obj.id\n this.interfaceCaseBasicInfo.itemId = obj.itemId\n this.interfaceCaseBasicInfo.protocolType = obj.protocolType\n this.interfaceCaseBasicInfo.requestType = obj.requestType\n this.interfaceCaseBasicInfo.ipPath = obj.ipPath\n this.interfaceCaseBasicInfo.port = obj.port\n this.interfaceCaseBasicInfo.interfacePath = obj.interfacePath\n this.interfaceCaseBasicInfo.interfaceName = obj.interfaceName\n if(!obj.envCode)\n this.$refs.basicInfo.clearExecEnvironment()\n this.$refs.basicInfo.changeInterfaceBasicInfo(this.interfaceCaseBasicInfo)\n this.interfaceCaseParamInfo.requestHeaders = obj.requestHeader\n this.interfaceCaseParamInfo.requestParams = obj.requestParams\n this.interfaceCaseParamInfo.requestBody= obj.requestBody\n this.interfaceCaseParamInfo.assertField = obj.assertField\n this.interfaceCaseParamInfo.expectResult = obj.expectResult\n this.interfaceCaseParamInfo.assertResult = obj.assertResult\n this.interfaceCaseParamInfo.relationValues = obj.relationValues\n this.$refs.paramInfo.changeInterfaceParamInfo(this.interfaceCaseParamInfo)\n \n this.interfaceCaseResponseInfo.responseInfo = obj.backParams\n this.$refs.responseInfo.changeInterfaceResponseInfo(this.interfaceCaseResponseInfo)\n this.loading = false\n this.$refs.basicInfo.changeNoDebugFlag(true)\n }\n },\n testInterfaceCase(basicInfo){\n var paramInfos = this.$refs.paramInfo.getInterfaceDefineParamInfo()\n var paramInfo = {}\n paramInfo.assertField = paramInfos.assertInfo.assertField\n paramInfo.expectResult = paramInfos.assertInfo.expectResult\n paramInfo.assertResult = paramInfos.assertInfo.assertResult\n paramInfo.relationValues = paramInfos.relationValues\n paramInfo.requestBody = paramInfos.requestBody.raw_textarea\n // paramInfo.scriptInfo = paramInfos.scriptInfo\n\n var requestHeadersList = paramInfos.requestHeaders\n var requestParamsList = paramInfos.requestBody.requestParamsList.items\n if(requestHeadersList && requestHeadersList[0].keys != ''){\n paramInfo.requestHeader = this.parseListItemsBackJsonString(requestHeadersList)\n }\n if(requestParamsList && requestParamsList[0].keys != ''){\n var paramStr = '?'\n requestParamsList.forEach(ele=>{\n paramStr += ele.keys\n paramStr += '='\n paramStr += ele.value\n paramStr += '&'\n })\n paramInfo.requestParams = paramStr.slice(0, paramStr.length - 1)\n }\n var interfaceCaseObj = {}\n interfaceCaseObj = Object.assign(interfaceCaseObj, basicInfo, paramInfo)\n interfaceCaseObj.definePage = true\n if(basicInfo.addOrUpdataInterfaceData){\n interfaceCaseObj.caseId = interfaceCaseObj.id\n this.$api.testdata.insertInterfaceTestData(JSON.stringify(interfaceCaseObj)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n }).catch(()=>{})\n }else{\n if(basicInfo.isSave){\n this.$emit('interface-case-update-event', interfaceCaseObj)\n }else{\n this.$emit('interface-case-request-event', interfaceCaseObj)\n this.loading = true\n }\n }\n },\n parseListItemsBackJsonString(list){\n var jsonStr = '{'\n list.forEach(ele=>{\n jsonStr += '\"'\n jsonStr += ele.keys\n jsonStr += '\":\"'\n jsonStr += ele.value\n jsonStr += '\",'\n })\n jsonStr += '}'\n return jsonStr.replace(/,}/g, '}')\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n/deep/ .port-class {\n width: 90%;\n}\n.base-info-title {\n margin-bottom: 10px;\n}\n/deep/ .base-body {\n padding-bottom: 0px !important;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceDefine.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"interface-define-base-info\"},[_c('interface-define-basic-info',{ref:\"basicInfo\",on:{\"interface-define-basic-info-test\":_vm.testInterfaceCase,\"interface-define-basic-info-change-env\":_vm.changeInterfaceInfo}}),_vm._v(\" \"),_c('interface-define-param-info',{ref:\"paramInfo\"}),_vm._v(\" \"),_c('interface-define-response-info',{ref:\"responseInfo\"})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4c4f92e9\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceDefine.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4c4f92e9\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceDefine.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefine.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceDefine.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4c4f92e9\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceDefine.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-4c4f92e9\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceDefine.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-menu-list\">\n <div class=\"custom-tree-container\">\n <div class=\"tree-menu\">\n <el-tree\n :data=\"menuTreeList\"\n :props=\"defaultProps\"\n :highlight-current=\"true\"\n :expand-on-click-node=\"true\"\n :default-checked-keys=\"defaultShowNodes\"\n :empty-text=\"notDataText\"\n :element-loading-text=\"loadDataText\"\n :default-expanded-keys=\"defaultExpandNodes\"\n :accordion=\"false\"\n @node-click=\"clickCurrentNode\"\n node-key=\"id\"\n ref=\"menuTreeRef\"\n v-loading=\"loading\"\n render-after-expand\n @node-expand=\"changeFolderStyle\"\n @node-collapse=\"changeFolderStyle\"\n >\n <div class=\"label-name custom-tree-node\" slot-scope=\"{ node, data }\"> \n <div class=\"label-name-left\">\n <i v-if=\"node.label == '所有用例'\" :class=\"iconOpenStyle\" :id=\"iconCloseStyle + data.id\">\n {{node.label}}\n </i>\n <i v-else-if=\"node.label != '所有用例' && data.itemName == undefined\" :class=\"iconCloseStyle\" :id=\"iconCloseStyle + data.id\">\n {{node.label}}\n </i>\n <i v-else class=\"el-icon-position interface-name-icon\">\n {{node.label}}\n </i>\n </div>\n </div>\n </el-tree>\n </div>\n </div>\n </div>\n</template>\n<script>\n export default {\n data() {\n return {\n menuTreeList: [],\n defaultShowNodes: [],\n defaultExpandNodes: [],\n defaultProps: {\n children: 'children',\n label: 'label'\n },\n notDataText: '暂无数据',\n loadDataText: '加载中...',\n loading: true,\n iconCloseStyle: 'el-icon-folder',\n iconOpenStyle: 'el-icon-folder-opened'\n }\n },\n created() {\n this.getAllInterfaceTestItem()\n },\n mounted(){\n },\n methods: {\n getAllInterfaceTestItem(){\n this.loading = true\n this.$api.test.queryAllInterfaceTestItem().then(res => {\n this.menuTreeList = res.data.data\n this.$nextTick(()=>{\n this.$refs.menuTreeRef.setCurrentKey(this.menuTreeList[0].id)\n })\n this.defaultExpandNodes.push(this.menuTreeList[0].id)\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n },\n changeFolderStyle(data){\n if(!data.itemName){\n var currNode = document.getElementById(this.iconCloseStyle + data.id)\n currNode.className = currNode.className == this.iconCloseStyle ? this.iconOpenStyle : this.iconCloseStyle\n }\n },\n clickCurrentNode(data){\n var giveFObj = {id: '', flag: false}\n if(data.id == 0){\n giveFObj.id = data.id\n this.$emit('interface-menu-event', giveFObj)\n }else if(!data.itemName){\n this.$common.setSessionStorage('currentInterfaceCaseItemId', data.id)\n giveFObj.id = data.id\n this.$emit('interface-menu-event', giveFObj)\n }else{\n this.$common.setSessionStorage('currentInterfaceCaseItemId', data.itemId)\n giveFObj.id = data.id\n giveFObj.flag = true\n this.$emit('interface-menu-event', giveFObj)\n }\n }\n },\n watch: {\n menuTreeList: {\n handler(){\n this.menuTreeList.forEach((item)=>{\n this.defaultShowNodes.push(item.id)\n })\n },\n deep: true\n }\n }\n }\n</script>\n<style scoped lang=\"less\">\n.interface-menu-list {\n width: 100%;\n max-height: 860px;\n overflow-y: auto;\n}\n.label-name{\n width: 88%;\n .label-name-left {\n float: left;\n }\n .label-name-right {\n float: right;\n }\n}\n.label-name-left-lable {\n span {\n width: 190px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n display: block;\n }\n}\n.label-name-left-expand-btn {\n margin: 0 10px;\n}\n.interface-name-icon {\n font-size: 14px;\n}\n.label-name-left-expand-btn:hover{\n cursor:pointer;\n}\n/deep/ .el-tree-node.is-current > .el-tree-node__content {\n background-color: #ccc !important;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceMenuList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interface-menu-list\"},[_c('div',{staticClass:\"custom-tree-container\"},[_c('div',{staticClass:\"tree-menu\"},[_c('el-tree',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"menuTreeRef\",attrs:{\"data\":_vm.menuTreeList,\"props\":_vm.defaultProps,\"highlight-current\":true,\"expand-on-click-node\":true,\"default-checked-keys\":_vm.defaultShowNodes,\"empty-text\":_vm.notDataText,\"element-loading-text\":_vm.loadDataText,\"default-expanded-keys\":_vm.defaultExpandNodes,\"accordion\":false,\"node-key\":\"id\",\"render-after-expand\":\"\"},on:{\"node-click\":_vm.clickCurrentNode,\"node-expand\":_vm.changeFolderStyle,\"node-collapse\":_vm.changeFolderStyle},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar node = ref.node;\nvar data = ref.data;\nreturn _c('div',{staticClass:\"label-name custom-tree-node\"},[_c('div',{staticClass:\"label-name-left\"},[(node.label == '所有用例')?_c('i',{class:_vm.iconOpenStyle,attrs:{\"id\":_vm.iconCloseStyle + data.id}},[_vm._v(\"\\n \"+_vm._s(node.label)+\"\\n \")]):(node.label != '所有用例' && data.itemName == undefined)?_c('i',{class:_vm.iconCloseStyle,attrs:{\"id\":_vm.iconCloseStyle + data.id}},[_vm._v(\"\\n \"+_vm._s(node.label)+\"\\n \")]):_c('i',{staticClass:\"el-icon-position interface-name-icon\"},[_vm._v(\"\\n \"+_vm._s(node.label)+\"\\n \")])])])}}])})],1)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-181e2363\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceMenuList.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-181e2363\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceMenuList.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceMenuList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceMenuList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-181e2363\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceMenuList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-181e2363\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceMenuList.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-list-box\" id=\"interfaceListBox\" ref='interfaceListBoxRef'>\n <div class=\"left-menu\" id=\"interfaceLeftMenu\">\n <interface-menu-list @interface-menu-event=\"changeRightShowFlag\" ref=\"interfaceMenuListRef\" @interface-menu-expand-fold-event=\"changeLeftMenuRightTableWidth\"></interface-menu-list>\n </div>\n <div class=\"middle\" id=\"middle\">\n <div class=\"middle-resize\" id=\"interfaceMiddleResize\">⋮</div>\n </div>\n <div class=\"right-interface-info\" id=\"interfaceRightTable\">\n <interface-define v-if=\"basicInfoShowFlag\" ref=\"interfaceDefineRef\" :interfaceDefine=\"interfaceInfoObj\" @interface-case-update-event=\"editSaveInterfaceTestCase\" @interface-case-request-event=\"singleInterfaceRequest\"></interface-define>\n <div v-if=\"listShowFlag\">\n <el-form :inline=\"true\" class=\"demo-form-inline\">\n <el-form-item label=\"项目名称\" v-if=\"false\">\n <el-select v-model=\"queryInfo.itemId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in itemOptions\"\n :key=\"item.id\"\n :label=\"item.itemName\"\n :value=\"item.id\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"接口名称\">\n <el-input placeholder=\"请输入接口名称\" clearable class=\"input-with-select\" v-model=\"queryInfo.interfaceName\"></el-input>\n </el-form-item>\n <el-form-item label=\"接口地址\">\n <el-input placeholder=\"请输入接口地址\" clearable class=\"input-with-select\" v-model=\"queryInfo.interfacePath\"></el-input>\n </el-form-item>\n <el-form-item label=\"用例等级\" v-if=\"false\">\n <el-select v-model=\"queryInfo.testCaseLevel\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in caseLevelOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"用例状态\" v-if=\"false\">\n <el-select v-model=\"queryInfo.testCaseStatus\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in caseStatusOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"添加人员\">\n <el-input placeholder=\"请输入添加人员\" clearable class=\"input-with-select\" v-model=\"queryInfo.writePerson\"></el-input>\n </el-form-item>\n <el-form-item label=\"备注信息\">\n <el-input placeholder=\"请输入备注信息\" clearable v-model=\"queryInfo.comments\"></el-input>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"selectInterfaceTestCaseList\">查询</el-button>\n </el-form-item>\n </el-form>\n <el-row class=\"add_button\">\n <el-col>\n <el-button type=\"primary\" @click=\"addDialogVisible = true\">添加</el-button>\n <el-button type=\"primary\" @click=\"debugInterfaceTestCase\">调试</el-button>\n <el-button type=\"primary\" @click=\"importDialogVisible = true\">导入</el-button>\n <el-button type=\"primary\" @click=\"batchExportInterfaceTestCase\">批量导出</el-button>\n <el-button type=\"primary\" @click=\"exportAllInterfaceTestCase\">全部导出</el-button>\n <el-button type=\"primary\" @click=\"batchDelInterfaceTestCase\">批量删除</el-button>\n <el-button type=\"primary\" @click=\"batchInterfaceRequest\">批量请求</el-button>\n <el-button type=\"primary\" @click=\"cycleInterfaceRequestDialogVisibleOpen\">循环请求</el-button>\n <el-button type=\"primary\" @click=\"showTimingTaskDialogVisible\">加入任务</el-button>\n <el-button type=\"primary\" @click=\"setEnvironmentVariable\">环境变量</el-button>\n </el-col>\n </el-row>\n <el-table \n ref=\"multipleTable\" \n tooltip-effect=\"dark\"\n v-loading=\"loading\"\n :data=\"testCaseList.slice((currpage - 1)*queryInfo.pageSize, currpage*queryInfo.pageSize)\" \n border \n :fit=\"true\"\n :row-key=\"getRowKeys\"\n @selection-change=\"handleSelectionChange\"\n @cell-dblclick=\"changeToPageShow\">\n <el-table-column :reserve-selection=\"true\" type=\"selection\" width=\"55\" align=\"center\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"序号\" type=\"index\" align=\"center\" width=\"50\" fixed></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"项目名称\" prop=\"itemId\" width=\"150\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"接口名称\" prop=\"interfaceName\" width=\"200\" show-overflow-tooltip fixed></el-table-column>\n <el-table-column label=\"优先级\" prop=\"execLevel\" width=\"110\">\n <template slot-scope=\"scope\">\n <el-select v-model=\"scope.row.execLevel\" placeholder=\"请选择\" @change=\"updateTestCaseExecLevelIpPathPort(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in caseExecLevelOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictCode\"></el-option>\n </el-select>\n </template>\n </el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"协议类型\" prop=\"protocolType\" width=\"100\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"请求类型\" prop=\"requestType\" width=\"100\" show-overflow-tooltip></el-table-column>\n <!-- <el-table-column label=\"IP/域名地址\" prop=\"ipPath\" width=\"250\" show-overflow-tooltip>\n <template slot-scope=\"scope\">\n <el-select v-model=\"scope.row.ipPath\" placeholder=\"请选择\" @change=\"updateTestCaseExecLevelIpPathPort(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in testDomainOptions\" :key=\"item.id\" :label=\"item.dictCode\" :value=\"item.dictCode\"></el-option>\n </el-select>\n </template>\n </el-table-column> -->\n <el-table-column label=\"IP/域名地址\" prop=\"ipPath\" width=\"250\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"端口号\" prop=\"port\" width=\"80\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"接口地址\" prop=\"interfacePath\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"请求头\" prop=\"requestHeader\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"请求参数\" prop=\"requestParams\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"请求体\" prop=\"requestBody\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"关联参数\" prop=\"relationValues\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"断言字段\" prop=\"assertField\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"预期结果\" prop=\"expectResult\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"用例等级\" prop=\"testCaseLevel\" width=\"80\" v-if=\"false\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"用例状态\" prop=\"testCaseStatus\" width=\"120\" v-if=\"false\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.testCaseStatus == '通过'\" class=\"color-passed\">\n <el-select v-model=\"scope.row.testCaseStatus\" placeholder=\"请选择\" @change=\"updateTestCaseStatus(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in caseStatusOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictValue\"></el-option>\n </el-select>\n </span>\n <span v-else-if=\"scope.row.testCaseStatus == '未通过'\" class=\"color-noPassed\">\n <el-select v-model=\"scope.row.testCaseStatus\" placeholder=\"请选择\" @change=\"updateTestCaseStatus(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in caseStatusOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictValue\"></el-option>\n </el-select>\n </span>\n <span v-else-if=\"scope.row.testCaseStatus == '评审中'\" class=\"color-reviewing\">\n <el-select v-model=\"scope.row.testCaseStatus\" placeholder=\"请选择\" @change=\"updateTestCaseStatus(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in caseStatusOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictValue\"></el-option>\n </el-select>\n </span>\n <span v-else-if=\"scope.row.testCaseStatus == '废弃'\" class=\"color-discard\">\n <el-select v-model=\"scope.row.testCaseStatus\" placeholder=\"请选择\" @change=\"updateTestCaseStatus(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in caseStatusOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictValue\"></el-option>\n </el-select>\n </span>\n <span v-else>\n <el-select v-model=\"scope.row.testCaseStatus\" placeholder=\"请选择\" @change=\"updateTestCaseStatus(scope.row)\" clearable>\n <el-option v-for=\"item in caseStatusOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictValue\"></el-option>\n </el-select>\n </span>\n </template>\n </el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"添加人员\" prop=\"writePerson\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"添加时间\" prop=\"createTime\" width=\"160\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"更新人员\" prop=\"updatePerson\" width=\"160\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"更新时间\" prop=\"updateTime\" width=\"160\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"备注\" prop=\"comments\" width=\"250\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"200\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" @click=\"singleInterfaceRequest(scope.row)\">请求</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"showEditDialog(scope.row)\">编辑</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"delInterfaceTestCase(scope.row.id)\">删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n :page-sizes=\"[5, 10, 20, 30]\"\n :page-size=\"queryInfo.pageSize\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n :total=\"total\">\n </el-pagination>\n </div>\n </div>\n <el-dialog\n title=\"添加用例\"\n :visible.sync=\"addDialogVisible\"\n :close-on-click-modal= 'false'\n @close=\"cancelAddDialogVisible\"\n width=\"60%\">\n <div class=\"case-info-form\">\n <el-form :model=\"addForm\" :rules=\"addFormRules\" ref=\"addFormRef\" label-width=\"100px\">\n <el-row :gutter=\"20\">\n <el-col :span=\"8\">\n <el-form-item label=\"项目名称\" prop=\"itemId\">\n <div class=\"add-dialog-select\">\n <el-select v-model=\"addForm.itemId\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in itemOptions\"\n :key=\"item.id\"\n :label=\"item.itemName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </div>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"协议类型\" prop=\"protocolType\">\n <div class=\"add-dialog-select\">\n <el-select v-model=\"addForm.protocolType\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in protocolOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </div>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"请求类型\" prop=\"requestType\">\n <div class=\"add-dialog-select\">\n <el-select v-model=\"addForm.requestType\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in requestOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </div>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"16\">\n <el-form-item label=\"IP/域名\" prop=\"ipPath\">\n <el-input type=\"text\" v-model=\"addForm.ipPath\" placeholder=\"请输入IP/域名地址\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"端口号\" prop=\"port\">\n <el-input type=\"text\" v-model=\"addForm.port\" placeholder=\"请输入端口号\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"接口名称\" prop=\"interfaceName\">\n <el-input v-model=\"addForm.interfaceName\" placeholder=\"请输入接口名称\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"接口地址\" prop=\"interfacePath\">\n <el-input type=\"text\" v-model=\"addForm.interfacePath\" placeholder=\"请输入接口地址\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"请求参数\" prop=\"requestParams\">\n <el-input type=\"text\" v-model=\"addForm.requestParams\" placeholder=\"请输入请求参数\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"10\">\n <el-form-item label=\"请求头\" prop=\"requestHeader\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"addForm.requestHeader\" placeholder=\"请输入请求头JSON格式\"></el-input>\n </el-form-item>\n </el-col> \n <el-col :span=\"14\">\n <el-form-item label=\"请求体\" prop=\"requestBody\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"addForm.requestBody\" placeholder=\"请输入请求体JSON格式\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"8\">\n <el-form-item label=\"关联参数\" prop=\"relationValues\">\n <el-input type=\"text\" v-model=\"addForm.relationValues\" placeholder=\"请输入关联参数\"></el-input>\n </el-form-item>\n </el-col> \n <el-col :span=\"8\">\n <el-form-item label=\"断言字段\" prop=\"assertField\">\n <el-input type=\"text\" v-model=\"addForm.assertField\" placeholder=\"请输入断言字段\"></el-input>\n </el-form-item>\n </el-col> \n <el-col :span=\"8\">\n <el-form-item label=\"预期结果\" prop=\"expectResult\">\n <el-input type=\"text\" v-model=\"addForm.expectResult\" placeholder=\"请输入预期结果\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"备注\" prop=\"comments\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"addForm.comments\" placeholder=\"请输入备注信息\"></el-input>\n </el-form-item>\n </el-col>\n </el-row> \n </el-form>\n </div>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"cancelAddDialogVisible\">取 消</el-button>\n <el-button type=\"primary\" @click=\"addInterfaceTestCase\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"修改用例\"\n :visible.sync=\"editDialogVisible\"\n :close-on-click-modal= 'false'\n @close=\"cancelEditDialogVisible\"\n width=\"60%\">\n <div class=\"case-info-form\">\n <el-form :model=\"editForm\" :rules=\"addFormRules\" ref=\"editFormRef\" label-width=\"100px\">\n <el-row :gutter=\"20\">\n <el-col :span=\"8\">\n <el-form-item label=\"项目名称\" prop=\"itemId\">\n <div class=\"add-dialog-select\">\n <el-select v-model=\"editForm.itemId\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in itemOptions\"\n :key=\"item.id\"\n :label=\"item.itemName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </div>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"协议类型\" prop=\"protocolType\">\n <div class=\"add-dialog-select\">\n <el-select v-model=\"editForm.protocolType\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in protocolOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </div>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"请求类型\" prop=\"requestType\">\n <div class=\"add-dialog-select\">\n <el-select v-model=\"editForm.requestType\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in requestOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </div>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"16\">\n <el-form-item label=\"IP/域名\" prop=\"ipPath\">\n <el-input type=\"text\" v-model=\"editForm.ipPath\" placeholder=\"请输入IP/域名地址\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"端口号\" prop=\"port\">\n <el-input type=\"text\" v-model=\"editForm.port\" placeholder=\"请输入端口号\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"接口名称\" prop=\"interfaceName\">\n <el-input v-model=\"editForm.interfaceName\" placeholder=\"请输入接口名称\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"接口地址\" prop=\"interfacePath\">\n <el-input type=\"text\" v-model=\"editForm.interfacePath\" placeholder=\"请输入接口地址\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"请求参数\" prop=\"requestParams\">\n <el-input type=\"text\" v-model=\"editForm.requestParams\" placeholder=\"请输入请求参数\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"10\">\n <el-form-item label=\"请求头\" prop=\"requestHeader\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"editForm.requestHeader\" placeholder=\"请输入请求头JSON格式\"></el-input>\n </el-form-item>\n </el-col> \n <el-col :span=\"14\">\n <el-form-item label=\"请求体\" prop=\"requestBody\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"editForm.requestBody\" placeholder=\"请输入请求体JSON格式\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"8\">\n <el-form-item label=\"关联参数\" prop=\"relationValues\">\n <el-input type=\"text\" v-model=\"editForm.relationValues\" placeholder=\"请输入关联参数\"></el-input>\n </el-form-item>\n </el-col> \n <el-col :span=\"8\">\n <el-form-item label=\"断言字段\" prop=\"assertField\">\n <el-input type=\"text\" v-model=\"editForm.assertField\" placeholder=\"请输入断言字段\"></el-input>\n </el-form-item>\n </el-col> \n <el-col :span=\"8\">\n <el-form-item label=\"预期结果\" prop=\"expectResult\">\n <el-input type=\"text\" v-model=\"editForm.expectResult\" placeholder=\"请输入预期结果\"></el-input>\n </el-form-item>\n </el-col> \n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"备注\" prop=\"comments\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"editForm.comments\" placeholder=\"请输入备注信息\"></el-input>\n </el-form-item>\n </el-col>\n </el-row> \n </el-form>\n </div>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"cancelEditDialogVisible\">取 消</el-button>\n <el-button type=\"primary\" @click=\"editInterfaceTestCase\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"导入用例\"\n :visible.sync=\"importDialogVisible\"\n @close=\"cancelImportDialogVisible\"\n :close-on-click-modal= 'false'\n width=\"40%\">\n <upload-file :fileType=\"fileType\" ref=\"uploadFile\" @upload-file-event=\"uploadSuccessStartImport\"></upload-file>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"cancelImportDialogVisible\">取 消</el-button>\n <el-button type=\"primary\" @click=\"importInterfaceTestCase\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog title=\"加入任务\" :visible.sync=\"joinTimingTaskDialogVisible\" @close=\"canclejoinTimingTaskDialogVisible\" :close-on-click-modal= 'false' width=\"30%\">\n <el-form :model=\"joinTimingTaskForm\" :rules=\"joinTimingTaskFormRules\" label-width=\"100px\" class=\"demo-form-inline\" ref=\"joinTimingTaskFormRef\">\n <el-form-item label=\"任务名称\" prop=\"taskId\">\n <el-select v-model=\"joinTimingTaskForm.taskId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in taskOptions\"\n :key=\"item.id\"\n :label=\"item.jobName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"canclejoinTimingTaskDialogVisible\">取 消</el-button>\n <el-button type=\"primary\" @click=\"joinTimingTask\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"请求结果\"\n :visible.sync=\"requestResultDialogVisible\"\n @close=\"requestResultDialogVisible = false\"\n :close-on-click-modal= 'false'\n width=\"50%\">\n <div class=\"request-result-show\" style=\"max-height: 500px;\">\n <p>{{requestBackInfo}}</p>\n </div>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"requestResultDialogVisible = false\">取 消</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"变量设置\"\n :visible.sync=\"environmentVariableVisible\"\n :close-on-click-modal= 'false'\n width=\"50%\" @close=\"environmentVariableDialogClose\">\n <el-row>\n <el-col :span=\"2\">\n <el-button size=\"mini\" type=\"primary\" @click=\"addEnvironmentVariable\">添加变量</el-button>\n </el-col>\n </el-row>\n <el-table\n :data=\"environmentVariableList\" :fit=\"true\" ref=\"environmentVariableFormRef\" :rules=\"addEnvironmentVariableFormRules\">\n <el-table-column label=\"序号\" type=\"index\" align=\"center\" width=\"100\"></el-table-column>\n <el-table-column label=\"ID\" prop=\"id\" v-if=\"false\"></el-table-column>\n <el-table-column label=\"变量名\" prop=\"variableName\" v-if=\"true\">\n <template slot-scope=\"scope\">\n <el-input class=\"variable-input\" v-model=\"scope.row.variableName\" placeholder=\"请输入变量名\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"变量值\" width=\"180\" prop=\"variableValue\">\n <template slot-scope=\"scope\">\n <el-input class=\"variable-input\" v-model=\"scope.row.variableValue\" placeholder=\"请输入变量值\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"备注\">\n <template slot-scope=\"scope\" width=\"200\">\n <el-input v-model=\"scope.row.comments\" placeholder=\"请输入备注信息\" style=\"width: 100%\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"100\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" @click=\"addEnvironmentVariable\" class=\"variable-add-button\"> + </el-button>\n <el-button type=\"text\" size=\"small\" @click=\"delEnvironmentVariable(scope)\" class=\"variable-add-button\"> - </el-button>\n </template>\n </el-table-column>\n </el-table>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"environmentVariableDialogClose\">取 消</el-button>\n <el-button type=\"primary\" @click=\"updateEnvironmentVariable\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"设置\"\n :visible.sync=\"cycleInterfaceRequestDialogVisible\"\n :close-on-click-modal= 'false'\n width=\"30%\" @close=\"cycleInterfaceRequestDialogVisibleClose\">\n <el-form :model=\"cycleRequest\" :rules=\"setCycleRequestRules\" ref=\"cycleRequestRef\" label-width=\"100px\">\n <el-row :gutter=\"20\">\n <el-col :span=\"12\">\n <el-form-item label=\"循环次数\" prop=\"requestNumber\">\n <el-input type=\"text\" v-model=\"cycleRequest.requestNumber\" placeholder=\"请输入循环次数\"></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"cycleInterfaceRequestDialogVisibleClose\">取 消</el-button>\n <el-button type=\"primary\" @click=\"cycleInterfaceRequest\">确 定</el-button>\n </span>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport UploadFile from '../../UploadFile.vue'\nimport InterfaceDefine from './InterfaceDefine.vue'\nimport InterfaceMenuList from './InterfaceMenuList.vue'\nexport default {\n data () {\n var checkCycleNumber = (rule, value, callback)=>{\n const regNum = /^(?!0)(?:[0-9]{1,4}|10000)$/\n if(regNum.test(value)){\n return callback()\n }\n callback(new Error('请输入1~10000之间的整数'))\n }\n return {\n loading: false,\n fileType: ['xlsx', 'json'],\n add_value: false,\n testDomain: [],\n testPort: [],\n itemOptions: [],\n protocolOptions: [],\n requestOptions: [],\n taskOptions: [],\n joinTimingTaskForm: {\n taskId: ''\n },\n editForm: {},\n detailForm: {},\n queryInfo: {\n pageNum: 1,\n pageSize: 10,\n itemId: '',\n interfaceName: '',\n interfacePath: '',\n testPerson: '',\n testCaseStatus: '',\n writePerson: '',\n comments: ''\n },\n operatorPerson: JSON.parse(localStorage.getItem('userInfo')).nick,\n testCaseList: [],\n currpage: 1,\n total: 0,\n importDialogVisible: false,\n addDialogVisible: false,\n editDialogVisible: false,\n detailDialogVisible: false,\n joinTimingTaskDialogVisible: false,\n requestResultDialogVisible: false,\n environmentVariableVisible: false,\n environmentVariableList: [],\n requestBackInfo: '',\n multipleSelection: [],\n caseTypeOptions: [],\n caseLevelOptions: [],\n caseStatusOptions: [],\n caseExecLevelOptions: [],\n addForm: {\n itemId: '',\n testMode: '',\n testCaseLevel: 'P0',\n requestType: 'GET',\n protocolType: 'HTTP',\n interfaceName: '',\n testCaseStatus: '新建',\n writePerson: '',\n interfacePath: '',\n relationValues: '',\n requestHeader: '',\n requestParams: '',\n requestBody: '',\n expectResult: '',\n ipPath: '',\n port: '',\n assertField: '',\n sheetName: '',\n comments: ''\n },\n basicInfoShowFlag: false,\n listShowFlag: true,\n interfaceInfoObj: {},\n cycleInterfaceRequestDialogVisible: false,\n cycleRequest: {\n requestNumber: ''\n },\n addFormRules: {\n itemId: [\n { required: true, message: '请选择测试项目', trigger: 'blur' }\n ],\n testCaseStatus: [\n { required: true, message: '请输入测试模块名称', trigger: 'blur' }\n ],\n protocolType: [\n { required: true, message: '请选择协议类型', trigger: 'blur' },\n ],\n requestType: [\n { required: true, message: '请选择请求类型', trigger: 'blur' },\n ],\n testCaseLevel: [\n { required: true, message: '请选择用例等级', trigger: 'blur' },\n ],\n interfaceName: [\n { required: true, message: '请输入接口名称', trigger: 'blur' },\n { min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur' }\n ],\n interfacePath: [\n { required: true, message: '请输入接口地址', trigger: 'blur'},\n { min:1, max: 200, message: '长度在 1 到 200 个字符', trigger: 'blur' }\n ],\n relationValues: [\n { required: false, message: '请输入关联参数(多个值以逗号隔开)', trigger: 'blur'},\n { min:1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }\n ],\n ipPath: [\n { required: true, message: '请输入IP/域名地址', trigger: 'blur' },\n { min: 1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }\n ],\n port: [\n { required: false, message: '请输入端口号', trigger: 'blur' },\n { min: 0, max: 6, message: '长度在 0 到 6 个字符', trigger: 'blur' }\n ],\n assertField: [\n { required: false, message: '请输入断言字段(多个值以逗号隔开)', trigger: 'blur' },\n { min: 0, max: 50 , message: '长度在 0 到 50 个字符', trigger: 'blur' }\n ],\n requestHeader: [\n { required: false, message: '请输入请求头', trigger: 'blur' }\n ],\n requestParams: [\n { required: false, message: '请输入请求参数', trigger: 'blur' }\n ],\n expectResult: [\n { required: false, message: '请输入预期结果(多个值以逗号隔开)', trigger: 'blur' },\n { min: 0, max: 100 , message: '长度在 0 到 100 个字符', trigger: 'blur' }\n ],\n writePerson: [\n { required: false, message: '请输入编写者姓名', trigger: 'blur' }\n ],\n comments: [\n { required: false, message: '请输入备注', trigger: 'blur' },\n { min: 0, max: 200, message: '长度在 0 到 200 个字符', trigger: 'blur' }\n ]\n },\n joinTimingTaskFormRules: {\n taskId: [\n { required: true, message: '请选择测试计划', trigger: 'blur'}\n ]\n },\n addEnvironmentVariableFormRules: {\n variableName: [\n { required: true, message: '请输入变量名', trigger: 'blur' },\n { min: 1, max: 50, message: '长度在 1 到 500 个字符', trigger: 'blur' }\n ],\n variableValue: [\n { required: true, message: '请输入变量值', trigger: 'blur' },\n { min: 1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }\n ],\n comments: [\n { required: false, message: '请输入备注', trigger: 'blur' },\n { min: 0, max: 200, message: '长度在 0 到 200 个字符', trigger: 'blur' }\n ]\n },\n setCycleRequestRules: {\n requestNumber: [\n { required: true, message: '请输入1~10000之间的整数', trigger: 'blur'},\n { validator: checkCycleNumber, trigger: 'blur', max: 10}\n ]\n }\n }\n },\n watch: {\n requestBackInfo: 'changeRequestBackInfo'\n },\n components: {\n UploadFile,\n InterfaceMenuList,\n InterfaceDefine\n },\n mounted () {\n this.getItemNameList()\n this.getTaskNameList()\n this.getCaseTypeAndCaseStatusAndCaseLevel()\n var _this = this\n window.onresize = function(){\n _this.autoFitResolution()\n }\n this.autoFitResolution()\n },\n created () {\n this.getInterfaceTestCaseList()\n },\n methods: {\n autoFitWindowWidth(val){\n var box = this.$refs.interfaceListBoxRef.clientWidth\n var left = document.getElementsByClassName('left-menu')\n var mid = document.getElementsByClassName('right-interface-info')\n for (let j = 0; j < left.length; j++) {\n left[j].style.width = box * 0.15 - 10 + 'px'\n mid[j].style.width = box * 0.835 + 'px'\n }\n },\n autoFitResolution () {\n var middle = document.getElementById('middle')\n var box = document.getElementsByClassName('interface-list-box')\n var left = document.getElementsByClassName('left-menu')\n var resize = document.getElementsByClassName('middle-resize')\n var mid = document.getElementsByClassName('right-interface-info')\n middle.style.lineHeight = window.document.body.clientHeight + 'px'\n for (let i = 0; i < resize.length; i++) {\n resize[i].onmousedown = function (e) {\n var startX = e.clientX;\n resize[i].left = resize[i].offsetLeft\n document.onmousemove = function (e) {\n var endX = e.clientX;\n var moveLen = resize[i].left + (endX - startX)\n var maxT = box[i].clientWidth - resize[i].offsetWidth\n if (moveLen < 32) moveLen = 32\n if (moveLen > maxT - 150) moveLen = maxT - 150\n resize[i].style.left = moveLen\n for (let j = 0; j < left.length; j++) {\n left[j].style.width = moveLen + 'px'\n mid[j].style.width = (box[i].clientWidth - moveLen - 20) + 'px'\n }\n }\n document.onmouseup = function (evt) {\n document.onmousemove = null\n document.onmouseup = null\n resize[i].releaseCapture && resize[i].releaseCapture()\n }\n return false\n }\n }\n },\n debugInterfaceTestCase(){\n var obj = {\n id: '',\n flag: true\n }\n this.changeRightShowFlag(obj)\n },\n refreshTableListAndTreeList(){\n this.$refs.interfaceMenuListRef.getAllInterfaceTestItem()\n this.selectInterfaceTestCaseList()\n },\n cycleInterfaceRequest(){\n this.$refs.cycleRequestRef.validate(valid => {\n if(!valid) return\n var obj = {\n cycleNumber: parseInt(this.cycleRequest.requestNumber),\n interfaceTestList: this.multipleSelection\n }\n this.cycleInterfaceRequestDialogVisibleClose()\n this.loading = true\n this.$api.test.cycleInterfaceRequest(JSON.stringify(obj)).then(res=>{\n this.$notify({\n message: res.data.msg,\n type: \"success\"\n })\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n })\n },\n cycleInterfaceRequestDialogVisibleOpen(){\n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请先勾选用例'\n })\n return\n }\n this.cycleInterfaceRequestDialogVisible = true\n },\n cycleInterfaceRequestDialogVisibleClose(){\n this.cycleInterfaceRequestDialogVisible = false\n this.$refs.cycleRequestRef.resetFields()\n },\n changeRequestBackInfo(){\n if(this.basicInfoShowFlag)\n this.$refs.interfaceDefineRef.getRequestBackInfo(this.requestBackInfo)\n },\n editSaveInterfaceTestCase(obj){\n this.loading = true\n this.editForm = obj\n this.editForm.updateTime = new Date().getTime()\n this.editForm.updatePerson = this.operatorPerson\n if(obj.id){\n this.$api.test.updateInterfaceTestCase(this.editForm).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\"\n })\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n }else{\n this.addForm = this.editForm\n this.addForm.createTime = new Date().getTime()\n this.addForm.writePerson = this.operatorPerson\n this.addForm.sheetName = this.addForm.testMode\n this.$api.test.addInterfaceTestCase(JSON.stringify(this.addForm)).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\"\n })\n this.refreshTableListAndTreeList()\n this.loading = false\n }).catch(()=>{\n this.loading = true\n })\n }\n },\n changeLeftMenuRightTableWidth(flag){\n var leftMenu = document.querySelector('.left-menu')\n var rightInterfaceInfo = document.querySelector('.right-interface-info')\n if(flag){\n leftMenu.style.width = '14.5%'\n rightInterfaceInfo.style.width = '83.5%'\n }else{\n leftMenu.style.width = '2.5%'\n rightInterfaceInfo.style.width = '95.5%'\n }\n },\n changeToPageShow(row){\n var obj = {\n id: row.id,\n flag: true\n }\n this.changeRightShowFlag(obj)\n },\n changeRightShowFlag(obj){\n if(obj.flag){\n this.listShowFlag = false\n this.basicInfoShowFlag = true\n if(obj.id){\n this.$api.test.queryInterfaceTestCaseById(obj.id).then(res =>{\n this.$common.setSessionStorage('currentInterfaceCaseItemId', res.data.data.itemId)\n this.interfaceInfoObj = res.data.data\n }).catch(()=>{})\n }\n }else{\n this.basicInfoShowFlag = false\n this.listShowFlag = true\n if(obj.id == 0)\n this.queryInfo.itemId = ''\n else\n this.queryInfo.itemId = obj.id\n this.selectInterfaceTestCaseList()\n }\n },\n updateTestDomain(row){\n row.taskId = this.testTaskId\n row.caseId = row.id\n row.execDomain = row.ipPath\n row.execPort = row.port\n this.$api.taskrelation.updateInterfaceTestTaskCaseExecLevelAndDomainAndPort(JSON.stringify(row)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n }).catch(()=>{})\n },\n setEnvironmentVariable(){\n this.$api.testvariable.queryNotTaskVariableInfo().then(res=>{\n this.environmentVariableList = res.data.data\n }).catch(()=>{})\n this.environmentVariableVisible = true\n },\n environmentVariableDialogClose(){\n this.environmentVariableVisible = false\n },\n addEnvironmentVariable(){\n var obj = {\n variableName: '',\n variableValue: '',\n comments: ''\n }\n this.environmentVariableList.push(obj)\n },\n delEnvironmentVariable(scope){\n this.environmentVariableList.splice(scope.$index, 1)\n },\n updateEnvironmentVariable(){\n if(this.environmentVariableList.length <= 0){\n this.$notify({\n type: 'warning',\n message: '至少添加一个变量'\n })\n return\n }\n var managerDictNameInputs = document.querySelectorAll('.variable-input .el-input__inner')\n var flag = false\n managerDictNameInputs.forEach(item=>{\n if(item.value == ''){\n item.style.border = '1px solid red'\n flag = true\n }else{\n item.style.border = '1px solid #DCDFE6'\n flag = false\n }\n })\n if(flag)\n return\n this.environmentVariableVisible = false\n this.loading = true\n this.$api.testvariable.updateTestVariableInfo(JSON.stringify(this.environmentVariableList)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n },\n updateTestCaseExecLevelIpPathPort(row){\n this.$api.test.updateInterfaceTestCaseDefaultExecLevel(JSON.stringify(row)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n }).catch(()=>{})\n },\n batchInterfaceRequest(){\n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请先勾选用例'\n })\n return\n }\n this.loading = true\n this.multipleSelection.forEach(element => {\n element.testPerson = this.operatorPerson\n })\n this.$api.test.batchInterfaceRequest(JSON.stringify(this.multipleSelection)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n },\n singleInterfaceRequest(row){\n this.loading = true\n this.requestBackInfo = ''\n row.testPerson = this.operatorPerson\n this.$api.test.interfaceTestRequest(JSON.stringify(row)).then(res=>{\n if(row.definePage){\n this.requestBackInfo = res\n }else{\n if(res.data.msg){\n this.requestBackInfo = res.data.msg\n }else{\n this.requestBackInfo = res\n }\n this.requestResultDialogVisible = true\n }\n this.loading = false\n }).catch(()=>{\n this.loading = false\n this.$refs.interfaceDefineRef.getRequestBackInfo('')\n })\n },\n uploadSuccessStartImport(value){\n var obj = {\n fileName: value,\n operatorPerson: this.operatorPerson\n }\n this.$api.test.importInterfaceTestCaseByExcel(JSON.stringify(obj)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n this.refreshTableListAndTreeList()\n this.$api.comm.deleteFile(value)\n }).catch(()=>{\n this.loading = false\n this.$api.comm.deleteFile(value)\n })\n },\n getCaseTypeAndCaseStatusAndCaseLevel(){ \n this.$api.dict.queryAllDataDict().then(res => {\n this.caseTypeOptions = res.data.data.caseType\n this.caseLevelOptions = res.data.data.caseLevel\n this.caseStatusOptions = res.data.data.caseStatus\n this.caseExecLevelOptions = res.data.data.caseExecLevel\n this.testDomainOptions = res.data.data.domain\n this.testPortOptions = res.data.data.port\n this.protocolOptions = res.data.data.protocolType\n this.requestOptions = res.data.data.requestType\n }).catch(()=>{})\n },\n getTaskNameList() {\n var obj = {\n jobName: '',\n pageNum: '',\n pageSize: ''\n }\n this.$api.task.queryAllTaskManagerInfo(JSON.stringify(obj))\n .then((res) => {\n var options = res.data.data\n options.forEach(function(item, index, arr) {\n if(item.beanClass == 'default')\n arr.splice(index, 1)\n })\n this.taskOptions = options\n }).catch(()=>{})\n },\n showTimingTaskDialogVisible(){\n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请勾选加入计划的用例'\n })\n return\n }else\n this.joinTimingTaskDialogVisible = true\n },\n canclejoinTimingTaskDialogVisible(){\n this.joinTimingTaskDialogVisible = false\n },\n joinTimingTask(){\n this.$refs.joinTimingTaskFormRef.validate(valid => {\n if (!valid) return\n var selectedCases = this.multipleSelection\n var joinTimingTaskCaseList = []\n selectedCases.forEach(item=>{\n var TimingTaskRelation = {}\n TimingTaskRelation.caseId = item.id\n TimingTaskRelation.execLevel = item.execLevel\n TimingTaskRelation.execDomain = item.ipPath\n TimingTaskRelation.execPort = item.port\n TimingTaskRelation.taskId = this.joinTimingTaskForm.taskId\n joinTimingTaskCaseList.push(TimingTaskRelation)\n })\n this.loading = true\n this.$api.taskrelation.interfaceCaseBatchJoinTestTask(JSON.stringify(joinTimingTaskCaseList)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.joinTimingTaskDialogVisible = false\n this.loading = false\n this.$refs.joinTimingTaskFormRef.resetFields()\n }).catch(()=>{\n this.loading = false\n })\n })\n },\n updateTestCaseStatus(val){\n var obj = val\n obj.updateTime = new Date().getTime()\n obj.updatePerson = this.operatorPerson\n this.$api.test.updateInterfaceTestCaseStatus(obj).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.getInterfaceTestCaseList()\n }).catch(()=>{})\n },\n cancelImportDialogVisible(){\n this.loading = false\n this.importDialogVisible = false\n this.$refs.uploadFile.cancel()\n },\n importInterfaceTestCase(){\n this.uploadComplatedFlag = false\n this.$refs.uploadFile.uploadSectionFile()\n this.importDialogVisible = false\n this.loading = true\n },\n batchExportInterfaceTestCase(){\n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请勾选需要导出的用例'\n })\n return\n }else{\n this.loading = true\n this.$api.test.batchExportInterfaceTestCaseToExcel(JSON.stringify(this.multipleSelection)).then(res=>{\n this.loading = false\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.$common.downloadFiles(res.data.data.fileName)\n this.$api.comm.deleteFile(res.data.data.fileName)\n }).catch(()=>{\n this.loading = false\n })\n }\n },\n exportAllInterfaceTestCase(){\n this.loading = true\n var exportWhenQueryINfo = this.queryInfo\n exportWhenQueryINfo.pageNum = 0\n this.$api.test.exportAllInterfaceTestCaseToExcel(JSON.stringify(exportWhenQueryINfo)).then(res=>{\n this.loading = false\n if(res.data.code == 200){\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.$common.downloadFiles(res.data.data.fileName)\n this.$api.comm.deleteFile(res.data.data.fileName)\n }else{\n this.$notify({\n type: 'error',\n message: res.data.msg\n })\n } \n }).catch(()=>{\n this.loading = false\n })\n },\n batchDelInterfaceTestCase(){\n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请勾选需要删除的用例'\n })\n }else{\n var selectDatas = this.multipleSelection\n this.loading = true\n this.$confirm('确定删除吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.$api.test.batchDeleteInterfaceTestCase(JSON.stringify(selectDatas)).then(res => {\n this.loading = false\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.refreshTableListAndTreeList()\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {\n this.loading = false\n })\n }\n },\n handleSelectionChange(val) {\n this.multipleSelection = val\n },\n addInterfaceTestCase () {\n this.$refs.addFormRef.validate(valid => {\n if (!valid) return\n this.addForm.createTime = new Date().getTime()\n this.addForm.writePerson = this.operatorPerson\n this.addForm.sheetName = this.addForm.testMode\n this.$api.test.addInterfaceTestCase(JSON.stringify(this.addForm)).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\"\n })\n this.addDialogVisible = false\n this.refreshTableListAndTreeList()\n this.loading = false\n }).catch(()=>{\n this.loading = true\n })\n })\n },\n cancelAddDialogVisible(){\n this.addDialogVisible = false\n this.$refs.addFormRef.resetFields()\n },\n cancelEditDialogVisible(){\n this.editDialogVisible = false\n this.$refs.editFormRef.resetFields()\n },\n showEditDialog (row) {\n this.$api.test.queryInterfaceTestCaseById(row.id).then(res => {\n this.editForm = res.data.data\n this.editDialogVisible = true\n }).catch(()=>{\n }) \n },\n editInterfaceTestCase () {\n this.$refs.editFormRef.validate(valid => {\n if (!valid) return\n this.editForm.updateTime = new Date().getTime()\n this.editForm.updatePerson = this.operatorPerson\n this.$api.test.updateInterfaceTestCase(JSON.stringify(this.editForm)).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\"\n })\n this.editDialogVisible = false\n this.selectInterfaceTestCaseList()\n }).catch(()=>{})\n })\n },\n delInterfaceTestCase (id) {\n this.$confirm('确定删除吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.loading = true\n this.$api.test.deleteInterfaceTestCaseById(id).then(res => {\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.refreshTableListAndTreeList()\n this.loading = false\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {})\n },\n getItemNameList () {\n this.$api.item.queryAllItemIdAndItemName(this.queryInfo.itemName).then(res => {\n this.itemOptions = res.data.data\n }).catch(() => {\n this.loading = false\n })\n },\n selectInterfaceTestCaseList(){\n this.queryInfo.pageNum = 1\n this.total = 0\n this.getInterfaceTestCaseList()\n },\n getInterfaceTestCaseList () {\n this.loading = true\n this.$api.test.queryAllInterfaceTestCase(JSON.stringify(this.queryInfo)).then(res => {\n this.testCaseList = res.data.data\n this.total = res.data.count\n this.loading = false\n }).catch(()=>{\n this.loading = true\n }) \n },\n handleSizeChange (newSize) {\n this.queryInfo.pageSize = newSize\n this.getInterfaceTestCaseList()\n },\n handleCurrentChange (newpageNum) {\n this.queryInfo.pageNum = newpageNum\n this.getInterfaceTestCaseList()\n },\n getRowKeys(row){\n return row.id\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n/deep/ .interface-list-box {\n width: 100%;\n height: 100%;\n margin: 1% 0px;\n overflow: hidden;\n box-shadow: -1px 9px 10px 3px rgba(0, 0, 0, 0.11);\n}\n\n/deep/ .left-menu {\n float: left;\n width: calc(15% - 10px);\n height: 100%;\n}\n\n/deep/ .middle {\n float: left;\n height: 100%;\n cursor: col-resize;\n width: 4px;\n}\n\n/deep/ .middle:hover {\n background-color: #ccc;\n}\n\n/deep/ .middle-resize {\n cursor: col-resize;\n position: relative;\n height: 100%;\n z-index: 99999;\n font-size: 12px;\n}\n\n/deep/ .right-interface-info{\n float: left;\n width: 83.5%;\n height: 100%;\n padding: 0 0 10px 10px;\n // box-shadow: -1px 3px 3px 3px rgba(0, 0, 0, 0.11);\n}\n\n/deep/ .el-form--inline {\n margin-bottom: -10px;\n}\n\n/deep/ .interface-define {\n padding: 10px 20px 20px 20px;\n border-radius: 5px;\n box-shadow: 0px 0px 5px 1px #ccc;\n margin-bottom: 15px;\n /deep/ .interface-define-body {\n margin-top: 20px;\n }\n}\n\n/deep/ .interface-define-title {\n line-height: 30px;\n font-size: 14px;\n border-bottom: 1px dashed #ccc;\n span {\n color: blue;\n font-size: 20px;\n font-weight: bold;\n }\n}\n\n/deep/ .color-passed {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: green !important;\n }\n }\n }\n}\n\n/deep/ .color-noPassed {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: red !important;\n }\n }\n }\n}\n\n/deep/ .color-reviewing {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: orange !important;\n }\n }\n }\n}\n\n/deep/ .color-discard {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: #ccc !important;\n }\n }\n }\n}\n\n/deep/ .el-dialog__body {\n padding-top: 10px;\n overflow: auto; \n}\n\n/deep/ .case-info-form .el-select {\n width: 100%;\n}\n\n.el-table {\n margin-top: 15px;\n margin-bottom: 10px;\n}\n.variable-add-button {\n font-size: 24px;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"interfaceListBoxRef\",staticClass:\"interface-list-box\",attrs:{\"id\":\"interfaceListBox\"}},[_c('div',{staticClass:\"left-menu\",attrs:{\"id\":\"interfaceLeftMenu\"}},[_c('interface-menu-list',{ref:\"interfaceMenuListRef\",on:{\"interface-menu-event\":_vm.changeRightShowFlag,\"interface-menu-expand-fold-event\":_vm.changeLeftMenuRightTableWidth}})],1),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"right-interface-info\",attrs:{\"id\":\"interfaceRightTable\"}},[(_vm.basicInfoShowFlag)?_c('interface-define',{ref:\"interfaceDefineRef\",attrs:{\"interfaceDefine\":_vm.interfaceInfoObj},on:{\"interface-case-update-event\":_vm.editSaveInterfaceTestCase,\"interface-case-request-event\":_vm.singleInterfaceRequest}}):_vm._e(),_vm._v(\" \"),(_vm.listShowFlag)?_c('div',[_c('el-form',{staticClass:\"demo-form-inline\",attrs:{\"inline\":true}},[(false)?_c('el-form-item',{attrs:{\"label\":\"项目名称\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.itemId),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"itemId\", $$v)},expression:\"queryInfo.itemId\"}},_vm._l((_vm.itemOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.itemName,\"value\":item.id}})}),1)],1):_vm._e(),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"接口名称\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入接口名称\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.interfaceName),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"interfaceName\", $$v)},expression:\"queryInfo.interfaceName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"接口地址\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入接口地址\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.interfacePath),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"interfacePath\", $$v)},expression:\"queryInfo.interfacePath\"}})],1),_vm._v(\" \"),(false)?_c('el-form-item',{attrs:{\"label\":\"用例等级\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.testCaseLevel),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testCaseLevel\", $$v)},expression:\"queryInfo.testCaseLevel\"}},_vm._l((_vm.caseLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1):_vm._e(),_vm._v(\" \"),(false)?_c('el-form-item',{attrs:{\"label\":\"用例状态\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.testCaseStatus),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testCaseStatus\", $$v)},expression:\"queryInfo.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1):_vm._e(),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"添加人员\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入添加人员\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.writePerson),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"writePerson\", $$v)},expression:\"queryInfo.writePerson\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注信息\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入备注信息\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.comments),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"comments\", $$v)},expression:\"queryInfo.comments\"}})],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.selectInterfaceTestCaseList}},[_vm._v(\"查询\")])],1)],1),_vm._v(\" \"),_c('el-row',{staticClass:\"add_button\"},[_c('el-col',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){_vm.addDialogVisible = true}}},[_vm._v(\"添加\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.debugInterfaceTestCase}},[_vm._v(\"调试\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){_vm.importDialogVisible = true}}},[_vm._v(\"导入\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.batchExportInterfaceTestCase}},[_vm._v(\"批量导出\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportAllInterfaceTestCase}},[_vm._v(\"全部导出\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.batchDelInterfaceTestCase}},[_vm._v(\"批量删除\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.batchInterfaceRequest}},[_vm._v(\"批量请求\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.cycleInterfaceRequestDialogVisibleOpen}},[_vm._v(\"循环请求\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.showTimingTaskDialogVisible}},[_vm._v(\"加入任务\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.setEnvironmentVariable}},[_vm._v(\"环境变量\")])],1)],1),_vm._v(\" \"),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"multipleTable\",attrs:{\"tooltip-effect\":\"dark\",\"data\":_vm.testCaseList.slice((_vm.currpage - 1)*_vm.queryInfo.pageSize, _vm.currpage*_vm.queryInfo.pageSize),\"border\":\"\",\"fit\":true,\"row-key\":_vm.getRowKeys},on:{\"selection-change\":_vm.handleSelectionChange,\"cell-dblclick\":_vm.changeToPageShow}},[_c('el-table-column',{attrs:{\"reserve-selection\":true,\"type\":\"selection\",\"width\":\"55\",\"align\":\"center\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"50\",\"fixed\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"项目名称\",\"prop\":\"itemId\",\"width\":\"150\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"接口名称\",\"prop\":\"interfaceName\",\"width\":\"200\",\"show-overflow-tooltip\":\"\",\"fixed\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"优先级\",\"prop\":\"execLevel\",\"width\":\"110\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseExecLevelIpPathPort(scope.row)}},model:{value:(scope.row.execLevel),callback:function ($$v) {_vm.$set(scope.row, \"execLevel\", $$v)},expression:\"scope.row.execLevel\"}},_vm._l((_vm.caseExecLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)]}}],null,false,3411154817)}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"协议类型\",\"prop\":\"protocolType\",\"width\":\"100\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"请求类型\",\"prop\":\"requestType\",\"width\":\"100\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"IP/域名地址\",\"prop\":\"ipPath\",\"width\":\"250\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"端口号\",\"prop\":\"port\",\"width\":\"80\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"接口地址\",\"prop\":\"interfacePath\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"请求头\",\"prop\":\"requestHeader\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"请求参数\",\"prop\":\"requestParams\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"请求体\",\"prop\":\"requestBody\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"关联参数\",\"prop\":\"relationValues\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"断言字段\",\"prop\":\"assertField\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"预期结果\",\"prop\":\"expectResult\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"用例等级\",\"prop\":\"testCaseLevel\",\"width\":\"80\"}}):_vm._e(),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"用例状态\",\"prop\":\"testCaseStatus\",\"width\":\"120\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.testCaseStatus == '通过')?_c('span',{staticClass:\"color-passed\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testCaseStatus),callback:function ($$v) {_vm.$set(scope.row, \"testCaseStatus\", $$v)},expression:\"scope.row.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1):(scope.row.testCaseStatus == '未通过')?_c('span',{staticClass:\"color-noPassed\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testCaseStatus),callback:function ($$v) {_vm.$set(scope.row, \"testCaseStatus\", $$v)},expression:\"scope.row.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1):(scope.row.testCaseStatus == '评审中')?_c('span',{staticClass:\"color-reviewing\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testCaseStatus),callback:function ($$v) {_vm.$set(scope.row, \"testCaseStatus\", $$v)},expression:\"scope.row.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1):(scope.row.testCaseStatus == '废弃')?_c('span',{staticClass:\"color-discard\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testCaseStatus),callback:function ($$v) {_vm.$set(scope.row, \"testCaseStatus\", $$v)},expression:\"scope.row.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1):_c('span',[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testCaseStatus),callback:function ($$v) {_vm.$set(scope.row, \"testCaseStatus\", $$v)},expression:\"scope.row.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)]}}],null,false,2215541647)}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"添加人员\",\"prop\":\"writePerson\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"添加时间\",\"prop\":\"createTime\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"更新人员\",\"prop\":\"updatePerson\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"更新时间\",\"prop\":\"updateTime\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"备注\",\"prop\":\"comments\",\"width\":\"250\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"200\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.singleInterfaceRequest(scope.row)}}},[_vm._v(\"请求\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.showEditDialog(scope.row)}}},[_vm._v(\"编辑\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delInterfaceTestCase(scope.row.id)}}},[_vm._v(\"删除\")])]}}],null,false,1698722235)})],1),_vm._v(\" \"),_c('el-pagination',{attrs:{\"page-sizes\":[5, 10, 20, 30],\"page-size\":_vm.queryInfo.pageSize,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1):_vm._e()],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"添加用例\",\"visible\":_vm.addDialogVisible,\"close-on-click-modal\":false,\"width\":\"60%\"},on:{\"update:visible\":function($event){_vm.addDialogVisible=$event},\"close\":_vm.cancelAddDialogVisible}},[_c('div',{staticClass:\"case-info-form\"},[_c('el-form',{ref:\"addFormRef\",attrs:{\"model\":_vm.addForm,\"rules\":_vm.addFormRules,\"label-width\":\"100px\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\"}},[_c('div',{staticClass:\"add-dialog-select\"},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.addForm.itemId),callback:function ($$v) {_vm.$set(_vm.addForm, \"itemId\", $$v)},expression:\"addForm.itemId\"}},_vm._l((_vm.itemOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.itemName,\"value\":item.id+''}})}),1)],1)])],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"协议类型\",\"prop\":\"protocolType\"}},[_c('div',{staticClass:\"add-dialog-select\"},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.addForm.protocolType),callback:function ($$v) {_vm.$set(_vm.addForm, \"protocolType\", $$v)},expression:\"addForm.protocolType\"}},_vm._l((_vm.protocolOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1)])],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"请求类型\",\"prop\":\"requestType\"}},[_c('div',{staticClass:\"add-dialog-select\"},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.addForm.requestType),callback:function ($$v) {_vm.$set(_vm.addForm, \"requestType\", $$v)},expression:\"addForm.requestType\"}},_vm._l((_vm.requestOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1)])],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"label\":\"IP/域名\",\"prop\":\"ipPath\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入IP/域名地址\"},model:{value:(_vm.addForm.ipPath),callback:function ($$v) {_vm.$set(_vm.addForm, \"ipPath\", $$v)},expression:\"addForm.ipPath\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"端口号\",\"prop\":\"port\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入端口号\"},model:{value:(_vm.addForm.port),callback:function ($$v) {_vm.$set(_vm.addForm, \"port\", $$v)},expression:\"addForm.port\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"接口名称\",\"prop\":\"interfaceName\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入接口名称\"},model:{value:(_vm.addForm.interfaceName),callback:function ($$v) {_vm.$set(_vm.addForm, \"interfaceName\", $$v)},expression:\"addForm.interfaceName\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"接口地址\",\"prop\":\"interfacePath\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入接口地址\"},model:{value:(_vm.addForm.interfacePath),callback:function ($$v) {_vm.$set(_vm.addForm, \"interfacePath\", $$v)},expression:\"addForm.interfacePath\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"请求参数\",\"prop\":\"requestParams\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入请求参数\"},model:{value:(_vm.addForm.requestParams),callback:function ($$v) {_vm.$set(_vm.addForm, \"requestParams\", $$v)},expression:\"addForm.requestParams\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"label\":\"请求头\",\"prop\":\"requestHeader\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入请求头JSON格式\"},model:{value:(_vm.addForm.requestHeader),callback:function ($$v) {_vm.$set(_vm.addForm, \"requestHeader\", $$v)},expression:\"addForm.requestHeader\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":14}},[_c('el-form-item',{attrs:{\"label\":\"请求体\",\"prop\":\"requestBody\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入请求体JSON格式\"},model:{value:(_vm.addForm.requestBody),callback:function ($$v) {_vm.$set(_vm.addForm, \"requestBody\", $$v)},expression:\"addForm.requestBody\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"关联参数\",\"prop\":\"relationValues\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入关联参数\"},model:{value:(_vm.addForm.relationValues),callback:function ($$v) {_vm.$set(_vm.addForm, \"relationValues\", $$v)},expression:\"addForm.relationValues\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"断言字段\",\"prop\":\"assertField\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入断言字段\"},model:{value:(_vm.addForm.assertField),callback:function ($$v) {_vm.$set(_vm.addForm, \"assertField\", $$v)},expression:\"addForm.assertField\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入预期结果\"},model:{value:(_vm.addForm.expectResult),callback:function ($$v) {_vm.$set(_vm.addForm, \"expectResult\", $$v)},expression:\"addForm.expectResult\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入备注信息\"},model:{value:(_vm.addForm.comments),callback:function ($$v) {_vm.$set(_vm.addForm, \"comments\", $$v)},expression:\"addForm.comments\"}})],1)],1)],1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cancelAddDialogVisible}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.addInterfaceTestCase}},[_vm._v(\"确 定\")])],1)]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"修改用例\",\"visible\":_vm.editDialogVisible,\"close-on-click-modal\":false,\"width\":\"60%\"},on:{\"update:visible\":function($event){_vm.editDialogVisible=$event},\"close\":_vm.cancelEditDialogVisible}},[_c('div',{staticClass:\"case-info-form\"},[_c('el-form',{ref:\"editFormRef\",attrs:{\"model\":_vm.editForm,\"rules\":_vm.addFormRules,\"label-width\":\"100px\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\"}},[_c('div',{staticClass:\"add-dialog-select\"},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.itemId),callback:function ($$v) {_vm.$set(_vm.editForm, \"itemId\", $$v)},expression:\"editForm.itemId\"}},_vm._l((_vm.itemOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.itemName,\"value\":item.id+''}})}),1)],1)])],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"协议类型\",\"prop\":\"protocolType\"}},[_c('div',{staticClass:\"add-dialog-select\"},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.protocolType),callback:function ($$v) {_vm.$set(_vm.editForm, \"protocolType\", $$v)},expression:\"editForm.protocolType\"}},_vm._l((_vm.protocolOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1)])],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"请求类型\",\"prop\":\"requestType\"}},[_c('div',{staticClass:\"add-dialog-select\"},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.requestType),callback:function ($$v) {_vm.$set(_vm.editForm, \"requestType\", $$v)},expression:\"editForm.requestType\"}},_vm._l((_vm.requestOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1)])],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"label\":\"IP/域名\",\"prop\":\"ipPath\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入IP/域名地址\"},model:{value:(_vm.editForm.ipPath),callback:function ($$v) {_vm.$set(_vm.editForm, \"ipPath\", $$v)},expression:\"editForm.ipPath\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"端口号\",\"prop\":\"port\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入端口号\"},model:{value:(_vm.editForm.port),callback:function ($$v) {_vm.$set(_vm.editForm, \"port\", $$v)},expression:\"editForm.port\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"接口名称\",\"prop\":\"interfaceName\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入接口名称\"},model:{value:(_vm.editForm.interfaceName),callback:function ($$v) {_vm.$set(_vm.editForm, \"interfaceName\", $$v)},expression:\"editForm.interfaceName\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"接口地址\",\"prop\":\"interfacePath\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入接口地址\"},model:{value:(_vm.editForm.interfacePath),callback:function ($$v) {_vm.$set(_vm.editForm, \"interfacePath\", $$v)},expression:\"editForm.interfacePath\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"请求参数\",\"prop\":\"requestParams\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入请求参数\"},model:{value:(_vm.editForm.requestParams),callback:function ($$v) {_vm.$set(_vm.editForm, \"requestParams\", $$v)},expression:\"editForm.requestParams\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":10}},[_c('el-form-item',{attrs:{\"label\":\"请求头\",\"prop\":\"requestHeader\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入请求头JSON格式\"},model:{value:(_vm.editForm.requestHeader),callback:function ($$v) {_vm.$set(_vm.editForm, \"requestHeader\", $$v)},expression:\"editForm.requestHeader\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":14}},[_c('el-form-item',{attrs:{\"label\":\"请求体\",\"prop\":\"requestBody\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入请求体JSON格式\"},model:{value:(_vm.editForm.requestBody),callback:function ($$v) {_vm.$set(_vm.editForm, \"requestBody\", $$v)},expression:\"editForm.requestBody\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"关联参数\",\"prop\":\"relationValues\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入关联参数\"},model:{value:(_vm.editForm.relationValues),callback:function ($$v) {_vm.$set(_vm.editForm, \"relationValues\", $$v)},expression:\"editForm.relationValues\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"断言字段\",\"prop\":\"assertField\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入断言字段\"},model:{value:(_vm.editForm.assertField),callback:function ($$v) {_vm.$set(_vm.editForm, \"assertField\", $$v)},expression:\"editForm.assertField\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入预期结果\"},model:{value:(_vm.editForm.expectResult),callback:function ($$v) {_vm.$set(_vm.editForm, \"expectResult\", $$v)},expression:\"editForm.expectResult\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入备注信息\"},model:{value:(_vm.editForm.comments),callback:function ($$v) {_vm.$set(_vm.editForm, \"comments\", $$v)},expression:\"editForm.comments\"}})],1)],1)],1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cancelEditDialogVisible}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.editInterfaceTestCase}},[_vm._v(\"确 定\")])],1)]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"导入用例\",\"visible\":_vm.importDialogVisible,\"close-on-click-modal\":false,\"width\":\"40%\"},on:{\"update:visible\":function($event){_vm.importDialogVisible=$event},\"close\":_vm.cancelImportDialogVisible}},[_c('upload-file',{ref:\"uploadFile\",attrs:{\"fileType\":_vm.fileType},on:{\"upload-file-event\":_vm.uploadSuccessStartImport}}),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cancelImportDialogVisible}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.importInterfaceTestCase}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"加入任务\",\"visible\":_vm.joinTimingTaskDialogVisible,\"close-on-click-modal\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.joinTimingTaskDialogVisible=$event},\"close\":_vm.canclejoinTimingTaskDialogVisible}},[_c('el-form',{ref:\"joinTimingTaskFormRef\",staticClass:\"demo-form-inline\",attrs:{\"model\":_vm.joinTimingTaskForm,\"rules\":_vm.joinTimingTaskFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"任务名称\",\"prop\":\"taskId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.joinTimingTaskForm.taskId),callback:function ($$v) {_vm.$set(_vm.joinTimingTaskForm, \"taskId\", $$v)},expression:\"joinTimingTaskForm.taskId\"}},_vm._l((_vm.taskOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.jobName,\"value\":item.id+''}})}),1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.canclejoinTimingTaskDialogVisible}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.joinTimingTask}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"请求结果\",\"visible\":_vm.requestResultDialogVisible,\"close-on-click-modal\":false,\"width\":\"50%\"},on:{\"update:visible\":function($event){_vm.requestResultDialogVisible=$event},\"close\":function($event){_vm.requestResultDialogVisible = false}}},[_c('div',{staticClass:\"request-result-show\",staticStyle:{\"max-height\":\"500px\"}},[_c('p',[_vm._v(_vm._s(_vm.requestBackInfo))])]),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.requestResultDialogVisible = false}}},[_vm._v(\"取 消\")])],1)]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"变量设置\",\"visible\":_vm.environmentVariableVisible,\"close-on-click-modal\":false,\"width\":\"50%\"},on:{\"update:visible\":function($event){_vm.environmentVariableVisible=$event},\"close\":_vm.environmentVariableDialogClose}},[_c('el-row',[_c('el-col',{attrs:{\"span\":2}},[_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":_vm.addEnvironmentVariable}},[_vm._v(\"添加变量\")])],1)],1),_vm._v(\" \"),_c('el-table',{ref:\"environmentVariableFormRef\",attrs:{\"data\":_vm.environmentVariableList,\"fit\":true,\"rules\":_vm.addEnvironmentVariableFormRules}},[_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"100\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"ID\",\"prop\":\"id\"}}):_vm._e(),_vm._v(\" \"),(true)?_c('el-table-column',{attrs:{\"label\":\"变量名\",\"prop\":\"variableName\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{staticClass:\"variable-input\",attrs:{\"placeholder\":\"请输入变量名\"},model:{value:(scope.row.variableName),callback:function ($$v) {_vm.$set(scope.row, \"variableName\", $$v)},expression:\"scope.row.variableName\"}})]}}],null,false,3383068135)}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"变量值\",\"width\":\"180\",\"prop\":\"variableValue\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{staticClass:\"variable-input\",attrs:{\"placeholder\":\"请输入变量值\"},model:{value:(scope.row.variableValue),callback:function ($$v) {_vm.$set(scope.row, \"variableValue\", $$v)},expression:\"scope.row.variableValue\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"备注\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{staticStyle:{\"width\":\"100%\"},attrs:{\"placeholder\":\"请输入备注信息\"},model:{value:(scope.row.comments),callback:function ($$v) {_vm.$set(scope.row, \"comments\", $$v)},expression:\"scope.row.comments\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"100\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{staticClass:\"variable-add-button\",attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":_vm.addEnvironmentVariable}},[_vm._v(\" + \")]),_vm._v(\" \"),_c('el-button',{staticClass:\"variable-add-button\",attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delEnvironmentVariable(scope)}}},[_vm._v(\" - \")])]}}])})],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.environmentVariableDialogClose}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.updateEnvironmentVariable}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"设置\",\"visible\":_vm.cycleInterfaceRequestDialogVisible,\"close-on-click-modal\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.cycleInterfaceRequestDialogVisible=$event},\"close\":_vm.cycleInterfaceRequestDialogVisibleClose}},[_c('el-form',{ref:\"cycleRequestRef\",attrs:{\"model\":_vm.cycleRequest,\"rules\":_vm.setCycleRequestRules,\"label-width\":\"100px\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"循环次数\",\"prop\":\"requestNumber\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"placeholder\":\"请输入循环次数\"},model:{value:(_vm.cycleRequest.requestNumber),callback:function ($$v) {_vm.$set(_vm.cycleRequest, \"requestNumber\", $$v)},expression:\"cycleRequest.requestNumber\"}})],1)],1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cycleInterfaceRequestDialogVisibleClose}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.cycleInterfaceRequest}},[_vm._v(\"确 定\")])],1)],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"middle\",attrs:{\"id\":\"middle\"}},[_c('div',{staticClass:\"middle-resize\",attrs:{\"id\":\"interfaceMiddleResize\"}},[_vm._v(\"⋮\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1e1bb23c\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceList.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1e1bb23c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceList.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1e1bb23c\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1e1bb23c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceList.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-info-box\">\n <interface-list ref=\"interfaceListRef\"></interface-list>\n </div>\n</template>\n\n<script>\nimport InterfaceList from './InterfaceList.vue'\nexport default {\n data(){\n return{\n }\n },\n components:{\n InterfaceList\n },\n methods: {\n invokeInterfaceInfo(){\n this.$refs.interfaceListRef.autoFitWindowWidth()\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n.interface-info-box {\n width: 100%;\n height: 100%;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceInfo.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interface-info-box\"},[_c('interface-list',{ref:\"interfaceListRef\"})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1cbf88df\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceInfo.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1cbf88df\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceInfo.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceInfo.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceInfo.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1cbf88df\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceInfo.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1cbf88df\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceInfo.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-report-box\" v-loading=\"loading\">\n <div class=\"interface-task-table\" v-if=\"tableIsShow\">\n <div class=\"interface-roport-box-query\">\n <el-form :inline=\"true\" class=\"demo-form-inline\">\n <el-form-item label=\"任务名称\">\n <el-select v-model=\"queryInfo.taskName\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in taskOptions\"\n :key=\"item.id\"\n :label=\"item.jobName\"\n :value=\"item.jobName\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"测试人员\">\n <el-input v-model=\"queryInfo.testPerson\" placeholder=\"请输入测试人员姓名\" clearable></el-input>\n </el-form-item>\n <el-form-item label=\"备注信息\">\n <el-input v-model=\"queryInfo.comments\" placeholder=\"请输入备注信息\" clearable></el-input>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"getInterfaceTestResultList\">查询</el-button>\n </el-form-item>\n </el-form>\n </div>\n <el-table :data=\"interfaceTestResultList.slice((currpage - 1)*queryInfo.pageSize, currpage*queryInfo.pageSize)\" border :fit=\"true\">\n <el-table-column label=\"序号\" type=\"index\" align=\"center\" width=\"80\"></el-table-column>\n <el-table-column label=\"任务名称\" prop=\"taskName\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"CASE总数\" prop=\"testAllNum\" width=\"100\"></el-table-column>\n <el-table-column label=\"成功数量\" prop=\"testSuccessNum\" width=\"100\"></el-table-column>\n <el-table-column label=\"失败数量\" prop=\"testFailNum\" width=\"100\"></el-table-column>\n <el-table-column label=\"开始时间\" prop=\"startTestTime\" width=\"160\"></el-table-column>\n <el-table-column label=\"结束时间\" prop=\"endTestTime\" width=\"160\"></el-table-column>\n <el-table-column label=\"测试人员\" prop=\"testPerson\" width=\"150\"></el-table-column>\n <el-table-column label=\"备注\" prop=\"comments\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"150\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" @click=\"showDetailDialog(scope.row.id)\">报告</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"delInterfaceTestResult(scope.row.id)\">删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n :current-page=\"currpage\"\n :page-sizes=\"[5, 10, 20, 30]\"\n :page-size=\"queryInfo.pageSize\"\n layout=\"prev, pager, next, sizes, total, jumper\"\n :total=\"total\">\n </el-pagination>\n </div>\n <div class=\"interface-task-reoprt\" v-if=\"reportIsShow\">\n <div class=\"back-interfac-test-result\">\n <el-form>\n <el-row>\n <el-form-item>\n <el-button @click=\"backParentPage\">返回</el-button>\n </el-form-item>\n </el-row>\n </el-form>\n </div>\n <div class=\"base-info default-style\">\n <div class=\"report-title\">基础信息</div>\n <div >\n <el-form :inline=\"true\" :model=\"detailForm\" class=\"demo-form-inline\">\n <el-row :gutter=\"20\">\n <el-col :span=\"12\">\n <el-form-item label=\"任务名称\">\n <el-input v-model=\"detailForm.taskName\" disabled></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"测试人员\">\n <el-input v-model=\"detailForm.testPerson\" disabled></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"12\">\n <el-form-item label=\"开始时间\">\n <el-input v-model=\"detailForm.startTestTime\" disabled></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"结束时间\">\n <el-input v-model=\"detailForm.endTestTime\" disabled></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"备注信息\">\n <el-input v-model=\"detailForm.comments\" disabled></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n </div>\n </div>\n <div class=\"statistic-pic default-style\">\n <div class=\"report-title\">饼图统计</div>\n <div id=\"reportMain\" class=\"interface-report-box-main\"></div>\n </div>\n <div class=\"statistic-table default-style\">\n <div class=\"report-title\">表格统计\n <div class=\"download_table_statistic\"><span @click=\"downLoadInterfaceTestReportToExcel\">导出</span></div>\n <div class=\"only_success_or_fail\" @click=\"onlyLookSuccessOrFail\"><span>{{onlySuccessOrFail}}</span></div>\n </div>\n <div class=\"interface-report-statistic-table\">\n <el-table\n :data=\"testResultDetails\">\n <el-table-column label=\"序号\" type=\"index\" align=\"center\" width=\"80\"></el-table-column>\n <el-table-column label=\"测试结果\" prop=\"testResult\" width=\"100\"></el-table-column>\n <el-table-column label=\"接口名称\" prop=\"interfaceName\" width=\"300\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"接口地址\" prop=\"interfacePath\" width=\"300\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"错误原因\" prop=\"testFailCause\" show-overflow-tooltip></el-table-column>\n </el-table>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n data () {\n return {\n loading: false,\n tableIsShow: true,\n reportIsShow: false,\n taskNames: [],\n taskConditions: [],\n taskOptions: [],\n interfaceTestResultList: [],\n operatorPerson: JSON.parse(localStorage.getItem('userInfo')).nick,\n queryInfo: {\n taskName: '',\n testPerson: '',\n comments: '',\n pageNum: 1,\n pageSize: 10\n },\n currpage: 1,\n total: 0,\n reportCaseNum: 0,\n detailForm: {},\n testResultDetails: [],\n testReportId: '',\n testReportType: '',\n onlySuccessOrFail: '仅失败'\n }\n },\n mounted () {\n this.getTaskList()\n },\n beforeCreate(){\n },\n created (){\n this.getInterfaceTestResultList()\n },\n methods: {\n onlyLookSuccessOrFail(){\n var obj = {}\n obj.id = this.testReportId\n if(this.onlySuccessOrFail == '仅失败'){\n this.onlySuccessOrFail = '仅成功'\n this.testReportType = 'fail'\n obj.type = this.testReportType\n this.queryInterfaceTestResult(obj)\n }else if(this.onlySuccessOrFail == '仅成功'){\n this.onlySuccessOrFail = '全部'\n this.testReportType = 'success'\n obj.type = this.testReportType\n this.queryInterfaceTestResult(obj)\n } else {\n this.onlySuccessOrFail = '仅失败'\n this.testReportType = ''\n obj.type = this.testReportType\n this.queryInterfaceTestResult(obj)\n } \n },\n downLoadInterfaceTestReportToExcel(){\n this.loading = true\n var obj = {}\n obj.id = this.testReportId\n obj.type = this.testReportType\n this.$api.testresult.exportInterfaceTestResultToExcel(JSON.stringify(obj)).then(res=>{\n this.loading = false\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.$common.downloadFiles(res.data.data.fileName)\n var _this = this\n setTimeout(function(){\n _this.$api.comm.deleteFile(res.data.data.fileName)\n }, 1000)\n }).catch(()=>{\n this.loading = false\n })\n },\n getTaskList () {\n this.$api.task.queryAllTaskManagerInfo(JSON.stringify(this.queryInfo)).then(res => {\n this.taskOptions = res.data.data\n }).catch(() => {})\n },\n getInterfaceTestResultList () {\n this.loading = true\n this.$api.testresult.queryAllInterfaceTestResult(JSON.stringify(this.queryInfo)).then(res => {\n this.loading = false\n this.interfaceTestResultList = res.data.data\n this.total = res.data.count\n this.queryInfo.pageNum = 1\n }).catch(() => {\n this.loading = false\n })\n },\n handleSizeChange (newSize) {\n this.queryInfo.pageSize = newSize\n this.getInterfaceTestResultList()\n },\n handleCurrentChange (newpageNum) {\n this.queryInfo.pageNum = newpageNum\n this.getInterfaceTestResultList()\n },\n queryInterfaceTestResult(obj){\n this.tableIsShow = false\n this.loading = true\n this.$api.testresult.queryInterfaceTestResult(JSON.stringify(obj)).then(res=>{\n this.detailForm = res.data.data\n this.testResultDetails = res.data.data.testDetailVOS\n var conditions = res.data.data\n this.taskNames = []\n this.taskConditions = []\n for(var i=0; i<2; i++){\n var tableObj = {}\n var picObj = {}\n if(conditions.testSuccessNum > 0){\n var name = '成功';\n var value = conditions.testSuccessNum\n picObj.value = value\n picObj.name = name + '' + value + '条'\n picObj.itemStyle = {color: '#008000'}\n this.taskNames.push(name + '' + value + '条')\n tableObj.name = name\n tableObj.num = value\n this.taskConditions.push(picObj)\n conditions.testSuccessNum = 0\n continue\n }\n if(conditions.testFailNum > 0){\n var name = '失败';\n var value = conditions.testFailNum\n picObj.value = value\n picObj.name = name + '' + value + '条'\n picObj.itemStyle = {color: '#E3150A'}\n this.taskNames.push(name + '' + value + '条')\n tableObj.name = name\n tableObj.num = value\n this.taskConditions.push(picObj)\n conditions.testFailNum = 0\n }\n this.reportCaseNum = conditions.testAllNum\n }\n this.reportIsShow = true\n var _this = this\n setTimeout(function(){\n _this.loading = false\n _this.drawAllCharts()\n }, 500)\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n },\n showDetailDialog(id){\n this.testReportId = id\n var obj = {}\n obj.id = id\n obj.type = ''\n this.queryInterfaceTestResult(obj)\n },\n backParentPage(){\n this.reportIsShow = false\n this.tableIsShow = true\n this.taskNames = []\n this.taskConditions = []\n this.testReportId = ''\n this.testReportType = ''\n },\n drawAllCharts(){\n var allNum = this.reportCaseNum\n var myChart = this.$echarts.init(document.getElementById('reportMain'));\n myChart.setOption({\n   title: {\n     text: '',\n     subtext: '',\n     x: 'center'\n   },\n   tooltip: {\n     trigger: 'item',\n formatter: function(params){\n var val = params.value / allNum * 100;\n if (val.valueOf(\".\"))\n val = parseFloat(val).toFixed(2);\n return '占比:' + val + '%'\n },\n   textStyle: {\n     fontSize: 18\n   }\n },\n   legend: {\n     orient: 'vertical',\n     left: 'left',\n     data: this.taskNames,\n   textStyle: {\n     fontSize: 18\n   }\n },\n   toolbox: {\n     feature: {\n    saveAsImage: {\n      show: true\n     }\n    }\n }, \n   series: [{\n     name: '',\n     type: 'pie',\n     radius: ['0%', '60%'],\n center: ['50%', '45%'],\n     data: this.taskConditions,\n     label: {\n       normal: {\n         show: true,\n         textStyle: {\n           fontSize: 18\n         }\n       },\n       emphasis: {\n          show: true\n         }\n     },\n     lableLine: {\n       normal: {\n         show: true\n      },\n      emphasis: {\n        show: true\n       }\n     }\n   }]\n })\n window.onresize = function(){\n myChart.resize()\n }\n },\n delInterfaceTestResult(id) {\n this.loading = true\n this.$confirm('确定删除吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.$api.testresult.deleteInterfaceTestResultById(id).then(res => {\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n this.getInterfaceTestResultList()\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {\n this.loading = false\n })\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.interface-report-box {\n width: 97.5%;\n height: 100%;\n padding: 0px 25px;\n}\n.el-table {\n margin-bottom: 10px;\n}\n.el-pagination {\n margin-bottom: 20px;\n}\n.interface-task-reoprt{\n width: 100%;\n height: 100%;\n}\n.interface-report-box-main {\n min-width: 500px;\n min-height: 300px;\n}\n.default-style {\n background-color: #fff;\n box-shadow: 0px 0px 5px 1px #ccc;\n padding: 10px 20px;\n border-radius: 5px;\n margin-bottom: 20px;\n}\n.report-title {\n font-size: 14px;\n border-bottom: 1px solid #ccc;\n line-height: 30px;\n margin-bottom: 20px;\n} \n.download_table_statistic {\n float: right;\n color: blue;\n font-size: 12px;\n span:hover {\n cursor: pointer;\n }\n}\n.only_success_or_fail {\n float: right;\n color: blue;\n margin: 0px 10px;\n font-size: 12px;\n span:hover {\n cursor: pointer;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceTestReport.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"interface-report-box\"},[(_vm.tableIsShow)?_c('div',{staticClass:\"interface-task-table\"},[_c('div',{staticClass:\"interface-roport-box-query\"},[_c('el-form',{staticClass:\"demo-form-inline\",attrs:{\"inline\":true}},[_c('el-form-item',{attrs:{\"label\":\"任务名称\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.taskName),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"taskName\", $$v)},expression:\"queryInfo.taskName\"}},_vm._l((_vm.taskOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.jobName,\"value\":item.jobName}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"测试人员\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入测试人员姓名\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.testPerson),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testPerson\", $$v)},expression:\"queryInfo.testPerson\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注信息\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入备注信息\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.comments),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"comments\", $$v)},expression:\"queryInfo.comments\"}})],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.getInterfaceTestResultList}},[_vm._v(\"查询\")])],1)],1)],1),_vm._v(\" \"),_c('el-table',{attrs:{\"data\":_vm.interfaceTestResultList.slice((_vm.currpage - 1)*_vm.queryInfo.pageSize, _vm.currpage*_vm.queryInfo.pageSize),\"border\":\"\",\"fit\":true}},[_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"任务名称\",\"prop\":\"taskName\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"CASE总数\",\"prop\":\"testAllNum\",\"width\":\"100\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"成功数量\",\"prop\":\"testSuccessNum\",\"width\":\"100\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"失败数量\",\"prop\":\"testFailNum\",\"width\":\"100\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTestTime\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTestTime\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"测试人员\",\"prop\":\"testPerson\",\"width\":\"150\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"备注\",\"prop\":\"comments\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"150\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.showDetailDialog(scope.row.id)}}},[_vm._v(\"报告\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delInterfaceTestResult(scope.row.id)}}},[_vm._v(\"删除\")])]}}],null,false,727641014)})],1),_vm._v(\" \"),_c('el-pagination',{attrs:{\"current-page\":_vm.currpage,\"page-sizes\":[5, 10, 20, 30],\"page-size\":_vm.queryInfo.pageSize,\"layout\":\"prev, pager, next, sizes, total, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1):_vm._e(),_vm._v(\" \"),(_vm.reportIsShow)?_c('div',{staticClass:\"interface-task-reoprt\"},[_c('div',{staticClass:\"back-interfac-test-result\"},[_c('el-form',[_c('el-row',[_c('el-form-item',[_c('el-button',{on:{\"click\":_vm.backParentPage}},[_vm._v(\"返回\")])],1)],1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"base-info default-style\"},[_c('div',{staticClass:\"report-title\"},[_vm._v(\"基础信息\")]),_vm._v(\" \"),_c('div',[_c('el-form',{staticClass:\"demo-form-inline\",attrs:{\"inline\":true,\"model\":_vm.detailForm}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"任务名称\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.taskName),callback:function ($$v) {_vm.$set(_vm.detailForm, \"taskName\", $$v)},expression:\"detailForm.taskName\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"测试人员\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.testPerson),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testPerson\", $$v)},expression:\"detailForm.testPerson\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"开始时间\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.startTestTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"startTestTime\", $$v)},expression:\"detailForm.startTestTime\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"结束时间\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.endTestTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"endTestTime\", $$v)},expression:\"detailForm.endTestTime\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"备注信息\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.comments),callback:function ($$v) {_vm.$set(_vm.detailForm, \"comments\", $$v)},expression:\"detailForm.comments\"}})],1)],1)],1)],1)],1)]),_vm._v(\" \"),_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"statistic-table default-style\"},[_c('div',{staticClass:\"report-title\"},[_vm._v(\"表格统计\\n \"),_c('div',{staticClass:\"download_table_statistic\"},[_c('span',{on:{\"click\":_vm.downLoadInterfaceTestReportToExcel}},[_vm._v(\"导出\")])]),_vm._v(\" \"),_c('div',{staticClass:\"only_success_or_fail\",on:{\"click\":_vm.onlyLookSuccessOrFail}},[_c('span',[_vm._v(_vm._s(_vm.onlySuccessOrFail))])])]),_vm._v(\" \"),_c('div',{staticClass:\"interface-report-statistic-table\"},[_c('el-table',{attrs:{\"data\":_vm.testResultDetails}},[_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"测试结果\",\"prop\":\"testResult\",\"width\":\"100\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"接口名称\",\"prop\":\"interfaceName\",\"width\":\"300\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"接口地址\",\"prop\":\"interfacePath\",\"width\":\"300\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"错误原因\",\"prop\":\"testFailCause\",\"show-overflow-tooltip\":\"\"}})],1)],1)])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"statistic-pic default-style\"},[_c('div',{staticClass:\"report-title\"},[_vm._v(\"饼图统计\")]),_vm._v(\" \"),_c('div',{staticClass:\"interface-report-box-main\",attrs:{\"id\":\"reportMain\"}})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-310f0ad6\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceTestReport.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-310f0ad6\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceTestReport.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceTestReport.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceTestReport.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-310f0ad6\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceTestReport.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-310f0ad6\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceTestReport.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-test-task-case-box\">\n <el-form :inline=\"true\" class=\"demo-form-inline\">\n <el-form-item label=\"项目名称\">\n <el-select v-model=\"queryInfo.itemId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in itemOptions\"\n :key=\"item.id\"\n :label=\"item.itemName\"\n :value=\"item.id\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"接口名称\">\n <el-input placeholder=\"请输入接口名称\" clearable class=\"input-with-select\" v-model=\"queryInfo.interfaceName\"></el-input>\n </el-form-item>\n <el-form-item label=\"接口地址\">\n <el-input placeholder=\"请输入接口地址\" clearable class=\"input-with-select\" v-model=\"queryInfo.interfacePath\"></el-input>\n </el-form-item>\n <el-form-item label=\"用例等级\" v-if=\"false\">\n <el-select v-model=\"queryInfo.testCaseLevel\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in caseLevelOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"编写人员\">\n <el-input placeholder=\"请输入编写人员\" clearable class=\"input-with-select\" v-model=\"queryInfo.writePerson\"></el-input>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"selectInterfaceTestTaskCaseList\">查询</el-button>\n </el-form-item>\n <el-row>\n <el-form-item>\n <el-button @click=\"backParentPage\">返回</el-button>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"setEnvironmentVariable\">环境变量</el-button>\n </el-form-item>\n </el-row>\n </el-form>\n <el-table \n ref=\"multipleTable\" \n tooltip-effect=\"dark\"\n v-loading=\"loading\"\n :data=\"testCaseList.slice((currpage - 1)*queryInfo.pageSize, currpage*queryInfo.pageSize)\" \n border \n :fit=\"true\">\n <el-table-column label=\"序号\" type=\"index\" align=\"center\" width=\"50\" fixed></el-table-column>\n <el-table-column label=\"项目名称\" prop=\"itemId\" width=\"150\" show-overflow-tooltip fixed></el-table-column>\n <el-table-column label=\"接口名称\" prop=\"interfaceName\" width=\"200\" show-overflow-tooltip fixed></el-table-column>\n <el-table-column label=\"用例等级\" prop=\"testCaseLevel\" width=\"80\" v-if=\"false\"></el-table-column>\n <el-table-column label=\"优先级\" prop=\"execLevel\" width=\"110\">\n <template slot-scope=\"scope\">\n <el-select v-model=\"scope.row.execLevel\" placeholder=\"请选择\" @change=\"updateTestCaseExecLevel(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in caseExecLevelOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictCode\"></el-option>\n </el-select>\n </template>\n </el-table-column>\n <el-table-column label=\"协议类型\" prop=\"protocolType\" width=\"100\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"请求类型\" prop=\"requestType\" width=\"100\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"IP/域名地址\" prop=\"ipPath\" width=\"250\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"端口号\" prop=\"port\" width=\"110\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"接口地址\" prop=\"interfacePath\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"请求头\" prop=\"requestHeader\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"请求参数\" prop=\"requestParams\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"请求体\" prop=\"requestBody\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"关联参数\" prop=\"relationValues\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"断言字段\" prop=\"assertField\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"预期结果\" prop=\"expectResult\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"编写者\" prop=\"writePerson\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"创建时间\" prop=\"createTime\" width=\"160\"></el-table-column>\n <el-table-column label=\"更新人员\" prop=\"updatePerson\" width=\"160\"></el-table-column>\n <el-table-column label=\"更新时间\" prop=\"updateTime\" width=\"160\"></el-table-column>\n <el-table-column label=\"备注\" prop=\"comments\" width=\"250\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"100\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" @click=\"delInterfaceTestCase(scope.row.id)\">删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n :page-sizes=\"[5, 10, 20, 30]\"\n :page-size=\"queryInfo.pageSize\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n :total=\"total\">\n </el-pagination>\n\n <el-dialog\n title=\"变量设置\"\n :visible.sync=\"environmentVariableVisible\"\n :close-on-click-modal= 'false'\n width=\"50%\" @close=\"environmentVariableDialogClose\">\n <el-row>\n <el-col :span=\"2\">\n <el-button size=\"mini\" type=\"primary\" @click=\"addEnvironmentVariable\">添加变量</el-button>\n </el-col>\n </el-row>\n <el-table\n :data=\"environmentVariableList\" :fit=\"true\" ref=\"environmentVariableFormRef\" :rules=\"addEnvironmentVariableFormRules\">\n <el-table-column label=\"序号\" type=\"index\" align=\"center\" width=\"100\"></el-table-column>\n <el-table-column label=\"ID\" prop=\"id\" v-if=\"false\"></el-table-column>\n <el-table-column label=\"任务ID\" prop=\"taskId\" v-if=\"false\"></el-table-column>\n <el-table-column label=\"变量名\" prop=\"variableName\" v-if=\"true\">\n <template slot-scope=\"scope\">\n <el-input class=\"variable-input\" v-model=\"scope.row.variableName\" placeholder=\"请输入变量名\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"变量值\" width=\"180\" prop=\"variableValue\">\n <template slot-scope=\"scope\">\n <el-input class=\"variable-input\" v-model=\"scope.row.variableValue\" placeholder=\"请输入变量值\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"备注\">\n <template slot-scope=\"scope\" width=\"200\">\n <el-input v-model=\"scope.row.comments\" placeholder=\"请输入备注信息\" style=\"width: 100%\"></el-input>\n </template>\n </el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"100\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" @click=\"addEnvironmentVariable\" class=\"variable-add-button\"> + </el-button>\n <el-button type=\"text\" size=\"small\" @click=\"delEnvironmentVariable(scope)\" class=\"variable-add-button\"> - </el-button>\n </template>\n </el-table-column>\n </el-table>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"environmentVariableDialogClose\">取 消</el-button>\n <el-button type=\"primary\" @click=\"updateEnvironmentVariable\">确 定</el-button>\n </span>\n </el-dialog>\n </div>\n</template>\n<script>\nexport default {\n data(){\n return {\n loading: false,\n environmentVariableVisible: false,\n testDomain: [],\n testPort: [],\n testCaseList: [],\n itemOptions: [],\n caseLevelOptions: [],\n caseExecLevelOptions: [],\n environmentVariableList: [],\n queryInfo: {\n itemId: '',\n interfaceName: '',\n interfacePath: '',\n testCaseLevel: '',\n writePerson: '',\n taskId: this.testTaskId,\n pageNum: 1,\n pageSize: 10\n },\n currpage: 1,\n total: 0,\n addEnvironmentVariableFormRules: {\n variableName: [\n { required: true, message: '请输入变量名', trigger: 'blur' },\n { min: 1, max: 50, message: '长度在 1 到 500 个字符', trigger: 'blur' }\n ],\n variableValue: [\n { required: true, message: '请输入变量值', trigger: 'blur' },\n { min: 1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }\n ],\n comments: [\n { required: false, message: '请输入备注', trigger: 'blur' },\n { min: 0, max: 200, message: '长度在 0 到 200 个字符', trigger: 'blur' }\n ]\n }\n }\n },\n props: ['testTaskId', 'runEnvCode'],\n created(){\n this.getInterfaceTestCaseList()\n },\n mounted(){\n this.getItemNameList()\n this.getCaseTypeAndCaseStatusAndCaseLevel()\n },\n methods: {\n updateTestDomain(row){\n row.taskId = this.testTaskId\n row.caseId = row.id\n row.execDomain = row.ipPath\n row.execPort = row.port\n this.$api.taskrelation.updateInterfaceTestTaskCaseExecLevelAndDomainAndPort(JSON.stringify(row)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n }).catch(()=>{})\n },\n setEnvironmentVariable(){\n this.$api.testvariable.queryTaskVariableInfoByTaskId(this.testTaskId).then(res=>{\n this.environmentVariableList = res.data.data\n }).catch(()=>{})\n this.environmentVariableVisible = true\n },\n environmentVariableDialogClose(){\n this.environmentVariableVisible = false\n },\n addEnvironmentVariable(){\n var obj = {\n variableName: '',\n variableValue: '',\n comments: ''\n }\n this.environmentVariableList.push(obj)\n },\n delEnvironmentVariable(scope){\n this.environmentVariableList.splice(scope.$index, 1)\n },\n updateEnvironmentVariable(){\n if(this.environmentVariableList.length <= 0){\n this.$notify({\n type: 'warning',\n message: '至少添加一个变量'\n })\n return\n }\n var managerDictNameInputs = document.querySelectorAll('.variable-input .el-input__inner')\n var flag = false\n managerDictNameInputs.forEach(item=>{\n if(item.value == ''){\n item.style.border = '1px solid red'\n flag = true\n }else{\n item.style.border = '1px solid #DCDFE6'\n flag = false\n }\n })\n if(flag)\n return\n this.environmentVariableVisible = false\n this.loading = true\n this.environmentVariableList.forEach(ele=>{\n ele.taskId = this.testTaskId\n })\n this.$api.testvariable.updateTestVariableInfo(JSON.stringify(this.environmentVariableList)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n },\n selectInterfaceTestTaskCaseList(){ \n this.queryInfo.pageNum = 1\n this.total = 0\n this.getInterfaceTestCaseList()\n },\n getInterfaceTestCaseList(){\n this.loading = true\n if(this.runEnvCode){\n this.queryInfo.envCode = this.runEnvCode\n this.$api.testdata.queryAllInterfaceTestDataByTaskIdAndEnvCode(JSON.stringify(this.queryInfo)).then(res=>{\n this.testCaseList = res.data.data\n this.total = res.data.count\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n }else{\n this.$api.taskrelation.queryInterfaceTestTaskCase(JSON.stringify(this.queryInfo)).then(res=>{\n this.testCaseList = res.data.data\n this.total = res.data.count\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n }\n },\n getItemNameList () {\n this.$api.item.queryAllItemIdAndItemName(this.queryInfo.itemName).then(res => {\n this.itemOptions = res.data.data\n }).catch(() => {\n this.loading = false\n })\n },\n getCaseTypeAndCaseStatusAndCaseLevel(){ \n this.$api.dict.queryAllDataDict().then(res => {\n this.caseLevelOptions = res.data.data.caseLevel\n this.testDomainOptions = res.data.data.domain\n this.testPortOptions = res.data.data.port\n this.caseExecLevelOptions = res.data.data.caseExecLevel\n }).catch(()=>{})\n },\n updateTestCaseExecLevel(row){\n row.taskId = this.testTaskId\n row.caseId = row.id\n this.$api.taskrelation.updateInterfaceTestTaskCaseExecLevelAndDomainAndPort(JSON.stringify(row)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n }).catch(()=>{})\n },\n backParentPage(){\n this.$emit('test-task-case', false)\n },\n handleSizeChange (newSize) {\n this.queryInfo.pageSize = newSize\n this.getInterfaceTestCaseList()\n },\n handleCurrentChange (newpageNum) {\n this.queryInfo.pageNum = newpageNum\n this.getInterfaceTestCaseList()\n },\n delInterfaceTestCase(id){\n this.loading = true\n this.$confirm('确定删除吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n var obj = {}\n obj.caseId = id\n obj.taskId = this.testTaskId\n this.$api.taskrelation.delJoinedTestTaskCaseByTaskIdAndCaseId(JSON.stringify(obj)).then(res => {\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n this.selectInterfaceTestTaskCaseList()\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {\n this.loading = false\n })\n }\n }\n}\n</script>\n<style lang=\"less\" scoped>\n.el-table {\n margin-bottom: 10px;\n}\n.el-pagination {\n margin-bottom: 20px;\n}\n.variable-add-button {\n font-size: 24px;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceTestTaskCaseList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interface-test-task-case-box\"},[_c('el-form',{staticClass:\"demo-form-inline\",attrs:{\"inline\":true}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.itemId),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"itemId\", $$v)},expression:\"queryInfo.itemId\"}},_vm._l((_vm.itemOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.itemName,\"value\":item.id}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"接口名称\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入接口名称\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.interfaceName),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"interfaceName\", $$v)},expression:\"queryInfo.interfaceName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"接口地址\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入接口地址\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.interfacePath),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"interfacePath\", $$v)},expression:\"queryInfo.interfacePath\"}})],1),_vm._v(\" \"),(false)?_c('el-form-item',{attrs:{\"label\":\"用例等级\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.testCaseLevel),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testCaseLevel\", $$v)},expression:\"queryInfo.testCaseLevel\"}},_vm._l((_vm.caseLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1):_vm._e(),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"编写人员\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入编写人员\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.writePerson),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"writePerson\", $$v)},expression:\"queryInfo.writePerson\"}})],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.selectInterfaceTestTaskCaseList}},[_vm._v(\"查询\")])],1),_vm._v(\" \"),_c('el-row',[_c('el-form-item',[_c('el-button',{on:{\"click\":_vm.backParentPage}},[_vm._v(\"返回\")])],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.setEnvironmentVariable}},[_vm._v(\"环境变量\")])],1)],1)],1),_vm._v(\" \"),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"multipleTable\",attrs:{\"tooltip-effect\":\"dark\",\"data\":_vm.testCaseList.slice((_vm.currpage - 1)*_vm.queryInfo.pageSize, _vm.currpage*_vm.queryInfo.pageSize),\"border\":\"\",\"fit\":true}},[_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"50\",\"fixed\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\",\"width\":\"150\",\"show-overflow-tooltip\":\"\",\"fixed\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"接口名称\",\"prop\":\"interfaceName\",\"width\":\"200\",\"show-overflow-tooltip\":\"\",\"fixed\":\"\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"用例等级\",\"prop\":\"testCaseLevel\",\"width\":\"80\"}}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"优先级\",\"prop\":\"execLevel\",\"width\":\"110\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseExecLevel(scope.row)}},model:{value:(scope.row.execLevel),callback:function ($$v) {_vm.$set(scope.row, \"execLevel\", $$v)},expression:\"scope.row.execLevel\"}},_vm._l((_vm.caseExecLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"协议类型\",\"prop\":\"protocolType\",\"width\":\"100\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"请求类型\",\"prop\":\"requestType\",\"width\":\"100\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"IP/域名地址\",\"prop\":\"ipPath\",\"width\":\"250\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"端口号\",\"prop\":\"port\",\"width\":\"110\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"接口地址\",\"prop\":\"interfacePath\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"请求头\",\"prop\":\"requestHeader\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"请求参数\",\"prop\":\"requestParams\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"请求体\",\"prop\":\"requestBody\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"关联参数\",\"prop\":\"relationValues\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"断言字段\",\"prop\":\"assertField\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"编写者\",\"prop\":\"writePerson\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"创建时间\",\"prop\":\"createTime\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"更新人员\",\"prop\":\"updatePerson\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"更新时间\",\"prop\":\"updateTime\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"备注\",\"prop\":\"comments\",\"width\":\"250\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"100\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delInterfaceTestCase(scope.row.id)}}},[_vm._v(\"删除\")])]}}])})],1),_vm._v(\" \"),_c('el-pagination',{attrs:{\"page-sizes\":[5, 10, 20, 30],\"page-size\":_vm.queryInfo.pageSize,\"layout\":\"total, sizes, prev, pager, next, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}}),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"变量设置\",\"visible\":_vm.environmentVariableVisible,\"close-on-click-modal\":false,\"width\":\"50%\"},on:{\"update:visible\":function($event){_vm.environmentVariableVisible=$event},\"close\":_vm.environmentVariableDialogClose}},[_c('el-row',[_c('el-col',{attrs:{\"span\":2}},[_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":_vm.addEnvironmentVariable}},[_vm._v(\"添加变量\")])],1)],1),_vm._v(\" \"),_c('el-table',{ref:\"environmentVariableFormRef\",attrs:{\"data\":_vm.environmentVariableList,\"fit\":true,\"rules\":_vm.addEnvironmentVariableFormRules}},[_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"100\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"ID\",\"prop\":\"id\"}}):_vm._e(),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"任务ID\",\"prop\":\"taskId\"}}):_vm._e(),_vm._v(\" \"),(true)?_c('el-table-column',{attrs:{\"label\":\"变量名\",\"prop\":\"variableName\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{staticClass:\"variable-input\",attrs:{\"placeholder\":\"请输入变量名\"},model:{value:(scope.row.variableName),callback:function ($$v) {_vm.$set(scope.row, \"variableName\", $$v)},expression:\"scope.row.variableName\"}})]}}],null,false,3383068135)}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"变量值\",\"width\":\"180\",\"prop\":\"variableValue\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{staticClass:\"variable-input\",attrs:{\"placeholder\":\"请输入变量值\"},model:{value:(scope.row.variableValue),callback:function ($$v) {_vm.$set(scope.row, \"variableValue\", $$v)},expression:\"scope.row.variableValue\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"备注\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-input',{staticStyle:{\"width\":\"100%\"},attrs:{\"placeholder\":\"请输入备注信息\"},model:{value:(scope.row.comments),callback:function ($$v) {_vm.$set(scope.row, \"comments\", $$v)},expression:\"scope.row.comments\"}})]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"100\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{staticClass:\"variable-add-button\",attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":_vm.addEnvironmentVariable}},[_vm._v(\" + \")]),_vm._v(\" \"),_c('el-button',{staticClass:\"variable-add-button\",attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delEnvironmentVariable(scope)}}},[_vm._v(\" - \")])]}}])})],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.environmentVariableDialogClose}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.updateEnvironmentVariable}},[_vm._v(\"确 定\")])],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-50c15f5e\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceTestTaskCaseList.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-50c15f5e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceTestTaskCaseList.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceTestTaskCaseList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceTestTaskCaseList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-50c15f5e\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceTestTaskCaseList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-50c15f5e\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceTestTaskCaseList.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-test-task-list-box\" v-loading=\"loading\">\n <div class=\"interface-task-table\" v-if=\"tableIsShow\">\n <div class=\"interface-test-task-list-box-query\">\n <el-form :inline=\"true\" class=\"demo-form-inline\">\n <el-form-item label=\"任务名称\">\n <el-input v-model=\"queryInfo.jobName\" placeholder=\"请输入任务名称\" clearable></el-input>\n </el-form-item>\n <el-form-item label=\"创建人员\">\n <el-input v-model=\"queryInfo.createPerson\" placeholder=\"请输入测试人员姓名\" clearable></el-input>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"selectTaskList\">查询</el-button>\n </el-form-item>\n </el-form>\n </div>\n <el-table :data=\"interfaceTestTaskList.slice((currpage - 1)*queryInfo.pageSize, currpage*queryInfo.pageSize)\" border :fit=\"true\">\n <el-table-column label=\"序号\" type=\"index\" align=\"center\" width=\"80\"></el-table-column>\n <el-table-column label=\"任务名称\" prop=\"jobName\"></el-table-column>\n <el-table-column label=\"运行环境\" prop=\"runEnvironment\" width=\"150\">\n <template slot-scope=\"scope\">\n <el-select v-model=\"scope.row.runEnvironment\" placeholder=\"请选择\" @change=\"updateRunEnvironment(scope.row)\" class=\"select-test-result\" clearable>\n <el-option v-for=\"item in runEnvironmentOptions\" :key=\"item.id\" :label=\"item.dictValue\" :value=\"item.dictCode\"></el-option>\n </el-select>\n </template>\n </el-table-column>\n <el-table-column label=\"任务状态\" prop=\"jobStatus\" width=\"100\">\n <template slot-scope=\"scope\">\n <el-switch \n v-model=\"scope.row.jobStatus\"\n active-value='1'\n inactive-value='0'\n @change=\"changeJobStatus(scope.row)\"\n v-if=\"scope.row.beanClass != 'default'\">\n </el-switch>\n </template>\n </el-table-column>\n <el-table-column label=\"创建时间\" prop=\"createTime\" width=\"180\"></el-table-column>\n <el-table-column label=\"创建人员\" prop=\"createPerson\" width=\"120\"></el-table-column>\n <el-table-column label=\"更新时间\" prop=\"updateTime\" width=\"180\"></el-table-column>\n <el-table-column label=\"更新人员\" prop=\"updatePerson\" width=\"120\"></el-table-column>\n <el-table-column label=\"备注\" prop=\"comments\" show-overflow-tooltip></el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"150\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" @click=\"showDetailDialog(scope.row)\">查看</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"delTestTaskAndTestCase(scope.row.id)\">删除</el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n @size-change=\"handleSizeChange\"\n @current-change=\"handleCurrentChange\"\n :current-page=\"currpage\"\n :page-sizes=\"[5, 10, 20, 30]\"\n :page-size=\"queryInfo.pageSize\"\n layout=\"prev, pager, next, sizes, total, jumper\"\n :total=\"total\">\n </el-pagination>\n </div>\n <div class=\"interface-case-table\" v-if=\"taskListIsShow\">\n <interface-test-task-case-list v-if=\"taskListIsShow\" :testTaskId=\"testTaskId\" :runEnvCode=\"runEnvCode\" @test-task-case=\"changeShowCaseFlag\" ref=\"testTaskCase\"></interface-test-task-case-list>\n </div>\n </div>\n</template>\n<script>\nimport InterfaceTestTaskCaseList from './InterfaceTestTaskCaseList.vue'\nexport default {\n data () {\n return {\n loading: false,\n tableIsShow: true,\n taskListIsShow: false,\n testTaskId: '',\n runEnvCode: '',\n interfaceTestTaskList: [],\n operatorPerson: JSON.parse(localStorage.getItem('userInfo')).nick,\n queryInfo: {\n jobName: '',\n createPerson: '',\n jobGroup: 'InterfaceTestTask',\n pageNum: 1,\n pageSize: 10\n },\n currpage: 1,\n total: 0,\n runEnvironmentOptions: []\n }\n },\n components: {\n InterfaceTestTaskCaseList\n },\n mounted () {\n this.getTaskRunEnvironmentDataDict()\n },\n beforeCreate(){\n },\n created (){\n this.getTaskList()\n },\n methods: {\n updateRunEnvironment(row){\n this.$api.task.updateTaskRunEnvironment(JSON.stringify(row)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n }).catch(()=>{})\n },\n getTaskRunEnvironmentDataDict(){ \n this.$api.dict.queryAllDataDict().then(res => {\n this.runEnvironmentOptions = res.data.data.environment\n }).catch(()=>{})\n },\n changeShowCaseFlag(flag){\n this.taskListIsShow = false\n this.tableIsShow = true\n },\n changeJobStatus(row){\n this.loading = true\n this.$api.task.updateTaskManagerStatus(JSON.stringify(row)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n }).catch(()=>{\n this.loading = false\n })\n },\n selectTaskList(){\n this.queryInfo.pageNum = 1\n this.total = 0\n this.getTaskList()\n },\n getTaskList () {\n this.loading = true\n this.$api.task.queryAllTaskManagerInfo(JSON.stringify(this.queryInfo)).then(res => {\n this.interfaceTestTaskList = res.data.data\n this.total = res.data.count\n this.pageNum = 1\n this.loading = false\n }).catch(() => {\n this.loading = false\n })\n },\n handleSizeChange (newSize) {\n this.queryInfo.pageSize = newSize\n this.getTaskList()\n },\n handleCurrentChange (newpageNum) {\n this.queryInfo.pageNum = newpageNum\n this.getTaskList()\n },\n showDetailDialog(row){\n this.testTaskId = row.id\n this.runEnvCode = row.runEnvironment\n this.tableIsShow = false\n this.taskListIsShow = true\n },\n delTestTaskAndTestCase(id) {\n this.loading = true\n this.$confirm('确定删除吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.$api.taskrelation.delAllJoinedTestTaskCaseByTaskId(id).then(res => {\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n this.getTaskList()\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {\n this.loading = false\n })\n }\n }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.interface-test-task-list-box {\n padding: 0 25px;\n}\n.el-table {\n margin-bottom: 10px;\n}\n.el-pagination {\n margin-bottom: 20px;\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/interface/InterfaceTestTaskList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"interface-test-task-list-box\"},[(_vm.tableIsShow)?_c('div',{staticClass:\"interface-task-table\"},[_c('div',{staticClass:\"interface-test-task-list-box-query\"},[_c('el-form',{staticClass:\"demo-form-inline\",attrs:{\"inline\":true}},[_c('el-form-item',{attrs:{\"label\":\"任务名称\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入任务名称\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.jobName),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"jobName\", $$v)},expression:\"queryInfo.jobName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"创建人员\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入测试人员姓名\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.createPerson),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"createPerson\", $$v)},expression:\"queryInfo.createPerson\"}})],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.selectTaskList}},[_vm._v(\"查询\")])],1)],1)],1),_vm._v(\" \"),_c('el-table',{attrs:{\"data\":_vm.interfaceTestTaskList.slice((_vm.currpage - 1)*_vm.queryInfo.pageSize, _vm.currpage*_vm.queryInfo.pageSize),\"border\":\"\",\"fit\":true}},[_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"任务名称\",\"prop\":\"jobName\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"运行环境\",\"prop\":\"runEnvironment\",\"width\":\"150\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateRunEnvironment(scope.row)}},model:{value:(scope.row.runEnvironment),callback:function ($$v) {_vm.$set(scope.row, \"runEnvironment\", $$v)},expression:\"scope.row.runEnvironment\"}},_vm._l((_vm.runEnvironmentOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)]}}],null,false,261706603)}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"任务状态\",\"prop\":\"jobStatus\",\"width\":\"100\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.beanClass != 'default')?_c('el-switch',{attrs:{\"active-value\":\"1\",\"inactive-value\":\"0\"},on:{\"change\":function($event){return _vm.changeJobStatus(scope.row)}},model:{value:(scope.row.jobStatus),callback:function ($$v) {_vm.$set(scope.row, \"jobStatus\", $$v)},expression:\"scope.row.jobStatus\"}}):_vm._e()]}}],null,false,3955362618)}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"创建时间\",\"prop\":\"createTime\",\"width\":\"180\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"创建人员\",\"prop\":\"createPerson\",\"width\":\"120\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"更新时间\",\"prop\":\"updateTime\",\"width\":\"180\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"更新人员\",\"prop\":\"updatePerson\",\"width\":\"120\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"备注\",\"prop\":\"comments\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"150\",\"align\":\"center\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.showDetailDialog(scope.row)}}},[_vm._v(\"查看\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delTestTaskAndTestCase(scope.row.id)}}},[_vm._v(\"删除\")])]}}],null,false,241536508)})],1),_vm._v(\" \"),_c('el-pagination',{attrs:{\"current-page\":_vm.currpage,\"page-sizes\":[5, 10, 20, 30],\"page-size\":_vm.queryInfo.pageSize,\"layout\":\"prev, pager, next, sizes, total, jumper\",\"total\":_vm.total},on:{\"size-change\":_vm.handleSizeChange,\"current-change\":_vm.handleCurrentChange}})],1):_vm._e(),_vm._v(\" \"),(_vm.taskListIsShow)?_c('div',{staticClass:\"interface-case-table\"},[(_vm.taskListIsShow)?_c('interface-test-task-case-list',{ref:\"testTaskCase\",attrs:{\"testTaskId\":_vm.testTaskId,\"runEnvCode\":_vm.runEnvCode},on:{\"test-task-case\":_vm.changeShowCaseFlag}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1420866b\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/test/interface/InterfaceTestTaskList.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1420866b\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InterfaceTestTaskList.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceTestTaskList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InterfaceTestTaskList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1420866b\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InterfaceTestTaskList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1420866b\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/test/interface/InterfaceTestTaskList.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interface-box\">\n <el-tabs v-model=\"activeName\" @tab-click=\"handleClick\">\n <el-tab-pane label=\"概览\" name=\"statistic\"><interface-statistic></interface-statistic></el-tab-pane>\n <el-tab-pane label=\"接口信息\" name=\"info\"><interface-info v-if=\"load.info\" ref=\"interfaceInfoRef\"></interface-info></el-tab-pane>\n <el-tab-pane label=\"任务列表\" name=\"taskList\"><interface-test-task-list v-if=\"load.taskList\"></interface-test-task-list></el-tab-pane>\n <el-tab-pane label=\"报告列表\" name=\"report\"><interface-test-report v-if=\"load.report\"></interface-test-report></el-tab-pane>\n </el-tabs>\n </div>\n</template>\n\n<script>\nimport InterfaceStatistic from '@/components/test/interface/InterfaceStatistic.vue'\nimport InterfaceInfo from '@/components/test/interface/InterfaceInfo.vue'\nimport InterfaceTestReport from '@/components/test/interface/InterfaceTestReport.vue'\nimport InterfaceTestTaskList from '@/components/test/interface/InterfaceTestTaskList.vue'\nexport default {\n data () {\n return {\n activeName: 'statistic',\n load: {\n statistic: true,\n info: false,\n taskList: false,\n report: false\n },\n pageName: 'interface'\n }\n }, \n mounted () {},\n created () {},\n methods: {\n handleClick(tab, event) {\n if (this.load[tab.name] === false){\n this.load[tab.name] = true\n }\n },\n invokeInterface(){\n if(this.load.info)\n this.$refs.interfaceInfoRef.invokeInterfaceInfo()\n }\n },\n components: {\n InterfaceStatistic,\n InterfaceInfo,\n InterfaceTestReport,\n InterfaceTestTaskList\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n.interface-box {\n width: 100%;\n height: 100%;\n}\n/deep/ .el-tabs__nav-wrap {\n padding: 0 15px;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/testmanager/Interface.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interface-box\"},[_c('el-tabs',{on:{\"tab-click\":_vm.handleClick},model:{value:(_vm.activeName),callback:function ($$v) {_vm.activeName=$$v},expression:\"activeName\"}},[_c('el-tab-pane',{attrs:{\"label\":\"概览\",\"name\":\"statistic\"}},[_c('interface-statistic')],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"接口信息\",\"name\":\"info\"}},[(_vm.load.info)?_c('interface-info',{ref:\"interfaceInfoRef\"}):_vm._e()],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"任务列表\",\"name\":\"taskList\"}},[(_vm.load.taskList)?_c('interface-test-task-list'):_vm._e()],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"报告列表\",\"name\":\"report\"}},[(_vm.load.report)?_c('interface-test-report'):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-e966299e\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/testmanager/Interface.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-e966299e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Interface.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Interface.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Interface.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e966299e\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Interface.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-e966299e\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/views/testmanager/Interface.vue\n// module id = null\n// module chunks = "],"sourceRoot":""}