Browse Source

修改调拨入库编辑

wms3.0_pda
lijuncheng 10 months ago
parent
commit
69ea6d6b46
  1. 38
      common/detail.js
  2. 2
      mycomponents/detail/comDetailCard.vue
  3. 1
      mycomponents/item/itemQty.vue
  4. 2
      pages/issue/coms/comIssueRequestPopup.vue
  5. 148
      pages/transfer/coms/comReceiptDetailCard.vue
  6. 20
      pages/transfer/job/receiptDetail.vue
  7. 2
      pages/unPlanned/coms/comReceiptDetailCard.vue

38
common/detail.js

@ -1,5 +1,7 @@
import { calc } from '@/common/calc' import {
export function getDataSource(subList) { calc
} from '@/common/calc'
export function getDataSource(subList) {
let items = []; let items = [];
subList.forEach(detail => { subList.forEach(detail => {
var item = items.find(r => var item = items.find(r =>
@ -10,19 +12,19 @@ export function getDataSource(subList) {
item.subList.push(newDetail); item.subList.push(newDetail);
items.push(item) items.push(item)
} else { } else {
item.qty = calc.add(item.qty,detail.qty) item.qty = calc.add(item.qty, detail.qty)
let newDetail = createDetailInfo(detail); // let newDetail = createDetailInfo(detail); //
item.subList.push(newDetail); item.subList.push(newDetail);
} }
}) })
return items; return items;
} }
export function createItemInfo(detail) { export function createItemInfo(detail) {
let item = { let item = {
itemCode: detail.itemCode, itemCode: detail.itemCode,
itemName: detail.itemName, itemName: detail.itemName,
stdPackQty: Number(detail.stdPackQty)||undefined, stdPackQty: Number(detail.stdPackQty) || undefined,
stdPackUnit: detail.stdPackUnit, stdPackUnit: detail.stdPackUnit,
qty: Number(detail.qty), qty: Number(detail.qty),
handleQty: 0, handleQty: 0,
@ -30,17 +32,17 @@ export function createItemInfo(detail) {
subList: [] subList: []
} }
return item; return item;
} }
export function createDetailInfo(data) { export function createDetailInfo(data) {
data.scaned = false; data.scaned = false;
// data.record = {}; // data.record = {};
let detail = data; let detail = data;
return detail; return detail;
} }
//根据明细创建记录 //根据明细创建记录
export function createRecordInfo(detail, balance) { export function createRecordInfo(detail, balance) {
var record = {} var record = {}
// let record = JSON.parse(JSON.stringify(detail)); // let record = JSON.parse(JSON.stringify(detail));
//克隆对象,深度克隆,防止双向绑定同一个变量 //克隆对象,深度克隆,防止双向绑定同一个变量
@ -51,22 +53,22 @@ export function createRecordInfo(detail, balance) {
detail.inventoryStatus = balance.inventoryStatus; detail.inventoryStatus = balance.inventoryStatus;
record.qty = Number(balance.qty); record.qty = Number(balance.qty);
return record; return record;
} }
//计算实际数量 //计算实际数量
export function calcHandleQty(detailSource) { export function calcHandleQty(detailSource) {
for (let item of detailSource) { for (let item of detailSource) {
item.handleQty = 0; item.handleQty = 0;
for (let detail of item.subList) { for (let detail of item.subList) {
if (detail != undefined && detail.scaned) { if (detail != undefined && detail.scaned) {
item.handleQty = calc.add(item.handleQty,detail.handleQty) item.handleQty = calc.add(item.handleQty, detail.handleQty)
}
} }
} }
} }
}
export function getScanCount(subList) { export function getScanCount(subList) {
let items = subList.filter(r => { let items = subList.filter(r => {
if (r.scaned) { if (r.scaned) {
return r; return r;
@ -74,4 +76,4 @@ export function getScanCount(subList) {
}) })
let scanCount = items != null ? items.length : 0; let scanCount = items != null ? items.length : 0;
return scanCount; return scanCount;
} }

2
mycomponents/detail/comDetailCard.vue

@ -3,7 +3,7 @@
<uni-collapse ref="collapse1" @change=""> <uni-collapse ref="collapse1" @change="">
<uni-collapse-item :open="true"> <uni-collapse-item :open="true">
<template v-slot:title> <template v-slot:title>
<item-compare-qty :dataContent="dataContent" :handleQty="Number(dataContent.handleQty)" :isShowStdPack="false"> <item-compare-qty :dataContent="dataContent" :handleQty="dataContent.handleQty" :isShowStdPack="false">
</item-compare-qty> </item-compare-qty>
</template> </template>
<u-line></u-line> <u-line></u-line>

1
mycomponents/item/itemQty.vue

@ -18,6 +18,7 @@
</view> </view>
</template> </template>
<script> <script>
import item from '@/mycomponents/item/item.vue' import item from '@/mycomponents/item/item.vue'
import balanceQty from '@/mycomponents/qty/balanceQty.vue' import balanceQty from '@/mycomponents/qty/balanceQty.vue'
import compareQty from '@/mycomponents/qty/compareQty.vue' import compareQty from '@/mycomponents/qty/compareQty.vue'

2
pages/issue/coms/comIssueRequestPopup.vue

@ -46,7 +46,7 @@
:focus="numberFocus" @blur='numberFocus = false'> :focus="numberFocus" @blur='numberFocus = false'>
</uni-number-box> </uni-number-box>
<view class="std_pack"> <view class="std_pack" v-if="itemCode!='请扫描物料信息'">
<text> <text>
/{{stdQty}} /{{stdQty}}
<!-- {{Number(dataContent.stdPackQty)}}{{getStdPackUnit(dataContent.uom)}} --> <!-- {{Number(dataContent.stdPackQty)}}{{getStdPackUnit(dataContent.uom)}} -->

148
pages/transfer/coms/comReceiptDetailCard.vue

@ -0,0 +1,148 @@
<template>
<view class="" style="background-color: #fff;">
<uni-collapse ref="collapse1" @change="">
<uni-collapse-item :open="true">
<template v-slot:title>
<item-qty :dataContent="dataContent" :handleQty="dataContent.handleQty" :showItemQty ="false"></item-qty>
</template>
<u-line />
<view class="" v-for="(item,index) in dataContent.subList">
<uni-swipe-action ref="swipeAction">
<uni-swipe-action-item @click="swipeClick($event,item)"
:right-options="item.scaned?scanOptions:detailOptions">
<recommend :detail="item" :isShowFromLocation="false" :isShowToLocation="true">
</recommend>
</uni-swipe-action-item>
</uni-swipe-action>
<u-line color="#D8D8D8"></u-line>
</view>
</uni-collapse-item>
</uni-collapse>
<recommend-qty-edit ref="receiptEdit" :dataContent="editItem" :settingParam="settingParam"
@confirm="confirm">
</recommend-qty-edit>
<win-scan-location ref="scanLocationCode" title="目标库位" @getLocation='getLocation'
:locationTypeList="locationTypeList"></win-scan-location>
<detail-info-popup ref="detailInfoPopup"></detail-info-popup>
<comMessage ref="message"></comMessage>
</view>
</template>
<script>
import itemQty from '@/mycomponents/item/itemQty.vue'
import recommend from '@/mycomponents/recommend/recommend.vue'
import recommendQtyEdit from '@/mycomponents/qty/recommendQtyEdit.vue'
import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue'
import comMessage from '@/mycomponents/common/comMessage.vue'
import detailInfoPopup from '@/pages/unPlanned/coms/detailInfoPopup.vue'
import winScanLocation from "@/mycomponents/scan/winScanLocation.vue"
import {
getDetailOption,
getPurchaseReceiptOption
} from '@/common/array.js';
export default {
components: {
itemQty,
recommend,
recommendQtyEdit,
detailInfoPopup,
comMessage,
winScanLocation
},
props: {
dataContent: {
type: Object,
default: {}
},
settingParam: {
type: Object,
default: {}
},
isShowLocation: {
type: Boolean,
default: false
},
locationTypeList: {
type: Object,
default: {}
},
},
watch: {
},
data() {
return {
showItem: {},
editItem: {
record: {
}
},
detailOptions: [],
scanOptions: []
}
},
mounted() {
if (this.detailOptions.length == 0) {
this.detailOptions = getDetailOption();
}
if (this.scanOptions.length == 0) {
this.scanOptions = getPurchaseReceiptOption(this.settingParam.allowModifyQty,this.settingParam.allowModifyLocation)
}
},
methods: {
swipeClick(e, item) {
if (e.content.text == "详情") {
this.detail(item)
} else if (e.content.text == "编辑") {
this.edit(item)
} else if (e.content.text == "库位") {
this.showLocation(item)
} else if (e.content.text == "移除") {
this.remove(item)
}
},
edit(item) {
this.editItem = item;
this.$refs.receiptEdit.openTaskEditPopup(item.qty, item.handleQty,item.labelQty);
},
showLocation(item) {
this.locatonItem =item;
this.$refs.scanLocationCode.openScanPopup();
},
//
getLocation(location, code) {
this.locatonItem.toLocationCode =code;
this.$emit('updateData')
},
detail(item) {
this.showItem = item;
this.$refs.detailInfoPopup.openPopup(item)
},
remove(item) {
this.$refs.message.showQuestionMessage("确定移除扫描信息?",
res => {
if (res) {
item.scaned = false
item.handleQty = null
this.$forceUpdate()
this.$emit('remove', item)
}
});
},
confirm(qty) {
this.editItem.handleQty = qty;
this.$emit('updateData')
}
}
}
</script>
<style>
</style>

20
pages/transfer/job/receiptDetail.vue

@ -17,10 +17,9 @@
<scroll-view scroll-y="true" class="page-main-scroll"> <scroll-view scroll-y="true" class="page-main-scroll">
<view class="detail-list" v-for="(item, index) in detailSource" :key="item.id"> <view class="detail-list" v-for="(item, index) in detailSource" :key="item.id">
<view class=""> <view class="">
<com-detail-card :dataContent="item" :settingParam="jobContent" :isShowLocation="false" <com-receipt-detail-card :dataContent="item" :index="index" :settingParam="jobContent"
@remove="updateData" @updateData="updateData" @openDetail="openDetail" @remove="updateData" @updateData="updateData" :locationTypeList='toLocationTypeList'>
:locationTypeList='tolocationTypeList'> </com-receipt-detail-card>
</com-detail-card>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
@ -32,7 +31,7 @@
<view class=""> <view class="">
<requiredLocation ref='comScanLocation' title="目标库位" :locationCode="toLocationCode" <requiredLocation ref='comScanLocation' title="目标库位" :locationCode="toLocationCode"
@getLocation='scanLocationCode' :isShowEdit="jobContent.allowModifyLocation == 'TRUE'" @getLocation='scanLocationCode' :isShowEdit="jobContent.allowModifyLocation == 'TRUE'"
:locationTypeList="tolocationTypeList"></requiredLocation> :locationTypeList="toLocationTypeList"></requiredLocation>
</view> </view>
<view class=" uni-flex uni-row"> <view class=" uni-flex uni-row">
<button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button> <button class="btn_single_commit" hover-class="btn_commit_after" @click="commit">提交</button>
@ -85,6 +84,7 @@
import comDetailCard from "@/mycomponents/detail/comDetailCard.vue" import comDetailCard from "@/mycomponents/detail/comDetailCard.vue"
import detailInfoPopup from '@/pages/transfer/coms/detailInfoPopup.vue' import detailInfoPopup from '@/pages/transfer/coms/detailInfoPopup.vue'
import jobTop from '@/mycomponents/job/jobTop.vue' import jobTop from '@/mycomponents/job/jobTop.vue'
import comReceiptDetailCard from '@/pages/transfer/coms/comReceiptDetailCard.vue'
export default { export default {
name: 'returnDetail', name: 'returnDetail',
@ -95,7 +95,8 @@
winScanPack, winScanPack,
comDetailCard, comDetailCard,
detailInfoPopup, detailInfoPopup,
jobTop jobTop,
comReceiptDetailCard
}, },
data() { data() {
return { return {
@ -108,7 +109,7 @@
toLocationCode: "", toLocationCode: "",
businessTypeInfo: {}, businessTypeInfo: {},
managementList: [], managementList: [],
tolocationTypeList: [] toLocationTypeList: []
}; };
}, },
onLoad(option) { onLoad(option) {
@ -195,7 +196,7 @@
that.detailSource = getDataSource(that.subList) that.detailSource = getDataSource(that.subList)
that.fromLocationCode = that.subList[0].fromLocationCode that.fromLocationCode = that.subList[0].fromLocationCode
that.toLocationCode = that.subList[0].toLocationCode that.toLocationCode = that.subList[0].toLocationCode
that.tolocationTypeList = getDirectoryItemArray(that.jobContent.toLocationTypes) that.toLocationTypeList = getDirectoryItemArray(that.jobContent.toLocationTypes)
} else { } else {
that.showMessage('列表数据为0'); that.showMessage('列表数据为0');
} }
@ -258,11 +259,10 @@
this.detailSource[0].subList.sort(compareAsc('scaned')); // this.detailSource[0].subList.sort(compareAsc('scaned')); //
itemDetail.handleQty = Number(result.label.qty); itemDetail.handleQty = Number(result.label.qty);
itemDetail.toLocationCode = this.toLocationCode; itemDetail.toLocationCode = this.toLocationCode;
itemDetail.stdPackQty = result.package.stdPackQty
itemDetail.labelQty = Number(result.label.qty); itemDetail.labelQty = Number(result.label.qty);
calcHandleQty(this.detailSource); calcHandleQty(this.detailSource);
this.continueScan() this.continueScan()
this.$forceUpdate()
var list = this.detailSource[0].subList;
} }
} }
} }

2
pages/unPlanned/coms/comReceiptDetailCard.vue

@ -3,7 +3,7 @@
<uni-collapse ref="collapse1" @change=""> <uni-collapse ref="collapse1" @change="">
<uni-collapse-item :open="true"> <uni-collapse-item :open="true">
<template v-slot:title> <template v-slot:title>
<item-qty :dataContent="dataContent" :handleQty="dataContent.handleQty"></item-qty> <item-qty :dataContent="dataContent" :handleQty="dataContent.handleQty" :showItemQty ="false"></item-qty>
</template> </template>
<u-line /> <u-line />
<view class="" v-for="(item,index) in dataContent.subList"> <view class="" v-for="(item,index) in dataContent.subList">

Loading…
Cancel
Save