From 807abe0a0ad27a1c1670b2f512a5d54063a7a358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=92=96=E5=95=A1=E5=85=AB=E6=9D=AF?= <2062008467@qq.com> Date: Wed, 30 Sep 2026 13:49:36 +0800 Subject: [PATCH] 1.0.3 --- plugins/easytable/CHANGELOG.md | 28 ++ plugins/easytable/README.md | 26 +- plugins/easytable/index.png | Bin 13583 -> 45644 bytes plugins/easytable/indx.png | Bin 45644 -> 0 bytes plugins/easytable/package.json | 5 +- plugins/easytable/scripts/make-logo.py | 91 ---- plugins/easytable/scripts/test-codec.mjs | 133 ------ plugins/easytable/src-ztools/plugin.json | 2 +- .../easytable/src-ztools/preload/services.js | 6 +- plugins/easytable/src/App.vue | 28 +- .../src/components/FieldManagerDialog.vue | 214 +++++++++- .../easytable/src/components/ImportDialog.vue | 17 +- .../easytable/src/components/QuickRecord.vue | 37 +- .../src/components/RowFormDrawer.vue | 51 ++- .../easytable/src/components/TableView.vue | 388 ++++++++++++++---- plugins/easytable/src/composables/useStore.ts | 15 + .../easytable/src/domain/codec/tableCodec.ts | 7 +- plugins/easytable/src/domain/fieldTypes.ts | 111 +++++ plugins/easytable/src/domain/filters.ts | 164 ++++++++ plugins/easytable/src/types/table.ts | 42 +- 20 files changed, 953 insertions(+), 412 deletions(-) delete mode 100644 plugins/easytable/indx.png delete mode 100644 plugins/easytable/scripts/make-logo.py delete mode 100644 plugins/easytable/scripts/test-codec.mjs create mode 100644 plugins/easytable/src/domain/filters.ts diff --git a/plugins/easytable/CHANGELOG.md b/plugins/easytable/CHANGELOG.md index f7847f4e4..9ba4f0f09 100644 --- a/plugins/easytable/CHANGELOG.md +++ b/plugins/easytable/CHANGELOG.md @@ -1,5 +1,33 @@ # Changelog +## 1.0.3 - 2026-09-30 + +### Added + +- 字段类型改成「单选 / 多选」时自动收集已有取值:切换类型后弹确认框列出将加入的选项,选「加入」即写入选项,老数据的值当场就能在下拉框里选到 +- 表设置的选项输入框下新增「从已有数据收集」:数据是后来导入或别处写入的,也能一键把新取值补进选项 +- 单选 / 多选下拉一律显示「已配置选项 + 已有数据里出现过的值」——编辑记录、记一笔、筛选「属于选项」三个入口都不会再出现「值在表里、下拉里选不到」 + +### Fixed + +- 改字段类型后已有数据没有按新类型转换(类型变更确认框写了「会尽量转换」,实际从未执行):文本改多选/列表后单元格显示为空、改数字/日期后残留原字符串 +- 「已回填 N 条记录」中的 N 是表内总行数,不是真正被回填的行数 + +## 1.0.2 - 2026-09-24 + +### Added + +- 新增「行高样式」开关:「⋯ 更多」菜单里可选「固定行高(超出省略)」与「自适应行高(随内容撑高)」两种样式,当前样式带 ✓ 标记,选择即生效并持久保存(默认固定行高) +- 高级筛选:升级为 AND 条件组,可添加多条条件自由组合;每个字段支持「为空 / 不为空」,单选/多选支持「属于选项」,文本/链接/数字支持「包含关键词」 +- 时间筛选:创建时间 / 修改时间 / 日期字段支持「今天 / 本周 / 本月」(周一起始);筛选面板顶部提供「本周创建」「本月创建」「今天更新」「本周更新」快捷按钮(点击切换) +- 组合场景:如「复制本周创建的、链接为空的数据」——添加两条条件后,不勾选行直接「导出 → 复制到 Excel」即可复制筛选结果 +- 字段默认值:表设置里可为每个字段配置默认值,新增/记一笔/导入时自动预填;新增字段设置了默认值时,可选择是否回填到已有记录(回填只补缺失行,不覆盖已有值) + +### Changed + +- 「新建表」从表切换下拉后的文字按钮改为工具栏左上角第一个按钮(primary plain 样式),更醒目、更好找 +- 筛选面板加宽至 360px,显示激活条件数(筛选 · N);切换表格时清空筛选条件 + ## 1.0.1 - 2026-09-22 ### Added diff --git a/plugins/easytable/README.md b/plugins/easytable/README.md index 422cb7f8f..067ca2123 100644 --- a/plugins/easytable/README.md +++ b/plugins/easytable/README.md @@ -6,15 +6,17 @@ ## 更新日志 -### v1.0.1 - 2026-09-22 -- 修复:导入 400+ 条从卡半分钟降到秒级(preload bulkDocs) -- 修复:导入对话框加入 loading 反馈 -- 修复:导入 JSON 备份时整段加全屏 loading -- 修复:列表不能上下滚动 -- 新增:更多菜单加入「清空当前表(仅记录)」,两段确认 + 全屏 loading - -### v1.0.0 - 2026-09-22 -- 首次发布:多表自定义字段、记一笔快捷录入、TSV 复制到 Excel、CSV/JSON 导入导出 +### v1.0.3 - 2026-09-30 +- 修复:字段从文本改成单选/多选后,已有数据里的值不会出现在下拉框里。现在改类型时会询问「是否把已有取值收进选项」,也可在表设置的选项框下点「从已有数据收集」补收;所有单选/多选下拉都会显示表里已经出现过的值 +- 修复:改字段类型后已有数据未按新类型转换(文本改多选/列表后单元格空白、改数字/日期残留旧字符串) +- 修复:「已回填 N 条记录」的条数显示(原来把表内总行数当成了回填条数) + +### v1.0.2 - 2026-09-24 +- 新增:行高样式开关,可在「固定行高(超出省略)」与「自适应行高(随内容撑高)」间切换 +- 变更:「新建表」按钮移到工具栏左上角第一个位置 +- 新增:高级筛选(AND 条件组),支持为空/不为空、包含、属于选项、今天/本周/本月 +- 新增:筛选快捷按钮(本周创建 / 本月创建 / 今天更新 / 本周更新) +- 新增:字段默认值,新增记录自动预填;新增字段可选回填已有记录 ## 这是什么? @@ -45,8 +47,10 @@ - **多张表**:下拉切换;新建表后可自定义字段 - **字段类型**:文本、长文本、列表、单选、多选/标签、链接、数字、日期、是否 -- **表设置**:改表名、字段、显示创建时间/修改时间 -- **查找**:搜索、按标签/模块筛选、点列头排序 +- **表设置**:改表名、字段、显示创建时间/修改时间;单选/多选可从已有数据一键收集选项 +- **查找**:搜索、高级筛选(为空/不为空、包含、选项、今天/本周/本月,可组合)、点列头排序 +- **字段默认值**:表设置里配置,新增记录自动预填;新增字段可回填已有记录 +- **选项自动收集**:字段改成单选/多选时自动把已有取值收进选项;下拉框始终包含表里出现过的值 - **系统列**:创建时间、修改时间(只读,可排序、可导出) - **本地保存**:数据存在本机,不联网;请用 JSON 备份做迁移 diff --git a/plugins/easytable/index.png b/plugins/easytable/index.png index b61d53aea1c15ec6d710b8912c33b9efb4d44305..db58a4aaafc320292f9edd5064f4c435eda636bb 100644 GIT binary patch literal 45644 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 NH!9l7Fh!fN{{sRG&0hcj diff --git a/plugins/easytable/indx.png b/plugins/easytable/indx.png deleted file mode 100644 index db58a4aaafc320292f9edd5064f4c435eda636bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45644 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 Image.Image: - S = size / 1024 - img = Image.new("RGBA", (size, size), TRANSPARENT) - d = ImageDraw.Draw(img) - - # 外层圆角方垫(便于在深浅底上识别) - pad = int(64 * S) - rounded_rect(d, (pad, pad, size - pad, size - pad), int(220 * S), IVORY, IVORY_EDGE, int(10 * S)) - - # 卡片 - card_l, card_t = int(220 * S), int(210 * S) - card_r, card_b = int(820 * S), int(780 * S) - rounded_rect(d, (card_l, card_t, card_r, card_b), int(48 * S), (255, 255, 255, 255), INK, int(18 * S)) - - # 三条记录线 - line_x1 = int(300 * S) - line_x2 = int(720 * S) - line_ys = (int(340 * S), int(460 * S), int(580 * S)) - widths = (int(28 * S), int(28 * S), int(28 * S)) - radii = (int(14 * S), int(14 * S), int(14 * S)) - # 前两行短一点,第三行更短,像未写完的记录 - rights = (line_x2, line_x2 - int(40 * S), line_x2 - int(120 * S)) - for y, w, r, x2 in zip(line_ys, widths, radii, rights): - rounded_rect(d, (line_x1, y - w // 2, x2, y + w // 2), r, INK_SOFT) - - # 左侧小勾选点(每行行首) - for y in line_ys: - cx, cy = int(270 * S), y - rr = int(14 * S) - d.ellipse((cx - rr, cy - rr, cx + rr, cy + rr), fill=INK) - - # 右下角勾选徽章 - bx, by = int(740 * S), int(700 * S) - br = int(110 * S) - d.ellipse((bx - br, by - br, bx + br, by + br), fill=CORAL, outline=CORAL_DEEP, width=int(10 * S)) - # 对勾(两段折线,圆角感用粗线) - check = [ - (bx - int(48 * S), by + int(4 * S)), - (bx - int(12 * S), by + int(40 * S)), - (bx + int(52 * S), by - int(36 * S)), - ] - d.line(check, fill=(255, 255, 255, 255), width=int(28 * S), joint="curve") - # 线头圆帽 - r_cap = int(14 * S) - for x, y in check: - d.ellipse((x - r_cap, y - r_cap, x + r_cap, y + r_cap), fill=(255, 255, 255, 255)) - - return img - - -def main() -> None: - OUT_ICON.parent.mkdir(parents=True, exist_ok=True) - icon = draw_logo(1024) - icon.save(OUT_ICON, "PNG") - icon.resize((256, 256), Image.Resampling.LANCZOS).save(OUT_256, "PNG") - print("wrote", OUT_ICON) - print("wrote", OUT_256) - - -if __name__ == "__main__": - main() diff --git a/plugins/easytable/scripts/test-codec.mjs b/plugins/easytable/scripts/test-codec.mjs deleted file mode 100644 index 10a457772..000000000 --- a/plugins/easytable/scripts/test-codec.mjs +++ /dev/null @@ -1,133 +0,0 @@ -// 编解码往返测试(node 直跑,不依赖 DOM) -// 用法: node scripts/test-codec.mjs - -import { encodeCell, encodeRow, encodeTable, parseDelimited, encodeCsv, parseCsv, parseTsv } from '../src/domain/codec/tsv.ts' -import { - rowsToTsv, - parseImportText, - splitMulti, - mapRowValues, - autoColumnMap, - formatCell -} from '../src/domain/codec/tableCodec.ts' -import { toBackup, serializeBackup, parseBackup } from '../src/domain/codec/jsonBackup.ts' -import { coerceFieldValue, defaultValue, displayValue } from '../src/domain/fieldTypes.ts' - -let pass = 0 -let fail = 0 -function assert(name, cond, detail) { - if (cond) { - pass += 1 - console.log('PASS', name) - } else { - fail += 1 - console.error('FAIL', name, detail ?? '') - } -} -function assertEq(name, a, b) { - assert(name, JSON.stringify(a) === JSON.stringify(b), `got=${JSON.stringify(a)} expected=${JSON.stringify(b)}`) -} - -// --- cell encode --- -assertEq('empty cell', encodeCell(''), '') -assertEq('plain cell', encodeCell('成绩管理'), '成绩管理') -assertEq('quote cell', encodeCell('a"b'), '"a""b"') -assertEq('tab cell', encodeCell('a\tb'), '"a\tb"') -assertEq('newline cell', encodeCell('a\nb'), '"a\nb"') -assertEq('chinese', encodeCell('标签、中文'), '标签、中文') - -// --- roundtrip cells --- -const tricky = ['', '普通', '含\t制表', '含\n换行', '含"引号"', 'a""b', '#125189', 'https://x.com/?a=1&b=2', 'v1、成绩录入、成绩标记'] -const rowStr = encodeRow(tricky) -const parsedRow = parseDelimited(rowStr)[0] -assertEq('roundtrip row cells', parsedRow, tricky) - -// --- multi rows --- -const matrix = [ - ['pm号', '模块', '标签', '笔记链接'], - ['#125189', '成绩管理', 'v1、成绩录入', ''], - ['#103313', '成绩管理', 'v1', 'https://a.com/x'], - ['含\t与"混', '模\n块', 'a、b', ''] -] -const tsv = encodeTable(matrix) -assertEq('roundtrip matrix tsv', parseTsv(tsv), matrix) -const csv = encodeCsv(matrix) -assertEq('roundtrip matrix csv', parseCsv(csv), matrix) - -// --- splitMulti --- -assertEq('split 、', splitMulti('v1、成绩录入、成绩标记'), ['v1', '成绩录入', '成绩标记']) -assertEq('split ,', splitMulti('a, b ,c'), ['a', 'b', 'c']) -assertEq('split ,', splitMulti('x,y'), ['x', 'y']) -assertEq('split |', splitMulti('x|y'), ['x', 'y']) -assertEq('url intact', splitMulti('https://a.com/b/c'), ['https://a.com/b/c']) -assertEq('empty multi', splitMulti(' '), []) -assertEq('mixed seps', splitMulti('v1, v2|v3、v4'), ['v1', 'v2', 'v3', 'v4']) - -// --- field coerce --- -assertEq('coerce number', coerceFieldValue({ id: '1', name: 'n', type: 'number' }, '1,234'), 1234) -assertEq('coerce date', coerceFieldValue({ id: '1', name: 'd', type: 'date' }, '2026/9/3'), '2026-09-03') -assertEq('coerce checkbox', coerceFieldValue({ id: '1', name: 'c', type: 'checkbox' }, '是'), true) -assertEq('coerce multi', coerceFieldValue({ id: '1', name: 'm', type: 'list' }, 'a、b,c'), ['a', 'b', 'c']) - -// --- fields + rows export --- -const fields = [ - { id: 'f1', name: 'pm号', type: 'text' }, - { id: 'f2', name: '模块', type: 'select', options: ['成绩管理'] }, - { id: 'f3', name: '标签', type: 'multi_select', options: [] }, - { id: 'f4', name: '笔记链接', type: 'url' } -] -const rows = [ - { - id: 'r1', - tableId: 't1', - createdAt: 1, - updatedAt: 1, - values: { f1: '#125189', f2: '成绩管理', f3: ['v1', '成绩录入', '成绩标记'], f4: '' } - }, - { - id: 'r2', - tableId: 't1', - createdAt: 2, - updatedAt: 2, - values: { f1: '#103313', f2: '成绩管理', f3: ['v1', '学生端', '成绩查询'], f4: 'https://n.com/1' } - } -] -const outTsv = rowsToTsv(fields, rows) -const back = parseImportText(outTsv) -assertEq('export headers', back.headers, ['pm号', '模块', '标签', '笔记链接']) -assertEq('export row0 tags', back.dataRows[0][2], 'v1、成绩录入、成绩标记') -assertEq('export data rows', back.dataRows.length, 2) - -const cmap = autoColumnMap(fields, back.headers) -assertEq('auto map', cmap, { 0: 'f1', 1: 'f2', 2: 'f3', 3: 'f4' }) -const mapped = mapRowValues(fields, back.headers, back.dataRows[0], cmap) -assertEq('map tags back', mapped.f3, ['v1', '成绩录入', '成绩标记']) -assertEq('map pm', mapped.f1, '#125189') - -// --- JSON backup roundtrip --- -const schema = { - id: 't1', - name: '工作记录', - fields, - createdAt: 1, - updatedAt: 2 -} -const backup = toBackup([schema], { t1: rows }, '、') -const restored = parseBackup(serializeBackup(backup)) -assertEq('backup tables', restored.tables.length, 1) -assertEq('backup rows', restored.tables[0].rows.length, 2) -assertEq('backup fields', restored.tables[0].schema.fields.length, 4) - -// --- display --- -assertEq('display multi', formatCell(fields[2], ['a', 'b']), 'a、b') -assertEq('display empty multi', formatCell(fields[2], []), '') -assertEq('default multi', defaultValue('multi_select'), []) -assertEq('display checkbox true', displayValue({ id: 'x', name: 'c', type: 'checkbox' }, true), '是') - -// --- empty / edge import --- -assertEq('parse empty', parseImportText(''), { headers: [], dataRows: [] }) -const onlyHeader = parseImportText('a\tb\n') -assertEq('only header', onlyHeader.dataRows.length, 0) - -console.log(`\nResult: ${pass} passed, ${fail} failed`) -if (fail > 0) process.exit(1) diff --git a/plugins/easytable/src-ztools/plugin.json b/plugins/easytable/src-ztools/plugin.json index 37d54e03c..dd0aaeabc 100644 --- a/plugins/easytable/src-ztools/plugin.json +++ b/plugins/easytable/src-ztools/plugin.json @@ -4,7 +4,7 @@ "title": "简单记录", "description": "自定义字段的简单记录表:文本/标签/单选等,一键复制到 Excel,支持 CSV/JSON 导入导出", "author": "咖啡八杯", - "version": "1.0.1", + "version": "1.0.3", "categories": ["productivity"], "main": "dist/index.html", "preload": "preload/services.js", diff --git a/plugins/easytable/src-ztools/preload/services.js b/plugins/easytable/src-ztools/preload/services.js index 50cf5c6cc..4b290cef5 100644 --- a/plugins/easytable/src-ztools/preload/services.js +++ b/plugins/easytable/src-ztools/preload/services.js @@ -208,7 +208,8 @@ window.services = { tables: meta.tables, activeTableId: meta.activeTableId || (meta.tables[0] && meta.tables[0].id) || '', multiSeparator: meta.multiSeparator || '、', - quickTableId: meta.quickTableId || '' + quickTableId: meta.quickTableId || '', + rowHeightMode: meta.rowHeightMode === 'auto' ? 'auto' : 'fixed' } } } catch (e) {} @@ -221,7 +222,8 @@ window.services = { tables: (meta && meta.tables) || [], activeTableId: (meta && meta.activeTableId) || '', multiSeparator: (meta && meta.multiSeparator) || '、', - quickTableId: (meta && meta.quickTableId) || '' + quickTableId: (meta && meta.quickTableId) || '', + rowHeightMode: meta && meta.rowHeightMode === 'auto' ? 'auto' : 'fixed' } window.ztools.dbStorage.setItem(META_KEY, JSON.stringify(next)) return next diff --git a/plugins/easytable/src/App.vue b/plugins/easytable/src/App.vue index 6685c578e..9c599db53 100644 --- a/plugins/easytable/src/App.vue +++ b/plugins/easytable/src/App.vue @@ -1,13 +1,23 @@