# 校园微音_tinyVoice
**Repository Path**: hcy0928/campus-microtone-tiny-voice
## Basic Information
- **Project Name**: 校园微音_tinyVoice
- **Description**: 校园微音
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-11-15
- **Last Updated**: 2022-11-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 校园微音最终版
## Start
安装、更新依赖
```javascript
npm install //安装依赖
```
## 编写规范
### 1、必须采用 4 格缩进
必须采用 4 格缩进
必须采用 4 格缩进
必须采用 4 格缩进
### 2、采用分包
**非tabbar页面** **`必须`** 采用分包,以减少启动加载时间
方法一:HbuildX中直接右键`subpages`文件夹创建页面即可。(其他编辑器根据情况来)
方法二:pages.json中照抄一份已有的分包定义
### 3、页面定义
页面文件名需要与文件夹名**相同**
> √ 正确示范
```json
{
"path": "pages/tab2/tab2" //定义主包页面
}
{
"path": "tab2/tab2" //定义分包页面
}
```
> x 错误示范
```json
{
"path": "pages/tab2/index" //定义主包页面
}
{
"path": "tab2/index" //定义分包页面
}
```
### 4、style使用SCSS、
### 5、Vuex 采用模块化
### 6、iconfont引入、更新方法
阿里巴巴矢量图标不提供在线连接(2022年7月15日),需将在线引入转为本地引入。
#### 普通图标
操作步骤如下:
1. 图标库最新项目下载至本地,并解压
2. 将解压文件夹中名为 `iconfont.css` 中的图标内容替换 项目中 `/style/icon.css` 文件对应的图标内容
3. 将解压文件夹中 `iconfont.ttf`、`iconfont.woff`两个文件替换项目目录写的 `/static/icon/`内两个字体文件
#### 彩色图标
本质上没有任何区别,只是作为特殊的备用选项
1. 将图标项目下载至本地,并解压
2. 安装工具包(已安装的跳过此步)
- 在解压目录下使用npm安装
```javascript
//此处建议全局安装 ,但不要在项目目录下安装
npm install -g iconfont-tools
```
3. 执行工具包转换
```javascript
iconfont-tools
//或
iconfont-tools.cmd
```
然后一路无脑回车即可,会在当前目录生成一个新的文件夹,内容为转换后的新css
4. 将生成目录下的 `iconfont-weapp-icon.css` 中图标内容替换至项目中 `/style/color_icon.css` 文件对应的图标内容
5. 使用时 类名前加 t-,具体看工具文档
6. **注意事项**:转换后 是图片,不能再使用font-size调整大小。且无法调色
### 7、文件上传(等接口即可实装)
对图片、视频上传进行了封装。
调用方法示例(发布微音场景,允许上传图片)
```vue
```
理论上支持头像,但可能需要使用ref
### 8、缓存相关
需要用到全局缓存的,将缓存key写在`APP.vue`中
```vue
```
## 其他
### 动态tabbar
**组件使用的格式 **:数组
```json
[{
pagePath: "pages/edu/edu",
text: "学习",
iconPath: "/static/tabBar/unchecked_home.png",
selectedIconPath: "/static/tabBar/select_home.png"
},
......
]
```
接口参数定义的数据:字符串(用于审核)
```tex
[{"p":"pages/shop/shop","t":"商城","i":"unchecked_shopping.png","si":"select_shopping.png"},{"p":"pages/community/community","t":"微音","i":"unchecked_tinyVoice.png","si":"select_tinyVoice.png"},{"p":"pages/appliance/appliance","t":"服务","i":"unchecked_tool.png","si":"select_tool.png"},{"p":"pages/user/user","t":"我的","i":"unchecked_my.png","si":"select_my.png"}]
```
**注意事项**
1. 修改前,先JSON转String,省略图标路径前缀。
2. 读取时,先String转JSON,补充图标路径前缀。
3. 省略的路径:/static/tabBar/。
4. 压缩键名取首字母,对应关系如下:
p <--> pagePath、
t <--> text、
i <--> iconPath、
si <--> selectedIconPath。
5. **`断网`**状态下,将会默认显示所有tabbar数据,且点击第一个tabbar 控制台会输出完整的格式化数据。此数据用于写入接口实现动态tabbar
```javascript
[{"p":"pages/shop/shop","t":"商城","i":"unchecked_shopping.png","si":"select_shopping.png"},{"p":"pages/community/community","t":"微音","i":"unchecked_tinyVoice.png","si":"select_tinyVoice.png"},{"p":"pages/appliance/appliance","t":"服务","i":"unchecked_tool.png","si":"select_tool.png"},{"p":"pages/user/user","t":"我的","i":"unchecked_my.png","si":"select_my.png"}]
```