|
1 | 1 | <template>
|
2 | 2 | <div class="row q-col-gutter-lg">
|
3 | 3 | <div class="col-sm-8 col-sx-12">
|
4 |
| - <q-list :dark="false" class="q-gutter-y-sm"> |
| 4 | + <q-list class="q-gutter-y-sm"> |
5 | 5 | <div class="column">
|
6 | 6 | <div class="text-h6">Component</div>
|
7 |
| - <q-field |
8 |
| - :dark="false" |
9 |
| - dense |
10 |
| - outlined |
11 |
| - v-model="price" |
12 |
| - > |
13 |
| - <template v-slot:control="{ id, floatingLabel, value, emitValue }"> |
| 7 | + <q-field dense outlined v-model="price"> |
| 8 | + <template |
| 9 | + v-slot:control="{ id, floatingLabel, modelValue, emitValue }" |
| 10 | + > |
14 | 11 | <number
|
15 | 12 | :id="id"
|
16 | 13 | class="q-field__input"
|
17 |
| - :value="value" |
18 |
| - @input="emitValue" |
| 14 | + :modelValue="modelValue" |
| 15 | + @update:model-value="emitValue" |
19 | 16 | v-bind="config"
|
20 | 17 | v-show="floatingLabel"
|
21 | 18 | />
|
22 | 19 | </template>
|
23 | 20 | </q-field>
|
24 |
| - <div>Model value: <span class="text-bold">{{price}}</span></div> |
| 21 | + <div> |
| 22 | + Model value: <span class="text-bold">{{ price }}</span> |
| 23 | + </div> |
25 | 24 | </div>
|
26 | 25 | <div class="column">
|
27 | 26 | <div class="text-h6">Reverse Fill</div>
|
28 |
| - <q-field |
29 |
| - :dark="false" |
30 |
| - dense |
31 |
| - outlined |
32 |
| - v-model="reverseFill" |
33 |
| - > |
34 |
| - <template v-slot:control="{ id, floatingLabel, value, emitValue }"> |
| 27 | + <q-field dense outlined v-model="reverseFill"> |
| 28 | + <template |
| 29 | + v-slot:control="{ id, floatingLabel, modelValue, emitValue }" |
| 30 | + > |
35 | 31 | <number
|
36 | 32 | :id="id"
|
37 | 33 | class="q-field__input"
|
38 |
| - :value="value" |
39 |
| - @input="emitValue" |
| 34 | + :modelValue="modelValue" |
| 35 | + @update:model-value="emitValue" |
40 | 36 | v-bind="configReverseFill"
|
41 | 37 | v-show="floatingLabel"
|
42 | 38 | />
|
43 | 39 | </template>
|
44 | 40 | </q-field>
|
45 |
| - <div>Model value: <span class="text-bold">{{reverseFill}}</span></div> |
| 41 | + <div> |
| 42 | + Model value: <span class="text-bold">{{ reverseFill }}</span> |
| 43 | + </div> |
46 | 44 | </div>
|
47 | 45 | <div class="column">
|
48 | 46 | <div class="text-h6">Directive</div>
|
49 |
| - <q-field |
50 |
| - :dark="false" |
51 |
| - dense |
52 |
| - outlined |
53 |
| - hint="masking doesn't work with directive" |
54 |
| - > |
| 47 | + <q-field dense outlined hint="masking doesn't work with directive"> |
55 | 48 | <template v-slot:control>
|
56 | 49 | <input
|
57 |
| - type="tel" |
| 50 | + type="text" |
58 | 51 | class="q-field__input"
|
59 | 52 | v-number="config"
|
60 |
| - v-model="priceDirective" |
| 53 | + :value="priceDirective" |
| 54 | + @change="({ target }) => (priceDirective = target.value)" |
61 | 55 | />
|
62 | 56 | </template>
|
63 | 57 | </q-field>
|
64 |
| - <div>Model value: <span class="text-bold">{{priceDirective}}</span></div> |
| 58 | + <div> |
| 59 | + Model value: <span class="text-bold">{{ priceDirective }}</span> |
| 60 | + </div> |
65 | 61 | </div>
|
66 |
| - <div class="column"> |
67 |
| - <div class="text-h6">Directive on Custom Component of <a href="https://quasar.dev/vue-components/input" target="_blank">QInput</a></div> |
| 62 | + <!-- <div class="column"> |
| 63 | + <div class="text-h6"> |
| 64 | + Directive on Custom Component of |
| 65 | + <a href="https://quasar.dev/vue-components/input" target="_blank" |
| 66 | + >QInput</a |
| 67 | + > |
| 68 | + </div> |
68 | 69 | <q-input
|
69 |
| - :dark="false" |
| 70 | + type="text" |
70 | 71 | dense
|
71 | 72 | outlined
|
72 |
| - v-model="priceUnmasked" |
73 |
| - v-number.lazy="config" |
| 73 | + :model-value="priceUnmasked" |
| 74 | + @update:model-value="onChange" |
| 75 | + v-number="config" |
74 | 76 | />
|
75 |
| - <div>Model value: <span class="text-bold">{{priceUnmasked}}</span></div> |
76 |
| - </div> |
| 77 | + <div> |
| 78 | + Model value: <span class="text-bold">{{ priceUnmasked }}</span> |
| 79 | + </div> |
| 80 | + </div> --> |
77 | 81 | </q-list>
|
78 | 82 | </div>
|
79 | 83 | <div class="col-sm-4 col-xs-12">
|
80 |
| - <q-list :dark="false" class="q-gutter-y-sm"> |
81 |
| - <q-input :dark="false" dense v-model="config.prefix" type="text" label="Prefix" /> |
82 |
| - <q-input :dark="false" dense v-model="config.suffix" type="text" label="Suffix" /> |
83 |
| - <q-input :dark="false" dense v-model.number="config.precision" type="number" min="0" max="5" label="Precision" /> |
84 |
| - <q-input :dark="false" dense v-model="config.decimal" type="text" label="Decimal" /> |
85 |
| - <q-input :dark="false" dense v-model="config.separator" type="text" label="Separator" /> |
86 |
| - <q-checkbox :dark="false" dense v-model="config.masked" label="Masked" /> |
87 |
| - <q-checkbox :dark="false" dense v-model="config.reverseFill" label="Reverse Fill" /> |
| 84 | + <q-list class="q-gutter-y-sm"> |
| 85 | + <q-input dense v-model="config.prefix" type="text" label="Prefix" /> |
| 86 | + <q-input dense v-model="config.suffix" type="text" label="Suffix" /> |
| 87 | + <q-input |
| 88 | + dense |
| 89 | + v-model.number="config.precision" |
| 90 | + type="number" |
| 91 | + min="0" |
| 92 | + max="5" |
| 93 | + label="Precision" |
| 94 | + /> |
| 95 | + <q-input dense v-model="config.decimal" type="text" label="Decimal" /> |
| 96 | + <q-input |
| 97 | + dense |
| 98 | + v-model="config.separator" |
| 99 | + type="text" |
| 100 | + label="Separator" |
| 101 | + /> |
| 102 | + <q-checkbox dense v-model="config.masked" label="Masked" /> |
| 103 | + <q-checkbox dense v-model="config.reverseFill" label="Reverse Fill" /> |
88 | 104 | </q-list>
|
89 | 105 | </div>
|
90 | 106 | </div>
|
91 | 107 | </template>
|
92 | 108 |
|
93 | 109 | <script>
|
94 | 110 | export default {
|
95 |
| - data () { |
| 111 | + data() { |
96 | 112 | return {
|
97 | 113 | price: 154.52,
|
98 | 114 | priceDirective: null,
|
99 |
| - priceUnmasked: 6789.10, |
| 115 | + priceUnmasked: 6789.1, |
100 | 116 | config: {
|
101 |
| - decimal: '.', |
102 |
| - separator: ',', |
103 |
| - prefix: '$', |
104 |
| - suffix: ' %', |
| 117 | + decimal: ".", |
| 118 | + separator: ",", |
| 119 | + prefix: "$", |
| 120 | + suffix: " %", |
105 | 121 | precision: 2,
|
106 |
| - nullValue: '', |
| 122 | + nullValue: "", |
107 | 123 | masked: false,
|
108 | 124 | reverseFill: false
|
109 | 125 | },
|
110 |
| - reverseFill: 6789.10, |
| 126 | + reverseFill: 6789.1, |
111 | 127 | configReverseFill: {
|
112 | 128 | reverseFill: true,
|
113 |
| - suffix: '', |
| 129 | + suffix: "" |
114 | 130 | }
|
| 131 | + }; |
| 132 | + }, |
| 133 | + methods: { |
| 134 | + onChange(args) { |
| 135 | + console.log("args", args); |
115 | 136 | }
|
116 | 137 | }
|
117 |
| -} |
| 138 | +}; |
118 | 139 | </script>
|
119 | 140 |
|
120 | 141 | <style lang="css">
|
121 |
| - .container { |
122 |
| - min-width: 800px; |
123 |
| - max-width: 95vw; |
124 |
| - } |
| 142 | +.container { |
| 143 | + min-width: 800px; |
| 144 | + max-width: 95vw; |
| 145 | +} |
125 | 146 | </style>
|
0 commit comments