质量不合格部分缺陷修改

master
guoshuang 12 months ago
parent 19d5b99955
commit 1722abe0ab

@ -119,6 +119,7 @@ export default {
}
this.pickerVisable = true;
this.listData = this.options;
this.nSel = 0;
},
cancelSel() {
this.pickerVisable = false;

@ -0,0 +1,118 @@
<template>
<view class="content">
<u-modal v-model="isshow" @cancel="cancel" @confirm="confirm" :show-cancel-button="true" :show-title="false">
<uni-table class="badtable" ref="table" border emptyText="">
<uni-tr v-for="(item, index) in tagslist" :key="index">
<uni-td>{{ item.label }}</uni-td>
<uni-td width="50">
<u-input v-model="item.numberall" />
</uni-td>
<uni-td style="display: flex">
<!-- <uni-data-select
v-model="item.defect"
:localdata="defectList"
@change="selectProductlocCode7($event,item,index)"
></uni-data-select> -->
<jPicker style="height: 80rpx" moren="请选择" sureColor="#ff0000" @bindpicker="selectProductlocCode7($event, item, index)" showKey="label" valKey="value" :val="item.defect" :options="item.defectList" />
<!-- <u-icon size="28" name="close" @click="cleardefect(item.defect,index)"></u-icon> -->
</uni-td>
</uni-tr>
</uni-table>
</u-modal>
</view>
</template>
<script>
import jPicker from '@/components/J-Picker/jPicker.vue';
import model from './model';
//import UniTd from '../uni-table/components/uni-td/uni-td.vue';
export default {
name: 'badtable',
components: {
jPicker,
},
data() {
return {
model: model,
isshow: false,
tagslist: [],
tagslistcopy: [],
itemindex: '',
range: [
{ value: 0, label: '篮球' },
{ value: 1, label: '足球' },
{ value: 2, label: '游泳' },
],
};
},
props: ['options', 'moren', 'showKey', 'valKey', 'val', 'position', 'disabled', 'bgColor', 'sureColor', 'focus', 'defectList'],
methods: {
async open(item, index) {
console.log(item, index);
this.itemindex = index;
this.tagslist = JSON.parse(JSON.stringify(item.babtype));
this.tagslist.forEach((item) => {
item.defectList = [];
//console.log("item.defectList0```````:", item);
});
for (let tag of this.tagslist) {
await this.model.getdefectList(tag.defectCode);
tag.defectList = this.model.alldefectList;
}
console.log('this.tagslist是什么样的:', this.tagslist);
this.tagslistcopy = JSON.parse(JSON.stringify(this.tagslist));
this.isshow = true;
},
selectProductlocCode7(e, item, index) {
this.tagslist[index].defect = e.pickerName.value;
//item.defect = e.pickerName.value;
console.log('e:', item);
console.log('this.tagslist[index]:', this.tagslist[index]);
},
cancel() {
this.tagslist = this.tagslistcopy;
this.tagslist.forEach((item) => {
if (item.numberall == '') {
item.numberall = 0;
}
});
this.$emit('bindtypelist', this.tagslist, this.itemindex);
},
confirm() {
this.tagslist.forEach((item) => {
if (item.numberall == '') {
item.numberall = 0;
}
console.log('item:', item.defect);
// if(item.defect == undefined){
// item.defect = '';
// }
if (item.numberall != 0 && item.defect == undefined) {
item.defect = '';
}
// else if(item.numberall==0 && item.defect == undefined){
// item.defect = '';
// }
});
console.log('this.tagslist:', this.tagslist);
this.$emit('bindtypelist', this.tagslist, this.itemindex);
},
cleardefect(params, index) {
this.tagslist[index].defect = undefined;
},
},
computed: {},
};
</script>
<style>
.content {
padding: 20rpx;
margin: 30rpx;
}
.badtable {
padding: 20rpx;
}
</style>

@ -0,0 +1,49 @@
import { getModule, Module, MutationAction, VuexModule } from 'vuex-module-decorators';
import store from '@/store';
import http from '@/utils/request';
import { url } from '@/utils/url';
@Module({
namespaced: true,
dynamic: true,
store,
name: 'page.raw.badtable',
})
export class badtable extends VuexModule {
locList2: any = [];
materialtypeList: any = '';
@MutationAction
async getmaterialTypePDA() {
const result: any = await http.get(url.lanjuquality.Materialinspection.getDictData, {
//loginName: session.loginName,
params: {
dictType: 'material_type_oa',
},
});
console.log(result);
const materialtypeList: [] = result;
const locList2 = materialtypeList.map((item: any) => ({
label: item.ymdTypeName,
value: item.ymdType,
}));
return { locList2 };
}
alldefectList: any = [];
@MutationAction
async getdefectList(params) {
const result: any = await http.get(url.lanjuquality.Materialinspection.getClassInfoList, {
//loginName: session.loginName,
params: {
defectCode: params,
},
});
console.log(result);
const materialtypeList: [] = result.data;
const alldefectList = materialtypeList.map((item: any) => ({
label: item.className,
value: item.id,
}));
return { alldefectList };
}
}
export default getModule(badtable);

@ -142,8 +142,8 @@ export default class LoginPage extends BasePage {
// console.log('Version////', this.Version);
}
///******************
version = '0.0.96'; //
//version = '0.0.9'; //
//version = '0.0.96'; //
version = '0.0.10'; //
//*************** false true ****************
//isTest = true;

@ -229,10 +229,9 @@
<u-form-item label="不合格描述:">
<u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" />
</u-form-item>
<u-form-item label="不良分类:">
<!-- <u-form-item label="不良分类:">
<jPicker sureColor="#ff0000" :moren="moren19" @bindpicker="selectdisqualification" showKey="label" valKey="value" :val="selectdisqualificationType.value" :options="disqualificationlist" />
<!-- <u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" /> -->
</u-form-item>
</u-form-item> -->
</div>
<div v-show="formdata.startOA == '1'">
<u-form-item label="来料类别:">
@ -279,11 +278,9 @@
<u-form-item label="不合格描述:">
<u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" />
</u-form-item>
<u-form-item label="不良分类:">
<!-- <u-form-item label="不良分类:">
<jPicker sureColor="#ff0000" :moren="moren19" @bindpicker="selectdisqualification" showKey="label" valKey="value" :val="selectdisqualificationType.value" :options="disqualificationlist" />
<!-- <u-input style="background: #fafafa; border: 1px dashed #e2e2e2; padding: 10px 5px" v-model="formdata.remark" placeholder="" type="textarea" /> -->
</u-form-item>
</u-form-item> -->
</div>
<div v-show="formdata.startOA == '1'">
<u-form-item label="生产数量:">
@ -377,7 +374,8 @@
<jPicker style="border: 1px solid #dcdfe6; padding: 8px 18px" sureColor="#ff0000" :moren="moren8" @bindpicker="selectProductlocCode7" showKey="label" valKey="value" :val="selectList5.value" :options="model.locList5" />
</div>
</u-modal>
<badtype sureColor="#ff0000" ref="babtype" :showtype="isshowtype" @bindtypelist="selectbabTypelist" showKey="label" valKey="value" :options="model.locList1" />
<!-- <badtype sureColor="#ff0000" ref="babtype" :showtype="isshowtype" @bindtypelist="selectbabTypelist" showKey="label" valKey="value" :options="model.locList1" /> -->
<badtable sureColor="#ff0000" ref="badtable" @bindtypelist="selectbabTypelist" :showtype="isshowtype" :options="model.locList1" :defectList="disqualificationlist" />
<u-toast ref="uToast" />
<u-popup v-model="showsing" mode="center" width="98%">
<f-signature @getImg="getImg" @cancel="cancelsing"></f-signature>
@ -389,16 +387,20 @@ import { Component } from 'vue-property-decorator';
import { BasePage } from '@/components/base/page';
import jPicker from '@/components/J-Picker/jPicker.vue';
import badtype from '@/components/bad-type/bad-type.vue';
import badtable from '@/components/bad-table/bad-table.vue';
import model from './model';
import { session } from '@/store/modules/session';
import fSignature from '@/components/f-signature/f-signature.vue';
//import UniTable from '@/components/uni-table/components/uni-table/uni-table.vue';
const mpaasScanModule: any = uni.requireNativePlugin('Mpaas-Scan-Module');
@Component({
components: {
jPicker,
badtype,
badtable,
fSignature,
//UniTable,
},
})
export default class PurchaseWHSRM extends BasePage {
@ -796,7 +798,7 @@ export default class PurchaseWHSRM extends BasePage {
this.selectZLType.value = dataobj.pgzr; //
this.detaillistceshi = dataobj.qcCheckTaskDetails;
this.detaillistdefects = dataobj.defects;
this.selectdisqualificationType.value = dataobj.remarkCode; //
///this.selectdisqualificationType.value = dataobj.remarkCode; //
this.detaillistdefects.forEach((item) => {
if (item.noOkQuality == null) {
item.noOkQuality = 0;
@ -811,15 +813,32 @@ export default class PurchaseWHSRM extends BasePage {
item.factoryCode = session.PoolName;
item.checkType = this.selectList.value;
item.orderCode = this.clickitem.orderNo;
item.files = [];
if (!item.files) {
item.files = []; ///.........
} else {
item.files = item.files.map((item) => {
return item.fileAddress;
});
item.fileListStr = item.files.join(',');
}
let classTypeCodeslist = [];
if (item.classTypeCodes != null && item.classTypeCodes != '') {
classTypeCodeslist = item.classTypeCodes.split(',');
// classTypeCodeslist = classTypeCodeslist.filter(function(code) {
// return code.trim() !== ''; // 使 trim()
// });
//console.log('classTypeCodeslist...',classTypeCodeslist);
}
let defectObj = {};
let classTypeCodesobj = {};
if (item.defectNames != null) {
item.defectNames.split(',').forEach((item) => {
item.defectNames.split(',').forEach((item, index) => {
let [key, value] = item.split(':');
defectObj[key.trim()] = parseFloat(value.trim());
classTypeCodesobj[key.trim()] = classTypeCodeslist[index];
});
// console.log(defectObj, '');
// console.log(this.defectCodelist, '');
//console.log('',this.defectCodelist);
let olddefectCodelist = [];
olddefectCodelist = JSON.parse(JSON.stringify(this.defectCodelist));
// console.log(olddefectCodelist, 'old');
@ -828,6 +847,10 @@ export default class PurchaseWHSRM extends BasePage {
// console.log('', defectObj[item.label]);
item.numberall = defectObj[item.label];
}
if (Object.prototype.hasOwnProperty.call(classTypeCodesobj, item.label)) {
//console.log('', defectObj[item.label]);
item.defect = classTypeCodesobj[item.label];
}
});
item.babtype = olddefectCodelist;
} else {
@ -892,6 +915,7 @@ export default class PurchaseWHSRM extends BasePage {
let defectCode = [];
let defectQuality = [];
let defectlabel = [];
let classTypeCodes = [];
// a.label = item.label;
// a.defectCode = item.value;
// a.numberall = 0;
@ -902,10 +926,16 @@ export default class PurchaseWHSRM extends BasePage {
defectQuality.push(item.numberall);
defectlabel.push(a);
}
//console.log(item.defect, '0000');
if (item.defect != undefined) {
classTypeCodes.push(item.defect);
}
});
this.detaillistceshi[index].defectCodes = defectCode.join(',');
this.detaillistceshi[index].defectQualitys = defectQuality.join(',');
this.detaillistceshi[index].defectNames = defectlabel.join(',');
this.detaillistceshi[index].classTypeCodes = classTypeCodes.join(',');
//console.log( '',this.detaillistceshi[index].classTypeCodes)
const mergedObject = {};
for (let index = 0; index < this.detaillistceshi.length; index++) {
this.detaillistceshi[index].babtype.forEach((obj) => {
@ -1019,10 +1049,10 @@ export default class PurchaseWHSRM extends BasePage {
this.selectZLType = e.pickerName;
this.formdata.pgzr = this.selectZLType.value;
}
async selectdisqualification(e: any) {
this.selectdisqualificationType = e.pickerName;
this.formdata.remarkCode = this.selectdisqualificationType.value;
}
// async selectdisqualification(e: any) {
// this.selectdisqualificationType = e.pickerName;
// this.formdata.remarkCode = this.selectdisqualificationType.value;
// }
focustype(item, value, index) {
//console.log('',item,value,index);
@ -1030,7 +1060,8 @@ export default class PurchaseWHSRM extends BasePage {
this.$nextTick(() => {
this.isfocus = true;
});
(this.$refs.babtype as any).open(item, index);
//openbad(item, index);
(this.$refs.badtable as any).open(item, index);
}
focus(item, value, index) {
if (this.detaillistceshi[index].upperDiff == null && this.detaillistceshi[index].downDiff == null) {
@ -1166,7 +1197,7 @@ export default class PurchaseWHSRM extends BasePage {
}
if (this.selectList.value == 'checkTypeLL') {
if (this.formdata.checkResult == 'N') {
if (this.formdata.remarkCode === null || this.formdata.remarkCode === '') {
if (this.formdata.remark === null || this.formdata.remark === '') {
(this.$refs.uToast as any).show({
title: '不合格描述不能为空',
type: 'default',
@ -1184,7 +1215,7 @@ export default class PurchaseWHSRM extends BasePage {
}
//oa
if (this.selectList.value == 'checkTypeLL') {
if (this.formdata.checkResult == 'N') {
if (this.formdata.startOA == '1') {
if (this.formdata.materialType === null || this.formdata.materialType === '') {
(this.$refs.uToast as any).show({
title: '请选择来料类别',
@ -1210,7 +1241,7 @@ export default class PurchaseWHSRM extends BasePage {
}
//oa
if (this.selectList.value == 'checkTypeSC' || this.selectList.value == 'checkTypeSCXJ' || this.selectList.value == 'checkTypeCP') {
if (this.formdata.checkResult == 'N') {
if (this.formdata.startOA == '1') {
if (this.formdata.checkLoc === null || this.formdata.checkLoc === '') {
(this.$refs.uToast as any).show({
title: '请输入发现地点',
@ -1356,7 +1387,7 @@ export default class PurchaseWHSRM extends BasePage {
//
checkResult: this.formdata.checkResult,
//
remarkCode: this.formdata.remarkCode,
remarkCode: null,
//
remark: this.formdata.remark,
//
@ -1428,7 +1459,7 @@ export default class PurchaseWHSRM extends BasePage {
//
checkResult: this.formdata.checkResult,
//
remarkCode: this.formdata.remarkCode,
remarkCode: null,
//
remark: this.formdata.remark,
//
@ -1484,7 +1515,7 @@ export default class PurchaseWHSRM extends BasePage {
//
checkResult: this.formdata.checkResult,
//
remarkCode: this.formdata.remarkCode,
remarkCode: null,
//
remark: this.formdata.remark,
//
@ -1574,6 +1605,9 @@ export default class PurchaseWHSRM extends BasePage {
}
showScreenImg(i, files) {
let list = files;
// .map((item) => {
// return item.fileAddress;
// });
uni.previewImage({
current: i,
urls: list,
@ -1604,7 +1638,7 @@ export default class PurchaseWHSRM extends BasePage {
uni.uploadFile({
url: 'http://192.168.202.20:9000/prod-api/file/upload',
// url: '/prod-api/file/upload',
// url: '/dev-api/file/upload',
//url: '/dev-api/file/upload',
fileType: 'image',
filePath: item,
header: {
@ -1821,7 +1855,7 @@ export default class PurchaseWHSRM extends BasePage {
//
checkResult: this.formdata.checkResult,
//
remarkCode: this.formdata.remarkCode,
remarkCode: null,
//
remark: this.formdata.remark,
//
@ -1857,6 +1891,7 @@ export default class PurchaseWHSRM extends BasePage {
//qc
qczg: this.formdata.qcFrom,
};
//console.log('稿params', params);
await model.commitDraft(params); //99999
}
@ -1869,7 +1904,7 @@ export default class PurchaseWHSRM extends BasePage {
}
async getImg(e) {
uni.uploadFile({
url: '/prod-api/file/upload',
url: '/dev-api/file/upload',
filePath: e, // You may need to save the blob as a file first or use a temp path
name: 'file',
formData: {

@ -298,6 +298,8 @@ export const url = {
commitCheckResultsCg: qianzhuione + '/quality/handCheck/commitCheckResultsCg',
getCheckTaskDetailListCG: qianzhuione + '/quality/handCheck/getCheckTaskDetailListCg',
getdisqualification: qianzhuione + '/system/dict/data/getDictData',
getClassInfoList: qianzhuione + '/quality/defectClass/getClassInfoList',
getCheckTaskDetailListCg: qianzhuione + '/quality/handCheck/getCheckTaskDetailListCg',
},
// 历史记录
Records: {

Loading…
Cancel
Save