一些樣式整理及總結(jié)

整個(gè)項(xiàng)目已經(jīng)傳到了gitee上面球及,https://gitee.com/malahaha/pjingdongdaojia.git

全部頁面如下
登陸界面.png
訂單.png
首頁.png
下單1.png
下單2.png
詳情1.png
詳情2.png
詳情3.png
詳情4.png
詳情5.png
注冊(cè)界面.png

上述幾篇文章中的一些樣式為了方便后期維護(hù)照捡,將它們?nèi)糠庋b成一個(gè)文件在style文件夾中,

(1)mixin.scss

//單行文本超出省略
@mixin ellipsis{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

(2)variable.scss一些通用顏色樣式

$content-fontcolor:#333;
$light-fontColor:#999;
$medium-fontColor:#666;
$dark-fontColor:#000;
$content-bgcolor:#F1F1F1;
$content-notice-fontcolor:#777;
$search-bgColor:#f5f5f5;
$search-fontColor:#b7b7b7;
$bgColor:#fff;
$highlight-fontColor:#E93B3B;
$btn-bgColor:#0091ff;

(3)iconfont小圖標(biāo)的使用

@font-face {
  font-family: 'iconfont';  /* Project id 3220603 */
  src: url('//at.alicdn.com/t/font_3220603_9vci4ti956.woff2?t=1648890516449') format('woff2'),
       url('//at.alicdn.com/t/font_3220603_9vci4ti956.woff?t=1648890516449') format('woff'),
       url('//at.alicdn.com/t/font_3220603_9vci4ti956.ttf?t=1648890516449') format('truetype');
}
  
  .iconfont {
    font-family: "iconfont" !important;
    font-size: .16rem;
    font-style: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

(4)vuex中數(shù)據(jù)獲取和一些數(shù)據(jù)變更功能實(shí)現(xiàn)

import { createStore } from 'vuex'

const setLocalCartList = (state)=>{
  const { cartList } = state;
  const cartListString = JSON.stringify(cartList);
  localStorage.cartList = cartListString;
}
const getLocalCartList = ()=>{
  try{
    return JSON.parse(localStorage.cartList) || {}
  }catch(e){
    return {}
  }
}

export default createStore({
  state: {
    // cartList:{
    //   shopId:{
    //     shopNme:'沃爾瑪',
    //     productList:{
    //        productId:{
    //          _id: "1",
    //          name: "番茄 250g / 份",
    //          imgUrl: "http://www.dell-lee.com/imgs/vue3/tomato.png",
    //          sales: 10,
    //          price: 33.6,
    //          oldPrice: 39.6,
    //          count:2
    //        } 
    //     }
    // }
    // cartList:{}
    cartList:getLocalCartList()
  },
  getters: {
  },
  mutations: {
    changeCartItemInfo(state,pyload){
      const {shopId,productId,productInfo} = pyload;
      let shopInfo = state.cartList[shopId] || {
        shopName:'',
        productList:{}
      };
      // if(!shopInfo) {shopInfo={}}
      let product = shopInfo.productList[productId];
      if(!product) { 
        productInfo.count = 0;
        product=productInfo;
        // product.count = 0;
      }
      product.count = product.count +pyload.num;

      if(pyload.num > 0){product.check = true;}
      // 等價(jià)于
      // (pyload.num > 0) && (product.check = true);
    
      if(product.count < 0) {product.count = 0;}
      // 等價(jià)于
      // (product.count < 0) && (product.count = 0);

      shopInfo.productList[productId] = product;
      state.cartList[shopId] = shopInfo;

      setLocalCartList(state);
    },

    changeShopName(state,pyload){
      const {shopId,shopName} = pyload;
      const shopInfo = state.cartList[shopId] || {
        shopName:'',
        productList:{}
      }
      shopInfo.shopName=shopName;
      state.cartList[shopId] = shopInfo

      setLocalCartList(state);
    },

    changeCartItemChecked(state,pyload){
      const {shopId,productId} = pyload;
      const product = state.cartList[shopId].productList[productId];
      //console.log(product)
       product.check = !product.check;

       setLocalCartList(state);
    },

    cleanCartProducts(state,pyload){
      const {shopId} = pyload;
      state.cartList[shopId].productList={};
    },

    setCartItemsChecked(state,pyload){
      const {shopId} = pyload;
      const products = state.cartList[shopId].productList;
      if(products){
        for(let i in products){
          const product =products[i];
          product.check = true;
          
        }
      }
      setLocalCartList(state);
    },

    clearCartData(state,pyload){
      const {shopId} = pyload
      state.cartList[shopId].productList=[];
    }
  },
})

(5)路由實(shí)現(xiàn)router文件夾下的index.js

import { createRouter, createWebHashHistory } from 'vue-router'
const routes = [
  {
    path: '/',
    name: 'Home',
    component: () => import(/* webpackChunkName: "home" */ '../views/home/HomeV')
  },
  {
    path: '/cartList',
    name: 'CartList',
    component: () => import(/* webpackChunkName: "cartList" */ '../views/cartList/CartList')
  },
  {
    path: '/orderConfirmation/:id',
    name: 'OrderConfirmation',
    component: () => import(/* webpackChunkName: "orderConfirmation" */ '../views/orderConfirmation/OrderConfirmation')
  },
  {
    path: '/orderList',
    name: 'OrderList',
    component: () => import(/* webpackChunkName: "orderList" */ '../views/orderList/OrderList')
  },
  {
    path: '/shop/:id',
    name: 'Shop',
    component: () => import(/* webpackChunkName: "shop" */ '../views/shop/ShopV')
  },
  {
    path: '/login',
    name: 'Login',
    component: () => import(/* webpackChunkName: "login" */ '../views/login/LoginV'),
    beforeEnter(to,from,next){
      const {isLogin} =localStorage;
      isLogin ? next({name:"Home"}) : next();
    },
  },
  {
    path: '/register',
    name: 'Register',
    component: () => import(/* webpackChunkName: "register" */ '../views/register/RegisterV'),
    beforeEnter(to,from,next){
      const {isLogin} =localStorage;
      isLogin ? next({name:"Home"}) : next();
    },
  },
  // {
  //   path: '/about',
  //   name: 'about',
  //   // route level code-splitting
  //   // this generates a separate chunk (about.[hash].js) for this route
  //   // which is lazy-loaded when the route is visited.
  //   component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
  // }
]

const router = createRouter({
  history: createWebHashHistory(),
  routes
})

router.beforeEach((to,from,next) => {
  const {isLogin }= localStorage;
  const {name} = to;
  const isLoginOrRegister = (name === "Login" || name === "Register");

  (isLogin || isLoginOrRegister) ? next() : next({name:'Login'});
})

export default router

*若是一個(gè)界面要使用一些對(duì)應(yīng)的數(shù)據(jù)击狮,功能或者樣式佛析,一定要記得引入文件

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市彪蓬,隨后出現(xiàn)的幾起案子寸莫,更是在濱河造成了極大的恐慌,老刑警劉巖寞焙,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件储狭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡捣郊,警方通過查閱死者的電腦和手機(jī)辽狈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呛牲,“玉大人刮萌,你說我怎么就攤上這事∧锢” “怎么了着茸?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)琐旁。 經(jīng)常有香客問我涮阔,道長(zhǎng),這世上最難降的妖魔是什么灰殴? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任敬特,我火速辦了婚禮,結(jié)果婚禮上牺陶,老公的妹妹穿的比我還像新娘伟阔。我一直安慰自己,他們只是感情好掰伸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布皱炉。 她就那樣靜靜地躺著,像睡著了一般狮鸭。 火紅的嫁衣襯著肌膚如雪合搅。 梳的紋絲不亂的頭發(fā)上多搀,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音灾部,去河邊找鬼酗昼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛梳猪,可吹牛的內(nèi)容都是我干的麻削。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼春弥,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼呛哟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起匿沛,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤扫责,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后逃呼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鳖孤,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年抡笼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苏揣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡推姻,死狀恐怖平匈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情藏古,我是刑警寧澤增炭,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站拧晕,受9級(jí)特大地震影響隙姿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜厂捞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一输玷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蔫敲,春花似錦饲嗽、人聲如沸炭玫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吞加。三九已至裙犹,卻和暖如春尽狠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叶圃。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工袄膏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掺冠。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓沉馆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親德崭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斥黑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容