|
|
@@ -4,37 +4,33 @@
|
|
|
color="#000" @clickLeft="back">
|
|
|
</uni-nav-bar>
|
|
|
|
|
|
-
|
|
|
<view class="list_box">
|
|
|
<u-list @scrolltolower="scrolltolower">
|
|
|
- <view class="card_box" v-for="(item,index) in List" :key="index">
|
|
|
- <workOrderBom :item='item' v-if='item' @handleScan='handleWordScan'></workOrderBom>
|
|
|
+ <view class="card_box" v-for="(item, index) in List" :key="index">
|
|
|
+ <workOrderBom :item="item" v-if="item" @handleScan="handleWordScan"></workOrderBom>
|
|
|
|
|
|
- <deviceBom v-if='item.equipmentList.length != 0' :workOrderId='item.workOrderId'
|
|
|
- :list='item.equipmentList' @scanIt='scanIt'></deviceBom>
|
|
|
+ <deviceBom v-if="item.equipmentList.length != 0" :workOrderId="item.workOrderId"
|
|
|
+ :list="item.equipmentList" @scanIt="scanIt"></deviceBom>
|
|
|
|
|
|
- <turnoverBom v-if='item.turnover.length != 0' :list='item.turnover' :wordItem='item' pattern='job'>
|
|
|
+ <turnoverBom v-if="item.turnover.length != 0" :list="item.turnover" :wordItem="item" pattern="job">
|
|
|
</turnoverBom>
|
|
|
|
|
|
-
|
|
|
-
|
|
|
<view class="operate_box rx-sc">
|
|
|
<u-button size="small" class="u-reset-button" type="success"
|
|
|
@click="handAdd(item.workOrderId)">手动添加</u-button>
|
|
|
<u-button size="small" class="u-reset-button" type="success"
|
|
|
@click="scanIt(item.workOrderId)">扫一扫</u-button>
|
|
|
- </view>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <diagramLast :item='item.lastObj' v-if='item && item.workOrderType != 2'></diagramLast>
|
|
|
|
|
|
-
|
|
|
- <inspectionBom v-if='inspectionList.length' :inspectionList='inspectionList'
|
|
|
- :normalQuality='item.normalQuality'></inspectionBom>
|
|
|
+ <u-button size="small" class="u-reset-button" type="success" @click="handQuality">质检</u-button>
|
|
|
+ </view>
|
|
|
|
|
|
|
|
|
+ <diagramLast v-if="item && Object.prototype.hasOwnProperty.call(item, 'lastObj') &&
|
|
|
+ item.workOrderType !=2" :item="item.lastObj"></diagramLast>
|
|
|
|
|
|
+ <inspectionBom
|
|
|
+ v-if='Object.prototype.hasOwnProperty.call(item, "semiProductList") && item.semiProductList'
|
|
|
+ :semiProductList='item.semiProductList'></inspectionBom>
|
|
|
</view>
|
|
|
</u-list>
|
|
|
</view>
|
|
|
@@ -42,32 +38,25 @@
|
|
|
<view class="bottom-wrapper">
|
|
|
<view class="btn_box" @click="save">确认</view>
|
|
|
</view>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
</view>
|
|
|
-
|
|
|
-
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import {
|
|
|
workorderList,
|
|
|
- getLastTreeByPid,
|
|
|
scanLedger,
|
|
|
- qualityReview
|
|
|
- } from '@/api/pda/workOrder.js'
|
|
|
+ qualityQy
|
|
|
+ } from "@/api/pda/workOrder.js";
|
|
|
import {
|
|
|
batchSave
|
|
|
- } from '@/api/pda/feeding.js'
|
|
|
+ } from "@/api/pda/feeding.js";
|
|
|
|
|
|
- import workOrderBom from '../../feeding/components/workOrderBom.vue'
|
|
|
- import inspectionBom from '../components/inspectionBom.vue'
|
|
|
- import deviceBom from '../../feeding/components/deviceBom.vue'
|
|
|
- import diagramLast from '../components/diagramLast.vue'
|
|
|
+ import workOrderBom from "../../feeding/components/workOrderBom.vue";
|
|
|
+ import inspectionBom from "../components/inspectionBom.vue";
|
|
|
+ import deviceBom from "../../feeding/components/deviceBom.vue";
|
|
|
+ import diagramLast from "../components/diagramLast.vue";
|
|
|
|
|
|
- import turnoverBom from '../../sample/components/turnoverBom.vue'
|
|
|
+ import turnoverBom from "../../sample/components/turnoverBom.vue";
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
|
@@ -75,7 +64,7 @@
|
|
|
inspectionBom,
|
|
|
deviceBom,
|
|
|
diagramLast,
|
|
|
- turnoverBom
|
|
|
+ turnoverBom,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -83,27 +72,17 @@
|
|
|
id: null,
|
|
|
taskId: null,
|
|
|
|
|
|
- inspectionId: null,
|
|
|
- inspectionName: null,
|
|
|
List: [],
|
|
|
- inspectionList: [],
|
|
|
-
|
|
|
- isLastJob: true
|
|
|
|
|
|
-
|
|
|
- }
|
|
|
+ };
|
|
|
},
|
|
|
|
|
|
onLoad(options) {
|
|
|
- this.title = options.taskName ? options.taskName + '-' + options.inspectionName : '质检'
|
|
|
- this.inspectionId = options.inspectionId
|
|
|
- this.inspectionName = options.inspectionName
|
|
|
- this.id = options.workOrderId
|
|
|
- this.taskId = options.taskId
|
|
|
- this.getList()
|
|
|
-
|
|
|
+ this.title = options.taskName || '质检'
|
|
|
+ this.id = options.workOrderId;
|
|
|
+ this.taskId = options.taskId;
|
|
|
+ this.getList();
|
|
|
|
|
|
- this.getLastTree()
|
|
|
|
|
|
},
|
|
|
|
|
|
@@ -111,30 +90,26 @@
|
|
|
uni.$off("setSelectList");
|
|
|
|
|
|
uni.$on("setSelectList", (selectList, id) => {
|
|
|
-
|
|
|
- this.List.forEach(m => {
|
|
|
+ this.List.forEach((m) => {
|
|
|
if (m.workOrderId == id) {
|
|
|
- let equipmentList = [] // 生产设备
|
|
|
- let turnover = []
|
|
|
+ let equipmentList = []; // 生产设备
|
|
|
+ let turnover = [];
|
|
|
|
|
|
- selectList.forEach(f => {
|
|
|
+ selectList.forEach((f) => {
|
|
|
if (f.rootCategoryLevelId == 4) {
|
|
|
- equipmentList = equipmentList.concat(f)
|
|
|
+ equipmentList = equipmentList.concat(f);
|
|
|
}
|
|
|
|
|
|
if (f.rootCategoryLevelId == 7) {
|
|
|
- turnover = turnover.concat(f)
|
|
|
+ turnover = turnover.concat(f);
|
|
|
}
|
|
|
- })
|
|
|
-
|
|
|
- this.$set(m, 'equipmentList', equipmentList)
|
|
|
- this.$set(m, 'turnover', turnover)
|
|
|
+ });
|
|
|
|
|
|
+ this.$set(m, "equipmentList", equipmentList);
|
|
|
+ this.$set(m, "turnover", turnover);
|
|
|
}
|
|
|
-
|
|
|
- })
|
|
|
-
|
|
|
- })
|
|
|
+ });
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
@@ -142,202 +117,157 @@
|
|
|
workorderList({
|
|
|
ids: [this.id],
|
|
|
taskId: this.taskId,
|
|
|
+ }).then((res) => {
|
|
|
+ this.List = res.map((m) => {
|
|
|
+ m.workOrderId = m.id;
|
|
|
|
|
|
- }).then(res => {
|
|
|
-
|
|
|
-
|
|
|
- this.List = res.map(m => {
|
|
|
- m.workOrderId = m.id
|
|
|
-
|
|
|
- m.equipmentList = [] // 设备
|
|
|
- m.turnover = [] // 周转车
|
|
|
-
|
|
|
-
|
|
|
- if (m.normalQuality == null) {
|
|
|
- this.isLastJob = false
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if (!Object.prototype.hasOwnProperty.call(m, 'normalQuality')) {
|
|
|
- this.$set(m, 'normalQuality', {})
|
|
|
- }
|
|
|
- m.normalQuality.quantity = 0
|
|
|
- m.normalQuality.inspectionId = this.inspectionId
|
|
|
- m.normalQuality.inspectionName = this.inspectionName
|
|
|
-
|
|
|
+ m.equipmentList = []; // 设备
|
|
|
+ m.turnover = []; // 周转车
|
|
|
|
|
|
|
|
|
m.lastObj = {
|
|
|
formedNum: m.formedNumLast,
|
|
|
taskNameLast: m.taskNameLast,
|
|
|
- unit: m.unit
|
|
|
- }
|
|
|
- m.feedType = 3
|
|
|
-
|
|
|
+ unit: m.unit,
|
|
|
+ };
|
|
|
+ m.feedType = 3;
|
|
|
|
|
|
-
|
|
|
-
|
|
|
- delete m.id
|
|
|
+ delete m.id;
|
|
|
|
|
|
if (this.taskId) {
|
|
|
- m.taskId = this.taskId
|
|
|
+ m.taskId = this.taskId;
|
|
|
}
|
|
|
+
|
|
|
return {
|
|
|
- ...m
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
+ ...m,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
- getLastTree() {
|
|
|
-
|
|
|
-
|
|
|
- getLastTreeByPid(this.inspectionId).then(res => {
|
|
|
-
|
|
|
- this.inspectionList = res
|
|
|
-
|
|
|
- this.inspectionList.push({
|
|
|
- id: -1,
|
|
|
- name: '废品总数量'
|
|
|
- })
|
|
|
-
|
|
|
- this.getGualityReview()
|
|
|
- })
|
|
|
- },
|
|
|
-
|
|
|
- getGualityReview() {
|
|
|
- let param = {
|
|
|
- inspectionId: this.inspectionId,
|
|
|
- workOrderId: this.id,
|
|
|
- taskId: this.taskId,
|
|
|
- }
|
|
|
- qualityReview(param).then(res => {
|
|
|
- if (res && res.extInfo && res.extInfo.inspectionList) {
|
|
|
- this.inspectionList = res.extInfo.inspectionList
|
|
|
- }
|
|
|
- })
|
|
|
-
|
|
|
- },
|
|
|
-
|
|
|
-
|
|
|
|
|
|
scrolltolower() {},
|
|
|
handleWordScan() {
|
|
|
uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: '不支持换工单'
|
|
|
- })
|
|
|
+ icon: "none",
|
|
|
+ title: "不支持换工单",
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
scanIt(id) {
|
|
|
-
|
|
|
-
|
|
|
uni.scanCode({
|
|
|
success: (res) => {
|
|
|
- this.scanItData(res.result, id)
|
|
|
- }
|
|
|
- })
|
|
|
+ this.scanItData(res.result, id);
|
|
|
+ },
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
scanItData(result, id) {
|
|
|
- scanLedger(result).then(res => {
|
|
|
-
|
|
|
- let _arr = []
|
|
|
- if (res.length == 1 && res[0].rootCategoryLevelId == 4) { // 设备
|
|
|
- _arr = this.List
|
|
|
+ scanLedger(result).then((res) => {
|
|
|
+ let _arr = [];
|
|
|
+ if (res.length == 1 && res[0].rootCategoryLevelId == 4) {
|
|
|
+ // 设备
|
|
|
+ _arr = this.List;
|
|
|
_arr.forEach((e, index) => {
|
|
|
if (e.workOrderId == id) {
|
|
|
- _arr[index].equipmentList = res
|
|
|
+ _arr[index].equipmentList = res;
|
|
|
}
|
|
|
- })
|
|
|
- this.List = _arr
|
|
|
- this.$forceUpdate()
|
|
|
-
|
|
|
+ });
|
|
|
+ this.List = _arr;
|
|
|
+ this.$forceUpdate();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- if (res.length == 1 && res[0].rootCategoryLevelId == 7) { // 周转车
|
|
|
- _arr = this.List
|
|
|
+ if (res.length == 1 && res[0].rootCategoryLevelId == 7) {
|
|
|
+ // 周转车
|
|
|
+ _arr = this.List;
|
|
|
_arr.forEach((e, index) => {
|
|
|
if (e.workOrderId == id) {
|
|
|
- _arr[index].turnover = res
|
|
|
+ _arr[index].turnover = res;
|
|
|
}
|
|
|
- })
|
|
|
- this.List = _arr
|
|
|
- this.$forceUpdate()
|
|
|
-
|
|
|
+ });
|
|
|
+ this.List = _arr;
|
|
|
+ this.$forceUpdate();
|
|
|
}
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handQuality() {
|
|
|
+ console.log(this.List[0]);
|
|
|
+ if (this.List[0].turnover.length == 0) {
|
|
|
+ uni.showToast({
|
|
|
+ icon: "none",
|
|
|
+ title: "请先添加周转车取样",
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
+ let _count = 0;
|
|
|
+ this.List[0].turnover &&
|
|
|
+ this.List[0].turnover.forEach((f) => {
|
|
|
+ if (
|
|
|
+ f.extInfo &&
|
|
|
+ f.extInfo.positionList &&
|
|
|
+ f.extInfo.positionList.length > 0
|
|
|
+ ) {
|
|
|
|
|
|
- })
|
|
|
+ f.extInfo.positionList.forEach((o) => {
|
|
|
|
|
|
- },
|
|
|
+ if (Object.prototype.hasOwnProperty.call(o, "sampleNum") && o.sampleNum >= 1) {
|
|
|
+ _count = _count + Number(o.sampleNum);
|
|
|
|
|
|
- save() {
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- if (!this.isLastJob) {
|
|
|
+ if (_count < 1) {
|
|
|
uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: '上道工序暂未报工'
|
|
|
- })
|
|
|
- return false
|
|
|
+ icon: "none",
|
|
|
+ title: "请先取样",
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
+ let param = {
|
|
|
+ taskId: this.taskId,
|
|
|
+ workOrderId: this.id,
|
|
|
+ quantity: _count
|
|
|
}
|
|
|
|
|
|
+ qualityQy(param).then(res => {
|
|
|
+ this.$set(this.List[0], 'semiProductList', res)
|
|
|
+ this.$forceUpdate()
|
|
|
+ })
|
|
|
+
|
|
|
|
|
|
- if (this.List[0].normalQuality.quantity < 0) {
|
|
|
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: '废品数量小于0'
|
|
|
- })
|
|
|
- return false
|
|
|
- }
|
|
|
|
|
|
- if (this.List[0].normalQuality.formedNum - this.List[0].normalQuality.quantity < 0) {
|
|
|
- uni.showToast({
|
|
|
- icon: 'none',
|
|
|
- title: '废品数量不能大于合格数量'
|
|
|
- })
|
|
|
- return false
|
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
|
|
- this.List[0].normalQuality.inspectionList = this.inspectionList
|
|
|
+ save() {
|
|
|
|
|
|
- // let _arr = JSON.parse(JSON.stringify(this.List))
|
|
|
- // _arr.forEach(e => {
|
|
|
- // e.turnover.forEach((o) => {
|
|
|
- // o.extInfo.positionList.forEach(f => {
|
|
|
- // f.quantity = f.quantity - Number(f.sampleNum)
|
|
|
- // f.sampleNum = 0
|
|
|
|
|
|
- // })
|
|
|
- // })
|
|
|
|
|
|
- // })
|
|
|
|
|
|
- batchSave(this.List).then(res => {
|
|
|
- uni.navigateBack()
|
|
|
- })
|
|
|
- },
|
|
|
|
|
|
+ batchSave(this.List).then((res) => {
|
|
|
+ uni.navigateBack();
|
|
|
+ });
|
|
|
+ },
|
|
|
|
|
|
handAdd(id) {
|
|
|
- console.log(id)
|
|
|
+ console.log(id);
|
|
|
|
|
|
const storageKey = Date.now() + "";
|
|
|
uni.setStorageSync(storageKey, this.List || []);
|
|
|
uni.navigateTo({
|
|
|
- url: `/pages/pda/workOrder/search/index?id=${id}&storageKey=${storageKey}&isType=zdy&taskId=${this.taskId}&classIds=[4,7]`
|
|
|
- })
|
|
|
+ url: `/pages/pda/workOrder/search/index?id=${id}&storageKey=${storageKey}&isType=zdy&taskId=${this.taskId}&classIds=[4,7]`,
|
|
|
+ });
|
|
|
},
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
+ },
|
|
|
+ };
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.content-box {
|
|
|
@@ -345,7 +275,6 @@
|
|
|
overflow: hidden;
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
.list_box {
|
|
|
@@ -360,9 +289,6 @@
|
|
|
.card_box {
|
|
|
padding: 16rpx 24rpx;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
.bottom-wrapper {
|
|
|
@@ -379,9 +305,8 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
.operate_box {
|
|
|
- padding: 10rpx 160rpx;
|
|
|
+ padding: 10rpx 20rpx;
|
|
|
|
|
|
/deep/ .u-button {
|
|
|
width: 160rpx;
|