Blame view

src/pages/Account/expense.vue 25.2 KB
687e0b929   Neeraj Sharma   add user,attenden...
1
  <template>
68d742034   Neeraj Sharma   implement new des...
2
3
    <v-container fluid class="body-color">
      <!-- ****** EDIT EXPENSE  ****** -->
db965de89   Amber Dev   added dialog pers...
4
      <v-dialog v-model="editExpenseDialog" max-width="600px" scrollable persistent>
68d742034   Neeraj Sharma   implement new des...
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        <v-card flat class="card-style pa-2" dark>
          <v-layout>
            <v-flex xs12>
              <label class="title text-xs-center">Edit Expense Profile</label>
              <v-icon size="24" class="right" @click="editExpenseDialog = false">cancel</v-icon>
            </v-flex>
          </v-layout>
          <v-card-text style="height: 600px;">
            <v-layout>
              <v-flex
                xs12
                class="text-xs-center text-sm-center text-md-center text-lg-center my-4 mr-4"
              >
                <v-avatar size="140px" v-if="!editedItem.fileUrl && !imageUrl">
                  <img src="/static/icon/user.png" />
                </v-avatar>
8e8d14254   Shikha Mishra   Cleared data whil...
21
22
23
24
25
                <img
                  :src="editedItem.fileUrl"
                  v-else-if="editedItem.fileUrl && !imageUrl"
                  style="border-radius:50%; width:150px"
                />
68d742034   Neeraj Sharma   implement new des...
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
                <img
                  v-if="imageUrl"
                  :src="imageUrl"
                  height="150"
                  style="border-radius:50%; width:150px"
                />
                <input
                  type="file"
                  style="display:none"
                  ref="image"
                  accept="image/*"
                  @change="onFilePicked"
                />
              </v-flex>
            </v-layout>
            <v-layout wrap>
              <v-flex xs12 sm12>
                <v-layout>
                  <v-flex xs4 class="pt-4 subheading">
                    <label class="right">Name:</label>
                  </v-flex>
                  <v-flex xs7 class="ml-3">
                    <v-text-field
                      v-model="editedItem.name"
                      placeholder="fill your full Name"
                      name="name"
                      type="text"
                      required
                    ></v-text-field>
                  </v-flex>
                </v-layout>
              </v-flex>
            </v-layout>
            <v-layout wrap>
              <v-flex xs12>
                <v-layout>
                  <v-flex xs4 class="pt-4 subheading">
                    <label class="right">Date:</label>
                  </v-flex>
                  <v-flex xs7 class="ml-3">
                    <v-menu
                      ref="menu"
                      :close-on-content-click="false"
                      v-model="menu3"
                      :nudge-right="40"
                      lazy
                      transition="scale-transition"
                      offset-y
                      full-width
                      min-width="290px"
                    >
                      <v-text-field
                        slot="activator"
                        v-model="editedItem.date"
                        placeholder="Select date"
                      ></v-text-field>
                      <v-date-picker
                        ref="picker"
                        v-model="editedItem.date"
                        @input="$refs.menu.save(editedItem.date)"
                      ></v-date-picker>
                    </v-menu>
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-layout wrap>
                <v-flex xs12 sm12>
                  <v-layout>
                    <v-flex xs4 class="pt-4 subheading">
                      <label class="right">Amount:</label>
                    </v-flex>
                    <v-flex xs7 class="ml-3">
                      <v-text-field v-model="editedItem.amount" required></v-text-field>
                    </v-flex>
                  </v-layout>
                </v-flex>
              </v-layout>
              <v-flex xs12>
                <v-layout wrap>
                  <v-flex xs4 class="pt-4 subheading">
                    <label class="right hidden-xs-only hidden-sm-only">Uplaod Image:</label>
                    <label class="right hidden-lg-only hidden-md-only hidden-xl-only">Uplaod:</label>
                  </v-flex>
                  <v-flex xs7 class="ml-3">
                    <v-text-field
                      label="Select Image"
                      @click="pickFile"
                      v-model="imageName"
                      append-icon="attach_file"
                    ></v-text-field>
d10c26632   Shikha Mishra   Improve updateBoo...
116
117
118
119
120
121
122
                    <input
                      type="file"
                      style="display:none"
                      ref="image"
                      accept="image/*"
                      @change="onFilePicked"
                    />
