123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416 |
- <template>
- <div v-if="!loading" class="page-container column-container">
- <el-form class="list-search" style="" :model="lot" ref="queryRef" :inline="true">
- <el-row style="margin-top: 10px">
- <el-form-item class="bold-large">
- <span>{{ "批次号:" }}</span>
- <span>{{ lot.lotCode }}</span>
- </el-form-item>
- <el-form-item>
- <el-tag class="spacing" :type="status(lot)">{{
- statusText(lot)
- }}</el-tag>
- <el-tag v-if="lot.isWaste == 1" class="spacing" type="danger">{{
- "报废"
- }}</el-tag>
- <el-tag v-if="lot.isAmend == 1" class="spacing" type="danger">{{
- "工艺修改"
- }}</el-tag>
- <el-tag v-if="lot.isWasteRecycling == 1" class="spacing" type="primary">{{ "废品回用" }}</el-tag>
- </el-form-item>
- </el-row>
- <el-row :gutter="24" style="margin-top: 10px">
- <el-col :span="6">
- <el-form-item label="客户简称" class="custom-label">
- <span>{{ lot.productionPlanDetail.companyAlias }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="生产计划单" class="custom-label">
- <span>{{ lot.productionPlanDetail.productionPlanNo }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="序号" class="custom-label">
- <span style="margin-left: 28px">
- {{ lot.productionPlanDetail.lineNumber }}
- </span>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="产品描述" class="custom-label">
- <span>{{ lot.productionPlanDetail.productDescription }}</span>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="24" style="margin-top: 10px">
- <el-col :span="6">
- <el-form-item label="图纸版本" class="custom-label">
- <span>{{ lot.technologyVersion }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="单批量" class="custom-label">
- <span style="margin-left: 28px"> {{ lot.productionQuantity }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="领料部门" class="custom-label">
- <span>{{
- lot.productionPlanDetail.requisitionDepartmentName
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="下达日期" class="custom-label">
- <span>{{ lot.productionPlanDetail.issueDate }}</span>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="24" style="margin-top: 10px">
- <el-col :span="6">
- <el-form-item label="当前箱号" class="custom-label">
- <span>{{ lot.carrierName }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="6">
- <el-form-item label="母批号" class="custom-label">
- <span style="margin-left: 23px">{{ lot.fromCode }}</span>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row style="margin-top: 10px">
- <span style="font-weight: bold; font-size: 18px">基础信息</span>
- </el-row>
- <el-row :gutter="30" style="margin-top: 10px">
- <el-col :span="4">
- <el-form-item label="炉号" class="custom-label">
- <span>{{
- lot.furnaceNoInfo.furnaceNumber
- ? lot.furnaceNoInfo.furnaceNumber
- : "-"
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="厂家" class="custom-label">
- <span>{{
- lot.furnaceNoInfo.factory ? lot.furnaceNoInfo.factory : "-"
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="牌号" class="custom-label">
- <span style="margin-left: 28px">{{
- lot.furnaceNoInfo.brandNumber
- ? lot.furnaceNoInfo.brandNumber
- : "-"
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="规格" class="custom-label">
- <span>{{
- lot.furnaceNoInfo.spec ? lot.furnaceNoInfo.spec : "-"
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="形状" class="custom-label">
- <span>{{
- lot.furnaceNoInfo.shape ? lot.furnaceNoInfo.shape : "-"
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="材料直径" class="custom-label">
- <span>{{
- lot.furnaceNoInfo.diameter ? lot.furnaceNoInfo.diameter : "-"
- }}</span>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row :gutter="30" style="margin-top: 10px">
- <el-col :span="4">
- <el-form-item label="原料编码" class="custom-label">
- <span>{{
- lot.furnaceNoInfo.rawMaterialCode
- ? lot.furnaceNoInfo.rawMaterialCode
- : "-"
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="来料日期" class="custom-label">
- <span>{{
- lot.furnaceNoInfo.incomingDate
- ? lot.furnaceNoInfo.incomingDate
- : "-"
- }}</span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="材质1" class="custom-label">
- <span style="margin-left: 28px">
- {{
- lot.furnaceNoInfo.firstTechnicalRequirement
- ? lot.furnaceNoInfo.firstTechnicalRequirement
- : "-"
- }}
- </span>
- </el-form-item>
- </el-col>
- <el-col :span="4">
- <el-form-item label="材质2" class="custom-label">
- <span>
- {{
- lot.furnaceNoInfo.secondTechnicalRequirement
- ? lot.furnaceNoInfo.secondTechnicalRequirement
- : "-"
- }}
- </span>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <div style="padding: 16px">
- <span style="font-weight: bold; font-size: 18px">工艺路线</span>
- <el-button v-if="showVerify(true, 'business:lot:onceSingleChange')" type="primary"
- style="float: right; margin-left: 10px" @click="handleOnceSingleChange">
- 单批单改
- </el-button>
- <el-button v-if="showVerify(true, 'business:lot:inBatch')" type="primary" style="float: right; margin-left: 10px"
- @click="handleSplit()">
- 分批
- </el-button>
- <el-button v-if="showVerify(true, 'business:lot:waste')" :disabled="lot.isWaste == 1" type="danger"
- style="float: right; margin-left: 10px" @click="handlelotWaste(route.params.lotCode)">
- 批废
- </el-button>
- <el-button v-if="showVerify(lot.isAmend == 1, 'business:lot:standard')" type="primary"
- style="float: right; margin-left: 10px" @click="handleStandardProcess(lot.technologicalProcessId)">
- 查看标准工艺
- </el-button>
- </div>
- <div class="el-table-container">
- <div class="el-table-inner-container">
- <el-table height="95%" :data="processDetails">
- <el-table-column type="index" label="行号" align="center"></el-table-column>
- <el-table-column label="工序名称" prop="processAlias" align="center"></el-table-column>
- <el-table-column label="状态" prop="status" align="center">
- <template #default="scope">
- <span>{{ getStatusText(scope.row.status) }}</span>
- </template>
- </el-table-column>
- <el-table-column label="投产量" prop="investNum" align="center"></el-table-column>
- <el-table-column label="合格量" prop="qualifiedNum" align="center"></el-table-column>
- <el-table-column label="废品量" prop="abandonNum" align="center"></el-table-column>
- </el-table>
- </div>
- </div>
- <once-change ref="onceChangeRef" @handleSaveSuccess="init" />
- <lot-waste-dialog ref="lotWasteDialogRef" @handleSaveSuccess="init" />
- <el-dialog title="标准工序" v-model="visible" width="680px" append-to-body draggable>
- <div class="el-table-inner-container">
- <el-table style="height: 600px" @selection-change="handleSelectionChange" :data="processList">
- <el-table-column type="selection" :selectable="checkSelectable" width="50" align="center" />
- <el-table-column type="index" label="序号" width="50" align="center"></el-table-column>
- <el-table-column label="工序名称" prop="processAlias" align="center" />
- <el-table-column label="工序编号" prop="processStepNumber" width="200" align="center" />
- </el-table>
- </div>
- </el-dialog>
- <InBatchesDialog ref="inBatchesDialogRef" :getList="init" />
- </div>
- <div v-else v-loading="loading" class="page-container column-container"></div>
- </template>
- <script setup name="LotProductionPlan">
- import { ref } from "vue";
- import useUserStore from "@/store/modules/user";
- import onceChange from "./onceSingleChangeDialog";
- import InBatchesDialog from "@/views/business/lot/InBatchesDialog.vue";
- import {
- lotParticulars,
- selectStandardProcess,
- } from "@/api/business/technologicalAmend.js";
- import lotWasteDialog from "./dayworkWasteDialog.vue";
- const { proxy } = getCurrentInstance();
- /** 查询 对象 */
- const processDetails = ref([]);
- const loading = ref(true);
- const visible = ref(false);
- const processList = ref([]); //工序列表
- const permissions = useUserStore().permissions;
- const all_permission = "*:*:*";
- const route = useRoute();
- const inBatchesDialogRef = ref(null);
- const statusMap = {
- 0: { type: "info", text: "未开始" },
- 1: { type: "primary", text: "进行中" },
- 2: { type: "success", text: "已完成" },
- };
- const lot = ref({
- productionPlanDetail: {
- companyAlias: "",
- },
- furnaceNoInfo: {},
- daywork: {},
- }); //批次信息
- /**************************** 方法区 ****************************/
- /** 单批单改按钮操作 */
- function handleOnceSingleChange() {
- if (lot.value.isWaste == 1) {
- proxy.$message.error("批废不能再进行操作");
- return;
- }
- proxy.$refs.onceChangeRef.open(lot.value.lotCode);
- }
- /** 按钮是否显示 */
- function showVerify(bool, quer) {
- return (
- bool && (permissions.includes(all_permission) || permissions.includes(quer))
- );
- }
- /** 工序状态 */
- function getStatusText(status) {
- switch (status) {
- case "0":
- return "未开始";
- case "1":
- return "进行中";
- case "2":
- return "已完成";
- default:
- return "";
- }
- }
- /** 批次状态文本 */
- function statusText(lot) {
- if (!lot.daywork) {
- return "未开始";
- }
- return statusMap[lot.daywork.status].text;
- }
- /** 批次状态样式 */
- function status(lot) {
- if (!lot.daywork) {
- return statusMap[0].type;
- }
- return statusMap[lot.daywork.status].type;
- }
- /** 初始化数据 */
- function init(data) {
- loading.value = true;
- const lotCode = (route.params && route.params.lotCode) || data;
- if (lotCode) {
- lotParticulars(lotCode).then((res) => {
- if (res.code == 200) {
- lot.value = res.data;
- processDetails.value = lot.value.technologicalProcessDetailList;
- loading.value = false;
- }
- });
- }
- }
- /** 查询标准工艺操作 */
- function handleStandardProcess(processId) {
- selectStandardProcess(processId).then((res) => {
- if (res.code == 200) {
- processList.value = res.rows;
- visible.value = true;
- }
- });
- }
- //批废
- function handlelotWaste(lotCode) {
- if (lot.value.daywork) {
- let row = {};
- row.lotCode = lotCode;
- row.lotId = lot.value.id;
- row.companyAlias = lot.value.productionPlanDetail.companyAlias;
- row.productionPlanNo = lot.value.productionPlanDetail.productionPlanNo;
- row.productDescription = lot.value.productionPlanDetail.productDescription;
- row.technologyVersion = lot.value.technologyVersion;
- row.productionQuantity = lot.value.productionQuantity;
- row.createTime = lot.value.daywork.createTime;
- row.id = lot.value.daywork.id;
- row.isWaste = lot.value.isWaste;
- row.deptName = lot.value.daywork.deptName;
- row.temporaryProcessQualifiedNum =
- lot.value.daywork.temporaryProcessQualifiedNum;
- proxy.$refs.lotWasteDialogRef.open(row);
- } else {
- proxy.$modal.msgError("该批未投产,不能进行批废");
- }
- }
- function handleSplit() {
- if (lot.value.isWaste == 1) {
- proxy.$message.error("批废不能再进行操作");
- return;
- }
- inBatchesDialogRef.value.open({
- ...lot.value,
- lotId: lot.value.id,
- companyAlias: lot.value.productionPlanDetail.companyAlias,
- productionPlanNo: lot.value.productionPlanDetail.productionPlanNo,
- productDescription: lot.value.productionPlanDetail.productDescription,
- });
- }
- init();
- </script>
- <style lang="scss" scoped>
- .bold-large span {
- font-weight: bold;
- /* 设置内容加粗 */
- font-size: 22px;
- /* 设置内容字体大小 */
- }
- .spacing {
- margin-left: 10px;
- }
- .list-search {
- padding: 16px;
- border-bottom: 8px solid #eef0f5;
- }
- .list-search .el-form-item {
- margin-top: 0px;
- margin-right: 15px;
- margin-bottom: 0px;
- margin-left: 0;
- }
- .list-search .el-form-item .el-form-item__label {
- font-size: 16px;
- padding-right: 0;
- }
- </style>
|