用于已有 Arco Design Vue 工程的代码整理与中文业务界面优化,覆盖组件复用、ESLint、主题、列表表单、请求状态、权限与页面验收。附官方接口依据及版本边界。
## 任务目标 请基于 Arco Design Vue,对指定 Vue 工程或模块完成工程标准化、代码整理和界面优化。直接修改并交付可运行的代码,保持真实业务流程与数据含义,完成检查和页面验收,不要只给审查意见、设计建议或静态效果图。 在现有授权范围内完成实际改动和验证;缺少外部条件时先完成可独立实现的部分,不能只停留在计划。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 改造目标:从当前对话、选定文件和改动关联路由识别待整理页面;未指定具体问题时,先检查一个代表性业务页面的结构、Arco 用法与中文布局,再在能够确认的局部范围实施。 工程或页面资料:读取当前已确认工作区的 Vue 工程、页面、接口和现有设计配置;已有截图或访问入口作为界面比对资料,不要求重复填写版本和组件清单。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 检查分支、已有改动、package.json、锁文件和构建入口,确认 Vue、Arco、Node、JS/TS 及包管理器。 - 沿路由追踪查询、编辑、权限、字典与请求封装,识别重复组件和状态所有者。 - 读取已安装 Arco 类型及样式入口,核对 ConfigProvider、Table、Form、Modal 的属性、事件、校验返回值和主题机制。 - 查找现有布局、语言、字号、间距、ESLint、Prettier 和 EditorConfig 约定及可执行检查脚本。 ### 可采用的默认处理 - 沿用实际技术选型和 Arco 版本,仅整理本次页面及直接关联的公共能力;不自动迁移 Vue 2 或混合组件库,不整仓格式化。 - 无设计约定时采用正文已有的桌面政企业务界面默认值,兼顾窄屏;默认不新增深色模式、统计指标和装饰性文案。 - 保留现有字段、权限、字典码和操作顺序;未知字典值可识别地显示原值,按 Arco Vue 的真实 API 实现表单和弹窗,不套用 Ant Design。 ### 必须有依据的事项 - 同一字段的金额、时区、状态码或权限规则在页面与接口之间相互矛盾,且本次改造必须选择其中一种才能保存正确业务数据。 - 目标要求必须使用 Arco Vue,但当前工程不支持该库且完成目标需要主版本迁移或更换组件库;该迁移范围不能自行决定。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 只有截图时交付页面分组、主次操作、中文排版和状态反馈的具体调整方案,明确交互及接口尚未验证。 - 没有工程时给出 Arco Vue 组件职责、数据契约核对表和最小接入示意,不创建未经要求的新系统或声称改造已完成。 ## 执行要求 ### 先明确工程现状与改造边界 检查当前分支、未提交改动、package.json、锁文件、构建配置、路由、权限、接口封装、状态管理和组件目录,列出本次涉及的页面及主要问题。保留无关改动,不以格式化为由改写全仓库。 核实 Node、Vue、TypeScript、Arco、构建工具与包管理器版本,沿用已有锁文件和安装方式。Arco Design Vue 的包名是 @arco-design/web-vue,适用于 Vue 3;不得混用 @arco-design/web-react 或其他组件库的接口。发现 Vue 2、混合组件库或版本不兼容时,先说明迁移影响,不擅自升级主版本或全量替换。 已有工程逐步整理;只有明确要求新建时才创建工程。未明确提供仓库或业务资料时,先检查当前可访问工程;仍缺资料则完成可落实的结构与页面方案,不编造已完成的改造。可从代码确认的事项自行确认,只提出阻塞业务判断的问题。 不擅自修改接口字段、权限规则、审批顺序、统计口径、路由地址、持久化键和对外事件。必要的契约调整必须说明影响并同步处理调用方。 ### 统一代码结构与复用方式 沿用工程既有分层,将页面编排、业务组件、可复用组件、组合式函数、接口请求、类型、字典和样式放在职责清楚的位置。缺少约定时,可使用 views、components、composables、api、types、constants、styles;不要为了目录形式拆出大量空文件。 新建 Vue 3 组件优先遵循项目的 Composition API 与 script setup 用法。声明清楚的 props、emits 和接口类型,禁止直接修改 props、用 any 掩盖类型问题、无依据的非空断言以及跨层读取组件内部状态。JS 工程按范围补足必要类型说明,不强行一次性迁移整个工程。 先查找已有能力,再抽取组件、composable 或纯函数。至少有明确复用场景或独立业务职责时才抽取;不要重复封装无业务增益的 Arco 按钮、输入框,也不要制造用几十个开关控制所有页面的万能表格、万能弹窗。 纯格式化、数据转换可放 util;含响应式状态、生命周期或副作用的逻辑放 composable;请求统一经过现有请求层。组件不得直接拼接 SQL 或持有服务端密钥。 状态码、权限码、业务类型和单位集中定义。以后端字典为准的值使用同一数据来源,保留 code 与 label 的对应关系,不在多处复制数字和中文判断。未知、历史或停用字典值保留可识别的原值,不默认替换成第一项。 删除本次范围内确认无用的导入、变量、分支、样式和旧代码。查清动态路由、自动注册及反射式引用后再删除文件。禁止保留注释掉的整段旧实现和没有使用场景的兜底层。 ### 统一格式、检查和注释 以现有 ESLint、Prettier、EditorConfig 为准;缺少规则时默认 UTF-8、LF、2 空格缩进、文件末尾换行,统一引号、分号、属性换行和导入顺序。不要混用 Tab 与空格,不做对齐式空格堆砌。 按工程实际 ESLint 版本配置 Vue 与 TypeScript 支持,避免同时引入互相冲突的旧配置和 flat config。格式化规则与代码质量规则分工清楚,不堆叠重复插件,不用全局关闭规则、ts-ignore 或大范围 disable 消除报错。 提供与当前包管理器相符的 lint、必要的类型检查和 build 命令;已有脚本可复用就不另造一套。TS 工程检查 Vue 单文件组件类型,使用兼容版本的 vue-tsc 等现有工具。说明实际运行命令,不把示例命令当作运行结果。 名称表达业务含义。注释用简明中文解释业务约束、兼容原因和复杂计算;公共方法说明必要参数、返回值与边界。不要给每一行加翻译式注释,不写装饰性分隔线、口号或与产品无关的说明。 ### 按 Arco Vue 实际能力接入组件与主题 优先阅读已安装版本的类型声明与对应版本官方文档。不能因为同样使用 a- 前缀就照搬 Ant Design Vue 的 props、事件、插槽或主题配置。组件名称、图标入口、按需加载与样式加载方式都必须能在当前工程中验证。 全量引入样式的官方入口是 @arco-design/web-vue/dist/arco.css;按需方案应核实组件样式和浮层样式均已加载,不重复引入整套样式。中文语言在统一入口配置,ConfigProvider 的 locale 使用语言包对象,例如从 @arco-design/web-vue/es/locale/lang/zh-cn 导入,而不是直接传入语言字符串。全局尺寸按当前版本支持的 mini、small、medium、large 统一选择,并检查局部覆盖。 优先使用当前版本真实存在的主题变量或项目设计变量,集中管理主色、背景、边框、文本、间距与圆角。采用 Less 变量定制时必须匹配 Less 样式与构建配置,不能仅加载预编译 CSS 后期待编译变量生效。不要复制其他组件库的主题 token API。 业务样式优先限定在业务容器和语义类名内,减少深层选择器;必须覆盖组件内部样式时,限定范围并说明原因。禁止大范围覆盖 .arco-*、堆叠 !important,或通过固定高度、负边距掩盖布局问题。 仅在业务需要时提供深色模式;官方深色机制使用 body 的 arco-theme="dark" 属性,仍应检查自定义区域、图表、弹层和文字对比度。函数式 Modal、Message 等额外验证语言、主题和应用上下文,不假定包裹 ConfigProvider 后任何独立调用都会继承配置。 ### 建立克制、规整的中文业务界面 以下数值属于本项目缺少规范时的设计建议,不是 Arco 官方强制标准。已有品牌和设计规范优先,同一工程保持一致。 采用中性浅灰页面背景、清晰的内容表面、单一主色和必要的状态色。默认正文 14px、辅助说明 12px、区块标题 16px、页面标题 20px;间距优先使用 4、8、12、16、24px。字号、行高、圆角和边框形成稳定层级,不随页面任意新增尺度。 查询列表页按“标题与主要操作 → 查询条件 → 结果或业务内容 → 分页”组织;需要结果摘要时才增加摘要,详情与编辑页面按业务内容分组。对齐左边缘、控件基线、操作区和内容宽度,同类页面沿用同一骨架。用留白、分组和轻边框区分层级,不把每一小段内容都包成卡片。 主按钮突出当前最重要的业务动作,次要动作保持克制;相同行为的按钮顺序、名称和危险色一致。图标辅助识别,不代替必要文字,不混用多套视觉风格。 不添加大面积渐变、玻璃效果、夸张阴影、胶囊化控件、彩虹状态卡、装饰性徽章和占据首屏的欢迎区。没有业务数据支撑时不增加统计指标、增长率、荣誉认证和宣传口号。 文案使用真实业务名称,短而明确;提示说明用户需要做什么。界面不展示组件实现、内部架构、技术术语堆砌或“智能赋能”等无实际含义的宣传文字。不要为展示设计能力改变用户已熟悉的办理顺序。 ### 把列表、表单和详情作为完整业务流程处理 列表:筛选项按使用频率排序,展开与收起不丢值;查询、重置和变更每页条数后的页码规则明确。对象标识、关键状态及主要操作易于定位;文本通常左对齐,金额和数量右对齐并注明单位。长内容提供完整查看入口,状态同时用文字表达,不只靠颜色。 Table 的数据、列、唯一键、分页、排序、选择事件必须核对 Arco Vue 文档。row-key 使用稳定业务键字段,不用页内序号冒充记录标识;远程分页、排序和筛选与服务端参数对应,不对单页数据做排序却宣称全量排序。selected-keys 等受控选择仅维护一份真实状态,明确当前页和跨页批量选择范围。 详情返回列表时按业务需要保留筛选、页码和滚动位置。批量操作反馈成功、失败与可重试范围,能定位失败记录;关键字段、长公司名、大金额和时间信息不被固定列或操作列遮挡。 表单:字段按业务填写顺序分组,标签、必填标识、控件宽度及帮助文字一致。错误在字段附近展示并可定位,保存失败保留合理输入,重置前确认需要恢复的基准值。日期、时区、精度、ID 字符串及空值含义以接口契约为准,不用格式化操作改变业务值。 Arco Form 使用 model,FormItem 使用 field 对应数据路径。validate() 的成功结果是 undefined,失败结果是错误对象,不能仅靠 catch 判断校验失败;resetFields 与 clearValidate 分别涉及字段重置与校验状态清理,不能互相替代。按已安装版本确认行为后实现。 简单确认使用弹窗,较长编辑或需要保留列表上下文时选择合适的抽屉或独立页面。弹窗使用当前版本支持的 v-model:visible;异步确认正确处理 on-before-ok 的返回结果。before-close 是事件,不能当作异步关闭守卫。提交失败时不误关弹窗,重新打开时不残留上一条记录和校验状态。 详情页先呈现对象名称、编号、状态和适用操作,再按业务关系组织字段。审批记录和时间线来自真实数据,不补造操作者、进度或成功记录。 ### 保证状态、权限与请求一致 区分初次加载、刷新中、无数据、查询无结果、失败、权限不足和成功。空值、零值与未知状态不能混用。失败提供适当重试入口,恢复后回到正常界面,不把临时加载失败永久保留为“服务升级中”。 复用现有请求封装与错误处理,用户提示和排查日志各有明确位置,不重复弹出同一错误。快速切换筛选、路由或编辑对象时,使用适当的请求取消或结果序号校验,防止旧响应覆盖新状态;清理定时器、监听器和订阅。 提交按钮展示处理中状态并防止连续点击,但不把前端禁用当成服务端幂等保证。写请求超时不能直接认定失败并自动重复提交,应展示结果待确认,并提供结果查询或人工核对路径;用户点击确认本身不代表可以安全重试。 菜单、按钮、数据列表、详情、导出和统计遵循实际角色、组织与租户范围。前端隐藏按钮不能替代服务端授权。缺少后端能力时明确指出,不用前端模拟校验宣称已经解决权限或幂等问题。 不硬编码真实密钥,不把错误堆栈和敏感业务字段展示给用户。富文本、外部链接和文件操作沿用工程安全约束,避免未经处理的 v-html。 ### 兼顾性能、适配和可操作性 基于实际瓶颈优化:避免模板内重复大规模运算、无意义深度监听、重复请求以及可以局部更新却整页重建的行为。按现有能力使用路由懒加载和资源按需加载;大列表先核实分页与组件能力,确有需要再采用虚拟化,不凭空宣称性能提高多少。 同一页面信息密度一致,不用极小字号、压缩点击区或大面积空白解决布局问题。宽表可在自身区域横向滚动,页面主体不得意外横向溢出;窄屏合理收纳筛选和次要操作,保留关键对象、状态与主要动作。 按约定终端验收;未约定时桌面至少检查 1440px 和 1280px 宽度,窄屏兼容检查 768px 和 390px。检查长中文换行、固定区域遮挡和弹窗可见范围,不以固定宽高适配所有屏幕。 保证键盘能够进入主要操作,焦点可见,弹窗关闭后焦点合理返回。仅图标按钮有可理解的名称,重要信息不只依赖悬浮或颜色;检查浏览器放大后的文本与操作可达性。使用真实或明确标记的脱敏样例覆盖边界内容。 ## 交付与验收 ### 完成验证并交付 先改造一个有代表性的页面验证公共规则,再在明确范围内推广;已有明确规范或任务很小时直接按范围实施,不增加无必要的审批环节。 运行与变更匹配的 lint、类型检查、构建和已有测试。对校验、字典映射、请求竞态、权限状态、批量操作等实际风险补充必要测试,不为颜色、空格或简单配置编写只重复实现的测试。 实际打开改造页面,至少验证查询与重置、分页、详情返回、新建或编辑、校验失败、保存成功与失败、取消关闭,以及范围内涉及的权限和异常状态。检查本轮产生的控制台错误、请求失败、中文截断、布局溢出和按钮遮挡;后端不可用时区分静态检查与真实联调结果。 交付时简要说明:改了哪些文件及原因;采用的布局与主题约定;复用或删除了哪些重复能力;实际运行的命令及结果;实际验证的页面和状态;尚未验证或依赖外部条件的事项。必要时提供页面截图对比,不伪造测试通过、数据结果和性能结论。 默认直接修改已有工程并在回复中说明使用方式,不额外生成总结类 Markdown 文档;只有用户明确要求或项目流程已有明确要求时才增加相应文档。 ### 本条完成检查 - 交付实际改动文件、职责与状态归属、布局和主题约定,说明重复能力的复用或删除依据。 - 核对 Form 的 model/field 与 validate 返回值、Modal 的 visible/on-before-ok、Table 的稳定键和受控选择,验收成功、失败及切换记录。 - 运行适用的 lint、类型检查和构建,检查正文规定的桌面与窄屏尺寸、中文换行和新增控制台错误;未执行项单列。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 本提示词是结合 Arco Design Vue 官方资料整理的工程执行规则。组件用法按官方资料核对;目录划分、视觉默认值与交付要求属于项目实践建议,不代表官方认证,也不表示已经在任意工程中运行验证。资料核验日期:2026-09-08;下面的 main 链接会更新,实际实施必须以工程安装版本及对应版本文档为准。 [Arco Design Vue 官方仓库与安装入口](https://github.com/arco-design/arco-design-vue) [ConfigProvider 中文配置与上下文](https://github.com/arco-design/arco-design-vue/blob/main/packages/web-vue/components/config-provider/README.zh-CN.md) [中文语言包使用示例](https://github.com/arco-design/arco-design-vue/blob/main/packages/web-vue/components/config-provider/__demo__/basic.md) [主题定制](https://github.com/arco-design/arco-design-vue/blob/main/packages/arco-vue-docs/docs/theme.zh-CN.md) [深色模式](https://github.com/arco-design/arco-design-vue/blob/main/packages/arco-vue-docs/docs/dark.zh-CN.md) [Table 数据、分页与选择](https://github.com/arco-design/arco-design-vue/blob/main/packages/web-vue/components/table/README.zh-CN.md) [Form 校验与字段方法](https://github.com/arco-design/arco-design-vue/blob/main/packages/web-vue/components/form/README.zh-CN.md) [Modal 异步确认与关闭](https://github.com/arco-design/arco-design-vue/blob/main/packages/web-vue/components/modal/README.zh-CN.md)
从真实页面的测量与复现出发,优化请求竞态、状态同步、列表渲染、包体积和表单反馈,并验证接口幂等边界、代码规范及关键业务交互。适用于保留现有技术栈的 Vue 存量工程。
## 任务目标 请完成选定 Vue 页面或模块的性能、状态一致性与交付质量优化,先测量问题,再落地代码并验证。指标未给出时先记录基线并提出与场景相符的目标,不虚构响应时间、提升比例或用户规模。 在现有授权范围内完成实际改动和验证;缺少外部条件时先完成可独立实现的部分,不能只停留在计划。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 优化对象或现象:优先定位对话中提到的慢操作或状态错乱;未描述现象时,从当前页面的首屏、筛选、分页和编辑切换建立基线,先处理可复现的状态错误和重复请求。 工程或复现资料:使用已确认工程的路由、组件、请求封装、store、测试数据和现有性能记录;可运行时自行采集网络、渲染和构建产物证据。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 核实 Vue 2/3、JS/TS、请求库、UI 库、路由缓存及现有 watcher 清理方式,不要求用户手填版本。 - 沿筛选、翻页和切换记录检查状态写入、请求取消、旧响应及 finally 的生效条件。 - 记录代表性操作的数据规模、模式、缓存、设备和网络条件,分开测量接口等待、重复请求、计算与组件更新。 - 检查模板循环、字典查找、资源导入、路由拆包和真实产物,确定优化影响范围。 ### 可采用的默认处理 - 未给性能指标时先采集可复查基线,以消除已证实浪费且业务不回归为目标,不承诺任意提速比例。 - 优先局部状态、纯 computed 与必要副作用清理;未证实瓶颈前不引入虚拟列表、全局缓存或 memo。 - 保留当前分页、选择及字典语义,写请求超时显示结果待确认,不把取消请求当作撤销业务。 ### 必须有依据的事项 - 优化涉及跨页选中、缓存失效或租户切换,而代码与接口无法确定需要保留的业务状态。 - 写操作结果未知且接口没有查单、幂等或补偿依据,不能自行重试并宣称提交成功。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 无法运行页面时交付按代码证据排序的瓶颈候选、状态写入图和最小修正,另给同条件测量步骤。 - 没有代码时给出筛选竞态、重复提交、页面恢复的复现与验收用例,不填造耗时或包体数据。 ## 执行要求 关注用户操作结果和可复查证据,不为了使用优化技巧改动系统架构。 ### 读取工程并建立可比基线 确认目标目录、分支和 dirty 改动,保留原有内容,只改选定范围。核实 Vue 2/3、JS/TS、API 风格、构建框架、UI 库、store、路由、请求库和锁文件,保留选型,不默认升级或迁移。复现首屏、筛选、翻页、弹窗、切换记录等实际问题;记录数据规模、生产构建或开发模式、缓存状态、设备及网络。结合浏览器性能、网络、Vue DevTools 和构建分析,区分接口等待、重复请求、脚本计算、组件更新和资源加载;权限或数据错误优先于微小速度收益。 ### 定位结构与状态责任 页面编排流程,业务组件承接领域交互,通用组件负责稳定通用契约,composables/hooks 管理组合式逻辑和清理,API 层统一请求契约,store 管理必要共享状态,types 与 styles 各归其位;按问题整理现有模块,不建空目录。纯无副作用函数进入 util,领域规则集中在业务模块,真正共用的响应式能力才复用。不要把数据、权限、表单和所有展示塞进万能组件或 util,也不为性能把所有状态搬入全局。 ### 消除状态不同步 为查询条件、分页、选择项、表单和缓存分别确定唯一写入来源,派生值用 computed,props、事件载荷和 v-model 契约明确,不直接修改父级状态。检查路由返回、筛选重置、切换租户或记录、删除末页数据后的状态;分页和选择项的保留规则必须对应业务。编辑副本说明与源数据同步时机,避免双向 watch 相互回写。枚举和魔法值与服务端数据库码、权限及字典一致,已有字典继续复用,禁止复制另一套状态映射;失效缓存不得让旧权限或旧字典继续控制操作。未知或停用字典码保留原始值并作可识别提示,禁止映射为成功、首项或任意合法状态;编辑提交按真实接口契约处理,不为消除告警擅自改写原值。 ### 处理请求竞态和副作用 快速输入、连续翻页、切换弹窗记录会形成并发请求。按当前请求库取消可取消的旧请求,同时用序号或请求条件快照保护结果、错误和 finally,确保过期请求不能覆盖当前内容或解除新请求的 loading;不同业务请求分别维护状态。取消客户端请求不代表服务端业务已撤销,写操作超时不能直接自动重试。watch 只监听必要源,避免无边界 deep 和回写循环;清理失效请求、监听、定时器与订阅。Vue 3.5+ 的 onWatcherCleanup 必须同步注册,低版本使用其支持的清理机制和生命周期;离开、卸载及缓存页面停用时按实际行为处理。 ### 控制计算与渲染成本 v-for 采用稳定唯一的业务 key,排序和编辑列表不用索引、随机值或时间戳。将模板和循环中昂贵过滤、排序、格式化、字典查找移到有明确依赖的派生层;computed 保持纯计算,不夹带请求或状态修改。对重复查找按数据规模建立合适索引,注意索引随源数据更新。避免每项都发请求;优先真实可用的批量查询或服务端分页,没有接口时说明限制并控制并发,不伪造后端能力。检查 props 是否反复创建无意义新对象、组件是否无关更新;按证据减少渲染,不盲目 memo、深比较、shallow API 或缓存,防止失去必要更新。 ### 按场景优化列表与资源 根据实测 DOM 数量、交互延迟和数据规模选择分页或虚拟列表,核验行高、滚动定位、选择项、键盘操作与 UI 库能力,不用固定条数一刀切。测量实际生产包、关键路由资源和重复依赖,按既有构建能力优化导入、路由懒加载及重资源加载时机;确保首个操作不会因拆包失败失效。移除代码或依赖前核查自动导入、动态路由、按需组件与注册入口。缓存明确键、有效期、失效条件及身份边界,不用长期全局缓存掩盖接口问题。任何优化都要有前后相同场景的记录,不能以依赖宣传体积代替实际产物。 ### 完成可用的业务反馈 区分 loading、empty、error、成功及权限不足,失败不可显示成空数据,保留数据或清空数据按场景说明。正确区分 null、未提供、0、false 和空字符串。表单按输入、失焦与提交时机校验,错误就近展示并可纠正;服务端失败保留合理输入,弹窗关闭、重新打开不残留旧结果。提交时即时反馈并防重复点击,后端幂等键、唯一约束和事务仍由接口承担;没有后端能力时写明局限,不能把防抖当幂等。失败后给出真实可行的恢复路径,不吞错、不伪造成功。 ### 把优化纳入既有规范 保持政企中文界面的层级、对齐、间距、表格密度、主次操作和反馈一致,不添加非业务口号与技术说明。命名清楚,注释解释业务原因、接口限制和性能取舍,不逐行注释。使用兼容版本的 ESLint、eslint-plugin-vue,TS 工程配套 typescript-eslint,并保留 .vue 与脚本解析器分工;沿用 flat/legacy 模式和现有 ESLint 或 Prettier 格式方案。统一空格、缩进、换行、引号、分号、导入及文件区块顺序,对齐 .editorconfig;兼容配置只解决格式职责冲突,不降低质量门槛。零新增 lint 违规,不用 disable、扩大 ignore、any 或 ts-ignore 隐藏问题,不整仓格式化制造无关差异。 ## 交付与验收 ### 验证结果并完成交付 实际执行相关 lint、适用的 typecheck、生产 build 和关键交互验收;JS 工程无类型检查时说明不适用,工具或环境缺失则标记未执行。至少覆盖正常与空数据、未知与停用字典码、接口失败与恢复、快速筛选翻页、旧响应晚到、连续提交、切换记录、返回页面和权限变化;验证表单失焦、弹窗焦点、中文换行及新产生的控制台错误。只在隔离且获准的测试环境模拟网络故障,不影响真实业务。性能比较保持设备、数据、模式及缓存条件一致,多次记录波动,分别列包体积、请求量、渲染或交互指标;改善不能以业务回归为代价,未改善也如实报告。 输出:①问题、复现及基线;②已实现改动与关键路径,说明结构、状态和请求规则;③实际生效的检查与格式配置;④优化前后指标和测量条件;⑤验收项目、命令或操作、结果及未执行原因;⑥剩余限制和最小后续工作。保留历史失败与新增问题的区分,未跑不宣称通过,没有测量不宣称提速。完成已授权实现,不只提交建议,不生成无关 Markdown 文档。 ### 本条完成检查 - 记录问题、基线、实际修改和相同条件下的优化前后指标,未改善或未测量如实列明。 - 验收旧响应晚到、finally 竞态、快速分页、记录切换、权限变化及未知字典码,不以性能收益抵消业务错误。 - 执行相关 lint、适用类型检查、生产构建与关键交互,列出真实命令、结果和剩余限制。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 官方依据:Vue 性能:https://vuejs.org/guide/best-practices/performance.html、Vue 监听清理:https://vuejs.org/guide/essentials/watchers.html、阿里前端规约:https://github.com/alibaba/f2e-spec、Vue 插件配置:https://eslint.vuejs.org/user-guide/、Prettier 与 Linter:https://prettier.io/docs/integrating-with-linters。 收录核验(2026-09-08):已核对公开资料和本次项目要求的覆盖范围;尚未使用真实项目执行本模板或进行模型效果评测。具体改动、性能和回归结果须在目标工程中验证。
适用于已有 Vue 2/3、JS/TS 工程:梳理页面与组件职责、状态所有权、API 和字典边界,落实兼容版本的 ESLint、格式规范及实际交互验收。保留既有选型和未提交改动,在选定范围内完成代码重构。
## 任务目标 请在真实 Vue 工程中完成选定范围的结构、组件和编码规范重构,交付实际代码及验证结果。先读取工程;能从代码确认的信息不重复询问。资料缺失时标明事实与假设,只对阻断实施的关键项提问,其余授权工作继续完成。 在现有授权范围内完成实际改动和验证;缺少外部条件时先完成可独立实现的部分,不能只停留在计划。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 重构对象:从当前对话指定的页面、模块或改动文件识别范围;维护问题未说明时,优先检查该范围内职责混杂、重复业务逻辑和多处可写状态,实施可证明保持行为的局部重构。 工程或代码资料:读取当前已确认工作区中的组件、调用方、API、store、字典与规范配置,并从既有测试和页面操作提取行为基线。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 检查分支与未提交内容,以及 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):已核对公开资料和本次项目要求的覆盖范围;尚未使用真实项目执行本模板或进行模型效果评测。具体改动、性能和回归结果须在目标工程中验证。
对已有 Java 工程完成结构分层、业务编码、XML SQL、复用和清理,并验证行为兼容。
## 任务目标 请在当前目标工程中,完成本次模块范围内的 Java 结构与编码规范重构。目标是让职责、数据模型、SQL和业务规则清楚一致,并实际修改代码和验证;不要只交审查清单或示例。缺少资料先读取工程,只有影响正确性且无法从工程确定的事项才提问,其余已授权工作继续推进。 在现有授权范围内完成实际改动和验证;缺少外部条件时先完成可独立实现的部分,不能只停留在计划。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 重构模块:从当前对话、正在修改的文件与 Java 模块入口定位目标;未指定时选择一条包含 Controller、Service、Mapper 和实体转换的完整业务链作为首批范围,避免默认整仓重构。 工程与契约资料:读取当前仓库的接口、调用方、枚举字典、XML、迁移和测试,以及同模块稳定代码与格式配置,自动确认版本和已有行为。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 核对分支与未提交修改,并追踪目标入口到 DTO、Service、Mapper/XML 和表结构。 - 盘点状态编码、数据库字典、TypeHandler、序列化字段及历史值处理。 - 检索 SQL 注解、Provider、字符串或 Wrapper,以及反射、SPI、XML、扫描和配置引用。 - 读取既有编译检查、接口回归、数据库集成测试和单一格式工具的入口。 ### 可采用的默认处理 - 保持公共接口、持久化编码、权限和事务行为;不升级框架,不为所有类新增接口或强行改 Stream。 - 已有格式配置优先,缺少配置时沿用同模块稳定风格,只规整本轮文件并用一个兼容工具固化。 - 先落实职责与 SQL 归位等有依据的重构;无法解释的旧编码保留原值,不能映射为首项或零值。 ### 必须有依据的事项 - 状态或字典的权威来源、旧编码含义及迁移映射存在冲突时,不自行更改存量数据的业务解释。 - 拟删除或合并的代码涉及无法确认的外部契约、权限字段或副作用时,不把无静态引用当成可删除证据。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 没有工程时交付分层与 XML Mapper 的成套示例、枚举字典归属表和旧编码兼容测试样例,说明未执行项目重构。 - 缺数据库环境时完成可执行的代码检查,并交付参数映射、方言、资源加载和历史值验证用例,不宣称 SQL 已验证。 ## 执行要求 按项目真实 Java、Spring、MyBatis 及数据库版本实施,不借机升级技术栈。XML限定、枚举与字典分工等属于本项目硬约束。MyBatis允许注解,本项目禁止用该能力承载SQL。 1. 先只读建立范围和基线。确认仓库、分支、未提交改动及模块依赖,从入口沿 Controller、Service、Mapper/XML、表结构追踪一条真实业务链,核对已有校验和测试。记录接口字段、错误码、排序分页、事务和数据权限契约;保留无关改动,不重置工作区。给出分批修改顺序后实施,基线失败与本轮引入失败分开记录。 2. 消除业务魔法值。盘点状态、类型、阈值、标识和业务字符串,明确语义及唯一来源。稳定且有限的数据库业务编码使用带显式code和说明的enum,读写绑定实际code,禁止ordinal持久化,也不以枚举名称变动隐式改库值;核对序列化与TypeHandler。可配置字典以数据库为唯一来源,不为同一值再手工维护一套enum。一般固定常量给出语义名称,阈值按业务决定是否配置化,不把每个数字都建成枚举。 3. 兼容旧数据与未知编码。核对历史值、空值、已停用字典项和灰度期间的新编码;读取时保留原编码并按契约展示未知或停用状态,不悄悄映射成零、首项或其他有效业务状态。写入和状态迁移要验证允许范围,无法安全执行时明确拒绝。若需迁移,说明旧值到新值映射、并行版本兼容与回退,不能仅改Java类型让历史记录读不出来。 4. 整理分层和复用。Controller负责协议、参数及身份入口,Service负责业务规则和事务,Mapper负责持久化;DTO承接输入,DO对应持久化模型,VO按接口契约输出,明确转换及允许写入字段,防止客户端覆盖租户、审计或权限字段。先找真实共同语义再复用;只有无业务状态和外部依赖的纯通用函数才抽Util,领域计算和业务校验留在领域Service。禁止万能Util、为了行数拆碎方法、只有一个用途却搭泛型框架;不强制所有类新增接口。 5. 将MyBatis执行的全部SQL集中到XML Mapper。Java业务层和Mapper接口不承载SQL,不用SQL注解、Provider、Java字符串、SQL Builder或Wrapper拼接绕过限制;Mapper接口保留方法与必要参数绑定。同步核对namespace、方法id、参数名、resultMap、主键回填及资源打包。值参数使用#{参数}绑定;动态列、表及排序方向只允许服务端白名单并在XML选择固定片段,禁止用户输入直接进入美元符文本替换。可复用SQL片段须保持租户和业务过滤语义,迁移DDL沿用工程既有机制。 6. 保持循环和查询的业务含义。识别for及映射转换中的循环查库、远程调用和隐式懒加载N+1,按真实关联键先批量获取再组装;限制批次、分页和内存,不全量装入大表。保留结果顺序、重复项及缺失关联的语义,空集合不得导致XML过滤消失或全表更新。for清楚时保留for,不一律改成Stream或parallelStream;改变调用顺序与批量失败语义时补充相应验证。 7. 加固边界而不隐藏错误。权限和租户来自可信上下文,每次读写核对数据归属;批量查询和幂等结果回放同样不能越权。区分未传、显式null、空字符串、空集合和合法零值,防止拆箱空指针、金额精度或日期时区改变。异常保留原因和必要关联标识,日志脱敏且避免层层重复;不吞异常返回成功或空列表。事务按实际代理调用和回滚规则核验,自调用未触发新事务语义不等于外层必无事务。 8. 重构写操作时保住幂等和外部副作用。以业务键、租户范围、数据库唯一约束及事务保障同一意图只落一次业务结果,不能只靠先查后插、前端禁按钮或短期缓存。核对重复请求、并发、同键不同内容、超时结果不明与重试;不把超时当作失败直接重做。远程调用和消息不能假定随数据库事务回滚,按现有能力处理结果查询、可靠投递或补偿,不在结构重构中随意增加中间件。 9. 清理与规范同步落地。删除前检查静态引用、XML、反射、序列化、注解扫描、SPI、定时任务与配置约定;确认失效或重复才删,不能仅凭IDE灰色提示。按业务职责规整目录、依赖、命名和成员顺序;在类、关键字段、枚举及方法补充有意义的Javadoc,说明参数、返回、异常和业务限制,复杂分支注释解释原因而非复述代码,不编造作者日期。新增表的全部字段及新增字段须写入详细中文数据库注释,使用COMMENT或目标数据库对应语法,说明含义、单位、编码、空值及默认值语义。空格、换行、缩进和导入遵循既有规则及单一格式化工具,仅处理本轮文件,禁止无关整仓格式化。 10. 实际验证并收口。在每批修改后检查差异,运行受影响模块的编译、既有静态检查及必要测试;补足对契约变化有辨识力的回归,覆盖旧编码、未知编码、空输入、权限租户、批量边界、事务失败和重复请求。XML须验证资源加载、参数结果映射及真实数据库方言;仅编译不能证明SQL正确。环境不足时完成可执行部分并列明具体缺口,不把未运行、没有测试或仅人工阅读写成通过。 ## 交付与验收 交付格式:先说明完成的业务变化及保留的契约,再列修改文件与理由、枚举/字典/常量归属表、Java到XML迁移及分层对应关系、删除证据、实际验证结果和剩余风险。存在数据库变更时附项目已有格式的迁移与回退内容;没有实测就不给性能提升数字。交付已完成的代码,不生成无关Markdown文档,不将方案当作完成。 格式落地补充:工程缺少成文配置时,以同模块稳定风格制定一套最小规则,明确空格、缩进、换行、空行、导入顺序及成员组织,用兼容的格式化或静态检查工具固化到现有构建。列出实际采用的规则和检查入口,不能只口头要求代码整齐,也不能额外引入相互冲突的格式工具。 ### 本条完成检查 - 实际完成目标范围的结构整理、显式编码、XML SQL、DTO/DO/VO 边界和基于真实共性的复用。 - 删除有引用核对证据,新增字段具有详细中文注释,格式调整局限本轮文件。 - 记录编译及契约、旧编码、空值、权限、批量和事务回归,区分基线失败与本轮失败。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 官方依据(2026-09-08核验,仅采用相关条目,不代表完整企业内部规范): - 阿里巴巴《P3C-PMD 公开编码规则》:https://github.com/alibaba/p3c/blob/master/p3c-pmd/README.md - MyBatis《MyBatis 3:Mapper XML Files》:https://mybatis.org/mybatis-3/sqlmap-xml.html - MyBatis《MyBatis 3:Dynamic SQL》:https://mybatis.org/mybatis-3/dynamic-sql.html - Spring《Spring Framework:Using @Transactional》:https://docs.spring.io/spring-framework/reference/data-access/transaction/declarative/annotations.html - Spring《Spring Framework:Rolling Back a Declarative Transaction》:https://docs.spring.io/spring-framework/reference/data-access/transaction/declarative/rolling-back.html 收录核验(2026-09-08):已核对公开资料和本次项目要求的覆盖范围;尚未使用真实项目执行本模板或进行模型效果评测。具体改动、性能和回归结果须在目标工程中验证。
要求交付完整 Python 源码、依赖清单、示例输入与预期结果、自动化测试文件和中文说明,逐步列出安装、运行示例、处理自己数据及执行测试的命令,普通用户可照着操作。
## 任务目标 请根据下面的需求,开发并交付一个普通用户可以照着说明运行的 Python 程序。直接生成完整文件、示例数据、测试用例和中文操作说明,完成实际功能,不要只给设计方案或零散代码。 在现有授权范围内完成实际改动和验证;缺少外部条件时先完成可独立实现的部分,不能只停留在计划。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 程序用途:从当前对话的明确需求、已有程序入口及已交付样例识别输入、处理规则和预期输出;完全没有业务需求或行为依据时不自创工具,只询问必须解决的实际问题并先整理可用交付条件。 已有程序或样例:在已确认工作区查找 Python 入口、现有说明、依赖维护入口、examples、tests 和配置示例;无工程但业务需求明确时新建最小源码项目。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 核对现有功能、输入输出格式、CLI 参数和调用场景,保留无关文件及已有改动。 - 从依赖约束、环境配置和实际解释器识别支持版本、操作系统、架构及外部软件需要。 - 检查示例输入、独立预期结果、cases.json 和自动化测试是否齐全,判断哪些资源可以合法随包交付。 - 查明依赖唯一维护入口及启动脚本使用的解释器,检查中文空格路径、退出码和覆盖行为。 ### 可采用的默认处理 - 新建小型程序默认 Windows 10/11 64 位、首次安装可联网、源码交付并优先标准库;已有平台或工程约束优先,不承诺所有电脑通用。 - 交付安装清单统一为 requirements.txt;已有其他锁定入口时由其生成,项目 .venv 内解释器完成安装、示例、业务运行和测试,无需激活或管理员权限。 - 默认不覆盖输入及已有结果,无参数只给中文引导;缺少外部服务时采用明确标记的隔离样例,不自动执行线上副作用。 ### 必须有依据的事项 - 无法从需求或现有程序判断究竟处理什么数据、应产生什么业务结果,或关键转换规则互相矛盾;不得自创业务及期望值。 - 真实联调需要的账号、服务权限或有副作用操作尚未具备,只暂停对应联调,不虚构凭据或执行结果。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 业务明确但缺运行环境时仍交付完整 .py、必要资源、独立预期结果和可执行测试,并将运行验证标为未执行。 - 完全无业务依据时先交付安装与打包条件盘点、文件职责和验证步骤,集中说明唯一必要的业务缺口,不生成冒充实际功能的空程序。 ## 执行要求 普通用户只需要保存或解压文件,按顺序安装,先运行示例,再处理自己的数据。不得要求用户补代码、猜参数、手工逐个安装缺失的库或自己编造用例文件。 ### 先确定可以运行的交付范围 明确程序解决什么问题、接收什么输入、生成什么结果。需求不足以确定业务结果时,只问影响实现的关键问题;其余采用合理默认值并写清楚。不要自行编造业务或把真实接口替换成未说明的假数据。 先检查已有工程,保留与本次任务无关的文件和改动。小型程序优先用标准库,确有必要再增加第三方依赖;不为简单功能搭建复杂框架。默认交付 Python 源码,不要求安装 IDE,不强行打包 exe。 确定支持的 Python 版本、系统和处理器架构,并核对依赖兼容性。运行环境不能确认时标明待验证,不直接承诺所有电脑通用。 ### 必须交付完整文件 新建小型项目默认采用以下结构;文件格式根据真实业务确定,最终文件名和说明必须一致: 项目目录/ main.py 程序入口与实际业务功能 requirements.txt 完整依赖清单;无第三方依赖时留空或仅写 # 注释 安装依赖.bat 检查 Python、创建环境并安装依赖 启动程序.bat 使用项目环境启动 main.py 运行示例.bat 使用项目环境执行示例 运行测试.bat 使用项目环境执行自动化测试 使用说明.txt 安装、运行、测试及常见问题 examples/ input.* 最小可用示例输入,使用业务实际格式 expected.* 对应的预期结果或可核对的期望值 cases.json 正常、异常、边界用例及预期行为 tests/ test_main.py 能执行并作断言的测试代码 output/ 运行结果,允许程序首次运行时创建 logs/ 错误日志,允许程序首次运行时创建 其中 input.*、expected.* 只表示需要按业务选择扩展名;交付时必须给出实际文件,例如 input.csv 和 expected.json,禁止真的创建带星号的文件或留下未替换的名称。 main.py 和其他必要的 .py 文件必须完整,导入路径、函数调用和命令参数前后一致。不得留下省略号、TODO、空函数或“此处自行实现”。有配置需求时提供 config.example.json,并说明如何复制和填写,用户不应修改源代码。 有文件写入能力时,直接创建这些文件;有附件能力时提供可下载的压缩包。无法生成附件时,按“相对路径 + 完整文件内容”逐个输出,明确告诉用户保存位置和编码,不能声称附件已生成。没有明确要求,不额外生成 Markdown 文档。 ### 程序本身要便于普通用户使用 main.py 使用清晰的主入口,将业务逻辑与参数解析分开。提供 --help 中文参数说明;提供 --demo,读取交付包中的示例并输出到独立的演示结果目录。没有参数时显示中文操作入口或交互引导,不直接处理未知目录、不自动执行有副作用的线上操作。 文件处理类程序提供明确的 --input 和 --output 参数;其他类型程序使用符合业务的参数。用户自己的输入通过参数、文件选择或简单配置指定,不靠修改代码切换。交付说明中必须有一条处理实际业务数据的完整命令,不能只有 --help 或 --demo。 路径使用 pathlib 等可靠方式处理。内置资源相对程序目录定位;用户传入的路径按说明中的规则解析。支持中文和空格路径。示例结果放入 output/demo 下,正常业务结果与示例分开;默认不覆盖原始输入或已有结果,重名时生成明确的新路径或要求用户选择。 输入校验要覆盖文件存在性、格式、必要字段和业务边界。成功时显示处理数量、结果文件和完整保存位置;失败时用中文说明问题及下一步操作,详细异常写入日志。成功退出码为 0,失败返回非零,不能捕获所有异常后仍报告成功。 代码命名、缩进、空行和注释统一。注释解释业务规则、参数和边界,不逐行翻译代码。复用已有函数,不堆积重复逻辑、无用依赖和无效分支。 需要外部服务、数据库、浏览器、FFmpeg、模型或账号时单独列明准备条件。真实凭据不得写进源码、示例或日志。演示模式可以使用明确标注的本地样例或模拟服务,但必须说明与真实联调的区别。 ### 统一依赖与安装入口 默认以 requirements.txt 作为交付包唯一的完整安装清单,包含本程序及所附测试实际需要的第三方依赖;默认使用标准库 unittest,不为了测试额外引入框架。固定经过兼容性验证的直接和间接依赖版本,不从开发机混杂的全局环境盲目导出。无第三方依赖时文件留空或只写以 # 开头的说明,不能把普通中文句子写成依赖项;安装命令仍应能正常完成。 已有工程使用其他锁文件时,保留其唯一维护入口,并从该入口生成一致的交付清单,不能手工维护两套冲突版本。开发和打包工具不混入普通用户安装流程;确实需要的测试工具须在安装说明中交代。 源码在项目目录创建 .venv。安装、示例、业务运行和测试都使用该环境内同一个 Python,通过“该解释器 -m pip”安装依赖,不混用全局 pip,也不要求用户先激活环境。 安装依赖.bat 应定位自身所在目录,检查 Python 是否存在及版本是否支持,再创建或复用 .venv、安装清单、执行 pip check。每个关键步骤都检查退出状态;失败立即停止,保留可读提示,不能继续显示“安装成功”。重复安装不得删除用户数据、配置或结果。 没有 Python 时,安装入口应清楚提示缺少的运行环境;使用说明提供 Python 官方下载入口、具体支持版本和架构、对应安装器的安装步骤及安装后的检测命令。若当前提供的是安装管理器,要写清如何安装实际运行时,不能把管理器安装完成当成 Python 运行时已就绪。不要要求用户搜索下载地址,也不要用需要 Python 的脚本解决“未安装 Python”。 默认使用普通用户权限,不要求管理员运行,不修改全局软件源、不关闭证书校验、不修改 PowerShell 执行策略。首次准备环境和以后运行分开;每次启动不重新安装或升级依赖。离线使用时必须实际提供兼容的依赖包及所需资源,并给出离线安装命令;缺少资源时如实说明。 各 .bat 入口使用同一 .venv、同一业务入口和同一套参数规则,正确引用含空格路径,失败窗口不一闪而过。调用 Python 后立即保存退出码,再显示提示或暂停,最后原样返回该退出码,不能因暂停或其他命令把失败变成成功。移动项目后 .venv 可能失效,说明如何只重建环境而保留业务文件,不将开发机的 .venv 当作可移植交付内容。 ### 用例必须有文件、有预期、有断言 examples/input.* 提供小而完整的真实格式样例,明确标注为示例数据;examples/expected.* 独立给出应有的处理结果。字段、编码、分隔符、日期和数值格式与程序一致。预期结果必须根据业务规则确定,不能通过再次调用被测函数来生成期望值。 examples/cases.json 至少包含一条正常用例、一条非法输入用例和一条关键边界用例。每项写清 id、用例名称、输入文件或输入值、执行参数、预期退出码、预期结果或错误提示,以及必要的结果核对方法。引用的文件必须全部交付。案例和命令都不能使用不存在的路径。 tests/test_main.py 必须是真正可执行的测试,读取用例资料、调用业务功能或程序入口并作断言。检查输出内容、退出状态或应发生的异常;不能只打印“通过”,也不能把没有异常当作业务结果正确。 测试输出使用临时目录,与正式 output 和用户输入分开;不修改交付样例或真实业务文件。涉及网络时,分清本地模拟测试和需要凭据的集成测试,未执行的集成测试不能计为通过。 根据项目补充空数据、缺字段、错误格式、重复数据、中文及空格路径、重名输出等相关场景。时间、随机数等不固定字段要固定条件或说明比较规则,不能只删掉全部差异来让测试通过。 ### 把安装和执行写成可以照抄的步骤 使用说明.txt 必须面向第一次使用的人,先说明文件解压到哪里、如何在项目文件夹打开 PowerShell,再按下面的顺序写。每步给出完整命令、预期看到的结果、失败后怎么处理。命令单独一行,不夹杂解释文字,不把终端提示符当成命令的一部分。 以下是新建项目的 Windows PowerShell 命令结构。交付时必须按实际选择的 Python 版本、项目入口和参数核对并生成可执行命令;如果 Python 默认版本不适用,要给出明确的版本选择参数,不能保留 X.Y 之类占位符。 1. 首次安装:安装已确认兼容的 Python,重新打开终端,在项目目录检查解释器、创建环境、安装全部依赖并检查冲突。 ```powershell py --version py -m venv .venv & ".\.venv\Scripts\python.exe" -m pip install -r ".\requirements.txt" & ".\.venv\Scripts\python.exe" -m pip check ``` 如果电脑只有 python 命令而没有 py,须给出检测版本后使用 python -m venv .venv 的完整替代步骤;环境建立后的命令仍统一调用 .venv 中的解释器。某一步失败先解决该步,不要求用户继续执行后续命令。 2. 运行示例:执行下面命令,再打开明确的结果文件,与交付的预期结果核对。说明示例处理了什么、正确结果是什么、再次运行会生成什么文件。 ```powershell & ".\.venv\Scripts\python.exe" ".\main.py" --demo ``` 3. 运行测试:在项目目录执行以下命令,说明应发现的用例数和成功、失败的判断方法;没有发现测试也必须判为验证未完成。 ```powershell & ".\.venv\Scripts\python.exe" -m unittest discover -s ".\tests" -p "test_*.py" -v ``` 4. 处理自己的数据:说明输入文件应放哪里、需要哪些字段、如何填写参数,并给出与真实实现一致的完整命令。文件处理项目必须包含 --input 和 --output 的使用示例,路径包含空格时加引号。除了用户自己的文件路径和业务参数,不让用户修改命令中的解释器、程序名或脚本内容。 ```powershell & ".\.venv\Scripts\python.exe" ".\main.py" --help ``` 上面的 --help 只用于查看帮助,不能替代实际业务执行命令。请根据本次实现另外写出那条命令,并解释它的每个参数、结果位置和覆盖规则。 5. 以后使用:说明哪些安装步骤不必重复,如何通过启动程序.bat、运行示例.bat、运行测试.bat 完成对应操作,或直接使用相同的 PowerShell 命令。说明如何正常退出,以及发生错误时查看哪个日志文件。 仅对用户实际要求的操作系统提供步骤。需要兼容 Linux 或 macOS 时,分别提供经过核对的命令和解释器路径,不混用 Windows 路径或 .bat。 ## 交付与验收 ### 实际验证后再交付 有执行环境时,从干净的项目环境按使用说明逐条执行:依赖安装、pip check、示例处理、结果比对、自动化测试和至少一条正常业务命令。检查 .py 语法、文件是否齐全、说明中的路径和命令是否有效,以及程序失败时是否返回正确状态。 按目标平台检查双击入口、中文和空格路径、重复安装、再次运行、输入错误与输出重名。不能因为开发机能运行就宣称所有用户电脑均已验证;没有目标系统、外部服务或网络条件时,将对应项标为未执行并说明所缺条件。 输出真实验证记录:系统与 Python 版本、执行命令、测试发现数量、通过与失败情况、退出状态、示例结果核对和未验证项。预期输出、实际输出、待执行计划分开写,不伪造运行日志、截图、文件或测试结论。 最后按这个顺序交付: 1. 程序用途与运行条件。 2. 完整文件下载入口;无法附文件时给文件清单和逐文件完整内容。 3. 首次安装步骤及命令。 4. 示例输入、预期结果、运行示例命令。 5. 使用自己数据的执行步骤、完整命令及参数解释。 6. 测试用例文件、测试命令和实际验证结果。 7. 以后启动方式、结果与日志位置,以及与本项目有关的常见问题处理。 ### 本条完成检查 - 提供完整 main.py 及必要源码、实际扩展名的示例输入和 expected 文件、cases.json、tests/test_main.py;区分示例、预期与带断言的测试,不留 TODO。 - 提供唯一依赖清单、项目 .venv、四个 .bat 入口和使用说明.txt,包含未安装 Python 的官方安装路径、可复制 PowerShell 安装及真实业务运行命令。 - 核对双击与命令入口一致,按实际条件报告安装、pip check、示例对比、测试数量和退出码;零测试、未运行及未真机验证均不得写通过。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 - [Python 官方下载](https://www.python.org/downloads/):运行环境获取入口。 - [Python Packaging User Guide:隔离环境与依赖安装](https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/)。 - [pip:可重复安装](https://pip.pypa.io/en/stable/topics/repeatable-installs/)。 - [Python unittest:测试与用例发现](https://docs.python.org/3/library/unittest.html)。 以上资料用于核对安装与测试方法;文件清单、中文入口、用例组织和交付顺序为本提示词的要求,不代表已替未来生成的程序完成运行验证。
核对 Python 项目的本地检查与持续集成配置,解决本地通过、流水线失败及自动格式化改动未复核的问题。
## 任务目标 请检查当前 Python 工程的本地代码规范与持续集成是否一致。 以核查和评审为主,给出有证据的判断及可复核的修改建议;本次用户另有明确实现要求时,按其授权范围执行。 ## 输入信息(选填) 两项均可留空,也可直接用一句话说明目标并附上已有资料。无需自行整理版本、配置或完整需求表;能读取的内容由执行者补齐。 检查不一致现象:从最近已提供的 CI 失败、本地命令差异或当前变更开始;没有失败说明时比较现有本地检查入口与流水线的解释器、工具、参数和文件范围。 仓库或检查日志:自动读取 pyproject、锁文件、pre-commit、CI 定义、脚本与可访问的本地或远端检查记录,不要求用户重新抄写配置。 ## 信息不完整时 先使用本次对话中已经说明的信息;用户留空、写“暂无/不清楚”或未替换输入标记,都按缺失处理,不当作真实路径、参数或业务值。已能从资料确定的内容不重复询问,不编造文件、日志、接口、业务值或执行结果。在用户已授权的范围内读取相关工程和材料,不为补齐输入擅自扩大操作范围。 ### 优先确认 - 逐项比较 Python 与工具版本、工作目录、安装步骤、配置加载位置及实际检查文件。 - 识别提交钩子是否安装、哪些 hook 会自动修改文件,以及本次未提交内容可能受到的影响。 - 定位排除规则、换行、缓存和失败日志的证据,区分环境错误、自动格式化与源码问题。 ### 可采用的默认处理 - 默认只读比较与非改写检查,不安装 hook 或执行会自动改写文件的修复命令;明确修复时仅处理已定位差异。 - 沿用工程工具和版本,优先修复加载、范围或环境不一致,不升级全部依赖或删除全部缓存。 - 无法访问远端日志时仅判断本地可证实事实,不声称流水线已恢复或自动推送改动。 ### 必须有依据的事项 - 本地与流水线对同一文件采用互相冲突的团队规则,且没有权威配置可确定应保留哪套行为。 只有缺口会改变业务结果、权限边界或关键实现,且无法从现有资料确认时,才集中提出最多 3 个关键问题;说明影响,并继续完成不依赖答案的部分。一般命名、排版和可逆实现细节按现有约定决定,不逐项等待确认。 ### 资料仍不足时的交付 - 没有远端权限时交付本地复现命令、配置差异和需要定位的具体 CI 步骤,远端结论保留待核验。 - 只有失败日志时提取工具、路径、规则与候选根因,给最小复现检查顺序。 ## 执行要求 按本项目的工具版本、启用规则和检查范围核对本地与流水线配置。使用 pre-commit 时同时检查提交钩子和流水线的执行方式;不要把其他工程的贡献检查要求直接当成本项目配置。 1. 读取真实检查配置和流水线定义,记录检查工具、版本、文件范围、解释器及运行目录。比较本地和远端是否使用同一套参数与依赖,不根据开发者电脑上“已经安装”推断持续集成环境一致。 2. 确认提交钩子是否生效,以及哪些工具会自动修改文件。区分格式化导致的检查失败与真实代码缺陷,复核修改后的差异再继续检查,不能把工具修改悄悄覆盖到用户尚未提交的其他工作上。 3. 审查排除项和忽略规则,合理排除生成产物与外部代码,保留本次业务源码检查。需要临时豁免时写明具体文件、原因和影响范围,不用大范围关闭规则换取流水线变绿。 4. 逐条定位失败来源,判断是版本差异、配置加载错误、文件换行差异、缓存问题还是源码问题。为每个判断提供日志位置或复现步骤,避免一遇失败就升级所有依赖或删除全部缓存。 5. 形成最小配置或代码改动,处理真实问题并保留既有接口行为。若引入新工具,说明它补充的检查能力及与已有工具的边界;不要把格式工具的通过结果当成业务测试或安全审查结论。 6. 在与流水线相同的条件下执行受影响检查,查看自动修复后的最终差异,再运行关联业务验证。记录退出结果、检查文件及剩余告警;只有实际执行成功才能标记通过。 ## 交付与验收 输出:环境差异表、根因与证据、配置或代码修复、复验记录。源码本身无问题时明确是环境或配置导致,避免无意义改动。不能访问远端日志时提供需要补充的最少信息和本地排查路径,不宣称持续集成已恢复,也不自动推送或提交未授权改动。 ### 本条完成检查 - 输出版本、命令、工作目录与文件范围差异表,每个根因附日志或配置位置。 - 如实施修复,复核自动改写差异并保留无关内容,用与 CI 一致的条件复验。 - 明确格式检查、业务测试及远端 CI 各自结果,未运行或仅本地通过不得合并宣称全部恢复。 按本条要求组织结果,使用简洁中文和一致的编号、术语、缩进及空行;已有项目格式优先。只说明实际完成的内容,将采用的假设、未完成项和缺少的条件写在相关位置,不额外生成无关文档。未执行、无法复现或缺少证据的检查如实标注,不宣称已通过或已有性能收益。 ## 参考资料与适用边界 官方来源(2026-09-08 核验): - [百度飞桨《代码风格检查指南》](https://www.paddlepaddle.org.cn/documentation/docs/zh/dev_guides/git_guides/codestyle_check_guide_cn.html)