|
|
- function toArray(data) {
- if (!data) return []
- if (data instanceof Array){
- return data
- } else {
- return [data]
- }
- }
-
- function generateUUID() {
- return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
- var r = Math.random() * 16 | 0,
- v = c == 'x' ? r : (r & 0x3 | 0x8);
- return v.toString(16);
- });
- }
-
- function generateRandomColor() {
- const letters = '0123456789ABCDEF';
- let color = '#';
- for (let i = 0; i < 6; i++) {
- color += letters[Math.floor(Math.random() * 16)];
- }
- return color;
- }
-
- function generateLightRandomColor() {
- const min = 150;
- const range = 105;
- const r = Math.floor(Math.random() * range + min);
- const g = Math.floor(Math.random() * range + min);
- const b = Math.floor(Math.random() * range + min);
- const color = 'rgb(' + r + ',' + g + ',' + b + ')';
- return color;
- }
-
- function verificationAll(data, msg){
-
- let Msgs = {
- default : msg || '表单数据未填写'
- }
-
- if(typeof msg == 'object'){
- Msgs = {
- default : '表单数据未填写',
- ...msg,
- }
- }
-
- if (!data){
- uni.showToast({
- title: Msgs.default,
- icon: "none"
- })
- return true
- }
- for (let key in data) {
- if (!data[key] || data[key] === "") {
- uni.showToast({
- title: (Msgs[key] || Msgs.default),
- icon: "none"
- })
- return true
- }
- }
- return false
- }
-
- //验证手机号是否合法
- function verificationPhone(phone){
- if(!/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(phone)){
- return false
- }
- return true
- }
-
- //获取url中参数的方法
- export function getHrefParams(name) {
- var url = window.location.href;
- try {
- var cs = url.split('?')[1]; //获取?之后的参数字符串
- var cs_arr = cs.split('&'); //参数字符串分割为数组
- for (var i = 0; i < cs_arr.length; i++) { //遍历数组,拿到json对象
- if (cs_arr[i].split('=')[0] == name) {
- return cs_arr[i].split('=')[1];
- }
- }
- return "";
- } catch {
- return "";
- }
- }
-
- //其中url是文件的地址
- export function hanldePreview(url) {
- console.log("url--->", url)
- let index = url.lastIndexOf('.');
- let fileType = url.substring(index + 1, url.length);
- let white_filetype = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf']
- let white_image = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'ico', 'wbmp', 'fax', 'net', 'rp', 'jfif', 'jpe',
- 'tiff', 'tif'
- ]
- let white_media = ['mp3', 'wav', 'flac', 'aac', 'mp4', 'avi', 'wmv', 'mov', 'flv']
- uni.downloadFile({
- url: url,
- success: function(res) {
- console.log("res--->", res)
- var filePath = res.tempFilePath;
- if (white_filetype.indexOf(fileType) != -1) {
- uni.openDocument({
- filePath: filePath,
- showMenu: true,
- success: function(res) {
- console.log('打开文档成功');
- },
- fail: function(err) {
- console.log('打开文档失败--->', err);
- uni.showToast({
- title: err.errMsg,
- icon: 'none'
- })
- },
- });
- } else if (white_image.indexOf(fileType) != -1) {
- uni.previewImage({
- urls: [filePath],
- longPressActions: {
- itemList: ['发送给朋友', '保存图片', '收藏'],
- success: function(data) {
-
- },
- fail: function(err) {
- console.log(err.errMsg);
- uni.showToast({
- title: err.errMsg,
- icon: 'none'
- })
- }
- }
- });
- } else if (white_media.indexOf(fileType) != -1) {
- wx.previewMedia({
- sources: [{
- url: filePath, //图片或者视频所在路径
- type: 'video', //图片为image,视频为video
- }],
- success(res) {
- //预览成功
- // uni.showToast({
- // title: "预览成功",
- // icon: "none"
- // })
- },
- fail(err) {
- console.log(err);
- uni.showToast({
- title: err.errMsg,
- icon: 'none'
- })
- //预览失败
- }
- })
- } else {
- uni.showToast({
- title: '不支持打开该类型文件',
- icon: 'none'
- })
- }
-
- },
- fail: function(err) {
- console.log("err--->", err)
- uni.showToast({
- title: err.errMsg,
- icon: 'none'
- })
- }
- });
- }
-
-
- //深度对比合并两个对象,相同属性b会覆盖a
- export function deepMergeObject(a, b){
- let data = JSON.parse(JSON.stringify(a))
- function mergeObject(obj1, obj2){
- for(let key in obj2){
- if(typeof obj1[key] == 'object'){
- obj1[key] = mergeObject(obj1[key], obj2[key])
- }else{
- obj1[key] = obj2[key]
- }
- }
- return obj1
- }
- return mergeObject(data, b)
- }
-
- function params(url){
- if(typeof url == 'object'){
- return url
- }
-
- let data = {
- url
- }
-
- if(!data.url.includes('/pages')){
- data.url = '/pages' + data.url
- }
-
- return data
- }
-
-
- export function navigateTo(...args){
- uni.navigateTo(params(...args))
- }
-
- export function navigateBack(num = -1){
- uni.navigateBack(num)
- }
-
- export function redirectTo(...args){
- uni.redirectTo(params(...args))
- }
-
- export default {
- toArray,
- generateUUID,
- verificationAll,
- generateRandomColor,
- generateLightRandomColor,
- verificationPhone,
- getHrefParams,
- deepMergeObject,
- navigateTo,
- navigateBack,
- redirectTo,
- hanldePreview,
- }
|