fix(frontend): 策略表单第五节竞争字段文案与选项对齐§5.3语义

Made-with: Cursor
This commit is contained in:
hub-gif 2026-04-22 09:54:02 +08:00
parent bf2ad14d23
commit 39929ea600

View File

@ -76,11 +76,12 @@ const positioningOptions = [
{ value: 'different', label: '另起带' },
]
/** 对应后端 competitive_stance / 成稿 §5.3:与头部或主竞品「怎么打」,非价位阵地、亦非泛指的「进市场」。 */
const stanceOptions = [
{ value: '', label: '暂不填写' },
{ value: 'flank', label: '倾向侧翼切入' },
{ value: 'head_on', label: '倾向正面替代' },
{ value: 'both', label: '分层推进(侧翼 + 正面' },
{ value: 'flank', label: '侧翼切入(避开头部主战场)' },
{ value: 'head_on', label: '正面替代(对标头部主战场)' },
{ value: 'both', label: '分层推进(侧翼 + 正面并行' },
{ value: 'undecided', label: '尚未拍板' },
]
@ -235,14 +236,12 @@ watch(
<section class="ma-card">
<h2>策略生成</h2>
<p class="hint-top">
选择<strong>已成功</strong>任务在下方选择<strong>策略类目</strong>与竞品矩阵细类一致对应成稿中的主推细类全部分类则与全关键词样本一致<strong>默认</strong>使用大模型在规则底稿与同任务监测摘要基础上润色成稿需服务端已配置网关可勾选本次仅生成规则稿跳过智能润色策略配置与分析报告生成<strong>报告配置</strong>相互独立收窄类目时成稿会并入该细类在宿主报告<strong>第五第八章</strong>的大模型归纳节选提交后跳转
选择<strong>已成功</strong>任务在下方选择<strong>策略类目</strong>
<RouterLink to="/jd/strategy-view">策略稿预览</RouterLink>
<strong>已填项</strong>写入底稿并由大模型落实<strong>未填项</strong>可由大模型结合监测数据推断仍受禁止编造约束
</p>
<p class="hint-top hint-flow">
<strong>与成稿目录对齐</strong>对应下载策略稿 Markdown策略范围与前提摘要顾客是谁针对痛点要怎么做主要由数据与模型归纳为什么要买这款产品为什么要选这个品牌承诺与信任底稿占位为主竞品 / 阶段路径 / 品牌四线战术支柱<strong>价位阵地</strong>勾选与 4P风险下一步业务约束与备注附录第四章叙事本页不设表单项<strong>贴顶/卡腰等价位取向</strong>归入第八章定价见下方战术支柱分组
<strong>已填项</strong>写入底稿并由大模型落实<strong>未填项</strong>可由大模型结合监测数据推断
</p>
<div class="toolbar">
<label class="chk-inline">
<input v-model="rulesOnlyThisRun" type="checkbox" />
@ -346,10 +345,12 @@ watch(
</fieldset>
<fieldset class="fieldset">
<legend>与其它品牌有何不同 竞争倾向</legend>
<p class="fieldset-hint">对应成稿<strong>与其它品牌有何不同 · 竞争应对</strong></p>
<legend>与其它品牌有何不同 竞争应对取向</legend>
<p class="fieldset-hint">
对应成稿<strong>§5.3 竞争应对</strong>选的是<strong>与头部或主竞品交锋时的主打法</strong>侧翼 / 正面等与下方价位阵地贴顶/卡腰/下探回答的问题不同也不是泛指的是否进新市场
</p>
<label class="fld fld-block">
<span>本品竞争倾向</span>
<span>面对竞品时的主打法</span>
<select v-model="decisions.competitive_stance" class="job-select full">
<option v-for="o in stanceOptions" :key="o.value || 'empty'" :value="o.value">
{{ o.label }}