From 4c392a23d35ffe64bd8e9b522abaca456da4c46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E7=93=9C=C2=B0?= Date: Sat, 29 Mar 2025 00:48:05 +0800 Subject: [PATCH] dev --- frontend/src/api/info/type.ts | 13 + .../src/components/basic/button/index.vue | 0 .../src/components/basic/dialog/index.vue | 68 ---- .../components/calc/autocomplete/index.vue | 2 +- frontend/src/components/calc/button/index.vue | 1 + .../src/components/calc/cascader/index.vue | 3 +- .../src/components/calc/checkbox/index.vue | 305 +++++++++--------- .../src/components/calc/iconselect/index.vue | 3 +- frontend/src/components/calc/select/index.vue | 3 +- .../src/pages/Character/Equipment/Index.vue | 9 - .../Character/Forge/components/equipment.vue | 181 +++++++++++ frontend/src/pages/Character/Forge/index.vue | 39 +++ frontend/src/pages/Character/Index.vue | 2 + .../Skill/components/SkillTree/index.tsx | 9 +- frontend/src/router/index.ts | 13 +- frontend/src/stores/config.ts | 3 +- frontend/src/stores/info.ts | 9 + 17 files changed, 428 insertions(+), 235 deletions(-) delete mode 100644 frontend/src/components/basic/button/index.vue delete mode 100644 frontend/src/components/basic/dialog/index.vue create mode 100644 frontend/src/pages/Character/Forge/components/equipment.vue create mode 100644 frontend/src/pages/Character/Forge/index.vue diff --git a/frontend/src/api/info/type.ts b/frontend/src/api/info/type.ts index 61ab1dbb..18d2cc33 100644 --- a/frontend/src/api/info/type.ts +++ b/frontend/src/api/info/type.ts @@ -26,6 +26,8 @@ export interface ICharacterInfo { name: string equVersion: string equips: IEquipment[] + enchantings: IEnchantingInfo[] + emblems: IEnchantingInfo[] weapons: string[] skills: ISkill[] suits: ISuit[] @@ -59,3 +61,14 @@ export interface ISuit { imageUrl: string suitId: number } + + +export interface IEnchantingInfo { + id: string | number + maxFame: number | undefined + position: string[] + props: string + type: string | undefined + rarity: string | undefined + rate: number +} diff --git a/frontend/src/components/basic/button/index.vue b/frontend/src/components/basic/button/index.vue deleted file mode 100644 index e69de29b..00000000 diff --git a/frontend/src/components/basic/dialog/index.vue b/frontend/src/components/basic/dialog/index.vue deleted file mode 100644 index 40d00986..00000000 --- a/frontend/src/components/basic/dialog/index.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - diff --git a/frontend/src/components/calc/autocomplete/index.vue b/frontend/src/components/calc/autocomplete/index.vue index 72b2ab0b..ca639706 100644 --- a/frontend/src/components/calc/autocomplete/index.vue +++ b/frontend/src/components/calc/autocomplete/index.vue @@ -170,7 +170,7 @@ export default defineComponent({ z-index: 888; $hoverColor: #002947; - $activeColor: lighten($hoverColor, 5%); + $activeColor: color.scale($hoverColor, $lightness: 5%); color: $text-color; .i-autocomplete-dropdown-item { diff --git a/frontend/src/components/calc/button/index.vue b/frontend/src/components/calc/button/index.vue index bcd242a1..2afcedb9 100644 --- a/frontend/src/components/calc/button/index.vue +++ b/frontend/src/components/calc/button/index.vue @@ -25,6 +25,7 @@ export default defineComponent({ default: "primary" } }, + emits: ["click"], setup(props, { slots }) { return () => { const proerpties = { diff --git a/frontend/src/components/calc/cascader/index.vue b/frontend/src/components/calc/cascader/index.vue index a14910ee..7bd0793e 100644 --- a/frontend/src/components/calc/cascader/index.vue +++ b/frontend/src/components/calc/cascader/index.vue @@ -156,6 +156,7 @@ export default defineComponent({ diff --git a/frontend/src/components/calc/iconselect/index.vue b/frontend/src/components/calc/iconselect/index.vue index bf627cad..b9f5c3a8 100644 --- a/frontend/src/components/calc/iconselect/index.vue +++ b/frontend/src/components/calc/iconselect/index.vue @@ -123,6 +123,7 @@ export default defineComponent({ diff --git a/frontend/src/pages/Character/Forge/index.vue b/frontend/src/pages/Character/Forge/index.vue new file mode 100644 index 00000000..e04f31f3 --- /dev/null +++ b/frontend/src/pages/Character/Forge/index.vue @@ -0,0 +1,39 @@ + + + + diff --git a/frontend/src/pages/Character/Index.vue b/frontend/src/pages/Character/Index.vue index 0bab2df4..03989e09 100644 --- a/frontend/src/pages/Character/Index.vue +++ b/frontend/src/pages/Character/Index.vue @@ -4,6 +4,7 @@ 装备设置 技能设置 + 打造设置
@@ -24,6 +25,7 @@ const configStore = useConfigStore() onMounted(async () => { await infoStore.createCharacter(props.alter, '0') configStore.loadConfig() + console.log("~~~~~~~~") window.addEventListener('beforeunload', () => { configStore.saveConfig() }) diff --git a/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx b/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx index e0a469cb..f84bc4ef 100644 --- a/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx +++ b/frontend/src/pages/Character/Skill/components/SkillTree/index.tsx @@ -2,6 +2,7 @@ import { getImageURL } from '@/utils/images' import type { ISkill } from '@/api/info/type' import { useVModel } from '@vueuse/core' import './style.scss' +import CalcButton from '@/components/calc/button/index.vue' export default defineComponent({ name: 'SkillTree', @@ -106,10 +107,10 @@ export default defineComponent({
- - - - + {e.stopPropagation();actionSkillLv(skill, 'subMax')}}>< + {e.stopPropagation();actionSkillLv(skill, 'sub')}}>- + {e.stopPropagation();actionSkillLv(skill, 'add')}}> + {e.stopPropagation();actionSkillLv(skill, 'addMax')}}>
diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 31d641fe..523f98f2 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -7,7 +7,7 @@ const routes: RouteRecordRaw[] = [ { path: '/', name: 'home', - component: defineAsyncComponent(() => import('@/pages/Home/Index.vue')), + component: (() => import('@/pages/Home/Index.vue')), }, { path:'/character/:alter', @@ -16,18 +16,23 @@ const routes: RouteRecordRaw[] = [ }, props: true, name:'character', - component: defineAsyncComponent(() => import('@/pages/Character/Index.vue')), + component: (() => import('@/pages/Character/Index.vue')), children: [ { path: '/character/equipment/:alter', name: 'equipment', props: true, - component: defineAsyncComponent(() => import('@/pages/Character/Equipment/Index.vue')), + component: (() => import('@/pages/Character/Equipment/Index.vue')), },{ path: '/character/skill/:alter', name: 'skill', props: true, - component: defineAsyncComponent(() => import('@/pages/Character/Skill/index.vue')), + component: (() => import('@/pages/Character/Skill/index.vue')), + },{ + path: '/character/forge/:alter', + name: 'forge', + props: true, + component: (() => import('@/pages/Character/Forge/index.vue')), } ] } diff --git a/frontend/src/stores/config.ts b/frontend/src/stores/config.ts index 0d005d77..3d9ca416 100644 --- a/frontend/src/stores/config.ts +++ b/frontend/src/stores/config.ts @@ -45,6 +45,7 @@ export const useConfigStore = defineStore('configStore', () => { equips: {} }) + const loadConfig = () => { const infoStore = useInfoStore() const alter = infoStore.infos?.alter @@ -62,7 +63,7 @@ export const useConfigStore = defineStore('configStore', () => { if(!config.value?.equips) config.value.equips = {} if(!config.value?.skills) config.value.skills = {} - const part = ['上衣', '头肩', '下装', '腰带', '鞋', '手镯', '项链', '戒指', '耳环', '辅助装备', '魔法石', '武器'].filter(a => !config.value?.equips.hasOwnProperty(a)) + const part = infoStore.parts.filter(a => !config.value?.equips.hasOwnProperty(a)) const skillIDs = infoStore.skills.map(skill => skill.id.toString()).filter(a => !config.value?.skills.hasOwnProperty(a)) diff --git a/frontend/src/stores/info.ts b/frontend/src/stores/info.ts index 3d3804df..f64da7b6 100644 --- a/frontend/src/stores/info.ts +++ b/frontend/src/stores/info.ts @@ -13,6 +13,12 @@ export const useInfoStore = defineStore("infoStore", ()=>{ const suits = computed(()=>infos.value?.suits ?? []) + const enchantings = computed(()=>infos.value?.enchantings?? []) + + const emblems = computed(()=>infos.value?.emblems?? []) + + const parts = ['上衣', '头肩', '下装', '腰带', '鞋', '手镯', '项链', '戒指', '耳环', '辅助装备', '魔法石', '武器'] + const createCharacter = async (alter: string, equVersion?: string) => { const time = new Date().getTime() alter_token.value = btoa(JSON.stringify({alter, equVersion, time})) @@ -26,5 +32,8 @@ export const useInfoStore = defineStore("infoStore", ()=>{ equips, suits, createCharacter, + enchantings, + emblems, + parts } })