diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/img/bg1.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/img/bg1.png"
new file mode 100644
index 0000000000000000000000000000000000000000..92074c9184b0ce35f134c5bd52c6fabf95c53d43
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/img/bg1.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/img/bg2.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/img/bg2.png"
new file mode 100644
index 0000000000000000000000000000000000000000..140bf91c7f0d91e1839b32d94cb76228a758b256
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/img/bg2.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/index.html" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/index.html"
index 6409508625a38fffb4f1335ccf703e37db9a1bd6..920c38a48e08e515d3c0f0d42b1fa4a115f6b19f 100644
--- "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/index.html"
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.14\345\265\214\345\245\227\345\225\206\345\223\201\345\210\227\350\241\250/index.html"
@@ -8,6 +8,8 @@
+
+
\ No newline at end of file
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/001.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/001.png"
new file mode 100644
index 0000000000000000000000000000000000000000..b76d85c25470e59c7d3968d60d3ed6a878d2c675
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/001.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/002.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/002.png"
new file mode 100644
index 0000000000000000000000000000000000000000..520040cdf83e3d29b89188b931857adc420dd7cb
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/002.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/003.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/003.png"
new file mode 100644
index 0000000000000000000000000000000000000000..7beff14259156a823b8f286785f0321faee71fdd
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/003.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/004.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/004.png"
new file mode 100644
index 0000000000000000000000000000000000000000..fea05a63a24812c15e434612891c3cab9a1d3bad
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/004.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/005.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/005.png"
new file mode 100644
index 0000000000000000000000000000000000000000..d62fd94d886fb7cef76896d2d0a92a0fe41138b6
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/005.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/006.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/006.png"
new file mode 100644
index 0000000000000000000000000000000000000000..9e175129ef910a7baef00cdb036d8f0fee2b6e2b
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/006.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/007.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/007.png"
new file mode 100644
index 0000000000000000000000000000000000000000..4992db13a44dd8ae7f6576c751dcee2a3a14cfb5
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/007.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/008.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/008.png"
new file mode 100644
index 0000000000000000000000000000000000000000..f6cfabbaa9d80f7cf951792e8660d0c29cf91cbd
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/008.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/009.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/009.png"
new file mode 100644
index 0000000000000000000000000000000000000000..546c669e554bb1cccc6a8250749829801fad9f33
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/009.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/logo.png" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/logo.png"
new file mode 100644
index 0000000000000000000000000000000000000000..ea6c5c8617385a9b7ea376fe27db5403e7b9fb18
Binary files /dev/null and "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/assets/logo.png" differ
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/Header.vue" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/Header.vue"
new file mode 100644
index 0000000000000000000000000000000000000000..bbada588183ac5fe9f23eac8560a7749bac15c1e
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/Header.vue"
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/home/list.vue" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/home/list.vue"
new file mode 100644
index 0000000000000000000000000000000000000000..d6f98236bfce39f057e2929d92df1b44e388f1fb
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/home/list.vue"
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/home/top.vue" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/home/top.vue"
new file mode 100644
index 0000000000000000000000000000000000000000..7da55c8f7e4e413cd36e823b11756acb2cbec226
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/components/home/top.vue"
@@ -0,0 +1,85 @@
+
+
+
+
+
+ 消息
+
+
+
+
+ 分类
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/main.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/main.js"
new file mode 100644
index 0000000000000000000000000000000000000000..d398597956c2e8dd49f8f229ce2a93f02fb32009
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/main.js"
@@ -0,0 +1,26 @@
+import Vue from "vue";
+import Vant from "vant"; // 引入组件
+import "vant/lib/index.css"; // 引入样式
+import App from "./App.vue";
+import router from "./router";
+
+
+Vue.use(Vant); // 使用组件,以后就可以在代码中直接使用vant的组件
+Vue.config.productionTip = false;
+
+//设置全局图片过滤器
+Vue.filter("dalImg", (v) => {
+ if (v) {
+ if (v.startsWith("http")) {
+ return v;
+ } else {
+ return `http://localhost:3009${v}`;
+ }
+ } else {
+ return "https://img1.baidu.com/it/u=2301293588,1197442478&fm=11&fmt=auto&gp=0.jpg"
+ }
+});
+new Vue({
+ router,
+ render: (h) => h(App),
+}).$mount("#app");
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/Detail.vue" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/Detail.vue"
new file mode 100644
index 0000000000000000000000000000000000000000..ec8c5c0ed6b2165f55d6ccb13062ed56723f1ae7
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/Detail.vue"
@@ -0,0 +1,67 @@
+
+
+
+
+
+ {{"¥"+this.$route.query.price}}
+ {{this.$route.query.introduce}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/List1.vue" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/List1.vue"
new file mode 100644
index 0000000000000000000000000000000000000000..5166e9f618eb561baeae03fbf98160d28b0b1ca9
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/List1.vue"
@@ -0,0 +1,60 @@
+
+
+
+ ![]()
{{item.name}}
3.8折起
+
+
+
+
+
+
+
+
+
+
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/list2.vue" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/list2.vue"
new file mode 100644
index 0000000000000000000000000000000000000000..1bd5fa1e2a15d6c34d50cc7c476f171ec3f216ae
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/list2.vue"
@@ -0,0 +1,60 @@
+
+
+
+ ![]()
{{item.name}}
3折起
+
+
+
+
+
+
+
+
+
+
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/list3.vue" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/list3.vue"
new file mode 100644
index 0000000000000000000000000000000000000000..dcd87b269fe0041993e98ff32a2e6ed89a0241a3
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/pages/list3.vue"
@@ -0,0 +1,60 @@
+
+
+
+ ![]()
{{item.name}}
限时免费大放送
+
+
+
+
+
+
+
+
+
+
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/router/index.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/router/index.js"
new file mode 100644
index 0000000000000000000000000000000000000000..0afe1bde2d8746d460f1ab024c801126d4a79497
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/router/index.js"
@@ -0,0 +1,49 @@
+import Vue from "vue";
+import VueRouter from "vue-router";
+import Home from "../components/home/top.vue";
+import List1 from "../pages/List1.vue"
+import list2 from "../pages/list2.vue";
+import list3 from "../pages/list3.vue";
+import Detail from "../pages/Detail.vue";
+
+
+Vue.use(VueRouter);
+
+const routes = [
+ {
+ path:'/List1',
+ name:'List1',
+ component:List1
+ },
+ {
+ path: "/home",
+ name: "Home",
+ component: Home,
+ },
+ {
+ path: "/list3",
+ component: list3,
+ // children: [
+ // {
+ // path: 'detail',// 前面的 / 符号可以不用写
+ // component: Detail,
+ // },
+ // ]
+
+ },
+ {
+ path: "/list2",
+ component: list2
+ },
+ {
+ path: "/detail",
+ component: Detail
+ },
+
+];
+
+const router = new VueRouter({
+ routes,
+});
+
+export default router;
\ No newline at end of file
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/address.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/address.js"
new file mode 100644
index 0000000000000000000000000000000000000000..53e56f0b87e3b8a1c9a8668cb281b28bbedbab5b
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/address.js"
@@ -0,0 +1,17 @@
+import { get, put, post, del } from "../utils/request";
+
+// 获取收货地址列表
+export const addresseList = () => get("/api/v1/addresses");
+
+// 获取单条收货地址
+export const singleAddresse = (id) => get("/api/v1/addresses/" + id);
+
+// 收货地址新增
+export const addToaddresses = (data) => post("/api/v1/addresses", data);
+
+// 收货地址修改
+export const changeAddresses = ({ id, data }) => put("/api/v1/addresses/" + id, data);
+
+// 删除收货地址
+export const delAddress = (id) => del("/api/v1/addresses/" + id);
+
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/auth.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/auth.js"
new file mode 100644
index 0000000000000000000000000000000000000000..a4df0bff2bf8772926e2219c550e28ac2fe6bd48
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/auth.js"
@@ -0,0 +1,49 @@
+import { post } from "../utils/request";
+import { get } from "../utils/request";
+
+/**
+ * 用户登录
+ * @param {*} data
+ * @returns
+ */
+export const login = (data) => post("/api/v1/auth/login", data);
+
+/**
+ * 用户注册
+ * @param {*} data
+ * @returns
+ */
+export const reg = (data) => post("/api/v1/auth/reg", data);
+
+// 获取用户信息
+export const yonghu = () => get("/api/v1/users/info");
+
+// 修改用户信息
+/*
+url
+ /api/v1/users/change_info
+method
+ post
+params
+ nickName
+ avatar
+headers
+ authorization Bearer token // 需要提供jwt信息
+*/
+export const changeInfo = (data) => post("/api/v1/users/change_info", data);
+
+
+/*
+ 上传文件
+url
+ /api/v1/common/file_upload
+method
+ post
+params
+ file
+*/
+export const fileUpLoad = (file) => post("/api/v1/common/file_upload", file);
+
+
+// 修改登录密码
+export const ChangePwd = (data) => post("/api/v1/users/change_pwd", data);
\ No newline at end of file
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/carts.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/carts.js"
new file mode 100644
index 0000000000000000000000000000000000000000..82843cdda9e273274a5529f4f65611601bbc3e22
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/carts.js"
@@ -0,0 +1,25 @@
+import { post, get, del } from "../utils/request";
+
+/**
+ * 加入购物车
+ * @param {*} product 商品id
+ * @param {*} quantity 商品数量
+ * @returns
+ */
+export const addToCart = (product, quantity) =>
+ post("/api/v1/shop_carts", {
+ product,
+ quantity,
+ });
+
+/**
+ * 获取购物车数据
+ * @returns
+ */
+export const loadCarts = () => get("/api/v1/shop_carts");
+
+/**
+ * 删除购物车数据
+ * @returns
+ */
+ export const delToCart = (id) => del("/api/v1/shop_carts/" + id);
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/categories.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/categories.js"
new file mode 100644
index 0000000000000000000000000000000000000000..21c400473db7eebba0c912ef2a9b585434c74a06
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/categories.js"
@@ -0,0 +1,7 @@
+import { get } from "../utils/request";
+
+/**
+ * 获取商品分类
+ * @returns
+ */
+export const loadCategories = () => get("/api/v1/product_categories");
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/order.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/order.js"
new file mode 100644
index 0000000000000000000000000000000000000000..add153e1fcbcef5c536e5f2f048b3d0b80e4e185
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/order.js"
@@ -0,0 +1,27 @@
+import { post, get } from "../utils/request";
+
+/*
+订单提交
+url
+ /api/v1/orders
+method
+ post
+headers
+ authorization Bearer token // 需要提供jwt信息
+data
+ {
+ receiver 收货人
+ regions 收货的省市区县
+ address 收货地址
+ orderDetails
+ [{
+ quantity 数量
+ product 商品id
+ price 商品单价
+ }]
+ }
+*/
+// 提交订单
+export const addOrder = (data) => post("/api/v1/orders", data);
+//获取订单
+export const Orderlist = () => get("/api/v1/orders");
\ No newline at end of file
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/products.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/products.js"
new file mode 100644
index 0000000000000000000000000000000000000000..c49fe1f7a88ec30973ca1a72404aa7d2bd60b3d3
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/services/products.js"
@@ -0,0 +1,19 @@
+import { get } from "../utils/request";
+
+/**
+ * 分页获取商品信息
+ * @param {*} page
+ * @returns
+ */
+export const loadProducts = (page = 1, c = "") =>
+ get("/api/v1/products", {
+ page,
+ product_category: c,
+ });
+
+/**
+ * 根据id获取详情
+ * @param {*} id
+ * @returns
+ */
+export const loadProduct = (id) => get(`/api/v1/products/${id}`);
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/utils/request.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/utils/request.js"
new file mode 100644
index 0000000000000000000000000000000000000000..ed04f296c621316c500a4cc0bceeb863d6faa0a0
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/utils/request.js"
@@ -0,0 +1,81 @@
+import axios from "axios";
+import { getToken } from "./tools";
+import { Toast } from "vant";
+
+// 创建一个axios实例
+const instance = axios.create({
+ baseURL: "http://localhost:3009",
+ timeout: 5000, // 请求超时时间
+});
+
+// https://github.com/axios/axios
+// 请求的全局拦截
+// 全局请求拦截,请求发起之前会执行的一个函数
+// Add a request interceptor
+instance.interceptors.request.use(
+ function(config) {
+ // 此处设置全局请求拦截的配置信息,可以在这个位置添加请求头
+ // Do something before request is sent
+ config.headers.authorization = "Bearer " + getToken(); // 设置token
+ return config;
+ },
+ function(error) {
+ // Do something with request error
+ return Promise.reject(error);
+ }
+);
+
+// 全局响应拦截,请求完成之后会执行的一个函数
+// Add a response interceptor
+instance.interceptors.response.use(
+ function(response) {
+ // Any status code that lie within the range of 2xx cause this function to trigger
+ // Do something with response data
+ return response.data;
+ },
+ function(error) {
+ // Any status codes that falls outside the range of 2xx cause this function to trigger
+ // Do something with response error
+ // console.dir(error); //
+ // 如果接口返回的状态码是401,跳转到登录页
+ if (error.response.status && error.response.status === 401) {
+ Toast.fail("亲,先登录哦~");
+ window.location.href = "/#/login";
+ } else {
+ return Promise.reject(error);
+ }
+ }
+);
+
+// config中的params表示url中传递的参数
+// export const get = (url, params) => instance.get(url, { params });
+export function get(url, params) {
+ return instance.get(url, { params });
+}
+
+// export function post(url, data) {
+// return instance.post(url, data);
+// }
+
+/**
+ * 发起一个post请求
+ * @param {*} url 请求地址
+ * @param {*} data 传递的数据
+ * @returns
+ */
+export const post = (url, data) => instance.post(url, data);
+
+/**
+ * 发起一个put请求
+ * @param {*} url 请求地址
+ * @param {*} data 传递参数
+ * @returns
+ */
+export const put = (url, data) => instance.put(url, data);
+
+/**
+ * 发起一个删除请求
+ * @param {*} url 请求地址
+ * @returns
+ */
+export const del = (url) => instance.delete(url);
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/utils/tools.js" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/utils/tools.js"
new file mode 100644
index 0000000000000000000000000000000000000000..b6a1255b5943fe6540c616cbf09154e908620e38
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/src/utils/tools.js"
@@ -0,0 +1,32 @@
+//设置token
+export const setToken = (token) => {
+ return localStorage.setItem("token", token);
+};
+export const setCookie = (cookie) => {
+ return localStorage.setItem("cookie", cookie);
+};
+export const getCookie = (cookie) => {
+ return localStorage.setItem("cookie", cookie);
+};
+export const cunShzu = (shuzu) => {
+ return localStorage.setItem("cunshuzu", shuzu);
+};
+
+//获取token
+export const getToken = (token) => {
+ return localStorage.getItem("token", token);
+};
+//
+//删除token
+export const removeToken = () => {
+ return localStorage.removeItem("token");
+};
+
+//判断是否登录
+export const isLogined = () => {
+ if (getToken()) {
+ return true;
+ } else {
+ return false;
+ }
+};
\ No newline at end of file
diff --git "a/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/\350\267\257\347\224\261.md" "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/\350\267\257\347\224\261.md"
new file mode 100644
index 0000000000000000000000000000000000000000..ec70dac26326202f3fd97460298f4d1a0773ea88
--- /dev/null
+++ "b/\345\274\240\344\272\246\345\270\214/vue\344\275\234\344\270\232/4.20\345\224\257\345\223\201\344\274\232/store/\350\267\257\347\224\261.md"
@@ -0,0 +1,17 @@
+### 路由组件的显示与隐藏式通过组件实例的创建于销毁来完成的,每个组件实例中都有一个自己的 $route 对象,有个 query 可以获取参数。
+### router 每个实例公用一个,路由组件推荐建一个pages目录放置,普通组件就放于components下
+
+
+
+
+# 作业:在上一节课的基础上,把商品详情页面完善下,简介,商品名,图片......
+
+
+
+
+
+
+
+
+
+