4040 <div class =" swipe-button" >
4141 <img
4242 src =" ~/assets/images/nope.png"
43- @click =" decide('nope'); cantEat(); "
43+ @click =" decide('nope')"
4444 >
4545 <span >食べれない</span >
4646 </div >
4747 <div class =" swipe-button" >
4848 <img
4949 src =" ~/assets/images/super-like.png"
50- @click =" decide('super'); canEat(); "
50+ @click =" decide('super')"
5151 >
5252 <span >好きなもの</span >
5353 </div >
5454 <div class =" swipe-button" >
5555 <img
5656 src =" ~/assets/images/like.png"
57- @click =" decide('like'); canEat(); "
57+ @click =" decide('like')"
5858 >
5959 <span >食べれる</span >
6060 </div >
@@ -71,28 +71,31 @@ export default {
7171 VueTinder,
7272 },
7373 data : () => ({
74- alcoholicBeverage: {},
7574 nibbles: [],
7675 queue: [],
76+ requestPayload: {
77+ alcoholicBeverageId: null ,
78+ selectNibbles: [],
79+ },
7780 offset: 0 ,
7881 }),
7982 created () {
80- this .getAlcoholicBeverage ();
83+ this .requestPayload .alcoholicBeverageId = this .$route .params .alcoholicBeverage ;
84+
8185 this .fetchNibbles ();
8286 },
8387 methods: {
84- getAlcoholicBeverage () {
85- this .alcoholicBeverage = this .$route .params .alcoholicBeverage ;
86- },
88+ // FIXME: asyncDataでとったほうが良さそう
8789 async fetchNibbles () {
88- await this .$axios .get (" /nibbles" ).then (res => {
90+ await this .$axios .get (" /nibbles" ).then (( res ) => {
8991 this .nibbles = res .data ;
9092 this .mock ();
9193 });
9294 },
9395 mock () {
9496 const list = [];
9597 const nibbles = this .nibbles ;
98+
9699 for (let i = 0 ; i < nibbles .length + 1 ; i++ ) {
97100 list .push ({
98101 id:
@@ -112,29 +115,47 @@ export default {
112115 }
113116 this .queue = this .queue .concat (list);
114117 },
115- onSubmit ({ item }) {
116- this .saveSwipe (item, " 食べれるか食べられへんかみたいなステータス取って渡したいけどやり方が分からん" );
118+ onSubmit ({ type, item }) {
119+ this .saveSwipe (type, item);
120+
117121 if (this .canMoveResult ()) {
118- // スワイプ情報も遷移先に渡すようにする
119- this .$router .push ({ name: " results" , params: {
120- swipes: " スワイプ情報がここに入ります"
121- } });
122+ // 遷移がいきなりおきるのはびっくりするのでちょっと待つ
123+ setTimeout (() => {
124+ // スワイプ情報も遷移先に渡すようにする
125+ this .$router .push ({
126+ name: " results" ,
127+ params: {
128+ swipes: this .requestPayload ,
129+ },
130+ });
131+ }, 1000 );
122132 }
133+
123134 if (this .queue .length < 3 ) {
124135 this .mock ();
125136 }
126137 },
127138 decide (choice ) {
139+ // これを呼ぶと、VueTinderコンポーネントの @submit イベントが自動的に発火するので、onSubmit内でtypeとitem受け取ればOK
128140 this .$refs .tinder .decide (choice);
129141 },
130- canEat () {
131- this .saveSwipe (item, " 食べれるか食べられへんかみたいなステータス取って渡したいけどやり方が分からん" );
132- },
133- cantEat () {
134- this .saveSwipe (item, " 食べれるか食べられへんかみたいなステータス取って渡したいけどやり方が分からん" );
135- },
136- saveSwipe (item , status ) {
137- // ゴニョる
142+ saveSwipe (type , item ) {
143+ if (type === " like" ) {
144+ this .requestPayload .selectNibbles .push ({
145+ id: item .id ,
146+ likeLevel: 1 ,
147+ });
148+ } else if (type === " super" ) {
149+ this .requestPayload .selectNibbles .push ({
150+ id: item .id ,
151+ likeLevel: 2 ,
152+ });
153+ } else {
154+ this .requestPayload .selectNibbles .push ({
155+ id: item .id ,
156+ likeLevel: 0 ,
157+ });
158+ }
138159 },
139160 canMoveResult () {
140161 return this .queue
0 commit comments