2 天以前 ae30037d1e78add57b8aceb4f100019c097dfb2c
设备保养增加保养内容字段
已添加1个文件
已修改4个文件
111 ■■■■■ 文件已修改
.gitignore 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
doc/maintenance_content.md 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/formDia.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/index.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -21,3 +21,6 @@
package-lock.json
yarn.lock
# Claude
.claude/
doc/maintenance_content.md
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
# è®¾å¤‡ä¿å…»å†…容字段
## æ¶‰åŠé¡µé¢
- ä¿å…»å®šæ—¶ä»»åŠ¡ç®¡ç†é¡µé¢ï¼ˆæ–°å¢ž/编辑弹窗、列表)
- è®¾å¤‡ä¿å…»è®°å½•管理页面(列表、详情弹窗、确认保养弹窗)
## API
### ä¿å…»å®šæ—¶ä»»åŠ¡
| æ–¹æ³• | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| POST | /deviceMaintenanceTask/add | æ–°å¢žå®šæ—¶ä»»åŠ¡ï¼ˆæ–°å¢ž maintenanceContent å­—段) |
| POST | /deviceMaintenanceTask/update | ä¿®æ”¹å®šæ—¶ä»»åŠ¡ï¼ˆæ–°å¢ž maintenanceContent å­—段) |
| GET | /deviceMaintenanceTask/listPage | åˆ—表查询(返回新增字段) |
**新增请求/响应参数:**
| å‚æ•° | ç±»åž‹ | å¿…å¡« | è¯´æ˜Ž |
|------|------|------|------|
| maintenanceContent | String | å¦ | ä¿å…»å†…容,最长2000字 |
### è®¾å¤‡ä¿å…»è®°å½•
| æ–¹æ³• | è·¯å¾„ | è¯´æ˜Ž |
|------|------|------|
| POST | /device/maintenance | æ–°å¢žä¿å…»è®°å½•(新增 maintenanceContent å­—段) |
| PUT | /device/maintenance | ä¿®æ”¹ä¿å…»è®°å½•(新增 maintenanceContent å­—段) |
| POST | /device/maintenance/maintenance | ç¡®è®¤ä¿å…»ï¼ˆæ–°å¢ž maintenanceContent å­—段) |
| GET | /device/maintenance/page | åˆ—表查询(返回新增字段) |
| GET | /device/maintenance/{id} | è¯¦æƒ…查询(返回新增字段) |
| POST | /device/maintenance/export | å¯¼å‡ºExcel(新增"保养内容"列) |
**新增请求/响应参数:**
| å‚æ•° | ç±»åž‹ | å¿…å¡« | è¯´æ˜Ž |
|------|------|------|------|
| maintenanceContent | String | å¦ | ä¿å…»å†…容,最长2000字 |
**说明:** å®šæ—¶ä»»åŠ¡è§¦å‘ç”Ÿæˆä¿å…»è®°å½•æ—¶ï¼Œä¼šè‡ªåŠ¨å°†å®šæ—¶ä»»åŠ¡çš„ `maintenanceContent` å¤åˆ¶åˆ°ä¿å…»è®°å½•中。
## å‰ç«¯ä¿®æ”¹ç‚¹
### 1. ä¿å…»å®šæ—¶ä»»åŠ¡ - æ–°å¢ž/编辑弹窗
```html
<el-form-item label="保养内容" prop="maintenanceContent">
  <el-input v-model="form.maintenanceContent" type="textarea" :rows="3" placeholder="请输入保养内容" maxlength="2000" show-word-limit />
</el-form-item>
```
### 2. ä¿å…»å®šæ—¶ä»»åŠ¡ - åˆ—表
```html
<el-table-column label="保养内容" prop="maintenanceContent" min-width="150" show-overflow-tooltip />
```
### 3. è®¾å¤‡ä¿å…»è®°å½• - åˆ—表
```html
<el-table-column label="保养内容" prop="maintenanceContent" min-width="150" show-overflow-tooltip />
```
### 4. è®¾å¤‡ä¿å…»è®°å½• - è¯¦æƒ…弹窗
```html
<el-form-item label="保养内容">
  <span>{{ detail.maintenanceContent }}</span>
</el-form-item>
```
### 5. è®¾å¤‡ä¿å…»è®°å½• - ç¡®è®¤ä¿å…»å¼¹çª—(可选填写/修改)
```html
<el-form-item label="保养内容" prop="maintenanceContent">
  <el-input v-model="confirmForm.maintenanceContent" type="textarea" :rows="3" placeholder="请输入保养内容" maxlength="2000" show-word-limit />
</el-form-item>
```
### 6. å¯¼å‡º
导出Excel自动新增"保养内容"列,无需前端额外处理。
## æ³¨æ„äº‹é¡¹
- æ‰§è¡Œæ•°æ®åº“迁移脚本 `doc/20260617_device_maintenance_content.sql` åŽå†éƒ¨ç½²
- å®šæ—¶ä»»åŠ¡ç”Ÿæˆçš„ä¿å…»è®°å½•ä¼šè‡ªåŠ¨æºå¸¦å®šæ—¶ä»»åŠ¡çš„ä¿å…»å†…å®¹ï¼Œæ— éœ€æ‰‹åŠ¨å¡«å†™
- ä¿å…»è®°å½•的保养内容可在确认保养时修改
src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
@@ -66,6 +66,9 @@
          </div>
        </div>
      </el-form-item>
      <el-form-item label="保养内容" prop="maintenanceContent">
        <el-input v-model="form.maintenanceContent" type="textarea" :rows="3" placeholder="请输入保养内容" maxlength="2000" show-word-limit />
      </el-form-item>
    </el-form>
  </FormDialog>
