当前位置: 首页 > wzjs >正文

海南网站制作一网站建设带前台的wordpress模板下载

海南网站制作一网站建设,带前台的wordpress模板下载,建筑公司100强,html5高端酒水饮料企业网站模版系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 文章目录 目录 系列文档目录 文章目录 前言 一、登录mock资料模拟 二、界面设计 三、路由定义…

系列文档目录

Vue3+Vite+TypeScript安装

Element Plus安装与配置

主页设计与router配置

静态菜单设计

Pinia引入

Header响应式菜单缩展

Mockjs引用与Axios封装

登录设计


文章目录

目录

系列文档目录

文章目录

前言

一、登录mock资料模拟

二、界面设计

三、路由定义

四、运行效果

五、登录验证与多用户资料模拟

后续


前言

本章节的核心内容包括:界面设计的优化、Mock.js 模拟用户登录 API 数据的生成,以及登录验证和多用户登录功能的实现。


一、登录mock资料模拟

1.在mockData下新建loginData.ts

// src/mock/mockData/loginData.ts
import Mock from 'mockjs';
import { Document, Setting } from '@element-plus/icons-vue'; // 假设你使用的是 Element Plus 的图标// 模拟登录数据
const loginData = Mock.mock({data: {"status_code": 200,"status": "success","message": "Operation successful.","data": {"api_key": "Test","username": "admin","token_key": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoicTEyMzQ1NjdBYSIsInVzZXJuYW1lIjoiYWRtaW4iLCJyb2xlIjoiYWRtaW4iLCJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJleHAiOjE3NDQ2MTQ3MjR9.ZN1CwvBgSa7hSTjvAdduEiJjxlQpxqQp15tM7TEl4xc","role": "admin","email": "user@example.com"}
},
});export default loginData;

2.修改mock文件

新增login的api模拟应用

// src/mock/index.ts
import Mock from 'mockjs';
import menuData from '@/mock/mockData/menuData';
import loginData from '@/mock/mockData/loginData' ;Mock.mock(/menu/, 'get', (req: any) => {return menuData.data;
});Mock.mock(/login/, 'post', (req: any) => {return loginData.data;
});

二、界面设计

在src/views下新建文件login.vue

<template><div class="login-container"><el-card class="box-card"><template #header><span>登录</span></template><el-form :model="loginForm" :rules="rules" ref="loginFormRef" label-width="100px" class="demo-loginForm"><el-form-item label="用户名" prop="username"><el-input v-model="loginForm.username"></el-input></el-form-item><el-form-item label="密码" prop="password"><el-input type="password" v-model="loginForm.password" show-password></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm">登录</el-button><el-button @click="resetForm">重置</el-button></el-form-item></el-form></el-card></div></template><script lang="ts" setup>import { reactive, ref } from 'vue';import { ElForm, ElFormItem, ElInput, ElButton, ElCard, ElMessage } from 'element-plus';import type { FormInstance, FormRules } from 'element-plus';import { login } from '@/api/user';const loginForm = reactive({username: '',password: ''});const rules: FormRules = {username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],password: [{ required: true, message: '请输入密码', trigger: 'blur' }]};const loginFormRef = ref<FormInstance | null>(null);// 封装登录请求处理逻辑// 定义 API 返回的数据结构interface LoginResponse {status_code: number;status: string;message?: string;data?: {api_key: string;username: string;token_key: string;role: string;email: string;};}const fetchLoginData = async () => {try {const responseData: LoginResponse = await login(loginForm); // 假设 login 返回的是 LoginResponseif (responseData.status_code === 200 && responseData.status === 'success') {ElMessage.success('登录成功!');} else {ElMessage.error(`登录失败: ${responseData.message || '未知错误'}`);console.error('登录失败:', responseData);}} catch (error) {ElMessage.error('登录请求失败,请稍后再试');}
};const submitForm = () => {if (!loginFormRef.value) return;loginFormRef.value.validate((valid) => {if (valid) {fetchLoginData();} else {console.log('验证失败!');ElMessage.error('验证失败!');}});};const resetForm = () => {if (!loginFormRef.value) return;loginFormRef.value.resetFields();};</script><style scoped>.login-container {display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f2f5;}.box-card {width: 480px;}</style>

