质量模块接口联调

dev-scheduling
jinna 3 months ago
parent d38059e5f0
commit 1599fe450a
  1. 36
      src/api/qualityManagement/productionTesting/productionDisposition.js
  2. 74
      src/views/productionDisposition/hearingDialog.vue
  3. 52
      src/views/productionDisposition/index.vue
  4. 13
      src/views/productionTesting/productionQuality.vue
  5. 4
      src/views/qualityManagement/reviewFormMess/options.js

@ -82,3 +82,39 @@ export const getDispositionTypeList = (params) => {
params params
}); });
}; };
// 获取责任零件下拉
export const getResponsiblePartList = (params) => {
return request({
url: '/api/blade-desk/QA/ReviewSheet/getRSDutyPartList',
method: 'get',
params
});
};
// 获取责任批号下拉
export const getResponsibleBatchList = (params) => {
return request({
url: '/api/blade-desk/QA/ReviewSheet//getRSDutyBatchList',
method: 'get',
params
});
};
// 获取相关零件下拉
export const getRelatedPartList = (params) => {
return request({
url: '/api/blade-desk/QA/ReviewSheet/getRSRelevantPartList',
method: 'get',
params
});
};
// 获取相关批号下拉
export const getRelatedBatchList = (params) => {
return request({
url: '/api/blade-desk/QA/ReviewSheet/getRSRelevantBatchList',
method: 'get',
params
});
};

