Browse Source

dry_wet_type和导出

master
han\hanst 1 week ago
parent
commit
9546bf073e
  1. 1
      src/api/sampleTracking/sampleTracking.js
  2. 38
      src/views/modules/eam/eamProjectInfo.vue
  3. 31
      src/views/modules/eam/eamProjectPartInfo.vue
  4. 138
      src/views/modules/sampleTracking/projectProofTracking.vue

1
src/api/sampleTracking/sampleTracking.js

@ -14,6 +14,7 @@ export const syncProjectPartTracking = data => createAPI('/sampleTracking/projec
export const syncProofTracking = data => createAPI('/sampleTracking/proofTracking/sync', 'POST', data) export const syncProofTracking = data => createAPI('/sampleTracking/proofTracking/sync', 'POST', data)
export const searchProofTracking = data => createAPI('/sampleTracking/proofTracking/search', 'POST', data) export const searchProofTracking = data => createAPI('/sampleTracking/proofTracking/search', 'POST', data)
export const exportProofTracking = data => createAPI('/sampleTracking/proofTracking/export', 'POST', data, 'download')
export const oneKeyCreateProofTracking = data => createAPI('/sampleTracking/proofTracking/oneKeyCreate', 'POST', data) export const oneKeyCreateProofTracking = data => createAPI('/sampleTracking/proofTracking/oneKeyCreate', 'POST', data)
export const oneKeyUpdateProofTracking = data => createAPI('/sampleTracking/proofTracking/oneKeyUpdate', 'POST', data) export const oneKeyUpdateProofTracking = data => createAPI('/sampleTracking/proofTracking/oneKeyUpdate', 'POST', data)
export const createProofTrackingRecord = data => createAPI('/sampleTracking/proofTracking/createProofRecord', 'POST', data) export const createProofTrackingRecord = data => createAPI('/sampleTracking/proofTracking/createProofRecord', 'POST', data)

38
src/views/modules/eam/eamProjectInfo.vue

@ -393,7 +393,7 @@
<el-input v-model="modalData.partDesc" class="project-modal-input"></el-input> <el-input v-model="modalData.partDesc" class="project-modal-input"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4">
<el-col :span="3">
<el-form-item prop="partType" :rules="rules.partType"> <el-form-item prop="partType" :rules="rules.partType">
<template #label> <template #label>
<span class="big-label">料号状态</span> <span class="big-label">料号状态</span>
@ -406,7 +406,18 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4" v-if="this.modalData.flag !== '2' && this.modalData.flag !== '1'">
<el-col :span="2">
<el-form-item prop="dry_wet_type" :rules="rules.dry_wet_type">
<template #label>
<span class="big-label">分类</span>
</template>
<el-select v-model="modalData.dry_wet_type" clearable class="project-modal-input">
<el-option label="Dry" value="Dry"></el-option>
<el-option label="Wet" value="Wet"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" v-if="this.modalData.flag !== '2' && this.modalData.flag !== '1'">
<el-form-item prop="priority" :rules="rules.priority"> <el-form-item prop="priority" :rules="rules.priority">
<template #label> <template #label>
<span class="big-label">优先级</span> <span class="big-label">优先级</span>
@ -1402,6 +1413,7 @@ import {updateColumnSize} from "../../../api/table";
finalPartNo:'', finalPartNo:'',
finalPartDesc:'', finalPartDesc:'',
partType:'', partType:'',
dry_wet_type:'',
wantedConfirmDate: new Date(), wantedConfirmDate: new Date(),
status: '', status: '',
// active:'', // active:'',
@ -2647,6 +2659,13 @@ import {updateColumnSize} from "../../../api/table";
trigger: ['blur','change'] trigger: ['blur','change']
} }
], ],
dry_wet_type:[
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
projectManager:[ projectManager:[
{ {
required: true, required: true,
@ -3813,6 +3832,7 @@ import {updateColumnSize} from "../../../api/table";
projectCategory:'', projectCategory:'',
testPartNo:'', testPartNo:'',
partDesc:'', partDesc:'',
dry_wet_type: 'Dry',
projectNo: '', projectNo: '',
projectDesc:'', projectDesc:'',
projectCloseDate:'', projectCloseDate:'',
@ -3916,6 +3936,7 @@ import {updateColumnSize} from "../../../api/table";
sqeeeEngineer: row.sqeeeEngineer || '', sqeeeEngineer: row.sqeeeEngineer || '',
projectCreationDate: row.projectCreationDate, projectCreationDate: row.projectCreationDate,
status: row.status, status: row.status,
dry_wet_type: row.dry_wet_type || row.dryWetType || '',
remark: row.remark, remark: row.remark,
// active: row.active, // active: row.active,
createBy: this.$store.state.user.name, createBy: this.$store.state.user.name,
@ -4168,6 +4189,7 @@ import {updateColumnSize} from "../../../api/table";
testPartNo: 'P000000', testPartNo: 'P000000',
partDesc: '无物料', partDesc: '无物料',
partType: 'Active', partType: 'Active',
dry_wet_type: this.modalData.dry_wet_type || 'Dry',
remark: this.modalData.remark, remark: this.modalData.remark,
} }
eamProjectInfoSave(this.modalData).then(({data}) => { eamProjectInfoSave(this.modalData).then(({data}) => {
@ -4249,6 +4271,7 @@ import {updateColumnSize} from "../../../api/table";
testPartNo: 'P000000', testPartNo: 'P000000',
partDesc: '无物料', partDesc: '无物料',
partType: 'Active', partType: 'Active',
dry_wet_type: this.modalData.dry_wet_type || 'Dry',
remark: this.modalData.remark, remark: this.modalData.remark,
} }
eamProjectInfoSave(this.modalData).then(({data}) => { eamProjectInfoSave(this.modalData).then(({data}) => {
@ -4331,6 +4354,7 @@ import {updateColumnSize} from "../../../api/table";
buildDate : this.modalData.projectCreationDate, buildDate : this.modalData.projectCreationDate,
priority: this.modalData.priority, priority: this.modalData.priority,
partType: this.modalData.partType, partType: this.modalData.partType,
dry_wet_type: this.modalData.dry_wet_type || 'Dry',
testPartNo: 'P000000', testPartNo: 'P000000',
partDesc: '无物料', partDesc: '无物料',
status: this.modalData.status, status: this.modalData.status,
@ -4420,6 +4444,10 @@ import {updateColumnSize} from "../../../api/table";
this.$message.warning('请选择料号状态!') this.$message.warning('请选择料号状态!')
return return
} }
if (this.modalData.dry_wet_type === '' || this.modalData.dry_wet_type == null) {
this.$message.warning('请选择分类!')
return
}
this.modalData.closeDate = this.modalData.projectCloseDate this.modalData.closeDate = this.modalData.projectCloseDate
this.modalData.buildDate = this.modalData.projectCreationDate this.modalData.buildDate = this.modalData.projectCreationDate
eamProjectPartInfoSave(this.modalData).then(({data}) => { eamProjectPartInfoSave(this.modalData).then(({data}) => {
@ -4452,6 +4480,10 @@ import {updateColumnSize} from "../../../api/table";
this.$message.warning('请选择料号状态!') this.$message.warning('请选择料号状态!')
return return
} }
if (this.modalData.dry_wet_type === '' || this.modalData.dry_wet_type == null) {
this.$message.warning('请选择分类!')
return
}
this.modalData.closeDate = this.modalData.projectCloseDate this.modalData.closeDate = this.modalData.projectCloseDate
this.modalData.buildDate = this.modalData.projectCreationDate this.modalData.buildDate = this.modalData.projectCreationDate
eamProjectPartInfoEdit(this.modalData).then(({data}) => { eamProjectPartInfoEdit(this.modalData).then(({data}) => {
@ -4829,6 +4861,7 @@ import {updateColumnSize} from "../../../api/table";
projectCreationDate: row.projectCreationDate, projectCreationDate: row.projectCreationDate,
status: '草稿', status: '草稿',
partType: 'Active', partType: 'Active',
dry_wet_type: 'Dry',
remark: row.remark, remark: row.remark,
// active: row.active, // active: row.active,
createBy: this.$store.state.user.name, createBy: this.$store.state.user.name,
@ -4942,6 +4975,7 @@ import {updateColumnSize} from "../../../api/table";
projectCreationDate: row.buildDate, projectCreationDate: row.buildDate,
status: row.status, status: row.status,
partType: row.partType, partType: row.partType,
dry_wet_type: row.dry_wet_type || row.dryWetType || '',
remark: row.remark, remark: row.remark,
// active: row.active, // active: row.active,
createBy: this.$store.state.user.name, createBy: this.$store.state.user.name,

31
src/views/modules/eam/eamProjectPartInfo.vue

@ -29,6 +29,16 @@
<el-form-item :label="'料号描述'"> <el-form-item :label="'料号描述'">
<el-input v-model="searchData.partDesc" style="width: 120px" clearable></el-input> <el-input v-model="searchData.partDesc" style="width: 120px" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'分类'">
<el-select v-model="searchData.dryWetType" placeholder="请选择" clearable style="width: 100px">
<el-option
v-for="i in dryWetTypeList"
:key="i"
:label="i"
:value="i">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'客户编码'"> <el-form-item :label="'客户编码'">
<el-input v-model="searchData.customerNo" style="width: 120px" clearable></el-input> <el-input v-model="searchData.customerNo" style="width: 120px" clearable></el-input>
</el-form-item> </el-form-item>
@ -1848,6 +1858,7 @@ import {uploadFileList} from '@/api/base/baseFunction.js';
projectDesc: '', projectDesc: '',
testPartNo: '', testPartNo: '',
partDesc: '', partDesc: '',
dryWetType: '',
customerNo: '', customerNo: '',
customerDesc: '', customerDesc: '',
buDesc: '', buDesc: '',
@ -1879,6 +1890,7 @@ import {uploadFileList} from '@/api/base/baseFunction.js';
projectPartId: '', projectPartId: '',
testPartNo: '', testPartNo: '',
partDesc: '', partDesc: '',
dryWetType: '',
customerNo: '', customerNo: '',
customerDesc: '', customerDesc: '',
buDesc: '', buDesc: '',
@ -2672,6 +2684,24 @@ import {uploadFileList} from '@/api/base/baseFunction.js';
fixed: '', fixed: '',
columnWidth: 100, columnWidth: 100,
}, },
{
userId: this.$store.state.user.name,
functionId: 401004,
serialNumber: '401004Table1DryWetType',
tableId: "401004Table1",
tableName: "项目物料表",
columnProp: 'dryWetType',
headerAlign: "center",
align: "center",
columnLabel: '分类',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80,
},
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 401004, functionId: 401004,
@ -3837,6 +3867,7 @@ import {uploadFileList} from '@/api/base/baseFunction.js';
status: '正式量产', status: '正式量产',
} }
], ],
dryWetTypeList: ['Dry', 'Wet'],
userBuList: [], userBuList: [],
menuId: this.$route.meta.menuId, menuId: this.$route.meta.menuId,
} }

138
src/views/modules/sampleTracking/projectProofTracking.vue

@ -23,6 +23,11 @@
<el-form-item label="料号描述"> <el-form-item label="料号描述">
<el-input v-model="searchData.partDesc" clearable placeholder="请输入料号描述" style="width: 160px" /> <el-input v-model="searchData.partDesc" clearable placeholder="请输入料号描述" style="width: 160px" />
</el-form-item> </el-form-item>
<el-form-item label="分类">
<el-select v-model="searchData.dryWetType" clearable placeholder="全部" style="width: 100px">
<el-option v-for="item in dryWetTypeList" :key="`searchDryWet_${item}`" :label="item" :value="item" />
</el-select>
</el-form-item>
<el-form-item label="客户编码"> <el-form-item label="客户编码">
<el-input v-model="searchData.customerNo" clearable placeholder="请输入客户编码" style="width: 120px" /> <el-input v-model="searchData.customerNo" clearable placeholder="请输入客户编码" style="width: 120px" />
</el-form-item> </el-form-item>
@ -49,6 +54,7 @@
</el-select> </el-select>
<el-button type="primary" @click="getDataList('Y')">查询</el-button> <el-button type="primary" @click="getDataList('Y')">查询</el-button>
<el-button @click="resetSearch">重置</el-button> <el-button @click="resetSearch">重置</el-button>
<el-button type="success" :loading="exportLoading" @click="exportTrackingData">导出</el-button>
</el-form-item> </el-form-item>
<el-form-item class="button-group-col"> <el-form-item class="button-group-col">
<el-row :gutter="8" type="flex" class="button-row" > <el-row :gutter="8" type="flex" class="button-row" >
@ -477,13 +483,20 @@
<el-input v-model="oneKeyForm.partDesc" style="width: 100%"></el-input> <el-input v-model="oneKeyForm.partDesc" style="width: 100%"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6" v-show="isOneKeyCreateFieldVisible('partType')">
<el-col :span="3" v-show="isOneKeyCreateFieldVisible('partType')">
<el-form-item label="料号状态"> <el-form-item label="料号状态">
<el-select v-model="oneKeyForm.partType" placeholder="请选择" clearable style="width: 100%"> <el-select v-model="oneKeyForm.partType" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="item in partTypeList" :key="item" :label="item" :value="item"></el-option> <el-option v-for="item in partTypeList" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="3" v-show="isOneKeyCreateFieldVisible('dryWetType')">
<el-form-item label="分类">
<el-select v-model="oneKeyForm.dry_wet_type" placeholder="请选择" clearable style="width: 100%">
<el-option v-for="item in dryWetTypeList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
@ -954,6 +967,7 @@ import {
batchUpdateProofTrackingPlan, batchUpdateProofTrackingPlan,
createProofTrackingRecord, createProofTrackingRecord,
deleteProofTracking, deleteProofTracking,
exportProofTracking,
finishProofTracking, finishProofTracking,
oneKeyCreateProofTracking, oneKeyCreateProofTracking,
oneKeyUpdateProofTracking, oneKeyUpdateProofTracking,
@ -1109,6 +1123,20 @@ const DEFAULT_TRACKING_COLUMNS = [
columnWidth: 150, columnWidth: 150,
showOverflowTooltip: true showOverflowTooltip: true
}, },
{
serialNumber: 'proofTrackingTable1DryWetType',
columnProp: 'dryWetType',
headerAlign: 'center',
align: 'center',
columnLabel: '分类',
columnHidden: false,
columnImage: false,
columnSortable: false,
status: true,
fixed: '',
columnWidth: 70,
showOverflowTooltip: true
},
{ {
serialNumber: 'proofTrackingTable1ProjectRegion', serialNumber: 'proofTrackingTable1ProjectRegion',
columnProp: 'cProjectRegion', columnProp: 'cProjectRegion',
@ -1242,6 +1270,7 @@ export default {
buNo: '', buNo: '',
testPartNo: '', testPartNo: '',
partDesc: '', partDesc: '',
dryWetType: '',
customerNo: '', customerNo: '',
proofingNo: '', proofingNo: '',
projectPartSyncFlag: '', projectPartSyncFlag: '',
@ -1276,6 +1305,7 @@ export default {
priorityList: ['Low', 'Middle', 'High'], priorityList: ['Low', 'Middle', 'High'],
projectStatusList: ['草稿', '进行中', '已关闭'], projectStatusList: ['草稿', '进行中', '已关闭'],
partTypeList: ['Active', 'On hold', 'Cancel', 'EOL'], partTypeList: ['Active', 'On hold', 'Cancel', 'EOL'],
dryWetTypeList: ['Dry', 'Wet'],
partStatusList: ['草稿', '进行中', '已量产', '正式量产'], partStatusList: ['草稿', '进行中', '已量产', '正式量产'],
cProjectTypeDbList: [ cProjectTypeDbList: [
{ cProjectTypeDb: 'Sustaining' }, { cProjectTypeDb: 'Sustaining' },
@ -1303,6 +1333,7 @@ export default {
'testPartNo', 'testPartNo',
'partDesc', 'partDesc',
'partType', 'partType',
'dryWetType',
'projectManager', 'projectManager',
'projectOwner', 'projectOwner',
'engineer', 'engineer',
@ -1363,6 +1394,7 @@ export default {
}, },
dataList: [], dataList: [],
dataListLoading: false, dataListLoading: false,
exportLoading: false,
syncNpiLoading: false, syncNpiLoading: false,
syncProofLoading: false, syncProofLoading: false,
pageIndex: 1, pageIndex: 1,
@ -2739,6 +2771,7 @@ export default {
cQualityEngineer7: '', cQualityEngineer7: '',
cQualityEngineer7Name: '', cQualityEngineer7Name: '',
partType: '', partType: '',
dry_wet_type: '',
partStatus: '草稿', partStatus: '草稿',
projectPhase: '', projectPhase: '',
tracker: '', tracker: '',
@ -2850,12 +2883,103 @@ export default {
this.$message.error('查询异常') this.$message.error('查询异常')
}) })
}, },
async exportTrackingData () {
if (this.exportLoading) {
return
}
this.searchData.site = this.$store.state.user.site
this.searchData.userName = this.$store.state.user.name
const exportTrackingColumns = this.visibleTrackingColumns.map(item => ({
columnProp: item.columnProp,
columnLabel: item.columnLabel
}))
const exportProcessColumns = this.visibleProcessColumns.map(item => ({
code: item.code,
label: item.label,
planField: item.planField,
actualField: item.actualField,
statusField: item.statusField
}))
if (exportTrackingColumns.length === 0 && exportProcessColumns.length === 0) {
this.$message.warning('当前没有可导出的列')
return
}
const inData = Object.assign({}, this.searchData, {
buNo: this.normalizeBuNo(this.searchData.buNo, this.searchData.site),
exportTrackingColumns: exportTrackingColumns,
exportProcessColumns: exportProcessColumns,
exportCommentsColumn: true
})
this.exportLoading = true
try {
const response = await exportProofTracking(inData)
const blob = response && response.data ? response.data : null
if (!blob) {
this.$message.error('导出失败')
return
}
if (blob.type && blob.type.indexOf('application/json') > -1) {
const errorText = await blob.text()
let errorMsg = '导出失败'
try {
const errorObj = JSON.parse(errorText)
if (errorObj && errorObj.msg) {
errorMsg = errorObj.msg
}
} catch (e) {
}
this.$message.error(errorMsg)
return
}
const fileName = this.resolveProofTrackingExportFileName(response)
const url = window.URL.createObjectURL(blob)
const link = document.createElement('a')
link.href = url
link.setAttribute('download', fileName)
document.body.appendChild(link)
link.click()
link.remove()
window.URL.revokeObjectURL(url)
} catch (e) {
this.$message.error('导出失败')
} finally {
this.exportLoading = false
}
},
resolveProofTrackingExportFileName (response) {
const defaultFileName = `项目打样跟踪_${this.getExportTimestamp()}.xlsx`
const disposition = response && response.headers
? (response.headers['content-disposition'] || response.headers['Content-Disposition'] || '')
: ''
if (!disposition) {
return defaultFileName
}
const utf8Match = disposition.match(/filename\*=utf-8''([^;]+)/i)
if (utf8Match && utf8Match[1]) {
try {
return decodeURIComponent(utf8Match[1])
} catch (e) {
return utf8Match[1]
}
}
const normalMatch = disposition.match(/filename="?([^";]+)"?/i)
if (normalMatch && normalMatch[1]) {
return normalMatch[1]
}
return defaultFileName
},
getExportTimestamp () {
const now = new Date()
const pad = num => String(num).padStart(2, '0')
return `${now.getFullYear()}${pad(now.getMonth() + 1)}${pad(now.getDate())}${pad(now.getHours())}${pad(now.getMinutes())}${pad(now.getSeconds())}`
},
resetSearch () { resetSearch () {
this.searchData.projectNo = '' this.searchData.projectNo = ''
this.searchData.projectDesc = '' this.searchData.projectDesc = ''
this.searchData.buNo = '' this.searchData.buNo = ''
this.searchData.testPartNo = '' this.searchData.testPartNo = ''
this.searchData.partDesc = '' this.searchData.partDesc = ''
this.searchData.dryWetType = ''
this.searchData.customerNo = '' this.searchData.customerNo = ''
this.searchData.proofingNo = '' this.searchData.proofingNo = ''
this.searchData.projectPartSyncFlag = '' this.searchData.projectPartSyncFlag = ''
@ -3077,6 +3201,7 @@ export default {
this.oneKeyForm.testPartNo = '' this.oneKeyForm.testPartNo = ''
this.oneKeyForm.partDesc = '' this.oneKeyForm.partDesc = ''
this.oneKeyForm.partType = '' this.oneKeyForm.partType = ''
this.oneKeyForm.dry_wet_type = ''
return return
} }
if (previousProjectNo.toUpperCase() !== projectNo.toUpperCase()) { if (previousProjectNo.toUpperCase() !== projectNo.toUpperCase()) {
@ -3084,6 +3209,7 @@ export default {
this.oneKeyForm.testPartNo = '' this.oneKeyForm.testPartNo = ''
this.oneKeyForm.partDesc = '' this.oneKeyForm.partDesc = ''
this.oneKeyForm.partType = '' this.oneKeyForm.partType = ''
this.oneKeyForm.dry_wet_type = ''
} }
this.oneKeyProjectNoSnapshot = projectNo this.oneKeyProjectNoSnapshot = projectNo
this.loadOneKeyProofingApplyOptions(projectNo, { keepCurrentIfMissing: false }) this.loadOneKeyProofingApplyOptions(projectNo, { keepCurrentIfMissing: false })
@ -3544,6 +3670,7 @@ export default {
this.oneKeyForm.testPartNo = '' this.oneKeyForm.testPartNo = ''
this.oneKeyForm.partDesc = '' this.oneKeyForm.partDesc = ''
this.oneKeyForm.partType = '' this.oneKeyForm.partType = ''
this.oneKeyForm.dry_wet_type = ''
} }
this.loadOneKeyProofingApplyOptions(projectNo, { keepCurrentIfMissing: false }) this.loadOneKeyProofingApplyOptions(projectNo, { keepCurrentIfMissing: false })
}, },
@ -3560,6 +3687,13 @@ export default {
if (!this.isBlankValue(selectedPart.partType)) { if (!this.isBlankValue(selectedPart.partType)) {
this.oneKeyForm.partType = String(selectedPart.partType).trim() this.oneKeyForm.partType = String(selectedPart.partType).trim()
} }
// camelCase 线
const selectedDryWetType = this.isBlankValue(selectedPart.dry_wet_type)
? selectedPart.dryWetType
: selectedPart.dry_wet_type
if (!this.isBlankValue(selectedDryWetType)) {
this.oneKeyForm.dry_wet_type = String(selectedDryWetType).trim()
}
// //
this.syncOneKeyPartRoleFields(selectedPart) this.syncOneKeyPartRoleFields(selectedPart)
}, },
@ -3697,6 +3831,7 @@ export default {
ipqcHardTag: project.ipqcHardTag || part.ipqcHardTag || '', ipqcHardTag: project.ipqcHardTag || part.ipqcHardTag || '',
cQualityEngineer7: project.cQualityEngineer7 || part.cQualityEngineer7 || '', cQualityEngineer7: project.cQualityEngineer7 || part.cQualityEngineer7 || '',
partType: part.partType || '', partType: part.partType || '',
dry_wet_type: part.dry_wet_type || part.dryWetType || current.dry_wet_type || current.dryWetType || '',
partStatus: part.status || part.partStatus || '草稿', partStatus: part.status || part.partStatus || '草稿',
projectPhase: current.projectPhase || '', projectPhase: current.projectPhase || '',
tracker: current.tracker || project.projectOwner || part.projectOwner || '', tracker: current.tracker || project.projectOwner || part.projectOwner || '',
@ -3843,6 +3978,7 @@ export default {
this.searchData.projectDesc = '' this.searchData.projectDesc = ''
this.searchData.testPartNo = '' this.searchData.testPartNo = ''
this.searchData.partDesc = '' this.searchData.partDesc = ''
this.searchData.dryWetType = ''
this.searchData.customerNo = '' this.searchData.customerNo = ''
this.searchData.proofingNo = '' this.searchData.proofingNo = ''
this.searchData.projectPartSyncFlag = '' this.searchData.projectPartSyncFlag = ''

Loading…
Cancel
Save