feat: Add new card with duplicate name judgment

- 给添加新卡片时,自动生成的名称增加一层重名判断,避免出现重名。
- 目录卡片特化处理,在保存时,增加一层重名检查。
This commit is contained in:
Aqr-K
2024-09-26 20:24:28 +08:00
parent 574464c1ea
commit a547e5c34b
3 changed files with 35 additions and 6 deletions
+10 -1
View File
@@ -81,6 +81,11 @@ async function loadDirectories() {
async function saveDirectories() { async function saveDirectories() {
orderDirectoryCards() orderDirectoryCards()
try { try {
const names = directories.value.map(item => item.name)
if (new Set(names).size !== names.length) {
$toast.error('存在重复目录名称!无法保存,请修改!')
return
}
const result: { [key: string]: any } = await api.post('system/setting/Directories', directories.value) const result: { [key: string]: any } = await api.post('system/setting/Directories', directories.value)
if (result.success) { if (result.success) {
$toast.success('目录设置保存成功') $toast.success('目录设置保存成功')
@@ -93,8 +98,12 @@ async function saveDirectories() {
// 添加媒体库目录 // 添加媒体库目录
function addDirectory() { function addDirectory() {
let name = `目录${directories.value.length + 1}`;
while (directories.value.some(item => item.name === name)) {
name = `目录${parseInt(name.split('目录')[1]) + 1}`;
}
directories.value.push({ directories.value.push({
name: `目录${directories.value.length + 1}`, name: name,
storage: 'local', storage: 'local',
download_path: '', download_path: '',
priority: -1, priority: -1,
+15 -3
View File
@@ -52,9 +52,17 @@ async function saveCustomRules() {
// 添加自定义规则 // 添加自定义规则
function addCustomRule() { function addCustomRule() {
let id = `RULE${customRules.value.length + 1}`;
while (customRules.value.some(item => item.id === id)) {
id = `RULE${parseInt(id.split('RULE')[1]) + 1}`;
}
let name = `规则${customRules.value.length + 1}`;
while (customRules.value.some(item => item.name === name)) {
name = `规则${parseInt(name.split('规则')[1]) + 1}`;
}
customRules.value.push({ customRules.value.push({
id: `RULE${customRules.value.length + 1}`, id: id,
name: `规则${customRules.value.length + 1}`, name: name,
include: '', include: '',
exclude: '', exclude: '',
}) })
@@ -89,8 +97,12 @@ async function saveFilterRuleGroups() {
// 添加规则组 // 添加规则组
function addFilterRuleGroup() { function addFilterRuleGroup() {
let name = `规则组${filterRuleGroups.value.length + 1}`;
while (filterRuleGroups.value.some(item => item.name === name)) {
name = `规则组${parseInt(name.split('规则组')[1]) + 1}`;
}
filterRuleGroups.value.push({ filterRuleGroups.value.push({
name: `规则组${filterRuleGroups.value.length + 1}`, name: name,
rule_string: '', rule_string: '',
media_type: '', media_type: '',
category: '', category: '',
+10 -2
View File
@@ -113,8 +113,12 @@ async function saveSystemSetting() {
// 添加下载器 // 添加下载器
function addDownloader(downloader: string) { function addDownloader(downloader: string) {
let name = `下载器${downloaders.value.length + 1}`;
while (downloaders.value.some(item => item.name === name)) {
name = `下载器${parseInt(name.split('下载器')[1]) + 1}`;
}
downloaders.value.push({ downloaders.value.push({
name: `下载器${downloaders.value.length + 1}`, name: name,
type: downloader, type: downloader,
default: false, default: false,
enabled: false, enabled: false,
@@ -136,8 +140,12 @@ function onDownloaderChange(downloader: DownloaderConf) {
// 添加媒体服务器 // 添加媒体服务器
function addMediaServer(mediaserver: string) { function addMediaServer(mediaserver: string) {
let name = `服务器${mediaServers.value.length + 1}`;
while (mediaServers.value.some(item => item.name === name)) {
name = `服务器${parseInt(name.split('服务器')[1]) + 1}`;
}
mediaServers.value.push({ mediaServers.value.push({
name: `服务器${mediaServers.value.length + 1}`, name: name,
type: mediaserver, type: mediaserver,
enabled: false, enabled: false,
config: {}, config: {},