--- /dev/null
+<template>\r
+<div class="row" style="border: 1px solid #cec8c8">\r
+ <div class="col-md-12" style="padding: 10px 0 5px;">\r
+ <div class="form-group">\r
+ <label class="col-md-2 control-label" style="font-size: 22px;">flowName</label>\r
+ <div class="col-md-6">\r
+ <input v-if="flowName != 'main'" type="text" class="form-control" v-model="flowName" v-on:input='$emit("editFlowName", $event.target.value)' placeholder="please input flow name." />\r
+ <p style="font-size: 22px;" v-else>{{flowName}}</p>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <div class="col-md-12">\r
+ <div class="ibox">\r
+ <div class="ibox-title">\r
+ <h5 class="text-success">Order</h5>\r
+ <div class="ibox-tools">\r
+ <a class="collapse-link">\r
+ <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>\r
+ </a>\r
+ </div>\r
+ </div>\r
+ <div class="ibox-content">\r
+ <div class="row">\r
+ <button class="btn btn-success" type="button" id="new-order" v-on:click='addOrder'> <span class="bold">ADD ORDER</span></button>\r
+ <div class="col-md-3">\r
+ <span class="select-box" >\r
+ <select id="orderSelect" class="select form-control" v-model='orderSelected' >\r
+ <option value="1">Normal</option>\r
+ <option value="2">Switch</option>\r
+ <option value="3">Parallel</option>\r
+ </select>\r
+ </span>\r
+ </div>\r
+ <br>\r
+ <!-- Normal -->\r
+ <div id="normal-panel" v-show='orderSelected == 1'>\r
+ <div class="col-lg-11" id="normalform">\r
+ <br>\r
+ <div>\r
+ <div class="ibox border-ibox">\r
+ <div class="ibox-title">\r
+ <h5>Normal</h5>\r
+ <div class="ibox-tools">\r
+ <a class="collapse-link" >\r
+ <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>\r
+ </a>\r
+ </div>\r
+ </div>\r
+ <div class="ibox-content">\r
+ <!-- <div class="form-group">\r
+ <div class="col-lg-6 row"><label>name</label><input id="NName" type="name" placeholder="name" class="form-control"></div>\r
+ </div> -->\r
+ <div class="form-group">\r
+ <label class='headmsg control-label'>Step</label>\r
+ <div class='col-md-4'>\r
+ <select class="chooseStep form-control" id="NStep" v-model='normalStep'>\r
+ <option></option>\r
+ <option v-for='stepRef in stepsRefs' v-bind:value='stepRef'>{{ stepRef }}</option>\r
+ </select>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <!-- Switch -->\r
+ <div id="switch-panel" v-show='orderSelected == 2'>\r
+ <br>\r
+ <div class="row">\r
+ <div class="col-lg-11">\r
+ <div class="ibox border-ibox float-e-margins">\r
+ <div class="ibox-title">\r
+ <h5>Switch</h5>\r
+ <div class="ibox-tools">\r
+ <button class="btn btn-success " type="button" id="new-case" v-on:click='addNewCase'> <span class="bold">New Case</span></button>\r
+ <a class="collapse-link" >\r
+ <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>\r
+ </a>\r
+ </div>\r
+ </div>\r
+ <div class="ibox-content">\r
+ <div class="row">\r
+ <div class="row">\r
+ <div class="form-group">\r
+ <label class="headmsg control-label">Value:</label>\r
+ <div class="col-md-5"><input type="text" class="case form-control" v-model='switchValue'></div>\r
+ </div>\r
+ </div>\r
+ <div class="row">\r
+ <label class="headmsg control-label">Cases:</label>\r
+ <div class='col-md-12 row'>\r
+ <div class='col-md-offset-1' v-for='switchCase in switchCases' style='border-left-style: solid; border-left-color: gray; margin-bottom: 30px;'>\r
+ <div class="row">\r
+ <div class="form-group">\r
+ <label class="headmsg control-label">CaseValue:</label>\r
+ <div class="col-md-5"><input type="text" class="case form-control" v-model='switchCase.value'></div>\r
+ </div>\r
+ </div>\r
+ <div class="row">\r
+ <label class="headmsg control-label">Case:</label>\r
+ <div class="col-md-3">\r
+ <select class="myselect chooseStep form-control" v-model='switchCase.orderType'>\r
+ <option></option>\r
+ <option v-for='orderType in ["step", "flow"]' v-bind:value='orderType'>{{ orderType }}</option>\r
+ </select>\r
+ </div>\r
+ <div class="col-md-4">\r
+ <select class="myselect chooseStep form-control" v-model='switchCase.orderValue'>\r
+ <option></option>\r
+ <option v-if='switchCase.orderType == "step"' v-for='stepRef in stepsRefs' v-bind:value='stepRef'>{{ stepRef }}</option>\r
+ <option v-if='switchCase.orderType == "flow"' v-for='flowRef in filtedFlowsRefs' v-bind:value='flowRef'>{{ flowRef }}</option>\r
+ </select>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <!-- Parallel -->\r
+ <div id="parallel-panel" v-show='orderSelected == 3'>\r
+ <br>\r
+ <div class="row">\r
+ <div class="col-lg-11">\r
+ <div class="ibox border-ibox float-e-margins">\r
+ <div class="ibox-title">\r
+ <h5>Parallel</h5>\r
+ <div class="ibox-tools">\r
+ <button class="btn btn-success " type="button" id="para-step" v-on:click='addNewBranch'> <span class="bold"><i class='fa fa-plus-square-o'></i> Branch</span></button>\r
+ <a class="collapse-link" >\r
+ <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>\r
+ </a>\r
+ </div>\r
+ </div>\r
+ <div id="parallel">\r
+ <div class="ibox-content">\r
+ <div class='row'>\r
+ <div class='row'><label class="headmsg control-label">Branches:</label></div>\r
+ <div class='row'>\r
+ <div class='col-md-offset-1'>\r
+ <div v-for='branch in parallelBranches' class="row" style='border-left-style: solid; border-left-color: gray; margin-bottom: 20px; padding-top: 7px; padding-bottom: 7px;'>\r
+ <label class="headmsg control-label">Branch:</label>\r
+ <div class="col-md-3">\r
+ <select class="myselect chooseStep form-control" v-model='branch.orderType'>\r
+ <option></option>\r
+ <option v-for='orderType in ["step", "flow"]' v-bind:value='orderType'>{{ orderType }}</option>\r
+ </select>\r
+ </div>\r
+ <div class="col-md-4">\r
+ <select class="myselect chooseStep form-control" v-model='branch.orderValue'>\r
+ <option></option>\r
+ <option v-if='branch.orderType == "step"' v-for='stepRef in stepsRefs' v-bind:value='stepRef'>{{ stepRef }}</option>\r
+ <option v-if='branch.orderType == "flow"' v-for='flowRef in filtedFlowsRefs' v-bind:value='flowRef'>{{ flowRef }}</option>\r
+ </select>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ <div class="ibox">\r
+ <div class="ibox-title">\r
+ <h5 class="text-success">OrderList</h5>\r
+ <div class="ibox-tools">\r
+ <a class="collapse-link" >\r
+ <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>\r
+ </a>\r
+ </div>\r
+ </div>\r
+ <div class="ibox-content" id="order-list">\r
+ <div v-for='(order, index) in orderList' class='ibox float-e-margins' style='margin-bottom: 0;'>\r
+ <div class="ibox-title step">\r
+ <h5>Order #{{index+1}} <strong style='margin-left: 20px;'>{{['normal', 'switch', 'parallel'][order.type - 1]}}</strong> </h5>\r
+ <div class="ibox-tools">\r
+ <a class="collapse-link" >\r
+ <i class="fa fa-chevron-up" v-on:click.stop='collapseBox'></i>\r
+ </a>\r
+ <a class="close-link" v-on:click='removeOrder'>\r
+ <i class="fa fa-times"></i>\r
+ </a>\r
+ </div>\r
+ </div>\r
+ <div class="ibox-content">\r
+ <div v-if='order.type == 1' class="row">\r
+ <label class="control-label" style='padding-right: 20px;'> step: </label>\r
+ <label class="control-label"> {{ order.step }}</label>\r
+ </div>\r
+ <div v-if='order.type == 2' class="row">\r
+ <div>\r
+ <label class="control-label" style='padding-right: 20px;'> value: </label>\r
+ <label class="control-label"> {{order.value}} </label>\r
+ </div>\r
+ <div><label class="control-label"> cases: </label></div>\r
+ <div v-for='sCase in order.cases' class="row">\r
+ <label class="control-label col-md-offset-1"> -- <b>{{ sCase.value }}</b> : </label>\r
+ <label class='coltrol-label' style='margin-left: 20px;'>{{ sCase.orderValue }} [{{ sCase.orderType }}]</label>\r
+ </div>\r
+ </div>\r
+ <div v-if='order.type == 3' class="row">\r
+ <div><label class="control-label"> </label></div>\r
+ <div v-for='branch in order.branches' class="row">\r
+ <label class="control-label col-md-offset-1" style='padding-right: 20px;'> -- branch: </label>\r
+ <label class="control-label"> {{ branch.orderValue }} [{{ branch.orderType }}]</label>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+ </div>\r
+</div>\r
+</template>\r
+<script>\r
+export default {\r
+ name: 'flow',\r
+ props: ['stepsRefs', 'flowsRefs', 'flowName', 'orderList'],\r
+ model: {\r
+ prop: 'flowName',\r
+ event: 'editFlowName'\r
+ },\r
+ data: function() {\r
+ return {\r
+ normalStep: '',\r
+ switchValue: '',\r
+ switchCases: [{'value': '', 'orderType': '', 'orderValue': ''}],\r
+ parallelBranches: [{'orderType': '', 'orderValue': ''}],\r
+ orderSelected: 1\r
+ }\r
+ },\r
+ mounted: function(){\r
+ // this.selectPluginUpdate();\r
+ },\r
+ updated: function(){\r
+ // this.selectPluginUpdate();\r
+ },\r
+ methods: {\r
+ addOrder: function(){\r
+ var select = this.orderSelected;\r
+ if(select == 1){\r
+ if(this.normalStep == ""){\r
+ alert("Not completed!!!");\r
+ return;\r
+ }\r
+ var temp = {type:1,step:this.normalStep};\r
+ this.orderList.push(temp);\r
+ this.normalStep = '';\r
+ }\r
+ if(select == 2){\r
+ var caseList = [];\r
+ for(var i=0; i<this.switchCases.length; ++i){\r
+ var caseValue = this.switchCases[i].value;\r
+ if(caseValue == ""){\r
+ alert("Not completed!!!");\r
+ return;\r
+ }\r
+ var caseOrderType = this.switchCases[i].orderType;\r
+ if(caseOrderType == ""){\r
+ alert("Not completed!!!");\r
+ return;\r
+ }\r
+ var caseOrderValue = this.switchCases[i].orderValue;\r
+ if(caseOrderValue == ""){\r
+ alert("Not completed!!!");\r
+ return;\r
+ }\r
+ caseList.push({value: caseValue, orderType: caseOrderType, orderValue: caseOrderValue});\r
+ }\r
+ temp = {type:2, value: this.switchValue, cases:caseList};\r
+ this.orderList.push(temp);\r
+ this.switchValue = '';\r
+ this.switchCases = [{value: '', orderType: '', orderValue: ''}];\r
+ }\r
+ if(select == 3){\r
+ var branchList = [];\r
+ var allStep = $('#parallel .chooseStep');\r
+ for(var i=0; i<this.parallelBranches.length; ++i){\r
+ var branchOrderType = this.parallelBranches[i].orderType;\r
+ if(branchOrderType == ""){\r
+ alert("Not completed!!!");\r
+ return;\r
+ }\r
+ var branchOrderValue = this.parallelBranches[i].orderValue;\r
+ if(branchOrderValue == ""){\r
+ alert("Not completed!!!");\r
+ return;\r
+ }\r
+ branchList.push({orderType: branchOrderType, orderValue: branchOrderValue});\r
+ }\r
+ temp = {type:3,branches:branchList};\r
+ this.orderList.push(temp);\r
+ this.parallelBranches = [{orderType: '', orderValue: ''}];\r
+ }\r
+ this.$emit("orderList", this.orderList);\r
+ },\r
+ removeOrder: function(index){\r
+ this.orderList.splice(index, 1);\r
+ },\r
+ addNewCase: function() {\r
+ this.switchCases.push({value: '', orderType: '', orderValue: ''});\r
+ },\r
+ addNewBranch: function() {\r
+ this.parallelBranches.push({step: ''});\r
+ },\r
+ collapseBox: function(event) {\r
+ console.log("collapse");\r
+ var ele = event.target;\r
+ console.log(event);\r
+ console.log(ele);\r
+ var ibox = $(ele).closest('div.ibox');\r
+ var content = ibox.children('.ibox-content');\r
+ content.slideToggle(200);\r
+ $(ele).toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');\r
+ }\r
+ },\r
+ computed: {\r
+ filtedFlowsRefs: function() {\r
+ var subflowNameArr = [];\r
+ for(var i = 0; i < this.flowsRefs.length; i++) {\r
+ if(this.flowsRefs[i] != this.flowName) {\r
+ subflowNameArr.push(this.flowsRefs[i]);\r
+ }\r
+ }\r
+ return subflowNameArr;\r
+ }\r
+ }\r
+}\r
+</script>
\ No newline at end of file