|
|
|
@ -469,84 +469,146 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 检验单详情页 --> |
|
|
|
<el-dialog title="检验明细清单" :close-on-click-modal="false" v-drag :visible.sync="detailInformationFlag" width="1200px"> |
|
|
|
<el-form :inline="true" label-position="top" @keyup.enter.native = "getDataList"> |
|
|
|
<el-form-item :label="'物料编码'"> |
|
|
|
<el-input v-model="detailData.partNo" readonly style="width: 100px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'物料类别'"> |
|
|
|
<el-input v-model="detailData.invdefinetype" readonly style="width: 100px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'物料名称'"> |
|
|
|
<el-input v-model="detailData.partDesc" readonly style="width: 300px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'规格型号'"> |
|
|
|
<el-input v-model="detailData.spec" readonly style="width: 100px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'单位'"> |
|
|
|
<el-input v-model="detailData.umName" readonly style="width: 60px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<span v-if="detailData.submitFlag === 'Y'" slot="label">协同人员</span> |
|
|
|
<span v-else style="cursor: pointer" slot="label" @click="getOperatorList"><a>协同人员</a></span> |
|
|
|
<el-input v-model="detailData.operatorName" readonly style="width: 150px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<span v-if="detailData.submitFlag === 'Y'" slot="label">责任人</span> |
|
|
|
<span v-else style="cursor: pointer" slot="label" @click="getResponsiblePersonList"><a>责任人</a></span> |
|
|
|
<el-input v-model="detailData.responsiblePersonName" readonly style="width: 150px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" @keyup.enter.native = "getDataList"> |
|
|
|
<el-form-item :label="'送检数量'"> |
|
|
|
<el-input-number :controls="false" :step="0" v-model="detailData.rollQty" style="width: 85px"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'抽样数量'"> |
|
|
|
<el-input-number :controls="false" :step="0" v-model="detailData.samplingQty" style="width: 85px"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'合格数量'"> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-if="detailData.submitFlag === 'Y'" v-model="detailData.passQty" disabled style="width: 85px"></el-input-number> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-else v-model="detailData.passQty" style="width: 85px"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'不合格数量'"> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-model="detailData.notPassQty" disabled style="width: 85px"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'不合格项目数量'"> |
|
|
|
<el-input-number :controls="false" :step="0" v-if="detailData.submitFlag === 'Y'" v-model="detailData.unqualifiedQty" disabled style="width: 85px"></el-input-number> |
|
|
|
<el-input-number :controls="false" :step="0" v-else v-model="detailData.unqualifiedQty" style="width: 85px"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'批次合格数'"> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-model="detailData.batchQualifiedQty" disabled style="width: 85px"></el-input-number> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item style="margin-top: 13px;margin-left: 405px"> |
|
|
|
<el-button v-if="detailData.submitFlag !== 'Y'" :loading="loadFlag" @click="dataAcquisition"> |
|
|
|
<svg t="1739002700745" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="38076" width="22" height="22"><path d="M922.000696 762.746435V465.363478l55.652174-0.111304v299.542261c0 131.695304-106.562783 239.571478-236.922435 239.571478H285.42887C155.158261 1004.365913 48.484174 896.623304 48.484174 764.794435V465.252174h59.258435v299.542261c0 101.843478 77.022609 179.712 177.775304 179.712H740.841739c100.61913 0 181.158957-79.916522 181.158957-181.76z" fill="#1D293F" p-id="38077"></path><path d="M290.148174 192.556522c20.301913-20.925217 30.47513-48.617739 30.47513-83.099826 0-72.548174-36.285217-108.833391-108.722087-108.833392H141.401043v223.365566h70.255305c32.055652-0.111304 58.167652-10.529391 78.491826-31.432348z m-105.227131-7.635479V39.446261h23.596522c19.70087 0 35.661913 6.166261 47.994435 18.632348 12.354783 12.466087 18.387478 29.740522 18.387478 52.001391 0 22.973217-5.921391 41.22713-17.652869 54.650435s-27.937391 20.190609-48.617739 20.190608H184.921043zM634.434783 595.366957h-84.057044V498.866087a102.511304 102.511304 0 0 0 74.262261-98.54887c0-56.230957-45.478957-102.310957-101.10887-102.310956-55.629913 0-101.086609 46.08-101.086608 102.310956 0 46.08 30.586435 85.25913 72.192 97.947826v96.990609h-81.252174c-16.829217-43.78713-50.688-99.283478-81.65287-143.070609a101.331478 101.331478 0 0 0 14.269218-52.001391c0-56.230957-45.946435-102.310957-102.177392-102.310956s-102.177391 46.08-102.177391 102.310956c0 56.230957 45.946435 102.310957 102.177391 102.310957 15.716174 0 30.72-3.628522 44.009739-10.017392 21.170087 34.326261 42.829913 74.351304 57.811479 102.778435h-73.906087l128.333913 130.493218 94.675478-108.966957v145.853217h-111.616l148.034783 148.858435 130.715826-148.858435h-111.504696v-129.402434l91.180522 92.516174 113.307826-130.248348h-53.203478c14.758957-28.42713 36.173913-68.452174 57.210434-102.800696 13.178435 6.41113 27.937391 10.039652 43.542261 10.039652 55.629913 0 101.086609-46.08 101.086609-102.310956 0-56.230957-45.456696-102.310957-101.086609-102.310957-55.652174 0-101.220174 46.08-101.220174 102.310957a102.4 102.4 0 0 0 14.135653 52.001391c-30.72 43.653565-64.200348 99.283478-80.896 142.937044z m-390.611479-148.48a46.614261 46.614261 0 0 1-46.436174-46.458435c0-25.510957 20.925217-46.436174 46.436174-46.436174s46.436174 20.925217 46.436174 46.436174-20.925217 46.436174-46.436174 46.436174z m279.819131 0c-25.266087 0-45.946435-20.925217-45.946435-46.458435 0-25.510957 20.702609-46.436174 45.968696-46.436174 25.266087 0 45.946435 20.925217 45.946434 46.436174s-20.680348 46.436174-45.946434 46.436174z m278.639304-93.005914c25.288348 0 45.968696 20.925217 45.968696 46.436174s-20.702609 46.436174-45.968696 46.436174c-25.266087 0-45.946435-20.925217-45.946435-46.436174s20.680348-46.436174 45.946435-46.436174zM395.130435 172.722087h74.128695l15.248696 51.155478h47.415652L458.707478 0.623304h-51.155478L332.8 223.98887h47.170783l15.11513-51.266783z m32.768-114.777044c1.825391-6.032696 3.027478-12.332522 3.517217-18.854956h1.202087c0.601043 8.102957 1.691826 14.514087 3.138783 19.456l23.218087 77.401043h-54.405566l23.329392-78.002087z m168.96 165.932522h43.631304V39.446261h58.189913V0.623304h-159.877565v38.956522h58.056348v184.297739z m169.894956-51.155478h74.128696l15.248696 51.155478h47.415652L830.330435 0.623304h-51.155478l-74.752 223.365566h47.193043l15.09287-51.266783z m32.768-114.777044c1.825391-6.032696 3.027478-12.332522 3.517218-18.854956h1.202087c0.601043 8.102957 1.691826 14.514087 3.161043 19.456l23.218087 77.401043h-54.427826l23.329391-78.002087z" fill="#FD9F01" p-id="38078"></path></svg> |
|
|
|
</el-button> |
|
|
|
<el-button @click="getFileContentData(detailData)"> |
|
|
|
<svg t="1739002974630" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="59598" width="22" height="22"><path d="M807.3216 889.5488H221.184c-78.7456 0-142.848-64.1024-142.848-142.848V286.976c0-78.7456 64.1024-142.848 142.848-142.848h178.8416c20.7872 0 40.7552 8.8064 54.784 24.1664l77.568 85.0944c2.4064 2.6112 5.8368 4.1472 9.3696 4.1472h265.5232c78.7456 0 142.848 64.1024 142.848 142.848v346.2656c0.0512 78.7968-64.0512 142.8992-142.7968 142.8992zM221.184 205.568c-44.9024 0-81.408 36.5056-81.408 81.408v459.6736c0 44.9024 36.5056 81.408 81.408 81.408h586.1376c44.9024 0 81.408-36.5056 81.408-81.408V400.4352c0-44.9024-36.5056-81.408-81.408-81.408h-265.5232c-20.7872 0-40.7552-8.8064-54.784-24.1664L409.3952 209.7152c-2.4064-2.6112-5.8368-4.1472-9.3696-4.1472H221.184z" fill="#6FB1F9" p-id="59599"></path><path d="M466.0224 453.8368H249.0368c-16.9472 0-30.72-13.7728-30.72-30.72s13.7728-30.72 30.72-30.72h216.9856c16.9472 0 30.72 13.7728 30.72 30.72s-13.7728 30.72-30.72 30.72z" fill="#6FB1F9" p-id="59600"></path></svg> |
|
|
|
</el-button> |
|
|
|
<el-button @click="subDetailUpload"> |
|
|
|
<svg t="1739002903501" class="icon" viewBox="0 0 1550 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="50418" width="22" height="22"><path d="M985.000229 727.917714c20.48 0 34.113829-13.663086 34.113828-34.143085 0-10.24-3.393829-17.056914-10.24-23.873829l-204.8-204.8c-6.816914-6.846171-13.633829-10.24-23.873828-10.24-10.24 0-17.086171 3.393829-23.903086 10.24l-204.8 204.8c-6.816914 6.816914-10.24 13.633829-10.24 23.873829 0 20.48 13.663086 34.143086 34.143086 34.143085 10.24 0 17.056914-3.423086 23.873828-10.24l146.783086-146.783085v395.966171c0 20.48 13.663086 34.113829 34.143086 34.113829s34.113829-13.633829 34.113828-34.113829V570.894629l146.783086 146.783085c6.816914 6.816914 13.663086 10.24 23.903086 10.24z m282.799542-353.045943c0-10.24 1.287314-17.086171 0-27.296914C1240.502857 128.117029 1043.0464 29.257143 858.199771 29.257143 701.205943 29.257143 564.662857 117.994057 496.405943 247.720229 469.079771 240.874057 441.782857 234.057143 414.485943 234.057143 281.365943 234.057143 175.542857 307.112229 175.542857 440.232229c0 17.056914 3.423086 34.113829 6.816914 51.2C97.514057 535.786057 29.257143 585.5232 29.257143 723.031771c0 170.656914 136.543086 277.942857 307.2 277.942858H585.142857c20.48 0 34.143086-13.633829 34.143086-34.113829S605.622857 932.717714 585.142857 932.717714h-248.685714c-133.12 0-238.943086-76.565943-238.943086-209.685943 0-82.797714 37.566171-131.657143 105.325714-166.765714l58.046172-20.48-13.663086-61.44c-3.423086-10.24-3.423086-23.873829-3.423086-34.113828 0-95.583086 75.103086-137.918171 170.686172-137.918172 20.48 0 37.536914 3.423086 58.016914 10.24l54.623086 20.48 27.296914-51.2c61.44-112.64 179.317029-198.100114 303.776914-184.32 184.846629 20.48 309.511314 71.68 341.343086 250.0608 1.199543 6.787657 0 10.24 0 17.056914v6.846172l-3.423086 47.776914 44.383086 20.48c110.094629 34.6112 222.354286 143.36 222.354286 249.183086 0 150.176914-122.88 243.799771-273.056914 243.799771h-214.571886c-20.48 0-34.113829 13.663086-34.113829 34.143086s13.633829 34.113829 34.113829 34.113829h214.571886c187.713829 0 341.313829-124.342857 341.313828-312.056686 0-144.530286-121.270857-269.663086-263.314286-314.046172z" fill="#6C5FFC" p-id="50419"></path></svg> |
|
|
|
</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" style="display: flex; align-items: flex-start;margin-right: 11px"> |
|
|
|
<el-form-item :label="'检验结论'"> |
|
|
|
<el-select v-if="detailData.submitFlag === 'Y'" v-model="detailData.inspectionResult" disabled style="width: 100px" placeholder="请选择"> |
|
|
|
<el-dialog |
|
|
|
title="检验明细清单" |
|
|
|
:close-on-click-modal="false" |
|
|
|
v-drag |
|
|
|
:visible.sync="detailInformationFlag" |
|
|
|
width="1200px" |
|
|
|
top="2vh" |
|
|
|
custom-class="ipqc-inspection-dialog"> |
|
|
|
|
|
|
|
<!-- 单据信息卡片 --> |
|
|
|
<div class="inspection-info-card"> |
|
|
|
<div class="info-section"> |
|
|
|
<div class="section-title"> |
|
|
|
<i class="el-icon-document"></i> |
|
|
|
<span>检验单信息</span> |
|
|
|
</div> |
|
|
|
<!-- 第一行:物料信息 + 人员信息 --> |
|
|
|
<el-row :gutter="12" class="info-row"> |
|
|
|
<el-col :span="3"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>物料编码</label> |
|
|
|
<el-input v-model="detailData.partNo" disabled size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>物料类别</label> |
|
|
|
<el-input v-model="detailData.invdefinetype" readonly size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>物料名称</label> |
|
|
|
<el-input v-model="detailData.partDesc" disabled size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>规格型号</label> |
|
|
|
<el-input v-model="detailData.spec" disabled size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="2"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>单位</label> |
|
|
|
<el-input v-model="detailData.umName" disabled size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="3"> |
|
|
|
<div class="info-item"> |
|
|
|
<label> |
|
|
|
<span v-if="detailData.submitFlag === 'Y'">协同人员</span> |
|
|
|
<a v-else style="cursor: pointer" @click="getOperatorList">协同人员</a> |
|
|
|
</label> |
|
|
|
<el-input v-model="detailData.operatorName" readonly size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<div class="info-item"> |
|
|
|
<label> |
|
|
|
<span v-if="detailData.submitFlag === 'Y'">责任人</span> |
|
|
|
<a v-else style="cursor: pointer" @click="getResponsiblePersonList">责任人</a> |
|
|
|
</label> |
|
|
|
<el-input v-model="detailData.responsiblePersonName" readonly size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<!-- 第二行:数量信息 --> |
|
|
|
<el-row :gutter="12" class="info-row" style="margin-top: 12px"> |
|
|
|
<el-col :span="4"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>送检数量</label> |
|
|
|
<el-input-number :controls="false" :step="0" v-model="detailData.rollQty" size="small" style="width: 100%"></el-input-number> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>抽样数量</label> |
|
|
|
<el-input-number :controls="false" :step="0" v-model="detailData.samplingQty" size="small" style="width: 100%"></el-input-number> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>合格数量</label> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-if="detailData.submitFlag === 'Y'" v-model="detailData.passQty" disabled size="small" style="width: 100%"></el-input-number> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-else v-model="detailData.passQty" size="small" style="width: 100%"></el-input-number> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>不合格数量</label> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-model="detailData.notPassQty" disabled size="small" style="width: 100%"></el-input-number> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>不合格项目数量</label> |
|
|
|
<el-input-number :controls="false" :step="0" v-if="detailData.submitFlag === 'Y'" v-model="detailData.unqualifiedQty" disabled size="small" style="width: 100%"></el-input-number> |
|
|
|
<el-input-number :controls="false" :step="0" v-else v-model="detailData.unqualifiedQty" size="small" style="width: 100%"></el-input-number> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>批次合格数</label> |
|
|
|
<el-input-number :controls="false" :step="0" min="0" v-model="detailData.batchQualifiedQty" disabled size="small" style="width: 100%"></el-input-number> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="info-section" style="margin-top: 10px"> |
|
|
|
<div class="section-title"> |
|
|
|
<i class="el-icon-finished"></i> |
|
|
|
<span>检验结论</span> |
|
|
|
</div> |
|
|
|
<el-row :gutter="12" class="info-row"> |
|
|
|
<el-col :span="3"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>检验结论</label> |
|
|
|
<el-select v-if="detailData.submitFlag === 'Y'" v-model="detailData.inspectionResult" disabled size="small" placeholder="请选择" style="width: 100%"> |
|
|
|
<el-option label="合格" value="合格"></el-option> |
|
|
|
<el-option label="不合格" value="不合格"></el-option> |
|
|
|
</el-select> |
|
|
|
<el-select v-else v-model="detailData.inspectionResult" @change="resultChange" style="width: 100px" placeholder="请选择"> |
|
|
|
<el-select v-else v-model="detailData.inspectionResult" @change="resultChange" size="small" placeholder="请选择" style="width: 100%"> |
|
|
|
<el-option label="合格" value="合格"></el-option> |
|
|
|
<el-option label="不合格" value="不合格"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'质检备注'"> |
|
|
|
<el-input v-if="detailData.submitFlag === 'Y'" v-model="detailData.inspectionRemark" disabled style="width: 293px"></el-input> |
|
|
|
<el-input v-else v-model="detailData.inspectionRemark" style="width: 293px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'处置措施'" v-show="detailData.inspectionResult === '不合格'"> |
|
|
|
<el-select v-if="detailData.submitFlag === 'Y'" clearable v-model="detailData.disposalMeasures" disabled style="width: 100px"> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="7"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>质检备注</label> |
|
|
|
<el-input v-if="detailData.submitFlag === 'Y'" v-model="detailData.inspectionRemark" disabled size="small"></el-input> |
|
|
|
<el-input v-else v-model="detailData.inspectionRemark" size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="3" v-show="detailData.inspectionResult === '不合格'"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>处置措施</label> |
|
|
|
<el-select v-if="detailData.submitFlag === 'Y'" clearable v-model="detailData.disposalMeasures" disabled size="small" style="width: 100%"> |
|
|
|
<el-option |
|
|
|
v-for = "i in disposalMeasuresOptions" |
|
|
|
:key = "i.id" |
|
|
|
@ -554,7 +616,7 @@ |
|
|
|
:value = "i.disposalMeasures"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
<el-select v-else clearable v-model="detailData.disposalMeasures" style="width: 100px"> |
|
|
|
<el-select v-else clearable v-model="detailData.disposalMeasures" size="small" style="width: 100%"> |
|
|
|
<el-option |
|
|
|
v-for = "i in disposalMeasuresOptions" |
|
|
|
:key = "i.id" |
|
|
|
@ -562,42 +624,65 @@ |
|
|
|
:value = "i.disposalMeasures"> |
|
|
|
</el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'处置说明'" v-show="detailData.inspectionResult === '不合格'"> |
|
|
|
<el-input v-if="detailData.submitFlag === 'Y'" v-model="detailData.disposalRemark" disabled style="width: 293px"></el-input> |
|
|
|
<el-input v-else v-model="detailData.disposalRemark" style="width: 293px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="' '" style="margin-left: auto;margin-top: -10px"> |
|
|
|
<el-button class="operation-btn item-operation-btn" @click="openItemOperationDialog"> |
|
|
|
<i class="el-icon-setting"></i> |
|
|
|
<span>项目导入</span> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="7" v-show="detailData.inspectionResult === '不合格'"> |
|
|
|
<div class="info-item"> |
|
|
|
<label>处置说明</label> |
|
|
|
<el-input v-if="detailData.submitFlag === 'Y'" v-model="detailData.disposalRemark" disabled size="small"></el-input> |
|
|
|
<el-input v-else v-model="detailData.disposalRemark" size="small"></el-input> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 操作按钮区域 --> |
|
|
|
<div class="action-buttons"> |
|
|
|
<div class="left-actions"> |
|
|
|
<el-button v-if="detailData.submitFlag !== 'Y'" type="primary" size="small" :loading="loadFlag" @click="dataAcquisition" icon="el-icon-download"> |
|
|
|
数据采集 |
|
|
|
</el-button> |
|
|
|
<el-button class="operation-btn template-import-btn" @click="openTemplateImportDialog"> |
|
|
|
<i class="el-icon-download"></i> |
|
|
|
<span>模板导入</span> |
|
|
|
<el-button type="info" size="small" @click="getFileContentData(detailData)" icon="el-icon-folder-opened"> |
|
|
|
文件清单 |
|
|
|
</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<!-- 展示列表 --> |
|
|
|
<div class="rq "> |
|
|
|
<el-button type="warning" size="small" @click="subDetailUpload" icon="el-icon-upload2"> |
|
|
|
子明细导入 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<div class="right-actions"> |
|
|
|
<el-button type="success" size="small" @click="openItemOperationDialog" icon="el-icon-setting"> |
|
|
|
项目导入 |
|
|
|
</el-button> |
|
|
|
<el-button type="primary" size="small" @click="openTemplateImportDialog" icon="el-icon-download"> |
|
|
|
模板导入 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 检验项目列表 --> |
|
|
|
<div class="inspection-table-wrapper"> |
|
|
|
<div class="table-header"> |
|
|
|
<span class="table-title"> |
|
|
|
<i class="el-icon-tickets"></i> |
|
|
|
检验项目明细 |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
<el-table |
|
|
|
:height="500" |
|
|
|
:height="435" |
|
|
|
:data="detailList" |
|
|
|
border |
|
|
|
style="width: 100%;"> |
|
|
|
stripe |
|
|
|
style="width: 100%;" |
|
|
|
class="inspection-table"> |
|
|
|
<el-table-column |
|
|
|
prop="" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
min-width="90" |
|
|
|
width="110" |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-button |
|
|
|
icon="el-icon-picture" |
|
|
|
:type="hasImage(scope.row) ? 'success' : 'primary'" |
|
|
|
@click="uploadImageModal(scope.row)"> |
|
|
|
</el-button> |
|
|
|
<el-button style="margin-left: 2px" icon="el-icon-s-platform" type="primary" :loading="loadFlag" @click="dataAcquisitionByItem(scope.row)"></el-button> |
|
|
|
<el-button icon="el-icon-picture" type="primary" size="mini" @click="uploadImageModal(scope.row)" title="上传图片"></el-button> |
|
|
|
<el-button icon="el-icon-edit-outline" type="success" size="mini" :loading="loadFlag" @click="dataAcquisitionByItem(scope.row)" title="数据采集"></el-button> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
@ -678,11 +763,19 @@ |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
<el-footer style="height:40px;margin-top: 20px;text-align:center"> |
|
|
|
<el-button v-if="detailData.state === '待检验'" type="primary" :loading="transferLoadFlag" @click="Transfer('1')">应用</el-button> |
|
|
|
<el-button v-if="detailData.state === '待检验' || detailData.state === '待审核'" type="primary" :loading="transferLoadFlag" @click="Transfer('2')">保存</el-button> |
|
|
|
<el-button type="primary" @click="detailInformationFlag=false">关闭</el-button> |
|
|
|
</el-footer> |
|
|
|
|
|
|
|
<!-- 底部操作按钮 --> |
|
|
|
<div class="dialog-footer"> |
|
|
|
<el-button v-if="detailData.state === '待检验'" type="primary" size="medium" :loading="transferLoadFlag" @click="Transfer('1')" icon="el-icon-check"> |
|
|
|
应用 |
|
|
|
</el-button> |
|
|
|
<el-button v-if="detailData.state === '待检验' || detailData.state === '待审核'" type="success" size="medium" :loading="transferLoadFlag" @click="Transfer('2')" icon="el-icon-document-checked"> |
|
|
|
保存 |
|
|
|
</el-button> |
|
|
|
<el-button size="medium" @click="detailInformationFlag=false" icon="el-icon-close"> |
|
|
|
关闭 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 子明细信息 --> |
|
|
|
@ -4768,12 +4861,12 @@ |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<style> |
|
|
|
/* 添加自定义主题中缺失的图标定义 */ |
|
|
|
.el-icon-s-platform:before { |
|
|
|
content: "\e7bd"; |
|
|
|
} |
|
|
|
</style> |
|
|
|
<!--<style>--> |
|
|
|
<!--/* 添加自定义主题中缺失的图标定义 */--> |
|
|
|
<!--.el-icon-s-platform:before {--> |
|
|
|
<!-- content: "\e7bd";--> |
|
|
|
<!--}--> |
|
|
|
<!--</style>--> |
|
|
|
|
|
|
|
<style scoped> |
|
|
|
/* 搜索卡片样式 */ |
|
|
|
@ -5181,13 +5274,42 @@ |
|
|
|
|
|
|
|
/* 底部按钮 */ |
|
|
|
.dialog-footer { |
|
|
|
text-align: center; |
|
|
|
padding: 16px 0 0; |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
gap: 12px; |
|
|
|
padding: 12px 16px; |
|
|
|
background: #ffffff; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button { |
|
|
|
min-width: 100px; |
|
|
|
border-radius: 6px; |
|
|
|
font-weight: 500; |
|
|
|
transition: all 0.3s ease; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button:hover { |
|
|
|
transform: translateY(-2px); |
|
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--primary { |
|
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
|
border: none; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--primary:hover { |
|
|
|
background: linear-gradient(135deg, #7b8ff5 0%, #8a5bb3 100%); |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--success { |
|
|
|
background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%); |
|
|
|
border: none; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--success:hover { |
|
|
|
background: linear-gradient(135deg, #15b39d 0%, #4af58e 100%); |
|
|
|
} |
|
|
|
|
|
|
|
/* 响应式优化 */ |
|
|
|
@ -5327,4 +5449,247 @@ |
|
|
|
color: #ffffff; |
|
|
|
} |
|
|
|
|
|
|
|
/* ==================== 检验单对话框样式 ==================== */ |
|
|
|
.ipqc-inspection-dialog /deep/ .el-dialog__header { |
|
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
|
padding: 20px 24px; |
|
|
|
border-radius: 8px 8px 0 0; |
|
|
|
} |
|
|
|
|
|
|
|
.ipqc-inspection-dialog /deep/ .el-dialog__title { |
|
|
|
color: #ffffff; |
|
|
|
font-size: 18px; |
|
|
|
font-weight: 600; |
|
|
|
letter-spacing: 0.5px; |
|
|
|
} |
|
|
|
|
|
|
|
.ipqc-inspection-dialog /deep/ .el-dialog__headerbtn .el-dialog__close { |
|
|
|
color: #ffffff; |
|
|
|
font-size: 20px; |
|
|
|
} |
|
|
|
|
|
|
|
.ipqc-inspection-dialog /deep/ .el-dialog__body { |
|
|
|
padding: 0; |
|
|
|
background: #f5f7fa; |
|
|
|
} |
|
|
|
|
|
|
|
/* 单据信息卡片 */ |
|
|
|
.inspection-info-card { |
|
|
|
background: #ffffff; |
|
|
|
padding: 0px 0px; |
|
|
|
} |
|
|
|
|
|
|
|
.info-section { |
|
|
|
margin-bottom: 0; |
|
|
|
background: #f9fafb; |
|
|
|
border-radius: 6px; |
|
|
|
padding: 12px; |
|
|
|
border: 1px solid #e8eaed; |
|
|
|
transition: all 0.3s ease; |
|
|
|
} |
|
|
|
|
|
|
|
.info-section:hover { |
|
|
|
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06); |
|
|
|
border-color: #d0d4d9; |
|
|
|
} |
|
|
|
|
|
|
|
.info-section:last-child { |
|
|
|
margin-bottom: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.section-title { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
margin-bottom: 12px; |
|
|
|
padding-bottom: 8px; |
|
|
|
border-bottom: 2px solid #e8eaed; |
|
|
|
font-size: 14px; |
|
|
|
font-weight: 600; |
|
|
|
color: #303133; |
|
|
|
} |
|
|
|
|
|
|
|
.section-title i { |
|
|
|
font-size: 18px; |
|
|
|
margin-right: 8px; |
|
|
|
color: #667eea; |
|
|
|
} |
|
|
|
|
|
|
|
.info-row { |
|
|
|
margin-bottom: 0 !important; |
|
|
|
} |
|
|
|
|
|
|
|
.info-item { |
|
|
|
margin-bottom: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.info-item label { |
|
|
|
display: block; |
|
|
|
margin-bottom: 6px; |
|
|
|
font-size: 12px; |
|
|
|
font-weight: 500; |
|
|
|
color: #606266; |
|
|
|
} |
|
|
|
|
|
|
|
.info-item label a { |
|
|
|
color: #409eff; |
|
|
|
text-decoration: none; |
|
|
|
transition: color 0.3s; |
|
|
|
} |
|
|
|
|
|
|
|
.info-item label a:hover { |
|
|
|
color: #66b1ff; |
|
|
|
text-decoration: underline; |
|
|
|
} |
|
|
|
|
|
|
|
.info-item /deep/ .el-input--small .el-input__inner, |
|
|
|
.info-item /deep/ .el-input-number--small .el-input__inner { |
|
|
|
border-radius: 4px; |
|
|
|
border: 1px solid #dcdfe6; |
|
|
|
transition: all 0.3s; |
|
|
|
} |
|
|
|
|
|
|
|
.info-item /deep/ .el-input--small .el-input__inner:focus, |
|
|
|
.info-item /deep/ .el-input-number--small .el-input__inner:focus { |
|
|
|
border-color: #667eea; |
|
|
|
box-shadow: 0 0 0 2px rgba(102, 126, 234, 0.1); |
|
|
|
} |
|
|
|
|
|
|
|
.info-item /deep/ .el-select { |
|
|
|
width: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
/* 操作按钮区域 */ |
|
|
|
.action-buttons { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
padding: 10px 12px; |
|
|
|
background: #ffffff; |
|
|
|
border-radius: 6px; |
|
|
|
border: 1px solid #e8eaed; |
|
|
|
margin-top: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
.left-actions, |
|
|
|
.right-actions { |
|
|
|
display: flex; |
|
|
|
gap: 10px; |
|
|
|
} |
|
|
|
|
|
|
|
.action-buttons .el-button { |
|
|
|
border-radius: 6px; |
|
|
|
font-weight: 500; |
|
|
|
transition: all 0.3s ease; |
|
|
|
} |
|
|
|
|
|
|
|
.action-buttons .el-button:hover { |
|
|
|
transform: translateY(-2px); |
|
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
|
|
|
} |
|
|
|
|
|
|
|
/* 检验项目列表 */ |
|
|
|
.inspection-table-wrapper { |
|
|
|
background: #ffffff; |
|
|
|
padding: 0px 0px; |
|
|
|
} |
|
|
|
|
|
|
|
.table-header { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
margin-bottom: 10px; |
|
|
|
margin-top: 10px; |
|
|
|
border-bottom: 2px solid #e8eaed; |
|
|
|
} |
|
|
|
|
|
|
|
.table-title { |
|
|
|
font-size: 15px; |
|
|
|
font-weight: 600; |
|
|
|
color: #303133; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
} |
|
|
|
|
|
|
|
.table-title i { |
|
|
|
font-size: 18px; |
|
|
|
margin-right: 8px; |
|
|
|
color: #667eea; |
|
|
|
} |
|
|
|
|
|
|
|
.inspection-table { |
|
|
|
border-radius: 8px; |
|
|
|
overflow: hidden; |
|
|
|
} |
|
|
|
|
|
|
|
.inspection-table /deep/ .el-table__header-wrapper th { |
|
|
|
background: linear-gradient(135deg, #f5f7fa 0%, #e8eaed 100%); |
|
|
|
color: #303133; |
|
|
|
font-weight: 600; |
|
|
|
font-size: 13px; |
|
|
|
padding: 12px 0; |
|
|
|
} |
|
|
|
|
|
|
|
.inspection-table /deep/ .el-table__body-wrapper .el-table__row { |
|
|
|
transition: all 0.3s ease; |
|
|
|
} |
|
|
|
|
|
|
|
.inspection-table /deep/ .el-table__body-wrapper .el-table__row:hover { |
|
|
|
background: #f5f7fa; |
|
|
|
} |
|
|
|
|
|
|
|
.inspection-table /deep/ .el-table__body-wrapper .el-table__row.el-table__row--striped { |
|
|
|
background: #fafbfc; |
|
|
|
} |
|
|
|
|
|
|
|
.inspection-table /deep/ .el-table__body-wrapper .el-table__row.el-table__row--striped:hover { |
|
|
|
background: #f0f2f5; |
|
|
|
} |
|
|
|
|
|
|
|
.inspection-table /deep/ .el-button--mini { |
|
|
|
padding: 7px 10px; |
|
|
|
border-radius: 4px; |
|
|
|
font-size: 12px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 底部操作按钮 */ |
|
|
|
.dialog-footer { |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
align-items: center; |
|
|
|
gap: 12px; |
|
|
|
padding: 12px 16px; |
|
|
|
background: #ffffff; |
|
|
|
border-top: 1px solid #e8eaed; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button { |
|
|
|
min-width: 100px; |
|
|
|
border-radius: 6px; |
|
|
|
font-weight: 500; |
|
|
|
transition: all 0.3s ease; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button:hover { |
|
|
|
transform: translateY(-2px); |
|
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--primary { |
|
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
|
border: none; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--primary:hover { |
|
|
|
background: linear-gradient(135deg, #7b8ff5 0%, #8a5bb3 100%); |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--success { |
|
|
|
background: linear-gradient(135deg, #11998e 0%, #38ef7d 100%); |
|
|
|
border: none; |
|
|
|
} |
|
|
|
|
|
|
|
.dialog-footer .el-button--success:hover { |
|
|
|
background: linear-gradient(135deg, #15b39d 0%, #4af58e 100%); |
|
|
|
} |
|
|
|
|
|
|
|
</style> |