| | |
| | | // 生产排产 |
| | | <template> |
| | | <div class="app-container"> |
| | | <div class="search_form"> |
| | |
| | | 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> |
| | |
| | | productWorkOrderPage, |
| | | updateProductWorkOrder, |
| | | } from "@/api/productionManagement/workOrder.js"; |
| | | import { userListNoPageByTenantId } from "@/api/system/user.js"; |
| | | import { getCurrentInstance, reactive, toRefs } from "vue"; |
| | | const { proxy } = getCurrentInstance(); |
| | | |
| | |
| | | { |
| | | label: "需求数量", |
| | | prop: "planQuantity", |
| | | width: "140", |
| | | }, |
| | | { |
| | | label: "计划工时(小时)", |
| | | prop: "plannedWorkHours", |
| | | width: "140", |
| | | }, |
| | | { |
| | |
| | | ]); |
| | | |
| | | const tableData = ref([]); |
| | | const userOptions = ref([]); |
| | | const tableLoading = ref(false); |
| | | const editDialogVisible = ref(false); |
| | | let editrow = ref(null); |
| | |
| | | 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(() => { |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | onMounted(() => { |
| | | getList(); |
| | | getUserList(); |
| | | }); |
| | | </script> |
| | | |