moto/README.md

131 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 模版
## 基础框架
### 程序配置
核心配置为数据库配置:
```yaml
database:
address: "192.168.9.199:3306"
username: "root"
password: "root"
database: "test2"
adminUsers:
- "1000"
system:
settings:
productName: "测试网址"
copyright: "xxx"
```
**数据库配置**
| 配置节点 | 配置说明 |
|----------|---------|
| address | 数据库连接地址 |
| username | 数据库用户名 |
| password | 数据库密码 |
| database | 使用的数据库 |
**系统配置**
系统配置为键值对的格式,结合界面进行配置的
| 配置节点 | 配置说明 |
|-------------|-----------------|
| productName | 产品名称对应界面的title |
| copyright | 版权信息 |
| logo | logo的Url地址 |
### 程序启动
如果设置了`VOX_DEBUG`环境变量会以`DEBUG`模式进行启动,常规启动方式为
```shell
moto --config=/path/to/config.yaml
```
## 开始开发
框架主要适用于多使用增删改查的操作逻辑,开发流程为定义模型,定义菜单,定制界面。
### 模型定义
```go
package models
type Login struct {
ID string `json:"id" gorm:"primaryKey;size:20" comment:"ID" scenarios:"view;export"`
CreatedAt int64 `json:"created_at" gorm:"autoCreateTime" comment:"登录时间" scenarios:"list;search;view;export" position:"2"`
Domain string `json:"domain" gorm:"index;size:60;not null;default:'default'" comment:"域" scenarios:"export"`
UID string `json:"uid" gorm:"column:uid;index;size:20;not null;default:''" props:"match:exactly" comment:"座席" format:"user" scenarios:"search;list;export" position:"1"`
IP string `json:"ip" gorm:"size:20;not null;default:''" comment:"IP" scenarios:"search;list;export"`
Browser string `json:"browser" gorm:"size:200;not null;default:''" comment:"浏览器" scenarios:"search;list;export"`
Os string `json:"os" gorm:"size:200;not null;default:''" comment:"操作系统" scenarios:"search;list;export"`
Platform string `json:"platform" gorm:"size:200;not null;default:''" comment:"平台" scenarios:"search;list;export"`
AccessToken string `json:"access_token" gorm:"size:200;not null;default:''" comment:"访问令牌" scenarios:"export"`
UserAgent string `json:"user_agent" gorm:"size:1024;not null;default:''" comment:"UserAgent" scenarios:"export"`
}
func (model *Login) TableName() string {
return "user_logins"
}
```
## 菜单定义
```js
let menu = {
label: "部门管理",
route: "/organize/departments",
permissions: [
{
label: '新建',
value: 'create'
},
{
label: '更新',
value: 'update'
},
{
label: '删除',
value: 'delete'
}
]
}
```
## 视图定义
```vue
<template>
<viewer :title="title" :module-name="moduleName" :table-name="tableName" :disable-toolbar="false"
defaultSortable="id"></viewer>
</template>
<script setup>
import Viewer from '@/components/fragment/Viewer.vue';
import { computed } from 'vue';
const props = defineProps({
title: {
type: String,
}
})
const moduleName = computed(() => {
return ''
})
const tableName = computed(() => {
return 'departments'
})
</script>
```