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}}