|
|
|
@ -53,7 +53,8 @@ |
|
|
|
<el-input v-model="searchData.projectName" clearable style="width: 120px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'优先等级'"> |
|
|
|
<dict-data-select v-model="searchData.priorityLevel" clearable style="width: 120px" :use-default-value="false" dict-type="priority_Level"/> |
|
|
|
<dict-data-select v-model="searchData.priorityLevel" clearable style="width: 120px" :use-default-value="false" |
|
|
|
dict-type="priority_Level"/> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item :label="'IFS物料编码'"> |
|
|
|
<el-input v-model="searchData.finalPartNo" clearable style="width: 120px"></el-input> |
|
|
|
@ -133,7 +134,8 @@ |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div> |
|
|
|
<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> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
@ -146,13 +148,16 @@ |
|
|
|
<template slot-scope="scope"> |
|
|
|
<a type="text" style="cursor:pointer;" @click="handleClickBM(scope.row)">BM</a> |
|
|
|
<template v-if="isAuth('107001:update')"> |
|
|
|
<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.testStatus !== '已完成'" |
|
|
|
@click="updateModal(scope.row)">编辑</a> |
|
|
|
</template> |
|
|
|
<template v-if="isAuth('107001:issued')"> |
|
|
|
<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;" v-if="scope.row.testStatus === '草稿'" |
|
|
|
@click="updateModalStatus(scope.row,'C')">下达</a> |
|
|
|
</template> |
|
|
|
<template v-if="isAuth('107001:detail')"> |
|
|
|
<a type="text" size="small" style="cursor:pointer;" v-if="scope.row.testStatus === '已完成'" @click="handleDetail(scope.row)">详情</a> |
|
|
|
<a type="text" size="small" style="cursor:pointer;" v-if="scope.row.testStatus === '已完成'" |
|
|
|
@click="handleDetail(scope.row)">详情</a> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
@ -171,7 +176,8 @@ |
|
|
|
</el-pagination> |
|
|
|
|
|
|
|
<!-- 测试模态框 --> |
|
|
|
<el-dialog :title="modalData.title" @close="closeModalDiaLog" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" top="10vh" width="60%"> |
|
|
|
<el-dialog :title="modalData.title" @close="closeModalDiaLog" :close-on-click-modal="false" v-drag |
|
|
|
:visible.sync="modalFlag" top="10vh" width="60%"> |
|
|
|
<el-form label-position="top" ref="modalForm" :model="modalData" :rules="rules"> |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="8"> |
|
|
|
@ -179,7 +185,8 @@ |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item prop="customerNo" label="客户编码"> |
|
|
|
<span slot="label" v-if="modalData.flag === '1'" @click="getBaseList(102,1)"><a herf="#">客户编码</a></span> |
|
|
|
<el-input :disabled="modalData.flag !== '1'" v-model="modalData.customerNo" @blur="handleQueryCustomer"></el-input> |
|
|
|
<el-input :disabled="modalData.flag !== '1'" v-model="modalData.customerNo" |
|
|
|
@blur="handleQueryCustomer"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="14"> |
|
|
|
@ -194,7 +201,8 @@ |
|
|
|
<div class="right"> |
|
|
|
<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> |
|
|
|
v-model="modalData.testNumber" |
|
|
|
@input="modalData.testNumber = modalData.testNumber.replace(/^(0+)|[^\d]+/g, '')"></el-input> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -209,7 +217,8 @@ |
|
|
|
<el-form-item label="要求交付日期" prop="requiredDeliveryDate"> |
|
|
|
<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> |
|
|
|
style="width: 100%" type="date" value-format="yyyy-MM-dd" |
|
|
|
placeholder="选择日期"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
@ -225,8 +234,10 @@ |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item prop="projectId" label="项目号"> |
|
|
|
<span slot="label" v-if="modalData.customerNo && modalData.flag === '1'" @click="chooseProjectListFlag = true"><a herf="#">项目号</a></span> |
|
|
|
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" v-model="modalData.projectId" @blur="handleQueryProjectByCustomer"></el-input> |
|
|
|
<span slot="label" v-if="modalData.customerNo && modalData.flag === '1'" |
|
|
|
@click="chooseProjectListFlag = true"><a herf="#">项目号</a></span> |
|
|
|
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" v-model="modalData.projectId" |
|
|
|
@blur="handleQueryProjectByCustomer"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="14"> |
|
|
|
@ -238,12 +249,14 @@ |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="标签名称" prop="productName"> |
|
|
|
<el-input :disabled="(testInformationFlag('productName') === 'N' && modalData.flag === '2') || detailFlag" 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-col :span="8"> |
|
|
|
<el-form-item label="So Number" prop="soNumber"> |
|
|
|
<el-input :disabled="(testInformationFlag('soNumber') === 'N' && modalData.flag === '2') || detailFlag" v-model="modalData.soNumber"></el-input> |
|
|
|
<el-input :disabled="(testInformationFlag('soNumber') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
v-model="modalData.soNumber"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
@ -252,8 +265,10 @@ |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="10"> |
|
|
|
<el-form-item prop="testPartNo" label="物料编码"> |
|
|
|
<span slot="label" v-if="modalData.projectId && modalData.flag === '1'" @click="projectPartModelFlag = true"><a herf="#">物料编码</a></span> |
|
|
|
<el-input :disabled="!modalData.projectId || modalData.flag !== '1'" v-model="modalData.testPartNo" @blur="handleQueryProjectPart"></el-input> |
|
|
|
<span slot="label" v-if="modalData.projectId && modalData.flag === '1'" |
|
|
|
@click="projectPartModelFlag = true"><a herf="#">物料编码</a></span> |
|
|
|
<el-input :disabled="!modalData.projectId || modalData.flag !== '1'" v-model="modalData.testPartNo" |
|
|
|
@blur="handleQueryProjectPart"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="14"> |
|
|
|
@ -266,37 +281,51 @@ |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item> |
|
|
|
<!-- <el-form-item prop="trackerName">--> |
|
|
|
<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') || detailFlag" v-model="modalData.trackerName" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.trackerName && !detailFlag" @click="clearModalData('tracker')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></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') || detailFlag" |
|
|
|
v-model="modalData.trackerName" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.trackerName && !detailFlag" @click="clearModalData('tracker')"><i |
|
|
|
class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="4"> |
|
|
|
<el-form-item prop="engineerName"> |
|
|
|
<span v-if="(testInformationFlag('engineer') === 'N' && modalData.flag === '2') || detailFlag" 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') || detailFlag" v-model="modalData.engineerName" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.engineerName && !detailFlag" @click="clearModalData('engineer')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
<el-input :disabled="(testInformationFlag('engineer') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
v-model="modalData.engineerName" readonly> |
|
|
|
<span slot="suffix" v-show="modalData.engineerName && !detailFlag" |
|
|
|
@click="clearModalData('engineer')"><i class="el-icon-circle-close" |
|
|
|
style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</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') || detailFlag" 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') || detailFlag" v-model="modalData.artworkName"> |
|
|
|
<span slot="suffix" v-show="modalData.artworkName && !detailFlag" @click="clearModalData('artwork')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
<el-input :disabled="(testInformationFlag('artwork') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
v-model="modalData.artworkName"> |
|
|
|
<span slot="suffix" v-show="modalData.artworkName && !detailFlag" @click="clearModalData('artwork')"><i |
|
|
|
class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</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') || detailFlag" 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') || detailFlag" v-model="modalData.plannerName"> |
|
|
|
<span slot="suffix" v-show="modalData.plannerName && !detailFlag" @click="clearModalData('planner')"><i class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
<el-input :disabled="(testInformationFlag('planner') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
v-model="modalData.plannerName"> |
|
|
|
<span slot="suffix" v-show="modalData.plannerName && !detailFlag" @click="clearModalData('planner')"><i |
|
|
|
class="el-icon-circle-close" style="margin-left: 5px;cursor: pointer;"></i></span> |
|
|
|
</el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
@ -304,20 +333,26 @@ |
|
|
|
<el-row :gutter="15"> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="备注" style="height: 90px"> |
|
|
|
<el-input type="textarea" :disabled="(testInformationFlag('technicalConsiderations') === 'N' && modalData.flag === '2') || detailFlag" |
|
|
|
<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> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
<div class="rq"> |
|
|
|
<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-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" :disabled="detailFlag" v-model:data-list="testPropertiesList" height="32vh" ref="dialogTestAttribute" :test-no="modalData.testNo"></test-properties> |
|
|
|
<el-tab-pane label="基本信息" :disabled="!activeTabList.includes('attribute')" name="attribute" |
|
|
|
v-if="modalData.testNo"> |
|
|
|
<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" :disabled="detailFlag" v-model:data-list="copyTestPropertiesList" height="32vh" 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 |
|
|
|
@ -338,7 +373,8 @@ |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="item.columnProp !== 'textValue' && item.columnProp !== 'numValue'"> |
|
|
|
<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> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</div> |
|
|
|
<div v-else> |
|
|
|
{{ scope.row.textValue ? scope.row.textValue : scope.row.numValue }} |
|
|
|
@ -348,28 +384,41 @@ |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="材料信息" :disabled="!activeTabList.includes('product')" name="product"> |
|
|
|
<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> |
|
|
|
<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" :disabled="detailFlag" ref="dialogSoRouting" height="32vh" 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"> |
|
|
|
<oss-components ref="ossRef1" v-if="clickTestRow" :disabled="detailFlag" label="测试单号" height="32vh" :columns="fileColumnList" :order-ref2="modalData.testNo" :order-ref1="modalData.site"></oss-components> |
|
|
|
<!-- <oss-components ref="ossRef1" v-if="clickTestRow" :disabled="detailFlag" label="测试单号" height="32vh"--> |
|
|
|
<!-- :columns="fileColumnList" :order-ref2="modalData.testNo"--> |
|
|
|
<!-- :order-ref1="modalData.site"></oss-components>--> |
|
|
|
<oss-components ref="ossRef1" v-if="fileContentLoaded" :disabled="detailFlag" label="测试单号" height="32vh" |
|
|
|
:columns="fileColumnList" :order-ref2="modalData.testNo" |
|
|
|
:order-ref1="modalData.site"></oss-components> |
|
|
|
</el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
</div> |
|
|
|
<el-footer style="height:30px;text-align:center;margin-top: 8px"> |
|
|
|
<template v-if="modalData.testStatus === '草稿' || (modalData.approvalUsername && modalData.approvalUsername.split(';').includes($store.state.user.name) && modalData.testStatus === '审批中')"> |
|
|
|
<template |
|
|
|
v-if="modalData.testStatus === '草稿' || (modalData.approvalUsername && modalData.approvalUsername.split(';').includes($store.state.user.name) && modalData.testStatus === '审批中')"> |
|
|
|
<el-button type="primary" @click="saveData()" v-if="modalData.flag !== '1' && !detailFlag">保存</el-button> |
|
|
|
</template> |
|
|
|
<!-- <el-button type="primary" @click="modalFlag = false">关闭</el-button>--> |
|
|
|
<el-button type="primary" @click="closeDialog">关闭</el-button> |
|
|
|
<template v-if="modalData.approvalUsername && modalData.approvalUsername.split(';').includes($store.state.user.name)"> |
|
|
|
<template |
|
|
|
v-if="modalData.approvalUsername && modalData.approvalUsername.split(';').includes($store.state.user.name)"> |
|
|
|
<template v-if="isAuth('107001:submit')"> |
|
|
|
<el-button v-if="modalData.testStatus === '审批中' && !detailFlag" type="primary" @click="agreeSubmit">同意</el-button> |
|
|
|
<el-button v-if="modalData.testStatus === '审批中' && !detailFlag" type="primary" @click="agreeSubmit"> |
|
|
|
同意 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
<template v-if="isAuth('107001:rejected')"> |
|
|
|
<el-button v-if="modalData.testStatus === '审批中' && modalData.isReject === 'Y' && !detailFlag" @click="rejectVisible = true" type="primary">驳回</el-button> |
|
|
|
<el-button v-if="modalData.testStatus === '审批中' && modalData.isReject === 'Y' && !detailFlag" |
|
|
|
@click="rejectVisible = true" type="primary">驳回 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-footer> |
|
|
|
@ -426,7 +475,8 @@ |
|
|
|
: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> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
@ -441,15 +491,20 @@ |
|
|
|
</el-pagination> |
|
|
|
</el-dialog> |
|
|
|
<!-- 录入测试结果模态框 --> |
|
|
|
<el-dialog title="录入测试结果" :close-on-click-modal="false" v-drag :visible.sync="enterResultModalFlag" width="785px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left: 0px;margin-top: 10px;"> |
|
|
|
<el-dialog title="录入测试结果" :close-on-click-modal="false" v-drag :visible.sync="enterResultModalFlag" |
|
|
|
width="785px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" |
|
|
|
style="margin-left: 0px;margin-top: 10px;"> |
|
|
|
<el-form-item label="实际交付日期" prop="actualityDeliveryDate" :rules="enterResultRules.actualityDeliveryDate"> |
|
|
|
<el-date-picker v-model="enterResultData.actualityDeliveryDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker> |
|
|
|
<el-date-picker v-model="enterResultData.actualityDeliveryDate" type="date" value-format="yyyy-MM-dd" |
|
|
|
placeholder="请选择日期" style="width: 200px"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" style="margin-left:0px;margin-top: 5px;"> |
|
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" :rules="enterResultRules" |
|
|
|
style="margin-left:0px;margin-top: 5px;"> |
|
|
|
<el-form-item label="测试结果信息" prop="testResultInformation" :rules="enterResultRules.testResultInformation"> |
|
|
|
<el-input type="textarea" v-model="enterResultData.testResultInformation" :rows="3" resize='none' show-word-limit style="width: 500px;height: 30px"></el-input> |
|
|
|
<el-input type="textarea" v-model="enterResultData.testResultInformation" :rows="3" resize='none' |
|
|
|
show-word-limit style="width: 500px;height: 30px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="enterResultData" style="margin-left: 0px;margin-top: 50px;"> |
|
|
|
@ -496,10 +551,14 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 录入送样信息模态框 --> |
|
|
|
<el-dialog title="录入送样信息" :close-on-click-modal="false" v-drag :visible.sync="submitResultModalFlag" width="620px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="submitResultData" :rules="submitResultRules" style="margin-left: 0px;margin-top: 10px;"> |
|
|
|
<el-form-item label="实际送样日期" prop="actualitySendSamplesDate" :rules="submitResultRules.actualitySendSamplesDate"> |
|
|
|
<el-date-picker v-model="submitResultData.actualitySendSamplesDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 200px"></el-date-picker> |
|
|
|
<el-dialog title="录入送样信息" :close-on-click-modal="false" v-drag :visible.sync="submitResultModalFlag" |
|
|
|
width="620px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="submitResultData" :rules="submitResultRules" |
|
|
|
style="margin-left: 0px;margin-top: 10px;"> |
|
|
|
<el-form-item label="实际送样日期" prop="actualitySendSamplesDate" |
|
|
|
:rules="submitResultRules.actualitySendSamplesDate"> |
|
|
|
<el-date-picker v-model="submitResultData.actualitySendSamplesDate" type="date" value-format="yyyy-MM-dd" |
|
|
|
placeholder="请选择日期" style="width: 200px"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="送样方式" prop="sendSamplesMethod" :rules="submitResultRules.sendSamplesMethod"> |
|
|
|
<el-select v-model="submitResultData.sendSamplesMethod" style="width: 221px"> |
|
|
|
@ -514,7 +573,8 @@ |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="submitResultData" style="margin-left:0px;margin-top: 5px;"> |
|
|
|
<el-form-item label="送货备注"> |
|
|
|
<el-input type="textarea" v-model="submitResultData.deliverGoodsRemark" :rows="3" resize='none' show-word-limit style="width: 456px;height: 30px"></el-input> |
|
|
|
<el-input type="textarea" v-model="submitResultData.deliverGoodsRemark" :rows="3" resize='none' |
|
|
|
show-word-limit style="width: 456px;height: 30px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-footer style="height:35px;margin-top: 50px;text-align:center"> |
|
|
|
@ -524,10 +584,13 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 客户回复模态框 --> |
|
|
|
<el-dialog title="客户回复" :close-on-click-modal="false" v-drag :visible.sync="customerResponseModalFlag" width="620px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" :rules="customerResponseRules" style="margin-left: 0px;margin-top: 10px;"> |
|
|
|
<el-dialog title="客户回复" :close-on-click-modal="false" v-drag :visible.sync="customerResponseModalFlag" |
|
|
|
width="620px"> |
|
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" :rules="customerResponseRules" |
|
|
|
style="margin-left: 0px;margin-top: 10px;"> |
|
|
|
<el-form-item label="实际回复日期" prop="actualityReplyDate" :rules="customerResponseRules.actualityReplyDate"> |
|
|
|
<el-date-picker v-model="customerResponseData.actualityReplyDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" style="width: 185px"></el-date-picker> |
|
|
|
<el-date-picker v-model="customerResponseData.actualityReplyDate" type="date" value-format="yyyy-MM-dd" |
|
|
|
placeholder="请选择日期" style="width: 185px"></el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="客户确认结果" prop="confirmResults" :rules="customerResponseRules.confirmResults"> |
|
|
|
<el-select v-model="customerResponseData.confirmResults" style="width: 185px"> |
|
|
|
@ -539,9 +602,11 @@ |
|
|
|
<el-input v-model="customerResponseData.confirmBy" style="width: 185px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" style="margin-left:0px;margin-top: 5px;"> |
|
|
|
<el-form :inline="true" label-position="top" :model="customerResponseData" |
|
|
|
style="margin-left:0px;margin-top: 5px;"> |
|
|
|
<el-form-item label="客户回复信息"> |
|
|
|
<el-input type="textarea" v-model="customerResponseData.confirmInformation" :rows="3" resize='none' show-word-limit style="width: 595px;height: 30px"></el-input> |
|
|
|
<el-input type="textarea" v-model="customerResponseData.confirmInformation" :rows="3" resize='none' |
|
|
|
show-word-limit style="width: 595px;height: 30px"></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-footer style="height:35px;margin-top: 50px;text-align:center"> |
|
|
|
@ -551,7 +616,8 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!--选择项目模态框--> |
|
|
|
<el-dialog title="选择-项目" :close-on-click-modal="false" @close="closeProjectInfoDialog" @open="searchProjectInfoList" :visible.sync="chooseProjectListFlag" width="35%"> |
|
|
|
<el-dialog title="选择-项目" :close-on-click-modal="false" @close="closeProjectInfoDialog" |
|
|
|
@open="searchProjectInfoList" :visible.sync="chooseProjectListFlag" width="35%"> |
|
|
|
<el-form label-position="top" :model="searchProjectData" ref="closeProjectInfoForm"> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="6"> |
|
|
|
@ -581,9 +647,11 @@ |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
<!-- 页签 --> |
|
|
|
<el-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; min-height: 500px;" type="border-card" @tab-click="tabClick" class="customer-tab"> |
|
|
|
<el-tabs v-model="activeTable" style="margin-top: 0px; width: 100%; min-height: 500px;" type="border-card" |
|
|
|
@tab-click="tabClick" class="customer-tab"> |
|
|
|
<el-tab-pane label="基本信息" name="attribute"> |
|
|
|
<test-properties ref="tabProperties" v-model:data-list="testPropertiesList" :test-no="testCurrentRow.testNo" :disabled="testCurrentRow.testStatus === '已完成'" height="45vh"></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 |
|
|
|
@ -604,7 +672,8 @@ |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div v-if="item.columnProp !== 'textValue' && item.columnProp !== 'numValue'"> |
|
|
|
<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> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</div> |
|
|
|
<div v-else> |
|
|
|
{{ scope.row.textValue ? scope.row.textValue : scope.row.numValue }} |
|
|
|
@ -614,10 +683,13 @@ |
|
|
|
</el-table> |
|
|
|
</el-tab-pane> |
|
|
|
<el-tab-pane label="材料信息" name="test_so_bom" style="padding: 5px"> |
|
|
|
<test-table ref="tabSoBom" :test-number="testCurrentRow.testNumber" :disabled="testCurrentRow.testStatus === '已完成'" :test-no="testCurrentRow.testNo" height="45vh" 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="tabSoRouting" :test-no="testCurrentRow.testNo" v-model:data-list="testSoRoutingList" :disabled="testCurrentRow.testStatus === '已完成'" height="45vh" ></test-routing-table> |
|
|
|
<test-routing-table ref="tabSoRouting" :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"> |
|
|
|
<oss-components style="margin-top: 5px" |
|
|
|
@ -637,7 +709,8 @@ |
|
|
|
|
|
|
|
<!-- 项目信息页签 --> |
|
|
|
<el-tab-pane label="项目信息" name="project_information"> |
|
|
|
<el-form label-position="top" :model="projectInformationData" style="margin-left: 10px;margin-top: 5px;margin-right: 10px"> |
|
|
|
<el-form label-position="top" :model="projectInformationData" |
|
|
|
style="margin-left: 10px;margin-top: 5px;margin-right: 10px"> |
|
|
|
<el-row :gutter="20"> |
|
|
|
<el-col :span="8"> |
|
|
|
<div class="grid-content bg-purple"> |
|
|
|
@ -764,7 +837,8 @@ |
|
|
|
|
|
|
|
<!-- 审批信息 --> |
|
|
|
<el-tab-pane label="审批信息" name="approvalInformation"> |
|
|
|
<approval-information ref="approvalTable" v-model:data-list="approvalList" height="46vh" style="margin-top: 5px"></approval-information> |
|
|
|
<approval-information ref="approvalTable" v-model:data-list="approvalList" height="46vh" |
|
|
|
style="margin-top: 5px"></approval-information> |
|
|
|
</el-tab-pane> |
|
|
|
</el-tabs> |
|
|
|
|
|
|
|
@ -791,7 +865,8 @@ |
|
|
|
: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> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
@ -820,7 +895,8 @@ |
|
|
|
: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> |
|
|
|
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" |
|
|
|
style="width: 100px; height: 80px"/></span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
@ -896,6 +972,7 @@ |
|
|
|
import BuSelect from "../base/BuSelect.vue"; |
|
|
|
import {getApprovalList} from "../../../api/changeManagement/changeManagement"; |
|
|
|
import CustomerInfo from "../quotation/sellForQuotation/customerInfo.vue"; |
|
|
|
|
|
|
|
export default { |
|
|
|
computed: { |
|
|
|
testInformationFlag() { |
|
|
|
@ -1061,6 +1138,7 @@ |
|
|
|
testNo: '', |
|
|
|
buNo: '', |
|
|
|
}, |
|
|
|
fileContentLoaded: false, |
|
|
|
// 其它 |
|
|
|
dataListLoading: false, |
|
|
|
// 初始页签 |
|
|
|
@ -2353,9 +2431,20 @@ |
|
|
|
// 刷新列表数据 |
|
|
|
this.refreshCurrentTabTable() |
|
|
|
}, |
|
|
|
dialogTabClick(){ |
|
|
|
if (this.activeTab === 'partAttribute') { |
|
|
|
dialogTabClick(tab) { |
|
|
|
// if (this.activeTab === 'partAttribute') { |
|
|
|
// this.getPartItem(this.modalData.site, this.modalData.testPartNo, 1); |
|
|
|
// } |
|
|
|
if (tab.name === 'partAttribute') { |
|
|
|
this.getPartItem(this.modalData.site, this.modalData.testPartNo, 1); |
|
|
|
} else if (tab.name === 'file') { |
|
|
|
// 新增:当用户点击“附件信息”页签时触发 |
|
|
|
this.fileContentLoaded = true; |
|
|
|
this.$nextTick(() => { |
|
|
|
if (this.$refs.ossRef1 && this.$refs.ossRef1.handleQuery) { |
|
|
|
this.$refs.ossRef1.handleQuery(); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}, |
|
|
|
/** |
|
|
|
@ -2562,12 +2651,10 @@ |
|
|
|
soNumber: row.soNumber, |
|
|
|
} |
|
|
|
this.activeTabList = ['product', 'process', 'attribute', 'partAttribute', 'file'] |
|
|
|
// this.$nextTick(()=>{ |
|
|
|
// this.$refs.dialogSoBom.clearTable(); |
|
|
|
// }) |
|
|
|
// this.$refs.ossRef1.handleQuery() |
|
|
|
this.modalDisableFlag = true |
|
|
|
this.modalFlag = true |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// ======== 新增/编辑/删除方法 ======== |
|
|
|
@ -2728,7 +2815,8 @@ |
|
|
|
message: '操作成功', |
|
|
|
type: 'success', |
|
|
|
duration: 1500, |
|
|
|
onClose: () => {} |
|
|
|
onClose: () => { |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
@ -2768,7 +2856,8 @@ |
|
|
|
message: '操作成功', |
|
|
|
type: 'success', |
|
|
|
duration: 1500, |
|
|
|
onClose: () => {} |
|
|
|
onClose: () => { |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
@ -2856,7 +2945,8 @@ |
|
|
|
message: '操作成功', |
|
|
|
type: 'success', |
|
|
|
duration: 1500, |
|
|
|
onClose: () => {} |
|
|
|
onClose: () => { |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
@ -2910,7 +3000,8 @@ |
|
|
|
message: '操作成功', |
|
|
|
type: 'success', |
|
|
|
duration: 1500, |
|
|
|
onClose: () => {} |
|
|
|
onClose: () => { |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
@ -2968,7 +3059,8 @@ |
|
|
|
message: '操作成功', |
|
|
|
type: 'success', |
|
|
|
duration: 1500, |
|
|
|
onClose: () => {} |
|
|
|
onClose: () => { |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
@ -3029,7 +3121,8 @@ |
|
|
|
message: '操作成功', |
|
|
|
type: 'success', |
|
|
|
duration: 1500, |
|
|
|
onClose: () => {} |
|
|
|
onClose: () => { |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
this.$alert(data.msg, '错误', { |
|
|
|
@ -3661,14 +3754,17 @@ |
|
|
|
padding: 0px !important; |
|
|
|
height: 459px; |
|
|
|
} |
|
|
|
|
|
|
|
.right /deep/ .el-input__inner { |
|
|
|
text-align: right; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .inlineNumber input::-webkit-outer-spin-button, |
|
|
|
/deep/ .inlineNumber input::-webkit-inner-spin-button { |
|
|
|
-webkit-appearance: none; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .inlineNumber input[type="number"] { |
|
|
|
-moz-appearance: textfield; |
|
|
|
padding-right: 5px !important; |
|
|
|
@ -3678,6 +3774,7 @@ |
|
|
|
display: none; |
|
|
|
position: relative; |
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .el-table .cellClass .cell:before { |
|
|
|
content: ""; |
|
|
|
position: absolute; |
|
|
|
|