From 138a24976b109971375fe5c1f8affed43b761e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=8E=E5=86=A0=E5=AE=87?= Date: Mon, 10 Jun 2024 12:08:50 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E9=98=8E=E5=86=A0?= =?UTF-8?q?=E5=AE=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\351\230\216\345\206\240\345\256\207/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\351\230\216\345\206\240\345\256\207/.keep" diff --git "a/\351\230\216\345\206\240\345\256\207/.keep" "b/\351\230\216\345\206\240\345\256\207/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 2d645292b211423c66af45a9e3a4e85b38634e4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=8E=E5=86=A0=E5=AE=87?= Date: Mon, 10 Jun 2024 12:41:00 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BA=AC=E4=BB=98=E5=88=B0=E5=AE=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 阎冠宇 --- ...54\344\273\230\345\210\260\345\256\266.md" | 2150 +++++++++++++++++ 1 file changed, 2150 insertions(+) create mode 100644 "\351\230\216\345\206\240\345\256\207/\344\272\254\344\273\230\345\210\260\345\256\266.md" diff --git "a/\351\230\216\345\206\240\345\256\207/\344\272\254\344\273\230\345\210\260\345\256\266.md" "b/\351\230\216\345\206\240\345\256\207/\344\272\254\344\273\230\345\210\260\345\256\266.md" new file mode 100644 index 0000000..42b0d1a --- /dev/null +++ "b/\351\230\216\345\206\240\345\256\207/\344\272\254\344\273\230\345\210\260\345\256\266.md" @@ -0,0 +1,2150 @@ +## components + +### address.AddressCard + +```vue + + + + + +``` + +### components.cart.CartCard + +```vue + + + + + +``` + +### components.cart.CartFooter + +```vue + + + + + +``` + +### components.layout.Tabblr + +```vue + + + +``` + +### components.order.OrderCard + +```vue + + + + + +``` + + + +### components.Product.Product + +```vue + + + + + +``` + +### components.shop.ShopInfo.vue + +```vue + + + + + +``` + +### components.router.index.js + +```js +import { createRouter, createWebHistory } from 'vue-router' +import LayoutView from '../views/layout/LayoutView.vue' +import HomeView from '../views/home/HomeView.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'LayoutView', + component: LayoutView, + // 路由重定向 + redirect: '/home', + children: [ + { + path: '/home', + name: 'HomeView', + component: HomeView, + },{ + path: '/cart', + name: 'CartView', + component: () => import('../views/cart/CartView.vue'), + }, + { + path: '/order', + name: 'OrderView', + component: () => import('../views/order/OrderView.vue') , + }, + { + path: '/my', + name: 'MyView', + component: () => import('../views/my/MyView.vue'), + }, + + ] + }, + // { + // path: '/login', + // name: 'LoginView', + // component: () => import('../views/login/LoginView.vue'), + // }, + // { + // path: '/register', + // name: 'RegisterView', + // component: () => import('../views/login/RegisterView.vue'), + // }, + { + path: '/address', + name: 'AddressView', + component: () => import('../views/my/AddressView.vue'), + }, + { + path: '/createaddress', + name: 'CreateAddressView', + component: () => import('../views/my/CreateAddressView.vue'), + }, + { + path: '/shop', + name: 'ShopView', + component: () => import('../views/shop/ShopView.vue'), + }, + { + path: '/orderconfirmation', + name: 'OrderConfirmationView', + component: () => import('../views/orderConfirmation/OrderConfirmationView.vue'), + } + ] +}) + + +// 路由守卫 +// 前置 +// router.beforeEach((to, from, next) => { +// if(to.path == '/login' || to.path == '/register') { +// next() +// }else { +// // 不是登录或者注册页面 +// if(sessionStorage.getItem('isLogin') == 'true') { +// // 登录成功 +// next() +// }else { +// // 没有登录 +// next({path: '/login'}) +// } +// } +// }) + + +export default router + +``` + +### components.stores.cart.js + +```js +import {defineStore} from 'pinia' +import { ref } from 'vue' + + + +const useCartStore = defineStore('cart',()=>{ + const cartList=ref([]) + + return {cartList} +}) + +export default useCartStore +``` + +components.stores.counter.js + +```js +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore('counter', () => { + const count = ref(0) + const doubleCount = computed(() => count.value * 2) + function increment() { + count.value++ + } + + return { count, doubleCount, increment } +}) + +``` + +components.stores.order.js + +```js +import {defineStore} from 'pinia' +import { ref } from 'vue' + + + +const useOrderStore = defineStore('order',()=>{ + const orderList=ref([]) + + return {orderList} +}) + +export default useOrderStore +``` + +components.stores.shop.js + +```js +import {defineStore} from 'pinia' +import { ref } from 'vue' + + + +const useShopStore = defineStore('shop',()=>{ + const nearByList = ref([ + { + id: 1, + name: "沃尔码", + imgUrl: "http://www.dell-lee.com/imgs/vue3/near.png", + sales: 10000, + expressLimit: 0, + expressPrice: 5, + slogan: "VIP尊享满89元减4元运费券", + category: [ + { + id: 11, + name: "新鲜水果", + list: [ + { + id: 111, + title: "番茄 250g / 份", + imgName: "tomato", + sales: 10, + number: 0, + checked: true, + price: 3.6, + oldPrice: 5.6 + }, + { + id: 112, + title: "车厘子 500g / 份", + imgName: "cherry", + sales: 10, + number: 0, + checked: true, + price: 33.9, + oldPrice: 39.9 + }, + { + id: 113, + title: "橙子 500g / 份", + imgName: "orange", + sales: 110, + number: 0, + checked: true, + price: 12.9, + oldPrice: 22.9 + } + ] + }, + { + id: 12, + name: "海鲜水产", + list: [ + { + id: 121, + title: "帝王蟹 250g / 份", + imgName: "crab", + sales: 10, + number: 0, + checked: true, + price: 99.9, + oldPrice: 199.9 + } + ] + } + ], + cartList: [] + }, + { + id: 2, + name: "山姆会员商店", + imgUrl: "http://www.dell-lee.com/imgs/vue3/near.png", + sales: 2000, + expressLimit: 0, + expressPrice: 5, + slogan: "联合利华洗护满10减5", + category: [ + { + id: 21, + name: "新鲜水果", + list: [ + { + id: 211, + title: "番茄 250g / 份", + imgName: "tomato", + sales: 10, + number: 0, + checked: true, + price: 3.6, + oldPrice: 5.6 + }, + { + id: 212, + title: "桃子 500g / 份", + imgName: "tomato", + sales: 10, + number: 0, + checked: true, + price: 33.9, + oldPrice: 39.9 + }, + { + id: 213, + title: "橙子 500g / 份", + imgName: "orange", + sales: 110, + number: 0, + checked: true, + price: 12.9, + oldPrice: 22.9 + } + ] + }, + { + id: 22, + name: "海鲜水产", + list: [ + { + id: 221, + title: "帝王蟹 250g / 份", + imgName: "crab", + sales: 9, + number: 0, + checked: true, + price: 99.9, + oldPrice: 199.9 + }, + { + id: 222, + title: "虾 250g / 份", + imgName: "tomato", + sales: 19, + number: 0, + checked: true, + price: 39.9, + oldPrice: 59.9 + } + ] + }, + { + id: 23, + name: "零食小吃", + list: [ + { + id: 231, + title: "薯片 250g / 份", + imgName: "tomato", + sales: 20, + number: 0, + checked: true, + price: 9.9, + oldPrice: 19.9 + }, + { + id: 232, + title: "饼干 250g / 份", + imgName: "tomato", + sales: 10, + number: 0, + checked: true, + price: 3.9, + oldPrice: 5.9 + } + ] + } + ], + cartList: [] + } + ]) + + return {nearByList} +}) + +export default useShopStore +``` + +components.stores.user.js + +```js +import {defineStore} from 'pinia' +import { ref } from 'vue' + + + +const useUserStore = defineStore('user',()=>{ + const userList=ref([ + { + name: 'zhangsan', + password: '123', + id: '000001', + imgUrl: 'http://www.dell-lee.com/imgs/vue3/orange.png', + list: [ + { title: '红包', content: 218}, + { title: '优惠劵', content: '12张'}, + { title: '红豆', content: 88}, + { title: '白条', content: 1000} + ], + addressList: [ + { + name: '小慕', + phone: 18611111111, + address_text: '北京 海淀区西三环北路2号院北京理工大学国防科技园2号楼10号' + }, + { + name: '小可', + phone: 18622222222, + address_text: '北京 朝阳区北京工业大学3号楼303' + } + ], + currentAddress: null + }, + { + name: 'admin', + password: '123', + id: '000002', + imgUrl: 'http://www.dell-lee.com/imgs/vue3/orange.png', + list: [ + { title: '红包', content: 22}, + { title: '优惠劵', content: '7张'}, + { title: '红豆', content: 120}, + { title: '白条', content: 2000} + ], + addressList: [], + currrentAddress: null + } + ]) + + return {userList} +}) + +export default useUserStore +``` + +## views + +### cart.CartView + +```vue + + + + + +``` + +### home.HomeView.vue + +```vue + + + + + + + +``` + +### home.NearByView.vue + +```vue + + + + + +``` + + + +### home.StaticPartView.vue + +```vue + + + + + +``` + +### layout.LayoutView.vue + +```vue + + + + + + +``` + +### my.AddressView.vue + +```vue + + + + + +``` + +### my.CreateAddressView.vue + +```vue + + + + + +``` + +### my.MyView.vue + +```vue + + + +``` + +### order.OrderView.vue + +```vue + + + + + +``` + +### orderConfirmation.OrderConfirmationView.vue + +```vue + + + + + +``` + +shop.ShopView.vue + +```vue + + + + + +``` + +## App.vue + +```vue + + + +``` + +## main.js + +```js +import './style/base.scss' +import './style/iconfont.css' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' + +import App from './App.vue' +import router from './router' + +const app = createApp(App) + +app.use(createPinia()) +app.use(router) + +app.mount('#app') + +``` + -- Gitee