123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- import axios from 'axios'
- import { getToken } from '@/utils/auth'
- /**
- * 删除对象中的空值
- * @param {object} obj
- * @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]
- }
- }
- return newObj;
- }
- /**
- *
- * @param {*} array 要查询的数组
- * @param {*} attr 要查询的字段
- * @param {*} val 要查询的字段值
- * @returns
- */
- export function findElem(array, attr, val) {
- for (var i = 0; i < array.length; i++) {
- if (array[i][attr] == val) {
- return i; //返回当前索引值
- }
- }
- return -1;
- }
- /**
- * 生成带参数的链接
- * @param {String} url
- * @param {Object} params
- * @returns
- */
- export function createParamsUrl(url, params) {
- if(typeof(url) == 'undefined' || url == null || url == '') {
- 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]);
- }
- return url;
- }
- /**
- * 导出功能
- * @param {*} obj
- * @returns
- */
- export function downloadFiles(url, params={}) {
- params.token = getToken();
- let newParams = deleteEmptyObj(params);
- let newUrl = createParamsUrl(url, newParams);
- window.open(process.env.VUE_APP_BASE_API + newUrl);
- }
- /**
- * 导入功能
- * @param {*} url
- * @param {*} formData
- */
- 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)
- })
- });
- return Result;
- }
- /**
- * 重置时间格式
- * @param {*} date
- * @param {*} type
- */
- export function resetDateFormat(date, type) {
- 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';
- }
- }
- /**
- * 若文档中已有命名dateFormat,可用dFormat()调用
- * 年(Y) 可用1-4个占位符
- * 月(m)、日(d)、小时(H)、分(M)、秒(S) 可用1-2个占位符
- * 星期(W) 可用1-3个占位符
- * 季度(q为阿拉伯数字,Q为中文数字)可用1或4个占位符
- *
- * let date = new Date()
- * dateFormat("YYYY-mm-dd HH:MM:SS", date) 2020-02-09 14:04:23
- * dateFormat("YYYY-mm-dd HH:MM:SS Q", date) 2020-02-09 14:09:03 一
- * 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(); // 季度
- 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":"六"
- };
- 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]));
- }
- for(let k in opt){
- let 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')))
- }
- }
- return format
- }
|