feat: 首次提交
This commit is contained in:
57
components/firstui/fui-request/fui-taskStore.js
Normal file
57
components/firstui/fui-request/fui-taskStore.js
Normal 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)
|
||||
}
|
Reference in New Issue
Block a user