GUHTemplate 1.0.1

dotnet new install GUHTemplate@1.0.1
                    
This package contains a .NET Template Package you can call from the shell/command line.

ZHFVWpfApp

概述

本项目作为通用上位机测试软件的初始模板项目,使用时直接拉取master分支作为新项目的基础框架,拉取后需要先去修改项目名称为你所需项目的名称(也可以直接使用它,但不建议)

  • 拉取master直接使用,支持

  • 通过dotnet new 获取公共NuGet方式,支持

框架说明

  • 采用WPF UI 4.0.0版本Fluent风格框架(自编译和官方略有不一样),也可直接使用官方包

  • MVVM框架使用 CommunityToolkit.Mvvm 8.2.1版本

  • 数据库采用SQlite ,对应System.Data.SQLite 2.0.2

  • ORM采用Dapper 2.1.66版本

  • 日志采用NLOG 6.0.6

  • 对象映射器:AutoMapper 9.0.0

  • 支持菜单和用户权限

  • 支持日志查看

架构图

graph TD
A[数据库版本选择] --> B[登录]
    B --> C[自检]
    C --> D[主页面] 
    D --> |权限| E[权限管理]
    D --> |用户| F[用户管理]
    D --> |日志| G[日志管理]

必须条件

拷贝config文件夹整体到执行文件同级目录下

SQL脚本

数据版本

--
-- SQLiteStudio v3.4.8 生成的文件,周三 11月 26 14:18:36 2025
--
-- 所用的文本编码:System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;

-- 表:ICDVersion
DROP TABLE IF EXISTS ICDVersion;

CREATE TABLE IF NOT EXISTS ICDVersion (
    Id      INTEGER NOT NULL,
    IcdName TEXT    NOT NULL,
    Version TEXT    NOT NULL
                    UNIQUE,
    IcdPath TEXT    NOT NULL
                    UNIQUE,
    Excerpt TEXT,
    Remark  TEXT
);

INSERT INTO ICDVersion (
                           Id,
                           IcdName,
                           Version,
                           IcdPath,
                           Excerpt,
                           Remark
                       )
                       VALUES (
                           1,
                           'WPF.DB',
                           '1',
                           'D:\Project\ZHFVWpfApp\ZHFVWpf.UI\bin\x64\Debug\config\WPF.DB',
                           '引用的外部ICD文件',
                           ''
                       );


COMMIT TRANSACTION;
PRAGMA foreign_keys = on;

用户脚本

--
-- SQLiteStudio v3.4.8 生成的文件,周三 11月 26 14:20:24 2025
--
-- 所用的文本编码:System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;

-- 表:Users
DROP TABLE IF EXISTS Users;

CREATE TABLE IF NOT EXISTS Users (
    Id       INTEGER PRIMARY KEY AUTOINCREMENT,
    UserName TEXT    NOT NULL,
    Password TEXT    NOT NULL,
    Role     TEXT    NOT NULL,
    RoleId   INTEGER NOT NULL
                     DEFAULT (1) 
);

INSERT INTO Users (
                      Id,
                      UserName,
                      Password,
                      Role,
                      RoleId
                  )
                  VALUES (
                      1,
                      'admin',
                      'admin',
                      'Admin',
                      1
                  );

INSERT INTO Users (
                      Id,
                      UserName,
                      Password,
                      Role,
                      RoleId
                  )
                  VALUES (
                      2,
                      'user',
                      'user',
                      'User',
                      2
                  );

INSERT INTO Users (
                      Id,
                      UserName,
                      Password,
                      Role,
                      RoleId
                  )
                  VALUES (
                      161,
                      'test001',
                      'test',
                      'Guest',
                      0
                  );


COMMIT TRANSACTION;
PRAGMA foreign_keys = on;

角色

 --
-- SQLiteStudio v3.4.8 生成的文件,周三 11月 26 14:21:29 2025
--
-- 所用的文本编码:System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;

-- 表:Roles
DROP TABLE IF EXISTS Roles;

CREATE TABLE IF NOT EXISTS Roles (
    Id       INTEGER PRIMARY KEY AUTOINCREMENT,
    RoleName TEXT    NOT NULL,
    Remark   TEXT
);

INSERT INTO Roles (
                      Id,
                      RoleName,
                      Remark
                  )
                  VALUES (
                      1,
                      'Admin',
                      NULL
                  );

INSERT INTO Roles (
                      Id,
                      RoleName,
                      Remark
                  )
                  VALUES (
                      2,
                      'User',
                      NULL
                  );

INSERT INTO Roles (
                      Id,
                      RoleName,
                      Remark
                  )
                  VALUES (
                      3,
                      'Guest',
                      NULL
                  );


COMMIT TRANSACTION;
PRAGMA foreign_keys = on;

菜单脚本

--
-- SQLiteStudio v3.4.8 生成的文件,周三 11月 26 14:20:00 2025
--
-- 所用的文本编码:System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;

-- 表:MenuItems
DROP TABLE IF EXISTS MenuItems;

