Browse Source

2024-03-27 测试修改

master
zelian_wu 2 years ago
parent
commit
46461ee3df
  1. 2
      src/views/modules/quotation/sellForQuotation.vue
  2. 38
      src/views/modules/test/requestForTest.vue
  3. 2
      src/views/modules/test/testSoAttribute/testAttribute.vue
  4. 210
      src/views/modules/test/testSoBom/testTable.vue
  5. 42
      src/views/modules/test/testSoRouting/testRoutingTable.vue

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

@ -126,7 +126,7 @@
</el-tabs>
<!-- 新增弹框 -->
<el-dialog title="新增报价" @close="closeInsertDialog" :close-on-click-modal="false" v-drag :visible.sync="insertDiaLogFlag" width="40%">
<el-dialog :title="insertData.quotationHeaderId?`编辑报价-${insertData.quotationNo}-${insertData.versionCode}`:`新增报价`" @close="closeInsertDialog" :close-on-click-modal="false" v-drag :visible.sync="insertDiaLogFlag" width="40%">
<el-form :rules="rules" :inline-message="true" label-position="top" ref="insertQuotationForm" :model="insertData"
label-width="120px">
<el-row>

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

@ -164,7 +164,7 @@
<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-input :disabled="modalData.flag !== '1'" v-model="modalData.customerNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="14">
@ -204,7 +204,7 @@
<el-col :span="10">
<el-form-item prop="projectId" label="项目编码">
<span slot="label" v-if="modalData.customerNo && modalData.flag === '1'" @click="chooseProjectListFlag = true"><a herf="#">项目编码</a></span>
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" :readonly="true" v-model="modalData.projectId"></el-input>
<el-input :disabled="!modalData.customerNo || modalData.flag !== '1'" v-model="modalData.projectId"></el-input>
</el-form-item>
</el-col>
<el-col :span="14">
@ -327,7 +327,7 @@
<el-tab-pane label="工艺路线" :disabled="!activeTabList.includes('process')" name="process">
<test-routing-table v-if="clickTestRow" ref="dialogSoRouting" v-model:data-list="testSoRoutingList" :test-no="modalData.testNo"></test-routing-table>
</el-tab-pane>
<el-tab-pane label="属性" :disabled="!activeTabList.includes('attribute')" name="attribute">
<el-tab-pane label="物料属性" :disabled="!activeTabList.includes('attribute')" name="attribute">
<test-attribute v-if="modalFlag" :attribute-list="attributeList" ref="dialogAttribute" :test-no="modalData.testNo"></test-attribute>
</el-tab-pane>
</el-tabs>
@ -609,7 +609,7 @@
<el-tab-pane label="工艺路线" name="test_so_routing" style="padding: 5px">
<test-routing-table ref="tabSoBom" :test-no="testCurrentRow.testNo" v-model:data-list="testSoRoutingList" :height="500" ></test-routing-table>
</el-tab-pane>
<el-tab-pane label="属性" name="test_attribute" style="padding: 5px">
<el-tab-pane label="物料属性" name="test_attribute" style="padding: 5px">
<test-attribute ref="tabAttribute" :attribute-list="attributeList" :test-no="testCurrentRow.testNo" :height="500"></test-attribute>
</el-tab-pane>
<!-- 项目信息页签 -->
@ -1248,7 +1248,7 @@
tableName: '测试信息表',
columnProp: 'customerDesc',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '客户名称',
columnHidden: false,
columnImage: false,
@ -1266,7 +1266,7 @@
tableName: '测试信息表',
columnProp: 'projectId',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '项目编码',
columnHidden: false,
columnImage: false,
@ -1284,7 +1284,7 @@
tableName: '测试信息表',
columnProp: 'projectName',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '项目名称',
columnHidden: false,
columnImage: false,
@ -1338,7 +1338,7 @@
tableName: '测试信息表',
columnProp: 'testPartNo',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '项目料号',
columnHidden: false,
columnImage: false,
@ -1356,7 +1356,7 @@
tableName: '测试信息表',
columnProp: 'partName',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '物料名称',
columnHidden: false,
columnImage: false,
@ -1392,7 +1392,7 @@
tableName: '测试信息表',
columnProp: 'testNumber',
headerAlign: 'center',
align: 'center',
align: 'right',
columnLabel: '测试数量',
columnHidden: false,
columnImage: false,
@ -1613,14 +1613,14 @@
columnProp: 'testPartNo',
headerAlign: 'center',
align: 'center',
columnLabel: '产品编码',
columnLabel: '物料编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 150
columnWidth: 120
},
{
userId: this.$store.state.user.name,
@ -1630,15 +1630,15 @@
tableName: '项目物料表',
columnProp: 'partDesc',
headerAlign: 'center',
align: 'center',
columnLabel: '产品名称',
align: 'left',
columnLabel: '物料名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
columnWidth: 200
},{
userId: this.$store.state.user.name,
functionId: 103001,
@ -1648,7 +1648,7 @@
columnProp: 'partSpec',
headerAlign: 'center',
align: 'center',
columnLabel: '产品规格',
columnLabel: '物料规格',
columnHidden: false,
columnImage: false,
columnSortable: false,
@ -1665,14 +1665,14 @@
columnProp: 'partTypeDesc',
headerAlign: 'center',
align: 'center',
columnLabel: '产品类型',
columnLabel: '物料类型',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 120
columnWidth: 140
},{
userId: this.$store.state.user.name,
functionId: 103001,
@ -1698,7 +1698,7 @@
tableName: '项目物料表',
columnProp: 'codeDesc',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '模板名称',
columnHidden: false,
columnImage: false,

2
src/views/modules/test/testSoAttribute/testAttribute.vue

@ -9,7 +9,7 @@ export default {
},
height:{
type: Number,
default:300
default:320
},
attributeList:{
type:Array

210
src/views/modules/test/testSoBom/testTable.vue

@ -33,7 +33,7 @@ export default {
height:{
type:Number,
default:300
}
},
},
model:{
prop:"dataList",
@ -63,6 +63,8 @@ export default {
assemblyQty: [{required: true,message: ' ',trigger: ['change','blur']}],
fixedScrapQty: [{required: true,message: ' ',trigger: ['change','blur']}],
scrapFactor: [{required: true,message: ' ',trigger: ['change','blur']}],
unitCost: [{required: true,message: ' ',trigger: ['change','blur']}],
totalCost: [{required: true,message: ' ',trigger: ['change','blur']}],
},
testSoBom:{
site:this.$store.state.user.site,
@ -83,6 +85,8 @@ export default {
rmTypeDb:0,
issuedType:undefined,
remark:undefined,
unitCost:0,
totalCost:0,
},
selectionTestSoBomList:[],
testSoBomColumnList:[{
@ -135,7 +139,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
columnWidth: 200
},{
userId: this.$store.state.user.name,
functionId: 102001,
@ -153,41 +157,44 @@ export default {
status: true,
fixed: '',
columnWidth: 100
},{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table3AssemblyQty',
tableId: '102001Table3',
tableName: '测试产品结构',
columnProp: 'assemblyQty',
headerAlign: 'center',
align: 'left',
columnLabel: '单位用量',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table3FixedScrapQty',
tableId: '102001Table3',
tableName: '测试产品结构',
columnProp: 'fixedScrapQty',
headerAlign: 'center',
align: 'left',
columnLabel: '固定损耗',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},{
},
// {
// userId: this.$store.state.user.name,
// functionId: 102001,
// serialNumber: '102001Table3AssemblyQty',
// tableId: '102001Table3',
// tableName: '',
// columnProp: 'assemblyQty',
// headerAlign: 'center',
// align: 'left',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 100
// },
// {
// userId: this.$store.state.user.name,
// functionId: 102001,
// serialNumber: '102001Table3FixedScrapQty',
// tableId: '102001Table3',
// tableName: '',
// columnProp: 'fixedScrapQty',
// headerAlign: 'center',
// align: 'left',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 100
// },
{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table3UmName',
@ -204,24 +211,26 @@ export default {
status: true,
fixed: '',
columnWidth: 100
},{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table3ScrapFactor',
tableId: '102001Table3',
tableName: '测试产品结构',
columnProp: 'scrapFactor',
headerAlign: 'center',
align: 'left',
columnLabel: '报废率%',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},{
},
// {
// userId: this.$store.state.user.name,
// functionId: 102001,
// serialNumber: '102001Table3ScrapFactor',
// tableId: '102001Table3',
// tableName: '',
// columnProp: 'scrapFactor',
// headerAlign: 'center',
// align: 'left',
// columnLabel: '%',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 100
// },
{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table3RequiredQty',
@ -229,7 +238,7 @@ export default {
tableName: '测试产品结构',
columnProp: 'requiredQty',
headerAlign: 'center',
align: 'left',
align: 'right',
columnLabel: '需求数量',
columnHidden: false,
columnImage: false,
@ -275,6 +284,42 @@ export default {
// fixed: '',
// columnWidth: 100
// },
{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table3UnitCost',
tableId: '102001Table3',
tableName: '测试产品结构',
columnProp: 'unitCost',
headerAlign: 'center',
align: 'right',
columnLabel: '单价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 102001,
serialNumber: '102001Table3TotalCost',
tableId: '102001Table3',
tableName: '测试产品结构',
columnProp: 'totalCost',
headerAlign: 'center',
align: 'right',
columnLabel: '总价',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
},
{
userId: this.$store.state.user.name,
functionId: 102001,
@ -291,7 +336,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
columnWidth: 140
},
// {
// userId: this.$store.state.user.name,
@ -330,10 +375,21 @@ export default {
}
this.partList = [];
},
initPartList(){
openPartDialog(){
this.partData.partNo = this.testSoBom.componentPartNo
this.initPartList();
},
initPartList(flag){
searchPartList(this.partData).then(({data})=>{
if (data && data.code === 200) {
this.partList = data.data;
if (flag === true){
if (this.partList.length === 1 && this.partList[0].partNo === this.testSoBom.componentPartNo){
this.dblClickPartTable(this.partList[0])
}else {
this.dblClickPartTable({partNo:this.testSoBom.componentPartNo,partDesc:'',umId:''})
}
}
}
})
},
@ -406,6 +462,8 @@ export default {
rmTypeDb:0,
issuedType:undefined,
remark:undefined,
unitCost:0,
totalCost:0,
}
},
clearTable(){
@ -509,6 +567,14 @@ export default {
computeQuantityRequired(){
let total = new Decimal(this.testNumber).mul(new Decimal(this.testSoBom.assemblyQty)).div((new Decimal(100).sub(new Decimal(this.testSoBom.scrapFactor))).div(new Decimal(100)))
this.testSoBom.requiredQty = new Decimal(total.toFixed(3,Decimal.ROUND_FLOOR)).toSignificantDigits().toNumber();
},
computeTotalCost(val){
this.testSoBom.assemblyQty = new Decimal(this.testSoBom.requiredQty).div(new Decimal(this.testNumber)).toNumber()
this.testSoBom.totalCost = new Decimal(this.testSoBom.requiredQty).mul(new Decimal(this.testSoBom.unitCost)).toNumber()
},
changePartNo(val){
this.partData.partNo = val
this.initPartList(true);
}
},
@ -563,7 +629,7 @@ export default {
<el-col :span="8">
<el-form-item label="物料编码" prop="componentPartNo">
<span slot="label" @click="partDialogFlag = true"><a>物料编码</a></span>
<el-input readonly v-model="testSoBom.componentPartNo"></el-input>
<el-input @change="changePartNo" v-model="testSoBom.componentPartNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
@ -580,17 +646,17 @@ export default {
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-col :span="8" v-if="false">
<el-form-item label="单位用量" prop="assemblyQty">
<el-input-number style="width: 100%;margin-top: -5px;" @input="computeQuantityRequired" :min="0" v-model="testSoBom.assemblyQty" :controls="false"></el-input-number>
<el-input-number style="width: 100%;margin-top: -5px;" :min="0" v-model="testSoBom.assemblyQty" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" v-if="false">
<el-form-item label="固定损耗" prop="fixedScrapQty">
<el-input-number style="width: 100%;margin-top: -5px;" @input="computeQuantityRequired" :min="0" v-model="testSoBom.fixedScrapQty" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8" v-if="false">
<el-form-item label="报废率%" prop="scrapFactor">
<el-input-number @input="computeQuantityRequired" style="width: 100%;margin-top: -5px;" :max="100" :min="0" v-model="testSoBom.scrapFactor" :controls="false"></el-input-number>
</el-form-item>
@ -617,7 +683,21 @@ export default {
</el-col>
<el-col :span="8">
<el-form-item label="需求数量" prop="requiredQty">
<el-input-number disabled style="width: 100%;margin-top: -5px;" :min="0" v-model="testSoBom.requiredQty" :controls="false"></el-input-number>
<el-input-number @input="computeTotalCost" style="width: 100%;margin-top: -5px;" :min="0" v-model="testSoBom.requiredQty" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单价" prop="unitCost">
<el-input-number @input="computeTotalCost" style="width: 100%;margin-top: -5px;" :min="0" v-model="testSoBom.unitCost" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<!-- <el-col :span="8">-->
<!-- <el-form-item label=" ">-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="8">
<el-form-item label="总价" prop="totalCost">
<el-input-number disabled style="width: 100%;margin-top: -5px;" :min="0" v-model="testSoBom.totalCost" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="24">
@ -635,7 +715,7 @@ export default {
</el-dialog>
<el-dialog title="物料列表" width="35%" append-to-body
@close="closePartDialog" v-drag
@close="closePartDialog" @open="openPartDialog" v-drag
:visible.sync="partDialogFlag">
<!--搜索条件-->
<el-form :model="partData" ref="partDataForm" label-position="top">

42
src/views/modules/test/testSoRouting/testRoutingTable.vue

@ -124,15 +124,15 @@ export default {
tableName: '测试工艺路线',
columnProp: 'itemDesc',
headerAlign: 'center',
align: 'center',
columnLabel: '工序',
align: 'left',
columnLabel: '工序描述',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
columnWidth: 200
},
{
userId: this.$store.state.user.name,
@ -142,7 +142,7 @@ export default {
tableName: '测试工艺路线',
columnProp: 'workCenterNo',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '加工中心',
columnHidden: false,
columnImage: false,
@ -160,7 +160,7 @@ export default {
tableName: '测试工艺路线',
columnProp: 'workCenterDesc',
headerAlign: 'center',
align: 'center',
align: 'left',
columnLabel: '加工中心名称',
columnHidden: false,
columnImage: false,
@ -168,7 +168,7 @@ export default {
sortLv: 0,
status: true,
fixed: '',
columnWidth: 100
columnWidth: 150
},
{
userId: this.$store.state.user.name,
@ -401,7 +401,7 @@ export default {
this.testSoRouting.workCenterType = row.workCenterType
this.workCenterDialogFlag = false
},
searchWorkCenter(){
searchWorkCenter(flag){
let params = {
site:this.$store.state.user.site,
workCenterNo:this.workCenter.workCenterNo,
@ -412,6 +412,18 @@ export default {
searchWorkCenter(params).then(({data})=>{
if (data && data.code === 200){
this.workCenterList = data.data;
if (flag === true){
if (this.workCenterList.length === 1 && this.workCenterList[0].workCenterNo === this.testSoRouting.workCenterNo){
this.dblClickWorkCenterTable(this.workCenterList[0])
}else {
let workCenter = {
workCenterNo:this.testSoRouting.workCenterNo,
workCenterDesc:'',
workCenterType:''
}
this.dblClickWorkCenterTable(workCenter)
}
}
}
})
},
@ -592,6 +604,14 @@ export default {
this.testSoRouting.itemNo = this.dataList.length > 0?this.dataList[this.dataList.length-1].itemNo +10:10;
}
},
changeWorkCenter(val){
this.workCenter.workCenterNo = val
this.searchWorkCenter(true)
},
openWorkCenterDialog(){
this.workCenter.workCenterNo = this.testSoRouting.workCenterNo;
this.searchWorkCenter()
}
},
}
</script>
@ -635,7 +655,7 @@ export default {
</template>
</el-table-column>
</el-table>
<el-dialog :title="(saveStatus?'新增':'编辑')+'-工艺路线'" :visible.sync="saveFlag" @open="openRouting" v-drag width="32vw" append-to-body @close="closeTestSoRoutingDialog">
<el-dialog :title="(saveStatus?'新增':'编辑')+'-工艺路线'" :visible.sync="saveFlag" @open="openRouting" v-drag append-to-body @close="closeTestSoRoutingDialog">
<el-form :model="testSoRouting" label-position="top" ref="saveForm" :rules="testSoRoutingRule">
<el-row :gutter="10">
<el-col :span="8">
@ -643,7 +663,7 @@ export default {
<el-input-number style="width: 100%;margin-top: -5px;" :disabled="!saveStatus" :min="0" v-model="testSoRouting.itemNo" :controls="false"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="16">
<el-form-item label="工序名称" prop="itemDesc">
<el-input v-model="testSoRouting.itemDesc"></el-input>
</el-form-item>
@ -653,7 +673,7 @@ export default {
<el-col :span="8">
<el-form-item label="加工中心" prop="workCenterNo">
<span slot="label" style="cursor:pointer;" @click="workCenterDialogFlag = true"><a>加工中心</a></span>
<el-input readonly v-model="testSoRouting.workCenterNo"></el-input>
<el-input @change="changeWorkCenter" v-model="testSoRouting.workCenterNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
@ -751,7 +771,7 @@ export default {
</span>
</el-dialog>
<el-dialog title="加工中心信息" @open="searchWorkCenter" :visible.sync="workCenterDialogFlag" width="30vw" append-to-body @close="closeWorkCenterDialog">
<el-dialog title="加工中心信息" v-drag @open="openWorkCenterDialog" :visible.sync="workCenterDialogFlag" width="40%" append-to-body @close="closeWorkCenterDialog">
<el-form :model="workCenter" label-position="top">
<el-row :gutter="10">
<el-col :span="6">

Loading…
Cancel
Save