美食杰项目 -- 总结(八)
admin
2024-03-08 08:41:34
0次

目录

  • 前言:
  • 项目效果展示
  • 引入插件说明
  • 后台请求代码编写
  • package.json页面代码
  • main.js页面代码
  • 总结

前言:

经过大概一周时间的兴勤劳作,美食杰项目的所有代码已经全部编写完成,功能已全部完善,这一章给当前项目做一个总结。这一次项目使用了 element-ui 框架来完成静态功能的实现。感谢大家这一直以来对我的支持。
当前项目其他的页面代码可以在当前专栏中找到


项目效果展示

美食杰项目所有功能效果展示


引入插件说明

点击跳转至节流的官方文档:https://www.npmjs.com/package/throttle-debounce

点击跳转至 element-ui 官方文档:https://element.eleme.cn/#/zh-CN/component/installation

点击跳转至 axios请求 官方文档:https://www.npmjs.com/package/axios

后台请求代码编写

import axios from 'axios';class HttpRequest {constructor(options){this.defaults = {baseUrl: ''}this.defaults = Object.assign(this.defaults, options);}setConfig(){}interceptors(install){install.interceptors.request.use(config => {let token = localStorage.getItem('token');if (token) {  // 判断是否存在token,如果存在的话,则每个http header都加上tokenconfig.headers.authorization = `token ${token}`;}return config;},err => {return Promise.reject(err);});install.interceptors.response.use(res => {const { data, status } = res;return data;},err => {return Promise.reject(err);});}request(options){options = Object.assign(this.defaults, options)const instance = axios.create(options)this.interceptors(instance);return instance}
}const request = new HttpRequest({baseURL: '/api'
});const http = request.request();// 获取banner数据
export async function getBanner(){// console.log(await http.get('/banner'));return await http.get('/banner');
}// 获取所有属性分类
export async function getProperty(){return await http.get('/menu/property');
}
// 获取所有菜谱分类
export async function getClassify(){return await http.get('/menu/classify');
}/*** 发布菜谱* @export* @param {Object} params - 需要上传的数据,参考backData* @returns*/
export async function publish(params){return await http.post('/menu/publish', params);
}/*** 注册账号* @export* @param {Object} params - * @param {Object} params.name - 用户名* @param {Object} params.password - 密码* @returns*/
export async function register(params){return await http.post('/user/create', params);
}/*** 账号登录* @export* @param {Object} params - * @param {string} params.name - 用户名* @param {string} params.password - 密码* @returns*/
export async function login(params){return  await http.post('/user/login', params);
}// class : 类里面封装了axios请求相同的部分
//  http = 实例化对象.请求 //  function(){
//   http.get
//  }
//  http.post /*** 账号登出*/
export async function login_out(){return await http.post('/user/login_out');
}/*** 获取用户信息* @export* @param {Object} params - * @param {string} [params.userId] - 用户id* @returns*/export async function userInfo(params){return await http.post('/user/info', params);
}/*** 拿到用户发布的菜谱,可做筛使用选* @export* @param {Object} [params] - 不填写,则获取所有的菜谱* @param {string} [params.userId] - 指定用户的菜单* @param {string} [params.classify] - 按照菜单分类,进行筛选* @param {string} [params.property] - 指定菜单属性进行筛选* @param {string} [params.property.craft] - 按工艺筛选* @param {string} [params.property.flavor] - 按口味筛选* @param {string} [params.property.hard] - 按难度筛选* @param {string} [params.property.people] - 按人数筛选* @param {string} [params.page] - 指定页码* @returns*/
export async function getMenus(params){return await http.get('/menu/query', {params});
}/*** 根据菜单id,拿到菜谱的详细信息* @export* @param {Object} [params] - * @param {string} [params.menuId] - 指定菜单的id* @returns*/
export async function menuInfo(params){return await http.get('/menu/menuInfo', {params});
}/*** toggle 收藏。收藏的取消收藏;没收藏的,要收藏。* @export* @param {Object} [params] - * @param {string} [params.menuId] - 指定要收藏的菜单的id* @returns*/
export async function toggleCollection(params){return await http.post('/user/collection', params);
}
/*** toggle 关注。关注的取消关注;没关注的,要关注。* @export* @param {Object} [params] - * @param {string} [params.followUserId] - 指定要关注的用户的id* @returns*/
export async function toggleFollowing(params){return await http.post('/user/following', params);
}/*** 获取指定用户的收藏的菜单* @export* @param {Object} [params] - * @param {string} [params.userId] - 指定的用户id* @returns*/
export async function collection(params){return await http.get('/user/collection', {params});
}/*** 获取指定用户关注的人* @export* @param {Object} [params] - * @param {string} [params.userId] - 指定的用户id* @returns*/
export async function following(params){return await http.get('/user/following', {params});
}/*** 获取指定用户的粉丝* @export* @param {Object} [params] - * @param {string} [params.userId] - 指定的用户id* @returns*/
export async function fans(params){return await http.get('/user/fans', {params});
}/*** 上传图片* @export* @param {Object} [params] - * @param {string} [params.type] - product user step* @returns*/
export async function upload(params){return await http.post('/upload', {params});
}/*** 修改用户信息* @export* @param {Object} [params] - * @param {string} [params.name] - product user step* @param {string} [params.avatar] - product user step* @param {string} [params.sign] - product user step* @returns*/
export async function userEdit(params){return await http.post('/user/edit', params);
}/*** 获取菜谱评论信息* @export* @param {Object} [params] - * @param {string} [params.menuId] - 指定菜谱的id* @returns*/
export async function getComments(params){return await http.get('/menu/comment', {params});
}
/*** 提交菜谱评论信息* @export* @param {Object} [params] - * @param {string} [params.menuId] - 指定评论的菜谱id* @param {string} [params.commentText] - 评论内容* @returns*/
export async function postComment(params){return await http.post('/menu/comment', params);
}

package.json页面代码

{"name": "meishijie-vue","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build"},"dependencies": {"axios": "^1.1.3","core-js": "^3.8.3","element-ui": "^2.15.10","stylus": "^0.59.0","throttle-debounce": "^5.0.0","vue": "^2.6.14","vue-router": "^3.5.1","vuex": "^3.6.2"},"devDependencies": {"@vue/cli-plugin-babel": "~5.0.0","@vue/cli-plugin-router": "~5.0.0","@vue/cli-plugin-vuex": "~5.0.0","@vue/cli-service": "~5.0.0","sass": "^1.32.7","sass-loader": "^12.0.0","stylus": "^0.59.0","stylus-loader": "^7.1.0","vue-template-compiler": "^2.6.14"}
}

main.js页面代码

`import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import axios from 'axios'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';Vue.config.productionTip = false
Vue.prototype.$axios = axios
Vue.use(ElementUI);new Vue({router,store,render: h => h(App)
}).$mount('#app')

总结

以上就是 美食杰项目的总结和剩余的一些小功能,不懂得也可以在评论区里问我或私聊我询问,以后会持续发布一些新的功能,敬请关注。
我的其他文章:https://blog.csdn.net/weixin_62897746?type=blog

相关内容

热门资讯

玩家必看科普透视挂!神兽透视挂... 玩家必看科普透视挂!神兽透视挂AI工具,神兽多功能好像真的有透视挂工具该软件可以轻松地帮助玩家将神兽...
揭秘透视挂!八戒透视挂AI软件... 揭秘透视挂!八戒透视挂AI软件,八戒多功能本来是真的有透视挂软件八戒脚本下载中分为三种模型:八戒挂靠...
重磅来袭外挂!葫芦岛爱玩麻将外... 重磅来袭外挂!葫芦岛爱玩麻将外挂AI攻略,葫芦岛爱玩麻将多功能确实是真的有外挂攻略1、葫芦岛爱玩麻将...
玩家必看科普辅助器!龙娱辅助器... 玩家必看科普辅助器!龙娱辅助器AIapp,龙娱多功能其实是有辅助器app1、下载好龙娱透视辅助下载之...
玩家必备教程透视挂!众乐乐透视... 玩家必备教程透视挂!众乐乐透视挂AI攻略,众乐乐多功能真是是真的有透视挂攻略1、点击下载安装,众乐乐...
发现玩家透视挂!南京麻将透视挂... 发现玩家透视挂!南京麻将透视挂AI软件,南京麻将多功能果然存在有透视挂软件1、不需要AI权限,帮助你...
分享一款透视器!聚闲游戏透视器... 分享一款透视器!聚闲游戏透视器AI方法,聚闲游戏多功能好像真的有透视器方法1、该软件可以轻松地帮助玩...
一分钟揭秘辅助!会星盟辅助AI... 一分钟揭秘辅助!会星盟辅助AI脚本,会星盟多功能切实是真的有辅助脚本1、该软件可以轻松地帮助玩家将会...
玩家爆料辅助器!杜鹃花辅助器A... 玩家爆料辅助器!杜鹃花辅助器AI攻略,杜鹃花多功能一贯有辅助器攻略亲,关键说明,杜鹃花透视脚本安卓赛...
我来分享辅助器!兴动游戏辅助器... 我来分享辅助器!兴动游戏辅助器AI教程,兴动游戏多功能都是有辅助器教程兴动游戏能透视中分为三种模型:...