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

巡检单临时提交

parent 6567d4b0
......@@ -88,6 +88,21 @@ const install = (Vue, vm) => {
config.adminPath + '/mobile/pro/protask/getProTaskByTaskCode',
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 = {}) =>
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 @@
</view>
<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-col span="5">
<u-form-item label="任务编号">
......@@ -317,6 +317,7 @@
</u-form>
</uni-card>
</u-modal>
<addDialog v-if="addQuFlag" @confirm="submitIpqc" @close="addQuFlag=false" />
</view>
</template>
......@@ -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 User from '@/components/User/User.vue';
import zjList from './components/zjList.vue';
import addDialog from './components/addDialog.vue';
export default {
name: 'QcContent',
......@@ -334,7 +336,8 @@ export default {
UButton,
UniEasyinput,
User,
zjList
zjList,
addDialog
},
dicts: ['mes_ipqc_type', 'mes_qc_result', 'mes_order_status', 'mes_defect_level'],
computed: {
......@@ -351,6 +354,7 @@ export default {
btnType:'',
qcAddIndex: null,
zjVisible: false,
addQuFlag: false,
qcAddList: [],
tableSjColumn: [
{
......@@ -584,7 +588,9 @@ export default {
const res = await this.$u.api.ipqcList(params);
if (res.code === 200) {
this.qcList = res.rows;
}
} else {
this.qcList = []
}
},
async getQcFirstLines() {
const res = await this.$u.api.ipqcList({ status: 'PREPARE' });
......@@ -604,16 +610,17 @@ export default {
}
},
async submitIpqc(status = 'PREPARE') {
async submitIpqc(params={}) {
console.log('params', params)
// if (this.btnType === 'sjqrFinish') {
// this.firstCONFIRMED(this.qcForm);
// return;
// }
if (!this.taskInfo) {
if (!this.taskInfo && !params) {
this.$u.toast('请输入任务单号!');
return;
}
let qcIpqclineList = this.qcLines.map((item) => {
let qcIpqclineList = (params.qcLines || this.qcLines).map((item) => {
let selectValues = item.selectValues;
let qualityCheckResults = item.qualityCheckResults;
if (item.inputType == 2) {
......@@ -638,39 +645,39 @@ export default {
const param = {
ipqcId: this.qcForm.ipqcId,
ipqcCode: ipqcCode,
arrangeCode: params.arrangeCode || null,
ipqcName: this.qcForm.ipqcName,
ipqcType: this.curQcType,
templateId: this.qcForm.templateId,
workorderId: this.taskInfo.workorderId,
workorderCode: this.taskInfo.workorderCode,
workorderName: this.taskInfo.workorderName,
workorderId: params.workorderId || this.taskInfo.workorderId,
workorderCode: params.workorderCode || this.taskInfo.workorderCode,
workorderName: params.workorderName || this.taskInfo.workorderName,
taskId: this.taskInfo.taskId,
taskCode: this.taskInfo.taskCode,
taskName: this.taskInfo.taskName,
workstationId: this.taskInfo.workstationId,
workstationCode: this.taskInfo.workstationCode,
workstationName: this.taskInfo.workstationName,
processId: this.taskInfo.processId,
processCode: this.taskInfo.processCode,
processName: this.taskInfo.processName,
itemId: this.taskInfo.itemId,
itemCode: this.taskInfo.itemCode,
itemName: this.taskInfo.itemName,
workstationId: params.workstationId || this.taskInfo.workstationId,
workstationCode: params.workstationCode || this.taskInfo.workstationCode,
workstationName: params.workstationName || this.taskInfo.workstationName,
processId: params.processId || this.taskInfo.processId,
processCode: params.processCode || this.taskInfo.processCode,
processName: params.processName || this.taskInfo.processName,
itemId: params.productId || this.taskInfo.itemId,
itemCode: params.productCode || this.taskInfo.itemCode,
itemName: params.productName || this.taskInfo.itemName,
specification: this.taskInfo.specification,
unitOfMeasure: this.taskInfo.unitOfMeasure,
quantityCheck: this.qcForm.quantityCheck,
quantityUnqualified: this.qcForm.quantityUnqualified,
quantityQualified: this.qcForm.quantityQualified,
unitOfMeasure: params.unitOfMeasure || this.taskInfo.unitOfMeasure,
quantityCheck: params.quantityCheck || this.qcForm.quantityCheck,
quantityUnqualified: params.quantityUnqualified || this.qcForm.quantityUnqualified,
quantityQualified: params.quantityQualified || this.qcForm.quantityQualified,
crRate: null,
majRate: null,
minRate: null,
crQuantity: null,
majQuantity: null,
minQuantity: null,
checkResult: this.qcForm.checkResult,
workorderId: this.qcForm.workorderId,
checkResult: params ? null: this.qcForm.checkResult,
inspectDate: new Date(),
inspector: this.qcForm.inspector,
inspector: params.inspector || this.qcForm.inspector,
status: this.btnType === 'sjqrFinish'? 'CONFIRMED': 'PREPARE',
qcIpqclineList
};
......@@ -688,6 +695,7 @@ export default {
} else {
this.$u.toast(res.msg);
}
this.addQuFlag=false
},
getTemplateLineList() {
this.$u.api
......@@ -729,7 +737,11 @@ export default {
this.qcForm = {
quantityCheck: 0
};
this.qcModalFlag = true;
if(this.curQcType === 'PATROL') {
this.addQuFlag = true
} else {
this.qcModalFlag = true;
}
if (this.curQcType === 'FIRST') {
this.setDefaultQcForm();
}
......@@ -748,7 +760,7 @@ export default {
const type = this.curQcType;
switch (type) {
case 'FIRST': // 首检
return true;
return false;
case 'FINAL': // 末检
return true;
case 'PATROL': // 巡检
......@@ -960,4 +972,7 @@ export default {
margin: 1rpx auto;
display: block;
}
.addForm {
padding: 0 10px;
}
</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