You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
293 lines
7.4 KiB
293 lines
7.4 KiB
<template>
|
|
<view class="">
|
|
<uni-popup ref="editPopup" class="nopadpop camera_pop" :maskClick="false">
|
|
<view class="uni-list popuni_list camera_list">
|
|
<view class="list_cell uni-flex uni-row space-between">
|
|
<view class="title">箱码</view>
|
|
<text class="info">{{dataContent.packingNumber}}</text>
|
|
</view>
|
|
<view class="list_cell uni-flex uni-row space-between">
|
|
<view class="title">收货数量</view>
|
|
<view class="uni-flex uni-row u-col-center">
|
|
<text class="info">{{dataContent.qty}}</text>
|
|
<uom :uom="dataContent.uom"></uom>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="list_cell uni-flex uni-row space-between">
|
|
<view class="title">不合格数量</view>
|
|
<view class="uni-flex uni-row u-col-center" style="">
|
|
<input class="qty_inspect_input" v-model="dataContent.failedQty" :focus="true" type="number" @input="checkNum" :maxlength="maxlength" />
|
|
<uom :uom="dataContent.uom"></uom>
|
|
</view>
|
|
|
|
</view>
|
|
<view class="list_cell uni-flex uni-row space-between">
|
|
<view class="title">报废数量</view>
|
|
<view class="uni-flex uni-row u-col-center" style="">
|
|
<input class="qty_inspect_input" v-model="dataContent.crackQty" :focus="true" type="number" @input="checkNum" :maxlength="maxlength" />
|
|
<uom :uom="dataContent.uom"></uom>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="list_cell uni-flex uni-row space-between">
|
|
<view class="title">不合格原因</view>
|
|
<view class="info" style="padding: 0;">
|
|
<uni-data-picker :class="disabled===true?'disabled':''" :border="false" placeholder="请选择原因"
|
|
popup-title="不合格原因" :localdata="failedReasonArray" v-model="dataContent.failedReason">
|
|
</uni-data-picker>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="list_cell uni-flex uni-row space-between">
|
|
<view class="title">检验结果</view>
|
|
<view class="info" style="padding: 0;">
|
|
<uni-data-picker :class="disabled===true?'disabled':''" :border="false" placeholder="请选择检验结果"
|
|
popup-title="检验结果" :localdata="inspectResultArray" v-model="dataContent.inspectResult">
|
|
</uni-data-picker>
|
|
</view>
|
|
</view>
|
|
|
|
<uploadCamera ref="uploadImage" style="margin: 10rpx;" :disabled="disabled" @delete="deleteImg"
|
|
@select="select"></uploadCamera>
|
|
</view>
|
|
<view class="pop_btn uni-flex uni-row space-between" v-if="!disabled">
|
|
<button class="cancel" @click="back">返回</button>
|
|
<button class="save" @click="save">保存</button>
|
|
</view>
|
|
</uni-popup>
|
|
<comMessage ref="comMessage"></comMessage>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
getInspectFailedReasonList,
|
|
getInspectResultList
|
|
} from '@/common/directory.js';
|
|
|
|
import {
|
|
deepCopyData,
|
|
} from '@/common/basic.js';
|
|
|
|
import {
|
|
calc,
|
|
} from '@/common/calc.js';
|
|
|
|
import {
|
|
uploadFile,
|
|
getFileList,
|
|
deleteFileById
|
|
} from '@/api/request2.js';
|
|
|
|
import comMessage from '@/mycomponents/common/comMessage.vue'
|
|
import uploadCamera from '@/pages/inspect/coms/uploadCamera.vue'
|
|
import uom from '@/mycomponents/qty/uom.vue'
|
|
export default {
|
|
components: {
|
|
uploadCamera,
|
|
comMessage,
|
|
uom
|
|
},
|
|
name: 'receipt_check',
|
|
data() {
|
|
return {
|
|
id: '',
|
|
failedReasonIndex: 0,
|
|
failedReasonArray: [],
|
|
dataContent: {},
|
|
inspectResultArray: [],
|
|
picInfoList: [],
|
|
maxlength: 10
|
|
}
|
|
},
|
|
props: {
|
|
// dataContent: {
|
|
// type: Object,
|
|
// value: null
|
|
// },
|
|
|
|
disabled: {
|
|
type: Boolean,
|
|
value: true
|
|
},
|
|
},
|
|
|
|
methods: {
|
|
checkNum(e) {
|
|
let value = e.detail.value;
|
|
let dot = value.indexOf('.'); //包含小数点
|
|
let reg = /^[0-9]+$/; //正整数
|
|
if (dot > -1) {
|
|
this.maxlength = dot + 7; //长度是小数点后两位
|
|
if (value.length > dot + 7) {
|
|
|
|
}
|
|
}
|
|
if (reg.test(value)) { //如果是正整数不包含小数点
|
|
this.maxlength = 10;
|
|
}
|
|
},
|
|
openEditPopup(item) {
|
|
this.failedReasonArray = getInspectFailedReasonList();
|
|
this.inspectResultArray =getInspectResultList()
|
|
//拷贝数据到页面显示,防止修改数据原数据修改
|
|
this.dataContent = deepCopyData(item);
|
|
this.getFileList();
|
|
this.$refs['editPopup'].open("bottom");
|
|
|
|
},
|
|
|
|
getFileList() {
|
|
getFileList("jobInspectDetail", this.dataContent.id).then(res => {
|
|
if(res.data){
|
|
var imageFiles = [];
|
|
res.data.forEach(item=>{
|
|
var image = this.createImage(item.id, item.url, item.path, item.size)
|
|
imageFiles.push(image)
|
|
})
|
|
}
|
|
|
|
if (imageFiles.length > 0) {
|
|
this.$nextTick(function() {
|
|
this.$refs.uploadImage.setFiles(imageFiles);
|
|
this.setPhotosInfo();
|
|
})
|
|
|
|
}
|
|
})
|
|
},
|
|
|
|
setPhotosInfo(){
|
|
var list = this.$refs.uploadImage.getFiles()
|
|
var photoItem = "";
|
|
for (var i = 0; i < list.length; i++) {
|
|
if (list.length - 1 == i) {
|
|
photoItem = photoItem + list[i].url
|
|
} else {
|
|
photoItem = photoItem + list[i].url + ","
|
|
}
|
|
}
|
|
this.dataContent.photos = photoItem;
|
|
},
|
|
|
|
|
|
createImage(id, url, fileName, size) {
|
|
|
|
let image = {
|
|
id: id,
|
|
name: fileName,
|
|
extname: "png",
|
|
fileType: "image",
|
|
url: url,
|
|
size: size,
|
|
image: {
|
|
width: 175,
|
|
height: 175,
|
|
location: url,
|
|
},
|
|
path: url,
|
|
progress: 100,
|
|
status: "ready"
|
|
}
|
|
|
|
return image;
|
|
},
|
|
|
|
deleteImg(content) {
|
|
var id = content.id
|
|
if (id != undefined) {
|
|
deleteFileById(id).then(res => {
|
|
if (res.data) {
|
|
uni.showToast({
|
|
title: "删除成功"
|
|
})
|
|
}
|
|
}).catch(error => {
|
|
console.log(error)
|
|
})
|
|
} else {
|
|
this.getFileList();
|
|
}
|
|
|
|
},
|
|
select(content) {
|
|
this.uploadFile(content);
|
|
},
|
|
|
|
back() {
|
|
this.$refs['editPopup'].close();
|
|
// this.afterSave()
|
|
},
|
|
maskClick() {
|
|
|
|
},
|
|
|
|
afterSave() {
|
|
this.$emit('getInspectResult', this.dataContent)
|
|
this.$refs['editPopup'].close();
|
|
},
|
|
showMessage(message) {
|
|
this.$refs.comMessage.showErrorMessage(message, res => {
|
|
if (res) {
|
|
// this.afterCloseMessage()
|
|
}
|
|
});
|
|
},
|
|
|
|
|
|
save() {
|
|
var failedQty = Number(this.dataContent.failedQty);
|
|
var crackQty = Number(this.dataContent.crackQty);
|
|
var qty = Number(this.dataContent.qty);
|
|
if (calc.add(crackQty,failedQty)> qty) {
|
|
var total = calc.add(crackQty,failedQty)
|
|
this.showMessage("不合格数[" + failedQty + "]+报废数量[" + crackQty + "]等于[" + total + "]大于收货数量[" +
|
|
qty + "]")
|
|
return
|
|
}
|
|
if (failedQty > 0 || crackQty > 0) {
|
|
if (this.dataContent.failedReason == null||this.dataContent.failedReason == "") {
|
|
this.showMessage("请选择不合格原因")
|
|
return
|
|
}
|
|
}
|
|
|
|
if(this.dataContent.inspectResult == null||this.dataContent.inspectResult == ""){
|
|
this.showMessage("请选择检验结果")
|
|
return;
|
|
}
|
|
|
|
this.dataContent.failedQty = failedQty;
|
|
this.dataContent.crackQty = crackQty
|
|
var temp=calc.sub(this.dataContent.handleQty,failedQty);
|
|
this.dataContent.goodQty =calc.sub(temp,failedQty,crackQty);
|
|
this.afterSave()
|
|
|
|
|
|
},
|
|
uploadFile(content) {
|
|
uploadFile("jobInspectDetail", this.dataContent.id, content.path, res => {
|
|
if (res != undefined) {
|
|
uni.showToast({
|
|
title: "上传成功"
|
|
})
|
|
} else {
|
|
uni.showToast({
|
|
title: "上传失败"
|
|
})
|
|
}
|
|
this.getFileList();
|
|
})
|
|
}
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.disabled {
|
|
pointer-events: none;
|
|
}
|
|
</style>
|
|
|