工行这里学车报名流程h5
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

267 lines
5.4 KiB

  1. export function isDef(value) {
  2. return value !== undefined && value !== null && value !== '';
  3. }
  4. export function isUndef(value) {
  5. return value === undefined || value === null || value === '';
  6. }
  7. export function isDate(value) {
  8. return /^\d{4}-\d{2}-\d{2}$/.test(value);
  9. }
  10. export function isTime(value) {
  11. return /^\d{2}:\d{2}:\d{2}$/.test(value);
  12. }
  13. export function isObject(value) {
  14. return value && Object.prototype.toString.call(value) === '[object Object]';
  15. }
  16. export function isDatetime(value) {
  17. return /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(value);
  18. }
  19. export function formatParams(value) {
  20. if (typeof value !== 'object') return;
  21. const options = Object.entries(value).map(([key, value]) => `${key}=${value}`);
  22. return options.join('&');
  23. }
  24. export function formatDatetime(format, time) {
  25. let now = null;
  26. if (!time) {
  27. now = new Date();
  28. } else {
  29. now = new Date(time);
  30. }
  31. const year = now.getFullYear();
  32. const month = now.getMonth() + 1;
  33. const dates = now.getDate();
  34. const hours = now.getHours();
  35. const minute = now.getMinutes();
  36. const second = now.getSeconds();
  37. if (isUndef(format)) return `${year}-${month}-${dates} ${hours}:${minute}:${second}`;
  38. return format.replace(/(yyyy|MM|dd|HH|mm|ss)/gi, val => {
  39. switch (val) {
  40. case 'yyyy':
  41. return year;
  42. case 'MM':
  43. return month < 10 ? `0${month}` : month;
  44. case 'dd':
  45. return dates < 10 ? `0${dates}` : dates;
  46. case 'HH':
  47. return hours < 10 ? `0${hours}` : hours;
  48. case 'mm':
  49. return minute < 10 ? `0${minute}` : minute;
  50. case 'ss':
  51. return second < 10 ? `0${second}` : second;
  52. default:
  53. return;
  54. }
  55. });
  56. }
  57. export function formatHourMinute(value) {
  58. if (isTime(value)) return value.slice(5);
  59. if (isDatetime(value)) return value.slice(11, 16);
  60. return '00:00';
  61. }
  62. // 清楚掉签名的相关缓存
  63. export function clearPDF() {
  64. uni.removeStorageSync('PDF')
  65. uni.removeStorageSync('userImgPath')
  66. uni.removeStorageSync('xunImgPath')
  67. uni.removeStorageSync('projectList')
  68. }
  69. // 本地数据缓存
  70. export const storage = {
  71. /**
  72. * @param {String} key 键值
  73. * @param {Object} data 数据
  74. */
  75. set(key, data) {
  76. try {
  77. uni.setStorageSync(key, data);
  78. } catch (err) {
  79. console.error(err);
  80. }
  81. },
  82. /**
  83. * @param {String} key 键值
  84. */
  85. get(key) {
  86. try {
  87. return uni.getStorageSync(key);
  88. } catch (err) {
  89. console.error(err);
  90. }
  91. },
  92. clear() {
  93. try {
  94. uni.clearStorageSync();
  95. } catch (err) {
  96. console.error(err);
  97. }
  98. },
  99. /**
  100. * @param {String} key 键值
  101. */
  102. remove(key) {
  103. try {
  104. uni.removeStorageSync(key);
  105. } catch (err) {
  106. console.error(err);
  107. }
  108. },
  109. raunchToLogin() {
  110. const Authorization = uni.getStorageSync("Authorization")
  111. // #ifdef APP-PLUS
  112. if (isDef(Authorization)) return plus.navigator.closeSplashscreen();
  113. uni.reLaunch({
  114. url: '/pages/user/login/login',
  115. success: () => setTimeout(() => plus.navigator.closeSplashscreen(), 200),
  116. });
  117. // #endif
  118. if (isDef(Authorization)) return
  119. uni.reLaunch({
  120. url: '/pages/user/login/login',
  121. });
  122. },
  123. };
  124. /**
  125. * 拼接头部
  126. * @param {Object} header 自定义头部
  127. * @param {Number} type 内容类型
  128. */
  129. export function calcHeader(header, type) {
  130. const temp = {};
  131. const ContentType = ['application/json;charset=utf-8', 'application/x-www-form-urlencoded','multipart/form-data'];
  132. temp['Content-Type'] = ContentType[type];
  133. temp['token'] = storage.get('Authorization') || '';
  134. Object.keys(header).map(item => (temp[item] = header[item]));
  135. return {
  136. ...temp
  137. };
  138. }
  139. /**
  140. * @function Toast 吐司
  141. * @param {String} title
  142. * @param {Boolean} mask
  143. * @param {String} icon
  144. * @param {Number} dr
  145. */
  146. export function showToast(title, icon = 'none', mask = false, time = 2000) {
  147. uni.showToast({
  148. title,
  149. mask,
  150. icon,
  151. duration: time,
  152. });
  153. }
  154. export function showModel(content = '这是一个模态弹窗', title = '提示') {
  155. return new Promise((resolve, reject) => {
  156. uni.showModal({
  157. title: title,
  158. content: content,
  159. success: function(res) {
  160. if (res.confirm) {
  161. return resolve('success');
  162. } else {
  163. return reject('取消操作');
  164. }
  165. },
  166. });
  167. });
  168. }
  169. /**
  170. * 返回值固定格式
  171. * @param {*} msg 错误信息
  172. * @param {*} params 请求数据
  173. */
  174. export function formatReturn(msg, data) {
  175. let err = typeof msg === 'string' && msg.length > 0 ? {
  176. data: {},
  177. msg
  178. } : null;
  179. let res = data || null;
  180. return [err, {
  181. ...res
  182. }];
  183. }
  184. export function getOffset() {
  185. let size = {};
  186. try {
  187. const system = uni.getSystemInfoSync();
  188. const windowWidth = system.windowWidth;
  189. const windowHeight = system.windowHeight;
  190. size = {
  191. windowWidth,
  192. windowHeight
  193. };
  194. } catch (err) {
  195. console.log(err);
  196. }
  197. return size;
  198. }
  199. /**
  200. * 获取屏幕尺寸
  201. */
  202. export const obtainSize = {
  203. width() {
  204. let value = 300;
  205. try {
  206. const res = uni.getSystemInfoSync();
  207. value = res.windowWidth;
  208. } catch (err) {
  209. console.log(err);
  210. }
  211. return value;
  212. },
  213. height() {
  214. let value = 300;
  215. try {
  216. const res = uni.getSystemInfoSync();
  217. value = res.windowHeight;
  218. } catch (err) {
  219. console.log(err);
  220. }
  221. return value;
  222. },
  223. };
  224. export function loadScript(file) {
  225. return new Promise((resolve, reject) => {
  226. const script = document.createElement('script');
  227. script.src = file;
  228. script.onload = () => resolve(1);
  229. document.head.appendChild(script);
  230. });
  231. }
  232. export async function loadScriptList(files) {
  233. if (Array.isArray(files)) {
  234. for (let file of files) {
  235. await loadScript(file);
  236. }
  237. }
  238. }
  239. export function goPage(url) {
  240. uni.navigateTo({
  241. url
  242. })
  243. }