@@ -52,14 +52,21 @@ class FilterItem: NSObject {
52
52
if filterItem. keyType == . multi {
53
53
let filterKeys = filterItem. key. components ( separatedBy: " | " )
54
54
for filterKey in filterKeys {
55
- if trainCode. contains ( filterKey) {
55
+ if trainCode. hasPrefix ( filterKey) {
56
56
return true
57
57
}
58
58
}
59
59
}
60
60
else if filterItem. keyType == . single {
61
- if self . key. contains ( filterItem. key) {
62
- return true
61
+ if filterItem. type == . TrainType {
62
+ if self . key. hasPrefix ( filterItem. key) {
63
+ return true
64
+ }
65
+ }
66
+ else {
67
+ if self . key. contains ( filterItem. key) {
68
+ return true
69
+ }
63
70
}
64
71
}
65
72
else if filterItem. keyType == . section {
@@ -110,9 +117,67 @@ class TrainFilterWindowController: BaseWindowController {
110
117
filterItems. append ( FilterItem ( type: . StartTime, key: " 18:00~24:00 " , presentation: " 18:00--24:00 " , isChecked: true ) )
111
118
112
119
filterItems. append ( FilterItem ( type: . Group, presentation: " 车次类型 " ) )
113
- filterItems. append ( FilterItem ( type: . TrainType, key: " G|C|D " , presentation: " G高铁|C城际|D动车 " , isChecked: true ) )
114
- filterItems. append ( FilterItem ( type: . TrainType, key: " Z|T " , presentation: " Z直达|T特快 " , isChecked: true ) )
115
- filterItems. append ( FilterItem ( type: . TrainType, key: " K|L|Y " , presentation: " K快车|LY临客 " , isChecked: true ) )
120
+ var hasTrainG = false
121
+ var hasTrainC = false
122
+ var hasTrainD = false
123
+ var hasTrainZ = false
124
+ var hasTrainT = false
125
+ var hasTrainK = false
126
+ var hasTrainL = false
127
+ for train in trains {
128
+ if train. TrainCode. hasPrefix ( " G " ) {
129
+ hasTrainG = true
130
+ continue
131
+ }
132
+ if train. TrainCode. hasPrefix ( " C " ) {
133
+ hasTrainC = true
134
+ continue
135
+ }
136
+ if train. TrainCode. hasPrefix ( " D " ) {
137
+ hasTrainD = true
138
+ continue
139
+ }
140
+ if train. TrainCode. hasPrefix ( " Z " ) {
141
+ hasTrainZ = true
142
+ continue
143
+ }
144
+ if train. TrainCode. hasPrefix ( " T " ) {
145
+ hasTrainT = true
146
+ continue
147
+ }
148
+ if train. TrainCode. hasPrefix ( " K " ) {
149
+ hasTrainK = true
150
+ continue
151
+ }
152
+ let keys = [ " L " , " Y " , " 1 " , " 2 " , " 3 " , " 4 " , " 5 " , " 6 " , " 7 " , " 8 " , " 9 " ]
153
+ for key in keys {
154
+ if train. TrainCode. hasPrefix ( key) {
155
+ hasTrainL = true
156
+ break
157
+ }
158
+ }
159
+ }
160
+ if hasTrainG {
161
+ filterItems. append ( FilterItem ( type: . TrainType, key: " G " , presentation: " G高铁 " , isChecked: true ) )
162
+ }
163
+ if hasTrainC {
164
+ filterItems. append ( FilterItem ( type: . TrainType, key: " C " , presentation: " C城际 " , isChecked: true ) )
165
+ }
166
+ if hasTrainD {
167
+ filterItems. append ( FilterItem ( type: . TrainType, key: " D " , presentation: " D动车 " , isChecked: true ) )
168
+ }
169
+ if hasTrainZ {
170
+ filterItems. append ( FilterItem ( type: . TrainType, key: " Z " , presentation: " Z直达 " , isChecked: true ) )
171
+ }
172
+ if hasTrainT {
173
+ filterItems. append ( FilterItem ( type: . TrainType, key: " T " , presentation: " T特快 " , isChecked: true ) )
174
+ }
175
+ if hasTrainK {
176
+ filterItems. append ( FilterItem ( type: . TrainType, key: " K " , presentation: " K快车 " , isChecked: true ) )
177
+ }
178
+ if hasTrainL {
179
+ filterItems. append ( FilterItem ( type: . TrainType, key: " L|Y|1|2|3|4|5|6|7|8|9 " , presentation: " LY临客|纯数字 " , isChecked: true ) )
180
+ }
116
181
117
182
filterItems. append ( FilterItem ( type: . Group, presentation: " 出发车站 " ) )
118
183
var fromStations = [ String] ( )
0 commit comments