# gi-demo
**Repository Path**: mdyun/gi-demo
## Basic Information
- **Project Name**: gi-demo
- **Description**: Gi Admin Pro 是一个基于 Vue3、Vite、TypeScript、Arco Design UI、Pinia、VueUse 的免费中后台模版,它使用了最新的前端技术栈,内置丰富的主题配置,有着极高的代码规范,基于mock实现的动态数据展示,开箱即用的模板,也可用于学习参考。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 433
- **Created**: 2022-09-20
- **Last Updated**: 2022-09-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Gi Admin Pro
[](./LICENSE)
## 简介
Gi Admin Pro 是一个基于 Vue3、Vite、TypeScript、Arco Design UI、Pinia、VueUse 的免费中后台模版,它使用了最新的前端技术栈,内置丰富的主题配置,有着极高的代码规范,基于mock实现的动态数据展示,开箱即用的模板,也可用于学习参考。
> **Gi前缀含义:**
>
> G:代表 全局
>
> i:代表 我的
>
> Gi 用来定义全局组件前缀,如GiNavBar、GiTitle、GiLoading
## 特性
- **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发, 使用高效率的npm包管理器
- **TypeScript**: 应用程序级 JavaScript 的语言
- **主题**:丰富可配置的主题、暗黑模式
- **代码规范**:丰富的规范插件及极高的代码规范
## 预览
- [Gi Admin Pro](http://lin0716.gitee.io/gi-demo)
## 代码仓库
- [gitee](https://gitee.com/lin0716/gi-demo)
## 项目示例图
## 安装使用
- 安装依赖
```bash
npm install
```
- 运行
```bash
npm run dev
```
- 打包
```bash
npm run build
```
## vs code插件安装
```bash
1. Prettier - Code formatter
2. Vue Language Features (Volar)
3. Vue 3 Snippets
4. TypeScript Vue Plugin (Volar)
```
## 注意
```bash
由于升级了vite3,根据官方规定,node版本必须是14.18.0以上
```
## 开源作者
**Lin**
## 交流
QQ:326010228
邮箱:326010228@qq.com
## 项目规范
> 接口api的命名
命名规范: 操作 + 后端模块名 + 功能名
~~~
/quota/getList => getQuotaList
/quota/getQuotaList => getQuotaList // 如果功能名包含了模块名,可省略
/user/save => saveUser
/user/list => getUserList // 如果没有操作名,可以自行根据场景补充
~~~
以上命名规范可以确保api命名不会冲突
引入接口
~~~js
import { getUserList, saveUser } from '@/apis'
~~~
> 页面变量命名 ()
~~~js
// 变量
const loading = ref(false) // 加载
const tableData = ref([]) // 表格数据
const showAddDialog = ref(false)
const showAddModal = ref(false)
const showEditDrawer = ref(false)
const form = reactive({
name: '',
phone: '',
remark: ''
})
const userList = []
const companyList = ref([]) // 列表数据最好后面加个 List 或者 Data
const checkedList = ref([])
const selectedList = ref([])
// 方法
编辑 onEdit handleEdit edit
新增 onAdd handleAdd add
删除 onDelete handleDelete delete
批量删除 onMulDelete handleMulDelete mulDelete
重命名 onRename
搜索 search
获取表格列表 getTableData // 一般一个页面也就一个表格,gi-demo习惯用getTableData, 结合分页hooks的时候可以直接复制复用
返回 back
提交 submit
确认 confirm ok submit
取消 cancel
关闭 close
保存 save
~~~
页面模板类名使用中划线
~~~vue
~~~
> 全局组件-命名规范
~~~
GiTitle GiThemeBtn GiSvgIcon
~~~
> 局部组件-命名规范
~~~
Pane1.vue Pane2.vue Step1.vue Step2.vue AddModal.vue EditDrawer.vue
~~~
> 文件夹命名-命名规范 (采用中划线-)
~~~
home quota-first/index.vue quota-detail/index.vue
~~~
> 全局类名-命名规范 (采用下划线_,好复制)
~~~
.gi_line_1 .gi_line_2 .gi_margin .gi_box .gi_text_tag
~~~
> 全局scss变量-命名规范
~~~scss
$title-color: xxx; // 已弃用,写起来繁琐,易忘
$text-color: xxx; // 已弃用
$text-sub-color: xxx; // 已弃用
$text-sup-color: xxx; // 已弃用
// 借鉴了Arco Design命名规则
$color-text-1: var(--color-text-1); // 标题、重点文本字体颜色
$color-text-2: var(--color-text-2); // 文本-全局默认字体颜色
$color-text-3: var(--color-text-3); // 二级文本颜色
$color-text-4: var(--color-text-4); // 辅助文本颜色
~~~
> 业务状态
gi-demo的业务状态放在@/libs/status/xxx.ts xxx为接口模块名
~~~js
type SubmitStatusItem = { name: string; value: number; color: string }
/** @desc 指标提交状态 */
export const SubmitStatusList: SubmitStatusItem[] = [
{ name: '待提交', value: 0, color: 'orange' },
{ name: '已提交', value: 1, color: 'green' }
]
type StatusItem = { name: string; value: number; color: string }
/** @desc 指标启用状态 */
export const StatusList: StatusItem[] = [
{ name: '禁用', value: 0, color: '#f53f3f' },
{ name: '启用', value: 1, color: '#00b42a' }
]
~~~
使用的时候
引入
~~~js
import { StatusList } from '@/libs/status/xxx' // 要具体到模块名
~~~
~~~vue
{{ item.name }}
~~~
> 其他规范
可参考gi-demo源码,如有更好的规范建议,可以联系作者本人