4 天以前 ce4001e0b03190966aee20eb7653aa0727e3db67
feat(upkeep): 支持设备保养计划批量新增功能

- 将设备选择器改为多选模式,支持批量选择设备
- 新增批量新增接口方法 batchAddUpkeep
- 表单数据结构从单设备ID改为设备ID数组
- 实现多设备规格型号显示逻辑,用顿号分隔
- 更新表单提交逻辑,区分编辑、批量新增和单设备新增场景
- 添加保养项目字段到表单数据结构中
已修改2个文件
64 ■■■■ 文件已修改
src/api/equipmentManagement/upkeep.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/PlanModal.vue 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/equipmentManagement/upkeep.js
@@ -52,6 +52,19 @@
};
/**
 * @desc 设备保养批量新增
 * @param {批量新增表单} data
 * @returns
 */
export const batchAddUpkeep = (data) => {
  return request({
    url: "/device/maintenance/batchAdd",
    method: "post",
    data,
  });
};
/**
 * @desc 新增保养表单
 * @param {新增保养表单} data
 * @returns
src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -10,7 +10,8 @@
    <el-form :model="form" label-width="100px">
      <el-form-item label="设备名称">
        <el-select
          v-model="form.deviceLedgerId"
          v-model="form.deviceIds"
          multiple
          @change="setDeviceModel"
          placeholder="请选择设备"
          filterable
@@ -83,6 +84,7 @@
import FormDialog from "@/components/Dialog/FormDialog.vue";
import {
  addUpkeep,
  batchAddUpkeep,
  editUpkeep,
  getUpkeepById,
} from "@/api/equipmentManagement/upkeep";
@@ -110,17 +112,20 @@
};
const { form, resetForm } = useFormData({
  deviceLedgerId: undefined, // 设备Id
  deviceIds: [], // 设备Id列表(批量多选)
  deviceName: undefined, // 设备名称
  deviceModel: undefined, // 规格型号
  maintenancePlanTime: undefined, // 计划保养日期
  createUser: undefined, // 录入人
  maintenanceItem: undefined, // 保养项目
  status: 0, //保修状态
});
const setDeviceModel = (deviceId) => {
  const option = deviceOptions.value.find((item) => item.id === deviceId);
  form.deviceModel = option.deviceModel;
const setDeviceModel = () => {
  const selected = deviceOptions.value.filter((item) =>
    form.deviceIds.includes(item.id)
  );
  form.deviceModel = selected.map((item) => item.deviceModel).join('、');
};
/**
@@ -128,7 +133,7 @@
 * @param data 设备信息
 */
const setForm = (data) => {
  form.deviceLedgerId = data.deviceLedgerId;
  form.deviceIds = [data.deviceLedgerId];
  form.deviceName = data.deviceName;
  form.deviceModel = data.deviceModel;
  form.createUser = Number(data.createUser);
@@ -136,6 +141,7 @@
  form.maintenancePlanTime = dayjs(data.maintenancePlanTime).format(
    "YYYY-MM-DD HH:mm:ss"
  );
  form.maintenanceItem = data.maintenanceItem;
};
// 用户列表
@@ -159,9 +165,36 @@
const sendForm = async () => {
  loading.value = true;
  try {
    const { code } = id.value
      ? await editUpkeep({ id: unref(id), ...form })
      : await addUpkeep(form);
    const common = {
      maintenancePlanTime: form.maintenancePlanTime,
      createUser: form.createUser,
      maintenanceItem: form.maintenanceItem,
    };
    let code;
    if (id.value) {
      // 编辑计划(单设备)
      const res = await editUpkeep({
        id: unref(id),
        deviceLedgerId: form.deviceIds[0],
        ...common,
        status: form.status,
      });
      code = res.code;
    } else if (form.deviceIds.length > 1) {
      // 批量新增:多台设备共用保养项目
      const res = await batchAddUpkeep({
        deviceIds: form.deviceIds,
        ...common,
      });
      code = res.code;
    } else {
      // 单设备新增
      const res = await addUpkeep({
        deviceLedgerId: form.deviceIds[0],
        ...common,
      });
      code = res.code;
    }
    if (code == 200) {
      ElMessage.success(`${id.value ? "编辑" : "新增"}计划成功`);
      visible.value = false;