# 🐇`kicc-ui`(康来智慧冷链-UI) 基于Vue3的中后台系统 © 长沙康来生物有限公司版权所有
## 🔥 当前版本
`1.0.0` 基础功能已完善,后续功能正在加紧迭代开发中。
## 💡 简介
kicc-ui 是基于vben Admin的模板开发,使用了最新的`vue3`,`vite2`,`TypeScript`等主流技术,支持标本箱配送,监控,地图路线规划,
努力做成中国最好的智慧冷链平台。
## 💥 技术特性
- **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发
- **TypeScript**: 应用程序级 JavaScript 的语言
- **主题**:可配置的主题
- **国际化**:内置完善的国际化方案
- **Mock 数据** 内置 Mock 数据方案
- **权限** 内置完善的动态路由权限生成方案
- **组件** 二次封装了多个常用的组件
## 🧬 开发准备前,你必须所需要具备的技术
- [node](http://nodejs.org/) 和 [git](https://git-scm.com/) -项目开发环境
- [Vite](https://vitejs.dev/) - 熟悉 vite 特性
- [Vue3](https://v3.vuejs.org/) - 熟悉 Vue 基础语法
- [TypeScript](https://www.typescriptlang.org/) - 熟悉`TypeScript`基本语法
- [Es6+](http://es6.ruanyifeng.com/) - 熟悉 es6 基本语法
- [Vue-Router-Next](https://next.router.vuejs.org/) - 熟悉 vue-router 基本使用
- [Ant-Design-Vue](https://2x.antdv.com/docs/vue/introduce-cn/) - ui 基本使用
- [Mock.js](https://github.com/nuysoft/Mock) - mockjs 基本语法
## 🍀 需要注意的地方
##1.钩子工具跟项目基础工具区别
- **hooks目录: 基于Vue3-Composition-API二次封装的使用实用程序的组合api,目的为了扩展@vueuse/core组合api**
- **utils目录: 二次封装,或原生写的工具类,不会去使用一些框架的钩子**
```bash
两者的区别:
可以理解为两者都是工具,但是区别在于utils目录没有使用Vue3-Composition-API封装,
hooks目录使用了Vue3-Composition-API,hooks目录说的在明白一点就是在扩展自己的Vue3-Composition-API
```
**Vue3-Composition-API官方介绍: https://staging-cn.vuejs.org/guide/extras/composition-api-faq.html**
#2.打包前应该如何执行typescript类型检查
- **vite是不支持typescript类型检查,因为没必要,现在的开发工具都是支持eslint的,让开发工具接管类型检查就行啦**
- **vite官网TypeScript介绍:https://vitejs.bootcss.com/guide/features.html#typescript**
- **注意:既然vite不支持typescript类型检查,那我们就应该要在发布编译阶段手动检查类型,要不然完全体现不出typescript在项目中的作用,使用了typescript就应该要检查代码是否符合类型规范**
```vue
// 目前项目中有两者打包前检查方案
// vue-tsc: 针对vue文件的ts类型检测,不推荐使用,当前项目vue模板中很多组件库对类型的定义似乎不是那么完整
// 列如如下这段代码的 placeholder 属性这样的使用方法是正确的 ant-design-vue 官网例子上也是支持这种写法的,代码运行起来也是没有任何问题的
// 但是由于内部类型定义为 string 没有定义为 string | string[] 从而在检查时候报
// error TS2322: Type 'string[]' is not assignable to type 'string'.
// 项目中还有类似的还有很多组件库也出现这种问题比如 class 属性等等,包括自己定义的组件也出现了很多类型检测问题,类型规范定义太严格了,往往会影响开发效率
// 所以干脆直接 vue 这部分的组件ts校验不要了,只检测 typescript 代码,自己编码的时候注意一下组件的类型就行
// 打包发布是使用项目中的 lint:eslint 检测 typescript 代码就可以了,不使用 vue-tsc 检测组件部分的类型
// vue3 局部引入
const ARangePicker = DatePicker.RangePicker;
```
## 🗽 启动项目
```bash
# 进入项目目录
cd kicc-ui
# 安装依赖
yarn install
# 运行
yarn serve
# 打包
yarn build
```