# 美鉴
**Repository Path**: pei-lin-_huang/a-good-example
## Basic Information
- **Project Name**: 美鉴
- **Description**: 拥有完整功能的美妆鉴别平台,可进行美妆知识互动、购买优质的美妆产品、进行美妆产品的真假鉴别
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 1
- **Created**: 2022-11-15
- **Last Updated**: 2024-12-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Vue, Vuex, Axios, Vant
## README
# 美鉴
## 设计目标
拥有完整功能的美妆鉴别平台,可查阅其他用户发布的购物心得以及鉴别官发布的鉴别真假知识、可对帖子进行点赞、评论、收藏、可进行优质商品的购买、可对产品鉴别真假、可开通vip享优惠。
## 功能描述
1. 登录功能,手机号密码进行登录
2. 浏览各大美妆知识,可进行点赞、评论、收藏
3. 可购买各种种类的美妆产品
4. 对帖子进行搜索以及美妆产品搜索、历史记录
5. 可参与抽奖以及观看中奖幸运儿
6. 付费鉴别
7. 换头像以及换昵称,同时评论区也会同步
8. 添加、删除、修改地址
9. 完整的购物车流程/待发货/已收货/已完成
## 使用到策略模式
1. 购买页中的商品列表中运用到了策略模式(针对一组算法,将每一个算法封装到具有共同接口的独立的类中,使得它们可以互换。),根据数据来决定结构。
代码如下:
```html
-
{{item.brandName}} {{item.commodityName}} {{item.standardValue}}
¥{{parseInt(item.price)}}
黑卡
¥{{parseInt(item.blackPrice)}}
{{item.payPersons}}人付款
```
图片效果:

2. 帖子评论
因帖子回复的人有两种,作者回复和普通用户回复,所以需要判断数据来写结构
代码如下:
```html
```
图片效果:

## 设计方案
1. 使用vue2.0 vue-cli脚手架开发,实现单页面应用程序,页面切换时不刷新页面,且可以局部更新数据,轻量级项目,数据响应快,提高用户体验。
2. 请求api接口
3. vue-router3.0 路由懒加载,动态路由
4. axios挂载请求和响应支持promise API
5. vant2 按需引入,高质量组件
6. 瀑布流布局
## 使用到的技术
1. vue2.0
2. vue-router3.0
3. axios
4. vue-cli
5. vant
6. countTop数字滚动
## 效果截图-- [美鉴APP](https://note.youdao.com/s/DoudkJFL)
### 首页

### 发现页

### 发现页瀑布流布局

### 热门话题--小维鉴别

### 我的口红日记

### 我的护肤日常

### 帖子详情页

### 已点赞、评论、收藏

### 发现页搜索

### 购物页

### 购物页--搜索框-缓动-轮播

### 精选小样

### 限时秒杀

### 产品搜索

### 闪电发货

### 热门口红

### 产品列表

### 爆款洁面--tab联动

### 分类页--口红

### 分类页-香水-销量降序

### 分类页-气垫-价格降序

### 分类页-隔离-搜索结果

### 全部分类

### 商品详情页

### 添加购物车

### 购物袋页面

### 确认订单页

### 鉴别页

### 付费鉴别

### 我的页

### 待付款页-可点击去到确定订单

### 进行中页-可点击变为已完成

### 已完成页

### 个人中心-可更换头像

### 更换头像后

### 开通会员

### 我的鉴别结果

### 我的收藏

暂无评论
THE END
{{ item.content }}
{{ String(item.createTime.split(" ")[0]).split("-")[1] }}月{{ String(item.createTime.split(" ")[0]).split("-")[2] }}日{{ details.operateUserName == small.answerNickName ? small.answerNickName : small.userName }} 作者
{{ small.content }}
回复 @{{ small.atUserName }}: {{ small.content.split(":")[1] || small.content }}
{{small.createTime.split(" ")[0]}}