|  |  | 
 |  |  |         </div> | 
 |  |  |       </template> | 
 |  |  |     </el-dialog> | 
 |  |  |         <filePreview ref="filePreviewRef" /> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script setup> | 
 |  |  | import {ref} from "vue"; | 
 |  |  | import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js"; | 
 |  |  | import {Search} from "@element-plus/icons-vue"; | 
 |  |  | import { | 
 |  |  |   qualityInspectParamDel, | 
 |  |  |   qualityInspectParamInfo, | 
 |  |  |   qualityInspectParamUpdate | 
 |  |  | } from "@/api/qualityManagement/qualityInspectParam.js"; | 
 |  |  | import filePreview from '@/components/filePreview/index.vue' | 
 |  |  | import {ElMessageBox} from "element-plus"; | 
 |  |  | import {getToken} from "@/utils/auth.js"; | 
 |  |  | import { | 
 |  |  | 
 |  |  | const dialogFormVisible = ref(false); | 
 |  |  | const currentId = ref('') | 
 |  |  | const selectedRows = ref([]); | 
 |  |  | const filePreviewRef = ref() | 
 |  |  | const tableColumn = ref([ | 
 |  |  |   { | 
 |  |  |     label: "文件名称", | 
 |  |  | 
 |  |  |         clickFun: (row) => { | 
 |  |  |           downLoadFile(row); | 
 |  |  |         }, | 
 |  |  |       } | 
 |  |  |       }, | 
 |  |  |             { | 
 |  |  |                 name: "预览", | 
 |  |  |                 type: "text", | 
 |  |  |                 clickFun: (row) => { | 
 |  |  |                     lookFile(row); | 
 |  |  |                 }, | 
 |  |  |             } | 
 |  |  |     ], | 
 |  |  |   }, | 
 |  |  | ]); | 
 |  |  | 
 |  |  | function handleUploadError() { | 
 |  |  |   proxy.$modal.msgError("文件上传失败"); | 
 |  |  | } | 
 |  |  | // 预览附件 | 
 |  |  | const lookFile = (row) => { | 
 |  |  |     filePreviewRef.value.open(row.url) | 
 |  |  | } | 
 |  |  | // 删除 | 
 |  |  | const handleDelete = () => { | 
 |  |  |   let ids = []; | 
 
 |  |  | 
 |  |  |         <el-row :gutter="30"> | 
 |  |  |           <el-col :span="12"> | 
 |  |  |             <el-form-item label="检验员:" prop="checkName"> | 
 |  |  |               <el-input v-model="form.checkName" placeholder="请输入" clearable/> | 
 |  |  |              | 
 |  |  |                             <el-select v-model="form.checkName" placeholder="请选择" clearable> | 
 |  |  |                                 <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" | 
 |  |  |                                                      :value="item.nickName"/> | 
 |  |  |                             </el-select> | 
 |  |  |             </el-form-item> | 
 |  |  |           </el-col> | 
 |  |  |           <el-col :span="12"> | 
 |  |  | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |       </el-form> | 
 |  |  |             <PIMTable | 
 |  |  |                 rowKey="id" | 
 |  |  |                 :column="tableColumn" | 
 |  |  |                 :tableData="tableData" | 
 |  |  |                 :tableLoading="tableLoading" | 
 |  |  |                 height="400" | 
 |  |  |             > | 
 |  |  |                 <template #slot="{ row }"> | 
 |  |  |                     <el-input v-model="row.testValue" clearable/> | 
 |  |  |                 </template> | 
 |  |  |             </PIMTable> | 
 |  |  |       <template #footer> | 
 |  |  |         <div class="dialog-footer"> | 
 |  |  |           <el-button type="primary" @click="submitForm">确认</el-button> | 
 |  |  | 
 |  |  | import {getOptions} from "@/api/procurementManagement/procurementLedger.js"; | 
 |  |  | import {productTreeList} from "@/api/basicData/product.js"; | 
 |  |  | import {qualityInspectAdd, qualityInspectUpdate} from "@/api/qualityManagement/rawMaterialInspection.js"; | 
 |  |  | import {qualityInspectDetailByProductId} from "@/api/qualityManagement/metricMaintenance.js"; | 
 |  |  | import {userListNoPage} from "@/api/system/user.js"; | 
 |  |  | import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js"; | 
 |  |  | const { proxy } = getCurrentInstance() | 
 |  |  | const emit = defineEmits(['close']) | 
 |  |  |  | 
 |  |  | 
 |  |  |     checkResult: [{ required: true, message: "请输入", trigger: "change" }], | 
 |  |  |   }, | 
 |  |  | }); | 
 |  |  | const userList = ref([]); | 
 |  |  | const { form, rules } = toRefs(data); | 
 |  |  | const supplierList = ref([]); | 
 |  |  | const productOptions = ref([]); | 
 |  |  | const tableColumn = ref([ | 
 |  |  |     { | 
 |  |  |         label: "指标", | 
 |  |  |         prop: "parameterItem", | 
 |  |  |     }, | 
 |  |  |     { | 
 |  |  |         label: "单位", | 
 |  |  |         prop: "unit", | 
 |  |  |     }, | 
 |  |  |     { | 
 |  |  |         label: "标准值", | 
 |  |  |         prop: "standardValue", | 
 |  |  |     }, | 
 |  |  |     { | 
 |  |  |         label: "内控值", | 
 |  |  |         prop: "controlValue", | 
 |  |  |     }, | 
 |  |  |     { | 
 |  |  |         label: "检验值", | 
 |  |  |         prop: "testValue", | 
 |  |  |         dataType: 'slot', | 
 |  |  |         slot: 'slot', | 
 |  |  |     }, | 
 |  |  | ]); | 
 |  |  | const tableData = ref([]); | 
 |  |  | const tableLoading = ref(false); | 
 |  |  | const currentProductId = ref(0); | 
 |  |  |  | 
 |  |  | // 打开弹框 | 
 |  |  | const openDialog = (type, row) => { | 
 |  |  |   operationType.value = type; | 
 |  |  |   dialogFormVisible.value = true; | 
 |  |  |   getOptions().then((res) => { | 
 |  |  |     supplierList.value = res.data; | 
 |  |  |   }); | 
 |  |  |   getProductOptions(); | 
 |  |  |   if (operationType.value === 'edit') { | 
 |  |  |     form.value = {...row} | 
 |  |  |   } | 
 |  |  | const openDialog = async (type, row) => { | 
 |  |  |     operationType.value = type; | 
 |  |  |     dialogFormVisible.value = true; | 
 |  |  |     getOptions().then((res) => { | 
 |  |  |         supplierList.value = res.data; | 
 |  |  |     }); | 
 |  |  |     let userLists = await userListNoPage(); | 
 |  |  |     userList.value = userLists.data; | 
 |  |  |     form.value = {} | 
 |  |  |     getProductOptions(); | 
 |  |  |     if (operationType.value === 'edit') { | 
 |  |  |         form.value = {...row} | 
 |  |  |         currentProductId.value = row.productId || 0 | 
 |  |  |         getQualityInspectParamList(row.id) | 
 |  |  |     } | 
 |  |  | } | 
 |  |  | const getProductOptions = () => { | 
 |  |  |   productTreeList().then((res) => { | 
 |  |  | 
 |  |  |   }); | 
 |  |  | }; | 
 |  |  | const getModels = (value) => { | 
 |  |  |     currentProductId.value = value | 
 |  |  |   form.value.productName = findNodeById(productOptions.value, value); | 
 |  |  |     if (currentProductId) { | 
 |  |  |         getList(); | 
 |  |  |     } | 
 |  |  | }; | 
 |  |  | const findNodeById = (nodes, productId) => { | 
 |  |  |   for (let i = 0; i < nodes.length; i++) { | 
 |  |  | 
 |  |  |   proxy.$refs.formRef.validate(valid => { | 
 |  |  |     if (valid) { | 
 |  |  |       form.value.inspectType = 1 | 
 |  |  |             if (operationType.value === "add") { | 
 |  |  |                 tableData.value.forEach((item) => { | 
 |  |  |                     delete item.id | 
 |  |  |                 }) | 
 |  |  |             } | 
 |  |  |             const data = {...form.value, qualityInspectParams: tableData.value} | 
 |  |  |       if (operationType.value === "add") { | 
 |  |  |         qualityInspectAdd(form.value).then(res => { | 
 |  |  |         qualityInspectAdd(data).then(res => { | 
 |  |  |           proxy.$modal.msgSuccess("提交成功"); | 
 |  |  |           closeDia(); | 
 |  |  |         }) | 
 |  |  |       } else { | 
 |  |  |         qualityInspectUpdate(form.value).then(res => { | 
 |  |  |         qualityInspectUpdate(data).then(res => { | 
 |  |  |           proxy.$modal.msgSuccess("提交成功"); | 
 |  |  |           closeDia(); | 
 |  |  |         }) | 
 |  |  | 
 |  |  |     } | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  | const getList = () => { | 
 |  |  |     qualityInspectDetailByProductId(currentProductId.value).then(res => { | 
 |  |  |         tableData.value = res.data; | 
 |  |  |     }) | 
 |  |  | } | 
 |  |  | const getQualityInspectParamList = (id) => { | 
 |  |  |     qualityInspectParamInfo(id).then(res => { | 
 |  |  |         tableData.value = res.data; | 
 |  |  |     }) | 
 |  |  | } | 
 |  |  | // 关闭弹框 | 
 |  |  | const closeDia = () => { | 
 |  |  |   proxy.resetForm("formRef"); | 
 
 |  |  | 
 |  |  |     <InspectionFormDia ref="inspectionFormDia" @close="handleQuery"></InspectionFormDia> | 
 |  |  |     <FormDia ref="formDia" @close="handleQuery"></FormDia> | 
 |  |  |     <files-dia ref="filesDia" @close="handleQuery"></files-dia> | 
 |  |  |         <el-dialog v-model="dialogFormVisible" title="编辑检验员" width="70%" | 
 |  |  |                              @close="closeDia"> | 
 |  |  |             <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef"> | 
 |  |  |                 <el-form-item label="检验员:" prop="checkName"> | 
 |  |  |                     <el-select v-model="form.checkName" placeholder="请选择" clearable> | 
 |  |  |                         <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" | 
 |  |  |                                              :value="item.nickName"/> | 
 |  |  |                     </el-select> | 
 |  |  |                 </el-form-item> | 
 |  |  |             </el-form> | 
 |  |  |             <template #footer> | 
 |  |  |                 <div class="dialog-footer"> | 
 |  |  |                     <el-button type="primary" @click="submitForm">确认</el-button> | 
 |  |  |                     <el-button @click="closeDia">取消</el-button> | 
 |  |  |                 </div> | 
 |  |  |             </template> | 
 |  |  |         </el-dialog> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | 
 |  |  | import InspectionFormDia from "@/views/qualityManagement/processInspection/components/inspectionFormDia.vue"; | 
 |  |  | import FormDia from "@/views/qualityManagement/processInspection/components/formDia.vue"; | 
 |  |  | import {ElMessageBox} from "element-plus"; | 
 |  |  | import {qualityInspectDel, qualityInspectListPage} from "@/api/qualityManagement/rawMaterialInspection.js"; | 
 |  |  | import { | 
 |  |  |     downloadQualityInspect, | 
 |  |  |     qualityInspectDel, | 
 |  |  |     qualityInspectListPage, qualityInspectUpdate, | 
 |  |  |     submitQualityInspect | 
 |  |  | } from "@/api/qualityManagement/rawMaterialInspection.js"; | 
 |  |  | import FilesDia from "@/views/qualityManagement/processInspection/components/filesDia.vue"; | 
 |  |  | import dayjs from "dayjs"; | 
 |  |  | import {userListNoPage} from "@/api/system/user.js"; | 
 |  |  |  | 
 |  |  | const data = reactive({ | 
 |  |  |   searchForm: { | 
 |  |  | 
 |  |  |       } | 
 |  |  |     }, | 
 |  |  |   }, | 
 |  |  |     { | 
 |  |  |         label: "提交状态", | 
 |  |  |         prop: "inspectState", | 
 |  |  |         formatData: (params) => { | 
 |  |  |             if (params) { | 
 |  |  |                 return "已提交"; | 
 |  |  |             } else { | 
 |  |  |                 return "未提交"; | 
 |  |  |             } | 
 |  |  |         }, | 
 |  |  |     }, | 
 |  |  |   { | 
 |  |  |     dataType: "action", | 
 |  |  |     label: "操作", | 
 |  |  |     align: "center", | 
 |  |  |     fixed: "right", | 
 |  |  |     width: 190, | 
 |  |  |     width: 280, | 
 |  |  |     operation: [ | 
 |  |  |       { | 
 |  |  |         name: "编辑", | 
 |  |  | 
 |  |  |         clickFun: (row) => { | 
 |  |  |           openForm("edit", row); | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: "新增检验记录", | 
 |  |  |         type: "text", | 
 |  |  |         clickFun: (row) => { | 
 |  |  |           openInspectionForm("edit", row); | 
 |  |  |         }, | 
 |  |  |                 disabled: (row) => { | 
 |  |  |                     return row.inspectState == 1; | 
 |  |  |                 } | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: "附件", | 
 |  |  | 
 |  |  |           openFilesFormDia(row); | 
 |  |  |         }, | 
 |  |  |       }, | 
 |  |  |             { | 
 |  |  |                 name: "提交", | 
 |  |  |                 type: "text", | 
 |  |  |                 clickFun: (row) => { | 
 |  |  |                     submit(row.id); | 
 |  |  |                 }, | 
 |  |  |                 disabled: (row) => { | 
 |  |  |                     return row.inspectState == 1; | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |                 name: "分配检验员", | 
 |  |  |                 type: "text", | 
 |  |  |                 clickFun: (row) => { | 
 |  |  |                     if (!row.checkName) { | 
 |  |  |                         open(row) | 
 |  |  |                     } else { | 
 |  |  |                         proxy.$modal.msgError("检验员已存在"); | 
 |  |  |                     } | 
 |  |  |                 }, | 
 |  |  |                 disabled: (row) => { | 
 |  |  |                     return row.inspectState == 1 || row.checkName !== ''; | 
 |  |  |                 } | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |                 name: "下载", | 
 |  |  |                 type: "text", | 
 |  |  |                 clickFun: (row) => { | 
 |  |  |                     downLoadFile(row); | 
 |  |  |                 }, | 
 |  |  |             }, | 
 |  |  |     ], | 
 |  |  |   }, | 
 |  |  | ]); | 
 |  |  | const userList = ref([]); | 
 |  |  | const currentRow = ref(null) | 
 |  |  | const tableData = ref([]); | 
 |  |  | const selectedRows = ref([]); | 
 |  |  | const tableLoading = ref(false); | 
 |  |  | const dialogFormVisible = ref(false); | 
 |  |  | const form = ref({ | 
 |  |  |     checkName: "" | 
 |  |  | }); | 
 |  |  | const page = reactive({ | 
 |  |  |   current: 1, | 
 |  |  |   size: 100, | 
 |  |  | 
 |  |  |     filesDia.value?.openDialog(type, row) | 
 |  |  |   }) | 
 |  |  | }; | 
 |  |  | // 提价 | 
 |  |  | const submit = async (id) => { | 
 |  |  |     const res = await submitQualityInspect({id: id}) | 
 |  |  |     if (res.code === 200) { | 
 |  |  |         proxy.$modal.msgSuccess("提交成功"); | 
 |  |  |         getList(); | 
 |  |  |     } | 
 |  |  | } | 
 |  |  | const open = async (row) => { | 
 |  |  |     let userLists = await userListNoPage(); | 
 |  |  |     userList.value = userLists.data; | 
 |  |  |     currentRow.value = row | 
 |  |  |     dialogFormVisible.value = true | 
 |  |  | } | 
 |  |  | // 关闭弹框 | 
 |  |  | const closeDia = () => { | 
 |  |  |     proxy.resetForm("formRef"); | 
 |  |  |     dialogFormVisible.value = false; | 
 |  |  | }; | 
 |  |  | const submitForm = () => { | 
 |  |  |     if (currentRow.value) { | 
 |  |  |         const data = { | 
 |  |  |             ...form.value, | 
 |  |  |             id: currentRow.value.id | 
 |  |  |         } | 
 |  |  |         qualityInspectUpdate(data).then(res => { | 
 |  |  |             proxy.$modal.msgSuccess("提交成功"); | 
 |  |  |             closeDia(); | 
 |  |  |             getList(); | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | // 删除 | 
 |  |  | const handleDelete = () => { | 
 |  |  | 
 |  |  |         proxy.$modal.msg("已取消"); | 
 |  |  |       }); | 
 |  |  | }; | 
 |  |  | const downLoadFile = (row) => { | 
 |  |  |     downloadQualityInspect({ id: row.id }).then((blobData) => { | 
 |  |  |         const blob = new Blob([blobData], { | 
 |  |  |             type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', | 
 |  |  |         }) | 
 |  |  |         const downloadUrl = window.URL.createObjectURL(blob) | 
 |  |  | 		 | 
 |  |  |         const link = document.createElement('a') | 
 |  |  |         link.href = downloadUrl | 
 |  |  |         link.download = '过程检验报告.docx' | 
 |  |  |         document.body.appendChild(link) | 
 |  |  |         link.click() | 
 |  |  | 		 | 
 |  |  |         document.body.removeChild(link) | 
 |  |  |         window.URL.revokeObjectURL(downloadUrl) | 
 |  |  |     }) | 
 |  |  | }; | 
 |  |  | // 导出 | 
 |  |  | const handleOut = () => { | 
 |  |  |   ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", { | 
 
 |  |  | 
 |  |  |         </div> | 
 |  |  |       </template> | 
 |  |  |     </el-dialog> | 
 |  |  |         <filePreview ref="filePreviewRef" /> | 
 |  |  |   </div> | 
 |  |  | </template> | 
 |  |  |  | 
 |  |  | <script setup> | 
 |  |  | import {ref} from "vue"; | 
 |  |  | import {getStaffJoinInfo, staffJoinAdd, staffJoinUpdate} from "@/api/personnelManagement/onboarding.js"; | 
 |  |  | import {Search} from "@element-plus/icons-vue"; | 
 |  |  | import { | 
 |  |  |   qualityInspectParamDel, | 
 |  |  |   qualityInspectParamInfo, | 
 |  |  |   qualityInspectParamUpdate | 
 |  |  | } from "@/api/qualityManagement/qualityInspectParam.js"; | 
 |  |  | import filePreview from '@/components/filePreview/index.vue' | 
 |  |  | import {ElMessageBox} from "element-plus"; | 
 |  |  | import {getToken} from "@/utils/auth.js"; | 
 |  |  | import { | 
 |  |  | 
 |  |  |         clickFun: (row) => { | 
 |  |  |           downLoadFile(row); | 
 |  |  |         }, | 
 |  |  |       } | 
 |  |  |       }, | 
 |  |  |             { | 
 |  |  |                 name: "预览", | 
 |  |  |                 type: "text", | 
 |  |  |                 clickFun: (row) => { | 
 |  |  |                     lookFile(row); | 
 |  |  |                 }, | 
 |  |  |             } | 
 |  |  |     ], | 
 |  |  |   }, | 
 |  |  | ]); | 
 |  |  | 
 |  |  | const tableData = ref([]); | 
 |  |  | const fileList = ref([]); | 
 |  |  | const tableLoading = ref(false); | 
 |  |  | const filePreviewRef = ref() | 
 |  |  | const headers = ref({ | 
 |  |  |   Authorization: "Bearer " + getToken(), | 
 |  |  | }); | 
 |  |  | 
 |  |  | const downLoadFile = (row) => { | 
 |  |  |   proxy.$download.name(row.url); | 
 |  |  | } | 
 |  |  | // 预览附件 | 
 |  |  | const lookFile = (row) => { | 
 |  |  |     filePreviewRef.value.open(row.url) | 
 |  |  | } | 
 |  |  | // 删除 | 
 |  |  | const handleDelete = () => { | 
 |  |  |   let ids = []; | 
 
 |  |  | 
 |  |  |           </el-col> | 
 |  |  |         </el-row> | 
 |  |  |       </el-form> | 
 |  |  |       <div style="margin-bottom: 10px;text-align: right"> | 
 |  |  |         <el-button type="danger" plain @click="handleDelete">删除</el-button> | 
 |  |  |       </div> | 
 |  |  | <!--      <div style="margin-bottom: 10px;text-align: right">--> | 
 |  |  | <!--        <el-button type="danger" plain @click="handleDelete">删除</el-button>--> | 
 |  |  | <!--      </div>--> | 
 |  |  |       <PIMTable | 
 |  |  |           rowKey="id" | 
 |  |  |           :column="tableColumn" | 
 |  |  |           :tableData="tableData" | 
 |  |  |           :tableLoading="tableLoading" | 
 |  |  |           :isSelection="true" | 
 |  |  |           @selection-change="handleSelectionChange" | 
 |  |  |           height="400" | 
 |  |  |       > | 
 |  |  |         <template #slot="{ row }"> | 
 |  |  | 
 |  |  |   getOptions().then((res) => { | 
 |  |  |     supplierList.value = res.data; | 
 |  |  |   }); | 
 |  |  |     form.value = {} | 
 |  |  |   getProductOptions(); | 
 |  |  |   if (operationType.value === 'edit') { | 
 |  |  |     form.value = {...row} | 
 |  |  | 
 |  |  |   proxy.$refs.formRef.validate(valid => { | 
 |  |  |     if (valid) { | 
 |  |  |       form.value.inspectType = 0 | 
 |  |  |             if (operationType.value === "add") { | 
 |  |  |                 tableData.value.forEach((item) => { | 
 |  |  |                     delete item.id | 
 |  |  |                 }) | 
 |  |  |             } | 
 |  |  |       const data = {...form.value, qualityInspectParams: tableData.value} | 
 |  |  |       if (operationType.value === "add") { | 
 |  |  |         qualityInspectAdd(data).then(res => { | 
 |  |  | 
 |  |  |     } | 
 |  |  |   }) | 
 |  |  | } | 
 |  |  |  | 
 |  |  | const handleSelectionChange = (selection) => { | 
 |  |  |   selectedRows.value = selection; | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | const handleDelete = () => { | 
 |  |  |   let ids = []; | 
 |  |  |   if (selectedRows.value.length > 0) { | 
 |  |  |     ids = selectedRows.value.map((item) => item.id); | 
 |  |  |   } else { | 
 |  |  |     proxy.$modal.msgWarning("请选择数据"); | 
 |  |  |     return; | 
 |  |  |   } | 
 |  |  |   ElMessageBox.confirm("选中的内容将被删除,是否确认删除?", "导出", { | 
 |  |  |     confirmButtonText: "确认", | 
 |  |  |     cancelButtonText: "取消", | 
 |  |  |     type: "warning", | 
 |  |  |   }) | 
 |  |  |       .then(() => { | 
 |  |  |         qualityInspectParamDel(ids).then((res) => { | 
 |  |  |           proxy.$modal.msgSuccess("删除成功"); | 
 |  |  |           getList(); | 
 |  |  |         }); | 
 |  |  |       }) | 
 |  |  |       .catch(() => { | 
 |  |  |         proxy.$modal.msg("已取消"); | 
 |  |  |       }); | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | const getList = () => { | 
 |  |  |   qualityInspectDetailByProductId(currentProductId.value).then(res => { | 
 
 |  |  | 
 |  |  |     label: "操作", | 
 |  |  |     align: "center", | 
 |  |  |     fixed: "right", | 
 |  |  |     width: 250, | 
 |  |  |     width: 280, | 
 |  |  |     operation: [ | 
 |  |  |       { | 
 |  |  |         name: "编辑", | 
 |  |  | 
 |  |  |         clickFun: (row) => { | 
 |  |  |           openForm("edit", row); | 
 |  |  |         }, | 
 |  |  |         disabled: (row) => { | 
 |  |  |           return row.inspectState; | 
 |  |  |         } | 
 |  |  |                 disabled: (row) => { | 
 |  |  |                     return row.inspectState == 1; | 
 |  |  |                 } | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: "附件", | 
 |  |  | 
 |  |  |         clickFun: (row) => { | 
 |  |  |           submit(row.id); | 
 |  |  |         }, | 
 |  |  |                 disabled: (row) => { | 
 |  |  |                     return row.inspectState == 1; | 
 |  |  |                 } | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         name: "分配检验员", | 
 |  |  | 
 |  |  | const openForm = (type, row) => { | 
 |  |  |   nextTick(() => { | 
 |  |  |     formDia.value?.openDialog(type, row) | 
 |  |  |   }) | 
 |  |  | }; | 
 |  |  | // 打开新增检验弹框 | 
 |  |  | const openInspectionForm = (type, row) => { | 
 |  |  |   nextTick(() => { | 
 |  |  |     inspectionFormDia.value?.openDialog(type, row) | 
 |  |  |   }) | 
 |  |  | }; | 
 |  |  | // 打开附件弹框 | 
 |  |  | 
 |  |  |  | 
 |  |  |     const link = document.createElement('a') | 
 |  |  |     link.href = downloadUrl | 
 |  |  |     link.download = '检验报告.docx' | 
 |  |  |     link.download = '原材料检验报告.docx' | 
 |  |  |     document.body.appendChild(link) | 
 |  |  |     link.click() | 
 |  |  |  |