Commit c91b002e authored by leon's avatar leon

feat: add dynamic params

parent cd51368d
...@@ -30,6 +30,7 @@ export default { ...@@ -30,6 +30,7 @@ export default {
const that = this const that = this
let { dataUrl, dataMethod, dataFormatter, dataProcessing } = { ...value } let { dataUrl, dataMethod, dataFormatter, dataProcessing } = { ...value }
dataUrl = dataUrl.replace(/^(\/(dashboardCharts|dashboardAPI))?/, '') dataUrl = dataUrl.replace(/^(\/(dashboardCharts|dashboardAPI))?/, '')
dataFormatter = that.$u.common.filterRequestParams({...dataFormatter})
let res = await that.$u.api[`${dataMethod.toLowerCase()}Http`](dataUrl, dataFormatter, { let res = await that.$u.api[`${dataMethod.toLowerCase()}Http`](dataUrl, dataFormatter, {
custom: { loading: false } custom: { loading: false }
}) })
......
...@@ -236,7 +236,8 @@ ...@@ -236,7 +236,8 @@
async getGlobalData(info) { async getGlobalData(info) {
const that = this const that = this
const dataUrl = info.dataUrl.replace(/^(\/(dashboardCharts|dashboardAPI))?/, '') const dataUrl = info.dataUrl.replace(/^(\/(dashboardCharts|dashboardAPI))?/, '')
let res = await that.$u.api[`${info.dataMethod.toLowerCase()}Http`](dataUrl, info.dataFormatter, { const dataFormatter = this.$u.common.filterRequestParams({...info.dataFormatter})
let res = await that.$u.api[`${info.dataMethod.toLowerCase()}Http`](dataUrl, dataFormatter, {
custom: { loading: false } custom: { loading: false }
}) })
that.$u.vuex('vuex_globalData', res.data) that.$u.vuex('vuex_globalData', res.data)
......
...@@ -274,7 +274,8 @@ ...@@ -274,7 +274,8 @@
async getGlobalData(info) { async getGlobalData(info) {
const that = this const that = this
const dataUrl = info.dataUrl.replace(/^(\/(dashboardCharts|dashboardAPI))?/, '') const dataUrl = info.dataUrl.replace(/^(\/(dashboardCharts|dashboardAPI))?/, '')
let res = await that.$u.api[`${info.dataMethod.toLowerCase()}Http`](dataUrl, info.dataFormatter, { const dataFormatter = this.$u.common.filterRequestParams({...info.dataFormatter})
let res = await that.$u.api[`${info.dataMethod.toLowerCase()}Http`](dataUrl, dataFormatter, {
custom: { loading: false } custom: { loading: false }
}) })
that.$u.vuex('vuex_globalData', res.data) that.$u.vuex('vuex_globalData', res.data)
......
import { Function } from '../static/plugin/parse/parse.js' import {
Function
const install = (Vue, vm) => { } from '../static/plugin/common/index.js'
/**
* 数据转换 const install = (Vue, vm) => {
*/ /**
const converFunction = (func, data) => { * 数据转换
if(!func) return */
return new Function('"use strict";return (' + func + ')')()(data); const converFunction = (func, data) => {
} if (!func) return
return new Function('"use strict";return (' + func + ')')()(data);
/** }
* 补足数字位数
* @param digit 数字 /**
* @param len 位数 * 补足数字位数
*/ * @param digit 数字
const fillDigit = (digit, len) => { * @param len 位数
return padStart('' + digit, len, '0') */
} const fillDigit = (digit, len) => {
return padStart('' + digit, len, '0')
const toThousands = (value) => { }
let result = ''
let num = (parseInt(value) || 0).toString() const toThousands = (value) => {
while (num.length > 3) { let result = ''
result = ',' + num.slice(-3) + result let num = (parseInt(value) || 0).toString()
num = num.slice(0, num.length - 3) while (num.length > 3) {
} result = ',' + num.slice(-3) + result
if (num) { num = num.slice(0, num.length - 3)
result = num + result }
} if (num) {
return result result = num + result
} }
return result
const dateFormat = () => { }
let date = new Date();
let year = date.getFullYear(); const dateFormat = () => {
// 在日期格式中,月份是从0开始的,因此要加0,使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05 let date = new Date();
let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; let year = date.getFullYear();
let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); // 在日期格式中,月份是从0开始的,因此要加0,使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
// 拼接 let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds; let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
} // 拼接
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
// px转换为rpx }
const pxToRpx = (value) => {
return value / uni.getSystemInfoSync().windowWidth * 750 // px转换为rpx
} const pxToRpx = (value) => {
return value / uni.getSystemInfoSync().windowWidth * 750
// rpx转换为px }
const rpxToPx = (value) => {
return value / 750 * uni.getSystemInfoSync().windowWidth // rpx转换为px
} const rpxToPx = (value) => {
return value / 750 * uni.getSystemInfoSync().windowWidth
const slice = (array, start, end) => { }
let length = array == null ? 0 : array.length
if (!length) { const slice = (array, start, end) => {
return [] let length = array == null ? 0 : array.length
} if (!length) {
start = start == null ? 0 : start return []
end = end === undefined ? length : end }
start = start == null ? 0 : start
if (start < 0) { end = end === undefined ? length : end
start = -start > length ? 0 : (length + start)
} if (start < 0) {
end = end > length ? length : end start = -start > length ? 0 : (length + start)
if (end < 0) { }
end += length end = end > length ? length : end
} if (end < 0) {
length = start > end ? 0 : ((end - start) >>> 0) end += length
start >>>= 0 }
length = start > end ? 0 : ((end - start) >>> 0)
let index = -1 start >>>= 0
const result = new Array(length)
while (++index < length) { let index = -1
result[index] = array[index + start] const result = new Array(length)
} while (++index < length) {
return result result[index] = array[index + start]
} }
return result
/** }
* 将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。
* 如果array无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。 /**
*/ * 将数组(array)拆分成多个 size 长度的区块,并将这些区块组成一个新数组。
const chunk = (array, size = 1) => { * 如果array无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
const length = array == null ? 0 : array.length */
if (!length || size < 1) { const chunk = (array, size = 1) => {
return [] const length = array == null ? 0 : array.length
} if (!length || size < 1) {
let index = 0 return []
let resIndex = 0 }
const result = new Array(Math.ceil(length / size)) let index = 0
let resIndex = 0
while (index < length) { const result = new Array(Math.ceil(length / size))
result[resIndex++] = slice(array, index, (index += size))
} while (index < length) {
return result result[resIndex++] = slice(array, index, (index += size))
} }
/** return result
* 从string中提取参数 }
*/ /**
const getQueryFromString = (string) => { * 从string中提取参数
const num = string.indexOf("?") */
const qs = string.substr(num+1) // 获取url中"?"符后的字串 const getQueryFromString = (string) => {
let args = {} // 保存参数数据的对象 const num = string.indexOf("?")
const items = qs.length ? qs.split("&") : [] // 取得每一个参数项, const qs = string.substr(num + 1) // 获取url中"?"符后的字串
let item = null let args = {} // 保存参数数据的对象
const len = items.length; const items = qs.length ? qs.split("&") : [] // 取得每一个参数项,
let item = null
for(var i = 0; i < len; i++) { const len = items.length;
item = items[i].split("=");
var name = decodeURIComponent(item[0]), for (var i = 0; i < len; i++) {
value = decodeURIComponent(item[1]); item = items[i].split("=");
if(name) { var name = decodeURIComponent(item[0]),
args[name] = value; value = decodeURIComponent(item[1]);
} if (name) {
} args[name] = value;
return args; }
} }
return args;
vm.$u.common = { }
converFunction,
fillDigit, const filterRequestParams = (params) => {
toThousands, let paramStr = JSON.stringify(params)
dateFormat, if (paramStr.includes('@year')) {
pxToRpx, paramStr = paramStr.replace(/@year/g, yearly())
rpxToPx, }
chunk, if (paramStr.includes('@month')) {
getQueryFromString paramStr = paramStr.replace(/@month/g, monthly())
} }
if (paramStr.includes('@day')) {
paramStr = paramStr.replace(/@day/g, day())
}
if (paramStr.includes('@daily')) {
const d = daily()
paramStr = paramStr.replace(/@daily/g, daily())
}
if (paramStr.includes('@yesterday')) {
paramStr = paramStr.replace(/@yesterday/g, yesterday())
}
return JSON.parse(paramStr)
}
const yearly = () => {
const date = new Date();
const year = date.getFullYear();
return year
}
const monthly = () => {
const date = new Date();
const month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
return month
}
const day = () => {
const date = new Date();
const day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
return day
}
const daily = () => {
const date = new Date();
const year = date.getFullYear();
// 在日期格式中,月份是从0开始的,因此要加0,使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
const month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
const day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
// 拼接
return year + "-" + month + "-" + day;
}
const yesterday = () => {
const date = new Date()
const timestamp = date.getTime() - 1000 * 24 * 60 * 60
date.setTime(timestamp)
console.log(date)
const year = date.getFullYear();
// 在日期格式中,月份是从0开始的,因此要加0,使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05
const month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
const day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
// 拼接
return year + "-" + month + "-" + day;
}
vm.$u.common = {
converFunction,
fillDigit,
toThousands,
dateFormat,
pxToRpx,
rpxToPx,
chunk,
getQueryFromString,
filterRequestParams
}
}
export default {
install
} }
export default {
install
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment