Advertisement
vitareinforce

Fungsi Dasar di Halaman Vue.js

Dec 30th, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <template>
  2.     <div class="row">
  3.       <b-tabs pills card>
  4.         <b-tab title="Pengguna" active>
  5.           <div class="row clearfix">
  6.             <div class="col-sm-8" style="width: 1000px">
  7.                 <div class="form-group form-float">
  8.                     <base64-upload class="img-fluid" imageSrc="uploads.png" @change="onChangeImage" >Upload photo</base64-upload>
  9.                 </div>
  10.                 <div class="form-group form-float">
  11.                     <label class="form-label" style="color: black;">Email</label>
  12.                     <input v-model="users.Email" type="text" name="EmployeeID" required maxlength="32" minlength="2" class="validate form-control" style="border: 1px solid black;">
  13.                 </div>
  14.                 <div class="form-group form-float">
  15.                     <label class="form-label" style="color: black;">Username</label>
  16.                     <input v-model="users.UserName" type="text" name="EmployeeID" required maxlength="32" minlength="2" class="validate form-control" style="border: 1px solid black;">
  17.                 </div>
  18.                 <div class="form-group form-float">
  19.                     <label class="form-label" style="color: black;">Password</label>
  20.                     <input v-model="users.Password" type="text" name="EmployeeID" required maxlength="32" minlength="2" class="validate form-control" style="border: 1px solid black;">
  21.                 </div>
  22.                 <div class="form-group form-float">
  23.                     <label class="form-label" style="color: black;">Role</label>
  24.                     <vue-select v-model="selectedRole" class="vue-select2" name="role" :options="role" label="Name"></vue-select>
  25.                 </div>
  26.                 <div class="form-group form-float">
  27.                     <label class="form-label" style="color: black;">Link dengan Data Karyawan</label>
  28.                     <vue-select v-model="selectedEmployee" class="vue-select2" name="role" :options="employee" label="Name"></vue-select>
  29.                 </div>
  30.             </div>
  31.           </div>
  32.           <div class="row">
  33.              <button v-on:click="save()" class="btn btn-success">Simpan</button>
  34.              <router-link :to="{ name: 'UserManagement.index' }" class="btn btn-default">Batal</router-link>
  35.           </div>
  36.         </b-tab>
  37.       </b-tabs>
  38.     </div>
  39. </template>
  40.  
  41. <script>
  42. // Plugins
  43. import moment from 'moment'
  44. import $ from 'jquery'
  45. import VueSelect from 'vue-select'
  46. import 'vue-select/dist/vue-select.css'
  47. import Base64Upload from 'vue-base64-upload'
  48.  
  49. // API
  50. import Users from '@/services/UsersManagements/Users'
  51. import Role from '@/services/UsersManagements/Roles'
  52. import LegalEntity from '@/services/Companies/LegalEntities'
  53. import Branch from '@/services/Companies/Branches'
  54. import Employee from '@/services/Employee/Employee'
  55.  
  56. export default {
  57.   name: 'UserManagement.create',
  58.   components: {
  59.       VueSelect,
  60.       Base64Upload
  61.   },
  62.   data () {
  63.     return {
  64.       // Scope, Sama kyk vm.users , vm.employee dkk
  65.       userData: localStorage.userData !== undefined,
  66.       users: {},
  67.       legalEntity: {},
  68.       branch: {},
  69.       role: {},
  70.       employee: {},
  71.       selectedRole: {},
  72.       selectedEmployee: {}
  73.     }
  74.   },
  75.   beforeUpdate: function () {
  76.     // Ngeassign variable pada saat proses update, misal kyk dropdown
  77.     this.users.RoleId = this.selectedRole.Id
  78.     this.users.EmployeeId = this.selectedEmployee.Id
  79.   },
  80.   mounted: function () {
  81.     // Sama dengan document.ready
  82.     window.$ = $
  83.     if (!this.userData) {
  84.       this.$router.push({ name: 'home' })
  85.       location.reload()
  86.     }
  87.     this.init()
  88.   },
  89.   methods: {
  90.     // Kumpulan Fungsi disini
  91.     init: async function() {
  92.         // Ngeload Data Dari API
  93.         let role = await Role.index()
  94.         let legalEntity = await LegalEntity.index()
  95.         let branch = await Branch.index()
  96.         let employee = await Employee.index()
  97.        
  98.         // Assign data ke Scope
  99.         this.role = role.data
  100.         this.legalEntity = legalEntity.data
  101.         this.branch = branch.data
  102.         this.employee = employee.data
  103.     },
  104.     save: async function() {
  105.         // Fungsi Save Data
  106.         console.log(this.users)
  107.         try {
  108.             let result = await Users.create(this.users)
  109.             if(result.status == 200) {
  110.                 alert(result.data.msg)
  111.                 this.$router.push({ name: 'UserManagement.index' })
  112.                 location.reload()
  113.             } else {
  114.                 alert("Registrasi Gagal")
  115.                 console.log(result)
  116.             }
  117.         } catch (error) {
  118.             alert("Error : " + error)
  119.         }
  120.     },
  121.     onChangeImage(file) {
  122.         // Ngeassign File Foto
  123.         console.log(file)
  124.         this.users.picture1 = file.base64
  125.     },
  126.     formatDate(time) {
  127.       // Format Tanggal
  128.       var formattedTime = moment(time).format('DD MMMM YYYY HH:mm')
  129.       if(formattedTime == 'Invalid date') {
  130.         formattedTime = '-'
  131.       }
  132.       return formattedTime
  133.     }
  134.   }
  135. }
  136. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement