1198 lines
39 KiB
JavaScript
1198 lines
39 KiB
JavaScript
import Vue from 'vue'
|
||
import Vuex from 'vuex'
|
||
|
||
import $ from "../helpers/util";
|
||
import Socket from '../helpers/useSocket.js';
|
||
import apiconfig from '../helpers/apiconfig.js'
|
||
|
||
// #ifdef H5
|
||
import $cookies from '../helpers/vue-cookies';
|
||
// #endif
|
||
|
||
import Config from '../config/config'
|
||
import StateCode from '../config/statecode'
|
||
import Lang from '../config/lang'
|
||
|
||
|
||
import notice from '../helpers/notice'
|
||
|
||
|
||
|
||
const MSG_INDEX = null;
|
||
const CART_INDEX = 3;
|
||
const FORCED_LOGIN_STATE = false; //true:不提示登录tips,直接跳转
|
||
|
||
Vue.use(Vuex)
|
||
|
||
// 管理账号信息
|
||
const USERS_KEY = 'USERS_KEY';
|
||
const STATE_KEY = 'STATE_KEY';
|
||
|
||
var ret = uni.getStorageSync(USERS_KEY);
|
||
let default_user_info = {
|
||
user_nickname: Lang.__("未注册用户"),
|
||
user_avatar: "https://static.lancerdt.com/demodata/assets/data/avatar.png",
|
||
user_is_new: 1
|
||
};
|
||
|
||
|
||
uni.getSystemInfo({
|
||
success: (res) => {
|
||
Config.systemInfo = res
|
||
}
|
||
})
|
||
|
||
|
||
const store = new Vuex.Store({
|
||
state: {
|
||
/**
|
||
* 是否需要强制登录
|
||
*/
|
||
forcedLoginState: FORCED_LOGIN_STATE,
|
||
hasLogin: uni.getStorageSync('ukey') ? true : false,
|
||
userName: "",
|
||
cartNum: 0,
|
||
cartList: [],
|
||
cartMap: {},
|
||
newMsgNum: 0,
|
||
|
||
plantformInfo: {
|
||
return_state_list: [
|
||
{
|
||
"ext1": null,
|
||
"label": "提交退单",
|
||
"enable": null,
|
||
"value": 3100,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "退单审核",
|
||
"enable": null,
|
||
"value": 3105,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "收货确认",
|
||
"enable": null,
|
||
"value": 3110,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "退款确认",
|
||
"enable": null,
|
||
"value": 3115,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "收款确认",
|
||
"enable": null,
|
||
"value": 3120,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "完成",
|
||
"enable": null,
|
||
"value": 3125,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "拒绝退货",
|
||
"enable": null,
|
||
"value": 3130,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "买家取消",
|
||
"enable": null,
|
||
"value": 3135,
|
||
"ext2": null
|
||
}
|
||
],
|
||
|
||
order_state_list: [
|
||
{
|
||
"ext1": null,
|
||
"label": "待支付",
|
||
"enable": null,
|
||
"value": 2010,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "待出库",
|
||
"enable": null,
|
||
"value": 2020,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "待发货",
|
||
"enable": null,
|
||
"value": 2030,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "待收货",
|
||
"enable": null,
|
||
"value": 2040,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "交易完成",
|
||
"enable": null,
|
||
"value": 2060,
|
||
"ext2": null
|
||
},
|
||
{
|
||
"ext1": null,
|
||
"label": "交易取消",
|
||
"enable": null,
|
||
"value": 2070,
|
||
"ext2": null
|
||
}
|
||
]
|
||
}, //平台信息
|
||
districtTree: null, //地址信息
|
||
shopInfo: {},
|
||
chainInfo: {},
|
||
|
||
Config: Config, //配置信息
|
||
StateCode: StateCode, //状态码
|
||
|
||
$: $,
|
||
sprintf: $.sprintf,
|
||
|
||
$Socket: Socket,
|
||
$apiconfig: apiconfig,
|
||
|
||
//用户信息
|
||
userInfo:(ret? JSON.parse(ret) : Object.assign({}, default_user_info)),
|
||
|
||
userData:null, //废弃 userInfo 取代
|
||
userResource:null,//废弃 userInfo 取代
|
||
|
||
//start Im
|
||
getMsg:{},
|
||
adduser:{},
|
||
addgroup:{},
|
||
msgboxuser:'',
|
||
msgboxgroup:'',
|
||
userstate:'',///用户状态
|
||
chatTolist:{},///当前聊天对话的里面是聊天的对象和
|
||
currentChatPuid:'',///当前聊天对话用户
|
||
//end Im
|
||
|
||
//start music
|
||
historyList: $.getStorageSync("HISTORY") || [],
|
||
paused: true,
|
||
playInfo: $.getStorageSync("PLAY_INFO") || {},
|
||
//end music
|
||
|
||
notice: notice,
|
||
|
||
__: Lang.__,
|
||
Lang: Lang
|
||
},
|
||
mutations: {
|
||
login(state, userInfo) {
|
||
|
||
if ('user_avatar' in userInfo)
|
||
{
|
||
if (userInfo.user_avatar)
|
||
{
|
||
if(state.Config.HTTPS && userInfo.user_avatar.indexOf("https") == 0)
|
||
{
|
||
}
|
||
else
|
||
{
|
||
if(userInfo.user_avatar.indexOf("http") == 0)
|
||
{
|
||
|
||
}
|
||
else
|
||
{
|
||
if (state.Config.HTTPS)
|
||
{
|
||
userInfo.user_avatar = "https:" + userInfo.user_avatar;
|
||
}
|
||
else
|
||
{
|
||
userInfo.user_avatar = "http:" + userInfo.user_avatar;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
userInfo.user_avatar = "https://static.lancerdt.com/demodata/assets/data/avatar.png";
|
||
}
|
||
|
||
}
|
||
|
||
userInfo = Object.assign(state.userInfo, userInfo);
|
||
|
||
state.userInfo = userInfo;
|
||
state.userName = userInfo.user_nickname || Lang.__('未注册用户');
|
||
state.hasLogin = true;
|
||
|
||
|
||
//保存基本信息
|
||
uni.setStorageSync(USERS_KEY, JSON.stringify(userInfo));
|
||
|
||
//强制授权读取小程序或者公众号手机号
|
||
if ('as' in userInfo)
|
||
{
|
||
if (userInfo.as)
|
||
{
|
||
}
|
||
else
|
||
{
|
||
if (Config.FORCE_BIND_MOBILE)
|
||
{
|
||
setTimeout(()=>{
|
||
$.confirm(Lang.__('绑定手机号码'),
|
||
function(data) {
|
||
if (data.confirm) {
|
||
//绑定手机操作
|
||
$.gopage("/member/member/bindphone");
|
||
}
|
||
},true);
|
||
}, 2000)
|
||
}
|
||
}
|
||
|
||
}
|
||
},
|
||
logout(state, payload) {
|
||
if ($.source_data.source_type == StateCode.SOURCE_TYPE_APP)
|
||
{
|
||
plus.navigator.removeAllCookie();
|
||
}
|
||
|
||
|
||
if ($.source_data.source_type == StateCode.SOURCE_TYPE_H5)
|
||
{
|
||
console.info($cookies.keys());
|
||
|
||
let arr = $cookies.keys();
|
||
for (var i = 0; i < arr.length; i++) {
|
||
$cookies.remove(arr[i]);
|
||
}
|
||
|
||
//$cookies.remove('uid');
|
||
//$cookies.remove('ukey');
|
||
}
|
||
|
||
state.userInfo = Object.assign({}, default_user_info);
|
||
state.userName = state.userInfo.user_nickname;
|
||
state.hasLogin = false;
|
||
|
||
//IM
|
||
state.getMsg={};
|
||
state.adduser={};
|
||
state.addgroup={};
|
||
state.msgboxuser='';
|
||
state.msgboxgroup='';
|
||
state.userstate='';///用户状态
|
||
state.chatTolist={};///当前聊天对话的里面是聊天的对象和
|
||
state.currentChatPuid='';
|
||
|
||
try {
|
||
uni.closeSocket();
|
||
} catch (s) {}
|
||
|
||
if (payload)
|
||
{
|
||
$.toLogin(state.forcedLoginState);
|
||
}
|
||
},
|
||
forceUserInfo(state, callback) {
|
||
var that = this;
|
||
|
||
//记录来源页面
|
||
var pages = getCurrentPages();
|
||
var page = pages[pages.length - 1];
|
||
|
||
//page.route != 'pagesub/login/login' && page.route != 'pages/index/member'
|
||
|
||
if (page.route.indexOf("/login/") != -1) {
|
||
uni.setStorageSync('pre_route', page.route);
|
||
if (page.options) {
|
||
uni.setStorageSync('pre_options', page.options);
|
||
}
|
||
}
|
||
|
||
if (!state.hasLogin) {
|
||
if (state.forcedLoginState)
|
||
{
|
||
$.toLogin(true);
|
||
}
|
||
else
|
||
{
|
||
$.showModal({
|
||
title: Lang.__('未登录'),
|
||
content: Lang.__('您未登录,需要登录后才能继续'),
|
||
/**
|
||
* 如果需要强制登录,不显示取消按钮
|
||
*/
|
||
showCancel: !state.forcedLoginState,
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
/**
|
||
* 如果需要强制登录,使用reLaunch方式
|
||
*/
|
||
$.toLogin(state.forcedLoginState);
|
||
}
|
||
else
|
||
{
|
||
uni.navigateBack();
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//判断当前用户是否存在,不存在读取?
|
||
callback && callback($.isEmptyObject(state.userInfo) ? null : state.userInfo);
|
||
}
|
||
},
|
||
setUserInfo: function (state, payload) {
|
||
state.userInfo = Object.assign(state.userInfo, payload);
|
||
},
|
||
getUserInfo(state, callback) {
|
||
callback && callback($.isEmptyObject(state.userInfo) ? null : state.userInfo);
|
||
},
|
||
|
||
//读取APP信息(平台 or 店铺)
|
||
getStoreInfo: function (state, payload) {
|
||
var that = this;
|
||
var store_id = payload.store_id;
|
||
|
||
let force_refresh = true;
|
||
|
||
if (typeof payload.force_refresh == 'undefined')
|
||
{
|
||
force_refresh = true;
|
||
}
|
||
|
||
//读取APP信息(平台 or 店铺)
|
||
$.request({
|
||
url: state.Config.URL.store.info,
|
||
data: {action: 'intro', store_id: store_id},
|
||
loading: false,
|
||
ajaxCache: {
|
||
timeout: Config.CACHE_EXPIRE,
|
||
forceRefresh: force_refresh
|
||
},
|
||
success: function (data, status, msg, code) {
|
||
//data.
|
||
state.shopInfo = {
|
||
"ChannelCode": "1217898988",
|
||
"IsChannel": false,
|
||
"store_id": data.base.store_id,
|
||
"user_id": data.base.user_id,
|
||
//"Id": 5854,
|
||
"store_name": data.base.store_name,
|
||
"store_grade_id": data.base.store_grade_id,
|
||
"store_grade_name": data.base.store_grade_name,
|
||
"CompanyName": data.company.company_name,
|
||
"LegalNumber": data.info.store_tel,
|
||
"WapLogoPath": data.base.store_logo,
|
||
"VendorInfo": data.company.company_description || '', //店铺公告
|
||
"LegalAdress": data.base.store_address,
|
||
"AllProduct": data.analytics.store_product_num,
|
||
"store_slogan": data.base.store_slogan || '', //店铺公告
|
||
"BusinessTime": null,
|
||
"NewProduct": data.analytics.store_product_new_num,
|
||
"BackGroundPath": data.info.store_banner,
|
||
"LegalPerson": data.company.contacts_name,
|
||
"store_latitude": data.base.store_latitude,
|
||
"store_longitude": data.base.store_longitude,
|
||
"rows": 10,
|
||
"IsDistribution": false,
|
||
"Level1Discount": 0,
|
||
"Level2Discount": 0,
|
||
"ValidDays": 0,
|
||
"PromotionRule": null, //活动信息
|
||
"RuleEnabled": false,
|
||
"VendorFeatureSet": '',
|
||
"ShopConfig": {
|
||
"AppIconPath": "https://static.lancerdt.com/xcxfile/appicon/"
|
||
},
|
||
"store_star_num": data.analytics.store_evaluation_num ? (data.analytics.store_deliverycredit + data.analytics.store_deliverycredit + data.analytics.store_deliverycredit) / 3 / data.analytics.store_evaluation_num : 5,
|
||
"analytics": data.analytics,
|
||
"info": data.info,
|
||
"base": data.base,
|
||
"company": data.company,
|
||
"im_enable": data.info.im_chat
|
||
};
|
||
|
||
if (state.shopInfo.im_enable)
|
||
{
|
||
state.shopInfo.im_user_id = data.base.user_id;
|
||
state.shopInfo.puid = data.info.puid;
|
||
}
|
||
else
|
||
{
|
||
state.shopInfo.im_user_id = data.base.user_id;
|
||
state.shopInfo.puid = '';
|
||
}
|
||
|
||
state.shopInfo.imgPath = state.shopInfo.ShopConfig.AppIconPath;
|
||
|
||
payload.callback && payload.callback(state.shopInfo)
|
||
},
|
||
|
||
fail: function (err) {
|
||
}
|
||
});
|
||
},
|
||
|
||
//读取门店信息
|
||
getChainInfo: function (state, payload) {
|
||
var that = this;
|
||
var chain_id = payload.chain_id;
|
||
|
||
//读取门店信息
|
||
$.request({
|
||
url: state.Config.URL.store.getChain,
|
||
data: {action: 'intro', chain_id: chain_id},
|
||
loading: false,
|
||
ajaxCache: {
|
||
timeout: Config.CACHE_EXPIRE
|
||
},
|
||
success: function (data, status, msg, code) {
|
||
//data.
|
||
state.chainInfo = data;
|
||
|
||
payload.callback && payload.callback(state.chainInfo)
|
||
},
|
||
|
||
fail: function (err) {
|
||
}
|
||
});
|
||
},
|
||
|
||
setPlantformInfo: function (state, payload) {
|
||
state.plantformInfo = Object.assign(state.plantformInfo, payload);
|
||
|
||
state.Config = Object.assign(state.Config, state.plantformInfo);
|
||
},
|
||
|
||
getPlantformInfo: function (state, callback) {
|
||
callback && callback(state.plantformInfo)
|
||
|
||
return state.plantformInfo
|
||
},
|
||
|
||
setDistrictTree: function (state, payload) {
|
||
state.districtTree = payload;
|
||
},
|
||
|
||
getDistrictTree: function (state, callback) {
|
||
callback && callback(state.districtTree)
|
||
|
||
return state.districtTree
|
||
},
|
||
|
||
|
||
//用户中心资料
|
||
reloadUserResource: function (state, callback) {
|
||
$.request({
|
||
url: Config.URL.user.overview,
|
||
data: {action: 'reload'},
|
||
loading: false,
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200)
|
||
{
|
||
let userInfo = Object.assign(state.userInfo, data.member_info);
|
||
|
||
state.userInfo = userInfo;
|
||
|
||
callback && callback(state.userInfo)
|
||
}
|
||
else
|
||
{
|
||
callback && callback(state.userInfo)
|
||
}
|
||
}
|
||
});
|
||
},
|
||
|
||
setCartList: function (state, payload) {
|
||
state.cartList = payload;
|
||
},
|
||
getCartList(state, callback) {
|
||
callback && callback(state.cartList);
|
||
},
|
||
setCartMap: function (state, payload) {
|
||
state.cartMap = payload;
|
||
},
|
||
getCartMap(state, callback) {
|
||
callback && callback(state.cartMap);
|
||
},
|
||
setCartNum(state, payload) {
|
||
if ($.isObject(payload))
|
||
{
|
||
if (payload.type == 'add')
|
||
{
|
||
state.cartNum = state.cartNum + payload.num;
|
||
}
|
||
else
|
||
{
|
||
state.cartNum = state.cartNum - payload.num;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
state.cartNum = payload;
|
||
}
|
||
},
|
||
|
||
showCartNum(state, payload) {
|
||
|
||
try
|
||
{
|
||
var pages = getCurrentPages();
|
||
var page = pages[pages.length - 1];
|
||
let url = page.route;
|
||
|
||
try {
|
||
if (Config.tabBar.list instanceof Array || true) {
|
||
var n = false;
|
||
for (var r = 0; r < Config.tabBar.list.length; r++) {
|
||
if (!n) {
|
||
var i = Config.tabBar.list[r];
|
||
i.pagePath == url ? n = true : n = false
|
||
}
|
||
}
|
||
|
||
if (n && null!==CART_INDEX)
|
||
{
|
||
|
||
if (state.cartNum > 0)
|
||
{
|
||
uni.setTabBarBadge({
|
||
index: CART_INDEX,
|
||
text: state.cartNum + ""
|
||
})
|
||
}
|
||
else
|
||
{
|
||
state.cartNum = 0;
|
||
|
||
uni.removeTabBarBadge({
|
||
index: CART_INDEX
|
||
})
|
||
}
|
||
}
|
||
}
|
||
else {
|
||
|
||
}
|
||
} catch (s) {
|
||
}
|
||
}
|
||
catch (e)
|
||
{
|
||
|
||
}
|
||
},
|
||
|
||
setMsgNum(state, payload) {
|
||
if ($.isObject(payload))
|
||
{
|
||
if (payload.type == 'add')
|
||
{
|
||
state.newMsgNum = state.newMsgNum + payload.num;
|
||
}
|
||
else
|
||
{
|
||
state.newMsgNum = state.newMsgNum - payload.num;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
state.newMsgNum = payload;
|
||
}
|
||
|
||
if (null!==MSG_INDEX)
|
||
{
|
||
if (state.newMsgNum > 0)
|
||
{
|
||
uni.setTabBarBadge({
|
||
index: MSG_INDEX,
|
||
text: state.newMsgNum + ""
|
||
})
|
||
}
|
||
else
|
||
{
|
||
state.newMsgNum = 0;
|
||
|
||
uni.removeTabBarBadge({
|
||
index: MSG_INDEX
|
||
})
|
||
}
|
||
}
|
||
},
|
||
|
||
//start im
|
||
setCurrentMsg(state, provider)
|
||
{
|
||
provider.type = provider.type;
|
||
state.getMsg = provider;
|
||
///存储最后一句话
|
||
},
|
||
setmsgboxuser(state, provider)
|
||
{
|
||
state.msgboxuser = provider;
|
||
},
|
||
setmsgboxgroup(state, provider)
|
||
{
|
||
state.msgboxgroup = provider;
|
||
},
|
||
addChater(state, provider)
|
||
{
|
||
let nowDate = new Date();
|
||
if (provider.type == "user" || provider.type == "friend")
|
||
{
|
||
state.chatTolist['user' + provider.val] = provider.data;
|
||
state.chatTolist['user' + provider.val]['weidu'] = 0
|
||
state.chatTolist['user' + provider.val]['lasttime'] = nowDate.getHours() + ":" + nowDate.getMinutes();
|
||
}
|
||
else
|
||
{
|
||
state.chatTolist['group' + provider.val] = provider.data;
|
||
state.chatTolist['group' + provider.val]['weidu'] = 0
|
||
state.chatTolist['group' + provider.val]['lasttime'] = nowDate.getHours() + ":" + nowDate.getMinutes();
|
||
}
|
||
|
||
//
|
||
let msg_num = 0;
|
||
for (let tmp_key in state.chatTolist)
|
||
{
|
||
msg_num = msg_num + state.chatTolist[tmp_key]['weidu'];
|
||
}
|
||
|
||
this.commit('setMsgNum', msg_num)
|
||
},
|
||
updateFriendlist(state, provider)
|
||
{
|
||
state.adduser = provider;
|
||
state.userInfo.data.friend['usercharacter' + provider.firstchrater].list["user" + provider.id] = provider;
|
||
},
|
||
updateGrouplist(state, provider)
|
||
{
|
||
state.addgroup = provider;
|
||
state.userInfo.data.group['group' + provider.id] = provider;
|
||
},
|
||
resetWeidu(state, provider)
|
||
{
|
||
if (provider.type == "user" || provider.type == "friend")
|
||
{
|
||
state.chatTolist['user' + provider.val]['weidu'] = 0
|
||
}
|
||
else
|
||
{
|
||
state.chatTolist['group' + provider.val]['weidu'] = 0
|
||
}
|
||
|
||
//
|
||
let msg_num = 0;
|
||
for (let tmp_key in state.chatTolist)
|
||
{
|
||
msg_num = msg_num + state.chatTolist[tmp_key]['weidu'];
|
||
}
|
||
|
||
this.commit('setMsgNum', msg_num)
|
||
},
|
||
setFriendstue(state, provider)
|
||
{
|
||
if (typeof (state.chatTolist['user' + provider.val]) == 'undefined')
|
||
{
|
||
|
||
}
|
||
else
|
||
{
|
||
state.chatTolist['user' + provider.val]['status'] = provider.data;///将状态设置为在线
|
||
}
|
||
|
||
state.userInfo.data.friend["usercharacter" + provider.character].list['user' + provider.val]['status'] = provider.data;
|
||
state.userstate = 'setFriendstue' + provider.val + provider.data;
|
||
|
||
},
|
||
|
||
////更新某个回话的最后聊天内容
|
||
updateChaterAttr(state, provider)
|
||
{
|
||
let nowDate = new Date();
|
||
if (provider.type == "user" || provider.type == "friend")
|
||
{
|
||
console.info(provider)
|
||
if (typeof (state.chatTolist['user' + provider.val]) == 'undefined')
|
||
{
|
||
this.commit('addChater', {data: provider.addinfo, type: 'user', val: provider.addinfo.id})
|
||
}
|
||
state.chatTolist['user' + provider.val][provider.attr] = provider.data;
|
||
state.chatTolist['user' + provider.val]['weidu']++;
|
||
state.chatTolist['user' + provider.val]['lasttime'] = nowDate.getHours() + ":" + nowDate.getMinutes();
|
||
|
||
}
|
||
else
|
||
{
|
||
if (typeof (state.chatTolist['group' + provider.val]) == 'undefined')
|
||
{
|
||
this.commit('addChater', {data: provider.addinfo, type: 'group', val: provider.addinfo.id})
|
||
}
|
||
state.chatTolist['group' + provider.val][provider.attr] = provider.data;
|
||
state.chatTolist['group' + provider.val]['weidu']++;
|
||
state.chatTolist['group' + provider.val]['lasttime'] = nowDate.getHours() + ":" + nowDate.getMinutes();
|
||
}
|
||
|
||
//
|
||
let msg_num = 0;
|
||
for (let tmp_key in state.chatTolist)
|
||
{
|
||
msg_num = msg_num + state.chatTolist[tmp_key]['weidu'];
|
||
}
|
||
|
||
this.commit('setMsgNum', msg_num)
|
||
},
|
||
|
||
////更新某个回话的最后聊天内容
|
||
setCurrentPuid(state, puid)
|
||
{
|
||
state.currentChatPuid = puid;
|
||
},
|
||
//end im
|
||
|
||
|
||
//start music
|
||
|
||
SET_HISROTY(state, val) {
|
||
if (state.historyList.indexOf(val) == -1) {
|
||
state.historyList.unshift(val);
|
||
$.setStorageSync("HISTORY", state.historyList);
|
||
}
|
||
},
|
||
CLEAR_HISTORY(state) {
|
||
state.historyList = [];
|
||
$.setStorageSync("HISTORY", []);
|
||
},
|
||
SET_PLAY_INFO(state, playInfo) {
|
||
state.playInfo = playInfo;
|
||
$.setStorageSync("PLAY_INFO", playInfo);
|
||
},
|
||
SET_PASUED(state, paused) {
|
||
state.paused = paused;
|
||
},
|
||
//end music
|
||
},
|
||
getters: {
|
||
currentdilog: (state, getters) => {
|
||
return state.chatTolist
|
||
},
|
||
hasLogin: (state, getters) => {
|
||
return state.hasLogin
|
||
},
|
||
userinfo: (state, getters) => {
|
||
return state.userInfo
|
||
}
|
||
},
|
||
|
||
actions: {
|
||
async getUserInfo({ state, commit }, callback){
|
||
await $.request({
|
||
url: Config.URL.userInfo,
|
||
loading:false,
|
||
success: function (data, status, msg, code) {
|
||
commit("setUserInfo", data);
|
||
callback && callback(state.userInfo)
|
||
}
|
||
})
|
||
},
|
||
async getSysInfo({ state, commit }, callback){
|
||
var that = this;
|
||
console.info(31)
|
||
//读取APP信息(平台 or 店铺)
|
||
await $.request({
|
||
url: Config.URL.info,
|
||
data: {action: 'intro', source_ucc_code:$.getStorageSync('source_ucc_code')},
|
||
loading: false,
|
||
/*
|
||
ajaxCache: {
|
||
timeout: Config.CACHE_EXPIRE
|
||
},
|
||
*/
|
||
success: function (data, status, msg, code) {
|
||
data = Object.assign(data, data.config),
|
||
|
||
data.hall_b2b_enable = data.config.hall_b2b_enable ;
|
||
|
||
state.plantformInfo = Object.assign(state.plantformInfo, data);
|
||
//state.plantformInfo['versionNumber'] = '2.01';
|
||
|
||
//修改配置信息
|
||
Config.MULTISHOP_ENABLE = data.config.multishop_enable;
|
||
Config.EVALUATION_ENABLE = data.config.evaluation_enable;
|
||
Config.SAAS_STATUS = data.config.saas_status;
|
||
Config.VIRTUAL_ENABLE = data.config.virtual_enable;
|
||
Config.O2O_ENABLE = data.config.o2o_enable;
|
||
Config.CHAIN_ENABLE = data.config.chain_enable;
|
||
|
||
|
||
Config.POINTS_VAUE_RATE = data.config.points_vaue_rate;
|
||
Config.SP_VAUE_RATE = data.config.sp_vaue_rate;
|
||
|
||
Config.PLANTFORM_FX_ENABLE = data.config.plantform_fx_enable ;
|
||
Config.STORE_FX_ENABLE = data.config.store_fx_enable ;
|
||
Config.PLANTFORM_SP_PRIZE_ENABLE = data.config.plantform_sp_prize_enable ;
|
||
Config.PLANTFORM_FX_AGENT_ENABLE = data.config.plantform_fx_agent_enable ;
|
||
Config.PLANTFORM_FX_PT_ENABLE = data.config.plantform_fx_pt_enable ;
|
||
Config.PLANTFORM_FX_WESTORE_ENABLE = data.config.plantform_fx_westore_enable ;
|
||
Config.PLANTFORM_DELIVERY_TIME_ENABLE = data.config.plantform_delivery_time_enable ;
|
||
Config.STORE_SUPPLIER_ENABLE = data.config.store_supplier_enable ;
|
||
Config.PAOTUI_ENABLE = data.config.paotui_enable ;
|
||
Config.USERSTOCK_ENABLE = data.config.userstock_enable ;
|
||
Config.ORDERCONFIRM_ENABLE = data.config.orderconfirm_enable ;
|
||
Config.MARKETORDER_ENABLE = data.config.marketorder_enable ;
|
||
Config.PLANTFORM_REBATE_ENABLE = data.config.plantform_rebate_enable ;
|
||
Config.REDPACKET_ENABLE = data.config.redpacket_enable ;
|
||
Config.CREDIT_ENABLE = data.config.credit_enable ;
|
||
Config.POINT_ENABLE = data.config.point_enable ;
|
||
Config.SP_ENABLE = data.config.sp_enable ;
|
||
Config.EXCHANGECARD_ENABLE = data.config.exchangecard_enable ;
|
||
Config.MONEY_TRANSFER_ENABLE = data.config.money_transfer_enable ;
|
||
Config.SNS_ENABLE = data.config.sns_enable ;
|
||
Config.IM_ENABLE = data.config.im_enable ;
|
||
Config.SUBSITE_ENABLE = data.config.subsite_enable ;
|
||
Config.FORCE_BIND_MOBILE = data.config.force_bind_mobile ;
|
||
Config.PLANTFORM_DELIVERY_TIME_ENABLE = data.config.delivery_time_enable ;
|
||
Config.PLANTFORM_USER_LEVEL_RATE_ENABLE = data.config.user_level_rate_enable ;
|
||
Config.LANG_ENABLE = data.config.multilang_enable ;
|
||
|
||
|
||
|
||
Config.B2B_FLAG = data.config.b2b_flag ;
|
||
Config.PRODUCT_SALENUM_FLAG = data.config.product_salenum_flag ;
|
||
Config.PRODUCT_ZITI_FLAG = data.config.product_ziti_flag ;
|
||
|
||
|
||
|
||
Config.CACHE_EXPIRE = data.config.cache_expire;
|
||
Config.CACHE = data.config.cache;
|
||
|
||
|
||
commit("setPlantformInfo", data);
|
||
callback && callback(state.plantformInfo)
|
||
|
||
},
|
||
|
||
fail: function (err) {
|
||
$.showModal({
|
||
title: Lang.__('提示'),
|
||
content: Lang.__('网络异常,请重试'),
|
||
showCancel:false,
|
||
success: res => {
|
||
if (res.confirm) {
|
||
that.dispatch(`getSysInfo`, callback)
|
||
} else if (res.cancel) {
|
||
that.dispatch(`getSysInfo`, callback)
|
||
}
|
||
}
|
||
});
|
||
}
|
||
});
|
||
},
|
||
async getDistrictTree({ state, commit }, callback){
|
||
var that = this;
|
||
|
||
if (state.districtTree != null)
|
||
{
|
||
callback && callback(state.districtTree)
|
||
return
|
||
}
|
||
|
||
//读取APP信息(平台 or 店铺)
|
||
await $.request({
|
||
url: Config.URL.getDistrictTree,
|
||
data: {},
|
||
loading: false,
|
||
ajaxCache: {
|
||
timeout: Config.CACHE_EXPIRE
|
||
},
|
||
success: function (data, status, msg, code) {
|
||
state.districtTree = data;
|
||
|
||
commit("setDistrictTree", data);
|
||
callback && callback(state.districtTree)
|
||
},
|
||
|
||
fail: function (err) {
|
||
$.showModal({
|
||
title: Lang.__('提示'),
|
||
content: Lang.__('网络异常,请重试'),
|
||
showCancel:false,
|
||
success: res => {
|
||
if (res.confirm) {
|
||
that.dispatch(`getDistrictTree`, callback)
|
||
} else if (res.cancel) {
|
||
that.dispatch(`getDistrictTree`, callback)
|
||
}
|
||
}
|
||
});
|
||
}
|
||
});
|
||
},
|
||
|
||
//start cart
|
||
|
||
// 获取购物车信息
|
||
async getCartList ({ state, commit }, callback) {
|
||
let that = this;
|
||
let param = {};
|
||
|
||
//发送购物车请求
|
||
await $.request({
|
||
url: Config.URL.cart.lists,
|
||
method: "GET",
|
||
data: param,
|
||
loading: false,
|
||
success: function (data) {
|
||
let cartMap = {};
|
||
|
||
//循环所有店铺
|
||
if (!$.isNull(data.items) && data.items.length > 0) {
|
||
let total = 0;
|
||
for (var store_item_index in data.items) {
|
||
var i = 0;
|
||
var cart_items = data.items[store_item_index].items
|
||
|
||
for (var item in cart_items) {
|
||
//按照item计算 i
|
||
if (cart_items[item].cart_select) {
|
||
i = i + cart_items[item].cart_quantity;
|
||
}
|
||
|
||
if (typeof cartMap[cart_items[item].item_id] == "undefined") {
|
||
cartMap[cart_items[item].item_id] = {}
|
||
}
|
||
|
||
cartMap[cart_items[item].item_id]['cart_id'] = cart_items[item].cart_id;
|
||
cartMap[cart_items[item].item_id]['quantity'] = cart_items[item].cart_quantity;
|
||
}
|
||
|
||
total = total + i;
|
||
}
|
||
|
||
data.Total = total;
|
||
}
|
||
|
||
commit("setCartList", data.items);
|
||
commit("setCartMap", cartMap);
|
||
commit("setCartNum", data.Total);
|
||
commit("showCartNum");
|
||
|
||
callback && callback(data)
|
||
},
|
||
fail: function (data) {
|
||
$.alert("网络异常请重试!");
|
||
callback && callback(null)
|
||
}
|
||
});
|
||
},
|
||
|
||
async addCart({ state, commit }, provider) {
|
||
let that = this
|
||
|
||
await $.request({
|
||
url: Config.URL.cart.add,
|
||
method:'POST',
|
||
data: provider.params,
|
||
loading: false,
|
||
success: (data, status, msg, code) => {
|
||
if (status == 200) {
|
||
commit("setCartNum", {
|
||
type: provider.params.cart_quantity >0 ? 'add' : 'sub',
|
||
num: parseInt(provider.params.cart_quantity)
|
||
});
|
||
|
||
provider.callback && provider.callback(data, status, msg, code)
|
||
} else {
|
||
$.alert(msg);
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
$.alert(Lang.__('网络异常,请重试'));
|
||
}
|
||
});
|
||
},
|
||
|
||
async editCartQuantity({ state, commit }, provider) {
|
||
let that = this
|
||
|
||
await $.request({
|
||
url: Config.URL.cart.quantity,
|
||
method:'POST',
|
||
data: provider.params,
|
||
loading: false,
|
||
success: (data, status, msg, code) => {
|
||
if (status == 200) {
|
||
commit("setCartNum", {
|
||
type: 'add',
|
||
num: parseInt(provider.params.cart_quantity)
|
||
});
|
||
|
||
provider.callback && provider.callback(data, status, msg, code)
|
||
} else {
|
||
$.alert(msg);
|
||
}
|
||
},
|
||
fail: (err) => {
|
||
$.alert(Lang.__('网络异常,请重试'));
|
||
}
|
||
});
|
||
},
|
||
//end cart
|
||
|
||
//start music
|
||
|
||
addHistoryList({ commit }, val) {
|
||
commit("SET_HISROTY", val);
|
||
},
|
||
clearHistoryList({ commit }) {
|
||
commit("CLEAR_HISTORY");
|
||
},
|
||
changePlay({ state, commit, dispatch }, count) {
|
||
if (audio.audiolist.length == 1) {
|
||
audio.operate(0);
|
||
commit("SET_PASUED", false);
|
||
return;
|
||
}
|
||
audio.changeplay(count);
|
||
let playIndex = audio.audiolist.findIndex(
|
||
(item) => item.id == state.playInfo.id
|
||
);
|
||
let tempIndex = -1;
|
||
if (count === 1) {
|
||
//下一首
|
||
if (playIndex == audio.audiolist.length - 1) {
|
||
tempIndex = 0;
|
||
} else {
|
||
tempIndex = playIndex + 1;
|
||
}
|
||
} else {
|
||
if (playIndex == 0) {
|
||
tempIndex = audio.audiolist.length - 1;
|
||
} else {
|
||
tempIndex = playIndex - 1;
|
||
}
|
||
}
|
||
dispatch("playMusic", audio.audiolist[tempIndex]);
|
||
},
|
||
//从对应歌曲列表中删除 当前歌曲
|
||
removeMusic({ state, commit }, val) {
|
||
let audioList = [...audio.audiolist];
|
||
let index = audioList.findIndex((item) => item.id == val.id);
|
||
audioList.splice(index, 1);
|
||
audio.setAudio(audioList);
|
||
$.setStorageSync("PLAY_LIST", audioList);
|
||
if (audioList.length == 0) {
|
||
commit("SET_PASUED", true);
|
||
commit("SET_PLAY_INFO", {});
|
||
}
|
||
},
|
||
|
||
//播放全部
|
||
async playAllMUsic({ state, commit }, list) {
|
||
//const data = await getMusic(list[0].id);
|
||
const data = list[0];
|
||
list[0].src = data.url;
|
||
audio.setAudio(list);
|
||
$.setStorageSync("PLAY_LIST", list);
|
||
audio.operate(0);
|
||
commit("SET_PLAY_INFO", list[0]);
|
||
commit("SET_PASUED", false);
|
||
},
|
||
|
||
//点击播放
|
||
async playMusic({ state, commit }, val) {
|
||
let audioList = [...audio.audiolist];
|
||
let index = audioList.findIndex((item) => item.id === val.id);
|
||
//如果当前播放列表不存在当前音乐
|
||
if (index === -1) {
|
||
//const data = await getMusic(val.id);
|
||
const data = val;
|
||
val.src = data.url;
|
||
let playIndex = 0;
|
||
if (state.playInfo) {
|
||
playIndex = audioList.findIndex(
|
||
(item) => item.id == state.playInfo.id
|
||
);
|
||
}
|
||
audioList.splice(playIndex + 1, 0, val);
|
||
audio.setAudio(audioList);
|
||
$.setStorageSync("PLAY_LIST", audioList);
|
||
audio.operate(playIndex === -1 ? 0 : playIndex + 1);
|
||
commit("SET_PLAY_INFO", val);
|
||
commit("SET_PASUED", false);
|
||
} else {
|
||
//如果不存在src
|
||
if (!val.src) {
|
||
//const data = await getMusic(val.id);
|
||
const data = val;
|
||
|
||
val.src = data.url;
|
||
audioList[index] = val;
|
||
audio.setAudio(audioList);
|
||
$.setStorageSync("PLAY_LIST", audioList);
|
||
} else {
|
||
//val.src = `https://music.163.com/song/media/outer/url?id=${val.id}.mp3`;
|
||
}
|
||
audio.operate(index);
|
||
commit("SET_PLAY_INFO", audioList[index]);
|
||
commit("SET_PASUED", false);
|
||
}
|
||
},
|
||
//end music
|
||
}
|
||
})
|
||
|
||
|
||
const getMusic = (id) => {
|
||
return new Promise(async (resolve, reject) => {
|
||
|
||
/*
|
||
let res = await getMusicUrl({
|
||
id: id,
|
||
});
|
||
*/
|
||
let res = {data:[{url:"http://lancerdt.oss-accelerate.aliyuncs.com/mall/images/media/store/1001/20220510/6b80db5feb09416c95706ee88b0620ef.mp3"}]}
|
||
|
||
let musicList = res.data || [];
|
||
if (musicList.length > 0) {
|
||
resolve(musicList[0]);
|
||
} else {
|
||
uni.showToast({
|
||
title: "暂无该音乐版权",
|
||
icon: "none",
|
||
duration: 2000,
|
||
});
|
||
reject();
|
||
}
|
||
});
|
||
};
|
||
|
||
|
||
export default store
|