e7fc3614a8 | ||
---|---|---|
cmd | ||
common/db | ||
config | ||
generator | ||
internal/organize | ||
models | ||
version | ||
web | ||
.gitignore | ||
Makefile | ||
README.md | ||
api.go | ||
go.mod | ||
go.sum | ||
migration.go | ||
server.go |
README.md
模版
基础框架
程序配置
核心配置为数据库配置:
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
模式进行启动,常规启动方式为
moto --config=/path/to/config.yaml
开始开发
框架主要适用于多使用增删改查的操作逻辑,开发流程为定义模型,定义菜单,定制界面。
模型定义
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"
}
菜单定义
let menu = {
label: "部门管理",
route: "/organize/departments",
permissions: [
{
label: '新建',
value: 'create'
},
{
label: '更新',
value: 'update'
},
{
label: '删除',
value: 'delete'
}
]
}
视图定义
<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>