├── CHANGELOG.md ├── LICENSE ├── README.md ├── Vboot.Application ├── Sa │ └── Agent │ │ └── Main │ │ ├── SaAgentMain.cs │ │ ├── SaAgentMainApi.cs │ │ ├── SaAgentMainService.cs │ │ └── SaAgentMainViewer.cs ├── Vboot.Application.csproj ├── Vboot.Application.xml └── applicationsettings.json ├── Vboot.Core ├── Common │ ├── Cache │ │ ├── CacheOptions.cs │ │ ├── ICache.cs │ │ ├── MemoryCache.cs │ │ └── RedisCache.cs │ ├── Const │ │ ├── ClaimConst.cs │ │ └── CommonConst.cs │ ├── Enum │ │ ├── AdminType.cs │ │ ├── DataOpType.cs │ │ ├── ErrorCode.cs │ │ ├── LoginType.cs │ │ ├── RequestTypeEnum.cs │ │ └── YesOrNot.cs │ ├── Mvc │ │ ├── Api │ │ │ ├── RestPageResult.cs │ │ │ └── RestResultProvider.cs │ │ ├── Db │ │ │ └── Sqler.cs │ │ ├── Dto │ │ │ ├── ZidName.cs │ │ │ ├── Zinp.cs │ │ │ └── Ztree.cs │ │ ├── Entity │ │ │ ├── BaseEntity.cs │ │ │ └── BaseMainEntity.cs │ │ ├── Filter │ │ │ ├── DisableOpLogAttribute.cs │ │ │ ├── LogExceptionHandler.cs │ │ │ ├── MyUnitOfWorkAttribute.cs │ │ │ ├── MyUnitOfWorkFilter.cs │ │ │ └── RequestActionFilter.cs │ │ ├── Manager │ │ │ ├── IUserManager.cs │ │ │ └── UserManager.cs │ │ └── Service │ │ │ ├── BaseMainService.cs │ │ │ └── BaseService.cs │ └── Util │ │ ├── HttpNewUtil.cs │ │ ├── JsonUtil.cs │ │ ├── WeatherUtil.cs │ │ ├── XreqUtil.cs │ │ ├── XstrUtil.cs │ │ └── XuserUtil.cs ├── Module │ ├── Ass │ │ └── Dict │ │ │ ├── Cate │ │ │ ├── AssDictCate.cs │ │ │ ├── AssDictCateApi.cs │ │ │ └── AssDictCateService.cs │ │ │ ├── Data │ │ │ ├── AssDictData.cs │ │ │ ├── AssDictDataApi.cs │ │ │ └── AssDictDataService.cs │ │ │ └── Main │ │ │ ├── AssDictMain.cs │ │ │ ├── AssDictMainApi.cs │ │ │ └── AssDictMainService.cs │ ├── Bpm │ │ ├── Audit │ │ │ └── Main │ │ │ │ ├── BpmAuditMain.cs │ │ │ │ └── BpmAuditMainService.cs │ │ ├── Node │ │ │ ├── Hist │ │ │ │ ├── BpmNodeHist.cs │ │ │ │ └── BpmNodeHistService.cs │ │ │ └── Main │ │ │ │ ├── BpmNodeMain.cs │ │ │ │ └── BpmNodeMainService.cs │ │ ├── Proc │ │ │ ├── Main │ │ │ │ ├── BpmProcMain.cs │ │ │ │ ├── BpmProcMainApi.cs │ │ │ │ ├── BpmProcMainHand.cs │ │ │ │ ├── BpmProcMainService.cs │ │ │ │ ├── Zbpm.cs │ │ │ │ └── Znode.cs │ │ │ ├── Param │ │ │ │ ├── BpmProcParam.cs │ │ │ │ └── BpmProcParamService.cs │ │ │ └── Temp │ │ │ │ ├── BpmProcTemp.cs │ │ │ │ ├── BpmProcTempApi.cs │ │ │ │ ├── BpmProcTempHand.cs │ │ │ │ └── BpmProcTempService.cs │ │ └── Task │ │ │ ├── Hist │ │ │ ├── BpmTaskHist.cs │ │ │ └── BpmTaskHistService.cs │ │ │ └── Main │ │ │ ├── BpmTaskMain.cs │ │ │ └── BpmTaskMainService.cs │ ├── Gen │ │ └── Org │ │ │ ├── Dept │ │ │ └── GenOrgDeptApi.cs │ │ │ ├── Main │ │ │ └── GenOrgMainApi.cs │ │ │ └── Rece │ │ │ └── GenOrgReceApi.cs │ ├── Pub │ │ ├── Auth │ │ │ ├── Dto │ │ │ │ ├── Duser.cs │ │ │ │ ├── LoginInput.cs │ │ │ │ ├── LoginOutput.cs │ │ │ │ ├── Zmenu.cs │ │ │ │ ├── Zmeta.cs │ │ │ │ └── Zuser.cs │ │ │ ├── LoginService.cs │ │ │ └── PubAuthApi.cs │ │ └── Init │ │ │ ├── PubAuthInitService.cs │ │ │ ├── PubInitApi.cs │ │ │ └── PubOrgInitService.cs │ └── Sys │ │ ├── Job │ │ ├── Log │ │ │ ├── SysJobLog.cs │ │ │ ├── SysJobLogApi.cs │ │ │ └── SysJobLogService.cs │ │ └── Main │ │ │ ├── JobOutput.cs │ │ │ ├── SysCacheService.cs │ │ │ ├── SysJobDemo.cs │ │ │ ├── SysJobMain.cs │ │ │ ├── SysJobMainApi.cs │ │ │ └── SysJobMainService.cs │ │ ├── Log │ │ ├── Audit │ │ │ └── SysLogAudit.cs │ │ ├── Ex │ │ │ └── SysLogEx.cs │ │ ├── Login │ │ │ ├── SysLogLogin.cs │ │ │ ├── SysLogLoginApi.cs │ │ │ └── SysLogLoginService.cs │ │ ├── Op │ │ │ └── SysLogOp.cs │ │ └── Root │ │ │ └── LogEventSubscriber.cs │ │ ├── Org │ │ ├── Dept │ │ │ ├── SysOrgDept.cs │ │ │ ├── SysOrgDeptApi.cs │ │ │ └── SysOrgDeptService.cs │ │ ├── Group │ │ │ ├── SysOrgGroup.cs │ │ │ ├── SysOrgGroupApi.cs │ │ │ ├── SysOrgGroupOrg.cs │ │ │ └── SysOrgGroupService.cs │ │ ├── Post │ │ │ ├── SysOrgPost.cs │ │ │ ├── SysOrgPostApi.cs │ │ │ ├── SysOrgPostOrg.cs │ │ │ └── SysOrgPostService.cs │ │ ├── Rece │ │ │ ├── SysOrgRece.cs │ │ │ └── SysOrgReceService.cs │ │ ├── Root │ │ │ └── SysOrg.cs │ │ └── User │ │ │ ├── SysOrgUser.cs │ │ │ ├── SysOrgUserApi.cs │ │ │ ├── SysOrgUserCache.cs │ │ │ └── SysOrgUserService.cs │ │ ├── Perm │ │ ├── Api │ │ │ ├── SysPermApi.cs │ │ │ ├── SysPermApiApi.cs │ │ │ ├── SysPermApiCache.cs │ │ │ └── Yperm.cs │ │ ├── Menu │ │ │ ├── SysPermMenu.cs │ │ │ ├── SysPermMenuApi.cs │ │ │ └── SysPermMenuService.cs │ │ └── Role │ │ │ ├── SysPermRole.cs │ │ │ ├── SysPermRoleApi.cs │ │ │ ├── SysPermRoleMenu.cs │ │ │ ├── SysPermRoleOrg.cs │ │ │ └── SysPermRoleService.cs │ │ └── Todo │ │ ├── Done │ │ └── SysTodoUser.cs │ │ ├── Main │ │ ├── SysTodoMain.cs │ │ ├── SysTodoMainApi.cs │ │ └── SysTodoMainService.cs │ │ └── User │ │ └── SysTodoUser.cs ├── Modulex │ └── Oa │ │ └── Flow │ │ ├── Cate │ │ ├── OaFlowCate.cs │ │ ├── OaFlowCateApi.cs │ │ └── OaFlowCateService.cs │ │ ├── Main │ │ ├── OaFlowMain.cs │ │ ├── OaFlowMainApi.cs │ │ └── OaFlowMainService.cs │ │ ├── Rece │ │ ├── OaFlowRece.cs │ │ ├── OaFlowReceApi.cs │ │ └── OaFlowReceService.cs │ │ └── Temp │ │ ├── OaFlowTemp.cs │ │ ├── OaFlowTempApi.cs │ │ └── OaFlowTempService.cs ├── Startup.cs ├── Vboot.Core.csproj └── Vboot.Core.xml ├── Vboot.Web.Core ├── Handlers │ └── JwtHandler.cs ├── Init │ ├── ApiGatherService.cs │ ├── DbSeedService.cs │ └── Yurl.cs ├── Startup.cs ├── Vboot.Web.Core.csproj └── Vboot.Web.Core.xml ├── Vboot.Web.Entry ├── .config │ └── dotnet-tools.json ├── Program.cs ├── Properties │ ├── PublishProfiles │ │ ├── FolderProfile.pubxml │ │ └── FolderProfile.pubxml.user │ └── launchSettings.json ├── Vboot.Web.Entry.csproj ├── Vboot.Web.Entry.csproj.user ├── appsettings.Development.json ├── appsettings.json └── wwwroot │ ├── assets │ ├── 401.1652784183534.css │ ├── 401.1652784183534.js │ ├── 404.1652784183534.css │ ├── 404.1652784183534.js │ ├── DeptTree.1652784183534.css │ ├── DeptTree.1652784183534.js │ ├── Event.1652784183534.js │ ├── Flow.1652784183534.js │ ├── Gateway.1652784183534.js │ ├── GenModal.1652784183534.css │ ├── GenModal.1652784183534.js │ ├── OrgModal.1652784183534.css │ ├── OrgModal.1652784183534.js │ ├── Other.1652784183534.js │ ├── PrefixLabelSelect.1652784183534.css │ ├── PrefixLabelSelect.1652784183534.js │ ├── Process.1652784183534.js │ ├── Task.1652784183534.js │ ├── Wrap.1652784183534.js │ ├── account.1652784183534.css │ ├── account.1652784183534.js │ ├── addDept.1652784183534.js │ ├── addDic.1652784183534.js │ ├── addMenu.1652784183534.js │ ├── addRole.1652784183534.css │ ├── addRole.1652784183534.js │ ├── addUser.1652784183534.js │ ├── aside.1652784183534.js │ ├── bathymetry.1652784183534.jpg │ ├── bmap.1652784183534.js │ ├── bpmn.1652784183534.eot │ ├── bpmn.1652784183534.svg │ ├── bpmn.1652784183534.ttf │ ├── bpmn.1652784183534.woff │ ├── bpmn.1652784183534.woff2 │ ├── classic.1652784183534.js │ ├── columns.1652784183534.css │ ├── columns.1652784183534.js │ ├── common.1652784183534.css │ ├── common.1652784183534.js │ ├── defaults.1652784183534.js │ ├── demo1.1652784183534.css │ ├── demo1.1652784183534.js │ ├── demo2.1652784183534.css │ ├── demo2.1652784183534.js │ ├── details.1652784183534.js │ ├── details.16527841835342.js │ ├── details.16527841835343.js │ ├── details1.1652784183534.js │ ├── echarts.1652784183534.js │ ├── echarts.16527841835342.js │ ├── edit.1652784183534.css │ ├── edit.1652784183534.js │ ├── edit.165278418353410.js │ ├── edit.165278418353411.js │ ├── edit.165278418353412.js │ ├── edit.165278418353413.js │ ├── edit.16527841835342.js │ ├── edit.16527841835343.js │ ├── edit.16527841835344.js │ ├── edit.16527841835345.js │ ├── edit.16527841835346.js │ ├── edit.16527841835347.js │ ├── edit.16527841835348.js │ ├── edit.16527841835349.js │ ├── editDept.1652784183534.js │ ├── editDic.1652784183534.js │ ├── editMenu.1652784183534.js │ ├── editRole.1652784183534.css │ ├── editRole.1652784183534.js │ ├── editUser.1652784183534.js │ ├── formRulesOne.1652784183534.js │ ├── formRulesThree.1652784183534.js │ ├── formRulesTwo.1652784183534.js │ ├── getStyleSheets.1652784183534.js │ ├── head.1652784183534.css │ ├── head.1652784183534.js │ ├── help.1652784183534.js │ ├── iframes.1652784183534.js │ ├── index.1652784183534.css │ ├── index.1652784183534.js │ ├── index.165278418353410.css │ ├── index.165278418353410.js │ ├── index.165278418353411.css │ ├── index.165278418353411.js │ ├── index.165278418353412.css │ ├── index.165278418353412.js │ ├── index.165278418353413.css │ ├── index.165278418353413.js │ ├── index.165278418353414.css │ ├── index.165278418353414.js │ ├── index.165278418353415.css │ ├── index.165278418353415.js │ ├── index.165278418353416.css │ ├── index.165278418353416.js │ ├── index.165278418353417.css │ ├── index.165278418353417.js │ ├── index.165278418353418.css │ ├── index.165278418353418.js │ ├── index.165278418353419.css │ ├── index.165278418353419.js │ ├── index.16527841835342.css │ ├── index.16527841835342.js │ ├── index.165278418353420.css │ ├── index.165278418353420.js │ ├── index.165278418353421.css │ ├── index.165278418353421.js │ ├── index.165278418353422.css │ ├── index.165278418353422.js │ ├── index.165278418353423.css │ ├── index.165278418353423.js │ ├── index.165278418353424.css │ ├── index.165278418353424.js │ ├── index.165278418353425.css │ ├── index.165278418353425.js │ ├── index.165278418353426.css │ ├── index.165278418353426.js │ ├── index.165278418353427.css │ ├── index.165278418353427.js │ ├── index.165278418353428.css │ ├── index.165278418353428.js │ ├── index.165278418353429.css │ ├── index.165278418353429.js │ ├── index.16527841835343.css │ ├── index.16527841835343.js │ ├── index.165278418353430.js │ ├── index.165278418353431.js │ ├── index.165278418353432.js │ ├── index.165278418353433.js │ ├── index.165278418353434.js │ ├── index.165278418353435.js │ ├── index.165278418353436.js │ ├── index.165278418353437.js │ ├── index.165278418353438.js │ ├── index.165278418353439.js │ ├── index.16527841835344.css │ ├── index.16527841835344.js │ ├── index.165278418353440.js │ ├── index.165278418353441.js │ ├── index.165278418353442.js │ ├── index.165278418353443.js │ ├── index.165278418353444.js │ ├── index.165278418353445.js │ ├── index.165278418353446.js │ ├── index.165278418353447.js │ ├── index.165278418353448.js │ ├── index.165278418353449.js │ ├── index.16527841835345.css │ ├── index.16527841835345.js │ ├── index.165278418353450.js │ ├── index.165278418353451.js │ ├── index.165278418353452.js │ ├── index.165278418353453.js │ ├── index.165278418353454.js │ ├── index.165278418353455.js │ ├── index.165278418353456.js │ ├── index.165278418353457.js │ ├── index.165278418353458.js │ ├── index.165278418353459.js │ ├── index.16527841835346.css │ ├── index.16527841835346.js │ ├── index.165278418353460.js │ ├── index.165278418353461.js │ ├── index.165278418353462.js │ ├── index.165278418353463.js │ ├── index.165278418353464.js │ ├── index.165278418353465.js │ ├── index.165278418353466.js │ ├── index.165278418353467.js │ ├── index.165278418353468.js │ ├── index.165278418353469.js │ ├── index.16527841835347.css │ ├── index.16527841835347.js │ ├── index.165278418353470.js │ ├── index.165278418353471.js │ ├── index.165278418353472.js │ ├── index.165278418353473.js │ ├── index.16527841835348.css │ ├── index.16527841835348.js │ ├── index.16527841835349.css │ ├── index.16527841835349.js │ ├── line.1652784183534.js │ ├── link.1652784183534.js │ ├── login-icon-two.1652784183534.svg │ ├── logo-mini.1652784183534.js │ ├── logo-mini.1652784183534.svg │ ├── main.1652784183534.css │ ├── main.1652784183534.js │ ├── mobile.1652784183534.css │ ├── mobile.1652784183534.js │ ├── node.1652784183534.css │ ├── node.1652784183534.js │ ├── parent.1652784183534.js │ ├── qrcode.1652784183534.js │ ├── scan.1652784183534.css │ ├── scan.1652784183534.js │ ├── sortable.esm.1652784183534.js │ ├── store.1652784183534.css │ ├── store.1652784183534.js │ ├── transverse.1652784183534.js │ ├── view.1652784183534.css │ ├── view.1652784183534.js │ ├── vue.1652784183534.js │ └── world.1652784183534.jpg │ ├── favicon.ico │ └── vue.html └── Vboot.sln /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | - **初始化项目 V0.1** 2 | 3 | - [更新] README.md、项目介绍 4 | -------------------------------------------------------------------------------- /Vboot.Application/Sa/Agent/Main/SaAgentMain.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | using Vboot.Core.Module.Sys; 5 | 6 | namespace Vboot.Application.Sa; 7 | 8 | [SugarTable("sa_agent_main", TableDescription = "代理商主信息")] 9 | public class SaAgentMain : BaseMainEntity 10 | { 11 | /// 12 | /// 代理商地址 13 | /// 14 | [SugarColumn(ColumnDescription = "代理商地址", IsNullable = true, Length = 255)] 15 | public string addre { get; set; } 16 | 17 | /// 18 | /// 经办人ID 19 | /// 20 | [SugarColumn(ColumnName = "opman",ColumnDescription = "经办人ID", IsNullable = true, Length = 36)] 21 | public string opmid { get; set; } 22 | 23 | /// 24 | /// 经办人 25 | /// 26 | [SugarColumn(IsIgnore = true)] 27 | public SysOrg opman { get; set; } 28 | 29 | /// 30 | /// 可查看者 31 | /// 32 | [SugarColumn(IsIgnore =true)] 33 | public List viewers { get; set; } 34 | 35 | 36 | } -------------------------------------------------------------------------------- /Vboot.Application/Sa/Agent/Main/SaAgentMainViewer.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | 3 | namespace Vboot.Application.Sa; 4 | 5 | [SugarTable("sa_agent_main_viewer", TableDescription = "代理商可查看者")] 6 | public class SaAgentMainViewer 7 | { 8 | [SugarColumn(ColumnDescription = "代理商ID",IsNullable = true)] 9 | public string mid{ get; set; } 10 | 11 | [SugarColumn(ColumnDescription = "可查看者ID",IsNullable = true)] 12 | public string oid{ get; set; } 13 | } -------------------------------------------------------------------------------- /Vboot.Application/Vboot.Application.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net6.0 5 | 1701;1702;1591 6 | Vboot.Application.xml 7 | Vboot.Application 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | PreserveNewest 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Vboot.Application/Vboot.Application.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vboot.Application 5 | 6 | 7 | 8 | 9 | 代理商地址 10 | 11 | 12 | 13 | 14 | 经办人ID 15 | 16 | 17 | 18 | 19 | 经办人 20 | 21 | 22 | 23 | 24 | 可查看者 25 | 26 | 27 | 28 | 29 | 代理商主信息接口 30 | 31 | 32 | 33 | 34 | 获取代理商主信息的分页数据 35 | 36 | 37 | 38 | 39 | 40 | 获取单个代理商的详细信息 41 | 42 | 代理商ID 43 | 44 | 45 | 46 | 47 | 新增代理商 48 | 49 | 50 | 51 | 52 | 修改代理商 53 | 54 | 55 | 56 | 57 | 删除代理商 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Vboot.Application/applicationsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "SpecificationDocumentSettings": { 3 | "EnableAuthorized": true, 4 | "DocExpansionState": "None", 5 | "DocumentTitle": "Api接口清单", 6 | "DefaultGroupName": "Default", 7 | "GroupOpenApiInfos": [ 8 | { 9 | "Group": "Default", 10 | "Order":10, 11 | "Title": "业务模块", 12 | "Description": "这里是自定义的业务模块,在测试API请求之前,请先通过auth/login接口登录", 13 | "Version": "版本号0.1", 14 | "Contact": { 15 | "Name": "前台UI访问地址", 16 | "Url": "http://localhost:5000/vue.html" 17 | } 18 | }, 19 | { 20 | "Group": "Auth", 21 | "Order":9, 22 | "Title": "认证授权", 23 | "Description": "登录,注册,注销,鉴权等", 24 | "Version": "版本号0.1" 25 | }, 26 | { 27 | "Group": "Sys", 28 | "Order":9, 29 | "Title": "系统管理", 30 | "Description": "系统管理主要包括组织架构,权限管理,定时任务,系统日志等,一般只有系统管理员有此分组的权限", 31 | "Version": "版本号0.1" 32 | }, 33 | { 34 | "Group": "Ass", 35 | "Order":7, 36 | "Title": "辅助模块", 37 | "Description": "辅助模块主要有业务字典,代码生成器等,为业务模块服务", 38 | "Version": "版本号0.1" 39 | }, 40 | { 41 | "Group": "Gen", 42 | "Order":6, 43 | "Title": "通用模块", 44 | "Description": "通用模块一般只要登录了,不管什么角色,都应有的通用公共权限", 45 | "Version": "版本号0.1" 46 | } 47 | , 48 | { 49 | "Group": "Ext", 50 | "Order":5, 51 | "Title": "扩展模块", 52 | "Description": "主要会有流程管理,数据库可视化,项目管理等", 53 | "Version": "版本号0.1" 54 | } 55 | ] 56 | } 57 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Cache/CacheOptions.cs: -------------------------------------------------------------------------------- 1 | using Furion.ConfigurableOptions; 2 | 3 | namespace Vboot.Core.Common; 4 | 5 | /// 6 | /// 缓存配置 7 | /// 8 | public class CacheOptions : IConfigurableOptions 9 | { 10 | /// 11 | /// 缓存类型 12 | /// 13 | public CacheType CacheType { get; set; } 14 | 15 | /// 16 | /// Redis配置 17 | /// 18 | public string RedisConnectionString { get; set; } 19 | } 20 | 21 | public enum CacheType 22 | { 23 | /// 24 | /// 内存缓存 25 | /// 26 | MemoryCache, 27 | 28 | /// 29 | /// Redis缓存 30 | /// 31 | RedisCache 32 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Const/ClaimConst.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Common; 2 | 3 | public class ClaimConst 4 | { 5 | /// 6 | /// 用户Id 7 | /// 8 | public const string CLAINM_USERID = "UserId"; 9 | 10 | /// 11 | /// 账号 12 | /// 13 | public const string CLAINM_ACCOUNT = "Account"; 14 | 15 | /// 16 | /// 名称 17 | /// 18 | public const string CLAINM_NAME = "Name"; 19 | 20 | /// 21 | /// 是否超级管理 22 | /// 23 | public const string CLAINM_SUPERADMIN = "SuperAdmin"; 24 | 25 | /// 26 | /// 是否超级管理 27 | /// 28 | public const string TENANT_ID = "TenantId"; 29 | 30 | public const string CLAINM_PERMS = "Perms"; 31 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Const/CommonConst.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Common; 2 | 3 | public class CommonConst 4 | { 5 | /// 6 | /// 用户缓存 7 | /// 8 | public const string CACHE_KEY_USER = "user_"; 9 | 10 | /// 11 | /// 菜单缓存 12 | /// 13 | public const string CACHE_KEY_MENU = "menu_"; 14 | 15 | /// 16 | /// 权限缓存 17 | /// 18 | public const string CACHE_KEY_PERMISSION = "permission_"; 19 | 20 | /// 21 | /// 数据范围缓存 22 | /// 23 | public const string CACHE_KEY_DATASCOPE = "datascope_"; 24 | 25 | /// 26 | /// 验证码缓存 27 | /// 28 | public const string CACHE_KEY_CODE = "vercode_"; 29 | 30 | 31 | public static string[] ENTITY_ASSEMBLY_NAME = new string[] {"Vboot.Core", "Vboot.Application"}; 32 | 33 | /// 34 | /// 库表实体信息缓存 35 | /// 36 | public const string CACHE_KEY_ENTITYINFO = "tableentity"; 37 | 38 | /// 39 | /// 所有权限缓存 40 | /// 41 | public const string CACHE_KEY_ALLPERMISSION = "allpermission"; 42 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Enum/AdminType.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Vboot.Core.Common; 4 | 5 | /// 6 | /// 账号类型 7 | /// 8 | public enum AdminType 9 | { 10 | /// 11 | /// 超级管理员 12 | /// 13 | [Description("超级管理员")] SuperAdmin = 1, 14 | 15 | /// 16 | /// 管理员 17 | /// 18 | [Description("管理员")] Admin = 2, 19 | 20 | /// 21 | /// 普通账号 22 | /// 23 | [Description("普通账号")] None = 3 24 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Enum/DataOpType.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Common; 2 | 3 | /// 4 | /// 数据操作类型 5 | /// 6 | public enum DataOpType 7 | { 8 | /// 9 | /// 其它 10 | /// 11 | OTHER, 12 | 13 | /// 14 | /// 增加 15 | /// 16 | ADD, 17 | 18 | /// 19 | /// 删除 20 | /// 21 | DELETE, 22 | 23 | /// 24 | /// 编辑 25 | /// 26 | EDIT, 27 | 28 | /// 29 | /// 更新 30 | /// 31 | UPDATE, 32 | 33 | /// 34 | /// 查询 35 | /// 36 | QUERY, 37 | 38 | /// 39 | /// 详情 40 | /// 41 | DETAIL, 42 | 43 | /// 44 | /// 树 45 | /// 46 | TREE, 47 | 48 | /// 49 | /// 导入 50 | /// 51 | IMPORT, 52 | 53 | /// 54 | /// 导出 55 | /// 56 | EXPORT, 57 | 58 | /// 59 | /// 授权 60 | /// 61 | GRANT, 62 | 63 | /// 64 | /// 强退 65 | /// 66 | FORCE, 67 | 68 | /// 69 | /// 清空 70 | /// 71 | CLEAN, 72 | 73 | /// 74 | /// 修改状态 75 | /// 76 | CHANGE_STATUS 77 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Enum/LoginType.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Vboot.Core.Common; 4 | 5 | /// 6 | /// 登陆类型 7 | /// 8 | public enum LoginType 9 | { 10 | /// 11 | /// 登陆 12 | /// 13 | [Description("登陆")] LOGIN = 0, 14 | 15 | /// 16 | /// 登出 17 | /// 18 | [Description("登出")] LOGOUT = 1, 19 | 20 | /// 21 | /// 注册 22 | /// 23 | [Description("注册")] REGISTER = 2, 24 | 25 | /// 26 | /// 改密 27 | /// 28 | [Description("改密")] CHANGEPASSWORD = 3, 29 | 30 | /// 31 | /// 三方授权登陆 32 | /// 33 | [Description("授权登陆")] AUTHORIZEDLOGIN = 4 34 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Enum/RequestTypeEnum.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Common; 2 | 3 | /// 4 | /// http请求类型 5 | /// 6 | public enum RequestTypeEnum 7 | { 8 | /// 9 | /// 执行内部方法 10 | /// 11 | Run = 0, 12 | 13 | /// 14 | /// GET请求 15 | /// 16 | Get = 1, 17 | 18 | /// 19 | /// POST请求 20 | /// 21 | Post = 2, 22 | 23 | /// 24 | /// PUT请求 25 | /// 26 | Put = 3, 27 | 28 | /// 29 | /// DELETE请求 30 | /// 31 | Delete = 4 32 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Enum/YesOrNot.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | namespace Vboot.Core.Common; 4 | 5 | /// 6 | /// 菜单激活类型 7 | /// 8 | public enum YesOrNot 9 | { 10 | /// 11 | /// 是 12 | /// 13 | [Description("是")] Y = 0, 14 | 15 | /// 16 | /// 否 17 | /// 18 | [Description("否")] N = 1 19 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Api/RestPageResult.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Common; 2 | 3 | public class PageResult 4 | { 5 | public int total { get; set; } 6 | public object items { get; set; } 7 | } 8 | 9 | public static class RestPageResult 10 | { 11 | public static PageResult Build(int Total, object Items) 12 | { 13 | return new() 14 | { 15 | total = Total, 16 | items = Items 17 | }; 18 | } 19 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Dto/ZidName.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | 3 | namespace Vboot.Core.Common; 4 | 5 | public class ZidName 6 | { 7 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true)] 8 | public string id { get; set; } 9 | 10 | public string name { get; set; } 11 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Dto/Zinp.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Common; 2 | 3 | public class Zinp 4 | { 5 | public string id { get; set; } 6 | 7 | public string name { get; set; } 8 | 9 | public string pid { get; set; } 10 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Dto/Ztree.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Text.Json.Serialization; 3 | using SqlSugar; 4 | 5 | namespace Vboot.Core.Common; 6 | 7 | public class Ztree 8 | { 9 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true)] 10 | public string id { get; set; } 11 | 12 | public string name { get; set; } 13 | 14 | public string type { get; set; } 15 | 16 | [JsonIgnore] public string pid { get; set; } 17 | 18 | [SugarColumn(IsIgnore = true)] public List children { get; set; } 19 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Entity/BaseEntity.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | 3 | namespace Vboot.Core.Common; 4 | 5 | public abstract class BaseEntity 6 | { 7 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 8 | public virtual string id { get; set; } 9 | 10 | [SugarColumn(ColumnDescription = "名称", IsNullable = true, Length = 255)] 11 | public virtual string name { get; set; } 12 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Filter/DisableOpLogAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Vboot.Core.Common; 8 | 9 | /// 10 | /// 禁用操作日志 11 | /// 12 | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Property)] 13 | public class DisableOpLogAttribute : Attribute 14 | { 15 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Filter/LogExceptionHandler.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Security.Claims; 3 | using System.Threading.Tasks; 4 | using Furion; 5 | using Furion.DependencyInjection; 6 | using Furion.EventBus; 7 | using Furion.FriendlyException; 8 | using Microsoft.AspNetCore.Mvc.Filters; 9 | using Serilog; 10 | using Vboot.Core.Module.Sys; 11 | using Yitter.IdGenerator; 12 | 13 | namespace Vboot.Core.Common; 14 | 15 | /// 16 | /// 全局异常处理 17 | /// 18 | public class LogExceptionHandler : IGlobalExceptionHandler, ISingleton 19 | { 20 | private readonly IEventPublisher _eventPublisher; 21 | 22 | public LogExceptionHandler(IEventPublisher eventPublisher) 23 | { 24 | _eventPublisher = eventPublisher; 25 | } 26 | 27 | public Task OnExceptionAsync(ExceptionContext context) 28 | { 29 | Console.WriteLine("出错了"); 30 | var userContext = App.User; 31 | _eventPublisher.PublishAsync(new ChannelEventSource("Create:ExLog", 32 | new SysLogEx 33 | { 34 | Id = YitIdHelper.NextId() + "", 35 | Account = userContext?.FindFirstValue(ClaimConst.CLAINM_ACCOUNT), 36 | Name = userContext?.FindFirstValue(ClaimConst.CLAINM_NAME), 37 | ClassName = context.Exception.TargetSite.DeclaringType?.FullName, 38 | MethodName = context.Exception.TargetSite.Name, 39 | ExceptionName = context.Exception.Message, 40 | ExceptionMsg = context.Exception.Message, 41 | ExceptionSource = context.Exception.Source, 42 | StackTrace = context.Exception.StackTrace, 43 | ParamsObj = context.Exception.TargetSite.GetParameters().ToString(), 44 | ExceptionTime = DateTime.Now 45 | })); 46 | Log.Error(context.Exception.ToString()); 47 | return Task.CompletedTask; 48 | } 49 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Filter/MyUnitOfWorkAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Data; 3 | 4 | namespace Vboot.Core.Common; 5 | 6 | /// 7 | /// SqlSugar 工作单元配置特性 8 | /// 9 | [AttributeUsage(AttributeTargets.Method)] 10 | public class MyUnitOfWorkAttribute : Attribute 11 | { 12 | /// 13 | /// 构造函数 14 | /// 15 | public MyUnitOfWorkAttribute() 16 | { 17 | } 18 | 19 | /// 20 | /// 构造函数 21 | /// 22 | /// 23 | /// 支持传入事务隔离级别 参数值 24 | /// 25 | /// 事务隔离级别 26 | public MyUnitOfWorkAttribute(IsolationLevel isolationLevel) 27 | { 28 | IsolationLevel = isolationLevel; 29 | } 30 | 31 | /// 32 | /// 事务隔离级别 33 | /// 34 | /// 35 | /// 默认:,参见: 36 | /// 说明:当事务A更新某条数据的时候,不容许其他事务来更新该数据,但可以进行读取操作 37 | /// 38 | public IsolationLevel IsolationLevel { get; set; } = IsolationLevel.ReadCommitted; 39 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Manager/IUserManager.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Vboot.Core.Module.Sys; 3 | 4 | namespace Vboot.Core.Common; 5 | 6 | public interface IUserManager 7 | { 8 | string Account { get; } 9 | string Name { get; } 10 | bool SuperAdmin { get; } 11 | // SysOrgUser User { get; } 12 | string UserId { get; } 13 | string Perms { get; } 14 | 15 | Task CheckUserAsync(string userId, bool tracking = true); 16 | Task GetUserEmpInfo(string userId); 17 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Mvc/Service/BaseService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using SqlSugar; 3 | using Yitter.IdGenerator; 4 | 5 | namespace Vboot.Core.Common 6 | { 7 | public class BaseService where TEntity : BaseEntity, new() 8 | { 9 | public ISqlSugarRepository repo { get; set; } 10 | 11 | public async Task InsertAsync(TEntity entity) 12 | { 13 | if (string.IsNullOrEmpty(entity.id)) 14 | { 15 | entity.id = YitIdHelper.NextId() + ""; 16 | } 17 | await repo.InsertAsync(entity); 18 | } 19 | 20 | public async Task SingleAsync(string id) 21 | { 22 | return await repo.SingleAsync(t => t.id == id); 23 | } 24 | 25 | public async Task UpdateAsync(TEntity entity) 26 | { 27 | await repo.UpdateAsync(entity); 28 | } 29 | 30 | public async Task DeleteAsync(string ids) 31 | { 32 | var idArr = ids.Split(","); 33 | await repo.Context.Deleteable().In(idArr).ExecuteCommandAsync(); 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Util/JsonUtil.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Furion.JsonSerialization; 3 | using Newtonsoft.Json.Linq; 4 | 5 | namespace Vboot.Core.Common.Util; 6 | 7 | /// 8 | /// Json序列化工具类 9 | /// 10 | public static class JsonUtil 11 | { 12 | /// 13 | /// JSON 字符串转 Object 14 | /// 15 | /// 16 | /// 17 | /// 18 | public static T ToObject(this string json) 19 | { 20 | json = json.Replace(" ", ""); 21 | return JSON.Deserialize(json); 22 | } 23 | 24 | /// 25 | /// Object 转 JSON字符串 26 | /// 27 | /// 28 | /// 29 | public static string ToJsonString(this object obj) 30 | { 31 | return JSON.Serialize(obj); 32 | } 33 | 34 | /// 35 | /// JSON 字符串转 JObject 36 | /// 37 | /// 38 | /// 39 | public static JObject ToJObject(this string json) 40 | { 41 | return json == null ? JObject.Parse("{}") : JObject.Parse(json.Replace(" ", "")); 42 | } 43 | 44 | /// 45 | /// Dictionary 字符串转 Object 46 | /// 47 | /// 48 | /// 49 | /// 50 | public static T ToObject(this IDictionary dictionary) 51 | { 52 | return dictionary.ToJsonString().ToObject(); 53 | } 54 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Util/XreqUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Furion; 3 | using SqlSugar; 4 | 5 | namespace Vboot.Core.Common.Util; 6 | 7 | public class XreqUtil 8 | { 9 | public static PagingParam GetPp() 10 | { 11 | var pp = new PagingParam(); 12 | var request = App.HttpContext.Request; 13 | var strPageSize = request.Query["pageSize"].ToString(); 14 | if (!string.IsNullOrEmpty(strPageSize)) 15 | { 16 | pp.pageSize=int.Parse(strPageSize); 17 | } 18 | var strPage = request.Query["page"].ToString(); 19 | if (!string.IsNullOrEmpty(strPage)) 20 | { 21 | pp.page=int.Parse(strPage); 22 | } 23 | return pp; 24 | } 25 | } 26 | 27 | public class PagingParam 28 | { 29 | public RefAsync total { get; set; } = 0; 30 | 31 | public int page { get; set; } = 1; 32 | 33 | public int pageSize { get; set; } = 10; 34 | 35 | 36 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Util/XstrUtil.cs: -------------------------------------------------------------------------------- 1 | using System.Text; 2 | 3 | namespace Vboot.Core.Common.Util; 4 | 5 | public class XstrUtil 6 | { 7 | /// 将大驼峰命名转为蛇形命名 8 | public static string RenameSnakeCase(string str) 9 | { 10 | var builder = new StringBuilder(); 11 | var name = str; 12 | var previousUpper = false; 13 | for (var i = 0; i < name.Length; i++) 14 | { 15 | var c = name[i]; 16 | if (char.IsUpper(c)) 17 | { 18 | if (i > 0 && !previousUpper) 19 | { 20 | builder.Append("_"); 21 | } 22 | builder.Append(char.ToLowerInvariant(c)); 23 | previousUpper = true; 24 | } 25 | else 26 | { 27 | builder.Append(c); 28 | previousUpper = false; 29 | } 30 | } 31 | return builder.ToString(); 32 | } 33 | 34 | /// 将大驼峰命名转为蛇形命名 35 | public static string RenameUrlCase(string str) 36 | { 37 | var builder = new StringBuilder(); 38 | var name = str; 39 | var previousUpper = false; 40 | for (var i = 0; i < name.Length; i++) 41 | { 42 | var c = name[i]; 43 | if (char.IsUpper(c)) 44 | { 45 | if (i > 0 && !previousUpper) 46 | { 47 | builder.Append("/"); 48 | } 49 | builder.Append(char.ToLowerInvariant(c)); 50 | previousUpper = true; 51 | } 52 | else 53 | { 54 | builder.Append(c); 55 | previousUpper = false; 56 | } 57 | } 58 | return builder.ToString(); 59 | } 60 | } -------------------------------------------------------------------------------- /Vboot.Core/Common/Util/XuserUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Furion; 3 | using Vboot.Core.Module.Sys; 4 | 5 | namespace Vboot.Core.Common.Util; 6 | 7 | public class XuserUtil 8 | { 9 | public static SysOrg getUser() { 10 | var user = App.GetService(); 11 | return new SysOrg(user.UserId, user.Name); 12 | } 13 | 14 | public static String getUserId() { 15 | String userId = null; 16 | var user = App.GetService(); 17 | userId = user.UserId; 18 | return userId; 19 | } 20 | 21 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Cate/AssDictCate.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Ass; 6 | 7 | [SugarTable("ass_dict_cate", TableDescription = "字典分类表")] 8 | [Description("字典分类表")] 9 | public class AssDictCate : BaseEntity 10 | { 11 | [SugarColumn(ColumnDescription = "可用标记:1可用,0禁用", IsNullable = true)] 12 | public bool? avtag { get; set; } 13 | 14 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 15 | public int ornum { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 64)] 18 | public string notes { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "代码", Length = 32)] 21 | public string code { get; set; } 22 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Cate/AssDictCateApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | using Vboot.Core.Common.Util; 7 | 8 | namespace Vboot.Core.Module.Ass; 9 | 10 | [ApiDescriptionSettings("Ass", Tag = "字典分类")] 11 | public class AssDictCateApi : IDynamicApiController 12 | { 13 | private readonly AssDictCateService _service; 14 | 15 | public AssDictCateApi(AssDictCateService service) 16 | { 17 | _service = service; 18 | } 19 | 20 | [QueryParameters] 21 | public async Task Get() 22 | { 23 | var pp = XreqUtil.GetPp(); 24 | var items = await _service.repo.Context.Queryable() 25 | .OrderBy(u => u.ornum) 26 | .Select((t) => new {t.id, t.name, t.notes}) 27 | .ToPageListAsync(pp.page, pp.pageSize, pp.total); 28 | return RestPageResult.Build(pp.total.Value, items); 29 | } 30 | 31 | public async Task GetOne(string id) 32 | { 33 | var cate = await _service.repo.Context.Queryable() 34 | .Where(it => it.id == id).FirstAsync(); 35 | return cate; 36 | } 37 | 38 | public async Task Post(AssDictCate cate) 39 | { 40 | await _service.InsertAsync(cate); 41 | } 42 | 43 | public async Task Put(AssDictCate cate) 44 | { 45 | await _service.UpdateAsync(cate); 46 | } 47 | 48 | public async Task Delete(string ids) 49 | { 50 | await _service.DeleteAsync(ids); 51 | } 52 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Cate/AssDictCateService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Ass; 6 | 7 | public class AssDictCateService : BaseService, ITransient 8 | { 9 | public AssDictCateService(ISqlSugarRepository repo) 10 | { 11 | base.repo = repo; 12 | } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Data/AssDictData.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Ass; 6 | 7 | [SugarTable("ass_dict_data", TableDescription = "字典数据表")] 8 | [Description("字典数据表")] 9 | public class AssDictData : BaseEntity 10 | { 11 | [SugarColumn(ColumnDescription = "可用标记:1可用,0禁用", IsNullable = true)] 12 | public bool? avtag { get; set; } 13 | 14 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 15 | public int ornum { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "分类ID", Length = 36)] 18 | public string cateid { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "代码", Length = 36)] 21 | public string code { get; set; } 22 | 23 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 64)] 24 | public string notes { get; set; } 25 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Data/AssDictDataApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using Vboot.Core.Common; 5 | using Vboot.Core.Common.Util; 6 | 7 | namespace Vboot.Core.Module.Ass; 8 | 9 | [ApiDescriptionSettings("Ass", Tag = "字典数据")] 10 | public class AssDictDataApi : IDynamicApiController 11 | { 12 | private readonly AssDictDataService _service; 13 | 14 | public AssDictDataApi(AssDictDataService service) 15 | { 16 | _service = service; 17 | } 18 | 19 | [QueryParameters] 20 | public async Task Get(string cateid, string name) 21 | { 22 | var pp = XreqUtil.GetPp(); 23 | var items = await _service.repo.Context.Queryable() 24 | .WhereIF(!string.IsNullOrWhiteSpace(name), t => t.name.Contains(name.Trim())) 25 | .Where((t) => t.cateid == cateid) 26 | .OrderBy(u => u.ornum) 27 | .Select((t) => new {t.id, t.name, t.code, t.notes}) 28 | .ToPageListAsync(pp.page, pp.pageSize, pp.total); 29 | return RestPageResult.Build(pp.total.Value, items); 30 | } 31 | 32 | public async Task GetOne(string id) 33 | { 34 | var data = await _service.repo.Context.Queryable() 35 | .Where(it => it.id == id).FirstAsync(); 36 | return data; 37 | } 38 | 39 | public async Task Post(AssDictData data) 40 | { 41 | await _service.InsertAsync(data); 42 | } 43 | 44 | public async Task Put(AssDictData data) 45 | { 46 | await _service.UpdateAsync(data); 47 | } 48 | 49 | public async Task Delete(string ids) 50 | { 51 | await _service.DeleteAsync(ids); 52 | } 53 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Data/AssDictDataService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Ass; 6 | 7 | public class AssDictDataService : BaseService, ITransient 8 | { 9 | public AssDictDataService(ISqlSugarRepository repo) 10 | { 11 | base.repo = repo; 12 | } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Main/AssDictMain.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Ass; 6 | 7 | [SugarTable("ass_dict_main", TableDescription = "项目信息表")] 8 | [Description("项目信息表")] 9 | public class AssDictMain : BaseEntity 10 | { 11 | [SugarColumn(ColumnDescription = "可用标记:1可用,0禁用", IsNullable = true)] 12 | public bool? avtag { get; set; } 13 | 14 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 15 | public int ornum { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "类型", IsNullable = true, Length = 32)] 18 | public string cateid { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 64)] 21 | public string notes { get; set; } 22 | 23 | [SugarColumn(ColumnDescription = "代码", Length = 32)] 24 | public string code { get; set; } 25 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Main/AssDictMainApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using Vboot.Core.Common; 5 | using Vboot.Core.Common.Util; 6 | using Vboot.Core.Module.Pub; 7 | 8 | namespace Vboot.Core.Module.Ass; 9 | 10 | [ApiDescriptionSettings("Ass", Tag = "字典信息")] 11 | public class AssDictMainApi : IDynamicApiController 12 | { 13 | private readonly AssDictMainService _service; 14 | 15 | public AssDictMainApi(AssDictMainService service) 16 | { 17 | _service = service; 18 | } 19 | 20 | [QueryParameters] 21 | public async Task Get() 22 | { 23 | var pp = XreqUtil.GetPp(); 24 | var items = await _service.repo.Context.Queryable() 25 | .OrderBy(u => u.ornum) 26 | .Select((t) => new {t.id, t.name, t.code, t.notes}) 27 | .ToPageListAsync(pp.page, pp.pageSize, pp.total); 28 | return RestPageResult.Build(pp.total.Value, items); 29 | } 30 | 31 | public async Task GetOne(string id) 32 | { 33 | var main = await _service.repo.Context.Queryable() 34 | .Where(it => it.id == id).FirstAsync(); 35 | return main; 36 | } 37 | 38 | public async Task Post(AssDictMain main) 39 | { 40 | await _service.InsertAsync(main); 41 | } 42 | 43 | public async Task Put(AssDictMain main) 44 | { 45 | await _service.UpdateAsync(main); 46 | } 47 | 48 | public async Task Delete(string ids) 49 | { 50 | await _service.DeleteAsync(ids); 51 | } 52 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Ass/Dict/Main/AssDictMainService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | using Vboot.Core.Module.Ass; 5 | 6 | namespace Vboot.Core.Module.Ass; 7 | 8 | public class AssDictMainService : BaseService, ITransient 9 | { 10 | public AssDictMainService(ISqlSugarRepository repo) 11 | { 12 | this.repo = repo; 13 | } 14 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Audit/Main/BpmAuditMain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | 7 | [SugarTable("bpm_audit_main", TableDescription = "流程审批记录表")] 8 | public class BpmAuditMain 9 | { 10 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 11 | public string id { get; set; } 12 | 13 | [SugarColumn(ColumnDescription = "当前节点编号", IsNullable = true, Length = 32)] 14 | public string facno { get; set; } 15 | 16 | [SugarColumn(ColumnDescription = "当前节点编号", IsNullable = true, Length = 126)] 17 | public string facna { get; set; } 18 | 19 | [SugarColumn(ColumnDescription = "开始时间", IsNullable = true, IsOnlyIgnoreUpdate = true)] 20 | public DateTime? crtim { get; set; }=DateTime.Now; 21 | 22 | [SugarColumn(ColumnDescription = "流程实例id", IsNullable = true, Length = 32)] 23 | public string proid { get; set; } 24 | 25 | [SugarColumn(ColumnDescription = "节点id", IsNullable = true, Length = 32)] 26 | public string nodid { get; set; } 27 | 28 | [SugarColumn(ColumnDescription = "任务id", IsNullable = true, Length = 32)] 29 | public string tasid { get; set; } 30 | 31 | [SugarColumn(ColumnDescription = "实处理人", IsNullable = true, Length = 32)] 32 | public string haman { get; set; } 33 | 34 | [SugarColumn(ColumnDescription = "操作的key:pass,refuse", IsNullable = true, Length = 32)] 35 | public string opkey { get; set; } 36 | 37 | [SugarColumn(ColumnDescription = "操作的名称: 通过,驳回,转办等", IsNullable = true, Length = 64)] 38 | public string opinf { get; set; } 39 | 40 | [SugarColumn(ColumnDescription = "审核留言:具体写了什么审核内容", IsNullable = true, Length = 1000)] 41 | public string opnot { get; set; } 42 | 43 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Audit/Main/BpmAuditMainService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Furion.DependencyInjection; 3 | using SqlSugar; 4 | using Yitter.IdGenerator; 5 | 6 | namespace Vboot.Core.Module.Bpm; 7 | 8 | public class BpmAuditMainService : ITransient 9 | { 10 | public BpmAuditMain SaveDraftAudit(Zbpm zbpm, Znode znode) 11 | { 12 | BpmAuditMain audit = new BpmAuditMain(); 13 | audit.id = YitIdHelper.NextId() + ""; 14 | audit.facno = znode.facno; 15 | audit.facna = znode.facna; 16 | audit.nodid = znode.nodid; 17 | audit.haman = zbpm.haman; 18 | audit.proid = zbpm.proid; 19 | audit.opnot = zbpm.opnot; 20 | audit.opkey = "dsubmit"; 21 | audit.opinf = "起草人提交"; 22 | _repo.Insert(audit); 23 | return audit; 24 | } 25 | 26 | public BpmAuditMain SaveAudit(Zbpm zbpm) 27 | { 28 | BpmAuditMain audit = new BpmAuditMain(); 29 | audit.id = YitIdHelper.NextId() + ""; 30 | audit.facno = zbpm.facno; 31 | audit.facna = zbpm.facna; 32 | audit.nodid = zbpm.nodid; 33 | audit.haman = zbpm.haman; 34 | audit.proid = zbpm.proid; 35 | audit.opnot = zbpm.opnot; 36 | audit.opkey = zbpm.opkey; 37 | audit.opinf = zbpm.opinf; 38 | audit.tasid = zbpm.tasid; 39 | _repo.Insert(audit); 40 | return audit; 41 | } 42 | 43 | public BpmAuditMain SaveEndAudit(Zbpm zbpm, string nodid) 44 | { 45 | BpmAuditMain audit = new BpmAuditMain(); 46 | audit.id = YitIdHelper.NextId() + ""; 47 | audit.facno = "N3"; 48 | audit.facna = "结束节点"; 49 | audit.nodid = nodid; 50 | audit.proid = zbpm.proid; 51 | audit.opkey = "end"; 52 | _repo.Insert(audit); 53 | return audit; 54 | } 55 | 56 | private readonly ISqlSugarRepository _repo; 57 | 58 | public BpmAuditMainService(ISqlSugarRepository repo) 59 | { 60 | _repo = repo; 61 | } 62 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Node/Hist/BpmNodeHist.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | [SugarTable("bpm_node_hist", TableDescription = "流程节点历史表")] 7 | public class BpmNodeHist 8 | { 9 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 10 | public string id { get; set; } 11 | 12 | [SugarColumn(ColumnDescription = "当前节点编号", IsNullable = true, Length = 32)] 13 | public string facno { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "当前节点编号", IsNullable = true, Length = 126)] 16 | public string facna { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "当前节点类型", IsNullable = true, Length = 32)] 19 | public string facty { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "目标节点ID", IsNullable = true, Length = 32)] 22 | public string tarno { get; set; } 23 | 24 | [SugarColumn(ColumnDescription = "目标节点名称", IsNullable = true, Length = 32)] 25 | public string tarna { get; set; } 26 | 27 | [SugarColumn(ColumnDescription = "流程实例id", IsNullable = true, Length = 32)] 28 | public string proid { get; set; } 29 | 30 | [SugarColumn(ColumnDescription = "状态", IsNullable = true, Length = 8)] 31 | public string state { get; set; } 32 | 33 | [SugarColumn(ColumnDescription = "开始时间", IsNullable = true, IsOnlyIgnoreUpdate = true)] 34 | public DateTime? sttim { get; set; }=DateTime.Now; 35 | 36 | [SugarColumn(ColumnDescription = "结束时间", IsNullable = true)] 37 | public DateTime? entim { get; set; } 38 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Node/Main/BpmNodeMain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | [SugarTable("bpm_node_main", TableDescription = "流程节点表")] 7 | public class BpmNodeMain 8 | { 9 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 10 | public string id { get; set; } 11 | 12 | [SugarColumn(ColumnDescription = "当前节点编号", IsNullable = true, Length = 32)] 13 | public string facno { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "当前节点编号", IsNullable = true, Length = 126)] 16 | public string facna { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "当前节点类型", IsNullable = true, Length = 32)] 19 | public string facty { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "流程实例id", IsNullable = true, Length = 32)] 22 | public string proid { get; set; } 23 | 24 | [SugarColumn(ColumnDescription = "状态", IsNullable = true, Length = 8)] 25 | public string state { get; set; } 26 | 27 | [SugarColumn(ColumnDescription = "开始时间", IsNullable = true, IsOnlyIgnoreUpdate = true)] 28 | public DateTime? sttim { get; set; }=DateTime.Now; 29 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Node/Main/BpmNodeMainService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Yitter.IdGenerator; 4 | 5 | namespace Vboot.Core.Module.Bpm; 6 | 7 | public class BpmNodeMainService : ITransient 8 | { 9 | public BpmNodeMain SaveNode(Zbpm zbpm, Znode znode) 10 | { 11 | BpmNodeMain node = new BpmNodeMain(); 12 | node.facno = znode.facno; 13 | node.facna = znode.facna; 14 | node.facty = znode.facty; 15 | node.proid = zbpm.proid; 16 | node.state = "20"; 17 | node.id = YitIdHelper.NextId() + ""; 18 | _repo.Insert(node); 19 | return node; 20 | } 21 | 22 | 23 | public BpmNodeMain FindOne(string id) { 24 | return _repo.Single(t => t.id == id);; 25 | } 26 | 27 | public void Delete(string id) { 28 | _repo.Context.Deleteable().Where(it => it.id == id).ExecuteCommand(); 29 | } 30 | 31 | 32 | private readonly ISqlSugarRepository _repo; 33 | 34 | public BpmNodeMainService(ISqlSugarRepository repo) 35 | { 36 | _repo = repo; 37 | } 38 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Main/BpmProcMain.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | using Vboot.Core.Common; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | [SugarTable("bpm_proc_main", TableDescription = "流程实例表")] 7 | public class BpmProcMain : BaseMainEntity 8 | { 9 | [SugarColumn(ColumnDescription = "modid", IsNullable = true, Length = 32)] 10 | public string modid { get; set; } 11 | 12 | [SugarColumn(ColumnDescription = "modty", IsNullable = true, Length = 32)] 13 | public string modty { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "模板id", IsNullable = true, Length = 32)] 16 | public string temid { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "状态", IsNullable = true, Length = 8)] 19 | public string state { get; set; } 20 | 21 | public BpmProcMain() 22 | { 23 | 24 | } 25 | 26 | public BpmProcMain(Zbpm zbpm) { 27 | id=zbpm.proid; 28 | name=zbpm.prona; 29 | temid=zbpm.temid; 30 | crmid = zbpm.haman; 31 | } 32 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Main/Zbpm.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Module.Bpm; 2 | 3 | public class Zbpm 4 | { 5 | public string todid { get; set; }//待办ID 6 | 7 | public string temid { get; set; }//流程模板ID 8 | 9 | public string proid { get; set; }//流程实例ID 10 | 11 | public string prona { get; set; }//流程实例名称 12 | 13 | public string nodid { get; set; }//当前节点ID 14 | 15 | public string facno { get; set; }//当前节点编号 16 | 17 | public string facna { get; set; }//当前节点名称 18 | 19 | public string tarno { get; set; }//目标节点编号 20 | 21 | public string tarna { get; set; }//目标节点名称 22 | 23 | public bool retag { get; set; } = true;//驳回标记,驳回的节点通过后直接返回本节点 24 | 25 | public string bacid { get; set; }//驳回后的流程重新提交时的bpm_proc_param的id 26 | 27 | public string tasid { get; set; }//任务ID 28 | 29 | public string opnot { get; set; }//操作:处理意见 30 | 31 | public string opurg { get; set; }//操作:紧急程度 32 | 33 | public string opkey { get; set; }//操作key:pass, reject 34 | 35 | public string opinf { get; set; }//操作名称:通过,驳回到谁,沟通谁 36 | 37 | public string chxml { get; set; }//优化过的vboot可解析的的xml 38 | 39 | public string haman { get; set; }//当前处理人ID 40 | 41 | public string exman { get; set; }//应处理人ID 42 | 43 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Main/Znode.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Module.Bpm; 2 | 3 | public class Znode 4 | { 5 | 6 | public string nodid { get; set; }//节点ID 7 | 8 | public string facno { get; set; }//当前节点编号:N1,N2 9 | 10 | public string facna { get; set; }//当前节点名称 11 | 12 | public string facty { get; set; }//当前节点类型 13 | 14 | public string tarno { get; set; }//目标节点编号 15 | 16 | public string tarna { get; set; }//目标节点名称 17 | 18 | public string exman { get; set; }//应处理人 19 | 20 | public Znode() 21 | { 22 | } 23 | 24 | public Znode(string facno) 25 | { 26 | this.facno = facno; 27 | } 28 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Param/BpmProcParam.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | [SugarTable("bpm_proc_param", TableDescription = "流程参数表")] 7 | public class BpmProcParam 8 | { 9 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 10 | public string id { get; set; } 11 | 12 | [SugarColumn(ColumnDescription = "xx", IsNullable = true, Length = 64)] 13 | public string pakey { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "xx", IsNullable = true, Length = 512)] 16 | public string paval { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "xx", IsNullable = true, Length = 32)] 19 | public string offty { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "xx", IsNullable = true, Length = 32)] 22 | public string offid { get; set; } 23 | 24 | [SugarColumn(ColumnDescription = "xx", IsNullable = true, Length = 32)] 25 | public string proid { get; set; } 26 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Param/BpmProcParamService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using Microsoft.AspNetCore.Mvc.TagHelpers.Cache; 3 | using SqlSugar; 4 | using Yitter.IdGenerator; 5 | 6 | namespace Vboot.Core.Module.Bpm; 7 | 8 | public class BpmProcParamService : ITransient 9 | { 10 | public void Save(BpmProcParam param){ 11 | _repo.Insert(param); 12 | } 13 | 14 | public void Delete(string id) { 15 | _repo.Context.Deleteable().Where(it => it.id == id).ExecuteCommand(); 16 | } 17 | 18 | 19 | private readonly ISqlSugarRepository _repo; 20 | 21 | public BpmProcParamService(ISqlSugarRepository repo) 22 | { 23 | _repo = repo; 24 | } 25 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Temp/BpmProcTemp.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | using Vboot.Core.Common; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | [SugarTable("bpm_proc_temp", TableDescription = "流程模板表")] 7 | public class BpmProcTemp : BaseMainEntity 8 | { 9 | [SugarColumn(ColumnDescription = "原始XML", ColumnDataType = "varchar(max)", IsNullable = true)] 10 | public string orxml { get; set; } 11 | 12 | [SugarColumn(ColumnDescription = "变动后的XML", ColumnDataType = "varchar(max)", IsNullable = true)] 13 | public string chxml { get; set; } 14 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Temp/BpmProcTempApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | using Vboot.Core.Common.Util; 7 | 8 | namespace Vboot.Core.Module.Bpm; 9 | 10 | [ApiDescriptionSettings("Bpm", Tag = "流程引擎-模板")] 11 | public class BpmProcTempApi : IDynamicApiController 12 | { 13 | private readonly BpmProcTempService _service; 14 | 15 | public BpmProcTempApi(BpmProcTempService service) 16 | { 17 | _service = service; 18 | } 19 | 20 | [QueryParameters] 21 | public async Task Get(string name) 22 | { 23 | var pp=XreqUtil.GetPp(); 24 | var items = await _service.repo.Context.Queryable() 25 | .OrderBy(t => t.crtim, OrderByType.Desc) 26 | .OrderBy(t => t.crtim, OrderByType.Desc) 27 | .Select((t) => new {t.id, t.name, t.crtim}) 28 | .ToPageListAsync(pp.page, pp.pageSize, pp.total); 29 | return RestPageResult.Build(pp.total.Value, items); 30 | } 31 | 32 | 33 | 34 | public async Task GetOne(string id) 35 | { 36 | var main = await _service.SingleAsync(id); 37 | return main; 38 | } 39 | 40 | public async Task Post(BpmProcTemp main) 41 | { 42 | return await _service.InsertAsync(main); 43 | } 44 | 45 | public async Task Put(BpmProcTemp main) 46 | { 47 | return await _service.UpdateAsync(main); 48 | } 49 | 50 | public async Task Delete(string ids) 51 | { 52 | await _service.DeleteAsync(ids); 53 | } 54 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Temp/BpmProcTempHand.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Bpm; 6 | 7 | public class BpmProcTempHand : ITransient 8 | { 9 | 10 | 11 | 12 | 13 | 14 | public BpmProcTempHand() 15 | { 16 | 17 | } 18 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Proc/Temp/BpmProcTempService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Bpm; 6 | 7 | public class BpmProcTempService : BaseMainService, ITransient 8 | { 9 | public BpmProcTempService(ISqlSugarRepository repo) 10 | { 11 | this.repo = repo; 12 | } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Task/Hist/BpmTaskHist.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | [SugarTable("bpm_task_hist", TableDescription = "流程任务历史表")] 7 | public class BpmTaskHist 8 | { 9 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 10 | public string id { get; set; } 11 | 12 | [SugarColumn(ColumnDescription = "任务类型", IsNullable = true, Length = 32)] 13 | public string type { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "流程实例id", IsNullable = true, Length = 32)] 16 | public string proid { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "流程节点id", IsNullable = true, Length = 32)] 19 | public string nodid { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "开始时间", IsNullable = true, IsOnlyIgnoreUpdate = true)] 22 | public DateTime? sttim { get; set; }=DateTime.Now; 23 | 24 | [SugarColumn(ColumnDescription = "结束时间", IsNullable = true)] 25 | public DateTime? entim { get; set; } 26 | 27 | [SugarColumn(ColumnDescription = "状态", IsNullable = true, Length = 8)] 28 | public string state { get; set; } 29 | 30 | [SugarColumn(ColumnDescription = "消息类型", IsNullable = true, Length = 8)] 31 | public string notty { get; set; } 32 | 33 | [SugarColumn(ColumnDescription = "实处理人", IsNullable = true, Length = 32)] 34 | public string haman { get; set; } 35 | 36 | [SugarColumn(ColumnDescription = "授权处理人", IsNullable = true, Length = 32)] 37 | public string auman { get; set; } 38 | 39 | [SugarColumn(ColumnDescription = "应处理人", IsNullable = true, Length = 32)] 40 | public string exman { get; set; } 41 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Task/Hist/BpmTaskHistService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using Microsoft.AspNetCore.Mvc.TagHelpers.Cache; 3 | using SqlSugar; 4 | using Yitter.IdGenerator; 5 | 6 | namespace Vboot.Core.Module.Bpm; 7 | 8 | public class BpmTaskHistService : ITransient 9 | { 10 | public BpmTaskHist CreateTask(BpmTaskMain mainTask) 11 | { 12 | BpmTaskHist histTask = new BpmTaskHist(); 13 | histTask.id = mainTask.id; 14 | histTask.proid = mainTask.proid; 15 | histTask.state = "20"; 16 | histTask.exman = mainTask.exman; 17 | histTask.nodid = mainTask.nodid; 18 | histTask.type = "1"; 19 | _repo.Insert(histTask); 20 | return histTask; 21 | } 22 | 23 | public BpmTaskHist FindOne(string id) { 24 | return _repo.Single(t => t.id == id);; 25 | } 26 | 27 | public void Delete(string id) { 28 | _repo.Context.Deleteable().Where(it => it.id == id).ExecuteCommand(); 29 | } 30 | 31 | public void Update(BpmTaskHist hist) { 32 | _repo.Context.Updateable(hist).ExecuteCommand(); 33 | } 34 | 35 | private readonly ISqlSugarRepository _repo; 36 | 37 | public BpmTaskHistService(ISqlSugarRepository repo) 38 | { 39 | _repo = repo; 40 | } 41 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Bpm/Task/Main/BpmTaskMain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Bpm; 5 | 6 | [SugarTable("bpm_task_main", TableDescription = "流程任务表")] 7 | public class BpmTaskMain 8 | { 9 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 10 | public string id { get; set; } 11 | 12 | [SugarColumn(ColumnDescription = "任务类型", IsNullable = true, Length = 32)] 13 | public string type { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "流程实例id", IsNullable = true, Length = 32)] 16 | public string proid { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "流程节点id", IsNullable = true, Length = 32)] 19 | public string nodid { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "开始时间", IsNullable = true, IsOnlyIgnoreUpdate = true)] 22 | public DateTime? sttim { get; set; }=DateTime.Now; 23 | 24 | [SugarColumn(ColumnDescription = "状态", IsNullable = true, Length = 8)] 25 | public string state { get; set; } 26 | 27 | [SugarColumn(ColumnDescription = "消息类型", IsNullable = true, Length = 8)] 28 | public string notty { get; set; } 29 | 30 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 31 | public int ornum { get; set; } 32 | 33 | [SugarColumn(ColumnDescription = "是否激活", IsNullable = true)] 34 | public bool actag { get; set; } 35 | 36 | [SugarColumn(ColumnDescription = "实处理人", IsNullable = true, Length = 32)] 37 | public string haman { get; set; } 38 | 39 | [SugarColumn(ColumnDescription = "授权处理人", IsNullable = true, Length = 32)] 40 | public string auman { get; set; } 41 | 42 | [SugarColumn(ColumnDescription = "应处理人", IsNullable = true, Length = 32)] 43 | public string exman { get; set; } 44 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Gen/Org/Dept/GenOrgDeptApi.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Furion.DynamicApiController; 4 | using Microsoft.AspNetCore.Mvc; 5 | using SqlSugar; 6 | using Vboot.Core.Common; 7 | using Vboot.Core.Module.Sys; 8 | 9 | namespace Vboot.Core.Module.Gen; 10 | 11 | [ApiDescriptionSettings("Gen")] 12 | public class GenOrgDeptApi : IDynamicApiController 13 | { 14 | private readonly ISqlSugarRepository repo; 15 | 16 | public GenOrgDeptApi(ISqlSugarRepository Repo) 17 | { 18 | repo = Repo; 19 | } 20 | 21 | public List GetTree() 22 | { 23 | var trees = repo.Context.SqlQueryable("select id,pid,name from sys_org_dept") 24 | .ToTreeAsync(it => it.children, it => it.pid, null).Result; 25 | Console.WriteLine(trees); 26 | return trees; 27 | } 28 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Pub/Auth/Dto/Duser.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Module.Pub; 2 | 3 | public class Duser 4 | { 5 | public string id { get; set; } 6 | 7 | public string name { get; set; } 8 | 9 | public string pacod { get; set; } 10 | 11 | public bool retag { get; set; } 12 | 13 | public string tier { get; set; } 14 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Pub/Auth/Dto/LoginInput.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Module.Pub; 2 | 3 | public class LoginInput 4 | { 5 | /// sa 6 | public string username { get; set; } 7 | 8 | /// 1 9 | public string password { get; set; } 10 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Pub/Auth/Dto/Zmenu.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Vboot.Core.Module.Pub; 4 | 5 | public class Zmenu 6 | { 7 | 8 | public string id{ get; set; } 9 | 10 | public string pid{ get; set; } 11 | 12 | public string perm{ get; set; } 13 | 14 | public string path{ get; set; } 15 | 16 | public string name{ get; set; } 17 | 18 | public string component{ get; set; } 19 | 20 | public Zmeta meta{ get; set; } 21 | 22 | public string redirect{ get; set; } 23 | 24 | public List children{ get; set; } 25 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Pub/Auth/Dto/Zmeta.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Module.Pub; 2 | 3 | public class Zmeta 4 | { 5 | public string title{ get; set; } 6 | 7 | public string affix{ get; set; } 8 | 9 | public string icon{ get; set; } 10 | 11 | public int orderNo{ get; set; } 12 | 13 | public bool ignoreKeepAlive{ get; set; } 14 | 15 | public Zmeta() 16 | { 17 | } 18 | 19 | public Zmeta(string title, string affix, string icon, int orderNo, bool ignoreKeepAlive) 20 | { 21 | this.title = title; 22 | this.affix = affix; 23 | this.icon = icon; 24 | this.orderNo = orderNo; 25 | this.ignoreKeepAlive = ignoreKeepAlive; 26 | } 27 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Pub/Auth/Dto/Zuser.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Core.Module.Pub; 2 | 3 | public class Zuser 4 | { 5 | public string id { get; set; } 6 | 7 | public string name { get; set; } 8 | 9 | public string usnam { get; set; } 10 | 11 | public string perms { get; set; } //权限集,用于验证URL权限 比较下哪个方式快0 12 | 13 | // public long[] permArr{ get; set; }//权限集,用于验证URL权限 比较下哪个方式快1 14 | 15 | // public List permList{ get; set; }//权限集,用于验证URL权限 比较下哪个方式快2 16 | 17 | public string conds { get; set; } //组织架构集,用户ID,所有上级部门ID,岗位ID,群组ID 18 | 19 | public Zuser() 20 | { 21 | } 22 | 23 | public Zuser(string id, string name, string usnam) 24 | { 25 | this.id = id; 26 | this.name = name; 27 | this.usnam = usnam; 28 | } 29 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Pub/Init/PubInitApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DependencyInjection; 3 | using Furion.DynamicApiController; 4 | using Microsoft.AspNetCore.Authorization; 5 | using Microsoft.AspNetCore.Mvc; 6 | 7 | namespace Vboot.Core.Module.Pub; 8 | 9 | [ApiDescriptionSettings("Sys", Tag = "系统初始化")] 10 | public class PubInitApi : IDynamicApiController, ITransient 11 | { 12 | private readonly PubOrgInitService _orgInitService; 13 | private readonly PubAuthInitService _authInitService; 14 | 15 | public PubInitApi(PubOrgInitService orgInitService, PubAuthInitService authInitService) 16 | { 17 | _orgInitService = orgInitService; 18 | _authInitService = authInitService; 19 | } 20 | 21 | [HttpPost("/pub/org/init")] 22 | [AllowAnonymous] 23 | public async Task PubOrgInit() 24 | { 25 | await _orgInitService.InitAllDept(); 26 | await _orgInitService.InitAllUser(); 27 | await _orgInitService.InitZsf(); 28 | await _orgInitService.InitSa(); 29 | } 30 | 31 | [HttpPost("/pub/auth/init")] 32 | [AllowAnonymous] 33 | public async Task PubAuthInit() 34 | { 35 | await _authInitService.InitAllMenu(); 36 | } 37 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Job/Log/SysJobLog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | [SugarTable("sys_job_log")] 8 | [Description("定时任务日志")] 9 | public class SysJobLog 10 | { 11 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 12 | public string id { get; set; } 13 | 14 | [SugarColumn(ColumnDescription = "名称", IsNullable = true, Length = 255)] 15 | public string name { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "信息", IsNullable = true, Length = 2000)] 18 | public string msg { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "结果", IsNullable = true, Length = 255)] 21 | public string ret { get; set; } 22 | 23 | [SugarColumn(ColumnDescription = "开始时间", IsNullable = true)] 24 | public DateTime sttim { get; set; } 25 | 26 | [SugarColumn(ColumnDescription = "结束时间", IsNullable = true)] 27 | public DateTime entim { get; set; } 28 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Job/Log/SysJobLogApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using Org.BouncyCastle.Crypto.Engines; 5 | using SqlSugar; 6 | using Vboot.Core.Common; 7 | using Vboot.Core.Common.Util; 8 | 9 | namespace Vboot.Core.Module.Sys; 10 | 11 | [ApiDescriptionSettings("Sys", Tag = "定时任务-日志")] 12 | public class SysJobLogApi : IDynamicApiController 13 | { 14 | private readonly SysJobLogService _service; 15 | 16 | public SysJobLogApi(SysJobLogService sysJobLogService) 17 | { 18 | _service = sysJobLogService; 19 | } 20 | 21 | [QueryParameters] 22 | public async Task Get(string name) 23 | { 24 | var pp = XreqUtil.GetPp(); 25 | var items = await _service.repo.Context.Queryable() 26 | .Select((t) => new {t.id, t.name, t.sttim, t.entim, t.msg, t.ret}) 27 | .WhereIF(!string.IsNullOrWhiteSpace(name), t => t.name.Contains(name.Trim())) 28 | .ToPageListAsync(pp.page, pp.pageSize, pp.total); 29 | return RestPageResult.Build(pp.total.Value, items); 30 | } 31 | 32 | public async Task GetOne(string id) 33 | { 34 | var cate = await _service.SingleAsync(id); 35 | return cate; 36 | } 37 | 38 | public async Task Delete(string ids) 39 | { 40 | var idArr = ids.Split(","); 41 | await _service.DeleteAsync(idArr); 42 | } 43 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Job/Log/SysJobLogService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DependencyInjection; 3 | using SqlSugar; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | public class SysJobLogService : ITransient 8 | { 9 | public ISqlSugarRepository repo { get; } 10 | 11 | public SysJobLogService(ISqlSugarRepository repo) 12 | { 13 | this.repo = repo; 14 | } 15 | 16 | public async Task SingleAsync(string id) 17 | { 18 | return await repo.SingleAsync(t => t.id == id); 19 | } 20 | 21 | public async Task DeleteAsync(string[] ids) 22 | { 23 | await repo.Context.Deleteable().In(ids).ExecuteCommandAsync(); 24 | } 25 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Job/Main/SysJobMain.cs: -------------------------------------------------------------------------------- 1 | using Furion.TaskScheduler; 2 | using SqlSugar; 3 | using System.ComponentModel; 4 | using System.ComponentModel.DataAnnotations; 5 | using Vboot.Core.Common; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | /// 10 | /// 定时任务 11 | /// 12 | [SugarTable("sys_job_main")] 13 | [Description("定时任务")] 14 | public class SysJobMain : BaseMainEntity 15 | { 16 | /// 17 | /// 任务code 18 | /// 19 | [SugarColumn(ColumnDescription = "任务代码", IsNullable = true)] 20 | public string code { get; set; } 21 | 22 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 23 | public int ornum { get; set; } 24 | 25 | /// 26 | /// 请求url 27 | /// 28 | [MaxLength(200)] 29 | [SugarColumn(ColumnDescription = "请求url", IsNullable = true)] 30 | public string reurl { get; set; } 31 | 32 | 33 | /// 34 | /// 请求类型 35 | /// 36 | /// 2 37 | [SugarColumn(ColumnDescription = "请求类型", IsNullable = true)] 38 | public RequestTypeEnum retyp { get; set; } = RequestTypeEnum.Post; 39 | 40 | /// 41 | /// Headers(可以包含如:Authorization授权认证) 42 | /// 格式:{"Authorization":"userpassword.."} 43 | /// 44 | [SugarColumn(ColumnDescription = "Headers", IsNullable = true)] 45 | public string rehea { get; set; } 46 | 47 | /// 48 | /// 请求参数(Post,Put请求用) 49 | /// 50 | [SugarColumn(ColumnDescription = "请求参数", IsNullable = true)] 51 | public string repar { get; set; } 52 | 53 | /// 54 | /// Cron表达式 55 | /// 56 | /// 57 | [MaxLength(20)] 58 | [SugarColumn(ColumnDescription = "Cron表达式", IsNullable = true)] 59 | public string cron { get; set; } 60 | 61 | /// 62 | /// 执行类型(并行、列队) 63 | /// 64 | [SugarColumn(ColumnDescription = "执行类型", IsNullable = true)] 65 | public SpareTimeExecuteTypes extyp { get; set; } = SpareTimeExecuteTypes.Parallel; 66 | 67 | [SugarColumn(ColumnDescription = "备注", IsNullable = true)] 68 | public string notes { get; set; } 69 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Log/Audit/SysLogAudit.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | using System; 3 | using System.ComponentModel; 4 | using System.ComponentModel.DataAnnotations; 5 | using Vboot.Core.Common; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | /// 10 | /// 系统操作/审计日志表 11 | /// 12 | [SugarTable("sys_log_audit")] 13 | [Description("系统操作/审计日志表")] 14 | public class SysLogAudit 15 | { 16 | /// 17 | /// 主键Id 18 | /// 19 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true)] 20 | public string Id { get; set; } 21 | 22 | /// 23 | /// 表名 24 | /// 25 | [MaxLength(50)] 26 | [SugarColumn(ColumnDescription = "表名", IsNullable = true)] 27 | public string TableName { get; set; } 28 | 29 | /// 30 | /// 列名 31 | /// 32 | [MaxLength(50)] 33 | [SugarColumn(ColumnDescription = "列名", IsNullable = true)] 34 | public string ColumnName { get; set; } 35 | 36 | /// 37 | /// 新值 38 | /// 39 | [SugarColumn(ColumnDescription = "新值", IsNullable = true)] 40 | public string NewValue { get; set; } 41 | 42 | /// 43 | /// 旧值 44 | /// 45 | [SugarColumn(ColumnDescription = "旧值", IsNullable = true)] 46 | public string OldValue { get; set; } 47 | 48 | /// 49 | /// 操作时间 50 | /// 51 | [SugarColumn(ColumnDescription = "操作时间", IsNullable = true)] 52 | public DateTime CreatedTime { get; set; } 53 | 54 | /// 55 | /// 操作人Id 56 | /// 57 | [SugarColumn(ColumnDescription = "操作人Id", IsNullable = true)] 58 | public long UserId { get; set; } 59 | 60 | /// 61 | /// 操作人名称 62 | /// 63 | [MaxLength(20)] 64 | [SugarColumn(ColumnDescription = "操作人名称", IsNullable = true)] 65 | public string UserName { get; set; } 66 | 67 | /// 68 | /// 操作方式:新增、更新、删除 69 | /// 70 | [SugarColumn(ColumnDescription = "操作方式:新增、更新、删除", IsNullable = true)] 71 | public DataOpType Operate { get; set; } 72 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Log/Login/SysLogLogin.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | using System; 3 | using System.ComponentModel; 4 | using System.ComponentModel.DataAnnotations; 5 | using Vboot.Core.Common; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | /// 10 | /// 登录日志表 11 | /// 12 | [SugarTable("sys_log_login")] 13 | [Description("登录日志表")] 14 | public class SysLogLogin : BaseEntity 15 | { 16 | // /// 17 | // /// 主键ID 18 | // /// 19 | // [SugarColumn(ColumnDescription = "ID主键", IsPrimaryKey = true)] 20 | // public string id { get; set; } 21 | // 22 | // /// 23 | // /// 用户姓名 24 | // /// 25 | // [MaxLength(100)] 26 | // [SugarColumn(ColumnDescription = "用户姓名", IsNullable = true, Length = 32)] 27 | // public string name { get; set; } 28 | 29 | /// 30 | /// 用户账号 31 | /// 32 | [MaxLength(36)] 33 | [SugarColumn(ColumnDescription = "用户账号", IsNullable = true)] 34 | public string usnam { get; set; } 35 | 36 | 37 | /// 38 | /// IP地址 39 | /// 40 | [MaxLength(32)] 41 | public string ip { get; set; } 42 | 43 | /// 44 | /// 登录地点 45 | /// 46 | [MaxLength(100)] 47 | [SugarColumn(ColumnDescription = "登录地点", IsNullable = true)] 48 | public string addre { get; set; } 49 | 50 | /// 51 | /// 操作系统 52 | /// 53 | [MaxLength(64)] 54 | [SugarColumn(ColumnDescription = "操作系统", IsNullable = true)] 55 | public string ageos { get; set; } 56 | 57 | /// 58 | /// 浏览器 59 | /// 60 | [MaxLength(64)] 61 | [SugarColumn(ColumnDescription = "浏览器", IsNullable = true)] 62 | public string agbro { get; set; } 63 | 64 | /// 65 | /// 客户端详情 66 | /// 67 | [MaxLength(512)] 68 | [SugarColumn(ColumnDescription = "客户端详情", IsNullable = true)] 69 | public string agdet { get; set; } 70 | 71 | /// 72 | /// 登录时间 73 | /// 74 | [SugarColumn(ColumnDescription = "登录时间", IsNullable = true)] 75 | public DateTime crtim { get; set; } 76 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Log/Login/SysLogLoginApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using Vboot.Core.Common; 5 | using Vboot.Core.Common.Util; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | [ApiDescriptionSettings("Sys", Tag = "系统日志-登录日志")] 10 | public class SysLogLoginApi : IDynamicApiController 11 | { 12 | private readonly SysLogLoginService _service; 13 | 14 | public SysLogLoginApi(SysLogLoginService sysLogLoginService) 15 | { 16 | _service = sysLogLoginService; 17 | } 18 | 19 | [QueryParameters] 20 | public async Task Get(string name) 21 | { 22 | var pp = XreqUtil.GetPp(); 23 | var items = await _service.repo.Context.Queryable() 24 | .WhereIF(!string.IsNullOrWhiteSpace(name), t => t.name.Contains(name.Trim())) 25 | .ToPageListAsync(pp.page, pp.pageSize, pp.total); 26 | return RestPageResult.Build(pp.total.Value, items); 27 | } 28 | 29 | public async Task GetOne(string id) 30 | { 31 | return await _service.SingleAsync(id); 32 | } 33 | 34 | public async Task Delete(string ids) 35 | { 36 | await _service.DeleteAsync(ids); 37 | } 38 | 39 | public async Task DeleteAll(string ids) 40 | { 41 | var idArr = ids.Split(","); 42 | await _service.repo.Context.Deleteable().ExecuteCommandAsync(); 43 | } 44 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Log/Login/SysLogLoginService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | public class SysLogLoginService : BaseService, ITransient 8 | { 9 | public SysLogLoginService(ISqlSugarRepository repo) 10 | { 11 | this.repo = repo; 12 | } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Dept/SysOrgDept.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | 6 | namespace Vboot.Core.Module.Sys; 7 | 8 | [SugarTable("sys_org_dept", TableDescription = "系统部门表")] 9 | [Description("系统部门表")] 10 | public class SysOrgDept : BaseMainEntity 11 | { 12 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 13 | public int ornum { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "标签", IsNullable = true, Length = 32)] 16 | public string label { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "备注", IsNullable = true)] 19 | public string notes { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "类别:1机构,2部门", IsNullable = true)] 22 | public int type { get; set; } 23 | 24 | [SugarColumn(ColumnDescription = "父ID", IsNullable = true, Length = 32)] 25 | public string pid { get; set; } 26 | 27 | [SqlSugar.SugarColumn(IsIgnore = true)] 28 | public SysOrg parent { get; set; } 29 | 30 | [SqlSugar.SugarColumn(IsIgnore = true)] 31 | public List children { get; set; } 32 | 33 | [SugarColumn(ColumnDescription = "层级", IsNullable = true, Length = 1000)] 34 | public string tier { get; set; } 35 | 36 | [SugarColumn(ColumnDescription = "ldap层级名称", IsNullable = true, Length = 1000)] 37 | public string ldnam { get; set; } 38 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Group/SysOrgGroup.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | 6 | namespace Vboot.Core.Module.Sys; 7 | 8 | [SugarTable("sys_org_group", TableDescription = "组织机构群组表")] 9 | [Description("组织机构群组表")] 10 | public class SysOrgGroup : BaseMainEntity 11 | { 12 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 64)] 13 | public string notes { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 16 | public int ornum { get; set; } 17 | 18 | 19 | [SugarColumn(IsIgnore = true)] public List members { get; set; } 20 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Group/SysOrgGroupOrg.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | 3 | namespace Vboot.Core.Module.Sys; 4 | 5 | [SugarTable("sys_org_group_org", TableDescription = "组织架构群组成员关系表")] 6 | public class SysOrgGroupOrg 7 | { 8 | [SugarColumn(ColumnDescription = "群组ID", IsNullable = true)] 9 | public string gid { get; set; } 10 | 11 | [SugarColumn(ColumnDescription = "成员ID", IsNullable = true)] 12 | public string oid { get; set; } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Group/SysOrgGroupService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using Furion.DependencyInjection; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | public class SysOrgGroupService : BaseMainService, ITransient 10 | { 11 | public SysOrgGroupService(ISqlSugarRepository repo) 12 | { 13 | base.repo = repo; 14 | } 15 | 16 | public async Task InsertAsync(SysOrgGroup group, List gmmaps) 17 | { 18 | using var tran = repo.Context.UseTran(); 19 | await base.InsertAsync(@group); 20 | await repo.Context.Insertable(gmmaps).ExecuteCommandAsync(); 21 | await repo.Context.Insertable(new SysOrg {id = group.id, name = group.name}).ExecuteCommandAsync(); 22 | tran.CommitTran(); 23 | } 24 | 25 | 26 | public async Task UpdateAsync(SysOrgGroup group, List gmmaps) 27 | { 28 | using var tran = repo.Context.UseTran(); 29 | await base.UpdateAsync(@group); 30 | await repo.Context.Deleteable().Where(it => it.gid == @group.id).ExecuteCommandAsync(); 31 | await repo.Context.Insertable(gmmaps).ExecuteCommandAsync(); 32 | await repo.Context.Updateable(new SysOrg {id = group.id, name = group.name}) 33 | .UpdateColumns(it => new {it.name}).ExecuteCommandAsync(); 34 | tran.CommitTran(); 35 | } 36 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Post/SysOrgPost.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | 6 | namespace Vboot.Core.Module.Sys; 7 | 8 | [SugarTable("sys_org_post", TableDescription = "系统岗位表")] 9 | [Description("系统岗位表")] 10 | public class SysOrgPost : BaseMainEntity 11 | { 12 | [SugarColumn(ColumnDescription = "部门ID", IsNullable = true, Length = 36)] 13 | public string deptid { get; set; } 14 | 15 | [SugarColumn(IsIgnore = true)] public SysOrgDept dept { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "层级", IsNullable = true, Length = 1000)] 18 | public string tier { get; set; } 19 | 20 | 21 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 64)] 22 | public string notes { get; set; } 23 | 24 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 25 | public int ornum { get; set; } 26 | 27 | 28 | [SugarColumn(ColumnDescription = "ldap层级名称", IsNullable = true, Length = 1000)] 29 | public string ldnam { get; set; } 30 | 31 | [SugarColumn(IsIgnore = true)] public List users { get; set; } 32 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Post/SysOrgPostOrg.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | 3 | namespace Vboot.Core.Module.Sys; 4 | 5 | [SugarTable("sys_org_post_org", TableDescription = "岗位员工关系表")] 6 | public class SysOrgPostOrg 7 | { 8 | [SugarColumn(ColumnDescription = "岗位ID", IsNullable = true)] 9 | public string pid { get; set; } 10 | 11 | [SugarColumn(ColumnDescription = "用户ID", IsNullable = true)] 12 | public string oid { get; set; } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Post/SysOrgPostService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using Furion.DependencyInjection; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | public class SysOrgPostService : BaseMainService, ITransient 10 | { 11 | public SysOrgPostService(ISqlSugarRepository repo) 12 | { 13 | base.repo = repo; 14 | } 15 | 16 | 17 | public async Task InsertAsync(SysOrgPost post, List pumaps) 18 | { 19 | if (post.dept != null) 20 | { 21 | post.deptid = post.dept.id; 22 | var deptTier = await repo.Context.Queryable() 23 | .Where(it => it.id == post.deptid).Select(it => it.tier).SingleAsync(); 24 | post.tier = deptTier + post.id + "x"; 25 | } 26 | 27 | using var tran = repo.Context.UseTran(); 28 | await base.InsertAsync(post); 29 | await repo.Context.Insertable(new SysOrg {id = post.id, name = post.name}).ExecuteCommandAsync(); 30 | await repo.Context.Insertable(pumaps).ExecuteCommandAsync(); 31 | tran.CommitTran(); 32 | } 33 | 34 | 35 | public async Task UpdateAsync(SysOrgPost post, List pumaps) 36 | { 37 | if (post.dept != null) 38 | { 39 | post.deptid = post.dept.id; 40 | var deptTier = await repo.Context.Queryable() 41 | .Where(it => it.id == post.deptid).Select(it => it.tier).SingleAsync(); 42 | post.tier = deptTier + post.id + "x"; 43 | } 44 | 45 | using var tran = repo.Context.UseTran(); 46 | await base.UpdateAsync(post); 47 | await repo.Context.Updateable(new SysOrg {id = post.id, name = post.name}) 48 | .UpdateColumns(it => new {it.name}).ExecuteCommandAsync(); 49 | await repo.Context.Deleteable().Where(it => it.pid == post.id).ExecuteCommandAsync(); 50 | await repo.Context.Insertable(pumaps).ExecuteCommandAsync(); 51 | tran.CommitTran(); 52 | } 53 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Rece/SysOrgRece.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | [SugarTable("sys_org_rece", TableDescription = "组织架构使用记录")] 8 | [Description("组织架构使用记录")] 9 | public class SysOrgRece 10 | { 11 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 12 | public string id { get; set; } 13 | 14 | [SugarColumn(ColumnDescription = "用户ID", Length = 36)] 15 | public string userid { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "组织架构ID", Length = 36)] 18 | public string orgid { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "最近使用时间", IsNullable = true)] 21 | public virtual DateTime? uptim { get; set; } 22 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Rece/SysOrgReceService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using Furion.DependencyInjection; 5 | using SqlSugar; 6 | using Vboot.Core.Common.Util; 7 | using Yitter.IdGenerator; 8 | 9 | namespace Vboot.Core.Module.Sys; 10 | 11 | public class SysOrgReceService : ITransient 12 | { 13 | public async Task update(List reces) 14 | { 15 | string userid = XuserUtil.getUserId(); 16 | 17 | List orgidList = new List(); 18 | foreach (var rece in reces) 19 | { 20 | rece.orgid = rece.id; 21 | rece.id = YitIdHelper.NextId() + ""; 22 | rece.userid = userid; 23 | rece.uptim = DateTime.Now; 24 | orgidList.Add(rece.orgid); 25 | } 26 | 27 | //数据库删除本次已传的记录 28 | await _repo.Context.Deleteable().Where("userid=@userid",new { userid}) 29 | .Where("orgid in (@orgid)", new {orgid = orgidList.ToArray()}).ExecuteCommandAsync(); 30 | 31 | //删除当前数据库最近10次前的数据 32 | RefAsync total = 0; 33 | var items = await _repo.Context.Queryable() 34 | .Where(it=>it.userid==userid) 35 | .OrderBy(u => u.uptim, OrderByType.Desc) 36 | .Select((t) => t.id) 37 | .ToPageListAsync(2, 10, total); 38 | if (items.Count > 0) 39 | { 40 | await _repo.Context.Deleteable().In(items.ToArray()).ExecuteCommandAsync(); 41 | } 42 | 43 | //插入本次使用的记录 44 | await _repo.InsertAsync(reces); 45 | } 46 | 47 | 48 | public readonly ISqlSugarRepository _repo; 49 | 50 | public SysOrgReceService(ISqlSugarRepository repo) 51 | { 52 | _repo = repo; 53 | } 54 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/Root/SysOrg.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Sys; 5 | 6 | [SugarTable("sys_org", TableDescription = "组织架构表")] 7 | [Description("组织架构表")] 8 | public class SysOrg 9 | { 10 | [SugarColumn(ColumnDescription = "ID", IsPrimaryKey = true, Length = 36)] 11 | public virtual string id { get; set; } 12 | 13 | [SugarColumn(ColumnDescription = "名称", IsNullable = true, Length = 128)] 14 | public virtual string name { get; set; } 15 | 16 | public SysOrg() 17 | { 18 | } 19 | 20 | public SysOrg(string id) 21 | { 22 | this.id = id; 23 | } 24 | 25 | public SysOrg(string id, string name) 26 | { 27 | this.id = id; 28 | this.name = name; 29 | } 30 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/User/SysOrgUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Text.Json.Serialization; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | [SugarTable("sys_org_user", TableDescription = "系统用户表")] 10 | [Description("系统用户表")] 11 | public class SysOrgUser : BaseMainEntity 12 | { 13 | [SugarColumn(ColumnDescription = "部门ID", IsNullable = true, Length = 36)] 14 | public string deptid { get; set; } 15 | 16 | [SugarColumn(IsIgnore = true)] public SysOrgDept dept { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "层级", IsNullable = true, Length = 1000)] 19 | public string tier { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "职务", IsNullable = true, Length = 255)] 22 | public string job { get; set; } 23 | 24 | [SugarColumn(ColumnDescription = "用户名", IsNullable = true, Length = 32)] 25 | public string usnam { get; set; } 26 | 27 | [JsonIgnore] 28 | [SugarColumn(ColumnDescription = "密码", IsNullable = true, Length = 64, IsOnlyIgnoreUpdate = true)] 29 | public string pacod { get; set; } 30 | 31 | [SugarColumn(ColumnDescription = "邮箱", IsNullable = true, Length = 64)] 32 | public string email { get; set; } 33 | 34 | [SugarColumn(ColumnDescription = "手机号", IsNullable = true, Length = 32)] 35 | public string monum { get; set; } 36 | 37 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 255)] 38 | public string notes { get; set; } 39 | 40 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 41 | public int ornum { get; set; } 42 | 43 | [SugarColumn(ColumnDescription = "ldap层级名称", IsNullable = true, Length = 1000)] 44 | public string ldnam { get; set; } 45 | 46 | 47 | [SugarColumn(ColumnDescription = "准备标记", IsNullable = true)] 48 | public bool retag { get; set; } 49 | 50 | 51 | [SugarColumn(ColumnDescription = "最后登录时间", IsNullable = true)] 52 | public DateTime lalot { get; set; } 53 | 54 | [SugarColumn(ColumnDescription = "最后登录IP", IsNullable = true, Length = 20)] 55 | public string laloi { get; set; } 56 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/User/SysOrgUserCache.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Sys; 5 | 6 | [SugarTable("sys_org_user_cache", TableDescription = "用户缓存表")] 7 | [Description("用户缓存表")] 8 | public class SysOrgUserCache 9 | { 10 | /// 11 | /// 主键Id 12 | /// 13 | /// 14 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 15 | public string id { get; set; } 16 | 17 | /// 18 | /// 组织架构集 19 | /// 20 | /// 21 | //组织架构集,用户ID,所有上级部门ID,岗位ID,群组ID 22 | [SugarColumn(ColumnDescription = "组织架构集", IsNullable = true, Length = 2000)] 23 | public string conds { get; set; } 24 | 25 | /// 26 | /// 后台所有权限集 27 | /// 28 | /// 29 | //后台所有权限集,用于验证URL权限 30 | [SugarColumn(ColumnDescription = "后台所有权限集", IsNullable = true, Length = 2000)] 31 | public string perms { get; set; } 32 | 33 | /// 34 | /// 前台菜单缓存 35 | /// 36 | /// 37 | [SugarColumn(ColumnDescription = "前台菜单缓存", IsNullable = true, ColumnDataType = "varchar(max)")] 38 | public string menus { get; set; } 39 | 40 | /// 41 | /// 前台按钮缓存 42 | /// 43 | /// 44 | [SugarColumn(ColumnDescription = "前台按钮缓存", IsNullable = true, Length = 2000)] 45 | public string btns { get; set; } 46 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Org/User/SysOrgUserService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DependencyInjection; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | using Yitter.IdGenerator; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | public class SysOrgUserService : BaseMainService, ITransient 10 | { 11 | public SysOrgUserService(ISqlSugarRepository repo) 12 | { 13 | base.repo = repo; 14 | } 15 | 16 | public new async Task InsertAsync(SysOrgUser user) 17 | { 18 | user.id = YitIdHelper.NextId() + ""; 19 | if (user.dept != null) 20 | { 21 | user.deptid = user.dept.id; 22 | var deptTier = await repo.Context.Queryable() 23 | .Where(it => it.id == user.deptid).Select(it => it.tier).SingleAsync(); 24 | user.tier = deptTier + user.id + "x"; 25 | } 26 | 27 | using var tran = repo.Context.UseTran(); 28 | await base.InsertAsync(user); 29 | await repo.Context.Insertable(new SysOrg {id = user.id, name = user.name}).ExecuteCommandAsync(); 30 | tran.CommitTran(); 31 | } 32 | 33 | 34 | public new async Task UpdateAsync(SysOrgUser user) 35 | { 36 | if (user.dept != null) 37 | { 38 | user.deptid = user.dept.id; 39 | var deptTier = await repo.Context.Queryable() 40 | .Where(it => it.id == user.deptid).Select(it => it.tier).SingleAsync(); 41 | user.tier = deptTier + user.id + "x"; 42 | } 43 | 44 | using var tran = repo.Context.UseTran(); 45 | await base.UpdateAsync(user); 46 | await repo.Context.Updateable(new SysOrg {id = user.id, name = user.name}) 47 | .UpdateColumns(it => new {it.name}).ExecuteCommandAsync(); 48 | tran.CommitTran(); 49 | } 50 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Api/SysPermApi.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Sys; 5 | 6 | [SugarTable("sys_perm_api", TableDescription = "权限标识")] 7 | [Description("权限标识")] 8 | public class SysPermApi 9 | { 10 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 64)] 11 | public string id { get; set; } 12 | 13 | [SugarColumn(ColumnDescription = "上级权限", IsNullable = true, Length = 64)] 14 | public string pid { get; set; } 15 | 16 | [SugarColumn(ColumnDescription = "权限url", IsNullable = true, Length = 128)] 17 | public string url { get; set; } 18 | 19 | [SugarColumn(ColumnDescription = "权限代码", IsNullable = true, IsOnlyIgnoreUpdate = true)] 20 | public long code { get; set; } 21 | 22 | [SugarColumn(ColumnDescription = "权限位", IsNullable = true, IsOnlyIgnoreUpdate = true)] 23 | public int pos { get; set; } 24 | 25 | [SugarColumn(ColumnDescription = "权限类型", IsNullable = true)] 26 | public string type { get; set; } 27 | 28 | [SugarColumn(ColumnDescription = "是否可用", IsNullable = true)] 29 | public bool avtag { get; set; } = true; 30 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Api/SysPermApiApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using SqlSugar; 5 | 6 | namespace Vboot.Core.Module.Sys; 7 | 8 | [ApiDescriptionSettings("Sys", Tag = "权限管理-权限标识")] 9 | public class SysPermApiApi : IDynamicApiController 10 | { 11 | private readonly ISqlSugarRepository _repo; 12 | 13 | public SysPermApiApi( 14 | ISqlSugarRepository repo) 15 | { 16 | _repo = repo; 17 | } 18 | 19 | public async Task GetList() 20 | { 21 | return await _repo.ToListAsync(); 22 | } 23 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Api/SysPermApiCache.cs: -------------------------------------------------------------------------------- 1 |  2 | using System; 3 | using Vboot.Web.Core; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | public class SysPermApiCache 8 | { 9 | public static Yperm[] GET_URLS = Array.Empty(); 10 | 11 | public static Yperm[] POST_URLS = Array.Empty(); 12 | 13 | public static Yperm[] PUT_URLS = Array.Empty(); 14 | 15 | public static Yperm[] DELETE_URLS = Array.Empty(); 16 | 17 | public static int AUTHPOS = 0; 18 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Api/Yperm.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Web.Core; 2 | 3 | public class Yperm 4 | { 5 | public int pos { get; set; } 6 | 7 | public long code { get; set; } 8 | 9 | public string url { get; set; } 10 | 11 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Menu/SysPermMenuApi.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | using Furion.DynamicApiController; 4 | using Microsoft.AspNetCore.Mvc; 5 | using Yitter.IdGenerator; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | [ApiDescriptionSettings("Sys", Tag = "权限管理-菜单")] 10 | public class SysPermMenuApi : IDynamicApiController 11 | { 12 | private readonly SysPermMenuService _service; 13 | 14 | public SysPermMenuApi( 15 | SysPermMenuService service) 16 | { 17 | _service = service; 18 | } 19 | 20 | [QueryParameters] 21 | public async Task GetTree() 22 | { 23 | var treeList = await _service.repo.Context 24 | .SqlQueryable( 25 | "select id,pid,name,type,crtim,uptim,notes from sys_perm_menu order by ornum") 26 | .ToTreeAsync(it => it.children, it => it.pid, null); 27 | return treeList; 28 | } 29 | 30 | public async Task GetOne(string id) 31 | { 32 | var menu = await _service.repo.Context.Queryable() 33 | .Where(it => it.id == id).FirstAsync(); 34 | if (menu.pid != null) 35 | { 36 | menu.pname = await _service.repo.Context.Queryable() 37 | .Where(it => it.id == menu.pid).Select(it => it.name).SingleAsync(); 38 | } 39 | 40 | return menu; 41 | } 42 | 43 | public async Task Post(SysPermMenu menu) 44 | { 45 | menu.id = YitIdHelper.NextId() + ""; 46 | await _service.InsertAsync(menu); 47 | } 48 | 49 | public async Task Put(SysPermMenu menu) 50 | { 51 | await _service.UpdateAsync(menu); 52 | } 53 | 54 | public async Task Delete(string ids) 55 | { 56 | var idArr = ids.Split(","); 57 | foreach (var id in idArr) 58 | { 59 | var count = await 60 | _service.repo.Context.Queryable().Where(it => it.pid == id).CountAsync(); 61 | if (count > 0) 62 | { 63 | throw new Exception("有子菜单或按钮无法删除"); 64 | } 65 | } 66 | 67 | await _service.DeleteAsync(ids); 68 | } 69 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Menu/SysPermMenuService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | public class SysPermMenuService : BaseMainService, ITransient 8 | { 9 | public SysPermMenuService(ISqlSugarRepository repo) 10 | { 11 | base.repo = repo; 12 | } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Role/SysPermRole.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | 6 | namespace Vboot.Core.Module.Sys; 7 | 8 | [SugarTable("sys_perm_role", TableDescription = "权限管理角色表")] 9 | [Description("权限管理角色表")] 10 | public class SysPermRole : BaseMainEntity 11 | { 12 | [SugarColumn(ColumnDescription = "分类", IsNullable = true, Length = 32)] 13 | public string type { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "标签", IsNullable = true, Length = 32)] 16 | public string label { get; set; } 17 | 18 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 64)] 19 | public string notes { get; set; } 20 | 21 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 22 | public int ornum { get; set; } 23 | 24 | [SugarColumn(IsIgnore = true)] public List menus { get; set; } 25 | 26 | [SugarColumn(IsIgnore = true)] public List orgs { get; set; } 27 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Role/SysPermRoleMenu.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | 3 | namespace Vboot.Core.Module.Sys; 4 | 5 | [SugarTable("sys_perm_role_menu", TableDescription = "角色菜单对应表")] 6 | public class SysPermRoleMenu 7 | { 8 | [SugarColumn(ColumnDescription = "角色ID", IsNullable = true)] 9 | public string rid { get; set; } 10 | 11 | [SugarColumn(ColumnDescription = "菜单ID", IsNullable = true)] 12 | public string mid { get; set; } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Role/SysPermRoleOrg.cs: -------------------------------------------------------------------------------- 1 | using SqlSugar; 2 | 3 | namespace Vboot.Core.Module.Sys; 4 | 5 | [SugarTable("sys_perm_role_org", TableDescription = "角色组织对应表")] 6 | public class SysPermRoleOrg 7 | { 8 | [SugarColumn(ColumnDescription = "角色ID", IsNullable = true)] 9 | public string rid { get; set; } 10 | 11 | [SugarColumn(ColumnDescription = "组织架构ID", IsNullable = true)] 12 | public string oid { get; set; } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Perm/Role/SysPermRoleService.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using Furion.DependencyInjection; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | 7 | namespace Vboot.Core.Module.Sys; 8 | 9 | public class SysPermRoleService : BaseMainService, ITransient 10 | { 11 | public SysPermRoleService(ISqlSugarRepository repo) 12 | { 13 | base.repo = repo; 14 | } 15 | 16 | public async Task InsertAsync(SysPermRole role, List romaps, List rmmaps) 17 | { 18 | using var tran = repo.Context.UseTran(); 19 | await base.InsertAsync(role); 20 | await repo.Context.Insertable(romaps).ExecuteCommandAsync(); 21 | await repo.Context.Insertable(rmmaps).ExecuteCommandAsync(); 22 | tran.CommitTran(); 23 | } 24 | 25 | public async Task UpdateAsync(SysPermRole role, List romaps, List rmmaps) 26 | { 27 | using var tran = repo.Context.UseTran(); 28 | await base.UpdateAsync(role); 29 | await repo.Context.Deleteable().Where(it => it.rid == role.id).ExecuteCommandAsync(); 30 | await repo.Context.Insertable(romaps).ExecuteCommandAsync(); 31 | await repo.Context.Deleteable().Where(it => it.rid == role.id).ExecuteCommandAsync(); 32 | await repo.Context.Insertable(rmmaps).ExecuteCommandAsync(); 33 | tran.CommitTran(); 34 | } 35 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Todo/Done/SysTodoUser.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | [SugarTable("sys_todo_user", TableDescription = "系统待办完成表")] 8 | [Description("系统待办完成表")] 9 | public class SysTodoDone 10 | { 11 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 12 | public string id { get; set; } 13 | 14 | [SugarColumn(ColumnDescription = "待办ID", IsNullable = true, Length = 32)] 15 | public string tid { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "用户ID", IsNullable = true, Length = 32)] 18 | public string uid { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "完成时间", IsNullable = true)] 21 | public DateTime? entim { get; set; } = DateTime.Now; 22 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Todo/Main/SysTodoMain.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | 6 | namespace Vboot.Core.Module.Sys; 7 | 8 | [SugarTable("sys_todo_main", TableDescription = "系统待办待阅表")] 9 | [Description("系统待办待阅表")] 10 | public class SysTodoMain : BaseEntity 11 | { 12 | //1:待办;2:待阅 13 | [SugarColumn(ColumnDescription = "类型", IsNullable = true, Length = 8)] 14 | public string type { get; set; } 15 | 16 | [SugarColumn(ColumnDescription = "紧急度", IsNullable = true, Length = 8)] 17 | public string level { get; set; } 18 | 19 | [SugarColumn(ColumnDescription = "模型分类", IsNullable = true, Length = 128)] 20 | public string modca { get; set; } 21 | 22 | [SugarColumn(ColumnDescription = "模型ID", IsNullable = true, Length = 32)] 23 | public string modid { get; set; } 24 | 25 | [SugarColumn(ColumnDescription = "链接", IsNullable = true, Length = 512)] 26 | public string link { get; set; } 27 | 28 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 256)] 29 | public string notes { get; set; } 30 | 31 | [SugarColumn(ColumnDescription = "创建者Id", IsNullable = true, Length = 36)] 32 | public string crman { get; set; } 33 | 34 | [SugarColumn(ColumnDescription = "创建时间", IsNullable = true, IsOnlyIgnoreUpdate = true)] 35 | public DateTime? crtim { get; set; } = DateTime.Now; 36 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Todo/Main/SysTodoMainApi.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DynamicApiController; 3 | using Microsoft.AspNetCore.Mvc; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | using Vboot.Core.Common.Util; 7 | using Vboot.Core.Module.Sys; 8 | 9 | namespace Vboot.Core.Module.Sys; 10 | 11 | [ApiDescriptionSettings("Sys", Tag = "消息管理-待办")] 12 | public class SysTodoMainApi : IDynamicApiController 13 | { 14 | private readonly SysTodoMainService _service; 15 | 16 | public SysTodoMainApi(SysTodoMainService service) 17 | { 18 | _service = service; 19 | } 20 | 21 | [QueryParameters] 22 | public async Task Get(string name) 23 | { 24 | var pp = XreqUtil.GetPp(); 25 | var items = await _service.repo.Context.Queryable((t, u,o) 26 | => new JoinQueryInfos(JoinType.Inner, u.tid == t.id,JoinType.Inner, o.id == u.uid)) 27 | .WhereIF(!string.IsNullOrWhiteSpace(name), t => t.name.Contains(name.Trim())) 28 | .Select((t,u,o) => 29 | new {t.id, t.name,exman=o.name,t.crtim,t.link}) 30 | .ToPageListAsync(pp.page, pp.pageSize, pp.total); 31 | return RestPageResult.Build(pp.total.Value, items); 32 | } 33 | 34 | public async Task GetOne(string id) 35 | { 36 | var cate = await _service.repo.Context.Queryable() 37 | .Where(it => it.id == id).FirstAsync(); 38 | return cate; 39 | } 40 | 41 | public async Task Post(SysTodoMain main) 42 | { 43 | await _service.InsertAsync(main); 44 | } 45 | 46 | public async Task Put(SysTodoMain cate) 47 | { 48 | await _service.UpdateAsync(cate); 49 | } 50 | 51 | public async Task Delete(string ids) 52 | { 53 | await _service.DeleteAsync(ids); 54 | } 55 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Todo/Main/SysTodoMainService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Furion.DependencyInjection; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | using Vboot.Core.Module.Bpm; 7 | using Yitter.IdGenerator; 8 | 9 | namespace Vboot.Core.Module.Sys; 10 | 11 | public class SysTodoMainService : BaseService, ITransient 12 | { 13 | public void SendTodo(Zbpm zbpm, Znode znode) 14 | { 15 | SysTodoMain todo = new SysTodoMain(); 16 | todo.id = YitIdHelper.NextId() + ""; 17 | todo.name = zbpm.prona; 18 | todo.link = "/#/page/ofmv?id=" + zbpm.proid; 19 | todo.modid = zbpm.proid; 20 | 21 | SysTodoUser todoTarget = new SysTodoUser(); 22 | todoTarget.id = YitIdHelper.NextId() + ""; 23 | todoTarget.tid = todo.id; 24 | todoTarget.uid = znode.exman; 25 | repo.InsertAsync(todo); 26 | repo.Context.Insertable(todoTarget).ExecuteCommand(); 27 | } 28 | 29 | public void DoneTodo(Zbpm zbpm) 30 | { 31 | string sql = "select m.id,t.id as tid from sys_todo_main m inner join sys_todo_user t on t.tid=m.id " + 32 | "where t.uid=@uid and m.modid=@modid"; 33 | 34 | dynamic map = repo.Context.Ado.SqlQuerySingle(sql, new {uid = zbpm.haman, modid = zbpm.proid}); 35 | if (map != null) 36 | { 37 | string tid = map.tid; 38 | repo.Context.Deleteable().Where(it => it.id == tid).ExecuteCommand(); 39 | SysTodoDone done = new SysTodoDone(); 40 | done.id = YitIdHelper.NextId() + ""; 41 | done.tid = "" + map.id; 42 | done.uid = zbpm.haman; 43 | repo.Context.Insertable(done); 44 | } 45 | } 46 | 47 | 48 | public SysTodoMainService(ISqlSugarRepository repo) 49 | { 50 | this.repo = repo; 51 | } 52 | } -------------------------------------------------------------------------------- /Vboot.Core/Module/Sys/Todo/User/SysTodoUser.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | 4 | namespace Vboot.Core.Module.Sys; 5 | 6 | [SugarTable("sys_todo_user", TableDescription = "系统待办用户对象")] 7 | [Description("系统待办用户对象")] 8 | public class SysTodoUser 9 | { 10 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 11 | public string id { get; set; } 12 | 13 | [SugarColumn(ColumnDescription = "待办ID", IsNullable = true, Length = 32)] 14 | public string tid { get; set; } 15 | 16 | [SugarColumn(ColumnDescription = "用户ID", IsNullable = true, Length = 32)] 17 | public string uid { get; set; } 18 | 19 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Cate/OaFlowCate.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | 6 | namespace Vboot.Core.Modulex.Oa; 7 | 8 | [SugarTable("oa_flow_cate", TableDescription = "OA流程分类表")] 9 | [Description("OA流程分类表")] 10 | public class OaFlowCate : BaseMainEntity 11 | { 12 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 64)] 13 | public string notes { get; set; } 14 | 15 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 16 | public int ornum { get; set; } 17 | 18 | 19 | [SugarColumn(ColumnDescription = "父ID", IsNullable = true, Length = 32)] 20 | public string pid { get; set; } 21 | 22 | [SqlSugar.SugarColumn(IsIgnore = true)] 23 | public string panam { get; set; } 24 | 25 | [SqlSugar.SugarColumn(IsIgnore = true)] 26 | public OaFlowCate parent { get; set; } 27 | 28 | [SqlSugar.SugarColumn(IsIgnore = true)] 29 | public List children { get; set; } 30 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Cate/OaFlowCateService.cs: -------------------------------------------------------------------------------- 1 | using Furion.DependencyInjection; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Modulex.Oa; 6 | 7 | public class OaFlowCateService : BaseMainService, ITransient 8 | { 9 | public OaFlowCateService(ISqlSugarRepository repo) 10 | { 11 | this.repo = repo; 12 | } 13 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Main/OaFlowMain.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | using Vboot.Core.Module.Bpm; 5 | 6 | namespace Vboot.Core.Modulex.Oa; 7 | 8 | [SugarTable("oa_flow_main", TableDescription = "OA流程实例表")] 9 | [Description("OA流程实例表")] 10 | public class OaFlowMain : BaseMainEntity 11 | { 12 | 13 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 128)] 14 | public string notes { get; set; } 15 | 16 | 17 | [SugarColumn(ColumnDescription = "全局流程模板ID", IsNullable = true, Length = 32)] 18 | public string protd { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "全局流程模板ID", IsNullable = true, Length = 32)] 21 | public string temid { get; set; } 22 | 23 | [SugarColumn(IsIgnore = true)] 24 | public Zbpm zbpm { get; set; } 25 | 26 | [SugarColumn(ColumnDescription = "状态", IsNullable = true, Length = 8)] 27 | public string state { get; set; } 28 | 29 | 30 | 31 | 32 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Main/OaFlowMainService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading.Tasks; 3 | using Furion.DependencyInjection; 4 | using SqlSugar; 5 | using Vboot.Core.Common; 6 | using Vboot.Core.Module.Bpm; 7 | 8 | namespace Vboot.Core.Modulex.Oa; 9 | 10 | public class OaFlowMainService : BaseMainService, ITransient 11 | { 12 | public async Task Insertx(OaFlowMain oaFlowMain) 13 | { 14 | oaFlowMain.state = "20"; 15 | oaFlowMain.uptim = DateTime.Now; 16 | await InsertAsync(oaFlowMain); 17 | Zbpm zbpm = oaFlowMain.zbpm; 18 | zbpm.proid = oaFlowMain.id; 19 | zbpm.prona = oaFlowMain.name; 20 | zbpm.haman = oaFlowMain.crmid; 21 | zbpm.temid = oaFlowMain.protd; 22 | Znode znode = await _procService.Start(zbpm); 23 | if (znode.facno == "N3") 24 | { 25 | oaFlowMain.state = "30"; 26 | await UpdateAsync(oaFlowMain); 27 | } 28 | } 29 | 30 | public async Task Updatex(OaFlowMain oaFlowMain) 31 | { 32 | await UpdateAsync(oaFlowMain); 33 | if (oaFlowMain.zbpm.opkey == "pass") 34 | { 35 | Znode znode = _procService.HandlerPass(oaFlowMain.zbpm); 36 | if (znode.facno == "N3") 37 | { 38 | oaFlowMain.state = "30"; 39 | await UpdateAsync(oaFlowMain); 40 | } 41 | } 42 | else if (oaFlowMain.zbpm.opkey == "refuse") 43 | { 44 | _procService.HandlerRefuse(oaFlowMain.zbpm); 45 | } 46 | } 47 | 48 | private readonly BpmProcMainService _procService; 49 | 50 | 51 | public OaFlowMainService(ISqlSugarRepository repo, 52 | BpmProcMainService procService) 53 | { 54 | this.repo = repo; 55 | _procService = procService; 56 | } 57 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Rece/OaFlowRece.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using SqlSugar; 4 | 5 | namespace Vboot.Core.Module.Sys; 6 | 7 | [SugarTable("oa_flow_rece", TableDescription = "流程使用记录")] 8 | [Description("流程使用记录")] 9 | public class OaFlowRece 10 | { 11 | [SugarColumn(ColumnDescription = "Id主键", IsPrimaryKey = true, Length = 36)] 12 | public string id { get; set; } 13 | 14 | [SugarColumn(ColumnDescription = "用户ID", Length = 36)] 15 | public string userid { get; set; } 16 | 17 | [SugarColumn(ColumnDescription = "流程模板ID", Length = 36)] 18 | public string flowid { get; set; } 19 | 20 | [SugarColumn(ColumnDescription = "最近使用时间", IsNullable = true)] 21 | public virtual DateTime? uptim { get; set; } 22 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Rece/OaFlowReceApi.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using Furion.DynamicApiController; 4 | using Microsoft.AspNetCore.Mvc; 5 | using SqlSugar; 6 | using Vboot.Core.Common.Util; 7 | using Vboot.Core.Module.Sys; 8 | using Vboot.Core.Modulex.Oa; 9 | 10 | namespace Vboot.Core.Module.Oa; 11 | 12 | [ApiDescriptionSettings("Ext", Tag = "流程管理-使用记录")] 13 | public class OaFlowReceApi : IDynamicApiController 14 | { 15 | private readonly OaFlowReceService _service; 16 | 17 | public OaFlowReceApi(OaFlowReceService service) 18 | { 19 | _service = service; 20 | } 21 | 22 | public async Task Post(List reces) 23 | { 24 | if (reces != null && reces.Count > 0) 25 | { 26 | await _service.update(reces); 27 | } 28 | } 29 | 30 | public async Task GetList() 31 | { 32 | string userId = XuserUtil.getUserId(); 33 | var list = await _service._repo.Context.Queryable((t, f,c) 34 | => new JoinQueryInfos(JoinType.Inner, f.id == t.flowid,JoinType.Inner, c.id == f.catid)) 35 | .OrderBy(t => t.uptim, OrderByType.Desc) 36 | .Where(t => t.userid == userId) 37 | .Select((t, f,c) => new {id = t.flowid, f.name,catna=c.name}) 38 | .ToListAsync(); 39 | return list; 40 | } 41 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Rece/OaFlowReceService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using Furion.DependencyInjection; 5 | using SqlSugar; 6 | using Vboot.Core.Common.Util; 7 | using Yitter.IdGenerator; 8 | 9 | namespace Vboot.Core.Module.Sys; 10 | 11 | public class OaFlowReceService : ITransient 12 | { 13 | public async Task update(List reces) 14 | { 15 | string userid = XuserUtil.getUserId(); 16 | List flowidList = new List(); 17 | foreach (var rece in reces) 18 | { 19 | rece.flowid = rece.id; 20 | rece.id = YitIdHelper.NextId() + ""; 21 | rece.userid = userid; 22 | rece.uptim = DateTime.Now; 23 | flowidList.Add(rece.flowid); 24 | } 25 | 26 | //数据库删除本次已传的记录 27 | await _repo.Context.Deleteable().Where("userid=@userid",new { userid}) 28 | .Where("flowid in (@flowid)", new {flowid = flowidList.ToArray()}).ExecuteCommandAsync(); 29 | 30 | //删除当前数据库最近10次前的数据 31 | RefAsync total = 0; 32 | var items = await _repo.Context.Queryable() 33 | .Where(it=>it.userid==userid) 34 | .OrderBy(u => u.uptim, OrderByType.Desc) 35 | .Select((t) => t.id) 36 | .ToPageListAsync(2, 10, total); 37 | if (items.Count > 0) 38 | { 39 | await _repo.Context.Deleteable().In(items.ToArray()).ExecuteCommandAsync(); 40 | } 41 | 42 | //插入本次使用的记录 43 | await _repo.InsertAsync(reces); 44 | 45 | } 46 | 47 | 48 | public readonly ISqlSugarRepository _repo; 49 | 50 | public OaFlowReceService(ISqlSugarRepository repo) 51 | { 52 | _repo = repo; 53 | } 54 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Temp/OaFlowTemp.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using SqlSugar; 3 | using Vboot.Core.Common; 4 | 5 | namespace Vboot.Core.Modulex.Oa; 6 | 7 | [SugarTable("oa_flow_temp", TableDescription = "OA流程模板表")] 8 | [Description("OA流程模板表")] 9 | public class OaFlowTemp : BaseMainEntity 10 | { 11 | [SugarColumn(ColumnDescription = "分类ID", IsNullable = true, Length = 32)] 12 | public string catid { get; set; } 13 | 14 | [SugarColumn(IsIgnore = true)] public ZidName cate { get; set; } 15 | 16 | [SugarColumn(ColumnDescription = "备注", IsNullable = true, Length = 128)] 17 | public string notes { get; set; } 18 | 19 | [SugarColumn(ColumnDescription = "排序号", IsNullable = true)] 20 | public int ornum { get; set; } 21 | 22 | [SugarColumn(ColumnDescription = "全局流程模板ID", IsNullable = true, Length = 32)] 23 | public string protd { get; set; } 24 | 25 | [SugarColumn(IsIgnore = true)] public string prxml { get; set; } 26 | 27 | [SugarColumn(ColumnDescription = "vform", ColumnDataType = "varchar(max)", IsNullable = true)] 28 | public string vform { get; set; } 29 | } -------------------------------------------------------------------------------- /Vboot.Core/Modulex/Oa/Flow/Temp/OaFlowTempService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Furion.DependencyInjection; 3 | using SqlSugar; 4 | using Vboot.Core.Common; 5 | using Vboot.Core.Module.Bpm; 6 | using Yitter.IdGenerator; 7 | 8 | namespace Vboot.Core.Modulex.Oa; 9 | 10 | public class OaFlowTempService : BaseMainService, ITransient 11 | { 12 | public async Task Insertx(OaFlowTemp oaFlowTemp) 13 | { 14 | BpmProcTemp bpmProcTemp = new BpmProcTemp(); 15 | bpmProcTemp.name = oaFlowTemp.name; 16 | bpmProcTemp.crman = oaFlowTemp.crman; 17 | bpmProcTemp.crtim = oaFlowTemp.crtim; 18 | bpmProcTemp.orxml = oaFlowTemp.prxml; 19 | bpmProcTemp.chxml = "" 20 | + "\n"; 22 | bpmProcTemp.id = YitIdHelper.NextId() + ""; 23 | await repo.Context.Insertable(bpmProcTemp).ExecuteCommandAsync(); 24 | oaFlowTemp.protd = bpmProcTemp.id; 25 | await InsertAsync(oaFlowTemp); 26 | } 27 | 28 | public async Task Updatex(OaFlowTemp oaFlowTemp) 29 | { 30 | var bpmProcTemp = await repo.Context.Queryable() 31 | .Where(it => it.id == oaFlowTemp.protd).FirstAsync(); 32 | bpmProcTemp.orxml = oaFlowTemp.prxml; 33 | bpmProcTemp.chxml = "" 34 | + "\n"; 36 | await repo.Context.Updateable(bpmProcTemp).ExecuteCommandAsync(); 37 | await UpdateAsync(oaFlowTemp); 38 | } 39 | 40 | 41 | public OaFlowTempService(ISqlSugarRepository repo) 42 | { 43 | this.repo = repo; 44 | } 45 | } -------------------------------------------------------------------------------- /Vboot.Core/Vboot.Core.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net6.0 5 | 1701;1702;1591 6 | Vboot.Core.xml 7 | Vboot.Core 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Vboot.Web.Core/Init/Yurl.cs: -------------------------------------------------------------------------------- 1 | namespace Vboot.Web.Core.Init; 2 | 3 | public class Yurl 4 | { 5 | public string id { get; set; } 6 | 7 | public string url { get; set; } 8 | 9 | public string pid { get; set; } 10 | 11 | public string type { get; set; } 12 | } -------------------------------------------------------------------------------- /Vboot.Web.Core/Vboot.Web.Core.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net6.0 5 | 1701;1702;1591 6 | Vboot.Web.Core.xml 7 | Vboot.Web.Core 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Vboot.Web.Core/Vboot.Web.Core.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vboot.Web.Core 5 | 6 | 7 | 8 | 9 | 重写 Handler 添加自动刷新 10 | 11 | 12 | 13 | 14 | 15 | 16 | 授权判断逻辑,授权通过返回 true,否则返回 false 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 检查权限 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "dotnet-ef": { 6 | "version": "6.0.0", 7 | "commands": [ 8 | "dotnet-ef" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /Vboot.Web.Entry/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using Microsoft.Extensions.Hosting; 3 | 4 | var builder = WebApplication.CreateBuilder(args).Inject(); 5 | builder.Host.UseSerilogDefault(); 6 | var app = builder.Build(); 7 | app.Run(); -------------------------------------------------------------------------------- /Vboot.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 7 | False 8 | False 9 | True 10 | Release 11 | Any CPU 12 | FileSystem 13 | C:\Users\Admin\Desktop\vboot-net-run 14 | FileSystem 15 | 16 | net6.0 17 | win-x64 18 | c8d99f52-edc7-411f-8300-6db14bf59e8c 19 | true 20 | 21 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user: -------------------------------------------------------------------------------- 1 |  2 | 5 | 6 | 7 | <_PublishTargetUrl>C:\Users\Admin\Desktop\vboot-net-run 8 | True|2021-12-03T13:27:22.1194344Z;True|2021-12-03T21:17:44.3359991+08:00;True|2021-12-03T21:11:44.7757220+08:00;True|2021-12-03T21:06:44.6347302+08:00; 9 | 10 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/launchsettings.json", 3 | "iisSettings": { 4 | "windowsAuthentication": false, 5 | "anonymousAuthentication": true, 6 | "iisExpress": { 7 | "applicationUrl": "https://localhost:5001;http://localhost:5000", 8 | "sslPort": 44342 9 | } 10 | }, 11 | "profiles": { 12 | "IIS Express": { 13 | "commandName": "IISExpress", 14 | "launchBrowser": true, 15 | "launchUrl": "", 16 | "environmentVariables": { 17 | "ASPNETCORE_ENVIRONMENT": "Development" 18 | } 19 | }, 20 | "Vboot.Web.Entry": { 21 | "commandName": "Project", 22 | "dotnetRunMessages": "true", 23 | "launchBrowser": true, 24 | "launchUrl": "", 25 | "applicationUrl": "https://localhost:5001;http://localhost:5000", 26 | "environmentVariables": { 27 | "ASPNETCORE_ENVIRONMENT": "Development" 28 | } 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /Vboot.Web.Entry/Vboot.Web.Entry.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | D:\vboot\vboot-net\Vboot.Web.Entry\Properties\PublishProfiles\FolderProfile.pubxml 5 | 6 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "DynamicApiControllerSettings": { 3 | "CamelCaseSeparator": "/", 4 | "DefaultRoutePrefix": "", 5 | "AbandonControllerAffixes":["Controller","Api"] 6 | } 7 | 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Serilog": { 3 | "MinimumLevel": { 4 | "Default": "Information", 5 | "Override": { 6 | "System": "Warning", 7 | "Microsoft": "Warning", 8 | "Microsoft.Hosting.Lifetime": "Information", 9 | "SqlSugar": "Information" 10 | } 11 | }, 12 | "WriteTo": [ 13 | { 14 | "Name": "Console", 15 | "Args": { 16 | "outputTemplate": "【时间】{Timestamp:yyyy-MM-dd HH:mm:ss,fff}{NewLine}【等级】{Level:u3}{NewLine}【消息】{Message:lj}{NewLine}{NewLine}" 17 | } 18 | }, 19 | { 20 | "Name": "File", 21 | "Args": { 22 | "path": "logs/.log", 23 | "rollingInterval": "Day", 24 | "outputTemplate": "【时间】{Timestamp:yyyy-MM-dd HH:mm:ss,fff}{NewLine}【等级】{Level:u3}{NewLine}【消息】{Message:lj}{NewLine}{NewLine}" 25 | } 26 | } 27 | ] 28 | }, 29 | "AllowedHosts": "*" 30 | } -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/401.1652784183534.css: -------------------------------------------------------------------------------- 1 | .error[data-v-b8605a40]{height:100%;background-color:var(--el-color-white);display:flex}.error .error-flex[data-v-b8605a40]{margin:auto;display:flex;height:350px;width:900px}.error .error-flex .left[data-v-b8605a40]{flex:1;height:100%;align-items:center;display:flex}.error .error-flex .left .left-item .left-item-animation[data-v-b8605a40]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards}.error .error-flex .left .left-item .left-item-num[data-v-b8605a40]{color:var(--el-color-info);font-size:55px}.error .error-flex .left .left-item .left-item-title[data-v-b8605a40]{font-size:20px;color:var(--el-text-color-primary);margin:15px 0 5px;animation-delay:.1s}.error .error-flex .left .left-item .left-item-msg[data-v-b8605a40]{color:var(--el-text-color-secondary);font-size:12px;margin-bottom:30px;animation-delay:.2s}.error .error-flex .left .left-item .left-item-btn[data-v-b8605a40]{animation-delay:.2s}.error .error-flex .right[data-v-b8605a40]{flex:1;opacity:0;animation-name:error-img;animation-duration:2s;animation-fill-mode:forwards}.error .error-flex .right img[data-v-b8605a40]{width:100%;height:100%} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/401.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{a as d,s as l,aF as p,B as u,b as f,e as s,Y as o,Z as g,S as h,O as v,az as b,aA as w,a2 as T,o as S,X as y}from"./vue.1652784183534.js";import{_ as C,u as F,b as x,S as A}from"./index.1652784183534.js";const V=d({name:"401",setup(){const e=F(),a=x(),{themeConfig:i}=l(e),{isTagsViewCurrenFull:n}=l(a),c=p(),r=()=>{A.clear(),c.push("/login")},t=u(()=>{let{isTagsview:m}=i.value;return n.value?"30px":m?"114px":"80px"});return{onSetAuth:r,initTagViewHeight:t}}}),_=e=>(b("data-v-b8605a40"),e=e(),w(),e),$={class:"error-flex"},B={class:"left"},k={class:"left-item"},R=_(()=>s("div",{class:"left-item-animation left-item-num"},"401",-1)),I={class:"left-item-animation left-item-title"},N={class:"left-item-animation left-item-msg"},z={class:"left-item-animation left-item-btn"},H=_(()=>s("div",{class:"right"},[s("img",{src:"https://img-blog.csdnimg.cn/3333f265772a4fa89287993500ecbf96.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHl0LXRvcA==,size_16,color_FFFFFF,t_70,g_se,x_16"})],-1));function X(e,a,i,n,c,r){const t=T("el-button");return S(),f("div",{class:"error layout-view-bg-white",style:v({height:`calc(100vh - ${e.initTagViewHeight}`})},[s("div",$,[s("div",B,[s("div",k,[R,s("div",I,o(e.$t("message.noAccess.accessTitle")),1),s("div",N,o(e.$t("message.noAccess.accessMsg")),1),s("div",z,[g(t,{type:"primary",round:"",onClick:e.onSetAuth},{default:h(()=>[y(o(e.$t("message.noAccess.accessBtn")),1)]),_:1},8,["onClick"])])])]),H])],4)}var Q=C(V,[["render",X],["__scopeId","data-v-b8605a40"]]);export{Q as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/404.1652784183534.css: -------------------------------------------------------------------------------- 1 | .error[data-v-3b19d5ac]{height:100%;background-color:var(--el-color-white);display:flex}.error .error-flex[data-v-3b19d5ac]{margin:auto;display:flex;height:350px;width:900px}.error .error-flex .left[data-v-3b19d5ac]{flex:1;height:100%;align-items:center;display:flex}.error .error-flex .left .left-item .left-item-animation[data-v-3b19d5ac]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards}.error .error-flex .left .left-item .left-item-num[data-v-3b19d5ac]{color:var(--el-color-info);font-size:55px}.error .error-flex .left .left-item .left-item-title[data-v-3b19d5ac]{font-size:20px;color:var(--el-text-color-primary);margin:15px 0 5px;animation-delay:.1s}.error .error-flex .left .left-item .left-item-msg[data-v-3b19d5ac]{color:var(--el-text-color-secondary);font-size:12px;margin-bottom:30px;animation-delay:.2s}.error .error-flex .left .left-item .left-item-btn[data-v-3b19d5ac]{animation-delay:.2s}.error .error-flex .right[data-v-3b19d5ac]{flex:1;opacity:0;animation-name:error-img;animation-duration:2s;animation-fill-mode:forwards}.error .error-flex .right img[data-v-3b19d5ac]{width:100%;height:100%} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/404.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{a as m,s as l,aF as u,B as p,b as f,e as t,Y as o,Z as g,S as h,O as v,az as b,aA as w,a2 as F,o as T,X as y}from"./vue.1652784183534.js";import{_ as C,u as x,b as V}from"./index.1652784183534.js";const $=m({name:"404",setup(){const e=x(),a=V(),{themeConfig:i}=l(e),{isTagsViewCurrenFull:n}=l(a),c=u(),r=()=>{c.push("/")},s=p(()=>{let{isTagsview:_}=i.value;return n.value?"30px":_?"114px":"80px"});return{onGoHome:r,initTagViewHeight:s}}}),d=e=>(b("data-v-3b19d5ac"),e=e(),w(),e),B={class:"error-flex"},S={class:"left"},k={class:"left-item"},H=d(()=>t("div",{class:"left-item-animation left-item-num"},"404",-1)),R={class:"left-item-animation left-item-title"},I={class:"left-item-animation left-item-msg"},N={class:"left-item-animation left-item-btn"},z=d(()=>t("div",{class:"right"},[t("img",{src:"https://img-blog.csdnimg.cn/9eb1d85a417f4ed1ba7107f149ce3da1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbHl0LXRvcA==,size_16,color_FFFFFF,t_70,g_se,x_16"})],-1));function A(e,a,i,n,c,r){const s=F("el-button");return T(),f("div",{class:"error layout-view-bg-white",style:v({height:`calc(100vh - ${e.initTagViewHeight}`})},[t("div",B,[t("div",S,[t("div",k,[H,t("div",R,o(e.$t("message.notFound.foundTitle")),1),t("div",I,o(e.$t("message.notFound.foundMsg")),1),t("div",N,[g(s,{type:"primary",round:"",onClick:e.onGoHome},{default:h(()=>[y(o(e.$t("message.notFound.foundBtn")),1)]),_:1},8,["onClick"])])])]),z])],4)}var G=C($,[["render",A],["__scopeId","data-v-3b19d5ac"]]);export{G as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/DeptTree.1652784183534.css: -------------------------------------------------------------------------------- 1 | .tree-h-flex[data-v-0fd7569e]{display:flex}.tree-h-left[data-v-0fd7569e]{flex:1;width:100%}.tree-h-right[data-v-0fd7569e]{width:40px;min-width:40px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/Event.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{C as t,F as p,E as e,D as o}from"./common.1652784183534.js";import"./index.1652784183534.js";import"./vue.1652784183534.js";import"./store.1652784183534.js";const r=[t,e,o];var s={"bpmn:StartEvent":[t,p,e,o],"bpmn:EndEvent":r,"bpmn:IntermediateThrowEvent":r,"bpmn:IntermediateCatchEvent":r};export{s as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/Gateway.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{C as o,E as r,D as a}from"./common.1652784183534.js";import"./index.1652784183534.js";import"./vue.1652784183534.js";import"./store.1652784183534.js";const e=[o,r,a];var n={"bpmn:ExclusiveGateway":e,"bpmn:ParallelGateway":e,"bpmn:ComplexGateway":e,"bpmn:EventBasedGateway":e};export{n as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/GenModal.1652784183534.css: -------------------------------------------------------------------------------- 1 | .tree-h-flex[data-v-07916ddc]{display:flex}.tree-h-left[data-v-07916ddc]{flex:1;width:100%}.tree-h-right[data-v-07916ddc]{width:40px;min-width:40px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/OrgModal.1652784183534.css: -------------------------------------------------------------------------------- 1 | .dialog-footer button[data-v-92ff25e2]:first-child{margin-right:10px}.layui-elip[data-v-92ff25e2]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.f-user[data-v-92ff25e2]:before,.f-user[data-v-92ff25e2]:after{content:" ";display:table}.f-user[data-v-92ff25e2]:after{clear:both}.f-user input[data-v-92ff25e2],.f-user label[data-v-92ff25e2]{float:left;margin-top:10px;margin-right:8px}.f-user img[data-v-92ff25e2]{width:50px;height:50px;float:left;border-radius:100%;margin-right:8px}.f-user .f-user-name[data-v-92ff25e2],.f-user .f-user-dept[data-v-92ff25e2]{display:block}.f-user .f-user-name[data-v-92ff25e2]{margin-top:6px}.f-user .f-user-dept[data-v-92ff25e2]{color:#a599b2}.z-org-recently li[data-v-92ff25e2]{width:33%;float:left;cursor:pointer;padding:5px;list-style-type:none}.z-org-recently li[data-v-92ff25e2]:hover{background-color:#f7efec}.z-org-search li[data-v-92ff25e2]{width:50%;float:left;cursor:pointer;padding:2px;list-style-type:none}.z-org-search li[data-v-92ff25e2]:hover{background-color:#f7efec}/*!*组织架构树*!*/.z-org-tree li[data-v-92ff25e2]{margin:3px;cursor:pointer;padding:3px;list-style-type:none}.z-org-tree li[data-v-92ff25e2]:hover{background-color:#f7efec}.z-org-selected li[data-v-92ff25e2]{margin:3px;cursor:pointer;padding:3px;list-style-type:none}.z-org-selected li[data-v-92ff25e2]:hover{background-color:#f7efec}.z-org-selected .f-user .el-icon[data-v-92ff25e2]{position:absolute;color:#f26b96;font-size:20px;display:none;margin-left:42px}.z-org-selected li:hover .el-icon[data-v-92ff25e2],.z-org-selected .f-user img[data-v-92ff25e2]{display:inline}.z-org-selected .f-user-name2[data-v-92ff25e2]{display:block;margin-top:14px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/Other.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{E as a,D as m,C as u}from"./common.1652784183534.js";import{al as t}from"./index.1652784183534.js";import{Z as p,X as n}from"./vue.1652784183534.js";import"./store.1652784183534.js";const r=[u,a,m],i={name:"\u57FA\u7840\u4FE1\u606F",icon:"el-icon-info",properties:{id:{component:t,placeholder:"\u8282\u70B9ID",vSlots:{prepend:()=>p("div",null,[n("\u8282\u70B9ID")])}},name:{component:t,placeholder:"\u8282\u70B9\u540D\u79F0",vSlots:{prepend:()=>p("div",null,[n("\u8282\u70B9\u540D\u79F0")])},getValue:e=>{var o;return(o=e==null?void 0:e.categoryValueRef)==null?void 0:o.value}}}};var f={"bpmn:Participant":r,"bpmn:Group":[i,a,m],"bpmn:DataStoreReference":r,"bpmn:DataObjectReference":r};export{f as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/PrefixLabelSelect.1652784183534.css: -------------------------------------------------------------------------------- 1 | .prefix-label-select-container{display:inline-table;width:100%}.prefix-title{display:table-cell;padding:0 20px;border:1px solid #DCDFE6;border-right:0;border-radius:4px 0 0 4px;color:#909399;background-color:#f5f7fa;width:1px;white-space:nowrap}.prefix-label-select{display:table-cell}.prefix-label-select .el-input,.el-select{line-height:normal}.prefix-label-select .el-input__inner{border-radius:0 4px 4px 0!important;line-height:normal} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/PrefixLabelSelect.1652784183534.js: -------------------------------------------------------------------------------- 1 | var c=Object.defineProperty,m=Object.defineProperties;var f=Object.getOwnPropertyDescriptors;var o=Object.getOwnPropertySymbols;var n=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable;var s=(e,l,t)=>l in e?c(e,l,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[l]=t,p=(e,l)=>{for(var t in l||(l={}))n.call(l,t)&&s(e,t,l[t]);if(o)for(var t of o(l))x.call(l,t)&&s(e,t,l[t]);return e},d=(e,l)=>m(e,f(l));import{an as u}from"./index.1652784183534.js";import{a as v,B as V,Z as i,P as b}from"./vue.1652784183534.js";const T=v({props:d(p({},u.props),{prefixTitle:{type:String,default:()=>""}}),emits:["update:modelValue"],setup(e,{emit:l,slots:t}){const r=V({get:()=>e.value,set:a=>l("update:modelValue",a)});return()=>i("div",{class:"prefix-label-select-container"},[e.prefixTitle&&i("div",{class:"prefix-title "},[e.prefixTitle]),i(u,b({class:"prefix-label-select",modelValue:r.value,"onUpdate:modelValue":a=>r.value=a},e),t)])}});export{T as P}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/Process.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{C as e,g as o,E as s,D as p}from"./common.1652784183534.js";import"./index.1652784183534.js";import"./vue.1652784183534.js";import"./store.1652784183534.js";const r=[e,o({name:"\u5168\u5C40\u76D1\u542C\u5668"}),s,p];var a={"bpmn:Process":r,"bpmn:SubProcess":r};export{a as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/Wrap.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{a as i,B as l,s as t,o as u,b as c,L as f,O as p,u as m}from"./vue.1652784183534.js";import{b as g,u as h}from"./index.1652784183534.js";const w=i({setup(T){const o=l(()=>{const e=g(),s=h(),{themeConfig:r}=t(s),{isTagsViewCurrenFull:a}=t(e);let{isTagsview:n}=r.value;return a?"13px":n?"97px":"63px"});return(e,s)=>(u(),c("div",{class:"p-flex",style:p({height:`calc(100vh - ${m(o)}`})},[f(e.$slots,"default")],4))}});export{w as _}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/account.1652784183534.css: -------------------------------------------------------------------------------- 1 | .login-content-form[data-v-622dc15a]{margin-top:20px}.login-content-form .login-animation1[data-v-622dc15a]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.1s}.login-content-form .login-animation2[data-v-622dc15a]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.2s}.login-content-form .login-animation3[data-v-622dc15a]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.3s}.login-content-form .login-animation4[data-v-622dc15a]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.4s}.login-content-form .login-content-password[data-v-622dc15a]{display:inline-block;width:20px;cursor:pointer}.login-content-form .login-content-password[data-v-622dc15a]:hover{color:#909399}.login-content-form .login-content-code[data-v-622dc15a]{width:100%;padding:0;font-weight:700;letter-spacing:5px}.login-content-form .login-content-submit[data-v-622dc15a]{width:100%;letter-spacing:2px;font-weight:300;margin-top:15px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/addRole.1652784183534.css: -------------------------------------------------------------------------------- 1 | .system-add-role-container .menu-data-tree[data-v-7a022e88]{width:100%;border:1px solid var(--el-border-color);border-radius:var(--el-input-border-radius, var(--el-border-radius-base));padding:5px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/bathymetry.1652784183534.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zsvg-com/vboot-net/fef3130e129455a227be9be35005b0ee7d95ff90/Vboot.Web.Entry/wwwroot/assets/bathymetry.1652784183534.jpg -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zsvg-com/vboot-net/fef3130e129455a227be9be35005b0ee7d95ff90/Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.eot -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zsvg-com/vboot-net/fef3130e129455a227be9be35005b0ee7d95ff90/Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.ttf -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zsvg-com/vboot-net/fef3130e129455a227be9be35005b0ee7d95ff90/Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.woff -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zsvg-com/vboot-net/fef3130e129455a227be9be35005b0ee7d95ff90/Vboot.Web.Entry/wwwroot/assets/bpmn.1652784183534.woff2 -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/classic.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{a as f,s as d,a2 as e,o as n,R as c,S as r,Z as o,e as u,W as g}from"./vue.1652784183534.js";import{_ as h,u as C}from"./index.1652784183534.js";import{A as T}from"./aside.1652784183534.js";import{H as k,M as w,T as y}from"./main.1652784183534.js";import"./logo-mini.1652784183534.js";import"./sortable.esm.1652784183534.js";import"./parent.1652784183534.js";const V=f({name:"layoutClassic",components:{Aside:T,Header:k,Main:w,TagsView:y},setup(){const t=C(),{themeConfig:a}=d(t);return{themeConfig:a}}}),b={class:"flex-center layout-backtop"};function x(t,a,v,A,H,M){const i=e("Header"),m=e("Aside"),p=e("TagsView"),_=e("Main"),s=e("el-container"),l=e("el-backtop");return n(),c(s,{class:"layout-container flex-center"},{default:r(()=>[o(i),o(s,{class:"layout-mian-height-50"},{default:r(()=>[o(m),u("div",b,[t.themeConfig.isTagsview?(n(),c(p,{key:0})):g("",!0),o(_)])]),_:1}),o(l,{target:".layout-backtop .el-main .el-scrollbar__wrap"})]),_:1})}var j=h(V,[["render",x]]);export{j as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/columns.1652784183534.css: -------------------------------------------------------------------------------- 1 | .layout-columns-aside[data-v-07532e16]{width:70px;height:100%;background:var(--next-bg-columnsMenuBar)}.layout-columns-aside ul[data-v-07532e16]{position:relative}.layout-columns-aside ul li[data-v-07532e16]{color:var(--next-bg-columnsMenuBarColor);width:100%;height:50px;text-align:center;display:flex;cursor:pointer;position:relative;z-index:1}.layout-columns-aside ul li .columns-vertical[data-v-07532e16]{margin:auto}.layout-columns-aside ul li .columns-vertical .columns-vertical-title[data-v-07532e16]{padding-top:1px}.layout-columns-aside ul li .columns-horizontal[data-v-07532e16]{display:flex;height:50px;width:100%;align-items:center;padding:0 5px}.layout-columns-aside ul li .columns-horizontal i[data-v-07532e16]{margin-right:3px}.layout-columns-aside ul li .columns-horizontal a[data-v-07532e16]{display:flex}.layout-columns-aside ul li .columns-horizontal a .columns-horizontal-title[data-v-07532e16]{padding-top:1px}.layout-columns-aside ul li a[data-v-07532e16]{text-decoration:none;color:var(--next-bg-columnsMenuBarColor)}.layout-columns-aside ul .layout-columns-active[data-v-07532e16]{color:var(--next-bg-columnsMenuBarColor)!important;transition:.3s ease-in-out}.layout-columns-aside ul .layout-columns-hover[data-v-07532e16],.layout-columns-aside ul .layout-columns-hover a[data-v-07532e16]{color:var(--el-color-primary)}.layout-columns-aside ul .columns-round[data-v-07532e16],.layout-columns-aside ul .columns-card[data-v-07532e16]{background:var(--el-color-primary);color:var(--el-color-white);position:absolute;left:50%;top:2px;height:44px;width:65px;transform:translate(-50%);z-index:0;transition:.3s ease-in-out;border-radius:5px}.layout-columns-aside ul .columns-card[data-v-07532e16]{top:0;height:50px;width:100%;border-radius:0} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/common.1652784183534.css: -------------------------------------------------------------------------------- 1 | .sublist-add{margin-top:8px;border:1px solid #409eff;text-align:center;cursor:pointer;color:#fff;font-weight:700;border-radius:4px;background-color:#409eff}.sublist-add:hover{border-color:#66b1ff;background-color:#66b1ff}.sublist-actions .sublist-btn{margin:0 5px}.sublist-edit,.sublist-confirm{color:#409eff}.sublist-split{color:#bbbec3}.sublist-btn{cursor:pointer}.sublist-btn:hover{border-bottom:2px solid}.sublist-edit :hover,.sublist-confirm:hover{color:#66b1ff}.sublist-delete{color:#fa3b3b}.sublist-delete:hover{color:#f78989}.sublist-actions .readonly{color:#bbbec3;cursor:default}.sublist-actions .readonly:hover{border-bottom:none}.sublist-form-item{width:100%;margin-right:0!important;margin-bottom:0!important}.sublist-form-item .el-form-item__content{width:100%} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/defaults.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{a as y,aB as H,s as C,B as x,k as h,a2 as o,o as t,R as s,S as r,Z as a,W as d,M as m,l as F}from"./vue.1652784183534.js";import{_ as $,u as g}from"./index.1652784183534.js";import{A as M}from"./aside.1652784183534.js";import{H as R,M as w}from"./main.1652784183534.js";import"./logo-mini.1652784183534.js";import"./sortable.esm.1652784183534.js";import"./parent.1652784183534.js";const A=y({name:"layoutDefaults",components:{Aside:M,Header:R,Main:w},setup(){const{proxy:e}=F(),n=H(),c=g(),{themeConfig:l}=C(c),i=x(()=>l.value.isFixedHeader);return h(()=>n.path,()=>{e.$refs.layoutDefaultsScrollbarRef.wrap$.scrollTop=0}),{isFixedHeader:i}}});function B(e,n,c,l,i,T){const f=o("Aside"),p=o("Header"),_=o("Main"),b=o("el-scrollbar"),u=o("el-container"),k=o("el-backtop");return t(),s(u,{class:"layout-container"},{default:r(()=>[a(f),a(u,{class:m(["flex-center",{"layout-backtop":!e.isFixedHeader}])},{default:r(()=>[e.isFixedHeader?(t(),s(p,{key:0})):d("",!0),a(b,{ref:"layoutDefaultsScrollbarRef",class:m({"layout-backtop":e.isFixedHeader})},{default:r(()=>[e.isFixedHeader?d("",!0):(t(),s(p,{key:0})),a(_)]),_:1},8,["class"])]),_:1},8,["class"]),a(k,{target:".layout-backtop .el-scrollbar__wrap"})]),_:1})}var W=$(A,[["render",B]]);export{W as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/details.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{a as l,s as n,B as c,b as u,O as g,o as f,e as s}from"./vue.1652784183534.js";import{_ as p,b as d,u as m}from"./index.1652784183534.js";const h=l({name:"pagesFilteringDetails",setup(){const e=d(),t=m(),{themeConfig:i}=n(t),{isTagsViewCurrenFull:a}=n(e);return{initTagViewHeight:c(()=>{let{isTagsview:o}=i.value;return a.value?"30px":o?"114px":"80px"})}}}),_=s("div",{class:"layout-view-bg-white"},[s("div",{class:"w100 h100 flex"},[s("div",{class:"flex-margin color-primary"},"filtering-details \u6D4B\u8BD5\u754C\u9762")])],-1),v=[_];function w(e,t,i,a,r,o){return f(),u("div",{style:g({height:`calc(100vh - ${e.initTagViewHeight}`})},v,4)}var V=p(h,[["render",w]]);export{V as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/details.16527841835342.js: -------------------------------------------------------------------------------- 1 | var f=Object.defineProperty;var n=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;var u=(e,s,a)=>s in e?f(e,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[s]=a,l=(e,s)=>{for(var a in s||(s={}))h.call(s,a)&&u(e,a,s[a]);if(n)for(var a of n(s))g.call(s,a)&&u(e,a,s[a]);return e};import{a as v,aB as _,s as m,a3 as w,B as y,m as C,ag as F,b as T,e as t,Y as c,O as V,o as x}from"./vue.1652784183534.js";import{_ as B,b as R,u as $}from"./index.1652784183534.js";const b=v({name:"paramsCommonDetails",setup(){const e=_(),s=R(),a=$(),{themeConfig:r}=m(a),{isTagsViewCurrenFull:i}=m(s),o=w({params:{path:"",query:""}}),p=y(()=>{let{isTagsview:d}=r.value;return i.value?"30px":d?"114px":"80px"});return C(()=>{o.params=e}),l({setViewHeight:p},F(o))}}),D={class:"flex-margin color-primary"},q=t("div",null,"paramsCommonDetails",-1),k={class:"mt10 mb10"};function A(e,s,a,r,i,o){return x(),T("div",{class:"layout-view-bg-white flex",style:V({height:`calc(100vh - ${e.setViewHeight}`})},[t("div",D,[q,t("div",k,"\u8DEF\u5F84\uFF1Apath: "+c(e.params.path),1),t("div",null,"\u53C2\u6570\uFF1Aquery: "+c(e.params.query),1)])],4)}var z=B(b,[["render",A]]);export{z as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/details.16527841835343.js: -------------------------------------------------------------------------------- 1 | var f=Object.defineProperty;var n=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;var u=(e,s,a)=>s in e?f(e,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[s]=a,l=(e,s)=>{for(var a in s||(s={}))h.call(s,a)&&u(e,a,s[a]);if(n)for(var a of n(s))g.call(s,a)&&u(e,a,s[a]);return e};import{a as v,s as c,aB as _,a3 as w,B as y,m as F,ag as T,b as C,e as t,Y as m,O as D,o as V}from"./vue.1652784183534.js";import{_ as x,b as B,u as R}from"./index.1652784183534.js";const $=v({name:"paramsDynamicDetails",setup(){const e=B(),s=R(),{themeConfig:a}=c(s),{isTagsViewCurrenFull:r}=c(e),i=_(),o=w({params:{path:"",params:""}}),p=y(()=>{let{isTagsview:d}=a.value;return r.value?"30px":d?"114px":"80px"});return F(()=>{o.params=i}),l({setViewHeight:p},T(o))}}),b={class:"flex-margin color-primary"},k=t("div",null,"paramsDynamicDetails",-1),A={class:"mt10 mb10"};function E(e,s,a,r,i,o){return V(),C("div",{class:"layout-view-bg-white flex",style:D({height:`calc(100vh - ${e.setViewHeight}`})},[t("div",b,[k,t("div",A,"\u8DEF\u5F84\uFF1Apath: "+m(e.params.path),1),t("div",null,"\u53C2\u6570\uFF1Aparams: "+m(e.params.params),1)])],4)}var M=x($,[["render",E]]);export{M as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/details1.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{a as c,s as n,B as l,b as u,O as g,o as p,e as s}from"./vue.1652784183534.js";import{_ as f,b as m,u as d}from"./index.1652784183534.js";const h=c({name:"pagesFilteringDetails1",setup(){const e=m(),t=d(),{themeConfig:i}=n(t),{isTagsViewCurrenFull:a}=n(e);return{initTagViewHeight:l(()=>{let{isTagsview:o}=i.value;return a.value?"30px":o?"114px":"80px"})}}}),_=s("div",{class:"layout-view-bg-white"},[s("div",{class:"w100 h100 flex"},[s("div",{class:"flex-margin color-primary"},"\u6D4B\u8BD5\u754C\u9762")])],-1),v=[_];function w(e,t,i,a,r,o){return p(),u("div",{style:g({height:`calc(100vh - ${e.initTagViewHeight}`})},v,4)}var V=f(h,[["render",w]]);export{V as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/echarts.16527841835342.js: -------------------------------------------------------------------------------- 1 | import{N as a,ai as s,aj as l,ak as i}from"./echarts.1652784183534.js";a([s,l]);a(i); 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/edit.16527841835342.js: -------------------------------------------------------------------------------- 1 | var n=Object.defineProperty;var l=Object.getOwnPropertySymbols;var c=Object.prototype.hasOwnProperty,d=Object.prototype.propertyIsEnumerable;var i=(r,o,a)=>o in r?n(r,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[o]=a,u=(r,o)=>{for(var a in o||(o={}))c.call(o,a)&&i(r,a,o[a]);if(l)for(var a of l(o))d.call(o,a)&&i(r,a,o[a]);return r};import{s as e}from"./index.1652784183534.js";const w=async(r,o)=>{var m;r.params=o;let a=(m=r.params.query)==null?void 0:m.id;a?r.form=await e({url:r.url+"/one/"+a,method:"get"}):r.form.avtag=!0},p=async(r,o,a)=>{r.form.crtim?await e({url:r.url,method:"put",data:r.form}):await e({url:r.url,method:"post",data:r.form}),s(o,a)},s=(r,o)=>{r.mittBus.emit("onCurrentContextmenuClick",Object.assign({},u({contextMenuClickId:1},o)))},h=async r=>{r.form.crtim?await e({url:r.url,method:"put",data:r.form}):await e({url:r.url,method:"post",data:r.form}),window.close()},g=()=>{window.close()},v=async r=>{r.form.crtim?await e({url:r.url,method:"put",data:r.form}):await e({url:r.url,method:"post",data:r.form}),r.show=!1},y=async(r,o)=>{o?r.form=await e({url:r.url+"/one/"+o,method:"get"}):r.form={avtag:!0},r.show=!0};export{s as a,v as b,h as c,y as d,w as e,g as p,p as t}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/editRole.1652784183534.css: -------------------------------------------------------------------------------- 1 | .system-edit-role-container .menu-data-tree[data-v-6c3dba81]{width:100%;border:1px solid var(--el-border-color);border-radius:var(--el-input-border-radius, var(--el-border-radius-base));padding:5px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/getStyleSheets.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{l as c}from"./index.1652784183534.js";import{n as r}from"./vue.1652784183534.js";const i=()=>new Promise((l,o)=>{r(()=>{const n=document.styleSheets;let s=[],u=[];for(let e=0;e-1&&s.push(n[e]);for(let e=0;e-1&&u.push(`${s[e].cssRules[t].selectorText.substring(1,s[e].cssRules[t].selectorText.length).replace(/\:\:before/gi,"")}`);u.length>0?l(u):o("\u672A\u83B7\u53D6\u5230\u503C\uFF0C\u8BF7\u5237\u65B0\u91CD\u8BD5")})}),f=()=>new Promise((l,o)=>{r(()=>{const n=c,s=[];for(const u in n)s.push(`ele-${n[u].name}`);s.length>0?l(s):o("\u672A\u83B7\u53D6\u5230\u503C\uFF0C\u8BF7\u5237\u65B0\u91CD\u8BD5")})}),h=()=>new Promise((l,o)=>{r(()=>{const n=document.styleSheets;let s=[],u=[];for(let e=0;e-1&&s.push(n[e]);for(let e=0;e0?l(u.reverse()):o("\u672A\u83B7\u53D6\u5230\u503C\uFF0C\u8BF7\u5237\u65B0\u91CD\u8BD5")})}),m={ali:()=>i(),ele:()=>f(),awe:()=>h()};export{m as i}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/head.1652784183534.css: -------------------------------------------------------------------------------- 1 | .big-data-up[data-v-a791c862]{height:55px;width:100%;display:flex;align-items:center;padding:0 15px;color:var(--el-color-primary);overflow:hidden;position:relative}.big-data-up .up-left[data-v-a791c862]{position:absolute}.big-data-up .up-center[data-v-a791c862]{width:100%;display:flex;justify-content:center;font-size:18px;letter-spacing:5px;background-image:-webkit-linear-gradient(left,var(--el-color-primary),var(--el-color-primary-light-3) 25%,var(--el-color-primary) 50%,var(--el-color-primary-light-3) 75%,var(--el-color-primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;background-size:200% 100%;-webkit-animation:masked-animation-data-v-b02d8052 4s linear infinite;animation:masked-animation-data-v-b02d8052 4s linear infinite;-webkit-box-reflect:below -2px -webkit-gradient(linear,left top,left bottom,from(transparent),to(hsla(0deg,0%,100%,.1)));position:relative}@keyframes masked-animation-a791c862{0%{background-position:0 0}to{background-position:-100% 0}}.big-data-up .up-center[data-v-a791c862]:after{content:"";width:250px;position:absolute;bottom:-15px;left:50%;transform:translate(-50%);border:1px transparent solid;border-image:linear-gradient(to right,var(--el-color-primary-light-9),var(--el-color-primary)) 1 10}.big-data-up .up-center span[data-v-a791c862]{cursor:pointer} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/head.1652784183534.js: -------------------------------------------------------------------------------- 1 | var r=Object.defineProperty;var o=Object.getOwnPropertySymbols;var u=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var n=(e,t,a)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,c=(e,t)=>{for(var a in t||(t={}))u.call(t,a)&&n(e,a,t[a]);if(o)for(var a of o(t))_.call(t,a)&&n(e,a,t[a]);return e};import{_ as p,H as i}from"./index.1652784183534.js";import{a as m,a3 as l,K as f,I as v,ag as h,b as Y,e as s,Y as Q,az as S,aA as w,o as x}from"./vue.1652784183534.js";const H=m({name:"chartHead",setup(){const e=l({time:{txt:"",fun:0}}),t=()=>{e.time.txt=i(new Date,"YYYY-mm-dd HH:MM:SS WWW QQQQ"),e.time.fun=window.setInterval(()=>{e.time.txt=i(new Date,"YYYY-mm-dd HH:MM:SS WWW QQQQ")},1e3)};return f(()=>{t()}),v(()=>{window.clearInterval(e.time.fun)}),c({},h(e))}}),d=e=>(S("data-v-a791c862"),e=e(),w(),e),I={class:"big-data-up mb15"},W={class:"up-left"},B=d(()=>s("i",{class:"el-icon-time mr5"},null,-1)),D=d(()=>s("div",{class:"up-center"},[s("span",null,"\u667A\u6167\u519C\u4E1A\u7CFB\u7EDF\u5E73\u53F0")],-1));function M(e,t,a,g,C,E){return x(),Y("div",I,[s("div",W,[B,s("span",null,Q(e.time.txt),1)]),D])}var A=p(H,[["render",M],["__scopeId","data-v-a791c862"]]);export{A as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/iframes.1652784183534.js: -------------------------------------------------------------------------------- 1 | var g=Object.defineProperty;var f=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable;var m=(e,a,s)=>a in e?g(e,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[a]=s,c=(e,a)=>{for(var s in a||(a={}))h.call(a,s)&&m(e,s,a[s]);if(f)for(var s of f(a))p.call(a,s)&&m(e,s,a[s]);return e};import{a as v,s as l,aB as w,a3 as T,B as _,m as L,k as B,ag as b,T as u,b as k,e as y,U as C,O as I,n as R,aa as V,o as $}from"./vue.1652784183534.js";import{_ as x,u as U,b as D}from"./index.1652784183534.js";const E=v({name:"layoutIfameView",setup(){const e=U(),a=D(),{themeConfig:s}=l(e),{isTagsViewCurrenFull:n}=l(a),i=w(),t=T({iframeLoading:!0,iframeUrl:""}),r=()=>{t.iframeUrl=i.meta.isLink,R(()=>{t.iframeLoading=!0;const o=document.getElementById("iframe");if(!o)return!1;o.onload=()=>{t.iframeLoading=!1}})},d=_(()=>{let{isTagsview:o}=s.value;return n.value?"1px":o?"86px":"51px"});return L(()=>{r()}),B(()=>i.path,()=>{r()}),c({setIframeHeight:d},b(t))}}),H=["src"];function S(e,a,s,n,i,t){const r=V("loading");return u(($(),k("div",{class:"layout-view-bg-white flex mt1",style:I({height:`calc(100vh - ${e.setIframeHeight}`,border:"none"})},[u(y("iframe",{src:e.iframeUrl,frameborder:"0",height:"100%",width:"100%",id:"iframe"},null,8,H),[[C,!e.iframeLoading]])],4)),[[r,e.iframeLoading]])}var N=x(E,[["render",S]]);export{N as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.1652784183534.css: -------------------------------------------------------------------------------- 1 | .tree-h-flex[data-v-ca5ef432]{display:flex}.tree-h-left[data-v-ca5ef432]{flex:1;width:100%}.tree-h-right[data-v-ca5ef432]{width:40px;min-width:40px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353410.css: -------------------------------------------------------------------------------- 1 | .notice-bar[data-v-ae559b32]{padding:0 15px;width:100%;border-radius:4px}.notice-bar .notice-bar-warp[data-v-ae559b32]{display:flex;align-items:center;width:100%;height:inherit}.notice-bar .notice-bar-warp .notice-bar-warp-text-box[data-v-ae559b32]{flex:1;height:inherit;display:flex;align-items:center;overflow:hidden;position:relative}.notice-bar .notice-bar-warp .notice-bar-warp-text-box .notice-bar-warp-text[data-v-ae559b32]{white-space:nowrap;position:absolute;left:0}.notice-bar .notice-bar-warp .notice-bar-warp-text-box .notice-bar-warp-slot[data-v-ae559b32]{width:100%;white-space:nowrap}.notice-bar .notice-bar-warp .notice-bar-warp-text-box .notice-bar-warp-slot[data-v-ae559b32] .el-carousel__item{display:flex;align-items:center}.notice-bar .notice-bar-warp .notice-bar-warp-left-icon[data-v-ae559b32]{width:24px;font-size:inherit!important}.notice-bar .notice-bar-warp .notice-bar-warp-right-icon[data-v-ae559b32]{width:24px;text-align:right;font-size:inherit!important}.notice-bar .notice-bar-warp .notice-bar-warp-right-icon[data-v-ae559b32]:hover{cursor:pointer} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353412.css: -------------------------------------------------------------------------------- 1 | .tools-warp-form[data-v-585cf4a4] .el-form-item--small.el-form-item{margin-bottom:0!important}.tools-warp-form .tools-warp-form-msg[data-v-585cf4a4]{color:#666;font-size:14px;width:100%}.tools-warp-form .tools-warp-form-msg .tools-warp-form-msg-red[data-v-585cf4a4]{color:red}.tools-warp-form .tools-warp-form-msg+div[data-v-585cf4a4]{width:100%} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353414.css: -------------------------------------------------------------------------------- 1 | .drag-container .drag-dom[data-v-0d9c56a6]{position:relative;display:inline-block}.drag-container .drag-dom .drag-header[data-v-0d9c56a6]{display:inline-block} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353415.css: -------------------------------------------------------------------------------- 1 | .qrcode-container .qrcode-img-warp[data-v-270b5237]{text-align:center}.qrcode-container .qrcode-img-warp .qrcode-img[data-v-270b5237]{display:flex;width:100%;height:125px}.qrcode-container .qrcode-img-warp .qrcode-img .qrcode[data-v-270b5237]{margin:auto;width:125px;height:125px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353416.css: -------------------------------------------------------------------------------- 1 | .iconfont-container .iconfont-row[data-v-30050c08]{border-top:1px solid var(--next-border-color-light);border-left:1px solid var(--next-border-color-light)}.iconfont-container .iconfont-row .iconfont-warp[data-v-30050c08]{text-align:center;border-right:1px solid var(--next-border-color-light);border-bottom:1px solid var(--next-border-color-light);height:120px;overflow:hidden;display:flex;transition:all .3s ease}.iconfont-container .iconfont-row .iconfont-warp[data-v-30050c08]:hover{box-shadow:0 2px 12px var(--next-color-dark-hover);cursor:pointer;transition:all .3s ease}.iconfont-container .iconfont-row .iconfont-warp:hover .iconfont-warp-value i[data-v-30050c08],.iconfont-container .iconfont-row .iconfont-warp:hover .iconfont-warp-label[data-v-30050c08]{color:var(--el-color-primary);transition:all .3s ease}.iconfont-container .iconfont-row .iconfont-warp .iconfont-warp-value i[data-v-30050c08]{color:#606266;font-size:32px;transition:all .3s ease}.iconfont-container .iconfont-row .iconfont-warp .iconfont-warp-label[data-v-30050c08]{color:#99a9bf;transition:all .3s ease} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353418.css: -------------------------------------------------------------------------------- 1 | .tree-container .tree-head[data-v-2b8f1c48]{height:48px;line-height:48px;border:1px solid var(--next-border-color-light);border-bottom:none;display:flex;padding-right:8px;font-weight:700;color:#909399}.tree-container .tree-head .tree-head-check[data-v-2b8f1c48]{width:38px;text-align:right}.tree-container .tree-head .tree-head-one[data-v-2b8f1c48],.tree-container .tree-head .tree-head-two[data-v-2b8f1c48],.tree-container .tree-head .tree-head-three[data-v-2b8f1c48]{flex:1}.tree-container .tree-head .tree-head-one[data-v-2b8f1c48]{padding-left:8px}.tree-container .el-tree[data-v-2b8f1c48]{overflow:hidden;border-bottom:1px solid var(--next-border-color-light)}.tree-container .el-tree .tree-custom-node[data-v-2b8f1c48]{flex:1;display:flex;align-items:center;justify-content:space-between;padding-right:8px;width:100%}.tree-container .el-tree[data-v-2b8f1c48] .el-tree-node{border:1px solid var(--next-border-color-light);border-bottom:none;color:#606266}.tree-container .el-tree[data-v-2b8f1c48] .el-tree-node .el-tree-node__content{line-height:57px!important;height:57px!important}.tree-container .el-tree[data-v-2b8f1c48] .el-tree-node .el-tree-node__children .el-tree-node{border:none}.tree-container .el-tree[data-v-2b8f1c48] .el-tree-node .el-tree-node__children .el-tree-node__content{border-top:1px solid var(--next-border-color-light)} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.16527841835342.css: -------------------------------------------------------------------------------- 1 | .fun-tagsview .fun-tagsview-from-item[data-v-64af0c2c] .el-form-item__content{margin-left:0!important} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353422.css: -------------------------------------------------------------------------------- 1 | .preview-container .flex-warp[data-v-6968bfea]{display:flex;flex-wrap:wrap;align-content:flex-start;margin:0 -5px}.preview-container .flex-warp .flex-warp-item[data-v-6968bfea]{padding:5px}.preview-container .flex-warp .flex-warp-item .flex-warp-item-box[data-v-6968bfea]{width:100%;height:100%}.preview-container .waterfall-first[data-v-6968bfea]{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));grid-gap:.25em;grid-auto-flow:row dense;grid-auto-rows:20px}.preview-container .waterfall-first .waterfall-first-item[data-v-6968bfea]{width:100%;background:var(--el-color-primary);color:var(--el-color-white);transition:all .3s ease;border-radius:3px}.preview-container .waterfall-first .waterfall-first-item[data-v-6968bfea]:nth-of-type(3n + 1){grid-row:auto/span 5}.preview-container .waterfall-first .waterfall-first-item[data-v-6968bfea]:nth-of-type(3n + 2){grid-row:auto/span 6}.preview-container .waterfall-first .waterfall-first-item[data-v-6968bfea]:nth-of-type(3n + 3){grid-row:auto/span 8}.preview-container .waterfall-first .waterfall-first-item[data-v-6968bfea]:hover{box-shadow:0 2px 12px #0000001a;transition:all .3s ease;cursor:pointer} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353423.css: -------------------------------------------------------------------------------- 1 | .flex-warp[data-v-2661a51f]{display:flex;flex-wrap:wrap;align-content:flex-start;margin:0 -5px}.flex-warp .flex-warp-item[data-v-2661a51f]{padding:5px}.flex-warp .flex-warp-item .flex-warp-item-box[data-v-2661a51f]{width:100%;height:100%} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353424.js: -------------------------------------------------------------------------------- 1 | var F=Object.defineProperty;var r=Object.getOwnPropertySymbols;var V=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var p=(o,e,u)=>e in o?F(o,e,{enumerable:!0,configurable:!0,writable:!0,value:u}):o[e]=u,d=(o,e)=>{for(var u in e||(e={}))V.call(e,u)&&p(o,u,e[u]);if(r)for(var u of r(e))_.call(e,u)&&p(o,u,e[u]);return o};import{_ as f,a7 as C}from"./index.1652784183534.js";import{a as b,a3 as h,m as v,ag as B,b as y,Z as t,S as n,a2 as l,o as E,X as A}from"./vue.1652784183534.js";const D=b({name:"funClipboard",setup(){const{copyText:o}=C(),e=h({copyVal:"https://gitee.com/lyt-top/vue-next-admin",shearVal:""});return v(()=>{}),d({copyText:o},B(e))}}),$={id:"printRref"},g=A("\u590D\u5236\u94FE\u63A5");function k(o,e,u,w,x,T){const c=l("el-alert"),m=l("el-button"),s=l("el-input"),i=l("el-card");return E(),y("div",$,[t(i,{shadow:"hover",header:"\u590D\u5236\u526A\u5207\u6F14\u793A"},{default:n(()=>[t(c,{title:"\u611F\u8C22\u4F18\u79C0\u7684 `vue-clipboard3`\uFF0C\u9879\u76EE\u5730\u5740\uFF1Ahttps://github.com/JamieCurnow/vue-clipboard3`",type:"success",closable:!1,class:"mb15"}),t(s,{placeholder:"\u8BF7\u8F93\u5165\u5185\u5BB9",modelValue:o.copyVal,"onUpdate:modelValue":e[1]||(e[1]=a=>o.copyVal=a)},{append:n(()=>[t(m,{onClick:e[0]||(e[0]=a=>o.copyText(o.copyVal))},{default:n(()=>[g]),_:1})]),_:1},8,["modelValue"]),t(s,{placeholder:"\u5148\u70B9\u51FB\u4E0A\u65B9 `\u590D\u5236\u94FE\u63A5` \u6309\u94AE\uFF0C\u7136\u540E `Ctrl + V` \u8FDB\u884C\u7C98\u8D34\uFF01 ",modelValue:o.shearVal,"onUpdate:modelValue":e[2]||(e[2]=a=>o.shearVal=a),class:"mt15"},null,8,["modelValue"])]),_:1})])}var J=f(D,[["render",k]]);export{J as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353425.css: -------------------------------------------------------------------------------- 1 | .workflow-tool[data-v-4882b14e]{height:35px;display:flex;align-items:center;border-bottom:1px solid var(--el-border-color-light, #ebeef5);color:var(--el-text-color-primary)}.workflow-tool .workflow-tool-right[data-v-4882b14e]{flex:1;display:flex;justify-content:flex-end}.workflow-tool-icon[data-v-4882b14e]{padding:0 10px;cursor:pointer;color:var(--next-bg-topBarColor);height:35px;line-height:35px;display:flex;align-items:center}.workflow-tool-icon[data-v-4882b14e]:hover{background:rgba(0,0,0,.04)}.workflow-tool-icon:hover i[data-v-4882b14e]{display:inline-block;animation:logoAnimation .3s ease-in-out} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353427.css: -------------------------------------------------------------------------------- 1 | .element-container .iconfont-row[data-v-2358c18e]{border-top:1px solid var(--next-border-color-light);border-left:1px solid var(--next-border-color-light)}.element-container .iconfont-row .iconfont-warp[data-v-2358c18e]{text-align:center;border-right:1px solid var(--next-border-color-light);border-bottom:1px solid var(--next-border-color-light);height:120px;overflow:hidden;display:flex;transition:all .3s ease}.element-container .iconfont-row .iconfont-warp[data-v-2358c18e]:hover{box-shadow:0 2px 12px var(--next-color-dark-hover);cursor:pointer;transition:all .3s ease}.element-container .iconfont-row .iconfont-warp:hover .iconfont-warp-value i[data-v-2358c18e],.element-container .iconfont-row .iconfont-warp:hover .iconfont-warp-label[data-v-2358c18e]{color:var(--el-color-primary);transition:all .3s ease}.element-container .iconfont-row .iconfont-warp .iconfont-warp-value i[data-v-2358c18e]{color:#606266;font-size:32px;transition:all .3s ease}.element-container .iconfont-row .iconfont-warp .iconfont-warp-label[data-v-2358c18e]{color:#99a9bf;transition:all .3s ease} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353428.js: -------------------------------------------------------------------------------- 1 | var g=Object.defineProperty;var i=Object.getOwnPropertySymbols;var m=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable;var l=(e,t,a)=>t in e?g(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,c=(e,t)=>{for(var a in t||(t={}))m.call(t,a)&&l(e,a,t[a]);if(i)for(var a of i(t))x.call(t,a)&&l(e,a,t[a]);return e};import{_ as v}from"./index.1652784183534.js";import{a as w,a3 as F,ag as b,b as d,Z as r,S as u,a2 as o,o as n,F as C,a7 as k,R as B,e as _,Y as E}from"./vue.1652784183534.js";const $=w({name:"FunGridLayout",setup(){const e=F({layouts:[{x:0,y:0,w:2,h:2,i:"0"},{x:2,y:0,w:2,h:4,i:"1"},{x:4,y:0,w:2,h:5,i:"2"},{x:6,y:0,w:2,h:3,i:"3"},{x:8,y:0,w:2,h:3,i:"4"},{x:10,y:0,w:2,h:3,i:"5"},{x:0,y:5,w:2,h:5,i:"6"}]});return c({},b(e))}}),D={class:"grid-layout-container"},A={class:"w100 h100 flex"},L={class:"flex-margin font14"};function N(e,t,a,R,S,V){const y=o("el-alert"),p=o("grid-item"),h=o("grid-layout"),f=o("el-card");return n(),d("div",D,[r(f,{shadow:"hover",header:"vue-grid-layout \u62D6\u62FD\u5E03\u5C40\u6F14\u793A"},{default:u(()=>[r(y,{title:"\u611F\u8C22\u4F18\u79C0\u7684 `vue-grid-layout`\uFF0C\u9879\u76EE\u5730\u5740\uFF1Ahttps://github.com/jbaysolutions/vue-grid-layout",type:"success",closable:!1,class:"mb15"}),r(h,{layout:e.layouts,"onUpdate:layout":t[0]||(t[0]=s=>e.layouts=s),"col-num":12,"row-height":30,"is-draggable":!0,"is-resizable":!0,"is-mirrored":!1,"vertical-compact":!0,margin:[10,10],"use-css-transforms":!0},{default:u(()=>[(n(!0),d(C,null,k(e.layouts,s=>(n(),B(p,{x:s.x,y:s.y,w:s.w,h:s.h,i:s.i,key:s.i},{default:u(()=>[_("div",A,[_("span",L,E(s.i),1)])]),_:2},1032,["x","y","w","h","i"]))),128))]),_:1},8,["layout"])]),_:1})])}var I=v($,[["render",N],["__scopeId","data-v-334bebb8"]]);export{I as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353430.js: -------------------------------------------------------------------------------- 1 | var h=Object.defineProperty;var d=Object.getOwnPropertySymbols;var v=Object.prototype.hasOwnProperty,C=Object.prototype.propertyIsEnumerable;var i=(t,o,e)=>o in t?h(t,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[o]=e,_=(t,o)=>{for(var e in o||(o={}))v.call(o,e)&&i(t,e,o[e]);if(d)for(var e of d(o))C.call(o,e)&&i(t,e,o[e]);return t};import{Q as g}from"./qrcode.1652784183534.js";import{_ as q}from"./index.1652784183534.js";import{a as x,a3 as F,m as b,ag as w,b as y,Z as s,S as c,a2 as n,o as R,e as r,l as $,X as Q}from"./vue.1652784183534.js";const k=x({name:"funQrcode",setup(){const{proxy:t}=$(),o=F({qrcode:""}),e=()=>{new g(t.$refs.qrcodeRef,{text:`https://lyt-top.gitee.io/vue-next-admin-preview/#/login?t=${new Date().getTime()}`,width:125,height:125,colorDark:"#000000",colorLight:"#ffffff"})},a=()=>{t.$refs.qrcodeRef.innerHTML="",e()};return b(()=>{e()}),_({onInitQrcode:a},w(o))}}),E={class:"qrcode-container"},j={class:"qrcode-img-warp"},B={class:"mb30 mt30 qrcode-img"},I={class:"qrcode",ref:"qrcodeRef"},D=Q(" \u91CD\u65B0\u751F\u6210 ");function N(t,o,e,a,T,V){const l=n("el-alert"),u=n("ele-Refresh"),f=n("el-icon"),p=n("el-button"),m=n("el-card");return R(),y("div",E,[s(m,{shadow:"hover",header:"qrcodejs2 \u4E8C\u7EF4\u7801\u751F\u6210"},{default:c(()=>[s(l,{title:"\u611F\u8C22\u4F18\u79C0\u7684 `qrcodejs2`\uFF0C\u9879\u76EE\u5730\u5740\uFF1Ahttps://github.com/davidshimjs/qrcodejs",type:"success",closable:!1,class:"mb15"}),r("div",j,[r("div",B,[r("div",I,null,512)]),s(p,{type:"primary",size:"default",onClick:t.onInitQrcode},{default:c(()=>[s(f,null,{default:c(()=>[s(u)]),_:1}),D]),_:1},8,["onClick"])])]),_:1})])}var H=q(k,[["render",N],["__scopeId","data-v-270b5237"]]);export{H as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353437.js: -------------------------------------------------------------------------------- 1 | var d=Object.defineProperty;var c=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;var m=(a,o,n)=>o in a?d(a,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[o]=n,p=(a,o)=>{for(var n in o||(o={}))_.call(o,n)&&m(a,n,o[n]);if(c)for(var n of c(o))f.call(o,n)&&m(a,n,o[n]);return a};import{l as v}from"./logo-mini.1652784183534.js";import{_ as g}from"./index.1652784183534.js";import{a as F,a3 as b,ag as h,b as C,Z as e,S as l,a2 as u,o as E}from"./vue.1652784183534.js";const B=F({name:"makeSvgDemo",setup(){const a=b({tableData:[{a1:"name",a2:"svg \u56FE\u6807\u7EC4\u4EF6\u540D\u5B57 / svg \u8DEF\u5F84 url",a3:"string",a4:"",a5:""},{a1:"size",a2:"svg \u5927\u5C0F",a3:"number",a4:"",a5:14},{a1:"color",a2:"svg \u989C\u8272",a3:"string",a4:"",a5:""}]});return p({logoMini:v},h(a))}}),D={class:"svg-demo-container"};function z(a,o,n,k,w,A){const s=u("SvgIcon"),r=u("el-card"),t=u("el-table-column"),i=u("el-table");return E(),C("div",D,[e(r,{shadow:"hover",header:"svgIcon\uFF1A\u6F14\u793A\uFF08\u652F\u6301\u672C\u5730svg\uFF09"},{default:l(()=>[e(s,{name:"iconfont icon-shuju1",color:"red",size:30}),e(s,{name:"ele-Trophy",color:"var(--el-color-primary)",size:30}),e(s,{name:"fa fa-flag-checkered",color:"#09f",size:30}),e(s,{name:a.logoMini,color:"#09f",size:30},null,8,["name"])]),_:1}),e(r,{shadow:"hover",header:"svgIcon\uFF1A\u53C2\u6570",class:"mt15"},{default:l(()=>[e(i,{data:a.tableData,style:{width:"100%"}},{default:l(()=>[e(t,{prop:"a1",label:"\u53C2\u6570"}),e(t,{prop:"a2",label:"\u8BF4\u660E"}),e(t,{prop:"a3",label:"\u7C7B\u578B"}),e(t,{prop:"a4",label:"\u53EF\u9009\u503C"}),e(t,{prop:"a5",label:"\u9ED8\u8BA4\u503C"})]),_:1},8,["data"])]),_:1})])}var y=g(B,[["render",z]]);export{y as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353438.js: -------------------------------------------------------------------------------- 1 | var r=Object.defineProperty;var n=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var t=(o,e,a)=>e in o?r(o,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[e]=a,u=(o,e)=>{for(var a in e||(e={}))p.call(e,a)&&t(o,a,e[a]);if(n)for(var a of n(e))m.call(e,a)&&t(o,a,e[a]);return o};import{_ as d}from"./index.1652784183534.js";import{a as c,a3 as i,ag as f,b as B,Z as _,a2 as v,o as F}from"./vue.1652784183534.js";const V=c({name:"menu2",setup(){const o=i({val:""});return u({},f(o))}});function $(o,e,a,D,k,x){const l=v("el-input");return F(),B("div",null,[_(l,{modelValue:o.val,"onUpdate:modelValue":e[0]||(e[0]=s=>o.val=s),placeholder:"menu2\uFF1A\u8BF7\u8F93\u5165\u5185\u5BB9\u6D4B\u8BD5\u8DEF\u7531\u7F13\u5B58"},null,8,["modelValue"])])}var g=d(V,[["render",$]]);export{g as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353439.js: -------------------------------------------------------------------------------- 1 | var v=Object.defineProperty;var i=Object.getOwnPropertySymbols;var w=Object.prototype.hasOwnProperty,g=Object.prototype.propertyIsEnumerable;var l=(e,s,t)=>s in e?v(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t,_=(e,s)=>{for(var t in s||(s={}))w.call(s,t)&&l(e,t,s[t]);if(i)for(var t of i(s))g.call(s,t)&&l(e,t,s[t]);return e};import{i as x}from"./getStyleSheets.1652784183534.js";import{_ as F}from"./index.1652784183534.js";import{a as I,a3 as y,m as A,ag as B,b as d,Z as u,S as a,a2 as n,o as c,F as L,a7 as $,R as k,e as o,M as C,Y as E}from"./vue.1652784183534.js";const S=I({name:"pagesAwesome",setup(){const e=y({sheetsIconList:[]}),s=()=>{x.awe().then(t=>e.sheetsIconList=t)};return A(()=>{s()}),_({},B(e))}}),b={class:"awesome-container"},D={class:"iconfont-warp"},M={class:"flex-margin"},N={class:"iconfont-warp-value"},R={class:"iconfont-warp-label mt10"};function V(e,s,t,z,G,Y){const m=n("el-col"),p=n("el-row"),f=n("el-card");return c(),d("div",b,[u(f,{shadow:"hover",header:`fontawesome \u5B57\u4F53\u56FE\u6807(\u81EA\u52A8\u8F7D\u5165)\uFF1A${e.sheetsIconList.length-24}\u4E2A`},{default:a(()=>[u(p,{class:"iconfont-row"},{default:a(()=>[(c(!0),d(L,null,$(e.sheetsIconList,(r,h)=>(c(),k(m,{xs:12,sm:8,md:6,lg:4,xl:2,key:h},{default:a(()=>[o("div",D,[o("div",M,[o("div",N,[o("i",{class:C([r,"fa"])},null,2)]),o("div",R,E(r),1)])])]),_:2},1024))),128))]),_:1})]),_:1},8,["header"])])}var J=F(S,[["render",V],["__scopeId","data-v-6a551862"]]);export{J as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.16527841835344.css: -------------------------------------------------------------------------------- 1 | .awesome-container .iconfont-row[data-v-6a551862]{border-top:1px solid var(--next-border-color-light);border-left:1px solid var(--next-border-color-light)}.awesome-container .iconfont-row .iconfont-warp[data-v-6a551862]{text-align:center;border-right:1px solid var(--next-border-color-light);border-bottom:1px solid var(--next-border-color-light);height:120px;overflow:hidden;display:flex;transition:all .3s ease}.awesome-container .iconfont-row .iconfont-warp[data-v-6a551862]:hover{box-shadow:0 2px 12px var(--next-color-dark-hover);cursor:pointer;transition:all .3s ease}.awesome-container .iconfont-row .iconfont-warp:hover .iconfont-warp-value i[data-v-6a551862],.awesome-container .iconfont-row .iconfont-warp:hover .iconfont-warp-label[data-v-6a551862]{color:var(--el-color-primary);transition:all .3s ease}.awesome-container .iconfont-row .iconfont-warp .iconfont-warp-value i[data-v-6a551862]{color:#606266;font-size:32px;transition:all .3s ease}.awesome-container .iconfont-row .iconfont-warp .iconfont-warp-label[data-v-6a551862]{color:#99a9bf;transition:all .3s ease} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353442.js: -------------------------------------------------------------------------------- 1 | var v=Object.defineProperty;var i=Object.getOwnPropertySymbols;var g=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable;var _=(e,t,s)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,u=(e,t)=>{for(var s in t||(t={}))g.call(t,s)&&_(e,s,t[s]);if(i)for(var s of i(t))w.call(t,s)&&_(e,s,t[s]);return e};import{i as x}from"./getStyleSheets.1652784183534.js";import{_ as I}from"./index.1652784183534.js";import{a as A,a3 as E,m as S,ag as y,b as d,Z as a,S as c,a2 as o,o as r,F as B,a7 as C,R as L,e as n,Y as $}from"./vue.1652784183534.js";const k=A({name:"pagesElement",setup(){const e=E({sheetsIconList:[]}),t=()=>{x.ele().then(s=>{e.sheetsIconList=s})};return S(()=>{t()}),u({},y(e))}}),D={class:"element-container"},b={class:"iconfont-warp"},N={class:"flex-margin"},R={class:"iconfont-warp-value"},V={class:"iconfont-warp-label mt10"};function z(e,t,s,G,M,Y){const m=o("SvgIcon"),p=o("el-col"),f=o("el-row"),h=o("el-card");return r(),d("div",D,[a(h,{shadow:"hover",header:`element plus \u5B57\u4F53\u56FE\u6807(\u81EA\u52A8\u8F7D\u5165\uFF0C\u589E\u52A0\u4E86 ele- \u524D\u7F00\uFF0C\u4F7F\u7528\u65F6\uFF1Aele-Aim)\uFF1A${e.sheetsIconList.length}\u4E2A`},{default:c(()=>[a(f,{class:"iconfont-row"},{default:c(()=>[(r(!0),d(B,null,C(e.sheetsIconList,(l,F)=>(r(),L(p,{xs:12,sm:8,md:6,lg:4,xl:2,key:F},{default:c(()=>[n("div",b,[n("div",N,[n("div",R,[a(m,{name:l,size:30},null,8,["name"])]),n("div",V,$(l),1)])])]),_:2},1024))),128))]),_:1})]),_:1},8,["header"])])}var J=I(k,[["render",z],["__scopeId","data-v-2358c18e"]]);export{J as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353447.js: -------------------------------------------------------------------------------- 1 | var v=Object.defineProperty;var i=Object.getOwnPropertySymbols;var g=Object.prototype.hasOwnProperty,w=Object.prototype.propertyIsEnumerable;var l=(e,t,o)=>t in e?v(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,_=(e,t)=>{for(var o in t||(t={}))g.call(t,o)&&l(e,o,t[o]);if(i)for(var o of i(t))w.call(t,o)&&l(e,o,t[o]);return e};import{i as x}from"./getStyleSheets.1652784183534.js";import{_ as F}from"./index.1652784183534.js";import{a as I,a3 as y,m as B,ag as L,b as d,Z as u,S as n,a2 as a,o as c,F as $,a7 as k,R as A,e as s,M as C,Y as E}from"./vue.1652784183534.js";const S=I({name:"pagesIocnfont",setup(){const e=y({sheetsIconList:[]}),t=()=>{x.ali().then(o=>e.sheetsIconList=o)};return B(()=>{t()}),_({},L(e))}}),b={class:"iconfont-container"},D={class:"iconfont-warp"},M={class:"flex-margin"},N={class:"iconfont-warp-value"},R={class:"iconfont-warp-label mt10"};function V(e,t,o,z,G,Y){const p=a("el-col"),f=a("el-row"),m=a("el-card");return c(),d("div",b,[u(m,{shadow:"hover",header:`iconfont \u5B57\u4F53\u56FE\u6807(\u81EA\u52A8\u8F7D\u5165)\uFF1A${e.sheetsIconList.length}\u4E2A`},{default:n(()=>[u(f,{class:"iconfont-row"},{default:n(()=>[(c(!0),d($,null,k(e.sheetsIconList,(r,h)=>(c(),A(p,{xs:12,sm:8,md:6,lg:4,xl:2,key:h},{default:n(()=>[s("div",D,[s("div",M,[s("div",N,[s("i",{class:C([r,"iconfont"])},null,2)]),s("div",R,E(r),1)])])]),_:2},1024))),128))]),_:1})]),_:1},8,["header"])])}var J=F(S,[["render",V],["__scopeId","data-v-30050c08"]]);export{J as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.16527841835345.js: -------------------------------------------------------------------------------- 1 | import{s as a,E as t,g as i,r as o}from"./index.1652784183534.js";const l=()=>{let u=[],n="0123456789abcdef";for(let e=0;e<36;e++)u[e]=n.substr(Math.floor(Math.random()*16),1);return u[14]="4",u[19]=n.substr(u[19]&3|8,1),u.join("")};async function s(u){const n=await a({url:u.url,method:"get",params:u.form});u.list=n.items,u.total=n.total,u.loading=!1}function d(u,n){n.ids=u.map(e=>e.id),n.single=u.length!==1,n.multiple=!u.length}async function g(u){const n=u.ids.join(",");if(n.length<=0){t.warning("\u8BF7\u9009\u62E9\u540E\u518D\u8FDB\u884C\u5220\u9664");return}i.confirm("\u786E\u8BA4\u5220\u9664\u5DF2\u9009\u4E2D\u7684\u6570\u636E\u9879?","\u8B66\u544A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"warning"}).then(async()=>{await a({url:u.url+"/"+n,method:"delete"}),await s(u)}).catch(()=>t.info("\u5DF2\u53D6\u6D88\u5220\u9664"))}async function r(u){u.list=await a({url:u.url+"/tree",method:"get",params:u.form}),u.loading=!1}function D(u,n){n.ids=u.map(e=>e.id),n.single=u.length!==1,n.multiple=!u.length}async function f(u){const n=u.ids.join(",");if(n.length<=0){t.warning("\u8BF7\u9009\u62E9\u540E\u518D\u8FDB\u884C\u5220\u9664");return}i.confirm("\u786E\u8BA4\u5220\u9664\u5DF2\u9009\u4E2D\u7684\u6570\u636E\u9879?","\u8B66\u544A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"warning"}).then(async()=>{await a({url:u.url+"/"+n,method:"delete"}),await r(u)}).catch(()=>t.info("\u5DF2\u53D6\u6D88\u5220\u9664"))}const h=async(u,n)=>{i.confirm("\u786E\u8BA4\u8981\u5220\u9664\u5417?","\u8B66\u544A",{confirmButtonText:"\u786E\u5B9A",cancelButtonText:"\u53D6\u6D88",type:"warning"}).then(async()=>{await a({url:u.url+"/"+n,method:"delete"}),await r(u)}).catch(()=>t.info("\u5DF2\u53D6\u6D88\u5220\u9664"))},p=u=>{o.push({path:u+"/edit",query:{uuid:l()}})},m=(u,n)=>{o.push({path:u+"/edit",query:{id:n}})},w=u=>{window.open("#/page/"+u)},B=u=>{window.open("#/page/"+u)},E=u=>{window.open("#/page/"+u)};export{g as a,d as b,m as c,r as d,f as e,h as f,D as g,B as h,E as i,s as l,w as p,p as t}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353450.js: -------------------------------------------------------------------------------- 1 | var u=Object.defineProperty;var o=Object.getOwnPropertySymbols;var d=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var a=(e,t,s)=>t in e?u(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,r=(e,t)=>{for(var s in t||(t={}))d.call(t,s)&&a(e,s,t[s]);if(o)for(var s of o(t))h.call(t,s)&&a(e,s,t[s]);return e};import{_ as l}from"./index.1652784183534.js";import{a as m,a3 as _,ag as f,b as g,Z as c,S as v,a2 as p,o as x}from"./vue.1652784183534.js";const F=m({name:"pagesPreview",setup(){const e=_({url:"https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1813762643,1914315241&fm=26&gp=0.jpg",srcList:["https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1813762643,1914315241&fm=26&gp=0.jpg","https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=317673774,2961727727&fm=26&gp=0.jpg","https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg"]});return r({},f(e))}}),b={class:"preview-container"};function w(e,t,s,j,k,B){const n=p("el-image"),i=p("el-card");return x(),g("div",b,[c(i,{shadow:"hover",header:"element-plus \u5927\u56FE\u9884\u89C8"},{default:v(()=>[c(n,{style:{width:"100px",height:"100px","border-radius":"5px"},src:e.url,"preview-src-list":e.srcList,title:"\u70B9\u51FB\u67E5\u770B\u5927\u56FE\u9884\u89C8"},null,8,["src","preview-src-list"])]),_:1})])}var E=l(F,[["render",w]]);export{E as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353451.js: -------------------------------------------------------------------------------- 1 | var f=Object.defineProperty;var p=Object.getOwnPropertySymbols;var v=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable;var _=(e,t,o)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,d=(e,t)=>{for(var o in t||(t={}))v.call(t,o)&&_(e,o,t[o]);if(p)for(var o of p(t))A.call(t,o)&&_(e,o,t[o]);return e};import{_ as D}from"./index.1652784183534.js";import{a as F,a3 as E,ag as k,b as h,Z as s,S as n,a2 as u,o as i,R as r,W as S,X as b}from"./vue.1652784183534.js";const N=F({name:"pagesSteps",setup(){const e=E({stepsActive:1});return d({onNextSteps:()=>{e.stepsActive++>2&&(e.stepsActive=1)}},k(e))}}),g={class:"steps-container"},y=b(" \u4E0B\u4E00\u6B65 ");function x(e,t,o,z,T,$){const c=u("SvgIcon"),a=u("el-step"),m=u("el-steps"),l=u("el-result"),B=u("el-button"),C=u("el-card");return i(),h("div",g,[s(C,{shadow:"hover",header:"element-plus \u6B65\u9AA4\u6761"},{default:n(()=>[s(m,{active:e.stepsActive},{default:n(()=>[s(a,{title:"\u7B2C\u4E00\u6B65"},{icon:n(()=>[s(c,{name:"iconfont icon-0_round_solid",size:20})]),_:1}),s(a,{title:"\u7B2C\u4E8C\u6B65"},{icon:n(()=>[s(c,{name:"iconfont icon-2_round_solid",size:20})]),_:1}),s(a,{title:"\u7B2C\u4E09\u6B65"},{icon:n(()=>[s(c,{name:"iconfont icon-3_round_solid",size:20})]),_:1})]),_:1},8,["active"]),e.stepsActive===1?(i(),r(l,{key:0,icon:"success",title:"\u6210\u529F\u63D0\u793A",subTitle:"\u8BF7\u6839\u636E\u63D0\u793A\u8FDB\u884C\u64CD\u4F5C"})):e.stepsActive===2?(i(),r(l,{key:1,icon:"warning",title:"\u8B66\u544A\u63D0\u793A",subTitle:"\u8BF7\u6839\u636E\u63D0\u793A\u8FDB\u884C\u64CD\u4F5C"})):e.stepsActive===3?(i(),r(l,{key:2,icon:"error",title:"\u9519\u8BEF\u63D0\u793A",subTitle:"\u8BF7\u6839\u636E\u63D0\u793A\u8FDB\u884C\u64CD\u4F5C"})):S("",!0),s(B,{onClick:e.onNextSteps,size:"default",class:"mt15",type:"primary"},{default:n(()=>[s(c,{name:"iconfont icon-step"}),y]),_:1},8,["onClick"])]),_:1})])}var R=D(N,[["render",x]]);export{R as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353454.js: -------------------------------------------------------------------------------- 1 | var w=Object.defineProperty;var i=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable;var _=(s,e,a)=>e in s?w(s,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):s[e]=a,d=(s,e)=>{for(var a in e||(e={}))F.call(e,a)&&_(s,a,e[a]);if(i)for(var a of i(e))x.call(e,a)&&_(s,a,e[a]);return s};import{_ as g}from"./index.1652784183534.js";import{a as C,a3 as E,ag as y,b as o,Z as u,S as f,a2 as k,aa as $,o as l,e as t,F as p,a7 as v,T as h,Y as m}from"./vue.1652784183534.js";const b=C({name:"pagesWaterfall",setup(){const s=E({});return d({},y(s))}}),B={class:"waterfall-container"},D={class:"waterfall-first"},N={class:"w100 h100 flex"},S={class:"flex-margin"},V={class:"waterfall-last"},I={class:"w100 h100 flex"},L={class:"flex-margin"};function R(s,e,a,T,W,Y){const n=k("el-card"),c=$("waves");return l(),o("div",B,[u(n,{shadow:"hover",header:"\u7011\u5E03\u5C4F\uFF08\u5E03\u5C40\u4E00\uFF09",class:"mb15"},{default:f(()=>[t("div",D,[(l(),o(p,null,v(30,r=>h(t("div",{class:"waterfall-first-item",key:r},[t("div",N,[t("span",S,m(r),1)])]),[[c]])),64))])]),_:1}),u(n,{shadow:"hover",header:"\u7011\u5E03\u5C4F\uFF08\u5E03\u5C40\u4E8C\uFF09"},{default:f(()=>[t("div",V,[(l(),o(p,null,v(30,r=>h(t("div",{class:"waterfall-last-item",key:r},[t("div",I,[t("span",L,m(r),1)])]),[[c,"light"]])),64))])]),_:1})])}var z=g(b,[["render",R],["__scopeId","data-v-2fb4aec1"]]);export{z as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353457.js: -------------------------------------------------------------------------------- 1 | var f=Object.defineProperty;var u=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable;var _=(t,e,o)=>e in t?f(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,d=(t,e)=>{for(var o in e||(e={}))C.call(e,o)&&_(t,o,e[o]);if(u)for(var o of u(e))k.call(e,o)&&_(t,o,e[o]);return t};import{a as v,s as T,a3 as g,B as h,ag as w,b as l,e as m,Y as D,F as N,a7 as y,a2 as E,o as s,Z as F}from"./vue.1652784183534.js";import{_ as $,u as B}from"./index.1652784183534.js";const b=v({name:"pagesWorkflowTool",setup(t,{emit:e}){const o=B(),{themeConfig:a}=T(o),i=g({toolList:[{icon:"ele-Help",title:"\u5E2E\u52A9",fnName:"help"},{icon:"ele-Download",title:"\u4E0B\u8F7D",fnName:"download"},{icon:"ele-Check",title:"\u63D0\u4EA4",fnName:"submit"},{icon:"ele-DocumentCopy",title:"\u590D\u5236",fnName:"copy"},{icon:"ele-Delete",title:"\u5220\u9664",fnName:"del"},{icon:"ele-FullScreen",title:"\u5168\u5C4F",fnName:"fullscreen"}]}),c=h(()=>{let{globalTitle:n}=a.value;return`${n}\u5DE5\u4F5C\u6D41`});return d({setToolTitle:c,onToolClick:n=>{e("tool",n)}},w(i))}}),S={class:"workflow-tool"},I={class:"pl15"},L={class:"workflow-tool-right"},x=["title","onClick"];function A(t,e,o,a,i,c){const r=E("SvgIcon");return s(),l("div",S,[m("div",I,D(t.setToolTitle),1),m("div",L,[(s(!0),l(N,null,y(t.toolList,(n,p)=>(s(),l("div",{class:"workflow-tool-icon",key:p,title:n.title,onClick:R=>t.onToolClick(n.fnName)},[F(r,{name:n.icon},null,8,["name"])],8,x))),128))])])}var Y=$(b,[["render",A],["__scopeId","data-v-4882b14e"]]);export{Y as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353459.js: -------------------------------------------------------------------------------- 1 | var k=Object.defineProperty;var m=Object.getOwnPropertySymbols;var N=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var c=(e,n,o)=>n in e?k(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,f=(e,n)=>{for(var o in n||(n={}))N.call(n,o)&&c(e,o,n[o]);if(m)for(var o of m(n))v.call(n,o)&&c(e,o,n[o]);return e};import w from"./line.1652784183534.js";import y from"./node.1652784183534.js";import{_ as L}from"./index.1652784183534.js";import{a as R,j as C,a3 as S,ag as h,b as j,Z as b,S as _,n as B,a2 as t,o as p,R as g}from"./vue.1652784183534.js";import"./echarts.1652784183534.js";const O=R({name:"pagesWorkflowDrawer",components:{Line:w,Node:y},setup(e,{emit:n}){const o=C(),l=C(),s=S({isOpen:!1,nodeData:{type:"node"},jsplumbConn:{}});return f({lineRef:o,nodeRef:l,open:(a,r)=>{s.isOpen=!0,s.jsplumbConn=r,s.nodeData=a,B(()=>{a.type==="line"?o.value.getParentData(a):l.value.getParentData(a)})},close:()=>{s.isOpen=!1},onLineChange:a=>{s.jsplumbConn.label=a,n("label",s.jsplumbConn)},onNodeSubmit:a=>{n("node",a)}},h(s))}});function $(e,n,o,l,s,D){const i=t("Line"),u=t("Node"),d=t("el-scrollbar"),a=t("el-drawer");return p(),j("div",null,[b(a,{title:`${e.nodeData.type==="line"?"\u7EBF":"\u8282\u70B9"}\u64CD\u4F5C`,modelValue:e.isOpen,"onUpdate:modelValue":n[0]||(n[0]=r=>e.isOpen=r),size:"320px"},{default:_(()=>[b(d,null,{default:_(()=>[e.nodeData.type==="line"?(p(),g(i,{key:0,onChange:e.onLineChange,onClose:e.close,ref:"lineRef"},null,8,["onChange","onClose"])):(p(),g(u,{key:1,onSubmit:e.onNodeSubmit,onClose:e.close,ref:"nodeRef"},null,8,["onSubmit","onClose"]))]),_:1})]),_:1},8,["title","modelValue"])])}var U=L(O,[["render",$]]);export{U as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353460.js: -------------------------------------------------------------------------------- 1 | var v=Object.defineProperty;var p=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,h=Object.prototype.propertyIsEnumerable;var d=(s,e,t)=>e in s?v(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,g=(s,e)=>{for(var t in e||(e={}))C.call(e,t)&&d(s,t,e[t]);if(p)for(var t of p(e))h.call(e,t)&&d(s,t,e[t]);return s};import{a as _,s as V,a3 as F,aF as B,B as D,ag as T,b,e as x,Z as a,S as f,O as y,a2 as l,o as E,X as N}from"./vue.1652784183534.js";import{_ as k,b as R,u as $}from"./index.1652784183534.js";const S=_({name:"paramsCommon",setup(){const s=R(),e=$(),{themeConfig:t}=V(e),{isTagsViewCurrenFull:r}=V(s),o=F({value:"",tagsViewName:null}),c=B(),u=D(()=>{let{isTagsview:n}=t.value;return r.value?"30px":n?"114px":"80px"});return g({setViewHeight:u,onGoDetailsClick:()=>{c.push({path:"/params/common/details",query:{id:o.value,tagsViewName:o.tagsViewName}}),o.value=""}},T(o))}}),G={class:"flex-margin",style:{width:"400px"}},z=N(" \u666E\u901A\u8DEF\u7531\u4F20\u53C2 ");function A(s,e,t,r,o,c){const u=l("el-input"),m=l("SvgIcon"),n=l("el-button"),w=l("el-result");return E(),b("div",{class:"layout-view-bg-white flex",style:y({height:`calc(100vh - ${s.setViewHeight}`})},[x("div",G,[a(w,{icon:"success",title:"\u666E\u901A\u8DEF\u7531",subTitle:"\u53EF `\u5F00\u542F TagsView \u5171\u7528` \u8FDB\u884C\u5355\u6807\u7B7E\u6D4B\u8BD5"},{extra:f(()=>[a(u,{modelValue:s.tagsViewName,"onUpdate:modelValue":e[0]||(e[0]=i=>s.tagsViewName=i),placeholder:"\u8BF7\u8F93\u5165tagsView \u540D\u79F0",clearable:"",class:"mb15",style:{width:"400px"}},null,8,["modelValue"]),a(u,{modelValue:s.value,"onUpdate:modelValue":e[1]||(e[1]=i=>s.value=i),placeholder:"\u8BF7\u8F93\u5165\u8DEF\u7531\u53C2\u6570 id \u503C",clearable:"",style:{width:"400px"}},null,8,["modelValue"]),a(n,{type:"primary",size:"default",class:"mt15",onClick:s.onGoDetailsClick},{default:f(()=>[a(m,{name:"iconfont icon-putong"}),z]),_:1},8,["onClick"])]),_:1})])],4)}var q=k(S,[["render",A]]);export{q as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353461.js: -------------------------------------------------------------------------------- 1 | var v=Object.defineProperty;var p=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var d=(t,e,a)=>e in t?v(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,g=(t,e)=>{for(var a in e||(e={}))C.call(e,a)&&d(t,a,e[a]);if(p)for(var a of p(e))_.call(e,a)&&d(t,a,e[a]);return t};import{a as h,s as V,a3 as F,aF as D,B as x,ag as y,b as B,e as T,Z as o,S as f,O as b,a2 as n,o as N,X as k}from"./vue.1652784183534.js";import{_ as E,b as R,u as $}from"./index.1652784183534.js";const S=h({name:"paramsDynamic",setup(){const t=R(),e=$(),{themeConfig:a}=V(e),{isTagsViewCurrenFull:r}=V(t),s=F({value:"",tagsViewName:""}),c=D(),u=x(()=>{let{isTagsview:l}=a.value;return r.value?"30px":l?"114px":"80px"});return g({setViewHeight:u,onGoDetailsClick:()=>{c.push({name:"paramsDynamicDetails",params:{t:"vue-next-admin",id:s.value,tagsViewName:s.tagsViewName}}),s.value=""}},y(s))}}),G={class:"flex-margin",style:{width:"400px"}},z=k(" \u52A8\u6001\u8DEF\u7531\u4F20\u53C2 ");function A(t,e,a,r,s,c){const u=n("el-input"),m=n("SvgIcon"),l=n("el-button"),w=n("el-result");return N(),B("div",{class:"layout-view-bg-white flex",style:b({height:`calc(100vh - ${t.setViewHeight}`})},[T("div",G,[o(w,{icon:"warning",title:"\u52A8\u6001\u8DEF\u7531",subTitle:"\u53EF `\u5F00\u542F TagsView \u5171\u7528` \u8FDB\u884C\u5355\u6807\u7B7E\u6D4B\u8BD5"},{extra:f(()=>[o(u,{modelValue:t.tagsViewName,"onUpdate:modelValue":e[0]||(e[0]=i=>t.tagsViewName=i),placeholder:"\u8BF7\u8F93\u5165tagsView \u540D\u79F0",clearable:"",class:"mb15",style:{width:"400px"}},null,8,["modelValue"]),o(u,{modelValue:t.value,"onUpdate:modelValue":e[1]||(e[1]=i=>t.value=i),placeholder:"\u8BF7\u8F93\u5165\u8DEF\u7531\u53C2\u6570id\u503C",clearable:"",style:{width:"400px"}},null,8,["modelValue"]),o(l,{type:"primary",size:"default",class:"mt15",onClick:t.onGoDetailsClick},{default:f(()=>[o(m,{name:"iconfont icon-dongtai"}),z]),_:1},8,["onClick"])]),_:1})])],4)}var O=E(S,[["render",A]]);export{O as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353467.js: -------------------------------------------------------------------------------- 1 | import{a as r,aF as i,b as c,Z as u,S as t,a2 as e,o as l,X as A}from"./vue.1652784183534.js";import{_ as m}from"./index.1652784183534.js";const C=r({name:"limitsBackEndEndPage",setup(){const o=i();return{onGoToFrontEndPage:()=>{o.push("/limits/frontEnd/page")}}}}),p=A(" \u7ACB\u5373\u524D\u5F80\u524D\u7AEF\u63A7\u5236\u8DEF\u7531 ");function _(o,n,d,D,B,f){const F=e("el-alert"),s=e("ele-Position"),a=e("el-icon"),E=e("el-button");return l(),c("div",null,[u(F,{title:"\u6E29\u99A8\u63D0\u793A\uFF1A1\u3001\u6B64\u9875\u9762\u65E0\u6CD5\u6A21\u62DF\u540E\u7AEF\u63A7\u5236\u8DEF\u7531\uFF0C\u56E0\u4E3A `gitee` \u4E0A\u6240\u8BF7\u6C42\u7684 `json` \u83DC\u5355\u6570\u636E\u7EBF\u4E0A\u4F1A\u51FA\u73B0\u8DE8\u57DF\u7684\u60C5\u51B5\uFF08json\u5730\u5740\uFF1A\n https://gitee.com/lyt-top/vue-next-admin-images/raw/master/menu/adminMenu.json\uFF09\u30022\u3001\u672C\u5730\u63A5\u53E3\u8BF7\u6C42\u6587\u4EF6\u4F4D\u7F6E\uFF1A`/src/api/menu/index.ts`\u3002\n 3\u3001\u62C9\u53D6\u4EE3\u7801\u540E\u672C\u5730\u8BF7\u6C42\u67E5\u770B\u540E\u7AEF\u63A7\u5236\u9875\u9762\u8DEF\u7531\u6548\u679C\uFF1A`/src/store/modules/themeConfig.ts`\u4E2D\u5F00\u542F\uFF08isRequestRoutes \u4E3A true\uFF0C\u5219\u5F00\u542F\u540E\u7AEF\u63A7\u5236\u8DEF\u7531\uFF09\u3002\n 4\u3001\u6B64\u9875\u9762\u6548\u679C\u53EA\u4F5C\u4E3A\u6F14\u793A\u4F7F\u7528\uFF0C\u82E5\u51FA\u73B0\u4E0D\u53EF\u9006\u8F6C\u7684bug\uFF0C\u8BF7\u5C1D\u8BD5 `F5` \u5237\u65B0\u9875\u9762\u30025\u3001\u9ED8\u8BA4\u542F\u7528\u7684\u662F `\u524D\u7AEF\u63A7\u5236\u8DEF\u7531`\u3002",type:"warning",closable:!1}),u(E,{type:"primary",size:"default",class:"mt15",onClick:o.onGoToFrontEndPage},{default:t(()=>[u(a,null,{default:t(()=>[u(s)]),_:1}),p]),_:1},8,["onClick"])])}var h=m(C,[["render",_]]);export{h as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.16527841835347.css: -------------------------------------------------------------------------------- 1 | .grid-layout-container .vue-grid-item[data-v-334bebb8]{background:var(--el-color-primary);color:var(--el-color-white)} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353470.js: -------------------------------------------------------------------------------- 1 | var r=Object.defineProperty;var n=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var t=(o,e,a)=>e in o?r(o,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[e]=a,u=(o,e)=>{for(var a in e||(e={}))p.call(e,a)&&t(o,a,e[a]);if(n)for(var a of n(e))m.call(e,a)&&t(o,a,e[a]);return o};import{_ as d}from"./index.1652784183534.js";import{a as c,a3 as i,ag as f,b as B,Z as _,a2 as v,o as F}from"./vue.1652784183534.js";const V=c({name:"menu11",setup(){const o=i({val:""});return u({},f(o))}});function $(o,e,a,D,k,x){const l=v("el-input");return F(),B("div",null,[_(l,{modelValue:o.val,"onUpdate:modelValue":e[0]||(e[0]=s=>o.val=s),placeholder:"menu11\uFF1A\u8BF7\u8F93\u5165\u5185\u5BB9\u6D4B\u8BD5\u8DEF\u7531\u7F13\u5B58"},null,8,["modelValue"])])}var g=d(V,[["render",$]]);export{g as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353471.js: -------------------------------------------------------------------------------- 1 | var r=Object.defineProperty;var n=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var t=(o,e,a)=>e in o?r(o,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[e]=a,u=(o,e)=>{for(var a in e||(e={}))p.call(e,a)&&t(o,a,e[a]);if(n)for(var a of n(e))m.call(e,a)&&t(o,a,e[a]);return o};import{_ as d}from"./index.1652784183534.js";import{a as c,a3 as i,m as f,aD as v,ag as B,b as _,Z as F,a2 as D,o as V}from"./vue.1652784183534.js";const $=c({name:"menu13",setup(){const o=i({val:""});return f(()=>{console.log(2222)}),v(()=>{console.log(1111)}),u({},B(o))}});function g(o,e,a,k,x,A){const l=D("el-input");return V(),_("div",null,[F(l,{modelValue:o.val,"onUpdate:modelValue":e[0]||(e[0]=s=>o.val=s),placeholder:"menu13\uFF1A\u8BF7\u8F93\u5165\u5185\u5BB9\u6D4B\u8BD5\u8DEF\u7531\u7F13\u5B58"},null,8,["modelValue"])])}var M=d($,[["render",g]]);export{M as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353472.js: -------------------------------------------------------------------------------- 1 | var r=Object.defineProperty;var n=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var t=(o,e,a)=>e in o?r(o,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[e]=a,u=(o,e)=>{for(var a in e||(e={}))p.call(e,a)&&t(o,a,e[a]);if(n)for(var a of n(e))m.call(e,a)&&t(o,a,e[a]);return o};import{_ as d}from"./index.1652784183534.js";import{a as c,a3 as i,ag as f,b as B,Z as _,a2 as v,o as F}from"./vue.1652784183534.js";const V=c({name:"menu121",setup(){const o=i({val:""});return u({},f(o))}});function $(o,e,a,D,k,x){const l=v("el-input");return F(),B("div",null,[_(l,{modelValue:o.val,"onUpdate:modelValue":e[0]||(e[0]=s=>o.val=s),placeholder:"menu121\uFF1A\u8BF7\u8F93\u5165\u5185\u5BB9\u6D4B\u8BD5\u8DEF\u7531\u7F13\u5B58"},null,8,["modelValue"])])}var g=d(V,[["render",$]]);export{g as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.165278418353473.js: -------------------------------------------------------------------------------- 1 | var r=Object.defineProperty;var n=Object.getOwnPropertySymbols;var p=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var t=(o,e,a)=>e in o?r(o,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[e]=a,u=(o,e)=>{for(var a in e||(e={}))p.call(e,a)&&t(o,a,e[a]);if(n)for(var a of n(e))m.call(e,a)&&t(o,a,e[a]);return o};import{_ as d}from"./index.1652784183534.js";import{a as c,a3 as i,ag as f,b as B,Z as _,a2 as v,o as F}from"./vue.1652784183534.js";const V=c({name:"menu122",setup(){const o=i({val:""});return u({},f(o))}});function $(o,e,a,D,k,x){const l=v("el-input");return F(),B("div",null,[_(l,{modelValue:o.val,"onUpdate:modelValue":e[0]||(e[0]=s=>o.val=s),placeholder:"menu122\uFF1A\u8BF7\u8F93\u5165\u5185\u5BB9\u6D4B\u8BD5\u8DEF\u7531\u7F13\u5B58"},null,8,["modelValue"])])}var g=d(V,[["render",$]]);export{g as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.16527841835348.css: -------------------------------------------------------------------------------- 1 | .countup-card-item[data-v-1d6ef596]{width:100%;height:103px;background:var(--el-text-color-secondary);border-radius:4px;transition:all ease .3s}.countup-card-item[data-v-1d6ef596]:hover{box-shadow:0 2px 12px #0000001a;transition:all ease .3s}.countup-card-item-box[data-v-1d6ef596]{display:flex;align-items:center;position:relative;overflow:hidden}.countup-card-item-box:hover i[data-v-1d6ef596]{right:0px!important;bottom:0px!important;transition:all ease .3s}.countup-card-item-box i[data-v-1d6ef596]{position:absolute;right:-10px;bottom:-10px;font-size:70px;transform:rotate(-30deg);transition:all ease .3s}.countup-card-item-box .countup-card-item-flex[data-v-1d6ef596]{padding:0 20px;color:var(--el-color-white)}.countup-card-item-box .countup-card-item-flex .countup-card-item-title[data-v-1d6ef596],.countup-card-item-box .countup-card-item-flex .countup-card-item-tip[data-v-1d6ef596]{font-size:13px}.countup-card-item-box .countup-card-item-flex .countup-card-item-title-num[data-v-1d6ef596]{font-size:18px}.countup-card-item-box .countup-card-item-flex .countup-card-item-tip-num[data-v-1d6ef596]{font-size:13px} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/index.16527841835349.css: -------------------------------------------------------------------------------- 1 | .custom-contextmenu[data-v-492879ac]{transform-origin:center top;z-index:2190;position:fixed}.custom-contextmenu .el-dropdown-menu__item[data-v-492879ac]{font-size:12px!important;white-space:nowrap}.custom-contextmenu .el-dropdown-menu__item i[data-v-492879ac]{font-size:12px!important} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/line.1652784183534.js: -------------------------------------------------------------------------------- 1 | var V=Object.defineProperty;var p=Object.getOwnPropertySymbols;var h=Object.prototype.hasOwnProperty,B=Object.prototype.propertyIsEnumerable;var m=(l,e,n)=>e in l?V(l,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[e]=n,c=(l,e)=>{for(var n in e||(e={}))h.call(e,n)&&m(l,n,e[n]);if(p)for(var n of p(e))B.call(e,n)&&m(l,n,e[n]);return l};import{_ as k}from"./index.1652784183534.js";import{a as L,a3 as T,ag as v,b as D,Z as o,S as t,a2 as u,o as F,X as f}from"./vue.1652784183534.js";const R=L({name:"pagesWorkflowDrawerLine",setup(l,{emit:e}){const n=T({line:{}});return c({getParentData:a=>{n.line=a},onLineTextReset:()=>{n.line.label=""},onLineTextChange:()=>{e("change",n.line.label),e("close")}},v(n))}}),w={class:"pt15 pr15 pb15 pl15"},y=f(" \u91CD\u7F6E "),$=f(" \u4FDD\u5B58 ");function x(l,e,n,_,b,C){const a=u("el-input"),i=u("el-form-item"),d=u("SvgIcon"),r=u("el-button"),g=u("el-form");return F(),D("div",w,[o(g,{model:l.line,size:"default","label-width":"50px"},{default:t(()=>[o(i,{label:"\u6765\u5F80"},{default:t(()=>[o(a,{modelValue:l.line.contact,"onUpdate:modelValue":e[0]||(e[0]=s=>l.line.contact=s),placeholder:"\u6765\u5F80",clearable:"",disabled:""},null,8,["modelValue"])]),_:1}),o(i,{label:"\u7C7B\u578B"},{default:t(()=>[o(a,{modelValue:l.line.type,"onUpdate:modelValue":e[1]||(e[1]=s=>l.line.type=s),placeholder:"\u7C7B\u578B",clearable:"",disabled:""},null,8,["modelValue"])]),_:1}),o(i,{label:"label"},{default:t(()=>[o(a,{modelValue:l.line.label,"onUpdate:modelValue":e[2]||(e[2]=s=>l.line.label=s),placeholder:"\u8BF7\u8F93\u5165label\u5185\u5BB9",clearable:""},null,8,["modelValue"])]),_:1}),o(i,null,{default:t(()=>[o(r,{onClick:l.onLineTextReset},{default:t(()=>[o(d,{name:"ele-RefreshRight"}),y]),_:1},8,["onClick"]),o(r,{onClick:l.onLineTextChange,type:"primary"},{default:t(()=>[o(d,{name:"ele-Check"}),$]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])])}var I=k(R,[["render",x]]);export{I as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/link.1652784183534.js: -------------------------------------------------------------------------------- 1 | var l=Object.defineProperty;var n=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var i=(e,a,t)=>a in e?l(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,u=(e,a)=>{for(var t in a||(a={}))f.call(a,t)&&i(e,t,a[t]);if(n)for(var t of n(a))m.call(a,t)&&i(e,t,a[t]);return e};import{a as p,s as h,aB as g,a3 as k,B as d,k as v,ag as R,b as _,e as w,Y as c,O as y,o as L}from"./vue.1652784183534.js";import{_ as $,u as B}from"./index.1652784183534.js";const M=p({name:"layoutLinkView",setup(){const e=B(),{themeConfig:a}=h(e),t=g(),s=k({currentRouteMeta:{isLink:"",title:""}}),o=d(()=>{let{isTagsview:r}=a.value;return r?"115px":"80px"});return v(()=>t.path,()=>{s.currentRouteMeta=t.meta},{immediate:!0}),u({setLinkHeight:o},R(s))}}),C=["href"];function T(e,a,t,s,o,r){return L(),_("div",{class:"layout-view-bg-white flex layout-view-link",style:y({height:`calc(100vh - ${e.setLinkHeight}`})},[w("a",{href:e.currentRouteMeta.isLink,target:"_blank",rel:"opener",class:"flex-margin"},c(e.$t(e.currentRouteMeta.title))+"\uFF1A"+c(e.currentRouteMeta.isLink),9,C)],4)}var H=$(M,[["render",T]]);export{H as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/logo-mini.1652784183534.js: -------------------------------------------------------------------------------- 1 | var o="assets/logo-mini.1652784183534.svg";export{o as l}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/mobile.1652784183534.css: -------------------------------------------------------------------------------- 1 | .login-content-form[data-v-52cdd77f]{margin-top:20px}.login-content-form .login-animation1[data-v-52cdd77f]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.1s}.login-content-form .login-animation2[data-v-52cdd77f]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.2s}.login-content-form .login-animation3[data-v-52cdd77f]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.3s}.login-content-form .login-animation4[data-v-52cdd77f]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards;animation-delay:.4s}.login-content-form .login-content-code[data-v-52cdd77f]{width:100%;padding:0}.login-content-form .login-content-submit[data-v-52cdd77f]{width:100%;letter-spacing:2px;font-weight:300;margin-top:15px}.login-content-form .login-msg[data-v-52cdd77f]{color:var(--el-text-color-placeholder)} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/mobile.1652784183534.js: -------------------------------------------------------------------------------- 1 | var v=Object.defineProperty;var _=Object.getOwnPropertySymbols;var V=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable;var u=(e,o,a)=>o in e?v(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,f=(e,o)=>{for(var a in o||(o={}))V.call(o,a)&&u(e,a,o[a]);if(_)for(var a of _(o))$.call(o,a)&&u(e,a,o[a]);return e};import{_ as y}from"./index.1652784183534.js";import{a as N,a3 as x,ag as F,R as S,S as l,a2 as n,o as I,Z as t,X as T,Y as m,e as r,az as B,aA as C}from"./vue.1652784183534.js";const k={userName:"",code:""},w=N({name:"loginMobile",setup(){const e=x({ruleForm:k});return f({},F(e))}}),z=e=>(B("data-v-52cdd77f"),e=e(),C(),e),M=z(()=>r("i",{class:"iconfont icon-dianhua el-input__icon"},null,-1)),P={class:"font12 mt30 login-animation4 login-msg"};function R(e,o,a,U,A,D){const d=n("el-input"),s=n("el-form-item"),g=n("ele-Position"),b=n("el-icon"),i=n("el-col"),p=n("el-button"),h=n("el-form");return I(),S(h,{size:"large",class:"login-content-form"},{default:l(()=>[t(s,{class:"login-animation1"},{default:l(()=>[t(d,{type:"text",placeholder:e.$t("message.mobile.placeholder1"),modelValue:e.ruleForm.userName,"onUpdate:modelValue":o[0]||(o[0]=c=>e.ruleForm.userName=c),clearable:"",autocomplete:"off"},{prefix:l(()=>[M]),_:1},8,["placeholder","modelValue"])]),_:1}),t(s,{class:"login-animation2"},{default:l(()=>[t(i,{span:15},{default:l(()=>[t(d,{type:"text",maxlength:"4",placeholder:e.$t("message.mobile.placeholder2"),modelValue:e.ruleForm.code,"onUpdate:modelValue":o[1]||(o[1]=c=>e.ruleForm.code=c),clearable:"",autocomplete:"off"},{prefix:l(()=>[t(b,{class:"el-input__icon"},{default:l(()=>[t(g)]),_:1})]),_:1},8,["placeholder","modelValue"])]),_:1}),t(i,{span:1}),t(i,{span:8},{default:l(()=>[t(p,{class:"login-content-code"},{default:l(()=>[T(m(e.$t("message.mobile.codeText")),1)]),_:1})]),_:1})]),_:1}),t(s,{class:"login-animation3"},{default:l(()=>[t(p,{round:"",type:"primary",class:"login-content-submit"},{default:l(()=>[r("span",null,m(e.$t("message.mobile.btnText")),1)]),_:1})]),_:1}),r("div",P,m(e.$t("message.mobile.msgText")),1)]),_:1})}var j=y(w,[["render",R],["__scopeId","data-v-52cdd77f"]]);export{j as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/node.1652784183534.css: -------------------------------------------------------------------------------- 1 | .workflow-drawer-node[data-v-1a9759f4] .el-tabs{box-shadow:unset;border:unset}.workflow-drawer-node[data-v-1a9759f4] .el-tabs .el-tabs__nav{display:flex;width:100%}.workflow-drawer-node[data-v-1a9759f4] .el-tabs .el-tabs__nav .el-tabs__item{flex:1;padding:unset;text-align:center}.workflow-drawer-node[data-v-1a9759f4] .el-tabs .el-tabs__nav .el-tabs__item:first-of-type.is-active{border-left-color:transparent}.workflow-drawer-node[data-v-1a9759f4] .el-tabs .el-tabs__nav .el-tabs__item:last-of-type.is-active{border-right-color:transparent}.workflow-drawer-node[data-v-1a9759f4] .el-tabs .el-tabs__content{padding:0;height:calc(100vh - 90px)}.workflow-drawer-node[data-v-1a9759f4] .el-tabs .el-tabs__content .el-tab-pane{height:100%} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/parent.1652784183534.js: -------------------------------------------------------------------------------- 1 | var R=Object.defineProperty;var l=Object.getOwnPropertySymbols;var _=Object.prototype.hasOwnProperty,V=Object.prototype.propertyIsEnumerable;var c=(s,e,t)=>e in s?R(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,m=(s,e)=>{for(var t in e||(e={}))_.call(e,t)&&c(s,t,e[t]);if(l)for(var t of l(e))V.call(e,t)&&c(s,t,e[t]);return s};import{a as k,aB as y,s as f,a3 as N,B as T,K as A,n as B,I as C,k as K,ag as g,b as L,Z as p,S as v,l as P,a2 as $,o as r,_ as x,R as d,V as I,aE as E}from"./vue.1652784183534.js";import{_ as U,c as b,u as D}from"./index.1652784183534.js";const M=k({name:"layoutParentView",setup(){const{proxy:s}=P(),e=y(),t=b(),i=D(),{keepAliveNames:o}=f(t),{themeConfig:u}=f(i),a=N({refreshRouterViewKey:null,keepAliveNameList:[]}),n=T(()=>u.value.animation);return A(()=>{a.keepAliveNameList=o.value,s.mittBus.on("onTagsViewRefreshRouterView",h=>{a.keepAliveNameList=o.value.filter(w=>e.name!==w),a.refreshRouterViewKey=null,B(()=>{a.refreshRouterViewKey=h,a.keepAliveNameList=o.value})})}),C(()=>{s.mittBus.off("onTagsViewRefreshRouterView")}),K(()=>e.fullPath,()=>{a.refreshRouterViewKey=decodeURI(e.fullPath)}),m({setTransitionName:n},g(a))}}),S={class:"h100"};function Z(s,e,t,i,o,u){const a=$("router-view");return r(),L("div",S,[p(a,null,{default:v(({Component:n})=>[p(x,{name:s.setTransitionName,mode:"out-in"},{default:v(()=>[(r(),d(E,{include:s.keepAliveNameList},[(r(),d(I(n),{key:s.refreshRouterViewKey,class:"w100"}))],1032,["include"]))]),_:2},1032,["name"])]),_:1})])}var F=U(M,[["render",Z]]);export{F as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/scan.1652784183534.css: -------------------------------------------------------------------------------- 1 | .login-scan-animation[data-v-2a24e04c],.login-scan-container .login-msg[data-v-2a24e04c],.login-scan-container[data-v-2a24e04c]{opacity:0;animation-name:error-num;animation-duration:.5s;animation-fill-mode:forwards}.login-scan-container[data-v-2a24e04c]{padding:20px;display:flex;flex-direction:column;text-align:center;animation-delay:.1s}.login-scan-container[data-v-2a24e04c] img{margin:auto}.login-scan-container .login-msg[data-v-2a24e04c]{color:var(--el-text-color-placeholder);animation-delay:.2s} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/scan.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{Q as n}from"./qrcode.1652784183534.js";import{_ as s}from"./index.1652784183534.js";import{a,j as r,m as c,b as i,e as t,Y as _,o as d}from"./vue.1652784183534.js";const f=a({name:"loginScan",setup(){const e=r(null),o=()=>{e.value.innerHTML="",new n(e.value,{text:"https://qm.qq.com/cgi-bin/qm/qr?k=RdUY97Vx0T0vZ_1OOu-X1yFNkWgDwbjC&jump_from=webapi",width:260,height:260,colorDark:"#000000",colorLight:"#ffffff"})};return c(()=>{o()}),{qrcodeRef:e}}}),l={class:"login-scan-container"},m={ref:"qrcodeRef"},p={class:"font12 mt20 login-msg"};function u(e,o,g,v,h,q){return d(),i("div",l,[t("div",m,null,512),t("div",p,_(e.$t("message.scan.text")),1)])}var b=s(f,[["render",u],["__scopeId","data-v-2a24e04c"]]);export{b as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/transverse.1652784183534.js: -------------------------------------------------------------------------------- 1 | import{H as c,M as s}from"./main.1652784183534.js";import{_ as p}from"./index.1652784183534.js";import{a2 as o,o as _,R as l,S as m,Z as e}from"./vue.1652784183534.js";import"./logo-mini.1652784183534.js";import"./sortable.esm.1652784183534.js";import"./parent.1652784183534.js";const i={name:"layoutTransverse",components:{Header:c,Main:s}};function f(d,u,k,b,x,v){const t=o("Header"),a=o("Main"),n=o("el-backtop"),r=o("el-container");return _(),l(r,{class:"layout-container flex-center layout-backtop"},{default:m(()=>[e(t),e(a),e(n,{target:".layout-backtop .el-main .el-scrollbar__wrap"})]),_:1})}var B=p(i,[["render",f]]);export{B as default}; 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/view.1652784183534.css: -------------------------------------------------------------------------------- 1 | .bjs-powered-by{display:none}.bpmn-container{height:100%}#modeler-container{flex:1;height:100%;position:relative;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHBhdHRlcm4gaWQ9ImEiIHdpZHRoPSI0MCIgaGVpZ2h0PSI0MCIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHBhdGggZD0iTTAgMTBoNDBNMTAgMHY0ME0wIDIwaDQwTTIwIDB2NDBNMCAzMGg0ME0zMCAwdjQwIiBmaWxsPSJub25lIiBzdHJva2U9IiNlMGUwZTAiIG9wYWNpdHk9Ii4yIi8+PHBhdGggZD0iTTQwIDBIMHY0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZTBlMGUwIi8+PC9wYXR0ZXJuPjwvZGVmcz48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2EpIi8+PC9zdmc+) repeat!important}.djs-palette{border:none!important;background-color:#fff!important;box-shadow:0 3px 3px #0003;top:65px!important}.au-flex[data-v-38ab64ab]{display:flex;background-color:#fff}.au-msg[data-v-38ab64ab]{flex:1;width:100%}.au-button[data-v-38ab64ab]{width:105px;min-width:105px}.zpage[data-v-9deab12e]{overflow:auto} 2 | -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/assets/world.1652784183534.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zsvg-com/vboot-net/fef3130e129455a227be9be35005b0ee7d95ff90/Vboot.Web.Entry/wwwroot/assets/world.1652784183534.jpg -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zsvg-com/vboot-net/fef3130e129455a227be9be35005b0ee7d95ff90/Vboot.Web.Entry/wwwroot/favicon.ico -------------------------------------------------------------------------------- /Vboot.Web.Entry/wwwroot/vue.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 15 | 16 | vue-next-admin 17 | 18 | 19 | 20 | 21 | 22 |
23 | 32 | 33 | 34 | 35 | 36 | --------------------------------------------------------------------------------