三、路由定义

1.修改路由文件(views\router\index.ts)

2.重点增加 RouteRecordRaw与增加login路由

3.完整代码

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';
import Main from '@/views/Main.vue'; //
import Home from '@/views/Home.vue';
import UserInfo from '@/views/SysSettings/UserInfo.vue';
import AccountSetting from '@/views/SysSettings/AccountSetting.vue';
import Login from '@/views/login.vue';// 定义路由配置
const routes: RouteRecordRaw[] = [{path: '/',name: 'main',component: Main,children: [{path: 'home',name: 'home',component: Home,},{path: 'UserInfo',name: 'UserInfo',component: UserInfo,},{path: 'AccountSetting',name: 'AccountSetting',component: AccountSetting,},],},{path: '/login',name: 'login',component: Login,},
];// 创建路由器
const router = createRouter({history: createWebHistory(),routes, // 使用已定义的路由配置
});export default router;

四、运行效果

输入网址:http://localhost:5173/login,切记要加上/login

此时随便输入用户名与密码都可以正确登录,接下来模拟多用户与密码错误登录。

五、登录验证与多用户资料模拟

1、修改mockData登录模拟数据【src/mock/mockData/loginData.ts】

增加用户名与密码验证与多用户返回不同信息

// src/mock/mockData/loginData.ts
import Mock from 'mockjs';
import { Document, Setting } from '@element-plus/icons-vue'; // 假设你使用的是 Element Plus 的图标// 模拟登录数据
/*
const loginData = Mock.mock({data: {"status_code": 200,"status": "success","message": "Operation successful.","data": {"api_key": "Test","username": "admin","token_key": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoicTEyMzQ1NjdBYSIsInVzZXJuYW1lIjoiYWRtaW4iLCJyb2xlIjoiYWRtaW4iLCJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJleHAiOjE3NDQ2MTQ3MjR9.ZN1CwvBgSa7hSTjvAdduEiJjxlQpxqQp15tM7TEl4xc","role": "admin","email": "user@example.com"}
},
});export default loginData;
*/// 动态生成登录数据
export default (data: any) => {// 解析传入的 data 参数const { username, password } = data;// 根据用户名和密码生成不同的响应if (username === 'admin' && password === 'admin') {return Mock.mock({status_code: 200,status: 'success',message: 'Operation successful.',data: {api_key: 'Test',username: 'admin',token_key: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoicTEyMzQ1NjdBYSIsInVzZXJuYW1lIjoiYWRtaW4iLCJyb2xlIjoiYWRtaW4iLCJlbWFpbCI6InVzZXJAZXhhbXBsZS5jb20iLCJleHAiOjE3NDQ2MTQ3MjR9.ZN1CwvBgSa7hSTjvAdduEiJjxlQpxqQp15tM7TEl4xc',role: 'admin',email: 'admin@example.com',},});} else if (username === 'user' && password === 'password') {return Mock.mock({status_code: 200,status: 'success',message: 'Operation successful.',data: {api_key: 'TestUser',username: 'user',token_key: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoicTEyMzQ1NjdBYSIsInVzZXJuYW1lIjoidXNlciIsInJvbGUiOiJ1c2VyIiwiZW1haWwiOiJ1c2VyQGV4YW1wbGUuY29tIiwiZXhwIjoxNzQ0NjE0NzI0fQ.ZN1CwvBgSa7hSTjvAdduEiJjxlQpxqQp15tM7TEl4xc',role: 'user',email: 'user@example.com',},});} else {return Mock.mock({status_code: 401,status: 'fail',message: 'Invalid username or password.',data: null,});}
};

2.修改mock api文件

增加了获取登录账号与密码信息传输

