{"version":3,"sources":["/var/www/html/acc-web/admin/src/components/functions/Auth/PgLogin.vue"],"names":[],"mappings":"AAyIA,wBACA,WAAA,CACA,uBAAA,CAAA,oBAAA,CAAA,sBACA","file":"57.e77d9518fbddd4d3c842.css","sourcesContent":["<template>\r\n  <v-container>\r\n    <v-row class=\"title text-h4 text-uppercase\">\r\n      {{ $t('title') }}\r\n    </v-row>\r\n    <v-card\r\n      :loading=\"login_load\"\r\n      class=\"mx-auto my-12\"\r\n      max-width=\"374\"\r\n    >\r\n      <template slot=\"progress\">\r\n        <v-progress-linear\r\n          height=\"10\"\r\n          indeterminate\r\n        />\r\n      </template>\r\n\r\n      <v-card-title class=\"title font-weight-bold text-uppercase\">\r\n        {{ $t('common.login') }}\r\n      </v-card-title>\r\n\r\n      <v-card-text>\r\n        <v-row\r\n          align=\"center\"\r\n          class=\"mx-0 my-2\"\r\n        >\r\n          <v-text-field\r\n            id=\"inputUsername\"\r\n            v-model=\"authInfo.username\"\r\n            :label=\"$t('username')\"\r\n            prepend-icon=\"fa-user-tie\"\r\n            :error=\"error.length ? (error.username.length && true) : false\"\r\n            :error-messages=\"error.username\"\r\n            @keyup.enter=\"$refs.inputPassword.focus()\"\r\n          />\r\n        </v-row>\r\n\r\n        <v-row\r\n          align=\"center\"\r\n          class=\"mx-0 my-2\"\r\n        >\r\n          <v-text-field\r\n            id=\"inputPassword\"\r\n            ref=\"inputPassword\"\r\n            v-model=\"authInfo.password\"\r\n            :label=\"$t('password')\"\r\n            prepend-icon=\"fa-key\"\r\n            :error=\"error.length ? (error.password.length && true) : false\"\r\n            :error-messages=\"error.password\"\r\n            type=\"password\"\r\n            @keyup.enter=\"login()\"\r\n          />\r\n        </v-row>\r\n      </v-card-text>\r\n\r\n      <v-card-actions class=\"justify-end\">\r\n        <v-btn\r\n          color=\"primary\"\r\n          large\r\n          text\r\n          @click=\"login\"\r\n        >\r\n          {{ $t('common.login') }}\r\n        </v-btn>\r\n      </v-card-actions>\r\n    </v-card>\r\n  </v-container>\r\n</template>\r\n\r\n<i18n src=\"@/components/functions/Auth/locales/en.json\"></i18n>\r\n<i18n src=\"@/components/functions/Auth/locales/zhHant.json\"></i18n>\r\n\r\n<script>\r\nimport ErrorDisplay from '@/components/functions/Common/mixins/ErrorDisplay'\r\nimport SysUtils from '@/base/utils/SysUtils'\r\n\r\nexport default {\r\n  name: 'PgLogin',\r\n  mixins: [ErrorDisplay],\r\n  data: function () {\r\n    return {\r\n      authInfo: {\r\n        username: '',\r\n        password: ''\r\n      },\r\n      login_load: false,\r\n      error: {}\r\n    }\r\n  },\r\n  computed: {\r\n    validations () {\r\n      return this.$store.state.Auth.validations\r\n    },\r\n    validationLocale () {\r\n      return this.validations.messages[this.currentLocale]\r\n    }\r\n  },\r\n  mounted () {\r\n    this.$emit('pageName', this.$t('common.login'))\r\n    this.$store.dispatch('Auth/getAdminLoginValidations')\r\n      .catch((err) => {\r\n        this.showError(err)\r\n      })\r\n  },\r\n  methods: {\r\n    login () {\r\n      this.login_load = true\r\n      const auth = {\r\n        username: this.authInfo.username,\r\n        password: this.authInfo.password\r\n      }\r\n      this.error = {}\r\n      SysUtils.validate(auth, this.validations)\r\n        .then(validated => {\r\n          if (validated.valid) {\r\n            return this.$store.dispatch('Auth/login', auth)\r\n              .then((user) => {\r\n                if (user) {\r\n                  this.changeLocale(user.language)\r\n                  this.$router.push({ name: 'Top' })\r\n                }\r\n              })\r\n              .catch((err) => {\r\n                this.showError(err, true)\r\n                this.login_load = false\r\n              })\r\n          } else {\r\n            this.error = validated.results\r\n          }\r\n          this.login_load = false\r\n        })\r\n    }\r\n  }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.title {\r\n  margin: 30px;\r\n  justify-content: center;\r\n}\r\n</style>\r\n"]}