GithubHelp home page GithubHelp logo

carclub_front's Introduction

🚗 懂车帝车型大会

本项目开发时间比较赶,由于近段时间学校考试和参加本学院的一个智慧团建项目,最终导致本项目开发时间只有7天,在后面时间里会不断完善

📗 技术选型

  • 🏷️ vue3+ts+vite+vant+axios-mapper(模型+防止二次请求)

📔 目录结构

carclub-front
├─ .env.development                // 开发环境变量
├─ .env.production                 // 生产环境变量
├─ .prettierrc.json                // 保存格式化代码格式
├─ postcss.config.js               // postcss适配方案
├─ public                          // 公共入口文件
│  └─ favicon.ico
├─ README.md                       // md说明文档
├─ src                          
│  ├─ apis                        // api接口
│  ├─ car .ts                         
│  └─ users.ts              
│  ├─ App.vue                     // vue入口   
│  ├─ assets                      // 静态文件
│  ├─ components                  // 公共组件
│  │  ├─ CarRotates .vue         // 车的评分组件
│  │  ├─ CarSeriesItem.vue       // 车系项
│  │  ├─ Model.vue               // 模态框(试驾,我的评分等)
│  │  ├─ MyNavBar.vue            // 头部导航条
│  │  ├─ MyRate.vue              // 我的评分
│  │  ├─ MyTabBar.vue            // 底部tabbar
│  │  ├─ SelectQueryNav.vue      // 选择查询按钮
│  │  └─ SeriesItem.vue          // 车系项
│  ├─ config                      // 配置
│  │  ├─ custom                  // 可选配置
│  │  │  └─ index.ts
│  │  ├─ default                 // 默认配置
│  │  │  ├─ index.ts
│  │  │  ├─ net.config.ts
│  │  │  └─ setting.config.ts
│  │  └─ index.ts
│  ├─ constant                    // 固定不变
│  │  ├─ headers.ts
│  │  ├─ key.ts
│  │  ├─ network.ts
│  │  └─ settings.ts
│  ├─ env.d.ts                   // 打包或者生产环境变量描述
│  ├─ hooks                      // hooks
│  │  └─ getCityLocation.ts     // 高德apihooks
│  ├─ layout                     // 布局
│  ├─ main.ts                    // 主程序入口
│  ├─ mock                       // mock数据
│  │ └─ vite-plugin-mock        // vite mock插件(主要解决生产和开发环境mock数据使用)
│  │        ├─ _createProductionServer.ts
│  │        ├─ _util.ts
│  │        └─ user.ts
│  │  ├─ data                   // 传统mock数据
│  │  │  └─ userData.ts
│  │  ├─ db.js                  // json-serve模拟mock数据
│  │  ├─ db.json
│  │  └─ index.ts
│  ├─ models                    // 数据模型
│  │  ├─ brandModel.ts
│  │  ├─ carSeriesModel.ts
│  │  ├─ cityModel.ts
│  │  ├─ rootObject.ts
│  │  └─ userModel.ts
│  ├─ plugins                   // 插件
│  ├─ router                    // vue-router
│  │  └─ index.ts
│  ├─ shims-vue.d.ts                  
│  ├─ store                     // 状态管理
│  │  ├─ index.ts
│  │  └─ modules
│  │     ├─ car
│  │     └─ user
│  │        ├─ action.ts
│  │        ├─ enum_type.ts
│  │        ├─ getter.ts
│  │        ├─ index.ts
│  │        ├─ mutation.ts
│  │        └─ state.ts
│  ├─ tests                    // 测试
│  ├─ utils                    // 工具
│  │  ├─ ase.ts               // ase加密算法实现本地存储数据加密
│  │  ├─ baseCar360Url.ts     // 360度旋转上传路径封装
│  │  ├─ baseUrl.ts      
│  │  ├─ enumType.ts        
│  │  ├─ https.ts             //  请求封装
│  │  ├─ localStorage.ts      // localStorage存储
│  │  ├─ storage.ts           // 本地session,local,cookie存储封装
│  │  └─ tool.ts              // 一些本项目用到的常用工具
│  ├─ views                    // 视图
│  │  ├─ BrandCarSeries.vue   // 品牌页
│  │  ├─ CarDetails.vue       // 车系详情页 
│  │  ├─ City.vue             // 城市列表
│  │  ├─ Home.vue             // 主页
│  │  ├─ Login.vue            // 登录页
│  │  ├─ Mine.vue             // 我的页面
│  │  ├─ MyDrive.vue          // 我的试驾
│  │  └─ MyScore.vue          // 我的评分
│  └─ vite-env.d.ts            // vite-env描述文件,如 请求baseUrl等
├─ tsconfig.json                // ts配置入口
├─ vite.config.ts               // vite配置
└─ yarn.lock                    // yarnlock 

