From 00ead01cb8550da7d82393cb8f4ccf1924b6f03a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=AD=A3=E8=88=AA?= <1915581435@qq.com> Date: Fri, 1 May 2026 16:59:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=89=B9=E9=87=8F=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=B8=8A=E4=BC=A0TXT=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增文件选择功能,支持TXT格式 - 自动读取文件内容并逐行拆解 - 显示已选文件名和文本条数 - 保留手动输入方式作为备选 Co-Authored-By: Claude Opus 4.6 --- miniprogram/pages/batch/index.js | 39 ++++++++++++++++++++++++++++++ miniprogram/pages/batch/index.wxml | 30 +++++++++++++++++++---- 2 files changed, 64 insertions(+), 5 deletions(-) diff --git a/miniprogram/pages/batch/index.js b/miniprogram/pages/batch/index.js index a1b9c1c..dda7ece 100644 --- a/miniprogram/pages/batch/index.js +++ b/miniprogram/pages/batch/index.js @@ -3,6 +3,8 @@ const { request } = require('../../utils/request') Page({ data: { inputText: '', + fileName: '', + lineCount: 0, loading: false, summary: null, items: [] @@ -24,6 +26,43 @@ Page({ .filter((line) => line.length >= 2) }, + chooseFile() { + wx.chooseMessageFile({ + count: 1, + type: 'file', + extension: ['txt'], + success: (res) => { + const file = res.tempFiles[0] + const fs = wx.getFileSystemManager() + + try { + const content = fs.readFileSync(file.path, 'utf8') + const lines = content + .split('\n') + .map((line) => line.trim()) + .filter((line) => line.length >= 2) + + this.setData({ + inputText: lines.join('\n'), + fileName: file.name, + lineCount: lines.length + }) + + wx.showToast({ title: `已读取 ${lines.length} 条文本`, icon: 'success' }) + } catch (err) { + console.error('读取文件失败', err) + wx.showToast({ title: '文件读取失败', icon: 'none' }) + } + }, + fail: (err) => { + console.error('选择文件失败', err) + if (err.errMsg !== 'chooseMessageFile:fail cancel') { + wx.showToast({ title: '请选择TXT文件', icon: 'none' }) + } + } + }) + }, + async submit() { if (this.data.loading) return const items = this.parseLines() diff --git a/miniprogram/pages/batch/index.wxml b/miniprogram/pages/batch/index.wxml index 1193072..ba3f31e 100644 --- a/miniprogram/pages/batch/index.wxml +++ b/miniprogram/pages/batch/index.wxml @@ -2,17 +2,37 @@ BATCH SCAN 批量文本筛查 - 每行一条文本,适用于活动文案、客服话术、私信模板的集中检测。 + 上传TXT文件或手动输入,每行一条文本,系统自动逐行检测。 - 批量输入 - 请按“每行一条”粘贴文本内容,系统会自动跳过空行。 + 上传文件 + 支持TXT文本文件,每行一条待检测内容。 + + + + + + + + 已选文件 + {{fileName}} + + + 文本条数 + {{lineCount}} 条 + + + + + + 手动输入 + 或直接粘贴文本内容,每行一条。