68d742034   Neeraj Sharma   implement new des...
123
124
125
126
                  </v-flex>
                </v-layout>
              </v-flex>
              <v-flex xs12>
495e4037c   Neeraj Sharma   update
127
                <v-layout>
68d742034   Neeraj Sharma   implement new des...
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
                  <v-flex xs4 class="pt-4 subheading">
                    <label class="right">Note:</label>
                  </v-flex>
                  <v-flex xs7 class="ml-3">
                    <v-textarea
                      name="input-7-1"
                      v-model="editedItem.note"
                      placeholder="fill your Note"
                      type="text"
                      :rules="noteRules"
                      multi-line
                      required
                    ></v-textarea>
                  </v-flex>
                </v-layout>
              </v-flex>
            </v-layout>
            <v-layout>
              <v-flex xs12 sm12>
                <v-card-actions>
                  <v-spacer></v-spacer>
                  <v-btn round dark :loading="loading" @click="save" class="add-button">Save</v-btn>
                </v-card-actions>
              </v-flex>
            </v-layout>
          </v-card-text>
        </v-card>
      </v-dialog>
  
      <!-- ****** PROFILE VIEW EXPENSE DETAILS ******  -->
db965de89   Amber Dev   added dialog pers...
158
      <v-dialog v-model="viewExpenseDialog" max-width="600px" scrollable persistent>
68d742034   Neeraj Sharma   implement new des...
159
160
161
162
163
164
165
166
167
168
169
170
        <v-card flat class="card-style pa-3" dark>
          <v-layout>
            <v-flex xs12>
              <label class="title text-xs-center">View Expense</label>
              <v-icon size="24" class="right" @click="viewExpenseDialog = false">cancel</v-icon>
            </v-flex>
          </v-layout>
          <v-card-text>
            <v-container grid-list-md>
              <v-layout wrap>
                <v-flex>
                  <v-flex align-center justify-center layout text-xs-center>
495e4037c   Neeraj Sharma   update
171
                    <v-avatar size="160px">
68d742034   Neeraj Sharma   implement new des...
172
173
                      <img src="/static/icon/user.png" v-if="!editedItem.fileUrl" />
                      <img :src="editedItem.fileUrl" v-else-if="editedItem.fileUrl" />
495e4037c   Neeraj Sharma   update
174
                    </v-avatar>
68d742034   Neeraj Sharma   implement new des...
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
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
                  </v-flex>
                  <v-layout>
                    <v-flex xs5 sm6>
                      <h5 class="right my-1">
                        <b>Name:</b>
                      </h5>
                    </v-flex>
                    <v-flex sm6 xs8>
                      <h5 class="my-1">{{ editedItem.name }}</h5>
                    </v-flex>
                  </v-layout>
                  <v-layout>
                    <v-flex xs5 sm6>
                      <h5 class="right my-1">
                        <b>Amount:</b>
                      </h5>
                    </v-flex>
                    <v-flex sm6 xs8>
                      <h5 class="my-1">{{ editedItem.amount }}</h5>
                    </v-flex>
                  </v-layout>
                  <v-layout>
                    <v-flex xs5 sm6>
                      <h5 class="right my-1">
                        <b>Date:</b>
                      </h5>
                    </v-flex>
                    <v-flex sm6 xs8>
                      <h5 class="my-1">{{ dates(editedItem.date) }}</h5>
                    </v-flex>
                  </v-layout>
                  <v-layout>
                    <v-flex xs5 sm6>
                      <h5 class="right my-1">
                        <b>Note:</b>
                      </h5>
                    </v-flex>
                    <v-flex sm6 xs8>
                      <h5 class="my-1">{{ editedItem.note }}</h5>
                    </v-flex>
                  </v-layout>
                </v-flex>
              </v-layout>
            </v-container>
          </v-card-text>
        </v-card>
      </v-dialog>
      <!-- ****** EXPENSE 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="addExpenseDialog = true"
        >
          <v-icon dark>add</v-icon>
        </v-btn>
        <v-btn
          round
          class="open-dialog-button hidden-sm-only hidden-xs-only"
          dark
          @click="addExpenseDialog = true"
        >
          <v-icon class="white--text pr-1" size="20">add</v-icon>Add Expense
        </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...
