init: 数字员工平台初始代码

包含前端(Vue3 + VueFlow 画布)、后端(Go)、文档体系。
- 工作台画布:节点拖放、连线模式、右键菜单、AI 助手
- 后端:连接器 API、专员种子数据
- 导航:左侧导航、工坊、市场、控制台
This commit is contained in:
eaiadmin
2026-08-18 20:19:58 +08:00
commit 4e8817d768
239 changed files with 48631 additions and 0 deletions
+62
View File
@@ -0,0 +1,62 @@
package main
import (
"log"
"os"
"github.com/gin-gonic/gin"
"eaisalestrain/backend/internal/api"
"eaisalestrain/backend/internal/auth"
"eaisalestrain/backend/internal/config"
"eaisalestrain/backend/internal/model"
"eaisalestrain/backend/internal/store"
)
func main() {
// 交付维护子命令(不进服务主流程)
if len(os.Args) > 1 {
switch os.Args[1] {
case "-reset-admin":
resetAdmin(os.Args[2:])
return
}
}
cfg := config.Load()
if _, err := store.Init(cfg.DBPath); err != nil {
log.Fatalf("数据库初始化失败: %v", err)
}
if err := store.SeedDefaults(); err != nil {
log.Fatalf("种子数据初始化失败: %v", err)
}
r := gin.Default()
api.RegisterRoutes(r, cfg)
log.Printf("eaisalestrain 后端启动,端口 :%s", cfg.Port)
if err := r.Run(":" + cfg.Port); err != nil {
log.Fatalf("启动失败: %v", err)
}
}
// resetAdmin 交付前重置管理员密码:eaisalestrain-server -reset-admin <新密码>
func resetAdmin(args []string) {
if len(args) < 1 || args[0] == "" {
log.Fatal("用法: eaisalestrain-server -reset-admin <新密码>")
}
cfg := config.Load()
if _, err := store.Init(cfg.DBPath); err != nil {
log.Fatalf("数据库初始化失败: %v", err)
}
hash, err := auth.HashPassword(args[0])
if err != nil {
log.Fatalf("密码加密失败: %v", err)
}
if err := store.DB.Model(&model.User{}).Where("username = ?", "admin").Update("password_hash", hash).Error; err != nil {
log.Fatalf("重置密码失败: %v", err)
}
log.Println("[OK] 管理员密码已重置")
}