| | |
| | | <el-form-item label="状态:"> |
| | | <el-select v-model="searchForm.status" |
| | | placeholder="请选择" |
| | | style="width: 160px;" |
| | | style="width: 100px;" |
| | | @change="handleQuery"> |
| | | <el-option label="待开始" |
| | | value="1" /> |
| | |
| | | value="4" /> |
| | | <el-option label="已结束" |
| | | value="5" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="车间:"> |
| | | <el-select v-model="searchForm.workshopId" |
| | | placeholder="请选择车间" |
| | | clearable |
| | | filterable |
| | | @change="handleQuery" |
| | | style="width: 160px"> |
| | | <el-option v-for="item in workshopOptions" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | import { ElMessageBox } from "element-plus"; |
| | | import dayjs from "dayjs"; |
| | | import { useRouter } from "vue-router"; |
| | | import { workshopPage } from "@/api/basicData/workshop.js"; |
| | | import { |
| | | productOrderListPage, |
| | | listProcessRoute, |
| | |
| | | const sourcePage = reactive({ |
| | | total: 0, |
| | | }); |
| | | const workshopOptions = ref([]); |
| | | |
| | | const processColumnWidth = computed(() => { |
| | | if (!tableData.value || tableData.value.length === 0) return "200px"; |
| | |
| | | prop: "planCompleteTime", |
| | | formatData: val => (val ? dayjs(val).format("YYYY-MM-DD") : ""), |
| | | width: 120, |
| | | }, |
| | | { |
| | | label: "车间", |
| | | prop: "workshopName", |
| | | }, |
| | | { |
| | | dataType: "action", |
| | |
| | | productName: "", |
| | | model: "", |
| | | status: "", |
| | | workshopName: "" |
| | | }, |
| | | }); |
| | | const { searchForm } = toRefs(data); |
| | |
| | | return "red"; |
| | | } |
| | | }; |
| | | function parseWorkshopPagePayload(res) { |
| | | const payload = res?.data; |
| | | if (!payload) { |
| | | return { records: [], total: 0 }; |
| | | } |
| | | if (Array.isArray(payload)) { |
| | | return { records: payload, total: payload.length }; |
| | | } |
| | | const records = payload.records ?? payload.list ?? payload.rows ?? []; |
| | | const total = Number(payload.total ?? payload.totalCount ?? 0); |
| | | return { records: Array.isArray(records) ? records : [], total }; |
| | | } |
| | | const fetchWorkshopOptions = () => { |
| | | workshopPage({ |
| | | name: "", |
| | | principal: "", |
| | | contactPhone: "", |
| | | current: 1, |
| | | size: 999, |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | const { records } = parseWorkshopPagePayload(res); |
| | | workshopOptions.value = records; |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | |
| | | // 绑定工艺路线弹框 |
| | | const bindRouteDialogVisible = ref(false); |
| | |
| | | productName: "", |
| | | model: "", |
| | | status: "", |
| | | workshopName: "", |
| | | }; |
| | | handleQuery(); |
| | | }; |
| | |
| | | }) |
| | | .then(() => { |
| | | proxy.download( |
| | | "/productOrder/export", |
| | | "/productionOrder/export", |
| | | { ...searchForm.value }, |
| | | "生产订单.xlsx" |
| | | "生产订单数据.xlsx" |
| | | ); |
| | | }) |
| | | .catch(() => { |
| | |
| | | |
| | | onMounted(() => { |
| | | getList(); |
| | | fetchWorkshopOptions(); |
| | | }); |
| | | </script> |
| | | |