/
CPromptInput.vue
67 lines (58 loc) · 1.04 KB
/
CPromptInput.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<template>
<div>
<p v-if="!!message" v-html="message" />
<b-form-group
:label="label"
label-class="text-primary"
>
<b-input
:type="type"
:disabled="loading"
v-model="value"
/>
</b-form-group>
<b-button
:disabled="loading"
variant="primary"
@click="$emit('submit', { value: { '@value': value, '@type': 'String' }})"
>
{{ pVal('buttonLabel', 'Submit') }}
</b-button>
</div>
</template>
<script lang="js">
import base from './base.vue'
const validTypes = [
'text',
'number',
'email',
'password',
'search',
'date',
'time',
]
export default {
extends: base,
name: 'c-prompt-input',
data () {
return {
value: undefined
}
},
beforeMount() {
this.value = this.pVal('value')
},
computed: {
type () {
const t = this.pVal('type', 'text')
if (validTypes.indexOf(t) === -1) {
return 'text'
}
return t
},
label () {
return this.pVal('label', '')
}
},
}
</script>