yumoqing 19a3d67c68 feat: 投标产线模块(bidding_general)
- 12张 bid_* 表(models+DDL+CRUD):招标信息/邮箱配置/人员/招标文件/评分项/资质/
  投标文件要求/章节/评审/评分/知识库/标书
- 7个角色能力模块(bid_*_capability):采集摘要/解析/知识库资质/编写/评审/合成/评分
- bid_flow 状态对账器:角色任务唯一创建者+阻塞门禁(源头守门,引擎零特判)
- bid_mail:阿里云企业邮 IMAP 采集(凭据存DB AES,客户端专用密码兼容)
- 能力包注册(bid_ability)+ 角色工具自注册(role_tool_schemas)
- 技能:6 common 状态机/规范 + 9 角色技能(pipelines/bidding_general,随 pipeline-core 部署)
- i18n(zh/en)、init/data.json(appcodes+pipelines记录)、build.sh、RBAC load_path
2026-08-26 23:45:03 +08:00

338 lines
7.1 KiB
XML

{
"widgettype":"VBox",
"options":{"height":"100%","width":"100%"},
"subwidgets":[
{
"id":"bid_reviews_tbl",
"widgettype":"Tabular",
"options":{
"width":"100%",
"height":"100%",
"title":"标书评审记录",
"toolbar":{
"tools": [
{
"name": "filter",
"label": "搜索"
},
{
"selected_row": true,
"name": "bid_scores",
"icon": "{{entire_url('/imgs/bid_scores.svg')}}",
"label": "评分明细"
}
]
},
"css":"card",
"editable":{
"new_data_url": "{{entire_url('add_bid_reviews.dspy')}}",
"delete_data_url": "{{entire_url('delete_bid_reviews.dspy')}}",
"update_data_url": "{{entire_url('update_bid_reviews.dspy')}}"
},
"data_url":"{{entire_url('./get_bid_reviews.dspy')}}",
"data_method":"GET",
"data_params":{{json.dumps(params_kw, indent=4, ensure_ascii=False)}},
"row_options":{
"browserfields": {
"exclouded": [
"detail"
]
},
"editexclouded":[
"id",
"created_at",
"updated_at",
"task_id"
],
"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,
"nullable": "no",
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "项目ID"
},
{
"name": "scope",
"title": "评审范围",
"type": "str",
"length": 16,
"nullable": "no",
"default": "chapter",
"label": "评审范围",
"uitype": "code",
"valueField": "scope",
"textField": "scope_text",
"params": {
"dbname": "{{get_module_dbname('pipeline_bidding')}}",
"table": "appcodes_kv",
"tblvalue": "k",
"tbltext": "v",
"valueField": "scope",
"textField": "scope_text",
"cond": "parentid='bid_review_scope'"
},
"dataurl": "{{entire_url('/appbase/get_code.dspy')}}"
},
{
"name": "chapter_id",
"title": "章节ID",
"type": "str",
"length": 32,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "章节ID"
},
{
"name": "document_id",
"title": "标书ID",
"type": "str",
"length": 32,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "标书ID"
},
{
"name": "round",
"title": "评审轮次",
"type": "int",
"nullable": "no",
"default": "1",
"length": 0,
"uitype": "int",
"datatype": "int",
"label": "评审轮次"
},
{
"name": "reviewer",
"title": "评审方",
"type": "str",
"length": 64,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "评审方"
},
{
"name": "review_type",
"title": "评审类型",
"type": "str",
"length": 16,
"default": "agent",
"cwidth": 16,
"uitype": "str",
"datatype": "str",
"label": "评审类型"
},
{
"name": "score",
"title": "得分",
"type": "float",
"length": 8,
"dec": 2,
"cwidth": 8,
"uitype": "float",
"datatype": "float",
"label": "得分"
},
{
"name": "max_score",
"title": "满分",
"type": "float",
"length": 8,
"dec": 2,
"cwidth": 8,
"uitype": "float",
"datatype": "float",
"label": "满分"
},
{
"name": "pass_ratio",
"title": "通过门限",
"type": "float",
"length": 5,
"dec": 4,
"cwidth": 5,
"uitype": "float",
"datatype": "float",
"label": "通过门限"
},
{
"name": "passed",
"title": "是否通过",
"type": "str",
"length": 1,
"nullable": "no",
"default": "0",
"cwidth": 4,
"uitype": "str",
"datatype": "str",
"label": "是否通过"
},
{
"name": "comments",
"title": "改进意见",
"type": "text",
"length": 0,
"uitype": "text",
"datatype": "text",
"label": "改进意见"
},
{
"name": "detail",
"title": "评审明细(JSON)",
"type": "text",
"length": 0,
"uitype": "text",
"datatype": "text",
"label": "评审明细(JSON)"
},
{
"name": "task_id",
"title": "关联任务ID",
"type": "str",
"length": 32,
"cwidth": 18,
"uitype": "str",
"datatype": "str",
"label": "关联任务ID"
},
{
"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": "更新时间"
}
]
},
"search_form":{
"css":"card",
"padding":"8px",
"show_label":false,
"submit_label":"搜索",
"submit_css":"primary",
"fields":[
{
"name": "project_id",
"uitype": "str",
"placeholder": "项目ID",
"cwidth": 15
},
{
"name": "scope_input",
"uitype": "code",
"placeholder": "评审范围",
"cwidth": 15,
"valueField": "scope_input",
"textField": "scope_input_text",
"params": {
"dbname": "{{get_module_dbname('pipeline_bidding')}}",
"table": "appcodes_kv",
"tblvalue": "k",
"tbltext": "v",
"valueField": "scope_input",
"textField": "scope_input_text",
"cond": "parentid='bid_review_scope'"
},
"dataurl": "{{entire_url('/appbase/get_code.dspy')}}?prepend_all=1"
}
]
},
"page_rows":160,
"cache_limit":5
}
,"binds":[
{
"wid": "self",
"event": "bid_scores",
"actiontype": "urlwidget",
"target": "PopupWindow",
"popup_options": {
"title": "评分明细",
"icon": "{{entire_url('/appbase/show_icon.dspy')}}?id=bid_scores",
"resizable": true,
"height": "70%",
"width": "70%"
},
"params_mapping": {
"mapping": {
"id": "review_id",
"referer_widget": "referer_widget"
},
"need_other": false
},
"options": {
"method": "POST",
"params": {},
"url": "{{entire_url('../bid_scores?review_id=${id}')}}"
}
}
]
}]
}