123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- import { MessageBox, Message, Notification } from '@zjlib/element-ui2'
- export function addHours(str) {
- // 获取当前时间
- var currentDate = new Date(str)
- // 增加一小时
- currentDate.setHours(currentDate.getHours() + 1)
- // 转换 "YYYY-MM-DD HH:mm:ss" 格式
- var formattedDate =
- currentDate.getFullYear() +
- '-' +
- ('0' + (currentDate.getMonth() + 1)).slice(-2) +
- '-' +
- ('0' + currentDate.getDate()).slice(-2) +
- ' ' +
- ('0' + currentDate.getHours()).slice(-2) +
- ':' +
- ('0' + currentDate.getMinutes()).slice(-2) +
- ':' +
- ('0' + currentDate.getSeconds()).slice(-2)
- return formattedDate
- }
- export function tableDataParsing(fieldBeans) {
- return fieldBeans
- .filter(item => !item.hide)
- .map((item, index) => {
- var tiling = item.tiling || item.tiling === null || item.tiling === undefined ? true : false
- return {
- tiling,
- exportField: item,
- hidden: item.isShow === null ? false : !item.isShow,
- isCopy: item.isCopy || false,
- isTotal: item.isTotal || false,
- sortNum: item.sortNum || 0,
- recordType: item.type,
- columnAttributes: {
- fixed: item.fixed ? item.fixed : false,
- label: item.label || '',
- prop: item.jname,
- width: item.width || 'auto',
- 'min-width': (label => label.length * 16 + 64)(item.label || ''),
- align: ~['number', 'amount'].indexOf(item.type) ? 'right' : 'left'
- }
- }
- })
- }
- export const successMsg = msg => {
- Message({
- showClose: true,
- message: msg || '操作成功',
- type: 'success'
- })
- }
- export const errorMsg = msg => {
- Message({
- showClose: true,
- message: msg || '操作成功',
- type: 'error'
- })
- }
- export const warningNotify = msg => {
- Notification({
- title: '提示',
- message: msg,
- type: 'warning',
- duration: 2000
- })
- }
- /**
- * 查询按钮权限
- * @param {*} value 当前按钮对应code
- * @param {*} btnRole 当前路由所有按钮权限
- * @returns
- */
- export const checkBtnRole = (value, btnRole) => {
- if (!btnRole) {
- return true
- }
- let index = btnRole.indexOf(value)
- return index >= 0
- }
- /**
- * table合计方法
- * 注意:sums1,sums2: 需要在获取列表数据时遍历传入需要合计的字段名
- * 其中:sums1: 数量,不需要toFixed
- * sums2: 金额,需要toFixed
- * 例如:res.data.items.forEach(item => {
- item.sums1 = ['number'];
- item.sums2 = ['totalAmount', 'payAmount'];
- })
- * @param {*} param
- * @returns
- */
- export const getSummaries = param => {
- const { columns, data } = param
- const sums = []
- columns.forEach((column, index) => {
- if (index === 0) {
- sums[index] = '合计'
- return
- }
- // console.log(columns);
- try {
- const values = data.map(item => Number(item[column.property]))
- if (data[0] && data[0].sums1.includes(column.property)) {
- sums[index] = values.reduce((prev, curr) => {
- const value = Number(curr)
- if (!isNaN(value)) {
- return prev + curr
- } else {
- return prev
- }
- }, 0)
- sums[index]
- }
- if (data[0] && data[0].sums2.includes(column.property)) {
- sums[index] = values.reduce((prev, curr) => {
- const value = Number(curr)
- if (!isNaN(value)) {
- return prev + curr
- } else {
- return prev
- }
- }, 0)
- sums[index] = numToFixed(sums[index])
- sums[index]
- }
- } catch {
- console.log('error')
- }
- })
- return sums
- }
- /**
- * 保留2位小数点
- * @param {number} num
- * @returns
- */
- export const numToFixed = num => {
- if (!num) return '0.00'
- if (isNaN(Number(num))) return num
- num = num.toFixed(2)
- if (num.includes('.')) {
- return num.slice(0, -3).replace(/(\d)(?=(\d{3})+$)/g, '$1,') + num.slice(-3)
- }
- return num.replace(/(\d)(?=(\d{3})+$)/g, '$1,')
- }
- /**
- * 深拷贝
- * @param
- * @returns
- */
- export const deepClone = obj => {
- //判断拷贝的要进行深拷贝的是数组还是对象,是数组的话进行数组拷贝,对象的话进行对象拷贝
- var objClone = Array.isArray(obj) ? [] : {}
- //进行深拷贝的不能为空,并且是对象或者是
- if (obj && typeof obj === 'object') {
- for (let key in obj) {
- if (obj.hasOwnProperty(key)) {
- if (obj[key] && typeof obj[key] === 'object') {
- objClone[key] = deepClone(obj[key])
- } else {
- objClone[key] = obj[key]
- }
- }
- }
- }
- return objClone
- }
- /**
- *
- * @param {*} fn 是我们需要包装的事件回调
- * @param {*} delay 是每次推迟执行的等待时间
- */
- export const debounce = (fn, delay = 1000) => {
- // 定时器
- let timer = null
- // 将debounce处理结果当作函数返回
- return function () {
- // 保留调用时的this上下文
- let context = this
- // 保留调用时传入的参数
- let args = arguments
- // 每次事件被触发时,都去清除之前的旧定时器
- // console.log(timer)
- if (timer) {
- clearTimeout(timer)
- }
- // 设立新定时器
- timer = setTimeout(function () {
- fn.apply(context, args)
- }, delay)
- }
- }
- export function thousands(num) {
- if (num === null) {
- return ''
- }
- var n = Number(num).toFixed(2)
- if (isNaN(n)) {
- return n
- }
- n = n + ''
- var [a, b] = n.split('.')
- var aq = Number(a).toLocaleString()
- return `${aq}.${b}`
- }
- export default {
- successMsg,
- errorMsg,
- warningNotify,
- checkBtnRole,
- getSummaries,
- numToFixed,
- deepClone
- }
|