windows

package
v0.0.0-...-1f1a93d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidData = &WindowError{Code: "INVALID_DATA", Message: "Invalid window data"}
)

Errors

Functions

func RunApprovalWindow

func RunApprovalWindow(windowID string, data *ApprovalWindowData, wsClient *websocket.WebSocketClient) error

RunApprovalWindow 运行审批窗口(真正的 Wails 窗口实现)

func RunDashboardWindow

func RunDashboardWindow(windowID string, data *DashboardWindowData, wsClient *websocket.WebSocketClient) error

RunDashboardWindow runs the Dashboard as a Wails window.

func RunHeadlessWindow

func RunHeadlessWindow(windowID string, data *ApprovalWindowData, wsClient *websocket.WebSocketClient) error

RunHeadlessWindow 运行无窗口模式(用于测试通信流程)

Types

type ApprovalApp

type ApprovalApp struct {
	// contains filtered or unexported fields
}

ApprovalApp 审批窗口 Wails 应用

func NewApprovalApp

func NewApprovalApp(window *ApprovalWindow) *ApprovalApp

NewApprovalApp 创建审批应用

func (*ApprovalApp) Bind

func (a *ApprovalApp) Bind() []interface{}

Bind 返回绑定

func (*ApprovalApp) DomReady

func (a *ApprovalApp) DomReady(ctx context.Context)

DomReady DOM 准备完成

func (*ApprovalApp) Shutdown

func (a *ApprovalApp) Shutdown(ctx context.Context)

Shutdown 关闭应用

func (*ApprovalApp) Startup

func (a *ApprovalApp) Startup(ctx context.Context) error

Startup 启动应用

type ApprovalBindings

type ApprovalBindings struct {
	// contains filtered or unexported fields
}

ApprovalBindings 审批窗口绑定

func (*ApprovalBindings) CloseWindow

func (b *ApprovalBindings) CloseWindow()

CloseWindow 关闭窗口

func (*ApprovalBindings) GetContext

func (b *ApprovalBindings) GetContext() map[string]string

GetContext 获取上下文

func (*ApprovalBindings) GetOperation

func (b *ApprovalBindings) GetOperation() string

GetOperation 获取操作类型

func (*ApprovalBindings) GetOperationName

func (b *ApprovalBindings) GetOperationName() string

GetOperationName 获取操作显示名称

func (*ApprovalBindings) GetReason

func (b *ApprovalBindings) GetReason() string

GetReason 获取原因

func (*ApprovalBindings) GetRequestID

func (b *ApprovalBindings) GetRequestID() string

GetRequestID 获取请求 ID

func (*ApprovalBindings) GetRiskLevel

func (b *ApprovalBindings) GetRiskLevel() string

GetRiskLevel 获取风险级别

func (*ApprovalBindings) GetTarget

func (b *ApprovalBindings) GetTarget() string

GetTarget 获取目标

func (*ApprovalBindings) GetTimeout

func (b *ApprovalBindings) GetTimeout() int

GetTimeout 获取超时时间

type ApprovalWindow

type ApprovalWindow struct {
	*WindowBase
	// contains filtered or unexported fields
}

ApprovalWindow 审批窗口

func NewApprovalWindow

func NewApprovalWindow(windowID string, data *ApprovalWindowData, wsClient *websocket.WebSocketClient) *ApprovalWindow

NewApprovalWindow 创建审批窗口

func (*ApprovalWindow) Bind

func (w *ApprovalWindow) Bind() []interface{}

Bind 返回绑定结构

func (*ApprovalWindow) Startup

func (w *ApprovalWindow) Startup(ctx context.Context) error

Startup 启动窗口

func (*ApprovalWindow) SubmitApproval

func (w *ApprovalWindow) SubmitApproval(approved bool, reason string) error

SubmitApproval 提交审批决定

type ApprovalWindowData

type ApprovalWindowData struct {
	RequestID      string            `json:"request_id"`
	Operation      string            `json:"operation"`
	OperationName  string            `json:"operation_name"`
	Target         string            `json:"target"`
	RiskLevel      string            `json:"risk_level"`
	Reason         string            `json:"reason"`
	TimeoutSeconds int               `json:"timeout_seconds"`
	Context        map[string]string `json:"context"`
	Timestamp      int64             `json:"timestamp"`
}

