2021-12-17 02:49:21 +00:00
|
|
|
|
<script>
|
2021-12-07 03:57:16 +00:00
|
|
|
|
import base64 from './common/js/lib/base64.js';
|
2021-09-26 15:40:23 +00:00
|
|
|
|
export default {
|
|
|
|
|
|
globalData: {
|
2022-04-07 03:21:21 +00:00
|
|
|
|
data: {
|
|
|
|
|
|
// 场景值
|
2022-01-09 15:09:32 +00:00
|
|
|
|
cache_scene_key: "cache_scene_key",
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// uuid缓存key
|
|
|
|
|
|
cache_user_uuid_key: "cache_user_uuid_key",
|
|
|
|
|
|
// 配置信息缓存key
|
|
|
|
|
|
cache_config_info_key: "cache_config_info_key",
|
|
|
|
|
|
// 用户登录缓存key
|
|
|
|
|
|
cache_user_login_key: "cache_user_login_key",
|
|
|
|
|
|
// 用户信息缓存key
|
|
|
|
|
|
cache_user_info_key: "cache_shop_user_info_key",
|
|
|
|
|
|
// 设备信息缓存key
|
|
|
|
|
|
cache_system_info_key: "cache_shop_system_info_key",
|
|
|
|
|
|
// 用户地址选择缓存key
|
|
|
|
|
|
cache_buy_user_address_select_key: "cache_buy_user_address_select_key",
|
|
|
|
|
|
// 启动参数缓存key
|
|
|
|
|
|
cache_launch_info_key: "cache_shop_launch_info_key",
|
|
|
|
|
|
// 获取位置选择缓存key
|
2021-12-17 02:49:21 +00:00
|
|
|
|
cache_userlocation_key: "cache_userlocation_key",
|
|
|
|
|
|
// 页面支付临时缓存key
|
2022-10-18 10:32:18 +00:00
|
|
|
|
cache_page_pay_key: "cache_page_pay_key",
|
|
|
|
|
|
// 上一页地址缓存key
|
2023-03-15 15:20:11 +00:00
|
|
|
|
cache_prev_page_key: 'cache_prev_page_key',
|
|
|
|
|
|
// tab页面切换参数
|
|
|
|
|
|
cache_page_tabbar_switch_params: 'cache_page_tabbar_switch_params_key',
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// 默认用户头像
|
2021-10-12 11:03:35 +00:00
|
|
|
|
default_user_head_src: "/static/images/common/user.png",
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// 成功圆形提示图片
|
2021-10-20 10:03:17 +00:00
|
|
|
|
default_round_success_icon: "/static/images/common/round-success-icon.png",
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// 错误圆形提示图片
|
2022-04-07 03:21:21 +00:00
|
|
|
|
default_round_error_icon: "/static/images/common/round-error-icon.png",
|
|
|
|
|
|
// 分享及转发使用页面设置的默认图片及系统默认图片(0 否, 1 是)
|
|
|
|
|
|
is_share_use_image: 1,
|
|
|
|
|
|
// 商品详情页底部导航是否开启购物车功能(0 否, 1 是)
|
2022-10-18 10:32:18 +00:00
|
|
|
|
is_goods_bottom_opt_cart: 1,
|
|
|
|
|
|
// 商品详情页底部导航存在指定返回参数[is_opt_back=1]展示返回按钮(0 否, 1 是)
|
|
|
|
|
|
is_goods_bottom_opt_back: 1,
|
|
|
|
|
|
// 门店详情顶部导航返回按钮(0 否, 1 是)
|
|
|
|
|
|
is_realstore_top_nav_back: 1,
|
|
|
|
|
|
// 开启浮动客服、前提是后台需要开启客服功能(0 否, 1 是)
|
|
|
|
|
|
is_online_service_fixed: 1,
|
|
|
|
|
|
// 分类页面商品列表模式一级分类使用图标类型(0 大图片, 1 icon图标)
|
2022-11-30 02:44:52 +00:00
|
|
|
|
category_goods_model_icon_type: 0,
|
|
|
|
|
|
// 强制使用文字作为logo(默认后台站点设置手机端图片logo->当前指定logo->后台手机管理小程序配置名称->站点设置中的站点名称)
|
2023-03-16 03:23:48 +00:00
|
|
|
|
is_logo_use_text: 0,
|
|
|
|
|
|
// 用户中心菜单展示模式(0 九方格, 1 列表)
|
|
|
|
|
|
user_center_nav_show_model_type: 0,
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// tabbar页面
|
2021-12-17 02:49:21 +00:00
|
|
|
|
tabbar_pages: [
|
|
|
|
|
|
"/pages/index/index",
|
|
|
|
|
|
"/pages/goods-category/goods-category",
|
2021-09-26 15:40:23 +00:00
|
|
|
|
"/pages/cart/cart",
|
|
|
|
|
|
"/pages/user/user"
|
|
|
|
|
|
],
|
|
|
|
|
|
// 请求地址
|
2023-03-17 11:33:57 +00:00
|
|
|
|
request_url: 'http://shopxo.com/',
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 静态资源地址(如系统根目录不在public目录下面请在静态地址后面加public目录、如:https://d1.shopxo.vip/public/)
|
2023-03-18 15:47:36 +00:00
|
|
|
|
static_url: 'http://shopxo.com/',
|
2022-10-18 10:32:18 +00:00
|
|
|
|
// 系统类型(默认default、如额外独立小程序、可与程序分身插件实现不同主体小程序及支付独立)
|
2023-03-18 15:47:36 +00:00
|
|
|
|
system_type: 'default-2',
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// 基础信息
|
2022-11-22 07:04:43 +00:00
|
|
|
|
application_title: 'ShopXO',
|
|
|
|
|
|
application_describe: '企业级B2C开源电商系统!',
|
|
|
|
|
|
// 默认logo、如 /static/images/common/logo.png
|
|
|
|
|
|
application_logo: '',
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 版本号
|
2022-11-29 08:54:23 +00:00
|
|
|
|
version: 'v2.3.2',
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// 货币价格符号
|
2022-11-22 07:04:43 +00:00
|
|
|
|
currency_symbol: '¥',
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 主题类型 主题颜色
|
|
|
|
|
|
// 黄色 yellow #f6c133
|
|
|
|
|
|
// 红色 red #ff0036
|
|
|
|
|
|
// 黑色 black #333333
|
|
|
|
|
|
// 绿色 green #20a53a
|
|
|
|
|
|
// 橙色 orange #fe6f04
|
|
|
|
|
|
// 蓝色 blue #1677ff
|
|
|
|
|
|
// 棕色 brown #8B4513
|
|
|
|
|
|
// 紫色 purple #623cec
|
2022-11-22 07:04:43 +00:00
|
|
|
|
default_theme: 'yellow'
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 启动参数处理
|
|
|
|
|
|
*/
|
2022-04-07 03:21:21 +00:00
|
|
|
|
launch_params_handle(params) {
|
|
|
|
|
|
// 原有缓存
|
|
|
|
|
|
var cache_params = this.get_launch_cache_info();
|
|
|
|
|
|
|
2022-02-10 03:33:06 +00:00
|
|
|
|
// 当前参数、从query读取覆盖
|
2021-09-26 15:40:23 +00:00
|
|
|
|
if ((params.query || null) != null) {
|
|
|
|
|
|
params = params.query;
|
2022-04-07 03:21:21 +00:00
|
|
|
|
}
|
2022-02-10 03:33:06 +00:00
|
|
|
|
// query下scene参数解析处理
|
2021-09-26 15:40:23 +00:00
|
|
|
|
if ((params.scene || null) != null) {
|
|
|
|
|
|
params = this.url_params_to_json(decodeURIComponent(params.scene));
|
2022-04-07 03:21:21 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 原始缓存是否存在邀请id、邀请使用最开始的用户id
|
|
|
|
|
|
if(cache_params != null && (cache_params.referrer || null) != null) {
|
|
|
|
|
|
params['referrer'] = cache_params.referrer;
|
|
|
|
|
|
}
|
2022-02-10 03:33:06 +00:00
|
|
|
|
|
2021-09-26 15:40:23 +00:00
|
|
|
|
return params;
|
2022-04-07 03:21:21 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 当前是否单页模式
|
|
|
|
|
|
*/
|
|
|
|
|
|
is_current_single_page() {
|
|
|
|
|
|
var scene = this.get_scene_data();
|
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
|
return (scene == 1154) ? 1 : 0;
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 场景值获取
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_scene_data() {
|
|
|
|
|
|
return uni.getStorageSync(this.data.cache_scene_key) || 0;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 场景值设置
|
|
|
|
|
|
*/
|
|
|
|
|
|
set_scene_data(params) {
|
|
|
|
|
|
var scene = ((params.scene || null) == null) ? 0 : parseInt(params.scene);
|
|
|
|
|
|
uni.setStorageSync(this.data.cache_scene_key, scene);
|
|
|
|
|
|
return scene;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2021-12-17 02:49:21 +00:00
|
|
|
|
* 获取设备信息
|
|
|
|
|
|
* key 指定key
|
|
|
|
|
|
* dv 默认数据(不存在则读取、默认null)
|
2021-12-01 05:54:58 +00:00
|
|
|
|
* is_real 是否实时读取
|
2021-09-26 15:40:23 +00:00
|
|
|
|
*/
|
2021-12-17 02:49:21 +00:00
|
|
|
|
get_system_info(key, dv, is_real) {
|
|
|
|
|
|
var info = null;
|
|
|
|
|
|
if((is_real || false) == true) {
|
2021-12-21 14:27:54 +00:00
|
|
|
|
info = this.set_system_info() || null;
|
2021-12-17 02:49:21 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
info = uni.getStorageSync(this.data.cache_system_info_key) || null;
|
2022-04-07 03:21:21 +00:00
|
|
|
|
}
|
|
|
|
|
|
if(info == null || (key|| null) == null) {
|
|
|
|
|
|
return info;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
}
|
2021-12-21 14:27:54 +00:00
|
|
|
|
return (info[key] == undefined) ? (dv == undefined ? null : dv) : info[key];
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 设置设备信息
|
|
|
|
|
|
*/
|
2022-04-07 03:21:21 +00:00
|
|
|
|
set_system_info() {
|
|
|
|
|
|
var system_info = uni.getSystemInfoSync();
|
2022-02-10 03:33:06 +00:00
|
|
|
|
uni.setStorageSync(this.data.cache_system_info_key, system_info);
|
2021-09-26 15:40:23 +00:00
|
|
|
|
return system_info;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 请求地址生成
|
|
|
|
|
|
* a 方法
|
|
|
|
|
|
* c 控制器
|
|
|
|
|
|
* plugins 插件标记(传参则表示为插件请求)
|
2021-12-17 02:49:21 +00:00
|
|
|
|
* params url请求参数
|
2021-12-07 03:57:16 +00:00
|
|
|
|
* group 组名称(默认 api)
|
2021-09-26 15:40:23 +00:00
|
|
|
|
*/
|
2021-12-07 03:57:16 +00:00
|
|
|
|
get_request_url(a, c, plugins, params, group) {
|
2021-09-26 15:40:23 +00:00
|
|
|
|
a = a || "index";
|
2021-12-17 02:49:21 +00:00
|
|
|
|
c = c || "index";
|
|
|
|
|
|
|
2021-09-26 15:40:23 +00:00
|
|
|
|
// 是否插件请求、走api统一插件调用控制器
|
|
|
|
|
|
var plugins_params = "";
|
|
|
|
|
|
if ((plugins || null) != null) {
|
|
|
|
|
|
plugins_params = "&pluginsname=" + plugins + "&pluginscontrol=" + c + "&pluginsaction=" + a;
|
|
|
|
|
|
c = "plugins";
|
|
|
|
|
|
a = "index";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 参数处理
|
|
|
|
|
|
params = params || "";
|
|
|
|
|
|
if (params != "" && params.substr(0, 1) != "&") {
|
|
|
|
|
|
params = "&" + params;
|
|
|
|
|
|
}
|
2022-04-07 03:21:21 +00:00
|
|
|
|
|
|
|
|
|
|
// 参数处理
|
|
|
|
|
|
var url = this.data.request_url + (group || "api")+".php?s=" + c + "/" + a + plugins_params;
|
2022-03-27 15:38:30 +00:00
|
|
|
|
return this.request_params_handle(url) + "&ajax=ajax" + params;
|
2022-04-07 03:21:21 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 请求参数处理
|
|
|
|
|
|
* url url地址
|
|
|
|
|
|
*/
|
|
|
|
|
|
request_params_handle(url) {
|
|
|
|
|
|
// 用户信息
|
|
|
|
|
|
var user = this.get_user_cache_info();
|
2023-03-15 15:20:11 +00:00
|
|
|
|
var token = user == null ? '' : (user.token || '');
|
2022-04-07 03:21:21 +00:00
|
|
|
|
var uuid = this.request_uuid();
|
|
|
|
|
|
var client_value = this.application_client_type();
|
|
|
|
|
|
// 拼接标识
|
|
|
|
|
|
var join = (url.indexOf('?') == -1) ? '?' : '&';
|
2022-04-20 13:26:16 +00:00
|
|
|
|
return url + join + "system_type="+ this.data.system_type +"&application=app&application_client_type="+ client_value + "&token=" + token + "&uuid=" + uuid;
|
2023-03-15 15:20:11 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取tab页面切换参数
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_page_tabbar_switch_params() {
|
|
|
|
|
|
return uni.getStorageSync(this.data.cache_page_tabbar_switch_params) || null;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 删除tab页面切换参数
|
|
|
|
|
|
*/
|
|
|
|
|
|
remove_page_tabbar_switch_params() {
|
|
|
|
|
|
uni.removeStorageSync(this.data.cache_page_tabbar_switch_params);
|
|
|
|
|
|
},
|
2021-09-26 15:40:23 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取用户信息,信息不存在则唤醒授权
|
|
|
|
|
|
* object 回调操作对象
|
|
|
|
|
|
* method 回调操作对象的函数
|
|
|
|
|
|
* return 有用户数据直接返回, 则回调调用者
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_user_info(object, method) {
|
|
|
|
|
|
var user = this.get_user_cache_info();
|
2023-03-15 15:20:11 +00:00
|
|
|
|
if (user == null) {
|
2021-11-30 10:57:06 +00:00
|
|
|
|
// #ifdef MP
|
|
|
|
|
|
// 小程序唤醒用户授权
|
2021-12-17 02:49:21 +00:00
|
|
|
|
this.user_login(object, method);
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
// #ifdef H5 || APP
|
|
|
|
|
|
// h5、app登陆注册
|
|
|
|
|
|
uni.showModal({
|
|
|
|
|
|
title: '温馨提示',
|
|
|
|
|
|
content: '请先登陆或注册',
|
|
|
|
|
|
confirmText: '确认',
|
|
|
|
|
|
cancelText: '暂不',
|
|
|
|
|
|
success: result => {
|
|
|
|
|
|
if (result.confirm) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/login/login"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
// #endif
|
2021-11-30 10:57:06 +00:00
|
|
|
|
|
2021-09-26 15:40:23 +00:00
|
|
|
|
return false;
|
2021-12-17 02:49:21 +00:00
|
|
|
|
}
|
2021-10-17 15:59:51 +00:00
|
|
|
|
return user;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 从缓存获取用户信息、可指定key和默认值
|
|
|
|
|
|
* key 数据key
|
|
|
|
|
|
* default_value 默认值
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_user_cache_info(key, default_value) {
|
|
|
|
|
|
var user = uni.getStorageSync(this.data.cache_user_info_key) || null;
|
|
|
|
|
|
if (user == null) {
|
|
|
|
|
|
// 是否存在默认值
|
2023-03-15 15:20:11 +00:00
|
|
|
|
return default_value == undefined ? null : default_value;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 是否读取key
|
|
|
|
|
|
if ((key || null) != null) {
|
|
|
|
|
|
return user[key] == undefined ? default_value == undefined ? null : default_value : user[key];
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return user;
|
2021-12-17 02:49:21 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2022-02-10 03:33:06 +00:00
|
|
|
|
* 系统参数获取
|
2021-12-17 02:49:21 +00:00
|
|
|
|
*/
|
|
|
|
|
|
get_launch_cache_info() {
|
|
|
|
|
|
return uni.getStorageSync(this.data.cache_launch_info_key) || null;
|
2022-04-07 03:21:21 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 系统参数设置
|
|
|
|
|
|
*/
|
|
|
|
|
|
set_launch_cache_info(params) {
|
|
|
|
|
|
params = this.launch_params_handle(params);
|
|
|
|
|
|
uni.setStorageSync(this.data.cache_launch_info_key, params);
|
|
|
|
|
|
return params;
|
2021-12-17 02:49:21 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取登陆授权数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_login_cache_info() {
|
|
|
|
|
|
return uni.getStorageSync(this.data.cache_user_login_key) || null;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 用户登录
|
|
|
|
|
|
* object 回调操作对象
|
|
|
|
|
|
* method 回调操作对象的函数
|
|
|
|
|
|
* auth_data 授权数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
user_auth_login(object, method, auth_data) {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
var self = this;
|
2022-05-18 07:12:50 +00:00
|
|
|
|
// #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU || MP-TOUTIAO || MP-KUAISHOU
|
2021-09-26 15:40:23 +00:00
|
|
|
|
uni.checkSession({
|
|
|
|
|
|
success: function() {
|
2021-11-30 10:57:06 +00:00
|
|
|
|
var login_data = self.get_login_cache_info();
|
2021-09-26 15:40:23 +00:00
|
|
|
|
if (login_data == null) {
|
|
|
|
|
|
self.user_login(object, method);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
self.get_user_login_info(object, method, login_data, auth_data);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: function() {
|
2021-10-02 03:24:40 +00:00
|
|
|
|
uni.removeStorageSync(self.data.cache_user_login_key);
|
2021-09-26 15:40:23 +00:00
|
|
|
|
self.user_login(object, method);
|
|
|
|
|
|
}
|
2021-12-17 02:49:21 +00:00
|
|
|
|
});
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef MP-ALIPAY
|
|
|
|
|
|
var login_data = self.get_login_cache_info();
|
|
|
|
|
|
if (login_data == null) {
|
|
|
|
|
|
self.user_login(object, method);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
self.get_user_login_info(object, method, login_data, auth_data);
|
|
|
|
|
|
}
|
2021-11-16 07:05:37 +00:00
|
|
|
|
// #endif
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 用户登录
|
|
|
|
|
|
* object 回调操作对象
|
|
|
|
|
|
* method 回调操作对象的函数
|
|
|
|
|
|
* auth_data 授权数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
user_login(object, method) {
|
|
|
|
|
|
var login_data = uni.getStorageSync(this.data.cache_user_login_key) || null;
|
|
|
|
|
|
if (login_data == null) {
|
2022-08-02 15:23:30 +00:00
|
|
|
|
this.user_login_handle(object, method, true);
|
2021-09-26 15:40:23 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
this.login_to_auth();
|
|
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 用户登录处理
|
2022-08-02 15:23:30 +00:00
|
|
|
|
* object 回调操作对象
|
|
|
|
|
|
* method 回调操作对象的函数
|
2022-10-18 10:32:18 +00:00
|
|
|
|
* auth_data 授权数据
|
|
|
|
|
|
* is_to_auth 是否进入授权
|
|
|
|
|
|
*/
|
2022-12-15 09:35:50 +00:00
|
|
|
|
user_login_handle(object, method, is_to_auth = true) {
|
|
|
|
|
|
// 邀请人参数
|
|
|
|
|
|
var params = this.get_launch_cache_info();
|
|
|
|
|
|
var referrer = params == null ? 0 : params.referrer || 0;
|
2022-10-18 10:32:18 +00:00
|
|
|
|
var self = this;
|
|
|
|
|
|
uni.showLoading({
|
|
|
|
|
|
title: "授权中..."
|
|
|
|
|
|
});
|
|
|
|
|
|
var action = 'login';
|
|
|
|
|
|
// #ifdef MP-BAIDU
|
|
|
|
|
|
action = 'getLoginCode';
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
uni[action]({
|
|
|
|
|
|
success: res => {
|
|
|
|
|
|
if (res.code) {
|
|
|
|
|
|
uni.request({
|
|
|
|
|
|
url: self.get_request_url('appminiuserauth', 'user'),
|
|
|
|
|
|
method: 'POST',
|
|
|
|
|
|
data: {
|
2022-12-15 09:35:50 +00:00
|
|
|
|
authcode: res.code,
|
|
|
|
|
|
referrer: referrer
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
|
|
|
|
|
dataType: 'json',
|
|
|
|
|
|
success: res => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
if (res.data.code == 0) {
|
2022-11-21 02:35:13 +00:00
|
|
|
|
var data = res.data.data;
|
|
|
|
|
|
var client_type = this.application_client_type();
|
2023-03-18 15:47:36 +00:00
|
|
|
|
if ((data.is_user_exist || 0) == 1 || client_type == 'weixin') {
|
|
|
|
|
|
uni.setStorageSync(self.data.cache_user_info_key, data);
|
|
|
|
|
|
if (typeof object === 'object' && (method || null) != null) {
|
|
|
|
|
|
object[method]();
|
|
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
} else {
|
2023-03-18 15:47:36 +00:00
|
|
|
|
uni.setStorageSync(self.data.cache_user_login_key, data);
|
|
|
|
|
|
if(is_to_auth) {
|
|
|
|
|
|
var pages = getCurrentPages();
|
|
|
|
|
|
if(pages[pages.length-1]['route'] == 'pages/login/login') {
|
|
|
|
|
|
if (typeof object === 'object' && (method || null) != null) {
|
|
|
|
|
|
object[method]();
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
self.login_to_auth();
|
|
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
self.showToast(res.data.msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: () => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
self.showToast('服务器请求出错');
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: e => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
self.showToast('授权失败');
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 跳转到登录页面授权
|
|
|
|
|
|
*/
|
|
|
|
|
|
login_to_auth() {
|
|
|
|
|
|
uni.showModal({
|
|
|
|
|
|
title: '温馨提示',
|
|
|
|
|
|
content: '授权用户信息',
|
|
|
|
|
|
confirmText: '确认',
|
|
|
|
|
|
cancelText: '暂不',
|
|
|
|
|
|
success: result => {
|
|
|
|
|
|
if (result.confirm) {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: "/pages/login/login"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取用户授权信息
|
|
|
|
|
|
* object 回调操作对象
|
|
|
|
|
|
* method 回调操作对象的函数
|
|
|
|
|
|
* login_data 登录信息
|
|
|
|
|
|
* auth_data 授权数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_user_login_info(object, method, login_data, auth_data) {
|
|
|
|
|
|
// 邀请人参数
|
2021-11-30 10:57:06 +00:00
|
|
|
|
var params = this.get_launch_cache_info();
|
2021-12-17 02:49:21 +00:00
|
|
|
|
var referrer = params == null ? 0 : params.referrer || 0;
|
|
|
|
|
|
|
|
|
|
|
|
// 请求数据
|
2021-11-16 07:05:37 +00:00
|
|
|
|
var data = {
|
2022-12-15 09:35:50 +00:00
|
|
|
|
auth_data: JSON.stringify(auth_data),
|
|
|
|
|
|
openid: login_data.openid,
|
|
|
|
|
|
unionid: login_data.unionid,
|
|
|
|
|
|
referrer: referrer
|
2021-12-17 02:49:21 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
2021-11-16 07:05:37 +00:00
|
|
|
|
// 用户信息处理
|
2021-09-26 15:40:23 +00:00
|
|
|
|
uni.showLoading({
|
|
|
|
|
|
title: "授权中..."
|
|
|
|
|
|
});
|
|
|
|
|
|
var self = this;
|
|
|
|
|
|
uni.request({
|
2021-11-16 07:05:37 +00:00
|
|
|
|
url: self.get_request_url('appminiuserinfo', 'user'),
|
2021-09-26 15:40:23 +00:00
|
|
|
|
method: 'POST',
|
2021-11-16 07:05:37 +00:00
|
|
|
|
data: data,
|
2021-09-26 15:40:23 +00:00
|
|
|
|
dataType: 'json',
|
|
|
|
|
|
success: res => {
|
|
|
|
|
|
uni.hideLoading();
|
2023-03-18 15:47:36 +00:00
|
|
|
|
if (res.data.code == 0) {
|
|
|
|
|
|
uni.setStorageSync(self.data.cache_user_info_key, res.data.data);
|
|
|
|
|
|
if (typeof object === 'object' && (method || null) != null) {
|
|
|
|
|
|
object[method]();
|
|
|
|
|
|
}
|
2021-09-26 15:40:23 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
self.showToast(res.data.msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: () => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
self.showToast('服务器请求出错');
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 字段数据校验
|
|
|
|
|
|
* data 待校验的数据, 一维json对象
|
|
|
|
|
|
* validation 待校验的字段, 格式 [{fields: 'mobile', msg: '请填写手机号码', is_can_zero: 1(是否可以为0)}, ...]
|
|
|
|
|
|
*/
|
|
|
|
|
|
fields_check(data, validation) {
|
|
|
|
|
|
for (var i in validation) {
|
|
|
|
|
|
var temp_value = data[validation[i]["fields"]];
|
|
|
|
|
|
var temp_is_can_zero = validation[i]["is_can_zero"] || null;
|
|
|
|
|
|
if (temp_value == undefined || temp_value.length == 0 || temp_value == -1 || temp_is_can_zero ==
|
|
|
|
|
|
null && temp_value == 0) {
|
|
|
|
|
|
this.showToast(validation[i]['msg']);
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取当前时间戳
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_timestamp() {
|
|
|
|
|
|
return parseInt(new Date().getTime() / 1000);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取日期
|
|
|
|
|
|
* format 日期格式(默认 yyyy-MM-dd h:m:s)
|
|
|
|
|
|
* timestamp 时间戳(默认当前时间戳)
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_date(format, timestamp) {
|
|
|
|
|
|
var d = new Date((timestamp || this.get_timestamp()) * 1000);
|
|
|
|
|
|
var date = {
|
|
|
|
|
|
"M+": d.getMonth() + 1,
|
|
|
|
|
|
"d+": d.getDate(),
|
|
|
|
|
|
"h+": d.getHours(),
|
|
|
|
|
|
"m+": d.getMinutes(),
|
|
|
|
|
|
"s+": d.getSeconds(),
|
|
|
|
|
|
"q+": Math.floor((d.getMonth() + 3) / 3),
|
|
|
|
|
|
"S+": d.getMilliseconds()
|
|
|
|
|
|
};
|
|
|
|
|
|
if (/(y+)/i.test(format)) {
|
|
|
|
|
|
format = format.replace(RegExp.$1, (d.getFullYear() + '').substr(4 - RegExp.$1.length));
|
|
|
|
|
|
}
|
|
|
|
|
|
for (var k in date) {
|
|
|
|
|
|
if (new RegExp("(" + k + ")").test(format)) {
|
2021-10-17 15:59:51 +00:00
|
|
|
|
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
|
2021-09-26 15:40:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return format;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取对象、数组的长度、元素个数
|
|
|
|
|
|
* obj 要计算长度的元素(object、array、string)
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_length(obj) {
|
|
|
|
|
|
var obj_type = typeof obj;
|
|
|
|
|
|
if (obj_type == "string") {
|
|
|
|
|
|
return obj.length;
|
|
|
|
|
|
} else if (obj_type == "object") {
|
|
|
|
|
|
var obj_len = 0;
|
|
|
|
|
|
for (var i in obj) {
|
|
|
|
|
|
obj_len++;
|
|
|
|
|
|
}
|
|
|
|
|
|
return obj_len;
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 价格保留两位小数
|
|
|
|
|
|
* price 价格保留两位小数
|
|
|
|
|
|
*/
|
|
|
|
|
|
price_two_decimal(x) {
|
|
|
|
|
|
var f_x = parseFloat(x);
|
|
|
|
|
|
if (isNaN(f_x)) {
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
var f_x = Math.round(x * 100) / 100;
|
|
|
|
|
|
var s_x = f_x.toString();
|
|
|
|
|
|
var pos_decimal = s_x.indexOf('.');
|
|
|
|
|
|
if (pos_decimal < 0) {
|
|
|
|
|
|
pos_decimal = s_x.length;
|
|
|
|
|
|
s_x += '.';
|
|
|
|
|
|
}
|
|
|
|
|
|
while (s_x.length <= pos_decimal + 2) {
|
|
|
|
|
|
s_x += '0';
|
|
|
|
|
|
}
|
|
|
|
|
|
return s_x;
|
2021-12-17 02:49:21 +00:00
|
|
|
|
},
|
2022-10-18 10:32:18 +00:00
|
|
|
|
|
2022-07-01 10:45:08 +00:00
|
|
|
|
// url主要部分
|
|
|
|
|
|
get_url_main_part(url) {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
if (url.indexOf("?") == -1) {
|
|
|
|
|
|
var value = url;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
var temp_str = url.split("?");
|
|
|
|
|
|
var value = temp_str[0];
|
|
|
|
|
|
}
|
|
|
|
|
|
return value;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 当前地址是否存在tabbar中
|
|
|
|
|
|
*/
|
|
|
|
|
|
is_tabbar_pages(url) {
|
2022-07-01 10:45:08 +00:00
|
|
|
|
var value = this.get_url_main_part(url);
|
2021-09-26 15:40:23 +00:00
|
|
|
|
if ((value || null) == null) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
2021-09-27 15:25:15 +00:00
|
|
|
|
var temp_tabbar_pages = this.data.tabbar_pages;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
for (var i in temp_tabbar_pages) {
|
|
|
|
|
|
if (temp_tabbar_pages[i] == value) {
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 事件操作
|
|
|
|
|
|
*/
|
|
|
|
|
|
operation_event(e) {
|
|
|
|
|
|
var value = e.currentTarget.dataset.value || null;
|
|
|
|
|
|
var type = parseInt(e.currentTarget.dataset.type);
|
|
|
|
|
|
if (value != null) {
|
|
|
|
|
|
switch (type) {
|
|
|
|
|
|
// web
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
this.open_web_view(value);
|
|
|
|
|
|
break;
|
2021-10-17 15:59:51 +00:00
|
|
|
|
// 内部页面
|
2021-09-26 15:40:23 +00:00
|
|
|
|
case 1:
|
2023-03-15 15:20:11 +00:00
|
|
|
|
if (this.is_tabbar_pages(value)) {
|
|
|
|
|
|
var temp = value.split('?');
|
|
|
|
|
|
if(temp.length > 1 && (temp[1] || null) != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
value = temp[0];
|
|
|
|
|
|
var query = this.url_params_to_json(temp[1]);
|
|
|
|
|
|
uni.setStorageSync(this.data.cache_page_tabbar_switch_params, query);
|
|
|
|
|
|
}
|
2021-09-26 15:40:23 +00:00
|
|
|
|
uni.switchTab({
|
|
|
|
|
|
url: value
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: value
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
2021-10-17 15:59:51 +00:00
|
|
|
|
// 跳转到外部小程序
|
2021-09-26 15:40:23 +00:00
|
|
|
|
case 2:
|
|
|
|
|
|
uni.navigateToMiniProgram({
|
|
|
|
|
|
appId: value
|
|
|
|
|
|
});
|
|
|
|
|
|
break;
|
2021-10-17 15:59:51 +00:00
|
|
|
|
// 跳转到地图查看位置
|
2021-09-26 15:40:23 +00:00
|
|
|
|
case 3:
|
|
|
|
|
|
var values = value.split('|');
|
|
|
|
|
|
if (values.length != 4) {
|
|
|
|
|
|
this.showToast('事件值格式有误');
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.open_location(values[2], values[3], values[0], values[1]);
|
|
|
|
|
|
break;
|
2021-10-17 15:59:51 +00:00
|
|
|
|
// 拨打电话
|
2021-09-26 15:40:23 +00:00
|
|
|
|
case 4:
|
|
|
|
|
|
this.call_tel(value);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 打开 webview页面
|
|
|
|
|
|
* value [string] url地址
|
|
|
|
|
|
*/
|
|
|
|
|
|
open_web_view(value) {
|
|
|
|
|
|
uni.navigateTo({
|
2021-11-30 10:57:06 +00:00
|
|
|
|
url: "/pages/web-view/web-view?url=" + encodeURIComponent(value)
|
2021-09-26 15:40:23 +00:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 默认弱提示方法
|
|
|
|
|
|
* msg [string] 提示信息
|
|
|
|
|
|
* status [string] 状态 默认error [正确success, 错误error]
|
|
|
|
|
|
*/
|
|
|
|
|
|
showToast(msg, status) {
|
|
|
|
|
|
if ((status || 'error') == 'success') {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
uni.showToast({
|
2021-11-17 04:12:23 +00:00
|
|
|
|
icon: 'success',
|
2021-09-26 15:40:23 +00:00
|
|
|
|
title: msg,
|
|
|
|
|
|
duration: 3000
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
uni.showToast({
|
2021-11-17 04:12:23 +00:00
|
|
|
|
icon: 'none',
|
2021-09-26 15:40:23 +00:00
|
|
|
|
title: msg,
|
|
|
|
|
|
duration: 3000
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* alert确认框
|
|
|
|
|
|
* title [string] 标题(默认空)
|
|
|
|
|
|
* msg [string] 提示信息,必传
|
|
|
|
|
|
* is_show_cancel [int] 是否显示取消按钮(默认显示 0否, 1|undefined是)
|
|
|
|
|
|
* cancel_text [string] 取消按钮文字(默认 取消)
|
|
|
|
|
|
* cancel_color [string] 取消按钮的文字颜色,必须是 16 进制格式的颜色字符串(默认 #000000)
|
|
|
|
|
|
* confirm_text [string] 确认按钮文字(默认 确认)
|
|
|
|
|
|
* confirm_color [string] 确认按钮的文字颜色,必须是 16 进制格式的颜色字符串(默认 #000000)
|
|
|
|
|
|
* object [boject] 回调操作对象,点击确认回调参数1,取消回调0
|
|
|
|
|
|
* method [string] 回调操作对象的函数
|
|
|
|
|
|
*/
|
|
|
|
|
|
alert(e) {
|
|
|
|
|
|
var msg = e.msg || null;
|
|
|
|
|
|
if (msg != null) {
|
|
|
|
|
|
var title = e.title || '';
|
|
|
|
|
|
var is_show_cancel = e.is_show_cancel == 0 ? false : true;
|
|
|
|
|
|
var cancel_text = e.cancel_text || '取消';
|
|
|
|
|
|
var confirm_text = e.confirm_text || '确认';
|
|
|
|
|
|
var cancel_color = e.cancel_color || '#000000';
|
|
|
|
|
|
var confirm_color = e.confirm_color || '#576B95';
|
|
|
|
|
|
uni.showModal({
|
|
|
|
|
|
title: title,
|
|
|
|
|
|
content: msg,
|
|
|
|
|
|
showCancel: is_show_cancel,
|
|
|
|
|
|
cancelText: cancel_text,
|
|
|
|
|
|
cancelColor: cancel_color,
|
|
|
|
|
|
confirmText: confirm_text,
|
|
|
|
|
|
confirmColor: confirm_color,
|
|
|
|
|
|
success(res) {
|
2021-10-02 03:24:40 +00:00
|
|
|
|
if ((e.object || null) != null && typeof e.object === 'object' && (e.method || null) != null) {
|
2021-09-26 15:40:23 +00:00
|
|
|
|
e.object[e.method](res.confirm ? 1 : 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
self.showToast('提示信息为空 alert');
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 是否需要登录
|
|
|
|
|
|
* 是否需要绑定手机号码
|
|
|
|
|
|
*/
|
|
|
|
|
|
user_is_need_login(user) {
|
|
|
|
|
|
// 用户信息是否正确
|
2023-03-15 15:20:11 +00:00
|
|
|
|
if ((user || null) == null) {
|
2021-09-26 15:40:23 +00:00
|
|
|
|
return true;
|
2021-12-17 02:49:21 +00:00
|
|
|
|
}
|
2021-10-17 15:59:51 +00:00
|
|
|
|
// 是否需要绑定手机号码
|
2021-09-26 15:40:23 +00:00
|
|
|
|
if ((user.is_mandatory_bind_mobile || 0) == 1) {
|
|
|
|
|
|
if ((user.mobile || null) == null) {
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
2022-07-01 10:45:08 +00:00
|
|
|
|
// url参数转json对象
|
2021-09-26 15:40:23 +00:00
|
|
|
|
url_params_to_json(url_params) {
|
|
|
|
|
|
var json = new Object();
|
|
|
|
|
|
if ((url_params || null) != null) {
|
|
|
|
|
|
var arr = url_params.split('&');
|
|
|
|
|
|
for (var i = 0; i < arr.length; i++) {
|
|
|
|
|
|
var temp = arr[i].split('=');
|
|
|
|
|
|
json[temp[0]] = temp[1];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return json;
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// json对象转url请求参数
|
|
|
|
|
|
json_to_url_params(data) {
|
|
|
|
|
|
var str = '';
|
|
|
|
|
|
for(var i in data) {
|
|
|
|
|
|
if(str != '') {
|
|
|
|
|
|
str += '&';
|
|
|
|
|
|
}
|
|
|
|
|
|
str += i+'='+data[i];
|
|
|
|
|
|
}
|
|
|
|
|
|
return str;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 拨打电话
|
|
|
|
|
|
call_tel(value) {
|
|
|
|
|
|
if ((value || null) != null) {
|
|
|
|
|
|
uni.makePhoneCall({
|
|
|
|
|
|
phoneNumber: value.toString()
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 登录校验
|
|
|
|
|
|
* object 回调操作对象
|
|
|
|
|
|
* method 回调操作对象的函数
|
|
|
|
|
|
*/
|
|
|
|
|
|
is_login_check(res, object, method) {
|
|
|
|
|
|
if (res.code == -400) {
|
|
|
|
|
|
uni.clearStorage();
|
|
|
|
|
|
this.get_user_info(object, method);
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 设置导航reddot
|
|
|
|
|
|
* index tabBar 的哪一项,从左边算起(0开始)
|
|
|
|
|
|
* type 0 移出, 1 添加 (默认 0 移出)
|
|
|
|
|
|
*/
|
|
|
|
|
|
set_tab_bar_reddot(index, type) {
|
|
|
|
|
|
if (index !== undefined && index !== null) {
|
|
|
|
|
|
if ((type || 0) == 0) {
|
|
|
|
|
|
uni.hideTabBarRedDot({
|
|
|
|
|
|
index: Number(index)
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.showTabBarRedDot({
|
|
|
|
|
|
index: Number(index)
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 设置导航车badge
|
|
|
|
|
|
* index tabBar 的哪一项,从左边算起(0开始)
|
|
|
|
|
|
* type 0 移出, 1 添加 (默认 0 移出)
|
|
|
|
|
|
* value 显示的文本,超过 4 个字符则显示成 ...(type参数为1的情况下有效)
|
|
|
|
|
|
*/
|
|
|
|
|
|
set_tab_bar_badge(index, type, value) {
|
|
|
|
|
|
if (index !== undefined && index !== null) {
|
|
|
|
|
|
if ((type || 0) == 0) {
|
|
|
|
|
|
uni.removeTabBarBadge({
|
|
|
|
|
|
index: Number(index)
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.setTabBarBadge({
|
|
|
|
|
|
index: Number(index),
|
|
|
|
|
|
"text": value.toString()
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
2022-04-07 03:21:21 +00:00
|
|
|
|
// 页面分享处理
|
|
|
|
|
|
page_share_handle(share = null) {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 当前页面
|
|
|
|
|
|
var pages = getCurrentPages();
|
|
|
|
|
|
var obj = pages[pages.length-1];
|
|
|
|
|
|
|
2022-04-07 03:21:21 +00:00
|
|
|
|
// 分享信息、是否指定参数
|
|
|
|
|
|
if((share || null) == null) {
|
|
|
|
|
|
share = {}
|
|
|
|
|
|
}
|
|
|
|
|
|
// 从页面对象获取参数
|
|
|
|
|
|
if(Object.keys(share).length <= 0) {
|
|
|
|
|
|
share = obj.share_info || {};
|
|
|
|
|
|
}
|
|
|
|
|
|
// 参数处理
|
|
|
|
|
|
share = this.share_content_handle(share);
|
2021-12-17 02:49:21 +00:00
|
|
|
|
|
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
|
// 微信小程序展示系统分享好友和朋友圈按钮
|
2022-04-07 03:21:21 +00:00
|
|
|
|
// 其他端小程序不用展示会调起分享窗口
|
|
|
|
|
|
var not_pages = ['/pages/user/user', '/pages/cart/cart'];
|
|
|
|
|
|
if(not_pages.indexOf(share.url) == -1) {
|
|
|
|
|
|
uni.showShareMenu({
|
|
|
|
|
|
withShareTicket: true,
|
|
|
|
|
|
title: share.title,
|
|
|
|
|
|
desc: share.desc,
|
|
|
|
|
|
path: share.path + share.query,
|
|
|
|
|
|
imageUrl: share.img,
|
|
|
|
|
|
menus: ['shareAppMessage', 'shareTimeline']
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
wx.hideShareMenu({
|
|
|
|
|
|
menus: ['shareTimeline']
|
|
|
|
|
|
});
|
2022-01-11 01:51:27 +00:00
|
|
|
|
}
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
// H5处理微信环境分享自定义信息
|
2022-04-20 13:26:16 +00:00
|
|
|
|
if(this.is_weixin_env()) {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
var page_url = this.get_page_url();
|
|
|
|
|
|
uni.request({
|
|
|
|
|
|
url: this.get_request_url("signpackage", "index", "share"),
|
|
|
|
|
|
method: "POST",
|
|
|
|
|
|
data: {
|
|
|
|
|
|
url: encodeURIComponent(page_url)
|
|
|
|
|
|
},
|
|
|
|
|
|
dataType: "json",
|
|
|
|
|
|
success: res => {
|
|
|
|
|
|
if (res.data.code == 0 && (res.data.data.package || null) != null) {
|
|
|
|
|
|
var data = res.data.data.package;
|
|
|
|
|
|
var wx = require('jweixin-module');
|
|
|
|
|
|
wx.config({
|
|
|
|
|
|
debug: false,
|
|
|
|
|
|
appId: data.appId,
|
|
|
|
|
|
timestamp: data.timestamp,
|
|
|
|
|
|
nonceStr: data.nonceStr,
|
|
|
|
|
|
signature: data.signature,
|
|
|
|
|
|
jsApiList: [
|
|
|
|
|
|
'updateAppMessageShareData',
|
|
|
|
|
|
'updateTimelineShareData',
|
|
|
|
|
|
'onMenuShareWeibo'
|
|
|
|
|
|
]
|
|
|
|
|
|
});
|
|
|
|
|
|
wx.ready(function () {
|
|
|
|
|
|
// 自定义“分享给朋友”及“分享到QQ”按钮的分享内容
|
|
|
|
|
|
wx.updateAppMessageShareData({
|
|
|
|
|
|
title: share.title,
|
|
|
|
|
|
desc: share.desc,
|
|
|
|
|
|
link: share.url,
|
|
|
|
|
|
imgUrl: share.img
|
|
|
|
|
|
});
|
|
|
|
|
|
// 自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
|
|
|
|
|
|
wx.updateTimelineShareData({
|
|
|
|
|
|
title: share.title,
|
|
|
|
|
|
link: share.url,
|
|
|
|
|
|
imgUrl: share.img
|
|
|
|
|
|
});
|
|
|
|
|
|
// 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
|
|
|
|
|
|
wx.onMenuShareWeibo({
|
|
|
|
|
|
title: share.title,
|
|
|
|
|
|
desc: share.desc,
|
|
|
|
|
|
link: share.url,
|
|
|
|
|
|
imgUrl: share.img
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: () => {
|
|
|
|
|
|
this.showToast("服务器请求出错");
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
2021-11-16 07:05:37 +00:00
|
|
|
|
// #endif
|
2022-04-07 03:21:21 +00:00
|
|
|
|
|
|
|
|
|
|
// #ifdef MP-BAIDU
|
|
|
|
|
|
// 百度小程序wab化搜索引擎数据设置
|
|
|
|
|
|
uni.setPageInfo({
|
|
|
|
|
|
title: share.title,
|
|
|
|
|
|
keywords: share.kds || share.desc,
|
|
|
|
|
|
articleTitle: share.title,
|
|
|
|
|
|
description: share.desc,
|
|
|
|
|
|
image: share.img,
|
|
|
|
|
|
video: ((share.video || null) == null) ? [] : [{
|
|
|
|
|
|
url: share.video,
|
|
|
|
|
|
duration: '100',
|
|
|
|
|
|
image: share.img
|
|
|
|
|
|
}]
|
|
|
|
|
|
});
|
|
|
|
|
|
// #endif
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取配置信息、可指定key和默认值
|
|
|
|
|
|
* key 数据key(支持多级读取、以 . 分割key名称)
|
|
|
|
|
|
* default_value 默认值
|
|
|
|
|
|
*/
|
|
|
|
|
|
get_config(key, default_value) {
|
|
|
|
|
|
var value = null;
|
|
|
|
|
|
var config = uni.getStorageSync(this.data.cache_config_info_key) || null;
|
|
|
|
|
|
if (config != null) {
|
|
|
|
|
|
// 数据读取
|
|
|
|
|
|
var arr = key.split('.');
|
|
|
|
|
|
if (arr.length == 1) {
|
|
|
|
|
|
value = config[key] == undefined ? null : config[key];
|
|
|
|
|
|
} else {
|
|
|
|
|
|
value = config;
|
|
|
|
|
|
for (var i in arr) {
|
|
|
|
|
|
if (value[arr[i]] != undefined) {
|
|
|
|
|
|
value = value[arr[i]];
|
|
|
|
|
|
} else {
|
|
|
|
|
|
value = null;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2022-04-07 03:21:21 +00:00
|
|
|
|
}
|
|
|
|
|
|
// 默认值
|
|
|
|
|
|
if(value == null && default_value != undefined) {
|
|
|
|
|
|
value = default_value;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 无数据则处理自定义字段定义的数据
|
|
|
|
|
|
if(value == null) {
|
|
|
|
|
|
switch(key) {
|
|
|
|
|
|
// 货币符号
|
|
|
|
|
|
case 'currency_symbol' :
|
|
|
|
|
|
value = this.data.currency_symbol;
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
2021-09-26 15:40:23 +00:00
|
|
|
|
}
|
2021-12-22 05:58:48 +00:00
|
|
|
|
return value;
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化 配置信息
|
|
|
|
|
|
init_config() {
|
|
|
|
|
|
uni.request({
|
|
|
|
|
|
url: this.get_request_url('common', 'base'),
|
|
|
|
|
|
method: 'POST',
|
2021-12-07 03:57:16 +00:00
|
|
|
|
data: {is_key: 1},
|
2021-09-26 15:40:23 +00:00
|
|
|
|
dataType: 'json',
|
|
|
|
|
|
success: res => {
|
|
|
|
|
|
if (res.data.code == 0) {
|
|
|
|
|
|
uni.setStorage({
|
|
|
|
|
|
key: this.data.cache_config_info_key,
|
|
|
|
|
|
data: res.data.data,
|
|
|
|
|
|
fail: () => {
|
|
|
|
|
|
this.showToast('配置信息缓存失败');
|
|
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 用户自动登录处理
|
2022-04-20 13:26:16 +00:00
|
|
|
|
this.user_auto_login_handle();
|
2021-09-26 15:40:23 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
this.showToast(res.data.msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: () => {
|
|
|
|
|
|
this.showToast('服务器请求出错');
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 配置是否有效(100毫秒检验一次、最多检验100次)
|
|
|
|
|
|
* object 回调操作对象
|
|
|
|
|
|
* method 回调操作对象的函数
|
|
|
|
|
|
*/
|
2022-10-18 10:32:18 +00:00
|
|
|
|
is_config(object, method) {
|
2021-09-26 15:40:23 +00:00
|
|
|
|
var self = this;
|
|
|
|
|
|
var count = 0;
|
|
|
|
|
|
var timer = setInterval(function() {
|
|
|
|
|
|
if (self.get_config('status') == 1) {
|
|
|
|
|
|
clearInterval(timer);
|
|
|
|
|
|
|
|
|
|
|
|
if (typeof object === 'object' && (method || null) != null) {
|
|
|
|
|
|
object[method](true);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
count++;
|
|
|
|
|
|
|
|
|
|
|
|
if (count >= 100) {
|
|
|
|
|
|
clearInterval(timer);
|
|
|
|
|
|
}
|
|
|
|
|
|
}, 100);
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 火星坐标GCJ02到百度坐标BD-09(高德,谷歌,腾讯坐标 -> 百度)
|
|
|
|
|
|
* lng 经度
|
|
|
|
|
|
* lat 纬度
|
|
|
|
|
|
*/
|
|
|
|
|
|
map_gcj_to_bd(lng, lat) {
|
|
|
|
|
|
lng = parseFloat(lng);
|
|
|
|
|
|
lat = parseFloat(lat);
|
|
|
|
|
|
let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
|
|
|
|
|
|
let x = lng;
|
|
|
|
|
|
let y = lat;
|
|
|
|
|
|
let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
|
|
|
|
|
|
let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
|
|
|
|
|
|
let lngs = z * Math.cos(theta) + 0.0065;
|
|
|
|
|
|
let lats = z * Math.sin(theta) + 0.006;
|
|
|
|
|
|
return {
|
|
|
|
|
|
lng: lngs,
|
|
|
|
|
|
lat: lats
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 百度坐标BD-09到火星坐标GCJ02(百度 -> 高德,谷歌,腾讯坐标)
|
|
|
|
|
|
* lng 经度
|
|
|
|
|
|
* lat 纬度
|
|
|
|
|
|
*/
|
|
|
|
|
|
map_bd_to_gcj(lng, lat) {
|
|
|
|
|
|
lng = parseFloat(lng);
|
|
|
|
|
|
lat = parseFloat(lat);
|
|
|
|
|
|
let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
|
|
|
|
|
|
let x = lng - 0.0065;
|
|
|
|
|
|
let y = lat - 0.006;
|
|
|
|
|
|
let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
|
|
|
|
|
|
let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
|
|
|
|
|
|
let lngs = z * Math.cos(theta);
|
|
|
|
|
|
let lats = z * Math.sin(theta);
|
|
|
|
|
|
return {
|
|
|
|
|
|
lng: lngs,
|
|
|
|
|
|
lat: lats
|
|
|
|
|
|
};
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
2022-10-18 10:32:18 +00:00
|
|
|
|
* 打开地图
|
2021-09-26 15:40:23 +00:00
|
|
|
|
* lng 经度
|
|
|
|
|
|
* lat 纬度
|
|
|
|
|
|
* name 地图上面显示的名称
|
|
|
|
|
|
* address 地图上面显示的详细地址
|
|
|
|
|
|
* scale 缩放比例,范围5~18
|
|
|
|
|
|
*/
|
2022-10-18 10:32:18 +00:00
|
|
|
|
open_location(lng, lat, name, address, scale) {
|
|
|
|
|
|
// #ifdef MP-KUAISHOU
|
|
|
|
|
|
this.showToast('请复制地址到网页地图中查看!');
|
|
|
|
|
|
return false;
|
2022-05-18 07:12:50 +00:00
|
|
|
|
// #endif
|
2022-10-18 10:32:18 +00:00
|
|
|
|
|
2021-09-26 15:40:23 +00:00
|
|
|
|
if (lng == undefined || lat == undefined || lng == '' || lat == '') {
|
|
|
|
|
|
this.showToast('坐标有误');
|
|
|
|
|
|
return false;
|
2021-12-17 02:49:21 +00:00
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
|
2021-10-17 15:59:51 +00:00
|
|
|
|
// 转换坐标打开位置
|
2021-09-26 15:40:23 +00:00
|
|
|
|
uni.openLocation({
|
|
|
|
|
|
name: name || '地理位置',
|
|
|
|
|
|
address: address || '',
|
|
|
|
|
|
scale: scale || 18,
|
2022-10-18 10:32:18 +00:00
|
|
|
|
longitude: parseFloat(lng),
|
|
|
|
|
|
latitude: parseFloat(lat)
|
2021-09-26 15:40:23 +00:00
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// uuid生成
|
|
|
|
|
|
uuid() {
|
|
|
|
|
|
var d = new Date().getTime();
|
|
|
|
|
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
|
|
|
|
|
|
var r = (d + Math.random() * 16) % 16 | 0;
|
|
|
|
|
|
d = Math.floor(d / 16);
|
|
|
|
|
|
return (c == 'x' ? r : r & 0x3 | 0x8).toString(16);
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 获取当前uuid
|
|
|
|
|
|
request_uuid() {
|
|
|
|
|
|
var uuid = uni.getStorageSync(this.data.cache_user_uuid_key) || null;
|
|
|
|
|
|
if (uuid == null) {
|
|
|
|
|
|
uuid = this.uuid();
|
|
|
|
|
|
uni.setStorage({
|
|
|
|
|
|
key: this.data.cache_user_uuid_key,
|
|
|
|
|
|
data: uuid,
|
|
|
|
|
|
fail: () => {
|
|
|
|
|
|
this.showToast('uuid缓存失败');
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
return uuid;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 链接地址事件
|
|
|
|
|
|
url_event(e) {
|
2022-11-20 13:31:42 +00:00
|
|
|
|
var value = e.currentTarget.dataset.value || null;
|
|
|
|
|
|
var is_redirect = parseInt(e.currentTarget.dataset.redirect || 0) == 1;
|
|
|
|
|
|
this.url_open(value, is_redirect);
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// url打开
|
|
|
|
|
|
url_open(value, is_redirect = false) {
|
2023-03-17 11:33:57 +00:00
|
|
|
|
if ((value || null) != null) {
|
|
|
|
|
|
// web地址
|
|
|
|
|
|
var http_arr = ['http:/', 'https:'];
|
|
|
|
|
|
if (http_arr.indexOf(value.substr(0, 6)) != -1) {
|
|
|
|
|
|
this.open_web_view(value);
|
|
|
|
|
|
|
|
|
|
|
|
// 打开外部小程序协议
|
|
|
|
|
|
} else if(value.substr(0, 8) == 'appid://') {
|
|
|
|
|
|
uni.navigateToMiniProgram({
|
|
|
|
|
|
appId: value.substr(8)
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
// 地图协议
|
|
|
|
|
|
} else if(value.substr(0, 6) == 'map://') {
|
|
|
|
|
|
var values = value.substr(6).split('|');
|
|
|
|
|
|
if (values.length != 4) {
|
|
|
|
|
|
this.showToast('事件值格式有误');
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
this.open_location(values[2], values[3], values[0], values[1]);
|
|
|
|
|
|
|
|
|
|
|
|
// 电话协议
|
|
|
|
|
|
} else if(value.substr(0, 6) == 'tel://') {
|
|
|
|
|
|
this.call_tel(value.substr(6));
|
|
|
|
|
|
|
|
|
|
|
|
// 默认切换或跳转页面
|
2022-10-18 10:32:18 +00:00
|
|
|
|
} else {
|
2023-03-17 11:33:57 +00:00
|
|
|
|
if (this.is_tabbar_pages(value)) {
|
|
|
|
|
|
var temp = value.split('?');
|
|
|
|
|
|
if(temp.length > 1 && (temp[1] || null) != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
value = temp[0];
|
|
|
|
|
|
var query = this.url_params_to_json(temp[1]);
|
|
|
|
|
|
uni.setStorageSync(this.data.cache_page_tabbar_switch_params, query);
|
|
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
uni.switchTab({
|
|
|
|
|
|
url: value
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if(is_redirect) {
|
|
|
|
|
|
uni.redirectTo({
|
|
|
|
|
|
url: value
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
|
url: value
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 剪贴板
|
2022-10-18 10:32:18 +00:00
|
|
|
|
text_copy_event(data) {
|
2022-07-06 06:43:13 +00:00
|
|
|
|
var value = (typeof(data) == 'object') ? (data.currentTarget.dataset.value || null) : (data || null);
|
2021-09-26 15:40:23 +00:00
|
|
|
|
if (value != null) {
|
|
|
|
|
|
var self = this;
|
|
|
|
|
|
uni.setClipboardData({
|
|
|
|
|
|
data: value,
|
|
|
|
|
|
success(res) {
|
|
|
|
|
|
uni.getClipboardData({
|
|
|
|
|
|
success(res) {
|
|
|
|
|
|
self.showToast('复制成功', 'success');
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.showToast('复制内容为空');
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 图片预览
|
|
|
|
|
|
image_show_event(e) {
|
|
|
|
|
|
var value = e.currentTarget.dataset.value || null;
|
|
|
|
|
|
if (value != null) {
|
|
|
|
|
|
uni.previewImage({
|
|
|
|
|
|
current: value,
|
|
|
|
|
|
urls: [value]
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.showToast('图片地址为空');
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2021-12-17 02:49:21 +00:00
|
|
|
|
|
|
|
|
|
|
// 静态文件url地址
|
|
|
|
|
|
get_static_url(type, is_plugins) {
|
|
|
|
|
|
// 默认公共地址
|
|
|
|
|
|
if((type || null) == null) {
|
|
|
|
|
|
type = 'common';
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 是否插件
|
|
|
|
|
|
if((is_plugins || false) == true) {
|
|
|
|
|
|
// 根据配置的静态url地址+插件标识符
|
|
|
|
|
|
return this.data.static_url+'static/plugins/images/'+type+'/';
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 根据配置的静态url地址+主题标识+参数类型组合远程静态文件地址
|
|
|
|
|
|
return this.data.static_url+'static/app/'+this.data.default_theme+'/'+type+'/';
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// rpx转px
|
|
|
|
|
|
rpx_to_px(value) {
|
|
|
|
|
|
return ((value || 0) == 0) ? 0 : parseInt(value) / 750 * parseInt(this.get_system_info('windowWidth', 0));
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// px转rpx
|
|
|
|
|
|
px_to_rpx(value) {
|
|
|
|
|
|
return ((value || 0) == 0) ? 0 : parseInt(value) * 750 / parseInt(this.get_system_info('windowWidth', 0));
|
|
|
|
|
|
},
|
2023-03-16 03:23:48 +00:00
|
|
|
|
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 终端类型
|
|
|
|
|
|
application_client() {
|
|
|
|
|
|
var type = '';
|
|
|
|
|
|
// #ifdef APP
|
|
|
|
|
|
type = 'app';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
type = 'h5';
|
|
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #ifdef MP
|
|
|
|
|
|
type = 'mp';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
return type;
|
|
|
|
|
|
},
|
2023-03-16 03:23:48 +00:00
|
|
|
|
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 终端类型值
|
|
|
|
|
|
application_client_type() {
|
|
|
|
|
|
var value = '';
|
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
|
value = 'weixin';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #ifdef MP-ALIPAY
|
|
|
|
|
|
value = 'alipay';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #ifdef MP-BAIDU
|
|
|
|
|
|
value = 'baidu';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #ifdef MP-QQ
|
|
|
|
|
|
value = 'qq';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #ifdef MP-TOUTIAO
|
|
|
|
|
|
value = 'toutiao';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2022-10-18 10:32:18 +00:00
|
|
|
|
// #ifdef MP-KUAISHOU
|
|
|
|
|
|
value = 'kuaishou';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
value = 'h5';
|
2023-03-16 03:23:48 +00:00
|
|
|
|
// #endif
|
2021-12-17 02:49:21 +00:00
|
|
|
|
return value;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 授权验证
|
|
|
|
|
|
auth_check(object, method, scope, msg) {
|
|
|
|
|
|
var self = this;
|
|
|
|
|
|
uni.getSetting({
|
|
|
|
|
|
success(res) {
|
|
|
|
|
|
if (!res.authSetting[scope]) {
|
|
|
|
|
|
uni.authorize({
|
|
|
|
|
|
scope: scope,
|
|
|
|
|
|
success (res) {
|
|
|
|
|
|
if (typeof object === 'object' && (method || null) != null) {
|
|
|
|
|
|
object[method](1);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail (res) {
|
|
|
|
|
|
self.showToast(msg || '请打开授权');
|
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
|
uni.openSetting();
|
|
|
|
|
|
}, 1000);
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
if (typeof object === 'object' && (method || null) != null) {
|
|
|
|
|
|
object[method](1);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 窗口宽度处理
|
|
|
|
|
|
window_width_handle(width) {
|
|
|
|
|
|
// #ifdef H5 || APP
|
|
|
|
|
|
if(width > 800) {
|
|
|
|
|
|
width = 800;
|
|
|
|
|
|
}
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
return width;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 窗口高度处理
|
|
|
|
|
|
window_height_handle(system) {
|
|
|
|
|
|
var height = system.windowHeight;
|
|
|
|
|
|
// 状态栏
|
|
|
|
|
|
if(system.statusBarHeight > 0) {
|
|
|
|
|
|
height += system.statusBarHeight;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 导航栏
|
|
|
|
|
|
if(system.windowTop > 0) {
|
|
|
|
|
|
height += system.windowTop;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 底部菜单
|
|
|
|
|
|
if(system.windowBottom > 0) {
|
|
|
|
|
|
height += system.windowBottom;
|
|
|
|
|
|
}
|
|
|
|
|
|
return height;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
2022-10-18 10:32:18 +00:00
|
|
|
|
// 获取当前页面地址
|
2022-07-06 06:43:13 +00:00
|
|
|
|
// is_whole 完整地址(?后面的参数)
|
|
|
|
|
|
get_page_url(is_whole = true) {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #ifdef MP || APP
|
2022-04-07 03:21:21 +00:00
|
|
|
|
var url = this.current_page();
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// #endif
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
var url = window.location.href;
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
if(is_whole == false) {
|
|
|
|
|
|
var temp = url.split('?');
|
|
|
|
|
|
url = temp[0];
|
|
|
|
|
|
}
|
|
|
|
|
|
return url;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 是否微信环境
|
2022-04-20 13:26:16 +00:00
|
|
|
|
is_weixin_env() {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
var agent = navigator.userAgent.toLowerCase();
|
|
|
|
|
|
if(agent.match(/MicroMessenger/i) == 'micromessenger') {
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 用户微信webopenid是否存在
|
2023-01-05 11:08:52 +00:00
|
|
|
|
is_user_weixin_web_openid(order_ids, payment_id = 0) {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 微信环境判断是否已有web_openid、不存在则跳转到插件进行授权
|
2022-04-20 13:26:16 +00:00
|
|
|
|
if(this.is_weixin_env()) {
|
2021-12-17 02:49:21 +00:00
|
|
|
|
var web_openid = this.get_user_cache_info('weixin_web_openid') || null;
|
|
|
|
|
|
if(web_openid == null) {
|
|
|
|
|
|
// 已经授权则重新刷新用户信息
|
|
|
|
|
|
var params = this.get_launch_cache_info();
|
|
|
|
|
|
if(params != null && (params.is_weixin_auth_web_openid || 0) == 1) {
|
|
|
|
|
|
uni.showLoading({
|
|
|
|
|
|
title: "处理中..."
|
|
|
|
|
|
});
|
|
|
|
|
|
uni.request({
|
|
|
|
|
|
url: this.get_request_url("tokenuserinfo", "user"),
|
|
|
|
|
|
method: "POST",
|
|
|
|
|
|
data: {},
|
|
|
|
|
|
dataType: "json",
|
|
|
|
|
|
success: res => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
if (res.data.code == 0) {
|
2022-01-20 06:03:52 +00:00
|
|
|
|
uni.setStorageSync(this.data.cache_user_info_key, res.data.data);
|
2021-12-17 02:49:21 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
this.showToast(res.data.msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
fail: () => {
|
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
|
this.showToast("服务器请求出错");
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
return true;
|
2023-01-05 11:08:52 +00:00
|
|
|
|
} else {
|
|
|
|
|
|
uni.setStorageSync(this.data.cache_page_pay_key, {
|
|
|
|
|
|
order_ids: (typeof order_ids == 'array') ? order_ids.join(',') : order_ids,
|
|
|
|
|
|
payment_id: payment_id
|
|
|
|
|
|
});
|
2021-12-17 02:49:21 +00:00
|
|
|
|
var page_url = this.get_page_url();
|
|
|
|
|
|
page_url += (page_url.indexOf('?') == -1) ? '?' : '&';
|
|
|
|
|
|
page_url += 'is_weixin_auth_web_openid=1';
|
|
|
|
|
|
var request_url = encodeURIComponent(base64.encode(page_url));
|
2022-05-19 06:40:59 +00:00
|
|
|
|
var url = this.get_request_url("index", "pay", "weixinwebauthorization", "request_url="+request_url, "index").replace('&ajax=ajax', '');
|
2021-12-17 02:49:21 +00:00
|
|
|
|
window.location.href = url;
|
|
|
|
|
|
}
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// app标题
|
|
|
|
|
|
get_application_title() {
|
|
|
|
|
|
var value = null;
|
|
|
|
|
|
// 根据终端类型获取对应数据
|
|
|
|
|
|
var type = this.application_client_type() || null;
|
|
|
|
|
|
if(type !== null) {
|
|
|
|
|
|
value = this.get_config('config.common_app_mini_'+type+'_title') || null;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 获取公共数据
|
|
|
|
|
|
if(value === null) {
|
|
|
|
|
|
value = this.get_config('config.home_site_name', this.data.application_title);
|
|
|
|
|
|
}
|
|
|
|
|
|
return value;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// app描述
|
|
|
|
|
|
get_application_describe() {
|
|
|
|
|
|
var value = null;
|
|
|
|
|
|
// 根据终端类型获取对应数据
|
|
|
|
|
|
var type = this.application_client_type() || null;
|
|
|
|
|
|
if(type !== null) {
|
|
|
|
|
|
value = this.get_config('config.common_app_mini_'+type+'_describe') || null;
|
|
|
|
|
|
}
|
|
|
|
|
|
// 获取公共数据
|
|
|
|
|
|
if(value === null) {
|
|
|
|
|
|
value = this.data.application_describe;
|
|
|
|
|
|
}
|
|
|
|
|
|
return value;
|
2022-11-22 07:04:43 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// applogo
|
|
|
|
|
|
get_application_logo() {
|
|
|
|
|
|
return this.get_config('config.home_site_logo_wap', this.data.application_logo);
|
2021-12-17 02:49:21 +00:00
|
|
|
|
},
|
2022-08-13 14:00:44 +00:00
|
|
|
|
|
2021-12-17 02:49:21 +00:00
|
|
|
|
// 分享内容处理
|
|
|
|
|
|
share_content_handle(data) {
|
|
|
|
|
|
// 获取插件配置信息
|
|
|
|
|
|
var share_config = this.get_config('plugins_base.share.data') || {};
|
|
|
|
|
|
var result = {
|
2022-08-13 14:00:44 +00:00
|
|
|
|
title: data.title || share_config.title || this.get_application_title(),
|
|
|
|
|
|
desc: data.desc || share_config.desc || this.get_application_describe(),
|
2022-02-21 06:56:10 +00:00
|
|
|
|
path: data.path || this.data.tabbar_pages[0],
|
2021-12-17 02:49:21 +00:00
|
|
|
|
query: this.share_query_handle(data.query || ''),
|
|
|
|
|
|
img: data.img || share_config.pic || this.get_config('config.home_site_logo_square')
|
|
|
|
|
|
};
|
|
|
|
|
|
result['url'] = this.get_page_url();
|
|
|
|
|
|
// #ifdef H5
|
|
|
|
|
|
result['url'] = result.url.split('#')[0] + '#' + ((result.path.substr(0 ,1) == '/') ? '' : '/') + result.path + result.query;
|
|
|
|
|
|
// #endif
|
|
|
|
|
|
return result;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 分享参数处理
|
|
|
|
|
|
share_query_handle(query) {
|
|
|
|
|
|
if((query || null) == null || query.indexOf('referrer') == -1) {
|
|
|
|
|
|
var user_id = parseInt(this.get_user_cache_info('id', 0)) || 0;
|
|
|
|
|
|
if(user_id > 0) {
|
|
|
|
|
|
var join = ((query || null) == null) ? '' : '&';
|
|
|
|
|
|
query += join+'referrer='+user_id;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return ((query || null) == null) ? '' : '?'+query;
|
2022-04-07 03:21:21 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 是否朋友圈单页访问提示
|
|
|
|
|
|
is_single_page_check() {
|
|
|
|
|
|
if(this.is_current_single_page() == 1) {
|
|
|
|
|
|
this.showToast('请前往小程序使用完整服务');
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 当前页面地址
|
|
|
|
|
|
current_page() {
|
|
|
|
|
|
// 来源地址、拼接当前小程序页面
|
|
|
|
|
|
var pages = getCurrentPages();
|
2022-10-18 10:32:18 +00:00
|
|
|
|
var page = pages[pages.length-1];
|
2022-04-20 13:26:16 +00:00
|
|
|
|
return this.page_url_handle(page);
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
2022-11-20 13:31:42 +00:00
|
|
|
|
|
2022-10-18 10:32:18 +00:00
|
|
|
|
// 上一页页面地址
|
|
|
|
|
|
prev_page() {
|
|
|
|
|
|
var value = null;
|
|
|
|
|
|
var pages = getCurrentPages();
|
|
|
|
|
|
var length = pages.length;
|
|
|
|
|
|
if(length > 1) {
|
|
|
|
|
|
value = this.page_url_handle(pages[length-2]);
|
|
|
|
|
|
}
|
|
|
|
|
|
return value;
|
2022-11-20 13:31:42 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 返回上一页、则回到shouy
|
|
|
|
|
|
page_back_prev_event() {
|
|
|
|
|
|
var prev_page = this.prev_page();
|
|
|
|
|
|
if(prev_page == null) {
|
|
|
|
|
|
uni.switchTab({url: this.data.tabbar_pages[0]});
|
|
|
|
|
|
} else {
|
|
|
|
|
|
uni.navigateBack();
|
|
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
2022-11-20 13:31:42 +00:00
|
|
|
|
|
2022-10-18 10:32:18 +00:00
|
|
|
|
// 页面地址处理
|
|
|
|
|
|
page_url_handle(page) {
|
|
|
|
|
|
var route = page.route;
|
|
|
|
|
|
var options = page.options || {};
|
|
|
|
|
|
var query = '';
|
|
|
|
|
|
if(JSON.stringify(options) != '{}') {
|
|
|
|
|
|
for(var i in options) {
|
|
|
|
|
|
query += '&'+i+'='+options[i];
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if((query || null) != null) {
|
|
|
|
|
|
route += '?'+query.substr(1);
|
|
|
|
|
|
}
|
|
|
|
|
|
return route;
|
2022-04-07 03:21:21 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 进入客服
|
|
|
|
|
|
chat_entry_handle(url) {
|
|
|
|
|
|
if((url || null) == null) {
|
|
|
|
|
|
this.showToast("客服地址有误");
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 拼接基础参数
|
|
|
|
|
|
url = this.request_params_handle(url);
|
|
|
|
|
|
|
|
|
|
|
|
// 拼接当前页面地址
|
|
|
|
|
|
var route = this.current_page();
|
|
|
|
|
|
url += '&source='+encodeURIComponent(base64.encode(route).replace(new RegExp(/=/g), ''));
|
|
|
|
|
|
|
|
|
|
|
|
// 打开webview
|
|
|
|
|
|
this.open_web_view(url);
|
|
|
|
|
|
}
|
2022-10-18 10:32:18 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 用户自动登录处理
|
|
|
|
|
|
user_auto_login_handle() {
|
|
|
|
|
|
// #ifdef H5
|
2023-03-15 15:20:11 +00:00
|
|
|
|
var user = this.get_user_cache_info();
|
2022-10-18 10:32:18 +00:00
|
|
|
|
if(user == null) {
|
|
|
|
|
|
var params = this.get_launch_cache_info() || {};
|
|
|
|
|
|
var config = this.get_config('plugins_base.thirdpartylogin.data') || null;
|
|
|
|
|
|
var data = this.get_config('plugins_thirdpartylogin_data') || null;
|
|
|
|
|
|
var url = null;
|
|
|
|
|
|
// 是否微信环境
|
|
|
|
|
|
if((params.thirdpartylogin || null) == null && config != null && data != null && this.is_weixin_env()) {
|
|
|
|
|
|
var is_auto = config.weixin_is_env_auto_login || 0;
|
|
|
|
|
|
var weixin = data.weixin || null;
|
|
|
|
|
|
if(is_auto != 0 && weixin != null) {
|
|
|
|
|
|
url = weixin.login_url;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 存在登录url则跳转登录
|
|
|
|
|
|
if(url != null) {
|
|
|
|
|
|
// 上一个页面记录
|
|
|
|
|
|
var page = this.current_page();
|
|
|
|
|
|
if(page != null) {
|
|
|
|
|
|
uni.setStorageSync(this.data.cache_prev_page_key, page);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 跳转登录
|
|
|
|
|
|
window.location.href = url;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
// #endif
|
2022-11-20 13:31:42 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 清除用户缓存
|
|
|
|
|
|
remove_user_cache_event() {
|
|
|
|
|
|
// 用户登录缓存
|
|
|
|
|
|
uni.removeStorageSync(this.data.cache_user_login_key);
|
|
|
|
|
|
// 用户信息缓存
|
|
|
|
|
|
uni.removeStorageSync(this.data.cache_user_info_key);
|
|
|
|
|
|
|
|
|
|
|
|
// 非小程序则两秒后回到首页
|
|
|
|
|
|
this.showToast('清除成功', 'success');
|
|
|
|
|
|
var url = this.data.tabbar_pages[0];
|
|
|
|
|
|
setTimeout(function() {
|
|
|
|
|
|
uni.switchTab({url: url});
|
|
|
|
|
|
}, 1500);
|
2021-12-07 03:57:16 +00:00
|
|
|
|
}
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 小程序初始化
|
|
|
|
|
|
*/
|
2022-04-07 03:21:21 +00:00
|
|
|
|
onLaunch(params) {},
|
2023-03-18 15:47:36 +00:00
|
|
|
|
|
2022-04-07 03:21:21 +00:00
|
|
|
|
/**
|
|
|
|
|
|
* 小程序页面显示
|
|
|
|
|
|
*/
|
|
|
|
|
|
onShow(params) {
|
|
|
|
|
|
// 初始化配置
|
|
|
|
|
|
this.globalData.init_config();
|
|
|
|
|
|
|
|
|
|
|
|
// 设置设备信息
|
|
|
|
|
|
this.globalData.set_system_info();
|
|
|
|
|
|
|
|
|
|
|
|
// 参数处理+缓存
|
|
|
|
|
|
this.globalData.set_launch_cache_info(params);
|
|
|
|
|
|
|
|
|
|
|
|
// 场景值
|
|
|
|
|
|
this.globalData.set_scene_data(params);
|
2021-09-26 15:40:23 +00:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
methods: {}
|
|
|
|
|
|
};
|
|
|
|
|
|
</script>
|
2021-12-17 02:49:21 +00:00
|
|
|
|
<style>
|
|
|
|
|
|
@import './common/css/page.css';
|
|
|
|
|
|
@import './common/css/business.css';
|
|
|
|
|
|
@import './common/css/plugins.css';
|
|
|
|
|
|
@import './common/css/lib.css';
|
2021-10-22 11:09:03 +00:00
|
|
|
|
@import './common/css/theme/yellow.css';
|
2021-09-26 15:40:23 +00:00
|
|
|
|
</style>
|