CREATE TABLE IF NOT EXISTS MenuItems (
    Id          INTEGER PRIMARY KEY ASC AUTOINCREMENT,
    Name        TEXT    NOT NULL,
    DisplayName TEXT    NOT NULL,
    OrderIndex  INTEGER DEFAULT 0,
    ParentId    INTEGER,
    PageType    TEXT,
    Icon        TEXT,
    IsDisplay   INTEGER NOT NULL
                        DEFAULT (1) 
);

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          1,
                          'MenuManager1',
                          '菜单管理1',
                          0,
                          NULL,
                          NULL,
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          2,
                          'MenuManager2',
                          '菜单管理2',
                          1,
                          NULL,
                          NULL,
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          3,
                          'MenuManager3',
                          '菜单管理3',
                          2,
                          NULL,
                          NULL,
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          4,
                          'MenuManager4',
                          '菜单管理4',
                          3,
                          NULL,
                          NULL,
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          5,
                          'MenuManager5',
                          '菜单管理5',
                          4,
                          NULL,
                          NULL,
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          44,
                          'MMC1',
                          '菜单管理子项',
                          0,
                          1,
                          NULL,
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          45,
                          'MMC2',
                          '菜单管理2子项',
                          0,
                          2,
                          'ZHFVWpf.UI.Views.Pages.TestAutoPage',
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          46,
                          'MMC3',
                          '菜单管理3子项',
                          0,
                          3,
                          'ZHFVWpf.UI.Views.Pages.TestAutoPage',
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          47,
                          'MMC4',
                          '菜单管理4子项',
                          0,
                          4,
                          'ZHFVWpf.UI.Views.Pages.TestAutoPage',
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          48,
                          'MMC5',
                          '菜单管理5子项',
                          0,
                          5,
                          'ZHFVWpf.UI.Views.Pages.TestAutoPage',
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          49,
                          'MMC1',
                          '菜单管理1子项',
                          0,
                          44,
                          'ZHFVWpf.UI.Views.Pages.TestAutoPage',
                          'SymbolRegular.Mention24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          50,
                          'AuthorityManagement
',
                          '权限管理',
                          5,
                          NULL,
                          NULL,
                          'SymbolRegular.BookContacts24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          51,
                          'UserManagement',
                          '用户管理',
                          6,
                          NULL,
                          NULL,
                          'SymbolRegular.Accessibility24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          52,
                          'Authority',
                          '权限列表',
                          0,
                          50,
                          'ZHFVWpf.UI.Views.Pages.RoleManagementPage',
                          'SymbolRegular.BookContacts24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          53,
                          'User',
                          '用户列表',
                          0,
                          51,
                          'ZHFVWpf.UI.Views.Pages.UserManagementPage',
                          'SymbolRegular.Accessibility24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          54,
                          'LogManagment',
                          '日志管理',
                          7,
                          NULL,
                          NULL,
                          'SymbolRegular.TextT24',
                          1
                      );

INSERT INTO MenuItems (
                          Id,
                          Name,
                          DisplayName,
                          OrderIndex,
                          ParentId,
                          PageType,
                          Icon,
                          IsDisplay
                      )
                      VALUES (
                          55,
                          'Logger',
                          '日志列表',
                          0,
                          54,
                          'ZHFVWpf.UI.Views.Pages.LoggerPage',
                          'SymbolRegular.TextT24',
                          1
                      );


COMMIT TRANSACTION;
PRAGMA foreign_keys = on;

角色菜单

--
-- SQLiteStudio v3.4.8 生成的文件,周三 11月 26 14:21:59 2025
--
-- 所用的文本编码:System
--
PRAGMA foreign_keys = off;
BEGIN TRANSACTION;

-- 表:RoleMenu
DROP TABLE IF EXISTS RoleMenu;

CREATE TABLE IF NOT EXISTS RoleMenu (
    Id     INTEGER PRIMARY KEY AUTOINCREMENT,
    Role   TEXT    NOT NULL,
    MenuId INTEGER NOT NULL,
    RoleId INTEGER
);

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         1,
                         'Admin',
                         1,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         2,
                         'Admin',
                         2,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         3,
                         'Admin',
                         3,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         4,
                         'Admin',
                         4,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         5,
                         'Admin',
                         5,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         6,
                         'Admin',
                         45,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         7,
                         'Admin',
                         46,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         8,
                         'Admin',
                         47,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         9,
                         'Admin',
                         48,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         10,
                         'Admin',
                         44,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         11,
                         'Admin',
                         49,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         12,
                         'Admin',
                         50,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         13,
                         'Admin',
                         51,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         14,
                         'Admin',
                         52,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         15,
                         'Admin',
                         53,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         16,
                         'Admin',
                         54,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         17,
                         'Admin',
                         55,
                         1
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         894,
                         'User',
                         1,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         895,
                         'User',
                         44,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         896,
                         'User',
                         49,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         897,
                         'User',
                         2,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         898,
                         'User',
                         45,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         899,
                         'User',
                         3,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         900,
                         'User',
                         46,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         901,
                         'User',
                         4,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         902,
                         'User',
                         47,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         903,
                         'User',
                         5,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         904,
                         'User',
                         48,
                         2
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         908,
                         'Guest',
                         1,
                         3
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         909,
                         'Guest',
                         44,
                         3
                     );

INSERT INTO RoleMenu (
                         Id,
                         Role,
                         MenuId,
                         RoleId
                     )
                     VALUES (
                         910,
                         'Guest',
                         49,
                         3
                     );


COMMIT TRANSACTION;
PRAGMA foreign_keys = on;

代码贡献

  • .NETFramework 4.7.2

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 263 11/26/2025
1.0.0 344 11/26/2025 1.0.0 is deprecated because it has critical bugs.