常用工具函数 持续更新

只刷新一次页面

/**
 * @paramstr 刷新一次
 */
export const refreshOnce = (hrefUrl) => {
    
    
  let url = hrefUrl //把当前页面的地址赋给变量 url
  const times = url.split('?') //分切变量 url 分隔符号为 “?”
  if (times[1] != 1) {
    
    
    //如果?后的值不等于1表示没有刷新
    url += '?1' //把变量 url 的值加入 ?1
    self.location.replace(url) //刷新页面
  }
}

页面使用

import {
    
     refreshOnce } from '@/utils'

refreshOnce(location.href)

获取url参数对象

/**
 * @paramstr 获取url参数对象
 */
export const parseQueryString = (url: string) => {
    
    
  // 编写代码实现
  // 1.查找?的下标
  const index = url.indexOf('?')
  // 2.截取?后面的字符串
  const str = url.slice(index + 1)
  // 3.根据&将字符串转成数组
  const arr = str.split('&')

  // 4. 声明对象用来存储信息
  const obj = {
    
    }
  for (let i = 0; i < arr.length; i++) {
    
    
    // arr[0] action=home
    const arr2 = arr[i].split('=')
    // arr2的第一个成员做属性, 第二个成员做值
    obj[arr2[0]] = arr2[1]
  }
  return obj
}

页面使用

import {
    
     parseQueryString } from '@/utils'      

const hrefUrl = window.location.href
const {
    
     mall } = parseQueryString(hrefUrl)
if (mall == 1) {
    
    
// 跳转到另一个项目的使用 开发,测试,正式 
   if (process.env.VITE_USER_NODE_ENV == 'development') {
    
    
     window.location.href = `http://XXX.XXX.XXX.XXX:8081/#/admin/shop?token=${
      
      res.result.token}`
     } else {
    
    
     hrefUrl.indexOf('test') != -1
      ? (window.location.href = `测试前缀/#/admin/shop?token=${
      
      res.result.token}`)
       : (window.location.href = `正式前缀/#/admin/shop?token=${
      
      res.result.token}`)
	 }
    return
}
import {
    
     ElNotification,ElMessageBox } from 'element-plus'
import nprogress from 'nprogress'
// 消息提示
export function toast(message,type = "success",dangerouslyUseHTMLString = true){
    
    
    ElNotification({
    
    
        message,
        type,
        dangerouslyUseHTMLString,
        duration:3000
    })
}

// 显示全屏loading
export function showFullLoading(){
    
    
  nprogress.start()
}

// 隐藏全屏loading
export function hideFullLoading(){
    
    
  nprogress.done()
}

export function showModal(content = "提示内容",type = "warning",title = ""){
    
    
    return ElMessageBox.confirm(
        content,
        title,
        {
    
    
          confirmButtonText: '确认',
          cancelButtonText: '取消',
          type,
        }
      )
}

// 弹出输入框
export function showPrompt(tip,value = ""){
    
    
  return ElMessageBox.prompt(tip, '', {
    
    
    confirmButtonText: '确认',
    cancelButtonText: '取消',
    inputValue:value
  })
}

// 将query对象转成url参数
export function queryParams(query){
    
    
  let q = []
  for (const key in query) {
    
    
      if(query[key]){
    
    
          q.push(`${
      
      key}=${
      
      encodeURIComponent(query[key])}`)
      }
  }
  let r = q.join("&")
  r = r ? ("?"+r) : ""
  return r
}

// 上移
export function useArrayMoveUp(arr,index){
    
    
  swapArray(arr,index,index - 1)
}

// 下移
export function useArrayMoveDown(arr,index){
    
    
  swapArray(arr,index,index + 1)
}

function swapArray(arr,index1,index2){
    
    
  arr[index1] = arr.splice(index2,1,arr[index1])[0]
  return arr
}

// sku排列算法
export function cartesianProductOf() {
    
    
  return Array.prototype.reduce.call(arguments, function (a, b) {
    
    
      var ret = [];
      a.forEach(function (a) {
    
    
          b.forEach(function (b) {
    
    
              ret.push(a.concat([b]));
          });
      });
      return ret;
  }, [
      []
  ]);
}

猜你喜欢

转载自blog.csdn.net/qq_43869822/article/details/126024403