本次提交主要包含以下内容: 1. 新增积分申请系统核心功能: - 添加登录页面及API接口 - 实现积分申请记录查看功能 - 集成微信小程序分享功能 - 添加请求管理工具类 2. 引入Tuniao UI组件库: - 添加时间线、折叠面板、表格等UI组件 - 集成头像组、单选框组等交互组件 - 配置全局样式和主题颜色 3. 基础架构搭建: - 配置项目manifest和pages.json路由 - 添加状态管理store - 实现自定义导航栏适配 - 添加工具函数(加解密、数字处理等) 4. 静态资源: - 添加项目logo和背景图片 - 配置uni.scss全局样式变量 本次提交为系统基础功能搭建,后续将进一步完善积分申请流程和审批功能。
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
class RequestManager {
|
||
constructor() {
|
||
this.idMap = new Map()
|
||
}
|
||
/**
|
||
* 生成唯一ID,并将ID和请求信息存储到map对象中
|
||
* @param {string} method - 请求方法
|
||
* @param {string} url - 请求URL
|
||
* @param {object} params - 请求参数
|
||
* @returns {string|boolean} - 生成的唯一ID,如果存在相同请求则返回false
|
||
*/
|
||
generateId(method, url, params) {
|
||
const id = this.generateUniqueId(method, url, params)
|
||
if (this.idMap.has(id)) {
|
||
return false
|
||
}
|
||
this.idMap.set(id, { method, url, params })
|
||
return id
|
||
}
|
||
|
||
/**
|
||
* 根据ID删除map对象中的请求信息
|
||
* @param {string} id - 要删除的唯一ID
|
||
*/
|
||
deleteById(id) {
|
||
this.idMap.delete(id)
|
||
}
|
||
|
||
/**
|
||
* 生成唯一ID的方法
|
||
* @param {string} method - 请求方法
|
||
* @param {string} url - 请求URL
|
||
* @param {object} params - 请求参数
|
||
* @returns {string} - 生成的唯一ID
|
||
*/
|
||
generateUniqueId(method, url, params) {
|
||
const idString = `${method}-${url}-${this.serializeObject(params)}`
|
||
let id = 0;
|
||
for (let i = 0; i < idString.length; i++) {
|
||
id = ((id << 5) - id) + idString.charCodeAt(i)
|
||
id |= 0;
|
||
}
|
||
return id.toString()
|
||
}
|
||
|
||
/**
|
||
* 序列化对象为字符串
|
||
* @param {object} obj - 要序列化的对象
|
||
* @returns {string} - 序列化后的字符串
|
||
*/
|
||
serializeObject(obj) {
|
||
const keys = Object.keys(obj).sort()
|
||
const serializedObj = {}
|
||
for (let key of keys) {
|
||
const value = obj[key]
|
||
if (value !== null && typeof value === 'object') {
|
||
serializedObj[key] = this.serializeObject(value)
|
||
} else {
|
||
serializedObj[key] = value
|
||
}
|
||
}
|
||
return JSON.stringify(serializedObj)
|
||
}
|
||
}
|
||
|
||
export default RequestManager |