Blame view

src/pages/Mark/markDistribution.vue 10.8 KB
006544386   Neeraj Sharma   implement task
1
  <template>
68d742034   Neeraj Sharma   implement new des...
2
3
4
5
6
7
8
9
    <v-container fluid class="body-color">
      <!-- ****** EDIT  Mark Distribution ****** -->
      <v-dialog v-model="editMarkDistributionDialog" max-width="500px">
        <v-card flat class="card-style pa-2" dark>
          <v-layout>
            <v-flex xs12>
              <label class="title text-xs-center">Edit Class</label>
              <v-icon size="24" class="right" @click="editMarkDistributionDialog = false">cancel</v-icon>
006544386   Neeraj Sharma   implement task
10
            </v-flex>
68d742034   Neeraj Sharma   implement new des...
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
          </v-layout>
          <v-form ref="form">
            <v-container fluid>
              <v-flex xs12 sm12>
                <v-layout>
                  <v-flex xs4 class="pt-4 subheading">
                    <label class="right">Mark Distribution:</label>
                  </v-flex>
                  <v-flex xs8 sm6 class="ml-3">
                    <v-text-field
                      v-model="editedItem.distributionType"
                      placeholder="fill your Distribution Type"
                    ></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-flex xs12 sm12>
                <v-layout>
                  <v-flex xs4 class="pt-4 subheading">
                    <label class="right">Mark Value:</label>
                  </v-flex>
                  <v-flex xs8 sm6 class="ml-3">
                    <v-text-field placeholder="fill your  Mark Value" v-model="editedItem.markValue"></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-layout>
                <v-flex xs12 sm11>
                  <v-card-actions>
                    <v-spacer></v-spacer>
                    <v-btn round dark @click="save" class="add-button">Save</v-btn>
                  </v-card-actions>
                </v-flex>
              </v-layout>
            </v-container>
          </v-form>
        </v-card>
      </v-dialog>
      <!-- ****** MARK DISTRIBUTATION TABLE ****** -->
      <v-toolbar color="transparent" flat>
        <v-btn
          fab
          dark
          class="open-dialog-button hidden-xl-only hidden-md-only hidden-lg-only"
          small
          @click="addMarkDistributionDialog = true"
        >
          <v-icon dark>add</v-icon>
        </v-btn>
        <v-btn
          round
          class="open-dialog-button hidden-sm-only hidden-xs-only"
          dark
          @click="addMarkDistributionDialog = true"
        >
          <v-icon class="white--text pr-1" size="20">add</v-icon>Add Mark Distribution
        </v-btn>
        <v-spacer></v-spacer>
        <v-card-title class="body-1" v-show="show">
          <v-btn icon large flat @click="displaySearch">
            <v-avatar size="27">
aa310d61a   Shikha Mishra   added functionali...
72
              <img src="/static/icon/search.png" alt="icon" />
68d742034   Neeraj Sharma   implement new des...
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
            </v-avatar>
          </v-btn>
        </v-card-title>
        <v-flex xs8 sm8 md3 lg2 v-show="showSearch">
          <v-layout>
            <v-text-field v-model="search" label="Search" prepend-inner-icon="search" color="primary"></v-text-field>
            <v-icon @click="closeSearch" color="error">close</v-icon>
          </v-layout>
        </v-flex>
      </v-toolbar>
      <v-data-table
        :headers="headers"
        :items="markList"
        :pagination.sync="pagination"
        :search="search"
      >
        <template slot="items" slot-scope="props">
          <tr class="tr">
            <td class="td td-row text-xs-center">{{ props.index + 1 }}</td>
            <td class="td td-row text-xs-center">{{ props.item.distributionType }}</td>
            <td class="td td-row text-xs-center linkCover">{{ props.item.markValue }}</td>
            <td class="td td-row text-xs-center">
              <span>
                <img
                  style="cursor:pointer; width:20px; height:18px; "
                  class="mr-3"
                  @click="editItem(props.item)"
aa310d61a   Shikha Mishra   added functionali...
100
                  src="/static/icon/edit.png"