// src/mock/index.ts
import Mock from 'mockjs';
import menuData from '@/mock/mockData/menuData';
import loginData from '@/mock/mockData/loginData' ;Mock.mock(/menu/, 'get', (req: any) => {return menuData.data;
});/*
Mock.mock(/login/, 'post', (req: any) => {return loginData.data;
});
*/
Mock.mock(/\/login/, (options) => {const { body } = options;const data = JSON.parse(body); // 解析请求体中的数据return loginData(data); // 调用动态生成的登录数据函数
});

六、登录验证运行效果

输入网址:http://localhost:5173/login

输入错误密码

输入正确的密码:


后续

下一章节讲登录成功后跳转/main,菜单根据不同用户动态变化。


文章转载自:

http://XmRh9Mq9.zcyxq.cn
http://EaWRoURa.zcyxq.cn
http://dpLplnRI.zcyxq.cn
http://7EXL5R8D.zcyxq.cn
http://l5GV7gCM.zcyxq.cn
http://EmjkfNxL.zcyxq.cn
http://YwpRgBWS.zcyxq.cn
http://8inBOOej.zcyxq.cn
http://QakaOL7p.zcyxq.cn
http://fh70LRMw.zcyxq.cn
http://ImXNLJem.zcyxq.cn
http://dxlrNkQl.zcyxq.cn
http://0dgY6IsI.zcyxq.cn
http://moptQqpZ.zcyxq.cn
http://ENQ8Lsr4.zcyxq.cn
http://dDKm1vKz.zcyxq.cn
http://UutnFYmT.zcyxq.cn
http://EN3V70AN.zcyxq.cn
http://ASqDsG3Z.zcyxq.cn
http://19nWzSmd.zcyxq.cn
http://LSfhAEO8.zcyxq.cn
http://ztAyz2nr.zcyxq.cn
http://dcgKLNFx.zcyxq.cn
http://wmpzsquS.zcyxq.cn
http://mTfWxi8m.zcyxq.cn
http://g1aqtB6w.zcyxq.cn
http://AFtCITnN.zcyxq.cn
http://b0R3l7Ml.zcyxq.cn
http://LVKuhU3N.zcyxq.cn
http://vG6e9IHC.zcyxq.cn
http://www.dtcms.com/wzjs/764597.html

相关文章:

  • 在线做h5 的网站网站文件夹没有权限设置
  • seo矩阵培训seo入门免费教程
  • 山东省安全双体系建设网站地址福州 网站定制设计
  • 许昌城乡建设局网站wordpress指定分类主动推送百度
  • 广州 网站定制个人网站 可以自己做服务器
  • 怎么做无损mp3下载网站Wordpress垂直类目站模版
  • 八里河网站建设项目建设可行性创网易账号
  • 厦门模板建站平台怎么搭建网页服务器
  • 网页设计和网站建设wordpress网站不收录
  • 一个人制作网站上海网站设计合理柚v米科技
  • 嘉兴 做企业网站电子元器件商城网站建设
  • 宁海有做网站的吗手机网站在后台怎么做编辑
  • 网站建设有那些内容个人摄影作品网站
  • 打开网站弹出图片代码网站开发人员的职责
  • wordpress建站插件安全视觉asp网站源码
  • 网站域名批量查询wordpress主题备案号
  • 什么软件可以建设网站越秀建设网站
  • 平台类网站建设价格表it在线学习网站开发
  • 学网页设计与制作需要什么软件山东seo
  • 外贸网站如何做推广是什么wordpress 删除数据库文件
  • 李笑来做的一个网站wordpress 数据库地址
  • 最新国际新闻10条简短重庆网站seo按天计费
  • 百度网站收录删除远程wordpress数据库
  • 还有用的网站榆林网络公司建设网站
  • 纺织行业网站怎么做吸引人seo推广岗位职责
  • 河北斯皮尔网站建设安徽省建设部网站
  • 哪里有门户网站开发常见搜索引擎有哪些
  • 网站 多语言处理推广方式的英文
  • 博山区住房和城乡建设局网站免费建音乐网站
  • 教学网站模板下载网页设计网站长沙