From fa492ac3f8900364f4e8338c7339d85444d356f8 Mon Sep 17 00:00:00 2001 From: "douboer@gmail.com" Date: Fri, 13 Feb 2026 23:03:33 +0800 Subject: [PATCH] update at 2026-02-13 23:03:33 --- miniapp/pages/index/index.js | 30 ++++++++++++++++++++++++------ miniapp/pages/index/index.wxml | 10 +++++----- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/miniapp/pages/index/index.js b/miniapp/pages/index/index.js index 93a1d28..255e6a5 100644 --- a/miniapp/pages/index/index.js +++ b/miniapp/pages/index/index.js @@ -203,6 +203,24 @@ function getThemeListScrollTopByIndex(index, totalCount) { return safeIndex * THEME_ROW_HEIGHT_PX; } +/** + * 将列索引数组归一化为升序数字数组,避免数字/字符串混用导致 UI 判断失效。 + */ +function normalizeColumnIndexArray(indices) { + const source = Array.isArray(indices) ? indices : []; + const uniqueMap = {}; + source.forEach((item) => { + const numeric = Number(item); + if (!Number.isNaN(numeric) && Number.isFinite(numeric)) { + uniqueMap[numeric] = true; + } + }); + + return Object.keys(uniqueMap) + .map((item) => Number(item)) + .sort((a, b) => a - b); +} + /** * 统一错误文案: * - xlsx 解析能力缺失时,固定提示用户去“构建 npm” @@ -957,11 +975,11 @@ Page({ if (Number.isNaN(index)) { return; } - const current = this.data.sourceDescriptionColumns || []; + const current = normalizeColumnIndexArray(this.data.sourceDescriptionColumns); const exists = current.indexOf(index) >= 0; const next = exists ? current.filter((item) => item !== index) - : current.concat(index).sort((a, b) => a - b); + : normalizeColumnIndexArray(current.concat(index)); this.setData( { sourceDescriptionColumns: next @@ -977,11 +995,11 @@ Page({ if (Number.isNaN(index)) { return; } - const current = this.data.targetDescriptionColumns || []; + const current = normalizeColumnIndexArray(this.data.targetDescriptionColumns); const exists = current.indexOf(index) >= 0; const next = exists ? current.filter((item) => item !== index) - : current.concat(index).sort((a, b) => a - b); + : normalizeColumnIndexArray(current.concat(index)); this.setData( { targetDescriptionColumns: next @@ -1021,8 +1039,8 @@ Page({ }, { sourceDataColumn: this.data.sourceDataColumn, - sourceDescriptionColumns: this.data.sourceDescriptionColumns || [], - targetDescriptionColumns: this.data.targetDescriptionColumns || [], + sourceDescriptionColumns: normalizeColumnIndexArray(this.data.sourceDescriptionColumns), + targetDescriptionColumns: normalizeColumnIndexArray(this.data.targetDescriptionColumns), delimiter: '-' } ); diff --git a/miniapp/pages/index/index.wxml b/miniapp/pages/index/index.wxml index 4a8ed45..49c8dcd 100644 --- a/miniapp/pages/index/index.wxml +++ b/miniapp/pages/index/index.wxml @@ -106,7 +106,7 @@ - + {{item}} @@ -128,12 +128,12 @@ - + {{item}} @@ -150,12 +150,12 @@ - + {{item}}