├── utility ├── .gitkeep ├── err.go └── utils.go ├── internal ├── dao │ └── .gitkeep ├── logic │ └── .gitkeep ├── model │ ├── .gitkeep │ ├── do │ │ └── .gitkeep │ └── entity │ │ └── .gitkeep ├── service │ ├── .gitkeep │ ├── consts.go │ ├── dao.go │ └── model.go ├── consts │ └── consts.go ├── packed │ └── packed.go └── app │ └── system │ ├── consts │ ├── consts_context.go │ ├── consts_user.go │ ├── sys_config.go │ ├── sys_dict_type.go │ ├── consts_openapi.go │ └── gtoken.go │ ├── model │ ├── context.go │ ├── redis.go │ ├── entity │ │ ├── sys_role_dept.go │ │ ├── sys_role_menu.go │ │ ├── sys_user_post.go │ │ ├── sys_user_role.go │ │ ├── sys_job_log.go │ │ ├── sys_dict_type.go │ │ ├── sys_post.go │ │ ├── sys_logininfor.go │ │ ├── sys_config.go │ │ ├── sys_notice.go │ │ ├── sys_user_online.go │ │ ├── sys_dept.go │ │ ├── sys_dict_data.go │ │ └── sys_job.go │ ├── sys_dept.go │ ├── do │ │ ├── sys_role_dept.go │ │ ├── sys_role_menu.go │ │ ├── sys_user_post.go │ │ ├── sys_user_role.go │ │ ├── sys_job_log.go │ │ ├── sys_dict_type.go │ │ ├── sys_post.go │ │ ├── sys_config.go │ │ ├── sys_logininfor.go │ │ ├── sys_notice.go │ │ ├── sys_user_online.go │ │ ├── sys_dept.go │ │ ├── sys_dict_data.go │ │ ├── sys_job.go │ │ ├── sys_role.go │ │ ├── sys_oper_log.go │ │ ├── sys_user.go │ │ ├── sys_menu.go │ │ └── gen_table.go │ ├── sys_role.go │ ├── dict_type.go │ └── sys_menu.go │ ├── controller │ ├── dict │ │ └── dict.go │ ├── post │ │ └── post.go │ └── sys_config │ │ └── sys_config.go │ ├── logic │ ├── cache │ │ └── cache.go │ ├── sys_dict_data │ │ └── sys_dict_data.go │ ├── bizctx │ │ └── bizctx.go │ ├── session │ │ └── session.go │ └── logic.go │ ├── service │ ├── cache.go │ ├── captcha.go │ ├── middleware.go │ ├── sys_dict_data.go │ ├── session.go │ ├── bizctx.go │ ├── sys_user_post.go │ ├── sys_role_dept.go │ ├── sys_role_menu.go │ ├── gen_table_column.go │ ├── sys_user_role.go │ ├── sys_post.go │ └── sys_config.go │ └── dao │ ├── sys_job.go │ ├── sys_dept.go │ ├── sys_menu.go │ ├── sys_post.go │ ├── sys_role.go │ ├── sys_user.go │ ├── gen_table.go │ ├── sys_config.go │ ├── sys_notice.go │ ├── sys_job_log.go │ ├── sys_oper_log.go │ ├── sys_dict_data.go │ ├── sys_dict_type.go │ ├── sys_role_dept.go │ ├── sys_role_menu.go │ ├── sys_user_post.go │ ├── sys_user_role.go │ ├── sys_logininfor.go │ ├── sys_user_online.go │ └── gen_table_column.go ├── resource ├── i18n │ └── .gitkeep ├── template │ └── .gitkeep └── public │ ├── html │ └── .gitkeep │ ├── plugin │ └── .gitkeep │ └── resource │ ├── css │ └── .gitkeep │ ├── js │ └── .gitkeep │ └── image │ └── .gitkeep ├── .gitattributes ├── RuoYi-Vue3 ├── src │ ├── store │ │ ├── index.js │ │ └── modules │ │ │ ├── app.js │ │ │ ├── dict.js │ │ │ └── settings.js │ ├── components │ │ ├── ParentView │ │ │ └── index.vue │ │ ├── IconSelect │ │ │ └── requireIcons.js │ │ ├── RuoYi │ │ │ ├── Doc │ │ │ │ └── index.vue │ │ │ └── Git │ │ │ │ └── index.vue │ │ ├── SvgIcon │ │ │ ├── svgicon.js │ │ │ └── index.vue │ │ ├── Screenfull │ │ │ └── index.vue │ │ ├── iFrame │ │ │ └── index.vue │ │ ├── DictTag │ │ │ └── index.vue │ │ ├── Hamburger │ │ │ └── index.vue │ │ └── SizeSelect │ │ │ └── index.vue │ ├── assets │ │ ├── logo │ │ │ └── logo.png │ │ ├── 401_images │ │ │ └── 401.gif │ │ ├── 404_images │ │ │ ├── 404.png │ │ │ └── 404_cloud.png │ │ ├── images │ │ │ ├── profile.jpg │ │ │ └── login-background.jpg │ │ ├── icons │ │ │ └── svg │ │ │ │ ├── chart.svg │ │ │ │ ├── size.svg │ │ │ │ ├── link.svg │ │ │ │ ├── guide.svg │ │ │ │ ├── money.svg │ │ │ │ ├── email.svg │ │ │ │ ├── drag.svg │ │ │ │ ├── documentation.svg │ │ │ │ ├── fullscreen.svg │ │ │ │ ├── user.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── excel.svg │ │ │ │ ├── example.svg │ │ │ │ ├── star.svg │ │ │ │ ├── slider.svg │ │ │ │ ├── table.svg │ │ │ │ ├── search.svg │ │ │ │ ├── education.svg │ │ │ │ ├── tab.svg │ │ │ │ ├── message.svg │ │ │ │ ├── switch.svg │ │ │ │ ├── theme.svg │ │ │ │ ├── code.svg │ │ │ │ ├── druid.svg │ │ │ │ ├── peoples.svg │ │ │ │ ├── input.svg │ │ │ │ ├── server.svg │ │ │ │ ├── textarea.svg │ │ │ │ ├── time.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── nested.svg │ │ │ │ ├── row.svg │ │ │ │ ├── monitor.svg │ │ │ │ ├── tree-table.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── build.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── list.svg │ │ │ │ ├── download.svg │ │ │ │ ├── icon.svg │ │ │ │ ├── international.svg │ │ │ │ ├── question.svg │ │ │ │ ├── wechat.svg │ │ │ │ ├── skill.svg │ │ │ │ ├── people.svg │ │ │ │ ├── post.svg │ │ │ │ ├── language.svg │ │ │ │ ├── checkbox.svg │ │ │ │ ├── eye-open.svg │ │ │ │ ├── validCode.svg │ │ │ │ ├── radio.svg │ │ │ │ ├── select.svg │ │ │ │ ├── upload.svg │ │ │ │ ├── 404.svg │ │ │ │ ├── zip.svg │ │ │ │ ├── phone.svg │ │ │ │ └── log.svg │ │ └── styles │ │ │ └── transition.scss │ ├── utils │ │ ├── errorCode.js │ │ ├── auth.js │ │ ├── dynamicTitle.js │ │ ├── dict.js │ │ ├── jsencrypt.js │ │ ├── permission.js │ │ └── theme.js │ ├── api │ │ ├── menu.js │ │ ├── monitor │ │ │ ├── server.js │ │ │ ├── online.js │ │ │ ├── operlog.js │ │ │ ├── jobLog.js │ │ │ ├── logininfor.js │ │ │ ├── cache.js │ │ │ └── job.js │ │ ├── system │ │ │ ├── post.js │ │ │ ├── notice.js │ │ │ ├── sys_config.js │ │ │ ├── sys_dict_type.js │ │ │ ├── dept.js │ │ │ ├── dict │ │ │ │ ├── data.js │ │ │ │ └── type.js │ │ │ ├── config.js │ │ │ └── menu.js │ │ └── login.js │ ├── layout │ │ └── components │ │ │ ├── index.js │ │ │ ├── InnerLink │ │ │ └── index.vue │ │ │ ├── IframeToggle │ │ │ └── index.vue │ │ │ ├── Sidebar │ │ │ └── Link.vue │ │ │ └── AppMain.vue │ ├── views │ │ ├── tool │ │ │ ├── swagger │ │ │ │ └── index.vue │ │ │ └── build │ │ │ │ └── index.vue │ │ ├── monitor │ │ │ └── druid │ │ │ │ └── index.vue │ │ └── redirect │ │ │ └── index.vue │ ├── directive │ │ ├── index.js │ │ └── permission │ │ │ ├── hasRole.js │ │ │ └── hasPermi.js │ ├── App.vue │ ├── plugins │ │ ├── index.js │ │ └── auth.js │ └── settings.js ├── public │ └── favicon.ico ├── .env.development ├── vite │ └── plugins │ │ ├── setup-extend.js │ │ ├── auto-import.js │ │ ├── svg-icon.js │ │ ├── index.js │ │ └── compression.js ├── .env.staging ├── .env.production ├── .gitignore └── package.json ├── manifest ├── docker │ ├── docker.sh │ └── Dockerfile ├── deploy │ └── kustomize │ │ ├── base │ │ ├── kustomization.yaml │ │ ├── service.yaml │ │ └── deployment.yaml │ │ └── overlays │ │ └── develop │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ └── configmap.yaml └── config │ └── config.yaml ├── template ├── default │ ├── internal │ │ ├── consts │ │ │ └── consts.tpl │ │ ├── controller │ │ │ └── controller.tpl │ │ └── logic │ │ │ └── logic.tpl │ ├── v1 │ │ └── v.tpl │ └── vue │ │ └── src │ │ └── api │ │ └── js.tpl └── index.tpl ├── .gitignore ├── api └── v1 │ ├── common │ └── req.go │ ├── captcha.go │ └── dict.go ├── main.go ├── hack └── config.yaml └── LICENSE /utility/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/dao/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/logic/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/model/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resource/i18n/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/model/do/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/service/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resource/template/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/model/entity/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resource/public/html/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resource/public/plugin/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * linguist-language=GO -------------------------------------------------------------------------------- /resource/public/resource/css/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resource/public/resource/js/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /resource/public/resource/image/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/consts/consts.go: -------------------------------------------------------------------------------- 1 | package consts 2 | -------------------------------------------------------------------------------- /internal/packed/packed.go: -------------------------------------------------------------------------------- 1 | package packed 2 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/store/index.js: -------------------------------------------------------------------------------- 1 | const store = createPinia() 2 | 3 | export default store -------------------------------------------------------------------------------- /RuoYi-Vue3/src/components/ParentView/index.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /RuoYi-Vue3/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guyan0319/go-vue-admin/HEAD/RuoYi-Vue3/public/favicon.ico -------------------------------------------------------------------------------- /internal/app/system/consts/consts_context.go: -------------------------------------------------------------------------------- 1 | package consts 2 | 3 | const ( 4 | ContextKey = "ContextKey" 5 | ) 6 | -------------------------------------------------------------------------------- /internal/app/system/consts/consts_user.go: -------------------------------------------------------------------------------- 1 | package consts 2 | 3 | const ( 4 | UserSessionKey = "UserSessionKey" 5 | ) 6 | -------------------------------------------------------------------------------- /manifest/docker/docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This shell is executed before docker build. 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guyan0319/go-vue-admin/HEAD/RuoYi-Vue3/src/assets/logo/logo.png -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/401_images/401.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guyan0319/go-vue-admin/HEAD/RuoYi-Vue3/src/assets/401_images/401.gif -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/404_images/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guyan0319/go-vue-admin/HEAD/RuoYi-Vue3/src/assets/404_images/404.png -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/images/profile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guyan0319/go-vue-admin/HEAD/RuoYi-Vue3/src/assets/images/profile.jpg -------------------------------------------------------------------------------- /internal/app/system/consts/sys_config.go: -------------------------------------------------------------------------------- 1 | package consts 2 | 3 | const ( 4 | SysConfigStatusOk = "0" 5 | SysConfigStatusNo = "1" 6 | ) 7 | -------------------------------------------------------------------------------- /internal/app/system/consts/sys_dict_type.go: -------------------------------------------------------------------------------- 1 | package consts 2 | 3 | const ( 4 | SysDictTypeStatusOk = "0" 5 | SysDictTypeStatusNo = "1" 6 | ) 7 | -------------------------------------------------------------------------------- /template/default/internal/consts/consts.tpl: -------------------------------------------------------------------------------- 1 | package consts 2 | 3 | const ( 4 | {{.TableName}}StatusOk = "0" 5 | {{.TableName}}StatusNo = "1" 6 | ) -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/404_images/404_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guyan0319/go-vue-admin/HEAD/RuoYi-Vue3/src/assets/404_images/404_cloud.png -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/images/login-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guyan0319/go-vue-admin/HEAD/RuoYi-Vue3/src/assets/images/login-background.jpg -------------------------------------------------------------------------------- /RuoYi-Vue3/src/utils/errorCode.js: -------------------------------------------------------------------------------- 1 | export default { 2 | '401': '认证失败,无法访问系统资源', 3 | '403': '当前操作没有权限', 4 | '404': '访问资源不存在', 5 | 'default': '系统未知错误,请反馈给管理员' 6 | } 7 | -------------------------------------------------------------------------------- /RuoYi-Vue3/.env.development: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VITE_APP_TITLE = goadmin管理系统 3 | 4 | # 开发环境配置 5 | VITE_APP_ENV = 'development' 6 | 7 | # goadmin管理系统/开发环境 8 | VITE_APP_BASE_API = '/dev-api' 9 | -------------------------------------------------------------------------------- /RuoYi-Vue3/vite/plugins/setup-extend.js: -------------------------------------------------------------------------------- 1 | import setupExtend from 'vite-plugin-vue-setup-extend' 2 | 3 | export default function createSetupExtend() { 4 | return setupExtend() 5 | } 6 | -------------------------------------------------------------------------------- /manifest/deploy/kustomize/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - deployment.yaml 5 | - service.yaml 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /template/index.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | {{.name}} 9 | 10 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/api/menu.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获取路由 4 | export const getRouters = () => { 5 | return request({ 6 | url: '/getRouters', 7 | method: 'get' 8 | }) 9 | } -------------------------------------------------------------------------------- /RuoYi-Vue3/src/api/monitor/server.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 获取服务信息 4 | export function getServer() { 5 | return request({ 6 | url: '/monitor/server', 7 | method: 'get' 8 | }) 9 | } -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/chart.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/app/system/consts/consts_openapi.go: -------------------------------------------------------------------------------- 1 | package consts 2 | 3 | const ( 4 | OpenAPITitle = `GoFrame Demos` 5 | OpenAPIDescription = `This is a simple demos HTTP server project that is using GoFrame. Enjoy 💖 ` 6 | ) 7 | -------------------------------------------------------------------------------- /template/default/v1/v.tpl: -------------------------------------------------------------------------------- 1 | package {{.packageName}} 2 | 3 | import ( 4 | "github.com/gogf/gf/v2/frame/g" 5 | ) 6 | {{range $value := .apiSilce}} 7 | type {{$value.TypeName}} struct { 8 | {{$value.TypeContent}} 9 | } 10 | {{end}} 11 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/size.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .buildpath 2 | .hgignore.swp 3 | .project 4 | .orig 5 | .swp 6 | .idea/ 7 | .settings/ 8 | .vscode/ 9 | bin/ 10 | **/.DS_Store 11 | main 12 | output/ 13 | manifest/output/ 14 | temp/ 15 | resource/log/ 16 | main.exe 17 | main.exe~ 18 | -------------------------------------------------------------------------------- /RuoYi-Vue3/.env.staging: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VITE_APP_TITLE = goadmin管理系统 3 | 4 | # 生产环境配置 5 | VITE_APP_ENV = 'staging' 6 | 7 | # goadmin管理系统/生产环境 8 | VITE_APP_BASE_API = '/stage-api' 9 | 10 | # 是否在打包时开启压缩,支持 gzip 和 brotli 11 | VITE_BUILD_COMPRESS = gzip -------------------------------------------------------------------------------- /RuoYi-Vue3/src/layout/components/index.js: -------------------------------------------------------------------------------- 1 | export { default as AppMain } from './AppMain' 2 | export { default as Navbar } from './Navbar' 3 | export { default as Settings } from './Settings' 4 | export { default as TagsView } from './TagsView/index.vue' 5 | -------------------------------------------------------------------------------- /RuoYi-Vue3/.env.production: -------------------------------------------------------------------------------- 1 | # 页面标题 2 | VITE_APP_TITLE = goadmin管理系统 3 | 4 | # 生产环境配置 5 | VITE_APP_ENV = 'production' 6 | 7 | # goadmin管理系统/生产环境 8 | VITE_APP_BASE_API = '/prod-api' 9 | 10 | # 是否在打包时开启压缩,支持 gzip 和 brotli 11 | VITE_BUILD_COMPRESS = gzip -------------------------------------------------------------------------------- /manifest/deploy/kustomize/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: template-single 5 | spec: 6 | ports: 7 | - port: 80 8 | protocol: TCP 9 | targetPort: 8000 10 | selector: 11 | app: template-single 12 | 13 | -------------------------------------------------------------------------------- /api/v1/common/req.go: -------------------------------------------------------------------------------- 1 | package common 2 | 3 | type PageReq struct { 4 | PageNum int `p:"pageNum"` 5 | PageSize int `p:"pageSize"` 6 | OrderBy string `p:"orderBy"` //排序方式 7 | Params map[string]string `p:"params"` //时间范围 8 | } 9 | -------------------------------------------------------------------------------- /manifest/deploy/kustomize/overlays/develop/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: template-single 5 | spec: 6 | template: 7 | spec: 8 | containers: 9 | - name : main 10 | image: template-single:develop -------------------------------------------------------------------------------- /template/default/vue/src/api/js.tpl: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | {{range $value := .jsFuncSilce}} 4 | // {{$value.Notes}} 5 | export function {{$value.FuncName}}(query) { 6 | return request({ 7 | {{$value.Content}} 8 | }) 9 | } 10 | {{end}} 11 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/components/IconSelect/requireIcons.js: -------------------------------------------------------------------------------- 1 | let icons = [] 2 | const modules = import.meta.glob('./../../assets/icons/svg/*.svg'); 3 | for (const path in modules) { 4 | const p = path.split('assets/icons/svg/')[1].split('.svg')[0]; 5 | icons.push(p); 6 | } 7 | 8 | export default icons -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | _ "github.com/gogf/gf/contrib/drivers/mysql/v2" 5 | "github.com/gogf/gf/v2/os/gctx" 6 | _ "go-vue-admin/internal/app/system/logic" 7 | 8 | "go-vue-admin/internal/cmd" 9 | ) 10 | 11 | func main() { 12 | cmd.Main.Run(gctx.New()) 13 | } 14 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/views/tool/swagger/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /manifest/deploy/kustomize/overlays/develop/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | 4 | resources: 5 | - ../../base 6 | - configmap.yaml 7 | 8 | patchesStrategicMerge: 9 | - deployment.yaml 10 | 11 | namespace: default 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/components/RuoYi/Doc/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/link.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/app/system/consts/gtoken.go: -------------------------------------------------------------------------------- 1 | package consts 2 | 3 | const ( 4 | CacheMode = 1 5 | CacheModeRedis = 2 6 | // 是否支持多端登录 7 | MultiLogin = true 8 | TokenType = "Bearer" 9 | ServerName = "开源后台系统" 10 | //超时时间 10 * 24 * 60 * 60 11 | Timeout = 86400 12 | GTokenAdminPrefix = "admin" 13 | ) 14 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/components/RuoYi/Git/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /RuoYi-Vue3/vite/plugins/auto-import.js: -------------------------------------------------------------------------------- 1 | import autoImport from 'unplugin-auto-import/vite' 2 | 3 | export default function createAutoImport() { 4 | return autoImport({ 5 | imports: [ 6 | 'vue', 7 | 'vue-router', 8 | 'pinia' 9 | ], 10 | dts: false 11 | }) 12 | } 13 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/directive/index.js: -------------------------------------------------------------------------------- 1 | import hasRole from './permission/hasRole' 2 | import hasPermi from './permission/hasPermi' 3 | import copyText from './common/copyText' 4 | 5 | export default function directive(app){ 6 | app.directive('hasRole', hasRole) 7 | app.directive('hasPermi', hasPermi) 8 | app.directive('copyText', copyText) 9 | } -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/guide.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/views/monitor/druid/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 14 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/components/SvgIcon/svgicon.js: -------------------------------------------------------------------------------- 1 | import * as components from '@element-plus/icons-vue' 2 | 3 | export default { 4 | install: (app) => { 5 | for (const key in components) { 6 | const componentConfig = components[key]; 7 | app.component(componentConfig.name, componentConfig); 8 | } 9 | }, 10 | }; 11 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/views/redirect/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /utility/err.go: -------------------------------------------------------------------------------- 1 | package utility 2 | 3 | import ( 4 | "context" 5 | "github.com/gogf/gf/v2/frame/g" 6 | ) 7 | 8 | func WriteErrLog(ctx context.Context, err error, msg ...string) { 9 | if !g.IsNil(err) { 10 | g.Log().Error(ctx, err.Error()) 11 | if len(msg) > 0 { 12 | panic(msg[0]) 13 | } else { 14 | panic(err.Error()) 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 16 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/money.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/utils/auth.js: -------------------------------------------------------------------------------- 1 | import Cookies from 'js-cookie' 2 | 3 | const TokenKey = 'Admin-Token' 4 | 5 | export function getToken() { 6 | return Cookies.get(TokenKey) 7 | } 8 | 9 | export function setToken(token) { 10 | return Cookies.set(TokenKey, token) 11 | } 12 | 13 | export function removeToken() { 14 | return Cookies.remove(TokenKey) 15 | } 16 | -------------------------------------------------------------------------------- /manifest/deploy/kustomize/overlays/develop/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: template-single-configmap 5 | data: 6 | config.yaml: | 7 | server: 8 | address: ":8000" 9 | openapiPath: "/api.json" 10 | swaggerPath: "/swagger" 11 | 12 | logger: 13 | level : "all" 14 | stdout: true 15 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/email.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/service/consts.go: -------------------------------------------------------------------------------- 1 | // ================================================================================ 2 | // Code generated by GoFrame CLI tool. DO NOT EDIT. 3 | // You can delete these comments if you wish manually maintain this interface file. 4 | // ================================================================================ 5 | 6 | package service 7 | 8 | type () 9 | -------------------------------------------------------------------------------- /internal/service/dao.go: -------------------------------------------------------------------------------- 1 | // ================================================================================ 2 | // Code generated by GoFrame CLI tool. DO NOT EDIT. 3 | // You can delete these comments if you wish manually maintain this interface file. 4 | // ================================================================================ 5 | 6 | package service 7 | 8 | type () 9 | -------------------------------------------------------------------------------- /internal/service/model.go: -------------------------------------------------------------------------------- 1 | // ================================================================================ 2 | // Code generated by GoFrame CLI tool. DO NOT EDIT. 3 | // You can delete these comments if you wish manually maintain this interface file. 4 | // ================================================================================ 5 | 6 | package service 7 | 8 | type () 9 | -------------------------------------------------------------------------------- /RuoYi-Vue3/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | **/*.log 8 | 9 | tests/**/coverage/ 10 | tests/e2e/reports 11 | selenium-debug.log 12 | 13 | # Editor directories and files 14 | .idea 15 | .vscode 16 | *.suo 17 | *.ntvs* 18 | *.njsproj 19 | *.sln 20 | *.local 21 | 22 | package-lock.json 23 | yarn.lock 24 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/drag.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/vite/plugins/svg-icon.js: -------------------------------------------------------------------------------- 1 | import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' 2 | import path from 'path' 3 | 4 | export default function createSvgIcon(isBuild) { 5 | return createSvgIconsPlugin({ 6 | iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')], 7 | symbolId: 'icon-[dir]-[name]', 8 | svgoOptions: isBuild 9 | }) 10 | } 11 | -------------------------------------------------------------------------------- /internal/app/system/model/context.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | import ( 4 | "github.com/gogf/gf/v2/net/ghttp" 5 | ) 6 | 7 | type Context struct { 8 | Session *ghttp.Session // Session in context. 9 | User *ContextUser // User in context. 10 | } 11 | 12 | type ContextUser struct { 13 | Id int64 // User ID. 14 | UserName string // User UserName. 15 | Nickname string // User nickname. 16 | } 17 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/api/monitor/online.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询在线用户列表 4 | export function list(query) { 5 | return request({ 6 | url: '/monitor/online/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 强退用户 13 | export function forceLogout(tokenId) { 14 | return request({ 15 | url: '/monitor/online/' + tokenId, 16 | method: 'delete' 17 | }) 18 | } 19 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/documentation.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/fullscreen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /utility/utils.go: -------------------------------------------------------------------------------- 1 | package utility 2 | 3 | import ( 4 | "context" 5 | "github.com/gogf/gf/v2/frame/g" 6 | "github.com/gogf/gf/v2/net/ghttp" 7 | ) 8 | 9 | // GetClientIp 获取客户端IP 10 | func GetClientIp(ctx context.Context) string { 11 | return g.RequestFromCtx(ctx).GetClientIp() 12 | } 13 | 14 | // GetUserAgent 获取user-agent 15 | func GetUserAgent(ctx context.Context) string { 16 | return ghttp.RequestFromCtx(ctx).Header.Get("User-Agent") 17 | } 18 | 19 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/user.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/excel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/utils/dynamicTitle.js: -------------------------------------------------------------------------------- 1 | import store from '@/store' 2 | import defaultSettings from '@/settings' 3 | import useSettingsStore from '@/store/modules/settings' 4 | 5 | /** 6 | * 动态修改标题 7 | */ 8 | export function useDynamicTitle() { 9 | const settingsStore = useSettingsStore(); 10 | if (settingsStore.dynamicTitle) { 11 | document.title = settingsStore.title + ' - ' + defaultSettings.title; 12 | } else { 13 | document.title = defaultSettings.title; 14 | } 15 | } -------------------------------------------------------------------------------- /manifest/deploy/kustomize/base/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: template-single 5 | labels: 6 | app: template-single 7 | spec: 8 | replicas: 1 9 | selector: 10 | matchLabels: 11 | app: template-single 12 | template: 13 | metadata: 14 | labels: 15 | app: template-single 16 | spec: 17 | containers: 18 | - name : main 19 | image: template-single 20 | imagePullPolicy: Always 21 | 22 | -------------------------------------------------------------------------------- /internal/app/system/model/redis.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | type RedisConfig struct { 4 | Address string `json:"address"` 5 | Db int `json:"db"` 6 | IdleTimeout string `json:"idleTimeout"` 7 | MaxConnLifetime string `json:"maxConnLifetime"` 8 | WaitTimeout string `json:"waitTimeout"` 9 | DialTimeout string `json:"dialTimeout"` 10 | ReadTimeout string `json:"readTimeout"` 11 | WriteTimeout string `json:"writeTimeout"` 12 | MaxActive int `json:"maxActive"` 13 | } 14 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/example.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/app/system/model/entity/sys_role_dept.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package entity 6 | 7 | // SysRoleDept is the golang structure for table sys_role_dept. 8 | type SysRoleDept struct { 9 | RoleId int64 `json:"roleId" description:"角色ID"` 10 | DeptId int64 `json:"deptId" description:"部门ID"` 11 | } 12 | -------------------------------------------------------------------------------- /internal/app/system/model/entity/sys_role_menu.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package entity 6 | 7 | // SysRoleMenu is the golang structure for table sys_role_menu. 8 | type SysRoleMenu struct { 9 | RoleId int64 `json:"roleId" description:"角色ID"` 10 | MenuId int64 `json:"menuId" description:"菜单ID"` 11 | } 12 | -------------------------------------------------------------------------------- /internal/app/system/model/entity/sys_user_post.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package entity 6 | 7 | // SysUserPost is the golang structure for table sys_user_post. 8 | type SysUserPost struct { 9 | UserId int64 `json:"userId" description:"用户ID"` 10 | PostId int64 `json:"postId" description:"岗位ID"` 11 | } 12 | -------------------------------------------------------------------------------- /internal/app/system/model/entity/sys_user_role.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package entity 6 | 7 | // SysUserRole is the golang structure for table sys_user_role. 8 | type SysUserRole struct { 9 | UserId int64 `json:"userId" description:"用户ID"` 10 | RoleId int64 `json:"roleId" description:"角色ID"` 11 | } 12 | -------------------------------------------------------------------------------- /internal/app/system/controller/dict/dict.go: -------------------------------------------------------------------------------- 1 | package dict 2 | 3 | import ( 4 | "context" 5 | v1 "go-vue-admin/api/v1" 6 | "go-vue-admin/internal/app/system/service" 7 | ) 8 | 9 | type dictController struct { 10 | } 11 | 12 | var Dict = dictController{} 13 | 14 | func (d *dictController) DictData(ctx context.Context, req *v1.GetDictDataReq) (res *v1.GetDictDataRes, err error) { 15 | dictData, err := service.SysDictData().GetDictDataByType(ctx, req.DictType) 16 | res = &v1.GetDictDataRes{ 17 | DictData: dictData, 18 | } 19 | return 20 | } 21 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/layout/components/InnerLink/index.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 25 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/plugins/index.js: -------------------------------------------------------------------------------- 1 | import tab from './tab' 2 | import auth from './auth' 3 | import cache from './cache' 4 | import modal from './modal' 5 | import download from './download' 6 | 7 | export default function installPlugins(app){ 8 | // 页签操作 9 | app.config.globalProperties.$tab = tab 10 | // 认证对象 11 | app.config.globalProperties.$auth = auth 12 | // 缓存对象 13 | app.config.globalProperties.$cache = cache 14 | // 模态框对象 15 | app.config.globalProperties.$modal = modal 16 | // 下载文件 17 | app.config.globalProperties.$download = download 18 | } 19 | -------------------------------------------------------------------------------- /hack/config.yaml: -------------------------------------------------------------------------------- 1 | 2 | # CLI tool, only in development environment. 3 | # https://goframe.org/pages/viewpage.action?pageId=3673173 4 | gfcli: 5 | gen: 6 | dao: 7 | - link: "mysql:root:123456@tcp(127.0.0.1:3306)/gvadmindb" 8 | tables: "" 9 | tablesEx: "" 10 | removePrefix: "gf_" 11 | descriptionTag: true 12 | noModelComment: true 13 | path: "./internal/app/system" 14 | service: 15 | srcFolder: "internal/app/system/logic" 16 | dstFolder: "internal/app/system/service" -------------------------------------------------------------------------------- /RuoYi-Vue3/src/views/tool/build/index.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | // ts(使用了 setup 语法糖), reactive 自行引入即可 17 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/components/Screenfull/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /internal/app/system/logic/cache/cache.go: -------------------------------------------------------------------------------- 1 | package cache 2 | 3 | import ( 4 | _ "github.com/gogf/gf/contrib/nosql/redis/v2" 5 | "github.com/gogf/gf/v2/database/gredis" 6 | "github.com/gogf/gf/v2/frame/g" 7 | "go-vue-admin/internal/app/system/service" 8 | ) 9 | 10 | func init() { 11 | service.RegisterCache(New()) 12 | } 13 | 14 | func New() *sCache { 15 | redis := g.Redis() 16 | return &sCache{ 17 | Redis: redis, 18 | } 19 | } 20 | 21 | type sCache struct { 22 | *gredis.Redis 23 | } 24 | 25 | func (s *sCache) Driver() *gredis.Redis { 26 | return s.Redis 27 | } 28 | -------------------------------------------------------------------------------- /internal/app/system/model/sys_dept.go: -------------------------------------------------------------------------------- 1 | package model 2 | 3 | import ( 4 | "go-vue-admin/internal/app/system/model/entity" 5 | ) 6 | 7 | type SysDeptSRes struct { 8 | *entity.SysDept 9 | Children []*SysDeptSRes `json:"children"` 10 | } 11 | 12 | type SysDeptTreeRes struct { 13 | Id int64 `json:"id" description:"部门id"` 14 | Label string `json:"label" description:"部门名称"` 15 | Children []*SysDeptTreeRes `json:"children" description:"子部门"` 16 | } 17 | type DeptIds struct { 18 | Ids []int64 `json:"ids" description:"部门id"` 19 | } 20 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/star.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /template/default/internal/controller/controller.tpl: -------------------------------------------------------------------------------- 1 | package {{.packageName}} 2 | 3 | import ( 4 | "context" 5 | ) 6 | 7 | type {{.nameController}} struct { 8 | } 9 | 10 | var {{.controllerName}} = {{.nameController}} {} 11 | {{range $value := .funcSilce}} 12 | func (s *{{$value.NameController}} ) {{$value.FuncName}}(ctx context.Context, req *{{$value.ApiPackageName}}.{{$value.ServiceReq}}) (res *{{$value.ApiPackageName}}.{{$value.ServiceRes}}, err error) { 13 | res, err = service.{{$value.ServiceName}}().{{$value.FuncName}}(ctx, req) 14 | return 15 | } 16 | {{end}} 17 | 18 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/api/monitor/operlog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询操作日志列表 4 | export function list(query) { 5 | return request({ 6 | url: '/monitor/operlog/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除操作日志 13 | export function delOperlog(operId) { 14 | return request({ 15 | url: '/monitor/operlog/' + operId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 清空操作日志 21 | export function cleanOperlog() { 22 | return request({ 23 | url: '/monitor/operlog/clean', 24 | method: 'delete' 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/slider.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/api/monitor/jobLog.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询调度日志列表 4 | export function listJobLog(query) { 5 | return request({ 6 | url: '/monitor/jobLog/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除调度日志 13 | export function delJobLog(jobLogId) { 14 | return request({ 15 | url: '/monitor/jobLog/' + jobLogId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 清空调度日志 21 | export function cleanJobLog() { 22 | return request({ 23 | url: '/monitor/jobLog/clean', 24 | method: 'delete' 25 | }) 26 | } 27 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/table.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/vite/plugins/index.js: -------------------------------------------------------------------------------- 1 | import vue from '@vitejs/plugin-vue' 2 | 3 | import createAutoImport from './auto-import' 4 | import createSvgIcon from './svg-icon' 5 | import createCompression from './compression' 6 | import createSetupExtend from './setup-extend' 7 | 8 | export default function createVitePlugins(viteEnv, isBuild = false) { 9 | const vitePlugins = [vue()] 10 | vitePlugins.push(createAutoImport()) 11 | vitePlugins.push(createSetupExtend()) 12 | vitePlugins.push(createSvgIcon(isBuild)) 13 | isBuild && vitePlugins.push(...createCompression(viteEnv)) 14 | return vitePlugins 15 | } 16 | -------------------------------------------------------------------------------- /api/v1/captcha.go: -------------------------------------------------------------------------------- 1 | package v1 2 | 3 | import "github.com/gogf/gf/v2/frame/g" 4 | 5 | type CaptchaReq struct { 6 | g.Meta `path:"/captchaImage" tags:"验证码" method:"get" summary:"获取验证码"` 7 | } 8 | type CaptchaRes struct { 9 | g.Meta `mime:"application/json"` 10 | Key string `json:"key"` 11 | Img string `json:"img"` 12 | Uuid string `json:"uuid"` 13 | CaptchaEnabled bool `json:"captchaEnabled"` 14 | } 15 | type TestReq struct { 16 | g.Meta `path:"/test" tags:"验证码" method:"get" summary:"获取验证码"` 17 | } 18 | type TestRes struct { 19 | g.Meta `mime:"application/json"` 20 | } 21 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/search.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /internal/app/system/model/do/sys_role_dept.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package do 6 | 7 | import ( 8 | "github.com/gogf/gf/v2/frame/g" 9 | ) 10 | 11 | // SysRoleDept is the golang structure of table sys_role_dept for DAO operations like Where/Data. 12 | type SysRoleDept struct { 13 | g.Meta `orm:"table:sys_role_dept, do:true"` 14 | RoleId interface{} // 角色ID 15 | DeptId interface{} // 部门ID 16 | } 17 | -------------------------------------------------------------------------------- /internal/app/system/model/do/sys_role_menu.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package do 6 | 7 | import ( 8 | "github.com/gogf/gf/v2/frame/g" 9 | ) 10 | 11 | // SysRoleMenu is the golang structure of table sys_role_menu for DAO operations like Where/Data. 12 | type SysRoleMenu struct { 13 | g.Meta `orm:"table:sys_role_menu, do:true"` 14 | RoleId interface{} // 角色ID 15 | MenuId interface{} // 菜单ID 16 | } 17 | -------------------------------------------------------------------------------- /internal/app/system/model/do/sys_user_post.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package do 6 | 7 | import ( 8 | "github.com/gogf/gf/v2/frame/g" 9 | ) 10 | 11 | // SysUserPost is the golang structure of table sys_user_post for DAO operations like Where/Data. 12 | type SysUserPost struct { 13 | g.Meta `orm:"table:sys_user_post, do:true"` 14 | UserId interface{} // 用户ID 15 | PostId interface{} // 岗位ID 16 | } 17 | -------------------------------------------------------------------------------- /internal/app/system/model/do/sys_user_role.go: -------------------------------------------------------------------------------- 1 | // ================================================================================= 2 | // Code generated and maintained by GoFrame CLI tool. DO NOT EDIT. 3 | // ================================================================================= 4 | 5 | package do 6 | 7 | import ( 8 | "github.com/gogf/gf/v2/frame/g" 9 | ) 10 | 11 | // SysUserRole is the golang structure of table sys_user_role for DAO operations like Where/Data. 12 | type SysUserRole struct { 13 | g.Meta `orm:"table:sys_user_role, do:true"` 14 | UserId interface{} // 用户ID 15 | RoleId interface{} // 角色ID 16 | } 17 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/layout/components/IframeToggle/index.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/education.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/tab.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /manifest/docker/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM loads/alpine:3.8 2 | 3 | ############################################################################### 4 | # INSTALLATION 5 | ############################################################################### 6 | 7 | ENV WORKDIR /app 8 | ADD resource $WORKDIR/ 9 | ADD ./temp/linux_amd64/main $WORKDIR/main 10 | RUN chmod +x $WORKDIR/main 11 | 12 | ############################################################################### 13 | # START 14 | ############################################################################### 15 | WORKDIR $WORKDIR 16 | CMD ./main 17 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/message.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/switch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/theme.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /template/default/internal/logic/logic.tpl: -------------------------------------------------------------------------------- 1 | package {{.packageName}} 2 | 3 | import ( 4 | "context" 5 | "github.com/gogf/gf/v2/frame/g" 6 | "github.com/gogf/gf/v2/os/gtime" 7 | "github.com/gogf/gf/v2/util/gconv" 8 | ) 9 | 10 | func init() { 11 | service.Register{{.className}}(New()) 12 | } 13 | 14 | func New() *s{{.className}} { 15 | return &s{{.className}}{} 16 | } 17 | 18 | type s{{.className}} struct { 19 | } 20 | 21 | {{range $value := .logicSilce}} 22 | // {{$value.Notes}} 23 | func (s *s{{$value.ClassName}}) {{$value.FuncName}}(ctx context.Context, req *{{$value.ApiPackageName}}.{{$value.ParamReq}}) (res *{{$value.ApiPackageName}}.{{$value.ParamRes}}, err error) { 24 | {{$value.Content}} 25 | return 26 | } 27 | {{end}} -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/druid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/peoples.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/input.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/server.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/v1/dict.go: -------------------------------------------------------------------------------- 1 | package v1 2 | 3 | import ( 4 | "github.com/gogf/gf/v2/frame/g" 5 | "go-vue-admin/internal/app/system/model/entity" 6 | ) 7 | 8 | type GetDictDataReq struct { 9 | g.Meta `path:"/system/dict/type" method:"get" tags:"UserService" summary:"current Data"` 10 | DictType string `p:"dictType" v:"required"` 11 | } 12 | type GetDictDataRes struct { 13 | g.Meta `mime:"application/json"` 14 | DictData []*entity.SysDictData `json:"dictData"` 15 | } 16 | 17 | type GetDictTypeOptionSelectReq struct { 18 | g.Meta `path:"/system/dict/type/optionselect" method:"get" tags:"UserService" summary:"current Data"` 19 | } 20 | type GetDictTypeOptionSelectRes struct { 21 | g.Meta `mime:"application/json"` 22 | DictType []*entity.SysDictType `json:"dictType"` 23 | } 24 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/directive/permission/hasRole.js: -------------------------------------------------------------------------------- 1 | /** 2 | * v-hasRole 角色权限处理 3 | * Copyright (c) 2019 ruoyi 4 | */ 5 | 6 | import useUserStore from '@/store/modules/user' 7 | 8 | export default { 9 | mounted(el, binding, vnode) { 10 | const { value } = binding 11 | const super_admin = "admin"; 12 | const roles = useUserStore().roles 13 | 14 | if (value && value instanceof Array && value.length > 0) { 15 | const roleFlag = value 16 | 17 | const hasRole = roles.some(role => { 18 | return super_admin === role || roleFlag.includes(role) 19 | }) 20 | 21 | if (!hasRole) { 22 | el.parentNode && el.parentNode.removeChild(el) 23 | } 24 | } else { 25 | throw new Error(`请设置角色权限标签值`) 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/api/monitor/logininfor.js: -------------------------------------------------------------------------------- 1 | import request from '@/utils/request' 2 | 3 | // 查询登录日志列表 4 | export function list(query) { 5 | return request({ 6 | url: '/monitor/logininfor/list', 7 | method: 'get', 8 | params: query 9 | }) 10 | } 11 | 12 | // 删除登录日志 13 | export function delLogininfor(infoId) { 14 | return request({ 15 | url: '/monitor/logininfor/' + infoId, 16 | method: 'delete' 17 | }) 18 | } 19 | 20 | // 解锁用户登录状态 21 | export function unlockLogininfor(userName) { 22 | return request({ 23 | url: '/monitor/logininfor/unlock/' + userName, 24 | method: 'get' 25 | }) 26 | } 27 | 28 | // 清空登录日志 29 | export function cleanLogininfor() { 30 | return request({ 31 | url: '/monitor/logininfor/clean', 32 | method: 'delete' 33 | }) 34 | } 35 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/textarea.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/layout/components/Sidebar/Link.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 41 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/assets/icons/svg/time.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /RuoYi-Vue3/src/components/iFrame/index.vue: -------------------------------------------------------------------------------- 1 |