1
This commit was merged in pull request #1.
This commit is contained in:
@@ -28,7 +28,7 @@ const noticeType = ref<"error" | "info">("info");
|
||||
const openUpPickerSlot = ref<number | null>(null);
|
||||
const rightPanelTab = ref<"detail" | "result">("result");
|
||||
const leftPanelWidthClass = computed(() =>
|
||||
rightPanelTab.value === "result" ? "xl:w-[460px]" : "xl:w-[550px]",
|
||||
rightPanelTab.value === "result" ? "xl:w-[360px]" : "xl:w-[550px]",
|
||||
);
|
||||
|
||||
/* ─── Constants ─── */
|
||||
@@ -193,6 +193,19 @@ const upOptionsForSlot = (slotIdx: number) => {
|
||||
.sort((a, b) => a.learnLv - b.learnLv);
|
||||
};
|
||||
|
||||
const firstAwakeSkill = computed(() =>
|
||||
infoStore.skills.find((item) => item.learnLv === 50 && item.type === "active" && item.bind),
|
||||
);
|
||||
const secondAwakeSkill = computed(() =>
|
||||
infoStore.skills.find((item) => item.learnLv === 85 && item.type === "active" && item.bind),
|
||||
);
|
||||
const canBindAwake = computed(() => !!firstAwakeSkill.value || !!secondAwakeSkill.value);
|
||||
|
||||
const setBindAwake = (level: 50 | 85) => {
|
||||
configStore.config.bindAwake = level;
|
||||
track(`觉醒绑定切换为 ${level === 50 ? "一觉" : "二觉"}`);
|
||||
};
|
||||
|
||||
const setUPSlotSkill = (slotIdx: number, nextId: string) => {
|
||||
const slot = upSlots.value[slotIdx];
|
||||
if (!slot) return;
|
||||
@@ -337,6 +350,33 @@ const resetAllSkills = () => {
|
||||
: '',
|
||||
]"
|
||||
/>
|
||||
<div
|
||||
v-if="skill.learnLv === 100 && skill.bind && canBindAwake"
|
||||
class="awake-bind-panel"
|
||||
@click.stop
|
||||
>
|
||||
<button
|
||||
v-if="firstAwakeSkill"
|
||||
class="awake-bind-btn"
|
||||
:class="{ active: configStore.config.bindAwake === 50 }"
|
||||
title="绑定一觉"
|
||||
@click.stop="setBindAwake(50)"
|
||||
>
|
||||
<img :src="getImageURL(firstAwakeSkill.icon)" :alt="firstAwakeSkill.name" />
|
||||
</button>
|
||||
<button
|
||||
v-if="secondAwakeSkill"
|
||||
class="awake-bind-btn"
|
||||
:class="{ active: configStore.config.bindAwake === 85 }"
|
||||
title="绑定二觉"
|
||||
@click.stop="setBindAwake(85)"
|
||||
>
|
||||
<img
|
||||
:src="getImageURL(secondAwakeSkill.icon)"
|
||||
:alt="secondAwakeSkill.name"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-if="activeSkillId === skill.id.toString()"
|
||||
class="action-row"
|
||||
@@ -399,6 +439,36 @@ const resetAllSkills = () => {
|
||||
: '',
|
||||
]"
|
||||
/>
|
||||
<div
|
||||
v-if="cell.learnLv === 100 && cell.bind && canBindAwake"
|
||||
class="awake-bind-panel"
|
||||
@click.stop
|
||||
>
|
||||
<button
|
||||
v-if="firstAwakeSkill"
|
||||
class="awake-bind-btn"
|
||||
:class="{ active: configStore.config.bindAwake === 50 }"
|
||||
title="绑定一觉"
|
||||
@click.stop="setBindAwake(50)"
|
||||
>
|
||||
<img
|
||||
:src="getImageURL(firstAwakeSkill.icon)"
|
||||
:alt="firstAwakeSkill.name"
|
||||
/>
|
||||
</button>
|
||||
<button
|
||||
v-if="secondAwakeSkill"
|
||||
class="awake-bind-btn"
|
||||
:class="{ active: configStore.config.bindAwake === 85 }"
|
||||
title="绑定二觉"
|
||||
@click.stop="setBindAwake(85)"
|
||||
>
|
||||
<img
|
||||
:src="getImageURL(secondAwakeSkill.icon)"
|
||||
:alt="secondAwakeSkill.name"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
<div
|
||||
v-if="activeSkillId === cell.id.toString()"
|
||||
class="action-row"
|
||||
@@ -844,6 +914,41 @@ const resetAllSkills = () => {
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.awake-bind-panel {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 50%;
|
||||
z-index: 8;
|
||||
display: flex;
|
||||
gap: 2px;
|
||||
transform: translateX(-50%);
|
||||
border-radius: 4px;
|
||||
background: color-mix(in oklab, var(--background) 88%, transparent);
|
||||
padding: 2px;
|
||||
box-shadow: 0 0 0 1px color-mix(in oklab, var(--border) 80%, transparent);
|
||||
}
|
||||
|
||||
.awake-bind-btn {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
border: 1px solid color-mix(in oklab, var(--border) 70%, transparent);
|
||||
border-radius: 3px;
|
||||
overflow: hidden;
|
||||
opacity: 0.62;
|
||||
}
|
||||
|
||||
.awake-bind-btn.active {
|
||||
border-color: var(--primary);
|
||||
opacity: 1;
|
||||
box-shadow: 0 0 0 1px var(--primary);
|
||||
}
|
||||
|
||||
.awake-bind-btn img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* 4 action buttons at the bottom */
|
||||
.action-row {
|
||||
position: absolute;
|
||||
|
||||
Reference in New Issue
Block a user