diff --git a/package-lock.json b/package-lock.json
index 0773f5652172b72ee070775702733348be30f2d8..ae2d8f67c0b6ee2df4589c2870c197b43e196b28 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,7 +8,9 @@
"name": "jifen",
"version": "0.0.0",
"dependencies": {
- "vue": "^3.3.4"
+ "axios": "^1.5.0",
+ "vue": "^3.3.4",
+ "vue-router": "^4.2.4"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.2.3",
@@ -443,6 +445,11 @@
"@vue/shared": "3.3.4"
}
},
+ "node_modules/@vue/devtools-api": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz",
+ "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
+ },
"node_modules/@vue/reactivity": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
@@ -499,6 +506,32 @@
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/axios": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz",
+ "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==",
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/copy-anything": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz",
@@ -526,6 +559,14 @@
"ms": "^2.1.1"
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/errno": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
@@ -581,6 +622,38 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
@@ -698,6 +771,25 @@
"node": ">=4"
}
},
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -791,6 +883,11 @@
"node": "^10 || ^12 || >=14"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -928,6 +1025,20 @@
"@vue/server-renderer": "3.3.4",
"@vue/shared": "3.3.4"
}
+ },
+ "node_modules/vue-router": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.4.tgz",
+ "integrity": "sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "vue": "^3.2.0"
+ }
}
}
}
diff --git a/package.json b/package.json
index f92add174783f5b306df731101e8af80c0075678..9530a470feb3bcf0d987a476e0962d41b1372905 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,9 @@
"preview": "vite preview"
},
"dependencies": {
- "vue": "^3.3.4"
+ "axios": "^1.5.0",
+ "vue": "^3.3.4",
+ "vue-router": "^4.2.4"
},
"devDependencies": {
"@vitejs/plugin-vue": "^4.2.3",
diff --git a/src/App.vue b/src/App.vue
index 2187502a974f59be88197c0f6261b1eefc56e11e..6339ce8aa561444a43d1f29cd778a3c4f481321e 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -3,6 +3,11 @@
import Topbar from './components/Topbar.vue'
import Header from './components/Header.vue'
import Footer from './components/Footer.vue'
+import { reactive } from "vue";
+
+
+
+
@@ -10,9 +15,18 @@ import Footer from './components/Footer.vue'
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/img/404.94e7c552.jpg b/src/assets/img/404.94e7c552.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..35f28620145a8050fe26a9c5272f204dd54640cf
Binary files /dev/null and b/src/assets/img/404.94e7c552.jpg differ
diff --git a/src/assets/img/ad.4c6b6225.png b/src/assets/img/ad.4c6b6225.png
new file mode 100644
index 0000000000000000000000000000000000000000..c687529124301ede1d22195a42a28d983dd1cb95
Binary files /dev/null and b/src/assets/img/ad.4c6b6225.png differ
diff --git a/src/assets/img/arrow.png b/src/assets/img/arrow.png
new file mode 100644
index 0000000000000000000000000000000000000000..3fd9b95131e79c4d4d911ae7ebc636128aa7674e
Binary files /dev/null and b/src/assets/img/arrow.png differ
diff --git a/src/assets/img/banner.4c6b6225.png b/src/assets/img/banner.4c6b6225.png
new file mode 100644
index 0000000000000000000000000000000000000000..c687529124301ede1d22195a42a28d983dd1cb95
Binary files /dev/null and b/src/assets/img/banner.4c6b6225.png differ
diff --git a/src/assets/img/banner.f559b49d.png b/src/assets/img/banner.f559b49d.png
new file mode 100644
index 0000000000000000000000000000000000000000..52930a76995b788e7408197c049c6dabd10e39e4
Binary files /dev/null and b/src/assets/img/banner.f559b49d.png differ
diff --git a/src/assets/img/cart.png b/src/assets/img/cart.png
new file mode 100644
index 0000000000000000000000000000000000000000..622c996963a1da0a3f4174637f473b2463ae3ab4
Binary files /dev/null and b/src/assets/img/cart.png differ
diff --git a/src/assets/img/close.png b/src/assets/img/close.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8836df93277bc4ca671d5c2648b893fe59c9277
Binary files /dev/null and b/src/assets/img/close.png differ
diff --git a/src/assets/img/hot.png b/src/assets/img/hot.png
new file mode 100644
index 0000000000000000000000000000000000000000..03102bce777aafad13d7d1d84d6d02dbf1ee5ae0
Binary files /dev/null and b/src/assets/img/hot.png differ
diff --git a/src/assets/img/indexLogo.6f8ac4f0.png b/src/assets/img/indexLogo.6f8ac4f0.png
new file mode 100644
index 0000000000000000000000000000000000000000..0214bbb01e48305e7f35f7118535a33655997293
Binary files /dev/null and b/src/assets/img/indexLogo.6f8ac4f0.png differ
diff --git a/src/assets/img/integral-01.9386d4bf.png b/src/assets/img/integral-01.9386d4bf.png
new file mode 100644
index 0000000000000000000000000000000000000000..0147f15cf3a8fe8fe689b37716827cd84fbdae75
Binary files /dev/null and b/src/assets/img/integral-01.9386d4bf.png differ
diff --git a/src/assets/img/integral-02.150d92a1.png b/src/assets/img/integral-02.150d92a1.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c5bf8d8c0e425465daed650a134ec670db3f61b
Binary files /dev/null and b/src/assets/img/integral-02.150d92a1.png differ
diff --git a/src/assets/img/integral-03.9870f3f1.png b/src/assets/img/integral-03.9870f3f1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a97f938413873bdc0455dd07900746792b2f30c2
Binary files /dev/null and b/src/assets/img/integral-03.9870f3f1.png differ
diff --git a/src/assets/img/integral-04.afadcbdf.png b/src/assets/img/integral-04.afadcbdf.png
new file mode 100644
index 0000000000000000000000000000000000000000..252b45f27a9156ec7c065e7f214c36af180d6946
Binary files /dev/null and b/src/assets/img/integral-04.afadcbdf.png differ
diff --git a/src/assets/img/jingpin.png b/src/assets/img/jingpin.png
new file mode 100644
index 0000000000000000000000000000000000000000..5eaf205476f8b1505f13d964d31f34491a4d601b
Binary files /dev/null and b/src/assets/img/jingpin.png differ
diff --git a/src/assets/img/listimg.jpg b/src/assets/img/listimg.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..56702b57c0acb96f14d0edc3d41f6bc519f201ea
Binary files /dev/null and b/src/assets/img/listimg.jpg differ
diff --git a/src/assets/img/login-box-bg.png b/src/assets/img/login-box-bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..48b5c79669612c702e94034ad88340712059c4ef
Binary files /dev/null and b/src/assets/img/login-box-bg.png differ
diff --git a/src/assets/img/love.png b/src/assets/img/love.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0a95d082249206ad86b9c857201d8023bd4c520
Binary files /dev/null and b/src/assets/img/love.png differ
diff --git a/src/assets/img/monad.png b/src/assets/img/monad.png
new file mode 100644
index 0000000000000000000000000000000000000000..518bf65b5c08d675c01594533ad0822679edaa61
Binary files /dev/null and b/src/assets/img/monad.png differ
diff --git a/src/assets/img/score.png b/src/assets/img/score.png
new file mode 100644
index 0000000000000000000000000000000000000000..70b330eda542a09a0ed70626695ee7b8fda6793f
Binary files /dev/null and b/src/assets/img/score.png differ
diff --git a/src/assets/img/search.png b/src/assets/img/search.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca381f26aaa5b194a861ef4653319c7dce886663
Binary files /dev/null and b/src/assets/img/search.png differ
diff --git a/src/assets/img/section_hot.png b/src/assets/img/section_hot.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad7eff826c97d0a0e4495beb60959b4d66ad22f4
Binary files /dev/null and b/src/assets/img/section_hot.png differ
diff --git a/src/assets/img/section_new.png b/src/assets/img/section_new.png
new file mode 100644
index 0000000000000000000000000000000000000000..4302253dfed1512a943b20ba8340a2925a22acb7
Binary files /dev/null and b/src/assets/img/section_new.png differ
diff --git a/src/assets/img/service.848ec511.png b/src/assets/img/service.848ec511.png
new file mode 100644
index 0000000000000000000000000000000000000000..599f7226a3c375f53629a6d064e735b1e80587a5
Binary files /dev/null and b/src/assets/img/service.848ec511.png differ
diff --git a/src/assets/img/slogan.7730f7f2.png b/src/assets/img/slogan.7730f7f2.png
new file mode 100644
index 0000000000000000000000000000000000000000..07f29dc474bef25cc642199c4428e1102d06cf21
Binary files /dev/null and b/src/assets/img/slogan.7730f7f2.png differ
diff --git a/src/assets/img/transaction.png b/src/assets/img/transaction.png
new file mode 100644
index 0000000000000000000000000000000000000000..e48cf7a671d6188569fba681711eb06b7866886b
Binary files /dev/null and b/src/assets/img/transaction.png differ
diff --git a/src/assets/img/userImg.f8bbec5e.png b/src/assets/img/userImg.f8bbec5e.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa58a2876719786eba87f034b37ae5ab18451aba
Binary files /dev/null and b/src/assets/img/userImg.f8bbec5e.png differ
diff --git a/src/assets/img/wx.5584e874.png b/src/assets/img/wx.5584e874.png
new file mode 100644
index 0000000000000000000000000000000000000000..55f809275e3acf3423b857fedbcc1d41d31449f8
Binary files /dev/null and b/src/assets/img/wx.5584e874.png differ
diff --git a/src/components/Header.vue b/src/components/Header.vue
index 5f403b00c7e6cf102239971c925d2ae54664ae0f..38b0984104ff789a600ef101656b989c72eacbf7 100644
--- a/src/components/Header.vue
+++ b/src/components/Header.vue
@@ -8,11 +8,11 @@
- - 首页
- - 全部商品
- - 个人中心
- - 我的订单
- - 专属福利
+
+ -
+
+ {{ item.text }}
+
@@ -26,7 +26,14 @@
\ No newline at end of file
diff --git a/src/components/home/List.vue b/src/components/home/List.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a14a034646c612bf7eb028338439e0a80d24d996
--- /dev/null
+++ b/src/components/home/List.vue
@@ -0,0 +1,106 @@
+
+
+ -
+
+
+
+
{{item.title}}
+
{{ item.coin }}
+
立即兑换
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index 2425c0f745bef4d009cb6661b62fd9dfd62960b0..cdf456ee2ecebed02ce8f4962abc91735e9aa34d 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,5 +1,9 @@
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
-
-createApp(App).mount('#app')
+import router from "./router";
+//第二步:将createApp(App)通过一个变量提收
+const app = createApp(App);
+//第三步:在app中使用rouer
+app.use(router);
+app.mount('#app')
diff --git a/src/request/api.js b/src/request/api.js
new file mode 100644
index 0000000000000000000000000000000000000000..446ae800b103cd48fd5825356d011b8967e24494
--- /dev/null
+++ b/src/request/api.js
@@ -0,0 +1,7 @@
+// 统一管理项目中所有的请求路径
+// 引入request
+import request from "./request"
+
+// 首页精品的地址
+export const JingpinAPI = () =>request.get("/products/recommend")
+export const HotAPI = () =>request.get("/products/hot")
diff --git a/src/request/request.js b/src/request/request.js
new file mode 100644
index 0000000000000000000000000000000000000000..643915d9535066bc59b702d7d0bfa9df540bb932
--- /dev/null
+++ b/src/request/request.js
@@ -0,0 +1,38 @@
+// 引入axios
+import axios from "axios"
+
+// 创建axios对象
+const instance = axios.create({
+ // 基础地址
+ baseURL:'http://tech.wolfcode.cn:8881/cms',
+ // 超时处理
+ timeout:5000
+})
+
+// 请求拦截器
+instance.interceptors.request.use(config=>{
+ // 每次发送请求的时候,先经过请求拦截器拦截,然后再发送到服务器
+ // config:包含关于本次请求的相关信息
+ console.log("请求拦截器的配置config",config);
+ // 要返回config
+ return config;
+},err=>{
+ // 请求失败的时候执行
+ return Promise.reject
+})
+
+// 响应拦截器
+instance.interceptors.response.use(res=>{
+ // 后端返回数据的时候执行
+ // res:是本次的响应对象
+ // res.data:是后端给我们的真正数据
+ console.log("响应拦截器中的res",res);
+ // 以后拿数据就可以直接获取到res.data了,不需要每次拿数据都写res.data
+ console.log(res.data);
+ return res.data;
+},err=>{
+ return Promise.reject
+})
+
+// 导出对象
+export default instance
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..e642733001de6f259fcdbb1590593b533a0df916
--- /dev/null
+++ b/src/router/index.js
@@ -0,0 +1,36 @@
+import {createRouter,createWebHashHistory} from "vue-router"
+// 定义路由规则
+const routes = [
+{
+path:"/",
+redirect:"/home"
+},
+{
+path:"/home",
+component:()=>import("../views/Home.vue")
+},
+{
+path:"/goods",
+component:()=>import("../views/Goods.vue")
+},
+{
+path:"/user",
+component:()=>import("../views/User.vue")
+},
+{
+path:"/order",
+component:()=>import("../views/Order.vue")
+},
+{
+path:"/free",
+component:()=>import("../views/Free.vue")
+}
+]
+// 创建router对象
+const router = createRouter({
+// 历史模式不能缺少
+history:createWebHashHistory(),
+routes
+})
+// 导出router
+export default router
\ No newline at end of file
diff --git a/src/views/Free.vue b/src/views/Free.vue
new file mode 100644
index 0000000000000000000000000000000000000000..6323bac6e28d0c12f11267b27c86051a069c35b1
--- /dev/null
+++ b/src/views/Free.vue
@@ -0,0 +1,11 @@
+
+ 专属福利
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/Goods.vue b/src/views/Goods.vue
new file mode 100644
index 0000000000000000000000000000000000000000..93d42be3e15cd6a318badfc915add2bf59b8698d
--- /dev/null
+++ b/src/views/Goods.vue
@@ -0,0 +1,11 @@
+
+ 全部商品
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/Home.vue b/src/views/Home.vue
new file mode 100644
index 0000000000000000000000000000000000000000..e372caa1b6037313503dabf4b427443871ba8f61
--- /dev/null
+++ b/src/views/Home.vue
@@ -0,0 +1,152 @@
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+ -
+
签到得鸡腿
+ 去签到
+
+ -
+
购课得鸡腿
+ 去购课
+
+ -
+
推荐得鸡腿
+ 去推荐
+
+ -
+
做任务得鸡腿
+ 做任务
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Order.vue b/src/views/Order.vue
new file mode 100644
index 0000000000000000000000000000000000000000..7415a466c3f7cb4f0270ff3d99e9e756651aa7ea
--- /dev/null
+++ b/src/views/Order.vue
@@ -0,0 +1,11 @@
+
+ 我的订单
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/User.vue b/src/views/User.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c436fd3c39c35c8be2ddab2d197dd559208a83f0
--- /dev/null
+++ b/src/views/User.vue
@@ -0,0 +1,11 @@
+
+ 个人中心
+
+
+
+
+
\ No newline at end of file