陶杰
2024-12-23 d39644872fa6f9499fc2c1651bced631a9e96b19
store/index.js
@@ -6,415 +6,667 @@
Vue.use(Vuex)
const store = new Vuex.Store({
    state: {
        hasLogin: false,
        isUniverifyLogin: false,
        loginProvider: "",
        openid: null,
        testvuex: false,
        colorIndex: 0,
        colorList: ['#FF0000', '#00FF00', '#0000FF'],
        noMatchLeftWindow: true,
        active: 'componentPage',
        leftWinActive: '/pages/component/view/view',
        activeOpen: '',
        menu: [],
        univerifyErrorMsg: '',
        currentInfo: {}, //个人用户信息
        cache_address: {},
        // remoteip:'',//服务器ip
        sign: {
            'enterprise': 0,
            'info': 0,
            'flower': 0,
            'shopping': 0,
            'follow': 0,
         'delivery':0
        },
        defaultaddress: {}
    },
    mutations: {
   state: {
      hasLogin: false,
      isUniverifyLogin: false,
      loginProvider: "",
      openid: null,
      testvuex: false,
      colorIndex: 0,
      colorList: ['#FF0000', '#00FF00', '#0000FF'],
      noMatchLeftWindow: true,
      active: 'componentPage',
      leftWinActive: '/pages/component/view/view',
      activeOpen: '',
      menu: [],
      appMenu: [],
      univerifyErrorMsg: '',
      currentInfo: {}, //个人用户信息
      cache_address: {},
      // remoteip:'',//服务器ip
      sign: {
         'enterprise': 0,
         'info': 0,
         'flower': 0,
         'shopping': 0,
         'follow': 0,
         'delivery': 0,
         'order': 0,
         'shopnum': 0,
         'coupon': 0,
         'cache_topay':0,
      },
      cache: {
         coupon: {},
         goods:[],
         cache_coupon_select_cancel:0
      },
      defaultaddress: {},
      addressDesc:'',
   },
   mutations: {
        updateLogin(state, provider) {
            console.log('updateLogin', provider)
            state.hasLogin = provider && true || false;
            if (!state.hasLogin) {
                storage.removeItem('token')
            }
        },
        login(state, provider) {
            state.hasLogin = true;
            state.loginProvider = provider;
        },
        logout(state) {
            state.hasLogin = false
            state.openid = null
            state.currentInfo = {}
            storage.removeItem('token')
            message.showToast('退出登录成功')
            // #ifdef APP
            var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件
      updateLogin(state, provider) {
         console.log('updateLogin', provider)
         state.hasLogin = provider && true || false;
         if (!state.hasLogin) {
            state.currentInfo = {}
            storage.removeItem('token')
         }
      },
      login(state, provider) {
         state.hasLogin = true;
         state.loginProvider = provider;
      },
      logout(state) {
         state.hasLogin = false
         state.openid = null
         state.currentInfo = {}
         state.appMenu=[]
         storage.removeItem('token')
         storage.removeItem('appMenu');
         message.showToast('退出登录成功')
            let ret = KeepAliveModule.stopLocation();
            console.log('ret', ret)
            // #endif
            uni.redirectTo({
                url: '/views/login/login'
            })
        },
        setOpenid(state, openid) {
            state.openid = openid
        },
        setDefaultAddress(state, defaultaddress) {
            state.defaultaddress = defaultaddress
        },
        setTestTrue(state) {
            state.testvuex = true
        },
        setTestFalse(state) {
            state.testvuex = false
        },
        setColorIndex(state, index) {
            state.colorIndex = index
        },
        setActive(state, tabPage) {
            state.active = tabPage
        },
        setActiveOpen(state, activeOpen) {
            state.activeOpen = activeOpen
        },
        setMenu(state, menu) {
            state.menu = menu
        },
        setUniverifyLogin(state, payload) {
            typeof payload !== 'boolean' ? payload = !!payload : '';
            state.isUniverifyLogin = payload;
        },
        setUniverifyErrorMsg(state, payload = '') {
            state.univerifyErrorMsg = payload
        }
    },
    getters: {
        currentColor(state) {
            return state.colorList[state.colorIndex]
        }
    },
    actions: {
        sign_add: async function ({
                                      commit,
                                      state
                                  }, key) {
            console.log('sign_add', key)
            state.sign[key] = 1
        },
        sign_clear: async function ({
                                        commit,
                                        state
                                    }, key) {
            console.log('sign_clear', key)
            state.sign[key] = 0
        },
        // lazy loading openid
        logout: async function ({
                                    commit,
                                    state
                                }) {
            commit('logout')
        },
        getUserOpenId: async function ({
                                           commit,
                                           state
                                       }) {
            return await new Promise((resolve, reject) => {
                if (state.openid) {
                    resolve(state.openid)
                } else {
                    uni.login({
                        success: (data) => {
                            commit('login')
                            setTimeout(function () { //模拟异步请求服务器获取 openid
                                const openid = '123456789'
                                console.log(
                                    'uni.request mock openid[' +
                                    openid + ']');
                                commit('setOpenid', openid)
                                resolve(openid)
                            }, 1000)
                        },
                        fail: (err) => {
                            console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务',
                                err)
                            reject(err)
                        }
                    })
                }
            })
        },
        getCurrentInfo: async function ({
                                            commit,
                                            state
                                        }) {
            //把权限获取到
            // console.log('getCurrentInfo,getCurrentInfo')
            const currentInfo = await http.request('get', '/api/current/user', {})
            if (currentInfo && currentInfo.code == 0) {
                // state.cMenu = cMenu
                // state.roles = currentInfo.data.roles || []
                state.currentInfo = currentInfo.data || {}
                state.type = currentInfo.data.type || ''
                state.spacecode = currentInfo.data.spacecode || ''
                // if(reload){
                //    location.reload()
                // }
                commit("updateLogin", true)
            } else {
                commit("updateLogin", false)
                //这种情况就是要跳转到登录页面
            }
        },
        loginwx: async function ({
                                     dispatch,
                                     commit,
                                     state
                                 }, data) {
            var code = data.code
            let inviter = data.inviter || ''
            console.log('')
            const resp = await http.request('post', '/api/login/wechat', {
                data: {
                    code: code,
                    imgurl: data.imgurl || '',
                    nickname: data.nickname || '',
                    inviter: inviter
                },
                // params:{
                //    code:code
                // }
            })
            if (resp && resp.code == 0) {
                state.isBind = true
                storage.setItem("token", resp.data.access_token || "")
                state.hasLogin = true
                if (inviter) {
                    storage.removeItem('inviter');
                    storage.removeItem('inviterTime');
                    storage.removeItem('inviterName');
                }
                await dispatch('getCurrentInfo')
            } else {
                message.showToast('登录失败.' + (resp && resp.msg))
                storage.removeItem('openid');
                storage.removeItem('tel');
                storage.removeItem('token');
            }
            return resp
        },
        regUser: async function ({
                                     commit,
                                     dispatch,
                                     state
                                 }, data) {
            {
                const resp = await http.request('post', '/api/register/' + data.type, {
                    data: {
                        username: data.username,
                        password: data.password,
                        tel: data.phoneNumber || data.tel,
                        smsCode: data.smsCode || '',
                        dto: data.dto || undefined,
                        wxcode: data.wxcode || undefined
                    },
                    params: {
                        clientType: data.clientType || 'app'
                    }
                })
                console.log('resp', resp)
                if (resp && resp.code == 0) {
      },
      setOpenid(state, openid) {
         state.openid = openid
      },
      setDefaultAddress(state, defaultaddress) {
         state.defaultaddress = defaultaddress
      },
      setAddressDesc(state, addressDesc) {
         console.log('setAddressDesc',addressDesc)
         state.addressDesc = addressDesc
         storage.setItem("defaultaddress",addressDesc || "")
      },
      setTestTrue(state) {
         state.testvuex = true
      },
      setTestFalse(state) {
         state.testvuex = false
      },
      setColorIndex(state, index) {
         state.colorIndex = index
      },
      setActive(state, tabPage) {
         state.active = tabPage
      },
      setActiveOpen(state, activeOpen) {
         state.activeOpen = activeOpen
      },
      setMenu(state, menu) {
         state.menu = menu
      },
      setUniverifyLogin(state, payload) {
         typeof payload !== 'boolean' ? payload = !!payload : '';
         state.isUniverifyLogin = payload;
      },
      setUniverifyErrorMsg(state, payload = '') {
         state.univerifyErrorMsg = payload
      }
   },
   getters: {
      currentColor(state) {
         return state.colorList[state.colorIndex]
      }
   },
   actions: {
      sign_add: async function({
         commit,
         state
      }, key) {
         console.log('sign_add', key)
         state.sign[key] = 1
      },
      // sign_add_value: async function({
      //    commit,
      //    state
      // }, {
      //    key,
      //    value
      // }) {
      //    console.log('sign_add', key)
      //    state.sign[key] = value || 0
      // },
      sign_clear: async function({
         commit,
         state
      }, key) {
         console.log('sign_clear', key)
         state.sign[key] = 0
      },
      cache_coupon_select: async function({
         commit,
         state
      }, dto) {
         state.cache['coupon'] = dto || {}
      },
      cache_coupon_select_cancel: async function({
         commit,
         state
      }, val) {
         state.cache['cache_coupon_select_cancel'] = val || 0
      },
      cache_goods_select: async function({
         commit,
         state
      }, goods) {
         state.cache['goods'] = goods || []
      },
      // lazy loading openid
      logout: async function({
         commit,
         state
      }) {
         commit('logout')
      },
      getUserOpenId: async function({
         commit,
         state
      }) {
         return await new Promise((resolve, reject) => {
            if (state.openid) {
               resolve(state.openid)
            } else {
               uni.login({
                  success: (data) => {
                     commit('login')
                     setTimeout(function() { //模拟异步请求服务器获取 openid
                        const openid = '123456789'
                        console.log(
                           'uni.request mock openid[' +
                           openid + ']');
                        commit('setOpenid', openid)
                        resolve(openid)
                     }, 1000)
                  },
                  fail: (err) => {
                     console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务',
                        err)
                     reject(err)
                  }
               })
            }
         })
      },
      getCurrentInfo: async function({
         commit,
         state
      }) {
         //把权限获取到
         // console.log('getCurrentInfo,getCurrentInfo')
         const currentInfo = await http.request('get', '/api/current/user', {})
         if (currentInfo && currentInfo.code == 0) {
            // state.cMenu = cMenu
            // state.roles = currentInfo.data.roles || []
            state.currentInfo = currentInfo.data || {}
            state.type = currentInfo.data.type || ''
            state.spacecode = currentInfo.data.spacecode || ''
            // if(reload){
            //    location.reload()
            // }
            commit("updateLogin", true)
         } else {
            commit("updateLogin", false)
            //这种情况就是要跳转到登录页面
         }
      },
      getSwitchSubAccount: async function({commit,state},payload) {
         //把权限获取到
         // console.log('getCurrentInfo,getCurrentInfo')
         const currentInfo = await http.request('get', '/api/supplierSub/getSwitchById', {
            params: {
               id:payload.id,
               type:payload.type
            }
         })
         if (currentInfo && currentInfo.code == 0) {
            state.currentInfo = currentInfo.data || {}
            state.type = currentInfo.data.type || ''
            state.spacecode = currentInfo.data.spacecode || ''
            commit("updateLogin", true)
         } else {
            commit("updateLogin", false)
            //这种情况就是要跳转到登录页面
         }
         return currentInfo;
      },
      getAppMenu: async function({
         commit,
         state
      }) {
         //把权限获取到
         const menu = await http.request('get', '/api/app/menu/permission/menu', {})
         storage.setItem('appMenu', []);
         if (menu && menu.code == 0) {
            const appMenu = menu.data || []
            storage.setItem('appMenu', appMenu);
            // commit("updateLogin", true)
         } else {
            // commit("updateLogin", false)
            //这种情况就是要跳转到登录页面
         }
      },
      getAppMenuSupplier: async function({
         commit,
         state
      }) {
         //把权限获取到
         const menu = await http.request('get', '/api/app/menu/supplier/permission/menu', {})
         storage.setItem('appMenu', []);
         if (menu && menu.code == 0) {
            const appMenu = menu.data || []
            storage.setItem('appMenu', appMenu);
         } else {
         }
      },
      getAppMenuPartner: async function({
         commit,
         state
      }) {
         //把权限获取到
         const menu = await http.request('get', '/api/app/menu/partner/permission/menu', {})
         storage.setItem('appMenu', []);
         if (menu && menu.code == 0) {
            const appMenu = menu.data || []
            storage.setItem('appMenu', appMenu);
         } else {
         }
      },
                } else {
                }
                return resp
            }
        },
        loginPartner: async function ({
                                          commit,
                                          dispatch,
                                          state
                                      }, data) {
            {
                const resp = await http.request('post', '/api/login/partner' + ((data
                    .phoneNumber || data.tel) ? '/phone' : ''), {
                    data: {
                        username: (data.phoneNumber || data.tel) ? (data.phoneNumber ||
                            data.tel) : data.username,
                        password: data.password,
                        tel: data.phoneNumber || data.tel,
                        smsCode: data.smsCode || ''
                    },
                    params: {
                        clientType: data.clientType || 'app'
                    }
                })
                console.log('resp', resp)
                if (resp && resp.code == 0) {
                    // await getCurrentInfo()
                    // // this.$message.showToast('登录成功')
                    // console.log(resp)
                    storage.setItem('token', resp.data.access_token)
                    commit("updateLogin", true)
                    await dispatch('getCurrentInfo')
                    console.log('login,reLaunch')
                    // #ifdef APP
                    var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件
                    KeepAliveModule && KeepAliveModule.startLocation({
                        intervalTime: 5000, //定位间隔时间
                        gaodeApiKey: "0eef1axxxxxx7964", //高德地图Key,已停用,引入插件配置
                        locationMode: 1, //定位模式
                        purpose: 0, //定位场景
                        ifUpload: true, //是否上报服务器
                        uploadUrl: "http://bio51-api.fixbug.fun/api/current/employee/location", //上报接口
                        params: "{'lat':'1','lng':'3'}", //其他参数
                        headers: "{'authorization1':'Bearer xOHeJhg'}",
                    }, function (res) {
                        console.log("启用结果:", res);
                        let ret = KeepAliveModule.getCurrentLocation();
                        console.log("启用结果2:", ret);
                    });
                    // #endif
                    // uni.redirectTo({
                    //    url: '/views/app/app-home/app-home'
                    // })
                    uni.reLaunch({
                        url: '/pages/home/supplier-home'
                    })
                } else {
                    // this.$message.showToast('登录失败')
                }
                return resp
            }
        },
        loginSupplier: async function ({
                                           commit,
                                           dispatch,
                                           state
                                       }, data) {
            {
                const resp = await http.request('post', '/api/login/supplier' + ((data
                    .phoneNumber || data.tel) ? '/phone' : ''), {
                    data: {
                        username: (data.phoneNumber || data.tel) ? (data.phoneNumber ||
                            data.tel) : data.username,
                        password: data.password,
                        tel: data.phoneNumber || data.tel,
                        smsCode: data.smsCode || ''
                    },
                    params: {
                        clientType: data.clientType || 'app'
                    }
                })
                console.log('resp', resp)
                if (resp && resp.code == 0) {
                    // await getCurrentInfo()
                    // // this.$message.showToast('登录成功')
                    // console.log(resp)
                    storage.setItem('token', resp.data.access_token)
                    commit("updateLogin", true)
                    await dispatch('getCurrentInfo')
                    console.log('login,reLaunch')
                    // #ifdef APP
                    var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件
                    KeepAliveModule && KeepAliveModule.startLocation({
                        intervalTime: 5000, //定位间隔时间
                        gaodeApiKey: "0eef1axxxxxx7964", //高德地图Key,已停用,引入插件配置
                        locationMode: 1, //定位模式
                        purpose: 0, //定位场景
                        ifUpload: true, //是否上报服务器
                        uploadUrl: "http://bio51-api.fixbug.fun/api/current/employee/location", //上报接口
                        params: "{'lat':'1','lng':'3'}", //其他参数
                        headers: "{'authorization1':'Bearer xOHeJhg'}",
                    }, function (res) {
                        console.log("启用结果:", res);
                        let ret = KeepAliveModule.getCurrentLocation();
                        console.log("启用结果2:", ret);
                    });
                    // #endif
                    // uni.redirectTo({
                    //    url: '/views/app/app-home/app-home'
                    // })
                    uni.reLaunch({
                        url: '/pages/home/supplier-home'
                    })
                } else {
                    // this.$message.showToast('登录失败')
                }
                return resp
            }
        },
        loginCustomer: async function ({
                                           commit,
                                           dispatch,
                                           state
                                       }, data) {
            {
                const resp = await http.request('post', '/api/login/customer' + (data
                    .phoneNumber ? '/phone' : ''), {
                    data: {
                        username: (data.phoneNumber || data.tel) ? (data.phoneNumber ||
                            data.tel) : data.username,
                        password: data.password,
                        tel: data.phoneNumber || data.tel,
                        smsCode: data.smsCode || ''
                    },
                    params: {
                        clientType: data.clientType || 'app'
                    }
                })
                console.log('resp', resp)
                if (resp && resp.code === 0) {
                    storage.setItem('token', resp.data.access_token)
                    commit("updateLogin", true)
                    await dispatch('getCurrentInfo')
                    uni.reLaunch({
                        url: '/pages/home/home'
                    })
                } else {
      loginwx: async function({
         dispatch,
         commit,
         state
      }, data) {
         var code = data.code
         let inviter = data.inviter || ''
         console.log('')
         const resp = await http.request('post', '/api/login/wechat', {
            data: {
               code: code,
               imgurl: data.imgurl || '',
               nickname: data.nickname || '',
               inviter: inviter
            },
            // params:{
            //    code:code
            // }
         })
         if (resp && resp.code == 0) {
            state.isBind = true
            storage.setItem("token", resp.data.access_token || "")
            state.hasLogin = true
            if (inviter) {
               storage.removeItem('inviter');
               storage.removeItem('inviterTime');
               storage.removeItem('inviterName');
            }
            await dispatch('getCurrentInfo')
         } else {
            message.showToast('登录失败.' + (resp && resp.msg))
            storage.removeItem('openid');
            storage.removeItem('tel');
            storage.removeItem('token');
         }
         return resp
      },
      regUser: async function({
         commit,
         dispatch,
         state
      }, data) {
         {
            const resp = await http.request('post', '/api/register/' + data.type, {
               data: {
                  username: data.username,
                  password: data.password,
                  tel: data.phoneNumber || data.tel,
                  smsCode: data.smsCode || '',
                  dto: data.dto || undefined,
                  wxcode: data.wxcode || undefined
               },
               params: {
                  clientType: data.clientType || 'app'
               }
            })
            console.log('resp', resp)
            if (resp && resp.code == 0) {
                }
                return resp
            }
            } else {
        },
        submitShopping: async function ({commit, dispatch}, data) {
            const resp = await http.request('post', '/api/customer/flower/cart/change-num', {
                    data: {
                        id: data.id,
                        num: 1
                    }
                }
            )
            if (resp && resp.code === 0) {
                message.showToast('添加购物车成功')
                dispatch('sign_add', 'shopping')
            } else {
            }
            return resp
         }
            }
            return resp
        },
      },
      loginPartner: async function({
         commit,
         dispatch,
         state
      }, data) {
         {
            const resp = await http.request('post', '/api/login/partner' + ((data
               .phoneNumber || data.tel) ? '/phone' : ''), {
               data: {
                  username: (data.phoneNumber || data.tel) ? (data.phoneNumber ||
                     data.tel) : data.username,
                  password: data.password,
                  tel: data.phoneNumber || data.tel,
                  smsCode: data.smsCode || ''
               },
               params: {
                  clientType: data.clientType || 'app'
               }
            })
            if (resp && resp.code == 0) {
               storage.setItem('token', resp.data.access_token)
               commit("updateLogin", true)
               await dispatch('getCurrentInfo')
               // 获取所有权限菜单
               await dispatch('getAppMenuPartner')
               uni.reLaunch({
                  url: '/pages/home/supplier-home'
               })
            } else {}
            return resp
         }
      },
      loginAdmin: async function({
         commit,
         dispatch,
         state
      }, data) {
         {
            // + ((data
            //     .phoneNumber || data.tel) ? '/phone' : '')
            const resp = await http.request('post', '/api/login/admin/wx', {
               data: {
                  username: (data.phoneNumber || data.tel) ? (data.phoneNumber ||
                     data.tel) : data.username,
                  password: data.password,
                  tel: data.phoneNumber || data.tel,
                  smsCode: data.smsCode || ''
               },
               params: {
                  clientType: data.clientType || 'app'
               }
            })
            if (resp && resp.code == 0) {
               storage.setItem('token', resp.data.access_token)
               commit("updateLogin", true)
               await dispatch('getCurrentInfo')
               uni.reLaunch({
                  url: '/sub_pages/partner/delivery/delivery-home'
               })
            } else {}
            return resp
         }
      },
      loginSupplier: async function({
         commit,
         dispatch,
         state
      }, data) {
         {
            const resp = await http.request('post', '/api/login/supplier' + ((data
               .phoneNumber || data.tel) ? '/phone' : ''), {
               data: {
                  username: (data.phoneNumber || data.tel) ? (data.phoneNumber ||
                     data.tel) : data.username,
                  password: data.password,
                  tel: data.phoneNumber || data.tel,
                  smsCode: data.smsCode || ''
               },
               params: {
                  clientType: data.clientType || 'app'
               }
            })
            console.log('resp', resp)
            if (resp && resp.code == 0) {
               // await getCurrentInfo()
               // // this.$message.showToast('登录成功')
               // console.log(resp)
               storage.setItem('token', resp.data.access_token)
               commit("updateLogin", true)
               await dispatch('getCurrentInfo')
               // 获取所有供应商权限菜单
               await dispatch('getAppMenuSupplier')
    }
               console.log('login,reLaunch')
               // #ifdef APP
               var KeepAliveModule = uni.requireNativePlugin("yh-nl") //保活组件
               KeepAliveModule && KeepAliveModule.startLocation({
                  intervalTime: 5000, //定位间隔时间
                  gaodeApiKey: "0eef1axxxxxx7964", //高德地图Key,已停用,引入插件配置
                  locationMode: 1, //定位模式
                  purpose: 0, //定位场景
                  ifUpload: true, //是否上报服务器
                  uploadUrl: "http://bio51-api.fixbug.fun/api/current/employee/location", //上报接口
                  params: "{'lat':'1','lng':'3'}", //其他参数
                  headers: "{'authorization1':'Bearer xOHeJhg'}",
               }, function(res) {
                  console.log("启用结果:", res);
                  let ret = KeepAliveModule.getCurrentLocation();
                  console.log("启用结果2:", ret);
               });
               // #endif
               uni.reLaunch({
                  url: '/pages/home/supplier-home'
               })
            } else {
               // this.$message.showToast('登录失败')
            }
            return resp
         }
      },
      loginCustomer: async function({
         commit,
         dispatch,
         state
      }, data) {
         {
            const resp = await http.request('post', '/api/login/customer' + ((data.phoneNumber || data
               .tel) ? '/phone' : ''), {
               data: {
                  username: (data.phoneNumber || data.tel) ? (data.phoneNumber ||
                     data.tel) : data.username,
                  password: data.password,
                  tel: data.phoneNumber || data.tel,
                  smsCode: data.smsCode || ''
               },
               params: {
                  clientType: data.clientType || 'app'
               }
            })
            console.log('resp', resp)
            if (resp && resp.code === 0) {
               storage.setItem('token', resp.data.access_token)
               commit("updateLogin", true)
               await dispatch('getCurrentInfo')
               //todo 登录后可能需要进行绑定
               try {
                  var sharePartnerUserId = storage.getItem('cache_sharePartnerUserId')
                  if (sharePartnerUserId) {
                     //试图绑定
                     storage.removeItem('cache_sharePartnerUserId')
                     if (state.currentInfo.customerDTO && !state.currentInfo.customerDTO.partnerId) {
                        message.showLoading()
                        const bindres = await http.request('post', '/api/customer/bind/partner', {
                           data: {
                              partnerUserId: sharePartnerUserId
                           }
                        })
                        message.hideLoading()
                        if (bindres.code == 0) {
                           message.showToast(`绑定合伙人成功`)
                           await dispatch('getCurrentInfo')
                        }
                     }
                  }
               } catch (e) {
                  console.error('login ', e)
               }
               uni.reLaunch({
                  url: '/pages/home/home'
               })
            } else {
            }
            return resp
         }
      },
      submitShopping: async function({
         commit,
         dispatch,
         state
      }, data) {
         if (!state.currentInfo.id) {
            message.showToast('请先登录')
            return
         }
         //输入要添加多少个
         // const res = await message.confirm('', {
         //    editable: true,
         //    title: '请输入购买数目'
         // })
         // if (res.content && res.confirm) {
         // var t = res.content
         var t = 1
         if (!isNaN(parseInt(t)) && t >= 0) {
            if ((t) === 0) {
               message.showLoading()
               const resp = await http.request('get', '/api/customer/flower/cart/delete', {
                  params: {
                     id: data.id,
                  }
               })
               message.hideLoading()
               if (resp && resp.code === 0) {
                  message.showToast('操作成功')
                  dispatch('sign_add', 'shopping')
                  return {
                     code: 0,
                     data: 0
                  }
               }
            } else {
               if (parseInt(t) <= 0) {
               } else {
                  //提示没有库存
                  if (!data.stock) {
                     message.showToast('没有库存了,更新失败')
                     return {
                        code: 1,
                        data: parseInt(t)
                     }
                  } else {
                     if (data.stock == 0) {
                        message.showToast('库存为0,更新失败')
                        return {
                           code: 1,
                           data: parseInt(t)
                        }
                     } else if (data.stock > 0 && data.stock < (
                           parseInt(t))) {
                        message.showToast('超过库存,更新失败')
                        return {
                           code: 1,
                           data: parseInt(t)
                        }
                     }
                  }
                  // console.log('data',)
               }
               message.showLoading()
               const resp = await http.request('post', '/api/customer/flower/cart/change-num', {
                  data: {
                     id: data.id,
                     num: parseInt(t)
                  }
               })
               message.hideLoading()
               if (resp && resp.code === 0) {
                  message.showToast('添加购物车成功')
                  dispatch('sign_add', 'shopping')
                  return {
                     code: 0,
                     data: parseInt(t)
                  }
               }
            }
            // return {
            //    code: 1,
            //    data: 0
            // }
         }
         //  else {
         //    console.log('res.content', res.content)
         //    message.showToast('输入数目需要大于0')
         // }
         return {
            code: 1,
            data: 0
         }
      },
      countShopping: async function({
         commit,
         dispatch,
         state
      }, data) {
         if (state.currentInfo.id) {
            const resp = await http.request('get', '/api/customer/flower/cart/flower/count', {
               params: {
                  // flowerId: data || null
               }
            })
            if (resp && resp.code === 0) {
               return resp.data || 0
            } else {
               return 0
            }
         }
         return 0
      },
   }
})
export default store