- 新增 Pagination 通用组件:首页/上一页/页码/下一页/末页导航 - PickModal 和 SwapModal 集成分页功能,每页20项 - 搜索/筛选切换自动回到第1页 - 现代化CSS样式:hover浮起动效、主色高亮、移动端适配 - 新增 dashboard、admin 管理模板 - 菜系(cuisine)模型和迁移 - 构建脚本 build.py 支持 PyInstaller 打包 - 前端资源重新构建
82 lines
2.9 KiB
Plaintext
82 lines
2.9 KiB
Plaintext
; Inno Setup script for 学校订餐菜单生成器
|
|
; Build with: iscc school-meal-setup.iss
|
|
; Prerequisites: Inno Setup 6.x (https://jrsoftware.org/isinfo.php)
|
|
;
|
|
; This script packages the PyInstaller output (dist/school-meal/) into a
|
|
; standard Windows installer with Start Menu shortcuts and uninstall support.
|
|
|
|
[Setup]
|
|
AppId={{B7E3A4F1-5D92-4C8A-9F6E-2A1B3C4D5E6F}
|
|
AppName=学校订餐菜单生成器
|
|
AppVersion=1.0.0
|
|
AppPublisher=学校食堂管理
|
|
AppPublisherURL=
|
|
DefaultDirName={autopf}\学校订餐菜单生成器
|
|
DefaultGroupName=学校订餐菜单生成器
|
|
OutputDir=installer
|
|
OutputBaseFilename=学校订餐菜单生成器-安装包
|
|
SetupIconFile=app.ico
|
|
Compression=lzma2/ultra64
|
|
SolidCompression=yes
|
|
WizardStyle=modern
|
|
PrivilegesRequired=lowest
|
|
PrivilegesRequiredOverridesAllowed=dialog
|
|
ArchitecturesAllowed=x64compatible
|
|
ArchitecturesInstallIn64BitMode=x64compatible
|
|
CloseApplications=force
|
|
RestartApplications=no
|
|
DisableProgramGroupPage=yes
|
|
UninstallDisplayIcon={app}\app.ico
|
|
LicenseFile=
|
|
|
|
[Languages]
|
|
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"
|
|
Name: "english"; MessagesFile: "compiler:Default.isl"
|
|
|
|
[Tasks]
|
|
Name: "desktopicon"; Description: "创建桌面快捷方式"; GroupDescription: "附加选项:"; Flags: checkedonce
|
|
|
|
[Files]
|
|
; Main executable
|
|
Source: "dist\school-meal\school-meal.exe"; DestDir: "{app}"; Flags: ignoreversion
|
|
; Database template (always updated — user data lives in %LOCALAPPDATA%)
|
|
Source: "dist\school-meal\db.sqlite3"; DestDir: "{app}"; Flags: ignoreversion uninsneveruninstall
|
|
; All runtime dependencies
|
|
Source: "dist\school-meal\_internal\*"; DestDir: "{app}\_internal"; Flags: ignoreversion recursesubdirs createallsubdirs
|
|
; Application icon (referenced by shortcuts and uninstall)
|
|
Source: "app.ico"; DestDir: "{app}"; Flags: ignoreversion
|
|
|
|
[Icons]
|
|
Name: "{group}\学校订餐菜单生成器"; Filename: "{app}\school-meal.exe"; IconFilename: "{app}\app.ico"
|
|
Name: "{group}\卸载 学校订餐菜单生成器"; Filename: "{uninstallexe}"; IconFilename: "{app}\app.ico"
|
|
Name: "{autodesktop}\学校订餐菜单生成器"; Filename: "{app}\school-meal.exe"; Tasks: desktopicon; IconFilename: "{app}\app.ico"
|
|
|
|
[Run]
|
|
Filename: "{app}\school-meal.exe"; Description: "启动 菜单生成器"; Flags: nowait postinstall skipifsilent
|
|
|
|
[Code]
|
|
// Check if school-meal is already running before install/uninstall
|
|
function InitializeSetup: Boolean;
|
|
var
|
|
ResultCode: Integer;
|
|
begin
|
|
Result := True;
|
|
Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
end;
|
|
|
|
function InitializeUninstall: Boolean;
|
|
var
|
|
ResultCode: Integer;
|
|
begin
|
|
Result := True;
|
|
Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
end;
|
|
|
|
function PrepareToInstall(var NeedsRestart: Boolean): String;
|
|
var
|
|
ResultCode: Integer;
|
|
begin
|
|
Result := '';
|
|
Exec('taskkill', '/F /IM school-meal.exe', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
|
|
end;
|