mirror of
https://github.com/nsnail/NetAdmin.git
synced 2025-04-20 05:02:50 +08:00
style: 💄 code format
This commit is contained in:
parent
180119019c
commit
2acf88cad1
@ -10,8 +10,8 @@
|
||||
<Authors>nsnail</Authors>
|
||||
<BaseIntermediateOutputPath>$(SolutionDir)/dist/backend/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
|
||||
<BaseOutputPath>$(SolutionDir)/dist/backend/$(MSBuildProjectName)/bin</BaseOutputPath>
|
||||
<Copyright>© 2006-2023 nsnail</Copyright>
|
||||
<Description>通用后台权限管理系统、快速开发框架(基于C#12/.NET9、Vue3/Vite、Element Plus等现代技术构建,具有十分整洁、优雅的编码规范)</Description>
|
||||
<Copyright>© 2006-2024 nsnail</Copyright>
|
||||
<Description>通用后台权限管理系统、快速开发框架(基于C#13/.NET9、Vue3/Vite、ElementPlus等现代技术构建,具有十分整洁、优雅的编码规范)</Description>
|
||||
<EnableBaseIntermediateOutputPathMismatchWarning>false</EnableBaseIntermediateOutputPathMismatchWarning>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
|
@ -1,6 +1,6 @@
|
||||
# NetAdmin
|
||||
|
||||
通用后台权限管理系统、快速开发框架(基于C#12/.NET9、Vue3/Vite、Element Plus等现代技术构建,具有十分整洁、优雅的编码规范)
|
||||
通用后台权限管理系统、快速开发框架(基于C#13/.NET9、Vue3/Vite、ElementPlus等现代技术构建,具有十分整洁、优雅的编码规范)
|
||||
|
||||
[](https://github.com/nsnail/NetAdmin/actions/workflows/nightly-build.yml)
|
||||
[](https://github.com/nsnail/NetAdmin/blob/main/LICENSE)
|
||||
@ -110,7 +110,7 @@ biz-infra-->infra
|
||||
| C# | 自动化版本管理 | [MinVer](https://github.com/adamralph/minver) |
|
||||
| TypeScript | SPA基础框架 | [Vue](https://github.com/vuejs/core) |
|
||||
| TypeScript | 前端构建工具 | [Vite](https://github.com/vitejs/vite) |
|
||||
| TypeScript | UI控件库 | [Element Plus](https://github.com/element-plus/element-plus) |
|
||||
| TypeScript | UI控件库 | [ElementPlus](https://github.com/element-plus/element-plus) |
|
||||
| TypeScript | CSS解析器 | [Sass](https://github.com/sass/sass) |
|
||||
| TypeScript | 图表和数据可视化 | [ECharts](https://github.com/apache/echarts) |
|
||||
| JavaScript | 后台管理界面 | [SCUI](https://gitee.com/lolicode/scui) |
|
||||
|
@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
"Content": "<p>尊敬的用户:</p>\n<p style=\"padding-left: 40px;\">欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#12/.NET9、Vue3/Vite、Element Plus 等现代技术构建,具有十分整洁、优雅的编码规范。</p>\n<p style=\"padding-left: 40px;\">NetAdmin 致力于为企业提供高效、安全、易用的解决方案,帮助您快速构建出符合业务需求的应用程序。系统提供了丰富的功能模块,包括用户管理、权限管理、日志管理、文件上传等,可以满足您日常管理的需求。</p>\n<p style=\"padding-left: 40px;\">在使用 NetAdmin 的过程中,我们真诚地希望您能够遵守以下规定:</p>\n<p style=\"padding-left: 80px;\">1. 不得利用 NetAdmin 进行非法活动或者侵犯他人权益;</p>\n<p style=\"padding-left: 80px;\">2. 不得对 NetAdmin 系统进行恶意攻击或者破坏;</p>\n<p style=\"padding-left: 80px;\">3. 不得将 NetAdmin 系统的任何部分用于商业目的或者未经授权的访问。</p>\n<p style=\"padding-left: 80px;\">4. 为了更好地为您提供服务,NetAdmin 将不断进行优化和升级,同时也欢迎您提出宝贵的意见和建议。如果您在使用过程中遇到任何问题,可以通过官方网站或者技术支持团队进行咨询和解决。</p>\n<p style=\"padding-left: 40px;\">再次感谢您对 NetAdmin 的信任和支持!我们相信,在您的使用过程中,NetAdmin 一定会成为您的得力助手,为您的事业发展提供强有力的支持!</p>\n<p style=\"text-align: right;\">NetAdmin 开发团队</p>",
|
||||
"Content": "<p>尊敬的用户:</p>\n<p style=\"padding-left: 40px;\">欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#13/.NET9、Vue3/Vite、ElementPlus 等现代技术构建,具有十分整洁、优雅的编码规范。</p>\n<p style=\"padding-left: 40px;\">NetAdmin 致力于为企业提供高效、安全、易用的解决方案,帮助您快速构建出符合业务需求的应用程序。系统提供了丰富的功能模块,包括用户管理、权限管理、日志管理、文件上传等,可以满足您日常管理的需求。</p>\n<p style=\"padding-left: 40px;\">在使用 NetAdmin 的过程中,我们真诚地希望您能够遵守以下规定:</p>\n<p style=\"padding-left: 80px;\">1. 不得利用 NetAdmin 进行非法活动或者侵犯他人权益;</p>\n<p style=\"padding-left: 80px;\">2. 不得对 NetAdmin 系统进行恶意攻击或者破坏;</p>\n<p style=\"padding-left: 80px;\">3. 不得将 NetAdmin 系统的任何部分用于商业目的或者未经授权的访问。</p>\n<p style=\"padding-left: 80px;\">4. 为了更好地为您提供服务,NetAdmin 将不断进行优化和升级,同时也欢迎您提出宝贵的意见和建议。如果您在使用过程中遇到任何问题,可以通过官方网站或者技术支持团队进行咨询和解决。</p>\n<p style=\"padding-left: 40px;\">再次感谢您对 NetAdmin 的信任和支持!我们相信,在您的使用过程中,NetAdmin 一定会成为您的得力助手,为您的事业发展提供强有力的支持!</p>\n<p style=\"text-align: right;\">NetAdmin 开发团队</p>",
|
||||
"CreatedUserId": 370942943322181,
|
||||
"CreatedUserName": "root",
|
||||
"MsgType": 2,
|
||||
"Summary": "尊敬的用户:\n欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#12/.NET9、Vue3/Vite、Element Plus 等现代",
|
||||
"Summary": "尊敬的用户:\n欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#13/.NET9、Vue3/Vite、ElementPlus 等现代",
|
||||
"Title": "欢迎使用 NetAdmin 后台管理系统",
|
||||
}
|
||||
]
|
@ -11,4 +11,4 @@
|
||||
"path": "node_modules/cz-git"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
scripts/5.git.update.submodule.ps1
Normal file
3
scripts/5.git.update.submodule.ps1
Normal file
@ -0,0 +1,3 @@
|
||||
git submodule update --progress --init --recursive --force --remote -- "../refs/Gurion"
|
||||
git submodule update --progress --init --recursive --force --remote -- "../refs/NetAdmin.FreeSql"
|
||||
git submodule update --progress --init --recursive --force --remote -- "../refs/ns-ext"
|
@ -1,4 +1,4 @@
|
||||
namespace NetAdmin.Infrastructure.Extensions;
|
||||
namespace NetAdmin.Infrastructure.Extensions;
|
||||
|
||||
/// <summary>
|
||||
/// ISelect 扩展方法
|
||||
|
@ -10,7 +10,6 @@
|
||||
<PackageReference Include="Minio" Version="6.0.3"/>
|
||||
<PackageReference Include="NSExt" Version="2.3.2"/>
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.4"/>
|
||||
<PackageReference Include="System.Drawing.Common" Version="9.0.0"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<!--<ProjectReference Include="$(SolutionDir)/refs/NetAdmin.FreeSql/src/FreeSql.DbContext/FreeSql.DbContext.csproj" Label="refs"/>-->
|
||||
|
@ -18,7 +18,7 @@ public sealed class RequestLogCache(IDistributedCache cache, IRequestLogService
|
||||
public async Task<long> CountAsync(QueryReq<QueryRequestLogReq> req)
|
||||
#else
|
||||
public Task<long> CountAsync(QueryReq<QueryRequestLogReq> req)
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
#if !DEBUG
|
||||
var ret = await GetOrCreateAsync( //
|
||||
|
183
src/backend/UnitTests/Sys/DocTests.cs
Normal file
183
src/backend/UnitTests/Sys/DocTests.cs
Normal file
@ -0,0 +1,183 @@
|
||||
using NetAdmin.Domain.Dto.Sys.Doc.Catalog;
|
||||
using NetAdmin.Domain.Dto.Sys.Doc.Content;
|
||||
|
||||
namespace UnitTests.Sys;
|
||||
|
||||
/// <summary>
|
||||
/// 文档测试
|
||||
/// </summary>
|
||||
[SuppressMessage("Usage", "xUnit1026:Theory methods should use all of their parameters")]
|
||||
[SuppressMessage("Usage", "xUnit1028:Test method must have valid return type")]
|
||||
public class DocTests(WebTestApplicationFactory<Startup> factory, ITestOutputHelper testOutputHelper)
|
||||
: WebApiTestBase<Startup>(factory, testOutputHelper), IDocModule
|
||||
{
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<int> BulkDeleteCatalogAsync(BulkReq<DelReq> req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<int> BulkDeleteContentAsync(BulkReq<DelReq> req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<QueryDocCatalogRsp> CreateCatalogAsync(CreateDocCatalogReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<QueryDocContentRsp> CreateContentAsync(CreateDocContentReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<int> DeleteCatalogAsync(DelReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<int> DeleteContentAsync(DelReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<int> EditCatalogAsync(EditDocCatalogReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<QueryDocContentRsp> EditContentAsync(EditDocContentReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<IActionResult> ExportContentAsync(QueryReq<QueryDocContentReq> req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<QueryDocCatalogRsp> GetCatalogAsync(QueryDocCatalogReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<QueryDocContentRsp> GetContentAsync(QueryDocContentReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<PagedQueryRsp<QueryDocCatalogRsp>> PagedQueryCatalogAsync(PagedQueryReq<QueryDocCatalogReq> req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<PagedQueryRsp<QueryDocContentRsp>> PagedQueryContentAsync(PagedQueryReq<QueryDocContentReq> req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<IEnumerable<QueryDocCatalogRsp>> QueryCatalogAsync(QueryReq<QueryDocCatalogReq> req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<IEnumerable<QueryDocContentRsp>> QueryContentAsync(QueryReq<QueryDocContentReq> req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<int> SetEnabledAsync(SetDocContentEnabledReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
[InlineData(default)]
|
||||
[Theory]
|
||||
public async Task<QueryDocContentRsp> ViewContentAsync(QueryDocContentReq req)
|
||||
{
|
||||
var rsp = await PostJsonAsync(typeof(DocController), req);
|
||||
Assert.True(rsp.IsSuccessStatusCode);
|
||||
return default;
|
||||
}
|
||||
}
|
@ -4,7 +4,4 @@
|
||||
<ProjectReference Include="../YourSolution.AdmServer.Domain/YourSolution.AdmServer.Domain.csproj"/>
|
||||
<ProjectReference Include="../NetAdmin/NetAdmin.SysComponent.Application/NetAdmin.SysComponent.Application.csproj"/>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="MailKit" Version="4.8.0"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -11,7 +11,7 @@
|
||||
<p v-if="$attrs.nestProp2">{{ $TOOL.getNestedProperty(row, $attrs.nestProp2) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<save-dialog v-if="dialog.save" @closed="(dialog.save = false)" ref="saveDialog"></save-dialog>
|
||||
<save-dialog v-if="dialog.save" @closed="dialog.save = false" ref="saveDialog"></save-dialog>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</template>
|
||||
|
@ -293,7 +293,7 @@
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="(dialogVisible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="dialogVisible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="submit()" type="primary">{{ $t('确认') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
@ -49,7 +49,7 @@
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="clear" text>{{ $t('清除') }}</el-button>
|
||||
<el-button @click="(dialogVisible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="dialogVisible = false">{{ $t('取消') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
@ -13,7 +13,7 @@
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="submit" type="primary">{{ $t('确定') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -90,8 +90,8 @@
|
||||
:hide-after="0"
|
||||
:title="$t('列设置')"
|
||||
:width="500"
|
||||
@after-leave="(customColumnShow = false)"
|
||||
@show="(customColumnShow = true)"
|
||||
@after-leave="customColumnShow = false"
|
||||
@show="customColumnShow = true"
|
||||
placement="top"
|
||||
trigger="click">
|
||||
<template #reference>
|
||||
|
@ -51,7 +51,7 @@
|
||||
<el-dialog v-model="cropperDialogVisible" :title="$t('剪裁')" :width="580" @closed="cropperClosed" destroy-on-close draggable>
|
||||
<sc-cropper :aspectRatio="aspectRatio" :compress="compress" :src="cropperFile.tempCropperFile" ref="cropper"></sc-cropper>
|
||||
<template #footer>
|
||||
<el-button @click="(cropperDialogVisible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="cropperDialogVisible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="cropperSave" type="primary">{{ $t('确定') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
@ -53,7 +53,7 @@
|
||||
</el-footer>
|
||||
</el-container>
|
||||
|
||||
<save-dialog v-if="dialog.save" @closed="(dialog.save = null)" @mounted="$refs.saveDialog.open(dialog.save)" ref="saveDialog"></save-dialog>
|
||||
<save-dialog v-if="dialog.save" @closed="dialog.save = null" @mounted="$refs.saveDialog.open(dialog.save)" ref="saveDialog"></save-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -71,11 +71,11 @@
|
||||
</div>
|
||||
|
||||
<el-dialog v-model="searchVisible" :title="$t('搜索')" :width="700" center destroy-on-close>
|
||||
<search @success="(searchVisible = false)"></search>
|
||||
<search @success="searchVisible = false"></search>
|
||||
</el-dialog>
|
||||
|
||||
<el-drawer v-model="tasksVisible" :size="450" :title="$t('作业中心')" destroy-on-close>
|
||||
<tasks :fail="failJobCnt" @closed="(tasksVisible = false)"></tasks>
|
||||
<tasks :fail="failJobCnt" @closed="tasksVisible = false"></tasks>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
||||
|
@ -31,7 +31,7 @@
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="agree">
|
||||
<el-checkbox v-model="form.agree" label="">{{ $t('我已阅读并同意') }}</el-checkbox>
|
||||
<span @click="(showAgree = true)" class="link">《{{ $t('平台服务协议') }}》</span>
|
||||
<span @click="showAgree = true" class="link">《{{ $t('平台服务协议') }}》</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form v-if="stepActive === 1" :model="form" :rules="rules" ref="stepForm_1" size="large">
|
||||
@ -57,7 +57,7 @@
|
||||
</el-form>
|
||||
<el-dialog v-model="showAgree" :title="$t('平台服务协议')" destroy-on-close>
|
||||
<template #footer>
|
||||
<el-button @click="(showAgree = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="showAgree = false">{{ $t('取消') }}</el-button>
|
||||
<el-button
|
||||
@click="
|
||||
() => {
|
||||
|
@ -12,7 +12,7 @@
|
||||
}">
|
||||
<el-input
|
||||
v-model="form.rows[index].value"
|
||||
:input="(form.rows[index].value = form.rows[index].value.replace(/[^0-9 ]/g, ''))"
|
||||
:input="form.rows[index].value = form.rows[index].value.replace(/[^0-9 ]/g, '')"
|
||||
placeholder="请输入以空格分隔的24分栏布局:如【24】或【12 12】或【8 8 8】">
|
||||
<template #append>
|
||||
<el-button @click.prevent="form.rows.splice(index, 1)" icon="delete">删除</el-button>
|
||||
|
@ -77,7 +77,7 @@
|
||||
</div>
|
||||
</el-header>
|
||||
<el-header style="height: auto">
|
||||
<el-button @click="(this.dialog.customLayout = { title: '添加自定义布局' })" style="margin: 0 auto">添加自定义布局</el-button>
|
||||
<el-button @click="this.dialog.customLayout = { title: '添加自定义布局' }" style="margin: 0 auto">添加自定义布局</el-button>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<div class="widgets-list">
|
||||
@ -115,7 +115,7 @@
|
||||
|
||||
<custom-layout-dialog
|
||||
v-if="dialog.customLayout"
|
||||
@closed="(dialog.customLayout = null)"
|
||||
@closed="dialog.customLayout = null"
|
||||
@mounted="$refs.customLayoutDialog.open(dialog.customLayout)"
|
||||
@onCustomLayout="(l) => (customLayouts = [l])"
|
||||
ref="customLayoutDialog"></custom-layout-dialog>
|
||||
|
@ -52,7 +52,7 @@
|
||||
</draggable>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="(modsDrawer = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="modsDrawer = false">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="saveMods" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</el-drawer>
|
||||
|
@ -36,18 +36,18 @@
|
||||
|
||||
<set-mobile-dialog
|
||||
v-if="dialog.setMobile"
|
||||
@closed="(dialog.setMobile = null)"
|
||||
@closed="dialog.setMobile = null"
|
||||
@mounted="$refs.setMobileDialog.open(dialog.setMobile)"
|
||||
@success="setSuccess"
|
||||
ref="setMobileDialog"></set-mobile-dialog>
|
||||
<set-password-dialog
|
||||
v-if="dialog.setPassword"
|
||||
@closed="(dialog.setPassword = null)"
|
||||
@closed="dialog.setPassword = null"
|
||||
@mounted="$refs.setPasswordDialog.open(dialog.setPassword)"
|
||||
ref="setPasswordDialog"></set-password-dialog>
|
||||
<set-email-dialog
|
||||
v-if="dialog.setEmail"
|
||||
@closed="(dialog.setEmail = null)"
|
||||
@closed="dialog.setEmail = null"
|
||||
@mounted="$refs.setEmailDialog.open(dialog.setEmail)"
|
||||
@success="setSuccess"
|
||||
ref="setEmailDialog"></set-email-dialog>
|
||||
|
@ -28,7 +28,7 @@
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
@ -33,7 +33,7 @@
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
@ -34,7 +34,7 @@
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
@ -39,7 +39,7 @@
|
||||
ref="search" />
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button @click="(this.dialog.save = { mode: 'add' })" icon="el-icon-plus" type="primary"></el-button>
|
||||
<el-button @click="this.dialog.save = { mode: 'add' }" icon="el-icon-plus" type="primary"></el-button>
|
||||
<na-button-bulk-del :api="$API.sys_config.bulkDelete" :vue="this" />
|
||||
<el-dropdown v-show="this.selection.length > 0">
|
||||
<el-button type="primary">
|
||||
@ -106,7 +106,7 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => $refs.table.upData()"
|
||||
ref="saveDialog"></save-dialog>
|
||||
|
@ -44,7 +44,7 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -46,7 +46,7 @@
|
||||
ref="search" />
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button @click="(this.dialog.save = { mode: 'add' })" icon="el-icon-plus" type="primary"></el-button>
|
||||
<el-button @click="this.dialog.save = { mode: 'add' }" icon="el-icon-plus" type="primary"></el-button>
|
||||
<na-button-bulk-del :api="$API.sys_dept.bulkDelete" :vue="this" />
|
||||
<el-dropdown v-show="this.selection.length > 0">
|
||||
<el-button type="primary">
|
||||
@ -113,7 +113,7 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
|
@ -42,7 +42,7 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => getData()"
|
||||
ref="saveDialog"></save-dialog>
|
||||
|
@ -38,7 +38,7 @@
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button
|
||||
@click="(this.dialog.save = { mode: 'add', data: { catalogId: this.catalogId } })"
|
||||
@click="this.dialog.save = { mode: 'add', data: { catalogId: this.catalogId } }"
|
||||
icon="el-icon-plus"
|
||||
type="primary"></el-button>
|
||||
<na-button-bulk-del :api="$API.sys_dic.bulkDeleteContent" :vue="this" />
|
||||
@ -53,7 +53,7 @@
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="setEnabled(true)">{{ $t('启用') }}</el-dropdown-item>
|
||||
<el-dropdown-item @click="setEnabled(false)">{{ $t('禁用') }}</el-dropdown-item>
|
||||
<el-dropdown-item @click="(this.dialog.savebatch = { mode: 'batchedit', data: { catalogId: this.catalogId } })">{{
|
||||
<el-dropdown-item @click="this.dialog.savebatch = { mode: 'batchedit', data: { catalogId: this.catalogId } }">{{
|
||||
$t('设置项值')
|
||||
}}</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
@ -107,14 +107,14 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
|
||||
<savebatch-dialog
|
||||
v-if="dialog.savebatch"
|
||||
@closed="(dialog.savebatch = null)"
|
||||
@closed="dialog.savebatch = null"
|
||||
@mounted="$refs.savebatchDialog.open(dialog.savebatch)"
|
||||
@success="(data, mode) => batchsuccess(data, mode)"
|
||||
ref="savebatchDialog"></savebatch-dialog>
|
||||
|
@ -30,7 +30,7 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -21,7 +21,7 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -12,7 +12,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => getData()"
|
||||
ref="saveDialog"></save-dialog>
|
||||
|
@ -38,7 +38,7 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -12,7 +12,7 @@
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -45,7 +45,7 @@
|
||||
:theme="this.$TOOL.data.get('APP_SET_DARK') || this.$CONFIG.APP_SET_DARK ? 'github_dark' : 'github'"
|
||||
lang="json"
|
||||
style="height: 10rem; width: 100%" />
|
||||
<el-button @click="(form.requestHeader = jsonFormat(form.requestHeader))" type="text">{{ $t('JSON 格式化') }}</el-button>
|
||||
<el-button @click="form.requestHeader = jsonFormat(form.requestHeader)" type="text">{{ $t('JSON 格式化') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('请求体')" prop="requestBody">
|
||||
<v-ace-editor
|
||||
@ -53,7 +53,7 @@
|
||||
:theme="this.$TOOL.data.get('APP_SET_DARK') || this.$CONFIG.APP_SET_DARK ? 'github_dark' : 'github'"
|
||||
lang="json"
|
||||
style="height: 15rem; width: 100%" />
|
||||
<el-button @click="(form.requestBody = jsonFormat(form.requestBody))" type="text">{{ $t('JSON 格式化') }}</el-button>
|
||||
<el-button @click="form.requestBody = jsonFormat(form.requestBody)" type="text">{{ $t('JSON 格式化') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('请求的网络地址')" prop="requestUrl">
|
||||
<el-input v-model="form.requestUrl" clearable />
|
||||
@ -121,7 +121,7 @@
|
||||
</el-tabs>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -135,14 +135,14 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
|
||||
<job-dialog
|
||||
v-if="dialog.job"
|
||||
@closed="(dialog.job = null)"
|
||||
@closed="dialog.job = null"
|
||||
@mounted="$refs.jobDialog.open(dialog.job)"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="jobDialog"></job-dialog>
|
||||
|
@ -39,7 +39,7 @@
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
</template>
|
||||
|
@ -65,7 +65,7 @@
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -64,7 +64,7 @@
|
||||
ref="search" />
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button @click="(this.dialog.save = { mode: 'add' })" icon="el-icon-plus" type="primary"></el-button>
|
||||
<el-button @click="this.dialog.save = { mode: 'add' }" icon="el-icon-plus" type="primary"></el-button>
|
||||
<na-button-bulk-del :api="$API.sys_role.bulkDelete" :vue="this" />
|
||||
<el-dropdown v-show="this.selection.length > 0">
|
||||
<el-button type="primary">
|
||||
@ -159,7 +159,7 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
|
@ -80,7 +80,7 @@
|
||||
:theme="this.$TOOL.data.get('APP_SET_DARK') || this.$CONFIG.APP_SET_DARK ? 'github_dark' : 'github'"
|
||||
lang="json"
|
||||
style="height: 30rem; width: 100%" />
|
||||
<el-button @click="(form.dashboardLayout = jsonFormat(form.dashboardLayout))" type="text">{{
|
||||
<el-button @click="form.dashboardLayout = jsonFormat(form.dashboardLayout)" type="text">{{
|
||||
$t('JSON 格式化')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
@ -101,7 +101,7 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
@ -62,7 +62,7 @@
|
||||
ref="search" />
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<el-button @click="(this.dialog.save = { mode: 'add' })" icon="el-icon-plus" type="primary"></el-button>
|
||||
<el-button @click="this.dialog.save = { mode: 'add' }" icon="el-icon-plus" type="primary"></el-button>
|
||||
<el-dropdown v-show="this.selection.length > 0">
|
||||
<el-button type="primary">
|
||||
{{ $t('批量操作') }}
|
||||
@ -132,18 +132,18 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
@closed="(dialog.save = null)"
|
||||
@closed="dialog.save = null"
|
||||
@mounted="$refs.saveDialog.open(dialog.save)"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
<role-save-dialog
|
||||
v-if="dialog.roleSave"
|
||||
@closed="(dialog.roleSave = null)"
|
||||
@closed="dialog.roleSave = null"
|
||||
@mounted="$refs.roleSaveDialog.open(dialog.roleSave)"
|
||||
ref="roleSaveDialog"></role-save-dialog>
|
||||
<dept-save-dialog
|
||||
v-if="dialog.deptSave"
|
||||
@closed="(dialog.deptSave = null)"
|
||||
@closed="dialog.deptSave = null"
|
||||
@mounted="$refs.deptSaveDialog.open(dialog.deptSave)"
|
||||
ref="deptSaveDialog"></dept-save-dialog>
|
||||
</template>
|
||||
|
@ -46,7 +46,7 @@
|
||||
maxlength="16"
|
||||
oninput="value=value.replace(/[^\w]/g,'')"
|
||||
placeholder="8位以上数字字母组合"></el-input>
|
||||
<el-button @click="(form.passwordText = '1234qwer')">{{ $t('初始密码') }}</el-button>
|
||||
<el-button @click="form.passwordText = '1234qwer'">{{ $t('初始密码') }}</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
@ -249,7 +249,7 @@
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="(visible = false)">{{ $t('取消') }}</el-button>
|
||||
<el-button @click="visible = false">{{ $t('取消') }}</el-button>
|
||||
<el-button v-if="mode !== 'view'" :disabled="loading" :loading="loading" @click="submit" type="primary">{{ $t('保存') }}</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
|
Loading…
x
Reference in New Issue
Block a user