这个东西怎么做呢?

main.js
import Vue from ‘vue’
import App from ‘./App.vue’
// 引入全部 Mint组件

// import Mint from ‘mint-ui’;
// import ‘mint-ui/lib/style.css’
// Vue.use(Mint);

import Vant from ‘vant’;
import ‘vant/lib/index.css’;

Vue.use(Vant);
import { Lazyload } from ‘vant’;

Vue.use(Lazyload);
import router from “./router”;

// 载入ajax 请求库
import axios from “axios”;
axios.defaults.baseURL=“https://api.it120.cc/xiaochengxu”;

Vue.prototype.$http=axios;

import store from “./store”
Vue.config.productionTip = false

new Vue({
router,
store,
render: h => h(App)
}).$mount(’#app’)

app.vue

router.js
import Vue from “vue”;
import VueRouter from “vue-router”;

Vue.use(VueRouter);

const router= new VueRouter({
mode:“history”,
routes:[
{
path:"/home",
component:()=>import("…/views/Home.vue"),
name:“home”,
meta:{
title:“小米商城”
} ,
children:[
// 首页
{
path:“first”,
component:()=>import("…/views/First.vue"),
name:“first”,
meta:{
title:“首页”
}
},
// 购物车
{
path:“car”,
component:()=>import("…/views/Car.vue"),
name:“car”,
meta:{
title:“购物车”
}
},
// 个人中心
{
path:“my”,
component:()=>import("…/views/My.vue"),
name:“my”,
meta:{
title:“个人中心”
}
},
]
},
// 商品详情
{
path:"/info",
component:()=>import("…/views/Info.vue"),
name:“info”,
meta:{
title:“商品详情”
}
},
{
path:"/login",
component:()=>import("…/views/Login.vue"),
name:“login”
},
{
path:"/register",
component:()=>import("…/views/Register.vue"),
name:“register”
},
// 重定向
{
path:"/",
redirect:"/home/first"
}
]
})
export default router;

store
import Vue from “vue”;
import Vuex from “vuex”;
import local from “./local.js”
Vue.use(Vuex);
import { Toast } from “vant”;

const store= new Vuex.Store({
state:{
carArr:local.get(“xiaomicar”),
// carArr:[
// /*
// {
// // 商品详情页
// id:“商品id”,
// pic:“图片地址”,
// name:“商品名称”,
// minPrice:“商品价格”,
// numberFav:“库存”,
// // 自定义
// check:true,
// date:“加入购物车时间”,
// num:“购买数量”
// }
// */

    // ] ,
    all:true  
},
actions:{},
mutations:{
    // 添加购物车数据
    addCar(state,obj){
        // console.log(obj);
        obj.check=true;
        obj.date=new Date().getTime();
        // 查看 商品 是否已加入 购物车 ,
        let index= state.carArr.findIndex(val=>val.id == obj.id)
        // 如果 没有加入 数量 =1 并加入
        if(index ==-1){
            obj.num=1;
            state.carArr.push(obj);
        }else{
                // 如果 已加入 改变数量 +1 ,不能超过库存
            if(state.carArr[index].num < state.carArr[index].numberFav){
                state.carArr[index].num+=1
            }else{
                Toast("最大库存了"); 
            }
        }

        local.set("xiaomicar",{"info":state.carArr})
       
    },
    // 数量 加
    jiaNum(state,id){
        // console.log(id)
        let index= state.carArr.findIndex(val=>val.id == id)
        if(state.carArr[index].num < state.carArr[index].numberFav){
            state.carArr[index].num+=1
        }else{
            Toast("最大库存了");
        }
        local.set("xiaomicar",{"info":state.carArr})
    },
    // 数量 减
    jianNum(state,id){
        let index= state.carArr.findIndex(val=>val.id == id)
        if(state.carArr[index].num >1){
            state.carArr[index].num-=1
        }else{
            Toast("至少买一件吧😄"); 
        }
        local.set("xiaomicar",{"info":state.carArr})
    },
    // 删除
    del(state,id){
        let index= state.carArr.findIndex(val=>val.id == id);
        state.carArr.splice(index,1)
        local.set("xiaomicar",{"info":state.carArr})
    },
    // 全选
    checkAll(state,allVal){
        state.all = allVal;
        state.carArr.map(val=>{
            val.check = allVal
        })
        local.set("xiaomicar",{"info":state.carArr})
    },
    // 反选
    fan(state){
        let index= state.carArr.findIndex(val=>val.check == false);
        if(index ==-1){
            state.all=true;
        }else{
            state.all=false;
        }
        local.set("xiaomicar",{"info":state.carArr})
    }

},
getters:{
    sumPrice(state){
        let sum =0;
        state.carArr.map(val=>{
            if(val.check == true){
                sum+= val.minPrice * val.num
            }
        })

        return sum
    }
}

})

export default store;

home.vue

first.vue

<!-- 九宫格导航 start -->
<van-grid :column-num="3">
  <van-grid-item
    v-for="value in 6"
    :key="value"
    icon="photo-o"
    text="文字"
  />
</van-grid>
<!-- 九宫格导航  end-->
<!-- 热门商品 -->
<van-divider>热门商品</van-divider>
<van-card
  v-for="item in hotGoodsArr"
  :key="item.id"
  :num="item.numberFav"
  :tag="item.kanjia ?'砍价': (item.pingtuan?'拼团':'') "
  :price="item.minPrice"
  :desc="item.characteristic"
  :title="item.name"
  :thumb="item.pic"
  :origin-price="item.originalPrice"
  @click="$router.push('/info?id='+item.id)"
/>
<!-- 砍价商品 -->
<van-divider>砍价商品</van-divider>
 <van-card
  v-for="item in kanjiaGoodsArr"
  :key="item.id"
  :num="item.numberFav"
  :tag="item.kanjia ?'砍价': (item.pingtuan?'拼团':'') "
  :price="item.minPrice"
  :desc="item.characteristic"
  :title="item.name"
  :thumb="item.pic"
  :origin-price="item.originalPrice"
  @click="$router.push('/info?id='+item.id)"
/>
<!-- 拼团商品 -->
<van-divider>拼团商品</van-divider>
 <van-card
  v-for="item in pingtuanGoodsArr"
  :key="item.id"
  :num="item.numberFav"
  :tag="item.kanjia ?'砍价': (item.pingtuan?'拼团':'') "
  :price="item.minPrice"
  :desc="item.characteristic"
  :title="item.name"
  :thumb="item.pic"
  :origin-price="item.originalPrice"
  @click="$router.push('/info?id='+item.id)"
/>

info

car

},
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值