{"id":13597810,"url":"https://github.com/jasonLaw1015/GfEasy","last_synced_at":"2025-04-10T05:33:32.210Z","repository":{"id":39167615,"uuid":"390954528","full_name":"jasonLaw1015/GfEasy","owner":"jasonLaw1015","description":"快速crud开发框架，甚至于一行代码不用敲；自动根据数据库表结构自动生成crud代码；低代码开发框架；至少减少百分90%工作量；可快速把现有系统转成GfEasy版本；后端使用GoFrame开发;后台前端使用 cool-admin-vue；后台使用自适应布局，手机、PC完美使用。","archived":false,"fork":false,"pushed_at":"2021-12-09T03:53:30.000Z","size":6869,"stargazers_count":379,"open_issues_count":5,"forks_count":79,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-06T22:40:35.855Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasonLaw1015.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-30T06:20:10.000Z","updated_at":"2024-11-02T10:00:11.000Z","dependencies_parsed_at":"2022-07-12T17:45:02.466Z","dependency_job_id":null,"html_url":"https://github.com/jasonLaw1015/GfEasy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonLaw1015%2FGfEasy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonLaw1015%2FGfEasy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonLaw1015%2FGfEasy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasonLaw1015%2FGfEasy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasonLaw1015","download_url":"https://codeload.github.com/jasonLaw1015/GfEasy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248163400,"owners_count":21057930,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T17:00:41.744Z","updated_at":"2025-04-10T05:33:27.169Z","avatar_url":"https://github.com/jasonLaw1015.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# GoFrame: GfEasy\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://gitee.com/jasonlaw1015/GfEasy\" target=\"blank\"\u003e\u003cimg  width=\"400\" alt=\"GfEasy Logo\" src=\"data:image/png;base64,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%0A7S6Bobn9bJFL/5HPzJoBzgQAEOL2+dfc/61bt8xvfzdou/wzY0N27r6wwg93%0A6etuRwbCXfrG69pXhR/+RWQrfJcMmFxl73X5p8zUxJj9OHcft/fec8cJ/muM%0ABCDC+joOebsEzoVO2yhCWfXdr4dsQyAAuKY/t9vfjf/43FbxurQOX/fCCj/c%0Apa/7upa2IPh7lb7Xtd/UvCFo3NNlK3w/2NvHTS3+65+1jYANjevsx7l7o+k9%0A/wbBvwxIACKu69X9qcnxpef3B4dHTGZiMuLfLYBSyGQydsmfTvnrfeejeSOH%0AmvNXV7439x86cDw4fc/r0g8qejc9YOfwR0LPGzOpyt74Fb6en8j4yYGXJExN%0Ajtv79NSEvfeef5PgXyYkADEwlRkx00vs9jcyljF3v2YaAEg6zfffvXvXfPXV%0AV+b69ev+3Pv8HfeaVeHPzgbD9d72vrPBQ83l697Y1Jzb3ndu1qvwXaWve2Oz%0A/WtthZ9Vhd+U9/9V39BoGwvr6htM3wWCfzmRAMRA7/F0amJ0aNGlOJmJKfP7%0Ae4NJf6mARFPTnyp/LftT8L99b9Ibxq/xQkH4rrn8cMUfvsKV/sT4mNr3vVlI%0APa8KP/TP1GQm7whzVfpKBBT0s/Y+ZTcH6rvwFsG/zEgAYqLntcOpzMjwgkf/%0AquHnzsDXZnJqOobfPYCl6HeDgr/m/W/evGk++2KkoLLP3W0lv67F3vP5i/qy%0A3uf1sUYAsvq9Y//cXFDpu6u+ocnMzEwFQ/yq9JUYKOjrz9fW1pn+zhME/wog%0AAYiR7qOvpCbGRvP3Bwj54qt7ZnySPgAgaVzw1za/n376qfnNf/9fUPl7Xfre%0AXL2r+LN2ff6IrfQnMt7vFK973xjbc5Q1Zmoi43Xt+xW+jixP6bC+rFeE2P0C%0A/H0DFORT3ifN7Mx0cFpgf+fJVH/XSYJ/hZAAxEznq/tSrsmm0MA3w+abkbGk%0Av0RA4uh0PyUAOuTn8rXf+JW9F4zdunyvks9V/Oren7MjAc1ed36wPn+dvdc3%0ArrPjAa57X4FeDX2zM95eAnWq8P3uf3vgT22dd5BQba39/fSrnjME/gojAYih%0Aycxo/iZBPk0D3L47sOA0AYD40Xy/Gv5u375tut9+3/737/ber/Er/PCQ/eR4%0Abl2+t04/4+/dP2dSJhV83Yw/l+8N7Xu7+Gl43/jb/LjT/+xjf1rBTRNc7D5F%0A8K8CJAAx1Pf6L1KTYyO2uSZM//F+/sXvzXSRfb4BxI+W+2mbX1X/53qv5K3j%0A93bgM95cf/CdayQgty4/mNP3G/9sA5/fB+AFe++uql/D/Arw7u79ddlgW2EX%0A8an8qwcJQEypKXB8dGTeVMCde4NmaoqTAYG4m5ycNAMDA/Y6frrfP50v5VX4%0AJlfhT0+Oe5W+5vJtkJ/07xPzuvY1rG8Li9Bcvu4K+nnb/5rcxj8uGbjYcyZ1%0Asfs0wb+KkADEWE/HwVRmOH954MhoxtwbGk76SwPE2sTEhD3dT3P/HSe67fC7%0ADchzc/66fc3de937Woevz6tbX49tl769N9rYrcfq4lfX/uzstPf3+KcChuf0%0A7XbAoR3/NPWvj3UR+KsTCUDMdR09kMqMDgcjAdoO+Lef/2/SXxYgtrTWX1W/%0AOv613E9z/EGFn7cuP5ur8Au69sOftxV+Xb1/SmCt97L5c/nB3e0E6G0FEAR+%0AXf0E/6rFDyYhnv7+D7JNLS02S39k2xbz/N/+tamrrU36ywLEioK/Gv405//R%0ARx+Zm//5P3nf3szUpKlraDSpwsNDQg9V5dt5/AJz/iiCMSavyve6i/zIH9xS%0Apr+LRr9qxwhAQnSm96YmM94OXQPfDJk7A+wKCMSJC/7q+tda/w9v/pfXpa85%0AfpOyXft2ON/v2tdcfnC3XfvTNhNwVX7uSODcnH4qqBqzeVW+u2rsvYbgHxH8%0AkBLm7/7hn7JNza3mL//i2+bRP/920l8OIBa0xNdV/p988om5dOVGkW8rG8zR%0AF+OaBO1mQNncn3GKVfmFIwB9nWzqEyWMACTM+cMv29MDP/ndbTM2PpH0lwOI%0AvKmpKRv8dbyvKv++S7/25vKn8uf0Z6enbajO7cSX25HPhJr2vK79bBD8C+f0%0Ai141BP8o4geWUM/+4z9n//5v/sr82R//YdJfCiCyZmZmbPBXt/9nn31mui5e%0ADb4Vrc23u/HZEYKZvHl9DevX1OTqP9cknF/Rm6JVfv5IQMr0XmAf/6ia3+mB%0ARDh14MXUn37rkeyf/NEjpraWgSAgajTnr01+VPnvP/yamZmaMrX19UHXfspv%0A9bPd+3advtfFr50A7Tn/2bngaxZr5ltouF/3HoJ/pPHDS7i3L/979lt/8HDS%0AXwYgUjTsr+Cvyn/vwQ5vuN7bj9fMzUybmjqvttPpfsHSPcsN7S8Q7E2xKt/M%0A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\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=center\u003e\n\u003cp\u003e\n\n## GfEasy So Easy\n\n### 快速crud开发框架，甚至于一行代码不用敲\n\n### 自动根据数据库表结构自动生成crud代码\n\n### 低代码开发框架\n\n### 至少减少百分90%工作量\n\n### 可快速把现有系统转成GfEasy版本\n\n### 后端使用GoFrame开发;后台前端使用 cool-admin-vue\n\n### 后台使用自适应布局，手机、PC完美使用\n\n\u003c/p\u003e\n\u003c/div\u003e\n\n-------------\n\n### star已过百，取消代码生成器的限制。可以无限次使用代码生成器，不限制次数、表个数。已没任何限制。\n免费可商用！！！（不要再私信问我了哈 ರ_ರ ）\n\n\n请拉取新的代码和下载新款代码生成模块\n\nhttps://www.yuque.com/docs/share/3e714752-0de1-43e2-96e4-461f4e74fc93?# 《代码生成模块》\n\n**新用户直接按下面的流程使用即可**\n\n-----------\n\n\n![img.png](screenshot/screenshot2/img.png)\n\n\n![GfEasy-移动.png](screenshot/GfEasy-移动.png)\n\n-------\n\n# 地址\n## 后端：\n\nhttps://github.com/jasonLaw1015/GfEasy\n\n或者\n\nhttps://gitee.com/jasonlaw1015/GfEasy\n\n--------\n\n## 后台前端：\n\nhttps://github.com/jasonLaw1015/GfEasyAdmin\n\n或者\n\nhttps://gitee.com/jasonlaw1015/GfEasyAdmin\n\n\n\n# 一、快速开始\n\n------\n\n### Go环境安装，请参考\n\nhttps://goframe.org/pages/viewpage.action?pageId=1114397\n\n### 后台server：\n\n请使用GoLand编辑器\n\n### 下载代码\u0026安装依赖\n\n```shell\n#克隆仓库\ngit clone https://gitee.com/jasonlaw1015/GfEasy.git\n#或者\ngit clone https://github.com/jasonLaw1015/GfEasy.git\n```\n\n打开mysql=》创建gf-easy库=》\n运行db/gf-easy.sql；创建表结构和初始化数据\n\n**配置mysql、Redis**\n\n打开文件 /config/config.toml\n\n按照你本地环境配置好\n![img.png](screenshot/screenshot2/img121.png)\n\n```shell\n#格式化代码\ngofmt ./\n```\n\n```shell\n#安装更新相关依赖\ngo mod tidy\n```\n\n```shell\n# 运行或者你点击GoLang IDE编辑器;\n# 运行安装过程完成后，运行以下命令启动服务。您可以在浏览器中预览网站 [http://localhost:8000](http://localhost:8000)\ngo run main.go\n```\n\n![img_8.png](screenshot/img_8.png)\n\n\n----\n\n### 安装gf开发工具\n\nhttps://goframe.org/pages/viewpage.action?pageId=1115782\n\n------\n\n### 生成接口文档\n\n```shell\ngf swagger --pack\n```\n\n--------\n\n#### 交叉编译\n\n运行已下命令，生成linux环境可执行文件\n\n```shell\ngf build main.go -n my-app -v 1.0 -a amd64 -s linux -p ./\n```\n\n会得到个my-app可执行文件\n\n----------\n\n#### 也可以配置gfcli.build\n\n在cofig.toml上配置\n\n```toml\n[gfcli]\n    [gfcli.build]\n        name     = \"GenCode-GfEasy\"\n        arch     = \"all\"\n        system   = \"all\"\n        mod      = \"none\"\n        cgo      = 0\n        pack     = \"template\"\n        version  = \"v1.0.0\"\n        output   = \"./bin\"\n        extra    = \"\"\n```\n\n再运行\n\n```shell\ngf build\n```\n\n会生成所有平台的可执行文件,到./bin\n\n![img100.png](screenshot/img100.png)\n\n**注：**\n一般选择amd64。你可以运行go env 查看到你本机是哪个，自己选择那个\n\ndarwin=\u003emac\n\nlinux=\u003elinux\n\nwindows=\u003ewindows\n\n------\n## 后台前端Vue\n\n**必须安装：**\n\n操作系统上安装了 Node.js（\u003e = 12.1.0）、@vue/cli。\n\n我用的是node 是14.17.6\n\n---\n\n```shell\nnpm install -g @vue/cli\nnpm install -g yarn\n```\n\n解决 `node-sass` 网络慢的方法：\n\n```shell\nyarn config set sass-binary-site http://npm.taobao.org/mirrors/node-sass\n```\n\n然后下载仓库\n\n```shell\n#克隆仓库\ngit clone https://gitee.com/jasonlaw1015/GfEasyAdmin.git\n#或者\ngit clone https://github.com/jasonLaw1015/GfEasyAdmin.git\n```\n\n安装依赖\n\n```shell\n#GfEasyAdmin目录下,运行下面命令安装依赖\nyarn\n#或者\nnpm i\n```\n\n安装过程完成后，运行以下命令启动服务。您可以在浏览器中预览网站 [http://localhost:8000](http://localhost:8000)\n\n```shell\nyarn dev\n```\n\n```shell\nyarn dev\n#或者\nnpm run dev\n```\n\n格式化代码\n请在vscode安装eslint、vetur插件\n\n```shell\nyarn lint:eslint\n```\n\n打包构建\n\n```shell\n#会在dist目录生成，此目录就是生产环境所运行的\nyarn build\n```\n\n访问\n\n[http://localhost:8000](http://localhost:8000)\n\n\n![img_2.png](screenshot/screenshot2/img_2.png)\n\n账号密码：admin/123456\n\n-----\n\n拥有基于角色的权限控制模型RBAC\n\n![img.png](screenshot/screenshot2/img.png)\n\n![img_4.png](screenshot/screenshot2/img_4.png)\n\n\n\n## 代码生成操作【重要】\n### 前提条件，下载代码生成核心部件。\n\n**地址:**\n\nhttps://www.yuque.com/docs/share/3e714752-0de1-43e2-96e4-461f4e74fc93?# 《代码生成模块》\n\n下载适合自己系统的版本，然后点击运行即可【这步是生成代码的前提条件，必须运行】\n\n运行结果：\n出现以下截图即正确\n\n![genCodeLog.png](screenshot/genCodeLog.png)\n\n#### 知识讲解：\n\n##### GOOS : 目标平台\n\nmac 对应 darwin\nlinux 对应 linux\nwindows 对应 windows\n\n##### GOARCH ：目标平台的体系架构【386，amd64,arm】, 目前市面上的个人电脑一般都是amd64架构的\n386 也称 x86 对应 32位操作系统\namd64 也称 x64 对应 64位操作系统\narm 这种架构一般用于嵌入式开发。 比如 Android ， IOS ， Win mobile , TIZEN 等\n\n### 界面操作\n进入系统-》/核心工具/代码生成工具\n\n![img_5.png](screenshot/screenshot2/img_5.png)\n\n然后按步骤123，配置相关参数\n步骤1：配置所需要环境参数\n-----\n**注意：**\n\n下图的生成代码目录的是mac端的，\nwindows端要写成\\，反斜杠。\n\n如：D:\\develop\\go\\src\\gitee.com\\jasonLaw1015\\GfEasyAdmin\\\n\n-------\n![img.png](screenshot/screenshot2/代码生成配置1.png)\n\n步骤2：检测下步骤1的数据是否可行\n\n![img_16.png](screenshot/img_16.png)\n\n步骤3：开始生成代码\n\n![img_17.png](screenshot/img_17.png)\n\n确认后：\n\n将在GfEasy生成以下文件\n\n```shell\napp/controller/Admin/DemoGo.go\napp/controller/Api/DemoGo.go\napp/model/DemoGoModel/DemoGo.go\napp/service/DemoGoService/DemoGo.go\nrouter/adminRouter.go\nrouter/apiRouter.go\n```\n\n![img_7.png](screenshot/screenshot2/img_7.png)\n\n将在GfEasyAdmin生成，（前端生成代码都会在GfEasyAdmin/src/cool/modules/genCode下）\n\n```shell\nGfEasyAdmin/src/cool/modules/genCode/dict/demoGo.ts\nGfEasyAdmin/src/cool/modules/genCode/service/demoGo.ts\nGfEasyAdmin/src/cool/modules/genCode/views/demoGo.vue\n```\n\n![img_8.png](screenshot/screenshot2/img_8.png)\n并自动生成权限和菜单加入前端路由，下图\n\n![img_9.png](screenshot/screenshot2/img_9.png)\n\n**注意：**\n\n生成的代码会在自动格式化代码。如果不行，那自己yarn lint:eslint、 gofmt；\ngo不会热更新，请自己手动run一下\n\n# 二、基础知识\n\n## 举例\n\n比如，建一个demo_go表；\n\n![img_10.png](screenshot/screenshot2/img_10.png)\n\n```bigquery\nCREATE TABLE `demo_go` (\n  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',\n  `createTime` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT '创建时间',\n  `updateTime` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) COMMENT '更新时间',\n  `title` varchar(255) NOT NULL COMMENT '标题',\n  `subTitle` varchar(255) DEFAULT NULL COMMENT '副标题##IsSearchParams',\n  `pic` varchar(255) NOT NULL COMMENT '商品主图',\n  `types` tinyint(4) NOT NULL COMMENT '类型#1:上架,2:下架',\n  `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态#1:启用,2:禁用',\n  `tupian` varchar(300) DEFAULT NULL COMMENT '图片##IsPicColumn',\n  `other` tinyint(4) DEFAULT NULL COMMENT '其他状态#1:已激活,2:未激活#IsDictColumn,IsSearchParams',\n  `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',\n  PRIMARY KEY (`id`),\n  KEY `IDX_d8d0d86a0adf1001ce12aaac41` (`createTime`),\n  KEY `IDX_9fe44721d1e517fa24383db56b` (`updateTime`),\n  FULLTEXT KEY `IDX_91f50fa9907d5ac2c864f175bb` (`title`,`subTitle`) /*!50100 WITH PARSER `ngram` */ \n) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='示例go';\n```\n\n代码生成器会自动判断字段类型，生成对应的go类型，生成对应的结构体，如下\n![img.png](screenshot/img1.png)\n\n\n---------\n\n### go端：\n\n\n| mysql 字段类型 | go类型      |\n| ---------------- | ------------- |\n| varchar        | string      |\n| int            | int         |\n| DATETIME       | *gtime.Time |\n| ...            | ...         |\n\n--------\n\n### vue端：\n\n会判断字段，然后确认其使用哪个前端组件来处理该字段。\n\n如：el-input、el-input-number、el-radio-group、cl-upload-space-preview\n\n\n---------\n\n## 2.1、定义表字段规则：\n\n--------\n\n### 默认规则：\n\n1.设计数据字段，主键字段名必须是id;\n\n2.创建时间和更新时间的字段名，可以自定义。但最好使用createTime.updateTime;\n\n3.默认查询条件字段是：\ntypes  status  name title state\n\n其中name title 用关键字模糊查询\n\n4.图片字段是：\npic pics picture img image images\n\n5.字典字段是：\ntypes status\n\n**注意：**\n字典字段，必须在comment处写上对应字典键值对，而且必须在第一个#号后面。字段comment处理通过#处理的\n\n**如：`types` tinyint(4) NOT NULL COMMENT '类型#1:上架,2:下架',**\n\n`1:上架,2:下架` 会转化成 下图\n\n![img_1.png](screenshot/img_1.png)\n\n在后台UI显示如下图：\n\n![img_2.png](screenshot/img_2.png)\n\n6.排序字段： sort orderNum\n\n7.外键名要写全且是小驼峰。如base_a、base_b，a表和b表关联的话。b表中外键字段名必须为baseAId。否则前端ui的select组件不生效\n\n-------\n\n### 指定规则：\n\n**有些数据库设计，有时我不想使用上述提供的字段名。为提高灵活性，特意提供了指定标识，\n只要在comment里加入对应标识，系统就会自动帮你处理成你想要的字段。**\n\n**这些标识要写在第二个#号后面。如：其他状态#1:已激活,2:未激活#IsDictColumn,IsSearchParams**\n\n\n| 标识                        | 描述                                                                                                       | 具体                               |\n| ----------------------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------ |\n| IsSearchParams              | 主要是list接口的条件使用                                                                                   | ![img_3.png](screenshot/img_3.png) |\n| IsKeyWordParams             | 主要是page接口的条件使用,用于模糊查询                                                                      | ![img_4.png](screenshot/img_4.png) |\n| IsDictColumn,IsSearchParams | IsDictColumn往往是要跟IsSearchParams一起使用。如：`其他状态#1:已激活,2:未激活#IsDictColumn,IsSearchParams` | ![img_5.png](screenshot/img_5.png) |\n| IsNumberColumn              | 该字段是数值类型，前端部分会使用el-input-number来处里该字段                                                | ![img_6.png](screenshot/img_6.png) |\n| IsPicColumn                 | 该字段是图片类型，前端部分会使用cl-upload-space-preview来处里该字段                                        | ![img_7.png](screenshot/img_7.png)|\n\n**特别提醒：尽量不要用type来做字段名，否则生成的go代码有可能会出问题。因为type是go语法的关键字。目前我是用types代替。其他go关键字也是如此**\n\n\n-------\n\n## 2.2、定时任务的使用：\n\n新增定时任务逻辑\n在app/task文件夹下，新增方法即可\n\n![img_11.png](screenshot/screenshot2/img_11.png)\n\n然后在后台=》任务管理/任务列表\n\n![img_22.png](screenshot/img_22.png)\n\n在service就可以看到刚刚写的GoodsTask。\n\n只要在package Task下写方法都可以在这里选择使用\n\n--------\n\n# 三、采用技术的相关使用文档\n\n**GoFrame:**  https://goframe.org/pages/viewpage.action?pageId=1114203\n\n**cool-admin-vue:** https://www.cool-js.com/front/vue3-vite.html\n\n**ElementPlus:** https://element-plus.org/#/zh-CN/component/radio\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FjasonLaw1015%2FGfEasy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FjasonLaw1015%2FGfEasy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FjasonLaw1015%2FGfEasy/lists"}