質問編集履歴

1

ソースコードを修正しました。

2020/08/30 00:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -126,7 +126,7 @@
126
126
 
127
127
  { id: 0, name: '建物', types: [
128
128
 
129
- { use: '木造・合成樹脂造のもの', details: [
129
+ { tId: 0, use: '木造・合成樹脂造のもの', details: [
130
130
 
131
131
  {label: '事務所用のもの', life: 24 },
132
132
 
@@ -142,7 +142,7 @@
142
142
 
143
143
  ]},
144
144
 
145
- { use: '木骨モルタル造のもの', details: [
145
+ { tId: 1, use: '木骨モルタル造のもの', details: [
146
146
 
147
147
  {label: '事務所用のもの', life: 22 },
148
148
 
@@ -162,7 +162,7 @@
162
162
 
163
163
  { id: 1, name: '建物附属設備', types: [
164
164
 
165
- { use: 'アーケード・日よけ設備', details: [
165
+ { tId: 0, use: 'アーケード・日よけ設備', details: [
166
166
 
167
167
  {label: '主として金属製のもの', life: 15 },
168
168
 
@@ -170,9 +170,9 @@
170
170
 
171
171
  ]},
172
172
 
173
- { use: '店舗簡易装備', details: [
173
+ { tId: 1, use: '店舗簡易装備', details: [
174
-
174
+
175
- {label: '', life: 3 },
175
+ {label: 'aaa', life: 3 },
176
176
 
177
177
  ]},
178
178
 
@@ -188,43 +188,63 @@
188
188
 
189
189
  getTypes: function() {
190
190
 
191
- // 選択中の情報を取得
191
+ // 選択中の情報を取得
192
-
192
+
193
- let itemName = this.itemSelect;
193
+ let itemName = this.itemSelect; // 1つ目のselect
194
-
195
-
196
-
194
+
195
+
196
+
197
- // items から選択中のnameを探す
197
+ // items から選択中のnameを探す
198
-
198
+
199
- const itemResult = this.items.find((v) => v.name === itemName);
199
+ const itemResult = this.items.find((v) => v.name === itemName);
200
-
201
-
202
-
200
+
201
+
202
+
203
- // 配列出力する
203
+ // 2つ目のselectの初期値セットする
204
-
204
+
205
- this.typeSelect = this.items[itemResult.id].types[0].use;
205
+ this.typeSelect = this.items[itemResult.id].types[0].use;
206
+
207
+
208
+
206
-
209
+ // 2つ目のselectのoptionをセットする
210
+
207
- return this.items[itemResult.id].types;
211
+ return this.items[itemResult.id].types;
208
-
212
+
209
- },
213
+ },
210
-
214
+
211
- getDetails: function() {
215
+ getDetails: function() {
212
-
216
+
213
- // 選択中の情報を取得
217
+ // 選択中の情報を取得
218
+
214
-
219
+ let itemName = this.itemSelect; // 1つ目のselect
220
+
215
- let typeName = this.typeSelect;
221
+ let typeName = this.typeSelect; // 2つ目のselect
216
-
217
- console.log(typeName);
222
+
218
-
223
+
224
+
219
- // items から選択中のuseを探す
225
+ // items から選択中のuseを探す
226
+
220
-
227
+ const itemResult = this.items.find((v) => v.name === itemName);
228
+
221
- const typeResult = itemResult.types.find((v) => v.use === typeName);
229
+ const typeResult = this.items[itemResult.id].types.find((v) => v.use === typeName);
230
+
231
+
232
+
222
-
233
+ // 3つ目のselectの初期値をセットする
234
+
223
- console.log(typeResult);
235
+ console.log(this.items[itemResult.id].types[typeResult.tId].details[0].label);
236
+
224
-
237
+ this.detailSelect = this.items[itemResult.id].types[typeResult.tId].details[0].label;
238
+
239
+
240
+
225
- // ここで上手くいかない(undefinedにな
241
+ // 3つ目のselectのoptionをセットす
242
+
226
-
243
+ return this.items[itemResult.id].types[typeResult.tId].details;
244
+
245
+
246
+
227
- }
247
+ }
228
248
 
229
249
  },
230
250
 
@@ -234,6 +254,8 @@
234
254
 
235
255
 
236
256
 
237
- 多次元配列2つ目の配列を取得することは可能なでしょうか
257
+ 3つ目selectの初期値、及び3つ目のselectoptionが、セットされません
258
+
259
+
238
260
 
239
261
  どうぞ、よろしくお願いいたします。