yyb
8 天以前 271adcc0c4fc0db987faee1c757a1c38a0424815
设备保养新增保养人计划
已修改1个文件
80 ■■■■ 文件已修改
src/views/equipmentManagement/upkeep/Form/PlanModal.vue 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -32,19 +32,37 @@
          disabled
        />
      </el-form-item>
      <el-form-item label="录入人">
        <el-input
          :model-value="registrantDisplayName"
          disabled
          placeholder="当前登录用户"
        />
      </el-form-item>
      <el-form-item label="保养人">
        <el-select
          v-model="form.maintenancePerson"
          filterable
          default-first-option
          :reserve-keyword="false"
          placeholder="请选择保养人"
          clearable
          style="width: 100%"
        >
          <el-option
            v-for="item in userList"
            :key="'mp-' + item.userId"
            :label="item.nickName"
            :value="item.userId"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="保养项目">
        <el-input
          v-model="form.maintenanceLocation"
          type="textarea"
          :rows="3"
          placeholder="请输入保养项目"
        />
      </el-form-item>
      <el-form-item label="录入人">
        <el-input
          :model-value="registrantDisplayName"
          disabled
          placeholder="当前登录用户"
        />
      </el-form-item>
      <el-form-item v-if="id" label="保修状态">
@@ -98,7 +116,8 @@
import { Plus } from "@element-plus/icons-vue";
import useFormData from "@/hooks/useFormData";
import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
import { computed, onMounted, ref } from "vue";
import { userListNoPageByTenantId } from "@/api/system/user.js";
import { computed, nextTick, onMounted, ref, unref } from "vue";
import dayjs from "dayjs";
import useUserStore from "@/store/modules/user.js";
import request from "@/utils/request";
@@ -130,9 +149,16 @@
const loading = ref(false);
const deviceOptions = ref([]);
const userList = ref([]);
const loadDeviceName = async () => {
  const { data } = await getDeviceLedger();
  deviceOptions.value = data;
};
const loadUserList = async () => {
  const res = await userListNoPageByTenantId();
  userList.value = res.data || [];
};
const { form, resetForm } = useFormData({
@@ -141,6 +167,7 @@
  deviceModel: undefined,
  maintenanceLocation: undefined,
  maintenancePlanTime: undefined,
  maintenancePerson: undefined,
  createUser: undefined,
  status: 0,
});
@@ -267,17 +294,46 @@
  form.maintenanceLocation = data.maintenanceLocation;
  form.status = data.status;
  syncCreateUserFromLogin();
  if (data.maintenancePersonId) {
    form.maintenancePerson = data.maintenancePersonId;
  } else if (data.maintenancePerson) {
    const matched = userList.value.find(
      (u) => u.nickName === data.maintenancePerson
    );
    if (matched) {
      form.maintenancePerson = matched.userId;
    }
  }
  form.maintenancePlanTime = dayjs(data.maintenancePlanTime).format(
    "YYYY-MM-DD HH:mm:ss"
  );
};
const buildSubmitPayload = () => {
  const payload = { ...form };
  const maintenancePersonUserId = form.maintenancePerson;
  if (maintenancePersonUserId) {
    const maintainer = userList.value.find(
      (u) => String(u.userId) === String(maintenancePersonUserId)
    );
    if (maintainer) {
      payload.maintenancePersonId = maintainer.userId;
      payload.maintenancePerson = maintainer.nickName;
    }
  }
  return payload;
};
onMounted(() => {
  loadDeviceName();
  loadUserList();
});
const openEdit = async (editId) => {
  resetAttachmentState();
  if (!userList.value.length) {
    await loadUserList();
  }
  const { data } = await getUpkeepById(editId);
  id.value = editId;
  visible.value = true;
@@ -290,15 +346,16 @@
  syncCreateUserFromLogin();
  loading.value = true;
  try {
    const payload = buildSubmitPayload();
    if (id.value) {
      const { code } = await editUpkeep({ id: unref(id), ...form });
      const { code } = await editUpkeep({ id: unref(id), ...payload });
      if (code == 200) {
        ElMessage.success("编辑计划成功");
        visible.value = false;
        emits("ok");
      }
    } else {
      const res = await addUpkeep(form);
      const res = await addUpkeep(payload);
      if (res.code == 200) {
        const planId = res.data?.id;
        if (planId) {
@@ -331,6 +388,9 @@
  resetForm();
  resetAttachmentState();
  syncCreateUserFromLogin();
  if (userStore.id != null && userStore.id !== "") {
    form.maintenancePerson = userStore.id;
  }
  visible.value = true;
};