gongchunyi
8 天以前 b95a00bf7ec7c667e16032bcabc4d97ef42909fc
feat: 设备保养添加任务状态
已修改4个文件
76 ■■■■ 文件已修改
src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/PlanModal.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/formDia.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/index.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Form/MaintenanceModal.vue
@@ -10,8 +10,9 @@
    <el-form :model="form" label-width="100px">
      <el-form-item label="实际保养人">
        <el-input
          v-model="form.maintenanceActuallyName"
          placeholder="请输入实际保养人"
          :model-value="currentUserName"
          disabled
          placeholder="当前登录用户"
        ></el-input>
      </el-form-item>
      <el-form-item label="实际保养日期">
@@ -48,6 +49,7 @@
</template>
<script setup>
import { computed } from "vue";
import FormDialog from "@/components/Dialog/FormDialog.vue";
import { addMaintenance } from "@/api/equipmentManagement/upkeep";
import useFormData from "@/hooks/useFormData";
@@ -67,6 +69,8 @@
const loading = ref(false);
const userStore = useUserStore();
const currentUserName = computed(() => userStore.nickName || userStore.name || "");
const { form, resetForm } = useFormData({
  maintenanceActuallyName: undefined, // 实际保养人
  maintenanceActuallyTime: undefined, // 实际保养日期
@@ -75,10 +79,10 @@
});
const setForm = (data) => {
  form.maintenanceActuallyName =
    data.maintenanceActuallyName ?? userStore.nickName;
  // 实际保养人自动填充当前登录人,不可编辑
  form.maintenanceActuallyName = userStore.nickName || userStore.name || "";
  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;
@@ -91,7 +95,12 @@
const sendForm = async () => {
  loading.value = true;
  try {
    const { code } = await addMaintenance({ id: planId.value, ...form });
    // 确保实际保养人是当前登录人
    const payload = {
      ...form,
      maintenanceActuallyName: userStore.nickName || userStore.name || "",
    };
    const { code } = await addMaintenance({ id: planId.value, ...payload });
    if (code == 200) {
      ElMessage.success("保养成功");
      emits("ok");
src/views/equipmentManagement/upkeep/Form/PlanModal.vue
@@ -7,7 +7,7 @@
    @cancel="handleCancel"
    @close="handleClose"
  >
    <el-form :model="form" label-width="100px">
    <el-form :model="form" :rules="rules" label-width="100px">
      <el-form-item label="设备名称">
        <el-select
          v-model="form.deviceLedgerId"
@@ -39,14 +39,13 @@
          placeholder="当前登录用户"
        />
      </el-form-item>
      <el-form-item label="保养人">
      <el-form-item label="保养人" prop="maintenancePerson">
        <el-select
          v-model="form.maintenancePerson"
          filterable
          default-first-option
          :reserve-keyword="false"
          placeholder="请选择保养人"
          clearable
          style="width: 100%"
        >
          <el-option
@@ -138,6 +137,10 @@
  () => userStore.nickName || userStore.name || "当前登录用户"
);
const rules = {
  maintenancePerson: [{ required: true, message: "请选择保养人", trigger: "change" }],
};
const syncCreateUserFromLogin = () => {
  if (userStore.id != null && userStore.id !== "") {
    form.createUser = userStore.id;
src/views/equipmentManagement/upkeep/Form/formDia.vue
@@ -75,6 +75,17 @@
                        />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="任务状态">
                        <el-switch
                            v-model="form.isActive"
                            :active-value="1"
                            :inactive-value="0"
                            active-text="启用"
                            inactive-text="停用"
                        />
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="12">
@@ -185,7 +196,8 @@
        week: '',
        time: '',
        deviceModel: undefined, // 规格型号
        registrationDate: ''
        registrationDate: '',
        isActive: 0, // 任务状态:0-停用,1-启用
    },
    rules: {
        taskId: [{ required: true, message: "请选择设备", trigger: "change" },],
@@ -301,7 +313,8 @@
        week: '',
        time: '',
        deviceModel: undefined,
        registrationDate: ''
        registrationDate: '',
        isActive: 0,
    }
}
@@ -335,10 +348,9 @@
                
                // 录入日期:直接使用表单里的 registrationDate 字段
                // 一些默认状态字段
                if (payload.status === undefined || payload.status === null || payload.status === '') {
                    payload.status = '0' // 默认状态,可按实际枚举调整
                if (payload.isActive === undefined || payload.isActive === null) {
                    payload.isActive = 0 // 默认停用
                }
                payload.active = true
                payload.deleted = 0
                
                if (operationType.value === 'edit') {
src/views/equipmentManagement/upkeep/index.vue
@@ -16,9 +16,9 @@
              />
            </el-form-item>
            <el-form-item label="任务状态">
              <el-select v-model="scheduledFilters.status" placeholder="请选择任务状态" clearable style="width: 200px">
                <el-option label="启用" value="1" />
                <el-option label="停用" value="0" />
              <el-select v-model="scheduledFilters.isActive" placeholder="请选择任务状态" clearable style="width: 200px">
                <el-option label="启用" :value="1" />
                <el-option label="停用" :value="0" />
              </el-select>
            </el-form-item>
            <el-form-item>
@@ -58,8 +58,8 @@
            @pagination="changeScheduledPage"
          >
            <template #statusRef="{ row }">
              <el-tag v-if="row.status === 1" type="success">启用</el-tag>
              <el-tag v-if="row.status === 0" type="danger">停用</el-tag>
              <el-tag v-if="row.isActive === 1" type="success">启用</el-tag>
              <el-tag v-if="row.isActive === 0" type="danger">停用</el-tag>
            </template>
            <template #operation="{ row }">
              <el-button
@@ -315,7 +315,7 @@
// 定时任务管理tab相关变量
const scheduledFilters = reactive({
  taskName: '',
  status: '',
  isActive: '',
})
const scheduledDataList = ref([])
@@ -375,6 +375,14 @@
        showOverflowTooltip: true,
    },
    { prop: "registrationDate", label: "登记日期", minWidth: 100 },
    {
        label: "任务状态",
        prop: "isActive",
        minWidth: 100,
        dataType: "slot",
        slot: "statusRef",
        align: "center",
    },
    {
        fixed: "right",
        label: "操作",
@@ -478,7 +486,7 @@
      current: scheduledPagination.currentPage,
      size: scheduledPagination.pageSize,
      taskName: scheduledFilters.taskName || undefined,
      status: scheduledFilters.status || undefined,
      isActive: scheduledFilters.isActive !== '' ? scheduledFilters.isActive : undefined,
    }
    const { code, data } = await deviceMaintenanceTaskList(params)
    if (code === 200) {
@@ -492,7 +500,7 @@
const resetScheduledFilters = () => {
  scheduledFilters.taskName = ''
  scheduledFilters.status = ''
  scheduledFilters.isActive = ''
  getScheduledTableData()
}