lepu-test-platform-web/dist/static/js/2.1b6eb0cc4b8e9c6928a2.js.map

1 line
466 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:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/babel-runtime/regenerator/index.js","webpack:///./node_modules/babel-runtime/helpers/asyncToGenerator.js","webpack:///src/components/test/function/FunctionStatistic.vue","webpack:///./src/components/test/function/FunctionStatistic.vue?0f68","webpack:///./src/components/test/function/FunctionStatistic.vue","webpack:///src/components/test/function/FunctionList.vue","webpack:///./src/components/test/function/FunctionList.vue?dea3","webpack:///./src/components/test/function/FunctionList.vue","webpack:///src/components/test/function/FunctionTestPlanListAttachment.vue","webpack:///./src/components/test/function/FunctionTestPlanListAttachment.vue?4b23","webpack:///./src/components/test/function/FunctionTestPlanListAttachment.vue","webpack:///src/components/test/function/FunctionTestPlanList.vue","webpack:///./src/components/test/function/FunctionTestPlanList.vue?a9a4","webpack:///./src/components/test/function/FunctionTestPlanList.vue","webpack:///src/components/test/function/FunctionTestReport.vue","webpack:///./src/components/test/function/FunctionTestReport.vue?2664","webpack:///./src/components/test/function/FunctionTestReport.vue","webpack:///src/components/DateTimePicker.vue","webpack:///./src/components/DateTimePicker.vue?149c","webpack:///./src/components/DateTimePicker.vue","webpack:///src/components/test/function/FunctionTestPlan.vue","webpack:///./src/components/test/function/FunctionTestPlan.vue?eeac","webpack:///./src/components/test/function/FunctionTestPlan.vue","webpack:///src/components/test/function/FunctionTestReview.vue","webpack:///./src/components/test/function/FunctionTestReview.vue?ed46","webpack:///./src/components/test/function/FunctionTestReview.vue","webpack:///src/views/testmanager/Function.vue","webpack:///./src/views/testmanager/Function.vue?09f9","webpack:///./src/views/testmanager/Function.vue","webpack:///./node_modules/regenerator-runtime/runtime-module.js"],"names":["global","undefined","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","module","runtime","regeneratorRuntime","exports","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","call","Gp","GeneratorFunctionPrototype","Generator","create","GeneratorFunction","constructor","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","arg","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","self","tryLocsList","iter","next","then","result","done","value","toString","keys","object","key","push","reverse","length","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","slice","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","i","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","Error","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","state","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","fn","obj","err","previousPromise","callInvokeWithMethodAndArg","Promise","resolve","reject","invoke","unwrapped","return","TypeError","info","pushTryEntry","locs","iteratorMethod","Function","__webpack_require__","__esModule","_promise","_promise2","default","gen","apply","arguments","step","error","FunctionStatistic","data","loading","devPersonChartByCaseNum","id","title_text","trigger","legend","grid","xAxis","yAxis","series","color","funcStatisticChartByCaseNum","funcStatisticChartByExceStatus","funcStatisticChartByTestPlan","left","top","right","bottom","containLabel","splitLine","show","axisLabel","axisTick","axisLine","fontSize","barWidth","label","position","formatter","itemStyle","normal","barBorderRadius","zlevel","barGap","colorList","mounted","_this","setTimeout","drawAllCharts","beforeCreate","created","getAllTestItemCaseNum","getAllTestPlanExecCondition","getAllDevPersonCaseNum","methods","_this2","xAxisDatas","seriesDatas","$api","userrelation","queryAllDevPersonCaseNum","res","ele","nick","caseNum","JSON","parse","stringify_default","_this3","planrelation","queryAllTestPlanExecCondition","testPlanConditions","orginYAxis1Datas","yAxis1Datas","series1Datas","series2Datas","caseCounts","splice","planName","substring","execScale","caseCount","_this4","test","queryAllTestItemCaseNum","itemName","caseNumChart","$echarts","init","document","getElementById","setOptionChart","exceStatusChart","testPlanChart","setProgressOptionChart","devPersonCaseNumChart","window","onresize","resize","e","chart","params","showLoading","text","hideLoading","setOption","dataZoom","height","xAxisIndex","start","end","title","tooltip","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","orient","function_FunctionStatistic","render","_h","$createElement","_c","_self","directives","rawName","expression","staticClass","attrs","gutter","span","_v","staticRenderFns","test_function_FunctionStatistic","normalizeComponent","ssrContext","FunctionList","publicItemId","caseSourceValue","fileType","add_value","planOptions","joinPlanForm","planId","importForm","itemId","versionId","editForm","detailForm","queryInfo","pageNum","pageSize","testMode","testCaseTitle","testCaseLevel","testCaseStatus","writePerson","frontDevelopment","serverDevelopment","testCaseList","currpage","total","importDialogVisible","addDialogVisible","editDialogVisible","detailDialogVisible","joinPlanDialogVisible","multipleSelection","caseTypeOptions","caseLevelOptions","caseStatusOptions","versionOptions","itemOptions","addForm","testCaseType","precondition","testStep","expectResult","sheetName","comments","addFormRules","required","message","min","max","joinPlanFormRules","importFormRules","watch","components","UploadFile","getItemNameList","getCaseTypeAndCaseStatusAndCaseLevel","getFunctionTestCaseList","resetAllVersionId","showImportDialog","showAddDialog","changeItemName","val","version","queryVersionObjByItemId","selectFunctionTestCaseList","uploadSuccessStartImport","fileName","operatorPerson","localStorage","getItem","importFunctionTestCaseByXmind","$notify","msg","comm","deleteFile","cancelImportDialogVisible","dict","queryAllDataDict","caseType","caseLevel","caseStatus","getPlanNameList","plan","queryAllPlanName","allPlanOptions","filter","item","status","joinTestPlanDialogVisible","cancleJoinPlanDialogVisible","joinTestPlan","_this5","$refs","joinPlanFormRef","validate","valid","joinPlanCaseList","testPlanRelation","caseId","testPlanRelations","funcTest","functionTest","caseJoinTestPlan","resetFields","updateTestCaseStatus","_this6","updateTime","Date","getTime","updateFunctionTestCaseStatus","uploadFile","cancel","importCaseFormRef","importFunctionTestCase","_this7","uploadSectionFile","batchExportFunctionTestCase","_this8","batchExportFunctionTestCaseToExcel","$common","downloadFiles","exportAllFunctionTestCase","_this9","exportWhenQueryINfo","exportAllFunctionTestCaseToExcel","code","batchDelFunctionTestCase","_this10","selectDatas","$confirm","confirmButtonText","cancelButtonText","batchDeleteFunctionTestCase","handleSelectionChange","addFunctionTestCase","_this11","addFormRef","createTime","currentUser","cancelAddDialogVisible","cancelEditDialogVisible","editFormRef","cancelDetailDialogVisible","detailFormRef","showDetailDialog","_this12","queryFunctionTestCaseById","caseData","showEditDialog","_this13","editFunctionTestCase","_this14","delFunctionTestCase","_this15","delFunctionTestCaseById","_this16","queryAllItemIdAndItemName","_this17","queryAllFunctionTestCase","count","handleSizeChange","newSize","handleCurrentChange","newpageNum","getRowKeys","row","function_FunctionList","_vm","inline","placeholder","clearable","on","change","model","callback","$$v","$set","_l","dictValue","versionName","click","ref","tooltip-effect","default-sort","prop","order","border","fit","row-key","selection-change","reserve-selection","width","align","show-overflow-tooltip","sortable","scopedSlots","_u","scope","$event","fixed","size","page-sizes","page-size","layout","size-change","current-change","visible","close-on-click-modal","update:visible","close","rules","label-width","rows","slot","disabled","upload-file-event","test_function_FunctionList","FunctionList_normalizeComponent","FunctionTestPlanListAttachment","fileList","imgIdList","divIdList","uploadFileList","fileRealNameList","defaultUploadPath","addEventListener","refreshBrowse","patseEvent","destroyed","removeEventListener","consoleAllList","console","log","deleteuploadSectionFile","deleteVirtualDom","currentImgParentsNode","firstChild","removeChild","currentFileParentsNode","bindClickEventToDel","delClass","querySelector","num","index","currentFileRealName","split","currentFatherNode","fileChange","file","judgeFileType","raw","clearAllList","addImgToImgList","imgList","middleFatherImgDiv","createElement","className","img","imgId","appendChild","attachDel","innerHTML","fileReader","FileReader","onloadend","src","readAsDataURL","addFileToDivList","divList","middleFatherFileDiv","div","divId","even","clipboardData","files","formData","FormData","append","that","getFileNameList","getFileRealNameList","function_FunctionTestPlanListAttachment","_m","hidden","staticStyle","display","action","limit","on-change","file-list","auto-upload","FunctionTestPlanList","FunctionTestPlanListAttachment_normalizeComponent","_ref","createBugDialogVisible","confirmBugDialogVisible","jiraPwdDialogVisible","planCaseList","userOptions","bugForm","jiraItem","testResult","executor","customfield_10203","customfield_10204","priority","labels","customfield_10300","assignee","summary","jiraPwdForm","jiraPwd","CreateBugParams","listPlanId","executorOptions","modeOptions","projectOptions","assigneeOptions","bugLevelOptions","priorityOptions","labelsOptions","bugTypeOptions","caseTestResultOptions","defineProperty_default","props","getAllUserInfo","getAllExecutor","getFunctionTestPlanCaseList","cancelCreateBug","uploadAttachment","bugFormRef","user","queryAllUserInfo","selectFunctionTestPlanCaseList","updateCaseTestResultByPlanIdAndCaseId","caseArray","caseTestResultList","updateParams","updateTestPlanStatus","startCreateBug","detailUpdateTestCaseStatus","asyncToGenerator_default","regenerator_default","a","_callee","jiraItemName","versionList","res1","_context","queryJiraItemByItemName","jira","getProjectByProjectName","pkey","responsiblePerson","queryTestPlanNamebyCaseId","replace","querySearchAsync","queryString","cb","assignees","results","createStateFilter","clearTimeout","timeout","Math","random","toLowerCase","indexOf","handleSelect","assigneeEmailEx","dictCode","makebug","bugObj","fields","project","versions","fixVersions","fixVersion","issuetype","component","beginToCreateBug","currentJiraPwd","getLocalStorage","chineseUser","currentJiraUser","element","bugJson","attachmentList","createBug","delLocalStorage","setLocalStorage","delCaseJoinedTestPlan","handleClose","_","testResultQueryParams","queryTestResultByPlanIdAndCaseId","backParentPage","$emit","queryAllExcutor","getPlanName","queryAllTestCaseByTestPlanId","function_FunctionTestPlanList","_s","_e","bugFormRules","fetch-suggestions","select","test_function_FunctionTestPlanList","FunctionTestPlanList_normalizeComponent","FunctionTestReport","tableIsShow","reportIsShow","ifShowQuery","planNames","planConditions","pieChart","testResults","empty","getShowQueryFlag","showQueryFlag","reportPlanId","getTestPlanExecCondition","formatTestStatus","formatExecScale","getPlanInfoByPlanId","queryTestPlanById","queryTestCaseExecConditionByPlanId","conditions","execCondition","myChart","subtext","x","textStyle","toolbox","feature","saveAsImage","radius","center","emphasis","lableLine","function_FunctionTestReport","test_function_FunctionTestReport","FunctionTestReport_normalizeComponent","DateTimePicker","datevalue","pickerOptions","disabledDate","time","now","validStartValue","transTime","clearDatepicker","components_DateTimePicker","value-format","picker-options","FunctionTestPlan","validateStartTime","rule","startTimevalue","validateEndTime","endTimevalue","toPlanListPlanId","toReportPlanId","showListFlag","showReportFlag","toshowQueryFlag","showPlanFlag","planNameOptions","director","envId","versionQueryInfo","envOptions","testPlanList","copyDialogVisible","startTime","endTime","copyForm","copyPlanId","textarea","validator","copyFormRules","planStatusOptions","getPlanList","copyFunctionTestPlan","copyFormRef","copyTestPlan","startTimepicker","endTimepicker","copyFunctionPlan","environment","copyDialogClose","changeShowListFlag","flag","changeShowReportFlag","showReprot","addPlanButton","queryAllVersion","addFunctionTestPlan","addTestPlan","editTestPlan","updateTestPlan","delFunctionTestPlan","getstartTimevalue","sonStartTimevalue","getendTimevalue","sonEndTimevalue","setItem","queryAllPlan","addDialogClose","editDialogClose","statusFormat","column","batchDelFunctionPlan","statusList","batchDeleteFunctionPlan","DateTimePicker_normalizeComponent","function_FunctionTestPlan","plan-list-event","report-event","dateTimePickerFn","FunctionTestReview","reviewStatusOptions","testReviewList","selectForm","reviewName","reviewStatus","selectDialogVisible","createPerson","getReviewStatusDict","getTestReviewList","selectTestCaseToReview","selectDialogClose","selectFormRef","selectTestReviewList","review","queryAllTestReviewInfo","addTestReview","addTestReviewInfo","showSelectCaseDialog","queryTestReviewInfoById","editTestReview","updatePerson","updateTestReviewInfo","delTestReview","deleteTestReviewInfoById","function_FunctionTestReview","current-page","username","activeName","load","statistic","list","report","handleClick","tab","event","FunctionTestPlan_normalizeComponent","FunctionTestReview_normalizeComponent","testmanager_Function","tab-click","Function_Component","Function_normalizeComponent","__webpack_exports__","g","hadRuntime","getOwnPropertyNames","oldRuntime"],"mappings":"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","file":"static/js/2.1b6eb0cc4b8e9c6928a2.js","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime.js\n// module id = SldL\n// module chunks = 2","module.exports = require(\"regenerator-runtime\");\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/regenerator/index.js\n// module id = Xxa5\n// module chunks = 2","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/asyncToGenerator.js\n// module id = exGp\n// module chunks = 2","<template>\n <div class=\"function-statistic-box\" v-loading=\"loading\">\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <div class=\"grid-content bg-purple\" id=\"funcStatisticChartByCaseNum\"></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=\"funcStatisticChartByExceStatus\"></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=\"funcStatisticChartByTestPlan\"></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=\"devPersonChartByCaseNum\"></div>\n </el-col>\n </el-row>\n </div>\n</template>\n<script>\nexport default {\n data () {\n return {\n loading: false,\n devPersonChartByCaseNum: {\n id: 'devPersonChartByCaseNum',\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: '#8DBC39',\n type: 'bar',\n data: []\n }\n },\n funcStatisticChartByCaseNum: {\n id: 'funcStatisticChartByCaseNum',\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 funcStatisticChartByExceStatus: {\n id: 'funcStatisticChartByExceStatus',\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 funcStatisticChartByTestPlan: {\n id: 'funcStatisticChartByTestPlan',\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 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 data: []\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 }, 500)\n },\n beforeCreate(){\n },\n created (){\n this.loading = true\n this.getAllTestItemCaseNum()\n this.getAllTestPlanExecCondition()\n this.getAllDevPersonCaseNum()\n },\n methods: {\n getAllDevPersonCaseNum(){\n var xAxisDatas = []\n var seriesDatas = []\n this.$api.userrelation.queryAllDevPersonCaseNum().then(res=>{\n res.data.data.forEach(ele => {\n xAxisDatas.push(ele.nick)\n seriesDatas.push(ele.caseNum)\n })\n this.devPersonChartByCaseNum.xAxis.data = JSON.parse(JSON.stringify(xAxisDatas))\n this.devPersonChartByCaseNum.series.data = JSON.parse(JSON.stringify(seriesDatas)) \n }).catch(()=>{})\n },\n getAllTestPlanExecCondition(){\n this.$api.planrelation.queryAllTestPlanExecCondition().then(res=>{\n var testPlanConditions = res.data.data\n var orginYAxis1Datas = []\n var yAxis1Datas = []\n var series1Datas = []\n var series2Datas = []\n var caseCounts = []\n if(testPlanConditions.length > 5)\n testPlanConditions = testPlanConditions.splice(0, 5)\n testPlanConditions.forEach(ele=>{\n let planName = ele.planName\n orginYAxis1Datas.push(planName)\n if(planName.length > 15){\n planName = planName.substring(0, 5) + '...' + planName.substring(planName.length - 9)\n }\n yAxis1Datas.push(planName)\n series1Datas.push(ele.execScale)\n caseCounts.push(ele.caseCount)\n series2Datas.push(100)\n })\n this.funcStatisticChartByTestPlan.yAxis.data = JSON.parse(JSON.stringify(yAxis1Datas))\n this.funcStatisticChartByTestPlan.series[0].data = JSON.parse(JSON.stringify(series1Datas))\n this.funcStatisticChartByTestPlan.series[1].data = JSON.parse(JSON.stringify(series2Datas))\n this.funcStatisticChartByExceStatus.xAxis.data = orginYAxis1Datas\n this.funcStatisticChartByExceStatus.series.data = caseCounts\n }).catch(()=>{})\n },\n getAllTestItemCaseNum(){\n var xAxisDatas = []\n var seriesDatas = []\n this.$api.test.queryAllTestItemCaseNum().then(res=>{\n var functionTests = res.data.data\n functionTests.forEach(ele => {\n xAxisDatas.push(ele.itemName)\n seriesDatas.push(ele.caseNum)\n })\n this.funcStatisticChartByCaseNum.xAxis.data = JSON.parse(JSON.stringify(xAxisDatas))\n this.funcStatisticChartByCaseNum.series.data = JSON.parse(JSON.stringify(seriesDatas)) \n }).catch(()=>{})\n },\n drawAllCharts(){\n try{\n var caseNumChart = this.$echarts.init(document.getElementById(this.funcStatisticChartByCaseNum.id))\n this.setOptionChart(caseNumChart, this.funcStatisticChartByCaseNum)\n var exceStatusChart = this.$echarts.init(document.getElementById(this.funcStatisticChartByExceStatus.id))\n this.setOptionChart(exceStatusChart, this.funcStatisticChartByExceStatus)\n var testPlanChart = this.$echarts.init(document.getElementById(this.funcStatisticChartByTestPlan.id))\n this.setProgressOptionChart(testPlanChart, this.funcStatisticChartByTestPlan)\n var devPersonCaseNumChart = this.$echarts.init(document.getElementById(this.devPersonChartByCaseNum.id))\n this.setOptionChart(devPersonCaseNumChart, this.devPersonChartByCaseNum)\n window.onresize = function(){\n caseNumChart.resize()\n exceStatusChart.resize()\n testPlanChart.resize()\n devPersonCaseNumChart.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.function-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/function/FunctionStatistic.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:\"function-statistic-box\"},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticClass:\"grid-content bg-purple\",attrs:{\"id\":\"funcStatisticChartByCaseNum\"}})])],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticClass:\"grid-content bg-purple\",attrs:{\"id\":\"funcStatisticChartByExceStatus\"}})])],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticClass:\"grid-content bg-purple\",attrs:{\"id\":\"funcStatisticChartByTestPlan\"}})])],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('div',{staticClass:\"grid-content bg-purple\",attrs:{\"id\":\"devPersonChartByCaseNum\"}})])],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-75dbade1\",\"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/function/FunctionStatistic.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-75dbade1\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FunctionStatistic.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!./FunctionStatistic.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FunctionStatistic.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-75dbade1\\\",\\\"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!./FunctionStatistic.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-75dbade1\"\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/function/FunctionStatistic.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"function-list-box\">\n <el-form :inline=\"true\" class=\"demo-form-inline\">\n <el-form-item label=\"项目名称\">\n <el-select v-model=\"queryInfo.itemId\" placeholder=\"请选择\" @change=\"changeItemName\" 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.testMode\"></el-input>\n </el-form-item>\n <el-form-item label=\"用例标题\">\n <el-input placeholder=\"请输入用例标题\" clearable class=\"input-with-select\" v-model=\"queryInfo.testCaseTitle\"></el-input>\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-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-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-select v-model=\"queryInfo.versionId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.id\"\n :label=\"item.versionName\"\n :value=\"item.id\"\n > \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.frontDevelopment\"></el-input>\n </el-form-item>\n <el-form-item label=\"后端开发\">\n <el-input placeholder=\"请输入后端开发人员\" clearable class=\"input-with-select\" v-model=\"queryInfo.serverDevelopment\"></el-input>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"selectFunctionTestCaseList\">查询</el-button>\n </el-form-item>\n </el-form>\n <el-row class=\"add_button\">\n <el-col>\n <el-button type=\"primary\" @click=\"showAddDialog\">添加</el-button>\n <el-button type=\"primary\" @click=\"showImportDialog\">导入</el-button>\n <el-button type=\"primary\" @click=\"batchExportFunctionTestCase\">批量导出</el-button>\n <el-button type=\"primary\" @click=\"exportAllFunctionTestCase\">全部导出</el-button>\n <el-button type=\"primary\" @click=\"batchDelFunctionTestCase\">批量删除</el-button>\n <el-button type=\"primary\" @click=\"joinTestPlanDialogVisible\">加入计划</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 :default-sort = \"{prop: 'createTime', order: 'descending'}\" \n border \n :fit=\"true\"\n :row-key=\"getRowKeys\"\n @selection-change=\"handleSelectionChange\">\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\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"项目名称\" prop=\"itemId\" width=\"150\" show-overflow-tooltip sortable></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"模块名称\" prop=\"testMode\" width=\"150\" show-overflow-tooltip sortable></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"用例类型\" prop=\"testCaseType\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"等级\" prop=\"testCaseLevel\" sortable></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"用例状态\" prop=\"testCaseStatus\" width=\"120\">\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=\"testCaseTitle\" width=\"200\" show-overflow-tooltip sortable></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"前置条件\" prop=\"precondition\" width=\"200\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"测试步骤\" prop=\"testStep\" 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=\"writePerson\"></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=\"updateTime\" width=\"160\"></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"前端开发\" prop=\"frontDevelopment\" width=\"160\" show-overflow-tooltip></el-table-column>\n <el-table-column :reserve-selection=\"true\" label=\"后端开发\" prop=\"serverDevelopment\" width=\"160\" show-overflow-tooltip></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=\"180\" 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=\"showEditDialog(scope.row.id)\">编辑</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"delFunctionTestCase(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 <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 <el-select v-model=\"addForm.itemId\" placeholder=\"请选择\" @change=\"changeItemName\">\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"版本号\" prop=\"versionId\">\n <el-select v-model=\"addForm.versionId\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.id\"\n :label=\"item.versionName\"\n :value=\"item.id\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"用例类型\" prop=\"testCaseType\">\n <el-select v-model=\"addForm.testCaseType\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in caseTypeOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\">\n </el-option>\n </el-select>\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=\"testCaseLevel\">\n <el-select v-model=\"addForm.testCaseLevel\" placeholder=\"请选择\">\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"用例状态\" prop=\"testCaseStatus\">\n <el-select v-model=\"addForm.testCaseStatus\" placeholder=\"请选择\">\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"测试模块\" prop=\"testMode\">\n <el-input v-model=\"addForm.testMode\" 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=\"testCaseTitle\">\n <el-input v-model=\"addForm.testCaseTitle\" 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=\"precondition\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"addForm.precondition\" 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=\"testStep\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"addForm.testStep\" 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=\"expectResult\">\n <el-input type=\"textarea\" :rows=\"5\" 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=\"12\">\n <el-form-item label=\"前端开发\" prop=\"frontDevelopment\">\n <el-input v-model=\"addForm.frontDevelopment\" placeholder=\"移动端必须加前缀标识Android/Ios\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"后端开发\" prop=\"serverDevelopment\">\n <el-input v-model=\"addForm.serverDevelopment\" 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=\"addFunctionTestCase\">确 定</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 <el-select v-model=\"editForm.itemId\" placeholder=\"请选择\" @change=\"changeItemName\">\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"版本号\" prop=\"versionId\">\n <el-select v-model=\"editForm.versionId\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.id\"\n :label=\"item.versionName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"用例类型\" prop=\"testCaseType\">\n <el-select v-model=\"editForm.testCaseType\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in caseTypeOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\">\n </el-option>\n </el-select>\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=\"testCaseLevel\">\n <el-select v-model=\"editForm.testCaseLevel\" placeholder=\"请选择\">\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"用例状态\" prop=\"testCaseStatus\">\n <el-select v-model=\"editForm.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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"测试模块\" prop=\"testMode\">\n <el-input v-model=\"editForm.testMode\" 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=\"testCaseTitle\">\n <el-input v-model=\"editForm.testCaseTitle\" 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=\"precondition\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"editForm.precondition\" 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=\"testStep\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"editForm.testStep\" 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=\"expectResult\">\n <el-input type=\"textarea\" :rows=\"5\" 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=\"writePerson\">\n <el-input v-model=\"editForm.writePerson\" placeholder=\"请输入编写人员\"></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=\"前端开发\" prop=\"frontDevelopment\">\n <el-input v-model=\"editForm.frontDevelopment\" placeholder=\"移动端必须加前缀标识Android/Ios\"></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"后端开发\" prop=\"serverDevelopment\">\n <el-input v-model=\"editForm.serverDevelopment\" 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=\"editFunctionTestCase\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"查看用例\"\n :visible.sync=\"detailDialogVisible\"\n :close-on-click-modal= 'false'\n @close=\"cancelDetailDialogVisible\"\n width=\"60%\">\n <div class=\"case-info-form\">\n <el-form :model=\"detailForm\" ref=\"detailFormRef\" label-width=\"100px\">\n <el-row :gutter=\"20\">\n <el-col :span=\"8\">\n <el-form-item label=\"项目名称\" prop=\"itemId\">\n <el-select v-model=\"detailForm.itemId\" disabled>\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"版本号\" prop=\"versionId\">\n <el-select v-model=\"detailForm.versionId\" disabled>\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.id\"\n :label=\"item.versionName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"用例类型\" prop=\"testCaseType\">\n <el-select v-model=\"detailForm.testCaseType\" disabled>\n <el-option\n v-for=\"item in caseTypeOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\">\n </el-option>\n </el-select>\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=\"testCaseLevel\">\n <el-select v-model=\"detailForm.testCaseLevel\" disabled>\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"用例状态\" prop=\"testCaseStatus\">\n <el-select v-model=\"detailForm.testCaseStatus\" disabled>\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-col>\n <el-col :span=\"8\">\n <el-form-item label=\"测试模块\" prop=\"testMode\">\n <el-input v-model=\"detailForm.testMode\" 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=\"用例标题\" prop=\"testCaseTitle\">\n <el-input v-model=\"detailForm.testCaseTitle\" 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=\"前置条件\" prop=\"precondition\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"detailForm.precondition\" 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=\"测试步骤\" prop=\"testStep\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"detailForm.testStep\" 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=\"预期结果\" prop=\"expectResult\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"detailForm.expectResult\" 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=\"编写者\" prop=\"writePerson\">\n <el-input v-model=\"detailForm.writePerson\" 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=\"前端开发\" prop=\"frontDevelopment\">\n <el-input v-model=\"detailForm.frontDevelopment\" disabled></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"12\">\n <el-form-item label=\"后端开发\" prop=\"serverDevelopment\">\n <el-input v-model=\"detailForm.serverDevelopment\" 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=\"备注\" prop=\"comments\">\n <el-input type=\"textarea\" :rows=\"5\" v-model=\"detailForm.comments\" disabled></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=\"cancelDetailDialogVisible\">取 消</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"导入用例\"\n :visible.sync=\"importDialogVisible\"\n @close=\"cancelImportDialogVisible\"\n width=\"30%\">\n <el-form :model=\"importForm\" :rules=\"importFormRules\" ref=\"importCaseFormRef\" label-width=\"100px\">\n <el-row :gutter=\"20\">\n <el-col :span=\"12\">\n <el-form-item label=\"项目名称\" prop=\"itemId\">\n <el-select v-model=\"importForm.itemId\" placeholder=\"请选择\" @change=\"changeItemName\">\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-col>\n <el-col :span=\"12\">\n <el-form-item label=\"版本号\" prop=\"versionId\">\n <el-select v-model=\"importForm.versionId\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.id\"\n :label=\"item.versionName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n </el-col>\n <el-col :span=\"18\">\n <upload-file :fileType=\"fileType\" ref=\"uploadFile\" @upload-file-event=\"uploadSuccessStartImport\"></upload-file>\n </el-col>\n </el-row>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"cancelImportDialogVisible\">取 消</el-button>\n <el-button type=\"primary\" @click=\"importFunctionTestCase\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog title=\"加入计划\" :visible.sync=\"joinPlanDialogVisible\" @close=\"cancleJoinPlanDialogVisible\" width=\"30%\">\n <el-form :model=\"joinPlanForm\" :rules=\"joinPlanFormRules\" label-width=\"100px\" class=\"demo-form-inline\" ref=\"joinPlanFormRef\">\n <el-form-item label=\"计划名称\" prop=\"planId\">\n <el-select v-model=\"joinPlanForm.planId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in planOptions\"\n :key=\"item.id\"\n :label=\"item.planName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"用例来源\">\n <template>\n <el-radio v-model=\"caseSourceValue\" label=\"1\">当前选择</el-radio>\n <el-radio v-model=\"caseSourceValue\" label=\"2\">当前所有</el-radio>\n </template>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"cancleJoinPlanDialogVisible\">取 消</el-button>\n <el-button type=\"primary\" @click=\"joinTestPlan\">确 定</el-button>\n </span>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport UploadFile from '../../UploadFile.vue'\nexport default {\n data () {\n return {\n loading: false,\n publicItemId: '',\n caseSourceValue: '1',\n fileType: ['xmind'],\n add_value: false,\n planOptions: [],\n joinPlanForm: {\n planId: ''\n },\n importForm: {\n itemId: '',\n versionId: ''\n },\n editForm: {},\n detailForm: {},\n queryInfo: {\n pageNum: 1,\n pageSize: 10,\n itemId: '',\n testMode: '',\n testCaseTitle: '',\n testCaseLevel: '',\n testCaseStatus: '',\n writePerson: '',\n versionId: '',\n frontDevelopment: '',\n serverDevelopment: ''\n },\n testCaseList: [],\n currpage: 1,\n total: 0,\n importDialogVisible: false,\n addDialogVisible: false,\n editDialogVisible: false,\n detailDialogVisible: false,\n joinPlanDialogVisible: false,\n multipleSelection: [],\n caseTypeOptions: [],\n caseLevelOptions: [],\n caseStatusOptions: [],\n versionOptions:[],\n itemOptions: [],\n addForm: {\n itemId: '',\n testMode: '',\n testCaseType: '',\n testCaseLevel: '',\n testCaseTitle: '',\n testCaseStatus: '',\n writePerson: '',\n precondition: '',\n testStep: '',\n expectResult: '',\n sheetName: '',\n comments: '',\n versionId: '',\n frontDevelopment: '',\n serverDevelopment: ''\n },\n addFormRules: {\n itemId: [\n { required: true, message: '请选择测试项目', trigger: 'blur' }\n ],\n versionId: [\n { required: true, message: '请选择版本号', trigger: 'blur' }\n ],\n testMode: [\n { required: true, message: '请输入测试模块名称', trigger: 'blur' },\n { min: 1, max: 255, message: '长度在 1 到 255 个字符', trigger: 'blur' }\n ],\n testCaseType: [\n { required: true, message: '请选择用例类型', trigger: 'blur' },\n ],\n testCaseLevel: [\n { required: true, message: '请选择用例等级', trigger: 'blur' },\n ],\n testCaseStatus: [\n { required: true, message: '请选择用例等级', trigger: 'blur' },\n ],\n testCaseTitle: [\n { required: true, message: '请输入用例标题', trigger: 'blur' },\n { min: 1, max: 255, message: '长度在 1 到 255 个字符', trigger: 'blur' }\n ],\n precondition: [\n { required: false, message: '请输入前置条件', trigger: 'blur'}\n ],\n testStep: [\n { required: false, message: '请输入测试步骤', trigger: 'blur' }\n ],\n expectResult: [\n { required: false, message: '请输入预期结果', trigger: 'blur' }\n ],\n writePerson: [\n { required: false, message: '请输入编写者姓名', trigger: 'blur' }\n ],\n comments: [\n { required: false, message: '请输入备注信息', trigger: 'blur' }\n ],\n frontDevelopment: [\n { required: false, message: '请输入前端开发人员', trigger: 'blur' }\n ],\n serverDevelopment: [\n { required: false, message: '请输入后端开发人员', trigger: 'blur' }\n ]\n },\n joinPlanFormRules: {\n planId: [\n { required: true, message: '请选择测试计划', trigger: 'blur'}\n ]\n },\n importFormRules: {\n itemId: [\n { required: true, message: '请选择测试项目', trigger: 'blur' }\n ],\n versionId: [\n { required: true, message: '请选择版本号', trigger: 'blur' }\n ]\n }\n }\n },\n watch: {\n },\n components: {\n UploadFile\n },\n mounted () {\n this.getItemNameList()\n this.getCaseTypeAndCaseStatusAndCaseLevel()\n },\n created () {\n this.getFunctionTestCaseList()\n },\n methods: {\n resetAllVersionId(){\n this.queryInfo.versionId = ''\n this.importForm.versionId = ''\n this.addForm.versionId = ''\n this.versionOptions = []\n },\n showImportDialog(){\n this.versionOptions = []\n this.importDialogVisible = true\n },\n showAddDialog(){\n this.versionOptions = []\n this.addDialogVisible = true\n },\n changeItemName(val){\n if(val){\n this.$api.version.queryVersionObjByItemId(val).then(res=>{\n this.resetAllVersionId()\n this.versionOptions = res.data.data\n }).catch(()=>{})\n }else{\n this.versionOptions = []\n }\n },\n selectFunctionTestCaseList(){\n this.queryInfo.pageNum = 1\n this.total = 0\n this.getFunctionTestCaseList()\n },\n uploadSuccessStartImport(value){\n var obj = {\n fileName: value,\n operatorPerson: JSON.parse(localStorage.getItem(\"userInfo\")).nick,\n versionId: this.importForm.versionId\n }\n this.$api.test.importFunctionTestCaseByXmind(JSON.stringify(obj)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n this.getFunctionTestCaseList()\n this.$api.comm.deleteFile(value)\n }).catch(()=>{\n this.loading = false\n })\n this.cancelImportDialogVisible()\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 }).catch(()=>{})\n },\n getPlanNameList() {\n this.$api.plan.queryAllPlanName()\n .then((res) => {\n var allPlanOptions = res.data.data\n this.planOptions = allPlanOptions.filter(item => (item.status != '2'))\n }).catch(()=>{})\n },\n joinTestPlanDialogVisible(){\n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请勾选加入计划的用例'\n })\n return\n }else{\n this.getPlanNameList()\n this.joinPlanDialogVisible = true\n }\n },\n cancleJoinPlanDialogVisible(){\n this.joinPlanDialogVisible = false\n },\n joinTestPlan(){\n this.$refs.joinPlanFormRef.validate(valid => {\n if (!valid) return\n let obj = {}\n if(this.caseSourceValue == '1'){\n var selectedCases = this.multipleSelection\n var joinPlanCaseList = []\n selectedCases.forEach(item=>{\n var testPlanRelation = {}\n testPlanRelation.caseId = item.id\n testPlanRelation.planId = this.joinPlanForm.planId\n joinPlanCaseList.push(testPlanRelation)\n })\n obj = {\n caseSourceValue: this.caseSourceValue,\n testPlanRelations: joinPlanCaseList\n }\n }else{\n var funcTest = {\n pageNum: '',\n pageSize: '',\n testMode: this.queryInfo.testMode,\n testCaseTitle: this.queryInfo.testCaseTitle,\n itemId: this.queryInfo.itemId,\n testCaseLevel: this.queryInfo.testCaseLevel,\n testCaseStatus: this.queryInfo.testCaseStatus,\n writePerson: this.queryInfo.writePerson,\n versionId: this.queryInfo.versionId \n }\n obj = {\n planId: this.joinPlanForm.planId,\n caseSourceValue: this.caseSourceValue,\n functionTest: funcTest\n }\n }\n this.loading = true\n this.joinPlanDialogVisible = false\n this.$api.planrelation.caseJoinTestPlan(JSON.stringify(obj)).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n this.$refs.joinPlanFormRef.resetFields()\n }).catch(()=>{\n this.loading = false\n })\n })\n },\n updateTestCaseStatus(val){\n var obj = val;\n obj.updateTime = new Date().getTime()\n this.$api.test.updateFunctionTestCaseStatus(obj).then(res=>{\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.selectFunctionTestCaseList()\n }).catch(()=>{})\n },\n cancelImportDialogVisible(){\n this.importDialogVisible = false\n this.$refs.uploadFile.cancel()\n this.$refs.importCaseFormRef.resetFields()\n this.resetAllVersionId()\n },\n importFunctionTestCase(){\n this.$refs.importCaseFormRef.validate(valid => {\n if (!valid) return\n this.$refs.uploadFile.uploadSectionFile()\n })\n },\n batchExportFunctionTestCase(){\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.batchExportFunctionTestCaseToExcel(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 exportAllFunctionTestCase(){\n this.loading = true\n var exportWhenQueryINfo = this.queryInfo\n exportWhenQueryINfo.pageNum = 0\n this.$api.test.exportAllFunctionTestCaseToExcel(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 batchDelFunctionTestCase(){\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.batchDeleteFunctionTestCase(JSON.stringify(selectDatas)).then(res => {\n this.loading = false\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.selectFunctionTestCaseList()\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 addFunctionTestCase () {\n this.$refs.addFormRef.validate(valid => {\n if (!valid) return\n this.addForm.createTime = new Date().getTime()\n var currentUser = JSON.parse(localStorage.getItem('userInfo')).nick\n this.addForm.writePerson = this.addForm.writePerson == ''?currentUser:this.addForm.writePerson\n this.addForm.sheetName = this.addForm.testMode\n this.$api.test.addFunctionTestCase(JSON.stringify(this.addForm)).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\"\n })\n this.addDialogVisible = false\n this.selectFunctionTestCaseList()\n this.$refs.addFormRef.resetFields()\n this.loading = false\n }).catch(()=>{\n this.loading = false\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 cancelDetailDialogVisible(){\n this.detailDialogVisible = false\n this.$refs.detailFormRef.resetFields()\n },\n showDetailDialog(id){\n this.loading = true\n this.$api.test.queryFunctionTestCaseById(id).then(res =>{\n var caseData = res.data.data\n this.detailForm = caseData\n this.$api.version.queryVersionObjByItemId(caseData.itemId).then(res => {\n this.versionOptions = res.data.data\n this.loading = false\n this.detailDialogVisible = true\n })\n }).catch(()=>{\n this.loading = false\n })\n },\n showEditDialog(id) {\n this.loading = true\n this.$api.test.queryFunctionTestCaseById(id).then(res => {\n var caseData = res.data.data\n this.editForm = caseData\n this.$api.version.queryVersionObjByItemId(caseData.itemId).then(res => {\n this.versionOptions = res.data.data\n this.loading = false\n this.editDialogVisible = true\n })\n }).catch(()=>{\n this.loading = false\n })\n },\n editFunctionTestCase () {\n this.$refs.editFormRef.validate(valid => {\n if (!valid) return\n this.editForm.updateTime = new Date().getTime()\n this.$api.test.editFunctionTestCase(JSON.stringify(this.editForm)).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n });\n this.editDialogVisible = false\n this.selectFunctionTestCaseList()\n }).catch(()=>{\n }) \n })\n },\n delFunctionTestCase (id) {\n this.$confirm('确定删除吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.$api.test.delFunctionTestCaseById(id).then(res => {\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.loading = false\n this.selectFunctionTestCaseList()\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {\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 getFunctionTestCaseList () {\n this.loading = true\n this.$api.test.queryAllFunctionTestCase(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.getFunctionTestCaseList()\n },\n handleCurrentChange (newpageNum) {\n this.queryInfo.pageNum = newpageNum\n this.getFunctionTestCaseList()\n },\n getRowKeys(row){\n return row.id\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n.function-list-box {\n padding: 10px 25px;\n}\n.el-table {\n margin-top: 23px;\n margin-bottom: 20px;\n}\n.el-pagination {\n margin-bottom: 20px;\n}\n/deep/ .case-info-form .el-select {\n width: 100%;\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/deep/ .color-noPassed {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: red !important;\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/deep/ .color-discard {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: #ccc !important;\n }\n }\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/function/FunctionList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"function-list-box\"},[_c('el-form',{staticClass:\"demo-form-inline\",attrs:{\"inline\":true}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":_vm.changeItemName},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.testMode),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testMode\", $$v)},expression:\"queryInfo.testMode\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"用例标题\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入用例标题\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.testCaseTitle),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testCaseTitle\", $$v)},expression:\"queryInfo.testCaseTitle\"}})],1),_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-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._v(\" \"),_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._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"用例版本\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.versionId),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"versionId\", $$v)},expression:\"queryInfo.versionId\"}},_vm._l((_vm.versionOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.versionName,\"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.frontDevelopment),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"frontDevelopment\", $$v)},expression:\"queryInfo.frontDevelopment\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"后端开发\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入后端开发人员\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.serverDevelopment),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"serverDevelopment\", $$v)},expression:\"queryInfo.serverDevelopment\"}})],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.selectFunctionTestCaseList}},[_vm._v(\"查询\")])],1)],1),_vm._v(\" \"),_c('el-row',{staticClass:\"add_button\"},[_c('el-col',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.showAddDialog}},[_vm._v(\"添加\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.showImportDialog}},[_vm._v(\"导入\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.batchExportFunctionTestCase}},[_vm._v(\"批量导出\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.exportAllFunctionTestCase}},[_vm._v(\"全部导出\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.batchDelFunctionTestCase}},[_vm._v(\"批量删除\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.joinTestPlanDialogVisible}},[_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),\"default-sort\":{prop: 'createTime', order: 'descending'},\"border\":\"\",\"fit\":true,\"row-key\":_vm.getRowKeys},on:{\"selection-change\":_vm.handleSelectionChange}},[_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\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"项目名称\",\"prop\":\"itemId\",\"width\":\"150\",\"show-overflow-tooltip\":\"\",\"sortable\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"模块名称\",\"prop\":\"testMode\",\"width\":\"150\",\"show-overflow-tooltip\":\"\",\"sortable\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"用例类型\",\"prop\":\"testCaseType\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"等级\",\"prop\":\"testCaseLevel\",\"sortable\":\"\"}}),_vm._v(\" \"),_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)]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"用例标题\",\"prop\":\"testCaseTitle\",\"width\":\"200\",\"show-overflow-tooltip\":\"\",\"sortable\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"前置条件\",\"prop\":\"precondition\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"测试步骤\",\"prop\":\"testStep\",\"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(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"编写者\",\"prop\":\"writePerson\"}}),_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\":\"updateTime\",\"width\":\"160\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"前端开发\",\"prop\":\"frontDevelopment\",\"width\":\"160\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"reserve-selection\":true,\"label\":\"后端开发\",\"prop\":\"serverDevelopment\",\"width\":\"160\",\"show-overflow-tooltip\":\"\"}}),_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\":\"180\",\"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.showEditDialog(scope.row.id)}}},[_vm._v(\"编辑\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delFunctionTestCase(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.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('el-select',{attrs:{\"placeholder\":\"请选择\"},on:{\"change\":_vm.changeItemName},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\":\"versionId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.addForm.versionId),callback:function ($$v) {_vm.$set(_vm.addForm, \"versionId\", $$v)},expression:\"addForm.versionId\"}},_vm._l((_vm.versionOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.versionName,\"value\":item.id}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例类型\",\"prop\":\"testCaseType\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.addForm.testCaseType),callback:function ($$v) {_vm.$set(_vm.addForm, \"testCaseType\", $$v)},expression:\"addForm.testCaseType\"}},_vm._l((_vm.caseTypeOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例等级\",\"prop\":\"testCaseLevel\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.addForm.testCaseLevel),callback:function ($$v) {_vm.$set(_vm.addForm, \"testCaseLevel\", $$v)},expression:\"addForm.testCaseLevel\"}},_vm._l((_vm.caseLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例状态\",\"prop\":\"testCaseStatus\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.addForm.testCaseStatus),callback:function ($$v) {_vm.$set(_vm.addForm, \"testCaseStatus\", $$v)},expression:\"addForm.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"测试模块\",\"prop\":\"testMode\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入测试模块名称\"},model:{value:(_vm.addForm.testMode),callback:function ($$v) {_vm.$set(_vm.addForm, \"testMode\", $$v)},expression:\"addForm.testMode\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"用例标题\",\"prop\":\"testCaseTitle\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入用例标题\"},model:{value:(_vm.addForm.testCaseTitle),callback:function ($$v) {_vm.$set(_vm.addForm, \"testCaseTitle\", $$v)},expression:\"addForm.testCaseTitle\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"前置条件\",\"prop\":\"precondition\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入前置条件\"},model:{value:(_vm.addForm.precondition),callback:function ($$v) {_vm.$set(_vm.addForm, \"precondition\", $$v)},expression:\"addForm.precondition\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"测试步骤\",\"prop\":\"testStep\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入测试步骤\"},model:{value:(_vm.addForm.testStep),callback:function ($$v) {_vm.$set(_vm.addForm, \"testStep\", $$v)},expression:\"addForm.testStep\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"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\":12}},[_c('el-form-item',{attrs:{\"label\":\"前端开发\",\"prop\":\"frontDevelopment\"}},[_c('el-input',{attrs:{\"placeholder\":\"移动端必须加前缀标识Android/Ios\"},model:{value:(_vm.addForm.frontDevelopment),callback:function ($$v) {_vm.$set(_vm.addForm, \"frontDevelopment\", $$v)},expression:\"addForm.frontDevelopment\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"后端开发\",\"prop\":\"serverDevelopment\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入后端开发人员\"},model:{value:(_vm.addForm.serverDevelopment),callback:function ($$v) {_vm.$set(_vm.addForm, \"serverDevelopment\", $$v)},expression:\"addForm.serverDevelopment\"}})],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.addFunctionTestCase}},[_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('el-select',{attrs:{\"placeholder\":\"请选择\"},on:{\"change\":_vm.changeItemName},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\":\"versionId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.versionId),callback:function ($$v) {_vm.$set(_vm.editForm, \"versionId\", $$v)},expression:\"editForm.versionId\"}},_vm._l((_vm.versionOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.versionName,\"value\":item.id+''}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例类型\",\"prop\":\"testCaseType\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.testCaseType),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseType\", $$v)},expression:\"editForm.testCaseType\"}},_vm._l((_vm.caseTypeOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例等级\",\"prop\":\"testCaseLevel\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.testCaseLevel),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseLevel\", $$v)},expression:\"editForm.testCaseLevel\"}},_vm._l((_vm.caseLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例状态\",\"prop\":\"testCaseStatus\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.editForm.testCaseStatus),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseStatus\", $$v)},expression:\"editForm.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"测试模块\",\"prop\":\"testMode\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入测试模块名称\"},model:{value:(_vm.editForm.testMode),callback:function ($$v) {_vm.$set(_vm.editForm, \"testMode\", $$v)},expression:\"editForm.testMode\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"用例标题\",\"prop\":\"testCaseTitle\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入用例标题\"},model:{value:(_vm.editForm.testCaseTitle),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseTitle\", $$v)},expression:\"editForm.testCaseTitle\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"前置条件\",\"prop\":\"precondition\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入前置条件\"},model:{value:(_vm.editForm.precondition),callback:function ($$v) {_vm.$set(_vm.editForm, \"precondition\", $$v)},expression:\"editForm.precondition\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"测试步骤\",\"prop\":\"testStep\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入测试步骤\"},model:{value:(_vm.editForm.testStep),callback:function ($$v) {_vm.$set(_vm.editForm, \"testStep\", $$v)},expression:\"editForm.testStep\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"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\":\"writePerson\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入编写人员\"},model:{value:(_vm.editForm.writePerson),callback:function ($$v) {_vm.$set(_vm.editForm, \"writePerson\", $$v)},expression:\"editForm.writePerson\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"前端开发\",\"prop\":\"frontDevelopment\"}},[_c('el-input',{attrs:{\"placeholder\":\"移动端必须加前缀标识Android/Ios\"},model:{value:(_vm.editForm.frontDevelopment),callback:function ($$v) {_vm.$set(_vm.editForm, \"frontDevelopment\", $$v)},expression:\"editForm.frontDevelopment\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"后端开发\",\"prop\":\"serverDevelopment\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入后端开发人员\"},model:{value:(_vm.editForm.serverDevelopment),callback:function ($$v) {_vm.$set(_vm.editForm, \"serverDevelopment\", $$v)},expression:\"editForm.serverDevelopment\"}})],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.editFunctionTestCase}},[_vm._v(\"确 定\")])],1)]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"查看用例\",\"visible\":_vm.detailDialogVisible,\"close-on-click-modal\":false,\"width\":\"60%\"},on:{\"update:visible\":function($event){_vm.detailDialogVisible=$event},\"close\":_vm.cancelDetailDialogVisible}},[_c('div',{staticClass:\"case-info-form\"},[_c('el-form',{ref:\"detailFormRef\",attrs:{\"model\":_vm.detailForm,\"label-width\":\"100px\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\"}},[_c('el-select',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.itemId),callback:function ($$v) {_vm.$set(_vm.detailForm, \"itemId\", $$v)},expression:\"detailForm.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\":\"versionId\"}},[_c('el-select',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.versionId),callback:function ($$v) {_vm.$set(_vm.detailForm, \"versionId\", $$v)},expression:\"detailForm.versionId\"}},_vm._l((_vm.versionOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.versionName,\"value\":item.id+''}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例类型\",\"prop\":\"testCaseType\"}},[_c('el-select',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.testCaseType),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseType\", $$v)},expression:\"detailForm.testCaseType\"}},_vm._l((_vm.caseTypeOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例等级\",\"prop\":\"testCaseLevel\"}},[_c('el-select',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.testCaseLevel),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseLevel\", $$v)},expression:\"detailForm.testCaseLevel\"}},_vm._l((_vm.caseLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"用例状态\",\"prop\":\"testCaseStatus\"}},[_c('el-select',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.testCaseStatus),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseStatus\", $$v)},expression:\"detailForm.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"测试模块\",\"prop\":\"testMode\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.testMode),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testMode\", $$v)},expression:\"detailForm.testMode\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"用例标题\",\"prop\":\"testCaseTitle\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.testCaseTitle),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseTitle\", $$v)},expression:\"detailForm.testCaseTitle\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"前置条件\",\"prop\":\"precondition\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"disabled\":\"\"},model:{value:(_vm.detailForm.precondition),callback:function ($$v) {_vm.$set(_vm.detailForm, \"precondition\", $$v)},expression:\"detailForm.precondition\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"测试步骤\",\"prop\":\"testStep\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"disabled\":\"\"},model:{value:(_vm.detailForm.testStep),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testStep\", $$v)},expression:\"detailForm.testStep\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"disabled\":\"\"},model:{value:(_vm.detailForm.expectResult),callback:function ($$v) {_vm.$set(_vm.detailForm, \"expectResult\", $$v)},expression:\"detailForm.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\":\"writePerson\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.writePerson),callback:function ($$v) {_vm.$set(_vm.detailForm, \"writePerson\", $$v)},expression:\"detailForm.writePerson\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"前端开发\",\"prop\":\"frontDevelopment\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.frontDevelopment),callback:function ($$v) {_vm.$set(_vm.detailForm, \"frontDevelopment\", $$v)},expression:\"detailForm.frontDevelopment\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"后端开发\",\"prop\":\"serverDevelopment\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.serverDevelopment),callback:function ($$v) {_vm.$set(_vm.detailForm, \"serverDevelopment\", $$v)},expression:\"detailForm.serverDevelopment\"}})],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,\"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(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cancelDetailDialogVisible}},[_vm._v(\"取 消\")])],1)]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"导入用例\",\"visible\":_vm.importDialogVisible,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.importDialogVisible=$event},\"close\":_vm.cancelImportDialogVisible}},[_c('el-form',{ref:\"importCaseFormRef\",attrs:{\"model\":_vm.importForm,\"rules\":_vm.importFormRules,\"label-width\":\"100px\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":12}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},on:{\"change\":_vm.changeItemName},model:{value:(_vm.importForm.itemId),callback:function ($$v) {_vm.$set(_vm.importForm, \"itemId\", $$v)},expression:\"importForm.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\":12}},[_c('el-form-item',{attrs:{\"label\":\"版本号\",\"prop\":\"versionId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.importForm.versionId),callback:function ($$v) {_vm.$set(_vm.importForm, \"versionId\", $$v)},expression:\"importForm.versionId\"}},_vm._l((_vm.versionOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.versionName,\"value\":item.id+''}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}}),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":18}},[_c('upload-file',{ref:\"uploadFile\",attrs:{\"fileType\":_vm.fileType},on:{\"upload-file-event\":_vm.uploadSuccessStartImport}})],1)],1)],1),_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.importFunctionTestCase}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"加入计划\",\"visible\":_vm.joinPlanDialogVisible,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.joinPlanDialogVisible=$event},\"close\":_vm.cancleJoinPlanDialogVisible}},[_c('el-form',{ref:\"joinPlanFormRef\",staticClass:\"demo-form-inline\",attrs:{\"model\":_vm.joinPlanForm,\"rules\":_vm.joinPlanFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"计划名称\",\"prop\":\"planId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.joinPlanForm.planId),callback:function ($$v) {_vm.$set(_vm.joinPlanForm, \"planId\", $$v)},expression:\"joinPlanForm.planId\"}},_vm._l((_vm.planOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.planName,\"value\":item.id+''}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"用例来源\"}},[[_c('el-radio',{attrs:{\"label\":\"1\"},model:{value:(_vm.caseSourceValue),callback:function ($$v) {_vm.caseSourceValue=$$v},expression:\"caseSourceValue\"}},[_vm._v(\"当前选择\")]),_vm._v(\" \"),_c('el-radio',{attrs:{\"label\":\"2\"},model:{value:(_vm.caseSourceValue),callback:function ($$v) {_vm.caseSourceValue=$$v},expression:\"caseSourceValue\"}},[_vm._v(\"当前所有\")])]],2)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cancleJoinPlanDialogVisible}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.joinTestPlan}},[_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-80503544\",\"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/function/FunctionList.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-80503544\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FunctionList.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!./FunctionList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FunctionList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-80503544\\\",\\\"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!./FunctionList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-80503544\"\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/function/FunctionList.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"function-test-planlist-attachment-box\">\n <div class=\"select-attachment\">\n <div id=\"attachmentImgSelectText\" class=\"select-attachment-text\">\n 粘贴文件来上传, 或 <span class=\"select-attachment-text-browse\" id=\"attachmentBrowse\">浏览</span>\n </div>\n </div>\n <div class=\"select-attachment-list\" id=\"attachmentImgDivList\">\n <div class=\"select-attachment-list-img\" id=\"attachmentImgList\"></div>\n <div class=\"select-attachment-list-div\" id=\"attachmentFileList\"></div>\n </div>\n <div class=\"upload-file\" hidden>\n <el-upload\n style=\"display:inline-block\"\n class=\"upload-demo\"\n ref=\"upload\"\n action=\"\"\n :limit=\"1\"\n :on-change=\"fileChange\"\n :file-list=\"uploadFileList\"\n :auto-upload=\"false\"\n >\n <el-button size=\"small\" type=\"primary\" id=\"uploadFileSelect\">选取文件</el-button>\n </el-upload> \n </div>\n </div>\n</template>\n\n<script>\nexport default {\n data () {\n return {\n fileList: [],\n imgIdList: [],\n divIdList: [],\n uploadFileList: [],\n fileRealNameList: [],\n defaultUploadPath: 'files/uploads/'\n }\n },\n created(){\n window.addEventListener('beforeunload', e=>this.refreshBrowse(e))\n },\n mounted(){\n this.patseEvent()\n },\n destroyed() {\n window.removeEventListener('beforeunload', e=>this.refreshBrowse(e))\n },\n methods: {\n consoleAllList(){\n console.log('----------start----------')\n console.log('imgIdList', this.imgIdList)\n console.log('divIdList', this.divIdList)\n console.log('fileList', this.fileList)\n console.log('uploadFileList', this.uploadFileList)\n console.log('fileRealNameList', this.fileRealNameList)\n console.log('----------end----------')\n },\n refreshBrowse(e){\n this.deleteuploadSectionFile()\n },\n deleteVirtualDom(){\n let currentImgParentsNode = document.getElementById('attachmentImgList')\n while(currentImgParentsNode.firstChild){\n currentImgParentsNode.removeChild(currentImgParentsNode.firstChild)\n }\n let currentFileParentsNode = document.getElementById('attachmentFileList')\n while(currentFileParentsNode.firstChild){\n currentFileParentsNode.removeChild(currentFileParentsNode.firstChild)\n }\n },\n bindClickEventToDel(type, delClass, fileName){\n let _this = this\n let img_ = document.querySelector('.' + delClass)\n img_.addEventListener('click', function(){\n let num = 0\n let index = 0\n for(var i=0; i<_this.fileList.length; i++){\n if(_this.fileList[i] == fileName){\n index = num\n }\n num++\n }\n _this.fileList.splice(index, 1)\n let currentFileRealName = _this.fileRealNameList.splice(index, 1)[0]\n _this.$api.comm.deleteFile(currentFileRealName.split('/')[2])\n let currentFatherNode = document.getElementById('father_' + delClass)\n if(type == 'img'){\n let currentImgParentsNode = document.getElementById('attachmentImgList')\n currentImgParentsNode.removeChild(currentFatherNode)\n }else{\n let currentFileParentsNode = document.getElementById('attachmentFileList')\n currentFileParentsNode.removeChild(currentFatherNode)\n }\n })\n },\n fileChange(file, fileList) {\n this.uploadFileList = fileList\n this.judgeFileType(file.raw)\n this.uploadFileList = []\n },\n clearAllList(){\n this.fileList = []\n this.imgIdList = []\n this.divIdList = []\n this.uploadFileList = []\n this.fileRealNameList = []\n },\n addImgToImgList(file){\n var imgList = document.getElementById('attachmentImgList')\n var middleFatherImgDiv = document.createElement('div')\n middleFatherImgDiv.className = 'middle-father-img-div'\n var img = document.createElement('img')\n var imgId = 'attachmentImg_' + (this.imgIdList.length + 1)\n img.id = imgId\n img.className = 'attachment-img'\n middleFatherImgDiv.id = 'father_' + imgId\n middleFatherImgDiv.appendChild(img)\n var attachDel = document.createElement('span')\n attachDel.className = 'attachment-del ' + imgId\n attachDel.innerHTML = 'x'\n middleFatherImgDiv.appendChild(attachDel)\n imgList.appendChild(middleFatherImgDiv)\n let fileReader = new FileReader()\n fileReader.onloadend = function() {\n document.querySelector('#' + imgId).src = fileReader.result\n }\n fileReader.readAsDataURL(file)\n this.imgIdList.push(imgId)\n this.fileList.push(file.name) // 临时存放文件名\n // 上传\n this.uploadSectionFile(file)\n this.bindClickEventToDel('img', imgId, file.name)\n },\n addFileToDivList(file){\n var divList = document.getElementById('attachmentFileList')\n var middleFatherFileDiv = document.createElement('div')\n middleFatherFileDiv.className = 'middle-father-file-div'\n var div = document.createElement('div')\n var divId = 'attachmentDiv_' + (this.divIdList.length + 1)\n div.id = divId\n div.innerHTML = file.name\n div.className = 'attachment-div'\n middleFatherFileDiv.id = 'father_' + divId\n middleFatherFileDiv.appendChild(div)\n var attachDel = document.createElement('span')\n attachDel.className = 'attachment-del ' + divId\n attachDel.innerHTML = 'x'\n middleFatherFileDiv.appendChild(attachDel)\n divList.appendChild(middleFatherFileDiv)\n this.divIdList.push(divId)\n this.fileList.push(file.name) // 临时存放文件名\n // 上传\n this.uploadSectionFile(file)\n this.bindClickEventToDel('div', divId, file.name)\n },\n judgeFileType(file){\n var _fileType = file.type.split('/')[0]\n if(_fileType == 'image'){\n this.addImgToImgList(file)\n }else{\n this.addFileToDivList(file)\n }\n },\n patseEvent(){\n let _this = this\n document.querySelector('#attachmentImgSelectText').addEventListener('paste', function(even,value){\n let file = even.clipboardData.files[0]\n _this.judgeFileType(file)\n })\n var browse = document.getElementById('attachmentBrowse')\n browse.addEventListener('click', function(){\n document.getElementById('uploadFileSelect').click()\n })\n },\n uploadSectionFile(file){\n var formData = new FormData()\n if(file.row)\n formData.append('file', file.raw)\n else\n formData.append('file', file)\n formData.append('filename', file.name)\n this.$api.comm.uploadFile(formData).then((res) => {\n if(res.data.code == 200){\n this.fileRealNameList.push(this.defaultUploadPath + res.data.data.fileName)\n }else{\n this.$notify({\n type: 'error',\n message: '上传失败'\n })\n }\n })\n },\n /* 写在最后 */\n deleteuploadSectionFile(){ // 删除所有的文件\n var that = this\n if(this.fileRealNameList.length > 0){\n var fileRealNameList2 = this.fileRealNameList\n fileRealNameList2.forEach(ele=>{\n that.$api.comm.deleteFile(ele.split('/')[2])\n })\n }\n this.deleteVirtualDom()\n this.clearAllList()\n },\n getFileNameList(){ // 获取所有的文件名称列表(仅名称)\n return this.fileList\n },\n getFileRealNameList(){ // 获取所有的文件名称列表(包含相对路径)\n return this.fileRealNameList\n }\n /* 写在最后引用该组件后只需调用以上3个方法即可。 */\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n/deep/ .select-attachment-text {\n width: 100%;\n height: 38px;\n border: 1px solid #DCDFE6;\n border-radius: 4px;\n text-align: center;\n .select-attachment-text-browse {\n cursor: pointer;\n color: blue;\n }\n}\n/deep/ .select-attachment-list-img {\n width: 100%;\n position: relative;\n}\n/deep/ .select-attachment-list-div {\n width: 100%;\n position: relative;\n clear: both;\n}\n/deep/ .middle-father-img-div {\n float: left;\n margin: 20px 30px -10px 0px;\n position: relative;\n .attachment-del {\n top: -10px;\n }\n}\n/deep/ .middle-father-file-div {\n float: left;\n margin: 10px 30px 0 0;\n position: relative;\n .attachment-del {\n top: 5px;\n }\n}\n/deep/ .attachment-img {\n width: 50px;\n height: 50px;\n}\n/deep/ .attachment-div {\n float: left;\n}\n/deep/ .attachment-del {\n position: absolute;\n line-height: 4px;\n border: 1px solid #ccc;\n border-radius: 10px;\n padding: 2px;\n}\n/deep/ .attachment-del:hover {\n cursor: pointer;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/function/FunctionTestPlanListAttachment.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"function-test-planlist-attachment-box\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"upload-file\",attrs:{\"hidden\":\"\"}},[_c('el-upload',{ref:\"upload\",staticClass:\"upload-demo\",staticStyle:{\"display\":\"inline-block\"},attrs:{\"action\":\"\",\"limit\":1,\"on-change\":_vm.fileChange,\"file-list\":_vm.uploadFileList,\"auto-upload\":false}},[_c('el-button',{attrs:{\"size\":\"small\",\"type\":\"primary\",\"id\":\"uploadFileSelect\"}},[_vm._v(\"选取文件\")])],1)],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"select-attachment\"},[_c('div',{staticClass:\"select-attachment-text\",attrs:{\"id\":\"attachmentImgSelectText\"}},[_vm._v(\"\\n 粘贴文件来上传, 或 \"),_c('span',{staticClass:\"select-attachment-text-browse\",attrs:{\"id\":\"attachmentBrowse\"}},[_vm._v(\"浏览\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"select-attachment-list\",attrs:{\"id\":\"attachmentImgDivList\"}},[_c('div',{staticClass:\"select-attachment-list-img\",attrs:{\"id\":\"attachmentImgList\"}}),_vm._v(\" \"),_c('div',{staticClass:\"select-attachment-list-div\",attrs:{\"id\":\"attachmentFileList\"}})])}]\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-7e023e8d\",\"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/function/FunctionTestPlanListAttachment.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-7e023e8d\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FunctionTestPlanListAttachment.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!./FunctionTestPlanListAttachment.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FunctionTestPlanListAttachment.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7e023e8d\\\",\\\"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!./FunctionTestPlanListAttachment.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-7e023e8d\"\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/function/FunctionTestPlanListAttachment.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"function-test-plan-list\">\n <!--查询区-->\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 >\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"模块名称\">\n <el-input\n placeholder=\"请输入测试模块名称\"\n clearable\n class=\"input-with-select\"\n v-model=\"queryInfo.testMode\"\n ></el-input>\n </el-form-item>\n <el-form-item label=\"用例标题\">\n <el-input\n placeholder=\"请输入用例标题\"\n clearable\n class=\"input-with-select\"\n v-model=\"queryInfo.testCaseTitle\"\n ></el-input>\n </el-form-item>\n <el-form-item label=\"用例等级\">\n <el-select\n v-model=\"queryInfo.testCaseLevel\"\n placeholder=\"请选择\"\n clearable\n >\n <el-option\n v-for=\"item in caseLevelOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"编写者\">\n <el-select\n v-model=\"queryInfo.writePerson\"\n placeholder=\"请选择\"\n clearable\n >\n <el-option\n v-for=\"item in userOptions\"\n :key=\"item.id\"\n :label=\"item.nick\"\n :value=\"item.nick\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"执行者\">\n <el-select\n v-model=\"queryInfo.executor\"\n placeholder=\"请选择\"\n clearable\n >\n <el-option\n v-for=\"item in executorOptions\"\n :key=\"item\"\n :label=\"item\"\n :value=\"item\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"测试结果\">\n <el-select\n v-model=\"queryInfo.testResult\"\n placeholder=\"请选择\"\n clearable\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item >\n <el-button\n type=\"primary\"\n @click=\"selectFunctionTestPlanCaseList\"\n >查询</el-button\n >\n </el-form-item>\n <el-form-item>\n <el-button @click=\"backParentPage\">返回</el-button>\n </el-form-item>\n </el-form>\n\n <!--列表区-->\n <div class=\"tableTile\">\n <h1>{{planName}}</h1>\n </div>\n <el-table\n v-loading=\"loading\"\n ref=\"multipleTable\"\n tooltip-effect=\"dark\"\n :data=\"\n planCaseList.slice(\n (currpage - 1) * queryInfo.pageSize,\n currpage * queryInfo.pageSize\n )\n \"\n :default-sort = \"{prop: 'createTime', order: 'descending'}\"\n border\n :fit=\"true\"\n @selection-change=\"handleSelectionChange\"\n >\n <el-table-column\n label=\"序号\"\n type=\"selection\"\n width=\"55\"\n align=\"center\"\n ></el-table-column>\n <el-table-column\n label=\"项目名称\"\n prop=\"itemId\"\n width=\"100\"\n show-overflow-tooltip\n ></el-table-column>\n <el-table-column\n label=\"模块名称\"\n prop=\"testMode\"\n width=\"150\"\n show-overflow-tooltip\n sortable\n ></el-table-column>\n <el-table-column\n label=\"用例类型\"\n prop=\"testCaseType\"\n width=\"100\"\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"等级\"\n prop=\"testCaseLevel\"\n width=\"80\" sortable\n ></el-table-column>\n <el-table-column\n label=\"用例状态\"\n prop=\"testCaseStatus\"\n width=\"100\"\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"用例标题\"\n prop=\"testCaseTitle\"\n width=\"250\"\n show-overflow-tooltip\n sortable\n ></el-table-column>\n <el-table-column\n label=\"前置条件\"\n prop=\"precondition\"\n width=\"200\"\n show-overflow-tooltip\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"测试步骤\"\n prop=\"testStep\"\n width=\"300\"\n show-overflow-tooltip\n ></el-table-column>\n <el-table-column\n label=\"预期结果\"\n prop=\"expectResult\"\n width=\"200\"\n show-overflow-tooltip\n ></el-table-column>\n <el-table-column\n :reserve-selection=\"true\"\n label=\"测试结果\"\n prop=\"testResult\"\n width=\"120\"\n >\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.testResult === '通过'\" class=\"color-pass\">\n <el-select\n v-model=\"scope.row.testResult\"\n placeholder=\"请选择\"\n @change=\"updateTestCaseStatus(scope.row)\"\n class=\"select-test-result\"\n clearable\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span v-else-if=\"scope.row.testResult === '失败'\" class=\"color-fail\">\n <el-select\n v-model=\"scope.row.testResult\"\n placeholder=\"请选择\"\n @change=\"updateTestCaseStatus(scope.row)\"\n class=\"select-test-result\"\n clearable\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span v-else-if=\"scope.row.testResult === '受阻'\" class=\"color-block\">\n <el-select\n v-model=\"scope.row.testResult\"\n placeholder=\"请选择\"\n @change=\"updateTestCaseStatus(scope.row)\"\n class=\"select-test-result\"\n clearable\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span v-else class=\"color-skip\">\n <el-select\n v-model=\"scope.row.testResult\"\n placeholder=\"请选择\"\n @change=\"updateTestCaseStatus(scope.row)\"\n class=\"select-test-result\"\n clearable\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n </template>\n </el-table-column>\n <el-table-column\n label=\"执行者\"\n prop=\"executor\"\n width=\"80\"\n ></el-table-column>\n <el-table-column\n label=\"编写者\"\n prop=\"writePerson\"\n width=\"80\"\n ></el-table-column>\n <el-table-column\n label=\"测试版本\"\n prop=\"testVersion\"\n width=\"100\"\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"Bug编号\"\n prop=\"bugNumber\"\n width=\"80\"\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"Bug链接\"\n prop=\"bugLink\"\n width=\"150\"\n show-overflow-tooltip\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"创建时间\"\n prop=\"createTime\"\n width=\"160\"\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"更新时间\"\n prop=\"updateTime\"\n width=\"160\"\n v-if=\"false\"\n ></el-table-column>\n <el-table-column\n label=\"备注\"\n prop=\"comments\"\n show-overflow-tooltip\n ></el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"150\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button\n type=\"text\"\n size=\"small\"\n @click=\"showDetailDialog(scope.row.id)\"\n >查看</el-button\n >\n <el-button\n type=\"text\"\n size=\"small\"\n @click=\"showEditDialog(scope.row.id)\"\n >编辑</el-button\n >\n <el-button\n type=\"text\"\n size=\"small\"\n @click=\"delFunctionTestCase(scope.row.id)\"\n >删除</el-button\n >\n </template>\n </el-table-column>\n </el-table>\n\n <!--分页区-->\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 >\n </el-pagination>\n <!--查看用例弹窗-->\n <el-dialog\n title=\"查看用例\"\n :visible.sync=\"detailDialogVisible\"\n @close=\"detailDialogVisible = false\"\n width=\"60%\"\n >\n <el-form :model=\"detailForm\" label-width=\"100px\">\n <el-row :gutter=\"20\">\n <el-col :span=\"6\">\n <el-form-item label=\"项目名称\" prop=\"itemId\">\n <el-select\n v-model=\"detailForm.itemId\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in itemOptions\"\n :key=\"item.id\"\n :label=\"item.itemName\"\n :value=\"item.id + ''\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n <el-form-item label=\"用例类型\" prop=\"testCaseType\">\n <el-select\n v-model=\"detailForm.testCaseType\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in caseTypeOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n <el-form-item label=\"用例等级\" prop=\"testCaseLevel\">\n <el-select\n v-model=\"detailForm.testCaseLevel\"\n placeholder=\"请选择\"\n \n >\n <el-option\n v-for=\"item in caseLevelOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n <el-form-item label=\"用例状态\" prop=\"testCaseStatus\">\n <el-select\n v-model=\"detailForm.testCaseStatus\"\n placeholder=\"请选择\"\n \n >\n <el-option\n v-for=\"item in caseStatusOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\"\n >\n </el-option>\n </el-select>\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=\"testMode\">\n <el-input\n v-model=\"detailForm.testMode\"\n placeholder=\"请输入测试模块名称\"\n \n ></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"16\">\n <el-form-item label=\"用例标题\" prop=\"testCaseTitle\">\n <el-input\n v-model=\"detailForm.testCaseTitle\"\n placeholder=\"请输入用例标题\"\n \n ></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=\"precondition\">\n <el-input\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"detailForm.precondition\"\n placeholder=\"请输入前置条件\"\n \n ></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=\"testStep\">\n <el-input\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"detailForm.testStep\"\n \n ></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=\"expectResult\">\n <el-input\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"detailForm.expectResult\"\n \n ></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=\"writePerson\">\n <el-input v-model=\"detailForm.writePerson\" 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=\"备注\" prop=\"comments\">\n <el-input\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"detailForm.comments\"\n \n ></el-input>\n </el-form-item>\n </el-col>\n </el-row>\n\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"测试结果\" prop=\"testResult\">\n <span v-if=\"detailForm.testResult === '通过'\" class=\"color-pass\">\n <el-select\n v-model=\"detailForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(detailForm.id,detailForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span\n v-else-if=\"detailForm.testResult === '失败'\"\n class=\"color-fail\"\n >\n <el-select\n v-model=\"detailForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(detailForm.id,detailForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span\n v-else-if=\"detailForm.testResult === '受阻'\"\n class=\"color-block\"\n >\n <el-select\n v-model=\"detailForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(detailForm.id,detailForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span v-else class=\"color-skip\">\n <el-select\n v-model=\"detailForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(detailForm.id,detailForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"detailDialogVisible = false\">取 消</el-button>\n </span>\n </el-dialog>\n <!--编辑用例窗口-->\n <el-dialog\n title=\"编辑用例\"\n :visible.sync=\"editDialogVisible\"\n @close=\"editDialogVisible = false\"\n width=\"60%\"\n >\n <el-form\n :model=\"editForm\"\n :rules=\"addFormRules\"\n ref=\"editFormRef\"\n label-width=\"100px\"\n >\n <el-row :gutter=\"20\">\n <el-col :span=\"6\">\n <el-form-item label=\"项目名称\" prop=\"itemId\">\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 >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n <el-form-item label=\"用例类型\" prop=\"testCaseType\">\n <el-select v-model=\"editForm.testCaseType\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in caseTypeOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n <el-form-item label=\"用例等级\" prop=\"testCaseLevel\">\n <el-select v-model=\"editForm.testCaseLevel\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in caseLevelOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"6\">\n <el-form-item label=\"用例状态\" prop=\"testCaseStatus\">\n <el-select v-model=\"editForm.testCaseStatus\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in caseStatusOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictValue\"\n >\n </el-option>\n </el-select>\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=\"testMode\">\n <el-input\n v-model=\"editForm.testMode\"\n placeholder=\"请输入测试模块名称\"\n ></el-input>\n </el-form-item>\n </el-col>\n <el-col :span=\"16\">\n <el-form-item label=\"用例标题\" prop=\"testCaseTitle\">\n <el-input\n v-model=\"editForm.testCaseTitle\"\n placeholder=\"请输入用例标题\"\n ></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=\"precondition\">\n <el-input\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"editForm.precondition\"\n placeholder=\"请输入前置条件\"\n ></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=\"testStep\">\n <el-input\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"editForm.testStep\"\n ></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=\"expectResult\">\n <el-input\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"editForm.expectResult\"\n ></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=\"writePerson\">\n <el-input v-model=\"editForm.writePerson\"></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\n type=\"textarea\"\n :rows=\"5\"\n v-model=\"editForm.comments\"\n ></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=\"testResult\">\n <span v-if=\"editForm.testResult === '通过'\" class=\"color-pass\">\n <el-select\n v-model=\"editForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(editForm.id,editForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span\n v-else-if=\"editForm.testResult === '失败'\"\n class=\"color-fail\"\n >\n <el-select\n v-model=\"editForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(editForm.id,editForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span\n v-else-if=\"editForm.testResult === '受阻'\"\n class=\"color-block\"\n >\n <el-select\n v-model=\"editForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(editForm.id,editForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n <span v-else class=\"color-skip\">\n <el-select\n v-model=\"editForm.testResult\"\n placeholder=\"请选择\"\n @change=\"detailUpdateTestCaseStatus(editForm.id,editForm.testResult)\"\n class=\"select-test-result\"\n >\n <el-option\n v-for=\"item in caseTestResultOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.label\"\n >\n </el-option>\n </el-select>\n </span>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"editDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"editFunctionTestCase\"\n >确 定</el-button\n >\n </span>\n </el-dialog>\n <!--确认创建bug-->\n <el-dialog\n title=\"提示\"\n :visible.sync=\"confirmBugDialogVisible\"\n :close-on-click-modal= 'false'\n width=\"30%\"\n >\n <span>确定要创建bug</span>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"confirmBugDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"createBug()\">确 定</el-button>\n </span>\n </el-dialog>\n <!--创建bug-->\n <el-dialog\n title=\"创建缺陷\"\n :visible.sync=\"createBugDialogVisible\"\n :close-on-click-modal= 'false'\n @close=\"cancelCreateBug\"\n width=\"60%\"\n >\n <div class=\"confirm-create-bug-form\">\n <el-form :model=\"bugForm\" label-width=\"100px\" ref=\"bugFormRef\" :rules=\"bugFormRules\">\n <el-row :gutter=\"20\">\n <el-col :span=\"8\">\n <el-form-item label=\"项目名称\" prop=\"itemId\">\n <el-select\n v-model=\"bugForm.jiraItem\"\n placeholder=\"请选择\"\n disabled\n >\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"模块\" prop=\"testMode\">\n <el-select\n v-model=\"bugForm.testMode\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in modeOptions\"\n :key=\"item.id\"\n :label=\"item.name\"\n :value=\"item.name\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"影响版本\" prop=\"version\">\n <el-select\n v-model=\"bugForm.version\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item\"\n :label=\"item\"\n :value=\"item\"\n >\n </el-option>\n </el-select>\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=\"summary\">\n <el-input\n type=\"text\"\n :rows=\"5\"\n v-model=\"bugForm.summary\" \n ></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=\"customfield_10204\">\n <el-input\n type=\"textarea\"\n :rows=\"10\"\n v-model=\"bugForm.customfield_10204\"\n \n ></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=\"customfield_10203\">\n <el-select\n v-model=\"bugForm.customfield_10203\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in bugLevelOptions\"\n :key=\"item.id\"\n :label=\"item.value\"\n :value=\"item.value\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"优先级\" prop=\"priority\">\n <el-select\n v-model=\"bugForm.priority\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in priorityOptions\"\n :key=\"item.id\"\n :label=\"item.value\"\n :value=\"item.value\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"标签\" prop=\"labels\">\n <el-select\n v-model=\"bugForm.labels\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in labelsOptions\"\n :key=\"item\"\n :label=\"item\"\n :value=\"item\"\n >\n </el-option>\n </el-select>\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=\"customfield_10300\">\n <el-select\n v-model=\"bugForm.customfield_10300\"\n placeholder=\"请选择\"\n >\n <el-option\n v-for=\"item in bugTypeOptions\"\n :key=\"item.id\"\n :label=\"item.value\"\n :value=\"item.value\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n </el-col>\n <el-col :span=\"8\">\n <el-form-item label=\"经办人\" prop=\"assignee\">\n <el-autocomplete\n v-model=\"bugForm.assignee\"\n :fetch-suggestions=\"querySearchAsync\"\n placeholder=\"请输入内容\"\n @select=\"handleSelect\"\n >\n <template slot-scope=\"{ item }\">\n <div>{{ item.value=item.dictValue }}</div>\n </template>\n </el-autocomplete>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row>\n <el-col :span=\"24\">\n <el-form-item label=\"附件\" prop=\"precondition\">\n <function-test-plan-list-attachment ref=\"uploadAttachment\"></function-test-plan-list-attachment>\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=\"cancelCreateBug\">取 消</el-button>\n <el-button type=\"primary\" @click=\"beginToCreateBug()\">确 定</el-button>\n </span>\n </el-dialog>\n <!--添加jira 密码-->\n <el-dialog\n title=\"初次登录请输入jira密码\"\n :visible.sync=\"jiraPwdDialogVisible\"\n width=\"30%\"\n >\n <el-form\n :model=\"jiraPwdForm\"\n ref=\"jiraPwdFormRef\"\n label-width=\"100px\"\n > \n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"jira密码\" prop=\"jiraPwd\">\n <el-input\n type=\"text\"\n v-model=\"jiraPwdForm.jiraPwd\"\n ></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=\"jiraPwdDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"jiraPwd()\">确 定</el-button>\n </span>\n </el-dialog>\n </div>\n</template>\n<script>\nimport FunctionTestPlanListAttachment from './FunctionTestPlanListAttachment.vue';\nexport default {\n name:'FunctionTestPlanList',\n components: {\n FunctionTestPlanListAttachment\n },\n data() {\n return {\n planName: \"\",\n detailDialogVisible: false,\n editDialogVisible: false,\n createBugDialogVisible: false,\n confirmBugDialogVisible: false,\n jiraPwdDialogVisible:false,\n planCaseList: [],\n itemOptions: [],\n userOptions: [],\n caseTypeOptions: [],\n caseLevelOptions: [],\n caseStatusOptions: [],\n detailForm: {},\n editForm: {},\n bugForm:{\n // 在这里把所有的数据项写上,初始化数据项\n jiraItem:\"\",\n testMode: \"\",\n testCaseTitle: \"\",\n testCaseLevel: \"\",\n writePerson: \"\",\n testResult:\"\",\n executor:\"\",\n customfield_10203:\"\",\n customfield_10204:\"\",\n priority:\"\",\n labels:\"\",\n customfield_10300:\"\",\n assignee:\"\",\n summary:\"\",\n version:\"\",\n },\n jiraPwdForm:{\n jiraPwd:\"\"\n },\n CreateBugParams:{},\n currpage: 1,\n total: 0,\n queryInfo: {\n pageNum: 1,\n pageSize: 10,\n planId: this.listPlanId,\n itemId: \"\",\n testMode: \"\",\n testCaseTitle: \"\",\n testCaseLevel: \"\",\n writePerson: \"\",\n testResult:\"\",\n executor:\"\",\n\n },\n executorOptions:[],\n modeOptions:[],\n projectOptions:[],\n versionOptions:[],\n assigneeOptions:[],\n bugLevelOptions:[\n {id:1,\n value:\"致命block\"},\n {id:2,\n value:\"严重Critical\"},\n {id:3,\n value:\"一般Major\"},\n {id:4,\n value:\"建议Minor/Trivial\"}\n ],\n priorityOptions:[\n {id:1,\n value:\"P0\"},\n {id:2,\n value:\"P1\"},\n {id:3,\n value:\"P2\"}\n ],\n labelsOptions:[\"前端\",\"后端\",\"iOS\",\"Android\",\"产品\"],\n bugTypeOptions:[ \n {id:10200,\n value:\"代码错误\"},\n {id:10201,\n value:\"设计缺陷\"},\n {id:10202,\n value:\"界面优化\"},\n {id:10203,\n value:\"兼容性\"},\n {id:10204,\n value:\"性能问题\"},\n {id:10205,\n value:\"配置相关\"},\n {id:10206,\n value:\"安装部署\"},\n {id:10207,\n value:\"安全相关\"},\n {id:10208,\n value:\"标准规范\"},\n {id:10209,\n value:\"测试脚本\"},\n {id:10210,\n value:\"建议改善\"}\n ],\n loading: false,\n caseTestResultOptions: [\n {\n id: 1,\n label: \"通过\",\n value: \"pass\",\n },\n {\n id: 2,\n label: \"受阻\",\n value: \"block\",\n },\n {\n id: 3,\n label: \"失败\",\n value: \"fail\",\n },\n {\n id: 4,\n label: \"跳过\",\n value: \"skip\",\n },\n {\n id: 5,\n label: \"未执行\",\n value: null,\n }\n ],\n assigneeOptions:[],\n addFormRules: {\n itemId: [\n { required: true, message: \"请选择测试项目\", trigger: \"blur\" },\n ],\n testMode: [\n { required: true, message: \"请输入测试模块名称\", trigger: \"blur\" },\n {\n min: 1,\n max: 50,\n message: \"长度在 1 到 50 个字符\",\n trigger: \"blur\",\n },\n ],\n testCaseType: [\n { required: true, message: \"请选择用例类型\", trigger: \"blur\" },\n ],\n testCaseLevel: [\n { required: true, message: \"请选择用例等级\", trigger: \"blur\" },\n ],\n testCaseTitle: [\n { required: true, message: \"请输入用例标题\", trigger: \"blur\" },\n {\n min: 1,\n max: 255,\n message: \"长度在 1 到 255 个字符\",\n trigger: \"blur\",\n },\n ],\n precondition: [\n { required: false, message: \"请输入前置条件\", trigger: \"blur\" }\n ],\n testStep: [\n { required: false, message: \"请输入测试步骤\", trigger: \"blur\" }\n ],\n expectResult: [\n { required: false, message: \"请输入预期结果\", trigger: \"blur\" },\n ],\n writePerson: [\n { required: false, message: \"请输入编写者姓名\", trigger: \"blur\" },\n ],\n comments: [\n { required: false, message: \"请输入备注\", trigger: \"blur\" }\n ],\n },\n bugFormRules:{\n jiraItem:[\n { required: true, message: \"请选择测试项目\", trigger: \"blur\" },],\n testMode: [\n { required: true, message: \"请选择对应模块\", trigger: \"blur\" },],\n version: [\n { required: true, message: \"请选择对应版本号\", trigger: \"blur\" },],\n summary:[\n { required: true, message: \"请填写标题\", trigger: \"blur\" },\n {\n min: 1,\n max: 100,\n message: \"长度在 1 到 100 个字符\",\n trigger: \"blur\",\n },],\n customfield_10203:[\n { required: true, message: \"请选择严重程度\", trigger: \"blur\" },],\n customfield_10204:[\n { required: true, message: \"请填写缺陷描述\", trigger: \"blur\" },],\n customfield_10300:[\n { required: true, message: \"请选择缺陷类型\", trigger: \"blur\" },{\n min: 1,\n max: 500,\n message: \"长度在 1 到 500 个字符\",\n trigger: \"blur\",\n },],\n priority:[\n { required: true, message: \"请选择优先级\", trigger: \"blur\" },],\n labels:[\n { required: true, message: \"请选择标签\", trigger: \"blur\" },],\n assignee:[\n { required: true, message: \"请选择经办人\", trigger: \"blur\" },],\n }\n };\n },\n props: [\"listPlanId\"],\n mounted() {\n this.getItemNameList();\n this.getAllUserInfo();\n this.getCaseTypeAndCaseStatusAndCaseLevel();\n this.getAllExecutor();\n },\n created() {\n this.getFunctionTestPlanCaseList();\n },\n methods: {\n cancelCreateBug(){\n this.createBugDialogVisible = false\n this.$refs.uploadAttachment.deleteuploadSectionFile()\n this.$refs.bugFormRef.resetFields()\n },\n getAllUserInfo() {\n this.$api.user\n .queryAllUserInfo()\n .then((res) => {\n this.userOptions = res.data.data;\n })\n .catch(() => {});\n },\n selectFunctionTestPlanCaseList(){\n this.queryInfo.pageNum = 1\n this.total = 0\n this.getFunctionTestPlanCaseList()\n },\n updateTestCaseStatus(val) {\n let currentUser =JSON.parse(localStorage.getItem('userInfo')).nick\n var obj = {\n updateTime: new Date().getTime(),\n planId: this.listPlanId,\n caseId: val.id,\n testResult: val.testResult,\n executor: currentUser\n };\n this.$api.planrelation.updateCaseTestResultByPlanIdAndCaseId(obj).then((res) => {\n this.$notify({\n type: \"success\",\n message: res.data.msg,\n });\n this.getFunctionTestPlanCaseList()\n //更新测试计划状态 需要把他拿后端去\n var caseArray = this.planCaseList;\n \n \n var caseTestResultList = [];\n var updateParams = {\n planId: this.listPlanId,\n status: 1,\n };\n for (var i = 0; i < caseArray.length; i++) {\n if (caseArray[i].testResult != null) {\n caseTestResultList.push(caseArray[i].testResult);\n }\n }\n if (\n caseTestResultList.length > 0 &&\n caseTestResultList.length != caseArray.length\n ) {\n updateParams.status = 1;\n this.$api.plan.updateTestPlanStatus(updateParams).then((res) => {});\n } else if (\n caseTestResultList.length > 0 &&\n caseTestResultList.length == caseArray.length\n ) {\n updateParams.status = 2;\n this.$api.plan.updateTestPlanStatus(updateParams).then((res) => {});\n }\n }).catch(() => {});\n //如果是失败或者受阻,开始创建bug\n if(val.testResult == '失败' || val.testResult == '受阻'){\n \n this.startCreateBug (val) \n \n }\n },\n\n detailUpdateTestCaseStatus(id,testResult){\n let currentUser =JSON.parse(localStorage.getItem('userInfo')).nick\n var obj = {\n executor: currentUser,\n updateTime: new Date().getTime(),\n planId: this.listPlanId,\n caseId: id,\n testResult: testResult,\n };\n this.$api.planrelation\n .updateCaseTestResultByPlanIdAndCaseId(obj)\n .then((res) => {\n this.$notify({\n type: \"success\",\n message: res.data.msg,\n });\n\n var caseArray = this.getFunctionTestPlanCaseList();\n //更新测试计划状态\n var caseTestResultList = [];\n var updateParams = {\n planId: this.listPlanId,\n status: 1,\n };\n\n for (var i = 0; i < caseArray.length; i++) {\n if (caseArray[i].testResult != null) {\n caseTestResultList.push(caseArray[i].testResult);\n }\n }\n if (\n caseTestResultList.length > 0 &&\n caseTestResultList.length != caseArray.length\n ) {\n updateParams.status = 1;\n this.$api.plan.updateTestPlanStatus(updateParams).then((res) => {});\n } else if (\n caseTestResultList.length > 0 &&\n caseTestResultList.length == caseArray.length\n ) {\n updateParams.status = 2;\n this.$api.plan.updateTestPlanStatus(updateParams).then((res) => {});\n }\n })\n .catch(() => {});\n this.detailDialogVisible = false\n },\n //创建bug使用 async await 解决Vue中异步处理先执行接口再同步函数内部代码\n async startCreateBug(val){\n const jiraItemName=await this.$api.item.queryJiraItemByItemName(val.itemId)\n this.bugForm.jiraItem=jiraItemName.data.msg\n var versionList=[]\n const res=await this.$api.jira.getProjectByProjectName(jiraItemName.data.msg)\n this.projectOptions=res.data.data\n if(this.projectOptions != null){\n for(var i=0;i<this.projectOptions.length;i++){\n versionList.push(this.projectOptions[i].version)\n }\n this.versionOptions=versionList\n this.bugForm.version=this.projectOptions[0].version\n this.bugForm.pkey=this.projectOptions[0].pkey\n \n const res1=await this.$api.dict.queryAllDataDict()\n \n this.assigneeOptions = res1.data.data.responsiblePerson\n \n this.confirmBugDialogVisible=true\n this.bugForm.itemId=val.itemId\n \n this.bugForm.testMode=val.testMode \n var planName=\"\"\n await this.$api.planrelation.queryTestPlanNamebyCaseId(val.id).then((res)=>{\n planName=res.data.msg\n })\n planName=planName.split(\"】\")[0]+\"】\"\n this.bugForm.summary=planName+val.testCaseTitle+'失败'\n this.bugForm.customfield_10204='【前置条件】\\n'+val.precondition +'\\n账号/密码:\\n系统版本\\n手机型号\\n\\n' +\n '【测试步骤】\\n'+val.testStep.replace(/\\ +/g,\"\") +\n '\\n\\n【预期结果】\\n'+val.expectResult.replace(/\\ +/g,\"\")+\n '\\n\\n【实际结果】\\n\\n详见附件'\n if(val.testResult == '受阻' && val.testCaseLevel =='P0' ){\n this.bugForm.customfield_10203=\"致命block\"\n this.bugForm.priority=\"P0\"\n }else if(val.testResult == '受阻' && val.testCaseLevel =='P1'){\n this.bugForm.customfield_10203=\"致命block\"\n this.bugForm.priority=\"P0\"\n }\n else if(val.testCaseLevel =='P0' || val.testCaseLevel =='P1'){\n this.bugForm.customfield_10203=\"严重Critical\"\n this.bugForm.priority=\"P1\" \n }else{\n this.bugForm.customfield_10203=\"一般Major\"\n this.bugForm.priority=\"P2\" \n }\n this.bugForm.customfield_10300=\"代码错误\" \n }else{\n this.$notify({\n type: \"warning\",\n message: \"未查询到对应项目或版本号\",\n });\n } \n },\n //处理经办人模糊搜索\n querySearchAsync(queryString, cb) {\n \n var assignees = this.assigneeOptions;\n var results = queryString ? assignees.filter(this.createStateFilter(queryString)) : assignees;\n\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n cb(results);\n }, 3000 * Math.random());\n },\n createStateFilter(queryString) {\n return (state) => {\n return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) != -1);\n };\n },\n handleSelect(item) {\n this.bugForm.assigneeEmailEx=item.dictCode\n \n },\n makebug(){\n\n //开始拼\n var bugObj = {}\n var fields = {}\n var project = {}\n var versions=[]\n var version={}\n var fixVersions=[]\n var fixVersion={}\n var issuetype={}\n var assignee={}\n var components=[]\n var component={}\n var customfield_10203={}\n var customfield_10300={}\n var priority={}\n var labels=[]\n\n //项目信息\n project.key = this.bugForm.pkey\n project.name = this.bugForm.itemId\n fields.project = project\n //模块\n component.name=this.bugForm.testMode\n console.log(\"case模块\",this.bugForm.testMode)\n components.push(component)\n fields.components=components\n //影响版本\n version.name=this.bugForm.version\n versions.push(version)\n fields.versions=versions\n //修复版本\n fixVersion.name=this.bugForm.version\n fixVersions.push(fixVersion)\n fields.fixVersions=fixVersions\n //jira上issue类型\n issuetype.name=\"Bug\"\n fields.issuetype=issuetype\n //缺陷标题\n fields.summary=this.bugForm.summary\n //缺陷描述\n fields.customfield_10204=this.bugForm.customfield_10204\n //缺陷类型\n customfield_10300.value=this.bugForm.customfield_10300\n fields.customfield_10300=customfield_10300\n //经办人\n assignee.name=this.bugForm.assigneeEmailEx\n assignee.displayName=this.bugForm.assignee\n fields.assignee=assignee\n //严重程度\n customfield_10203.value=this.bugForm.customfield_10203\n fields.customfield_10203=customfield_10203\n //优先级\n priority.name=this.bugForm.priority\n fields.priority=priority\n //标签\n labels.push(this.bugForm.labels)\n fields.labels=labels\n\n bugObj.fields=fields\n \n return bugObj\n },\n beginToCreateBug(){\n var currentJiraPwd=this.$common.getLocalStorage(\"currentJiraPwd\")\n let chineseUser =JSON.parse(localStorage.getItem('userInfo')).nick\n console.log(\"chineseUser\",chineseUser)\n let currentJiraUser=''\n // console.log(\"assigneeOptions\",this.assigneeOptions)\n this.assigneeOptions.forEach(element => {\n console.log(element)\n if(element.dictValue==chineseUser){\n currentJiraUser=element.dictCode\n }\n });\n \n if(currentJiraPwd){\n var bugJson=this.makebug()\n var attachmentList=this.$refs.uploadAttachment.getFileRealNameList()\n this.CreateBugParams.bugJson=JSON.stringify(bugJson)\n this.CreateBugParams.currentJiraPwd=currentJiraPwd\n this.CreateBugParams.currentJiraUser=currentJiraUser\n this.CreateBugParams.attachmentList=attachmentList\n \n this.$api.jira.createBug(this.CreateBugParams).then((res)=>{\n if(res.data.code == \"200\"){\n this.$notify({\n type: \"success\",\n message: \"bug创建成功\",\n });\n }else if(res.data.code == \"403\" || res.data.code == \"401\"){\n this.$common.delLocalStorage('currentJiraPwd') \n }\n this.createBugDialogVisible=false\n // this.$refs.uploadAttachment.deleteuploadSectionFile()\n })\n this.$common.delLocalStorage('currentJiraPwd') //测试完,把这句话删掉\n this.$refs.bugFormRef.resetFields()\n \n }else{ \n this.jiraPwdDialogVisible=true\n }\n },\n jiraPwd(){\n \n this.jiraPwdDialogVisible=false\n this.$common.setLocalStorage(\"currentJiraPwd\",this.jiraPwdForm.jiraPwd)\n },\n delFunctionTestCase(id) {\n this.$confirm(\"确定删除吗?\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n })\n .then(() => {\n var obj = {\n caseId: id,\n planId: this.listPlanId,\n };\n this.$api.planrelation\n .delCaseJoinedTestPlan(JSON.stringify(obj))\n .then((res) => {\n this.$notify({\n type: \"success\",\n message: res.data.msg,\n });\n this.loading = false;\n this.selectFunctionTestPlanCaseList();\n })\n .catch(() => {\n this.loading = false;\n });\n })\n .catch(() => {});\n },\n showEditDialog(id) {\n this.editDialogVisible = true;\n this.$api.test\n .queryFunctionTestCaseById(id)\n .then((res) => {\n this.editForm = res.data.data;\n })\n .catch(() => {});\n },\n handleClose(done) {\n this.$confirm('确认关闭?')\n .then(_ => {\n \n })\n .catch(_ => {});\n },\n createBug(){\n \n this.createBugDialogVisible=true\n this.confirmBugDialogVisible=false\n \n },\n editFunctionTestCase() {\n this.$refs.editFormRef.validate((valid) => {\n if (!valid) return;\n this.editForm.updateTime = new Date().getTime();\n this.$api.test\n .editFunctionTestCase(JSON.stringify(this.editForm))\n .then((res) => {\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n });\n this.editDialogVisible = false;\n this.selectFunctionTestPlanCaseList();\n })\n .catch(() => {});\n });\n },\n showDetailDialog(id) {\n var testResultQueryParams = {\n planId: this.listPlanId,\n caseId: id,\n };\n this.$api.test\n .queryFunctionTestCaseById(id)\n .then((res) => {\n this.detailForm = res.data.data;\n this.$api.planrelation\n .queryTestResultByPlanIdAndCaseId(testResultQueryParams)\n .then((res) => {\n this.detailForm.testResult = res.data.data;\n });\n })\n .catch(() => {});\n \n \n this.detailDialogVisible = true;\n },\n backParentPage() {\n this.$emit(\"plan-list-event\", false);\n },\n getAllExecutor(){\n this.$api.planrelation.queryAllExcutor().then((res)=>{\n this.executorOptions=res.data.data;\n })\n },\n getFunctionTestPlanCaseList() {\n this.loading=true\n this.$api.plan.getPlanName(this.listPlanId).then((res) => {\n this.planName=res.data.data;\n })\n this.$api.planrelation.queryAllTestCaseByTestPlanId(JSON.stringify(this.queryInfo)).then((res) => {\n this.planCaseList = res.data.data;\n this.total = res.data.count;\n this.loading = false;\n this.queryInfo.pageNum = 1;\n this.getAllExecutor()\n }).catch(() => {this.loading=false});\n return this.planCaseList;\n },\n handleSizeChange(newSize) {\n this.queryInfo.pageSize = newSize;\n this.getFunctionTestPlanCaseList();\n },\n handleCurrentChange(newpageNum) {\n this.queryInfo.pageNum = newpageNum;\n this.getFunctionTestPlanCaseList();\n },\n handleSelectionChange(val) {\n \n },\n getItemNameList() {\n this.$api.item\n .queryAllItemIdAndItemName(this.queryInfo.itemName)\n .then((res) => {\n this.itemOptions = res.data.data;\n })\n .catch(() => {\n this.loading = false;\n });\n },\n getCaseTypeAndCaseStatusAndCaseLevel() {\n this.$api.dict\n .queryAllDataDict()\n .then((res) => {\n this.caseTypeOptions = res.data.data.caseType;\n this.caseLevelOptions = res.data.data.caseLevel;\n this.caseStatusOptions = res.data.data.caseStatus;\n })\n .catch(() => {});\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n.tableTile{\n Margin:20px;\n}\n.el-table {\n margin-bottom: 10px;\n}\n.el-pagination {\n margin-bottom: 20px;\n}\n/deep/ .color-pass {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: green !important;\n }\n }\n }\n}\n/deep/ .color-fail {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: red !important;\n }\n }\n }\n}\n/deep/ .color-block {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: orange !important;\n }\n }\n }\n}\n/deep/ .color-skip {\n .select-test-result {\n .el-input--suffix {\n .el-input__inner {\n color: #ccc !important;\n }\n }\n }\n}\n/deep/.confirm-create-bug-form .el-select{\n width: 100%;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/function/FunctionTestPlanList.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"function-test-plan-list\"},[_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.testMode),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testMode\", $$v)},expression:\"queryInfo.testMode\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"用例标题\"}},[_c('el-input',{staticClass:\"input-with-select\",attrs:{\"placeholder\":\"请输入用例标题\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.testCaseTitle),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testCaseTitle\", $$v)},expression:\"queryInfo.testCaseTitle\"}})],1),_vm._v(\" \"),_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._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"编写者\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.writePerson),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"writePerson\", $$v)},expression:\"queryInfo.writePerson\"}},_vm._l((_vm.userOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.nick,\"value\":item.nick}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"执行者\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.executor),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"executor\", $$v)},expression:\"queryInfo.executor\"}},_vm._l((_vm.executorOptions),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"测试结果\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.testResult),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"testResult\", $$v)},expression:\"queryInfo.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.selectFunctionTestPlanCaseList}},[_vm._v(\"查询\")])],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{on:{\"click\":_vm.backParentPage}},[_vm._v(\"返回\")])],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"tableTile\"},[_c('h1',[_vm._v(_vm._s(_vm.planName))])]),_vm._v(\" \"),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],ref:\"multipleTable\",attrs:{\"tooltip-effect\":\"dark\",\"data\":_vm.planCaseList.slice(\n (_vm.currpage - 1) * _vm.queryInfo.pageSize,\n _vm.currpage * _vm.queryInfo.pageSize\n ),\"default-sort\":{prop: 'createTime', order: 'descending'},\"border\":\"\",\"fit\":true},on:{\"selection-change\":_vm.handleSelectionChange}},[_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"selection\",\"width\":\"55\",\"align\":\"center\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\",\"width\":\"100\",\"show-overflow-tooltip\":\"\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"模块名称\",\"prop\":\"testMode\",\"width\":\"150\",\"show-overflow-tooltip\":\"\",\"sortable\":\"\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"用例类型\",\"prop\":\"testCaseType\",\"width\":\"100\"}}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"等级\",\"prop\":\"testCaseLevel\",\"width\":\"80\",\"sortable\":\"\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"用例状态\",\"prop\":\"testCaseStatus\",\"width\":\"100\"}}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"用例标题\",\"prop\":\"testCaseTitle\",\"width\":\"250\",\"show-overflow-tooltip\":\"\",\"sortable\":\"\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"前置条件\",\"prop\":\"precondition\",\"width\":\"200\",\"show-overflow-tooltip\":\"\"}}):_vm._e(),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"测试步骤\",\"prop\":\"testStep\",\"width\":\"300\",\"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:{\"reserve-selection\":true,\"label\":\"测试结果\",\"prop\":\"testResult\",\"width\":\"120\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.testResult === '通过')?_c('span',{staticClass:\"color-pass\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testResult),callback:function ($$v) {_vm.$set(scope.row, \"testResult\", $$v)},expression:\"scope.row.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):(scope.row.testResult === '失败')?_c('span',{staticClass:\"color-fail\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testResult),callback:function ($$v) {_vm.$set(scope.row, \"testResult\", $$v)},expression:\"scope.row.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):(scope.row.testResult === '受阻')?_c('span',{staticClass:\"color-block\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testResult),callback:function ($$v) {_vm.$set(scope.row, \"testResult\", $$v)},expression:\"scope.row.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):_c('span',{staticClass:\"color-skip\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateTestCaseStatus(scope.row)}},model:{value:(scope.row.testResult),callback:function ($$v) {_vm.$set(scope.row, \"testResult\", $$v)},expression:\"scope.row.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1)]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"执行者\",\"prop\":\"executor\",\"width\":\"80\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"编写者\",\"prop\":\"writePerson\",\"width\":\"80\"}}),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"测试版本\",\"prop\":\"testVersion\",\"width\":\"100\"}}):_vm._e(),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"Bug编号\",\"prop\":\"bugNumber\",\"width\":\"80\"}}):_vm._e(),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"Bug链接\",\"prop\":\"bugLink\",\"width\":\"150\",\"show-overflow-tooltip\":\"\"}}):_vm._e(),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"创建时间\",\"prop\":\"createTime\",\"width\":\"160\"}}):_vm._e(),_vm._v(\" \"),(false)?_c('el-table-column',{attrs:{\"label\":\"更新时间\",\"prop\":\"updateTime\",\"width\":\"160\"}}):_vm._e(),_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.showEditDialog(scope.row.id)}}},[_vm._v(\"编辑\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delFunctionTestCase(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.detailDialogVisible,\"width\":\"60%\"},on:{\"update:visible\":function($event){_vm.detailDialogVisible=$event},\"close\":function($event){_vm.detailDialogVisible = false}}},[_c('el-form',{attrs:{\"model\":_vm.detailForm,\"label-width\":\"100px\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.detailForm.itemId),callback:function ($$v) {_vm.$set(_vm.detailForm, \"itemId\", $$v)},expression:\"detailForm.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\":6}},[_c('el-form-item',{attrs:{\"label\":\"用例类型\",\"prop\":\"testCaseType\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.detailForm.testCaseType),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseType\", $$v)},expression:\"detailForm.testCaseType\"}},_vm._l((_vm.caseTypeOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"用例等级\",\"prop\":\"testCaseLevel\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.detailForm.testCaseLevel),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseLevel\", $$v)},expression:\"detailForm.testCaseLevel\"}},_vm._l((_vm.caseLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"用例状态\",\"prop\":\"testCaseStatus\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.detailForm.testCaseStatus),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseStatus\", $$v)},expression:\"detailForm.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"测试模块\",\"prop\":\"testMode\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入测试模块名称\"},model:{value:(_vm.detailForm.testMode),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testMode\", $$v)},expression:\"detailForm.testMode\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"label\":\"用例标题\",\"prop\":\"testCaseTitle\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入用例标题\"},model:{value:(_vm.detailForm.testCaseTitle),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testCaseTitle\", $$v)},expression:\"detailForm.testCaseTitle\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"前置条件\",\"prop\":\"precondition\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入前置条件\"},model:{value:(_vm.detailForm.precondition),callback:function ($$v) {_vm.$set(_vm.detailForm, \"precondition\", $$v)},expression:\"detailForm.precondition\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"测试步骤\",\"prop\":\"testStep\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5},model:{value:(_vm.detailForm.testStep),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testStep\", $$v)},expression:\"detailForm.testStep\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5},model:{value:(_vm.detailForm.expectResult),callback:function ($$v) {_vm.$set(_vm.detailForm, \"expectResult\", $$v)},expression:\"detailForm.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\":\"writePerson\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.writePerson),callback:function ($$v) {_vm.$set(_vm.detailForm, \"writePerson\", $$v)},expression:\"detailForm.writePerson\"}})],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},model:{value:(_vm.detailForm.comments),callback:function ($$v) {_vm.$set(_vm.detailForm, \"comments\", $$v)},expression:\"detailForm.comments\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"测试结果\",\"prop\":\"testResult\"}},[(_vm.detailForm.testResult === '通过')?_c('span',{staticClass:\"color-pass\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.detailForm.id,_vm.detailForm.testResult)}},model:{value:(_vm.detailForm.testResult),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testResult\", $$v)},expression:\"detailForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):(_vm.detailForm.testResult === '失败')?_c('span',{staticClass:\"color-fail\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.detailForm.id,_vm.detailForm.testResult)}},model:{value:(_vm.detailForm.testResult),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testResult\", $$v)},expression:\"detailForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):(_vm.detailForm.testResult === '受阻')?_c('span',{staticClass:\"color-block\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.detailForm.id,_vm.detailForm.testResult)}},model:{value:(_vm.detailForm.testResult),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testResult\", $$v)},expression:\"detailForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):_c('span',{staticClass:\"color-skip\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.detailForm.id,_vm.detailForm.testResult)}},model:{value:(_vm.detailForm.testResult),callback:function ($$v) {_vm.$set(_vm.detailForm, \"testResult\", $$v)},expression:\"detailForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1)])],1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.detailDialogVisible = false}}},[_vm._v(\"取 消\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"编辑用例\",\"visible\":_vm.editDialogVisible,\"width\":\"60%\"},on:{\"update:visible\":function($event){_vm.editDialogVisible=$event},\"close\":function($event){_vm.editDialogVisible = false}}},[_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\":6}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\"}},[_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\":6}},[_c('el-form-item',{attrs:{\"label\":\"用例类型\",\"prop\":\"testCaseType\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.testCaseType),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseType\", $$v)},expression:\"editForm.testCaseType\"}},_vm._l((_vm.caseTypeOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"用例等级\",\"prop\":\"testCaseLevel\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.testCaseLevel),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseLevel\", $$v)},expression:\"editForm.testCaseLevel\"}},_vm._l((_vm.caseLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":6}},[_c('el-form-item',{attrs:{\"label\":\"用例状态\",\"prop\":\"testCaseStatus\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.editForm.testCaseStatus),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseStatus\", $$v)},expression:\"editForm.testCaseStatus\"}},_vm._l((_vm.caseStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictValue}})}),1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"测试模块\",\"prop\":\"testMode\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入测试模块名称\"},model:{value:(_vm.editForm.testMode),callback:function ($$v) {_vm.$set(_vm.editForm, \"testMode\", $$v)},expression:\"editForm.testMode\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":16}},[_c('el-form-item',{attrs:{\"label\":\"用例标题\",\"prop\":\"testCaseTitle\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入用例标题\"},model:{value:(_vm.editForm.testCaseTitle),callback:function ($$v) {_vm.$set(_vm.editForm, \"testCaseTitle\", $$v)},expression:\"editForm.testCaseTitle\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"前置条件\",\"prop\":\"precondition\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5,\"placeholder\":\"请输入前置条件\"},model:{value:(_vm.editForm.precondition),callback:function ($$v) {_vm.$set(_vm.editForm, \"precondition\", $$v)},expression:\"editForm.precondition\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"测试步骤\",\"prop\":\"testStep\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5},model:{value:(_vm.editForm.testStep),callback:function ($$v) {_vm.$set(_vm.editForm, \"testStep\", $$v)},expression:\"editForm.testStep\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"预期结果\",\"prop\":\"expectResult\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":5},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\":\"writePerson\"}},[_c('el-input',{model:{value:(_vm.editForm.writePerson),callback:function ($$v) {_vm.$set(_vm.editForm, \"writePerson\", $$v)},expression:\"editForm.writePerson\"}})],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},model:{value:(_vm.editForm.comments),callback:function ($$v) {_vm.$set(_vm.editForm, \"comments\", $$v)},expression:\"editForm.comments\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"测试结果\",\"prop\":\"testResult\"}},[(_vm.editForm.testResult === '通过')?_c('span',{staticClass:\"color-pass\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.editForm.id,_vm.editForm.testResult)}},model:{value:(_vm.editForm.testResult),callback:function ($$v) {_vm.$set(_vm.editForm, \"testResult\", $$v)},expression:\"editForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):(_vm.editForm.testResult === '失败')?_c('span',{staticClass:\"color-fail\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.editForm.id,_vm.editForm.testResult)}},model:{value:(_vm.editForm.testResult),callback:function ($$v) {_vm.$set(_vm.editForm, \"testResult\", $$v)},expression:\"editForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):(_vm.editForm.testResult === '受阻')?_c('span',{staticClass:\"color-block\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.editForm.id,_vm.editForm.testResult)}},model:{value:(_vm.editForm.testResult),callback:function ($$v) {_vm.$set(_vm.editForm, \"testResult\", $$v)},expression:\"editForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1):_c('span',{staticClass:\"color-skip\"},[_c('el-select',{staticClass:\"select-test-result\",attrs:{\"placeholder\":\"请选择\"},on:{\"change\":function($event){return _vm.detailUpdateTestCaseStatus(_vm.editForm.id,_vm.editForm.testResult)}},model:{value:(_vm.editForm.testResult),callback:function ($$v) {_vm.$set(_vm.editForm, \"testResult\", $$v)},expression:\"editForm.testResult\"}},_vm._l((_vm.caseTestResultOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"value\":item.label}})}),1)],1)])],1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.editDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.editFunctionTestCase}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"提示\",\"visible\":_vm.confirmBugDialogVisible,\"close-on-click-modal\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.confirmBugDialogVisible=$event}}},[_c('span',[_vm._v(\"确定要创建bug\")]),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.confirmBugDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.createBug()}}},[_vm._v(\"确 定\")])],1)]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"创建缺陷\",\"visible\":_vm.createBugDialogVisible,\"close-on-click-modal\":false,\"width\":\"60%\"},on:{\"update:visible\":function($event){_vm.createBugDialogVisible=$event},\"close\":_vm.cancelCreateBug}},[_c('div',{staticClass:\"confirm-create-bug-form\"},[_c('el-form',{ref:\"bugFormRef\",attrs:{\"model\":_vm.bugForm,\"label-width\":\"100px\",\"rules\":_vm.bugFormRules}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"disabled\":\"\"},model:{value:(_vm.bugForm.jiraItem),callback:function ($$v) {_vm.$set(_vm.bugForm, \"jiraItem\", $$v)},expression:\"bugForm.jiraItem\"}})],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"模块\",\"prop\":\"testMode\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.bugForm.testMode),callback:function ($$v) {_vm.$set(_vm.bugForm, \"testMode\", $$v)},expression:\"bugForm.testMode\"}},_vm._l((_vm.modeOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.name,\"value\":item.name}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"影响版本\",\"prop\":\"version\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.bugForm.version),callback:function ($$v) {_vm.$set(_vm.bugForm, \"version\", $$v)},expression:\"bugForm.version\"}},_vm._l((_vm.versionOptions),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"缺陷标题\",\"prop\":\"summary\"}},[_c('el-input',{attrs:{\"type\":\"text\",\"rows\":5},model:{value:(_vm.bugForm.summary),callback:function ($$v) {_vm.$set(_vm.bugForm, \"summary\", $$v)},expression:\"bugForm.summary\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"缺陷描述\",\"prop\":\"customfield_10204\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":10},model:{value:(_vm.bugForm.customfield_10204),callback:function ($$v) {_vm.$set(_vm.bugForm, \"customfield_10204\", $$v)},expression:\"bugForm.customfield_10204\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"严重程度\",\"prop\":\"customfield_10203\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.bugForm.customfield_10203),callback:function ($$v) {_vm.$set(_vm.bugForm, \"customfield_10203\", $$v)},expression:\"bugForm.customfield_10203\"}},_vm._l((_vm.bugLevelOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.value,\"value\":item.value}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"优先级\",\"prop\":\"priority\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.bugForm.priority),callback:function ($$v) {_vm.$set(_vm.bugForm, \"priority\", $$v)},expression:\"bugForm.priority\"}},_vm._l((_vm.priorityOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.value,\"value\":item.value}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"标签\",\"prop\":\"labels\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.bugForm.labels),callback:function ($$v) {_vm.$set(_vm.bugForm, \"labels\", $$v)},expression:\"bugForm.labels\"}},_vm._l((_vm.labelsOptions),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1)],1)],1)],1),_vm._v(\" \"),_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"缺陷类型\",\"prop\":\"customfield_10300\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\"},model:{value:(_vm.bugForm.customfield_10300),callback:function ($$v) {_vm.$set(_vm.bugForm, \"customfield_10300\", $$v)},expression:\"bugForm.customfield_10300\"}},_vm._l((_vm.bugTypeOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.value,\"value\":item.value}})}),1)],1)],1),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":8}},[_c('el-form-item',{attrs:{\"label\":\"经办人\",\"prop\":\"assignee\"}},[_c('el-autocomplete',{attrs:{\"fetch-suggestions\":_vm.querySearchAsync,\"placeholder\":\"请输入内容\"},on:{\"select\":_vm.handleSelect},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var item = ref.item;\nreturn [_c('div',[_vm._v(_vm._s(item.value=item.dictValue))])]}}]),model:{value:(_vm.bugForm.assignee),callback:function ($$v) {_vm.$set(_vm.bugForm, \"assignee\", $$v)},expression:\"bugForm.assignee\"}})],1)],1)],1),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"附件\",\"prop\":\"precondition\"}},[_c('function-test-plan-list-attachment',{ref:\"uploadAttachment\"})],1)],1)],1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cancelCreateBug}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.beginToCreateBug()}}},[_vm._v(\"确 定\")])],1)]),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"初次登录请输入jira密码\",\"visible\":_vm.jiraPwdDialogVisible,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.jiraPwdDialogVisible=$event}}},[_c('el-form',{ref:\"jiraPwdFormRef\",attrs:{\"model\":_vm.jiraPwdForm,\"label-width\":\"100px\"}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[_c('el-form-item',{attrs:{\"label\":\"jira密码\",\"prop\":\"jiraPwd\"}},[_c('el-input',{attrs:{\"type\":\"text\"},model:{value:(_vm.jiraPwdForm.jiraPwd),callback:function ($$v) {_vm.$set(_vm.jiraPwdForm, \"jiraPwd\", $$v)},expression:\"jiraPwdForm.jiraPwd\"}})],1)],1)],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.jiraPwdDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.jiraPwd()}}},[_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-e13c91be\",\"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/function/FunctionTestPlanList.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-e13c91be\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FunctionTestPlanList.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!./FunctionTestPlanList.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FunctionTestPlanList.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e13c91be\\\",\\\"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!./FunctionTestPlanList.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-e13c91be\"\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/function/FunctionTestPlanList.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"function-report-box\" v-loading=\"loading\">\n <div class=\"function-plan-table\" v-if=\"tableIsShow\"></div>\n <div class=\"function-roport-box-query\">\n <el-form :inline=\"true\" class=\"demo-form-inline\">\n <el-row :gutter=\"20\">\n <el-col :span=\"24\">\n <el-form-item label=\"计划名称\" prop=\"planId\" v-if=\"ifShowQuery\">\n <el-select v-model=\"queryInfo.planId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in planOptions\"\n :key=\"item.id\"\n :label=\"item.planName\"\n :value=\"item.id+''\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item v-if=\"ifShowQuery\">\n <el-button type=\"primary\" @click=\"getTestPlanExecCondition\">查询</el-button>\n </el-form-item>\n <el-form-item v-else>\n <el-button @click=\"backParentPage\">返回</el-button>\n </el-form-item>\n </el-col>\n </el-row>\n </el-form>\n </div>\n <div class=\"function-plan-reoprt\" v-if=\"reportIsShow\">\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.planName\" 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.director\" 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.startTime\" 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.endTime\" 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.status\" 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.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=\"function-report-box-main\">{{pieChart}}</div>\n </div>\n <div class=\"statistic-table default-style\">\n <div class=\"report-title\">表格统计</div>\n <div class=\"function-report-statistic-table\">\n <el-table\n :data=\"testResults\">\n <el-table-column label=\"状态\" prop=\"testResult\"></el-table-column>\n <el-table-column label=\"数量(条)\" prop=\"execCondition\"></el-table-column>\n <el-table-column label=\"占比\" prop=\"execScale\" :formatter=\"formatExecScale\"></el-table-column>\n </el-table>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nexport default {\n \n data () {\n return {\n loading: false,\n tableIsShow: false,\n reportIsShow: false,\n ifShowQuery:true,\n planNames: [],\n planConditions: [],\n planOptions: [],\n pieChart:\"\",\n queryInfo: {\n planId: ''\n },\n detailForm: {},\n testResults: [],\n empty: true\n }\n },\n\n props: ['reportPlanId','showQueryFlag'],\n mounted () {\n },\n beforeCreate(){\n },\n created (){\n this.getShowQueryFlag()\n this.getPlanNameList()\n },\n methods: {\n getShowQueryFlag(){\n if(typeof(this.showQueryFlag) != 'undefined'){ \n this.ifShowQuery=this.showQueryFlag\n this.queryInfo.planId=this.reportPlanId\n }\n this.getTestPlanExecCondition() \n },\n backParentPage(){\n this.$emit('report-event',false)\n },\n formatTestStatus(status){\n return status == '0' ? '未开始' : status == '1' ? '进行中' : '已结束'\n },\n formatExecScale(row){\n return row.execScale + '%'\n },\n getPlanInfoByPlanId(){\n this.$api.plan.queryTestPlanById(this.queryInfo.planId).then(res=>{\n this.detailForm = res.data.data\n this.detailForm.status = this.formatTestStatus(this.detailForm.status)\n }).catch(()=>{})\n },\n getPlanNameList() {\n this.$api.plan.queryAllPlanName().then((res) => {\n this.planOptions = res.data.data\n }).catch(()=>{})\n },\n getTestPlanExecCondition(){\n this.loading = true\n if(!this.queryInfo.planId){\n this.$notify({\n type: 'warning',\n message: '请选择计划名称'\n })\n this.loading = false\n return\n }\n this.getPlanInfoByPlanId()\n this.$api.planrelation.queryTestCaseExecConditionByPlanId(this.queryInfo.planId).then(res=>{\n if(res.data.data.length > 0){\n this.planNames = []\n this.planConditions = []\n var conditions = res.data.data\n this.testResults = conditions\n conditions.forEach(ele => {\n var obj = {}\n obj.value = ele.execScale\n obj.name = ele.testResult + ' : ' + ele.execCondition + '条'\n this.planNames.push(ele.testResult + ' : ' + ele.execCondition + '条')\n this.planConditions.push(obj)\n })\n this.reportIsShow = true\n var _this = this\n setTimeout(function(){\n _this.loading = false\n // _this.empty = false\n _this.drawAllCharts()\n }, 500)\n }else{\n \n this.planNames = []\n this.planConditions = []\n this.loading = false\n this.reportIsShow = true\n // this.empty = true\n this.pieChart=\"暂无加入计划的测试用例\"\n // this.drawAllCharts()\n this.$notify({\n type: 'warning',\n message: '暂无加入计划用例统计数据'\n })\n }\n \n }).catch(()=>{})\n },\n drawAllCharts(){\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: '占比:{c}%',\n   textStyle: {\n     fontSize: 18\n   }\n },\n   legend: {\n     orient: 'vertical',\n     left: 'left',\n     data: this.planNames,\n   textStyle: {\n     fontSize: 18\n   }\n },\n   toolbox: {\n     feature: {\n //       dataView: {\n //         show: true,\n //         readOnly: true\n //    },\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.planConditions,\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 }\n}\n</script>\n\n<style lang=\"less\" scoped>\n.function-report-box {\n width: 97.5%;\n height: 100%;\n padding: 10px 20px;\n}\n.function-roport-box-query{\n height: 70px;\n widows: 100%;\n}\n.function-plan-reoprt{\n width: 100%;\n height: 100%;\n}\n.function-report-box-main {\n min-width: 500px;\n min-height: 300px;\n}\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</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/function/FunctionTestReport.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:\"function-report-box\"},[(_vm.tableIsShow)?_c('div',{staticClass:\"function-plan-table\"}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"function-roport-box-query\"},[_c('el-form',{staticClass:\"demo-form-inline\",attrs:{\"inline\":true}},[_c('el-row',{attrs:{\"gutter\":20}},[_c('el-col',{attrs:{\"span\":24}},[(_vm.ifShowQuery)?_c('el-form-item',{attrs:{\"label\":\"计划名称\",\"prop\":\"planId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.planId),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"planId\", $$v)},expression:\"queryInfo.planId\"}},_vm._l((_vm.planOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.planName,\"value\":item.id+''}})}),1)],1):_vm._e(),_vm._v(\" \"),(_vm.ifShowQuery)?_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.getTestPlanExecCondition}},[_vm._v(\"查询\")])],1):_c('el-form-item',[_c('el-button',{on:{\"click\":_vm.backParentPage}},[_vm._v(\"返回\")])],1)],1)],1)],1)],1),_vm._v(\" \"),(_vm.reportIsShow)?_c('div',{staticClass:\"function-plan-reoprt\"},[_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.planName),callback:function ($$v) {_vm.$set(_vm.detailForm, \"planName\", $$v)},expression:\"detailForm.planName\"}})],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.director),callback:function ($$v) {_vm.$set(_vm.detailForm, \"director\", $$v)},expression:\"detailForm.director\"}})],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.startTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"startTime\", $$v)},expression:\"detailForm.startTime\"}})],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.endTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"endTime\", $$v)},expression:\"detailForm.endTime\"}})],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.status),callback:function ($$v) {_vm.$set(_vm.detailForm, \"status\", $$v)},expression:\"detailForm.status\"}})],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.comments),callback:function ($$v) {_vm.$set(_vm.detailForm, \"comments\", $$v)},expression:\"detailForm.comments\"}})],1)],1)],1)],1)],1)]),_vm._v(\" \"),_c('div',{staticClass:\"statistic-pic default-style\"},[_c('div',{staticClass:\"report-title\"},[_vm._v(\"饼图统计\")]),_vm._v(\" \"),_c('div',{staticClass:\"function-report-box-main\",attrs:{\"id\":\"reportMain\"}},[_vm._v(_vm._s(_vm.pieChart))])]),_vm._v(\" \"),_c('div',{staticClass:\"statistic-table default-style\"},[_c('div',{staticClass:\"report-title\"},[_vm._v(\"表格统计\")]),_vm._v(\" \"),_c('div',{staticClass:\"function-report-statistic-table\"},[_c('el-table',{attrs:{\"data\":_vm.testResults}},[_c('el-table-column',{attrs:{\"label\":\"状态\",\"prop\":\"testResult\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"数量(条)\",\"prop\":\"execCondition\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"占比\",\"prop\":\"execScale\",\"formatter\":_vm.formatExecScale}})],1)],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-121f439e\",\"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/function/FunctionTestReport.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-121f439e\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FunctionTestReport.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!./FunctionTestReport.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FunctionTestReport.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-121f439e\\\",\\\"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!./FunctionTestReport.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-121f439e\"\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/function/FunctionTestReport.vue\n// module id = null\n// module chunks = "," <template>\n <div class=\"block\">\n <span class=\"demonstration\"></span>\n <el-date-picker\n v-model=\"datevalue\"\n value-format=\"yyyy-MM-dd HH:mm:ss\"\n type=\"datetime\"\n placeholder=\"选择日期时间\"\n :picker-options=\"pickerOptions\"\n @change=\"change\"\n >\n </el-date-picker>\n \n </div>\n</template>\n<script >\nexport default {\n props: ['transTime'],\n data() {\n return {\n datevalue: '',\n pickerOptions:{\n disabledDate(time){\n return time.getTime()<(Date.now()-(24 * 60 * 60 * 1000))\n }\n }\n \n };\n },\n watch:{\n \n },\n mounted() {\n this.validStartValue()\n },\n methods:{\n \n validStartValue(){\n \n if(this.transTime){\n //父传子\n this.datevalue=this.transTime\n }\n else\n this.datevalue = ''\n },\n clearDatepicker(){\n this.datevalue = ''\n },\n change(){\n //子传父\n this.$emit('dateTimePickerFn',this.datevalue)\n }\n }\n }\n</script>\n<style scoped long=\"less\">\n.el-date-editor.el-input {\n width: 100%;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/DateTimePicker.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"demonstration\"}),_vm._v(\" \"),_c('el-date-picker',{attrs:{\"value-format\":\"yyyy-MM-dd HH:mm:ss\",\"type\":\"datetime\",\"placeholder\":\"选择日期时间\",\"picker-options\":_vm.pickerOptions},on:{\"change\":_vm.change},model:{value:(_vm.datevalue),callback:function ($$v) {_vm.datevalue=$$v},expression:\"datevalue\"}})],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-28405aaa\",\"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/DateTimePicker.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-28405aaa\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./DateTimePicker.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!./DateTimePicker.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./DateTimePicker.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-28405aaa\\\",\\\"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!./DateTimePicker.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-28405aaa\"\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/DateTimePicker.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"function-plan-box\">\n <div class=\"plan-list-box\">\n <function-test-plan-list v-if=\"showListFlag\" @plan-list-event=\"changeShowListFlag\" ref=\"planList\" :listPlanId=\"toPlanListPlanId\"></function-test-plan-list>\n </div>\n <div class=\"plan-report-box\">\n <function-test-report v-if=\"showReportFlag\" @report-event=\"changeShowReportFlag\" ref=\"planList\" :reportPlanId=\"toReportPlanId\" :showQueryFlag=\"toshowQueryFlag\"></function-test-report>\n </div>\n <div class=\"plan-box\" v-if=\"showPlanFlag\">\n <!-- 查询区 -->\n <el-form :inline=\"true\" class=\"demo-form-inline\">\n <el-form-item label=\"计划名称\">\n <el-select v-model=\"queryInfo.planName\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in planNameOptions\"\n :key=\"item.id\"\n :label=\"item.planName\"\n :value=\"item.planName\"\n >\n </el-option>\n </el-select>\n </el-form-item>\n\n <el-form-item label=\"状态\">\n <el-select v-model=\"queryInfo.status\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in planStatusOptions\"\n :key=\"item.id\"\n :label=\"item.label\"\n :value=\"item.id\"\n > \n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"负责人\">\n <el-input\n placeholder=\"请输入负责人\"\n clearable\n class=\"input-with-select\"\n v-model=\"queryInfo.director\"\n ></el-input>\n </el-form-item>\n \n <el-form-item>\n <el-button type=\"primary\" @click=\"getPlanList\">查询</el-button>\n </el-form-item>\n </el-form>\n <!-- 列表上的操作按钮 -->\n <el-row class=\"add_button\">\n <el-col>\n <el-button type=\"primary\" @click=\"addPlanButton\"\n >添加</el-button\n >\n <el-button type=\"primary\" @click=\"batchDelFunctionPlan\"\n >批量删除</el-button\n >\n <el-button type=\"primary\" @click=\"copyFunctionPlan\"\n >复制计划</el-button\n >\n </el-col>\n </el-row>\n <!-- 列表 -->\n <el-table\n v-loading=\"loading\"\n ref=\"multipleTable\"\n tooltip-effect=\"dark\"\n :data=\"\n testPlanList.slice(\n (currpage - 1) * queryInfo.pageSize,\n currpage * queryInfo.pageSize\n )\n \"\n border\n :fit=\"true\"\n @selection-change=\"handleSelectionChange\"\n >\n <el-table-column\n type=\"selection\"\n width=\"55\"\n align=\"center\"\n ></el-table-column>\n <el-table-column\n label=\"序号\"\n type=\"index\"\n align=\"center\"\n width=\"50\"\n ></el-table-column>\n <el-table-column\n label=\"计划名称\"\n prop=\"planName\"\n width=\"250\"\n ></el-table-column>\n <el-table-column\n label=\"状态\"\n prop=\"status\"\n width=\"100\"\n :formatter=\"statusFormat\"\n ></el-table-column>\n <el-table-column\n label=\"所属环境\"\n prop=\"envId\"\n width=\"100\"\n ></el-table-column>\n <!-- <el-table-column\n label=\"版本号\"\n prop=\"version\"\n width=\"100\"\n ></el-table-column> -->\n <el-table-column\n label=\"负责人\"\n prop=\"director\"\n width=\"100\"\n ></el-table-column>\n <el-table-column label=\"创建时间\" prop=\"createTime\" width=\"200\"></el-table-column>\n <el-table-column label=\"开始时间\" prop=\"startTime\" width=\"200\"></el-table-column>\n <el-table-column label=\"结束时间\" prop=\"endTime\" width=\"200\"></el-table-column>\n <el-table-column label=\"备注\" prop=\"comments\" ></el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"180\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-button\n type=\"text\"\n size=\"small\"\n @click=\"showDetailDialog(scope.row.id)\"\n >执行</el-button\n >\n <el-button\n type=\"text\"\n size=\"small\"\n @click=\"showReprot(scope.row.id)\"\n >报告</el-button\n >\n <el-button\n type=\"text\"\n size=\"small\"\n @click=\"showEditDialog(scope.row.id,scope.row.status)\"\n >编辑</el-button\n >\n <el-button\n type=\"text\"\n size=\"small\"\n @click=\"delFunctionTestPlan(scope.row.id,scope.row.status)\"\n >删除</el-button\n >\n </template>\n </el-table-column>\n </el-table>\n <!-- 分页-->\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 >\n </el-pagination>\n <!-- 各种弹窗 -->\n <el-dialog\n title=\"添加测试计划\"\n :visible.sync=\"addDialogVisible\"\n width=\"30%\"\n @close=\"addDialogClose\"\n >\n <el-form\n :model=\"addForm\"\n :rules=\"addFormRules\"\n ref=\"addFormRef\"\n label-width=\"100px\"\n >\n <el-form-item label=\"计划名称\" prop=\"planName\">\n <el-input v-model=\"addForm.planName\"></el-input>\n </el-form-item>\n <el-form-item label=\"所属环境\" prop=\"envId\">\n <el-select v-model=\"addForm.envId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in envOptions\"\n :key=\"item.dictCode\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\"\n > \n </el-option>\n </el-select>\n </el-form-item>\n <!-- <el-form-item label=\"版本号\" prop=\"version\">\n <el-select v-model=\"addForm.version\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.versionName\"\n :label=\"item.versionName\"\n :value=\"item.versionName\"\n > \n </el-option>\n </el-select>\n </el-form-item> -->\n <el-form-item label=\"负责人\" prop=\"director\">\n <el-input v-model=\"addForm.director\"></el-input>\n </el-form-item>\n <el-form-item label=\"开始时间\" prop=\"startTime\">\n <DateTimePicker ref=\"startTimepicker\" @dateTimePickerFn=\"getstartTimevalue\"></DateTimePicker>\n </el-form-item>\n <el-form-item label=\"结束时间\" prop=\"endTime\">\n <DateTimePicker ref=\"endTimepicker\" @dateTimePickerFn=\"getendTimevalue\"></DateTimePicker>\n </el-form-item>\n <el-form-item label=\"备注\" prop=\"comments\">\n <el-input\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入内容\"\n v-model=\"addForm.comments\">\n </el-input>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"addDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"addFunctionTestPlan\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n v-if=\"editDialogVisible\"\n title=\"编辑测试计划\"\n :visible.sync=\"editDialogVisible\"\n width=\"30%\"\n @close=\"editDialogClose\"\n >\n <el-form\n :model=\"editForm\"\n :rules=\"addFormRules\"\n ref=\"addFormRef\"\n label-width=\"100px\"\n >\n <el-form-item label=\"计划名称\" prop=\"planName\">\n <el-input v-model=\"editForm.planName\" :disabled=\"true\"></el-input>\n </el-form-item>\n <el-form-item label=\"所属环境\" prop=\"envId\">\n <el-select v-model=\"editForm.envId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in envOptions\"\n :key=\"item.dictCode\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\"\n > \n </el-option>\n </el-select>\n </el-form-item>\n <!-- <el-form-item label=\"版本号\" prop=\"version\">\n <el-select v-model=\"editForm.version\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.versionName\"\n :label=\"item.versionName\"\n :value=\"item.versionName\"\n > \n </el-option>\n </el-select>\n </el-form-item> -->\n <el-form-item label=\"负责人\" prop=\"director\">\n <el-input v-model=\"editForm.director\"></el-input>\n </el-form-item>\n <el-form-item label=\"开始时间\" prop=\"startTime\">\n <DateTimePicker :transTime=\"editForm.startTime\" ref=\"startTimepicker\" @dateTimePickerFn=\"getstartTimevalue\"></DateTimePicker>\n </el-form-item>\n <el-form-item label=\"结束时间\" prop=\"endTime\">\n <DateTimePicker :transTime=\"editForm.endTime\" ref=\"endTimepicker\" @dateTimePickerFn=\"getendTimevalue\"></DateTimePicker>\n </el-form-item>\n <el-form-item label=\"备注\" prop=\"comments\">\n <el-input\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入内容\"\n v-model=\"editForm.comments\">\n </el-input>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"editDialogClose\">取 消</el-button>\n <el-button type=\"primary\" @click=\"editTestPlan\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"复制测试计划\"\n :visible.sync=\"copyDialogVisible\"\n width=\"30%\"\n @close=\"copyDialogClose\"\n >\n <el-form\n :model=\"copyForm\"\n :rules=\"copyFormRules\"\n ref=\"copyFormRef\"\n label-width=\"100px\"\n >\n <el-form-item label=\"计划名称\" prop=\"planName\">\n <el-input v-model=\"copyForm.planName\"></el-input>\n </el-form-item>\n <el-form-item label=\"所属环境\" prop=\"envId\">\n <el-select v-model=\"copyForm.envId\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in envOptions\"\n :key=\"item.dictCode\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\"\n > \n </el-option>\n </el-select>\n </el-form-item>\n <!-- <el-form-item label=\"版本号\" prop=\"version\">\n <el-select v-model=\"copyForm.version\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in versionOptions\"\n :key=\"item.versionName\"\n :label=\"item.versionName\"\n :value=\"item.versionName\"\n > \n </el-option>\n </el-select>\n </el-form-item> -->\n <el-form-item label=\"负责人\" prop=\"director\">\n <el-input v-model=\"copyForm.director\"></el-input>\n </el-form-item>\n <el-form-item label=\"开始时间\" prop=\"startTime\">\n <DateTimePicker ref=\"startTimepicker\" @dateTimePickerFn=\"getstartTimevalue\"></DateTimePicker>\n </el-form-item>\n <el-form-item label=\"结束时间\" prop=\"endTime\">\n <DateTimePicker ref=\"endTimepicker\" @dateTimePickerFn=\"getendTimevalue\"></DateTimePicker>\n </el-form-item>\n <el-form-item label=\"备注\" prop=\"comments\">\n <el-input\n type=\"textarea\"\n :rows=\"2\"\n placeholder=\"请输入内容\"\n v-model=\"copyForm.comments\">\n </el-input>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"copyDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"copyFunctionTestPlan\">确 定</el-button>\n </span>\n </el-dialog>\n </div>\n </div>\n</template>\n\n<script>\nimport FunctionTestPlanList from './FunctionTestPlanList.vue'\nimport FunctionTestReport from './FunctionTestReport.vue'\nimport DateTimePicker from '../../DateTimePicker.vue'\n\nexport default {\n data() {\n const validateStartTime=(rule, value, callback)=>{\n value=this.startTimevalue\n if(!value){\n callback(new Error(\"请选择开始时间\"))\n }else{\n callback()\n }\n }\n const validateEndTime=(rule,value,callback)=>{\n value=this.endTimevalue\n if(!value){\n callback(new Error(\"请选择结束时间\"))\n }else if(Date.parse(this.startTimevalue)>=Date.parse(value)){\n callback(new Error(\"结束时间必须大于开始\"))\n }else{\n callback()\n }\n \n }\n return {\n toPlanListPlanId: '',\n toReportPlanId:'',\n showListFlag: false,\n showReportFlag:false,\n toshowQueryFlag:false,\n showPlanFlag: true,\n loading: false,\n planNameOptions: [],\n detailForm: {},\n queryInfo: {\n pageNum: 1,\n pageSize: 10,\n planName: \"\",\n director:\"\",\n status: \"\",\n envId:\"\",\n version:\"\"\n },\n \n versionQueryInfo:{\n pageNum: 1,\n pageSize: 10,\n versionName:\"\"\n },\n envOptions:[],\n versionOptions:[],\n testPlanList: [],\n currpage: 1,\n total: 0,\n addDialogVisible: false,\n editDialogVisible:false,\n copyDialogVisible:false,\n addForm: {\n planName: \"\",\n director: \"\",\n startTime: \"\",\n endTime: \"\",\n createTime: \"\",\n status: \"\",\n comments:\"\",\n envId:\"\",\n version:\"\"\n },\n copyForm:{\n copyPlanId:\"\",\n planName: \"\",\n director: \"\",\n startTime: \"\",\n endTime: \"\",\n createTime: \"\",\n status: \"\",\n comments:\"\",\n envId:\"\",\n version:\"\"\n },\n editForm: {\n },\n startTimevalue:\"\",\n endTimevalue:\"\",\n textarea: '',\n multipleSelection: [],\n addFormRules: {\n planName: [\n { required: true, message: \"请输入测试计划名称\", trigger: \"blur\" },\n {\n min: 1,\n max: 20,\n message: \"长度在 1 到 20 个字符\",\n trigger: \"blur\",\n },\n ],\n envId: [\n { required: true, message: \"请选择所属环境\", trigger: \"blur\" },\n ],\n version:[\n { required: true, message: \"请选择版本\", trigger: \"blur\" },\n ],\n director: [\n { required: false,message: \"请输入负责人\", trigger: \"blur\" },\n {\n min: 1,\n max: 20,\n message: \"长度在 1 到 20 个字符\",\n trigger: \"blur\",\n },\n ],\n startTime: [\n { required: true,validator: validateStartTime, trigger: \"blur\" },\n \n ],\n endTime: [\n { required: true, validator: validateEndTime, trigger: \"blur\" },\n ],\n comments: [\n { required: false, message: \"请输入备注\", trigger: \"blur\" },\n {\n min: 0,\n max: 200,\n message: \"长度在 0 到 200 个字符\",\n trigger: \"blur\",\n },\n ],\n },\n copyFormRules: {\n planName: [\n { required: true, message: \"请输入测试计划名称\", trigger: \"blur\" },\n {\n min: 1,\n max: 20,\n message: \"长度在 1 到 20 个字符\",\n trigger: \"blur\",\n },\n ],\n envId: [\n { required: true, message: \"请选择所属环境\", trigger: \"blur\" },\n ],\n version:[\n { required: true, message: \"请选择版本\", trigger: \"blur\" },\n ],\n director: [\n { required: false,message: \"请输入负责人\", trigger: \"blur\" },\n {\n min: 1,\n max: 20,\n message: \"长度在 1 到 20 个字符\",\n trigger: \"blur\",\n },\n ],\n startTime: [\n { required: true,validator: validateStartTime, trigger: \"blur\" },\n \n ],\n endTime: [\n { required: true, validator: validateEndTime, trigger: \"blur\" },\n ],\n comments: [\n { required: false, message: \"请输入备注\", trigger: \"blur\" },\n {\n min: 0,\n max: 200,\n message: \"长度在 0 到 200 个字符\",\n trigger: \"blur\",\n },\n ],\n },\n\n planStatusOptions:[\n {\n id: 0,\n label:\"未开始\"\n },{\n id: 1,\n label:\"进行中\"\n },{\n id: 2,\n label:\"已结束\"\n }\n ]\n \n }\n \n\n },\n \n mounted() {\n this.getPlanNameList();\n },\n created() {\n this.getPlanList();\n },\n methods: {\n copyFunctionTestPlan(){\n this.$refs.copyFormRef.validate(valid => {\n if(!valid) return\n this.copyForm.createTime=new Date().getTime()\n this.copyForm.status=0\n var currentUser =JSON.parse(localStorage.getItem('userInfo')).nick\n this.copyForm.director =this.copyForm.director == ''?currentUser : this.addForm.director \n this.copyForm.startTime=this.startTimevalue\n this.copyForm.endTime=this.endTimevalue\n this.$api.plan.copyTestPlan(JSON.stringify(this.copyForm)).then(res =>{\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n })\n this.copyDialogVisible = false\n this.$refs.startTimepicker.clearDatepicker()\n this.$refs.endTimepicker.clearDatepicker()\n this.getPlanNameList()\n this.getPlanList();\n }).catch(()=>{\n this.loading = true\n })\n })\n },\n copyFunctionPlan(){\n \n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请勾选需要复制的测试计划'\n })\n }else if(this.multipleSelection.length > 1){\n this.$notify({\n type: 'warning',\n message: '仅支持单选复制'\n })\n }else{\n this.copyForm.copyPlanId=this.multipleSelection[0].id\n \n this.$api.dict.queryAllDataDict().then(res =>{\n this.envOptions=res.data.data.environment;\n })\n // this.$api.version.queryAllVersion(JSON.stringify(this.versionQueryInfo)).then(res=>{\n // this.versionOptions=res.data.data;\n // })\n this.copyDialogVisible = true\n }\n },\n copyDialogClose(){\n this.copyDialogVisible = false\n this.$refs.copyFormRef.resetFields();\n },\n changeShowListFlag(flag){\n this.showListFlag = flag\n this.showPlanFlag = true\n this.getPlanList();\n },\n changeShowReportFlag(flag){\n this.showReportFlag = flag\n this.showPlanFlag = true\n },\n showDetailDialog(id){\n this.toPlanListPlanId = id\n this.showListFlag = true\n this.showPlanFlag = false\n },\n showReprot(id){\n this.toReportPlanId =id\n this.showReportFlag = true\n this.showPlanFlag = false\n },\n addPlanButton(){\n this.addDialogVisible = true\n this.$api.dict.queryAllDataDict().then(res =>{\n this.envOptions=res.data.data.environment;\n })\n // this.$api.version.queryAllVersion(JSON.stringify(this.versionQueryInfo)).then(res=>{\n // this.versionOptions=res.data.data;\n // })\n },\n showEditDialog(id,status){\n if(id !=null && status == 0){\n this.$api.plan.queryTestPlanById(id).then(res=>{\n this.editForm=res.data.data\n this.startTimevalue = this.editForm.startTime\n this.endTimevalue = this.editForm.endTime\n this.editDialogVisible = true\n })\n this.$api.dict.queryAllDataDict().then(res =>{\n this.envOptions=res.data.data.environment;\n })\n this.$api.version.queryAllVersion(JSON.stringify(this.versionQueryInfo)).then(res=>{\n this.versionOptions=res.data.data;\n })\n }else{\n this.$confirm(\"测试计划未开始才可被编辑\",\"提示信息\",{\n confirmButtonText: \"确定\",\n cancelButtonText:\"取消\",\n type:\"warning\"\n })\n }\n },\n addFunctionTestPlan(){\n this.$refs.addFormRef.validate(valid => {\n if(!valid) return\n this.addForm.createTime=new Date().getTime()\n this.addForm.status=0\n var currentUser =JSON.parse(localStorage.getItem('userInfo')).nick\n this.addForm.director =this.addForm.director == ''?currentUser : this.addForm.director \n this.addForm.startTime=this.startTimevalue\n this.addForm.endTime=this.endTimevalue\n this.$api.plan.addTestPlan(JSON.stringify(this.addForm)).then(res =>{\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n })\n this.addDialogVisible = false\n this.$refs.startTimepicker.clearDatepicker()\n this.$refs.endTimepicker.clearDatepicker()\n this.getPlanNameList()\n this.getPlanList()\n }).catch(()=>{\n this.loading = true\n })\n })\n },\n editTestPlan(){\n this.$refs.addFormRef.validate(valid=>{\n if(!valid) return\n this.editForm.updateTime = new Date().getTime()\n var currentUser =JSON.parse(localStorage.getItem('userInfo')).nick\n this.editForm.director =this.editForm.director == ''?currentUser : this.editForm.director\n this.editForm.startTime=this.startTimevalue\n this.editForm.endTime=this.endTimevalue\n this.$api.plan.updateTestPlan(JSON.stringify(this.editForm)).then(res=>{\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n })\n this.editDialogVisible = false\n this.getPlanList();\n }).catch(()=>{\n this.loading = true\n })\n })\n },\n delFunctionTestPlan(id,status){\n \n if(id !=null && status == 0){\n this.$confirm(\"确定要删除吗\",\"提示信息\",{\n confirmButtonText: \"确定\",\n cancelButtonText:\"取消\",\n type:\"warning\"\n\n }).then(()=>{\n this.$api.plan.delFunctionTestPlan(id).then(res=>{\n this.$notify({\n type: \"success\",\n message: res.data.msg\n })\n this.getPlanList()\n })\n })\n }else{\n this.$confirm(\"测试计划未开始才可删除\",\"提示信息\",{\n confirmButtonText: \"确定\",\n cancelButtonText:\"取消\",\n type:\"warning\"\n\n })\n }\n \n },\n getstartTimevalue(sonStartTimevalue){\n \n this.startTimevalue =sonStartTimevalue\n },\n getendTimevalue(sonEndTimevalue){\n \n this.endTimevalue=sonEndTimevalue\n },\n handleSelectionChange(val) {\n this.multipleSelection = val;\n },\n\n getPlanNameList() {\n this.loading=true\n this.$api.plan\n .queryAllPlanName(JSON.stringify(this.queryInfo))\n .then((res) => {\n this.loading = false;\n localStorage.setItem(\"active\", 0);\n this.planNameOptions = res.data.data;\n })\n .catch(() => {\n this.loading = false;\n });\n },\n getPlanList() {\n \n this.$api.plan\n .queryAllPlan(JSON.stringify(this.queryInfo))\n .then((res) => {\n \n this.testPlanList=res.data.data;\n this.total=res.data.count;\n })\n .catch(() => {\n this.loading = false;\n });\n },\n \n handleSizeChange (newSize) { \n this.queryInfo.pageSize = newSize\n this.getPlanList()\n },\n handleCurrentChange (newpageNum) {\n \n this.queryInfo.pageNum = newpageNum\n this.getPlanList()\n },\n addDialogClose() {\n this.$refs.addFormRef.resetFields();\n this.textarea=''\n \n },\n editDialogClose(){\n this.editDialogVisible=false\n },\n statusFormat(row,column){\n if(row.status ==0){\n return '未开始'\n }else if(row.status ==1){\n return '进行中'\n }else if(row.status ==2){\n return '已结束'\n }\n },\n \n batchDelFunctionPlan(){\n if(this.multipleSelection.length == 0){\n this.$notify({\n type: 'warning',\n message: '请勾选需要删除的测试计划'\n })\n }\n else{\n var selectDatas = this.multipleSelection\n var flag=false\n var statusList=[]\n selectDatas.forEach(element => {\n \n if(element.status !=0){\n statusList.push(element.status)\n }\n })\n \n if(statusList.length == 0 ){\n flag=true\n }\n if (flag){\n this.loading = true\n this.$confirm('确定删除吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.$api.plan.batchDeleteFunctionPlan(JSON.stringify(selectDatas)).then(res => {\n this.loading = false\n this.$notify({\n type: 'success',\n message: res.data.msg\n })\n this.getPlanList()\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {\n this.loading = false\n })\n }else{\n this.$confirm('测试计划未开始才可删除', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n })\n }\n }\n }\n \n } ,\n components: {\n DateTimePicker,\n FunctionTestPlanList,\n FunctionTestReport\n } \n}\n</script>\n\n<style scoped lang=\"less\">\n.function-plan-box {\n padding: 10px 25px;\n}\n.el-table {\n margin-top: 23px;\n margin-bottom: 10px;\n}\n.el-pagination {\n margin-bottom: 20px;\n}\n.el-select{\n width:100%;\n}\n</style>\n\n\n// WEBPACK FOOTER //\n// src/components/test/function/FunctionTestPlan.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"function-plan-box\"},[_c('div',{staticClass:\"plan-list-box\"},[(_vm.showListFlag)?_c('function-test-plan-list',{ref:\"planList\",attrs:{\"listPlanId\":_vm.toPlanListPlanId},on:{\"plan-list-event\":_vm.changeShowListFlag}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"plan-report-box\"},[(_vm.showReportFlag)?_c('function-test-report',{ref:\"planList\",attrs:{\"reportPlanId\":_vm.toReportPlanId,\"showQueryFlag\":_vm.toshowQueryFlag},on:{\"report-event\":_vm.changeShowReportFlag}}):_vm._e()],1),_vm._v(\" \"),(_vm.showPlanFlag)?_c('div',{staticClass:\"plan-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.planName),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"planName\", $$v)},expression:\"queryInfo.planName\"}},_vm._l((_vm.planNameOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.planName,\"value\":item.planName}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"状态\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.status),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"status\", $$v)},expression:\"queryInfo.status\"}},_vm._l((_vm.planStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.label,\"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.director),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"director\", $$v)},expression:\"queryInfo.director\"}})],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.getPlanList}},[_vm._v(\"查询\")])],1)],1),_vm._v(\" \"),_c('el-row',{staticClass:\"add_button\"},[_c('el-col',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.addPlanButton}},[_vm._v(\"添加\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.batchDelFunctionPlan}},[_vm._v(\"批量删除\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.copyFunctionPlan}},[_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.testPlanList.slice(\n (_vm.currpage - 1) * _vm.queryInfo.pageSize,\n _vm.currpage * _vm.queryInfo.pageSize\n ),\"border\":\"\",\"fit\":true},on:{\"selection-change\":_vm.handleSelectionChange}},[_c('el-table-column',{attrs:{\"type\":\"selection\",\"width\":\"55\",\"align\":\"center\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"序号\",\"type\":\"index\",\"align\":\"center\",\"width\":\"50\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"计划名称\",\"prop\":\"planName\",\"width\":\"250\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"状态\",\"prop\":\"status\",\"width\":\"100\",\"formatter\":_vm.statusFormat}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"所属环境\",\"prop\":\"envId\",\"width\":\"100\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"负责人\",\"prop\":\"director\",\"width\":\"100\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"创建时间\",\"prop\":\"createTime\",\"width\":\"200\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTime\",\"width\":\"200\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTime\",\"width\":\"200\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"180\",\"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.showReprot(scope.row.id)}}},[_vm._v(\"报告\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.showEditDialog(scope.row.id,scope.row.status)}}},[_vm._v(\"编辑\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delFunctionTestPlan(scope.row.id,scope.row.status)}}},[_vm._v(\"删除\")])]}}],null,false,516029917)})],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.addDialogVisible,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.addDialogVisible=$event},\"close\":_vm.addDialogClose}},[_c('el-form',{ref:\"addFormRef\",attrs:{\"model\":_vm.addForm,\"rules\":_vm.addFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"计划名称\",\"prop\":\"planName\"}},[_c('el-input',{model:{value:(_vm.addForm.planName),callback:function ($$v) {_vm.$set(_vm.addForm, \"planName\", $$v)},expression:\"addForm.planName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"所属环境\",\"prop\":\"envId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.addForm.envId),callback:function ($$v) {_vm.$set(_vm.addForm, \"envId\", $$v)},expression:\"addForm.envId\"}},_vm._l((_vm.envOptions),function(item){return _c('el-option',{key:item.dictCode,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"负责人\",\"prop\":\"director\"}},[_c('el-input',{model:{value:(_vm.addForm.director),callback:function ($$v) {_vm.$set(_vm.addForm, \"director\", $$v)},expression:\"addForm.director\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTime\"}},[_c('DateTimePicker',{ref:\"startTimepicker\",on:{\"dateTimePickerFn\":_vm.getstartTimevalue}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTime\"}},[_c('DateTimePicker',{ref:\"endTimepicker\",on:{\"dateTimePickerFn\":_vm.getendTimevalue}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入内容\"},model:{value:(_vm.addForm.comments),callback:function ($$v) {_vm.$set(_vm.addForm, \"comments\", $$v)},expression:\"addForm.comments\"}})],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.addDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.addFunctionTestPlan}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),(_vm.editDialogVisible)?_c('el-dialog',{attrs:{\"title\":\"编辑测试计划\",\"visible\":_vm.editDialogVisible,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.editDialogVisible=$event},\"close\":_vm.editDialogClose}},[_c('el-form',{ref:\"addFormRef\",attrs:{\"model\":_vm.editForm,\"rules\":_vm.addFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"计划名称\",\"prop\":\"planName\"}},[_c('el-input',{attrs:{\"disabled\":true},model:{value:(_vm.editForm.planName),callback:function ($$v) {_vm.$set(_vm.editForm, \"planName\", $$v)},expression:\"editForm.planName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"所属环境\",\"prop\":\"envId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.editForm.envId),callback:function ($$v) {_vm.$set(_vm.editForm, \"envId\", $$v)},expression:\"editForm.envId\"}},_vm._l((_vm.envOptions),function(item){return _c('el-option',{key:item.dictCode,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"负责人\",\"prop\":\"director\"}},[_c('el-input',{model:{value:(_vm.editForm.director),callback:function ($$v) {_vm.$set(_vm.editForm, \"director\", $$v)},expression:\"editForm.director\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTime\"}},[_c('DateTimePicker',{ref:\"startTimepicker\",attrs:{\"transTime\":_vm.editForm.startTime},on:{\"dateTimePickerFn\":_vm.getstartTimevalue}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTime\"}},[_c('DateTimePicker',{ref:\"endTimepicker\",attrs:{\"transTime\":_vm.editForm.endTime},on:{\"dateTimePickerFn\":_vm.getendTimevalue}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入内容\"},model:{value:(_vm.editForm.comments),callback:function ($$v) {_vm.$set(_vm.editForm, \"comments\", $$v)},expression:\"editForm.comments\"}})],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.editDialogClose}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.editTestPlan}},[_vm._v(\"确 定\")])],1)],1):_vm._e(),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"复制测试计划\",\"visible\":_vm.copyDialogVisible,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.copyDialogVisible=$event},\"close\":_vm.copyDialogClose}},[_c('el-form',{ref:\"copyFormRef\",attrs:{\"model\":_vm.copyForm,\"rules\":_vm.copyFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"计划名称\",\"prop\":\"planName\"}},[_c('el-input',{model:{value:(_vm.copyForm.planName),callback:function ($$v) {_vm.$set(_vm.copyForm, \"planName\", $$v)},expression:\"copyForm.planName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"所属环境\",\"prop\":\"envId\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.copyForm.envId),callback:function ($$v) {_vm.$set(_vm.copyForm, \"envId\", $$v)},expression:\"copyForm.envId\"}},_vm._l((_vm.envOptions),function(item){return _c('el-option',{key:item.dictCode,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"负责人\",\"prop\":\"director\"}},[_c('el-input',{model:{value:(_vm.copyForm.director),callback:function ($$v) {_vm.$set(_vm.copyForm, \"director\", $$v)},expression:\"copyForm.director\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTime\"}},[_c('DateTimePicker',{ref:\"startTimepicker\",on:{\"dateTimePickerFn\":_vm.getstartTimevalue}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTime\"}},[_c('DateTimePicker',{ref:\"endTimepicker\",on:{\"dateTimePickerFn\":_vm.getendTimevalue}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"rows\":2,\"placeholder\":\"请输入内容\"},model:{value:(_vm.copyForm.comments),callback:function ($$v) {_vm.$set(_vm.copyForm, \"comments\", $$v)},expression:\"copyForm.comments\"}})],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.copyDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.copyFunctionTestPlan}},[_vm._v(\"确 定\")])],1)],1)],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-5d38ea14\",\"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/function/FunctionTestPlan.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-5d38ea14\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FunctionTestPlan.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!./FunctionTestPlan.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FunctionTestPlan.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5d38ea14\\\",\\\"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!./FunctionTestPlan.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-5d38ea14\"\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/function/FunctionTestPlan.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"review-box\">\n <el-form :inline=\"true\" class=\"review-form-inline\">\n <el-form-item label=\"评审名称\">\n <el-input v-model=\"queryInfo.reviewName\" placeholder=\"请输入评审名称\" clearable></el-input>\n </el-form-item>\n <el-form-item>\n <el-form-item label=\"评审状态\">\n <el-select v-model=\"queryInfo.reviewStatus\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in reviewStatusOptions\"\n :key=\"item.id\"\n :label=\"item.dictValue\"\n :value=\"item.dictCode\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-button type=\"primary\" @click=\"selectTestReviewList\">查询</el-button>\n </el-form-item>\n <el-form-item>\n <el-button type=\"primary\" @click=\"addDialogVisible = true\">新建评审</el-button>\n </el-form-item>\n </el-form>\n <el-table :data=\"testReviewList.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=\"reviewName\"></el-table-column>\n <el-table-column label=\"状态\" prop=\"reviewStatus\" width=\"100\">\n <template slot-scope=\"scope\">\n <span v-if=\"scope.row.reviewStatus == '1'\">\n <el-tag type=\"info\">未进行</el-tag>\n </span>\n <span v-if=\"scope.row.reviewStatus == '2'\">\n <el-tag type=\"warning\">进行中</el-tag>\n </span>\n <span v-if=\"scope.row.reviewStatus == '3'\">\n <el-tag type=\"success\">已完成</el-tag>\n </span>\n </template>\n </el-table-column>\n <el-table-column label=\"结果分布\" prop=\"reviewResult\"></el-table-column>\n <el-table-column label=\"负责人\" prop=\"director\"></el-table-column>\n <el-table-column label=\"开始时间\" prop=\"startTime\"></el-table-column>\n <el-table-column label=\"结束时间\" prop=\"endTime\"></el-table-column>\n <el-table-column label=\"备注\" prop=\"comments\"></el-table-column>\n <el-table-column label=\"操作\" fixed=\"right\" width=\"200\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" @click=\"showSelectCaseDialog(scope.row.id)\" v-if=\"false\">选择用例</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"showDetailDialog(scope.row.id)\">查看</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"showEditDialog(scope.row.id)\">编辑</el-button>\n <el-button type=\"text\" size=\"small\" @click=\"delTestReview(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 <el-dialog\n title=\"新建评审\"\n :visible.sync=\"addDialogVisible\"\n :close-on-click-modal= 'false'\n width=\"30%\" @close=\"addDialogClose\">\n <el-form :model=\"addForm\" :rules=\"addFormRules\" ref=\"addFormRef\" label-width=\"100px\">\n <el-form-item label=\"评审名称\" prop=\"reviewName\">\n <el-input v-model=\"addForm.reviewName\"></el-input>\n </el-form-item>\n <el-form-item label=\"开始时间\" prop=\"startTime\">\n <template>\n <div class=\"block\">\n <el-date-picker\n v-model=\"addForm.startTime\"\n value-format=\"yyyy-MM-dd HH:mm:ss\"\n type=\"datetime\"\n placeholder=\"选择开始时间\">\n </el-date-picker>\n </div>\n </template>\n </el-form-item>\n <el-form-item label=\"结束时间\" prop=\"endTime\">\n <template>\n <div class=\"block\">\n <el-date-picker\n v-model=\"addForm.endTime\"\n value-format=\"yyyy-MM-dd HH:mm:ss\"\n type=\"datetime\"\n placeholder=\"选择结束时间\">\n </el-date-picker>\n </div>\n </template>\n </el-form-item>\n <el-form-item label=\"负责人\" prop=\"director\">\n <el-select v-model=\"addForm.director\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in userOptions\"\n :key=\"item.id\"\n :label=\"item.nick\"\n :value=\"item.username\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"备注\" prop=\"comments\">\n <el-input type=\"textarea\" v-model=\"addForm.comments\"></el-input>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"addDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"addTestReview\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"修改\"\n :visible.sync=\"editDialogVisible\"\n :close-on-click-modal= 'false'\n width=\"30%\" @close=\"editDialogClose\">\n <el-form :model=\"editForm\" :rules=\"addFormRules\" ref=\"editFormRef\" label-width=\"100px\">\n <el-form-item label=\"评审名称\" prop=\"reviewName\">\n <el-input v-model=\"editForm.reviewName\"></el-input>\n </el-form-item>\n <el-form-item label=\"开始时间\" prop=\"startTime\">\n <template>\n <div class=\"block\">\n <el-date-picker\n v-model=\"editForm.startTime\"\n value-format=\"yyyy-MM-dd HH:mm:ss\"\n type=\"datetime\"\n placeholder=\"选择开始时间\">\n </el-date-picker>\n </div>\n </template>\n </el-form-item>\n <el-form-item label=\"结束时间\" prop=\"endTime\">\n <template>\n <div class=\"block\">\n <el-date-picker\n v-model=\"editForm.endTime\"\n value-format=\"yyyy-MM-dd HH:mm:ss\"\n type=\"datetime\"\n placeholder=\"选择结束时间\">\n </el-date-picker>\n </div>\n </template>\n </el-form-item>\n <el-form-item label=\"负责人\" prop=\"director\">\n <el-select v-model=\"editForm.director\" placeholder=\"请选择\" clearable>\n <el-option\n v-for=\"item in userOptions\"\n :key=\"item.id\"\n :label=\"item.nick\"\n :value=\"item.username\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"备注\" prop=\"comments\">\n <el-input type=\"textarea\" v-model=\"editForm.comments\"></el-input>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"editDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"editTestReview\">确 定</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"修改\"\n :visible.sync=\"detailDialogVisible\"\n :close-on-click-modal= 'false'\n width=\"40%\" @close=\"detailDialogVisible = false\">\n <el-form :model=\"detailForm\" label-width=\"100px\">\n <el-form-item label=\"评审名称\">\n <el-input v-model=\"detailForm.reviewName\" disabled></el-input>\n </el-form-item>\n <el-form-item label=\"开始时间\">\n <el-input v-model=\"detailForm.startTime\" disabled></el-input>\n </el-form-item>\n <el-form-item label=\"结束时间\">\n <el-input v-model=\"detailForm.endTime\" disabled></el-input>\n </el-form-item>\n <el-form-item label=\"创建时间\">\n <el-input v-model=\"detailForm.createTime\" disabled></el-input>\n </el-form-item>\n <el-form-item label=\"创建人员\">\n <el-input v-model=\"detailForm.createPerson\" disabled></el-input>\n </el-form-item>\n <el-form-item label=\"更新时间\">\n <el-input v-model=\"detailForm.updateTime\" disabled></el-input>\n </el-form-item>\n <el-form-item label=\"更新人员\">\n <el-input v-model=\"detailForm.updatePerson\" disabled></el-input>\n </el-form-item>\n <el-form-item label=\"负责人\">\n <el-select v-model=\"detailForm.director\" placeholder=\"请选择\" disabled>\n <el-option\n v-for=\"item in userOptions\"\n :key=\"item.id\"\n :label=\"item.nick\"\n :value=\"item.username\">\n </el-option>\n </el-select>\n </el-form-item>\n <el-form-item label=\"备注\">\n <el-input type=\"textarea\" v-model=\"detailForm.comments\" disabled></el-input>\n </el-form-item>\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"detailDialogVisible = false\">取 消</el-button>\n </span>\n </el-dialog>\n <el-dialog\n title=\"选择用例\"\n :visible.sync=\"selectDialogVisible\"\n :close-on-click-modal= 'false'\n width=\"30%\" @close=\"selectDialogClose\">\n <el-form :model=\"selectForm\" :rules=\"addFormRules\" ref=\"selectFormRef\" label-width=\"100px\">\n <el-form-item label=\"项目名称\" prop=\"itemName\">\n <el-select v-model=\"selectForm.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=\"测试模块\" prop=\"testMode\">\n <el-input v-model=\"selectForm.testMode\" placeholder=\"请输入测试模块名称\"></el-input>\n </el-form-item> \n <el-form-item label=\"\"></el-form-item>\n\n </el-form>\n <span slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"selectDialogVisible = false\">取 消</el-button>\n <el-button type=\"primary\" @click=\"selectTestCaseToReview\">确 定</el-button>\n </span>\n </el-dialog>\n </div>\n</template>\n\n<script>\nexport default {\n data () {\n return {\n itemOptions: [],\n reviewStatusOptions: [],\n userOptions: [],\n testReviewList: [],\n detailForm: {},\n editForm: {},\n selectForm: {},\n queryInfo: {\n reviewName: '',\n reviewStatus: '',\n pageNum: 1,\n pageSize: 10\n },\n currpage: 1,\n total: 0,\n selectDialogVisible: false,\n addDialogVisible: false,\n editDialogVisible: false,\n detailDialogVisible: false,\n addForm: {\n reviewName: '',\n startTime: '',\n endTime: '',\n director: '',\n comments: '',\n createTime: new Date().getTime(),\n createPerson: JSON.parse(localStorage.getItem(\"userInfo\")).nick\n },\n addFormRules: {\n reviewName: [\n { required: true, message: '请输入评审名称', trigger: 'blur' },\n { min: 1, max: 50, message: '长度在 1 到 50 个字符', trigger: 'blur' }\n ],\n director: [\n { required: true, message: '请输入负责人', trigger: 'blur' },\n { min: 1, max: 50, message: '长度在 1 到 50 个字符', 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 mounted () {\n this.getItemNameList()\n this.getReviewStatusDict()\n this.getAllUserInfo()\n this.getCaseTypeAndCaseStatusAndCaseLevel()\n },\n created () {\n this.getTestReviewList()\n },\n methods: {\n selectTestCaseToReview(){\n },\n selectDialogClose(){\n this.selectDialogVisible = false\n this.$refs.selectFormRef.resetFields()\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 }).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 getAllUserInfo(){\n this.$api.user.queryAllUserInfo().then(res=>{\n this.userOptions = res.data.data\n }).catch(()=>{})\n },\n getReviewStatusDict(){\n this.$api.dict.queryAllDataDict().then(res=>{\n this.reviewStatusOptions = res.data.data.reviewStatus\n }).catch(()=>{})\n },\n selectTestReviewList(){\n this.queryInfo.pageNum = 1\n this.total = 0\n this.getTestReviewList()\n },\n getTestReviewList () {\n this.$api.review.queryAllTestReviewInfo(JSON.stringify(this.queryInfo)).then(res => {\n this.loading = false\n this.testReviewList = 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.getTestReviewList()\n },\n handleCurrentChange (newpageNum) {\n this.queryInfo.pageNum = newpageNum\n this.getTestReviewList()\n },\n addDialogClose () {\n this.$refs.addFormRef.resetFields()\n },\n addTestReview () {\n this.$refs.addFormRef.validate(valid => {\n if (!valid) return\n this.$api.review.addTestReviewInfo(JSON.stringify(this.addForm)).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n });\n this.addDialogVisible = false\n this.getTestReviewList()\n \n }).catch(() => {\n this.loading = false\n })\n })\n },\n editDialogClose () {\n this.$refs.editFormRef.resetFields()\n },\n showSelectCaseDialog(id){\n this.selectDialogVisible = true\n },\n showEditDialog (id) {\n this.editDialogVisible = true\n this.$api.review.queryTestReviewInfoById(id).then(res => {\n this.loading = false\n this.editForm = res.data.data\n }).catch(() => {\n this.loading = false\n })\n },\n editTestReview () {\n this.$refs.editFormRef.validate(valid => {\n if (!valid) return\n this.editForm.updateTime = new Date().getTime()\n this.editForm.updatePerson = JSON.parse(localStorage.getItem(\"userInfo\")).nick\n this.$api.review.updateTestReviewInfo(JSON.stringify(this.editForm)).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n });\n this.editDialogVisible = false\n this.getTestReviewList() \n }).catch(() => {\n this.loading = false\n })\n })\n },\n showDetailDialog (id) {\n this.detailDialogVisible = true\n this.$api.review.queryTestReviewInfoById(id).then(res => {\n this.loading = false\n this.detailForm = res.data.data\n }).catch(() => {\n this.loading = false\n })\n },\n delTestReview (id) {\n this.$confirm('确定删除该评审吗?', '提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n this.loading = true\n this.$api.review.deleteTestReviewInfoById(id).then(res => {\n this.$notify({\n message: res.data.msg,\n type: \"success\",\n })\n this.loading = false\n this.getTestReviewList()\n }).catch(() => {\n this.loading = false\n })\n }).catch(() => {\n })\n }\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n.review-box {\n padding: 10px 25px;\n}\n.el-table {\n margin-bottom: 20px;\n}\n.el-select {\n width: 100% !important;\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/test/function/FunctionTestReview.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"review-box\"},[_c('el-form',{staticClass:\"review-form-inline\",attrs:{\"inline\":true}},[_c('el-form-item',{attrs:{\"label\":\"评审名称\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入评审名称\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.reviewName),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"reviewName\", $$v)},expression:\"queryInfo.reviewName\"}})],1),_vm._v(\" \"),_c('el-form-item',[_c('el-form-item',{attrs:{\"label\":\"评审状态\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.queryInfo.reviewStatus),callback:function ($$v) {_vm.$set(_vm.queryInfo, \"reviewStatus\", $$v)},expression:\"queryInfo.reviewStatus\"}},_vm._l((_vm.reviewStatusOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.dictValue,\"value\":item.dictCode}})}),1)],1),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.selectTestReviewList}},[_vm._v(\"查询\")])],1),_vm._v(\" \"),_c('el-form-item',[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":function($event){_vm.addDialogVisible = true}}},[_vm._v(\"新建评审\")])],1)],1),_vm._v(\" \"),_c('el-table',{attrs:{\"data\":_vm.testReviewList.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\":\"reviewName\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"状态\",\"prop\":\"reviewStatus\",\"width\":\"100\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(scope.row.reviewStatus == '1')?_c('span',[_c('el-tag',{attrs:{\"type\":\"info\"}},[_vm._v(\"未进行\")])],1):_vm._e(),_vm._v(\" \"),(scope.row.reviewStatus == '2')?_c('span',[_c('el-tag',{attrs:{\"type\":\"warning\"}},[_vm._v(\"进行中\")])],1):_vm._e(),_vm._v(\" \"),(scope.row.reviewStatus == '3')?_c('span',[_c('el-tag',{attrs:{\"type\":\"success\"}},[_vm._v(\"已完成\")])],1):_vm._e()]}}])}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"结果分布\",\"prop\":\"reviewResult\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"负责人\",\"prop\":\"director\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTime\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTime\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":\"操作\",\"fixed\":\"right\",\"width\":\"200\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [(false)?_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.showSelectCaseDialog(scope.row.id)}}},[_vm._v(\"选择用例\")]):_vm._e(),_vm._v(\" \"),_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.showEditDialog(scope.row.id)}}},[_vm._v(\"编辑\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.delTestReview(scope.row.id)}}},[_vm._v(\"删除\")])]}}])})],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}}),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"新建评审\",\"visible\":_vm.addDialogVisible,\"close-on-click-modal\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.addDialogVisible=$event},\"close\":_vm.addDialogClose}},[_c('el-form',{ref:\"addFormRef\",attrs:{\"model\":_vm.addForm,\"rules\":_vm.addFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"评审名称\",\"prop\":\"reviewName\"}},[_c('el-input',{model:{value:(_vm.addForm.reviewName),callback:function ($$v) {_vm.$set(_vm.addForm, \"reviewName\", $$v)},expression:\"addForm.reviewName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTime\"}},[[_c('div',{staticClass:\"block\"},[_c('el-date-picker',{attrs:{\"value-format\":\"yyyy-MM-dd HH:mm:ss\",\"type\":\"datetime\",\"placeholder\":\"选择开始时间\"},model:{value:(_vm.addForm.startTime),callback:function ($$v) {_vm.$set(_vm.addForm, \"startTime\", $$v)},expression:\"addForm.startTime\"}})],1)]],2),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTime\"}},[[_c('div',{staticClass:\"block\"},[_c('el-date-picker',{attrs:{\"value-format\":\"yyyy-MM-dd HH:mm:ss\",\"type\":\"datetime\",\"placeholder\":\"选择结束时间\"},model:{value:(_vm.addForm.endTime),callback:function ($$v) {_vm.$set(_vm.addForm, \"endTime\", $$v)},expression:\"addForm.endTime\"}})],1)]],2),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"负责人\",\"prop\":\"director\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.addForm.director),callback:function ($$v) {_vm.$set(_vm.addForm, \"director\", $$v)},expression:\"addForm.director\"}},_vm._l((_vm.userOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.nick,\"value\":item.username}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}},[_c('el-input',{attrs:{\"type\":\"textarea\"},model:{value:(_vm.addForm.comments),callback:function ($$v) {_vm.$set(_vm.addForm, \"comments\", $$v)},expression:\"addForm.comments\"}})],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.addDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.addTestReview}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"修改\",\"visible\":_vm.editDialogVisible,\"close-on-click-modal\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.editDialogVisible=$event},\"close\":_vm.editDialogClose}},[_c('el-form',{ref:\"editFormRef\",attrs:{\"model\":_vm.editForm,\"rules\":_vm.addFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"评审名称\",\"prop\":\"reviewName\"}},[_c('el-input',{model:{value:(_vm.editForm.reviewName),callback:function ($$v) {_vm.$set(_vm.editForm, \"reviewName\", $$v)},expression:\"editForm.reviewName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"开始时间\",\"prop\":\"startTime\"}},[[_c('div',{staticClass:\"block\"},[_c('el-date-picker',{attrs:{\"value-format\":\"yyyy-MM-dd HH:mm:ss\",\"type\":\"datetime\",\"placeholder\":\"选择开始时间\"},model:{value:(_vm.editForm.startTime),callback:function ($$v) {_vm.$set(_vm.editForm, \"startTime\", $$v)},expression:\"editForm.startTime\"}})],1)]],2),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"结束时间\",\"prop\":\"endTime\"}},[[_c('div',{staticClass:\"block\"},[_c('el-date-picker',{attrs:{\"value-format\":\"yyyy-MM-dd HH:mm:ss\",\"type\":\"datetime\",\"placeholder\":\"选择结束时间\"},model:{value:(_vm.editForm.endTime),callback:function ($$v) {_vm.$set(_vm.editForm, \"endTime\", $$v)},expression:\"editForm.endTime\"}})],1)]],2),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"负责人\",\"prop\":\"director\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.editForm.director),callback:function ($$v) {_vm.$set(_vm.editForm, \"director\", $$v)},expression:\"editForm.director\"}},_vm._l((_vm.userOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.nick,\"value\":item.username}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注\",\"prop\":\"comments\"}},[_c('el-input',{attrs:{\"type\":\"textarea\"},model:{value:(_vm.editForm.comments),callback:function ($$v) {_vm.$set(_vm.editForm, \"comments\", $$v)},expression:\"editForm.comments\"}})],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.editDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.editTestReview}},[_vm._v(\"确 定\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"修改\",\"visible\":_vm.detailDialogVisible,\"close-on-click-modal\":false,\"width\":\"40%\"},on:{\"update:visible\":function($event){_vm.detailDialogVisible=$event},\"close\":function($event){_vm.detailDialogVisible = false}}},[_c('el-form',{attrs:{\"model\":_vm.detailForm,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"评审名称\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.reviewName),callback:function ($$v) {_vm.$set(_vm.detailForm, \"reviewName\", $$v)},expression:\"detailForm.reviewName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"开始时间\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.startTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"startTime\", $$v)},expression:\"detailForm.startTime\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"结束时间\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.endTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"endTime\", $$v)},expression:\"detailForm.endTime\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"创建时间\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.createTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"createTime\", $$v)},expression:\"detailForm.createTime\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"创建人员\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.createPerson),callback:function ($$v) {_vm.$set(_vm.detailForm, \"createPerson\", $$v)},expression:\"detailForm.createPerson\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"更新时间\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.updateTime),callback:function ($$v) {_vm.$set(_vm.detailForm, \"updateTime\", $$v)},expression:\"detailForm.updateTime\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"更新人员\"}},[_c('el-input',{attrs:{\"disabled\":\"\"},model:{value:(_vm.detailForm.updatePerson),callback:function ($$v) {_vm.$set(_vm.detailForm, \"updatePerson\", $$v)},expression:\"detailForm.updatePerson\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"负责人\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"disabled\":\"\"},model:{value:(_vm.detailForm.director),callback:function ($$v) {_vm.$set(_vm.detailForm, \"director\", $$v)},expression:\"detailForm.director\"}},_vm._l((_vm.userOptions),function(item){return _c('el-option',{key:item.id,attrs:{\"label\":item.nick,\"value\":item.username}})}),1)],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"备注\"}},[_c('el-input',{attrs:{\"type\":\"textarea\",\"disabled\":\"\"},model:{value:(_vm.detailForm.comments),callback:function ($$v) {_vm.$set(_vm.detailForm, \"comments\", $$v)},expression:\"detailForm.comments\"}})],1)],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.detailDialogVisible = false}}},[_vm._v(\"取 消\")])],1)],1),_vm._v(\" \"),_c('el-dialog',{attrs:{\"title\":\"选择用例\",\"visible\":_vm.selectDialogVisible,\"close-on-click-modal\":false,\"width\":\"30%\"},on:{\"update:visible\":function($event){_vm.selectDialogVisible=$event},\"close\":_vm.selectDialogClose}},[_c('el-form',{ref:\"selectFormRef\",attrs:{\"model\":_vm.selectForm,\"rules\":_vm.addFormRules,\"label-width\":\"100px\"}},[_c('el-form-item',{attrs:{\"label\":\"项目名称\",\"prop\":\"itemName\"}},[_c('el-select',{attrs:{\"placeholder\":\"请选择\",\"clearable\":\"\"},model:{value:(_vm.selectForm.itemId),callback:function ($$v) {_vm.$set(_vm.selectForm, \"itemId\", $$v)},expression:\"selectForm.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\":\"测试模块\",\"prop\":\"testMode\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入测试模块名称\"},model:{value:(_vm.selectForm.testMode),callback:function ($$v) {_vm.$set(_vm.selectForm, \"testMode\", $$v)},expression:\"selectForm.testMode\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"\"}})],1),_vm._v(\" \"),_c('span',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":function($event){_vm.selectDialogVisible = false}}},[_vm._v(\"取 消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.selectTestCaseToReview}},[_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-721c3f62\",\"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/function/FunctionTestReview.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-721c3f62\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FunctionTestReview.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!./FunctionTestReview.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FunctionTestReview.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-721c3f62\\\",\\\"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!./FunctionTestReview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-721c3f62\"\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/function/FunctionTestReview.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"function-box\">\n <el-tabs v-model=\"activeName\" @tab-click=\"handleClick\">\n <el-tab-pane label=\"概览\" name=\"statistic\"><FunctionStatistic></FunctionStatistic></el-tab-pane>\n <el-tab-pane label=\"用例列表\" name=\"list\"><FunctionList v-if=\"load.list\"></FunctionList></el-tab-pane>\n <el-tab-pane label=\"测试计划\" name=\"plan\"><FunctionTestPlan v-if=\"load.plan\"></FunctionTestPlan></el-tab-pane>\n <el-tab-pane label=\"用例评审\" name=\"review\" v-if=\"false\"><FunctionTestReview v-if=\"load.review\"></FunctionTestReview></el-tab-pane>\n <el-tab-pane label=\"测试报告\" name=\"report\"><function-test-report v-if=\"load.report\"></function-test-report></el-tab-pane>\n </el-tabs>\n </div>\n</template>\n\n<script>\nimport FunctionStatistic from '@/components/test/function/FunctionStatistic.vue'\nimport FunctionList from '@/components/test/function/FunctionList.vue'\nimport FunctionTestPlan from '@/components/test/function/FunctionTestPlan.vue'\nimport FunctionTestReview from '@/components/test/function/FunctionTestReview.vue'\nimport FunctionTestReport from '@/components/test/function/FunctionTestReport.vue'\nexport default {\n data () {\n return {\n activeName: 'statistic',\n load: {\n\t\t\t\t\tstatistic: true,\n\t\t\t\t\tlist: false,\n\t\t\t\t\tplan: false,\n\t\t\t\t\treview: false,\n\t\t\t\t\treport: false\n\t\t\t\t}\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 },\n components: {\n FunctionStatistic,\n FunctionList,\n FunctionTestPlan,\n FunctionTestReview,\n FunctionTestReport\n }\n}\n</script>\n\n<style scoped lang=\"less\">\n/deep/ .el-tabs__nav-wrap {\n padding: 0 15px;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/views/testmanager/Function.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"function-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('FunctionStatistic')],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"用例列表\",\"name\":\"list\"}},[(_vm.load.list)?_c('FunctionList'):_vm._e()],1),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"测试计划\",\"name\":\"plan\"}},[(_vm.load.plan)?_c('FunctionTestPlan'):_vm._e()],1),_vm._v(\" \"),(false)?_c('el-tab-pane',{attrs:{\"label\":\"用例评审\",\"name\":\"review\"}},[(_vm.load.review)?_c('FunctionTestReview'):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":\"测试报告\",\"name\":\"report\"}},[(_vm.load.report)?_c('function-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-11e713e2\",\"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/Function.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-11e713e2\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!less-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Function.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!./Function.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Function.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-11e713e2\\\",\\\"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!./Function.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-11e713e2\"\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/Function.vue\n// module id = null\n// module chunks = ","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/regenerator-runtime/runtime-module.js\n// module id = jyFz\n// module chunks = 2"],"sourceRoot":""}