feat(skill-editor): 新增普攻lv2强化档编辑模式
1. 为SkillEditor新增basicLv2属性,实现独立的普攻lv2档位编辑逻辑 2. 锁定lv和SkillLv值,禁用档位增删操作 3. 调整界面文案,适配普攻lv2模式的编辑提示 4. 自动规范化lv_entries数据,确保仅存在一个标准lv2档位
This commit is contained in:
@@ -28,19 +28,20 @@
|
||||
<OverrideEditor v-model="skill.overrides" />
|
||||
</el-form-item>
|
||||
|
||||
<template>
|
||||
<el-divider content-position="left">{{ isUlt ? '大招' : '普攻' }} lv_entries 分档</el-divider>
|
||||
<!-- 分档编辑:大招(is-ult)全档编辑;普攻(basic-lv2)仅 lv2 强化档(客户端独立技能图标消费) -->
|
||||
<template v-if="isUlt || basicLv2">
|
||||
<el-divider content-position="left">{{ basicLv2 ? '普攻 lv2 强化档(独立技能)' : '大招 lv_entries 分档' }}</el-divider>
|
||||
<div v-for="(e, idx) in skill.lv_entries" :key="idx" class="skill-block">
|
||||
<div class="head">
|
||||
<span>档位 lv {{ e.lv }} (SkillLv.Lv{{ e.s_lv }})</span>
|
||||
<el-button type="danger" size="small" text @click="skill.lv_entries.splice(idx, 1)">移除</el-button>
|
||||
<el-button v-if="!basicLv2" type="danger" size="small" text @click="skill.lv_entries.splice(idx, 1)">移除</el-button>
|
||||
</div>
|
||||
<div class="form-grid">
|
||||
<el-form-item label="等级 lv">
|
||||
<el-input-number v-model="e.lv" :min="1" :max="20" :controls="false" style="width: 100%" />
|
||||
<el-input-number v-model="e.lv" :min="1" :max="20" :controls="false" :disabled="basicLv2" style="width: 100%" />
|
||||
</el-form-item>
|
||||
<el-form-item label="SkillLv">
|
||||
<el-select v-model="e.s_lv">
|
||||
<el-select v-model="e.s_lv" :disabled="basicLv2">
|
||||
<el-option v-for="n in 5" :key="n" :label="`Lv${n}`" :value="n" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@@ -52,10 +53,11 @@
|
||||
<el-input v-model="e.desc" type="textarea" :rows="2" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-button size="small" @click="addEntry">+ 添加档位(普攻 lv2/lv3,大招 lv9/lv16)</el-button>
|
||||
<span class="muted" style="margin-left: 8px">
|
||||
{{ isUlt ? '建议按 lv9 / lv16 两档' : '普攻 lv2 档将作为独立技能图标展示(名称/图标取 lv1)' }}
|
||||
</span>
|
||||
<template v-if="!basicLv2">
|
||||
<el-button size="small" @click="addEntry">+ 添加档位(lv9/lv16)</el-button>
|
||||
<span class="muted" style="margin-left: 8px">建议按 lv9 / lv16 两档</span>
|
||||
</template>
|
||||
<span v-else class="muted">固定 lv=2 / SkillLv.Lv2,客户端图鉴按独立技能图标展示(名称/图标取 lv1,只显示 lv2 说明)</span>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
@@ -69,8 +71,20 @@ const props = defineProps({
|
||||
skill: { type: Object, required: true },
|
||||
options: { type: Array, default: () => [] },
|
||||
isUlt: { type: Boolean, default: false },
|
||||
// 普攻 lv2 强化档模式:仅允许配置单个 lv2 档(lv=2 / s_lv=2 锁定,禁用增删)
|
||||
basicLv2: { type: Boolean, default: false },
|
||||
})
|
||||
|
||||
// 普攻 lv2 模式:确保 lv_entries 恰为一个 lv2 档(无则补,多则只保留首个并规范化)
|
||||
if (props.basicLv2) {
|
||||
if (!props.skill.lv_entries?.length) {
|
||||
props.skill.lv_entries = [{ lv: 2, s_lv: 2, overrides: {}, desc: '' }]
|
||||
} else {
|
||||
props.skill.lv_entries.splice(1)
|
||||
Object.assign(props.skill.lv_entries[0], { lv: 2, s_lv: 2 })
|
||||
}
|
||||
}
|
||||
|
||||
const cdSpeedKey = refFromCd(props.skill)
|
||||
|
||||
function refFromCd(skill) {
|
||||
|
||||
Reference in New Issue
Block a user