|
@@ -2,78 +2,230 @@
|
|
|
<div class="page-container column-container">
|
|
|
<section class="list-part-container column-container" style="flex: 1">
|
|
|
<!-- 搜索区 -->
|
|
|
- <el-form class="list-search-container" :model="queryParams" ref="queryRef" :inline="true">
|
|
|
+ <el-form
|
|
|
+ class="list-search-container"
|
|
|
+ :model="queryParams"
|
|
|
+ ref="queryRef"
|
|
|
+ :inline="true"
|
|
|
+ >
|
|
|
<el-form-item class="section-title" label="生产计划" />
|
|
|
<el-form-item label="生产计划单号:">
|
|
|
- <el-input placeholder="请输入生产计划单号" v-model.trim="queryParams.productionPlanNo"
|
|
|
- @keyup.enter="handleQueryProductionPlanDetail" @keydown.enter.prevent clearable style="width: 200px" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入生产计划单号"
|
|
|
+ v-model.trim="queryParams.productionPlanNo"
|
|
|
+ @keyup.enter="handleQueryProductionPlanDetail"
|
|
|
+ @keydown.enter.prevent
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="产品描述:">
|
|
|
- <el-input placeholder="请输入产品描述" v-model.trim="queryParams.keywords"
|
|
|
- @keyup.enter="handleQueryProductionPlanDetail" @keydown.enter.prevent clearable style="width: 200px" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入产品描述"
|
|
|
+ v-model.trim="queryParams.keywords"
|
|
|
+ @keyup.enter="handleQueryProductionPlanDetail"
|
|
|
+ @keydown.enter.prevent
|
|
|
+ clearable
|
|
|
+ style="width: 200px"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="是否废品回用:">
|
|
|
- <el-select-v2 v-model="queryParams.isWasteRecycle" :options="confirmOptions" placeholder="请选择"
|
|
|
- style="width: 100%" @change="handleQueryProductionPlanDetail" clearable />
|
|
|
+ <el-select-v2
|
|
|
+ v-model="queryParams.isWasteRecycle"
|
|
|
+ :options="confirmOptions"
|
|
|
+ placeholder="请选择"
|
|
|
+ style="width: 100%"
|
|
|
+ @change="handleQueryProductionPlanDetail"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item class="section-title" label="请选择当前工段:">
|
|
|
- <el-select-v2 v-model="queryParams.deptId" filterable :options="deptList" placeholder="请选择工段"
|
|
|
- style="width: 100%" @change="handleDeptChange" />
|
|
|
+ <el-select-v2
|
|
|
+ v-model="queryParams.deptId"
|
|
|
+ filterable
|
|
|
+ :options="deptList"
|
|
|
+ placeholder="请选择工段"
|
|
|
+ style="width: 100%"
|
|
|
+ @change="handleDeptChange"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button type="info" icon="Search" @click="handleQueryProductionPlanDetail">
|
|
|
+ <el-button
|
|
|
+ type="info"
|
|
|
+ icon="Search"
|
|
|
+ @click="handleQueryProductionPlanDetail"
|
|
|
+ >
|
|
|
搜索
|
|
|
</el-button>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
</el-form>
|
|
|
<div class="el-table-container">
|
|
|
<div class="el-table-inner-container">
|
|
|
- <el-table ref="planDetailTable" :data="detailPlanList" v-loading="detailLoading" highlight-current-row
|
|
|
- height="100%" @current-change="handlePlanDetailCurrentChange">
|
|
|
- <el-table-column label="客户简称" prop="companyAlias" width="120" align="center" />
|
|
|
- <el-table-column label="生产计划单号" prop="productionPlanNo" width="110" align="center" />
|
|
|
- <el-table-column label="序号" width="60" prop="lineNumber" align="center" />
|
|
|
- <el-table-column label="产品描述" prop="productDescription" align="center" />
|
|
|
- <el-table-column label="图纸版本" prop="technologyVersion" width="70" align="center" />
|
|
|
- <el-table-column label="总投产量" prop="productionQuantity" width="80" align="center" />
|
|
|
- <el-table-column label="总批数" prop="totalLotNumber" width="70" align="center" />
|
|
|
- <el-table-column label="单批量" prop="oneLotQuantity" width="80" align="center" />
|
|
|
- <el-table-column label="尾批量" prop="lastLotQuantity" width="80" align="center" />
|
|
|
- <el-table-column label="追增批数" prop="superadditionTotalNumber" width="80" align="center" />
|
|
|
- <el-table-column label="批号状态" prop="lotCodeStatusCode" width="100" align="center">
|
|
|
+ <el-table
|
|
|
+ ref="planDetailTable"
|
|
|
+ :data="detailPlanList"
|
|
|
+ v-loading="detailLoading"
|
|
|
+ highlight-current-row
|
|
|
+ height="100%"
|
|
|
+ @current-change="handlePlanDetailCurrentChange"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ label="客户简称"
|
|
|
+ prop="companyAlias"
|
|
|
+ width="120"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="生产计划单号"
|
|
|
+ prop="productionPlanNo"
|
|
|
+ width="110"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
- <dict-tag :options="lot_code_status_code" :value="scope.row.lotCodeStatusCode" />
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ type="primary"
|
|
|
+ @click="handleColumnClick(scope.row)"
|
|
|
+ ><span>{{ scope.row.productionPlanNo }}</span></el-button
|
|
|
+ >
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="累计投产量" prop="pickUpQuantity" width="80" align="center" />
|
|
|
- <el-table-column label="累计投产批数" prop="lotTotalNumber" width="90" align="center" />
|
|
|
+ <el-table-column
|
|
|
+ label="序号"
|
|
|
+ width="60"
|
|
|
+ prop="lineNumber"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="产品描述"
|
|
|
+ prop="productDescription"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="图纸版本"
|
|
|
+ prop="technologyVersion"
|
|
|
+ width="70"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="总投产量"
|
|
|
+ prop="productionQuantity"
|
|
|
+ width="80"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="总批数"
|
|
|
+ prop="totalLotNumber"
|
|
|
+ width="70"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="单批量"
|
|
|
+ prop="oneLotQuantity"
|
|
|
+ width="80"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="尾批量"
|
|
|
+ prop="lastLotQuantity"
|
|
|
+ width="80"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="追增批数"
|
|
|
+ prop="superadditionTotalNumber"
|
|
|
+ width="80"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="批号状态"
|
|
|
+ prop="lotCodeStatusCode"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <template #default="scope">
|
|
|
+ <dict-tag
|
|
|
+ :options="lot_code_status_code"
|
|
|
+ :value="scope.row.lotCodeStatusCode"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="累计投产量"
|
|
|
+ prop="pickUpQuantity"
|
|
|
+ width="80"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="累计投产批数"
|
|
|
+ prop="lotTotalNumber"
|
|
|
+ width="90"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
<!-- <el-table-column label="库位" prop="storageLocation" width="80" align="center" /> -->
|
|
|
- <el-table-column label="领料部门" prop="requisitionDepartmentName" width="100" align="center">
|
|
|
+ <el-table-column
|
|
|
+ label="领料部门"
|
|
|
+ prop="requisitionDepartmentName"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
<span>{{ scope.row.requisitionDepartmentName }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="下达日期" prop="issueDate" width="100" align="center" />
|
|
|
- <el-table-column label="是否废品回用" prop="planType" width="90" align="center">
|
|
|
+ <el-table-column
|
|
|
+ label="下达日期"
|
|
|
+ prop="issueDate"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="是否废品回用"
|
|
|
+ prop="planType"
|
|
|
+ width="90"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
- {{ scope.row.planType == 'HY' ? '是' : '否' }}
|
|
|
+ {{ scope.row.planType == "HY" ? "是" : "否" }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" width="240" align="center" fixed="right">
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ width="240"
|
|
|
+ align="center"
|
|
|
+ fixed="right"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
- <el-button link type="success" icon="View" @click="handleCheckMarterialInfo(scope.row)">领料信息
|
|
|
+ <el-button
|
|
|
+ link
|
|
|
+ type="success"
|
|
|
+ icon="View"
|
|
|
+ @click="handleCheckMarterialInfo(scope.row)"
|
|
|
+ >领料信息
|
|
|
</el-button>
|
|
|
- <el-button :disabled="!(
|
|
|
- queryParams.deptId == scope.row.requisitionDepartmentId
|
|
|
- ) || scope.row.totalLotNumber == scope.row.lotTotalNumber
|
|
|
- " link type="primary" icon="Postcard" @click="handleAddSubDetail(scope.row)"
|
|
|
- v-hasPermi="['business:productionBatch:add']">投产
|
|
|
+ <el-button
|
|
|
+ :disabled="
|
|
|
+ !(
|
|
|
+ queryParams.deptId == scope.row.requisitionDepartmentId
|
|
|
+ ) || scope.row.totalLotNumber == scope.row.lotTotalNumber
|
|
|
+ "
|
|
|
+ link
|
|
|
+ type="primary"
|
|
|
+ icon="Postcard"
|
|
|
+ @click="handleAddSubDetail(scope.row)"
|
|
|
+ v-hasPermi="['business:productionBatch:add']"
|
|
|
+ >投产
|
|
|
</el-button>
|
|
|
- <el-button v-if="
|
|
|
- scope.row.lotTotalNumber && scope.row.lotTotalNumber > 0
|
|
|
- " v-hasPermi="['business:productionBatch:check']" link type="warning" icon="Search"
|
|
|
- @click="handleCheckLotInfo(scope.row)">批次信息
|
|
|
+ <el-button
|
|
|
+ v-if="
|
|
|
+ scope.row.lotTotalNumber && scope.row.lotTotalNumber > 0
|
|
|
+ "
|
|
|
+ v-hasPermi="['business:productionBatch:check']"
|
|
|
+ link
|
|
|
+ type="warning"
|
|
|
+ icon="Search"
|
|
|
+ @click="handleCheckLotInfo(scope.row)"
|
|
|
+ >批次信息
|
|
|
</el-button>
|
|
|
<!-- <el-button
|
|
|
icon="edit"
|
|
@@ -89,8 +241,13 @@
|
|
|
</div>
|
|
|
</section>
|
|
|
<!-- 分页 -->
|
|
|
- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
|
|
- v-model:limit="queryParams.pageSize" @pagination="getProductionPlanDetail" />
|
|
|
+ <pagination
|
|
|
+ v-show="total > 0"
|
|
|
+ :total="total"
|
|
|
+ v-model:page="queryParams.pageNum"
|
|
|
+ v-model:limit="queryParams.pageSize"
|
|
|
+ @pagination="getProductionPlanDetail"
|
|
|
+ />
|
|
|
|
|
|
<section class="list-part-container row-container" style="flex: 1">
|
|
|
<section class="list-part-container" style="flex: 4">
|
|
@@ -101,33 +258,98 @@
|
|
|
</el-form>
|
|
|
<div class="el-table-container">
|
|
|
<div class="el-table-inner-container">
|
|
|
- <el-table ref="subDetailsTable" v-loading="subDetailsLoading" :data="subList" highlight-current-row
|
|
|
- height="100%">
|
|
|
- <el-table-column type="index" label="行号" width="50" align="center" />
|
|
|
- <el-table-column label="生产计划单号" prop="productionPlanNo" width="110" align="center" />
|
|
|
- <el-table-column label="产品描述" prop="productDescription" align="center" />
|
|
|
- <el-table-column label="首序投产量" prop="productionQuantity" width="80" align="center" />
|
|
|
- <el-table-column label="首序投产批数" prop="lotNumber" width="100" align="center">
|
|
|
+ <el-table
|
|
|
+ ref="subDetailsTable"
|
|
|
+ v-loading="subDetailsLoading"
|
|
|
+ :data="subList"
|
|
|
+ highlight-current-row
|
|
|
+ height="100%"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ type="index"
|
|
|
+ label="行号"
|
|
|
+ width="50"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="生产计划单号"
|
|
|
+ prop="productionPlanNo"
|
|
|
+ width="110"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="产品描述"
|
|
|
+ prop="productDescription"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="首序投产量"
|
|
|
+ prop="productionQuantity"
|
|
|
+ width="80"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="首序投产批数"
|
|
|
+ prop="lotNumber"
|
|
|
+ width="100"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
- <el-input-number v-if="scope.row.editStatus" v-model="scope.row.lotNumber" placeholder="当前投产批数"
|
|
|
- :controls="false" :precision="0" :min="0" :max="scope.row.totalLotNumber" align="center" />
|
|
|
+ <el-input-number
|
|
|
+ v-if="scope.row.editStatus"
|
|
|
+ v-model="scope.row.lotNumber"
|
|
|
+ placeholder="当前投产批数"
|
|
|
+ :controls="false"
|
|
|
+ :precision="0"
|
|
|
+ :min="0"
|
|
|
+ :max="scope.row.totalLotNumber"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
<span v-else>{{ scope.row.lotNumber }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="下达日期" prop="issuanceDate" width="120" align="center">
|
|
|
+ <el-table-column
|
|
|
+ label="下达日期"
|
|
|
+ prop="issuanceDate"
|
|
|
+ width="120"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
- <el-date-picker v-if="scope.row.editStatus" clearable v-model="scope.row.issuanceDate" type="date"
|
|
|
- value-format="YYYY-MM-DD" placeholder="请选择实际开始 时间" />
|
|
|
+ <el-date-picker
|
|
|
+ v-if="scope.row.editStatus"
|
|
|
+ clearable
|
|
|
+ v-model="scope.row.issuanceDate"
|
|
|
+ type="date"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ placeholder="请选择实际开始 时间"
|
|
|
+ />
|
|
|
<span v-else>{{ scope.row.issuanceDate }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="操作" width="150" align="center" v-if="flag">
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ width="150"
|
|
|
+ align="center"
|
|
|
+ v-if="flag"
|
|
|
+ >
|
|
|
<template #default="scope">
|
|
|
- <el-button v-if="!scope.row.editStatus" icon="edit" link type="warning"
|
|
|
- @click="handleShowSubDetailDialog(scope.row)" v-hasPermi="['business:productionBatch:edit']">编辑
|
|
|
+ <el-button
|
|
|
+ v-if="!scope.row.editStatus"
|
|
|
+ icon="edit"
|
|
|
+ link
|
|
|
+ type="warning"
|
|
|
+ @click="handleShowSubDetailDialog(scope.row)"
|
|
|
+ v-hasPermi="['business:productionBatch:edit']"
|
|
|
+ >编辑
|
|
|
</el-button>
|
|
|
- <el-button v-if="!scope.row.editStatus" icon="delete" link type="danger"
|
|
|
- @click="handleDelSubDetail(scope.row)" v-hasPermi="['business:productionBatch:remove']">删除
|
|
|
+ <el-button
|
|
|
+ v-if="!scope.row.editStatus"
|
|
|
+ icon="delete"
|
|
|
+ link
|
|
|
+ type="danger"
|
|
|
+ @click="handleDelSubDetail(scope.row)"
|
|
|
+ v-hasPermi="['business:productionBatch:remove']"
|
|
|
+ >删除
|
|
|
</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -137,7 +359,10 @@
|
|
|
</section>
|
|
|
</section>
|
|
|
<!-- 投产表单 -->
|
|
|
- <production-lot-form ref="productionRef" @handleSaveSuccess="handleFresh()" />
|
|
|
+ <production-lot-form
|
|
|
+ ref="productionRef"
|
|
|
+ @handleSaveSuccess="handleFresh()"
|
|
|
+ />
|
|
|
<!-- 领料信息弹窗 -->
|
|
|
<check-material ref="checkMaterialRef" />
|
|
|
<lot-info ref="lotInfoRef" @handleSaveSuccess="handleFresh()" />
|
|
@@ -164,6 +389,7 @@ import checkMaterial from "./DialogCheckMaterial";
|
|
|
import productionLotForm from "./form";
|
|
|
import lotInfo from "./lotInfoForm.vue";
|
|
|
import useSettingsStore from "@/store/modules/settings";
|
|
|
+import router from "@/router";
|
|
|
const genLotBySub = useSettingsStore().genLotBySub;
|
|
|
// import productionDialog from "./DialogProduction";
|
|
|
const { proxy } = getCurrentInstance();
|
|
@@ -188,9 +414,12 @@ const queryParams = ref({
|
|
|
keywords: "",
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
- isWasteRecycle: null
|
|
|
-})
|
|
|
-const confirmOptions = ref([{ label: "是", value: 1 }, { label: "否", value: 0 }])
|
|
|
+ isWasteRecycle: null,
|
|
|
+});
|
|
|
+const confirmOptions = ref([
|
|
|
+ { label: "是", value: 1 },
|
|
|
+ { label: "否", value: 0 },
|
|
|
+]);
|
|
|
|
|
|
/*********************** 方法区 ****************************/
|
|
|
/*********************** 工段 ****************************/
|
|
@@ -380,6 +609,18 @@ function handleShowSubDetailDialog(row) {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+function handleColumnClick(row) {
|
|
|
+ // router.push({ path: "/Production/lot/" + row.productionPlanNo });
|
|
|
+ router.push({
|
|
|
+ name: "lotInfo",
|
|
|
+ params: {
|
|
|
+ productionPlanNo: row.productionPlanNo,
|
|
|
+ lineNumber: row.lineNumber,
|
|
|
+ },
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
//查看计划单批次
|
|
|
function handleCheckLotInfo(row) {
|
|
|
proxy.$refs.lotInfoRef.open(row);
|
|
@@ -402,12 +643,12 @@ function handleDelSubDetail(row) {
|
|
|
updateLotCodeStatus({
|
|
|
id: currentPlanDetail.value.id,
|
|
|
lotCodeStatusCode: "NA",
|
|
|
- }).then((res) => { });
|
|
|
+ }).then((res) => {});
|
|
|
}
|
|
|
handleFresh();
|
|
|
proxy.$modal.msgSuccess("删除成功!");
|
|
|
})
|
|
|
- .catch(() => { });
|
|
|
+ .catch(() => {});
|
|
|
}
|
|
|
onMounted(() => {
|
|
|
// getProductionPlanDetail();
|