From f191601ab4c8e5e3d737f3fd0c8f16c405ad89fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?pixelMax=28=E5=A5=87=E6=B7=BC?= Date: Thu, 24 Oct 2024 18:01:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0AddFunc=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=A1=AB=E5=85=85=E6=96=B9=E6=B3=95=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/api/v1/system/auto_code_template.go | 11 +- server/model/system/request/sys_auto_code.go | 5 + server/service/system/auto_code_template.go | 26 +++++ web/src/main.js | 2 +- .../autoCode/component/previewCodeDialg.vue | 3 +- .../view/systemTools/autoCodeAdmin/index.vue | 104 +++++++++++++++++- 6 files changed, 145 insertions(+), 6 deletions(-) diff --git a/server/api/v1/system/auto_code_template.go b/server/api/v1/system/auto_code_template.go index 18a5b9b5e..7592eb5c8 100644 --- a/server/api/v1/system/auto_code_template.go +++ b/server/api/v1/system/auto_code_template.go @@ -98,11 +98,20 @@ func (a *AutoCodeTemplateApi) AddFunc(c *gin.Context) { response.FailWithMessage(err.Error(), c) return } - err = autoCodeTemplateService.AddFunc(info) + var tempMap map[string]string + if info.IsPreview { + tempMap, err = autoCodeTemplateService.GetApiAndServer(info) + } else { + err = autoCodeTemplateService.AddFunc(info) + } if err != nil { global.GVA_LOG.Error("注入失败!", zap.Error(err)) response.FailWithMessage("注入失败", c) } else { + if info.IsPreview { + response.OkWithDetailed(tempMap, "注入成功", c) + return + } response.OkWithMessage("注入成功", c) } } diff --git a/server/model/system/request/sys_auto_code.go b/server/model/system/request/sys_auto_code.go index 157837870..a32900826 100644 --- a/server/model/system/request/sys_auto_code.go +++ b/server/model/system/request/sys_auto_code.go @@ -252,6 +252,11 @@ type AutoFunc struct { Method string `json:"method"` // 方法 IsPlugin bool `json:"isPlugin"` // 是否插件 IsAuth bool `json:"isAuth"` // 是否鉴权 + IsPreview bool `json:"isPreview"` // 是否预览 + IsAi bool `json:"isAi"` // 是否AI + ApiFunc string `json:"apiFunc"` // API方法 + ServeFunc string `json:"serveFunc"` // 服务方法 + JsFunc string `json:"jsFunc"` // JS方法 } type InitMenu struct { diff --git a/server/service/system/auto_code_template.go b/server/service/system/auto_code_template.go index 542072ec7..fb0c55c1a 100644 --- a/server/service/system/auto_code_template.go +++ b/server/service/system/auto_code_template.go @@ -290,6 +290,32 @@ func (s *autoCodeTemplate) AddFunc(info request.AutoFunc) error { return nil } +func (s *autoCodeTemplate) GetApiAndServer(info request.AutoFunc) (map[string]string, error) { + autoPkg := model.SysAutoCodePackage{} + err := global.GVA_DB.First(&autoPkg, "package_name = ?", info.Package).Error + if err != nil { + return nil, err + } + if autoPkg.Template != "package" { + info.IsPlugin = true + } + + apiStr, err := s.getTemplateStr("api.go", info) + if err != nil { + return nil, err + } + serverStr, err := s.getTemplateStr("server.go", info) + if err != nil { + return nil, err + } + jsStr, err := s.getTemplateStr("api.js", info) + if err != nil { + return nil, err + } + return map[string]string{"api": apiStr, "server": serverStr, "js": jsStr}, nil + +} + func (s *autoCodeTemplate) getTemplateStr(t string, info request.AutoFunc) (string, error) { tempPath := filepath.Join(global.GVA_CONFIG.AutoCode.Root, global.GVA_CONFIG.AutoCode.Server, "resource", "function", t+".tpl") files, err := template.ParseFiles(tempPath) diff --git a/web/src/main.js b/web/src/main.js index 766c970d1..8f43f06ad 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -13,7 +13,7 @@ import run from '@/core/gin-vue-admin.js' import auth from '@/directive/auth' import { store } from '@/pinia' import App from './App.vue' -//消除警告 +// 消除警告 import 'default-passive-events' const app = createApp(App) diff --git a/web/src/view/systemTools/autoCode/component/previewCodeDialg.vue b/web/src/view/systemTools/autoCode/component/previewCodeDialg.vue index ed582332a..27867e9e8 100644 --- a/web/src/view/systemTools/autoCode/component/previewCodeDialg.vue +++ b/web/src/view/systemTools/autoCode/component/previewCodeDialg.vue @@ -9,7 +9,7 @@
+ >
@@ -34,7 +34,6 @@ const createKey = [ "router", "initialize", "gen.go", - ] onMounted(() => { diff --git a/web/src/view/systemTools/autoCodeAdmin/index.vue b/web/src/view/systemTools/autoCodeAdmin/index.vue index 6222479e2..88942fb25 100644 --- a/web/src/view/systemTools/autoCodeAdmin/index.vue +++ b/web/src/view/systemTools/autoCodeAdmin/index.vue @@ -203,6 +203,36 @@
API路径: [{{ autoFunc.method }}] /{{ autoFunc.abbreviation }}/{{ autoFunc.router }}
+ + + 当前ai帮写存在不稳定因素,生成代码后请注意手动调整部分内容 + + @@ -210,12 +240,17 @@