Commit 3c0882c6 authored by 沈翠玲's avatar 沈翠玲

巡检单临时提交

parent 6567d4b0
...@@ -88,6 +88,21 @@ const install = (Vue, vm) => { ...@@ -88,6 +88,21 @@ const install = (Vue, vm) => {
config.adminPath + '/mobile/pro/protask/getProTaskByTaskCode', config.adminPath + '/mobile/pro/protask/getProTaskByTaskCode',
params params
), ),
getQcCondition: (params = {}) =>
vm.$u.postJson(
config.adminPath + '/mes/pro/workorder/getQcCondition',
params
),
generateItems: (params = {}) =>
vm.$u.postJson(
config.adminPath + '/mes/qc/templateindex/generateItems',
params
),
getWorkorder: (params = {}) =>
vm.$u.get(
config.adminPath + '/mes/pro/workorder/getWorkorder',
params
),
// //
getIpqcCode: (params = {}) => getIpqcCode: (params = {}) =>
vm.$u.get(config.adminPath + '/system/autocode/get/IPQC_CODE', params), vm.$u.get(config.adminPath + '/system/autocode/get/IPQC_CODE', params),
......
<template>
<u-modal width="90%" @confirm="submitIpqc" v-model="visable" :showConfirmButton="true" :showCancelButton="true" title="请填写检验单" content="操作内容" @cancel="close">
<u-form ref="qcForm" label-width="90px" class="addForm">
<u-row>
<u-col span="4">
<u-form-item label="工单编码">
<SearchInput v-model="qcForm.workorderCode" placeholder="请输入工单编码" hassearchbtn="true" @serach="searchTask" />
</u-form-item>
</u-col>
<u-col span="4">
<u-form-item label="编排编码">
<SearchInput v-model="qcForm.arrangeCode" placeholder="请输入编排编码" hassearchbtn="true" @serach="searWorkorder" />
</u-form-item>
</u-col>
<u-col span="4">
<u-form-item label="工序名称">
<uni-data-select v-model="qcForm.processId" :localdata="processList" @change="changeprocess"></uni-data-select>
</u-form-item>
</u-col>
<u-col span="3">
<u-form-item label="检验单名称" label-width="90px">
<u-input v-model="qcForm.ipqcName" placeholder="请输入检验单名称"></u-input>
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col span="4">
<u-form-item label="检测数量" prop="quantityCheck">
<u-number-box disabled v-model="qcForm.quantityCheck"></u-number-box>
</u-form-item>
</u-col>
<u-col span="4">
<u-form-item label="合格数量" prop="quantityQualified">
<u-number-box v-model="qcForm.quantityQualified" @change="handleChangeQuantityCheck"></u-number-box>
</u-form-item>
</u-col>
<u-col span="4">
<u-form-item label="不合格数量" prop="quantityUnqualified">
<u-number-box v-model="qcForm.quantityUnqualified" @change="handleChangeQuantityCheck"></u-number-box>
</u-form-item>
</u-col>
</u-row>
<u-row>
<u-col span="4">
<u-form-item label="检测人员" prop="inspectorNickName">
<u-input disabled v-model="qcForm.inspectorNickName"></u-input>
<u-button @tap="userTempVisible=true" type="success" size="mini">选择人员</u-button>
</u-form-item>
</u-col>
</u-row>
</u-form>
<view class="line-content-item">
<uni-table ref="qcLineTable" class="line-table" border stripe :loading="loading" emptyText="未查询到数据">
<uni-tr>
<uni-th width="100px" align="center">质检项目</uni-th>
<uni-th width="100px" align="center">检验要求</uni-th>
<uni-th width="150px" align="center">检验结果</uni-th>
</uni-tr>
<uni-tr v-for="(line, index) in qcLines" :key="index + 'index'">
<uni-td align="center">{{ line.indexName }}</uni-td>
<uni-td align="center">{{ line.checkMethod }}</uni-td>
<uni-td width="150px" align="center">
<uni-data-checkbox v-if="line.inputType == 2" multiple v-model="line.qualityCheckResults" :localdata="line.selectValues"></uni-data-checkbox>
<uni-easyinput v-else v-model="line.qualityCheckResults"></uni-easyinput>
</uni-td>
</uni-tr>
<uni-tr v-for="(line, index) in qcAddList" :key="index + 'add'">
<uni-td align="center">
<view style="display:flex;">
<u-input disabled v-model="line.indexName" placeholder="选择质检项目"></u-input>
<u-button @tap="zjVisible = true, qcAddIndex = index" type="success" size="mini">选择质检项目</u-button>
</view>
</uni-td>
<uni-td align="center"></uni-td>
<uni-td width="150px" align="center">
<uni-easyinput v-model="line.qualityCheckResults"></uni-easyinput>
</uni-td>
</uni-tr>
</uni-table>
</view>
<u-modal
title="选择人员"
@confirm="userDetermine()"
show-cancel-button
:title-style="{ 'background-color': '#1E3770', color: '#FFFFFF', 'line-height': '37px', 'padding-top': '0px' }"
v-model="userTempVisible"
width="1300rpx"
>
<view class="feedback-card">
<User ref="userRef" v-if="userTempVisible" />
</view>
</u-modal>
</u-modal>
</template>
<script>
import UniEasyinput from '../../../../uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue';
import UButton from '../../../../uview-ui/components/u-button/u-button.vue';
import SearchInput from '@/components/ScanInput/index.vue';
import User from '@/components/User/User.vue';
export default {
components: {
SearchInput,
User,
UniEasyinput,
UButton
},
data() {
return {
qcForm: {
workorderCode: '',
arrangeCode: '',
processId: '',
ipqcName: '',
quantityCheck: 0,
quantityQualified: 0,
quantityUnqualified: 0,
inspectorNickName: '',
inspector: ''
},
Condition: {},
userTempVisible: false,
loading: false,
visable: true,
qcAddList: [],
qcLines: [],
qcAddList: [],
processList: []
}
},
methods: {
userDetermine() {
this.qcForm.inspectorNickName = this.$refs.userRef.tableSelectData[0]?.nickName;
this.qcForm.inspector = this.$refs.userRef.tableSelectData[0]?.userName;
},
async changeprocess() {
const res = await this.$u.api.generateItems({"workorderCode":this.qcForm.workorderCode,"arrangeCode":this.qcForm.arrangeCode,"qcTypes":"PATROL","processId":this.qcForm.processId})
// const res = await this.$u.api.generateItems({"workorderCode":"","arrangeCode":"BP24531002","qcTypes":"PATROL","processId":389})
if (res.code === 200) {
console.log(res.data)
this.qcLines = res.data.map((item) => {
let selectValues = item.selectValues;
let qualityCheckResults = item.qualityCheckResults;
if (item.inputType == 2) {
// selectValues = selectValues? JSON.parse(item.selectValues) : []
if (selectValues) {
const data = JSON.parse(item.selectValues);
selectValues = data.map((item) => {
return {
text: item.name,
value: item.name
};
});
} else {
selectValues = [];
}
qualityCheckResults = qualityCheckResults ? JSON.parse(item.qualityCheckResults) : [];
}
return {
...item,
selectValues,
qualityCheckResults
};
});
}
},
handleChangeQuantityCheck(e) {
console.log('sadasdas', e)
const sum = this.qcForm.quantityQualified + this.qcForm.quantityUnqualified;
this.$set(this.qcForm, 'quantityCheck', sum);
},
handleAddFirstEdit() {
this.qcAddList.push({
indexName: '',
qualityCheckResults: ''
})
},
async searchTask(val) {
const res = await this.$u.api.getQcCondition({
workorderCode: val,
arrangeCode: this.qcForm.arrangeCode
});
if (res.code === 200) {
if (!res.data) {
this.$u.toast('暂未查询到工序信息!');
}
this.Condition = res.data
this.qcForm.workorderCode = res.data.workorderCode
this.qcForm.arrangeCode = res.data.arrangeCode
if(res.data.processList && res.data.processList.length > 0){
this.processList = res.data.processList.map(v=>({text: v.processName, value: v.processId, code: v.processCode, workstationCode: v.workstationCode, workstationId: v.workstationId, workstationName: v.workstationName}))
}
}
},
async searWorkorder(val) {
const res = await this.$u.api.getQcCondition({
workorderCode: this.qcForm.workorderCode,
arrangeCode: val
});
if (res.code === 200) {
if (!res.data) {
this.$u.toast('暂未查询到工序信息!');
}
this.Condition = res.data
this.qcForm.workorderCode = res.data.workorderCode
this.qcForm.arrangeCode = res.data.arrangeCode
if(res.data.processList && res.data.processList.length > 0){
this.processList = res.data.processList.map(v=>({text: v.processName, value: v.processId, code: v.processCode, workstationCode: v.workstationCode, workstationId: v.workstationId, workstationName: v.workstationName}))
}
}
},
submitIpqc() {
if(!this.qcForm.processId) {
this.$u.toast('请输入工单编码或编排编码并选择工序!');
return;
}
const item = this.processList.find(v=>v.value === this.qcForm.processId)
this.$emit('confirm', {
...this.Condition,
...this.qcForm,
processCode: item.code,
processName: item.text,
workstationCode: item.workstationCode,
workstationId: item.workstationId,
workstationName: item.workstationName,
qcLines: this.qcLines
})
},
close(){
this.$emit('close')
}
}
}
</script>
<style>
.line-content-item {
width: 100%;
height: 300px;
display: flex;
flex-wrap: nowrap;
}
.line-table {
display: inline-block;
}
.addForm {
padding: 0 10px;
}
</style>
\ No newline at end of file
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
</view> </view>
<u-modal width="90%" @confirm="submitIpqc" v-model="qcModalFlag" :showConfirmButton="showIpqcConfirmButton" :showCancelButton="true" title="请填写检验单" content="操作内容"> <u-modal width="90%" @confirm="submitIpqc" v-model="qcModalFlag" :showConfirmButton="showIpqcConfirmButton" :showCancelButton="true" title="请填写检验单" content="操作内容">
<u-form ref="qcForm" label-width="90px"> <u-form ref="qcForm" label-width="90px" class="addForm">
<u-row> <u-row>
<u-col span="5"> <u-col span="5">
<u-form-item label="任务编号"> <u-form-item label="任务编号">
...@@ -317,6 +317,7 @@ ...@@ -317,6 +317,7 @@
</u-form> </u-form>
</uni-card> </uni-card>
</u-modal> </u-modal>
<addDialog v-if="addQuFlag" @confirm="submitIpqc" @close="addQuFlag=false" />
</view> </view>
</template> </template>
...@@ -326,6 +327,7 @@ import UButton from '../../../uview-ui/components/u-button/u-button.vue'; ...@@ -326,6 +327,7 @@ import UButton from '../../../uview-ui/components/u-button/u-button.vue';
import UniEasyinput from '../../../uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue'; import UniEasyinput from '../../../uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue';
import User from '@/components/User/User.vue'; import User from '@/components/User/User.vue';
import zjList from './components/zjList.vue'; import zjList from './components/zjList.vue';
import addDialog from './components/addDialog.vue';
export default { export default {
name: 'QcContent', name: 'QcContent',
...@@ -334,7 +336,8 @@ export default { ...@@ -334,7 +336,8 @@ export default {
UButton, UButton,
UniEasyinput, UniEasyinput,
User, User,
zjList zjList,
addDialog
}, },
dicts: ['mes_ipqc_type', 'mes_qc_result', 'mes_order_status', 'mes_defect_level'], dicts: ['mes_ipqc_type', 'mes_qc_result', 'mes_order_status', 'mes_defect_level'],
computed: { computed: {
...@@ -351,6 +354,7 @@ export default { ...@@ -351,6 +354,7 @@ export default {
btnType:'', btnType:'',
qcAddIndex: null, qcAddIndex: null,
zjVisible: false, zjVisible: false,
addQuFlag: false,
qcAddList: [], qcAddList: [],
tableSjColumn: [ tableSjColumn: [
{ {
...@@ -584,7 +588,9 @@ export default { ...@@ -584,7 +588,9 @@ export default {
const res = await this.$u.api.ipqcList(params); const res = await this.$u.api.ipqcList(params);
if (res.code === 200) { if (res.code === 200) {
this.qcList = res.rows; this.qcList = res.rows;
} } else {
this.qcList = []
}
}, },
async getQcFirstLines() { async getQcFirstLines() {
const res = await this.$u.api.ipqcList({ status: 'PREPARE' }); const res = await this.$u.api.ipqcList({ status: 'PREPARE' });
...@@ -604,16 +610,17 @@ export default { ...@@ -604,16 +610,17 @@ export default {
} }
}, },
async submitIpqc(status = 'PREPARE') { async submitIpqc(params={}) {
console.log('params', params)
// if (this.btnType === 'sjqrFinish') { // if (this.btnType === 'sjqrFinish') {
// this.firstCONFIRMED(this.qcForm); // this.firstCONFIRMED(this.qcForm);
// return; // return;
// } // }
if (!this.taskInfo) { if (!this.taskInfo && !params) {
this.$u.toast('请输入任务单号!'); this.$u.toast('请输入任务单号!');
return; return;
} }
let qcIpqclineList = this.qcLines.map((item) => { let qcIpqclineList = (params.qcLines || this.qcLines).map((item) => {
let selectValues = item.selectValues; let selectValues = item.selectValues;
let qualityCheckResults = item.qualityCheckResults; let qualityCheckResults = item.qualityCheckResults;
if (item.inputType == 2) { if (item.inputType == 2) {
...@@ -638,39 +645,39 @@ export default { ...@@ -638,39 +645,39 @@ export default {
const param = { const param = {
ipqcId: this.qcForm.ipqcId, ipqcId: this.qcForm.ipqcId,
ipqcCode: ipqcCode, ipqcCode: ipqcCode,
arrangeCode: params.arrangeCode || null,
ipqcName: this.qcForm.ipqcName, ipqcName: this.qcForm.ipqcName,
ipqcType: this.curQcType, ipqcType: this.curQcType,
templateId: this.qcForm.templateId, templateId: this.qcForm.templateId,
workorderId: this.taskInfo.workorderId, workorderId: params.workorderId || this.taskInfo.workorderId,
workorderCode: this.taskInfo.workorderCode, workorderCode: params.workorderCode || this.taskInfo.workorderCode,
workorderName: this.taskInfo.workorderName, workorderName: params.workorderName || this.taskInfo.workorderName,
taskId: this.taskInfo.taskId, taskId: this.taskInfo.taskId,
taskCode: this.taskInfo.taskCode, taskCode: this.taskInfo.taskCode,
taskName: this.taskInfo.taskName, taskName: this.taskInfo.taskName,
workstationId: this.taskInfo.workstationId, workstationId: params.workstationId || this.taskInfo.workstationId,
workstationCode: this.taskInfo.workstationCode, workstationCode: params.workstationCode || this.taskInfo.workstationCode,
workstationName: this.taskInfo.workstationName, workstationName: params.workstationName || this.taskInfo.workstationName,
processId: this.taskInfo.processId, processId: params.processId || this.taskInfo.processId,
processCode: this.taskInfo.processCode, processCode: params.processCode || this.taskInfo.processCode,
processName: this.taskInfo.processName, processName: params.processName || this.taskInfo.processName,
itemId: this.taskInfo.itemId, itemId: params.productId || this.taskInfo.itemId,
itemCode: this.taskInfo.itemCode, itemCode: params.productCode || this.taskInfo.itemCode,
itemName: this.taskInfo.itemName, itemName: params.productName || this.taskInfo.itemName,
specification: this.taskInfo.specification, specification: this.taskInfo.specification,
unitOfMeasure: this.taskInfo.unitOfMeasure, unitOfMeasure: params.unitOfMeasure || this.taskInfo.unitOfMeasure,
quantityCheck: this.qcForm.quantityCheck, quantityCheck: params.quantityCheck || this.qcForm.quantityCheck,
quantityUnqualified: this.qcForm.quantityUnqualified, quantityUnqualified: params.quantityUnqualified || this.qcForm.quantityUnqualified,
quantityQualified: this.qcForm.quantityQualified, quantityQualified: params.quantityQualified || this.qcForm.quantityQualified,
crRate: null, crRate: null,
majRate: null, majRate: null,
minRate: null, minRate: null,
crQuantity: null, crQuantity: null,
majQuantity: null, majQuantity: null,
minQuantity: null, minQuantity: null,
checkResult: this.qcForm.checkResult, checkResult: params ? null: this.qcForm.checkResult,
workorderId: this.qcForm.workorderId,
inspectDate: new Date(), inspectDate: new Date(),
inspector: this.qcForm.inspector, inspector: params.inspector || this.qcForm.inspector,
status: this.btnType === 'sjqrFinish'? 'CONFIRMED': 'PREPARE', status: this.btnType === 'sjqrFinish'? 'CONFIRMED': 'PREPARE',
qcIpqclineList qcIpqclineList
}; };
...@@ -688,6 +695,7 @@ export default { ...@@ -688,6 +695,7 @@ export default {
} else { } else {
this.$u.toast(res.msg); this.$u.toast(res.msg);
} }
this.addQuFlag=false
}, },
getTemplateLineList() { getTemplateLineList() {
this.$u.api this.$u.api
...@@ -729,7 +737,11 @@ export default { ...@@ -729,7 +737,11 @@ export default {
this.qcForm = { this.qcForm = {
quantityCheck: 0 quantityCheck: 0
}; };
this.qcModalFlag = true; if(this.curQcType === 'PATROL') {
this.addQuFlag = true
} else {
this.qcModalFlag = true;
}
if (this.curQcType === 'FIRST') { if (this.curQcType === 'FIRST') {
this.setDefaultQcForm(); this.setDefaultQcForm();
} }
...@@ -748,7 +760,7 @@ export default { ...@@ -748,7 +760,7 @@ export default {
const type = this.curQcType; const type = this.curQcType;
switch (type) { switch (type) {
case 'FIRST': // 首检 case 'FIRST': // 首检
return true; return false;
case 'FINAL': // 末检 case 'FINAL': // 末检
return true; return true;
case 'PATROL': // 巡检 case 'PATROL': // 巡检
...@@ -960,4 +972,7 @@ export default { ...@@ -960,4 +972,7 @@ export default {
margin: 1rpx auto; margin: 1rpx auto;
display: block; display: block;
} }
.addForm {
padding: 0 10px;
}
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment