Skip to content

Commit c02bd33

Browse files
committed
DSW013-Element-Admin-后台控制程序-环境安装配置
1 parent 20c9f06 commit c02bd33

18 files changed

+287
-5
lines changed

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@
3434
##### [DSW010-MongoDB-REST-MongoRepository](handsonDoc/DSW010-MongoDB-REST-MongoRepository.md)
3535
##### [DSW011-JWT-token](handsonDoc/DSW011-JWT-token.md)
3636
##### [DSW012-JWT-token-JSON配置文件读取](handsonDoc/DSW012-JWT-token-JSON配置文件读取.md)
37-
##### [DSW013-Element-UI-后台控制程序-环境安装配置](handsonDoc/DSW013-Element-UI-后台控制程序-环境安装配置.md)
38-
##### [DSW014-MongoTemplate](handsonDoc/DSW020-MongoTemplate.md)
39-
##### [DSW015-MongoDB-REST-Mongotemplate-CDUR](handsonDoc/DSW021-MongoDB-REST-Mongotemplate-CDUR.md)
40-
37+
##### [DSW013-Element-Admin-后台控制程序-环境安装配置](handsonDoc/DSW013-Element-Admin-后台控制程序-环境安装配置.md)
38+
##### [DSW014-MongoTemplate](handsonDoc/DSW090-MongoTemplate.md)
39+
##### [DSW015-MongoDB-REST-Mongotemplate-CDUR](handsonDoc/DSW091-MongoDB-REST-Mongotemplate-CDUR.md)
4140

4241

4342
### Ubuntu

handsonDoc/DSW013-Element-UI-后台控制程序-环境安装配置.md renamed to handsonDoc/DSW013-Element-Admin-后台控制程序-环境安装配置.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# DSW013-Element-UI-后台控制程序-环境安装配置
1+
# DSW013-Element-Admin-后台控制程序-环境安装配置.md
22

33
lin-jinwei
44

@@ -140,7 +140,10 @@ npm run dev
140140
![alt text](image-85.png)
141141

142142

143+
## 退出控制台
143144

145+
可以直接通过点击退出按钮退出:
146+
![alt text](image-98.png)
144147

145148

146149

