Files
PC-202306242200\Administrator 1c24452b6c first commit
2026-03-28 23:10:55 +08:00

190 lines
4.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import {
proxyObj
} from '@/api/http.ts'
//预览图片
export const toast = (title, icon = 'none') => {
uni.showToast({
title: title,
icon: icon
});
}
//预览图片
export const lookImg = (e) => {
uni.previewImage({
urls: Array.isArray(e) ? e : [e]
});
}
//拨打电话
export const call = (e) => uni.makePhoneCall({
phoneNumber: e
});
// 剪贴板
export const copy = (e) => uni.setClipboardData({
data: e,
success: function() {
console.log('success');
}
});
//获取超链接参数
export const urlQuery = (e) => {
let search = e
search = search.split('?')[1];
const pairs = search ? search.split('&') : [];
const query = {};
for (let i = 0; i < pairs.length; ++i) {
const [key, value] = pairs[i].split('=');
query[key] = query[key] || decodeURIComponent(value);
}
return query
};
export const timeFormat = (time, fmt = 'yyyy-MM-dd hh:mm:ss', targetTimezone = 8) => {
try {
if (!time) {
return '';
}
if (typeof time === 'string' && !isNaN(time)) time = Number(time);
// 其他更多是格式化有如下:
// yyyy-MM-dd hh:mm:ss|yyyy年MM月dd日 hh时MM分等,可自定义组合
let date;
if (typeof time === 'number') {
if (time.toString().length == 10) time *= 1000;
date = new Date(time);
} else {
date = time;
}
const dif = date.getTimezoneOffset();
const timeDif = dif * 60 * 1000 + targetTimezone * 60 * 60 * 1000;
const east8time = date.getTime() + timeDif;
date = new Date(east8time);
let opt = {
'M+': date.getMonth() + 1, //月份
'd+': date.getDate(), //日
'h+': date.getHours(), //小时
'm+': date.getMinutes(), //分
's+': date.getSeconds(), //秒
'q+': Math.floor((date.getMonth() + 3) / 3), //季度
S: date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (let k in opt) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? opt[k] : ('00' + opt[k]).substr(('' + opt[k])
.length));
}
}
return fmt;
} catch (err) {
// 若格式错误,则原值显示
return time;
}
}
export const uploadFiles = (urls) => {
console.log(urls);
return new Promise(async (resolve, reject) => {
uni.uploadFile({
url: `${proxyObj[process.env.NODE_ENV || 'development']}/app-api/infra/file/upload`, // 上传接口地址
filePath: urls, //必须通过 uni.chooseImage、uni.chooseMessageFile 等接口获取临时路径,不可直接使用静态路径
name: 'file', // 文件对应的 key
formData: {},
header: {
"Tenant-id": "134",
},
success: (uploadRes) => {
console.log(uploadRes);
const data = JSON.parse(uploadRes.data);
if (data.code == 0) {
resolve(data.data);
} else {
reject(data.msg);
}
},
fail: (err) => {
reject(err);
}
});
});
}
// export const uploadFiles = (urls) => {
// return new Promise(async (resolve, reject) => {
// let res = await getOssUploadParams()
// const fd = {
// policy: res.policy,
// OSSAccessKeyId: res.accessId,
// success_action_status: 200,
// signature: res.signature,
// key: res.dir + Date.now() + Math.floor(100000 + Math.random() *
// 900000) + '.' +
// urls.substring(urls.lastIndexOf(".") + 1),
// };
// uni.uploadFile({
// url: res.host, // Example, not a real endpoint
// filePath: urls,
// header: {
// "content-type": 'multipart/form-data'
// },
// name: 'file',
// formData: fd,
// success: (_res) => {
// resolve(res.host + '/' + fd.key);
// },
// fail: (err) => {
// console.log(err);
// reject(err);
// }
// });
// console.log();
// });
// }
export function getUrlParam(url, paramName) {
// 正则表达式模式用于匹配URL中的参数部分。正则表达式的含义是匹配不包含 ?、&、= 的字符作为参数名,之后是等号和不包含 & 的字符作为参数值
let pattern = /([^?&=]+)=([^&]+)/g;
let params = {};
// match用于存储正则匹配的结果
let match;
// while 循环和正则表达式 exec 方法来迭代匹配URL中的参数
while ((match = pattern.exec(url)) !== null) {
// 在字符串url中循环匹配pattern并对每个匹配项进行解码操作将解码后的键和值分别存储在key和value变量中
let key = decodeURIComponent(match[1]);
let value = decodeURIComponent(match[2]);
if (params[key]) {
if (Array.isArray(params[key])) {
params[key].push(value);
} else {
params[key] = [params[key], value];
}
} else {
// 参数名在 params 对象中不存在,将该参数名和对应的值添加到 params 对象中
params[key] = value;
}
}
if (!paramName) {
// 没有传入参数名称, 返回含有所有参数的对象params
return params;
} else {
if (params[paramName]) {
return params[paramName];
} else {
return '';
}
}
}