68d742034   Neeraj Sharma   implement new des...
101
102
103
104
                />
                <img
                  style="cursor:pointer; width:20px; height:20px; "
                  @click="deleteItem(props.item)"
aa310d61a   Shikha Mishra   added functionali...
105
                  src="/static/icon/delete.png"
68d742034   Neeraj Sharma   implement new des...
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
                />
              </span>
            </td>
          </tr>
        </template>
        <v-alert
          slot="no-results"
          :value="true"
          color="error"
          icon="warning"
        >Your search for "{{ search }}" found no results.</v-alert>
      </v-data-table>
      <!-- ****** ADD MULTIPLE REMINDER ****** -->
      <v-dialog v-model="addMarkDistributionDialog" max-width="500px">
        <v-card flat class="card-style pa-2" dark>
          <v-layout>
            <v-flex xs12>
              <label class="title text-xs-center">Add Mark Distribution</label>
              <v-icon size="24" class="right" @click="addMarkDistributionDialog = false">cancel</v-icon>
006544386   Neeraj Sharma   implement task
125
            </v-flex>
68d742034   Neeraj Sharma   implement new des...
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
          </v-layout>
          <v-form ref="form" v-model="valid" lazy-validation>
            <v-container fluid>
              <v-flex xs12>
                <v-layout wrap>
                  <v-flex xs12 sm12 md4 class="pt-4 subheading">
                    <label class="right hidden-xs-only hidden-sm-only">Mark Distribution:</label>
                    <label class="hidden-md-only hidden-lg-only hidden-xl-only">Mark Distribution:</label>
                  </v-flex>
                  <v-flex xs12 sm12 md7 class="ml-3">
                    <v-text-field
                      v-model="mark.distributionType"
                      placeholder="fill your Mark Distribution"
                      :rules="markDistributionRules"
                    ></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-flex xs12>
                <v-layout wrap>
                  <v-flex xs12 sm12 md4 class="pt-4 subheading">
                    <label class="right hidden-xs-only hidden-sm-only">Mark Value:</label>
                    <label class="hidden-md-only hidden-lg-only hidden-xl-only">Mark Value:</label>
                  </v-flex>
                  <v-flex xs12 sm12 md7 class="ml-3">
                    <v-text-field
                      placeholder="fill your Mark Value"
                      :rules="markValueRules"
                      v-model="mark.markValue"
                      type="text"
                      required
                    ></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-layout>
                <v-flex xs12 sm12>
                  <v-layout>
                    <v-spacer></v-spacer>
                    <v-btn @click="clear" round class="clear-button" dark>clear</v-btn>
                    <v-btn @click="submit" round dark :loading="loading" class="add-button">Add</v-btn>
                  </v-layout>
                </v-flex>
              </v-layout>
            </v-container>
          </v-form>
        </v-card>
      </v-dialog>
006544386   Neeraj Sharma   implement task
174
175
176
177
178
179
      <v-snackbar
        :timeout="timeout"
        :top="y === 'top'"
        :right="x === 'right'"
        :vertical="mode === 'vertical'"
        v-model="snackbar"
68d742034   Neeraj Sharma   implement new des...
180
        :color="color"
006544386   Neeraj Sharma   implement task
181
182
183
184
      >{{ text }}</v-snackbar>
      <div class="loader" v-if="showLoader">
        <v-progress-circular indeterminate color="white"></v-progress-circular>
      </div>
68d742034   Neeraj Sharma   implement new des...
185
    </v-container>
