feat: 初始化 Wails + React + Go 桌面应用模板

- Wails v2.16.0 + React 19 + TypeScript + Vite 7
- 插件系统(build tag 控制编译,plugin.json 运行时配置)
- 支付插件(授权、账号、订单、退款、账单)
- 高并发基础设施(任务池、批量处理器、限流器、环形缓冲、管道)
- Windows 系统托盘(Win32 API)
- CodeGraph 索引 + .memory 记忆包
- 默认图标 assets/icon.png
This commit is contained in:
2026-09-17 19:31:17 +08:00
commit 1ea8c9da9c
57 changed files with 6305 additions and 0 deletions

36
frontend/wailsjs/go/main/App.d.ts vendored Normal file
View File

@@ -0,0 +1,36 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import {main} from '../models';
import {context} from '../models';
export function BatchCreateUsers(arg1:Array<string>,arg2:Array<string>):Promise<main.Response>;
export function ClearUsers():Promise<number>;
export function CreateUser(arg1:string,arg2:string):Promise<main.Response>;
export function GetUserList():Promise<Array<main.User>>;
export function PayCheckAuth():Promise<main.Response>;
export function PayGetAccountInfo():Promise<main.Response>;
export function PayGetBill(arg1:number,arg2:number):Promise<main.Response>;
export function PayGetBillByDate(arg1:string,arg2:string):Promise<main.Response>;
export function PayLogin():Promise<main.Response>;
export function PayQueryOrder(arg1:string):Promise<main.Response>;
export function PayQueryOrderByOutNo(arg1:string):Promise<main.Response>;
export function PayRefreshToken():Promise<main.Response>;
export function PayRequestRefund(arg1:string,arg2:number,arg3:string):Promise<main.Response>;
export function Startup(arg1:context.Context):Promise<void>;
export function Stats():Promise<Record<string, any>>;
export function SubmitTask(arg1:string,arg2:string):Promise<main.Response>;

View File

@@ -0,0 +1,67 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export function BatchCreateUsers(arg1, arg2) {
return window['go']['main']['App']['BatchCreateUsers'](arg1, arg2);
}
export function ClearUsers() {
return window['go']['main']['App']['ClearUsers']();
}
export function CreateUser(arg1, arg2) {
return window['go']['main']['App']['CreateUser'](arg1, arg2);
}
export function GetUserList() {
return window['go']['main']['App']['GetUserList']();
}
export function PayCheckAuth() {
return window['go']['main']['App']['PayCheckAuth']();
}
export function PayGetAccountInfo() {
return window['go']['main']['App']['PayGetAccountInfo']();
}
export function PayGetBill(arg1, arg2) {
return window['go']['main']['App']['PayGetBill'](arg1, arg2);
}
export function PayGetBillByDate(arg1, arg2) {
return window['go']['main']['App']['PayGetBillByDate'](arg1, arg2);
}
export function PayLogin() {
return window['go']['main']['App']['PayLogin']();
}
export function PayQueryOrder(arg1) {
return window['go']['main']['App']['PayQueryOrder'](arg1);
}
export function PayQueryOrderByOutNo(arg1) {
return window['go']['main']['App']['PayQueryOrderByOutNo'](arg1);
}
export function PayRefreshToken() {
return window['go']['main']['App']['PayRefreshToken']();
}
export function PayRequestRefund(arg1, arg2, arg3) {
return window['go']['main']['App']['PayRequestRefund'](arg1, arg2, arg3);
}
export function Startup(arg1) {
return window['go']['main']['App']['Startup'](arg1);
}
export function Stats() {
return window['go']['main']['App']['Stats']();
}
export function SubmitTask(arg1, arg2) {
return window['go']['main']['App']['SubmitTask'](arg1, arg2);
}

View File

@@ -0,0 +1,39 @@
export namespace main {
export class Response {
code: number;
message: string;
data?: any;
static createFrom(source: any = {}) {
return new Response(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.code = source["code"];
this.message = source["message"];
this.data = source["data"];
}
}
export class User {
id: number;
name: string;
email: string;
created_at: string;
static createFrom(source: any = {}) {
return new User(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.id = source["id"];
this.name = source["name"];
this.email = source["email"];
this.created_at = source["created_at"];
}
}
}