|
|
@@ -118,6 +118,92 @@
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
+
|
|
|
+ <div class="s0-s4__l2">
|
|
|
+ <div class="s0-s4__subhd">二级指标 L2(详情看板 {{ currentModuleCode }})</div>
|
|
|
+ <p class="s0-s4__hint">
|
|
|
+ 在此处开启该模块全部 L2 指标并配置父级 / 栏位 / 显示名 / 结构化公式,与上方共用「保存 {{ currentModuleCode }} 布局」按钮。
|
|
|
+ <template v-if="currentModuleCode === 'S4'">
|
|
|
+ 亦可在图谱中点击 S4 的 L1 节点按父级聚焦编辑(下钻抽屉)。
|
|
|
+ </template>
|
|
|
+ </p>
|
|
|
+ <el-alert
|
|
|
+ v-if="!catalogL2.length"
|
|
|
+ type="info"
|
|
|
+ :closable="false"
|
|
|
+ show-icon
|
|
|
+ class="s0-s4__empty-l2"
|
|
|
+ title="该模块字典中暂无 L2 指标。请先到「运营指标主数据」为该模块补充 L2(metricLevel ≥ 2)。"
|
|
|
+ />
|
|
|
+ <el-table
|
|
|
+ v-else
|
|
|
+ :data="catalogL2"
|
|
|
+ size="small"
|
|
|
+ border
|
|
|
+ stripe
|
|
|
+ class="s0-s4__table"
|
|
|
+ >
|
|
|
+ <el-table-column label="选用" width="56" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-switch
|
|
|
+ :model-value="Boolean(l2On[row.metricCode])"
|
|
|
+ @update:model-value="(v) => onL2Toggle(row.metricCode, v)"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="metricCode" label="编码" width="120" />
|
|
|
+ <el-table-column prop="defaultName" label="字典名称" min-width="100" />
|
|
|
+ <el-table-column label="显示名称" min-width="120">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-input
|
|
|
+ v-model="l2DisplayName[row.metricCode]"
|
|
|
+ placeholder="留空则同字典"
|
|
|
+ size="small"
|
|
|
+ :disabled="!l2On[row.metricCode]"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="父级 L1(可选)" min-width="160">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-select
|
|
|
+ v-model="l2ParentMetric[row.metricCode]"
|
|
|
+ placeholder="可不选"
|
|
|
+ filterable
|
|
|
+ clearable
|
|
|
+ style="width: 100%"
|
|
|
+ :disabled="!l2On[row.metricCode]"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="c in parentOptionsForRow(row)"
|
|
|
+ :key="c.metricCode"
|
|
|
+ :label="parentOptionLabel(c)"
|
|
|
+ :value="c.metricCode"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="栏" width="88">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-select v-model="l2Zone[row.metricCode]" :disabled="!l2On[row.metricCode]">
|
|
|
+ <el-option label="左" value="left" />
|
|
|
+ <el-option label="右" value="right" />
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="计算公式(结构化)" min-width="260">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <FormulaEditor
|
|
|
+ v-if="l2On[row.metricCode]"
|
|
|
+ v-model="l2Formula[row.metricCode]"
|
|
|
+ :module-code="currentModuleCode"
|
|
|
+ :exclude-kpi-id="row.id"
|
|
|
+ placeholder="支持 @指标 / $事实"
|
|
|
+ />
|
|
|
+ <span v-else class="s0-s4__formula-off">(未选用)</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
</div>
|
|
|
<div v-else-if="drawerS4L1" v-loading="!s4PanelReady" class="s0-drawer-s4">
|