- action_plans表加kr_id字段(关联krs.id),create/update/list支持kr_id读写
- 创建行动选KR时自动继承objective_id;列表附kr_title
- 前端行动方案库加'所属目标/KR'两级联动选择,选中KR自动带出KPI
- OKR详情页KR卡片下显示达成行动列表(O→KR→行动三层)
- MapCanvasDialogs onKpiChange选中KPI自动填kr.name=kpi.kpi_name(中文)
- 编辑回填英文code KR名转中文显示兜底
- maps.py 新增GET /{map_id}/krs端点(MapReview战略回顾会KR进度)
- 数据修复: krs表9条英文code title→中文名(按kpi_definitions映射)
- 数据迁移: 高置信行动挂KR(费用率→kr10,应收→kr14); 地图32空KR清理
- okr list的kr_summary补metric_kpi_id(前端联动用)
- 新增6个kr_id测试(test_action_plans),全量547通过
90 lines
5.1 KiB
TypeScript
90 lines
5.1 KiB
TypeScript
/* eslint-disable */
|
|
// @ts-nocheck
|
|
// biome-ignore lint: disable
|
|
// oxlint-disable
|
|
// ------
|
|
// Generated by unplugin-vue-components
|
|
// Read more: https://github.com/vuejs/core/pull/3399
|
|
|
|
export {}
|
|
|
|
/* prettier-ignore */
|
|
declare module 'vue' {
|
|
export interface GlobalComponents {
|
|
BulletChart: typeof import('./src/components/charts/BulletChart.vue')['default']
|
|
ConnectionLines: typeof import('./src/components/strategy/ConnectionLines.vue')['default']
|
|
DriverFactorBudget: typeof import('./src/components/DriverFactorBudget.vue')['default']
|
|
ElAlert: typeof import('element-plus/es')['ElAlert']
|
|
ElAside: typeof import('element-plus/es')['ElAside']
|
|
ElButton: typeof import('element-plus/es')['ElButton']
|
|
ElCard: typeof import('element-plus/es')['ElCard']
|
|
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
|
|
ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
|
|
ElCol: typeof import('element-plus/es')['ElCol']
|
|
ElCollapse: typeof import('element-plus/es')['ElCollapse']
|
|
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
|
|
ElContainer: typeof import('element-plus/es')['ElContainer']
|
|
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
|
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
|
|
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
|
|
ElDialog: typeof import('element-plus/es')['ElDialog']
|
|
ElDivider: typeof import('element-plus/es')['ElDivider']
|
|
ElDropdown: typeof import('element-plus/es')['ElDropdown']
|
|
ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
|
|
ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
|
|
ElEmpty: typeof import('element-plus/es')['ElEmpty']
|
|
ElForm: typeof import('element-plus/es')['ElForm']
|
|
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
|
ElHeader: typeof import('element-plus/es')['ElHeader']
|
|
ElIcon: typeof import('element-plus/es')['ElIcon']
|
|
ElInput: typeof import('element-plus/es')['ElInput']
|
|
ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
|
|
ElMain: typeof import('element-plus/es')['ElMain']
|
|
ElMenu: typeof import('element-plus/es')['ElMenu']
|
|
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
|
ElOption: typeof import('element-plus/es')['ElOption']
|
|
ElPagination: typeof import('element-plus/es')['ElPagination']
|
|
ElProgress: typeof import('element-plus/es')['ElProgress']
|
|
ElRadio: typeof import('element-plus/es')['ElRadio']
|
|
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
|
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
|
ElRow: typeof import('element-plus/es')['ElRow']
|
|
ElSelect: typeof import('element-plus/es')['ElSelect']
|
|
ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
|
|
ElSlider: typeof import('element-plus/es')['ElSlider']
|
|
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
|
|
ElSwitch: typeof import('element-plus/es')['ElSwitch']
|
|
ElTable: typeof import('element-plus/es')['ElTable']
|
|
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
|
ElTabPane: typeof import('element-plus/es')['ElTabPane']
|
|
ElTabs: typeof import('element-plus/es')['ElTabs']
|
|
ElTag: typeof import('element-plus/es')['ElTag']
|
|
ElText: typeof import('element-plus/es')['ElText']
|
|
ElTimeline: typeof import('element-plus/es')['ElTimeline']
|
|
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
|
|
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
|
ElTree: typeof import('element-plus/es')['ElTree']
|
|
ElUpload: typeof import('element-plus/es')['ElUpload']
|
|
GaugeChart: typeof import('./src/components/charts/GaugeChart.vue')['default']
|
|
GrowthQuality: typeof import('./src/components/GrowthQuality.vue')['default']
|
|
KnowledgePanel: typeof import('./src/components/KnowledgePanel.vue')['default']
|
|
KPIListView: typeof import('./src/components/KPIListView.vue')['default']
|
|
MapCanvasDialogs: typeof import('./src/components/map-canvas/MapCanvasDialogs.vue')['default']
|
|
MapCanvasToolbar: typeof import('./src/components/map-canvas/MapCanvasToolbar.vue')['default']
|
|
MapNode: typeof import('./src/components/strategy-map/MapNode.vue')['default']
|
|
MyDialog: typeof import('./src/components/MyDialog.vue')['default']
|
|
NodeEditDialog: typeof import('./src/components/strategy-map/NodeEditDialog.vue')['default']
|
|
OkrDecomposition: typeof import('./src/components/okr/OkrDecomposition.vue')['default']
|
|
ProfitBreakdown: typeof import('./src/components/charts/ProfitBreakdown.vue')['default']
|
|
RiskCell: typeof import('./src/components/charts/RiskCell.vue')['default']
|
|
RouterLink: typeof import('vue-router')['RouterLink']
|
|
RouterView: typeof import('vue-router')['RouterView']
|
|
StrategyLayer: typeof import('./src/components/strategy-map/StrategyLayer.vue')['default']
|
|
WaterfallChart: typeof import('./src/components/charts/WaterfallChart.vue')['default']
|
|
WelcomeGuide: typeof import('./src/components/WelcomeGuide.vue')['default']
|
|
}
|
|
export interface GlobalDirectives {
|
|
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
|
|
}
|
|
}
|