| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274 |
- import Config from './config.js'
- import Store from '@/store/index.js'
- export default {
- /**
- * 页面跳转
- * @param {string} to 跳转链接 /pages/idnex/index
- * @param {Object} param 参数 {key : value, ...}
- * @param {string} mode 模式
- */
- redirectTo(to, param, mode) {
- let tabbar = [
- "/pages/billing/index", // 开单
- "/pages/reserve/index", // 预约
- "/pages/buycard/index", // 售卡
- "/pages/recharge/index", // 充值
- "/pages/verify/index" // 核销
- ];
- if (tabbar.indexOf(to) != -1) mode = 'tabbar';
- Store.commit('setCurrRoute', to);
- let url = to;
- if (param != undefined) {
- Object.keys(param).forEach(function(key) {
- if (url.indexOf('?') != -1) {
- url += "&" + key + "=" + param[key];
- } else {
- url += "?" + key + "=" + param[key];
- }
- });
- }
- switch (mode) {
- case 'tabbar':
- // 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
- uni.switchTab({
- url
- })
- break;
- case 'redirectTo':
- // 关闭当前页面,跳转到应用内的某个页面。
- uni.redirectTo({
- url
- });
- break;
- case 'reLaunch':
- // 关闭所有页面,打开到应用内的某个页面。
- uni.reLaunch({
- url
- });
- break;
- default:
- // 保留当前页面,跳转到应用内的某个页面
- uni.navigateTo({
- url
- });
- }
- },
- /**
- * 图片路径转换
- * @param {String} img_path 图片地址
- * @param {Object} params 参数,针对商品、相册里面的图片区分大中小,size: big、mid、small
- */
- img(img_path, params) {
- var path = "";
- if (img_path != undefined && img_path != "") {
- if (img_path.split(',').length > 1) {
- img_path = img_path.split(',')[0];
- }
- if (params && img_path) {
- // 过滤默认图
- let arr = img_path.split(".");
- let suffix = arr[arr.length - 1];
- arr.pop();
- arr[arr.length - 1] = arr[arr.length - 1] + "_" + params.size.toUpperCase();
- arr.push(suffix);
- img_path = arr.join(".");
- }
- if (img_path.indexOf("http://") == -1 && img_path.indexOf("https://") == -1) {
- path = Config.imgDomain + "/" + img_path;
- } else {
- path = img_path;
- }
- // 处理商品助手的图片路径
- path = path.replace("addons/NsGoodsAssist/", "").replace("shop/goods/", "");
- }
- // path += '?t=' + parseInt(new Date().getTime() / 1000);
- return path;
- },
- /**
- * 验证当前数组或对象是否为空
- * @param param 校验对象
- */
- checkIsNotNull(param) {
- if (param) {
- if (typeof(param) == 'object') {
- if (Array.isArray(param)) {
- if (param.length > 0) return true
- } else {
- if (JSON.stringify(param) != '{}') return true
- }
- } else {
- return true;
- }
- }
- return false;
- },
- /**
- * 金额格式化
- * @param {Object} money
- */
- moneyFormat(money) {
- if (isNaN(parseFloat(money))) return money;
- return parseFloat(money).toFixed(2);
- },
- /**
- * 时间格式化
- * @param {Object} time 时间戳
- * @param {Object} format 输出格式
- */
- timeFormat(time, format = 'y-m-d h:i:s') {
- var date = new Date();
- date.setTime(time * 1000);
- var y = date.getFullYear();
- var m = date.getMonth() + 1;
- var d = date.getDate();
- var h = date.getHours();
- var i = date.getMinutes();
- var s = date.getSeconds();
- format = format.replace('y', y);
- format = format.replace('m', (m < 10 ? '0' + m : m));
- format = format.replace('d', (d < 10 ? '0' + d : d));
- format = format.replace('h', (h < 10 ? '0' + h : h));
- format = format.replace('i', (i < 10 ? '0' + i : i));
- format = format.replace('s', (s < 10 ? '0' + s : s));
- return format;
- },
- /**
- * 日期格式转时间戳
- * @param {Object} timeStamp
- */
- timeTurnTimeStamp(string) {
- var f = string.split(' ', 2);
- var d = (f[0] ? f[0] : '').split('-', 3);
- var t = (f[1] ? f[1] : '').split(':', 3);
- return (new Date(
- parseInt(d[0], 10) || null,
- (parseInt(d[1], 10) || 1) - 1,
- parseInt(d[2], 10) || null,
- parseInt(t[0], 10) || null,
- parseInt(t[1], 10) || null,
- parseInt(t[2], 10) || null
- )).getTime() / 1000;
- },
- /**
- * 获取当前页面路由
- */
- getCurrRoute() {
- let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
- return routes.length ? routes[routes.length - 1].route : '';
- },
- /**
- * 显示消息提示框
- * @param {Object} params 参数
- */
- showToast(params = {}) {
- params.title = params.title || "";
- params.icon = params.icon || "none";
- // params.position = params.position || 'bottom';
- params.duration = params.duration || 1500;
- uni.showToast(params);
- if (params.success) params.success();
- },
- /*
- * 深度拷贝对象
- * @param {Object} obj
- */
- deepClone(obj) {
- const isObject = function(obj) {
- return typeof obj == 'object';
- }
- if (!isObject(obj)) {
- throw new Error('obj 不是一个对象!')
- }
- //判断传进来的是对象还是数组
- let isArray = Array.isArray(obj)
- let cloneObj = isArray ? [] : {}
- //通过for...in来拷贝
- for (let key in obj) {
- cloneObj[key] = isObject(obj[key]) ? this.deepClone(obj[key]) : obj[key]
- }
- return cloneObj
- },
- /**
- * 图片选择加上传
- * @param number num
- * @param {Object} params
- * @param {Object} callback
- * @param string url
- * return array
- */
- upload: function(num, params, callback, url) {
- const app_type = 'pc';
- const app_type_name = 'PC';
- var data = {
- token: uni.getStorageSync('cashier_token'),
- app_type: app_type,
- app_type_name: app_type_name
- }
- data = Object.assign(data, params);
- var imgs_num = num;
- var _self = this;
- uni.chooseImage({
- count: imgs_num,
- sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
- sourceType: ['album', 'camera'], //从相册或者拍照
- success: async function(res) {
- const tempFilePaths = res.tempFilePaths;
- var _data = data;
- var imgs = [];
- for (var i = 0; i < tempFilePaths.length; i++) {
- var path = await _self.upload_file_server(tempFilePaths[i], _data, params.path,
- url);
- imgs.push(path);
- }
- typeof callback == 'function' && callback(imgs);
- },
- fail: err => {
- console.log('图片上传错误', err)
- }
- });
- },
- //上传
- upload_file_server(tempFilePath, data, path, url = "") {
- if (url) {
- var uploadUrl = Config.baseUrl + url
- } else {
- var uploadUrl = Config.baseUrl + '/cashier/storeapi/upload/' + path
- }
- data.site_id = Config.siteId
- return new Promise((resolve, reject) => {
- uni.uploadFile({
- url: uploadUrl,
- filePath: tempFilePath,
- name: 'file',
- formData: data,
- success: function(res) {
- var path_str = JSON.parse(res.data);
- if (path_str.code >= 0) {
- resolve(path_str.data.pic_path);
- } else {
- reject("error");
- }
- },
- });
- });
- },
- /**
- * 验证手机号
- * @param {string} mobile 被验证的mobile
- * @return {object} 验证后的结果
- **/
- verifyMobile(mobile) {
- var parse = /^\d{11}$/.test(mobile);
- return parse;
- }
- }
|