Lines changed: 280 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,280 @@
1+
# DSW014-Element-Admin-编辑登录界面
2+
3+
lin-jinwei
4+
5+
注意,未授权不得擅自以盈利方式转载本博客任何文章。
6+
7+
---
8+
9+
Code: [../code/S10-vue-element-admin-edit](../code/S10-vue-element-admin-edit/)
10+
11+
## 删除 Cookie
12+
13+
Cookie是一种浏览器保存用户数据的文件,在Vue-admin登录后,将不再需要重新输入用户名+密码,对编辑不方便,因此删除Cookie:
14+
Edge:
15+
![alt text](image-86.png)
16+
17+
点击退出浏览器时候删除 Cookie:
18+
19+
![alt text](image-87.png)
20+
21+
输入: http://localhost:9527
22+
23+
```bash
24+
http://localhost:9527
25+
```
26+
再删除:
27+
![alt text](image-88.png)
28+
29+
## 重启vue-admin
30+
31+
成功再现登录界面:
32+
33+
![alt text](image-89.png)
34+
35+
后台:
36+
37+
![alt text](image-90.png)
38+
39+
---
40+
41+
## 编辑-VSCode-打开项目目录
42+
43+
![alt text](image-91.png)
44+
45+
## 项目分析
46+
47+
### 项目的整体框架结构
48+
49+
```bash
50+
├── build # 构建相关
51+
├── mock # 项目mock 模拟数据
52+
├── plop-templates # 基本模板
53+
├── public # 静态资源
54+
│ │── favicon.ico # favicon图标
55+
│ └── index.html # html模板
56+
├── src # 源代码
57+
│ ├── api # 所有请求
58+
│ ├── assets # 主题 字体等静态资源
59+
│ ├── components # 全局公用组件
60+
│ ├── directive # 全局指令
61+
│ ├── filters # 全局 filter
62+
│ ├── icons # 项目所有 svg icons
63+
│ ├── lang # 国际化 language
64+
│ ├── layout # 全局 layout
65+
│ ├── router # 路由
66+
│ ├── store # 全局 store管理
67+
│ ├── styles # 全局样式
68+
│ ├── utils # 全局公用方法
69+
│ ├── vendor # 公用vendor
70+
│ ├── views # views 所有页面
71+
│ ├── App.vue # 入口页面
72+
│ ├── main.js # 入口文件 加载组件 初始化等
73+
│ └── permission.js # 权限管理
74+
├── tests # 测试
75+
├── .env.xxx # 环境变量配置
76+
├── .eslintrc.js # eslint 配置项
77+
├── .babelrc # babel-loader 配置
78+
├── .travis.yml # 自动化CI配置
79+
├── vue.config.js # vue-cli 配置
80+
├── postcss.config.js # postcss 配置
81+
└── package.json # 项目各个依赖包的详细信息
82+
```
83+
84+
## 登录界面源码
85+
86+
代码:src\views\login\index.vue
87+
88+
### 修改标题
89+
90+
```html
91+
<div class="title-container">
92+
<h3 class="title">Connector</h3>
93+
<h5 class="title">开发者:林进威 测试项目: DS数据空间 </h5>
94+
</div>
95+
```
96+
97+
修改后,浏览器端的页面将会热加载-同步更新;
98+
如果没有热加载,则F5键刷新页面:
99+
100+
![alt text](image-92.png)
101+
102+
### 除去tips
103+
104+
```html
105+
<!-- <div class="tips">
106+
<span>Username : admin</span>
107+
<span>Password : any</span>
108+
</div> -->
109+
<!-- <div class="tips">
110+
<span style="margin-right:18px;">Username : editor</span>
111+
<span>Password : any</span>
112+
</div> -->
113+
```
114+
115+
![alt text](image-93.png)
116+
117+
### 优化布局-更多登录方式
118+
119+
```html
120+
<br />
121+
<br />
122+
<br />
123+
<el-button class="thirdparty-button" type="primary@click="showDialog=true">
124+
更多登录方式
125+
</el-button>
126+
```
127+
128+
![alt text](image-94.png)
129+
130+
131+
### Login按钮分析
132+
133+
![](image-95.png)
134+
135+
136+
对应代码:
137+
```html
138+
<el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" @click.native.prevent="handleLogin">Login</el-button>
139+
```
140+
141+
该按钮的启动函数为:handleLogin
142+
```html
143+
@click.native.prevent="handleLogin"
144+
```
145+
native:监听item内的自定义事件。即将组件变回原生DOM的一种方式表达。相当于给组件绑定对应的原生事件。
146+
prevent:阻止默认事件动作。
147+
148+
对应的具体函数代码:
149+
```js
150+
handleLogin() {
151+
this.$refs.loginForm.validate(valid => {
152+
if (valid) {
153+
this.loading = true
154+
this.$store.dispatch('user/login', this.loginForm)
155+
.then(() => {
156+
// 此处编辑登录后的具体动作
157+
// this.$router.push: 实现页面跳转
158+
this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
159+
this.loading = false
160+
})
161+
.catch(() => {
162+
this.loading = false
163+
})
164+
} else {
165+
console.log('error submit!!')
166+
return false
167+
}
168+
})
169+
},
170+
```
171+
172+
### 添加一个字符串输入栏
173+
174+
代码:src\views\login\index.vue
175+
176+
添加组件代码:
177+
178+
```html
179+
<!-- 在此添加 -->
180+
<el-form-item prop="cacert">
181+
<span class="svg-container">
182+
<!-- 在此修改图标 -->
183+
<svg-icon icon-class="guide" />
184+
</span>
185+
<!-- tabindex="1" 表示元素可以被聚焦,即光标点击响应 -->
186+
<el-input ref="cacert" v-model="loginForm.cacertplaceholder="CA-Certification" name="cacert" type="text"
187+
tabindex="1" autocomplete="on" />
188+
</el-form-item>
189+
```
190+
![alt text](image-96.png)
191+
192+
### 设置export default的默认值
193+
设置界面初始化时候输入框内的默认值或者提示语言:
194+
195+
```js
196+
export default {
197+
name: 'Login',
198+
components: { SocialSign },
199+
data() {
200+
const validateUsername = (rule, value, callback) => {
201+
if (!validUsername(value)) {
202+
callback(new Error('Please enter the correct user name'))
203+
} else {
204+
callback()
205+
}
206+
}
207+
208+
// 添加-认证CA证书-初步认证
209+
const validateCacert = (rule, value, callback) => {
210+
if (!validateCacert(value)) {
211+
// 在此处添加-初步认证CA证书的代码
212+
callback(new Error('Please enter the correct CA certification'))
213+
} else {
214+
callback()
215+
}
216+
}
217+
218+
const validatePassword = (rule, value, callback) => {
219+
if (value.length < 6) {
220+
callback(new Error('The password can not be less than 6 digits'))
221+
} else {
222+
callback()
223+
}
224+
}
225+
return {
226+
loginForm: {
227+
username: '用户名-默认值',
228+
cacert: 'CA证书-默认值',
229+
password: '登录密码-默认值',
230+
},
231+
loginRules: {
232+
username: [{ required: true, trigger: 'blur', validator: validateUsername }],
233+
cacert: [{ required: true, trigger: 'blur', validator: validateCacert }],
234+
password: [{ required: true, trigger: 'blur', validator: validatePassword }]
235+
},
236+
passwordType: 'password',
237+
capsTooltip: false,
238+
loading: false,
239+
showDialog: false,
240+
redirect: undefined,
241+
otherQuery: {}
242+
}
243+
},
244+
```
245+
246+
![alt text](image-97.png)
247+
248+
249+
### 修改handleLogin()函数
250+
251+
```js
252+
handleLogin() {
253+
this.$refs.loginForm.validate(valid => {
254+
if (valid) {
255+
this.loading = true
256+
// 使用store存储数据
257+
this.$store.dispatch('user/login', this.loginForm)
258+
.then(() => {
259+
// 正式启动后的运行代码
260+
this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
261+
this.loading = false
262+
})
263+
.catch(() => {
264+
this.loading = false
265+
})
266+
} else {
267+
console.log('error submit!!')
268+
return false
269+
}
270+
})
271+
},
272+
```
273+
274+
275+
276+
277+
278+
279+
280+
File renamed without changes.
File renamed without changes.

handsonDoc/image-86.png

235 KB
Loading

handsonDoc/image-87.png

248 KB
Loading

handsonDoc/image-88.png

76.1 KB
Loading

handsonDoc/image-89.png

91.3 KB
Loading

handsonDoc/image-90.png

65.3 KB
Loading

0 commit comments

Comments
 (0)