ApprovalWindowData 审批窗口数据

func (*ApprovalWindowData) GetTimeout

func (d *ApprovalWindowData) GetTimeout() int

GetTimeout 获取超时时间

func (*ApprovalWindowData) GetType

func (d *ApprovalWindowData) GetType() string

GetType 获取类型

func (*ApprovalWindowData) Validate

func (d *ApprovalWindowData) Validate() error

Validate 验证数据

type DashboardBindings

type DashboardBindings struct {
	// contains filtered or unexported fields
}

DashboardBindings Dashboard 窗口绑定

func (*DashboardBindings) GetToken

func (b *DashboardBindings) GetToken() string

GetToken 获取 Token

func (*DashboardBindings) GetWebHost

func (b *DashboardBindings) GetWebHost() string

GetWebHost 获取 Web 主机

func (*DashboardBindings) GetWebPort

func (b *DashboardBindings) GetWebPort() int

GetWebPort 获取 Web 端口

type DashboardWindow

type DashboardWindow struct {
	*WindowBase
	// contains filtered or unexported fields
}

DashboardWindow Dashboard 窗口

func NewDashboardWindow

func NewDashboardWindow(windowID string, data *DashboardWindowData, wsClient *websocket.WebSocketClient) *DashboardWindow

NewDashboardWindow 创建 Dashboard 窗口

func (*DashboardWindow) Bind

func (w *DashboardWindow) Bind() []interface{}

Bind 返回绑定结构

func (*DashboardWindow) GetDashboardData

func (w *DashboardWindow) GetDashboardData() *DashboardWindowData

GetData 获取 Dashboard 数据

func (*DashboardWindow) Shutdown

func (w *DashboardWindow) Shutdown(ctx context.Context)

Shutdown 关闭窗口

func (*DashboardWindow) Startup

func (w *DashboardWindow) Startup(ctx context.Context) error

Startup 启动窗口

type DashboardWindowData

type DashboardWindowData struct {
	Token   string `json:"token"`
	WebPort int    `json:"web_port"`
	WebHost string `json:"web_host"`
}

DashboardWindowData Dashboard 窗口数据

func (*DashboardWindowData) GetTimeout

func (d *DashboardWindowData) GetTimeout() int

GetTimeout 获取超时时间(Dashboard 无超时)

func (*DashboardWindowData) GetType

func (d *DashboardWindowData) GetType() string

GetType 获取类型

func (*DashboardWindowData) Validate

func (d *DashboardWindowData) Validate() error

Validate 验证数据

type WindowBase

type WindowBase struct {
	ID       string
	Type     string
	Data     WindowData
	WSClient *websocket.WebSocketClient
	ResultCh chan interface{}
	// contains filtered or unexported fields
}

WindowBase 窗口基类

func NewWindowBase

func NewWindowBase(windowID, windowType string, data WindowData, wsClient *websocket.WebSocketClient) *WindowBase

NewWindowBase 创建窗口基类

func (*WindowBase) Bind

func (w *WindowBase) Bind() []interface{}

Bind 返回绑定结构(由子类重写)

func (*WindowBase) GetData

func (w *WindowBase) GetData() WindowData

GetData 获取窗口数据

func (*WindowBase) GetID

func (w *WindowBase) GetID() string

GetID 获取窗口 ID

func (*WindowBase) GetType

func (w *WindowBase) GetType() string

GetType 获取窗口类型

func (*WindowBase) SendResult

func (w *WindowBase) SendResult(result interface{})

SendResult 发送结果到父进程

func (*WindowBase) SetData

func (w *WindowBase) SetData(data WindowData) error

SetData 设置窗口数据

func (*WindowBase) Shutdown

func (w *WindowBase) Shutdown(ctx context.Context)

Shutdown 关闭窗口

func (*WindowBase) Startup

func (w *WindowBase) Startup(ctx context.Context) error

Startup 启动窗口

type WindowData

type WindowData interface {
	Validate() error
	GetType() string
}

WindowData 窗口数据接口

type WindowError

type WindowError struct {
	Code    string
	Message string
}

WindowError 窗口错误

func (*WindowError) Error

func (e *WindowError) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL