Browse Source

2024-04-07 ECN更新

master
fengyuan_yang 2 years ago
parent
commit
44a87ab641
  1. 287
      src/views/modules/changeManagement/changeRecord.vue
  2. 355
      src/views/modules/changeManagement/changeRequest.vue

287
src/views/modules/changeManagement/changeRecord.vue

@ -109,10 +109,13 @@
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules"> <el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
<el-form-item label="ECN阶段" prop="ecnStage" :rules="rules.ecnStage"> <el-form-item label="ECN阶段" prop="ecnStage" :rules="rules.ecnStage">
<dict-data-select v-model="modalData.ecnStage" style="width: 205px" dict-type="change_ecn_stage"></dict-data-select>
<dict-data-select v-model="modalData.ecnStage" style="width: 95px" dict-type="change_ecn_stage"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item label="变更类别" prop="changeType" :rules="rules.changeType"> <el-form-item label="变更类别" prop="changeType" :rules="rules.changeType">
<dict-data-select v-model="modalData.changeType" style="width: 100px" dict-type="change_change_type"></dict-data-select>
<dict-data-select v-model="modalData.changeType" style="width: 95px" dict-type="change_change_type"></dict-data-select>
</el-form-item>
<el-form-item label="ECN种类" prop="ecnType" :rules="rules.ecnType">
<dict-data-select v-model="modalData.ecnType" style="width: 100px" dict-type="change_ecn_type"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item label=" "> <el-form-item label=" ">
<el-button type="primary" @click="chooseEcnTypeModal" style="width: 90px">ECN种类</el-button> <el-button type="primary" @click="chooseEcnTypeModal" style="width: 90px">ECN种类</el-button>
@ -134,45 +137,53 @@
:editable=false> :editable=false>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item label="印刷方式" prop="printing" :rules="rules.printing">-->
<!-- <dict-data-select v-model="modalData.printing" style="width: 205px" dict-type="change_printing"></dict-data-select>-->
<!-- </el-form-item>-->
<el-form-item label="是否DF产品" prop="dfIsProduct" :rules="rules.dfIsProduct"> <el-form-item label="是否DF产品" prop="dfIsProduct" :rules="rules.dfIsProduct">
<dict-data-select v-model="modalData.dfIsProduct" style="width: 205px" dict-type="change_df_is_product"></dict-data-select> <dict-data-select v-model="modalData.dfIsProduct" style="width: 205px" dict-type="change_df_is_product"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item label="印刷方式" prop="printing" :rules="rules.printing">
<dict-data-select v-model="modalData.printing" style="width: 205px" dict-type="change_printing"></dict-data-select>
</el-form-item>
<el-form-item label="制造成本是否变更" prop="manufacturingCostIsChange" :rules="rules.manufacturingCostIsChange">
<dict-data-select v-model="modalData.manufacturingCostIsChange" style="width: 205px" dict-type="change_manufacturing_cost_is_change"></dict-data-select>
<el-form-item label=" " prop="industrialEngineerId" :rules="[{required: modalData.dfIsProduct === 'Y',message: ' ',trigger: ['blur','change']}]">
<span style="cursor: pointer" slot="label" @click="getBaseList(103,6)"><a href="#">I/E</a></span>
<el-input v-model="modalData.industrialEngineerId" style="width: 120px"></el-input>
<el-input v-model="modalData.industrialEngineerName" disabled style="width: 300px"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="制造成本是否变更" prop="manufacturingCostIsChange" :rules="rules.manufacturingCostIsChange">-->
<!-- <dict-data-select v-model="modalData.manufacturingCostIsChange" style="width: 205px" dict-type="change_manufacturing_cost_is_change"></dict-data-select>-->
<!-- </el-form-item>-->
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules"> <el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
<el-form-item label="变更要求描述" prop="changeRequestDesc" :rules="rules.changeRequestDesc"> <el-form-item label="变更要求描述" prop="changeRequestDesc" :rules="rules.changeRequestDesc">
<el-input type="textarea" v-model="modalData.changeRequestDesc" :rows="3" resize='none' show-word-limit style="width: 643px;height: 30px"></el-input> <el-input type="textarea" v-model="modalData.changeRequestDesc" :rows="3" resize='none' show-word-limit style="width: 643px;height: 30px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否重新报价" prop="isReQuote" :rules="rules.isReQuote">
<dict-data-select v-model="modalData.isReQuote" style="width: 205px" dict-type="change_is_re_quote"></dict-data-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: 50px">
<el-form-item label="原产品是否UL认证要求" prop="ulCertificationRequirements" :rules="rules.ulCertificationRequirements">
<dict-data-select v-model="modalData.ulCertificationRequirements" style="width: 423px" dict-type="change_ul_certification_requirements"></dict-data-select>
</el-form-item>
<el-form-item label="如果有,变更后能否继续满足此需求" prop="ulContinueToMeetDemand" :rules="rules.ulContinueToMeetDemand">
<dict-data-select v-model="modalData.ulContinueToMeetDemand" style="width: 423px" dict-type="change_ul_continue_to_meet_demand"></dict-data-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
<el-form-item label="原产品是否GP要求" prop="gpCertificationRequirements" :rules="rules.gpCertificationRequirements">
<dict-data-select v-model="modalData.gpCertificationRequirements" style="width: 423px" dict-type="change_gp_certification_requirements"></dict-data-select>
</el-form-item>
<el-form-item label="如果有,变更后能否继续满足此需求" prop="gpContinueToMeetDemand" :rules="rules.gpContinueToMeetDemand">
<dict-data-select v-model="modalData.gpContinueToMeetDemand" style="width: 423px" dict-type="change_gp_continue_to_meet_demand"></dict-data-select>
<!-- <el-form-item label="是否重新报价" prop="isReQuote" :rules="rules.isReQuote">-->
<!-- <dict-data-select v-model="modalData.isReQuote" style="width: 205px" dict-type="change_is_re_quote"></dict-data-select>-->
<!-- </el-form-item>-->
<el-form-item label="印刷方式" prop="printing" :rules="rules.printing">
<dict-data-select v-model="modalData.printing" style="width: 205px" dict-type="change_printing"></dict-data-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top">
<!-- <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: 50px">-->
<!-- <el-form-item label="原产品是否UL认证要求" prop="ulCertificationRequirements" :rules="rules.ulCertificationRequirements">-->
<!-- <dict-data-select v-model="modalData.ulCertificationRequirements" style="width: 423px" dict-type="change_ul_certification_requirements"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="如果有,变更后能否继续满足此需求" prop="ulContinueToMeetDemand" :rules="rules.ulContinueToMeetDemand">-->
<!-- <dict-data-select v-model="modalData.ulContinueToMeetDemand" style="width: 423px" dict-type="change_ul_continue_to_meet_demand"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <el-form :inline="true" label-position="top" :model="modalData" :rules="rules">-->
<!-- <el-form-item label="原产品是否GP要求" prop="gpCertificationRequirements" :rules="rules.gpCertificationRequirements">-->
<!-- <dict-data-select v-model="modalData.gpCertificationRequirements" style="width: 423px" dict-type="change_gp_certification_requirements"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="如果有,变更后能否继续满足此需求" prop="gpContinueToMeetDemand" :rules="rules.gpContinueToMeetDemand">-->
<!-- <dict-data-select v-model="modalData.gpContinueToMeetDemand" style="width: 423px" dict-type="change_gp_continue_to_meet_demand"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<el-form :inline="true" label-position="top" style="margin-top: 50px">
<div class="rq"> <div class="rq">
<el-table <el-table
:data="chooseDataList" :data="chooseDataList"
height="300px"
height="385px"
border border
style="width:100%"> style="width:100%">
<el-table-column <el-table-column
@ -356,22 +367,34 @@
prop="" prop=""
header-align="center" header-align="center"
align="center" align="center"
min-width="100"
label="备注">
min-width="80"
label="可选值">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.itemRemark" style="height: 11px" allow-create>;width:98%"></el-input>
<el-select v-model="scope.row.chooseValue" placeholder="请选择">
<el-option v-for="item in scope.row.availableValueList" :key="index" :label="item.availableValue" :value="item.availableValue"></el-option>
</el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right"
prop=""
header-align="center" header-align="center"
align="center" align="center"
width="60"
label="操作">
min-width="100"
label="备注">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link v-if="scope.row.executeFlag !== 'Y'" style="cursor: pointer" @click="executeModal2(scope.row)">执行</el-link>
<el-input v-model="scope.row.itemRemark" style="width:98%"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column-->
<!-- fixed="right"-->
<!-- header-align="center"-->
<!-- align="center"-->
<!-- width="60"-->
<!-- label="操作">-->
<!-- <template slot-scope="scope">-->
<!-- <el-link v-if="scope.row.executeFlag !== 'Y'" style="cursor: pointer" @click="executeModal2(scope.row)">执行</el-link>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table> </el-table>
</div> </div>
<div style="text-align: center;font-size: 11px;margin-top: 5px"> <div style="text-align: center;font-size: 11px;margin-top: 5px">
@ -431,7 +454,18 @@
prop="" prop=""
header-align="center" header-align="center"
align="center" align="center"
min-width="100"
min-width="130"
label="执行人">
<template slot-scope="scope">
<el-input @input="(val)=>executorInput(scope.row, val)" v-model="scope.row.executor" style="width:77%"></el-input>
<el-button type="primary" @click="chooseExecutor(scope.row)" style="width:18%;padding: 3px 7px">·&nbsp;·&nbsp;·</el-button>
</template>
</el-table-column>
<el-table-column
prop=""
header-align="center"
align="center"
min-width="150"
label="备注"> label="备注">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.itemRemark" style="height: 11px" allow-create>;width:98%"></el-input> <el-input v-model="scope.row.itemRemark" style="height: 11px" allow-create>;width:98%"></el-input>
@ -835,6 +869,7 @@
activeTable: 'basicInformation', activeTable: 'basicInformation',
activeName: 'basicInformation', activeName: 'basicInformation',
tempPartRow: {}, tempPartRow: {},
tempExecutorRow: {},
changeTitle: '', changeTitle: '',
// ======== ======== // ======== ========
modalData: { modalData: {
@ -863,7 +898,10 @@
gpCertificationRequirements: '', gpCertificationRequirements: '',
gpContinueToMeetDemand: '', gpContinueToMeetDemand: '',
detailList: [], detailList: [],
ecnTypeData: []
ecnTypeData: [],
industrialEngineerId: '',
industrialEngineerName: '',
changeStatus: ''
}, },
costImpactData: { costImpactData: {
site: this.$store.state.user.site, site: this.$store.state.user.site,
@ -1352,28 +1390,29 @@
fixed: '', fixed: '',
columnWidth: 150 columnWidth: 150
}, },
// {
// columnProp: 'executeFlag',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 80
// },
// {
// columnProp: 'executor',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 100
// },
{ {
columnProp: 'executeFlag',
headerAlign: 'center',
align: 'center',
columnLabel: '是否执行',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 80
},
{
columnProp: 'executor',
headerAlign: 'center',
align: 'center',
columnLabel: '执行人',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},{
columnProp: 'itemExecutionDate', columnProp: 'itemExecutionDate',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
@ -1382,7 +1421,7 @@
columnImage: false, columnImage: false,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 150
columnWidth: 130
} }
], ],
columnChooseItemList2: [ columnChooseItemList2: [
@ -1408,38 +1447,39 @@
fixed: '', fixed: '',
columnWidth: 150 columnWidth: 150
}, },
{
columnProp: 'executeFlag',
headerAlign: 'center',
align: 'center',
columnLabel: '是否执行',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 80
},
{
columnProp: 'executor',
headerAlign: 'center',
align: 'center',
columnLabel: '执行人',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},{
columnProp: 'itemExecutionDate',
headerAlign: 'center',
align: 'center',
columnLabel: '执行时间',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 150
}
// {
// columnProp: 'executeFlag',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 80
// },
// {
// columnProp: 'executor',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 100
// },
// {
// columnProp: 'itemExecutionDate',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 150
// }
], ],
columnItemList: [ columnItemList: [
{ {
@ -1609,11 +1649,26 @@
row.newPartNo = val.toUpperCase() row.newPartNo = val.toUpperCase()
}, },
executorInput (row, val) {
row.executor = val.toUpperCase()
},
choosePartNo (row) { choosePartNo (row) {
this.tempPartRow = row this.tempPartRow = row
if (this.tempPartRow.newPartNo == null) {
this.tempPartRow.newPartNo = ''
}
this.getBaseList(133) this.getBaseList(133)
}, },
chooseExecutor (row) {
this.tempExecutorRow = row
if (this.tempExecutorRow.executor == null) {
this.tempExecutorRow.executor = ''
}
this.getBaseList(103, 7)
},
ecnTypeHeaderChange (val,index) { ecnTypeHeaderChange (val,index) {
if (val === 'Y') { if (val === 'Y') {
for (let i = 0; i < this.form[index].list.length; i++) { for (let i = 0; i < this.form[index].list.length; i++) {
@ -1956,7 +2011,10 @@
gpContinueToMeetDemand: row.gpContinueToMeetDemand, gpContinueToMeetDemand: row.gpContinueToMeetDemand,
updateBy: this.$store.state.user.name, updateBy: this.$store.state.user.name,
detailList: [], detailList: [],
ecnTypeData: []
ecnTypeData: [],
industrialEngineerId: row.industrialEngineerId,
industrialEngineerName: row.industrialEngineerName,
changeStatus: row.changeStatus
} }
this.changeTitle = '变更申请-' + this.modalData.changeNo this.changeTitle = '变更申请-' + this.modalData.changeNo
// ECN // ECN
@ -2105,8 +2163,6 @@
// //
saveData () { saveData () {
this.modalData.detailList = this.chooseDataList
this.modalData.ecnTypeData = this.form
if (this.modalData.applicantId === '' || this.modalData.applicantId == null) { if (this.modalData.applicantId === '' || this.modalData.applicantId == null) {
this.$message.warning('请选择申请人员!') this.$message.warning('请选择申请人员!')
return return
@ -2131,6 +2187,10 @@
this.$message.warning('请选择变更类别!') this.$message.warning('请选择变更类别!')
return return
} }
if (this.form.length === 0) {
this.$message.warning('请选择ECN种类!')
return
}
if (this.modalData.tpEngineerId === '' || this.modalData.tpEngineerId == null) { if (this.modalData.tpEngineerId === '' || this.modalData.tpEngineerId == null) {
this.$message.warning('请选择审批人员!') this.$message.warning('请选择审批人员!')
return return
@ -2143,38 +2203,20 @@
this.$message.warning('请选择是否DF产品!') this.$message.warning('请选择是否DF产品!')
return return
} }
if (this.modalData.printing === '' || this.modalData.printing == null) {
this.$message.warning('请选择印刷方式!')
return
}
if (this.modalData.manufacturingCostIsChange === '' || this.modalData.manufacturingCostIsChange == null) {
this.$message.warning('请选择制造成本是否变更!')
if ((this.modalData.industrialEngineerId === '' || this.modalData.industrialEngineerId == null) && this.modalData.dfIsProduct === 'Y') {
this.$message.warning('请选择I/E!')
return return
} }
if (this.modalData.changeRequestDesc === '' || this.modalData.changeRequestDesc == null) { if (this.modalData.changeRequestDesc === '' || this.modalData.changeRequestDesc == null) {
this.$message.warning('请填写变更要求描述!') this.$message.warning('请填写变更要求描述!')
return return
} }
if (this.modalData.isReQuote === '' || this.modalData.isReQuote == null) {
this.$message.warning('请选择是否重新报价!')
return
}
if (this.modalData.ulCertificationRequirements === '' || this.modalData.ulCertificationRequirements == null) {
this.$message.warning('请选择原产品是否UL认证要求!')
return
}
if (this.modalData.ulContinueToMeetDemand === '' || this.modalData.ulContinueToMeetDemand == null) {
this.$message.warning('请选择变更后能否继续满足此需求(UL)!')
return
}
if (this.modalData.gpCertificationRequirements === '' || this.modalData.gpCertificationRequirements == null) {
this.$message.warning('请选择原产品是否GP要求!')
return
}
if (this.modalData.gpContinueToMeetDemand === '' || this.modalData.gpContinueToMeetDemand == null) {
this.$message.warning('请选择变更后能否继续满足此需求(GP)!')
if (this.modalData.printing === '' || this.modalData.printing == null) {
this.$message.warning('请选择印刷方式!')
return return
} }
this.modalData.detailList = this.chooseDataList
this.modalData.ecnTypeData = this.form
changeRequestUpdate(this.modalData).then(({data}) => { changeRequestUpdate(this.modalData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.modalData = data.rows.modalData this.modalData = data.rows.modalData
@ -2260,7 +2302,7 @@
executeModal (row) { executeModal (row) {
row.executeFlag = 'Y' row.executeFlag = 'Y'
row.itemExecutionDate = new Date(+ new Date() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '') row.itemExecutionDate = new Date(+ new Date() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
row.executor = this.$store.state.user.name
// row.executor = this.$store.state.user.name
}, },
// //
@ -2402,6 +2444,10 @@
} else { } else {
strVal = this.costImpactData.affectedExecutor strVal = this.costImpactData.affectedExecutor
} }
} else if (type === 6) {
strVal = this.modalData.industrialEngineerId
} else if (type === 7) {
strVal = this.tempExecutorRow.executor
} }
} }
if (val === 133) { if (val === 133) {
@ -2433,6 +2479,11 @@
this.costImpactData.affectedExecutor = val.username this.costImpactData.affectedExecutor = val.username
this.costImpactData.affectedExecutorName = val.user_display this.costImpactData.affectedExecutorName = val.user_display
//this.$set(this.costImpactData,'affectedExecutorName',val.user_display) //this.$set(this.costImpactData,'affectedExecutorName',val.user_display)
} else if (this.tagNo1 === 6) {
this.modalData.industrialEngineerId = val.username
this.modalData.industrialEngineerName = val.user_display
} else if (this.tagNo1 === 7) {
this.$set(this.tempExecutorRow,'executor',val.username)
} }
} }
if (this.tagNo === 133) { if (this.tagNo === 133) {

355
src/views/modules/changeManagement/changeRequest.vue

@ -125,10 +125,13 @@
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules"> <el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
<el-form-item label="ECN阶段" prop="ecnStage" :rules="rules.ecnStage"> <el-form-item label="ECN阶段" prop="ecnStage" :rules="rules.ecnStage">
<dict-data-select v-model="modalData.ecnStage" style="width: 205px" dict-type="change_ecn_stage"></dict-data-select>
<dict-data-select v-model="modalData.ecnStage" style="width: 95px" dict-type="change_ecn_stage"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item label="变更类别" prop="changeType" :rules="rules.changeType"> <el-form-item label="变更类别" prop="changeType" :rules="rules.changeType">
<dict-data-select v-model="modalData.changeType" style="width: 100px" dict-type="change_change_type"></dict-data-select>
<dict-data-select v-model="modalData.changeType" style="width: 95px" dict-type="change_change_type"></dict-data-select>
</el-form-item>
<el-form-item label="ECN种类" prop="ecnType" :rules="rules.ecnType">
<dict-data-select v-model="modalData.ecnType" style="width: 100px" dict-type="change_ecn_type"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item label=" "> <el-form-item label=" ">
<el-button type="primary" @click="chooseEcnTypeModal" style="width: 90px">ECN种类</el-button> <el-button type="primary" @click="chooseEcnTypeModal" style="width: 90px">ECN种类</el-button>
@ -150,46 +153,55 @@
:editable=false> :editable=false>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item label="印刷方式" prop="printing" :rules="rules.printing">-->
<!-- <dict-data-select v-model="modalData.printing" style="width: 205px" dict-type="change_printing"></dict-data-select>-->
<!-- </el-form-item>-->
<el-form-item label="是否DF产品" prop="dfIsProduct" :rules="rules.dfIsProduct"> <el-form-item label="是否DF产品" prop="dfIsProduct" :rules="rules.dfIsProduct">
<dict-data-select v-model="modalData.dfIsProduct" style="width: 205px" dict-type="change_df_is_product"></dict-data-select> <dict-data-select v-model="modalData.dfIsProduct" style="width: 205px" dict-type="change_df_is_product"></dict-data-select>
</el-form-item> </el-form-item>
<el-form-item label="印刷方式" prop="printing" :rules="rules.printing">
<dict-data-select v-model="modalData.printing" style="width: 205px" dict-type="change_printing"></dict-data-select>
</el-form-item>
<el-form-item label="制造成本是否变更" prop="manufacturingCostIsChange" :rules="rules.manufacturingCostIsChange">
<dict-data-select v-model="modalData.manufacturingCostIsChange" style="width: 205px" dict-type="change_manufacturing_cost_is_change"></dict-data-select>
<el-form-item label=" " prop="industrialEngineerId" :rules="[{required: modalData.dfIsProduct === 'Y',message: ' ',trigger: ['blur','change']}]">
<span style="cursor: pointer" slot="label" @click="getBaseList(103,6)"><a href="#">I/E</a></span>
<el-input v-model="modalData.industrialEngineerId" style="width: 120px"></el-input>
<el-input v-model="modalData.industrialEngineerName" disabled style="width: 300px"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="制造成本是否变更" prop="manufacturingCostIsChange" :rules="rules.manufacturingCostIsChange">-->
<!-- <dict-data-select v-model="modalData.manufacturingCostIsChange" style="width: 205px" dict-type="change_manufacturing_cost_is_change"></dict-data-select>-->
<!-- </el-form-item>-->
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules"> <el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
<el-form-item label="变更要求描述" prop="changeRequestDesc" :rules="rules.changeRequestDesc"> <el-form-item label="变更要求描述" prop="changeRequestDesc" :rules="rules.changeRequestDesc">
<el-input type="textarea" v-model="modalData.changeRequestDesc" :rows="3" resize='none' show-word-limit style="width: 643px;height: 30px"></el-input> <el-input type="textarea" v-model="modalData.changeRequestDesc" :rows="3" resize='none' show-word-limit style="width: 643px;height: 30px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否重新报价" prop="isReQuote" :rules="rules.isReQuote">
<dict-data-select v-model="modalData.isReQuote" style="width: 205px" dict-type="change_is_re_quote"></dict-data-select>
<!-- <el-form-item label="是否重新报价" prop="isReQuote" :rules="rules.isReQuote">-->
<!-- <dict-data-select v-model="modalData.isReQuote" style="width: 205px" dict-type="change_is_re_quote"></dict-data-select>-->
<!-- <el-button type="primary" icon="el-icon-upload" @click="uploadFileModal" style="margin-top: 12px;width: 105px">文件上传</el-button>-->
<!-- </el-form-item>-->
<el-form-item label="印刷方式" prop="printing" :rules="rules.printing">
<dict-data-select v-model="modalData.printing" style="width: 205px" dict-type="change_printing"></dict-data-select>
<el-button type="primary" icon="el-icon-upload" @click="uploadFileModal" style="margin-top: 12px;width: 105px">文件上传</el-button> <el-button type="primary" icon="el-icon-upload" @click="uploadFileModal" style="margin-top: 12px;width: 105px">文件上传</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: 50px">
<el-form-item label="原产品是否UL认证要求" prop="ulCertificationRequirements" :rules="rules.ulCertificationRequirements">
<dict-data-select v-model="modalData.ulCertificationRequirements" style="width: 423px" dict-type="change_ul_certification_requirements"></dict-data-select>
</el-form-item>
<el-form-item label="如果有,变更后能否继续满足此需求" prop="ulContinueToMeetDemand" :rules="rules.ulContinueToMeetDemand">
<dict-data-select v-model="modalData.ulContinueToMeetDemand" style="width: 423px" dict-type="change_ul_continue_to_meet_demand"></dict-data-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules">
<el-form-item label="原产品是否GP要求" prop="gpCertificationRequirements" :rules="rules.gpCertificationRequirements">
<dict-data-select v-model="modalData.gpCertificationRequirements" style="width: 423px" dict-type="change_gp_certification_requirements"></dict-data-select>
</el-form-item>
<el-form-item label="如果有,变更后能否继续满足此需求" prop="gpContinueToMeetDemand" :rules="rules.gpContinueToMeetDemand">
<dict-data-select v-model="modalData.gpContinueToMeetDemand" style="width: 423px" dict-type="change_gp_continue_to_meet_demand"></dict-data-select>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top">
<!-- <el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-top: 50px">-->
<!-- <el-form-item label="原产品是否UL认证要求" prop="ulCertificationRequirements" :rules="rules.ulCertificationRequirements">-->
<!-- <dict-data-select v-model="modalData.ulCertificationRequirements" style="width: 423px" dict-type="change_ul_certification_requirements"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="如果有,变更后能否继续满足此需求" prop="ulContinueToMeetDemand" :rules="rules.ulContinueToMeetDemand">-->
<!-- <dict-data-select v-model="modalData.ulContinueToMeetDemand" style="width: 423px" dict-type="change_ul_continue_to_meet_demand"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <el-form :inline="true" label-position="top" :model="modalData" :rules="rules">-->
<!-- <el-form-item label="原产品是否GP要求" prop="gpCertificationRequirements" :rules="rules.gpCertificationRequirements">-->
<!-- <dict-data-select v-model="modalData.gpCertificationRequirements" style="width: 423px" dict-type="change_gp_certification_requirements"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="如果有,变更后能否继续满足此需求" prop="gpContinueToMeetDemand" :rules="rules.gpContinueToMeetDemand">-->
<!-- <dict-data-select v-model="modalData.gpContinueToMeetDemand" style="width: 423px" dict-type="change_gp_continue_to_meet_demand"></dict-data-select>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<el-form :inline="true" label-position="top" style="margin-top: 50px">
<div class="rq"> <div class="rq">
<el-table <el-table
:data="chooseDataList" :data="chooseDataList"
height="300px"
height="385px"
border border
style="width:100%"> style="width:100%">
<el-table-column <el-table-column
@ -374,22 +386,34 @@
prop="" prop=""
header-align="center" header-align="center"
align="center" align="center"
min-width="100"
label="备注">
min-width="80"
label="可选值">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.itemRemark" style="height: 11px" allow-create>;width:98%"></el-input>
<el-select v-model="scope.row.chooseValue" placeholder="请选择">
<el-option v-for="item in scope.row.availableValueList" :key="index" :label="item.availableValue" :value="item.availableValue"></el-option>
</el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
fixed="right"
prop=""
header-align="center" header-align="center"
align="center" align="center"
width="60"
label="操作">
min-width="100"
label="备注">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link style="cursor: pointer" v-if="scope.row.executeFlag !== 'Y'" @click="executeModal2(scope.row)">执行</el-link>
<el-input v-model="scope.row.itemRemark" style="width:98%"></el-input>
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column-->
<!-- fixed="right"-->
<!-- header-align="center"-->
<!-- align="center"-->
<!-- width="60"-->
<!-- label="操作">-->
<!-- <template slot-scope="scope">-->
<!-- <el-link style="cursor: pointer" v-if="scope.row.executeFlag !== 'Y'" @click="executeModal2(scope.row)">执行</el-link>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table> </el-table>
</div> </div>
<div style="text-align: center;font-size: 11px;margin-top: 5px"> <div style="text-align: center;font-size: 11px;margin-top: 5px">
@ -449,7 +473,18 @@
prop="" prop=""
header-align="center" header-align="center"
align="center" align="center"
min-width="100"
min-width="130"
label="执行人">
<template slot-scope="scope">
<el-input @input="(val)=>executorInput(scope.row, val)" v-model="scope.row.executor" style="width:77%"></el-input>
<el-button type="primary" @click="chooseExecutor(scope.row)" style="width:18%;padding: 3px 7px">·&nbsp;·&nbsp;·</el-button>
</template>
</el-table-column>
<el-table-column
prop=""
header-align="center"
align="center"
min-width="150"
label="备注"> label="备注">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.itemRemark" style="height: 11px" allow-create>;width:98%"></el-input> <el-input v-model="scope.row.itemRemark" style="height: 11px" allow-create>;width:98%"></el-input>
@ -788,6 +823,7 @@
totalPage: 0, totalPage: 0,
activeName: 'basicInformation', activeName: 'basicInformation',
tempPartRow: {}, tempPartRow: {},
tempExecutorRow: {},
changeTitle: '', changeTitle: '',
// //
searchData: { searchData: {
@ -829,7 +865,11 @@
gpContinueToMeetDemand: '', gpContinueToMeetDemand: '',
createBy: '', createBy: '',
detailList: [], detailList: [],
ecnTypeData: []
ecnTypeData: [],
industrialEngineerId: '',
industrialEngineerName: '',
changeStatus: '',
ecnType: ''
}, },
costImpactData: { costImpactData: {
site: this.$store.state.user.site, site: this.$store.state.user.site,
@ -1195,38 +1235,39 @@
fixed: '', fixed: '',
columnWidth: 150 columnWidth: 150
}, },
// {
// userId: this.$store.state.user.name,
// functionId: 108001,
// serialNumber: '108001Table3ExecuteFlag',
// tableId: '108001Table3',
// tableName: '',
// columnProp: 'executeFlag',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 80
// },
// {
// userId: this.$store.state.user.name,
// functionId: 108001,
// serialNumber: '108001Table3Executor',
// tableId: '108001Table3',
// tableName: '',
// columnProp: 'executor',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 100
// },
{ {
userId: this.$store.state.user.name,
functionId: 108001,
serialNumber: '108001Table3ExecuteFlag',
tableId: '108001Table3',
tableName: '执行属性表',
columnProp: 'executeFlag',
headerAlign: 'center',
align: 'center',
columnLabel: '是否执行',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 108001,
serialNumber: '108001Table3Executor',
tableId: '108001Table3',
tableName: '执行属性表',
columnProp: 'executor',
headerAlign: 'center',
align: 'center',
columnLabel: '执行人',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},{
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 108001, functionId: 108001,
serialNumber: '108001Table3ExecuteDate', serialNumber: '108001Table3ExecuteDate',
@ -1240,9 +1281,8 @@
columnImage: false, columnImage: false,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 150
},
columnWidth: 130
}
], ],
columnChooseItemList2: [ columnChooseItemList2: [
{ {
@ -1277,53 +1317,53 @@
fixed: '', fixed: '',
columnWidth: 150 columnWidth: 150
}, },
{
userId: this.$store.state.user.name,
functionId: 108001,
serialNumber: '108001Table7ExecuteFlag',
tableId: '108001Table7',
tableName: '可行性评估属性表',
columnProp: 'executeFlag',
headerAlign: 'center',
align: 'center',
columnLabel: '是否执行',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 108001,
serialNumber: '108001Table7Executor',
tableId: '108001Table7',
tableName: '可行性评估属性表',
columnProp: 'executor',
headerAlign: 'center',
align: 'center',
columnLabel: '执行人',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 100
},{
userId: this.$store.state.user.name,
functionId: 108001,
serialNumber: '108001Table7ExecuteDate',
tableId: '108001Table7',
tableName: '可行性评估属性表',
columnProp: 'itemExecutionDate',
headerAlign: 'center',
align: 'center',
columnLabel: '执行时间',
columnHidden: false,
columnImage: false,
status: true,
fixed: '',
columnWidth: 150
},
// {
// userId: this.$store.state.user.name,
// functionId: 108001,
// serialNumber: '108001Table7ExecuteFlag',
// tableId: '108001Table7',
// tableName: '',
// columnProp: 'executeFlag',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 80
// },
// {
// userId: this.$store.state.user.name,
// functionId: 108001,
// serialNumber: '108001Table7Executor',
// tableId: '108001Table7',
// tableName: '',
// columnProp: 'executor',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 100
// },{
// userId: this.$store.state.user.name,
// functionId: 108001,
// serialNumber: '108001Table7ExecuteDate',
// tableId: '108001Table7',
// tableName: '',
// columnProp: 'itemExecutionDate',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// status: true,
// fixed: '',
// columnWidth: 150
// },
], ],
columnChooseCSItemList: [ columnChooseCSItemList: [
@ -1611,6 +1651,13 @@
trigger: ['blur','change'] trigger: ['blur','change']
} }
], ],
ecnType: [
{
required: true,
message: ' ',
trigger: ['blur','change']
}
],
}, },
// ======== ======== // ======== ========
dataSelections: [], dataSelections: [],
@ -1681,11 +1728,26 @@
row.newPartNo = val.toUpperCase() row.newPartNo = val.toUpperCase()
}, },
executorInput (row, val) {
row.executor = val.toUpperCase()
},
choosePartNo (row) { choosePartNo (row) {
this.tempPartRow = row this.tempPartRow = row
if (this.tempPartRow.newPartNo == null) {
this.tempPartRow.newPartNo = ''
}
this.getBaseList(133) this.getBaseList(133)
}, },
chooseExecutor (row) {
this.tempExecutorRow = row
if (this.tempExecutorRow.executor == null) {
this.tempExecutorRow.executor = ''
}
this.getBaseList(103, 7)
},
ecnTypeHeaderChange (val,index) { ecnTypeHeaderChange (val,index) {
if (val === 'Y') { if (val === 'Y') {
for (let i = 0; i < this.form[index].list.length; i++) { for (let i = 0; i < this.form[index].list.length; i++) {
@ -1792,7 +1854,11 @@
gpContinueToMeetDemand: '', gpContinueToMeetDemand: '',
createBy: this.$store.state.user.name, createBy: this.$store.state.user.name,
detailList: [], detailList: [],
ecnTypeData: []
ecnTypeData: [],
industrialEngineerId: '',
industrialEngineerName: '',
changeStatus: '草稿',
ecnType: ''
} }
this.changeTitle = '变更申请-' + this.modalData.changeNo this.changeTitle = '变更申请-' + this.modalData.changeNo
this.costImpactData = { this.costImpactData = {
@ -1845,6 +1911,8 @@
createBy: this.$store.state.user.name, createBy: this.$store.state.user.name,
chooseCSItemList: [] chooseCSItemList: []
} }
this.chooseItemList = []
this.chooseItemList2 = []
this.getDepartmentByUserName() this.getDepartmentByUserName()
this.getEcnTypeData() // ECN this.getEcnTypeData() // ECN
this.chooseDataList = this.dataSelections this.chooseDataList = this.dataSelections
@ -1880,8 +1948,6 @@
// //
saveData () { saveData () {
this.modalData.detailList = this.chooseDataList
this.modalData.ecnTypeData = this.form
if (this.modalData.applicantId === '' || this.modalData.applicantId == null) { if (this.modalData.applicantId === '' || this.modalData.applicantId == null) {
this.$message.warning('请选择申请人员!') this.$message.warning('请选择申请人员!')
return return
@ -1906,6 +1972,14 @@
this.$message.warning('请选择变更类别!') this.$message.warning('请选择变更类别!')
return return
} }
if (this.modalData.ecnType === '' || this.modalData.ecnType == null) {
this.$message.warning('请选择ECN种类!')
return
}
if (this.form.length === 0) {
this.$message.warning('请选择ECN种类!')
return
}
if (this.modalData.tpEngineerId === '' || this.modalData.tpEngineerId == null) { if (this.modalData.tpEngineerId === '' || this.modalData.tpEngineerId == null) {
this.$message.warning('请选择审批人员!') this.$message.warning('请选择审批人员!')
return return
@ -1918,38 +1992,20 @@
this.$message.warning('请选择是否DF产品!') this.$message.warning('请选择是否DF产品!')
return return
} }
if (this.modalData.printing === '' || this.modalData.printing == null) {
this.$message.warning('请选择印刷方式!')
return
}
if (this.modalData.manufacturingCostIsChange === '' || this.modalData.manufacturingCostIsChange == null) {
this.$message.warning('请选择制造成本是否变更!')
if ((this.modalData.industrialEngineerId === '' || this.modalData.industrialEngineerId == null) && this.modalData.dfIsProduct === 'Y') {
this.$message.warning('请选择I/E!')
return return
} }
if (this.modalData.changeRequestDesc === '' || this.modalData.changeRequestDesc == null) { if (this.modalData.changeRequestDesc === '' || this.modalData.changeRequestDesc == null) {
this.$message.warning('请填写变更要求描述!') this.$message.warning('请填写变更要求描述!')
return return
} }
if (this.modalData.isReQuote === '' || this.modalData.isReQuote == null) {
this.$message.warning('请选择是否重新报价!')
return
}
if (this.modalData.ulCertificationRequirements === '' || this.modalData.ulCertificationRequirements == null) {
this.$message.warning('请选择原产品是否UL认证要求!')
return
}
if (this.modalData.ulContinueToMeetDemand === '' || this.modalData.ulContinueToMeetDemand == null) {
this.$message.warning('请选择变更后能否继续满足此需求(UL)!')
return
}
if (this.modalData.gpCertificationRequirements === '' || this.modalData.gpCertificationRequirements == null) {
this.$message.warning('请选择原产品是否GP要求!')
return
}
if (this.modalData.gpContinueToMeetDemand === '' || this.modalData.gpContinueToMeetDemand == null) {
this.$message.warning('请选择变更后能否继续满足此需求(GP)!')
if (this.modalData.printing === '' || this.modalData.printing == null) {
this.$message.warning('请选择印刷方式!')
return return
} }
this.modalData.detailList = this.chooseDataList
this.modalData.ecnTypeData = this.form
changeRequestSave(this.modalData).then(({data}) => { changeRequestSave(this.modalData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
for (let i = 0; i <this.fileList.length; i++) { for (let i = 0; i <this.fileList.length; i++) {
@ -2340,7 +2396,7 @@
executeModal (row) { executeModal (row) {
row.executeFlag = 'Y' row.executeFlag = 'Y'
row.itemExecutionDate = new Date(+ new Date() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '') row.itemExecutionDate = new Date(+ new Date() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
row.executor = this.$store.state.user.name
// row.executor = this.$store.state.user.name
}, },
// //
@ -2500,6 +2556,10 @@
} else { } else {
strVal = this.costImpactData.affectedExecutor strVal = this.costImpactData.affectedExecutor
} }
} else if (type === 6) {
strVal = this.modalData.industrialEngineerId
} else if (type === 7) {
strVal = this.tempExecutorRow.executor
} }
} }
if (val === 133) { if (val === 133) {
@ -2531,6 +2591,11 @@
this.costImpactData.affectedExecutor = val.username this.costImpactData.affectedExecutor = val.username
this.costImpactData.affectedExecutorName = val.user_display this.costImpactData.affectedExecutorName = val.user_display
//this.$set(this.costImpactData,'affectedExecutorName',val.user_display) //this.$set(this.costImpactData,'affectedExecutorName',val.user_display)
} else if (this.tagNo1 === 6) {
this.modalData.industrialEngineerId = val.username
this.modalData.industrialEngineerName = val.user_display
} else if (this.tagNo1 === 7) {
this.$set(this.tempExecutorRow,'executor',val.username)
} }
} }
if (this.tagNo === 133) { if (this.tagNo === 133) {

Loading…
Cancel
Save