245
              <img src="/static/icon/search.png" alt="icon" />
68d742034   Neeraj Sharma   implement new des...
246
247
248
            </v-avatar>
          </v-btn>
        </v-card-title>
612b79bb4   Amber Dev   made serch auto f...
249
        <v-flex xs8 sm8 md3 lg2 v-if="showSearch">
68d742034   Neeraj Sharma   implement new des...
250
          <v-layout>
8e8d14254   Shikha Mishra   Cleared data whil...
251
252
253
254
255
256
257
            <v-text-field
              autofocus
              v-model="search"
              label="Search"
              prepend-inner-icon="search"
              color="primary"
            ></v-text-field>
68d742034   Neeraj Sharma   implement new des...
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
            <v-icon @click="closeSearch" color="error">close</v-icon>
          </v-layout>
        </v-flex>
      </v-toolbar>
      <v-data-table
        :headers="headers"
        :items="expenseList"
        :pagination.sync="pagination"
        :search="search"
      >
        <template slot="items" slot-scope="props">
          <tr class="tr">
            <td class="td td-row">{{ props.index + 1}}</td>
            <td class="text-xs-center td td-row">
              <v-avatar>
                <img :src="props.item.fileUrl" v-if="props.item.fileUrl" />
                <img src="/static/icon/user.png" v-else-if="!props.item.fileUrl" />
              </v-avatar>
            </td>
            <td class="text-xs-center td td-row">{{ props.item.name}}</td>
            <td class="text-xs-center td td-row">{{ dates(props.item.date) }}</td>
            <td class="text-xs-center td td-row">{{ props.item.user }}</td>
            <td class="text-xs-center td td-row">{{ props.item.amount }}</td>
            <td class="text-xs-center td td-row">{{ props.item.note }}</td>
            <td class="text-xs-center td td-row">
              <span>
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:25px; height:25px; "
                    class="mr-3"
                    @click="profile(props.item)"
aa310d61a   Shikha Mishra   added functionali...
290
                    src="/static/icon/view.png"
68d742034   Neeraj Sharma   implement new des...
291
292
293
294
295
296
297
298
299
                  />
                  <span>View</span>
                </v-tooltip>
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:20px; height:18px; "
                    class="mr-3"
                    @click="editItem(props.item)"
aa310d61a   Shikha Mishra   added functionali...
300
                    src="/static/icon/edit.png"
68d742034   Neeraj Sharma   implement new des...
301
302
303
304
305
306
307
308
                  />
                  <span>Edit</span>
                </v-tooltip>
                <v-tooltip top>
                  <img
                    slot="activator"
                    style="cursor:pointer; width:20px; height:20px; "
                    @click="deleteItem(props.item)"
aa310d61a   Shikha Mishra   added functionali...
309
                    src="/static/icon/delete.png"
68d742034   Neeraj Sharma   implement new des...
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
                  />
                  <span>Delete</span>
                </v-tooltip>
              </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 Expense Data ****** -->
db965de89   Amber Dev   added dialog pers...
326
      <v-dialog v-model="addExpenseDialog" max-width="600px" v-if="addExpenseDialog" persistent>
68d742034   Neeraj Sharma   implement new des...
327
328
329
        <v-card flat class="card-style pa-2" dark>
          <v-layout>
            <v-flex xs12>
8c3acf4a9   Shikha Mishra   improve details
330
              <label class="title text-xs-center">Add Expense</label>
8e8d14254   Shikha Mishra   Cleared data whil...
331
              <v-icon size="24" class="right" @click="closeAddExpenseModel">cancel</v-icon>
68d742034   Neeraj Sharma   implement new des...
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
            </v-flex>
          </v-layout>
          <v-flex xs12 sm12>
            <v-form ref="form" v-model="valid" lazy-validation>
              <v-container fluid>
                <v-layout>
                  <v-flex xs12 class="text-xs-center text-sm-center text-md-center text-lg-center">
                    <v-avatar size="80px">
                      <img src="/static/icon/user.png" v-if="!imageUrl" />
                    </v-avatar>
                    <img
                      :src="imageUrl"
                      height="150"
                      v-if="imageUrl"
                      style="border-radius:50%; width:150px"
