yumoqing 4092304726 feat(feasibility): P3可行性研究——opp_feasibility引擎(fp_estimate规则引擎FP/draft_feasibility八节报告/score_candidate评分/promote_to_project立项门禁)+report_type列(models/DDL/CRUD重生成)+详情页与PPT按类型选四节或八节模板(sections_for_type单一规则源)+列表类型徽标+prompt链路C+params/demand_mining字典种子+i18n词条
- fp_calc.calc()返回键实锤核对: total_fp/counts/errors(原total_ufp/by_type兜底猜错,已修)
- promote门禁修正: resolve_approval会把status置approved,confirmed只是中间态→门禁接受confirmed/approval_initiated/approved(原只认confirmed会导致审批通过后反而不能立项)
- _cluster_ctx补项目隔离(对齐_check_batch_visible口径)+全personal类别如实拒绝可行性样本不足
- 八节模板兜底节=需求规格;四节存量解析口径零变化
- opp_approvals CRUD手改(项目过滤)被xls2ui重生成吃掉→已checkout还原,只保留opp_reports新列部分
2026-09-14 09:03:58 +08:00

230 lines
4.4 KiB
XML

{
"widgettype":"VBox",
"options":{"cheight":40,"width":"100%"},
"subwidgets":[{
"id":"opp_reports_tbl",
"widgettype":"Tabular",
"options":{
"width":"100%",
"height":"100%",
"title":"研发报告",
"css":"card",
"editable":{
"new_data_url":"{{entire_url('add_opp_reports.dspy')}}",
"delete_data_url":"{{entire_url('delete_opp_reports.dspy')}}",
"update_data_url":"{{entire_url('update_opp_reports.dspy')}}"
},
"data_url":"{{entire_url('./get_opp_reports.dspy')}}",
"data_method":"GET",
"data_params":{{json.dumps(params_kw, indent=4, ensure_ascii=False)}},
"row_options":{
"browserfields": {
"exclouded": [
"content",
"confirm_task_id"
]
},
"editexclouded":[
"id",
"created_at",
"updated_at",
"confirm_task_id",
"confirmed_by",
"ppt_path"
],
"fields":[
{
"name": "id",
"title": "主键ID",
"type": "str",
"length": 32,
"nullable": "no",
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "主键ID"
},
{
"name": "project_id",
"title": "项目ID",
"type": "str",
"length": 32,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "项目ID"
},
{
"name": "software",
"title": "软件/主题",
"type": "str",
"length": 128,
"nullable": "no",
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "软件/主题"
},
{
"name": "title",
"title": "报告标题",
"type": "str",
"length": 255,
"nullable": "no",
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "报告标题"
},
{
"name": "content",
"title": "报告正文",
"type": "text",
"length": 0,
"uitype": "text",
"datatype": "text",
"label": "报告正文"
},
{
"name": "status",
"title": "报告状态",
"type": "str",
"length": 24,
"nullable": "no",
"default": "draft",
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "报告状态"
},
{
"name": "report_type",
"title": "报告类型(research调研/feasibility可行性研究)",
"type": "str",
"length": 16,
"default": "research",
"cwidth": 16,
"uitype": "str",
"datatype": "str",
"label": "报告类型(research调研/feasibility可行性研究)"
},
{
"name": "confirm_task_id",
"title": "确认任务ID",
"type": "str",
"length": 32,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "确认任务ID"
},
{
"name": "ppt_path",
"title": "PPT文件路径",
"type": "str",
"length": 500,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "PPT文件路径"
},
{
"name": "confirmed_by",
"title": "确认人",
"type": "str",
"length": 64,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "确认人"
},
{
"name": "created_by",
"title": "创建人",
"type": "str",
"length": 64,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "创建人"
},
{
"name": "created_at",
"title": "创建时间",
"type": "timestamp",
"nullable": "no",
"length": 0,
"uitype": "str",
"datatype": "timestamp",
"label": "创建时间"
},
{
"name": "updated_at",
"title": "更新时间",
"type": "timestamp",
"length": 0,
"uitype": "str",
"datatype": "timestamp",
"label": "更新时间"
}
]
},
"data_filter":{
"AND": [
{
"field": "title",
"op": "LIKE",
"var": "title_input"
},
{
"field": "software",
"op": "LIKE",
"var": "software_input"
},
{
"field": "status",
"op": "=",
"var": "status_input"
}
]
},
"page_rows":160,
"cache_limit":5
}
,"binds":[]
}]
}