66 <p class =" q-mt-xl page-title" >
77 Keywords
88 </p >
9+
10+ <p class =" question" >
11+ What keywords describe the work?
12+ </p >
13+
14+ <div
15+ v-for =" (keyword, index) in keywords"
16+ v-bind:key =" index"
17+ >
18+ <KeywordEditCard
19+ v-bind :keyword =" keyword "
20+ v-on :update =" setKeyword (index , $event )"
21+ v-on :removePressed =" removeKeyword (index )"
22+ />
23+ </div >
24+
25+ <q-btn v-on:click =" addKeyword" >
26+ Add keyword
27+ </q-btn >
928 </div >
1029 </div >
1130 <StepperActions />
1231</template >
1332
1433<script lang="ts">
1534import StepperActions from ' components/StepperActions.vue'
35+ import KeywordEditCard from ' components/KeywordEditCard.vue'
1636import { defineComponent } from ' vue'
1737import { useCff } from ' ../store/cff'
1838
1939export default defineComponent ({
2040 name: ' Keywords' ,
2141 components: {
22- StepperActions
42+ StepperActions ,
43+ KeywordEditCard
2344 },
2445 setup () {
2546 const { keywords, setKeywords } = useCff ()
47+
48+ function addKeyword () {
49+ const newKeyword = ' '
50+ const newKeywords = [... keywords .value , newKeyword ]
51+ console .log (newKeywords )
52+ setKeywords (newKeywords )
53+ }
54+
55+ function removeKeyword (index : number ) {
56+ const newKeywords = [... keywords .value ]
57+ newKeywords .splice (index , 1 )
58+ setKeywords (newKeywords )
59+ }
60+
61+ function setKeyword (index : number , newKeyword : string ) {
62+ const newKeywords = [... keywords .value ]
63+ newKeywords [index ] = newKeyword
64+ setKeywords (newKeywords )
65+ }
2666 return {
2767 keywords ,
28- setKeywords
68+ addKeyword ,
69+ removeKeyword ,
70+ setKeyword
2971 }
3072 }
3173})
@@ -41,5 +83,4 @@ export default defineComponent({
4183 max-width : 700px ;
4284 min-width : 300px ;
4385}
44-
4586 </style >
0 commit comments