# 更新日志 2020-04-18
# 后端
0、重构了配置管理功能
现在,除了启动时需要的配置以外(db.json、host.json、logging.json),其它配置都不再采用 json 配置文件的方式,全部通过数据库存储
1、调整了内置 ORM 的数据集 IDbSet 加载机制,现在,您可以再仓储中访问其它模块的 IDbSet 对象了~
2、模块信息新增编号属性,并采用 Id 设置,原来的编码更改为 Code
3、取消系统启动时自动更新模块和权限信息,恢复为手动更新,再权限管理=》模块中心右上角点击刷新按钮即可
4、bug 修复和更新~
# 前端
0、重新设计了配置功能
1、修复菜单栏展开动画失效的 bug
2、移除了
this.$config.getValue全局通用获取配置信息的方法,因为有些配置信息具有敏感性,所有不适合使用通用方法获取,如果前端需要请自行定义接口
3、bug 修复和更新~
# 升级指南
0、修改 build 目录下的
module.build.targets文件,直接复制下面代码覆盖即可
<Project>
<PropertyGroup>
<ModulesDir>_modules\$(Id)_$(Code)</ModulesDir>
<ModuleName>$(ModulesDir)\_module.json</ModuleName>
<ModuleInfo>{"Id": "$(Id)","Name":"$(Name)","Code":"$(Code)","Icon":"$(Icon)","Version":"$(Version)","Description":"$(Description)"}</ModuleInfo>
</PropertyGroup>
<Target Name="ModulesBuild" AfterTargets="Build">
<!--创建modules目录-->
<MakeDir Directories="$(ModulesDir)"/>
<!--生成module.json文件,Note:项目需要生成两次,否则Nuget包中的文件不是最新的-->
<WriteLinesToFile File="$(ModuleName)" Overwrite="true" Lines="$(ModuleInfo)" />
</Target>
</Project>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1、调整 build 目录下的
Directory.Build.props文件,调整内容如下:
原来的 Id 属性对应的是模块编码,现在调整为模块的编号
新增 Code 属性用于设置模块编码
修改 RootNamespacePrefix 属性中的$(Id)改为$(Code)
如 Common 模块:
<Project>
<PropertyGroup>
<Id>01</Id>
<Code>Common</Code>
<Name>通用模块</Name>
<Authors>DarkM</Authors>
<Icon>database</Icon>
<Version>1.6.8</Version>
<Description>DarkM Module $(Id)($(Name)) - $(MSBuildProjectName)</Description>
<NoWarn>$(NoWarn);1591</NoWarn>
<LangVersion>Latest</LangVersion>
<RootNamespacePrefix>DarkM.Module.$(Code)</RootNamespacePrefix>
<AssemblyName>$(RootNamespacePrefix).$(MSBuildProjectName)</AssemblyName>
<RootNamespace>$(AssemblyName)</RootNamespace>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<!--设置打包路径-->
<PackageOutputPath>$(SolutionDir)\_packages</PackageOutputPath>
<Company>DarkM</Company>
<Copyright>DarkM</Copyright>
<PackageProjectUrl>http://dmdocs.woowis.com/</PackageProjectUrl>
<RepositoryUrl>https://glab.woowis.com/Woowis/DarkM.Module.Common</RepositoryUrl>
</PropertyGroup>
</Project>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2、调整模块的数据库上下文,移除
IServiceProvider serviceProvider参数,如 Common 模块:
using DarkM.Lib.Data.Abstractions;
using DarkM.Lib.Data.Core;
namespace DarkM.Module.Common.Infrastructure.Repositories
{
public class CommonDbContext : DbContext
{
public CommonDbContext(IDbContextOptions options) : base(options)
{
}
}
}
2
3
4
5
6
7
8
9
10
11
12
3、
Infrastructure中移除DarkM.Lib.Options.Abstraction,安装DarkM.Lib.Config.Abstraction包
4、修改模块配置类命名和继承的接口
原来命名采用模块编码+Options方式,现在改为模块编码+Config方式
原来继承IModuleOptions接口,现调整为IConfig接口
移除 Copy 方法
如 Common 模块的配置类:
using DarkM.Lib.Config.Abstractions;
namespace DarkM.Module.Common.Infrastructure
{
/// <summary>
/// 通用模块配置
/// </summary>
public class CommonConfig : IConfig
{
/// <summary>
/// 启用字典缓存
/// </summary>
public bool DictCacheEnabled { get; set; } = true;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
5、移除 WebHost 项目中
cache.json、excel.json、jwt.json配置文件
6、移除 WebHost 项目中_modules 目录中当前模块的目录,原来的目录不带编号,现在带有编号了
7、前端的 package.json 新增 id 属性,该属性对应后端的 Id 属性,指当前模块的编号
8、前端新增配置类配置页面,该页面放在 src/components 目录下,且按照
config-模块编码的规则新建目录,可参考 Common 中的config-common组件编写
9、前端全局组件注册机制改为自动注册,需要调整
src/components/index.js文件,直接用下方代码替换即可
import library from 'darkm-ui/packages/library'
let components = []
const requireComponent = require.context('./', true, /index\.vue$/)
requireComponent.keys().map(fileName => {
components.push({
name: `${library.prefix.toLowerCase()}-${fileName.split('/')[1]}`,
component: requireComponent(fileName).default
})
})
export default components
2
3
4
5
6
7
8
9
10
10、前端
module.js文件新增 id 属性,如下:
/** 模块信息 */
const pack = require('../package.json')
export default {
id: pack.id,
name: pack.title,
code: pack.code,
version: pack.version,
description: pack.description
}
2
3
4
5
6
7
8
9
10
11、由于重构了整个配置管理模块,所以需要重新填写配置信息