{"version":3,"sources":["webpack:///./src/views/Login/Login.vue?a8bf","webpack:///./src/views/Login/Login.vue?1a19","webpack:///./src/views/Login/Login.vue","webpack:///./src/views/Login/Login.vue?a212","webpack:///./src/views/Login/Login.vue?ef08","webpack:///./src/services/settingService.ts","webpack:///./src/assets/logo.png"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_m","directives","name","rawName","value","expression","ref","attrs","rules","login","$t","model","callback","$$v","$set","on","$event","changeLang","_v","_s","isValid","submit","dialogErrorVisible","staticStyle","error","slot","cancel","staticRenderFns","isLoading","Email","Password","Language","RememberMe","trigger","validator","required","email","requiredRule","document","onkeydown","e","_key","keyCode","$i18n","locale","$refs","loginForm","validate","valid","loginAsync","res","Error","result","Result","jwt","userString","decodeURIComponent","escape","window","atob","split","user","JSON","parse","userData","LoginId","Name","uid","UId","accNo","AccNo","store","commit","localStorage","setItem","chromeToken","settingService","readUserSettingsByNamesAsync","sds","length","Value","$router","push","component","readSysSettingByNamesAsync","names","tryPostResult","addOrUpdateSysSettingAsync","settings","tryPostBooleanResult","addOrUpdateUserSettingAsync","testPop3","data","testSmtp","module","exports"],"mappings":"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","file":"js/chunk-06ab6c45.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=style&index=0&id=48331f53&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_vm._m(0),_c('section',{staticClass:\"m-auto\"},[_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"login m-auto\"},[_c('div',{staticClass:\"p-3\"},[_c('el-form',{ref:\"loginForm\",attrs:{\"rules\":_vm.rules,\"model\":_vm.login}},[_c('el-form-item',{staticClass:\"login-label\",attrs:{\"label\":_vm.$t('field.account'),\"prop\":\"Email\"}},[_c('el-input',{ref:\"username\",staticClass:\"form-input\",attrs:{\"type\":\"email\",\"autocomplete\":\"off\"},model:{value:(_vm.login.Email),callback:function ($$v) {_vm.$set(_vm.login, \"Email\", $$v)},expression:\"login.Email\"}})],1),_c('el-form-item',{staticClass:\"login-label\",attrs:{\"label\":_vm.$t('field.password'),\"prop\":\"Password\"}},[_c('el-input',{ref:\"password\",staticClass:\"form-input\",attrs:{\"type\":\"password\",\"autocomplete\":\"off\"},model:{value:(_vm.login.Password),callback:function ($$v) {_vm.$set(_vm.login, \"Password\", $$v)},expression:\"login.Password\"}})],1),_c('el-form-item',{staticClass:\"login-label\",attrs:{\"label\":_vm.$t('field.language'),\"prop\":\"Language\"}},[_c('el-select',{staticClass:\"form-input\",attrs:{\"placeholder\":\"Select\"},on:{\"change\":function($event){return _vm.changeLang()}},model:{value:(_vm.login.Language),callback:function ($$v) {_vm.$set(_vm.login, \"Language\", $$v)},expression:\"login.Language\"}},[_c('el-option',{attrs:{\"label\":_vm.$t('chinese'),\"value\":\"zh\"}}),_c('el-option',{attrs:{\"label\":_vm.$t('english'),\"value\":\"en\"}})],1)],1)],1)],1),_c('div',{staticClass:\"mb-3 f-14 text-left ml-3\"},[_c('label',[_c('el-checkbox',{model:{value:(_vm.login.RememberMe),callback:function ($$v) {_vm.$set(_vm.login, \"RememberMe\", $$v)},expression:\"login.RememberMe\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('rememberMe')))])],1)]),_c('el-button',{attrs:{\"type\":_vm.isValid ? 'success' : 'primary'},on:{\"click\":function($event){return _vm.submit()}}},[_vm._v(_vm._s(_vm.$t('button.login'))+\" \")]),_c('div',{staticClass:\"mt-3 f-14\"},[_vm._v(\" \"+_vm._s(_vm.$t('forgetPwd'))+\" \"),_c('router-link',{staticClass:\"ml-2\",attrs:{\"to\":\"/forgotPwd\"}},[_vm._v(_vm._s(_vm.$t('clickHere')))])],1),_c('el-dialog',{staticClass:\"text-center m-auto\",attrs:{\"visible\":_vm.dialogErrorVisible,\"append-to-body\":\"\",\"show-close\":false,\"width\":\"80%\"},on:{\"update:visible\":function($event){_vm.dialogErrorVisible=$event}}},[_c('div',{staticClass:\"font-weight-bold f-20 p-3\",staticStyle:{\"word-break\":\"break-word\"}},[_vm._v(_vm._s(_vm.error))]),_c('div',{staticClass:\"text-right\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{staticClass:\"f-16\",attrs:{\"type\":\"primary\"},on:{\"click\":function($event){return _vm.cancel()}}},[_vm._v(_vm._s(_vm.$t('button.ok')))])],1)])],1)]),_c('div',{staticClass:\"f-12 mt-5\"},[_vm._v(\" © 2020 Trading System \")])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mb-3\",staticStyle:{\"margin-top\":\"20px\"}},[_c('img',{staticStyle:{\"width\":\"200px\"},attrs:{\"src\":require(\"../../assets/logo.png\"),\"alt\":\"logo\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue, Component } from 'vue-property-decorator'\r\nimport { ElForm } from 'element-ui/types/form'\r\nimport validation from '../../common/element-val'\r\nimport auth, { LogModel } from '../../services/authService'\r\nimport store from '../../store'\r\nimport { User } from '@/services/data'\r\nimport settingService from '@/services/settingService'\r\n\r\n@Component\r\nexport default class Login extends Vue {\r\n $refs!: {\r\n loginForm: ElForm;\r\n }\r\n\r\n isLoading = false\r\n login: LogModel = {\r\n Email: 'debug@debug.com',\r\n Password: '',\r\n Language: 'en',\r\n RememberMe: false\r\n }\r\n\r\n dialogErrorVisible = false\r\n error: string = null\r\n isValid = false\r\n rules = {\r\n Email: [\r\n { trigger: 'blur', validator: validation.required() },\r\n { trigger: 'blur', validator: validation.email() }],\r\n Password: validation.requiredRule()\r\n }\r\n\r\n async mounted () {\r\n if (process.env.NODE_ENV === 'dev') {\r\n this.login.Email = 'debug@debug.com'\r\n }\r\n document.onkeydown = e => {\r\n const _key = e.keyCode\r\n if (_key === 13) {\r\n this.submit()\r\n }\r\n }\r\n }\r\n\r\n cancel () {\r\n this.error = null\r\n this.dialogErrorVisible = false\r\n }\r\n\r\n changeLang () {\r\n this.$i18n.locale = this.login.Language\r\n }\r\n\r\n submit () {\r\n this.$refs.loginForm.validate(async (valid: boolean) => {\r\n this.isValid = valid\r\n if (this.isValid) {\r\n this.isLoading = true\r\n try {\r\n const res = await auth.loginAsync(this.login)\r\n this.isLoading = false\r\n if (res.Error) {\r\n this.error = this.$t('msg.' + res.Error) as string\r\n this.dialogErrorVisible = true\r\n return\r\n }\r\n const result = res.Result\r\n const jwt = result.jwt\r\n if (jwt) {\r\n const userString = decodeURIComponent(escape(window.atob(jwt.split('.')[1])))\r\n const user = JSON.parse(userString)\r\n const userData: User = {\r\n email: user.LoginId,\r\n name: user.Name,\r\n uid: user.UId,\r\n accNo: user.AccNo,\r\n jwt: jwt\r\n }\r\n store.commit('setUser', userData)\r\n localStorage.setItem('chromeToken', result.chromeToken)\r\n if (this.login.RememberMe) {\r\n localStorage.setItem('jwt', result.jwt)\r\n }\r\n const sds = await settingService.readUserSettingsByNamesAsync(['StockDataSource'])\r\n if (sds.Result && sds.Result.length > 0) {\r\n if (sds.Result[0].Value) {\r\n localStorage.setItem('StockDataSource', sds.Result[0].Value)\r\n }\r\n }\r\n await this.$router.push('/home/portfolio')\r\n }\r\n } catch (e) {\r\n this.dialogErrorVisible = true\r\n this.isLoading = false\r\n this.error = e\r\n }\r\n }\r\n })\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=48331f53&scoped=true&\"\nimport script from \"./Login.vue?vue&type=script&lang=ts&\"\nexport * from \"./Login.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Login.vue?vue&type=style&index=0&id=48331f53&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48331f53\",\n null\n \n)\n\nexport default component.exports","import serviceBase from '@/services/serviceBase'\r\nimport { ApiBooleanResult, ApiResult } from '@/services/data'\r\n\r\nexport interface Pop3OrSmtpModel {\r\n Server: string;\r\n Port: number;\r\n Ssl: boolean;\r\n}\r\n\r\nexport interface EmailModel {\r\n Reg: string;\r\n RegPwd: string;\r\n Statement: string;\r\n StatementPwd: string;\r\n TradeConfirm: string;\r\n TradeConfirmPwd: string;\r\n}\r\n\r\nexport interface SettingValueModel {\r\n Name: string;\r\n Value: string;\r\n ValueType: string;\r\n}\r\n\r\nexport default {\r\n async readSysSettingByNamesAsync (names: Array): Promise> {\r\n return await serviceBase.tryPostResult('/Setting/readSysSettingByNames', names)\r\n },\r\n async addOrUpdateSysSettingAsync (settings: SettingValueModel[]): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/addOrUpdateSysSetting', settings)\r\n },\r\n async readUserSettingsByNamesAsync (names: Array): Promise> {\r\n return await serviceBase.tryPostResult('/Setting/readUserSettingsByNames', names)\r\n },\r\n async addOrUpdateUserSettingAsync (settings: SettingValueModel[]): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/addOrUpdateUserSetting', settings)\r\n },\r\n async testPop3 (data: Pop3OrSmtpModel): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/testPop', data)\r\n },\r\n async testSmtp (data: Pop3OrSmtpModel): Promise {\r\n return await serviceBase.tryPostBooleanResult('/Setting/testSmtp', data)\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/logo.png\";"],"sourceRoot":""}