feat: 首次提交

This commit is contained in:
peerless_hero
2023-08-17 21:28:49 +08:00
parent 36f80fb971
commit ec1e5e16cd
571 changed files with 95322 additions and 0 deletions

View File

@ -0,0 +1,57 @@
// 本文件由FirstUI授权予新疆天衡创新研究院有限公司手机号1 8 6 14 07 25 49身份证尾号5A07X5专用请尊重知识产权勿私下传播违者追究法律责任。
class RequestTaskStore {
constructor(taskList = []) {
this.taskStore = taskList
}
setRequestTaskStore(taskArr, taskKey) {
taskKey && taskArr.push(taskKey)
this.taskStore = taskArr;
}
removeRequestTask(task) {
if (!task) return;
const taskKey = this.getRequestTask(task)
let taskArr = [...this.taskStore]
const index = taskArr.indexOf(taskKey)
if (~index) {
taskArr.splice(index, 1)
this.setRequestTaskStore(taskArr)
}
}
getRequestTask(task) {
let {
url,
method,
keys,
data
} = task;
keys = keys || []
data = typeof data === 'string' ? JSON.parse(data) : data;
let taskArr = [];
for (let key in data) {
if (data.hasOwnProperty(key) && !~keys.indexOf(key)) {
let value = data[key] === null ? '' : data[key];
taskArr.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
}
}
return url + method + taskArr.join('');
}
requestTaskStore(task) {
let result = false;
if (!task) return result;
const taskKey = this.getRequestTask(task)
let taskArr = [...this.taskStore]
if (taskArr.length > 0) {
if (~taskArr.indexOf(taskKey)) {
result = true;
} else {
this.setRequestTaskStore(taskArr, taskKey)
}
} else {
taskKey && this.setRequestTaskStore(taskArr, taskKey)
}
return result;
}
}
export default function createTaskStore(taskList = []) {
return new RequestTaskStore(taskList)
}