|
|
|
@ -134,7 +134,8 @@ |
|
|
|
label="操作"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="text" size="small" style="cursor:pointer;" v-if="scope.row.testStatus !== '已完成'" @click="updateModal(scope.row)">编辑</a> |
|
|
|
<a type="text" size="small" style="cursor:pointer;" v-if="scope.row.testResultStatus === 'B'" @click="updateModalStatus(scope.row,'C')">下达</a> |
|
|
|
<a type="text" size="small" style="cursor:pointer;" v-if="scope.row.testStatus === '草稿'" @click="updateModalStatus(scope.row,'C')">下达</a> |
|
|
|
<a type="text" size="small" style="cursor:pointer;" @click="handleDetail(scope.row)">详情</a> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
@ -174,26 +175,30 @@ |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="测试数量" prop="testNumber"> |
|
|
|
<div class="right"> |
|
|
|
<el-input type="number" class="inlineNumber" :disabled="testInformationFlag('testNumber') === 'N' && modalData.flag === '2'" |
|
|
|
<el-input type="number" class="inlineNumber" |
|
|
|
:disabled="(testInformationFlag('testNumber') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
v-model="modalData.testNumber" @input="modalData.testNumber = modalData.testNumber.replace(/^(0+)|[^\d]+/g, '')"></el-input> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="优先等级" > |
|
|
|
<dict-data-select v-if="modalFlag" :disabled="testInformationFlag('priorityLevel') === 'N' && modalData.flag === '2'" |
|
|
|
<dict-data-select v-if="modalFlag" |
|
|
|
:disabled="(testInformationFlag('priorityLevel') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
v-model="modalData.priorityLevel" dict-type="priority_Level"></dict-data-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="要求交付日期" prop="requiredDeliveryDate"> |
|
|
|
<el-date-picker v-model="modalData.requiredDeliveryDate" :disabled="testInformationFlag('requiredDeliveryDate') === 'N' && modalData.flag === '2'" |
|
|
|
<el-date-picker v-model="modalData.requiredDeliveryDate" |
|
|
|
:disabled="(testInformationFlag('requiredDeliveryDate') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="印刷方式" prop="printType"> |
|
|
|
<dict-data-select v-if="modalFlag" :disabled="testInformationFlag('printType') === 'N' && modalData.flag === '2'" |
|
|
|
<dict-data-select v-if="modalFlag" |
|
|
|
:disabled="(testInformationFlag('printType') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
clearable v-model="modalData.printType" dict-type="print_type"></dict-data-select> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -214,25 +219,9 @@ |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" v-if="false"> |
|
|
|
<el-form-item> |
|
|
|
<span slot="label" @click="getCustomerContactList"><a>收货人</a></span> |
|
|
|
<el-input v-model="modalData.consignee"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" v-if="false"> |
|
|
|
<el-form-item label="收货人联系方式"> |
|
|
|
<el-input v-model="modalData.consigneeContact"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" v-if="false"> |
|
|
|
<el-form-item label=" "> |
|
|
|
<el-checkbox v-model="modalData.isNeedToSendSamples" true-label="Y">是否需要送样</el-checkbox> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="标签名称" prop="productName"> |
|
|
|
<el-input :disabled="testInformationFlag('productName') === 'N' && modalData.flag === '2'" v-model="modalData.productName"></el-input> |
|
|
|
<el-input :disabled="(testInformationFlag('productName') === 'N' && modalData.flag === '2') || detailFlag" v-model="modalData.productName"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
@ -254,50 +243,37 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item prop="trackerName"> |
|
|
|
<!-- <span slot="label" @click="getBaseList(103,1)"><a herf="#">Artwork</a></span>--> |
|
|
|
<span v-if="testInformationFlag('tracker') === 'N' && modalData.flag === '2'" slot="label">Artwork</span> |
|
|
|
<span v-if="(testInformationFlag('tracker') === 'N' && modalData.flag === '2') || detailFlag" slot="label">Artwork</span> |
|
|
|
<span v-else style="cursor: pointer" slot="label" @click="getBaseList(2041)"><a herf="#">Artwork</a></span> |
|
|
|
<el-input :disabled="testInformationFlag('tracker') === 'N' && modalData.flag === '2'" v-model="modalData.trackerName" readonly></el-input> |
|
|
|
<el-input :disabled="(testInformationFlag('tracker') === 'N' && modalData.flag === '2') || detailFlag" v-model="modalData.trackerName" readonly></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item prop="engineerName"> |
|
|
|
<!-- <span slot="label" @click="getBaseList(103,2)"><a herf="#">TP工程师</a></span>--> |
|
|
|
<span v-if="testInformationFlag('engineer') === 'N' && modalData.flag === '2'" slot="label">TP工程师</span> |
|
|
|
<span v-if="(testInformationFlag('engineer') === 'N' && modalData.flag === '2') || detailFlag" slot="label">TP工程师</span> |
|
|
|
<span v-else slot="label" @click="getBaseList(2042)"><a herf="#">TP工程师</a></span> |
|
|
|
<el-input :disabled="testInformationFlag('engineer') === 'N' && modalData.flag === '2'" v-model="modalData.engineerName" readonly></el-input> |
|
|
|
<el-input :disabled="(testInformationFlag('engineer') === 'N' && modalData.flag === '2') || detailFlag" v-model="modalData.engineerName" readonly></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="CQC"> |
|
|
|
<span v-if="testInformationFlag('artwork') === 'N' && modalData.flag === '2'" slot="label">CQC</span> |
|
|
|
<span v-if="(testInformationFlag('artwork') === 'N' && modalData.flag === '2') || detailFlag" slot="label">CQC</span> |
|
|
|
<span v-else slot="label"><a herf="#" @click="getBaseList(2007)">CQC</a></span> |
|
|
|
<el-input :disabled="testInformationFlag('artwork') === 'N' && modalData.flag === '2'" v-model="modalData.artworkName"></el-input> |
|
|
|
<el-input :disabled="(testInformationFlag('artwork') === 'N' && modalData.flag === '2') || detailFlag" v-model="modalData.artworkName"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="FAI"> |
|
|
|
<span v-if="testInformationFlag('planner') === 'N' && modalData.flag === '2'" slot="label">FAI</span> |
|
|
|
<span v-if="(testInformationFlag('planner') === 'N' && modalData.flag === '2') || detailFlag" slot="label">FAI</span> |
|
|
|
<span v-else slot="label"><a herf="#" @click="getBaseList(2008)">FAI</a></span> |
|
|
|
<el-input :disabled="testInformationFlag('planner') === 'N' && modalData.flag === '2'" v-model="modalData.plannerName"></el-input> |
|
|
|
<el-input :disabled="(testInformationFlag('planner') === 'N' && modalData.flag === '2') || detailFlag" v-model="modalData.plannerName"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="12" v-if="false"> |
|
|
|
<el-form-item style="height: 90px"> |
|
|
|
<span slot="label" @click="getCustomerAddressList"><a>送样地址</a></span> |
|
|
|
<el-input type="textarea" v-model="modalData.sendSamplesAddress" :rows="3" resize='none'></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12" v-if="false"> |
|
|
|
<el-form-item label="备注" style="height: 90px"> |
|
|
|
<el-input type="textarea" v-model="modalData.remark" :rows="3" resize='none'></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="备注" style="height: 90px"> |
|
|
|
<el-input type="textarea" :disabled="testInformationFlag('technicalConsiderations') === 'N' && modalData.flag === '2'" |
|
|
|
<el-input type="textarea" :disabled="(testInformationFlag('technicalConsiderations') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
v-model="modalData.technicalConsiderations" :rows="3" resize='none' show-word-limit></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -307,15 +283,15 @@ |
|
|
|
<el-button v-if="!modalData.testNo" @click="saveData" plain type="primary" style="position:absolute;margin-top: 10px;margin-right: 10px;right: 0;z-index: 1">下一步</el-button> |
|
|
|
<el-tabs v-model="activeTab" @tab-click="dialogTabClick"> |
|
|
|
<el-tab-pane label="基本信息" :disabled="!activeTabList.includes('attribute')" name="attribute" v-if="modalData.testNo"> |
|
|
|
<test-properties v-if="modalFlag" v-model:data-list="testPropertiesList" ref="dialogTestAttribute" :test-no="modalData.testNo"></test-properties> |
|
|
|
<test-properties v-if="modalFlag" :disabled="detailFlag" v-model:data-list="testPropertiesList" height="32vh" ref="dialogTestAttribute" :test-no="modalData.testNo"></test-properties> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="基本信息" :disabled="!activeTabList.includes('attribute')" name="attribute" v-else> |
|
|
|
<test-properties v-if="modalFlag" v-model:data-list="copyTestPropertiesList" ref="dialogTestAttribute" :test-no="modalData.testNo"></test-properties> |
|
|
|
<test-properties v-if="modalFlag" :disabled="detailFlag" v-model:data-list="copyTestPropertiesList" height="32vh" ref="dialogTestAttribute" :test-no="modalData.testNo"></test-properties> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="物料属性" :disabled="!activeTabList.includes('partAttribute')" name="partAttribute"> |
|
|
|
<el-table |
|
|
|
:data="partItemList1" |
|
|
|
:height="secondHeight - 10" |
|
|
|
height="35vh" |
|
|
|
border |
|
|
|
style="width: 100%;"> |
|
|
|
<el-table-column |
|
|
|
@ -340,77 +316,14 @@ |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="物料信息" name="part" v-if="false"> |
|
|
|
<el-form label-position="top" :model="projectPartData"> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="产品编码"> |
|
|
|
<el-input v-model="projectPartData.testPartNo" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label="产品名称"> |
|
|
|
<el-input v-model="projectPartData.partName" clearable></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item label=" "> |
|
|
|
<el-button type="primary" @click="getProjectPartList()">查询</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4" :offset="8"> |
|
|
|
<el-form-item label=" "> |
|
|
|
<el-button v-if="this.modalData.flag === '1' && this.activeTabList.length === 1" type="primary" style="float: right;margin-right: 8px" @click="saveData">下一步</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
<el-table |
|
|
|
:height="300" |
|
|
|
:data="projectPartList" |
|
|
|
ref="projectPartTable" |
|
|
|
@row-click="projectPartClickRow" |
|
|
|
@selection-change="selectionProjectPart" |
|
|
|
:row-key="getRowKeys" |
|
|
|
@select="selectTestPart" |
|
|
|
@select-all="selectAllTestPart" |
|
|
|
header-cell-class-name="cellClass" |
|
|
|
border |
|
|
|
v-loading="dataListLoading" |
|
|
|
style="width: 100%;"> |
|
|
|
<el-table-column |
|
|
|
type="selection" |
|
|
|
header-align="center" |
|
|
|
align="center" |
|
|
|
:selectable="checkSelectable" |
|
|
|
:reserve-selection="true" |
|
|
|
width="50"> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column |
|
|
|
v-for="(item,index) in projectPartDetailList" :key="index" |
|
|
|
:sortable="item.columnSortable" |
|
|
|
:prop="item.columnProp" |
|
|
|
:header-align="item.headerAlign" |
|
|
|
:show-overflow-tooltip="item.showOverflowTooltip" |
|
|
|
:align="item.align" |
|
|
|
:fixed="item.fixed===''?false:item.fixed" |
|
|
|
:min-width="item.columnWidth" |
|
|
|
:label="item.columnLabel"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="材料信息" :disabled="!activeTabList.includes('product')" name="product"> |
|
|
|
<test-table v-if="clickTestRow" :test-number="modalData.testNumber" ref="dialogSoBom" v-model:data-list="testSoBomList" :test-no="modalData.testNo"></test-table> |
|
|
|
<test-table v-if="clickTestRow" :disabled="detailFlag" :test-number="modalData.testNumber" height="32vh" ref="dialogSoBom" v-model:data-list="testSoBomList" :test-no="modalData.testNo"></test-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="制程信息" :disabled="!activeTabList.includes('process')" name="process"> |
|
|
|
<test-routing-table v-if="clickTestRow" ref="dialogSoRouting" v-model:data-list="testSoRoutingList" :test-no="modalData.testNo"></test-routing-table> |
|
|
|
<test-routing-table v-if="clickTestRow" :disabled="detailFlag" ref="dialogSoRouting" height="32vh" v-model:data-list="testSoRoutingList" :test-no="modalData.testNo"></test-routing-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="附件信息" :disabled="!activeTabList.includes('file')" name="file"> |
|
|
|
<test-file v-if="modalFlag" :column-list="fileColumnList" v-model:data-list="testFileList" ref="dialogTestFile" :test-no="modalData.testNo"></test-file> |
|
|
|
<oss-components v-if="clickTestRow" :disabled="detailFlag" label="测试单号" height="32vh" :columns="fileColumnList" :order-ref2="modalData.testNo" :order-ref1="modalData.site"></oss-components> |
|
|
|
</el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
</div> |
|
|
|
@ -733,8 +646,9 @@ |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
<el-tab-pane label="基本信息" name="attribute"> |
|
|
|
<test-properties ref="tabProperties" v-model:data-list="testPropertiesList" :test-no="testCurrentRow.testNo" :height="500"></test-properties> |
|
|
|
<test-properties ref="tabProperties" v-model:data-list="testPropertiesList" :test-no="testCurrentRow.testNo" :disabled="testCurrentRow.testStatus === '已完成'" height="45vh"></test-properties> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="物料属性" name="test_attribute" style="padding: 5px"> |
|
|
|
<el-table |
|
|
|
@ -765,14 +679,14 @@ |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="材料信息" name="test_so_bom" style="padding: 5px"> |
|
|
|
<test-table ref="tabSoBom" :test-number="testCurrentRow.testNumber" :test-no="testCurrentRow.testNo" :height="500" v-model:data-list="testSoBomList"></test-table> |
|
|
|
<test-table ref="tabSoBom" :test-number="testCurrentRow.testNumber" :disabled="testCurrentRow.testStatus === '已完成'" :test-no="testCurrentRow.testNo" height="45vh" v-model:data-list="testSoBomList"></test-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="制程信息" name="test_so_routing" style="padding: 5px"> |
|
|
|
<test-routing-table ref="tabSoBom" :test-no="testCurrentRow.testNo" v-model:data-list="testSoRoutingList" :height="500" ></test-routing-table> |
|
|
|
<test-routing-table ref="tabSoBom" :test-no="testCurrentRow.testNo" v-model:data-list="testSoRoutingList" :disabled="testCurrentRow.testStatus === '已完成'" height="45vh" ></test-routing-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="附件信息" name="file"> |
|
|
|
<!-- <test-file ref="tabFile" :column-list="fileColumnList" v-model:data-list="testFileList" :test-no="testCurrentRow.testNo" :height="500"></test-file>--> |
|
|
|
<oss-components label="测试单号" height="45vh" :columns="fileColumnList" :order-ref2="testCurrentRow.testNo" :order-ref1="testCurrentRow.site"></oss-components> |
|
|
|
<oss-components style="margin-top: 5px" :disabled="testCurrentRow.testStatus === '已完成'" label="测试单号" height="45vh" :columns="fileColumnList" :order-ref2="testCurrentRow.testNo" :order-ref1="testCurrentRow.site"></oss-components> |
|
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
<!-- 项目信息页签 --> |
|
|
|
@ -1232,9 +1146,15 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
modalFlag(newVal, oldVal){ |
|
|
|
if (newVal === false){ |
|
|
|
this.detailFlag = false |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
data () { |
|
|
|
return { |
|
|
|
detailFlag: false, |
|
|
|
partItemList1:[], |
|
|
|
partItemList2:[], |
|
|
|
testFileList:[], |
|
|
|
@ -3676,8 +3596,12 @@ |
|
|
|
}).catch((error)=>{ |
|
|
|
this.$message.error(error) |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleDetail(row){ |
|
|
|
this.detailFlag = true |
|
|
|
this.updateModal(row) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
|