Browse Source

2023-12-27 plm询价

master
zelian_wu 2 years ago
parent
commit
a0b9a1e073
  1. 542
      src/views/modules/proofing/requestForProofing.vue
  2. 8
      src/views/modules/quotation/requestForQuote.vue
  3. 6
      src/views/modules/quotation/sellForQuotation.vue
  4. 468
      src/views/modules/test/requestForTest.vue

542
src/views/modules/proofing/requestForProofing.vue

@ -144,68 +144,156 @@
</el-pagination> </el-pagination>
<!-- 打样模态框 --> <!-- 打样模态框 -->
<el-dialog :title="modalData.title" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="495px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="customerDesc" :rules="rules.customerDesc">
<span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">客户</a></span>
<el-input v-model="modalData.customerDesc" style="width: 221px"></el-input>
</el-form-item>
<el-form-item prop="trackerName" :rules="rules.trackerName">
<span slot="label" style="" @click="getBaseList(103,1)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="projectName" :rules="rules.projectName">
<span slot="label" style="" @click="getBaseList(104,1)"><a herf="#">项目</a></span>
<el-input v-model="modalData.projectName" style="width: 221px"></el-input>
<el-dialog :title="modalData.title" @close="closeModalDiaLog" @open="getProjectPartList()" :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">
<el-row :gutter="10">
<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" :readonly="true"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="engineerName" :rules="rules.engineerName">
<span slot="label" style="" @click="getBaseList(103,2)"><a herf="#">工程师</a></span>
<el-input v-model="modalData.engineerName" style="width: 221px"></el-input>
</el-col>
<el-col :span="14">
<el-form-item label=" ">
<el-input disabled v-model="modalData.customerDesc"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="partName" :rules="rules.partName">
<span slot="label" @click="getProjectPartList()"><a>项目物料</a></span>
<el-input v-model="modalData.partName" style="width: 221px"></el-input>
</el-col>
</el-row>
</el-col>
<el-col :span="4">
<el-form-item label="打样数量" prop="proofingNumber">
<div class="right">
<el-input type="number" class="inlineNumber" v-model="modalData.proofingNumber" @input="modalData.proofingNumber = modalData.proofingNumber.replace(/^(0+)|[^\d]+/g, '')"></el-input>
</div>
</el-form-item> </el-form-item>
<el-form-item label="优先等级" prop="priorityLevel" :rules="rules.priorityLevel">
<el-select v-model="modalData.priorityLevel" style="width: 221px">
</el-col>
<el-col :span="4">
<el-form-item label="优先等级" prop="priorityLevel">
<el-select v-model="modalData.priorityLevel" style="width: 100%">
<el-option label="一般" value="一般"></el-option> <el-option label="一般" value="一般"></el-option>
<el-option label="紧急" value="紧急"></el-option> <el-option label="紧急" value="紧急"></el-option>
<el-option label="重要" value="重要"></el-option> <el-option label="重要" value="重要"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="要求交付日期" prop="requiredDeliveryDate" :rules="rules.requiredDeliveryDate">
<el-date-picker v-model="modalData.requiredDeliveryDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 142px"></el-date-picker>
</el-col>
<el-col :span="4">
<el-form-item label="要求交付日期" prop="requiredDeliveryDate">
<el-date-picker v-model="modalData.requiredDeliveryDate" style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="trackerName">
<span slot="label" @click="getBaseList(103,1)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName"></el-input>
</el-form-item> </el-form-item>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8">
<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="getBaseList(104,1)"><a herf="#">项目编码</a></span>
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" :readonly="true" v-model="modalData.projectId"></el-input>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label=" ">
<el-input disabled v-model="modalData.projectName"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="4">
<el-form-item label="收货人"> <el-form-item label="收货人">
<el-input v-model="modalData.consignee" style="width: 142px"></el-input>
<el-input v-model="modalData.consignee"></el-input>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="收货人联系方式"> <el-form-item label="收货人联系方式">
<el-input v-model="modalData.consigneeContact" style="width: 142px"></el-input>
<el-input v-model="modalData.consigneeContact"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="是否需要送样">
<input type="checkbox" value="Y" name="sendSamples" v-model="modalData.isNeedToSendSamples"/>
</el-col>
<el-col :span="4">
<el-form-item label=" ">
<el-checkbox v-model="modalData.isNeedToSendSamples" true-label="Y">是否需要送样</el-checkbox>
</el-form-item> </el-form-item>
<el-form-item label="送样地址">
<el-input v-model="modalData.sendSamplesAddress" style="width: 369px"></el-input>
</el-col>
<el-col :span="4">
<el-form-item prop="engineerName">
<span slot="label" @click="getBaseList(103,2)"><a herf="#">工程师</a></span>
<el-input v-model="modalData.engineerName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注">
<el-input v-model="modalData.remark" style="width: 456px"></el-input>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="12">
<el-form-item label="送样地址" style="height: 90px">
<el-input type="textarea" v-model="modalData.sendSamplesAddress" :rows="3" resize='none'></el-input>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" style="height: 90px">
<el-input type="textarea" v-model="modalData.remark" :rows="3" resize='none'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="技术注意事项" style="height: 90px">
<el-input type="textarea" v-model="modalData.technicalConsiderations" :rows="3" resize='none' show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="技术注意事项">
<el-input type="textarea" v-model="modalData.technicalConsiderations" :rows="3" resize='none' show-word-limit style="width: 456px;height: 20px"></el-input>
<div class="rq">
<el-form :inline="true" label-position="top" :model="projectPartData">
<el-form-item label="产品编码">
<el-input v-model="projectPartData.testPartNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="产品名称">
<el-input v-model="projectPartData.partName" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label=" " v-if="this.modalData.projectId">
<el-button type="primary" @click="getProjectPartList()">查询</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:30px;margin-top: 50px;text-align:center">
<el-table
:height="300"
:data="projectPartList"
ref="projectPartTable"
@row-click="projectPartClickRow"
@selection-change="selectionProjectPart"
:row-key="getRowKeys"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="checkSelectable"
:reserve-selection="true"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in projectPartDetailList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</div>
<el-footer style="height:30px;text-align:center;margin-top: 8px">
<el-button type="primary" @click="saveData()">保存</el-button> <el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer> </el-footer>
@ -321,60 +409,6 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!-- 项目物料清单模态框 -->
<el-dialog title="项目物料清单" :close-on-click-modal="false" v-drag :visible.sync="projectPartModelFlag" width="800px">
<div class="rq">
<el-form :inline="true" label-position="top" :model="projectPartData">
<el-form-item :label="'产品编码'">
<el-input v-model="projectPartData.testPartNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'产品名称'">
<el-input v-model="projectPartData.partName" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="getProjectPartList()">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="300"
:data="projectPartList"
ref="projectPartTable"
@row-click="projectPartClickRow"
@selection-change="selectionProjectPart"
:row-key="getRowKeys"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
:reserve-selection="true"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in projectPartDetailList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</div>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="confirmProjectPart()">确认</el-button>
<el-button type="primary" @click="projectPartModelFlag = false">关闭</el-button>
</el-footer>
</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">
<!-- 打样详细信息页签 --> <!-- 打样详细信息页签 -->
@ -874,8 +908,8 @@
activeTable: 'proofing_detail_information', activeTable: 'proofing_detail_information',
// ======== ======== // ======== ========
modalData: { modalData: {
flag: '',
title: '',
flag: '1',
title: '打样新增',
site: this.$store.state.user.site, site: this.$store.state.user.site,
proofingNo: '', proofingNo: '',
customerNo: '', customerNo: '',
@ -888,8 +922,8 @@
partName: '', partName: '',
engineer: '', engineer: '',
engineerName: '', engineerName: '',
priorityLevel: '',
proofingNumber: '',
priorityLevel: '一般',
proofingNumber: 1,
requiredDeliveryDate: '', requiredDeliveryDate: '',
remark: '', remark: '',
technicalConsiderations: '', technicalConsiderations: '',
@ -1081,7 +1115,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 100
columnWidth: 110
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -1153,7 +1187,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 100
columnWidth: 150
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -1413,9 +1447,9 @@
projectPartDetailList: [ projectPartDetailList: [
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3CustomerNo',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3CustomerNo',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'customerNo', columnProp: 'customerNo',
headerAlign: 'center', headerAlign: 'center',
@ -1431,9 +1465,9 @@
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3CustomerDesc',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3CustomerDesc',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'customerDesc', columnProp: 'customerDesc',
headerAlign: 'center', headerAlign: 'center',
@ -1449,9 +1483,9 @@
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3ProjectName',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3ProjectName',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'projectId', columnProp: 'projectId',
headerAlign: 'center', headerAlign: 'center',
@ -1467,50 +1501,49 @@
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3ProjectId',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3TestPartNo',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'projectName',
columnProp: 'testPartNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '项目名称',
columnLabel: '产品编码',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 120
columnWidth: 150
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3TestPartNo',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3PartDesc',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'testPartNo',
columnProp: 'partDesc',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '产品编码',
columnLabel: '产品名称',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 150
},
{
columnWidth: 120
},{
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3PartName',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3PartType',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'partName',
columnProp: 'partType',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '产品名称',
columnLabel: '产品类型',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -1522,53 +1555,60 @@
], ],
// ======== ======== // ======== ========
rules: { rules: {
customerDesc: [
customerNo: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
trackerName: [ trackerName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
projectName: [
proofingNumber: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
}
],
projectId: [
{
required: true,
message: ' ',
trigger: ['change','blur']
} }
], ],
engineerName: [ engineerName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
partName: [ partName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
priorityLevel: [ priorityLevel: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
requiredDeliveryDate: [ requiredDeliveryDate: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
] ]
}, },
@ -1678,6 +1718,7 @@
*/ */
projectPartClickRow (row) { projectPartClickRow (row) {
this.$refs.projectPartTable.toggleRowSelection(row); this.$refs.projectPartTable.toggleRowSelection(row);
this.confirmProjectPart();
}, },
/** /**
* 多选 * 多选
@ -1829,46 +1870,6 @@
* 报价信息新增模态框 * 报价信息新增模态框
*/ */
addModal () { addModal () {
this.modalData = {
flag: '1',
title: '打样新增',
site: this.$store.state.user.site,
proofingNo: '',
customerNo: '',
customerDesc: '',
projectId: '',
projectName: '',
tracker: '',
trackerName: '',
testPartNo: '',
partName: '',
engineer: '',
engineerName: '',
priorityLevel: '',
proofingNumber: '',
requiredDeliveryDate: '',
remark: '',
technicalConsiderations: '',
isNeedToSendSamples: '',
sendSamplesAddress: '',
consignee: '',
consigneeContact: '',
actualityDeliveryDate: '',
proofingResultInformation: '',
actualitySendSamplesDate: '',
sendSamplesMethod: '',
deliverGoodsInformation: '',
deliverGoodsRemark: '',
actualityReplyDate: '',
confirmResults: '',
confirmBy: '',
confirmInformation: '',
proofingStatus: '草稿',
proofingResultStatus: 'C',
nextToDo: '',
createBy: this.$store.state.user.name
}
this.modalDisableFlag = false this.modalDisableFlag = false
this.modalFlag = true this.modalFlag = true
}, },
@ -1925,10 +1926,15 @@
* 获取项目物料列表 * 获取项目物料列表
*/ */
getProjectPartList () { getProjectPartList () {
if (!this.modalData.projectId){
this.projectPartList = [];
return
}
// //
this.$nextTick(() => this.$refs.projectPartTable.clearSelection()) this.$nextTick(() => this.$refs.projectPartTable.clearSelection())
// //
let projectPartList = this.modalData.testPartNo.split(';') let projectPartList = this.modalData.testPartNo.split(';')
this.projectPartData.projectId = this.modalData.projectId;
// //
getProjectPartList(this.projectPartData).then(({data}) => { getProjectPartList(this.projectPartData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
@ -1939,7 +1945,7 @@
this.$nextTick(() => this.$refs.projectPartTable.toggleRowSelection(val, true)) this.$nextTick(() => this.$refs.projectPartTable.toggleRowSelection(val, true))
} }
}) })
this.projectPartModelFlag = true
// this.projectPartModelFlag = true
}else { }else {
this.$alert(data.msg, '错误', { this.$alert(data.msg, '错误', {
confirmButtonText: '确定' confirmButtonText: '确定'
@ -1951,10 +1957,6 @@
* 确认多选项目物料 * 确认多选项目物料
*/ */
confirmProjectPart () { confirmProjectPart () {
if(this.projectPartListSelections.length === 0){
this.$message.warning('请勾选项目物料!')
return
}
this.modalData.testPartNo = '' this.modalData.testPartNo = ''
this.modalData.partName = '' this.modalData.partName = ''
for (let i = 0; i < this.projectPartListSelections.length; i++) { for (let i = 0; i < this.projectPartListSelections.length; i++) {
@ -1969,6 +1971,63 @@
* 客户信息新增/编辑 * 客户信息新增/编辑
*/ */
saveData () { saveData () {
this.$refs.modalForm.validate((valid) => {
if (!valid) {
this.validateDataValue()
}else {
if (this.projectPartListSelections.length <= 0){
this.$message.warning('请选择项目料号')
return
}
this.confirmProjectPart();
if (this.modalData.flag === '1'){
this.saveProofing()
}else {
this.updateProofing()
}
}
})
},
updateProofing(){
proofingInformationEdit(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.modalFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
saveProofing(){
proofingInformationSave(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.modalFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
},
/**
* 验证必填项
*/
validateDataValue(){
if (this.modalData.customerNo === '' || this.modalData.customerNo == null) { if (this.modalData.customerNo === '' || this.modalData.customerNo == null) {
this.$message.warning('请选择客户编码!') this.$message.warning('请选择客户编码!')
return return
@ -2009,58 +2068,18 @@
this.$message.warning('请选择物料名称!') this.$message.warning('请选择物料名称!')
return return
} }
if (!this.modalData.proofingNumber && this.modalData.proofingNumber > 0) {
this.$message.warning('请输入正确的打样数量!')
return
}
if (this.modalData.priorityLevel === '' || this.modalData.priorityLevel == null) { if (this.modalData.priorityLevel === '' || this.modalData.priorityLevel == null) {
this.$message.warning('请选择优先等级!') this.$message.warning('请选择优先等级!')
return return
} }
if (this.modalData.requiredDeliveryDate === '' || this.modalData.requiredDeliveryDate == null) {
if (!this.modalData.requiredDeliveryDate) {
this.$message.warning('请输入要求交付日期!') this.$message.warning('请输入要求交付日期!')
return return
} }
let obj = document.getElementsByName('sendSamples')
let s = ''
for (let i = 0; i < obj.length; i++) {
if (obj[i].checked) {
s += obj[i].value + ','
}
}
s = s.substring(0,s.length-1)
this.modalData.isNeedToSendSamples = s
if (this.modalData.flag === '1') {
proofingInformationSave(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.modalFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
} else {
proofingInformationEdit(this.modalData).then(({data}) => {
if (data && data.code === 0) {
this.getDataList()
this.modalFlag = false
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}
}, },
/** /**
* 打样信息删除 * 打样信息删除
@ -2620,6 +2639,7 @@
if(this.tagNo1 === 1) { if(this.tagNo1 === 1) {
this.modalData.projectId = val.project_id this.modalData.projectId = val.project_id
this.modalData.projectName = val.project_name this.modalData.projectName = val.project_name
this.getProjectPartList();
} }
} }
}, },
@ -2652,7 +2672,56 @@
json += '}' json += '}'
let s = eval('(' + json + ')') let s = eval('(' + json + ')')
return s return s
},
closeModalDiaLog () {
this.$refs.modalForm.resetFields();
this.modalData = {
flag: '1',
title: '打样新增',
site: this.$store.state.user.site,
proofingNo: '',
customerNo: '',
customerDesc: '',
projectId: '',
projectName: '',
tracker: '',
trackerName: '',
testPartNo: '',
partName: '',
engineer: '',
engineerName: '',
priorityLevel: '一般',
proofingNumber: 1,
requiredDeliveryDate: '',
remark: '',
technicalConsiderations: '',
isNeedToSendSamples: '',
sendSamplesAddress: '',
consignee: '',
consigneeContact: '',
actualityDeliveryDate: '',
proofingResultInformation: '',
actualitySendSamplesDate: '',
sendSamplesMethod: '',
deliverGoodsInformation: '',
deliverGoodsRemark: '',
actualityReplyDate: '',
confirmResults: '',
confirmBy: '',
confirmInformation: '',
proofingStatus: '草稿',
proofingResultStatus: 'C',
nextToDo: '',
createBy: this.$store.state.user.name
} }
},
checkSelectable(row,index){
if (this.modalData.flag === '1'){
return true
}else {
return false
}
},
} }
} }
</script> </script>
@ -2662,5 +2731,18 @@
padding: 0px !important; padding: 0px !important;
height: 459px; 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;
}
</style> </style>

8
src/views/modules/quotation/requestForQuote.vue

@ -155,10 +155,10 @@
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="customerNo" label="客户编码"> <el-form-item prop="customerNo" label="客户编码">
<span slot="label" @click="getBaseList(102,1)"><a herf="#">客户编码</a></span>
<span slot="label" v-if="modalData.flag === '1'" @click="getBaseList(102,1)"><a herf="#">客户编码</a></span>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="8"> <el-col :span="8">
<el-input :readonly="true" v-model="modalData.customerNo"></el-input>
<el-input :disabled="modalData.flag !== '1'" :readonly="true" v-model="modalData.customerNo"></el-input>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<el-input disabled v-model="modalData.customerDesc"></el-input> <el-input disabled v-model="modalData.customerDesc"></el-input>
@ -186,10 +186,10 @@
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-form-item prop="projectId" label="项目编码"> <el-form-item prop="projectId" label="项目编码">
<span slot="label" v-if="modalData.customerNo" style="" @click="chooseProjectListFlag = true"><a herf="#">项目编码</a></span>
<span slot="label" v-if="modalData.customerNo && modalData.flag === '1'" style="" @click="chooseProjectListFlag = true"><a herf="#">项目编码</a></span>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="8"> <el-col :span="8">
<el-input :disabled="!modalData.customerNo" :readonly="true" v-model="modalData.projectId"></el-input>
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" :readonly="true" v-model="modalData.projectId"></el-input>
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<el-input disabled v-model="modalData.projectName"></el-input> <el-input disabled v-model="modalData.projectName"></el-input>

6
src/views/modules/quotation/sellForQuotation.vue

@ -136,12 +136,6 @@
show-overflow-tooltip show-overflow-tooltip
label="客户名称"> label="客户名称">
</el-table-column> </el-table-column>
<el-table-column
align="center"
prop="versionCode"
show-overflow-tooltip
label="版本号">
</el-table-column>
<el-table-column <el-table-column
align="center" align="center"
prop="projectId" prop="projectId"

468
src/views/modules/test/requestForTest.vue

@ -144,68 +144,156 @@
</el-pagination> </el-pagination>
<!-- 测试模态框 --> <!-- 测试模态框 -->
<el-dialog :title="modalData.title" :close-on-click-modal="false" v-drag :visible.sync="modalFlag" width="495px">
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="customerDesc" :rules="rules.customerDesc">
<span slot="label" style="" @click="getBaseList(102,1)"><a herf="#">客户</a></span>
<el-input v-model="modalData.customerDesc" readonly @focus="getBaseList(102,1)" style="width: 221px"></el-input>
</el-form-item>
<el-form-item prop="trackerName" :rules="rules.trackerName">
<span slot="label" style="" @click="getBaseList(103,1)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName" readonly @focus="getBaseList(103,1)" style="width: 221px"></el-input>
</el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="projectName" :rules="rules.projectName">
<span slot="label" style="" @click="getBaseList(104,1)"><a herf="#">项目</a></span>
<el-input v-model="modalData.projectName" readonly @focus="getBaseList(104,1)" style="width: 221px"></el-input>
<el-dialog :title="modalData.title" @close="closeModalDiaLog" @open="getProjectPartList()" :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">
<el-row :gutter="10">
<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" :readonly="true"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="engineerName" :rules="rules.engineerName">
<span slot="label" style="" @click="getBaseList(103,2)"><a herf="#">工程师</a></span>
<el-input v-model="modalData.engineerName" readonly @focus="getBaseList(103,2)" style="width: 221px"></el-input>
</el-col>
<el-col :span="14">
<el-form-item label=" ">
<el-input disabled v-model="modalData.customerDesc"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item prop="partName" :rules="rules.partName">
<span slot="label" @click="getProjectPartList()"><a>项目物料</a></span>
<el-input v-model="modalData.partName" readonly @focus="getProjectPartList()" style="width: 221px"></el-input>
</el-col>
</el-row>
</el-col>
<el-col :span="4">
<el-form-item label="测试数量" prop="testNumber">
<div class="right">
<el-input type="number" class="inlineNumber" v-model="modalData.testNumber" @input="modalData.testNumber = modalData.testNumber.replace(/^(0+)|[^\d]+/g, '')"></el-input>
</div>
</el-form-item> </el-form-item>
<el-form-item label="优先等级" prop="priorityLevel" :rules="rules.priorityLevel">
<el-select v-model="modalData.priorityLevel" style="width: 221px">
</el-col>
<el-col :span="4">
<el-form-item label="优先等级" prop="priorityLevel">
<el-select v-model="modalData.priorityLevel" style="width: 100%">
<el-option label="一般" value="一般"></el-option> <el-option label="一般" value="一般"></el-option>
<el-option label="紧急" value="紧急"></el-option> <el-option label="紧急" value="紧急"></el-option>
<el-option label="重要" value="重要"></el-option> <el-option label="重要" value="重要"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="要求交付日期" prop="requiredDeliveryDate" :rules="rules.requiredDeliveryDate">
<el-date-picker v-model="modalData.requiredDeliveryDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 142px"></el-date-picker>
</el-col>
<el-col :span="4">
<el-form-item label="要求交付日期" prop="requiredDeliveryDate">
<el-date-picker v-model="modalData.requiredDeliveryDate" style="width: 100%" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="4">
<el-form-item prop="trackerName">
<span slot="label" @click="getBaseList(103,1)"><a herf="#">跟单员</a></span>
<el-input v-model="modalData.trackerName"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="8">
<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="getBaseList(104,1)"><a herf="#">项目编码</a></span>
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" :readonly="true" v-model="modalData.projectId"></el-input>
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item label=" ">
<el-input disabled v-model="modalData.projectName"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="4">
<el-form-item label="收货人"> <el-form-item label="收货人">
<el-input v-model="modalData.consignee" style="width: 142px"></el-input>
<el-input v-model="modalData.consignee"></el-input>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="收货人联系方式"> <el-form-item label="收货人联系方式">
<el-input v-model="modalData.consigneeContact" style="width: 142px"></el-input>
<el-input v-model="modalData.consigneeContact"></el-input>
</el-form-item> </el-form-item>
</el-form>
<el-form :inline="true" label-position="top" :model="modalData" :rules="rules" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="是否需要送样">
<input type="checkbox" value="Y" name="sendSamples" v-model="modalData.isNeedToSendSamples"/>
</el-col>
<el-col :span="4">
<el-form-item label=" ">
<el-checkbox v-model="modalData.isNeedToSendSamples" true-label="Y">是否需要送样</el-checkbox>
</el-form-item> </el-form-item>
<el-form-item label="送样地址">
<el-input v-model="modalData.sendSamplesAddress" style="width: 369px"></el-input>
</el-col>
<el-col :span="4">
<el-form-item prop="engineerName">
<span slot="label" @click="getBaseList(103,2)"><a herf="#">工程师</a></span>
<el-input v-model="modalData.engineerName"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="备注">
<el-input v-model="modalData.remark" style="width: 456px"></el-input>
</el-col>
</el-row>
<el-row :gutter="15">
<el-col :span="12">
<el-form-item label="送样地址" style="height: 90px">
<el-input type="textarea" v-model="modalData.sendSamplesAddress" :rows="3" resize='none'></el-input>
</el-form-item> </el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" style="height: 90px">
<el-input type="textarea" v-model="modalData.remark" :rows="3" resize='none'></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="技术注意事项" style="height: 90px">
<el-input type="textarea" v-model="modalData.technicalConsiderations" :rows="3" resize='none' show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="技术注意事项">
<el-input type="textarea" v-model="modalData.technicalConsiderations" :rows="3" resize='none' show-word-limit style="width: 456px;height: 20px"></el-input>
<div class="rq">
<el-form :inline="true" label-position="top" :model="projectPartData">
<el-form-item label="产品编码">
<el-input v-model="projectPartData.testPartNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="产品名称">
<el-input v-model="projectPartData.partName" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label=" " v-if="this.modalData.projectId">
<el-button type="primary" @click="getProjectPartList()">查询</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:30px;margin-top: 50px;text-align:center">
<el-table
:height="300"
:data="projectPartList"
ref="projectPartTable"
@row-click="projectPartClickRow"
@selection-change="selectionProjectPart"
:row-key="getRowKeys"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="checkSelectable"
:reserve-selection="true"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in projectPartDetailList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</div>
<el-footer style="height:30px;text-align:center;margin-top: 8px">
<el-button type="primary" @click="saveData()">保存</el-button> <el-button type="primary" @click="saveData()">保存</el-button>
<el-button type="primary" @click="modalFlag = false">关闭</el-button> <el-button type="primary" @click="modalFlag = false">关闭</el-button>
</el-footer> </el-footer>
@ -321,60 +409,6 @@
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<!-- 项目物料清单模态框 -->
<el-dialog title="项目物料清单" :close-on-click-modal="false" v-drag :visible.sync="projectPartModelFlag" width="800px">
<div class="rq">
<el-form :inline="true" label-position="top" :model="projectPartData">
<el-form-item :label="'产品编码'">
<el-input v-model="projectPartData.testPartNo" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'产品名称'">
<el-input v-model="projectPartData.partName" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="getProjectPartList()">查询</el-button>
</el-form-item>
</el-form>
<el-table
:height="300"
:data="projectPartList"
ref="projectPartTable"
@row-click="projectPartClickRow"
@selection-change="selectionProjectPart"
:row-key="getRowKeys"
border
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
type="selection"
header-align="center"
align="center"
:reserve-selection="true"
width="50">
</el-table-column>
<el-table-column
v-for="(item,index) in projectPartDetailList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
</el-table>
</div>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="confirmProjectPart()">确认</el-button>
<el-button type="primary" @click="projectPartModelFlag = false">关闭</el-button>
</el-footer>
</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">
<!-- 测试详细信息页签 --> <!-- 测试详细信息页签 -->
@ -874,8 +908,8 @@
activeTable: 'test_detail_information', activeTable: 'test_detail_information',
// ======== ======== // ======== ========
modalData: { modalData: {
flag: '',
title: '',
flag: '1',
title: '测试新增',
site: this.$store.state.user.site, site: this.$store.state.user.site,
testNo: '', testNo: '',
customerNo: '', customerNo: '',
@ -888,8 +922,8 @@
partName: '', partName: '',
engineer: '', engineer: '',
engineerName: '', engineerName: '',
priorityLevel: '',
testNumber: '',
priorityLevel: '一般',
testNumber: 1,
requiredDeliveryDate: '', requiredDeliveryDate: '',
remark: '', remark: '',
technicalConsiderations: '', technicalConsiderations: '',
@ -1081,7 +1115,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 100
columnWidth: 110
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -1153,7 +1187,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 100
columnWidth: 150
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -1413,9 +1447,9 @@
projectPartDetailList: [ projectPartDetailList: [
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3CustomerNo',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3CustomerNo',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'customerNo', columnProp: 'customerNo',
headerAlign: 'center', headerAlign: 'center',
@ -1431,9 +1465,9 @@
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3CustomerDesc',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3CustomerDesc',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'customerDesc', columnProp: 'customerDesc',
headerAlign: 'center', headerAlign: 'center',
@ -1449,9 +1483,9 @@
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3ProjectName',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3ProjectName',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'projectId', columnProp: 'projectId',
headerAlign: 'center', headerAlign: 'center',
@ -1467,50 +1501,49 @@
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3ProjectId',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3TestPartNo',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'projectName',
columnProp: 'testPartNo',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '项目名称',
columnLabel: '产品编码',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 120
columnWidth: 150
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3TestPartNo',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3PartDesc',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'testPartNo',
columnProp: 'partDesc',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '产品编码',
columnLabel: '产品名称',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: '', fixed: '',
columnWidth: 150
},
{
columnWidth: 120
},{
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 103001,
serialNumber: '103001Table3PartName',
tableId: '103001Table3',
functionId: 102001,
serialNumber: '102001Table3PartType',
tableId: '102001Table3',
tableName: '项目物料表', tableName: '项目物料表',
columnProp: 'partName',
columnProp: 'partType',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
columnLabel: '产品名称',
columnLabel: '产品类型',
columnHidden: false, columnHidden: false,
columnImage: false, columnImage: false,
columnSortable: false, columnSortable: false,
@ -1522,53 +1555,60 @@
], ],
// ======== ======== // ======== ========
rules: { rules: {
customerDesc: [
customerNo: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
trackerName: [ trackerName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
projectName: [
testNumber: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
}
],
projectId: [
{
required: true,
message: ' ',
trigger: ['change','blur']
} }
], ],
engineerName: [ engineerName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
partName: [ partName: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
priorityLevel: [ priorityLevel: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
], ],
requiredDeliveryDate: [ requiredDeliveryDate: [
{ {
required: true, required: true,
message: ' ', message: ' ',
trigger: 'change'
trigger: ['change','blur']
} }
] ]
}, },
@ -1678,6 +1718,7 @@
*/ */
projectPartClickRow (row) { projectPartClickRow (row) {
this.$refs.projectPartTable.toggleRowSelection(row); this.$refs.projectPartTable.toggleRowSelection(row);
this.confirmProjectPart();
}, },
/** /**
* 多选 * 多选
@ -1829,45 +1870,6 @@
* 报价信息新增模态框 * 报价信息新增模态框
*/ */
addModal () { addModal () {
this.modalData = {
flag: '1',
title: '测试新增',
site: this.$store.state.user.site,
testNo: '',
customerNo: '',
customerDesc: '',
projectId: '',
projectName: '',
tracker: '',
trackerName: '',
testPartNo: '',
partName: '',
engineer: '',
engineerName: '',
priorityLevel: '',
testNumber: '',
requiredDeliveryDate: '',
remark: '',
technicalConsiderations: '',
isNeedToSendSamples: '',
sendSamplesAddress: '',
consignee: '',
consigneeContact: '',
actualityDeliveryDate: '',
testResultInformation: '',
actualitySendSamplesDate: '',
sendSamplesMethod: '',
deliverGoodsInformation: '',
deliverGoodsRemark: '',
actualityReplyDate: '',
confirmResults: '',
confirmBy: '',
confirmInformation: '',
testStatus: '草稿',
testResultStatus: 'C',
nextToDo: '',
createBy: this.$store.state.user.name
}
this.modalDisableFlag = false this.modalDisableFlag = false
this.modalFlag = true this.modalFlag = true
}, },
@ -1924,10 +1926,15 @@
* 获取项目物料列表 * 获取项目物料列表
*/ */
getProjectPartList () { getProjectPartList () {
if (!this.modalData.projectId){
this.projectPartList = [];
return
}
// //
this.$nextTick(() => this.$refs.projectPartTable.clearSelection()) this.$nextTick(() => this.$refs.projectPartTable.clearSelection())
// //
let projectPartList = this.modalData.testPartNo.split(';') let projectPartList = this.modalData.testPartNo.split(';')
this.projectPartData.projectId = this.modalData.projectId;
// //
getProjectPartList(this.projectPartData).then(({data}) => { getProjectPartList(this.projectPartData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
@ -1968,6 +1975,24 @@
* 客户信息新增/编辑 * 客户信息新增/编辑
*/ */
saveData () { saveData () {
this.$refs.modalForm.validate((valid) => {
if (!valid) {
this.validateDataValue()
}else {
if (this.projectPartListSelections.length <= 0){
this.$message.warning('请选择项目料号')
return
}
this.confirmProjectPart();
if (this.modalData.flag === '1'){
this.saveTest()
}else {
this.updateTest()
}
}
})
},
validateDataValue(){
if (this.modalData.customerNo === '' || this.modalData.customerNo == null) { if (this.modalData.customerNo === '' || this.modalData.customerNo == null) {
this.$message.warning('请选择客户编码!') this.$message.warning('请选择客户编码!')
return return
@ -2012,20 +2037,16 @@
this.$message.warning('请选择优先等级!') this.$message.warning('请选择优先等级!')
return return
} }
if (!this.modalData.testNumber) {
this.$message.warning('请输入正确的测试数量!')
return
}
if (this.modalData.requiredDeliveryDate === '' || this.modalData.requiredDeliveryDate == null) { if (this.modalData.requiredDeliveryDate === '' || this.modalData.requiredDeliveryDate == null) {
this.$message.warning('请输入要求交付日期!') this.$message.warning('请输入要求交付日期!')
return return
} }
let obj = document.getElementsByName('sendSamples')
let s = ''
for (let i = 0; i < obj.length; i++) {
if (obj[i].checked) {
s += obj[i].value + ','
}
}
s = s.substring(0,s.length-1)
this.modalData.isNeedToSendSamples = s
if (this.modalData.flag === '1') {
},
saveTest(){
testInformationSave(this.modalData).then(({data}) => { testInformationSave(this.modalData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.getDataList() this.getDataList()
@ -2042,7 +2063,8 @@
}) })
} }
}) })
} else {
},
updateTest(){
testInformationEdit(this.modalData).then(({data}) => { testInformationEdit(this.modalData).then(({data}) => {
if (data && data.code === 0) { if (data && data.code === 0) {
this.getDataList() this.getDataList()
@ -2059,7 +2081,6 @@
}) })
} }
}) })
}
}, },
/** /**
* 测试信息删除 * 测试信息删除
@ -2425,6 +2446,7 @@
if(this.tagNo1 === 1) { if(this.tagNo1 === 1) {
this.modalData.projectId = val.project_id this.modalData.projectId = val.project_id
this.modalData.projectName = val.project_name this.modalData.projectName = val.project_name
this.getProjectPartList();
} }
} }
}, },
@ -2457,7 +2479,59 @@
json += '}' json += '}'
let s = eval('(' + json + ')') let s = eval('(' + json + ')')
return s return s
},
closeModalDiaLog () {
this.$refs.modalForm.resetFields();
this.modalData = {
flag: '1',
title: '测试新增',
site: this.$store.state.user.site,
testNo: '',
customerNo: '',
customerDesc: '',
projectId: '',
projectName: '',
tracker: '',
trackerName: '',
testPartNo: '',
partName: '',
engineer: '',
engineerName: '',
priorityLevel: '一般',
testNumber: 1,
requiredDeliveryDate: '',
remark: '',
technicalConsiderations: '',
isNeedToSendSamples: '',
sendSamplesAddress: '',
consignee: '',
consigneeContact: '',
actualityDeliveryDate: '',
testResultInformation: '',
actualitySendSamplesDate: '',
sendSamplesMethod: '',
deliverGoodsInformation: '',
deliverGoodsRemark: '',
actualityReplyDate: '',
confirmResults: '',
confirmBy: '',
confirmInformation: '',
testStatus: '草稿',
testResultStatus: '',
nextToDo: '',
createDate: '',
createBy: '',
updateDate: '',
updateBy: ''
} }
},
checkSelectable(row,index){
if (this.modalData.flag === '1'){
return true
}else {
return false
}
},
} }
} }
</script> </script>
@ -2467,5 +2541,17 @@
padding: 0px !important; padding: 0px !important;
height: 459px; 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;
}
</style> </style>
Loading…
Cancel
Save