gaoluyang
2026-06-22 bc365ef47ae4e01754aeadbae26170e11c9bb80e
src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
@@ -25,18 +25,11 @@
          style="width: 100%"
        />
      </el-form-item>
      <el-form-item label="保养状态">
        <el-select v-model="form.status">
          <el-option label="待保养" :value="0"></el-option>
          <el-option label="完结" :value="1"></el-option>
          <el-option label="失败" :value="2"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="保养结果">
        <el-input
          v-model="form.maintenanceResult"
          placeholder="请输入保养结果"
          type="text" />
        <el-select v-model="form.maintenanceResult" placeholder="请选择保养结果">
          <el-option label="维修" value="0" />
          <el-option label="完好" value="1" />
        </el-select>
      </el-form-item>
      <el-form-item label="设备备件">
        <el-select v-model="form.sparePartsIds" :loading="loadingSparePartOptions" placeholder="请选择设备备件" multiple filterable>
@@ -73,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>
@@ -84,7 +80,7 @@
import dayjs from "dayjs";
import useUserStore from "@/store/modules/user";
import { ElMessage } from "element-plus";
import {computed, ref} from "vue";
import {computed, getCurrentInstance, ref} from "vue";
import {getSparePartsList} from "@/api/equipmentManagement/spareParts.js";
defineOptions({
@@ -92,6 +88,7 @@
});
const emits = defineEmits(["ok"]);
const { proxy } = getCurrentInstance();
// 保存计划保养记录的id
const planId = ref();
@@ -100,11 +97,11 @@
const userStore = useUserStore();
const { form, resetForm } = useFormData({
  maintenanceActuallyName: undefined, // 实际保养人
  maintenanceActuallyTime: undefined, // 实际保养日期
  maintenanceResult: undefined, // 保养结果
  status: 0, // 保养状态
  maintenanceActuallyName: undefined,
  maintenanceActuallyTime: undefined,
  maintenanceResult: undefined,
  sparePartsIds: [],
  maintenanceContent: undefined,
});
const sparePartOptions = ref([])
@@ -121,12 +118,11 @@
  form.maintenanceActuallyName =
    data.maintenanceActuallyName ?? userStore.nickName;
  form.maintenanceActuallyTime =
    data.maintenanceActuallyTime
    data.maintenanceActuallyTime
      ? dayjs(data.maintenanceActuallyTime).format("YYYY-MM-DD HH:mm:ss")
      : dayjs().format("YYYY-MM-DD HH:mm:ss");
  form.maintenanceResult = data.maintenanceResult;
  form.status = 1; // 默认状态为完结
  // multiple 选择器要求数组;后端常返回 "1,2,3"
  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") {
@@ -167,6 +163,7 @@
    }
    const data = {
      id: planId.value,
      maintenanceContent: form.maintenanceContent,
      ...form,
      sparePartsIds: form.sparePartsIds ? form.sparePartsIds.join(",") : "",
      sparePartsQty: form.sparePartsIds