2 <div class="col-md-offset-1 col-md-10" style="margin-top: 20px;">
3 <ul class="nav nav-tabs">
4 <li class="active"><a data-toggle="tab" data-target="#step-pane">Step</a></li>
5 <li><a data-toggle="tab" data-target="#flow-pane">Flow</a></li>
7 <div class="tab-content">
8 <div id="step-pane" class="tab-pane active fade in">
11 <div class='col-md-12'>
12 <step v-bind:stepList="stepList" v-on:stepList="getStepList"></step>
16 <div id="flow-pane" class="tab-pane fade">
19 <div class='col-md-12'>
21 <button style='margin-left:20px; margin-bottom: 30px;' class="btn btn-success" type="button" id="new-flow" v-on:click='addSubflow'> <span class="bold">ADD FLOW</span></button>
24 <div class='col-md-2'>
26 <li class="active"><a data-toggle="tab" data-target="#flow-main">main</a></li>
27 <li v-for="subflow in subflowList"><a data-toggle="tab" v-bind:data-target="'#' + subflow.tabId">{{ subflow.name }}</a></li>
30 <div class="col-md-10">
31 <div class="tab-content">
32 <div id="flow-main" class="tab-pane active fade in">
33 <flow v-model='mainflowName' v-bind:orderList='mainOrdersList' v-bind:stepsRefs='stepNameList' v-bind:flowsRefs='flowNameList' v-on:orderList='updateOrderList($event, mainflowName)'>
36 <div v-for="subflow in subflowList" v-bind:id="subflow.tabId" class="tab-pane fade">
37 <flow v-model='subflow.name' v-bind:orderList='subflow.orderList' v-bind:stepsRefs='stepNameList' v-bind:flowsRefs='flowNameList' v-on:orderList='updateOrderList($event, subflow.name)'></flow>
49 import '../../assets/css/editor.css'
50 import step from './step.vue'
51 import flow from './flow.vue'
52 import showMessage from '../message/showMessage.js'
55 props: ['saveSignal', 'stepList', 'mainOrdersList', 'subflowList'],
70 getStepList: function(stepList) {
71 this.stepList = stepList;
73 addSubflow: function() {
74 var tabid = "flow-" + Math.floor(Math.random()*(1000000));
75 this.subflowList.push({'tabId': tabid, 'name': 'fake', 'orderList': []});
77 updateOrderList: function(orderList, flowName) {
78 if(flowName == 'main') {
79 this.mainOrdersList = orderList;
81 for(var i = 0; i < this.subflowList.length; ++i) {
82 if(this.subflowList[i].name == flowName) {
83 this.subflowList[i].orderList = orderList;
90 flowNameList: function() {
92 for(var i = 0; i < this.subflowList.length; i++) {
93 stepNameArr.push(this.subflowList[i].name);
95 console.log(stepNameArr);
98 stepNameList: function() {
100 for(var i = 0; i < this.stepList.length; i++) {
101 stepNameArr.push(this.stepList[i].name);
107 saveSignal: function(newVal) {
109 console.log("editor newVal true");
111 var msgTitle = "SAVE -- TESTCASE";
113 url: this.global.SERVER_ADDR + "testcase/save",
116 suiteName: this.$route.query.suiteName,
117 caseName: this.$route.query.caseName,
118 stepList: JSON.stringify(this.stepList),
119 subflowList: JSON.stringify(this.subflowList),
120 mainOrdersList: JSON.stringify(this.mainOrdersList)
122 success: function(data) {
123 console.log("ajax save content!");
124 if(data['code'] == 200) {
125 showMessage("success", msgTitle, "Save content successfully!");
126 self.$emit('saveResponse', true);
128 showMessage(data['code'], msgTitle, "Failed to save content!", data['error']);
129 self.$emit('saveResponse', false);
132 error: function(obj, status, msg) {
133 showMessage(status, msgTitle, "Failed to save content!", msg);
134 self.$emit('saveResponse', false);