quanyawei
2024-07-04 1e71dd86f6d0c4fc7e5143600d4bc4b50992a2a7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
import dayjs from "dayjs";
export function msg(content, time = 3000) {
  uni.showToast({
    icon: "none",
    title: content,
    duration: time,
  });
}
 
export function showLoading(content = "加载数据中...", mask = true) {
  uni.showLoading({
    title: content,
    mask: mask,
  });
}
 
export function hideLoading(timer = 0) {
  if (timer > 0) {
    var t = setTimeout(function () {
      uni.hideLoading();
      clearTimeout(t);
    }, timer);
  } else {
    uni.hideLoading();
  }
}
 
export function in_array(search, array) {
  let flag = false;
  for (let i in array) {
    if (array[i] == search) {
      flag = true;
      break;
    }
  }
 
  return flag;
}
 
export function isDataType(data, type) {
  return Object.prototype.toString.call(data) === "[object " + type + "]";
}
// 时间格式化
export function dateFormatter(dateObj) {
  return dateObj ? dayjs(dateObj).format("YYYY-MM-DD") : "";
}
 
export function ltrim(str, char) {
  let pos = str.indexOf(char);
  let sonstr = str.substr(pos + 1);
  return sonstr;
}
 
export function rtrim(str, char) {
  let pos = str.lastIndexOf(char);
  let sonstr = str.substr(0, pos);
  return sonstr;
}
 
/**
 * 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。
 */
export function navigateTo(url, params) {
  uni.navigateTo({
    url: parseUrl(url, params),
  });
}
 
/**
 * 关闭当前页面,跳转到应用内的某个页面。
 */
export function redirectTo(url, params) {
  uni.redirectTo({
    url: parseUrl(url, params),
  });
}
 
/**
 * 关闭所有页面,打开到应用内的某个页面。
 */
export function reLaunch(url, params) {
  uni.reLaunch({
    url: parseUrl(url, params),
  });
}
 
/**
 * 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
 */
export function switchTab(url, params) {
  uni.switchTab({
    url: parseUrl(url, params),
  });
}
 
/**
 * 关闭当前页面,返回上一页面或多级页面
 */
export function navigateBack(delta) {
  uni.navigateBack({
    delta: delta,
  });
}
 
/**
 * 预加载页面,是一种性能优化技术。被预载的页面,在打开时速度更快。
 */
export function preloadPage(url, params) {
  uni.preloadPage({
    url: parseUrl(url, params),
  });
}
 
export function prePage() {
  let pages = getCurrentPages();
  let prePage = pages[pages.length - 2];
  // #ifdef H5
  return prePage;
  // #endif
  return prePage.$vm;
}
 
/**
 * rpx转px
 * @param int|float num
 */
export function rpx2px(num) {
  // const info = uni.getSystemInfoSync()
  // let scale = 750 / info.windowWidth;
  // return (Number.isNaN(parseFloat(num)) ? 0 : parseFloat(num)) / scale;
  return uni.upx2px(num);
}
 
/**
 * @param int|float num
 */
export function px2rpx(num) {
  return num / (uni.upx2px(num) / num);
}
 
/**
 * 获取窗口的宽高
 */
export function getSystemInfo() {
  const info = uni.getSystemInfoSync();
  return {
    w: info.windowWidth,
    h: info.windowHeight,
  };
}
 
function parseUrl(url, params) {
  let arr = [];
  let string = "";
  for (let i in params) {
    arr.push(i + "=" + params[i]);
  }
 
  string = "/pages/" + url;
  if (arr.length > 0) {
    string += "?" + arr.join("&");
  }
 
  return string;
}
export function arrToObj(arr) {
  return arr.reduce((obj, item) => {
    obj[item.value] = item.name;
    return obj;
  }, {});
}
export function objToArr(obj) {
  const objde = {};
 
  for (const key in obj) {
    objde[key] = arrToObj(obj[key]);
  }
  return objde;
}