Browse Source

添加工位列表

agv
李俊城 4 months ago
parent
commit
47163bceda
  1. 7
      fe/PDA/api/index.js
  2. 73
      fe/PDA/pages/request/assembleIssueRequest.vue
  3. 70
      fe/PDA/pages/request/coatingIssueRequest.vue
  4. 84
      fe/PDA/pages/request/injectionIssueRequest.vue
  5. 141
      fe/PDA/pages/request/injectionPlanRequest.vue
  6. 52
      fe/PDA/pages/request/kittingIssueRequest.vue

7
fe/PDA/api/index.js

@ -2239,6 +2239,13 @@ export const getCustomerList = (params) => request(
method: "post"
});
//获取工位通过库位
export const getWorkStationByLocation = (locationCode) => request(
devUrl + "/api/pda/post-location/get-list-by-location?code="+locationCode, { //
data: {},
method: "post"
});

73
fe/PDA/pages/request/assembleIssueRequest.vue

@ -19,6 +19,26 @@
</view>
</view>
<view class="uni-list" v-if="itemList.length>0">
<view class=""
style="font-size: 40rpx; font-weight: bold; align-items: center; display: flex; justify-content: center; margin-bottom: 20rpx; ">
工位关系
</view>
<view class="uni-flex" style="flex-wrap: wrap;justify-content: space-between; margin: 10rpx;" >
<view style="width: 50%; display: flex; flex-direction: row;" v-for="(item, index) in workStationList" :key="item.value">
<view class="uni-flex" style="flex-direction: row; margin: 12rpx;" @click="checkeClick(item.value)">
<view class="">
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="">
{{item.name}}
</view>
</view>
</view>
</view>
</view>
<scroll-view scroll-y="true" @scroll="scroll" class="scroll-detail">
<view class="detail-list margin_top" v-for="(item, index) in itemList" :key="item.id">
@ -94,14 +114,17 @@
<script>
import {
assembleIssueRequest
assembleIssueRequest,
getWorkStationByLocation
} from '@/api/index.js';
import {
showConfirmMsg,
goHome,
getRemoveOption,
getISODateTime
getISODateTime,
scanSuccessAudio,
scanFailedAudio
} from '@/common/basic.js';
import winBlankView from '@/mycomponents/wincom/winBlankView.vue'
@ -122,7 +145,8 @@
data() {
return {
itemList: [],
dataContent: {}
dataContent: {},
workStationList: [],
};
},
props: {
@ -145,6 +169,23 @@
},
methods: {
checkeClick(value) {
for (let i = 0; i < this.workStationList.length; i++) {
this.workStationList[i].checked = false
}
for (let i = 0; i < this.workStationList.length; i++) {
if (this.workStationList[i].value === value) {
if (this.workStationList[i].checked == true) {
this.workStationList[i].checked = false
} else {
this.workStationList[i].checked = true
}
}
}
this.$forceUpdate()
},
openScanPopup() {
this.$refs.scanPopup.openScanPopup()
},
@ -156,6 +197,27 @@
this.itemList.push(result)
this.$forceUpdate()
getWorkStationByLocation(result.locationCode).then(res => {
if (res && res.length > 0) {
this.workStationList = []
res.forEach(item => {
this.workStationList.push({
value: item.code,
name: item.name,
checked: false
})
})
scanSuccessAudio()
} else {
scanFailedAudio()
this.showMessage("获取工位失败")
}
}).catch(error => {
scanFailedAudio()
this.showMessage("获取工位失败")
})
},
clear() {
@ -188,9 +250,10 @@
},
setParams() {
var workStation = this.workStationList.find(r => r.checked == true)
var param = {
worker: localStorage.userName_CN == "" ? localStorage.userName : localStorage.userName_CN,
remark: "",
remark: workStation ? workStation.value : "",
extraProperties: {},
activeDate: getISODateTime(),
autoSubmit: true,
@ -205,7 +268,7 @@
this.itemList.forEach(res => {
var data = {
remark: "",
remark: workStation ? workStation.value : "",
qty:res.qty,
itemCode: res.partCode,
itemName: res.partName,

70
fe/PDA/pages/request/coatingIssueRequest.vue

@ -19,6 +19,26 @@
</view>
</view>
<view class="uni-list" v-if="itemList.length>0">
<view class=""
style="font-size: 40rpx; font-weight: bold; align-items: center; display: flex; justify-content: center; margin-bottom: 20rpx; ">
工位关系
</view>
<view class="uni-flex" style="flex-wrap: wrap;justify-content: space-between; margin: 10rpx;" >
<view style="width: 50%; display: flex; flex-direction: row;" v-for="(item, index) in workStationList" :key="item.value">
<view class="uni-flex" style="flex-direction: row; margin: 12rpx;" @click="checkeClick(item.value)">
<view class="">
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="">
{{item.name}}
</view>
</view>
</view>
</view>
</view>
<scroll-view scroll-y="true" @scroll="scroll" class="scroll-detail">
<view class="detail-list margin_top" v-for="(item, index) in itemList" :key="item.id">
@ -94,7 +114,8 @@
<script>
import {
coatingIssueRequest
coatingIssueRequest,
getWorkStationByLocation
} from '@/api/index.js';
import {
@ -124,7 +145,8 @@
data() {
return {
itemList: [],
dataContent: {}
dataContent: {},
workStationList: [],
};
},
props: {
@ -147,6 +169,23 @@
},
methods: {
checkeClick(value) {
for (let i = 0; i < this.workStationList.length; i++) {
this.workStationList[i].checked = false
}
for (let i = 0; i < this.workStationList.length; i++) {
if (this.workStationList[i].value === value) {
if (this.workStationList[i].checked == true) {
this.workStationList[i].checked = false
} else {
this.workStationList[i].checked = true
}
}
}
this.$forceUpdate()
},
openScanPopup() {
this.$refs.scanPopup.openScanPopup()
},
@ -157,7 +196,26 @@
result.defaultHandleQty=result.qty
this.itemList.push(result)
this.$forceUpdate()
scanSuccessAudio()
getWorkStationByLocation(result.locationCode).then(res => {
if (res && res.length > 0) {
this.workStationList = []
res.forEach(item => {
this.workStationList.push({
value: item.code,
name: item.name,
checked: false
})
})
scanSuccessAudio()
} else {
scanFailedAudio()
this.showMessage("获取工位失败")
}
}).catch(error => {
scanFailedAudio()
this.showMessage("获取工位失败")
})
},
@ -191,9 +249,11 @@
},
setParams() {
var workStation = this.workStationList.find(r => r.checked == true)
var param = {
worker: localStorage.userName_CN == "" ? localStorage.userName : localStorage.userName_CN,
remark: "",
remark: workStation ? workStation.value : "",
extraProperties: {},
activeDate: getISODateTime(),
autoSubmit: true,
@ -208,7 +268,7 @@
this.itemList.forEach(res => {
var data = {
remark: "",
remark: workStation ? workStation.value : "",
qty:res.qty,
itemCode: res.partCode,
itemName: res.partName,

84
fe/PDA/pages/request/injectionIssueRequest.vue

@ -19,6 +19,26 @@
</view>
</view>
<view class="uni-list" v-if="itemList.length>0">
<view class=""
style="font-size: 40rpx; font-weight: bold; align-items: center; display: flex; justify-content: center; margin-bottom: 20rpx; ">
工位关系
</view>
<view class="uni-flex" style="flex-wrap: wrap;justify-content: space-between; margin: 10rpx;" >
<view style="width: 50%; display: flex; flex-direction: row;" v-for="(item, index) in workStationList" :key="item.value">
<view class="uni-flex" style="flex-direction: row; margin: 12rpx;" @click="checkeClick(item.value)">
<view class="">
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="">
{{item.name}}
</view>
</view>
</view>
</view>
</view>
<scroll-view scroll-y="true" @scroll="scroll" class="scroll-detail">
<view class="detail-list margin_top" v-for="(item, index) in itemList" :key="item.id">
@ -94,7 +114,8 @@
<script>
import {
injectionIssueRequest
injectionIssueRequest,
getWorkStationByLocation
} from '@/api/index.js';
import {
@ -124,7 +145,8 @@
data() {
return {
itemList: [],
dataContent: {}
dataContent: {},
workStationList: [],
};
},
props: {
@ -147,18 +169,57 @@
},
methods: {
checkeClick(value) {
for (let i = 0; i < this.workStationList.length; i++) {
this.workStationList[i].checked = false
}
for (let i = 0; i < this.workStationList.length; i++) {
if (this.workStationList[i].value === value) {
if (this.workStationList[i].checked == true) {
this.workStationList[i].checked = false
} else {
this.workStationList[i].checked = true
}
}
}
this.$forceUpdate()
},
openScanPopup() {
this.$refs.scanPopup.openScanPopup()
},
getScanResult(result) {
this.dataContent = result;
result.qty =result.stdPackQty;
result.defaultHandleQty=result.qty
result.qty = result.stdPackQty;
result.defaultHandleQty = result.qty
this.itemList.push(result)
this.$forceUpdate()
scanSuccessAudio()
// result.locationCode APA
getWorkStationByLocation(result.locationCode).then(res => {
if (res && res.length > 0) {
this.workStationList = []
res.forEach(item => {
this.workStationList.push({
value: item.code,
name: item.name,
checked: false
})
})
scanSuccessAudio()
} else {
scanFailedAudio()
this.showMessage("获取工位失败")
}
}).catch(error => {
scanFailedAudio()
this.showMessage("获取工位失败")
})
},
clear() {
@ -191,9 +252,10 @@
},
setParams() {
var workStation = this.workStationList.find(r => r.checked == true)
var param = {
worker: localStorage.userName_CN == "" ? localStorage.userName : localStorage.userName_CN,
remark: "",
remark: workStation ? workStation.value : "",
extraProperties: {},
activeDate: getISODateTime(),
autoSubmit: true,
@ -208,14 +270,14 @@
this.itemList.forEach(res => {
var data = {
remark: "",
qty:res.qty,
remark: workStation ? workStation.value : "",
qty: res.qty,
itemCode: res.partCode,
itemName: res.partName,
itemDesc1: res.itemDesc2,
uom: res.basicUom,
uom: res.basicUom,
stdPackQty: res.stdPackQty,
toLocationCode: res.locationCode,
toLocationCode: res.locationCode,
prodLine: null,
requestStatus: 1,
issuedQty: res.qty,
@ -223,7 +285,7 @@
status: 1,
positionCode: this.dataContent.code,
recommendType: 0,
boxQty: res.qty
boxQty: res.qty
}
param.details.push(data)

141
fe/PDA/pages/request/injectionPlanRequest.vue

@ -5,10 +5,8 @@
<view class="page-header">
<view class="" style="margin-bottom: 8rpx; margin-top: 8rpx; background-color: #fff">
<scroll-view scroll-x="true" class="scrollview-box">
<block v-for="(item, index) in tabs" :key="index" >
<view
:class="tabIndex==index ? 'item_select' : 'item'"
:data-current="index" @click="ontabtap">
<block v-for="(item, index) in tabs" :key="index">
<view :class="tabIndex==index ? 'item_select' : 'item'" :data-current="index" @click="ontabtap">
<text class="name">{{item}}</text>
</view>
</block>
@ -18,26 +16,46 @@
</view>
</view>
<view class="uni-list" v-if="showList.length>0">
<view class=""
style="font-size: 40rpx; font-weight: bold; align-items: center; display: flex; justify-content: center; margin-bottom: 20rpx; ">
工位关系
</view>
<view class="uni-flex" style="flex-wrap: wrap;justify-content: space-between; margin: 10rpx;" >
<view style="width: 50%; display: flex; flex-direction: row;" v-for="(item, index) in workStationList" :key="item.value">
<view class="uni-flex" style="flex-direction: row; margin: 12rpx;" @click="checkeClick(item.value)">
<view class="">
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="">
{{item.name}}
</view>
</view>
</view>
</view>
</view>
<view class="page-main">
<scroll-view scroll-y="true" class="page-main-scroll">
<view class="uni-flex uni-row" style="flex-wrap: wrap; margin: 5rpx;">
<view class="uni-flex" style=" width: 50%; justify-content: center; margin-top: 40rpx; "
v-for="(item, index) in showList" :key="index">
<view class="uni-flex" style="flex-direction: column; margin-left: 10rpx; border-radius: 10rpx; border: 0.5px solid #000;padding: 5rpx;">
<view class="uni-flex"
style="flex-direction: column; margin-left: 10rpx; border-radius: 10rpx; border: 0.5px solid #000;padding: 5rpx;">
<view class="" style="">
<uni-tag :customStyle="customStyle" style="width: 100%;white-space: normal;" :inverted="!item.checked" :circle="false"
:text="item.code+'\n'+item.desc1" type="primary" @click="setContainerModel(item)" />
<uni-tag :customStyle="customStyle" style="width: 100%;white-space: normal;"
:inverted="!item.checked" :circle="false" :text="item.code+'\n'+item.desc1"
type="primary" @click="setContainerModel(item)" />
</view>
<view style="display: flex; flex-direction: row; align-items: center; width: 100%;">
<view class="" style="font-size: 32rpx;">
收容数
</view>
<com-number-box :ref="'comNumberBox_'+index" v-model="item.stdPackQty"
:max="999999" :min="0" style=''
@change="qtyChanged($event,item,index)">
</com-number-box>
<view class="" style="font-size: 32rpx;">
收容数
</view>
<com-number-box :ref="'comNumberBox_'+index" v-model="item.stdPackQty" :max="999999"
:min="0" style='' @change="qtyChanged($event,item,index)">
</com-number-box>
</view>
</view>
@ -67,7 +85,8 @@
getItemCategoryList,
injectionIssuePlanRequestItemCategoryName,
injectionIssuePlanRequestItemCategory,
locations
locations,
getWorkStationByLocation,
} from '@/api/index.js';
import {
@ -102,8 +121,9 @@
loadingType: "nomore",
showList: [],
toLocationInfo: null,
tabIndex:0,
customStyle:"white-space: normal;word-break:break-all"
tabIndex: 0,
customStyle: "white-space: normal;word-break:break-all",
workStationList: [],
};
@ -137,42 +157,59 @@
}
},
methods: {
getCategoryListName(){
checkeClick(value) {
for (let i = 0; i < this.workStationList.length; i++) {
this.workStationList[i].checked = false
}
for (let i = 0; i < this.workStationList.length; i++) {
if (this.workStationList[i].value === value) {
if (this.workStationList[i].checked == true) {
this.workStationList[i].checked = false
} else {
this.workStationList[i].checked = true
}
}
}
this.$forceUpdate()
},
getCategoryListName() {
uni.showLoading({
title: "加载中",
mask: true
})
injectionIssuePlanRequestItemCategoryName().then(res => {
uni.hideLoading()
if(res.length==0){
if (res.length == 0) {
this.showMessage("获取分类信息失败,请在字典中维护")
}else {
} else {
this.tabs = res;
this.getCategoryList(this.tabs[0])
}
this.tabIndex=0
this.tabIndex = 0
}).catch(error => {
uni.hideLoading()
this.showMessage("获取分类信息失败" + error)
})
},
getCategoryList(categoryName){
getCategoryList(categoryName) {
injectionIssuePlanRequestItemCategory(categoryName).then(res => {
uni.hideLoading()
if(res.length==0){
this.showMessage("获取["+categoryName+"]信息失败,请在字典中维护")
}else {
if (res.length == 0) {
this.showMessage("获取[" + categoryName + "]信息失败,请在字典中维护")
} else {
this.showList = res;
this.showList.forEach(item=>{
item.defaultStdPackQty=item.stdPackQty
item.checked =false
this.showList.forEach(item => {
item.defaultStdPackQty = item.stdPackQty
item.checked = false
})
}
}).catch(error => {
uni.hideLoading()
this.showMessage("获取["+categoryName+"]信息失败,"+error)
this.showMessage("获取[" + categoryName + "]信息失败," + error)
})
},
@ -188,8 +225,27 @@
locations(locationCode).then(res => {
uni.hideLoading();
if (res) {
scanSuccessAudio()
this.toLocationInfo = res
getWorkStationByLocation(res.code).then(res => {
if (res && res.length > 0) {
this.workStationList = []
res.forEach(item => {
this.workStationList.push({
value: item.code,
name: item.name,
checked: false
})
})
scanSuccessAudio()
} else {
scanFailedAudio()
this.showMessage("获取工位失败")
}
}).catch(error => {
scanFailedAudio()
this.showMessage("获取工位失败")
})
} else {
scanFailedAudio()
this.showMessage('目标库位【' + locationCode + '】不存在');
@ -204,9 +260,9 @@
})
},
setContainerModel(item) {
item.checked=!item.checked
item.checked = !item.checked
this.showList.forEach(res => {
if(res.code!=item.code){
if (res.code != item.code) {
res.checked = false
}
@ -222,12 +278,13 @@
this.$refs.comMessage.showCommitSuccess();
},
clearData() {
this.tabs=[]
this.current=0
this.showList= []
this.tabs = []
this.current = 0
this.showList = []
this.toLocationInfo = null,
this.tabIndex = 0 ;
this.tabIndex = 0;
this.$refs.comCollapseLocation.clearLocation();
this.workStationList=[]
},
submit(item) {
@ -247,7 +304,9 @@
title: "提交中...",
mask: true
});
var workStation = this.workStationList.find(r => r.checked == true)
var params = {
remark: workStation ? workStation.value : "",
worker: localStorage.userName_CN == "" ? localStorage.userName : localStorage.userName_CN,
activeDate: getISODateTime(),
useOnTheWayLocation: false,
@ -257,7 +316,7 @@
]
}
var item = {
remark: "",
remark: workStation ? workStation.value : "",
itemCode: checked[0].code,
itemName: checked[0].name,
itemDesc1: checked[0].desc1,
@ -292,10 +351,10 @@
uni.hideLoading();
});
},
ontabtap(e){
ontabtap(e) {
let index = e.target.dataset.current || e.currentTarget.dataset.current;
if (this.tabIndex == index) {
return;
return;
}
this.tabIndex = index;
this.getCategoryList(this.tabs[index])
@ -325,10 +384,10 @@
/* item的外层定义成行内元素才可进行滚动 inline-block / inline-flex 均可 */
flex-direction: column;
align-items: center;
background-color: #fff;
background-color: #fff;
color: #007AFF;
border: 1px solid #007AFF;
border-radius:8rpx;
border-radius: 8rpx;
}
.item_select {

52
fe/PDA/pages/request/kittingIssueRequest.vue

@ -19,6 +19,26 @@
</view>
</view>
<view class="uni-list" v-if="itemList.length>0">
<view class=""
style="font-size: 40rpx; font-weight: bold; align-items: center; display: flex; justify-content: center; margin-bottom: 20rpx; ">
工位关系
</view>
<view class="uni-flex" style="flex-wrap: wrap;justify-content: space-between; margin: 10rpx;" >
<view style="width: 50%; display: flex; flex-direction: row;" v-for="(item, index) in workStationList" :key="item.value">
<view class="uni-flex" style="flex-direction: row; margin: 12rpx;" @click="checkeClick(item.value)">
<view class="">
<checkbox :value="item.value" :checked="item.checked" />
</view>
<view class="">
{{item.name}}
</view>
</view>
</view>
</view>
</view>
<scroll-view scroll-y="true" @scroll="scroll" class="scroll-detail">
<view class="detail-list margin_top" v-for="(item, index) in itemList" :key="item.id">
@ -95,7 +115,8 @@
<script>
import {
kittingIssueRequest
kittingIssueRequest,
getWorkStationByLocation
} from '@/api/index.js';
import {
@ -125,7 +146,8 @@
data() {
return {
itemList: [],
dataContent: {}
dataContent: {},
workStationList: [],
};
},
props: {
@ -158,7 +180,26 @@
result.defaultHandleQty = result.qty
this.itemList.push(result)
this.$forceUpdate()
scanSuccessAudio()
getWorkStationByLocation(result.locationCode).then(res => {
if (res && res.length > 0) {
this.workStationList = []
res.forEach(item => {
this.workStationList.push({
value: item.code,
name: item.name,
checked: false
})
})
scanSuccessAudio()
} else {
scanFailedAudio()
this.showMessage("获取工位失败")
}
}).catch(error => {
scanFailedAudio()
this.showMessage("获取工位失败")
})
},
@ -192,9 +233,10 @@
},
setParams() {
var workStation = this.workStationList.find(r => r.checked == true)
var param = {
worker: localStorage.userName_CN == "" ? localStorage.userName : localStorage.userName_CN,
remark: "",
remark: workStation ? workStation.value : "",
extraProperties: {},
activeDate: getISODateTime(),
autoSubmit: true,
@ -209,7 +251,7 @@
this.itemList.forEach(res => {
var data = {
remark: "",
remark: workStation ? workStation.value : "",
qty: res.qty,
itemCode: res.partCode,
itemName: res.partName,

Loading…
Cancel
Save