diff --git a/code/fms/FMS新系统核心表结构设计.md b/code/fms/FMS新系统核心表结构设计.md index 3461277f..86ebbcbe 100644 --- a/code/fms/FMS新系统核心表结构设计.md +++ b/code/fms/FMS新系统核心表结构设计.md @@ -192,6 +192,8 @@ create table s_field_group ( b_parent_id bigint null, -- 父分组(分组树) b_title nvarchar(100) not null, -- 分组标题 b_i18n varchar(150) null, -- 标题多语言 key + b_layout_direction varchar(10) null, -- 分组内字段排列方向(vertical/horizontal) + b_colspan int not null default 48, -- 分组在外层 48 宫格中的占格数(默认 48 独占一行) b_xh int not null default 0, -- 分组排序 b_canuse int not null default 1, -- 是否启用(停用整组隐藏) constraint pk_s_field_group primary key (b_id), diff --git a/code/fms/fms-api/config/migrations/042_add_group_colspan_and_drop_edit_check.sql b/code/fms/fms-api/config/migrations/042_add_group_colspan_and_drop_edit_check.sql new file mode 100644 index 00000000..39bd8083 --- /dev/null +++ b/code/fms/fms-api/config/migrations/042_add_group_colspan_and_drop_edit_check.sql @@ -0,0 +1,34 @@ +/* + 表单设计器分组宽度持久化: + 1. s_field_group.b_colspan —— 分组在外层 48 宫格中的占格数(默认 48 独占一行)。 + 与 s_field_edit.b_colspan 同义(栅格占格数),仅进制不同:分组 48 宫格、字段 24 宫格。 + 不加 CHECK 约束(与前端钳制逻辑一致,边界由应用层保证)。 + 2. 删除 s_field_edit 的 CK_s_field_edit_colspan CHECK 约束(b_colspan BETWEEN 1 AND 24), + 放开栅格宽度的数据库层限制,校验统一交由前端与应用层。 + 可重复执行:列与约束均通过存在性判断避免重复。 +*/ +SET NOCOUNT ON; + +-- 1. s_field_group.b_colspan +IF NOT EXISTS ( + SELECT 1 + FROM sys.columns + WHERE object_id = OBJECT_ID(N'dbo.s_field_group') + AND name = N'b_colspan' +) +BEGIN + ALTER TABLE dbo.s_field_group + ADD b_colspan int NOT NULL CONSTRAINT DF_s_field_group_colspan DEFAULT (48); +END; + +-- 2. 删除 s_field_edit 的 CK_s_field_edit_colspan CHECK 约束 +IF EXISTS ( + SELECT 1 + FROM sys.check_constraints + WHERE parent_object_id = OBJECT_ID(N'dbo.s_field_edit') + AND name = N'CK_s_field_edit_colspan' +) +BEGIN + ALTER TABLE dbo.s_field_edit + DROP CONSTRAINT CK_s_field_edit_colspan; +END; diff --git a/code/fms/fms-api/config/migrations/100_initialize_fms_new.sql b/code/fms/fms-api/config/migrations/100_initialize_fms_new.sql index 79f9d8b1..f3974a1c 100644 --- a/code/fms/fms-api/config/migrations/100_initialize_fms_new.sql +++ b/code/fms/fms-api/config/migrations/100_initialize_fms_new.sql @@ -133,6 +133,7 @@ BEGIN b_title nvarchar(100) NOT NULL, b_i18n varchar(150) NULL, b_layout_direction varchar(10) NULL CONSTRAINT DF_s_field_group_layout_direction DEFAULT ('vertical'), + b_colspan int NOT NULL CONSTRAINT DF_s_field_group_colspan DEFAULT (48), b_xh int NOT NULL CONSTRAINT DF_s_field_group_xh DEFAULT (0), b_canuse int NOT NULL CONSTRAINT DF_s_field_group_canuse DEFAULT (1), CONSTRAINT PK_s_field_group PRIMARY KEY (b_id), @@ -178,7 +179,6 @@ BEGIN b_xh int NOT NULL CONSTRAINT DF_s_field_edit_xh DEFAULT (0), CONSTRAINT PK_s_field_edit PRIMARY KEY (b_id), CONSTRAINT UQ_s_field_edit_field UNIQUE (b_module_id, b_field_id), - CONSTRAINT CK_s_field_edit_colspan CHECK (b_colspan BETWEEN 1 AND 24), CONSTRAINT CK_s_field_edit_height CHECK (b_height IS NULL OR (b_height BETWEEN 64 AND 480)) ); CREATE INDEX IX_s_field_edit_order ON dbo.s_field_edit (b_xh, b_id); diff --git a/code/fms/fms-vue/src/components/FpsMonitor.vue b/code/fms/fms-vue/src/components/FpsMonitor.vue index 4c4e8f5f..b266472a 100644 --- a/code/fms/fms-vue/src/components/FpsMonitor.vue +++ b/code/fms/fms-vue/src/components/FpsMonitor.vue @@ -100,6 +100,23 @@ const rootEl = ref(null) const pos = ref(null) let dragStart = null // { pointerX, pointerY, originX, originY, width, height } +/* ---------- 双击隐藏(也可由父级通过 ref 调 show/hide 控制显隐) ---------- */ +const visible = ref(true) + +function onDblClick() { + visible.value = false +} + +function show() { + visible.value = true +} + +function hide() { + visible.value = false +} + +defineExpose({ show, hide }) + function onPointerDown(e) { // 重置按钮的点击不触发拖拽 if (e.target.closest('.fps-monitor__reset')) return @@ -148,6 +165,7 @@ onBeforeUnmount(() => {