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

网站端网站开发凡科网微信小程序制作

网站端网站开发,凡科网微信小程序制作,成都最新的防疫通告,网站做竞价优化文章目录 一、需求二、分析1. 安装axios2. 新建一个 ts 文件#xff0c;封装 axios3. store 存放 token 信息4. 使用5. 文件 type.js 一、需求 在日常开发中#xff0c;我们会经常用到 axios #xff0c;那么如何在自己的项目中自己封装 axios 二、分析 1. 安装axios np… 文章目录 一、需求二、分析1. 安装axios2. 新建一个 ts 文件封装 axios3. store 存放 token 信息4. 使用5. 文件 type.js 一、需求 在日常开发中我们会经常用到 axios 那么如何在自己的项目中自己封装 axios 二、分析 1. 安装axios npm install axios2. 新建一个 ts 文件封装 axios 手写一个TS文件 src\utils\request.ts我的习惯把它放在 utils 目录下源码如下 import axios, { InternalAxiosRequestConfig, AxiosResponse } from axios; import { useUserStoreHook } from /store/modules/user;// 创建 axios 实例 const service axios.create({baseURL: import.meta.env.VITE_APP_BASE_API,timeout: 50000,headers: { Content-Type: application/json;charsetutf-8 }, });// 请求拦截器 service.interceptors.request.use((config: InternalAxiosRequestConfig) {const userStore useUserStoreHook();if (userStore.token) {config.headers.Authorization userStore.token;}return config;},(error: any) {return Promise.reject(error);} );// 响应拦截器 service.interceptors.response.use((response: AxiosResponse) {const { code, msg } response.data;if (code 00000) {return response.data;}// 响应数据为二进制流处理(Excel导出)if (response.data instanceof ArrayBuffer) {return response;}ElMessage.error(msg || 系统出错);return Promise.reject(new Error(msg || Error));},(error: any) {if (error.response.data) {const { code, msg } error.response.data;// token 过期,重新登录if (code A0230) {ElMessageBox.confirm(当前页面已失效请重新登录, 提示, {confirmButtonText: 确定,type: warning,}).then(() {localStorage.clear();window.location.href /;});} else {ElMessage.error(msg || 系统出错);}}return Promise.reject(error.message);} );// 导出 axios 实例 export default service;3. store 存放 token 信息 我的 store 中存放了用户的登录信息在封装 axios 时只用到了 token因此下方代码可做参考 import { defineStore } from pinia;import { loginApi, logoutApi } from /api/auth; import { getUserInfo } from /api/user; import { resetRouter } from /router; import { store } from /store;import { LoginData } from /api/auth/types; import { UserInfo } from /api/user/types;import { useStorage } from vueuse/core;export const useUserStore defineStore(user, () {// stateconst userId ref();const token useStorage(accessToken, );const nickname ref();const avatar ref();const roles refArraystring([]); // 用户角色编码集合 → 判断路由权限const perms refArraystring([]); // 用户权限编码集合 → 判断按钮权限/*** 登录调用** param {LoginData}* returns*/function login(loginData: LoginData) {return new Promisevoid((resolve, reject) {loginApi(loginData).then((response) {const { tokenType, accessToken } response.data;token.value tokenType accessToken; // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxxresolve();}).catch((error) {reject(error);});});}// 获取信息(用户昵称、头像、角色集合、权限集合)function getInfo() {return new PromiseUserInfo((resolve, reject) {getUserInfo().then(({ data }) {if (!data) {return reject(Verification failed, please Login again.);}if (!data.roles || data.roles.length 0) {reject(getUserInfo: roles must be a non-null array!);}userId.value data.userId;nickname.value data.nickname;avatar.value data.avatar;roles.value data.roles;perms.value data.perms;resolve(data);}).catch((error) {reject(error);});});}// 注销function logout() {return new Promisevoid((resolve, reject) {logoutApi().then(() {resetRouter();resetToken();location.reload(); // 清空路由resolve();}).catch((error) {reject(error);});});}// 重置function resetToken() {token.value ;nickname.value ;avatar.value ;roles.value [];perms.value [];}return {token,nickname,avatar,roles,perms,login,getInfo,logout,resetToken,/*** 当前登录用户ID*/userId,}; });// 非setup export function useUserStoreHook() {return useUserStore(store); }4. 使用 import request from /utils/request; import { AxiosPromise } from axios; import { UserForm, UserInfo, UserQuery } from ./types;/*** 登录成功后获取用户信息昵称、头像、权限集合和角色集合*/ export function getUserInfo(): AxiosPromiseUserInfo {return request({url: /api/v1/users/me,method: get,}); }/*** 添加用户** param data*/ export function addUser(data: any) {return request({url: /api/v1/users,method: post,data: data,}); } /*** 修改用户** param id* param data*/ export function updateUser(id: number, data: UserForm) {return request({url: /api/v1/users/ id,method: put,data: data,}); } /*** 修改用户状态** param id* param status*/ export function updateUserStatus(id: number, status: number) {return request({url: /api/v1/users/ id /status,method: patch,params: { status: status },}); } /*** 删除用户** param ids*/ export function deleteUsers(ids: string) {return request({url: /api/v1/users/ ids,method: delete,}); } /*** 下载用户导入模板** returns*/ export function downloadTemplateApi() {return request({url: /api/v1/users/template,method: get,responseType: arraybuffer,}); }/*** 导出用户** param queryParams* returns*/ export function exportUser(queryParams: UserQuery) {return request({url: /api/v1/users/_export,method: get,params: queryParams,responseType: arraybuffer,}); }/*** 导入用户** param file*/ export function importUser(deptId: number, file: File) {const formData new FormData();formData.append(file, file);return request({url: /api/v1/users/_import,method: post,params: { deptId: deptId },data: formData,headers: {Content-Type: multipart/form-data,},}); } 5. 文件 type.js /*** 用户查询对象类型*/ export interface UserQuery {keywords?: string;status?: number;deptId?: number; }/*** 登录用户信息*/ export interface UserInfo {userId: number;nickname: string;avatar: string;roles: string[];perms: string[]; }/*** 用户表单类型*/ export interface UserForm {/*** 用户头像*/avatar?: string;/*** 部门ID*/deptId?: number;/*** 邮箱*/email?: string;/*** 性别*/gender?: number;/*** 用户ID*/id?: number;mobile?: string;/*** 昵称*/nickname?: string;/*** 角色ID集合*/roleIds?: number[];/*** 用户状态(1:正常;0:禁用)*/status?: number;/*** 用户名*/username?: string; }
http://www.yutouwan.com/news/269056/

