## 任务目标
请在真实 Vue 工程中完成选定范围的结构、组件和编码规范重构,交付实际代码及验证结果。先读取工程;能从代码确认的信息不重复询问。资料缺失时标明事实与假设,只对阻断实施的关键项提问,其余授权工作继续完成。
在现有授权范围内完成实际改动和验证;缺少外部条件时先完成可独立实现的部分,不能只停留在计划。
## 输入信息(选填)
两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。
重构对象:
工程或代码资料:
## 信息不完整时
先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。
### 优先确认
- 检查分支与未提交内容,以及 Vue、脚本语言、API 风格、构建和组件库的真实版本。
- 从页面入口追踪 props、emits、插槽、v-model、请求与字典,确认状态所有者和外部契约。
- 搜索真实复用场景、自动导入、动态路由和插件注册,确认抽取及删除不会破坏运行时引用。
- 读取 ESLint 与 Vue/TypeScript 解析器、flat/legacy 配置、格式化方案及已有验收命令。
### 可采用的默认处理
- 保留 Vue 2/3、JS/TS、组件库和状态管理选型,不通过框架迁移解决局部结构问题。
- 按已有业务职责整理目录;纯工具、组合式逻辑和领域规则分别归位,不机械创建空目录或万能组件。
- 保持界面、接口、事件和字典值稳定,保留无关改动,规范治理只覆盖本次范围且不得靠忽略规则消除新增错误。
### 必须有依据的事项
- 调用方对同一组件的事件、空值或编辑副本语义存在冲突,且抽取后必须改变其中一方的业务行为。
- 需要修改对外字段、路由或业务状态码才能继续,而实际兼容约束和使用方无法从工程确认。
只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。
### 资料仍不足时的交付
- 只有片段时交付该片段的职责拆分与契约表、完整局部修改示例,并列出需回查的调用方。
- 没有工程时给出重构检查顺序、组件边界判据和关键行为回归清单,不以虚构文件说明已落地。
## 执行要求
以当前工程事实决定实现,降低理解和修改成本,不按文件行数或目录数量评价重构效果。
### 确认范围和基线
检查分支、未提交及未跟踪改动,记录目标文件现状,保留已有 dirty 内容,不覆盖其他人的工作。确认实际 Vue 2/3、JS/TS、Options/Composition API、构建框架、UI 库、路由、store、请求库和锁文件版本;沿用既有选型,不强迁移 Vue、TypeScript、Vite、Pinia 或组件库,不顺手升级依赖。跟踪页面入口、权限、请求、数据转换和显示结果,先列出待修问题、最小修改范围及可验收行为;未经授权不扩展为整仓格式化。
### 按职责整理代码
页面负责路由参数与页面流程编排;业务组件承接明确领域场景;通用组件只保留稳定的跨场景交互契约;composables/hooks 承接可复用的响应式逻辑和生命周期;API 层负责请求契约;store 只保存确需共享的状态;types 记录已有类型契约;styles 归属主题、布局或组件。利用现有目录表达这些职责,不机械新建空目录,不为了拆分制造层层透传。纯格式转换和无副作用计算抽到 util;权限判断、字典转换等领域能力放在明确业务模块集中管理,不堆进万能 util。
### 确定组件边界
沿业务职责、独立变化和真实复用拆分,避免既请求数据又拼装所有页面的超大万能组件;相似外观但行为不同不强行统一。复用方案必须列出至少两个真实使用场景或独立职责理由。明确 props 的类型、默认值、必填和空值含义,事件说明触发时机与载荷,插槽和 v-model 按当前版本定义;不直接修改 props 或隐式改写父级对象。组件内部实现保持封装,不用过量开关和跨层 ref 调用拼出第二套页面框架。
### 收敛状态和业务规则
每个业务状态明确唯一所有者,避免 props、局部副本、store 和 URL 各维护一套可写真相。派生值用 computed,表单编辑副本说明初始化、回填、取消与提交边界,切换记录不残留上条数据。业务状态码、枚举、权限标识与服务端和数据库字典一致,不能自行改名改值;已有字典接口或生成类型继续复用,不复制第二套硬编码。只有稳定的前端配置才抽命名常量;未知字典码给出可识别回退,不默认为正常状态。区分 0、false、空字符串、null 和未提供,不能用通用假值判断抹掉有效业务值。
### 保留异步与交互正确性
分别处理 loading、empty、error、成功和权限不足,不把请求失败展示成暂无数据;刷新已有数据是否保留由场景决定。表单校验按输入、失焦和提交时机给出字段附近反馈,首次进入不满屏报错,失败后保留合理输入。前端提交锁和按钮反馈负责防连点,服务端幂等键、唯一约束及事务由真实接口负责,不能承诺禁用按钮即可防重复写入。查询变化时按请求库能力取消旧请求,并用请求序号或条件快照保护旧响应及 finally,避免覆盖新结果或提前清掉 loading。watch 仅处理必要副作用,清理定时器、事件、订阅与失效请求;按实际 Vue 生命周期实现,不套用当前版本不存在的清理 API。
### 重构同时守住性能
v-for 使用稳定且唯一的业务 key,可排序或编辑列表不用索引、随机数和时间戳作 key。移出模板和循环里的昂贵计算、重复字典查找及逐项请求;纯派生用 computed,保持无副作用且依赖完整。批量接口须确实存在,不得编造;没有时按业务限制控制请求量。复用组件不能引入多余渲染和请求,分页、虚拟列表、memo 或全局缓存都要基于真实瓶颈再决定。若修改加载方式或依赖,记录构建包体积与关键页面渲染变化,不把“组件更多”当作性能提升。
### 把规范落实到工具
使用现有兼容版本的 ESLint 与 eslint-plugin-vue,TS 工程配套 typescript-eslint;检查 .vue 外层解析器和脚本解析器分工,确保模板、脚本和目标文件确实进入检查。保留 flat 或 legacy 配置,先核对 Node、ESLint、插件及 TS 版本,再补缺失配置,不照搬最新版。统一空格、缩进、换行、引号、分号、导入分组和单文件组件区块顺序,以项目已有 ESLint 或 Prettier 方案为准,并对齐 .editorconfig。若并用,明确格式和质量职责,按兼容机制消除重复格式规则冲突,不能借机降低质量门槛。
### 清理与可读性
改动范围做到零新增 lint 违规;不要靠新增 disable、扩大 ignore、any、ts-ignore 或删除检查绕过问题。历史问题与新增问题分开记录,无法修复的阻断如实报告。命名表达业务,函数职责单一;注释解释业务原因、接口边界、限制和必要取舍,不机械逐行翻译代码。删除冗余分支、废弃样式与依赖前核查静态引用、自动导入、动态路由、按需组件、插件注册及运行时使用,不能只凭一次文本搜索判定无用。
## 交付与验收
### 实际验收与交付
维持政企中文页面的清楚层级、对齐、间距、操作顺序和信息密度,复用现有 UI 规范;不新增装饰性口号或非业务说明。实际运行范围相关 lint、项目适用的 typecheck、生产 build 和关键交互验证;纯 JS 且无类型检查时标注不适用,已有检查缺失则说明覆盖缺口。重点验证查询重置、分页排序、编辑回填、取消保存、错误恢复、快速切换和权限状态,同时检查中文换行、弹窗焦点、按钮可用状态及新产生的控制台错误。原有检查失败不等于本次失败,但必须给出前后证据,不能宣称整体通过。
最后输出:①实际改动及解决的问题,列关键路径;②职责、组件契约、状态所有权与枚举来源的简表;③采用的格式和检查规则、版本兼容处理;④验证项、真实命令或操作、结果及未执行原因;⑤剩余风险和最小后续事项。只写完成事实,未跑不报通过,无证据不报提速;不生成无关 Markdown 文档,不以重构方案替代已授权的代码实现。
### 本条完成检查
- 交付实际代码、关键路径以及职责、组件契约、状态所有权和字典来源简表。
- 说明抽取的真实复用依据与删除的引用检查结果,核对重构未引入重复请求、props 修改或状态双写。
- 运行范围相关检查和生产构建,验证查询、编辑、取消、错误恢复与快速切换,区分历史失败和本次新增问题。
按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。
## 参考资料与适用边界
官方依据:阿里前端规约:https://github.com/alibaba/f2e-spec、Vue 逻辑复用:https://vuejs.org/guide/reusability/composables.html、Vue 插件配置:https://eslint.vuejs.org/user-guide/、ESLint 配置:https://eslint.org/docs/latest/use/configure/configuration-files、Prettier 与 Linter:https://prettier.io/docs/integrating-with-linters。
收录核验(2026-09-08):已核对公开资料和本次项目要求的覆盖范围;尚未使用真实项目执行本模板或进行模型效果评测。具体改动、性能和回归结果须在目标工程中验证。