Skip to content

Commit 5b74ead

Browse files
committed
New field: file upload (fieldFile).
1 parent 5099907 commit 5b74ead

File tree

2 files changed

+73
-29
lines changed

2 files changed

+73
-29
lines changed

src/fields/core/fieldFile.vue

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<template lang="pug">
2+
.wrapper
3+
input.form-control(
4+
id="ts01",
5+
type="file",
6+
:name="schema.inputName",
7+
@change="schema.onChange || null",
8+
:accept="schema.accept",
9+
:multiple="schema.multiple",
10+
:placeholder="schema.placeholder",
11+
:readonly="schema.readonly",
12+
:required="schema.required",
13+
:disabled="disabled",)
14+
</template>
15+
16+
<script>
17+
import abstractField from "../abstractField";
18+
import fecha from "fecha";
19+
20+
export default {
21+
mixins: [abstractField]
22+
};
23+
24+
</script>
25+
26+
<style lang="sass">
27+
.vue-form-generator .field-input {
28+
.wrapper {
29+
width: 100%;
30+
}
31+
input[type="radio"] {
32+
width: 100%;
33+
}
34+
input[type="color"] {
35+
width: 60px;
36+
}
37+
input[type="range"] {
38+
padding: 0;
39+
}
40+
41+
.helper {
42+
margin: auto 0.5em;
43+
}
44+
}
45+
</style>

src/fields/core/fieldInput.vue

+28-29
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
:type="schema.inputType",
66
:value="value",
77
@input="value = $event.target.value",
8-
@change="onChange",
8+
@change="schema.onChange || null",
99
:disabled="disabled",
1010
:accept="schema.accept",
1111
:alt="schema.alt",
@@ -37,22 +37,17 @@
3737
</template>
3838

3939
<script>
40-
import abstractField from "../abstractField";
41-
import fecha from "fecha";
40+
import abstractField from "../abstractField";
41+
import fecha from "fecha";
4242
43-
export default {
44-
mixins: [ abstractField ],
45-
methods: {
46-
onChange(event){
47-
if (this.schema.inputType === "file") {
48-
this.value = event.target.files;
49-
}
50-
},
51-
52-
formatValueToField(value) {
53-
if (value != null) {
54-
let dt;
55-
switch(this.schema.inputType){
43+
export default {
44+
mixins: [abstractField],
45+
methods: {
46+
47+
formatValueToField(value) {
48+
if (value != null) {
49+
let dt;
50+
switch (this.schema.inputType) {
5651
case "date":
5752
dt = this.schema.format ? fecha.parse(value, this.schema.format) : new Date(value);
5853
return fecha.format(dt, "YYYY-MM-DD");
@@ -62,16 +57,16 @@
6257
case "datetime-local":
6358
dt = this.schema.format ? fecha.parse(value, this.schema.format) : new Date(value);
6459
return fecha.format(dt, "YYYY-MM-DDTHH:mm:ss");
65-
}
6660
}
67-
68-
return value;
69-
},
61+
}
7062
71-
formatValueToModel(value) {
72-
if (value != null) {
73-
let m;
74-
switch (this.schema.inputType){
63+
return value;
64+
},
65+
66+
formatValueToModel(value) {
67+
if (value != null) {
68+
let m;
69+
switch (this.schema.inputType) {
7570
case "date":
7671
m = fecha.parse(value, "YYYY-MM-DD");
7772
if (m !== false) {
@@ -100,16 +95,20 @@
10095
}
10196
break;
10297
case "number":
103-
return Number(value);
98+
return Number(value);
10499
case "range":
105100
return Number(value);
106-
}
107101
}
108-
109-
return value;
110102
}
103+
104+
return value;
111105
}
112-
};
106+
},
107+
108+
created () {
109+
console.warn("The 'file' type in input field is deprecated. Use 'file' field instead.");
110+
}
111+
};
113112
114113
</script>
115114

0 commit comments

Comments
 (0)