495e4037c   Neeraj Sharma   update
347
348
349
                    />
                  </v-flex>
                </v-layout>
68d742034   Neeraj Sharma   implement new des...
350
                <v-layout>
495e4037c   Neeraj Sharma   update
351
352
353
354
355
                  <v-flex xs12 sm12>
                    <v-layout>
                      <v-flex xs4 class="pt-4 subheading">
                        <label class="right">Name:</label>
                      </v-flex>
68d742034   Neeraj Sharma   implement new des...
356
                      <v-flex xs8 sm6 class="ml-3">
495e4037c   Neeraj Sharma   update
357
                        <v-text-field
68d742034   Neeraj Sharma   implement new des...
358
                          v-model="addExpense.name"
495e4037c   Neeraj Sharma   update
359
360
361
                          placeholder="fill your full Name"
                          name="name"
                          type="text"
68d742034   Neeraj Sharma   implement new des...
362
                          :rules="nameRules"
495e4037c   Neeraj Sharma   update
363
364
365
366
367
368
                          required
                        ></v-text-field>
                      </v-flex>
                    </v-layout>
                  </v-flex>
                </v-layout>
68d742034   Neeraj Sharma   implement new des...
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
                <v-layout>
                  <v-flex xs12 sm12>
                    <v-layout>
                      <v-flex xs4 class="pt-4 subheading">
                        <label class="right">Amount:</label>
                      </v-flex>
                      <v-flex xs8 sm6 class="ml-3">
                        <v-text-field
                          v-model="addExpense.amount"
                          placeholder="fill your Amount"
                          name="name"
                          type="text"
                          :rules="amountRules"
                          required
                        ></v-text-field>
                      </v-flex>
                    </v-layout>
                  </v-flex>
                </v-layout>
                <v-layout>
                  <v-flex xs12 sm12>
495e4037c   Neeraj Sharma   update
390
391
                    <v-layout>
                      <v-flex xs4 class="pt-4 subheading">
68d742034   Neeraj Sharma   implement new des...
392
                        <label class="right">Date</label>
495e4037c   Neeraj Sharma   update
393
                      </v-flex>
68d742034   Neeraj Sharma   implement new des...
394
                      <v-flex xs8 sm6 class="ml-3">
495e4037c   Neeraj Sharma   update
395
                        <v-menu
68d742034   Neeraj Sharma   implement new des...
396
                          ref="menu1"
495e4037c   Neeraj Sharma   update
397
                          :close-on-content-click="false"
68d742034   Neeraj Sharma   implement new des...
398
                          v-model="menu1"
495e4037c   Neeraj Sharma   update
399
400
401
402
403
404
405
                          :nudge-right="40"
                          lazy
                          transition="scale-transition"
                          offset-y
                          full-width
                          min-width="290px"
                        >
f4df757fe   Neeraj Sharma   responsive vie in...
406
                          <v-text-field
495e4037c   Neeraj Sharma   update
407
                            slot="activator"
68d742034   Neeraj Sharma   implement new des...
408
409
                            :rules="joinDateRules"
                            v-model="addExpense.date"
495e4037c   Neeraj Sharma   update
410
                            placeholder="Select date"
f4df757fe   Neeraj Sharma   responsive vie in...
411
                          ></v-text-field>
495e4037c   Neeraj Sharma   update
412
413
                          <v-date-picker
                            ref="picker"
68d742034   Neeraj Sharma   implement new des...
414
415
                            v-model="addExpense.date"
                            @input="$refs.menu1.save(addExpense.date)"
495e4037c   Neeraj Sharma   update
416
417
418
419
420
                          ></v-date-picker>
                        </v-menu>
                      </v-flex>
                    </v-layout>
                  </v-flex>
68d742034   Neeraj Sharma   implement new des...
421
422
423
424
                </v-layout>
                <v-layout>
                  <v-flex xs12 sm12>
                    <v-layout>
495e4037c   Neeraj Sharma   update
425
                      <v-flex xs4 class="pt-4 subheading">
68d742034   Neeraj Sharma   implement new des...
426
                        <label class="right">File:</label>
495e4037c   Neeraj Sharma   update
427
                      </v-flex>
68d742034   Neeraj Sharma   implement new des...
428
                      <v-flex xs8 sm6 class="ml-3">
