// 选择多个线路 Vue.component("ns-routes-selector", { props: ["v-routes", "name"], mounted: function () { let that = this Tea.action("/ns/routes/options") .post() .success(function (resp) { that.routes = resp.data.routes }) }, data: function () { let selectedRoutes = this.vRoutes if (selectedRoutes == null) { selectedRoutes = [] } let inputName = this.name if (typeof inputName != "string" || inputName.length == 0) { inputName = "routeCodes" } return { routeCode: "default", inputName: inputName, routes: [], isAdding: false, routeType: "default", selectedRoutes: selectedRoutes, } }, watch: { routeType: function (v) { this.routeCode = "" let that = this this.routes.forEach(function (route) { if (route.type == v && that.routeCode.length == 0) { that.routeCode = route.code } }) } }, methods: { add: function () { this.isAdding = true this.routeType = "default" this.routeCode = "default" this.$emit("add") }, cancel: function () { this.isAdding = false this.$emit("cancel") }, confirm: function () { if (this.routeCode.length == 0) { return } let that = this this.routes.forEach(function (v) { if (v.code == that.routeCode) { that.selectedRoutes.push(v) } }) this.$emit("change", this.selectedRoutes) this.cancel() }, remove: function (index) { this.selectedRoutes.$remove(index) this.$emit("change", this.selectedRoutes) } } , template: `
{{route.name}}  
 
` })