yyb
昨天 c25b005b8f39180956b9980e91a56af2b65410cd
src/views/productionManagement/workOrderEdit/index.vue
@@ -1,3 +1,4 @@
// 生产排产
<template>
  <div class="app-container">
    <div class="search_form">
@@ -40,17 +41,33 @@
               label-width="120px">
        <el-form-item label="计划开始时间">
          <el-date-picker v-model="editrow.planStartTime"
                          type="date"
                          type="datetime"
                          placeholder="请选择"
                          value-format="YYYY-MM-DD"
                          format="YYYY-MM-DD HH:mm:ss"
                          value-format="YYYY-MM-DD HH:mm:ss"
                          style="width: 300px" />
        </el-form-item>
        <el-form-item label="计划结束时间">
          <el-date-picker v-model="editrow.planEndTime"
                          type="date"
                          type="datetime"
                          placeholder="请选择"
                          value-format="YYYY-MM-DD"
                          format="YYYY-MM-DD HH:mm:ss"
                          value-format="YYYY-MM-DD HH:mm:ss"
                          style="width: 300px" />
        </el-form-item>
        <el-form-item label="报工人">
          <el-select v-model="editrow.reportWorkUserIds"
                     multiple
                     filterable
                     collapse-tags
                     collapse-tags-tooltip
                     placeholder="请选择报工人"
                     style="width: 300px">
            <el-option v-for="user in userOptions"
                       :key="user.userId"
                       :label="user.nickName"
                       :value="user.userId" />
          </el-select>
        </el-form-item>
      </el-form>
      <template #footer>
@@ -72,6 +89,7 @@
    productWorkOrderPage,
    updateProductWorkOrder,
  } from "@/api/productionManagement/workOrder.js";
  import { userListNoPageByTenantId } from "@/api/system/user.js";
  import { getCurrentInstance, reactive, toRefs } from "vue";
  const { proxy } = getCurrentInstance();
@@ -111,6 +129,11 @@
    {
      label: "需求数量",
      prop: "planQuantity",
      width: "140",
    },
    {
      label: "计划工时(小时)",
      prop: "plannedWorkHours",
      width: "140",
    },
    {
@@ -163,6 +186,7 @@
  ]);
  
  const tableData = ref([]);
  const userOptions = ref([]);
  const tableLoading = ref(false);
  const editDialogVisible = ref(false);
  let editrow = ref(null);
@@ -210,7 +234,11 @@
    productWorkOrderPage(params)
      .then(res => {
        tableLoading.value = false;
        tableData.value = res.data.records;
        tableData.value = (res.data.records || []).map(item => ({
          ...item,
          planStartTime: formatDateTime(item.planStartTime),
          planEndTime: formatDateTime(item.planEndTime),
        }));
        page.total = res.data.total;
      })
      .catch(() => {
@@ -220,11 +248,45 @@
  const handleEdit = row => {
    editrow.value = JSON.parse(JSON.stringify(row));
    if (typeof editrow.value.reportWorkUserIds === "string") {
      editrow.value.reportWorkUserIds = editrow.value.reportWorkUserIds
        .split(",")
        .map(v => Number(v))
        .filter(v => Number.isFinite(v));
    } else if (!Array.isArray(editrow.value.reportWorkUserIds)) {
      editrow.value.reportWorkUserIds = [];
    }
    editDialogVisible.value = true;
  };
  const formatDateTime = value => {
    if (!value) return "";
    const date = dayjs(value);
    return date.isValid() ? date.format("YYYY-MM-DD HH:mm:ss") : value;
  };
  const getUserList = () => {
    userListNoPageByTenantId()
      .then(res => {
        if (res.code === 200) {
          userOptions.value = res.data || [];
        }
      })
      .catch(() => {
        userOptions.value = [];
      });
  };
  const handleUpdate = () => {
    updateProductWorkOrder(editrow.value)
    const selectedUsers = userOptions.value.filter(user =>
      (editrow.value.reportWorkUserIds || []).includes(user.userId)
    );
    const submitData = {
      ...editrow.value,
      reportWorkUserIds: editrow.value.reportWorkUserIds || [],
      reportWork: selectedUsers.map(user => user.nickName).join(","),
    };
    updateProductWorkOrder(submitData)
      .then(res => {
        proxy.$modal.msgSuccess("提交成功");
        editDialogVisible.value = false;
@@ -239,6 +301,7 @@
  onMounted(() => {
    getList();
    getUserList();
  });
</script>