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

台州做网站电话施工企业样板先行制度

台州做网站电话,施工企业样板先行制度,单仁牛商,设计公司1.第一步在项目根目录新建utils文件夹,里边新建两个文件request.js和uni-api-promisify.js 2.request.js 代码 要安装axios import axios from axios import { showToast } from /utils/uni-api-promisify// 创建axios实例 const service axios.create({baseURL:…

1.第一步在项目根目录新建utils文件夹,里边新建两个文件request.js和uni-api-promisify.js

2.request.js 代码 要安装axios

import axios from 'axios'
import { showToast } from '@/utils/uni-api-promisify'// 创建axios实例
const service = axios.create({baseURL: "https://api.buzznewsfull.com",timeout: 10000,headers: {'Content-Type': 'application/json;charset=utf-8'}
})// 请求拦截器
service.interceptors.request.use(config => {// 在发送请求之前做些什么// 例如添加tokenconst token = uni.getStorageSync('token')if (token) {config.headers['Authorization'] = 'Bearer ' + token}// 显示加载中提示uni.showLoading({title: '加载中...',mask: true})// 打印请求参数到控制台// console.log('请求配置:', config)// console.log('请求URL:', config.url)// console.log('请求方法:', config.method)// 区分显示GET和POST请求的参数if (config.method === 'get') {// console.log('GET请求参数:', config.params)// 打印完整URL,包括查询参数const fullUrl = new URL(config.url, config.baseURL)if (config.params) {Object.entries(config.params).forEach(([key, value]) => {fullUrl.searchParams.append(key, value)})}// console.log('完整请求URL:', fullUrl.href)} else {// console.log('POST请求参数:', config.data)}return config},error => {// 对请求错误做些什么// console.log(error)uni.hideLoading()return Promise.reject(error)}
)// 响应拦截器
service.interceptors.response.use(response => {uni.hideLoading()const res = response.data// 统一处理业务错误if (res.code !== 20000) {// 显示错误信息showToast({title: res.message || '操作失败',icon: 'none'})// 需要登录的状态码const loginRequiredCodes = [50008, 50012, 50014]if (loginRequiredCodes.includes(res.code)) {// 清除本地存储的用户信息uni.removeStorageSync('token')uni.removeStorageSync('userInfo')// 重新登录uni.showModal({title: '登录失效',content: '你已被登出,可以取消继续留在该页面,或者重新登录',confirmText: '重新登录',success: ({ confirm }) => {if (confirm) {uni.reLaunch({url: '/pages/login/login'})}}})}// 返回带有错误信息的对象,而不是直接rejectreturn {success: false,code: res.code,message: res.message || '操作失败'}} else {// 业务成功,返回数据return {success: true,code: res.code,message: res.message || '操作成功',data: res.data}}},error => {console.log('err' + error)uni.hideLoading()let message = '网络请求失败,请稍后重试'if (error.response) {const status = error.response.statusmessage = `请求错误,状态码:${status}`} else if (error.message) {message = error.message}showToast({title: message,icon: 'none'})// 返回错误对象return {success: false,code: -1,message: message}}
)export default service  

3.uni-api-promisify.js

export const showToast = (options) => {return new Promise((resolve, reject) => {uni.showToast({...options,success: resolve,fail: reject})})
}export const showModal = (options) => {return new Promise((resolve, reject) => {uni.showModal({...options,success: resolve,fail: reject})})
}// 可以继续添加其他需要Promise化的API  

4.根目录新建api文件夹,里边新建user.js 放接口

5.注意get请求参数是params 进行参数拼接,post是data在请求体中

import request from '@/utils/request'/*** 登录* @param {Object} data - 登录数据* @param {string} data.username - 用户名* @param {string} data.password - 密码*/
export function login(data) {return request({url: '/api/user/login',method: 'post',data})
}/*** 获取用户信息*/
export function getInfo(params) {return request({url: '/api/user/info',method: 'get',params})
}/*** 登出*/
export function logout(data) {return request({url: '/api/user/logout',method: 'post',data})
}  

6.页面中使用

import { defineStore } from 'pinia'
import { login, getInfo, logout } from '@/api/user'export const useUserStore = defineStore({id: 'user',state: () => ({token: uni.getStorageSync('token') || '',userInfo: JSON.parse(uni.getStorageSync('userInfo') || '{}')}),actions: {// 登录async login(userInfo) {const { username, password } = userInfoconst res = await login({ username: username.trim(), password })if (res.success) {this.token = res.data.tokenuni.setStorageSync('token', res.data.token)await this.getInfo()}return res},// 获取用户信息async getInfo() {const res = await getInfo()if (res.success) {this.userInfo = res.datauni.setStorageSync('userInfo', JSON.stringify(res.data))}return res},// 登出async logout() {const res = await logout()if (res.success || res.code === 50008) {this.token = ''this.userInfo = {}uni.removeStorageSync('token')uni.removeStorageSync('userInfo')}return res}}
})  

6.完成了快去试试吧,整体的文件

在这里插入图片描述

http://www.dtcms.com/wzjs/807133.html

相关文章:

  • 北京住房建设官方网站电商类网站开发定制
  • 教你如何建设网站网站首页内容
  • 做网站一般什么问题seo查询官网
  • 建设监理网站厦门市建设质量安全协会网站
  • 网站建设素材网页铜仁建设厅官方网站
  • ysl网站设计论文网站怎么做友情连接
  • 网站哪个公司做的比较好白山市城乡建设局网站
  • 岳池建设局网站数字营销专业
  • 广东省住房和城乡建设厅网站进不去邯郸网络科技
  • 鄂伦春网站建设个人网站免费源码大全
  • 中国第八冶金建设公司网站音乐网站怎么做精准关键词
  • 廊坊网站建设廊坊网站开发 jz.woonl
  • 温州快速网站推广公司在线设计平台排行榜
  • 重庆做网站找谁名师工作室网站建设 意义
  • 免费建站网站黄金网站增加wordpress阅读量
  • 网站标题是关键词吗如何做农产品网站
  • 百度推广和哪些网站有合作如何增加网站外链
  • 蕴川路上海网站建设关键词调价工具哪个好
  • 搅拌机东莞网站建设技术支持云主机 网站指南
  • php网站建设 关键技术v2ex wordpress
  • 网站模板 html外贸平台营销
  • 怎样做卖活网站企业公章查询系统
  • 手机宣传网站企业网站建设需要费用
  • 郴州网站建设公司在哪里做电力公司网站
  • 什么是网站后台发布新闻稿
  • flash网站cms个人可以做招聘网站吗
  • 咨询邯郸网站建设软件app网站建设
  • 红河做网站的公司wordpress 果壳网
  • 部门将网站建设的需求湛江做网站开发
  • 儿童玩具商城网站建设wordpress array