|
|
@@ -0,0 +1,1262 @@
|
|
|
+<template>
|
|
|
+ <div
|
|
|
+ id="printSection"
|
|
|
+ style="
|
|
|
+ padding: 20px;
|
|
|
+ background-color: white;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ width: 1200px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div class="table1" style="width: 100%">
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ text-align: center;
|
|
|
+ font-size: 20px;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ font-weight: bold;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.groupName || '湖南特瑞精密医疗器器械有限公司' }}</div
|
|
|
+ >
|
|
|
+ <div style="text-align: center; font-size: 18px; margin-bottom: 5px"
|
|
|
+ >不合格品通知及评审处置表</div
|
|
|
+ >
|
|
|
+
|
|
|
+ <!-- 编号和报告单号 -->
|
|
|
+ <div style="margin-bottom: 5px">
|
|
|
+ <el-row style="display: flex">
|
|
|
+ <el-col :span="12" style="width: 50%">
|
|
|
+ <div style="display: flex; align-items: center">
|
|
|
+ <!-- 左侧空白占位 -->
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" style="width: 50%">
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span style="font-weight: bold; margin-right: 10px"
|
|
|
+ >表单编号:</span
|
|
|
+ >
|
|
|
+ <span v-if="isView">
|
|
|
+ {{ basicInfoData.reportNumber }}
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.reportNumber"
|
|
|
+ placeholder="请输入表单编号"
|
|
|
+ ></el-input>
|
|
|
+ </span>
|
|
|
+ <span style="font-weight: bold; margin-left: 3px">
|
|
|
+ <span> 版本:</span>
|
|
|
+ <span v-if="isView">
|
|
|
+ {{ basicInfoData.version }}
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ <el-input
|
|
|
+ style="width: 120px"
|
|
|
+ v-model="basicInfoData.version"
|
|
|
+ placeholder="请输入版本"
|
|
|
+ ></el-input>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 基本信息表格 -->
|
|
|
+ <table
|
|
|
+ class="basic-info-table"
|
|
|
+ border="1"
|
|
|
+ style="width: 100%; border-collapse: collapse"
|
|
|
+ >
|
|
|
+ <tbody>
|
|
|
+ <tr align="center">
|
|
|
+ <td style="width: 150px">不合格品类别</td>
|
|
|
+ <td colspan="3" align="left">
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.categoryList"
|
|
|
+ style="margin-left: 15px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="原辅料"></el-checkbox>
|
|
|
+ <el-checkbox label="包材"></el-checkbox>
|
|
|
+ <el-checkbox label="中间产品"></el-checkbox>
|
|
|
+ <el-checkbox label="成品"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </td>
|
|
|
+ <td style="width: 150px">处置编号</td>
|
|
|
+ <td style="width: 180px">
|
|
|
+ <el-input
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="basicInfoData.disposalNumber"
|
|
|
+ placeholder="请输入处置编号"
|
|
|
+ ></el-input>
|
|
|
+ <span v-else>
|
|
|
+ {{ basicInfoData.disposalNumber }}
|
|
|
+ </span>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr align="center"
|
|
|
+ ><td colspan="6"
|
|
|
+ ><span style="font-weight: 800; font-size: 15px"
|
|
|
+ >基本信息</span
|
|
|
+ ></td
|
|
|
+ ></tr
|
|
|
+ >
|
|
|
+ <tr align="center"
|
|
|
+ ><td>品名</td><td>型号规格</td><td>批号</td
|
|
|
+ ><td style="width: 80px">数量</td><td colspan="2">来源</td>
|
|
|
+ </tr>
|
|
|
+ <tr align="center"
|
|
|
+ ><td>{{ basicInfoData.productName }}</td
|
|
|
+ ><td
|
|
|
+ >{{ basicInfoData.specification }}/{{
|
|
|
+ basicInfoData.modelType
|
|
|
+ }}</td
|
|
|
+ ><td>{{ basicInfoData.batchNo }}</td
|
|
|
+ ><td
|
|
|
+ >{{ basicInfoData.total
|
|
|
+ }}{{ basicInfoData.sampleMeasureUnit }}</td
|
|
|
+ ><td colspan="2">
|
|
|
+ <div style="display: flex; flex-direction: column">
|
|
|
+ <div style="flex: 1; display: flex">
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.sourceList"
|
|
|
+ style="margin-left: 15px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="来料检"></el-checkbox>
|
|
|
+ <el-checkbox label="过程检"></el-checkbox>
|
|
|
+ <el-checkbox label="成品检"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
+ <div style="flex: 1; display: flex; align-items: center">
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.sourceList"
|
|
|
+ style="margin-left: 15px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="库存"></el-checkbox>
|
|
|
+ <el-checkbox label="交付后"></el-checkbox>
|
|
|
+ <el-checkbox label="其他:"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.sourceOther"
|
|
|
+ style="
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ width: 60px;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 60px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.sourceOther }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr
|
|
|
+ ><td colspan="6">
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
+ >不合格描述:(来料不合格的,应描述供应商名称、厂家批号等信息)</div
|
|
|
+ >
|
|
|
+ <div style="margin-top: 15px">
|
|
|
+ <el-input
|
|
|
+ v-if="!isView"
|
|
|
+ type="textarea"
|
|
|
+ v-model="basicInfoData.remark"
|
|
|
+ style="height: 80px"
|
|
|
+ ></el-input>
|
|
|
+ <span v-else>{{ basicInfoData.remark }}</span>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 10px; display: flex">
|
|
|
+ <image-upload
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="basicInfoData.vehiclePhotoUrl"
|
|
|
+ module="qms"
|
|
|
+ :limit="4"
|
|
|
+ ></image-upload>
|
|
|
+ <template v-else>
|
|
|
+ <img
|
|
|
+ style="width: 300px; height: 280px; margin-left: 5px"
|
|
|
+ v-for="url in basicInfoData.vehiclePhotoUrl"
|
|
|
+ :src="getFmImagePath(url)"
|
|
|
+ alt=""
|
|
|
+ srcset=""
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div style="display: flex; margin-top: 25px"
|
|
|
+ >是否有其他物料/中间产品/成品受影响(
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.affectedList"
|
|
|
+ style="margin-left: 15px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="否"></el-checkbox>,
|
|
|
+ <el-checkbox label="是"></el-checkbox></el-checkbox-group
|
|
|
+ >,受影响的物料/中间产品/成品批次如下):</div
|
|
|
+ >
|
|
|
+ <div style="display: flex; margin-top: 25px"
|
|
|
+ ><span style="font-size: 15px; font-weight: 800"
|
|
|
+ >处置建议:</span
|
|
|
+ >
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.suggestionList"
|
|
|
+ style="margin-left: 15px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="退货"></el-checkbox>
|
|
|
+ <el-checkbox label="销毁"></el-checkbox>
|
|
|
+ <el-checkbox label="让步接收"></el-checkbox>
|
|
|
+ <el-checkbox label="挑选使用"></el-checkbox>
|
|
|
+ <el-checkbox label="返工"></el-checkbox>
|
|
|
+ <el-checkbox label="其他:"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.suggestionOther"
|
|
|
+ style="
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ width: 100px;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 100px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.suggestionOther }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div style="margin-top: 25px">
|
|
|
+ <div style="display: flex; align-items: center">
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ style="
|
|
|
+ font-weight: bold;
|
|
|
+ min-width: 80px;
|
|
|
+ font-size: 15px;
|
|
|
+ "
|
|
|
+ >反馈部门:</span
|
|
|
+ >
|
|
|
+ <span style="flex: 1; min-width: 150px">
|
|
|
+ <div
|
|
|
+ v-if="!isView"
|
|
|
+ style="display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.feedbackDepartment"
|
|
|
+ placeholder="请输入反馈部门"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ </div>
|
|
|
+ <div v-else>{{
|
|
|
+ basicInfoData.feedbackDepartment || ''
|
|
|
+ }}</div>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span style="font-weight: bold; min-width: 100px"
|
|
|
+ >反馈人/日期:</span
|
|
|
+ >
|
|
|
+ <span style="flex: 1; min-width: 150px">
|
|
|
+ <div
|
|
|
+ v-if="!isView"
|
|
|
+ style="display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.feedbackPerson"
|
|
|
+ placeholder="请输入反馈人"
|
|
|
+ style="width: 120px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.feedbackDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 140px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.feedbackPerson || '' }} /
|
|
|
+ {{ basicInfoData.feedbackDate || '' }}</div
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span style="font-weight: bold; min-width: 120px">
|
|
|
+ 部门负责人/日期:</span
|
|
|
+ >
|
|
|
+ <span style="flex: 1; min-width: 150px">
|
|
|
+ <div
|
|
|
+ v-if="!isView"
|
|
|
+ style="display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.deptHeadPerson"
|
|
|
+ placeholder="请输入部门负责人"
|
|
|
+ style="width: 120px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.deptHeadDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 140px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.deptHeadPerson || '' }} /
|
|
|
+ {{ basicInfoData.deptHeadDate || '' }}</div
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr
|
|
|
+ ><td colspan="6">
|
|
|
+ <div style="height: 80px"> 质量部QA确认: </div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ justify-content: flex-end;
|
|
|
+ width: 90%;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span> 确认人/日期:</span>
|
|
|
+ <span>
|
|
|
+ <div
|
|
|
+ v-if="!isView"
|
|
|
+ style="display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.qaPerson"
|
|
|
+ placeholder="请输入确认人"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.qaDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.qaPerson || '' }} /
|
|
|
+ {{ basicInfoData.qaDate || '' }}</div
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </td></tr
|
|
|
+ >
|
|
|
+ <tr
|
|
|
+ ><td colspan="6">
|
|
|
+ <div style="height: 80px"
|
|
|
+ >委托方意见(仅适用于受托不合格品处置):
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ justify-content: flex-end;
|
|
|
+ width: 90%;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span> 确认人/日期:</span>
|
|
|
+ <span>
|
|
|
+ <div
|
|
|
+ v-if="!isView"
|
|
|
+ style="display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.consignorPerson"
|
|
|
+ placeholder="请输入确认人"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.consignorDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.consignorPerson || '' }} /
|
|
|
+ {{ basicInfoData.consignorDate || '' }}</div
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </td></tr
|
|
|
+ >
|
|
|
+ <tr align="center"
|
|
|
+ ><td colspan="6"
|
|
|
+ ><span style="font-weight: 800; font-size: 15px"
|
|
|
+ >不合格评审</span
|
|
|
+ ></td
|
|
|
+ ></tr
|
|
|
+ >
|
|
|
+ <tr align="center"
|
|
|
+ ><td rowspan="6"><span style="font-size: 15px">评审意见</span></td>
|
|
|
+ <td>部门</td>
|
|
|
+ <td colspan="3">意见</td>
|
|
|
+ <td>评审人签字/日期</td>
|
|
|
+ </tr>
|
|
|
+ <tr align="center" v-for="value in basicInfoData.remarks">
|
|
|
+ <td style="width: 300px">
|
|
|
+ <el-input
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="value.department"
|
|
|
+ placeholder="请输入部门"
|
|
|
+ style="width: 100%"
|
|
|
+ ></el-input>
|
|
|
+ <span v-else>{{ value.department }}</span>
|
|
|
+ </td>
|
|
|
+ <td colspan="3">
|
|
|
+ <el-input
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="value.opinion"
|
|
|
+ placeholder="请输入意见"
|
|
|
+ style="width: 100%"
|
|
|
+ ></el-input>
|
|
|
+ <span v-else>{{ value.opinion }}</span>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <div v-if="!isView" style="display: flex; align-items: center">
|
|
|
+ <el-input
|
|
|
+ v-model="value.sign"
|
|
|
+ placeholder="请输入签字人"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="value.date"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ value.sign || '' }} / {{ value.date || '' }}</div
|
|
|
+ ></td
|
|
|
+ >
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="table2" style="width: 100%">
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ text-align: center;
|
|
|
+ font-size: 20px;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ font-weight: bold;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.groupName || '湖南特瑞精密医疗器器械有限公司' }}</div
|
|
|
+ >
|
|
|
+ <div style="text-align: center; font-size: 18px; margin-bottom: 5px"
|
|
|
+ >不合格品通知及评审处置表</div
|
|
|
+ >
|
|
|
+
|
|
|
+ <!-- 编号和报告单号(与 table1 共用字段) -->
|
|
|
+ <div style="margin-bottom: 5px">
|
|
|
+ <el-row style="display: flex">
|
|
|
+ <el-col :span="12" style="width: 50%">
|
|
|
+ <div style="display: flex; align-items: center"></div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" style="width: 50%">
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span style="font-weight: bold; margin-right: 10px"
|
|
|
+ >表单编号:</span
|
|
|
+ >
|
|
|
+ <span v-if="isView">
|
|
|
+ {{ basicInfoData.reportNumber }}
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.reportNumber"
|
|
|
+ placeholder="请输入表单编号"
|
|
|
+ ></el-input>
|
|
|
+ </span>
|
|
|
+ <span style="font-weight: bold; margin-left: 3px">
|
|
|
+ <span> 版本:</span>
|
|
|
+ <span v-if="isView">
|
|
|
+ {{ basicInfoData.version }}
|
|
|
+ </span>
|
|
|
+ <span v-else>
|
|
|
+ <el-input
|
|
|
+ style="width: 120px"
|
|
|
+ v-model="basicInfoData.version"
|
|
|
+ placeholder="请输入版本"
|
|
|
+ ></el-input>
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <table
|
|
|
+ class="basic-info-table"
|
|
|
+ border="1"
|
|
|
+ style="width: 100%; border-collapse: collapse"
|
|
|
+ >
|
|
|
+ <tbody>
|
|
|
+ <!-- 第一行:管代审批 + 总经理审批 -->
|
|
|
+ <tr>
|
|
|
+ <td style="width: 60%; padding: 15px" colspan="2">
|
|
|
+ <div style="font-weight: bold; margin-bottom: 10px"
|
|
|
+ >管代审批:</div
|
|
|
+ >
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.managementApprovalList"
|
|
|
+ style="margin-left: 10px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="退货"></el-checkbox>
|
|
|
+ <el-checkbox label="销毁"></el-checkbox>
|
|
|
+ <el-checkbox label="让步接收"></el-checkbox>
|
|
|
+ <el-checkbox label="挑选使用"></el-checkbox>
|
|
|
+ <el-checkbox label="返工"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ <el-checkbox label="其他" style="margin-left: 10px"></el-checkbox>
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.managementOtherText"
|
|
|
+ style="
|
|
|
+ width: 150px;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 150px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.managementOtherText }}</span
|
|
|
+ >
|
|
|
+ <div style="margin-top: 15px; display: flex">
|
|
|
+ 是否采取纠正预防措施:
|
|
|
+ <el-checkbox
|
|
|
+ v-model="basicInfoData.correctiveActionChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ ,编号:
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.correctiveActionNo"
|
|
|
+ style="
|
|
|
+ width: 180px;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 180px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.correctiveActionNo }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 15px; display: flex">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="basicInfoData.noCorrectiveReasonChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ 否,理由:
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.noCorrectiveReasonText"
|
|
|
+ style="
|
|
|
+ width: 180px;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 180px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.noCorrectiveReasonText }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 15px;
|
|
|
+ width: 90%;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span> 签名/日期:</span>
|
|
|
+ <span>
|
|
|
+ <div
|
|
|
+ v-if="!isView"
|
|
|
+ style="display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.managementSign"
|
|
|
+ placeholder="请输入签名"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.managementSignDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.managementSign || '' }} /
|
|
|
+ {{ basicInfoData.managementSignDate || '' }}</div
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ <td style="width: 40%; padding: 15px">
|
|
|
+ <div
|
|
|
+ style="font-weight: bold; margin-bottom: 10px; font-size: 15px"
|
|
|
+ >
|
|
|
+ 总经理/副总经理审批:
|
|
|
+ <span style="font-size: 12px"
|
|
|
+ >(不适用于受托不合格品处置)</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.generalManagerApprovalList"
|
|
|
+ style="margin-left: 10px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="同意"></el-checkbox>
|
|
|
+ <el-checkbox label="不同意"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-top: 15px;
|
|
|
+ width: 90%;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <span> 签名/日期:</span>
|
|
|
+ <span>
|
|
|
+ <div
|
|
|
+ v-if="!isView"
|
|
|
+ style="display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.generalManagerSign"
|
|
|
+ placeholder="请输入签名"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.generalManagerSignDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.generalManagerSign || '' }} /
|
|
|
+ {{ basicInfoData.generalManagerSignDate || '' }}</div
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <!-- 不合格品的处置记录标题 -->
|
|
|
+ <tr align="center"
|
|
|
+ ><td colspan="3"
|
|
|
+ ><span style="font-weight: 800; font-size: 15px"
|
|
|
+ >不合格品的处置记录</span
|
|
|
+ ></td
|
|
|
+ ></tr
|
|
|
+ >
|
|
|
+ <!-- 处理方法 -->
|
|
|
+ <tr>
|
|
|
+ <td colspan="3" style="padding: 15px">
|
|
|
+ <div style="font-weight: bold; margin-bottom: 10px">
|
|
|
+ 处理方法:
|
|
|
+ </div>
|
|
|
+ <!-- 退货 -->
|
|
|
+ <div
|
|
|
+ style="margin-bottom: 15px; display: flex; align-items: center"
|
|
|
+ >
|
|
|
+ <el-checkbox
|
|
|
+ v-model="basicInfoData.returnChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ 退货,退货日期:
|
|
|
+ <el-date-picker
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="basicInfoData.returnDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder=" "
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 160px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.returnDate }}</span
|
|
|
+ >
|
|
|
+ ;退货单号:
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.returnNo"
|
|
|
+ style="
|
|
|
+ width: 180px;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 180px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.returnNo }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <!-- 销毁 -->
|
|
|
+ <div>
|
|
|
+ <el-checkbox
|
|
|
+ v-model="basicInfoData.destroyChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ 销毁,方法(附销毁照片):
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="basicInfoData.destroyMethods"
|
|
|
+ style="display: inline-block; margin-left: 10px"
|
|
|
+ >
|
|
|
+ <el-checkbox label="撕毁"></el-checkbox>
|
|
|
+ <el-checkbox label="掩埋"></el-checkbox>
|
|
|
+ <el-checkbox label="焚烧"></el-checkbox>
|
|
|
+ <el-checkbox label="破碎"></el-checkbox>
|
|
|
+ <el-checkbox label="废弃"></el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
+ <div style="margin-bottom: 25px">
|
|
|
+ <el-checkbox
|
|
|
+ style="margin-left: 50px"
|
|
|
+ label="其他"
|
|
|
+ ></el-checkbox>
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.destroyOther"
|
|
|
+ style="
|
|
|
+ width: 50%;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 50%;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.destroyOther }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <!-- 让步接收 -->
|
|
|
+ <div style="margin-bottom: 25px">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="basicInfoData.concessionChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ 让步接收,放行日期:
|
|
|
+ <el-date-picker
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="basicInfoData.concessionDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 160px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.concessionDate }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <!-- 挑选使用 -->
|
|
|
+ <div style="margin-bottom: 25px">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="basicInfoData.selectChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ 挑选使用,挑选人:
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.selectPerson"
|
|
|
+ style="
|
|
|
+ width: 180px;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 180px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.selectPerson }}</span
|
|
|
+ >
|
|
|
+ ;挑选日期:
|
|
|
+ <el-date-picker
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="basicInfoData.selectDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 160px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.selectDate }}</span
|
|
|
+ >
|
|
|
+ ;
|
|
|
+ <div style="margin-top: 5px; margin-left: 24px">
|
|
|
+ 挑选结果:
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.selectResult"
|
|
|
+ style="
|
|
|
+ width: 50%;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 50%;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.selectResult }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 返工 -->
|
|
|
+ <div style="margin-bottom: 15px">
|
|
|
+ <el-checkbox
|
|
|
+ v-model="basicInfoData.reworkChecked"
|
|
|
+ ></el-checkbox>
|
|
|
+ 返工,返工方案:
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.reworkPlan"
|
|
|
+ style="
|
|
|
+ width: 180px;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 180px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.reworkPlan }}</span
|
|
|
+ >
|
|
|
+ ;返工日期:
|
|
|
+ <el-date-picker
|
|
|
+ v-if="!isView"
|
|
|
+ v-model="basicInfoData.reworkDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 160px;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.reworkDate }}</span
|
|
|
+ >
|
|
|
+ ;
|
|
|
+ <div style="margin-top: 5px; margin-left: 24px">
|
|
|
+ 返工结果:
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.reworkResult"
|
|
|
+ style="
|
|
|
+ width: 50%;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 50%;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.reworkResult }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 其他 -->
|
|
|
+ <div style="margin-bottom: 15px">
|
|
|
+ <el-checkbox v-model="basicInfoData.otherChecked"></el-checkbox>
|
|
|
+ 其他
|
|
|
+ <template v-if="!isView">
|
|
|
+ <input
|
|
|
+ v-model="basicInfoData.otherRemark"
|
|
|
+ style="
|
|
|
+ width: 50%;
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px #000;
|
|
|
+ "
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ display: inline-block;
|
|
|
+ min-height: 20px;
|
|
|
+ border-bottom: 1px solid #000;
|
|
|
+ width: 50%;
|
|
|
+ padding: 0 4px;
|
|
|
+ "
|
|
|
+ >{{ basicInfoData.otherRemark }}</span
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <!-- 签名区域 -->
|
|
|
+ <tr>
|
|
|
+ <td style="padding: 15px; height: 80px">
|
|
|
+ <div>执行人/日期:</div>
|
|
|
+ <div v-if="!isView" style="display: flex; align-items: center">
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.executorSign"
|
|
|
+ placeholder="请输入执行人"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.executorDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.executorSign || '' }} /
|
|
|
+ {{ basicInfoData.executorDate || '' }}</div
|
|
|
+ >
|
|
|
+ </td>
|
|
|
+ <td style="padding: 15px; height: 80px">
|
|
|
+ <div>执行部门负责人/日期:</div>
|
|
|
+ <div v-if="!isView" style="display: flex; align-items: center">
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.departmentSign"
|
|
|
+ placeholder="请输入部门负责人"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.departmentDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.departmentSign || '' }} /
|
|
|
+ {{ basicInfoData.departmentDate || '' }}</div
|
|
|
+ >
|
|
|
+ </td>
|
|
|
+ <td style="padding: 15px; height: 80px" colspan="2">
|
|
|
+ <div>监督人(质量部)/日期:</div>
|
|
|
+ <div v-if="!isView" style="display: flex; align-items: center">
|
|
|
+ <el-input
|
|
|
+ v-model="basicInfoData.supervisorSign"
|
|
|
+ placeholder="请输入监督人"
|
|
|
+ style="width: 140px"
|
|
|
+ ></el-input>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="basicInfoData.supervisorDate"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期"
|
|
|
+ style="width: 160px"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div v-else
|
|
|
+ >{{ basicInfoData.supervisorSign || '' }} /
|
|
|
+ {{ basicInfoData.supervisorDate || '' }}</div
|
|
|
+ >
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ 注:1.当报废处置金额达5万元及以上时,必须经总经理或其授权代表审批;2.处置过程可另附照片或其他证据等。
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ import imageUpload from '@/components/upload/imageUpload.vue';
|
|
|
+ import { getFmImagePath } from '@/utils/file';
|
|
|
+
|
|
|
+ export default {
|
|
|
+ name: 'QualityReport',
|
|
|
+ props: {
|
|
|
+ isView: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ components: {
|
|
|
+ imageUpload
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ getFmImagePath,
|
|
|
+ basicInfoData: {
|
|
|
+ // 表单编号、版本(两处共用)
|
|
|
+ reportNumber: '',
|
|
|
+ version: '',
|
|
|
+ // 处置编号
|
|
|
+ disposalNumber: '',
|
|
|
+ remark: '',
|
|
|
+ // 不合格品类别
|
|
|
+ categoryList: [],
|
|
|
+ vehiclePhotoUrl: [],
|
|
|
+ // 来源
|
|
|
+ sourceList: [],
|
|
|
+ sourceOther: '',
|
|
|
+ // 是否受影响
|
|
|
+ affectedList: [],
|
|
|
+ // 处置建议
|
|
|
+ suggestionList: [],
|
|
|
+ suggestionOther: '',
|
|
|
+ // 基本信息的显示字段(非输入,但保留)
|
|
|
+ productName: '',
|
|
|
+ specification: '',
|
|
|
+ modelType: '',
|
|
|
+ batchNo: '',
|
|
|
+ total: '',
|
|
|
+ sampleMeasureUnit: '',
|
|
|
+ // 反馈部门、反馈人、部门负责人
|
|
|
+ feedbackDepartment: '',
|
|
|
+ feedbackPerson: '',
|
|
|
+ feedbackDate: '',
|
|
|
+ deptHeadPerson: '',
|
|
|
+ deptHeadDate: '',
|
|
|
+ // 质量部QA确认
|
|
|
+ qaPerson: '',
|
|
|
+ qaDate: '',
|
|
|
+ // 委托方意见
|
|
|
+ consignorPerson: '',
|
|
|
+ consignorDate: '',
|
|
|
+ // 评审意见表格(5行)
|
|
|
+ remarks: [
|
|
|
+ { department: '', opinion: '', sign: '', date: '' },
|
|
|
+ { department: '', opinion: '', sign: '', date: '' },
|
|
|
+ { department: '', opinion: '', sign: '', date: '' },
|
|
|
+ { department: '', opinion: '', sign: '', date: '' },
|
|
|
+ { department: '', opinion: '', sign: '', date: '' }
|
|
|
+ ],
|
|
|
+ // 管代审批
|
|
|
+ managementApprovalList: [],
|
|
|
+ managementOtherText: '',
|
|
|
+ correctiveActionChecked: false,
|
|
|
+ correctiveActionNo: '',
|
|
|
+ noCorrectiveReasonChecked: false,
|
|
|
+ noCorrectiveReasonText: '',
|
|
|
+ managementSign: '',
|
|
|
+ managementSignDate: '',
|
|
|
+ // 总经理审批
|
|
|
+ generalManagerApprovalList: [],
|
|
|
+ generalManagerSign: '',
|
|
|
+ generalManagerSignDate: '',
|
|
|
+ // 处置记录
|
|
|
+ returnChecked: false,
|
|
|
+ returnDate: '',
|
|
|
+ returnNo: '',
|
|
|
+ destroyChecked: false,
|
|
|
+ destroyMethods: [],
|
|
|
+ destroyOther: '',
|
|
|
+ concessionChecked: false,
|
|
|
+ concessionDate: '',
|
|
|
+ selectChecked: false,
|
|
|
+ selectPerson: '',
|
|
|
+ selectDate: '',
|
|
|
+ selectResult: '',
|
|
|
+ reworkChecked: false,
|
|
|
+ reworkPlan: '',
|
|
|
+ reworkDate: '',
|
|
|
+ reworkResult: '',
|
|
|
+ otherChecked: false,
|
|
|
+ otherRemark: '',
|
|
|
+ // 签名
|
|
|
+ executorSign: '',
|
|
|
+ executorDate: '',
|
|
|
+ departmentSign: '',
|
|
|
+ departmentDate: '',
|
|
|
+ supervisorSign: '',
|
|
|
+ supervisorDate: ''
|
|
|
+ }
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ /* 打开质检报告 */
|
|
|
+ async init(basicInfoData) {
|
|
|
+ console.log(basicInfoData, 'basicInfoData');
|
|
|
+ if (basicInfoData.productName) {
|
|
|
+ this.$set(this, 'basicInfoData', {
|
|
|
+ ...this.basicInfoData,
|
|
|
+ ...basicInfoData
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /* 保存编辑 */
|
|
|
+ async getValue() {
|
|
|
+ this.isView = true;
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ const printSection = document.getElementById('printSection');
|
|
|
+ resolve({
|
|
|
+ basicInfoData: this.basicInfoData,
|
|
|
+ html: printSection.innerHTML
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ td {
|
|
|
+ padding: 4px;
|
|
|
+ }
|
|
|
+ @media print {
|
|
|
+ .table1 {
|
|
|
+ page-break-after: always;
|
|
|
+ }
|
|
|
+ .table2 {
|
|
|
+ page-break-before: always;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|