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

<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>