## Context

旧 Vue 运行时代码、样式、Vite 配置与包文件散落在根目录；phone/wechat 前后端依赖旧表与独立数据源。用户要求彻底删除旧业务实现，但保留不可操作的界面参考，并将新资产持久层统一到 `.env` 主数据源。

## Goals / Non-Goals

**Goals:**

- 将可构建的 Vite 应用完整迁入 `frontend/`。
- 保留 `/reference/phone` 与 `/reference/wechat` 静态页面，且不发送旧 API 请求。
- 删除旧 phone/wechat 后端模块和双数据源配置。
- 为全部 `as_*` 表新增 Entity 与 Mapper。

**Non-Goals:**

- 不创建 Service、Controller、DTO、鉴权或真实资产 API。
- 不读取 `.env`、连接数据库或操作表。
- 不迁移旧数据，也不维持旧接口兼容。

## Decisions

- `frontend/` 作为独立 npm/Vite 根目录；保留 Vite `base: '/assets/'` 与 5173/4173 端口。
- 参考界面以新的 Vue 静态组件重建，不导入旧 `app-v2.js`，按钮禁用且无 `fetch`。
- 删除 `PhoneMybatisConfig`，主应用只扫描 `com.xyw.console.asset.mapper`；资产 Mapper 由 Spring 主数据源创建。
- Entity 显式映射所有列；JSON 列为 `String`，时间列为 `LocalDateTime`，不引入 TypeHandler。

## Risks / Trade-offs

- [旧接口消失] → 静态参考页替代旧业务页，并在按钮处提示不可操作。
- [前端搬迁路径失效] → 同步迁移 package、Vite、Playwright、启动脚本与 README，并运行构建和 E2E。
- [删除错误文件] → 仅删除清点到的旧 phone/wechat 源文件；不删除 `.env`、数据库或图片素材。
- [软删除规则未自动执行] → 本期 Mapper 不提供业务查询；后续 Service 显式处理 `delete_time = 0`。

## Migration Plan

1. 先写 Playwright 失败测试，定义两条无 API 参考路由。
2. 创建新的 `frontend/` Vite 应用和静态参考页，通过测试后才删除旧前端运行时代码。
3. 删除旧后端 phone/wechat 目录和独立数据源，再新增 asset Entity/Mapper。
4. 执行前端构建、Playwright 与后端编译；失败时恢复到变更前的 Git 状态，不执行数据库操作。

## Open Questions

- 无；用户已确认旧接口、旧表和旧模块不需要兼容。
