diff --git a/web/public/js/components/ns/ns-routes-selector.js b/web/public/js/components/ns/ns-routes-selector.js index b2611cd4..9f87f57f 100644 --- a/web/public/js/components/ns/ns-routes-selector.js +++ b/web/public/js/components/ns/ns-routes-selector.js @@ -7,6 +7,22 @@ Vue.component("ns-routes-selector", { .post() .success(function (resp) { that.routes = resp.data.routes + + // provinces + let provinces = {} + if (resp.data.provinces != null && resp.data.provinces.length > 0) { + for (const province of resp.data.provinces) { + let countryCode = province.countryCode + if (typeof provinces[countryCode] == "undefined") { + provinces[countryCode] = [] + } + provinces[countryCode].push({ + name: province.name, + code: province.code + }) + } + } + that.provinces = provinces }) }, data: function () { @@ -24,6 +40,10 @@ Vue.component("ns-routes-selector", { routeCode: "default", inputName: inputName, routes: [], + + provinces: {}, // country code => [ province1, province2, ... ] + provinceRouteCode: "", + isAdding: false, routeType: "default", selectedRoutes: selectedRoutes, @@ -45,6 +65,7 @@ Vue.component("ns-routes-selector", { this.isAdding = true this.routeType = "default" this.routeCode = "default" + this.provinceRouteCode = "" this.$emit("add") }, cancel: function () { @@ -57,11 +78,33 @@ Vue.component("ns-routes-selector", { } let that = this - this.routes.forEach(function (v) { - if (v.code == that.routeCode) { - that.selectedRoutes.push(v) + + // route + let selectedRoute = null + for (const route of this.routes) { + if (route.code == this.routeCode) { + selectedRoute = route + break } - }) + } + + if (selectedRoute != null) { + // province route + if (this.provinceRouteCode.length > 0 && this.provinces[this.routeCode] != null) { + for (const province of this.provinces[this.routeCode]) { + if (province.code == this.provinceRouteCode) { + selectedRoute = { + name: selectedRoute.name + "-" + province.name, + code: province.code + } + break + } + } + } + + that.selectedRoutes.push(selectedRoute) + } + this.$emit("change", this.selectedRoutes) this.cancel() }, @@ -80,30 +123,43 @@ Vue.component("ns-routes-selector", {
-
-
- -
- -
- -
- -
- -   -
-
+ + + + + + + + + + + + + +
选择类型 * + +
选择线路 * + +
选择省/州 + +
+
+ +   取消 +
- + ` }) \ No newline at end of file