style: 💄 code format

This commit is contained in:
nsnail 2024-11-29 22:12:33 +08:00
parent 180119019c
commit 2acf88cad1
46 changed files with 251 additions and 69 deletions

View File

@ -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>

View File

@ -1,6 +1,6 @@
# NetAdmin
通用后台权限管理系统、快速开发框架基于C#12/.NET9、Vue3/Vite、Element Plus等现代技术构建具有十分整洁、优雅的编码规范
通用后台权限管理系统、快速开发框架基于C#13/.NET9、Vue3/Vite、ElementPlus等现代技术构建具有十分整洁、优雅的编码规范
[![.NET](https://github.com/nsnail/NetAdmin/actions/workflows/nightly-build.yml/badge.svg)](https://github.com/nsnail/NetAdmin/actions/workflows/nightly-build.yml)
[![MIT](https://img.shields.io/badge/license-MIT-blue.svg)](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) |

View File

@ -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 后台管理系统",
}
]

View File

@ -11,4 +11,4 @@
"path": "node_modules/cz-git"
}
}
}
}

View 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"

View File

@ -1,4 +1,4 @@
namespace NetAdmin.Infrastructure.Extensions;
namespace NetAdmin.Infrastructure.Extensions;
/// <summary>
/// ISelect 扩展方法

View File

@ -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"/>-->

View File

@ -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( //

View 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;
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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="
() => {

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>