Commit cc20a4b8 authored by 沈翠玲's avatar 沈翠玲

iqc打印和编排对照和生产工单

parent f6181e16
......@@ -26,6 +26,14 @@ export function addIqc(data) {
})
}
// 打印iqc检验单
export function printIqc(id) {
return request({
url: '/mes/qc/iqc/' + id,
method: 'get'
})
}
// 修改来料检验单
export function updateIqc(data) {
return request({
......
......@@ -17,6 +17,14 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="换型关键字" prop="ruleCode">
<el-input
v-model="queryParams.ruleCode"
placeholder="请输入换型关键字"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -449,7 +457,7 @@ export default {
/** 下载模板操作 */
importTemplate() {
this.download(
"mes/pro/scheduleSetupRule/importTemplate",
"pro/scheduleSetupRule/importTemplate",
{},
`scheduleSetupRule_${new Date().getTime()}.xlsx`
);
......
......@@ -270,7 +270,7 @@
</el-table-column>
<el-table-column label="是否急单" align="center" prop="rushOrder">
<template slot-scope="scope">
<dict-tag :options="dict.type.rush_order" :value="scope.row.rushOrder" />
{{scope.row.rushOrder === 'Y' ? '是' : ''}}
</template>
</el-table-column>
<el-table-column label="排版状态" align="center" prop="dtaAction">
......
......@@ -66,12 +66,25 @@
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['mes:qc:ipqc:export']">导出</el-button>
</el-col>
<el-col :span="1.2">
<el-button type="warning" plain size="mini" v-print="printContent" id="printbtn" style="display: none"
>打印
</el-button>
<el-button type="warning" plain size="mini" style="margin-left: 0;" icon="el-icon-printer" ref="printbtn" @click="handlePrint" :disabled="single" :loading="printloading" v-hasPermi="['mes:pro:workorder:print']"
>打印
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="ipqcList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="检验单编号" width="150px" align="center" prop="iqcCode" />
<el-table-column label="检验单编号" width="150px" align="center" prop="iqcCode" >
<template slot-scope="scope">
<el-button type="text" @click="handleView(scope.row)"
v-hasPermi="['mes:qc:iqc:query']">{{ scope.row.iqcCode }}</el-button>
</template>
</el-table-column>
<el-table-column label="物料分类" width="150px" align="center" prop="itemTypeName" />
<el-table-column label="物料编码" width="120px" align="center" prop="sapItemCode" />
<el-table-column label="物料名称" width="150px" align="center" prop="itemName" :show-overflow-tooltip="true" />
......@@ -118,160 +131,98 @@
@pagination="getList" />
<!-- 添加或修改过程检验单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-dialog :title="title" :visible.sync="open" width="1060px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px" label-position="left">
<el-row>
<el-col :span="12">
<el-col :span="form.iqcName ? 8 : 12">
<el-form-item label="检验单编号" prop="iqcCode">
<div style="display:flex;align-items: center;">
<el-input v-model="form.iqcCode" placeholder="请输入检验单编号" />
<el-switch v-model="autoGenFlag" active-color="#13ce66" active-text="自动生成"
style="width:175px;margin-left:10px;" @change="handleAutoGenChange(autoGenFlag)"
v-if="optType != 'view' && form.status == 'PREPARE'">
</el-switch>
</div>
{{form.iqcCode}}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="检验单名称" prop="ipqcName">
<el-input v-model="form.ipqcName" placeholder="请输入检验单名称" />
<el-col :span="form.iqcName ? 8 : 12" v-if="form.iqcName">
<el-form-item label="检验单名称" prop="iqcName">
{{form.iqcName}}
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="检验类型" prop="voucherNo">
<el-select v-model="form.voucherNo" placeholder="请选择检验类型">
<el-option v-for="dict in dict.type.mes_ipqc_type_pc" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
<el-col :span="form.iqcName ? 8 : 12">
<el-form-item label="供应商名称" prop="vendorName">
{{form.vendorName}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="采购单号" prop="purchaseOrderNo">
{{form.purchaseOrderNo}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="采购单行号" prop="purchaseOrderItemNo">
{{form.purchaseOrderItemNo}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="凭证号" prop="voucherNo">
{{form.voucherNo}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="凭证行号" prop="voucherItemNo">
{{form.voucherItemNo}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="批次号" prop="batchNo">
{{form.batchNo}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="批次数量" prop="batchNo">
{{form.quantity}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="物料分类" prop="itemTypeName">
<el-input v-model="form.itemTypeName">
</el-input>
{{form.itemTypeName}}
</el-form-item>
<WorkorderSelect ref="woSelect" @onSelected="onWorkorderSelected"></WorkorderSelect>
</el-col>
<el-col :span="8">
<el-form-item label="工单名称" prop="workorderName">
<el-input v-model="form.workorderName" readonly="readonly" />
<el-col :span="6">
<el-form-item label="物料编码" prop="sapItemCode">
{{form.sapItemCode}}
</el-form-item>
</el-col>
</el-row>
<el-row>
<WorkuintSelect ref="WorkuintSelect" @onSelected="val => onWorkstationSelected(val)"></WorkuintSelect>
<el-col :span="8">
<el-form-item label="工作单元编号" prop="workunitCode">
<el-input v-model="form.workunitCode" placeholder="工作单元编号" >
<el-button slot="append" icon="el-icon-search" @click="$refs.WorkuintSelect.showFlag = true"></el-button>
</el-input>
<el-col :span="12">
<el-form-item label="物料名称" prop="itemName">
{{form.itemName}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工作单元名称" prop="workunitName">
<el-input v-model="form.workunitName" readonly="readonly" />
<el-form-item label="检测数量" prop="quantityCheck">
<el-input-number v-model="form.quantityCheck" placeholder="请输入检测数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检测数量" prop="quantityCheck">
<el-input v-model="form.quantityCheck" placeholder="请输入检测数量" />
<el-col :span="4">
<el-form-item label="处理措施" prop="quantityCheck">
{{checkStatusList.find(v => v.dictKey === form.checkStatus) ? checkStatusList.find(v => v.dictKey === form.checkStatus).dictValue : ''}}
</el-form-item>
</el-col>
</el-row>
<el-collapse>
<el-collapse-item>
<template slot="title">
更多信息<i class="header-icon el-icon-info"></i>
</template>
<el-row>
<el-col :span="8">
<el-form-item label="产品编码" prop="itemCode">
<el-input v-model="form.itemCode" placeholder="请输入产品编码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品名称" prop="itemName">
<el-input v-model="form.itemName" placeholder="请输入产品名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单位" prop="unitOfMeasure">
<el-input v-model="form.unitOfMeasure" placeholder="请输入单位" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="规格型号" prop="specification">
<el-input v-model="form.specification" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工序编码" prop="voucherNo">
<el-input v-model="form.voucherNo" placeholder="请输入工序编码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="采购单号" prop="purchaseOrderNo">
<el-input v-model="form.purchaseOrderNo" placeholder="请输入采购单号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="任务编号" prop="taskCode">
<el-input v-model="form.taskCode" placeholder="请输入任务编号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="任务名称" prop="taskName">
<el-input v-model="form.taskCode" placeholder="请输入任务编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="不合格数" prop="quantityUnqualified">
<el-input v-model="form.quantityUnqualified" placeholder="请输入不合格数" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合格品数量" prop="quantityQualified">
<el-input v-model="form.quantityQualified" placeholder="请输入合格品数量" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="致命缺陷数量" prop="crQuantity">
<el-input v-model="form.crQuantity" placeholder="请输入致命缺陷数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="严重缺陷数量" prop="majQuantity">
<el-input v-model="form.majQuantity" placeholder="请输入严重缺陷数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="轻微缺陷数量" prop="minQuantity">
<el-input v-model="form.minQuantity" placeholder="请输入轻微缺陷数量" />
</el-form-item>
</el-col>
</el-row>
</el-collapse-item>
</el-collapse>
<el-row>
<el-col :span="8">
<el-form-item label="检测日期" prop="inspectDate">
<el-date-picker clearable v-model="form.inspectDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择检测日期">
</el-date-picker>
<WorkuintSelect ref="WorkuintSelect" @onSelected="val => onWorkstationSelected(val)"></WorkuintSelect>
<el-col :span="6">
<el-form-item label="单位" prop="workunitCode">
{{form.unitOfMeasure}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="是否客供" prop="workunitName">
{{ form.moveType == 501 ? '是' : '否' }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="送货日期" prop="inspectDate">
{{form.createTime}}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="检测结果" prop="checkResult">
<el-select v-model="form.checkResult" placeholder="请选择检验结果">
<el-option v-for="dict in dict.type.mes_qc_result" :key="dict.value" :label="dict.label"
......@@ -280,15 +231,18 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检测人员" prop="inspector">
<el-input v-model="form.inspector" placeholder="请输入检测人员" />
<el-form-item label="不合格数" prop="quantityUnqualified">
<el-input-number v-model="form.quantityUnqualified" placeholder="请输入不合格数" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
<el-col :span="8">
<el-form-item label="合格品数量" prop="quantityQualified">
<el-input-number v-model="form.quantityQualified" placeholder="请输入合格品数量" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="检测人员" prop="inspectorName">
{{form.inspectorName}}
</el-form-item>
</el-col>
</el-row>
......@@ -306,19 +260,28 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<div style="overflow: hidden;width: 0;height: 0;">
<div id="iqcDetail">
<iqcTable :iqcTable="iqcTable" style="page-break-after:always"></iqcTable>
</div>
</div>
</div>
</template>
<script>
import { getpclist, getcheckResult, getvoucherNoYear, getcheckStatus, getstatus } from "@/api/mes/qc/iqc";
import { getpclist, getcheckResult, getvoucherNoYear, getcheckStatus, getstatus, printIqc } from "@/api/mes/qc/iqc";
import { genCode } from "@/api/system/autocode/rule"
import WorkorderSelect from "@/components/workorderSelect/single.vue"
import WorkuintSelect from "@/components/workunitSelect/single.vue";
import iqcTable from "./iqcTable.vue";
import iqcline from "./iqcline.vue"
import dayjs from 'dayjs';
import print from 'vue-print-nb';
export default {
name: "Ipqc",
components: { WorkorderSelect, WorkuintSelect, iqcline },
directives: { print },
components: { WorkorderSelect, WorkuintSelect, iqcline, iqcTable },
dicts: ['mes_ipqc_type_pc', 'mes_qc_result', 'mes_order_status'],
data() {
return {
......@@ -330,6 +293,26 @@ export default {
ids: [],
// 非单个禁用
single: true,
printContent: {
id: 'iqcDetail',
// preview: true, // 预览工具是否启用
// previewTitle: '储能服务费结算单', // 预览页面的标题
popTitle: '', // 打印页面的页眉
extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
previewBeforeOpenCallback() {
},
previewOpenCallback() {},
beforeOpenCallback(vue) {
// vue.printLoading = true;
},
openCallback(vue) {
vue.printloading = false;
},
closeCallback() {},
clickMounted(vue) {
console.log('clickMounted')
},
},
// 非多个禁用
multiple: true,
// 显示搜索条件
......@@ -386,6 +369,8 @@ export default {
inspector: null,
status: null,
},
printloading: false,
iqcTable: {},
// 表单参数
form: {},
// 表单校验
......@@ -420,6 +405,33 @@ export default {
this.getList();
},
methods: {
handlePrint(){
this.printloading = true;
printIqc(this.ids).then(res=>{
if(!res.data || res.data.length === 0) {
return this.$message.warning('没有数据')
}
if(res.code === 200 && res.data) {
this.iqcTable = {
"saleNo": res.data.purchaseOrderNo,
"quantity": res.data.quantity,
"unit": res.data.baseunit,
"sapItemCode": res.data.sapItemCode,
"vendorCode": res.data.vendorCode,
"vendorName": res.data.vendorName,
"itemName": res.data.itemName,
"quantityUnqualified":res.data.quantityUnqualified,
"checkTime": res.data.inspectDate
}
this.iqcTable['lineList'] = res.data.qcIqcLineList || []
this.$nextTick(() => {
document.getElementById('printbtn').click()
})
}
}).finally(() => {
this.printloading = false;
})
},
//筛选日期设置默认值
setDate() {
this.daterangePurchaseDate = [dayjs().format('YYYY-MM-DD'), dayjs().add(7, 'day').format('YYYY-MM-DD')]
......@@ -555,7 +567,7 @@ export default {
handleView(row) {
this.reset();
const ipqcIds = row.iqcId
getIpqc(ipqcIds).then(response => {
printIqc(ipqcIds).then(response => {
this.form = {...row, ...response.data};
this.open = true;
this.title = "查看检验单信息";
......
<template>
<div class="productOrderSpecification">
<table border class="form-header font-size-16" style="table-layout: fixed;width: 100%;border:1px solid #000000;font-size:14px;line-height: 25px; margin: 8px 10px 5px 10px;">
<!-- -->
<tr height="30" class="color000">
<td colspan="6" align="center"><img width="140" src="@/assets/logo/logo.png" alt=""></td>
<td colspan="18" align="center"><div class="titles">广州市宝绅科技应用有限公司</div>Guangzhou Baoshen Science & Applied Technologies Co., Ltd.</td>
</tr>
<tr height="35" class="color000">
<td colspan="24" align="center"><div class="titles" style="line-height: 40px;height:40px">原材料检验记录表({{body.vendorName}})</div></td>
</tr>
<tr height="20" class="color000">
<td colspan="3" align="center">采购单号</td>
<td colspan="3" align="center">{{ body.saleNo }}</td>
<td colspan="2" align="center">送货数量</td>
<td colspan="2" align="center">{{ body.quantity }}</td>
<td colspan="2" align="center">不良品数</td>
<td colspan="2" align="center" style="word-wrap:break-word;word-break:break-all">{{ body.quantityUnqualified }}</td>
<td colspan="2" align="center">单位</td>
<td colspan="2" align="center">{{ body.unit }}</td>
<td colspan="2" align="center">报检日期</td>
<td colspan="4" align="center">{{ body.checkTime }}</td>
</tr>
<tr height="20" class="color000">
<td colspan="3" align="center">产品编号</td>
<td colspan="5" align="center">{{ body.sapItemCode }}</td>
<td colspan="2" align="center">产品名称</td>
<td colspan="6" align="center">{{ body.itemName }}</td>
<td colspan="2" align="center">供应商名称</td>
<td colspan="6" align="center" style="word-wrap:break-word;word-break:break-all">{{ body.vendorName }}</td>
</tr>
<tr height="20" class="color000" style="font-weight: 400">
<td colspan="1" align="center">序号</td>
<td colspan="2" align="center">检验项目</td>
<td colspan="15" align="center">检验标准</td>
<td colspan="4" align="center">检验结果</td>
<td colspan="2" align="center">判定</td>
</tr>
<tr height="20" v-for="(item,index) in body.lineList" :key="'processes' + index" class="color000">
<td colspan="1" align="center">{{index + 1}}</td>
<td colspan="2" align="center">{{item.qcTool}}</td>
<td colspan="15" align="center">{{item.indexName}}</td>
<td colspan="4" align="center">{{item.qualityCheckResults}} </td>
<td colspan="2" align="center"><dict-tag :options="dict.type.ver_item_determination" :value="item.status" /></td>
</tr>
<tr height="40" class="color000">
<td colspan="2" align="center">备注</td>
<td colspan="22" align="center" style="word-wrap:break-word;word-break:break-all; height: 40px;line-height:15px;font-size: 13px">
(1)品牌或客户指定材料供应商的,按照其标准或要求执行: (2)品牌或客户的标准高于内部标准的,按照品牌或客户的标准执行:<br>
(3)品牌或客户无具体标准要求的,按照内部标准执行;(4)★表示月度抽检测试项目,※表示周抽检项目;●表示年度测试项目;
</td>
</tr>
</table>
</div>
</template>
<script>
import dayjs from 'dayjs'
export default {
props: ['iqcTable'],
dicts: [
"ver_item_determination",
],
data() {
return {
date: dayjs().format('YYYY-MM-DD'),
// body: {
// "saleNo": "采购单号/purchaseOrderNo",
// "quantity": "1",
// "unit": "单位/baseunit",
// "sapItemCode": "产品编码",
// "vendorCode": "工银上编码",
// "vendorName": "供应商名称/vendorName",
// "logoUrl": "http://192.168.3.181:81/downdir/logo444.png",
// "itemName": "产品名称",
// "quantityUnqualified":"1",
// "checkTime": "报检日期/提交时间",
// "lineList": [
// {
// "seqNo": "序号",
// "iqcItemName": "检验项目/qcIqcLineList.",
// "iqcItemBaseDesc": "检验标准/qcIqcLineList.",
// "checkResult": "检测结果/qcIqcLineList.",
// "checkStatus": "判定/qcIqcLineList."
// }
// ]
// }
}
},
computed: {
body (){
return this.iqcTable
}
}
}
</script>
<style scoped lang="scss">
.productOrderSpecification{
position: relative;
width: 920px;
height: 1300px;
padding: 0 49px;
padding-top:20px;
box-sizing: border-box;
}
.titles{
text-align: center;
font-size:22px;
font-weight: 500;
}
.pageBottom{
display: flex;
justify-content: flex-end;
width: 850px;
padding: 0px 49px;
color: #000;
div{
margin-left:100px;
min-width: 200px;
}
}
[text-center]{
text-align: center;
}
.color000{
color: #000;
td {
word-wrap:break-word;
word-break:break-all
}
}
</style>
<template>
<div class="app-container">
<el-table v-loading="loading" :data="iqclineList" @selection-change="handleSelectionChange">
<el-table-column label="检测项名称" width="100px" align="center" prop="indexName" />
<el-table-column label="检测项类型" width="100px" align="center" prop="indexType">
<template slot-scope="scope">
<dict-tag :options="dict.type.mes_index_type" :value="scope.row.indexType"/>
</template>
<el-table-column label="检验名称" width="100px" align="center" prop="qcTool" />
<el-table-column label="检验要求" align="center" prop="indexName">
</el-table-column>
<el-table-column label="检测工具" align="center" prop="qcTool" />
<el-table-column label="检测要求" align="center" prop="checkMethod" />
<el-table-column label="标准值" align="center" prop="standerVal" />
<el-table-column label="单位" align="center" prop="unitOfMeasure" />
<el-table-column label="误差上限" align="center" prop="thresholdMax" />
<el-table-column label="误差下限" align="center" prop="thresholdMin" />
<el-table-column label="致命缺陷数量" align="center" prop="crQuantity" />
<el-table-column label="严重缺陷数量" align="center" prop="majQuantity" />
<el-table-column label="轻微缺陷数量" align="center" prop="minQuantity" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="项目判定" width="100px"align="center" prop="qualityCheckResults" />
<el-table-column label="判定" width="100px" align="center" prop="checkMethod" >
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleDefect(scope.row)"
v-hasPermi="['mes:qc:iqc:edit']"
v-if="optType !='view'"
>缺陷记录</el-button>
<dict-tag :options="dict.type.ver_item_determination" :value="scope.row.status" />
</template>
</el-table-column>
</el-table>
......@@ -47,7 +28,7 @@ import { listIqcline, getIqcline, delIqcline, addIqcline, updateIqcline } from "
import Defectrecord from "../defectrecord/index.vue"
export default {
name: "IqcLine",
dicts: ['mes_index_type'],
dicts: ['mes_index_type', 'ver_item_determination'],
props:{
iqcId: null,
optType: null,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment