基于vue3.0和element-plus的组件库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

135 lines
2.9 KiB

import { get, post, put, delate } from '../http/axios';
import { PageResult } from '../constant';
const pageResult = new PageResult();
export const queryPage = (url, example, noMsg?, noLoading?) => {
return new Promise((resolve, reject) => {
get(url, example, noMsg, noLoading).then(
(rsp: any) => {
if (rsp) {
resolve(rsp);
} else {
resolve(pageResult);
}
},
(err) => {
resolve(pageResult);
}
);
});
};
export const queryList = (url, example?, noMsg?, noLoading?) => {
return new Promise((resolve, reject) => {
get(url, example, noMsg, noLoading).then(
(rsp: any) => {
if (rsp) {
resolve(rsp);
} else {
resolve([]);
}
},
(err) => {
resolve([]);
}
);
});
};
export const getById = (url, id) => {
return new Promise((resolve, reject) => {
get(url + '/' + id).then(
(rsp: any) => {
resolve(rsp || {});
},
(err) => {
resolve({});
}
);
});
};
export const save = (url, role) => {
return new Promise((resolve, reject) => {
post(url, role).then(
(rsp: any) => {
if (rsp) {
resolve(rsp);
} else {
resolve(false);
}
},
(err) => {
resolve(false);
}
);
});
};
export const update = (url, role) => {
return new Promise((resolve, reject) => {
put(url, role).then(
(rsp: any) => {
if (rsp) {
resolve(rsp);
} else {
resolve(false);
}
},
(err) => {
resolve(false);
}
);
});
};
export const deleteById = (url, id) => {
return new Promise((resolve, reject) => {
delate(url, id).then(
(rsp: any) => {
if (rsp) {
resolve(rsp);
} else {
resolve(false);
}
},
(err) => {
resolve(false);
}
);
});
};
export const size = 10000;
export const exportCrv = (url, fileName, head, formatter, param?, content?) => {
if (!content) {
content = [head + '\r\n'];
}
if (!param) {
param = { page: 1, size: size };
}
queryPage(url, param, true).then((rsp: any) => {
if (!rsp || rsp.length == 0) {
write(fileName, content);
return;
}
rsp.data.forEach((net) => {
content.push(formatter(net) + '\r\n');
});
if (rsp.data.length < size) {
write(fileName, content);
} else {
param.page = param.page + 1;
exportCrv(url, fileName, head, formatter, param, content);
}
});
};
const write = (name, content) => {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content.join('')));
element.setAttribute('download', name);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
};