This commit is contained in:
wzdwc
2020-04-21 00:31:09 +08:00
parent 47f3225e29
commit 7675e1e839
23 changed files with 625 additions and 110 deletions
+1
View File
@@ -14,6 +14,7 @@
"core-js": "^3.6.4",
"js-cookie": "^2.2.1",
"socket.io-client": "^2.3.0",
"vconsole": "^3.3.4",
"vue": "^2.6.11",
"vue-class-component": "^7.2.3",
"vue-property-decorator": "^8.4.1",
+16 -12
View File
@@ -1,12 +1,16 @@
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
Vue.config.productionTip = false;
new Vue({
router,
store,
render: (h) => h(App),
}).$mount('#app');
import Vue from 'vue';
import App from './App.vue';
import router from './router';
import store from './store';
import VConsole from 'vconsole';
Vue.config.productionTip = false;
// tslint:disable-next-line:no-unused-expression
new VConsole();
new Vue({
router,
store,
render: (h) => h(App),
}).$mount('#app');
+33 -33
View File
@@ -1,33 +1,33 @@
import axios, {AxiosRequestConfig, Method} from 'axios';
import cookie from 'js-cookie';
const request = async ({method = 'post' as Method, url = '', body = {}, timeout = 8000}) => {
const origin = 'http://127.0.0.1:7001/node';
if (!url) {
return Promise.reject('Request url is null!');
}
const token = cookie.get('token');
const headers = {
Authorization: `Bearer ${token}`,
};
url = `${origin}${url}`;
const option: AxiosRequestConfig = {
url,
method,
timeout,
data: body,
withCredentials: true,
headers,
};
try {
const result = await axios(option);
if (result.data.code === '000000') {
return result.data;
} else {
throw result.data;
}
} catch (e) {
throw e;
}
};
export default request;
import axios, {AxiosRequestConfig, Method} from 'axios';
import cookie from 'js-cookie';
const request = async ({method = 'post' as Method, url = '', body = {}, timeout = 8000}) => {
const origin = 'http://192.168.0.105:7001/node';
if (!url) {
return Promise.reject('Request url is null!');
}
const token = cookie.get('token');
const headers = {
Authorization: `Bearer ${token}`,
};
url = `${origin}${url}`;
const option: AxiosRequestConfig = {
url,
method,
timeout,
data: body,
withCredentials: true,
headers,
};
try {
const result = await axios(option);
if (result.data.code === '000000') {
return result.data;
} else {
throw result.data;
}
} catch (e) {
throw e;
}
};
export default request;
+1 -1
View File
@@ -81,7 +81,7 @@
private socketInit() {
const token = cookie.get('token');
const log = console.log;
this.socket = io('http://127.0.0.1:7001/socket', {
this.socket = io('http://192.168.0.105:7001/socket', {
// 实际使用中可以在这里传递参数
query: {
room: this.roomId,
+52 -53
View File
@@ -1,53 +1,52 @@
<template>
<div class="login container">
<div class="user-name input-bd">
<div class="input-name">userName:</div>
<div class="input-text">
<input type="text"
v-model="userAccount"/>
</div>
</div>
<div class="password input-bd">
<div class="input-name">password:</div>
<div class="input-text">
<input type="password"
v-model="password"/>
</div>
</div>
<div class="login-btn btn">
<span @click="login">sign in</span>
<b @click="signUp">sign up</b>
</div>
</div>
</template>
<script lang="ts">
import {Vue} from 'vue-property-decorator';
import service from '../service';
import Component from 'vue-class-component';
import cookie from 'js-cookie';
@Component
export default class Login extends Vue {
public userAccount: string = '';
public password: string = '';
private signUp() {
this.$router.replace({name: 'register'});
return;
}
private async login() {
try {
const result = await service.login(this.userAccount, this.password);
const { token } = result.data;
cookie.set('token', token, {expires: 1});
this.$router.replace({name: 'home'});
console.log(result);
} catch (e) {
console.log(e);
}
}
}
</script>
<style lang="less">
</style>
<template>
<div class="login container">
<div class="user-name input-bd">
<div class="input-name">userName:</div>
<div class="input-text">
<input type="text"
v-model="userAccount"/>
</div>
</div>
<div class="password input-bd">
<div class="input-name">password:</div>
<div class="input-text">
<input type="password"
v-model="password"/>
</div>
</div>
<div class="login-btn btn">
<span @click="login">sign in</span>
<b @click="signUp">sign up</b>
</div>
</div>
</template>
<script lang="ts">
import {Vue} from 'vue-property-decorator';
import service from '../service';
import Component from 'vue-class-component';
import cookie from 'js-cookie';
@Component
export default class Login extends Vue {
public userAccount: string = '';
public password: string = '';
private signUp() {
this.$router.replace({name: 'register'});
return;
}
private async login() {
try {
const result = await service.login(this.userAccount, this.password);
const { token } = result.data;
cookie.set('token', token, {expires: 1});
this.$router.replace({name: 'home'});
} catch (e) {
console.log(e);
}
}
}
</script>
<style lang="less">
</style>
+5
View File
@@ -7790,6 +7790,11 @@ vary@~1.1.2:
resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
vconsole@^3.3.4:
version "3.3.4"
resolved "https://registry.npm.taobao.org/vconsole/download/vconsole-3.3.4.tgz#a7dacd8887b3d3e902e8d18425cda56c34e77f51"
integrity sha1-p9rNiIez0+kC6NGEJc2lbDTnf1E=
vendors@^1.0.0:
version "1.0.4"
resolved "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"