📘 项目描述

项目难点

🏷️ 索引条的实现

  • 🔖 描述:本项目在所有品牌展示和所有城市展示
  • 🔖 思路:描点连接+window的scrollTo实现点击定位回到顶部
  • 🔖 解决方案:使用vant的组件索引二次封装

🏷️ 车系360旋转

  • 🔖 描述:车系页实现车型的手势360°旋转
  • 🔖 思路 :参考懂车帝和雷克萨斯的实现思路,以36张 图片加上手势滑动,加上opacity实现
  • 🔖 解决方案 :使用开源 js-cloudimage-360-view实现

🏷️ 城市定位

  • 🔖 描述:城市定位,在选择城市时,实现自动和手动刷新定位
  • 🔖 思路:采用高德api,通过ip来获取城市位置
  • 🔖 解决方案:采用高德 CitySearch接口实现

📒 提交规范

示例

...
git commit -m "views: 添加xxx页面"            // 新增页面
git commit -m "fix: 修复xxx Bug"             // 修复一些问题
git commit -m "del: 删除部分...."            // 删除部分内容
...
  • 请按照规范格式提交,总的要求是提交前加上对应的 [xxx] 标记。

规范

参考Angular团队提交规范加上自己需求

标记名 操作名
views 页面
component 组件
fix 修复
refactor 重构
docs 文档
style 样式
change 修改
update 更新
feat 新功能(feature)
test 增加测试
chore 构建过程或辅助工具的变动
upgrade 第三方库升级
revert 回滚
del 删除

**tips: 提交建议使用命令行进行提交

提交规范本项目没得采用husky、commitlint和lintstaged进行代码规范。

后台管理

github:https://github.com/xiaolifeipiao/dcd-car-management

因为时间问题导致后台项目开发只是搭起项目框架,和一些静态页面 在后面我会 抽时间来完善

技术选型

  • vite+ts+ant-design-vue+yarn+等 一个开源框架

📙 总结

  • 🔖 项目技术选型上,我选用了最新的技术,在开发过程遇到一些问题导致开发进度受到影响,在以后的项目开发中,对于不是用来测试技术的项目,选择自己熟悉的版本,重要,重要,非常重要。在项目中虽然遇到一些瓶颈,但是我并没得放弃,而是慢慢把它细化,分而治之。在最终解决不了时,采用其他侧面的解决方案。
  • 🔖 本次项目的格式化提交做的不好,只是采用eslint+prettier进行简单的本地格式化检查和提交规范,并未加入husky、commitlint和lintstaged约束提交。后期我会加上。
  • 🔖 在mock数据的选择上,因为及时查阅vite的第三方插件mock可以使用开发和生成一起使用的mock数据。最终选择json-server+mock。导致接口部分没得完善。
  • 🔖 在测试方面,因时间问题并没的加入测试,后期补上。
  • 🔖 在该项目的开发中,了解了mock数据的选型,以及 vite的热更新真的快 ,加强在这方面 的学习,以及对vue3全家桶和ts有了一个全新的认识,vue3的父子组件的执行和异步组件加载,以及子组件的props的只能读不能修改,vue3a父子组件的通信方式和vue2的区别,以及在vue3+ts实现vuex的分模块开发的封装等等,我需要下来在加强vue3的一些特性的学习和原理实现。
  • 🔖 最后感谢懂车帝平台给我门分享和交流前端和后端的学习,以及和我们交流一些技术和学习路线,收获颇多

carclub_front's People

Contributors

xiaolifeipiao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.