相关文章:

  • 常州专门做网站的公司有哪些四川seo哪里有
  • seo网站优化推广网站离线浏览器 怎么做
  • 家电网站首页制作网站建设 贴吧
  • 网站域名到期怎么续费个人怎么建立微信公众号
  • 做网站老板嫌弃太丑谁的锅物流网站建设方案
  • 重庆网站建设开发公司大学生网站建设例题答案
  • 建设工程个人信息采集哪个网站用手机做诱导网站
  • 做网站的公司还市场吗公司网站建设知识
  • 慕枫宁波网站建设正规建网站企业
  • 网站域名注册商重庆网站设计制作价格
  • 浙江中钦建设有限公司网站济宁网站建设济宁
  • 营销型网站建设评价个人网站的优点
  • 美容加盟的网站建设濮阳网站注册
  • 天津模板建站定制网站百度网盘app下载安装
  • 网站建设与管理复习知识点搭建门户网站
  • 《网页设计与网站建设》大作业要求家纺 网站模版
  • 网站建设方案书安全性创建自己网站的步骤
  • 大学生兼职网站做ppt网页加速器哪个好
  • 重庆九龙坡区网站建设专业网页制作的帮手
  • 建设银行国际互联网网站笔记本做网站要什么好
  • 学会网站开发有什么好处wordpress域名设置方法
  • 网站排名系统哪个好做平面设计常用的网站
  • 学校网站模板 dede网络培训中心
  • 网站开发销售甘肃公司的网络营销方案
  • 阿里云速美建站网站后台用什么开发
  • 慈溪网站建设网站推广创建公司网站用什么软件
  • sem网站推广怎么做北京展厅设计公司科技展厅装修
  • 做网站的公司怎么发展业务环保局 网站建设
  • aspx网站如何架设网站收录下降
  • 有口碑的徐州网站建设手机网址大全123客户端下载