</template>
@@ -98,6 +101,7 @@
  maintenanceActuallyTime: undefined,
  maintenanceResult: undefined,
  sparePartsIds: [],
  maintenanceContent: undefined,
});
const sparePartOptions = ref([])
@@ -118,6 +122,7 @@
      ? dayjs(data.maintenanceActuallyTime).format("YYYY-MM-DD HH:mm:ss")
      : dayjs().format("YYYY-MM-DD HH:mm:ss");
  form.maintenanceResult = data.maintenanceResult;
  form.maintenanceContent = data.maintenanceContent || "";
  if (Array.isArray(data?.sparePartsIds)) {
    form.sparePartsIds = data.sparePartsIds.map((v) => Number(v)).filter((v) => Number.isFinite(v));
  } else if (typeof data?.sparePartsIds === "string") {
@@ -158,6 +163,7 @@
    }
    const data = {
      id: planId.value,
      maintenanceContent: form.maintenanceContent,
      ...form,
      sparePartsIds: form.sparePartsIds ? form.sparePartsIds.join(",") : "",
      sparePartsQty: form.sparePartsIds
src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -189,6 +189,13 @@
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="24">
          <el-form-item label="保养内容" prop="maintenanceContent">
            <el-input v-model="form.maintenanceContent" type="textarea" :rows="3" placeholder="请输入保养内容" maxlength="2000" show-word-limit />
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
  </FormDialog>
</template>
@@ -233,6 +240,7 @@
    isEnabled: 1,
    inspector: undefined,
    remarks: "",
    maintenanceContent: "",
    frequencyType: "",
    frequencyDetail: "",
    week: "",
@@ -383,6 +391,7 @@
    isEnabled: 1,
    inspector: undefined,
    remarks: "",
    maintenanceContent: "",
    frequencyType: "",
    frequencyDetail: "",
    week: "",
src/views/equipmentManagement/upkeep/index.vue
@@ -168,7 +168,7 @@
        @pagination="changePage"
      >
        <template #maintenanceResultRef="{ row }">
          <div>{{ row.maintenanceResult || '-' }}</div>
          <div>{{ { "0": "ç»´ä¿®", "1": "完好" }[row.maintenanceResult] || row.maintenanceResult || "-" }}</div>
        </template>
        <template #statusRef="{ row }">
          <el-tag v-if="row.status === 2" type="danger">失败</el-tag>
@@ -356,6 +356,7 @@
    },
    { prop: "registrant", label: "登记人", minWidth: 100 },
    { prop: "registrationDate", label: "登记日期", minWidth: 100 },
    { prop: "maintenanceContent", label: "保养内容", minWidth: 150, showOverflowTooltip: true },
    {
        label: "是否启用",
        prop: "isEnabled",
@@ -427,6 +428,7 @@
        dataType: "slot",
        slot: "maintenanceResultRef",
    },
    { prop: "maintenanceContent", label: "保养内容", minWidth: 150, showOverflowTooltip: true },
    {
        label: "状态",
        align: "center",