123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- import request from '../../utils/request/index';
- import store from '../../store/index';
- export default {
- // 当前是否处于发起请求
- status: false,
- // 本次请求的 唯一标示
- requestUnique: 0,
- // 购物数量 当前统计
- number: 0,
- numberFormat: '',
- getCartNumber:function (must) {
- if (!this.status || must) {
- let requestUnique = this.getUnique();
- this.requestUnique = requestUnique;
- return new Promise( (resolve, reject)=> {
- request({
- url:'product/getCartNum',
- token:true,
- login:false,
- next:(status)=>{
- this.status = status;
- }
- }).then((data)=>{
- if (requestUnique === this.requestUnique) {
- if ( data.isSuccess) {
- this.setCartNumber(data.data);
- return resolve(this.number);
- } else {
- return reject({
- data: data,
- status: data.status,
- msg:data.msg
- });
- }
- } else {
- return reject({
- data: data,
- status: 0,
- msg:'invalid request'
- });
- }
- }).catch((fail)=>{
- return reject({
- status: 4,
- msg: fail
- })
- });
- });
- }
- },
- setCartNumber:function(number){
- if (number !== this.number) {
- this.number = number;
- if (number <= 0) {
- this.numberFormat = '';
- } else {
- this.numberFormat = number >99?'99+': String(number);
- }
- // 更新
- store.commit('setNumberFormat',this.number);
- // wx.tab
- return this.saveTabBarBadge();
- }
- },
- checkSet:function(){
- if (this.setFail) {
- return this.saveTabBarBadge();
- }
- },
- saveTabBarBadge:function(){
- if (this.number > 0) {
- return uni.setTabBarBadge({
- index: 2,
- text: this.numberFormat,
- fail:()=>{
- this.setFail = true;
- }
- })
- } else {
- return wx.removeTabBarBadge({
- index: 2,
- fail:(res) =>{
- this.setFail = true;
- }
- });
- }
- },
- getUnique:function () {
- return new Date().getTime();
- }
- }
|