@ -13,7 +13,7 @@
<el-option v-for="item in historyList" :key="item.woId" :label="item.woInfo" :value="item.woId" /> <el-option v-for="item in historyList" :key="item.woId" :label="item.woInfo" :value="item.woId" />
<!-- <el-option label="订单2" value="2" /> --> <!-- <el-option label="订单2" value="2" /> -->
</el-select> </el-select>
<el-button @click="handleUse" type="primary" style="margin-left:10px;">应用</el-button> <el-button @click="handleUse" type="primary" style="margin-left:10px;" :disabled="type == 'view'">应用</el-button>
</div> </div>
<el-descriptions title="订单信息" border :column="4" label-width="110"> <el-descriptions title="订单信息" border :column="4" label-width="110">
<el-descriptions-item label="车间订单号:">{{detailInfo.woCode}}</el-descriptions-item> <el-descriptions-item label="车间订单号:">{{detailInfo.woCode}}</el-descriptions-item>
@ -82,10 +82,10 @@
</el-radio-group> </el-radio-group>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="返修数量:"> <el-descriptions-item label="返修数量:">
<el-input v-model="detailInfo.reDoNum" placeholder="请输入" style="width: 400px;" :disabled="type == 'view'"/> <el-input v-model="detailInfo.reDoNum" placeholder="请输入" style="width: 400px;" :disabled="type == 'view' || disposalType == 2"/>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="报废数量:"> <el-descriptions-item label="报废数量:">
<el-input v-model="detailInfo.scrapNum" placeholder="请输入" style="width: 400px;" :disabled="type == 'view'"/> <el-input v-model="detailInfo.scrapNum" placeholder="请输入" style="width: 400px;" :disabled="type == 'view' || disposalType == 1"/>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label=""> <el-descriptions-item label="">
<el-checkbox-group v-model="checkList" :disabled="type == 'view'"> <el-checkbox-group v-model="checkList" :disabled="type == 'view'">
@ -232,8 +232,8 @@
<template #default="scope"> <template #default="scope">
<el-input v-model="scope.row.dutyPart" v-if="detailInfo.reviewOrderMode == 1" :disabled="type == 'view'"></el-input> <el-input v-model="scope.row.dutyPart" v-if="detailInfo.reviewOrderMode == 1" :disabled="type == 'view'"></el-input>
<el-select v-model="scope.row.dutyPart" v-if="detailInfo.reviewOrderMode == 2" :disabled="type == 'view'"> <el-select v-model="scope.row.dutyPart" v-if="detailInfo.reviewOrderMode == 2" :disabled="type == 'view'">
<el-option v-for="item in dutyPartArr" :key="item.rstId" :value="item.rstId" <el-option v-for="item in dutyPartArr" :key="item.dutyPart" :value="item.dutyPart"
:label="item.rstName"></el-option> :label="item.dutyPart"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -243,8 +243,8 @@
</template> </template>
<template #default="scope"> <template #default="scope">
<el-select v-model="scope.row.dutyBatch" :disabled="type == 'view'"> <el-select v-model="scope.row.dutyBatch" :disabled="type == 'view'">
<el-option v-for="item in dutyBatchArr" :key="item.value" :value="item.value" <el-option v-for="item in dutyBatchArr" :key="item.dutyBatch" :value="item.dutyBatch"
:label="item.label"></el-option> :label="item.dutyBatch"></el-option>
<!-- <el-option v-for="item in dutyBatchArr" :key="item.rstId" :value="item.rstId" :label="item.rstName"></el-option> --> <!-- <el-option v-for="item in dutyBatchArr" :key="item.rstId" :value="item.rstId" :label="item.rstName"></el-option> -->
</el-select> </el-select>
</template> </template>
@ -252,16 +252,16 @@
<el-table-column label="相关零件" prop="relevantPart" align="center"> <el-table-column label="相关零件" prop="relevantPart" align="center">
<template #default="scope"> <template #default="scope">
<el-select v-model="scope.row.relevantPart" :disabled="type == 'view'"> <el-select v-model="scope.row.relevantPart" :disabled="type == 'view'">
<el-option v-for="item in relevantPartArr" :key="item.rstId" :value="item.rstId" <el-option v-for="item in relevantPartArr" :key="item.relevantPart" :value="item.relevantPart"
:label="item.rstName"></el-option> :label="item.relevantPart"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="相关批号" prop="relevantBatch" align="center"> <el-table-column label="相关批号" prop="relevantBatch" align="center">
<template #default="scope"> <template #default="scope">
<el-select v-model="scope.row.relevantBatch" :disabled="type == 'view'"> <el-select v-model="scope.row.relevantBatch" :disabled="type == 'view'">
<el-option v-for="item in relevantBatchArr" :key="item.rstId" :value="item.rstId" <el-option v-for="item in relevantBatchArr" :key="item.relevantBatch" :value="item.relevantBatch"
:label="item.rstName"></el-option> :label="item.relevantBatch"></el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -300,7 +300,8 @@
</template> </template>
<script> <script>
import {getFaultClassList,getQuestionClassList,getQuestionClassList2,getProductionDispositionDetail, import {getFaultClassList,getQuestionClassList,getQuestionClassList2,getProductionDispositionDetail,
createProductionDisposition,getHistoryOrderList,setHistoryOrderValue,getDispositionTypeList} from "@/api/qualityManagement/productionTesting/productionDisposition" createProductionDisposition,getHistoryOrderList,setHistoryOrderValue,getDispositionTypeList,getResponsiblePartList,
getResponsibleBatchList,getRelatedPartList,getRelatedBatchList} from "@/api/qualityManagement/productionTesting/productionDisposition"
export default { export default {
props: { props: {
showDialog: { showDialog: {
@ -339,6 +340,10 @@ export default {
faultDeleteIds:[], //id faultDeleteIds:[], //id
dutyDeleteIds:[], //id dutyDeleteIds:[], //id
disposeTypeList:[], disposeTypeList:[],
dutyPartArr:[], //
dutyBatchArr:[], //
relevantPartArr:[], //
relevantBatchArr:[], //
} }
}, },
mounted() { mounted() {
@ -348,9 +353,45 @@ export default {
this.getDetail() this.getDetail()
this.getHistory() this.getHistory()
this.getDisposeType() this.getDisposeType()
this.getResponsiblePart()
this.getResponsibleBatch()
this.getRelatedPart()
this.getRelatedBatch()
// this.getQuestionSmall() // this.getQuestionSmall()
}, },
methods: { methods: {
//
getResponsiblePart(){
getResponsiblePartList({
id:this.rsId
}).then(res =>{
this.dutyPartArr = res.data.data
})
},
//
getResponsibleBatch(){
getResponsibleBatchList({
id:this.rsId
}).then(res =>{
this.dutyBatchArr = res.data.data
})
},
//
getRelatedPart(){
getRelatedPartList({
id:this.rsId
}).then(res =>{
this.relevantPartArr = res.data.data
})
},
//
getRelatedBatch(){
getRelatedBatchList({
id:this.rsId
}).then(res =>{
this.relevantBatchArr = res.data.data
})
},
getDisposeType(){ getDisposeType(){
getDispositionTypeList().then(res =>{ getDispositionTypeList().then(res =>{
this.disposeTypeList = res.data.data this.disposeTypeList = res.data.data
@ -413,8 +454,11 @@ export default {
this.detailInfo = res.data.data this.detailInfo = res.data.data
console.log('hace---------------',this.detailInfo.hasSaved) console.log('hace---------------',this.detailInfo.hasSaved)
if(this.detailInfo.hasSaved == 1){ if(this.detailInfo.hasSaved == 1){
this.detailInfo.refWoId = res.data.data.refWoId == 0 ? '' : res.data.data.refWoId
this.testType = res.data.data.bizType == 3 ? 1 : 2 this.testType = res.data.data.bizType == 3 ? 1 : 2
this.disposalType = res.data.data.bizType == 3 ? '' : res.data.data.bizType this.disposalType = res.data.data.bizType == 3 ? '' : res.data.data.bizType
this.detailInfo.scrapNum = this.disposalType == 1 ? '' : res.data.data.scrapNum
this.detailInfo.reDoNum = this.disposalType == 2 ? '' : res.data.data.reDoNum
this.checkList = [] this.checkList = []
this.checkList.push( this.checkList.push(
res.data.data.isBatProblem == 1 ? 'isBatProblem' : null, res.data.data.isBatProblem == 1 ? 'isBatProblem' : null,
@ -439,7 +483,7 @@ export default {
this.detailInfo.reviewOrderMode = '' this.detailInfo.reviewOrderMode = ''
this.detailInfo.unqualifiedQty = '' this.detailInfo.unqualifiedQty = ''
this.detailInfo.scale = '' this.detailInfo.scale = ''
this.detailInfo.upCode = '' // this.detailInfo.upCode = ''
this.detailInfo.scrapNum = '' this.detailInfo.scrapNum = ''
this.detailInfo.reDoNum = '' this.detailInfo.reDoNum = ''
this.checkList = [] this.checkList = []
@ -509,9 +553,9 @@ export default {
this.dutyList = this.dutyList.filter(row => !row._select); this.dutyList = this.dutyList.filter(row => !row._select);
}) })
}, },
closeDialog() { closeDialog(val) {
this.openShow = false this.openShow = false
this.$emit('closeDialog'); this.$emit('closeDialog',val);
}, },
changeType(val){ changeType(val){
console.log('val---------------------',val) console.log('val---------------------',val)

@ -14,7 +14,7 @@
</template> </template>
<template #menu="{ row }"> <template #menu="{ row }">
<el-button type="text" @click="addReview(row.trialType, row.id)">详情</el-button> <el-button type="text" @click="addReview(row.trialType, row.id)">详情</el-button>
<el-button type="text" @click="hearingFn(row.trialType, row.id)">提交</el-button> <el-button type="text" v-if="row.status == 0 || row.status == -1" @click="hearingFn(row.trialType, row.id)">提交</el-button>
</template> </template>
<!-- <template #proNo="{ row }"> <!-- <template #proNo="{ row }">
{{ row.prWorkCheck.prWorkPlan.prWorkOrder.pjYieldOrder.partCode }} {{ row.prWorkCheck.prWorkPlan.prWorkOrder.pjYieldOrder.partCode }}
@ -256,6 +256,7 @@ export default {
{ {
label: '生产标识', label: '生产标识',
prop: 'prodIdent', prop: 'prodIdent',
type: 'select',
addDisplay: false, addDisplay: false,
editDisplay: false, editDisplay: false,
span: 24, span: 24,
@ -268,6 +269,8 @@ export default {
trigger: 'click', trigger: 'click',
}, },
], ],
dicUrl:"/api/blade-desk/BA/ProdMark/listForSelect",
props:{label:"name",value:"id"}
}, },
{ {
label: '批次号', label: '批次号',
@ -353,6 +356,10 @@ export default {
{ {
label: '建立时间', label: '建立时间',
prop: 'createTime', prop: 'createTime',
type:"date",
format:"YYYY-MM-DD",
valueFormat:"YYYY-MM-DD",
searchRange: true,
addDisplay: false, addDisplay: false,
editDisplay: false, editDisplay: false,
span: 24, span: 24,
@ -383,18 +390,23 @@ export default {
trigger: 'click', trigger: 'click',
}, },
], ],
dicData: [ dicUrl:"/api/blade-system/dict/dictionary?code=ReviewSheet-Mode",
{ props:{
value: 1, label: 'dictValue',
label: '零件模式' value: 'dictKey'
}, {
value: 2,
label: '装配模式'
}, {
value: 3,
label: '售后模式'
} }
] // dicData: [
// {
// value: 1,
// label: ''
// }, {
// value: 2,
// label: ''
// }, {
// value: 3,
// label: ''
// }
// ]
}, },
{ {
label: '当前状态', label: '当前状态',
@ -554,9 +566,12 @@ export default {
this.dialogType = 'submit' this.dialogType = 'submit'
this.hearingOpen = true this.hearingOpen = true
}, },
closeDialog() { closeDialog(val) {
this.showDialog = false this.showDialog = false
this.hearingOpen = false this.hearingOpen = false
if(val){
this.onLoad()
}
}, },
// //
openZlSystem() { openZlSystem() {
@ -582,6 +597,8 @@ export default {
searchChange(params, done) { searchChange(params, done) {
this.query = params; this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;
this.query.createTimeStart = params.createTime && params.createTime.length != 0 && params.createTime[0]
this.query.createTimeEnd = params.createTime && params.createTime.length != 0 && params.createTime[1]
this.onLoad(this.page, params); this.onLoad(this.page, params);
done(); done();
}, },
@ -602,10 +619,17 @@ export default {
this.onLoad(this.page, this.query); this.onLoad(this.page, this.query);
}, },
onLoad() { onLoad() {
// if(this.query.createTime){
// delete this.query.createTime
// }
getProductionDispositionList({ getProductionDispositionList({
current:this.page.currentPage, current:this.page.currentPage,
size:this.page.pageSize size:this.page.pageSize,
...this.query
}).then(res =>{ }).then(res =>{
res.data.data.records.map(item =>{
item.status = item.status == -1 ? '' : item.status + ''
})
this.data = res.data.data.records this.data = res.data.data.records
this.page.total = res.data.data.total this.page.total = res.data.data.total
}) })

@ -586,6 +586,7 @@ export default {
{ {
label: '生产标识', label: '生产标识',
prop: 'prodIdent', prop: 'prodIdent',
type: 'select',
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,
@ -601,6 +602,8 @@ export default {
trigger: 'blur', trigger: 'blur',
}, },
], ],
dicUrl:"/api/blade-desk/BA/ProdMark/listForSelect",
props:{label:"name",value:"id"}
}, },
{ {
label: '流程卡号', label: '流程卡号',
@ -839,6 +842,8 @@ export default {
prop: 'receiveDate', prop: 'receiveDate',
search: true, search: true,
type: 'date', type: 'date',
format:"YYYY-MM-DD",
valueFormat:"YYYY-MM-DD",
searchRange: true, searchRange: true,
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
@ -1138,6 +1143,7 @@ export default {
console.log('res----------------', res); console.log('res----------------', res);
res.data.data.wpItemList.map(item =>{ res.data.data.wpItemList.map(item =>{
this.vxeTableData.map(item1 =>{ this.vxeTableData.map(item1 =>{
if(item1.checkUserRealName == ''){
if(item.item.name == item1.item.name){ if(item.item.name == item1.item.name){
if(item.item.specialType != '1' && item.item.specialType != '2' && item.item.specialType != '3'){ if(item.item.specialType != '1' && item.item.specialType != '2' && item.item.specialType != '3'){
item1.checkValue = item.checkValue item1.checkValue = item.checkValue
@ -1147,7 +1153,9 @@ export default {
item1.checkQty = item.checkQty item1.checkQty = item.checkQty
item1.checkResult = item.checkResult item1.checkResult = item.checkResult
} }
}
}) })
}) })
// this.dialogData = res.data.data.orderInfo; // this.dialogData = res.data.data.orderInfo;
// this.remindMsgList = res.data.data.remindMsgList; // this.remindMsgList = res.data.data.remindMsgList;
@ -1185,6 +1193,8 @@ export default {
searchChange(params, done) { searchChange(params, done) {
this.query = params; this.query = params;
this.page.currentPage = 1; this.page.currentPage = 1;
this.query.receiveDateStart = params.receiveDate && params.receiveDate.length > 0 && params.receiveDate[0]
this.query.receiveDateEnd = params.receiveDate && params.receiveDate.length > 0 && params.receiveDate[0]
this.onLoad(); this.onLoad();
done(); done();
}, },
@ -16153,6 +16163,9 @@ export default {
}, },
onLoad() { onLoad() {
console.log('query----------------',this.query) console.log('query----------------',this.query)
if(this.query.receiveDate){
delete this.query.receiveDate
}
getInspectionList({ getInspectionList({
current:this.page.currentPage, current:this.page.currentPage,
size:this.page.pageSize, size:this.page.pageSize,

@ -48,7 +48,7 @@ export const insideOption = {
search: true, search: true,
sortable: true, sortable: true,
span: 12, span: 12,
width: 150 width: 200
}, },
{ {
@ -279,7 +279,7 @@ export const erpOption = {
search: true, search: true,
sortable: true, sortable: true,
span: 12, span: 12,
width:150 width:200
}, },
{ {

Loading…
Cancel
Save