Űrlap példa

Forrás:

<template>
  <div id="app">
    <table v-if="mode">
      <tr>
        <td>E-mail cím:</td>
        <td>
          <input placeholder="E-mail cím" v-model="o.email">
        </td>
      </tr>
      <tr>
        <td>Neve:</td>
        <td>
          <input placeholder="Név" v-model="o.name">
        </td>
      </tr>
      <tr>
        <td>Született:</td>
        <td>
          <input type="date" v-model="o.i1">
        </td>
      </tr>
      <tr>
        <td>Neme:</td>
        <td>
          <input name="x" type="radio" value="Férfi" v-model="o.i2">
          <input name="x" type="radio" value="" v-model="o.i2">
        </td>
      </tr>
      <tr>
        <td>Kedvenc színe:</td>
        <td>
          <input type="color" v-model="o.ksz">
        </td>
      </tr>
      <tr>
        <td colspan="2" class="c">
          <button @click="f()" :disabled="!(o.email && o.i1 && o.name && o.i2)">Ment</button>
          <button @click="o={},mode=0">Mégse</button>
        </td>
      </tr>
    </table>
    <table v-if="!mode">
      <tr v-for="(sor,i) in Array.from(t)" :key="sor.email">
        <td>{{ i+1 }}.</td>
        <td :style="'color: '+sor[1].ksz">{{ sor[0] }}</td>
        <td :style="'background-color: '+sor[1].ksz">{{ sor[1].name }}</td>
        <td>{{ sor[1].i1 }}</td>
        <td class="c">{{ sor[1].i2 }}</td>
        <td class="katt c" @click="o=t.get(sor[0]),mode=2">&#9999;</td>
        <td class="katt c" @click="torol(sor[0])">&#10799;</td>
      </tr>
      <tr>
        <td colspan="7"
            class="c">
            <button @click="mode=1">Új elem</button>
        </td>
      </tr>
    </table>
  </div>
</template>
 
<script>
export default {
  name: "App",
  data() {
    return {
      o: {},
      t: new Map(),
      mode: 0
    };
  },
  mounted(){
    var ldb = localStorage.getItem('db')
    if (ldb) {
      this.t = new Map()
       JSON.parse( ldb ).forEach( v => {
        this.t.set(v[0],v[1])
       })
    }
  },
  methods: {
    torol(mit) {
      this.t.delete(mit)
      this.$forceUpdate()
      localStorage.setItem('db',JSON.stringify(Array.from(this.t)))
    },
    f() {
      if (this.mode===1) {
        if (this.t.has(this.o.email)) {
          alert("van már ilyen e-mail cím");
        } else {
          this.t.set(this.o.email, this.o);
          this.o = {};
          //this.$forceUpdate();
          this.mode=0
        }
      } else {
          this.t.set(this.o.email, this.o);
          this.o = {};
          this.mode=0
      }
      localStorage.setItem('db',JSON.stringify(Array.from(this.t)))
    }
  }
};
</script>
<style>
td.katt {
  cursor: pointer;
}
td.katt:hover {
  text-shadow:1px 1px 3px black;
  color:red;
}
td.c {
  text-align: center;
}
</style>
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Utoljára frissítve: 2/18/2020, 6:57:39 PM