|
@@ -1,6 +1,6 @@
|
|
|
-
|
|
|
-import axios from 'axios'
|
|
|
-import { getToken } from '@/utils/auth'
|
|
|
+import axios from "axios";
|
|
|
+import FileSaver from "file-saver";
|
|
|
+import { getToken } from "@/utils/auth";
|
|
|
|
|
|
/**
|
|
|
* 删除对象中的空值
|
|
@@ -8,10 +8,14 @@ import { getToken } from '@/utils/auth'
|
|
|
* @returns {Object}
|
|
|
*/
|
|
|
export function deleteEmptyObj(obj) {
|
|
|
- let newObj = obj;
|
|
|
- for(var key in newObj) {
|
|
|
- if(newObj[key] === '' || newObj[key] === null || newObj[key] === undefined) {
|
|
|
- delete newObj[key]
|
|
|
+ const newObj = obj;
|
|
|
+ for (var key in newObj) {
|
|
|
+ if (
|
|
|
+ newObj[key] === "" ||
|
|
|
+ newObj[key] === null ||
|
|
|
+ newObj[key] === undefined
|
|
|
+ ) {
|
|
|
+ delete newObj[key];
|
|
|
}
|
|
|
}
|
|
|
return newObj;
|
|
@@ -27,7 +31,7 @@ export function deleteEmptyObj(obj) {
|
|
|
export function findElem(array, attr, val) {
|
|
|
for (var i = 0; i < array.length; i++) {
|
|
|
if (array[i][attr] == val) {
|
|
|
- return i; //返回当前索引值
|
|
|
+ return i; // 返回当前索引值
|
|
|
}
|
|
|
}
|
|
|
return -1;
|
|
@@ -40,15 +44,19 @@ export function findElem(array, attr, val) {
|
|
|
* @returns
|
|
|
*/
|
|
|
export function createParamsUrl(url, params) {
|
|
|
- if(typeof(url) == 'undefined' || url == null || url == '') {
|
|
|
- return '';
|
|
|
+ if (typeof url === "undefined" || url == null || url == "") {
|
|
|
+ return "";
|
|
|
}
|
|
|
- if(typeof(params) == 'undefined' || params == null || typeof(params) != 'object') {
|
|
|
- return '';
|
|
|
+ if (
|
|
|
+ typeof params === "undefined" ||
|
|
|
+ params == null ||
|
|
|
+ typeof params !== "object"
|
|
|
+ ) {
|
|
|
+ return "";
|
|
|
}
|
|
|
- url += (url.indexOf("?") != -1) ? "" : "?";
|
|
|
- for(var k in params) {
|
|
|
- url += ((url.indexOf("=") != -1) ? "&" : "") + k + "=" + encodeURI(params[k]);
|
|
|
+ url += url.indexOf("?") != -1 ? "" : "?";
|
|
|
+ for (var k in params) {
|
|
|
+ url += (url.indexOf("=") != -1 ? "&" : "") + k + "=" + encodeURI(params[k]);
|
|
|
}
|
|
|
return url;
|
|
|
}
|
|
@@ -58,10 +66,10 @@ export function createParamsUrl(url, params) {
|
|
|
* @param {*} obj
|
|
|
* @returns
|
|
|
*/
|
|
|
-export function downloadFiles(url, params={}) {
|
|
|
+export function downloadFiles(url, params = {}) {
|
|
|
params.token = getToken();
|
|
|
- let newParams = deleteEmptyObj(params);
|
|
|
- let newUrl = createParamsUrl(url, newParams);
|
|
|
+ const newParams = deleteEmptyObj(params);
|
|
|
+ const newUrl = createParamsUrl(url, newParams);
|
|
|
window.open(process.env.VUE_APP_BASE_API + newUrl);
|
|
|
}
|
|
|
|
|
@@ -72,16 +80,24 @@ export function downloadFiles(url, params={}) {
|
|
|
*/
|
|
|
export async function handleImport(url, formData) {
|
|
|
const Result = await new Promise((resolve, reject) => {
|
|
|
- axios.post(
|
|
|
- process.env.VUE_APP_BASE_API + url,
|
|
|
- formData,
|
|
|
-
|
|
|
- {headers: { 'Content-Type': 'multipart/form-data', 'x-token': getToken() } })
|
|
|
- .then(res => {
|
|
|
- resolve(res.data)
|
|
|
- }).catch(err => {
|
|
|
- reject(err)
|
|
|
- })
|
|
|
+ axios
|
|
|
+ .post(
|
|
|
+ process.env.VUE_APP_BASE_API + url,
|
|
|
+ formData,
|
|
|
+
|
|
|
+ {
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "multipart/form-data",
|
|
|
+ "x-token": getToken(),
|
|
|
+ },
|
|
|
+ }
|
|
|
+ )
|
|
|
+ .then((res) => {
|
|
|
+ resolve(res.data);
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ reject(err);
|
|
|
+ });
|
|
|
});
|
|
|
return Result;
|
|
|
}
|
|
@@ -92,16 +108,25 @@ export async function handleImport(url, formData) {
|
|
|
*/
|
|
|
export async function handleImportTwo(url, formData) {
|
|
|
const Result = await new Promise((resolve, reject) => {
|
|
|
- axios.post(
|
|
|
- process.env.VUE_APP_BASE_API + url,
|
|
|
- formData,
|
|
|
-
|
|
|
- { responseType: 'arraybuffer',headers: { 'Content-Type': 'multipart/form-data', 'x-token': getToken() } })
|
|
|
- .then(res => {
|
|
|
- resolve(res.data)
|
|
|
- }).catch(err => {
|
|
|
- reject(err)
|
|
|
- })
|
|
|
+ axios
|
|
|
+ .post(
|
|
|
+ process.env.VUE_APP_BASE_API + url,
|
|
|
+ formData,
|
|
|
+
|
|
|
+ {
|
|
|
+ responseType: "arraybuffer",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "multipart/form-data",
|
|
|
+ "x-token": getToken(),
|
|
|
+ },
|
|
|
+ }
|
|
|
+ )
|
|
|
+ .then((res) => {
|
|
|
+ resolve(res.data);
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ reject(err);
|
|
|
+ });
|
|
|
});
|
|
|
return Result;
|
|
|
}
|
|
@@ -112,11 +137,13 @@ export async function handleImportTwo(url, formData) {
|
|
|
* @param {*} type
|
|
|
*/
|
|
|
export function resetDateFormat(date, type) {
|
|
|
- let newDate = '';
|
|
|
- if (!date) {return ''}
|
|
|
+ let newDate = "";
|
|
|
+ if (!date) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
// type=1: yyyy-MM-dd 转 yyyy-MM-dd HH:mm:ss
|
|
|
- if(type == 1 || !type) {
|
|
|
- newDate = date + ' 00:00:00';
|
|
|
+ if (type == 1 || !type) {
|
|
|
+ newDate = date + " 00:00:00";
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -133,48 +160,79 @@ export function resetDateFormat(date, type) {
|
|
|
* dateFormat("YYYY-mm-dd HH:MM:SS WWW", date) 2020-02-09 14:45:12 星期日
|
|
|
* dateFormat("YYYY-mm-dd HH:MM:SS QQQQ", date) 2020-02-09 14:09:36 第一季度
|
|
|
* dateFormat("YYYY-mm-dd HH:MM:SS WWW QQQQ", date) 2020-02-09 14:46:12 星期日 第一季度
|
|
|
- */
|
|
|
-export function dateFormat(format,date){
|
|
|
- let we = date.getDay(); // 星期
|
|
|
- let qut = Math.floor((date.getMonth()+3)/3).toString(); // 季度
|
|
|
+ */
|
|
|
+export function dateFormat(format, date) {
|
|
|
+ const we = date.getDay(); // 星期
|
|
|
+ const qut = Math.floor((date.getMonth() + 3) / 3).toString(); // 季度
|
|
|
const opt = {
|
|
|
- "Y+":date.getFullYear().toString(), // 年
|
|
|
- "m+":(date.getMonth()+1).toString(), // 月(月份从0开始,要+1)
|
|
|
- "d+":date.getDate().toString(), // 日
|
|
|
- "H+":date.getHours().toString(), // 时
|
|
|
- "M+":date.getMinutes().toString(), // 分
|
|
|
- "S+":date.getSeconds().toString(), // 秒
|
|
|
- "q+":qut, // 季度
|
|
|
- }
|
|
|
- const week = { // 中文数字 (星期)
|
|
|
- "0":"日",
|
|
|
- "1":"一",
|
|
|
- "2":"二",
|
|
|
- "3":"三",
|
|
|
- "4":"四",
|
|
|
- "5":"五",
|
|
|
- "6":"六"
|
|
|
+ "Y+": date.getFullYear().toString(), // 年
|
|
|
+ "m+": (date.getMonth() + 1).toString(), // 月(月份从0开始,要+1)
|
|
|
+ "d+": date.getDate().toString(), // 日
|
|
|
+ "H+": date.getHours().toString(), // 时
|
|
|
+ "M+": date.getMinutes().toString(), // 分
|
|
|
+ "S+": date.getSeconds().toString(), // 秒
|
|
|
+ "q+": qut, // 季度
|
|
|
};
|
|
|
- const quarter = { // 中文数字(季度)
|
|
|
- "1" : "一",
|
|
|
- "2" : "二",
|
|
|
- "3" : "三",
|
|
|
- "4" : "四",
|
|
|
+ const week = {
|
|
|
+ // 中文数字 (星期)
|
|
|
+ 0: "日",
|
|
|
+ 1: "一",
|
|
|
+ 2: "二",
|
|
|
+ 3: "三",
|
|
|
+ 4: "四",
|
|
|
+ 5: "五",
|
|
|
+ 6: "六",
|
|
|
};
|
|
|
- if(/(W+)/.test(format)){
|
|
|
- format = format.replace(RegExp.$1,(RegExp.$1.length >1 ? (RegExp.$1.length >2 ? '星期'+week[we] : '周'+week[we]) : week[we]))
|
|
|
+ const quarter = {
|
|
|
+ // 中文数字(季度)
|
|
|
+ 1: "一",
|
|
|
+ 2: "二",
|
|
|
+ 3: "三",
|
|
|
+ 4: "四",
|
|
|
+ };
|
|
|
+ if (/(W+)/.test(format)) {
|
|
|
+ format = format.replace(
|
|
|
+ RegExp.$1,
|
|
|
+ RegExp.$1.length > 1
|
|
|
+ ? RegExp.$1.length > 2
|
|
|
+ ? "星期" + week[we]
|
|
|
+ : "周" + week[we]
|
|
|
+ : week[we]
|
|
|
+ );
|
|
|
}
|
|
|
if (/(Q+)/.test(format)) {
|
|
|
// 输入一个Q,只输出一个中文数字,输入4个Q,则拼接上字符串
|
|
|
- format = format.replace(RegExp.$1,(RegExp.$1.length == 4 ? '第'+quarter[qut]+'季度' : quarter[qut]));
|
|
|
+ format = format.replace(
|
|
|
+ RegExp.$1,
|
|
|
+ RegExp.$1.length == 4 ? "第" + quarter[qut] + "季度" : quarter[qut]
|
|
|
+ );
|
|
|
}
|
|
|
- for(let k in opt){
|
|
|
- let r = new RegExp("("+k+")").exec(format);
|
|
|
- if(r){
|
|
|
+ for (const k in opt) {
|
|
|
+ const r = new RegExp("(" + k + ")").exec(format);
|
|
|
+ if (r) {
|
|
|
// 若输入的长度不为1,则前面补零
|
|
|
- format = format.replace(r[1],(RegExp.$1.length == 1 ? opt[k] : opt[k].padStart(RegExp.$1.length,'0')))
|
|
|
+ format = format.replace(
|
|
|
+ r[1],
|
|
|
+ RegExp.$1.length == 1 ? opt[k] : opt[k].padStart(RegExp.$1.length, "0")
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
- return format
|
|
|
+ return format;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * @param url {string} pdf地址
|
|
|
+ * @param fileName {string} pdf名称
|
|
|
+ */
|
|
|
+export function downloadPdf(url, fileName) {
|
|
|
+ axios({
|
|
|
+ method: "get",
|
|
|
+ url,
|
|
|
+ responseType: "blob",
|
|
|
+ }).then((res) => {
|
|
|
+ const file = new Blob([res.data], {
|
|
|
+ type: "application/pdf",
|
|
|
+ });
|
|
|
+ FileSaver(file, fileName);
|
|
|
+ });
|
|
|
+}
|