登录的代码:
<el-form-item prop="username">
<span class="svg-container">
<svg-icon icon="user" />
</span>
<el-input
placeholder="username"
name="username"
type="text"
v-model="loginForm.username"
/>
</el-form-item>
<el-form-item prop="password">
<span class="svg-container">
<svg-icon icon="password" />
</span>
<el-input
:type="passwordType"
placeholder="password"
name="password"
v-model="loginForm.password"
/>
<span class="show-pwd">
<svg-icon
:icon="passwordType === 'password' ? 'eye' : 'eye-open'"
@click="onChangePwdType"
/>
</span>
</el-form-item>
<el-button
:loading="loading"
v-on:click="handleLogin"
type="primary"
style="width: 100%; margin-bottom: 30px"
>登录</el-button
>
</el-form>
utils下的request.js代码:
import axios from ‘axios’
const service = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 5000
})
// 请求拦截器
service.interceptors.request.use((config) => {
// 添加 icode
config.headers.icode = ‘通过课程页获取的接口校验码’
// 必须返回 config
return config
})
export default service
vue.config.js配置的代理:
const path = require(‘path’)
function resolve(dir) {
return path.join(__dirname, dir)
}
module.exports = {
devServer: {
// 配置反向代理
proxy: {
’/api’: {
target: ‘https://api.imooc-admin.lgdsunday.club/’,
changeOrigin: true
}
}
},
chainWebpack(config) {
// 设置 svg-sprite-loader
config.module.rule(‘svg’).exclude.add(resolve(‘src/icons’)).end()
config.module
.rule(‘icons’)
.test(/.svg$/)
.include.add(resolve(‘src/icons’))
.end()
.use(‘svg-sprite-loader’)
.loader(‘svg-sprite-loader’)
.options({
symbolId: ‘icon-[name]’
})
.end()
}
}
基于Vue3重写Vue-element-admin,打造后台前端综合解决方案
了解课程