20260923165454

This commit is contained in:
oneao committed 2026-09-23 16:54:54 +08:00
1 parent 0abe3706c8
commit e6935b8fa4
173 files changed
+14975 -2295

No files matched your search

+104 -36
View File
@@ -237,22 +237,47 @@ values ('v_s_log_login', 'view', N'{
{ "field": "b_fail_reason", "width": 180 },
{ "field": "b_ip", "width": 130 },
{ "field": "b_ip_location", "width": 150 },
{ "field": "b_browser", "width": 110 },
{ "field": "b_os", "width": 110 },
{ "field": "b_browser", "width": 110, "visible": false },
{ "field": "b_os", "width": 110, "visible": false },
{ "field": "b_device_type", "width": 100 }
]
}', 1),
('v_s_log_login', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_occurdatetime", "operator": "between" },
{ "field": "v_user_name", "operator": "like" },
{ "field": "v_login_result", "operator": "eq" },
{ "field": "b_ip", "operator": "like" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "today", "label": "今天", "order": 20, "showCount": true,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "today" } } ] },
{ "code": "this_week", "label": "本周", "order": 30,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "this_week" } } ] },
{ "code": "failed", "label": "登录失败", "order": 40, "showCount": true,
"conditions": [ { "field": "v_login_result", "operator": "eq", "value": "失败" } ] }
],
"quick": ["b_occurdatetime", "v_user_name"]
"keywordSearch": {
"placeholder": "搜索账号、IP、归属地",
"trigger": "enter_or_debounce",
"fields": ["v_user_name", "b_ip", "b_ip_location"]
},
"quickFilters": [
{ "field": "b_occurdatetime", "order": 10 },
{ "field": "v_login_result", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["v_user_name", "b_ip", "b_ip_location"] },
{ "code": "device", "label": "终端环境", "order": 20, "fields": ["b_browser", "b_os", "b_device_type", "b_login_type"] }
],
"queryFields": {
"b_occurdatetime": { "component": "datetime", "operator": "between" },
"v_user_name": { "component": "input", "operator": "like" },
"v_login_result": { "component": "select", "operator": "eq", "options": [{ "label": "成功", "value": "成功" }, { "label": "失败", "value": "失败" }] },
"b_login_type": { "component": "input", "operator": "like" },
"b_ip": { "component": "input", "operator": "like" },
"b_ip_location": { "component": "input", "operator": "like" },
"b_browser": { "component": "input", "operator": "like" },
"b_os": { "component": "input", "operator": "like" },
"b_device_type": { "component": "input", "operator": "like" }
}
}', 1);
GO
@@ -266,24 +291,46 @@ values ('v_s_log_audit', 'view', N'{
{ "field": "b_module_id", "width": 150 },
{ "field": "b_operation", "width": 110 },
{ "field": "b_business_no", "width": 150 },
{ "field": "b_event_code", "width": 150 },
{ "field": "b_event_code", "width": 150, "visible": false },
{ "field": "b_visibility", "width": 100 },
{ "field": "b_data_id", "width": 140 }
]
}', 1),
('v_s_log_audit', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_occurdatetime", "operator": "between" },
{ "field": "b_operator_name", "operator": "like" },
{ "field": "b_module_id", "operator": "like" },
{ "field": "b_operation", "operator": "like" },
{ "field": "b_business_no", "operator": "like" },
{ "field": "b_trace_id", "operator": "like" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "today", "label": "今天", "order": 20, "showCount": true,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "today" } } ] },
{ "code": "this_week", "label": "本周", "order": 30,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "this_week" } } ] },
{ "code": "this_month", "label": "本月", "order": 40,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "this_month" } } ] }
],
"quick": ["b_occurdatetime", "b_operator_name", "b_business_no"]
"keywordSearch": {
"placeholder": "搜索操作人、模块、业务单号",
"trigger": "enter_or_debounce",
"fields": ["b_operator_name", "b_module_id", "b_business_no"]
},
"quickFilters": [
{ "field": "b_occurdatetime", "order": 10 },
{ "field": "b_operation", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_operator_name", "b_module_id", "b_operation", "b_business_no"] },
{ "code": "trace", "label": "追踪", "order": 20, "fields": ["b_event_code", "b_trace_id", "b_data_id"] }
],
"queryFields": {
"b_occurdatetime": { "component": "datetime", "operator": "between" },
"b_operator_name": { "component": "input", "operator": "like" },
"b_module_id": { "component": "input", "operator": "like" },
"b_operation": { "component": "input", "operator": "like" },
"b_business_no": { "component": "input", "operator": "like" },
"b_event_code": { "component": "input", "operator": "like" },
"b_trace_id": { "component": "input", "operator": "like" },
"b_data_id": { "component": "input", "operator": "like" }
}
}', 1);
GO
@@ -296,26 +343,47 @@ values ('v_s_log_technical', 'view', N'{
{ "field": "b_loglevel", "width": 90 },
{ "field": "b_logcategory", "width": 130 },
{ "field": "b_operation", "width": 140 },
{ "field": "b_module_id", "width": 150 },
{ "field": "b_module_id", "width": 150, "visible": false },
{ "field": "v_user_name", "width": 120 },
{ "field": "b_duration_ms", "width": 100 },
{ "field": "b_duration_ms", "width": 100, "visible": false },
{ "field": "b_error_code", "width": 120 },
{ "field": "b_error_message", "width": 260 }
]
}', 1),
('v_s_log_technical', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_occurdatetime", "operator": "between" },
{ "field": "b_loglevel", "operator": "eq" },
{ "field": "b_logcategory", "operator": "like" },
{ "field": "b_operation", "operator": "like" },
{ "field": "b_error_code", "operator": "like" },
{ "field": "b_trace_id", "operator": "like" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "today", "label": "今天", "order": 20,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "today" } } ] },
{ "code": "error", "label": "有错误", "order": 30, "showCount": true,
"conditions": [ { "field": "b_error_code", "operator": "is_not_null" } ] }
],
"quick": ["b_occurdatetime", "b_logcategory"]
"keywordSearch": {
"placeholder": "搜索分类、错误码、追踪号",
"trigger": "enter_or_debounce",
"fields": ["b_logcategory", "b_error_code", "b_trace_id"]
},
"quickFilters": [
{ "field": "b_occurdatetime", "order": 10 },
{ "field": "b_loglevel", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_logcategory", "b_operation", "b_module_id", "v_user_name"] },
{ "code": "error", "label": "错误排查", "order": 20, "fields": ["b_error_code", "b_error_message", "b_trace_id"] }
],
"queryFields": {
"b_occurdatetime": { "component": "datetime", "operator": "between" },
"b_loglevel": { "component": "input", "operator": "eq" },
"b_logcategory": { "component": "input", "operator": "like" },
"b_operation": { "component": "input", "operator": "like" },
"b_module_id": { "component": "input", "operator": "like" },
"v_user_name": { "component": "input", "operator": "like" },
"b_error_code": { "component": "input", "operator": "like" },
"b_error_message": { "component": "input", "operator": "like" },
"b_trace_id": { "component": "input", "operator": "like" }
}
}', 1);
GO
+311
View File
@@ -0,0 +1,311 @@
/* ============================================================================
fms_module_query_v2.sql —— 查询配置结构升级(schemaVersion 1 → 2)
背景:查询体验重构后,query JSON 从
{ schemaVersion: 1, groups: [...], quick: [...] }
升级为
{ schemaVersion: 2, defaultViewCode, views, keywordSearch, quickFilters,
filterGroups, queryFields }
(工作队列页签 + 关键词搜索 + 快捷筛选 + 更多筛选分组 + 字段级查询元数据)。
本脚本对线上**已存在**的 query 配置行做幂等 UPDATE;重建库时由各
fms_module_*.sql 种子脚本直接写入新结构,无需执行本文件。
执行方式见 fms-api/tools/migration/README.md(RunSqlFile,先 --dry-run)。
日期预设语义值 { "preset": ... } 由前端 resolveDatePreset() 解析为具体区间,
取值:today / this_week / this_month / recent_3_months。
============================================================================ */
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "enabled", "label": "启用", "order": 20, "showCount": true,
"conditions": [ { "field": "b_canuse", "operator": "eq", "value": 1 } ] },
{ "code": "disabled", "label": "停用", "order": 30, "showCount": true,
"conditions": [ { "field": "b_canuse", "operator": "eq", "value": 0 } ] },
{ "code": "recent", "label": "近三个月变更", "order": 40,
"conditions": [ { "field": "b_updated_at", "operator": "between", "value": { "preset": "recent_3_months" } } ] }
],
"keywordSearch": {
"placeholder": "搜索账号、姓名",
"trigger": "enter_or_debounce",
"fields": ["b_id", "b_name"]
},
"quickFilters": [
{ "field": "b_updated_at", "order": 10 },
{ "field": "b_canuse", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_id", "b_name", "b_dept_id"] }
],
"queryFields": {
"b_id": { "component": "input", "operator": "like" },
"b_name": { "component": "input", "operator": "like" },
"b_dept_id": { "component": "select", "operator": "eq" },
"b_canuse": { "component": "checkbox", "operator": "eq" },
"b_updated_at": { "component": "datetime", "operator": "between" }
}
}'
where b_module_id = 'v_b_user' and b_schema_type = 'query';
GO
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "today", "label": "今天", "order": 20, "showCount": true,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "today" } } ] },
{ "code": "this_week", "label": "本周", "order": 30,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "this_week" } } ] },
{ "code": "failed", "label": "登录失败", "order": 40, "showCount": true,
"conditions": [ { "field": "v_login_result", "operator": "eq", "value": "失败" } ] }
],
"keywordSearch": {
"placeholder": "搜索账号、IP、归属地",
"trigger": "enter_or_debounce",
"fields": ["v_user_name", "b_ip", "b_ip_location"]
},
"quickFilters": [
{ "field": "b_occurdatetime", "order": 10 },
{ "field": "v_login_result", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["v_user_name", "b_ip", "b_ip_location"] },
{ "code": "device", "label": "终端环境", "order": 20, "fields": ["b_browser", "b_os", "b_device_type", "b_login_type"] }
],
"queryFields": {
"b_occurdatetime": { "component": "datetime", "operator": "between" },
"v_user_name": { "component": "input", "operator": "like" },
"v_login_result": { "component": "select", "operator": "eq", "options": [{ "label": "成功", "value": "成功" }, { "label": "失败", "value": "失败" }] },
"b_login_type": { "component": "input", "operator": "like" },
"b_ip": { "component": "input", "operator": "like" },
"b_ip_location": { "component": "input", "operator": "like" },
"b_browser": { "component": "input", "operator": "like" },
"b_os": { "component": "input", "operator": "like" },
"b_device_type": { "component": "input", "operator": "like" }
}
}'
where b_module_id = 'v_s_log_login' and b_schema_type = 'query';
GO
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "today", "label": "今天", "order": 20, "showCount": true,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "today" } } ] },
{ "code": "this_week", "label": "本周", "order": 30,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "this_week" } } ] },
{ "code": "this_month", "label": "本月", "order": 40,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "this_month" } } ] }
],
"keywordSearch": {
"placeholder": "搜索操作人、模块、业务单号",
"trigger": "enter_or_debounce",
"fields": ["b_operator_name", "b_module_id", "b_business_no"]
},
"quickFilters": [
{ "field": "b_occurdatetime", "order": 10 },
{ "field": "b_operation", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_operator_name", "b_module_id", "b_operation", "b_business_no"] },
{ "code": "trace", "label": "追踪", "order": 20, "fields": ["b_event_code", "b_trace_id", "b_data_id"] }
],
"queryFields": {
"b_occurdatetime": { "component": "datetime", "operator": "between" },
"b_operator_name": { "component": "input", "operator": "like" },
"b_module_id": { "component": "input", "operator": "like" },
"b_operation": { "component": "input", "operator": "like" },
"b_business_no": { "component": "input", "operator": "like" },
"b_event_code": { "component": "input", "operator": "like" },
"b_trace_id": { "component": "input", "operator": "like" },
"b_data_id": { "component": "input", "operator": "like" }
}
}'
where b_module_id = 'v_s_log_audit' and b_schema_type = 'query';
GO
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "today", "label": "今天", "order": 20,
"conditions": [ { "field": "b_occurdatetime", "operator": "between", "value": { "preset": "today" } } ] },
{ "code": "error", "label": "有错误", "order": 30, "showCount": true,
"conditions": [ { "field": "b_error_code", "operator": "is_not_null" } ] }
],
"keywordSearch": {
"placeholder": "搜索分类、错误码、追踪号",
"trigger": "enter_or_debounce",
"fields": ["b_logcategory", "b_error_code", "b_trace_id"]
},
"quickFilters": [
{ "field": "b_occurdatetime", "order": 10 },
{ "field": "b_loglevel", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_logcategory", "b_operation", "b_module_id", "v_user_name"] },
{ "code": "error", "label": "错误排查", "order": 20, "fields": ["b_error_code", "b_error_message", "b_trace_id"] }
],
"queryFields": {
"b_occurdatetime": { "component": "datetime", "operator": "between" },
"b_loglevel": { "component": "input", "operator": "eq" },
"b_logcategory": { "component": "input", "operator": "like" },
"b_operation": { "component": "input", "operator": "like" },
"b_module_id": { "component": "input", "operator": "like" },
"v_user_name": { "component": "input", "operator": "like" },
"b_error_code": { "component": "input", "operator": "like" },
"b_error_message": { "component": "input", "operator": "like" },
"b_trace_id": { "component": "input", "operator": "like" }
}
}'
where b_module_id = 'v_s_log_technical' and b_schema_type = 'query';
GO
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "recent_published", "label": "近三个月发布", "order": 20,
"conditions": [ { "field": "v_published_at", "operator": "between", "value": { "preset": "recent_3_months" } } ] },
{ "code": "unpublished", "label": "未发布", "order": 30,
"conditions": [ { "field": "v_published_at", "operator": "is_null" } ] }
],
"keywordSearch": {
"placeholder": "搜索流程名称、编码",
"trigger": "enter_or_debounce",
"fields": ["b_name", "b_id"]
},
"quickFilters": [
{ "field": "v_published_at", "order": 10 },
{ "field": "v_canuse_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_name", "b_id", "v_canuse_name"] },
{ "code": "time", "label": "发布时间", "order": 20, "fields": ["v_published_at", "v_published_by"] }
],
"queryFields": {
"b_name": { "component": "input", "operator": "like" },
"b_id": { "component": "input", "operator": "like" },
"v_canuse_name": { "component": "select", "operator": "eq" },
"v_published_at": { "component": "datetime", "operator": "between" },
"v_published_by": { "component": "input", "operator": "like" }
}
}'
where b_module_id = 'v_wf_definition' and b_schema_type = 'query';
GO
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "unpublished", "label": "未发布", "order": 20,
"conditions": [ { "field": "b_published_at", "operator": "is_null" } ] }
],
"keywordSearch": {
"placeholder": "搜索流程名称、定义编码",
"trigger": "enter_or_debounce",
"fields": ["v_definition_name", "b_definition_id"]
},
"quickFilters": [
{ "field": "b_published_at", "order": 10 },
{ "field": "v_status_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["v_definition_name", "b_definition_id", "v_status_name", "v_node_count"] },
{ "code": "time", "label": "发布时间", "order": 20, "fields": ["b_published_at", "b_published_by"] }
],
"queryFields": {
"b_definition_id": { "component": "input", "operator": "eq" },
"v_definition_name": { "component": "input", "operator": "like" },
"v_status_name": { "component": "select", "operator": "eq" },
"b_published_at": { "component": "datetime", "operator": "between" },
"b_published_by": { "component": "input", "operator": "like" }
}
}'
where b_module_id = 'v_wf_version' and b_schema_type = 'query';
GO
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 }
],
"keywordSearch": {
"placeholder": "搜索模块、流程版本",
"trigger": "enter_or_debounce",
"fields": ["v_module_name", "v_version_name", "b_module_id"]
},
"quickFilters": [
{ "field": "v_event_name", "order": 10 },
{ "field": "v_canuse_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_module_id", "v_module_name", "v_event_name", "v_version_name"] },
{ "code": "state", "label": "状态", "order": 20, "fields": ["v_canuse_name", "b_priority", "b_effective_from", "b_effective_to"] }
],
"queryFields": {
"b_module_id": { "component": "input", "operator": "eq" },
"v_module_name": { "component": "input", "operator": "like" },
"v_event_name": { "component": "select", "operator": "eq" },
"v_version_name": { "component": "input", "operator": "like" },
"v_canuse_name": { "component": "select", "operator": "eq" },
"b_priority": { "component": "number", "operator": "eq" },
"b_effective_from": { "component": "datetime", "operator": "between" },
"b_effective_to": { "component": "datetime", "operator": "between" }
}
}'
where b_module_id = 'v_wf_binding' and b_schema_type = 'query';
GO
update dbo.s_module_schema
set b_schema_json = N'{
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "running", "label": "进行中", "order": 20, "showCount": true,
"conditions": [ { "field": "b_completed_at", "operator": "is_null" } ] },
{ "code": "today", "label": "今天发起", "order": 30,
"conditions": [ { "field": "b_started_at", "operator": "between", "value": { "preset": "today" } } ] }
],
"keywordSearch": {
"placeholder": "搜索业务单号、发起人",
"trigger": "enter_or_debounce",
"fields": ["b_business_no", "v_initiator_name", "b_module_id"]
},
"quickFilters": [
{ "field": "b_started_at", "order": 10 },
{ "field": "v_status_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_business_no", "b_module_id", "b_definition_id", "v_initiator_name"] },
{ "code": "state", "label": "状态与耗时", "order": 20, "fields": ["v_status_name", "v_pending_task_count", "v_duration_minutes"] },
{ "code": "time", "label": "时间", "order": 30, "fields": ["b_started_at", "b_completed_at"] }
],
"queryFields": {
"b_business_no": { "component": "input", "operator": "like" },
"v_initiator_name": { "component": "input", "operator": "like" },
"v_status_name": { "component": "select", "operator": "eq" },
"b_started_at": { "component": "datetime", "operator": "between" },
"b_completed_at": { "component": "datetime", "operator": "between" }
}
}'
where b_module_id = 'v_wf_instance' and b_schema_type = 'query';
GO
+34 -9
View File
@@ -106,7 +106,10 @@ GO
view :{ schemaVersion, columns: [ { field, width } | { type:'group', title, children } ] }
edit :{ schemaVersion, children: [ { field, span, required, readonly, defaultValue }
| { type:'group', ... } ] }
query :{ schemaVersion, groups: [ { conditions: [ { field, operator } ] } ], quick: [field] }
query :{ schemaVersion: 2, defaultViewCode, views: [ { code, label, order, showCount, conditions } ],
keywordSearch: { placeholder, trigger, fields }, quickFilters: [ { field, order } ],
filterGroups: [ { code, label, order, fields } ],
queryFields: { [field]: { component, operator, defaultValue } } }
这些是「系统默认值」;模块管理页面调整会覆盖它们,
用户个人调整另存于 s_user_module_pref。
@@ -122,7 +125,7 @@ values ('v_b_user', 'view', N'{
{ "field": "v_dept_name", "width": 160 },
{ "field": "b_canuse", "width": 90 },
{ "field": "b_logincount", "width": 100 },
{ "field": "b_bz", "width": 200 },
{ "field": "b_bz", "width": 200, "visible": false },
{ "field": "b_updated_at", "width": 170 }
]
}', 1),
@@ -140,14 +143,36 @@ values ('v_b_user', 'view', N'{
]
}', 1),
('v_b_user', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_id", "operator": "like" },
{ "field": "b_name", "operator": "like" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "enabled", "label": "启用", "order": 20, "showCount": true,
"conditions": [ { "field": "b_canuse", "operator": "eq", "value": 1 } ] },
{ "code": "disabled", "label": "停用", "order": 30, "showCount": true,
"conditions": [ { "field": "b_canuse", "operator": "eq", "value": 0 } ] },
{ "code": "recent", "label": "近三个月变更", "order": 40,
"conditions": [ { "field": "b_updated_at", "operator": "between", "value": { "preset": "recent_3_months" } } ] }
],
"quick": ["b_id", "b_name"]
"keywordSearch": {
"placeholder": "搜索账号、姓名",
"trigger": "enter_or_debounce",
"fields": ["b_id", "b_name"]
},
"quickFilters": [
{ "field": "b_updated_at", "order": 10 },
{ "field": "b_canuse", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_id", "b_name", "b_dept_id"] }
],
"queryFields": {
"b_id": { "component": "input", "operator": "like" },
"b_name": { "component": "input", "operator": "like" },
"b_dept_id": { "component": "select", "operator": "eq" },
"b_canuse": { "component": "checkbox", "operator": "eq" },
"b_updated_at": { "component": "datetime", "operator": "between" }
}
}', 1);
GO
+3
View File
@@ -257,6 +257,7 @@ create table dbo.wf_edge (
b_version_id varchar(50) not null, -- 流程版本
b_from_node_key varchar(80) not null, -- 来源节点编码
b_to_node_key varchar(80) not null, -- 目标节点编码
b_name nvarchar(200) null, -- 连线名称(画布标签,留空时前端按条件摘要显示)
b_condition_json nvarchar(max) null, -- 连线条件 AST
b_priority int not null default 0, -- 判断优先级(小的先判断)
b_canuse tinyint not null default 1, -- 是否启用(0/1)
@@ -283,6 +284,8 @@ exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'来源节点
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'wf_edge', @level2type=N'COLUMN', @level2name=N'b_from_node_key';
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'目标节点编码',
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'wf_edge', @level2type=N'COLUMN', @level2name=N'b_to_node_key';
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'连线名称(画布标签,留空时前端按条件摘要显示)',
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'wf_edge', @level2type=N'COLUMN', @level2name=N'b_name';
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'连线条件 AST',
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'wf_edge', @level2type=N'COLUMN', @level2name=N'b_condition_json';
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'判断优先级(小的先判断)',
+41
View File
@@ -0,0 +1,41 @@
/* ============================================================================
wf_edge 增加 b_name(连线名称)
----------------------------------------------------------------------------
背景:设计器要给连线起名(条件分支出线上的「是 / 否」「金额大于 1 万」这类标签),
但 wf_edge 原本没有名称列,属性面板里填的名称没有落点,重开就丢。
wf_node 早就有 b_name,连线补上才对称。
语义:只用于画布标签展示;留空时前端按 b_condition_json 生成摘要显示,
不参与流程执行,也不参与连线条件判断。
历史行保持 NULL:不臆造名称,前端对空值回落成条件摘要。
============================================================================ */
if not exists (
select 1
from sys.columns
where object_id = object_id('dbo.wf_edge')
and name = 'b_name'
)
alter table dbo.wf_edge add b_name nvarchar(200) null;
GO
-- 说明属性(MS_Description):已存在时不重复添加
if not exists (
select 1
from sys.extended_properties
where major_id = object_id('dbo.wf_edge')
and minor_id = columnproperty(object_id('dbo.wf_edge'), 'b_name', 'ColumnId')
and name = N'MS_Description'
)
exec sys.sp_addextendedproperty @name=N'MS_Description', @value=N'连线名称(画布标签,留空时前端按条件摘要显示)',
@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'wf_edge',
@level2type=N'COLUMN', @level2name=N'b_name';
GO
/* 自检 */
select N'wf_edge.b_name' as 项, count(*) as 行数
from sys.columns
where object_id = object_id('dbo.wf_edge')
and name = 'b_name';
GO
+271
View File
@@ -0,0 +1,271 @@
/* ============================================================================
FMS 工作流模拟数据 —— 费用报销审批(expense_approval)
用途:给流程设计器 / 流程管理页造一份「够复杂」的样本,用来测试编辑体验。
不是业务模板,也不代表任何一家公司的真实审批制度。
刻意覆盖到的能力(对照《FMS工作流与审批设计》):
- 7 种节点类型全用到:start / user_task / cc_task / exclusive_gateway
/ parallel_gateway / service_task / end(§4.4)
- 6 种审批方式全用到:single / any / all / serial / n_of_m / percentage(§6.4)
- 条件分支 + 默认出口(§6.5)、并行分支与汇合、抄送节点(§9.9)
- 8 种审批人解析类型中的 5 种:dept_manager / position / org_role / user(§6.6)
- 节点扩展配置:requiredCount(n_of_m)、requiredRatio(percentage)、
formPolicy(只读/必填字段)、dueHours、allowClaim、commentRequired
前置条件:wf_* 表已由 fms_workflow.sql 建好。
使用说明:
1. 执行前先切换到目标数据库(USE FMS)。
2. 本脚本可重复执行:先按流程编码清理本流程的版本/节点/连线/规则,再重建。
3. 只写 wf_definition / wf_version / wf_node / wf_edge / wf_actor_rule;
不写 wf_binding(绑哪个模块是实施决定),也不写任何运行表。
流程走向:
开始 → 部门负责人审批(或签) → 金额判断
├─ 金额 > 10000 → 总经理审批(单人) ┐
└─ 默认出口 ─────────────────────┴→ 财务复核(会签) → 并行分支
├→ 法务串行会签(串行)
├→ 抄送财务总监(抄送,自动完成)
└→ 风控按比例通过(比例 0.6)
↓ 并行汇合
是否超阈值 → 董事长审批(N 人通过,2 人)
├─ 金额 >= 50000 ┘
└─ 默认出口 → 归档 → 结束
============================================================================ */
SET NOCOUNT ON;
declare @def varchar(50) = 'expense_approval';
declare @ver varchar(50) = 'expense_approval_v1';
declare @by varchar(50) = 'g3soft';
declare @now datetime2 = sysdatetime();
/* ----------------------------------------------------------------------------
1. 清理(脚本可重复执行):只动本流程自己的行
---------------------------------------------------------------------------- */
delete from dbo.wf_actor_rule
where b_version_id in (select b_id from dbo.wf_version where b_definition_id = @def);
delete from dbo.wf_edge
where b_version_id in (select b_id from dbo.wf_version where b_definition_id = @def);
delete from dbo.wf_node
where b_version_id in (select b_id from dbo.wf_version where b_definition_id = @def);
delete from dbo.wf_binding
where b_version_id in (select b_id from dbo.wf_version where b_definition_id = @def);
delete from dbo.wf_version where b_definition_id = @def;
delete from dbo.wf_definition where b_id = @def;
/* ----------------------------------------------------------------------------
2. 流程定义 + 版本
b_canvas_json 只放界面布局(节点坐标),不参与执行(§6.2)。
格式与设计器 domain 层约定一致:{ schemaVersion, nodes: { <nodeKey>: {x,y} } }
---------------------------------------------------------------------------- */
insert into dbo.wf_definition (b_id, b_name, b_i18n, b_canuse, b_bz,
b_created_by, b_created_at, b_updated_by, b_updated_at)
values (@def, N'费用报销审批', 'workflow.expense_approval', 1,
N'模拟数据:覆盖条件分支、并行、会签、串行会签、N 人通过、按比例通过与抄送',
@by, @now, @by, @now);
insert into dbo.wf_version (b_id, b_definition_id, b_version_no, b_status, b_schema_version,
b_canvas_json, b_checksum, b_published_by, b_published_at, b_bz,
b_created_by, b_created_at, b_updated_by, b_updated_at)
values (@ver, @def, 1, 'published', 1,
N'{
"schemaVersion": 1,
"nodes": {
"start": { "x": 120, "y": 320 },
"dept_manager": { "x": 320, "y": 320 },
"amount_gateway": { "x": 520, "y": 320 },
"gm_approve": { "x": 720, "y": 180 },
"finance_review": { "x": 920, "y": 320 },
"parallel_split": { "x": 1120, "y": 320 },
"legal_countersign": { "x": 1320, "y": 160 },
"cc_cfo": { "x": 1320, "y": 320 },
"risk_review": { "x": 1320, "y": 480 },
"parallel_join": { "x": 1520, "y": 320 },
"big_amount_gateway":{ "x": 1720, "y": 320 },
"chairman_approve": { "x": 1920, "y": 180 },
"archive": { "x": 2120, "y": 320 },
"end": { "x": 2320, "y": 320 }
}
}',
'mock-checksum-expense_approval_v1', @by, @now, N'模拟数据:已发布版本',
@by, @now, @by, @now);
/* ----------------------------------------------------------------------------
3. 节点(14 个)
b_approval_mode / b_reject_mode / b_due_hours 是常用列;
requiredCount、requiredRatio、formPolicy 等低频配置进 b_config_json(§6.4)。
---------------------------------------------------------------------------- */
insert into dbo.wf_node (b_id, b_version_id, b_node_key, b_name, b_node_type,
b_approval_mode, b_reject_mode, b_due_hours, b_config_json, b_xh, b_canuse)
values
-- 开始
('n_exp_start', @ver, 'start', N'开始', 'start',
null, null, null, null, 10, 1),
-- 部门负责人审批:或签(部门负责人 或 分管副总 任一人通过即可)
('n_exp_dept_manager', @ver, 'dept_manager', N'部门负责人审批', 'user_task',
'any', 'return_initiator', 24,
N'{"schemaVersion":1,"allowInitiator":false,"excludePreviousActors":true,"allowClaim":true,"commentRequired":false,"formPolicy":{"readonly":[],"required":["b_reason"]}}',
20, 1),
-- 条件分支:金额判断
('n_exp_amount_gateway', @ver, 'amount_gateway', N'金额判断', 'exclusive_gateway',
null, null, null, null, 30, 1),
-- 总经理审批:单人
('n_exp_gm_approve', @ver, 'gm_approve', N'总经理审批', 'user_task',
'single', 'terminate', 48,
N'{"schemaVersion":1,"allowInitiator":false,"excludePreviousActors":true,"allowClaim":false,"commentRequired":true,"formPolicy":{"readonly":["b_amount","b_dept_id"],"required":[]}}',
40, 1),
-- 财务复核:会签(全部通过)
('n_exp_finance_review', @ver, 'finance_review', N'财务复核', 'user_task',
'all', 'terminate', 24,
N'{"schemaVersion":1,"allowInitiator":false,"excludePreviousActors":true,"allowClaim":false,"commentRequired":false,"formPolicy":{"readonly":["b_amount"],"required":[]}}',
50, 1),
-- 并行分支
('n_exp_parallel_split', @ver, 'parallel_split', N'并行分支', 'parallel_gateway',
null, null, null, null, 60, 1),
-- 法务串行会签:按 wf_actor_rule.b_priority 逐个激活
('n_exp_legal_countersign', @ver, 'legal_countersign', N'法务串行会签', 'user_task',
'serial', 'return_previous', 72,
N'{"schemaVersion":1,"allowInitiator":false,"excludePreviousActors":true,"allowClaim":false,"commentRequired":true,"formPolicy":{"readonly":[],"required":[]}}',
70, 1),
-- 抄送财务总监:不产生待办,节点激活即完成
('n_exp_cc_cfo', @ver, 'cc_cfo', N'抄送财务总监', 'cc_task',
null, null, null,
N'{"schemaVersion":1,"commentRequired":false}', 80, 1),
-- 风控按比例通过:requiredRatio 在节点激活时换算成应签人数
('n_exp_risk_review', @ver, 'risk_review', N'风控按比例通过', 'user_task',
'percentage', 'terminate', 48,
N'{"schemaVersion":1,"allowInitiator":false,"excludePreviousActors":true,"allowClaim":false,"commentRequired":false,"requiredRatio":0.6,"formPolicy":{"readonly":[],"required":[]}}',
90, 1),
-- 并行汇合
('n_exp_parallel_join', @ver, 'parallel_join', N'并行汇合', 'parallel_gateway',
null, null, null, null, 100, 1),
-- 条件分支:是否超阈值
('n_exp_big_amount_gateway', @ver, 'big_amount_gateway', N'是否超阈值', 'exclusive_gateway',
null, null, null, null, 110, 1),
-- 董事长审批:N 人通过(3 个候选人里 2 人通过即完成)
('n_exp_chairman_approve', @ver, 'chairman_approve', N'董事长审批', 'user_task',
'n_of_m', 'terminate', 72,
N'{"schemaVersion":1,"allowInitiator":false,"excludePreviousActors":true,"allowClaim":false,"commentRequired":true,"requiredCount":2,"formPolicy":{"readonly":[],"required":[]}}',
120, 1),
-- 服务节点:归档(第一阶段只占位,不执行)
('n_exp_archive', @ver, 'archive', N'归档', 'service_task',
null, null, null,
N'{"schemaVersion":1,"serviceKey":"expense_archive"}', 130, 1),
-- 结束
('n_exp_end', @ver, 'end', N'结束', 'end',
null, null, null, null, 140, 1);
/* ----------------------------------------------------------------------------
4. 连线(17 条)
b_condition_json 为 null 表示默认出口;条件分支节点必须至少有一条(§6.5)。
b_priority 小的先判断。
---------------------------------------------------------------------------- */
insert into dbo.wf_edge (b_id, b_version_id, b_from_node_key, b_to_node_key, b_name,
b_condition_json, b_priority, b_canuse, b_bz)
values
('e_exp_01', @ver, 'start', 'dept_manager', null, null, 10, 1, null),
('e_exp_02', @ver, 'dept_manager', 'amount_gateway', null, null, 10, 1, null),
-- 金额判断:> 10000 走总经理,否则直接进财务复核(默认出口)
('e_exp_03', @ver, 'amount_gateway', 'gm_approve', N'金额大于 1 万',
N'{"field":"b_amount","operator":"gt","value":10000}', 10, 1, null),
('e_exp_04', @ver, 'amount_gateway', 'finance_review', N'默认出口', null, 20, 1, N'金额不大于 10000'),
('e_exp_05', @ver, 'gm_approve', 'finance_review', null, null, 10, 1, null),
('e_exp_06', @ver, 'finance_review', 'parallel_split', null, null, 10, 1, null),
-- 并行分支:三条出线同时激活
('e_exp_07', @ver, 'parallel_split', 'legal_countersign', null, null, 10, 1, null),
('e_exp_08', @ver, 'parallel_split', 'cc_cfo', null, null, 20, 1, null),
('e_exp_09', @ver, 'parallel_split', 'risk_review', null, null, 30, 1, null),
-- 并行汇合:三条支线全部到达后才继续
('e_exp_10', @ver, 'legal_countersign', 'parallel_join', null, null, 10, 1, null),
('e_exp_11', @ver, 'cc_cfo', 'parallel_join', null, null, 10, 1, null),
('e_exp_12', @ver, 'risk_review', 'parallel_join', null, null, 10, 1, null),
('e_exp_13', @ver, 'parallel_join', 'big_amount_gateway',null, null, 10, 1, null),
-- 是否超阈值:>= 50000 要董事长,否则直接归档(默认出口)
('e_exp_14', @ver, 'big_amount_gateway','chairman_approve', N'金额大于等于 5 万',
N'{"field":"b_amount","operator":"ge","value":50000}', 10, 1, null),
('e_exp_15', @ver, 'big_amount_gateway','archive', N'默认出口', null, 20, 1, N'金额小于 50000'),
('e_exp_16', @ver, 'chairman_approve', 'archive', null, null, 10, 1, null),
('e_exp_17', @ver, 'archive', 'end', null, null, 10, 1, null);
/* ----------------------------------------------------------------------------
5. 审批人 / 抄送人规则
解析规则执行后必须把规则快照写进运行表(§6.6);这里只配规则本身。
b_priority 既是串行会签的顺序来源,也是同类型规则的判断顺序。
---------------------------------------------------------------------------- */
insert into dbo.wf_actor_rule (b_id, b_version_id, b_node_key, b_actor_type, b_actor_ref,
b_resolve_json, b_condition_json, b_fallback_type, b_fallback_ref,
b_priority, b_canuse, b_bz)
values
-- 部门负责人审批(或签):发起人所属部门负责人 或 分管副总
('r_exp_dm_1', @ver, 'dept_manager', 'dept_manager', null, null, null, 'admin', null, 10, 1, N'发起人或业务归属部门负责人'),
('r_exp_dm_2', @ver, 'dept_manager', 'position', 'vice_president', null, null, 'admin', null, 20, 1, N'分管副总'),
-- 总经理审批(单人)
('r_exp_gm_1', @ver, 'gm_approve', 'position', 'gm', null, null, 'admin', null, 10, 1, N'总经理岗'),
-- 财务复核(会签):两条规则 → 两名审批人都必须通过
('r_exp_fr_1', @ver, 'finance_review', 'org_role', 'finance', null, null, 'admin', null, 10, 1, N'财务组织角色'),
('r_exp_fr_2', @ver, 'finance_review', 'position', 'finance_manager', null, null, 'admin', null, 20, 1, N'财务经理岗'),
-- 法务串行会签(串行):按 priority 10 → 20 → 30 逐个激活
('r_exp_lc_1', @ver, 'legal_countersign', 'org_role', 'legal_lead', null, null, 'admin', null, 10, 1, N'法务负责人(第一个签)'),
('r_exp_lc_2', @ver, 'legal_countersign', 'user', 'U001', null, null, 'admin', null, 20, 1, N'指定用户(第二个签)'),
('r_exp_lc_3', @ver, 'legal_countersign', 'position', 'legal_staff', null, null, 'admin', null, 30, 1, N'法务专员(第三个签)'),
-- 抄送财务总监(抄送):不产生待办
('r_exp_cc_1', @ver, 'cc_cfo', 'org_role', 'cfo', null, null, 'none', null, 10, 1, N'财务总监'),
-- 风控按比例通过(3 名候选人里过 60% → 2 人)
('r_exp_rr_1', @ver, 'risk_review', 'org_role', 'risk', null, null, 'admin', null, 10, 1, N'风控组织角色'),
('r_exp_rr_2', @ver, 'risk_review', 'position', 'risk_manager', null, null, 'admin', null, 20, 1, N'风控经理岗'),
('r_exp_rr_3', @ver, 'risk_review', 'user', 'U002', null, null, 'admin', null, 30, 1, N'指定用户'),
-- 董事长审批(N 人通过,requiredCount = 2)
('r_exp_ca_1', @ver, 'chairman_approve', 'user', 'U001', null, null, 'admin', null, 10, 1, N'候选人一'),
('r_exp_ca_2', @ver, 'chairman_approve', 'user', 'U002', null, null, 'admin', null, 20, 1, N'候选人二'),
('r_exp_ca_3', @ver, 'chairman_approve', 'user', 'U003', null, null, 'admin', null, 30, 1, N'候选人三');
/* ----------------------------------------------------------------------------
6. 自检
---------------------------------------------------------------------------- */
select N'流程定义' as 项, count(*) as 行数 from dbo.wf_definition where b_id = @def
union all
select N'流程版本', count(*) from dbo.wf_version where b_definition_id = @def
union all
select N'节点', count(*) from dbo.wf_node where b_version_id = @ver
union all
select N'连线', count(*) from dbo.wf_edge where b_version_id = @ver
union all
select N'审批人规则', count(*) from dbo.wf_actor_rule where b_version_id = @ver;
+118 -44
View File
@@ -278,20 +278,39 @@ values ('v_wf_definition', 'view', N'{
{ "field": "v_canuse_name", "width": 90 },
{ "field": "v_published_at", "width": 170 },
{ "field": "v_published_by", "width": 110 },
{ "field": "b_bz", "width": 200 }
{ "field": "b_bz", "width": 200, "visible": false }
]
}', 1),
('v_wf_definition', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_name", "operator": "like" },
{ "field": "b_id", "operator": "like" },
{ "field": "v_canuse_name", "operator": "eq" },
{ "field": "v_published_at", "operator": "between" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "recent_published", "label": "近三个月发布", "order": 20,
"conditions": [ { "field": "v_published_at", "operator": "between", "value": { "preset": "recent_3_months" } } ] },
{ "code": "unpublished", "label": "未发布", "order": 30,
"conditions": [ { "field": "v_published_at", "operator": "is_null" } ] }
],
"quick": ["b_name", "b_id"]
"keywordSearch": {
"placeholder": "搜索流程名称、编码",
"trigger": "enter_or_debounce",
"fields": ["b_name", "b_id"]
},
"quickFilters": [
{ "field": "v_published_at", "order": 10 },
{ "field": "v_canuse_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_name", "b_id", "v_canuse_name"] },
{ "code": "time", "label": "发布时间", "order": 20, "fields": ["v_published_at", "v_published_by"] }
],
"queryFields": {
"b_name": { "component": "input", "operator": "like" },
"b_id": { "component": "input", "operator": "like" },
"v_canuse_name": { "component": "select", "operator": "eq" },
"v_published_at": { "component": "datetime", "operator": "between" },
"v_published_by": { "component": "input", "operator": "like" }
}
}', 1);
GO
@@ -299,27 +318,44 @@ insert into dbo.s_module_schema (b_module_id, b_schema_type, b_schema_json, b_ca
values ('v_wf_version', 'view', N'{
"schemaVersion": 1,
"columns": [
{ "field": "b_definition_id", "width": 160 },
{ "field": "b_definition_id", "width": 160, "visible": false },
{ "field": "v_definition_name","width": 200 },
{ "field": "b_version_no", "width": 90 },
{ "field": "v_status_name", "width": 90 },
{ "field": "v_node_count", "width": 90 },
{ "field": "b_published_at", "width": 170 },
{ "field": "b_published_by", "width": 110 },
{ "field": "b_bz", "width": 200 }
{ "field": "b_bz", "width": 200, "visible": false }
]
}', 1),
('v_wf_version', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_definition_id", "operator": "eq" },
{ "field": "v_definition_name","operator": "like" },
{ "field": "v_status_name", "operator": "eq" },
{ "field": "b_published_at", "operator": "between" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "unpublished", "label": "未发布", "order": 20,
"conditions": [ { "field": "b_published_at", "operator": "is_null" } ] }
],
"quick": ["v_definition_name"]
"keywordSearch": {
"placeholder": "搜索流程名称、定义编码",
"trigger": "enter_or_debounce",
"fields": ["v_definition_name", "b_definition_id"]
},
"quickFilters": [
{ "field": "b_published_at", "order": 10 },
{ "field": "v_status_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["v_definition_name", "b_definition_id", "v_status_name", "v_node_count"] },
{ "code": "time", "label": "发布时间", "order": 20, "fields": ["b_published_at", "b_published_by"] }
],
"queryFields": {
"b_definition_id": { "component": "input", "operator": "eq" },
"v_definition_name": { "component": "input", "operator": "like" },
"v_status_name": { "component": "select", "operator": "eq" },
"b_published_at": { "component": "datetime", "operator": "between" },
"b_published_by": { "component": "input", "operator": "like" }
}
}', 1);
GO
@@ -327,28 +363,46 @@ insert into dbo.s_module_schema (b_module_id, b_schema_type, b_schema_json, b_ca
values ('v_wf_binding', 'view', N'{
"schemaVersion": 1,
"columns": [
{ "field": "b_module_id", "width": 160 },
{ "field": "b_module_id", "width": 160, "visible": false },
{ "field": "v_module_name", "width": 180 },
{ "field": "v_event_name", "width": 100 },
{ "field": "v_version_name", "width": 220 },
{ "field": "b_priority", "width": 80 },
{ "field": "v_canuse_name", "width": 90 },
{ "field": "b_effective_from","width": 170 },
{ "field": "b_effective_to", "width": 170 },
{ "field": "b_bz", "width": 200 }
{ "field": "b_effective_to", "width": 170, "visible": false },
{ "field": "b_bz", "width": 200, "visible": false }
]
}', 1),
('v_wf_binding', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_module_id", "operator": "eq" },
{ "field": "v_event_name", "operator": "eq" },
{ "field": "v_version_name","operator": "like" },
{ "field": "v_canuse_name","operator": "eq" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 }
],
"quick": ["b_module_id"]
"keywordSearch": {
"placeholder": "搜索模块、流程版本",
"trigger": "enter_or_debounce",
"fields": ["v_module_name", "v_version_name", "b_module_id"]
},
"quickFilters": [
{ "field": "v_event_name", "order": 10 },
{ "field": "v_canuse_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_module_id", "v_module_name", "v_event_name", "v_version_name"] },
{ "code": "state", "label": "状态", "order": 20, "fields": ["v_canuse_name", "b_priority", "b_effective_from", "b_effective_to"] }
],
"queryFields": {
"b_module_id": { "component": "input", "operator": "eq" },
"v_module_name": { "component": "input", "operator": "like" },
"v_event_name": { "component": "select", "operator": "eq" },
"v_version_name": { "component": "input", "operator": "like" },
"v_canuse_name": { "component": "select", "operator": "eq" },
"b_priority": { "component": "number", "operator": "eq" },
"b_effective_from": { "component": "datetime", "operator": "between" },
"b_effective_to": { "component": "datetime", "operator": "between" }
}
}', 1);
GO
@@ -357,8 +411,8 @@ values ('v_wf_instance', 'view', N'{
"schemaVersion": 1,
"columns": [
{ "field": "b_business_no", "width": 180 },
{ "field": "b_module_id", "width": 150 },
{ "field": "b_definition_id", "width": 160 },
{ "field": "b_module_id", "width": 150, "visible": false },
{ "field": "b_definition_id", "width": 160, "visible": false },
{ "field": "v_initiator_name", "width": 110 },
{ "field": "v_status_name", "width": 100 },
{ "field": "v_pending_task_count", "width": 110 },
@@ -368,16 +422,36 @@ values ('v_wf_instance', 'view', N'{
]
}', 1),
('v_wf_instance', 'query', N'{
"schemaVersion": 1,
"groups": [
{ "conditions": [
{ "field": "b_business_no", "operator": "like" },
{ "field": "v_initiator_name","operator": "like" },
{ "field": "v_status_name", "operator": "eq" },
{ "field": "b_started_at", "operator": "between" }
] }
"schemaVersion": 2,
"defaultViewCode": "all",
"views": [
{ "code": "all", "label": "全部", "order": 10 },
{ "code": "running", "label": "进行中", "order": 20, "showCount": true,
"conditions": [ { "field": "b_completed_at", "operator": "is_null" } ] },
{ "code": "today", "label": "今天发起", "order": 30,
"conditions": [ { "field": "b_started_at", "operator": "between", "value": { "preset": "today" } } ] }
],
"quick": ["b_business_no"]
"keywordSearch": {
"placeholder": "搜索业务单号、发起人",
"trigger": "enter_or_debounce",
"fields": ["b_business_no", "v_initiator_name", "b_module_id"]
},
"quickFilters": [
{ "field": "b_started_at", "order": 10 },
{ "field": "v_status_name", "order": 20 }
],
"filterGroups": [
{ "code": "basic", "label": "基础信息", "order": 10, "fields": ["b_business_no", "b_module_id", "b_definition_id", "v_initiator_name"] },
{ "code": "state", "label": "状态与耗时", "order": 20, "fields": ["v_status_name", "v_pending_task_count", "v_duration_minutes"] },
{ "code": "time", "label": "时间", "order": 30, "fields": ["b_started_at", "b_completed_at"] }
],
"queryFields": {
"b_business_no": { "component": "input", "operator": "like" },
"v_initiator_name": { "component": "input", "operator": "like" },
"v_status_name": { "component": "select", "operator": "eq" },
"b_started_at": { "component": "datetime", "operator": "between" },
"b_completed_at": { "component": "datetime", "operator": "between" }
}
}', 1);
GO