495e4037c   Neeraj Sharma   update
429
                        <v-text-field
68d742034   Neeraj Sharma   implement new des...
430
                          label="Select file"
495e4037c   Neeraj Sharma   update
431
432
433
434
                          @click="pickFile"
                          v-model="imageName"
                          append-icon="attach_file"
                        ></v-text-field>
68d742034   Neeraj Sharma   implement new des...
435
436
437
438
439
440
441
                        <input
                          type="file"
                          style="display:none"
                          ref="image"
                          accept="image/*"
                          @change="onFilePicked"
                        />
687e0b929   Neeraj Sharma   add user,attenden...
442
443
                      </v-flex>
                    </v-layout>
495e4037c   Neeraj Sharma   update
444
                  </v-flex>
68d742034   Neeraj Sharma   implement new des...
445
446
447
                </v-layout>
                <v-layout>
                  <v-flex xs12 sm12>
495e4037c   Neeraj Sharma   update
448
449
450
451
                    <v-layout>
                      <v-flex xs4 class="pt-4 subheading">
                        <label class="right">Note:</label>
                      </v-flex>
68d742034   Neeraj Sharma   implement new des...
452
                      <v-flex xs8 sm6 class="ml-3">
495e4037c   Neeraj Sharma   update
453
454
                        <v-textarea
                          name="input-7-1"
68d742034   Neeraj Sharma   implement new des...
455
                          v-model="addExpense.note"
495e4037c   Neeraj Sharma   update
456
457
                          placeholder="fill your Note"
                          type="text"
495e4037c   Neeraj Sharma   update
458
459
460
461
462
463
464
465
                          multi-line
                          required
                        ></v-textarea>
                      </v-flex>
                    </v-layout>
                  </v-flex>
                </v-layout>
                <v-layout>
68d742034   Neeraj Sharma   implement new des...
466
467
                  <v-flex xs11>
                    <v-layout>
495e4037c   Neeraj Sharma   update
468
                      <v-spacer></v-spacer>
68d742034   Neeraj Sharma   implement new des...
469
470
471
                      <v-btn @click="clear" round dark class="clear-button">clear</v-btn>
                      <v-btn @click="submit" round dark :loading="loading" class="add-button">Add</v-btn>
                    </v-layout>
495e4037c   Neeraj Sharma   update
472
473
                  </v-flex>
                </v-layout>
68d742034   Neeraj Sharma   implement new des...
474
475
476
477
478
              </v-container>
            </v-form>
          </v-flex>
        </v-card>
      </v-dialog>
687e0b929   Neeraj Sharma   add user,attenden...
479
480
481
      <div class="loader" v-if="showLoader">
        <v-progress-circular indeterminate color="white"></v-progress-circular>
      </div>
68d742034   Neeraj Sharma   implement new des...
482
483
484
485
486
487
488
489
490
      <v-snackbar
        :timeout="timeout"
        :top="y === 'top'"
        :right="x === 'right'"
        :vertical="mode === 'vertical'"
        v-model="snackbar"
        :color="color"
      >{{ text }}</v-snackbar>
    </v-container>
687e0b929   Neeraj Sharma   add user,attenden...
491
492
493
494
  </template>
  
  <script>
  import http from "@/Services/http.js";
