Skip to content

Commit 8de0b76

Browse files
committed
編集画面用のinputフィールドを作成
1 parent aed82f2 commit 8de0b76

File tree

2 files changed

+153
-0
lines changed

2 files changed

+153
-0
lines changed

src/components/EditorField.vue

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<template>
2+
<div>
3+
<span v-if="title" class="EditorField-Title">{{ title }}</span>
4+
<div class="EditorField-Form">
5+
<input-field :label="label" :placeholder="placeholder" />
6+
<content-card-editor-button
7+
v-if="iconName"
8+
class="Button"
9+
:icon-name="iconName"
10+
/>
11+
</div>
12+
</div>
13+
</template>
14+
15+
<script lang="ts">
16+
import Vue from 'vue'
17+
import InputField from '@/components/InputField.vue'
18+
import ContentCardEditorButton from '@/components/ContentCardEditorButton.vue'
19+
20+
export default Vue.extend({
21+
components: { InputField, ContentCardEditorButton },
22+
props: {
23+
title: {
24+
type: String,
25+
required: false,
26+
default: ''
27+
},
28+
label: {
29+
type: String,
30+
required: false,
31+
default: ''
32+
},
33+
placeholder: {
34+
type: String,
35+
required: false,
36+
default: ''
37+
},
38+
iconName: {
39+
type: String,
40+
required: false,
41+
default: ''
42+
}
43+
}
44+
})
45+
</script>
46+
47+
<style lang="scss" scoped>
48+
.EditorField-Title {
49+
display: block;
50+
font-size: 16px;
51+
font-weight: bold;
52+
color: $color-white;
53+
margin-bottom: 4px;
54+
}
55+
.EditorField-Form {
56+
display: flex;
57+
58+
.Button {
59+
flex: 0 1 auto;
60+
margin-left: 8px;
61+
}
62+
}
63+
</style>

src/components/EditorTextarea.vue

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<template>
2+
<div>
3+
<span v-if="title" class="EditorField-Title">{{ title }}</span>
4+
<div class="EditorField-Form">
5+
<v-textarea
6+
v-model="value"
7+
:hint="hint"
8+
:label="label"
9+
:placeholder="placeholder"
10+
background-color="white"
11+
class="elevation-0"
12+
solo
13+
flat
14+
outlined
15+
/>
16+
<content-card-editor-button
17+
v-if="iconName"
18+
class="Button"
19+
:icon-name="iconName"
20+
/>
21+
</div>
22+
</div>
23+
</template>
24+
25+
<script lang="ts">
26+
import Vue from 'vue'
27+
import ContentCardEditorButton from '@/components/ContentCardEditorButton.vue'
28+
29+
type DataType = {
30+
value: string
31+
}
32+
33+
export default Vue.extend({
34+
components: { ContentCardEditorButton },
35+
props: {
36+
title: {
37+
type: String,
38+
required: false,
39+
default: ''
40+
},
41+
label: {
42+
type: String,
43+
required: false,
44+
default: ''
45+
},
46+
placeholder: {
47+
type: String,
48+
required: false,
49+
default: ''
50+
},
51+
hint: {
52+
type: String,
53+
required: false,
54+
default: ''
55+
},
56+
iconName: {
57+
type: String,
58+
required: false,
59+
default: ''
60+
}
61+
},
62+
data(): DataType {
63+
return {
64+
value: ''
65+
}
66+
}
67+
})
68+
</script>
69+
70+
<style lang="scss" scoped>
71+
.EditorField-Title {
72+
display: block;
73+
font-size: 16px;
74+
font-weight: bold;
75+
color: $color-white;
76+
margin-bottom: 4px;
77+
}
78+
.EditorField-Form {
79+
display: flex;
80+
81+
.Textarea {
82+
box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.3);
83+
}
84+
85+
.Button {
86+
flex: 0 1 auto;
87+
margin-left: 8px;
88+
}
89+
}
90+
</style>

0 commit comments

Comments
 (0)