生产监控问题修改

dev-scheduling
zhangdi 2 weeks ago
parent 64c6ba2943
commit a192359bdb
  1. 13
      src/views/desk/myMessage.vue
  2. 4
      src/views/processManagement/components/addTemplateDialog.vue
  3. 22
      src/views/processManagement/inPlantProcess.vue
  4. 2
      src/views/processManagement/taskDispatch.vue
  5. 930
      src/views/workRate/index.vue

@ -251,12 +251,15 @@ export default {
} }
}, },
onLoad(page, params = {}) { onLoad(page, params = {}) {
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { // getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
const data = res.data.data; // const data = res.data.data;
this.page.total = data.total; // this.page.total = data.total;
this.data = data.records; // this.data = data.records;
// this.loading = false;
// });
this.data = []
this.loading = false; this.loading = false;
});
}, },
}, },
}; };

@ -792,7 +792,7 @@ export default {
type: 'success', type: 'success',
message: '操作成功!', message: '操作成功!',
}); });
// this.$emit('closeDialog'); this.$emit('closeDialog');
this.getDetail() this.getDetail()
}) })
.catch(err => { .catch(err => {
@ -807,7 +807,7 @@ export default {
type: 'success', type: 'success',
message: '操作成功!', message: '操作成功!',
}); });
// this.$emit('closeDialog'); this.$emit('closeDialog');
this.getDetail() this.getDetail()
}) })
.catch(err => { .catch(err => {

@ -136,17 +136,17 @@ export default {
align: 'left', align: 'left',
searchLabelWidth: 60, searchLabelWidth: 60,
}, },
{ // {
label: '产线', // label: '线',
prop: 'equipmentName', // prop: 'equipmentName',
search: true, // search: true,
sortable: true, // sortable: true,
filter: true, // filter: true,
span: 12, // span: 12,
headerAlign: 'center', // headerAlign: 'center',
align: 'left', // align: 'left',
searchLabelWidth: 45, // searchLabelWidth: 45,
}, // },
{ {
label: '确认编号', label: '确认编号',
prop: 'confirmCondition', prop: 'confirmCondition',

@ -74,7 +74,7 @@ export default {
border: true, border: true,
index: true, index: true,
selection: true, selection: true,
selectable: (row, index) => row.children.length === 0, selectable:true,
viewBtn: false, viewBtn: false,
delBtn: false, delBtn: false,
editBtn: false, editBtn: false,

@ -7,345 +7,287 @@
@close="closeDialog" @close="closeDialog"
fullscreen fullscreen
> >
<el-collapse v-model="activeName" > <el-descriptions title="订单信息"></el-descriptions>
<el-collapse-item title="订单信息" name="1"> <div class="order-box">
<template #title="{ isActive }"> 订单信息 </template> <div class="order-item" v-for="(item, index) in displayOrderItems" :key="index">
<div class="order-box"> {{ item.label }}
<div class="order-item">车间订单号{{ detailsForm.orderWoCode||'' }}</div> <span
<div class="order-item">流程卡号{{ detailsForm.cardNo||'' }}</div> v-if="item.clickable"
<div class="order-item"> style="cursor: pointer; font-weight: 500"
零件号 @dblclick="item.clickHandler"
<span >{{ item.value }}</span
style="cursor: pointer; font-weight: 500" >
@dblclick="openDocLink(detailsForm.dsPart)" <span v-else-if="item.style" :style="item.style">{{ item.value }}</span>
>{{ detailsForm.partCode||'' }}</span <span v-else>{{ item.value }}</span>
> </div>
</div>
<div class="order-item">批次号{{ detailsForm.batchNo||'' }}</div> <!-- 展开/收起按钮 -->
<div class="order-item">订单数量{{ detailsForm.poQty||'' }}</div> <div class="order-item" style="width: 100%; text-align: center; margin-top: 10px">
<div class="order-item">状态{{ detailsForm.curStatus||'' }}</div> <el-button type="text" @click="toggleOrderInfo" class="expand-btn">
<div class="order-item"> {{ orderInfoExpanded ? '收起 ▲' : '展开更多 ▼' }}
优先级 </el-button>
<span :style="importanceColor(rowItem.priority)"> {{ detailsForm.priority||'' }}</span> </div>
</div> </div>
<div class="order-item"> <el-descriptions title="工序信息"> </el-descriptions>
调度员{{ detailsForm.dispatcher === null ? '' : detailsForm.userName }} <div v-loading="processSelectLoading">
</div> <div class="scrollContent">
<div class="order-item">订单下达{{ detailsForm.sendDownTime||'' }}</div> <div ref="pointView" class="scrollBox">
<div class="order-item">生产数量{{ detailsForm.makeQty ||''}}</div> <!-- -->
<div class="order-item">零件名称{{ detailsForm.dsPart.partName||'' }}</div> <div
<div class="order-item">产品型号{{ detailsForm.dsPart.productType||'' }}</div> v-for="(item, index) in detailsForm.planList"
<div class="order-item">硬度{{ detailsForm.dsPart.hardness||'' }}</div> :key="item.id"
<div class="order-item">计划完工{{ detailsForm.planEndDate ||''}}</div> :class="[
<div class="order-item"> 'production-process-item',
需求交期{{ detailsForm.priority === 4 ? detailsForm.demandDate : '' }} index === 0 ? 'production-left-item-box' : '',
</div> { selected: selectedItemId === item.id },
<div class="order-item">镀种{{ detailsForm.dsPart.plate||'' }}</div> ]"
<div class="order-item">面积(dm²){{ detailsForm.dsPart.area ||''}}</div> @click="selectItem(item)"
<div class="order-item">材料{{ detailsForm.dsPart.material||'' }}</div> class="production-process-item"
<div class="order-item">生产标识{{ detailsForm.prodIdent||'' }}</div> :style="{ borderColor: getProcessBgColor(item.status) }"
<div class="order-item">镀后入库{{ detailsForm.putStoreTime ||''}}</div> >
<div class="order-item">标记要求{{ detailsForm.dsPart.signMemo||'' }}</div> <!-- 工序号和工序名称 -->
<div class="order-item">关键信息{{ detailsForm.dsPart.cruxMemo ||''}}</div> <div
<div class="order-item">试验数量{{ detailsForm.testQty ||''}}</div> class="production-process-title"
<div class="order-item">消耗数量{{ detailsForm.lossQty ||''}}</div> :style="{ background: getProcessBgColor(item.status) }"
<div class="order-item" v-if="detailsForm.yieldType != 1">
是否印字
<i v-if="detailsForm.dsPart.isPrint == 1"></i>
<i v-if="detailsForm.dsPart.isPrint == 2"></i>
<i v-if="detailsForm.dsPart.isPrint == 3"></i>
</div>
<div class="order-item">工艺路线{{ detailsForm.dsPart.craftWay ||''}}</div>
<div class="order-item" v-if="detailsForm.curStatus == 19">
返工单号<span
style="cursor: pointer"
@dblclick="openClient(detailsForm.qcReworkCode)"
>
{{ detailsForm.qcReworkCode||'' }}</span
>
</div>
<div class="order-item" v-if="detailsForm.yieldType == 1">
涂色标个数{{ detailsForm.dsPart.tsbNum }}
</div>
<div class="order-item" v-if="rowItem.yieldType == 1">
涂色带个数{{ detailsForm.dsPart.tsdNum||'' }}
</div>
<div class="order-item" v-if="rowItem.yieldType == 1">
涂箭头个数{{ detailsForm.dsPart.tjtNum ||''}}
</div>
<div class="order-item">产品系列{{ detailsForm.dsPart.productSeries||'' }}</div>
<div class="order-item">工作订单备注{{ detailsForm.poMemo||'' }}</div>
<div class="order-item">
会议要求周期{{ detailsForm.priority === 4 ? detailsForm.meetCycle : '' }}
</div>
<div class="order-item">
审理单号<span style="cursor: pointer" @dblclick="openQcSheet(detailsForm.reworkCode)">
{{ detailsForm.reworkCode||'' }}</span
> >
</div> <div style="display: flex; align-items: center" :title="'工序号和工序名字'">
</div> <div>{{ item.orders + '-' + item.ppsName }}</div>
</el-collapse-item> </div>
<el-collapse-item title="工序信息" name="2" v-loading="processSelectLoading"> <!-- 1 0 -->
<div class="scrollContent"> <el-icon style="font-size: 16px; margin-left: 5px" v-if="item.mainProcess == 1">
<div ref="pointView" class="scrollBox"> <Star />
<!-- --> </el-icon>
</div>
<div <div
v-for="(item, index) in detailsForm.planList" class="process_content"
:key="item.id" :style="{ background: getProcessVerticalGradient(item.status) }"
:class="[
'production-process-item',
index === 0 ? 'production-left-item-box' : '',
{ selected: selectedItemId === item.id },
]"
@click="selectItem(item)"
class="production-process-item"
:style="{ borderColor: getProcessBgColor(item.status) }"
> >
<!-- 工序号和工序名称 --> <!-- 加工班组 -->
<div <div class="flex-row" :title="'班组'">
class="production-process-title" <span class="icon-text"
:style="{ background: getProcessBgColor(item.status) }" ><el-icon><User /></el-icon></span
> >
<div style="display: flex; align-items: center" :title="'工序号和工序名字'"> <span v-if="item.makeTeam" class="icon-text">
<div>{{ item.orders + '-' + item.ppsName }}</div> {{ item.makeTeam }}
</div> </span>
<!-- 1 0 --> </div>
<el-icon style="font-size: 16px; margin-left: 5px" v-if="item.mainProcess == 1"> <!-- 接收人 -->
<Star /> <div class="flex-row" :title="'接收人'">
</el-icon> <span class="icon-text">
<el-icon><User /></el-icon></span
>
<span class="icon-text">
{{ item.status != 1 && item.receiveManName ? item.receiveManName : '-' }}
</span>
</div>
<!-- 计划加工人 -->
<div class="flex-row" v-if="item.planWorkMan != ''" :title="'计划加工人'">
<span class="icon-text"
><el-icon><User /></el-icon></span
>
<span class="icon-text">
{{ item.planWorkMan }}
</span>
</div>
<!-- 报工人/报工数量 -->
<div class="flex-row" :title="'报工人和数量'">
<span class="icon-text"
><el-icon><User /></el-icon>/</span
>
<span v-if="item.workManName" class="icon-text">
{{ item.workManName }}/{{ item.workQty }}
</span>
<span v-else class="icon-text">-</span>
</div> </div>
<div <!-- 额定工时-实际工时 -->
class="process_content" <div class="flex-row" :title="'额定工时-实际工时'">
:style="{ background: getProcessVerticalGradient(item.status) }" <span class="icon-text">
> <el-icon><Odometer /></el-icon>/(min)</span
<!-- 加工班组 --> >
<div class="flex-row" :title="'班组'"> <span class="icon-text"> {{ item.hourQuota }}/{{ item.hourActual }} </span>
<span class="icon-text" </div>
><el-icon><User /></el-icon></span <!-- 计划开始-计划结束 -->
> <div class="flex-row" :title="'计划开始'">
<span v-if="item.makeTeam" class="icon-text"> <span class="icon-text">
{{ item.makeTeam }} <el-icon><Odometer /></el-icon></span
</span> >
</div> <span class="icon-text">
<!-- 接收人 --> {{ item.planStartTime }}
<div class="flex-row" :title="'接收人'"> </span>
<span class="icon-text"> </div>
<el-icon><User /></el-icon></span <div class="flex-row" :title="'计划结束'">
> <span class="icon-text">
<span class="icon-text"> <el-icon><Odometer /></el-icon></span
{{ item.status != 1 && item.receiveManName ? item.receiveManName : '-' }} >
</span> <span class="icon-text">
</div> {{ item.planEndTime }}
<!-- 计划加工人 --> </span>
<div class="flex-row" v-if="item.planWorkMan != ''" :title="'计划加工人'"> </div>
<span class="icon-text" <!-- 实际开始-实际结束 -->
><el-icon><User /></el-icon></span <div class="flex-row" :title="'实际开始'">
> <span class="icon-text">
<span class="icon-text"> <el-icon><Edit /></el-icon></span
{{ item.planWorkMan }} >
</span> <span>{{ item.factStartTime || '-' }}</span>
</div> </div>
<!-- 报工人/报工数量 --> <div class="flex-row" :title="'实际结束'">
<div class="flex-row" :title="'报工人和数量'"> <span class="icon-text">
<span class="icon-text" <el-icon><Edit /></el-icon></span
><el-icon><User /></el-icon>/</span >
> <span style="color: #1990ff" class="icon-text"> {{ item.factEndTime || '-' }}</span>
<span v-if="item.workManName" class="icon-text">
{{ item.workManName }}/{{ item.workQty }}
</span>
<span v-else class="icon-text">-</span>
</div>
<!-- 额定工时-实际工时 -->
<div class="flex-row" :title="'额定工时-实际工时'">
<span class="icon-text">
<el-icon><Odometer /></el-icon>/(min)</span
>
<span class="icon-text"> {{ item.hourQuota }}/{{ item.hourActual }} </span>
</div>
<!-- 计划开始-计划结束 -->
<div class="flex-row" :title="'计划开始'">
<span class="icon-text">
<el-icon><Odometer /></el-icon></span
>
<span class="icon-text">
{{ item.planStartTime }}
</span>
</div>
<div class="flex-row" :title="'计划结束'">
<span class="icon-text">
<el-icon><Odometer /></el-icon></span
>
<span class="icon-text">
{{ item.planEndTime }}
</span>
</div>
<!-- 实际开始-实际结束 -->
<div class="flex-row" :title="'实际开始'">
<span class="icon-text">
<el-icon><Edit /></el-icon></span
>
<span>{{ item.factStartTime || '-' }}</span>
</div>
<div class="flex-row" :title="'实际结束'">
<span class="icon-text">
<el-icon><Edit /></el-icon></span
>
<span style="color: #1990ff" class="icon-text">
{{ item.factEndTime || '-' }}</span
>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="details-box" v-if="selectedItemId && selectedItemInfo.status > 1"> </div>
<div class="details-box-item"> <div class="details-box" v-if="selectedItemId && selectedItemInfo.status > 1">
<div class="de-title">工序详情</div> <div class="details-box-item">
<el-descriptions :column="4" border label-width="100" class="fixed-descriptions"> <div class="de-title">工序详情</div>
<el-descriptions-item label="接收数量" :span="1">{{ <el-descriptions :column="4" border label-width="100" class="fixed-descriptions">
processDetails.qualifiedQty <el-descriptions-item label="接收数量" :span="1">{{
}}</el-descriptions-item> processDetails.qualifiedQty
<el-descriptions-item label="计划开始" :span="1">{{ }}</el-descriptions-item>
selectedItemInfo.planStartTime <el-descriptions-item label="计划开始" :span="1">{{
}}</el-descriptions-item> selectedItemInfo.planStartTime
<el-descriptions-item label="计划结束" :span="1">{{ }}</el-descriptions-item>
selectedItemInfo.planEndTime <el-descriptions-item label="计划结束" :span="1">{{
}}</el-descriptions-item> selectedItemInfo.planEndTime
<el-descriptions-item label="接收人" :span="1">{{ }}</el-descriptions-item>
processDetails.receiveMan <el-descriptions-item label="接收人" :span="1">{{
}}</el-descriptions-item> processDetails.receiveMan
<el-descriptions-item label="实际开始" :span="1">{{ }}</el-descriptions-item>
selectedItemInfo.factStartTime <el-descriptions-item label="实际开始" :span="1">{{
}}</el-descriptions-item> selectedItemInfo.factStartTime
<el-descriptions-item label="实际结束" :span="1">{{ }}</el-descriptions-item>
selectedItemInfo.planEndTime <el-descriptions-item label="实际结束" :span="1">{{
}}</el-descriptions-item> selectedItemInfo.planEndTime
<el-descriptions-item label="试验数量" :span="1">{{ }}</el-descriptions-item>
processDetails.testQty <el-descriptions-item label="试验数量" :span="1">{{
}}</el-descriptions-item> processDetails.testQty
<el-descriptions-item label="消耗数量" :span="1">{{ }}</el-descriptions-item>
processDetails.lossQty <el-descriptions-item label="消耗数量" :span="1">{{
}}</el-descriptions-item> processDetails.lossQty
<el-descriptions-item label="报废数量" :span="1">{{ }}</el-descriptions-item>
processDetails.scrapQty <el-descriptions-item label="报废数量" :span="1">{{
}}</el-descriptions-item> processDetails.scrapQty
</el-descriptions> }}</el-descriptions-item>
</div> </el-descriptions>
<div </div>
class="details-box-item" <div
v-if="processDetails.mrList && processDetails.mrList.length >= 0" class="details-box-item"
> v-if="processDetails.mrList && processDetails.mrList.length >= 0"
<div class="de-title">加工记录</div> >
<el-table <div class="de-title">加工记录</div>
:data="processDetails.mrList" <el-table
:sequence="false" :data="processDetails.mrList"
:no-page="false" :sequence="false"
:export-excel="false" :no-page="false"
border :export-excel="false"
> border
<el-table-column label="操作工" align="center" prop="worker" min-width="150" />
<el-table-column label="加工时间" align="center" prop="makeTime" min-width="150" />
<el-table-column label="合格数量" align="center" prop="workQty" min-width="150" />
<el-table-column label="报废数量" align="center" prop="scrapQty" min-width="150" />
<el-table-column label="备注" align="center" prop="memo" min-width="150" />
</el-table>
</div>
<div
class="details-box-item"
v-if="processDetails.trialItemList && processDetails.trialItemList.length > 0"
>
<div class="de-title">转试记录</div>
<el-table :data="processDetails.trialItemList" border>
<el-table-column label="试验信息" align="center" prop="testName" />
<el-table-column label="转试人" align="center" prop="testUser" />
<el-table-column label="转试时间" align="center" prop="testTime" />
<el-table-column label="试验状态" align="center" prop="testStatus" />
</el-table>
</div>
<div
class="details-box-item"
v-if="processDetails.slotList && processDetails.slotList.length > 0"
> >
<div class="de-title">同槽信息</div> <el-table-column label="操作工" align="center" prop="worker" min-width="150" />
<el-table :data="processDetails.slotList" border> <el-table-column label="加工时间" align="center" prop="makeTime" min-width="150" />
<el-table-column label="同槽编号" align="center" prop="mtuCode" /> <el-table-column label="合格数量" align="center" prop="workQty" min-width="150" />
<el-table-column label="零件号" align="center" prop="partCode" /> <el-table-column label="报废数量" align="center" prop="scrapQty" min-width="150" />
<el-table-column label="批次号" align="center" prop="batchNo" /> <el-table-column label="备注" align="center" prop="memo" min-width="150" />
<el-table-column label="数量" align="center" prop="qua" /> </el-table>
<el-table-column label="生产标识" align="center" prop="prodIdent" /> </div>
<el-table-column label="面积" align="center" prop="area" /> <div
<el-table-column label="总面积" align="center" prop="totalArea" /> class="details-box-item"
</el-table> v-if="processDetails.trialItemList && processDetails.trialItemList.length > 0"
</div> >
<div <div class="de-title">转试记录</div>
class="details-box-item" <el-table :data="processDetails.trialItemList" border>
v-if="processDetails.mtuList && processDetails.mtuList.length > 0" <el-table-column label="试验信息" align="center" prop="testName" />
<el-table-column label="转试人" align="center" prop="testUser" />
<el-table-column label="转试时间" align="center" prop="testTime" />
<el-table-column label="试验状态" align="center" prop="testStatus" />
</el-table>
</div>
<div
class="details-box-item"
v-if="processDetails.slotList && processDetails.slotList.length > 0"
>
<div class="de-title">同槽信息</div>
<el-table :data="processDetails.slotList" border>
<el-table-column label="同槽编号" align="center" prop="mtuCode" />
<el-table-column label="零件号" align="center" prop="partCode" />
<el-table-column label="批次号" align="center" prop="batchNo" />
<el-table-column label="数量" align="center" prop="qua" />
<el-table-column label="生产标识" align="center" prop="prodIdent" />
<el-table-column label="面积" align="center" prop="area" />
<el-table-column label="总面积" align="center" prop="totalArea" />
</el-table>
</div>
<div
class="details-box-item"
v-if="processDetails.mtuList && processDetails.mtuList.length > 0"
>
<div class="de-title">设备使用详情</div>
<el-table
:data="processDetails.mtuList"
:sequence="false"
:no-page="false"
:export-excel="false"
border
> >
<div class="de-title">设备使用详情</div> <el-table-column label="挂具编号" align="center" prop="rsCode" />
<el-table <el-table-column label="飞靶编号" align="center" prop="fsCode" />
:data="processDetails.mtuList" <el-table-column label="设备编码" align="center" prop="deviceCode" />
:sequence="false" <el-table-column label="挂次号" align="center" prop="hangNum" min-width="150" />
:no-page="false" </el-table>
:export-excel="false" </div>
border <div class="linediv details-box-item" v-if="processDetails.prWorkCheck != null">
> <div class="de-title">检验记录</div>
<el-table-column label="挂具编号" align="center" prop="rsCode" /> <el-descriptions :column="4" label-width="100" class="fixed-descriptions" border>
<el-table-column label="飞靶编号" align="center" prop="fsCode" /> <el-descriptions-item label="检验数量">
<el-table-column label="设备编码" align="center" prop="deviceCode" /> {{ processDetails.checkQty }}
<el-table-column label="挂次号" align="center" prop="hangNum" min-width="150" /> </el-descriptions-item>
</el-table> <el-descriptions-item label="合格数量">
</div> {{ processDetails.qualifiedQty }}
<div class="linediv details-box-item" v-if="processDetails.prWorkCheck != null"> </el-descriptions-item>
<div class="de-title">检验记录</div> <el-descriptions-item label="不合格数量">
<el-descriptions :column="4" label-width="100" class="fixed-descriptions" border> {{ processDetails.unqualifiedQty }}
<el-descriptions-item label="检验数量"> </el-descriptions-item>
{{ processDetails.checkQty }} <el-descriptions-item label="消耗数量">
</el-descriptions-item> {{ processDetails.lossQty }}
<el-descriptions-item label="合格数量"> </el-descriptions-item>
{{ processDetails.qualifiedQty }} <el-descriptions-item label="报废数量">
</el-descriptions-item> {{ processDetails.scrapQty }}
<el-descriptions-item label="不合格数量"> </el-descriptions-item>
{{ processDetails.unqualifiedQty }} <el-descriptions-item label="返工数量">
</el-descriptions-item> {{ processDetails.reworkQty }}
<el-descriptions-item label="消耗数量"> </el-descriptions-item>
{{ processDetails.lossQty }} <el-descriptions-item label="备注">
</el-descriptions-item> {{ processDetails.checkMemo }}
<el-descriptions-item label="报废数量"> </el-descriptions-item>
{{ processDetails.scrapQty }} </el-descriptions>
</el-descriptions-item> </div>
<el-descriptions-item label="返工数量"> <div
{{ processDetails.reworkQty }} class="details-box-item"
</el-descriptions-item> v-if="processDetails.itemList && processDetails.itemList.length > 0"
<el-descriptions-item label="备注"> >
{{ processDetails.checkMemo }} <div class="de-title">检验项</div>
</el-descriptions-item> <el-table
</el-descriptions> :ref="'myTable'"
</div> :sequence="false"
<div :span-method="objectSpanMethod"
class="details-box-item" :no-page="false"
v-if="processDetails.itemList && processDetails.itemList.length > 0" :export-excel="false"
border
:data="processDetails.itemList"
> >
<div class="de-title">检验项</div> <el-table-column label="项目编号" prop="itemCode" align="center" width="130">
<el-table </el-table-column>
:ref="'myTable'" <el-table-column label="项目" prop="itemName" align="center" width="150" />
:sequence="false" <el-table-column
:span-method="objectSpanMethod" label="标准"
:no-page="false" prop="standardName"
:export-excel="false" align="center"
border show-overflow-tooltip
:data="processDetails.itemList" />
> <el-table-column label="测试值" align="center" width="120">
<el-table-column label="项目编号" prop="itemCode" align="center" width="130"> <!-- <template slot-scope="scope">
</el-table-column>
<el-table-column label="项目" prop="itemName" align="center" width="150" />
<el-table-column
label="标准"
prop="standardName"
align="center"
show-overflow-tooltip
/>
<el-table-column label="测试值" align="center" width="120">
<!-- <template slot-scope="scope">
<div> <div>
<el-popover <el-popover
v-if="scope.row.itemName&&scope.row.itemName === '厚度检测'" v-if="scope.row.itemName&&scope.row.itemName === '厚度检测'"
@ -471,109 +413,119 @@
<span v-else>{{ scope.row.checkValue }}</span> <span v-else>{{ scope.row.checkValue }}</span>
</div> </div>
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column label="试验数量" property="testQty" align="center" width="70" /> <el-table-column label="试验数量" property="testQty" align="center" width="70" />
<el-table-column label="消耗数量" property="lossQty" align="center" width="70" /> <el-table-column label="消耗数量" property="lossQty" align="center" width="70" />
<el-table-column label="检验数量" property="checkQty" align="center" width="70" /> <el-table-column label="检验数量" property="checkQty" align="center" width="70" />
<el-table-column label="检验结果" property="checkResult" align="center" width="80" /> <el-table-column label="检验结果" property="checkResult" align="center" width="80" />
<el-table-column label="检验人" property="checkMan" align="center" width="90" /> <el-table-column label="检验人" property="checkMan" align="center" width="90" />
<el-table-column label="检验时间" property="checkDate" align="center" width="160" /> <el-table-column label="检验时间" property="checkDate" align="center" width="160" />
</el-table> </el-table>
</div> </div>
<div <div
class="details-box-item" class="details-box-item"
v-if=" v-if="
processDetails.printType == 1 && processDetails.printType == 1 &&
processDetails.dsRbFilePreserveSlotList && processDetails.dsRbFilePreserveSlotList &&
processDetails.dsRbFilePreserveSlotList.length > 0 processDetails.dsRbFilePreserveSlotList.length > 0
" "
> >
<div class="de-title"> <div class="de-title">
过程质量记录 过程质量记录
<!-- <el-button type="text" @click="syncData()" v-loading="syncLoading" <!-- <el-button type="text" @click="syncData()" v-loading="syncLoading"
>手动同步记录</el-button >手动同步记录</el-button
> --> > -->
</div>
<preserve-slot-list :slot-list="processDetails.dsRbFilePreserveSlotList" />
</div> </div>
<div style="width: 950px"> <preserve-slot-list :slot-list="processDetails.dsRbFilePreserveSlotList" />
<template v-if="selectedItemInfo.ppsName == '玻璃封接清洗'"> </div>
<template v-if="processDetails.prList != null && processDetails.prList.length > 0"> <div style="width: 950px">
<el-table :data="[processDetails.prList[0]]" border> <template v-if="selectedItemInfo.ppsName == '玻璃封接清洗'">
<el-table-column label="清洗开始时间" align="center" property="inDate" /> <template v-if="processDetails.prList != null && processDetails.prList.length > 0">
<el-table-column label="清洗结束时间" align="center" property="outDate" /> <el-table :data="[processDetails.prList[0]]" border>
<el-table-column label="温度(℃)" align="center" property="tempSlot" /> <el-table-column label="清洗开始时间" align="center" property="inDate" />
<el-table-column label="操作者" align="center" property="createMan" /> <el-table-column label="清洗结束时间" align="center" property="outDate" />
</el-table> <el-table-column label="温度(℃)" align="center" property="tempSlot" />
</template>
<template v-if="processDetails.prList != null && processDetails.prList.length > 1">
<el-table :data="[processDetails.prList[1]]" border>
<el-table-column label="烘干开始时间" align="center" property="inDate" />
<el-table-column label="烘干结束时间" align="center" property="outDate" />
<el-table-column label="烘箱温度(℃)" align="center" property="tempSlot" />
<el-table-column label="操作者" align="center" property="createMan" />
<el-table-column label="设备编号" align="center" property="deviceId" />
</el-table>
</template>
</template>
<!-- 如果当前工序是 玻璃封接退火 -->
<template v-if="selectedItemInfo.ppsName == '玻璃封接退火'">
<el-table :data="processDetails.prList" border>
<el-table-column label="数量" align="center" property="dataThree" />
<el-table-column label="入炉时间" align="center" property="inDate" />
<el-table-column label="保温开始时间" align="center" property="dataThirteen" />
<el-table-column label="退火温度" align="center" property="tempSlot" />
<el-table-column label="保温结束时间" align="center" property="dataTwelve" />
<el-table-column label="最小真空度(Pa)" align="center" property="dataFourteen" />
<el-table-column label="出炉时间" align="center" property="outDate" />
<el-table-column label="操作者" align="center" property="createMan" />
<el-table-column label="设备编号" align="center" property="deviceId" />
</el-table>
</template>
<!-- 如果当前工序是 玻璃封接预氧化箱式炉 -->
<template v-if="selectedItemInfo.ppsName == '玻璃封接预氧化(箱式炉)'">
<el-table :data="processDetails.prList" border>
<el-table-column label="数量" align="center" property="dataThree" />
<el-table-column label="入炉时间" align="center" property="inDate" />
<el-table-column label="保温开始时间" align="center" property="dataThirteen" />
<el-table-column label="保温温度" align="center" property="tempSlot" />
<el-table-column label="保温结束时间" align="center" property="dataTwelve" />
<el-table-column label="操作者" align="center" property="createMan" /> <el-table-column label="操作者" align="center" property="createMan" />
<el-table-column label="设备编号" align="center" property="deviceId" />
</el-table> </el-table>
</template> </template>
<!-- 如果当前工序是 玻璃封接预氧化链式炉 --> <template v-if="processDetails.prList != null && processDetails.prList.length > 1">
<template v-if="selectedItemInfo.ppsName == '玻璃封接预氧化(链式炉)'"> <el-table :data="[processDetails.prList[1]]" border>
<el-table :data="processDetails.prList" border> <el-table-column label="烘干开始时间" align="center" property="inDate" />
<el-table-column label="数量" align="center" property="dataThree" /> <el-table-column label="烘干结束时间" align="center" property="outDate" />
<el-table-column label="湿氮预氧化温度(℃)" align="center" property="tempSlot" /> <el-table-column label="烘箱温度(℃)" align="center" property="tempSlot" />
<el-table-column label="露点" align="center" property="dataEleven" />
<el-table-column label="入炉时间" align="center" property="inDate" />
<el-table-column label="出炉时间" align="center" property="outDate" />
<el-table-column label="链速" align="center" property="vSpeed" />
<el-table-column label="操作者" align="center" property="createMan" /> <el-table-column label="操作者" align="center" property="createMan" />
<el-table-column label="设备编号" align="center" property="deviceId" /> <el-table-column label="设备编号" align="center" property="deviceId" />
</el-table> </el-table>
</template> </template>
<!-- 如果当前工序是 玻璃封接链式炉 --> </template>
<template v-if="selectedItemInfo.ppsName == '玻璃封接(链式炉)'"> <!-- 如果当前工序是 玻璃封接退火 -->
<el-table :data="processDetails.prList" border> <template v-if="selectedItemInfo.ppsName == '玻璃封接退火'">
<el-table-column label="数量" align="center" property="dataThree" /> <el-table :data="processDetails.prList" border>
<el-table-column label="封接温度(℃)" align="center" property="tempSlot" /> <el-table-column label="数量" align="center" property="dataThree" />
<el-table-column label="入炉时间" align="center" property="inDate" /> <el-table-column label="入炉时间" align="center" property="inDate" />
<el-table-column label="出炉时间" align="center" property="outDate" /> <el-table-column label="保温开始时间" align="center" property="dataThirteen" />
<el-table-column label="链速" align="center" property="vSpeed" /> <el-table-column label="退火温度" align="center" property="tempSlot" />
<el-table-column label="操作者" align="center" property="createMan.userName" /> <el-table-column label="保温结束时间" align="center" property="dataTwelve" />
<el-table-column label="设备编号" align="center" property="deviceId" /> <el-table-column label="最小真空度(Pa)" align="center" property="dataFourteen" />
</el-table> <el-table-column label="出炉时间" align="center" property="outDate" />
</template> <el-table-column label="操作者" align="center" property="createMan" />
</div> <el-table-column label="设备编号" align="center" property="deviceId" />
</div> </el-table>
<div class="details-box details-box-item" v-if="selectedItemId && selectedItemInfo.status == 1"> </template>
<el-empty description="暂无加工、检验记录!"></el-empty> <!-- 如果当前工序是 玻璃封接预氧化箱式炉 -->
<template v-if="selectedItemInfo.ppsName == '玻璃封接预氧化(箱式炉)'">
<el-table :data="processDetails.prList" border>
<el-table-column label="数量" align="center" property="dataThree" />
<el-table-column label="入炉时间" align="center" property="inDate" />
<el-table-column label="保温开始时间" align="center" property="dataThirteen" />
<el-table-column label="保温温度" align="center" property="tempSlot" />
<el-table-column label="保温结束时间" align="center" property="dataTwelve" />
<el-table-column label="操作者" align="center" property="createMan" />
<el-table-column label="设备编号" align="center" property="deviceId" />
</el-table>
</template>
<!-- 如果当前工序是 玻璃封接预氧化链式炉 -->
<template v-if="selectedItemInfo.ppsName == '玻璃封接预氧化(链式炉)'">
<el-table :data="processDetails.prList" border>
<el-table-column label="数量" align="center" property="dataThree" />
<el-table-column label="湿氮预氧化温度(℃)" align="center" property="tempSlot" />
<el-table-column label="露点" align="center" property="dataEleven" />
<el-table-column label="入炉时间" align="center" property="inDate" />
<el-table-column label="出炉时间" align="center" property="outDate" />
<el-table-column label="链速" align="center" property="vSpeed" />
<el-table-column label="操作者" align="center" property="createMan" />
<el-table-column label="设备编号" align="center" property="deviceId" />
</el-table>
</template>
<!-- 如果当前工序是 玻璃封接链式炉 -->
<template v-if="selectedItemInfo.ppsName == '玻璃封接(链式炉)'">
<el-table :data="processDetails.prList" border>
<el-table-column label="数量" align="center" property="dataThree" />
<el-table-column label="封接温度(℃)" align="center" property="tempSlot" />
<el-table-column label="入炉时间" align="center" property="inDate" />
<el-table-column label="出炉时间" align="center" property="outDate" />
<el-table-column label="链速" align="center" property="vSpeed" />
<el-table-column label="操作者" align="center" property="createMan.userName" />
<el-table-column label="设备编号" align="center" property="deviceId" />
</el-table>
</template>
</div> </div>
</div>
<div
class="details-box details-box-item"
v-if="selectedItemId && selectedItemInfo.status == 1"
>
<el-empty description="暂无加工、检验记录!"></el-empty>
</div>
</div>
<!-- <el-collapse v-model="activeName">
<el-collapse-item title="订单信息" name="1">
<template #title="{ isActive }"> 订单信息 </template>
</el-collapse-item>
<el-collapse-item title="工序信息" name="2" >
</el-collapse-item> </el-collapse-item>
</el-collapse> </el-collapse> -->
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
@ -598,6 +550,115 @@ export default {
contentView, contentView,
preserveSlotList, preserveSlotList,
}, },
computed: {
//
orderItems() {
//
const getPriorityStyle = importance => {
if (importance == 1) {
return 'color: green';
} else if (importance == 2 || importance == 3) {
return 'color: red';
} else {
return 'color: rgb(251, 170, 8)';
}
};
return [
{ label: '车间订单号', value: this.detailsForm.orderWoCode || '' },
{ label: '流程卡号', value: this.detailsForm.cardNo || '' },
{
label: '零件号',
value: this.detailsForm.partCode || '',
clickable: true,
clickHandler: () => this.openDocLink(this.detailsForm.dsPart),
},
{ label: '批次号', value: this.detailsForm.batchNo || '' },
{ label: '订单数量', value: this.detailsForm.poQty || '' },
{ label: '状态', value: this.detailsForm.curStatus || '' },
{
label: '优先级',
value: this.detailsForm.priority || '',
style: getPriorityStyle(this.detailsForm.priority),
},
{
label: '调度员',
value: this.detailsForm.dispatcher === null ? '' : this.detailsForm.userName,
},
{ label: '订单下达', value: this.detailsForm.sendDownTime || '' },
{ label: '生产数量', value: this.detailsForm.makeQty || '' },
{ label: '零件名称', value: this.detailsForm.dsPart?.partName || '' },
{ label: '产品型号', value: this.detailsForm.dsPart?.productType || '' },
{ label: '硬度', value: this.detailsForm.dsPart?.hardness || '' },
{ label: '计划完工', value: this.detailsForm.planEndDate || '' },
{
label: '需求交期',
value: this.detailsForm.priority === 4 ? this.detailsForm.demandDate : '',
},
{ label: '镀种', value: this.detailsForm.dsPart?.plate || '' },
{ label: '面积 (dm²)', value: this.detailsForm.dsPart?.area || '' },
{ label: '材料', value: this.detailsForm.dsPart?.material || '' },
{ label: '生产标识', value: this.detailsForm.prodIdent || '' },
{ label: '镀后入库', value: this.detailsForm.putStoreTime || '' },
{ label: '标记要求', value: this.detailsForm.dsPart?.signMemo || '' },
{ label: '关键信息', value: this.detailsForm.dsPart?.cruxMemo || '' },
{ label: '试验数量', value: this.detailsForm.testQty || '' },
{ label: '消耗数量', value: this.detailsForm.lossQty || '' },
{
label: '是否印字',
value:
this.detailsForm.yieldType != 1
? this.detailsForm.dsPart?.isPrint == 1
? '否'
: this.detailsForm.dsPart?.isPrint == 2
? '单'
: '双'
: '',
},
{ label: '工艺路线', value: this.detailsForm.dsPart?.craftWay || '' },
{
label: '返工单号',
value: this.detailsForm.curStatus == 19 ? this.detailsForm.qcReworkCode || '' : '',
clickable: this.detailsForm.curStatus == 19,
clickHandler: () => this.openClient(this.detailsForm.qcReworkCode),
},
{
label: '涂色标个数',
value: this.detailsForm.yieldType == 1 ? this.detailsForm.dsPart?.tsbNum : '',
},
{
label: '涂色带个数',
value: this.rowItem.yieldType == 1 ? this.detailsForm.dsPart?.tsdNum || '' : '',
},
{
label: '涂箭头个数',
value: this.rowItem.yieldType == 1 ? this.detailsForm.dsPart?.tjtNum || '' : '',
},
{ label: '产品系列', value: this.detailsForm.dsPart?.productSeries || '' },
{ label: '工作订单备注', value: this.detailsForm.poMemo || '' },
{
label: '会议要求周期',
value: this.detailsForm.priority === 4 ? this.detailsForm.meetCycle : '',
},
{
label: '审理单号',
value: this.detailsForm.reworkCode || '',
clickable: true,
clickHandler: () => this.openQcSheet(this.detailsForm.reworkCode),
},
];
},
//
displayOrderItems() {
if (this.orderInfoExpanded) {
//
return this.orderItems;
} else {
// 10 2
return this.orderItems.slice(0, 10);
}
},
},
data() { data() {
return { return {
processSelectLoading: false, processSelectLoading: false,
@ -634,6 +695,7 @@ export default {
5: '已完成', 5: '已完成',
}, },
processDetails: {}, // processDetails: {}, //
orderInfoExpanded: false,
}; };
}, },
mounted() { mounted() {
@ -650,6 +712,10 @@ export default {
}); });
}, },
methods: { methods: {
// /
toggleOrderInfo() {
this.orderInfoExpanded = !this.orderInfoExpanded;
},
// //
syncData() { syncData() {
this.syncLoading = true; this.syncLoading = true;
@ -948,10 +1014,8 @@ i {
border-radius: 6px 6px 6px 6px; border-radius: 6px 6px 6px 6px;
margin-bottom: 15px; margin-bottom: 15px;
} }
} }
.production-process-item { .production-process-item {
border: 1px solid #284c89; border: 1px solid #284c89;
width: 220px; width: 220px;
@ -1037,8 +1101,28 @@ i {
} }
} }
.de-title { .de-title {
font-weight: bold; font-weight: bold;
margin-bottom: 5px; margin-bottom: 5px;
}
.expand-btn {
font-size: 13px;
color: #409eff;
padding: 5px 10px;
&:hover {
color: #66b1ff;
} }
}
.order-box {
margin: 10px 0 10px 0;
padding: 0 10px;
display: flex;
flex-wrap: wrap;
.order-item {
width: 20%;
margin-bottom: 10px;
}
}
</style> </style>

Loading…
Cancel
Save