parent
5336b57d9b
commit
74d8d55632
@ -1,98 +0,0 @@ |
|||||||
import {defineStore} from 'pinia'; |
|
||||||
|
|
||||||
export const useFilesStore = defineStore('files', { |
|
||||||
state: () => ({ |
|
||||||
fileList: [ |
|
||||||
{ |
|
||||||
label: 'Welcome', |
|
||||||
name: "1", |
|
||||||
visible: true, |
|
||||||
groups: [ |
|
||||||
{ |
|
||||||
shortDescription: '<h1>鬼灵歌姬</h1><p>这是一个演示项目,用于测试显示效果</p>', |
|
||||||
groupInfo: [{ |
|
||||||
"avatar": "/assets/Shikigami/sp/372.png", |
|
||||||
"name": "因幡辉夜姬", |
|
||||||
"rarity": "SP" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"avatar": "/assets/Shikigami/ssr/356.png", |
|
||||||
"name": "千姬", |
|
||||||
"rarity": "SSR" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"avatar": "/assets/Shikigami/sp/554.png", |
|
||||||
"name": "纺愿缘结神", |
|
||||||
"rarity": "SP" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"avatar": "/assets/Shikigami/ssr/556.png", |
|
||||||
"name": "天照", |
|
||||||
"rarity": "SSR" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"avatar": "/assets/Shikigami/ssr/557.png", |
|
||||||
"name": "伊邪那美", |
|
||||||
"rarity": "SSR" |
|
||||||
}, |
|
||||||
{ |
|
||||||
"avatar": "/assets/Shikigami/sp/367.png", |
|
||||||
"name": "绘世花鸟卷", |
|
||||||
"rarity": "SP" |
|
||||||
}], |
|
||||||
details: '' |
|
||||||
}, |
|
||||||
{ |
|
||||||
shortDescription: '', |
|
||||||
groupInfo: [{}, {}, {}, {}, {}], |
|
||||||
details: '' |
|
||||||
} |
|
||||||
] |
|
||||||
}, { |
|
||||||
label: 'File 2', |
|
||||||
name: "2", |
|
||||||
visible: true, |
|
||||||
groups:[ |
|
||||||
{ |
|
||||||
shortDescription: '', |
|
||||||
groupInfo: [{}, {}, {}, {}, {}], |
|
||||||
details: '' |
|
||||||
}, |
|
||||||
{ |
|
||||||
shortDescription: '', |
|
||||||
groupInfo: [{}, {}, {}, {}, {}], |
|
||||||
details: '' |
|
||||||
} |
|
||||||
] |
|
||||||
}], |
|
||||||
activeFile: "1", |
|
||||||
}), |
|
||||||
getters: { |
|
||||||
visibleFiles: (state) => state.fileList.filter(file => file.visible), |
|
||||||
}, |
|
||||||
actions: { |
|
||||||
addFile(file) { |
|
||||||
this.fileList.push({...file, visible: true}); |
|
||||||
this.activeFile = file.name; |
|
||||||
}, |
|
||||||
setActiveFile(fileId: number) { |
|
||||||
this.activeFile = fileId; |
|
||||||
}, |
|
||||||
setVisible(fileId: number, visibility: boolean) { |
|
||||||
const file = this.fileList.find(file => file.name === fileId); |
|
||||||
if (file) { |
|
||||||
file.visible = visibility; |
|
||||||
} |
|
||||||
}, |
|
||||||
closeTab(fileName: String) { |
|
||||||
const file = this.fileList.find(file => file.name === fileName); |
|
||||||
if (file) { |
|
||||||
file.visible = false; |
|
||||||
if (this.activeFile === fileName) { |
|
||||||
const nextVisibleFile = this.visibleFiles[0]; |
|
||||||
this.activeFile = nextVisibleFile ? nextVisibleFile.name : -1; |
|
||||||
} |
|
||||||
} |
|
||||||
}, |
|
||||||
}, |
|
||||||
}); |
|
@ -0,0 +1,252 @@ |
|||||||
|
import {defineStore} from 'pinia'; |
||||||
|
import {ElMessageBox} from "element-plus"; |
||||||
|
import {useGlobalMessage} from "./useGlobalMessage"; |
||||||
|
|
||||||
|
const { showMessage } = useGlobalMessage(); |
||||||
|
export const useFilesStore = defineStore('files', { |
||||||
|
state: () => ({ |
||||||
|
fileList: [ |
||||||
|
{ |
||||||
|
"label": "Welcome", |
||||||
|
"name": "1", |
||||||
|
"type":"PVE", |
||||||
|
"visible": true, |
||||||
|
"groups": [ |
||||||
|
{ |
||||||
|
"shortDescription": "<h1>鬼灵歌姬</h1><h2><em>这是一个演示项目,用于测试显示6个式神的对齐效果</em></h2>", |
||||||
|
"groupInfo": [ |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/sp/372.png", |
||||||
|
"name": "因幡辉夜姬", |
||||||
|
"rarity": "SP" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/ssr/356.png", |
||||||
|
"name": "千姬", |
||||||
|
"rarity": "SSR" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/sp/554.png", |
||||||
|
"name": "纺愿缘结神", |
||||||
|
"rarity": "SP" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/ssr/556.png", |
||||||
|
"name": "天照", |
||||||
|
"rarity": "SSR" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/ssr/557.png", |
||||||
|
"name": "伊邪那美", |
||||||
|
"rarity": "SSR" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/sp/367.png", |
||||||
|
"name": "绘世花鸟卷", |
||||||
|
"rarity": "SP" |
||||||
|
} |
||||||
|
], |
||||||
|
"details": "<h2><strong>开局因幡普攻主怪后锁二</strong></h2>" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"shortDescription": "<h1>魂土15秒</h1><p><em>相同式神编辑不同属性</em></p>", |
||||||
|
"groupInfo": [ |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/ssr/364.png", |
||||||
|
"name": "阿修罗", |
||||||
|
"rarity": "SSR", |
||||||
|
"properties": { |
||||||
|
"edit": true, |
||||||
|
"yuhun": { |
||||||
|
"yuhunSetEffect": [ |
||||||
|
{ |
||||||
|
"name": "狂骨", |
||||||
|
"shortName": "狂", |
||||||
|
"type": "attack", |
||||||
|
"avatar": "/assets/Yuhun/狂骨.png" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "荒骷髅", |
||||||
|
"shortName": "荒", |
||||||
|
"type": "PVE", |
||||||
|
"avatar": "/assets/Yuhun/荒骷髅.png" |
||||||
|
} |
||||||
|
], |
||||||
|
"target": "1", |
||||||
|
"property2": [ |
||||||
|
"Attack" |
||||||
|
], |
||||||
|
"property4": [ |
||||||
|
"Attack" |
||||||
|
], |
||||||
|
"property6": [ |
||||||
|
"Crit", |
||||||
|
"CritDamage" |
||||||
|
] |
||||||
|
}, |
||||||
|
"levelRequired": "40", |
||||||
|
"speed": "", |
||||||
|
"skillRequiredMode": "all", |
||||||
|
"skillRequired": [ |
||||||
|
"5", |
||||||
|
"5", |
||||||
|
"5" |
||||||
|
] |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/ssr/364.png", |
||||||
|
"name": "阿修罗", |
||||||
|
"rarity": "SSR", |
||||||
|
"properties": { |
||||||
|
"edit": true, |
||||||
|
"yuhun": { |
||||||
|
"yuhunSetEffect": [ |
||||||
|
{ |
||||||
|
"name": "狂骨", |
||||||
|
"shortName": "狂", |
||||||
|
"type": "attack", |
||||||
|
"avatar": "/assets/Yuhun/狂骨.png" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"name": "鬼灵歌伎", |
||||||
|
"shortName": "歌伎", |
||||||
|
"type": "PVE", |
||||||
|
"avatar": "/assets/Yuhun/鬼灵歌伎.png" |
||||||
|
} |
||||||
|
], |
||||||
|
"target": "0", |
||||||
|
"property2": [ |
||||||
|
"Attack" |
||||||
|
], |
||||||
|
"property4": [ |
||||||
|
"Attack" |
||||||
|
], |
||||||
|
"property6": [ |
||||||
|
"Crit", |
||||||
|
"CritDamage" |
||||||
|
] |
||||||
|
}, |
||||||
|
"levelRequired": "40", |
||||||
|
"speed": "", |
||||||
|
"skillRequiredMode": "all", |
||||||
|
"skillRequired": [ |
||||||
|
"5", |
||||||
|
"5", |
||||||
|
"5" |
||||||
|
] |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/ssr/370.png", |
||||||
|
"name": "饭笥", |
||||||
|
"rarity": "SSR" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/ssr/369.png", |
||||||
|
"name": "食灵", |
||||||
|
"rarity": "SSR" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"avatar": "/assets/Shikigami/r/205.png", |
||||||
|
"name": "座敷童子", |
||||||
|
"rarity": "R" |
||||||
|
} |
||||||
|
], |
||||||
|
"details": "" |
||||||
|
} |
||||||
|
] |
||||||
|
}, |
||||||
|
{ |
||||||
|
"label": "Test", |
||||||
|
"name": "2", |
||||||
|
"visible": true, |
||||||
|
"type":"PVE", |
||||||
|
"groups": [ |
||||||
|
{ |
||||||
|
"shortDescription": "<h1>御魂·悲鸣</h1><p>这是一个演示项目,用于测试不同标签页的切换效果</p>", |
||||||
|
"groupInfo": [ |
||||||
|
{}, |
||||||
|
{}, |
||||||
|
{}, |
||||||
|
{}, |
||||||
|
{} |
||||||
|
], |
||||||
|
"details": "" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"shortDescription": "", |
||||||
|
"groupInfo": [ |
||||||
|
{}, |
||||||
|
{}, |
||||||
|
{}, |
||||||
|
{}, |
||||||
|
{} |
||||||
|
], |
||||||
|
"details": "" |
||||||
|
} |
||||||
|
] |
||||||
|
} |
||||||
|
], |
||||||
|
activeFile: "1", |
||||||
|
}), |
||||||
|
getters: { |
||||||
|
visibleFiles: (state) => state.fileList.filter(file => file.visible), |
||||||
|
}, |
||||||
|
actions: { |
||||||
|
addFile(file) { |
||||||
|
this.fileList.push({...file, visible: true}); |
||||||
|
this.activeFile = file.name; |
||||||
|
}, |
||||||
|
setActiveFile(fileId: number) { |
||||||
|
this.activeFile = fileId; |
||||||
|
}, |
||||||
|
setVisible(fileId: number, visibility: boolean) { |
||||||
|
const file = this.fileList.find(file => file.name === fileId); |
||||||
|
if (file) { |
||||||
|
file.visible = visibility; |
||||||
|
} |
||||||
|
}, |
||||||
|
closeTab(fileName: String) { |
||||||
|
const file = this.fileList.find(file => file.name === fileName); |
||||||
|
if (file) { |
||||||
|
file.visible = false; |
||||||
|
if (this.activeFile === fileName) { |
||||||
|
const nextVisibleFile = this.visibleFiles[0]; |
||||||
|
this.activeFile = nextVisibleFile ? nextVisibleFile.name : -1; |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
async deleteFile(fileId: string) { |
||||||
|
try { |
||||||
|
if (this.fileList.length === 1) { |
||||||
|
showMessage('warning', '无法删除'); |
||||||
|
return; |
||||||
|
} |
||||||
|
await ElMessageBox.confirm('确定要删除此文件吗?', '提示', { |
||||||
|
confirmButtonText: '确定', |
||||||
|
cancelButtonText: '取消', |
||||||
|
type: 'warning', |
||||||
|
}); |
||||||
|
|
||||||
|
const index = this.fileList.findIndex(file => file.name === fileId); |
||||||
|
if (index > -1) { |
||||||
|
this.fileList.splice(index, 1); |
||||||
|
if (this.activeFile === fileId) { |
||||||
|
const nextVisibleFile = this.visibleFiles[0]; |
||||||
|
this.activeFile = nextVisibleFile ? nextVisibleFile.name : "-1"; |
||||||
|
} |
||||||
|
} |
||||||
|
showMessage('success', '删除成功!'); |
||||||
|
} catch (error) { |
||||||
|
showMessage('info', '已取消删除'); |
||||||
|
} |
||||||
|
}, |
||||||
|
renameFile(fileId, newName) { |
||||||
|
const file = this.fileList.find(file => file.name === fileId); |
||||||
|
if (file) { |
||||||
|
file.label = newName; |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
}); |
@ -0,0 +1,14 @@ |
|||||||
|
import { ElMessage } from 'element-plus'; |
||||||
|
|
||||||
|
export function useGlobalMessage() { |
||||||
|
const showMessage = (type: 'success' | 'warning' | 'info' | 'error', message: string) => { |
||||||
|
ElMessage({ |
||||||
|
type, |
||||||
|
message, |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
return { |
||||||
|
showMessage, |
||||||
|
}; |
||||||
|
} |
Loading…
Reference in new issue