mirror of
https://github.com/primedigitaltech/azon_seeker.git
synced 2026-01-28 01:43:29 +08:00
2.9 KiB
2.9 KiB
MulInputModal.vue 修改计划
目标
修改 src/sidepanel/views/components/MulInputModal.vue 组件,使其支持从 Excel 复制一列值粘贴到输入框,并提供格式验证和确认后的消息通知。
需求详情
- 输入格式:每行一个值(换行分隔),不允许空行。
- 实时验证:在用户输入时检查格式是否正确,并给出提示。
- 确认通知:点击确认按钮后,显示 n-message 通知成功或失败。
当前组件分析
当前组件是一个简单的模态对话框,包含一个文本区域输入框。它通过 v-model:show-modal 控制显示,但没有处理输入值或验证逻辑。
设计修改
1. 模板修改
- 保留现有的
n-modal和n-dialog结构。 - 修改
n-dialog属性:- 移除
content属性(因为其内容与功能不符)。 - 动态设置确认按钮的文本和状态:格式正确时显示“确认”,格式错误时显示“格式错误”并禁用按钮。
- 移除
- 增强
n-input:- 添加
placeholder提示用户粘贴格式。 - 设置
autosize适应多行内容。 - 绑定
v-model:value到本地输入文本。
- 添加
- 添加验证提示区域:
- 显示验证状态消息(成功/错误)。
- 显示行数统计。
2. 脚本修改
- 导入必要的 Vue 和 Naive UI API。
- 定义模型:
showModal:控制模态框显示。modelValue:可选,用于双向绑定关键词数组(字符串数组)。
- 定义本地响应式数据:
inputText:文本区域的绑定值。
- 计算属性
validation:- 根据输入文本实时验证格式。
- 返回
valid、lines(非空行数组)、message。
- 验证规则:
- 输入不能为空(去除首尾空格后)。
- 不允许空行(任何一行 trim 后为空即无效)。
- 检测制表符(警告用户可能粘贴了多列)。
- 确认处理函数
handleConfirm:- 检查验证结果,如果无效则显示错误消息并返回。
- 如果有效,更新
modelValue,发出confirm事件,显示成功消息,关闭模态框。
- 初始化:当
modelValue变化时,将数组转换为换行分隔的文本并填充到输入框。
3. 样式修改
- 添加验证提示区域的样式,根据状态改变颜色。
- 调整布局间距。
代码草案
向后兼容性
- 添加的
modelValue模型为可选,不影响现有使用(父组件可以不传递)。 - 现有的
showModal模型保持不变。 - 新增的
confirm事件可选,父组件可以监听以获取导入的行。
测试计划
- 手动测试从 Excel 复制一列值并粘贴到输入框。
- 验证实时提示是否正确显示。
- 测试确认按钮在格式正确/错误时的行为。
- 测试 n-message 通知是否正常弹出。
下一步
完成详细设计后,切换到 Code 模式实施修改。