123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- /*
- * @description 用于公用的数据状态管理模块。
- * @example-state state的调用方法 this.$store.state.common.$S_tabbar_tabIdx
- * @example-mutations mutations的调用方法 this.$store.commit('MUTA_TABIDX',param);
- * @example-actions actions的调用方法 this.$store.dispatch('ACTI_TABIDX',param);
- */ // 日志打印
- import reportErr from '@/util/errorReport/log.js';
- // 导入公用mixin
- import comMix from '@/common/mixin.js';
- // 导入接口
- import {
- API_getOpenid,
- API_getMachine,
- API_getConponList,
- API_getCheckYHJList,
- } from '@/common/api.js';
- export default {
- name: 'common',
- /*
- ** state格式:$S(表示store的数据) tabbar(表示哪一个页面) tabIdx(表示页面的哪一个数据)
- */
- state: {
- // 底部导航栏下标
- $S_tabbar_tabIdx: 0,
- // 购物车数据
- $S_tabbar_shopCarts: {},
- // 我的页面个人头像和昵称
- $S_mine_avatarNick: {
- avatarUrl: uni.getStorageSync('avatarNick').avatarUrl ||
- 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAAASFBMVEX09Pby8vTe3uDPz9DJycm/v8C9vb3BwcLLy8vR0dLp6evn5+i1tbWysrLb29zu7vDNzc7r6+26urrg4OG3t7fj4+TFxcbV1dY8QE/jAAABo0lEQVRo3u2Yi3KCMBBFCY8EIWs0Iv7/n7Y4djqFZEXCTVtnzw+cYZfsqygEQRAEQRAEQRCEt0OVVd1o0x66rNq+tvRFc8ymdSf6gTnn8XaeZthLDm8/0JIM5s5SiCvaq3TQS96BxRVFaLHeM0XBPuhTXAz9ZGfjYkJm+ch4CVnBak5cA8UDJx5wXkUsCiY+82Jcr+h5cf9+4o4X42qX48XACsIVLrI4b6E5sQaKW06M7BIlJy6BYsUk2eIKV8EMIEQV0lu4aJsYwENXtCPD9wkT9hq0NzJX2wy72/FXAj0xLr1jDm9g1LToNeLBYS4+5PEu23Kuq8Bi5oMWy78gvs7F8OX4QTMXN3m8gY3xlEHrgvtTDX/JF09BPPb80o0UZQSO1cw94J5pTLzVzdIT7A3wokv/THtP9d6jZm/WaCfMnquba9dqJ9rdUv08ufNU7xPl5jXtRLNDvG+vaydSP1qN27yf9STpZanVP/MSk2LeGOf0aG/4r75J6dKrqlUML+L/INYp4pQrUJUiTrlNqEr7jegq15gvCIIgCIIgCIIg7M4HkS5rj/A3dbUAAAAASUVORK5CYII=',
- nickName: uni.getStorageSync('avatarNick').nickName || '暂无昵称'
- },
- // app.vue页面的个人登录信息
- $S_app_loginInfos: {},
- // 设备编码:不开机:166581708014999678137587,开机:1665819865612635251739970
- $S_home_clientId: '',
- // 优惠码集合,用来校验重复问题
- $S_car_discountCodeList: [],
- // 如果商品编码是A31-35的则是mini版,图片显示要小些,有新增的话要在/static/images/home/goods.js里面找对应编码
- $S_home_miniProduct: ['A31', 'A32', 'A33', 'A34', 'A35'],
- // 机器状态
- $S_home_clientStatus: {
- // 设备名称
- storeName: '自动售卖机',
- // 是否开机状态
- startStatus: false,
- contactName: '',
- contactPhone: '',
- },
- // 单种商品
- $S_singleBye_shopCarts: {},
- // 优惠券
- $S_home_coupon: '',
- // 优惠券列表
- $S_home_couponList: [],
- // 用户有没有领取过优惠券
- $S_home_hasReceCoup: false,
- },
- getters: {
- // 设备编码
- GETT_clientId(state) {
- return state.$S_home_clientId;
- },
- // 个人登录信息
- GETT_loginInfos(state) {
- return state.$S_app_loginInfos;
- },
- // 是否存在小程序个人信息
- isGetUserInfo(state) {
- if (!state.$S_mine_avatarNick.nickName || state.$S_mine_avatarNick.nickName === '暂无昵称') {
- return false;
- } else {
- return true;
- }
- },
- // 首页购物车的总价格
- totalPrice(state) {
- let totalPrice = 0;
- let shopCarts = state.$S_tabbar_shopCarts;
- if (shopCarts) {
- for (let key in shopCarts) {
- totalPrice = comMix.methods.$M_Big(totalPrice).add(shopCarts[key]['totalPrice']).toNumber();
- }
- }
- return totalPrice;
- },
- // 首页购物车的总数量
- totalNums(state) {
- let nums = 0;
- let shopCarts = state.$S_tabbar_shopCarts;
- if (shopCarts) {
- for (let key in shopCarts) {
- nums = comMix.methods.$M_Big(nums).add(shopCarts[key]['nums']).toNumber();
- }
- }
- return nums;
- },
- // 优惠码集合
- GETT_discountCodeList(state) {
- return state.$S_car_discountCodeList;
- },
- // mini商品编码
- GETT_miniProduct(state) {
- return state.$S_home_miniProduct;
- },
- // 机器状态
- GETT_clientStatus(state) {
- return state.$S_home_clientStatus;
- },
- // 单种商品
- GETT_singleBye_shopCarts(state) {
- return state.$S_singleBye_shopCarts;
- },
- // 优惠券
- GETT_home_coupon(state) {
- return state.$S_home_coupon;
- },
- // 优惠券列表
- GETT_home_couponList(state) {
- const list = [];
- const couponList = state.$S_home_couponList;
- if (couponList.length > 0) {
- couponList.forEach(item => {
- // 如果是没有被使用过的
- if (item.isUse !== '1') {
- list.push({
- label: `${item.discount}元`,
- value: item.discount,
- lastUseDate: item.lastUseDate,
- code: item.code,
- isCheck: false,
- })
- }
- })
- }
- return list;
- },
- // 优惠券的总金额
- GETT_home_totalCoupon(state) {
- let totalMon = 0;
- if (state.$S_home_couponList.length > 0) {
- state.$S_home_couponList.forEach(item => {
- totalMon = comMix.methods.$M_Big(totalMon).add(item.discount).toNumber();
- })
- }
- return totalMon;
- },
- // 用户有没有领取过优惠券
- GETT_home_hasReceCoup(state) {
- return state.$S_home_hasReceCoup;
- },
- GETShopCartsNo(state) {
- let charNoNum = {};
- let shopCarts = state.$S_tabbar_shopCarts;
-
- for (const key in shopCarts) {
- if (Object.hasOwnProperty.call(shopCarts, key)) {
- charNoNum[shopCarts[key]['no']] = shopCarts[key]['nums'];
- }
- }
- return charNoNum;
- }
- },
- mutations: {
- /*
- ** mutations格式:MUTA(表示mutations里的方法)TABIDX(表示页面的哪一个数据大写)
- */
- // 改变底部导航栏下标
- MUTA_TABIDX: (state, data) => {
- state.$S_tabbar_tabIdx = data;
- },
- // 改变购物车数据
- MUTA_SHOPCARTS: (state, data) => {
- state.$S_tabbar_shopCarts = Object.assign({}, data);
- },
- // 改变个人头像和昵称
- MUTA_AVATARNICK: (state, data) => {
- state.$S_mine_avatarNick = Object.assign({}, data);
- uni.setStorageSync('avatarNick', data);
- },
- // 登录获取openid
- MUTA_GETOPENID: (state, data) => {
- state.$S_app_loginInfos = Object.assign({}, data);
- },
- // 储存优惠码
- MUTA_DISCOUNTCODE: (state, data) => {
- state.$S_car_discountCodeList = [];
- state.$S_car_discountCodeList = data;
- },
- // 设置机器编码
- MUTA_SETCLIENTID: (state, data) => {
- state.$S_home_clientId = data;
- },
- // 设置机器状态
- MUTA_SETCLIENTSTATUS: (state, data) => {
- state.$S_home_clientStatus = Object.assign({}, data);
- },
- // 改变单种商品
- MUTA_SINGSHOPCARTS: (state, data) => {
- state.$S_singleBye_shopCarts = Object.assign({}, data);
- },
- // 储存优惠券
- MUTA_SETCOUPON: (state, data) => {
- state.$S_home_coupon = '';
- state.$S_home_coupon = data;
- },
- // 储存优惠券列表
- MUTA_SETCOUPONLIST: (state, data) => {
- state.$S_home_couponList = [];
- state.$S_home_couponList = data;
- },
- // 查询优惠券有没有领取了
- MUTA_HASRECECOUP: (state, data) => {
- state.$S_home_hasReceCoup = false;
- state.$S_home_hasReceCoup = data;
- },
- },
- actions: {
- /*
- ** actions格式:ACTI(表示actions里的方法)TABIDX(表示页面的哪一个数据大写)
- */
- // 改变底部导航栏下标
- ACTI_TABIDX: (context, data) => {
- context.commit('MUTA_TABIDX', data);
- },
- // 改变购物车数据
- ACTI_SHOPCARTS: (context, data) => {
- context.commit('MUTA_SHOPCARTS', data);
- },
- // 登录获取openid
- ACTI_GETOPENID: (context) => {
- return new Promise((resolve, reject) => {
- // 登录获取code
- uni.login({
- provider: 'weixin',
- success: async (loginRes) => {
- const code = loginRes.code;
- const param = {
- code
- }
- // 调用openid接口
- const res = await API_getOpenid(param, {
- loading: false
- });
- context.commit('MUTA_GETOPENID', res);
- resolve(true);
- },
- fail: err => {
- // // 错误上报
- reportErr('uni.login的报错!!!', err);
- resolve(false);
- }
- });
- })
- },
- // 查询优惠券有没有领取了MUTA_HASRECECOUP
- ACTI_HASRECECOUP: ({
- commit,
- rootState
- }, coup) => {
- return new Promise(async (resolve, reject) => {
- const res = await API_getCheckYHJList({
- wxId: rootState.common.$S_app_loginInfos.id
- });
- commit('MUTA_HASRECECOUP', res);
- resolve(res);
- })
- },
- // 获取机器状态
- ACTI_SETCLIENTSTATUS: (context, clientId) => {
- return new Promise(async (resolve, reject) => {
- const param = {
- clientId
- };
- const res = await API_getMachine(param);
- const statusParam = {
- storeName: '自动售卖机',
- startStatus: false,
- contactName: res.contactName,
- contactPhone: res.contactPhone,
- }
- // 如果是关机状态可以执行下面操作
- if (res.status == 1) {
- statusParam.storeName = `${res.name}(${clientId})`;
- statusParam.startStatus = true;
- } else {
- statusParam.storeName = `${res.name}(${clientId})`;
- statusParam.startStatus = false;
- }
- context.commit('MUTA_SETCLIENTSTATUS', statusParam);
- // 如果开机
- if (res.status == 1) {
- resolve(true);
- } else {
- resolve(false);
- }
- })
- },
- // 获取优惠券
- ACTI_SETCOUPONLIST: ({
- commit,
- rootState
- }) => {
- return new Promise(async (resolve, reject) => {
- const param = {
- wxId: rootState.common.$S_app_loginInfos.id
- };
- const res = await API_getConponList(param, {
- loading: false
- });
- // 储存优惠券列表到vuex,用于支付判断有没有优惠券可选
- commit('MUTA_SETCOUPONLIST', res);
- resolve(true);
- });
- },
- }
- }
|