只刷新一次页面
/**
* @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;
}, [
[]
]);
}