# Tasks ## 勘察明细页(`client/src/views/dispatch/survey/detail.vue`,两处表单) - [x] Task 1: 楼层选项生成与表单改造 - [x] 1.1 楼层选项工具:新增 `buildFloorOptions(building)`(地下 负N层=值 -N → 地上 N层=值 N,无建筑返回空数组),与空间拓扑页惯例一致 - [x] 1.2 `loadBuildingOptions` 加载时保留完整建筑信息(新增 `buildingList: CustomerBuildingInfo[]` ref,供楼层计算使用;buildingOptions 仍映射 label/value) - [x] 1.3 新增两个 computed:`nodeFloorOptions`(按 `nodeForm.buildingId` 从 buildingList 匹配)与 `equipFloorOptions`(按 `equipForm.buildingId`) - [x] 1.4 模板两处「所在楼层」由 `a-input` 改为 `a-select`(`v-model` 绑定 `nodeForm.floorNo` / `equipForm.floorNo`,`:options` 对应 computed,`:not-found-content` 未选建筑时提示「请先选择所属建筑」,allow-clear) - [x] 1.5 两处「所属建筑」`a-select` 增加 `@change` 清空对应 `floorNo`(切换建筑重置楼层) ## 设备管理台账页(`client/src/views/device/equipment/index.vue`) - [x] Task 2: 楼层选项生成与表单改造 - [x] 2.1 `loadBuildingOptions` 加载时保留完整建筑信息(`buildingList` ref);新增 `buildFloorOptions` 工具(与 Task 1 同规则) - [x] 2.2 新增 computed `floorOptions`(按 `formData.buildingId` 匹配) - [x] 2.3 模板「所在楼层」由 `a-input` 改为 `a-select`(绑定 `formData.floorNo`,`:options`,未选建筑提示「请先选择所属建筑」,allow-clear) - [x] 2.4 「所属建筑」`a-select` 增加 `@change` 清空 `formData.floorNo`(切换建筑重置楼层) ## 验证 - [x] Task 3: 编译 + 浏览器实测 - [x] 3.1 `client` 编译通过(`npm run check`,vue-tsc) - [x] 3.2 浏览器实测:勘察明细页与设备台账页选择「所属建筑」后,「所在楼层」下拉按该建筑地上/地下层数生成(如地上 3 层/地下 1 层 → 负1层、1层、2层、3层);切换建筑清空楼层;未选建筑无选项 # Task Dependencies - Task 1 与 Task 2 文件独立,可并行 - Task 3 依赖 Task 1、2