687e0b929   Neeraj Sharma   add user,attenden...
495
496
497
498
499
500
501
502
503
  import moment from "moment";
  
  export default {
    data: () => ({
      component: "report-generate",
      snackbar: false,
      y: "top",
      x: "right",
      mode: "",
68d742034   Neeraj Sharma   implement new des...
504
      timeout: 5000,
687e0b929   Neeraj Sharma   add user,attenden...
505
      text: "",
68d742034   Neeraj Sharma   implement new des...
506
      color: "",
687e0b929   Neeraj Sharma   add user,attenden...
507
508
509
510
511
512
513
514
      showLoader: false,
      loading: false,
      date: null,
      search: "",
      menu: false,
      menu1: false,
      menu2: false,
      menu3: false,
68d742034   Neeraj Sharma   implement new des...
515
516
      editExpenseDialog: false,
      viewExpenseDialog: false,
687e0b929   Neeraj Sharma   add user,attenden...
517
      valid: true,
68d742034   Neeraj Sharma   implement new des...
518
519
520
      show: true,
      addExpenseDialog: false,
      showSearch: false,
687e0b929   Neeraj Sharma   add user,attenden...
521
      pagination: {
8e8d14254   Shikha Mishra   Cleared data whil...
522
        rowsPerPage: 10,
687e0b929   Neeraj Sharma   add user,attenden...
523
524
      },
      imageData: {},
68d742034   Neeraj Sharma   implement new des...
525
      token: "",
687e0b929   Neeraj Sharma   add user,attenden...
526
527
528
      imageName: "",
      imageUrl: "",
      imageFile: "",
8e8d14254   Shikha Mishra   Cleared data whil...
529
530
531
532
      nameRules: [(v) => !!v || " Full Name is required"],
      amountRules: [(v) => !!v || "Amount is required"],
      noteRules: [(v) => !!v || "Note Name is required"],
      joinDateRules: [(v) => !!v || "Date is required"],
687e0b929   Neeraj Sharma   add user,attenden...
533
534
535
536
537
538
      errorMessages: "",
      headers: [
        {
          text: "No",
          align: "center",
          sortable: false,
8e8d14254   Shikha Mishra   Cleared data whil...
539
          value: "No",
687e0b929   Neeraj Sharma   add user,attenden...
540
541
542
543
544
        },
        {
          text: "Profile Pic",
          value: "profilePicUrl",
          sortable: false,
8e8d14254   Shikha Mishra   Cleared data whil...
545
          align: "center",
687e0b929   Neeraj Sharma   add user,attenden...
546
547
548
549
550
551
        },
        { text: "Name", value: "name", sortable: false, align: "center" },
        { text: "Date", value: "date", sortable: false, align: "center" },
        { text: "User", value: "user", sortable: false, align: "center" },
        { text: "Amount", value: "amount", sortable: false, align: "center" },
        { text: "Note", value: "note", sortable: false, align: "center" },
8e8d14254   Shikha Mishra   Cleared data whil...
552
        { text: "Action", value: "", sortable: false, align: "center" },
687e0b929   Neeraj Sharma   add user,attenden...
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
      ],
      expenseList: [],
      editedIndex: -1,
      upload: "",
      editedItem: {
        role: "TEACHER",
        name: "",
        email: "",
        date: null,
        city: "",
        pincode: "",
        country: "",
        permanentAddress: "",
        presentAddress: "",
        mobileNo: "",
        state: "",
8e8d14254   Shikha Mishra   Cleared data whil...
569
        joinDate: null,
687e0b929   Neeraj Sharma   add user,attenden...
570
      },
8e8d14254   Shikha Mishra   Cleared data whil...
571
      addExpense: {},
687e0b929   Neeraj Sharma   add user,attenden...
572
573
574
575
576
577
578
    }),
    watch: {
      menu(val) {
        val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
      },
      menu1(val) {
        val && this.$nextTick(() => (this.$refs.picker.activePicker = "YEAR"));
8e8d14254   Shikha Mishra   Cleared data whil...
579
580
581
582
583
584
585
586
587
588
      },
      addExpenseDialog: function (val) {
        if (!val) {
          this.addExpense = [];
          this.menu1 = false;
          this.imageName = "";
          this.imageFile = "";
          this.imageUrl = "";
        }
      },
687e0b929   Neeraj Sharma   add user,attenden...
589
590
591
592
593
594
595
596
597
598
599
    },
    methods: {
      save(date) {
        this.$refs.menu.save(date);
      },
      save(date) {
        this.$refs.menu1.save(date);
      },
      pickFile() {
        this.$refs.image.click();
      },
8e8d14254   Shikha Mishra   Cleared data whil...
600
      dates: function (date) {
68d742034   Neeraj Sharma   implement new des...
601
602
        return moment(date).format("MMMM DD, YYYY");
      },
687e0b929   Neeraj Sharma   add user,attenden...
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
      onFilePicked(e) {
        // console.log(e)
        const files = e.target.files;
        this.upload = e.target.files[0];
        console.log("imageData-upload========>", this.upload);
        if (files[0] !== undefined) {
          this.imageName = files[0].name;
          if (this.imageName.lastIndexOf(".") <= 0) {
            return;
          }
          const fr = new FileReader();
          fr.readAsDataURL(files[0]);
          fr.addEventListener("load", () => {
            this.imageUrl = fr.result;
            this.imageFile = files[0]; // this is an image file that can be sent to server...
            // this.imageData.imageUrl = URL.createObjectURL(this.imageFile);
            // console.log("upload=======>", this.imageData.imageUrl);
            console.log("imageFile", this.imageUrl);
          });
        } else {
          this.imageName = "";
          this.imageFile = "";
          this.imageUrl = "";
        }
      },
687e0b929   Neeraj Sharma   add user,attenden...
628
      getExpenseList() {
687e0b929   Neeraj Sharma   add user,attenden...
629
630
        http()
          .get("/getExpensesList", {
99cd79184   Neeraj Sharma   implement all tas...
631
            params: { schoolId: this.$store.state.schoolId },
8e8d14254   Shikha Mishra   Cleared data whil...
632
            headers: { Authorization: "Bearer " + this.token },
687e0b929   Neeraj Sharma   add user,attenden...
633
          })
8e8d14254   Shikha Mishra   Cleared data whil...
634
          .then((response) => {
687e0b929   Neeraj Sharma   add user,attenden...
635
636
637
638
            this.expenseList = response.data.data;
            this.showLoader = false;
            // console.log("getTeacherList=====>",this.expenseList)
          })
8e8d14254   Shikha Mishra   Cleared data whil...
639
          .catch((error) => {
687e0b929   Neeraj Sharma   add user,attenden...
640
            this.showLoader = false;
68d742034   Neeraj Sharma   implement new des...
641
642
643
644
645
            // if (error.response.status === 401) {
            //   this.$router.replace({ path: "/" });
            //   this.$store.dispatch("setToken", null);
            //   this.$store.dispatch("Id", null);
            // }
687e0b929   Neeraj Sharma   add user,attenden...
646
647
648
649
650
          });
      },
      editItem(item) {
        this.editedIndex = this.expenseList.indexOf(item);
        this.editedItem = Object.assign({}, item);
687e0b929   Neeraj Sharma   add user,attenden...
651
652
653
654
        this.editedItem.date =
          this.editedItem.date != undefined
            ? (this.editedItem.date = this.editedItem.date.substring(0, 10))
            : (this.editedItem.date = "");
68d742034   Neeraj Sharma   implement new des...
655
        this.editExpenseDialog = true;
687e0b929   Neeraj Sharma   add user,attenden...
656
657
658
659
      },
      profile(item) {
        this.editedIndex = this.expenseList.indexOf(item);
        this.editedItem = Object.assign({}, item);
68d742034   Neeraj Sharma   implement new des...
660
        this.viewExpenseDialog = true;
687e0b929   Neeraj Sharma   add user,attenden...
661
662
663
      },
      deleteItem(item) {
        let deleteExpense = {
8e8d14254   Shikha Mishra   Cleared data whil...
664
          expenseId: item._id,
687e0b929   Neeraj Sharma   add user,attenden...
665
666
667
668
669
670
        };
        //  console.log("deleteUers",deleteTeachers)
        http()
          .delete(
            "/deleteExpense",
            confirm("Are you sure you want to delete this?") && {
8e8d14254   Shikha Mishra   Cleared data whil...
671
              params: deleteExpense,
687e0b929   Neeraj Sharma   add user,attenden...
672
673
            }
          )
8e8d14254   Shikha Mishra   Cleared data whil...
674
          .then((response) => {
687e0b929   Neeraj Sharma   add user,attenden...
675
            // console.log("deleteUers",deleteTeachers)
99cd79184   Neeraj Sharma   implement all tas...
676
            this.snackbar = true;
68d742034   Neeraj Sharma   implement new des...
677
678
            this.text = response.data.message;
            this.color = "green";
687e0b929   Neeraj Sharma   add user,attenden...
679
680
            this.getExpenseList();
          })
8e8d14254   Shikha Mishra   Cleared data whil...
681
          .catch((error) => {
68d742034   Neeraj Sharma   implement new des...
682
683
684
            this.snackbar = true;
            this.text = error.response.data.message;
            this.color = "error";
687e0b929   Neeraj Sharma   add user,attenden...
685
686
          });
      },
687e0b929   Neeraj Sharma   add user,attenden...
687
      close() {
68d742034   Neeraj Sharma   implement new des...
688
        this.editExpenseDialog = false;
687e0b929   Neeraj Sharma   add user,attenden...
689
      },
8e8d14254   Shikha Mishra   Cleared data whil...
690
691
692
693
694
695
696
697
      closeAddExpenseModel() {
        this.addExpenseDialog = false;
        this.addExpense = [];
        this.menu1 = false;
        this.imageName = "";
        this.imageFile = "";
        this.imageUrl = "";
      },
687e0b929   Neeraj Sharma   add user,attenden...
698
699
700
701
702
703
704
705
      submit() {
        if (this.$refs.form.validate()) {
          if (this.imageUrl) {
            var str = this.imageUrl;
            const [baseUrl, imageUrl] = str.split(/,/);
            this.addExpense.upload = imageUrl;
          }
          this.loading = true;
68d742034   Neeraj Sharma   implement new des...
706
          // this.addExpense = this.$store.state.schoolId;
687e0b929   Neeraj Sharma   add user,attenden...
707
708
          http()
            .post("/createExpense", this.addExpense)
8e8d14254   Shikha Mishra   Cleared data whil...
709
            .then((response) => {
687e0b929   Neeraj Sharma   add user,attenden...
710
              this.getExpenseList();
68d742034   Neeraj Sharma   implement new des...
711
712
713
              this.snackbar = true;
              this.text = response.data.message;
              this.color = "green";
687e0b929   Neeraj Sharma   add user,attenden...
714
              this.clear();
68d742034   Neeraj Sharma   implement new des...
715
              this.imageUrl = "";
687e0b929   Neeraj Sharma   add user,attenden...
716
              this.loading = false;
68d742034   Neeraj Sharma   implement new des...
717
              this.addExpenseDialog = false;
687e0b929   Neeraj Sharma   add user,attenden...
718
            })
8e8d14254   Shikha Mishra   Cleared data whil...
719
            .catch((error) => {
687e0b929   Neeraj Sharma   add user,attenden...
720
              // console.log(error);
68d742034   Neeraj Sharma   implement new des...
721
722
723
              this.snackbar = true;
              this.color = "error";
              this.text = error.response.data.message;
687e0b929   Neeraj Sharma   add user,attenden...
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
              this.loading = false;
            });
        }
      },
      clear() {
        this.$refs.form.reset();
      },
      save() {
        this.loading = true;
        this.editedItem.expenseId = this.editedItem._id;
        if (this.imageUrl) {
          var str = this.imageUrl;
          const [baseUrl, imageUrl] = str.split(/,/);
          this.editedItem.upload = imageUrl;
        }
        http()
          .put("/updateExpense", this.editedItem)
8e8d14254   Shikha Mishra   Cleared data whil...
741
          .then((response) => {
68d742034   Neeraj Sharma   implement new des...
742
743
744
            this.snackbar = true;
            this.text = response.data.message;
            this.color = "green";
687e0b929   Neeraj Sharma   add user,attenden...
745
746
747
748
            this.loading = false;
            this.getExpenseList();
            this.close();
          })
8e8d14254   Shikha Mishra   Cleared data whil...
749
          .catch((error) => {
68d742034   Neeraj Sharma   implement new des...
750
751
752
            this.snackbar = true;
            this.text = error.response.data.message;
            this.color = "error";
687e0b929   Neeraj Sharma   add user,attenden...
753
          });
68d742034   Neeraj Sharma   implement new des...
754
755
756
757
758
759
760
761
      },
      displaySearch() {
        (this.show = false), (this.showSearch = true);
      },
      closeSearch() {
        this.showSearch = false;
        this.show = true;
        this.search = "";
8e8d14254   Shikha Mishra   Cleared data whil...
762
      },
687e0b929   Neeraj Sharma   add user,attenden...
763
764
    },
    mounted() {
68d742034   Neeraj Sharma   implement new des...
765
      this.token = this.$store.state.token;
687e0b929   Neeraj Sharma   add user,attenden...
766
      this.getExpenseList();
8e8d14254   Shikha Mishra   Cleared data whil...
767
    },
687e0b929   Neeraj Sharma   add user,attenden...
768
  };
68d742034   Neeraj Sharma   implement new des...
769
  </script>