006544386   Neeraj Sharma   implement task
186
187
188
189
190
191
192
193
194
195
196
197
  </template>
  
  <script>
  import http from "@/Services/http.js";
  import Util from "@/util";
  
  export default {
    data: () => ({
      snackbar: false,
      y: "top",
      x: "right",
      mode: "",
68d742034   Neeraj Sharma   implement new des...
198
199
      color: "",
      timeout: 5000,
006544386   Neeraj Sharma   implement task
200
201
202
203
      text: "",
      loading: false,
      search: "",
      showLoader: false,
68d742034   Neeraj Sharma   implement new des...
204
205
206
207
      show: true,
      showSearch: false,
      editMarkDistributionDialog: false,
      addMarkDistributionDialog: false,
006544386   Neeraj Sharma   implement task
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
      valid: true,
      isActive: true,
      newActive: false,
      pagination: {
        rowsPerPage: 15
      },
      markDistributionRules: [v => !!v || " Mark Distribution type is required"],
      markValueRules: [v => !!v || "Mark Value is required"],
      headers: [
        {
          text: "No",
          align: "center",
          sortable: false,
          value: "No"
        },
        {
          text: " Mark Distribution Type",
          value: " distributionType",
          sortable: false,
          align: "center"
        },
        {
          text: " Mark Value",
          value: "markValue",
          sortable: false,
          align: "center"
        },
        { text: "Action", value: "", sortable: false, align: "center" }
      ],
      markList: [],
      editedIndex: -1,
      mark: {},
      editedItem: {},
      token: ""
    }),
    methods: {
      getMarkDistributions() {
        this.showLoader = true;
        http()
          .get("/getMarkDistributionsList", {
            headers: { Authorization: "Bearer " + this.token }
          })
          .then(response => {
            this.markList = response.data.data;
            this.showLoader = false;
          })
          .catch(error => {
            this.showLoader = false;
            // if (error.response.status === 401) {
            //   this.$router.replace({ path: "/" });
            //   this.$store.dispatch("setToken", null);
            //   this.$store.dispatch("Id", null);
            // }
          });
      },
      editItem(item) {
        this.editedIndex = this.markList.indexOf(item);
        this.editedItem = Object.assign({}, item);
68d742034   Neeraj Sharma   implement new des...
266
        this.editMarkDistributionDialog = true;
006544386   Neeraj Sharma   implement task
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
      },
      deleteItem(item) {
        let deleteParticularMark = {
          markDistributionId: item._id
        };
        http()
          .delete(
            "/deleteMarkDistribution",
            confirm("Are you sure you want to delete this?") && {
              params: deleteParticularMark
            }
          )
          .then(response => {
            this.snackbar = true;
            this.text = response.data.message;
            this.getMarkDistributions();
          })
          .catch(error => {
            console.log(error);
          });
      },
006544386   Neeraj Sharma   implement task
288
      close() {
68d742034   Neeraj Sharma   implement new des...
289
        this.editMarkDistributionDialog = false;
006544386   Neeraj Sharma   implement task
290
291
292
293
294
295
296
297
298
299
300
      },
      submit() {
        if (this.$refs.form.validate()) {
          this.loading = true;
          http()
            .post("/createMarkDistribution", this.mark)
            .then(response => {
              this.snackbar = true;
              this.text = response.data.message;
              this.getMarkDistributions();
              this.clear();
68d742034   Neeraj Sharma   implement new des...
301
              this.addMarkDistributionDialog = false;
006544386   Neeraj Sharma   implement task
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
              this.loading = false;
            })
            .catch(error => {
              this.snackbar = true;
              this.text = error.response.data.message;
              this.loading = false;
            });
        }
      },
      clear() {
        this.$refs.form.reset();
      },
      save() {
        (this.editedItem.markDistributionId = this.editedItem._id),
          http()
            .put("/updateMarkDistribution", this.editedItem)
            .then(response => {
              this.snackbar = true;
              this.text = "Successfully Edit Notification";
              this.getMarkDistributions();
              this.close();
            })
            .catch(error => {
              console.log(error);
            });
68d742034   Neeraj Sharma   implement new des...
327
328
329
330
331
332
333
334
      },
      displaySearch() {
        (this.show = false), (this.showSearch = true);
      },
      closeSearch() {
        this.showSearch = false;
        this.show = true;
        this.search = "";
006544386   Neeraj Sharma   implement task
335
336
337
338
339
      }
    },
    mounted() {
      this.token = this.$store.state.token;
      this.getMarkDistributions();
006544386   Neeraj Sharma   implement task
340
341
342
    }
  };
  </script>
68d742034   Neeraj Sharma   implement new des...
343
  <style scoped>