回答編集履歴
9
test
CHANGED
@@ -94,7 +94,7 @@
|
|
94
94
|
--------------------
|
95
95
|
複数の条件でselectとtextを使い分ける方法として [v-else-if](https://jp.vuejs.org/v2/guide/conditional.html#v-else-if) を使って下記のようにするやり方があります。
|
96
96
|
|
97
|
-
たとえば、「性別」に加えて、「会員」という項目をプルダウンにしたいときは、下記のようになります。
|
97
|
+
たとえば、「性別」に加えて、「会員タイプ」という項目をプルダウンにしたいときは、下記のようになります。
|
98
98
|
```html
|
99
99
|
<template v-for="(key, index) in keys">
|
100
100
|
<div v-if="key!=='名前フリガナ'">
|
@@ -109,7 +109,7 @@
|
|
109
109
|
</select>
|
110
110
|
</div>
|
111
111
|
</div>
|
112
|
-
<div v-else-if="key === '会員'">
|
112
|
+
<div v-else-if="key === '会員タイプ'">
|
113
113
|
<div class="select">
|
114
114
|
<select v-model="conditions[index]">
|
115
115
|
<option></option>
|
8
test
CHANGED
@@ -94,7 +94,7 @@
|
|
94
94
|
--------------------
|
95
95
|
複数の条件でselectとtextを使い分ける方法として [v-else-if](https://jp.vuejs.org/v2/guide/conditional.html#v-else-if) を使って下記のようにするやり方があります。
|
96
96
|
|
97
|
-
たとえば、「性別」に加えて、「会員」という項目をプルダウンにしたいとき
|
97
|
+
たとえば、「性別」に加えて、「会員」という項目をプルダウンにしたいときは、下記のようになります。
|
98
98
|
```html
|
99
99
|
<template v-for="(key, index) in keys">
|
100
100
|
<div v-if="key!=='名前フリガナ'">
|
7
追記
test
CHANGED
@@ -90,3 +90,39 @@
|
|
90
90
|
</div>
|
91
91
|
</template>
|
92
92
|
```
|
93
|
+
|
94
|
+
--------------------
|
95
|
+
複数の条件でselectとtextを使い分ける方法として [v-else-if](https://jp.vuejs.org/v2/guide/conditional.html#v-else-if) を使って下記のようにするやり方があります。
|
96
|
+
|
97
|
+
たとえば、「性別」に加えて、「会員」という項目をプルダウンにしたいとき
|
98
|
+
```html
|
99
|
+
<template v-for="(key, index) in keys">
|
100
|
+
<div v-if="key!=='名前フリガナ'">
|
101
|
+
<div style="margin-bottom: 1em;">
|
102
|
+
<label class="label is-small">{{ key }}</label>
|
103
|
+
<div v-if="key==='性別'">
|
104
|
+
<div class="select">
|
105
|
+
<select v-model="conditions[index]">
|
106
|
+
<option></option>
|
107
|
+
<option>男</option>
|
108
|
+
<option>女</option>
|
109
|
+
</select>
|
110
|
+
</div>
|
111
|
+
</div>
|
112
|
+
<div v-else-if="key === '会員'">
|
113
|
+
<div class="select">
|
114
|
+
<select v-model="conditions[index]">
|
115
|
+
<option></option>
|
116
|
+
<option>A</option>
|
117
|
+
<option>B</option>
|
118
|
+
<option>C</option>
|
119
|
+
</select>
|
120
|
+
</div>
|
121
|
+
</div>
|
122
|
+
<div v-else>
|
123
|
+
<input v-model="conditions[index]" type="text" class="input is-small">
|
124
|
+
</div>
|
125
|
+
</div>
|
126
|
+
</div>
|
127
|
+
</template>
|
128
|
+
```
|
6
test
CHANGED
@@ -16,13 +16,13 @@
|
|
16
16
|
|
17
17
|
> ①右側のフィルタのフリーテキスト以外に、プルダウンでの選択したい
|
18
18
|
> 例)「性別」カラムにあらかじめ「男」「女」をプルダウンで表示 など
|
19
|
-
プルダウンはselectタグを使用します。
|
19
|
+
プルダウンで表示するには、select タグを使用します。
|
20
|
-
質問のコードで使われているCSSフレームワークの bulma に
|
20
|
+
質問のコードで使われている CSS フレームワークの bulma には「select」クラスが用意されているので、これを使えばデザインを統一できそうです。
|
21
21
|
https://bulma.io/documentation/form/select/
|
22
22
|
|
23
|
-
|
23
|
+
内容によるタグの切り替えには、v-if を使ってみましょう。
|
24
24
|
https://jp.vuejs.org/v2/guide/conditional.html
|
25
|
-
keyが「性別」の時に select、それ以外の時はtextにすればよいでしょう。
|
25
|
+
たとえば「性別」のときにプルダウンにしたいのであれば、key が「性別」の時に select、それ以外の時は text にすればよいでしょう。
|
26
26
|
|
27
27
|
```html
|
28
28
|
<div v-if="key==='性別'">
|
5
test
CHANGED
@@ -28,9 +28,9 @@
|
|
28
28
|
<div v-if="key==='性別'">
|
29
29
|
<div class="select">
|
30
30
|
<select v-model="conditions[index]">
|
31
|
+
<option></option>
|
31
32
|
<option>男</option>
|
32
33
|
<option>女</option>
|
33
|
-
<option>---</option>
|
34
34
|
</select>
|
35
35
|
</div>
|
36
36
|
</div>
|
@@ -77,9 +77,9 @@
|
|
77
77
|
<div v-if="key==='性別'">
|
78
78
|
<div class="select">
|
79
79
|
<select v-model="conditions[index]">
|
80
|
+
<option></option>
|
80
81
|
<option>男</option>
|
81
82
|
<option>女</option>
|
82
|
-
<option>ー</option>
|
83
83
|
</select>
|
84
84
|
</div>
|
85
85
|
</div>
|
4
修正
test
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
record は1次元の配列なので、record[i].includes とすると、includes 関数がないというエラーになり、フィルタがうまく機能しません。
|
8
8
|
ここは
|
9
9
|
```
|
10
|
-
if ( this.conditions[i] &&
|
10
|
+
if ( this.conditions[i] && record[i] !== this.conditions[i]) return false;
|
11
11
|
|
12
12
|
```
|
13
13
|
とします。
|
3
test
CHANGED
@@ -43,8 +43,8 @@
|
|
43
43
|
> 例)「生年月日」は右の一覧には表示するが、左のフィルタには不要 など
|
44
44
|
|
45
45
|
単純に、左のフィルタ項目を表示するところを操作して、元データを限定すればよいでしょう。
|
46
|
-
フィルタ項目は key という配列で管理されています。
|
46
|
+
フィルタ項目は keys という配列で管理されています。
|
47
|
-
keys 配列を、HTMLで表示しているのはここの部分です
|
47
|
+
keys 配列の中身を、HTMLで表示しているのはここの部分です
|
48
48
|
```html
|
49
49
|
<template v-for="(key, index) in keys">
|
50
50
|
<div style="margin-bottom: 1em;">
|
2
test
CHANGED
@@ -60,11 +60,11 @@
|
|
60
60
|
```html
|
61
61
|
<template v-for="(key, index) in keys">
|
62
62
|
<div v-if="key !== '名前フリガナ'">
|
63
|
-
<div style="margin-bottom: 1em;">
|
63
|
+
<div style="margin-bottom: 1em;">
|
64
|
-
<label class="label is-small">{{ key }}</label>
|
64
|
+
<label class="label is-small">{{ key }}</label>
|
65
|
-
<input v-model="conditions[index]" type="text" class="input is-small">
|
65
|
+
<input v-model="conditions[index]" type="text" class="input is-small">
|
66
|
+
</div>
|
66
67
|
</div>
|
67
|
-
</div>
|
68
68
|
</template>
|
69
69
|
```
|
70
70
|
|
1
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
if ( this.conditions[i] && !record[i].includes(this.conditions[i]) ) return false;
|
5
5
|
|
6
6
|
```
|
7
|
-
record は1次元の配列なので、record[i].includes
|
7
|
+
record は1次元の配列なので、record[i].includes とすると、includes 関数がないというエラーになり、フィルタがうまく機能しません。
|
8
8
|
ここは
|
9
9
|
```
|
10
10
|
if ( this.conditions[i] && !record.includes(this.conditions[i]) ) return false;
|