| | |
| | | const token = uni.getStorageSync('token');
|
| | | // const URL = 'http://47.76.147.249:8080/rsf-server/pda' + url;
|
| | | // const URL = 'http://test.zoneyung.net:8080/rsf-server/pda' + url;
|
| | | const URL = 'http://192.168.51.35:8085/rsf-server/pda' + url;
|
| | | const URL = 'http://127.0.0.1:8085/rsf-server/pda' + url;
|
| | | uni.request({
|
| | | url: URL,
|
| | | data: postData,
|
| | |
| | | "language-change-confirm":"chenge", |
| | | "hello":"Hello, welcome to log in to the WMS system!", |
| | | "intro":"Make manufacturing and logistics more efficient", |
| | | "checkOrder":"checkOrder" |
| | | |
| | | "checkOrder":"checkOrder", |
| | | "emptyTrayInBound":"EmptyTray InBound", |
| | | "emptyTrayOutBound":"EmptyTray OutBound", |
| | | "orderPick":"Order Pick" |
| | | |
| | | }, |
| | | "other":{ |
| | |
| | | "palletizing": "单据组托", |
| | | "palletBuilding":"组托解绑", |
| | | "inspectionRequest":"报检", |
| | | "qualityInspection":"质检", |
| | | "defectiveMarking":"不良标记", |
| | | "qualityInspection":"质检解锁", |
| | | "defectiveMarking":"质检上锁", |
| | | "manualPutaway":"人工上架", |
| | | "stationBinding":"站点绑定", |
| | | "inboundInitiation":"启动入库", |
| | | "inboundInitiation":"AGV入库", |
| | | "stationUnbinding":"站点解绑", |
| | | "bindAndInbound":"绑定&入库", |
| | | "quickPicking":"快速拣货", |
| | |
| | | "language-change-confirm":"确定切换?", |
| | | "hello":"您好,欢迎登录WMS系统!", |
| | | "intro":"让制造与物流更高效", |
| | | "checkOrder":"盘点" |
| | | "checkOrder":"盘点", |
| | | "emptyOutBound":"空托出库", |
| | | "emptyInBound":"空托入库", |
| | | "orderPick":"订单出库", |
| | | "orderPickGroup":"出库订单", |
| | | "orderTransfer":"调拨订单", |
| | | "orderIn":"入库订单", |
| | | "orderInItem":"入库订单详情", |
| | | "matTransfer":"移库", |
| | | "buffStore":"灌桶入库", |
| | | "stationInfo":"站点维护", |
| | | "locInfo":"库位维护", |
| | | "taskInfo":"工作任务", |
| | | "productionMatCall":"生产叫料", |
| | | "matDirectDelivery":"生产直送", |
| | | "productDirectDelivery":"成品直出", |
| | | "matPreparation":"生产备料" |
| | | |
| | | |
| | | }, |
| | |
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/emptyTray/outBound",
|
| | | "style": {
|
| | | "navigationBarTitleText": "空托出库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/emptyTray/inBound",
|
| | | "style": {
|
| | | "navigationBarTitleText": "空托入库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderPick",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单出库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOut",
|
| | | "style": {
|
| | | "navigationBarTitleText": "出库订单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/orderOutItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "订单出库详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/matPreparation",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产备料"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/matPreparationItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产备料详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/orderIn",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/orderInExecute",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单列表"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/orderInItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "入库订单详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/transferType",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨类型"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/orderTransfer",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨订单"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/orderTransferItem",
|
| | | "style": {
|
| | | "navigationBarTitleText": "调拨订单详情"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/transfer/matTransfer",
|
| | | "style": {
|
| | | "navigationBarTitleText": "移库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/workInfo/taskInfo",
|
| | | "style": {
|
| | | "navigationBarTitleText": "工作任务"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/workInfo/stationInfo",
|
| | | "style": {
|
| | | "navigationBarTitleText": "站点信息"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/workInfo/locInfo",
|
| | | "style": {
|
| | | "navigationBarTitleText": "库位信息"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inbound/buffStore",
|
| | | "style": {
|
| | | "navigationBarTitleText": "灌桶入库"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/matDirectDelivery",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产直送"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/productDirectDelivery",
|
| | | "style": {
|
| | | "navigationBarTitleText": "成品直出"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/productionMatCall",
|
| | | "style": {
|
| | | "navigationBarTitleText": "生产叫料"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/outbound/wavePick",
|
| | | "style": {
|
| | | "navigationBarTitleText": "波次拣货"
|
| | |
| | | {
|
| | | "path": "pages/AGV/StartInTask",
|
| | | "style": {
|
| | | "navigationBarTitleText": "AGV启动入库"
|
| | | "navigationBarTitleText": "AGV入库"
|
| | | }
|
| | | },
|
| | | {
|
| | |
| | | {
|
| | | "path": "pages/inspect/check",
|
| | | "style": {
|
| | | "navigationBarTitleText": "质检"
|
| | | "navigationBarTitleText": "质检解锁"
|
| | | }
|
| | | },
|
| | | {
|
| | | "path": "pages/inspect/bad",
|
| | | "style": {
|
| | | "navigationBarTitleText": "不良标签"
|
| | | "navigationBarTitleText": "质检上锁"
|
| | | }
|
| | | },
|
| | | {
|
| | |
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | , {
|
| | | "path": "pages/phyz/AGV/emptyOut",
|
| | | "style": {
|
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group "> |
| | | <view class="title">接驳站</view> |
| | | <input placeholder="请扫描接驳站条码" v-model="barcode" ></input> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">接驳站点</view> |
| | | <input placeholder="请扫描接驳站点条码" v-model="barcode" ></input> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">容器号</view> |
| | | <input placeholder="请扫描容器编码" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <!-- <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-blue margin-left">容器码:{{container}}</view> |
| | | </view> --> |
| | | <view class="cu-form-group"> |
| | | <view class="title">目标库区</view> |
| | | <view style="width: 75%;"> |
| | |
| | | </view> |
| | | </view> |
| | | </form> |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-blue">容器码:{{container}}</view> |
| | | |
| | | </view> |
| | | |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | |
| | | |
| | | <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">启动</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">入库</button> |
| | | </view> |
| | | |
| | | |
| | |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() {}, |
| | | mounted() { |
| | | this.getRece() |
| | | this.whAreaId = uni.getStorageSync('whAreaId') |
| | | }, |
| | | methods: { |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站码不能为空", |
| | | title: "接驳站点不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | } |
| | | this.repeatClick = true |
| | | const { |
| | | code, |
| | |
| | | }) |
| | | } |
| | | this.repeatClick = false |
| | | |
| | | |
| | | }, |
| | | |
| | | |
| | | async getRece() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/areas/receipt', {}, 'get') |
| | | if (code === 200) { |
| | | this.range = data.map(item => ({ |
| | | value: item.id, |
| | | text: item.warehouseId$ + "-- " + item.name |
| | | })); |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">容器号</view> |
| | | <input placeholder="请扫容器条码" v-model="container"></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <view class="cu-form-group "> |
| | | <view class="title">接驳站点</view> |
| | | <input placeholder="请扫描接驳站点条码" v-model="barcode" ></input> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | <view class="text-blue"> |
| | | {{`${item.maktx}`}} |
| | | </view> |
| | | </view> |
| | | <!-- <view class="action" > |
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> |
| | | </view> --> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">ASN:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.asnCode}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">批次:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.batch}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">收货数量:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.anfme}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">回库</button> |
| | | </view> |
| | | |
| | | <uni-popup ref="popup" class="cu-popup"> |
| | | <view class="popup-content"> |
| | | <view class="head"> |
| | | <text>推荐</text> |
| | | <text class='cuIcon-close text-red close' @click="close"></text> |
| | | </view> |
| | | |
| | | <div class="body"> |
| | | <view class="cu-list grid col-3 no-border"> |
| | | <view class="item" v-for="el in range"> |
| | | <view class="cu-btn round sm" :class="[el===curCode?'bg-blue':'line-blue']" |
| | | @click="itemChange(el)">{{el}}</view> |
| | | </view> |
| | | </view> |
| | | </div> |
| | | |
| | | <view class="cu-bar btn-group "> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="popupSubmit">提交</button> |
| | | </view> |
| | | </view> |
| | | </uni-popup> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | barcode: '', |
| | | areaName: '', |
| | | locCode: '', |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '' |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() {}, |
| | | methods: { |
| | | async search() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/stock/operate/list', { |
| | | barcode: this.container, |
| | | sta: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | // const find = this.list.find(el => el.id === data.id); |
| | | // !find && |
| | | this.list = data |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.container === '' || this.container ===null){ |
| | | uni.showToast({ |
| | | title: "容器码不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站码不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/staBind',{ |
| | | barcode: this.container, |
| | | sta: this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '绑定成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">接驳站点</view> |
| | | <input placeholder=" 请扫描接驳站点条码" v-model="barcode" ></input> |
| | | </view> |
| | | |
| | | <view class="cu-form-group margin-bottom"> |
| | | <view class="title">容器类型</view> |
| | | <view style="width: 78%;"> |
| | | <uni-data-select style="min-width: 80%; max-width: 80%;" v-model="palletTypeId" :localdata="range" |
| | | placement="bottom" @change="selChange"></uni-data-select> |
| | | </view> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">呼叫</button> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | barcode: '', |
| | | areaName: '', |
| | | locCode: '', |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '' |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() { |
| | | this.getPalletType(), |
| | | this.palletTypeId = uni.getStorageSync('palletTypeId') |
| | | }, |
| | | methods: { |
| | | selChange(val) { |
| | | uni.setStorageSync('palletTypeId', val.value) |
| | | }, |
| | | // async search() { |
| | | // const { |
| | | // code, |
| | | // data, |
| | | // msg |
| | | // } = await request('/stock/operate/list', { |
| | | // barcode: this.container, |
| | | // sta: this.barcode |
| | | // }) |
| | | // if (code === 200) { |
| | | // // const find = this.list.find(el => el.id === data.id); |
| | | // // !find && |
| | | // this.list = data |
| | | // } else { |
| | | // uni.showToast({ |
| | | // title: msg, |
| | | // icon: "none", |
| | | // }) |
| | | // } |
| | | // }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.palletTypeId = '' |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async getPalletType() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/info/palletType/list', {}, 'get') |
| | | if (code === 200) { |
| | | this.range = data.map(item => ({ |
| | | value: item.id, |
| | | text: item.group === null ? item.label : item.group + "-- " + item.label |
| | | })); |
| | | } |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode === null){ |
| | | uni.showToast({ |
| | | title: "接驳站点不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | if(this.palletTypeId === '' || this.palletTypeId === null){ |
| | | uni.showToast({ |
| | | title: "请选择托盘类型", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | palletTypeId: this.palletTypeId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '呼叫空托盘中,请稍作等待' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // const { |
| | | // code, |
| | | // data, |
| | | // msg |
| | | // } = await request('/AGV/staBind',{ |
| | | // barcode: this.container, |
| | | // sta: this.barcode |
| | | // } |
| | | // ) |
| | | // if (code === 200) { |
| | | // uni.showToast({ |
| | | // title: '绑定成功' |
| | | // }) |
| | | // this.clear() |
| | | // } else { |
| | | // uni.showToast({ |
| | | // title: msg, |
| | | // icon: "none", |
| | | // }) |
| | | // } |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| | |
| | | <view class="user-bg">
|
| | | <image src="../../static/img/toux.png" class="tx" mode="widthFix"></image>
|
| | | <view class="text-xl margin-top-sm margin-left-lg">
|
| | | <view class="text-blue text-bold text-xxl">
|
| | | <view class="text-blue text-bold text-xl">
|
| | | {{user.username}}
|
| | | </view>
|
| | | <view class="text-gray">仓库主管 | zy32423423</view>
|
| | | <view class="text-gray text-l">{{user.code}}</view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-btn bg-red margin-tb-sm lg round" style="position: absolute; right: 20px; width: 30%; height: 50%;" @click="equit">{{$t('index.outLogin')}}</view>
|
| | | </view>
|
| | |
|
| | | <view class="cu-bar bg-white solid-bottom margin-top">
|
| | | |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm">
|
| | | <view class="action">
|
| | | <text class="cuIcon-title text-orange "></text> 收货
|
| | | <text class="cuIcon-title text-orange "></text> 入库
|
| | | </view>
|
| | |
|
| | | </view>
|
| | |
|
| | | </view> |
| | | <view class="cu-list grid col-4 no-border">
|
| | | <!-- <view class="cu-item">
|
| | | <!-- 空托入库 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/emptyTray/inBound" navigateTo>
|
| | | <view class="cuIcon-pulldown text-blue"></view>
|
| | | <text>{{$t('index.emptyInBound')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/rece/standard" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | </view>
|
| | | <text>标准收货</text>
|
| | | </navigator>
|
| | | </view> -->
|
| | |
|
| | | </view> |
| | | <!-- 单据组托 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/listing/matnrPalletising" navigateTo>
|
| | | <view class="cuIcon-cardboard text-blue"></view>
|
| | | <text>{{$t('index.palletizing')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 组托解绑 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/listing/unPakin" navigateTo>
|
| | | <view class="cuIcon-cardboardforbid text-blue"></view>
|
| | | <text>{{$t('index.palletBuilding')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 启动入库 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/AGV/StartInTask" navigateTo>
|
| | | <view class="cuIcon-pulldown text-blue"></view>
|
| | | <text>{{$t('index.inboundInitiation')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 入库订单 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/inbound/orderIn" navigateTo>
|
| | | <view class="cuIcon-addressbook text-blue"></view>
|
| | | <text>{{$t('index.orderIn')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 人工上架 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/listing/labour" navigateTo>
|
| | | <view class="cuIcon-friendadd text-blue"></view>
|
| | | <text>{{$t('index.manualPutaway')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 灌桶入库:缓存区袋装塑料粒子灌桶后入库 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/inbound/buffStore" navigateTo>
|
| | | <view class="cuIcon-all text-blue"></view>
|
| | | <text>{{$t('index.buffStore')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | |
| | | <!-- <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/rece/other" navigateTo>
|
| | | <view class="cuIcon-taoxiaopu text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.GR')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | |
|
| | | <!-- <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/listing/disc" navigateTo>
|
| | | <view class="cuIcon-cardboard text-blue">
|
| | | </view>
|
| | | <text>组盘</text>
|
| | | </navigator>
|
| | | </view> -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/listing/matnrPalletising" navigateTo>
|
| | | <view class="cuIcon-cardboard text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.palletizing')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/listing/unPakin" navigateTo>
|
| | | <view class="cuIcon-cardboardforbid text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.palletBuilding')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | |
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/inspect/report" navigateTo>
|
| | | <view class="cuIcon-edit text-blue">
|
| | |
| | | <text>{{$t('index.inspectionRequest')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | |
|
| | | |
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/inspect/check" navigateTo>
|
| | | <view class="cuIcon-warn text-blue">
|
| | | <navigator hover-class='none' url="/pages/listing/disc" navigateTo>
|
| | | <view class="cuIcon-cardboard text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.qualityInspection')}}</text>
|
| | | <text>组盘</text>
|
| | | </navigator>
|
| | | </view> -->
|
| | | </view>
|
| | | |
| | | |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm">
|
| | | <view class="action">
|
| | | <text class="cuIcon-title text-orange "></text> 出库
|
| | | </view>
|
| | | </view> |
| | | <view class="cu-list grid col-4 no-border">
|
| | | <!-- 空托出库 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/emptyTray/outBound" navigateTo>
|
| | | <view class="cuIcon-pullup text-blue"></view>
|
| | | <text>{{$t('index.emptyOutBound')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | |
|
| | | <!-- 订单出库 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/orderPick" navigateTo>
|
| | | <view class="cuIcon-addressbook text-blue"></view>
|
| | | <text>{{$t('index.orderPick')}}</text>
|
| | | </navigator>
|
| | | </view> |
| | | <!-- 生产直送:原材料不入库直接送产线 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/matDirectDelivery" navigateTo>
|
| | | <view class="cuIcon-deliver text-blue"></view>
|
| | | <text>{{$t('index.matDirectDelivery')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 成品直出:成品不入立库直接出库 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/productDirectDelivery" navigateTo>
|
| | | <view class="cuIcon-deliver_fill text-blue"></view>
|
| | | <text>{{$t('index.productDirectDelivery')}}</text>
|
| | | </navigator>
|
| | | </view> |
| | | <!-- 出库订单 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/orderOut" navigateTo>
|
| | | <view class="cuIcon-addressbook text-blue"></view>
|
| | | <text>{{$t('index.orderPickGroup')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 生产备料 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/matPreparation" navigateTo>
|
| | | <view class="cuIcon-present text-blue"></view>
|
| | | <text>{{$t('index.matPreparation')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | |
| | | <!-- 生产叫料 -->
|
| | | <!-- <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/productionMatCall" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.productionMatCall')}}</text>
|
| | | </navigator>
|
| | | </view> -->
|
| | | </view>
|
| | | |
| | | |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm">
|
| | | <view class="action">
|
| | | <text class="cuIcon-title text-orange "></text> 综合
|
| | | </view>
|
| | | </view> |
| | | <view class="cu-list grid col-4 no-border">
|
| | | <!-- 调拨订单 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/transfer/transferType" navigateTo>
|
| | | <view class="cuIcon-addressbook text-blue"></view>
|
| | | <text>{{$t('index.orderTransfer')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 移库 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/transfer/matTransfer" navigateTo>
|
| | | <view class="cuIcon-location text-blue"></view>
|
| | | <text>{{$t('index.matTransfer')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 盘点 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/check/checkOrder" navigateTo>
|
| | | <view class="cuIcon-roundcheck text-blue"></view>
|
| | | <text>{{$t('index.checkOrder')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 质检上锁 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/inspect/bad" navigateTo>
|
| | | <view class="cuIcon-appreciate text-blue">
|
| | | </view>
|
| | | <view class="cuIcon-lock text-blue"></view>
|
| | | <text>{{$t('index.defectiveMarking')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | |
|
| | |
|
| | | <!-- 质检解锁 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/listing/labour" navigateTo>
|
| | | <view class="cuIcon-friendadd text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.manualPutaway')}}</text>
|
| | | <navigator hover-class='none' url="/pages/inspect/check" navigateTo>
|
| | | <view class="cuIcon-unlock text-blue"></view>
|
| | | <text>{{$t('index.qualityInspection')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | |
| | | |
| | | <!-- 工作任务 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/workInfo/taskInfo" navigateTo>
|
| | | <view class="cuIcon-tagfill text-blue"></view>
|
| | | <text>{{$t('index.taskInfo')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 站点维护 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/workInfo/stationInfo" navigateTo>
|
| | | <view class="cuIcon-service text-blue"></view>
|
| | | <text>{{$t('index.stationInfo')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <!-- 库位维护 -->
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/workInfo/locInfo" navigateTo>
|
| | | <view class="cuIcon-servicefill text-blue"></view>
|
| | | <text>{{$t('index.locInfo')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | |
| | | <!-- <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/fastPicking" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.quickPicking')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/wavePickItem" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.wavePick')}}</text>
|
| | | </navigator>
|
| | | </view> -->
|
| | | <!-- <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/check/firstCheck" navigateTo>
|
| | | <view class="cuIcon-apps text-blue"></view>
|
| | | <text>{{$t('index.checkOrder')}}</text>
|
| | | </navigator>
|
| | | </view> -->
|
| | | </view>
|
| | | <view class="cu-bar bg-white solid-bottom margin-top">
|
| | | |
| | | |
| | | <!-- <view class="cu-bar bg-white solid-bottom margin-top-sm">
|
| | | <view class="action">
|
| | | <text class="cuIcon-title text-orange "></text> AGV
|
| | | </view>
|
| | |
| | | </view>
|
| | | <text>{{$t('index.bindAndInbound')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | |
| | | </view>
|
| | | </view> |
| | | </view> -->
|
| | |
|
| | | <view class="cu-bar bg-white solid-bottom margin-top">
|
| | |
|
| | | <!-- <view class="cu-bar bg-white solid-bottom margin-top-sm">
|
| | | <view class="action">
|
| | | <text class="cuIcon-title text-orange "></text> 作业
|
| | | <text class="cuIcon-title text-orange "></text> 开发
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | |
| | | <view class="cu-list grid col-4 no-border">
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/fastPicking" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | <navigator hover-class='none' url="/pages/phyz/stationManage/stationManage" navigateTo>
|
| | | <view class="cuIcon-punch text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.quickPicking')}}</text>
|
| | | <text>{{$t('index.stationBinding')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/outbound/wavePickItem" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | <navigator hover-class='none' url="/pages/home/orderManage" navigateTo>
|
| | | <view class="cuIcon-punch text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.wavePick')}}</text>
|
| | | <text>{{$t('index.stationBinding')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/check/checkOrder" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | <navigator hover-class='none' url="/pages/home/locMastManage" navigateTo>
|
| | | <view class="cuIcon-punch text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.checkOrder')}}</text>
|
| | | <text>{{$t('index.stationBinding')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | | <view class="cu-item">
|
| | | <navigator hover-class='none' url="/pages/check/firstCheck" navigateTo>
|
| | | <view class="cuIcon-apps text-blue">
|
| | | <navigator hover-class='none' url="/pages/home/wrkMastManage" navigateTo>
|
| | | <view class="cuIcon-punch text-blue">
|
| | | </view>
|
| | | <text>{{$t('index.checkOrder')}}</text>
|
| | | <text>{{$t('index.stationBinding')}}</text>
|
| | | </navigator>
|
| | | </view>
|
| | |
|
| | | </view> -->
|
| | | </view>
|
| | | |
| | |
|
| | | <view class="padding flex flex-direction">
|
| | | <!-- <view class="padding flex flex-direction">
|
| | | <view class="cu-btn bg-red margin-tb-sm lg round" @click="equit">{{$t('index.outLogin')}}</view>
|
| | | </view>
|
| | | </view> -->
|
| | | </view>
|
| | | </view>
|
| | | </template>
|
| | |
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | user:{
|
| | | |
| | | user:{ |
| | | }
|
| | | }
|
| | | },
|
| | | |
| | | onShow() {
|
| | | |
| | | |
| | | this.user = uni.getStorageSync('userData');
|
| | | },
|
| | | methods: {
|
| | |
| | | display: flex;
|
| | | flex-direction: row;
|
| | | background-size: cover;
|
| | | height: 280rpx;
|
| | | height: 150rpx;
|
| | | position: relative;
|
| | | color: #000;
|
| | | align-items: center;
|
| | | justify-content: start;
|
| | | padding: 0 40rpx;
|
| | | background-color: #fff;
|
| | |
|
| | | }
|
| | |
|
| | | .tx {
|
| | | width: 160rpx;
|
| | | width: 100rpx;
|
| | | border-radius: 50%;
|
| | | border: 1px solid #e9e9e9;
|
| | | }
|
| | |
|
| | | .left {
|
| | | display: flex;
|
| | | flex-direction: column;
|
| | | }
|
| | |
|
| | | .avatar {
|
| | | width: 160rpx;
|
| | | height: 160rpx;
|
| | |
| | | <template> |
| | | <view> |
| | | <!-- <form > |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> --> |
| | | |
| | | <scroll-view scroll-y class="page"> |
| | | <view class="nav-list"> |
| | | <!-- :url="'/pages' + item.url + '?param=' + item.param" navigateTo--> |
| | | <view hover-class='none' class="nav-li" @click="toOrder(item)" |
| | | :class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]" |
| | | v-for="(item,index) in elements" :key="index"> |
| | | v-for="(item,index) in elements2" :key="index"> |
| | | <view class="nav-title">{{item.title}}</view> |
| | | <view class="nav-name">{{item.name}}</view> |
| | | <text :class="'cuIcon-' + item.cuIcon"></text> |
| | |
| | | title: '待包装入库单', |
| | | name: 'pakinOrder', |
| | | color: 'blue', |
| | | url: `/phyz/waitOrder/waitOrderIn` |
| | | url: `/outbound/orderPick` |
| | | }, |
| | | { |
| | | title: '待包装出库单', |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-grey margin-left">已选物料信息:{{container}}</view> |
| | | </view> |
| | | |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">空桶接驳站点</view> |
| | | <input placeholder="请扫描空桶接驳站点条码" v-model="barcode" ></input> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | |
| | | <view class="cu-bar btn-group top margin-top"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">1.呼叫空桶</button> |
| | | <!-- <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">2.呼叫袋装新料</button> --> |
| | | <!-- <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫袋装新料</button> |
| | | <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫空桶</button> --> |
| | | <!-- <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">入库</button> --> |
| | | </view> |
| | | |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">袋装新料接驳站点</view> |
| | | <input placeholder="请扫描袋装新料接驳站点条码" v-model="barcode" ></input> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | |
| | | <view class="cu-bar btn-group top margin-top"> |
| | | <!-- <button class="cu-btn text-blue line-blue shadow" @click="clear">1.呼叫空桶</button> --> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">2.呼叫袋装新料</button> |
| | | <!-- <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫袋装新料</button> |
| | | <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫空桶</button> --> |
| | | <!-- <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">入库</button> --> |
| | | </view> |
| | | |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">容器号</view> |
| | | <input placeholder="请扫需要入库容器条码" v-model="container"></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | |
| | | |
| | | |
| | | <!-- <view class="cu-form-group"> |
| | | <view class="title">目标库区</view> |
| | | <view style="width: 75%;"> |
| | | <uni-data-select style="min-width: 50%; max-width: 100%;" v-model="whAreaId" :localdata="range" |
| | | placement="bottom" @change="selChange"></uni-data-select> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="cu-bar btn-group top margin-top"> |
| | | <button class="cu-btn bg-green shadow-blur" @click="clear">3.桶装新料入库</button> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | <view class="text-blue"> |
| | | {{`${item.maktx}`}} |
| | | </view> |
| | | </view> |
| | | <!-- <view class="action" > |
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> |
| | | </view> --> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">ASN:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.asnCode}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">批次:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.batch}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">收货数量:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.anfme}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">入库</button> |
| | | </view> --> |
| | | |
| | | |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | barcode: '', |
| | | areaName: '', |
| | | locCode: '', |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '', |
| | | whAreaId:'', |
| | | repeatClick: false, |
| | | |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() { |
| | | this.getRece() |
| | | this.whAreaId = uni.getStorageSync('whAreaId') |
| | | }, |
| | | methods: { |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async search() { |
| | | let that = this |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/staBind/list', { |
| | | sta: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | if(data.list.length >0){ |
| | | that.container = data.barcode |
| | | that.list = data.list |
| | | } |
| | | that.range = data.warehouseAreasList.map(item => ({ |
| | | value: item.id, |
| | | text: item.name |
| | | })); |
| | | that.whAreaId = data.area |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站点不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | if(this.whAreaId === '' || this.whAreaId ===null){ |
| | | uni.showToast({ |
| | | title: "目标库区不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | this.repeatClick = true |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/task/start',{ |
| | | sta: this.barcode, |
| | | area: this.whAreaId |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '启动成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | this.repeatClick = false |
| | | }, |
| | | |
| | | async getRece() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/areas/receipt', {}, 'get') |
| | | if (code === 200) { |
| | | this.range = data.map(item => ({ |
| | | value: item.id, |
| | | text: item.warehouseId$ + "-- " + item.name |
| | | })); |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <!-- <form > |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> --> |
| | | |
| | | <scroll-view scroll-y class="page"> |
| | | <view class="nav-list"> |
| | | <!-- :url="'/pages' + item.url + '?param=' + item.param" navigateTo--> |
| | | <view hover-class='none' class="nav-li" @click="toOrder(item)" |
| | | :class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]" |
| | | v-for="(item,index) in elements2" :key="index"> |
| | | <view class="nav-title">{{item.title}}</view> |
| | | <view class="nav-name">{{item.name}}</view> |
| | | <text :class="'cuIcon-' + item.cuIcon"></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-tabbar-height"></view> |
| | | </scroll-view> |
| | | <view style="height: 50rpx;"></view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | baseUrl: '', |
| | | token: '', |
| | | icon: '', |
| | | elements: [], |
| | | project: 'tzsk', |
| | | elements2: [ |
| | | { |
| | | title: '待包装入库单', |
| | | name: 'pakinOrder', |
| | | color: 'blue', |
| | | url: `/inbound/orderInExecute` |
| | | }, |
| | | // { |
| | | // title: '待包装出库单', |
| | | // name: 'pakinOrder', |
| | | // color: 'blue', |
| | | // url: `/phyz/waitOrder/waitOrderOut` |
| | | // }, |
| | | { |
| | | title: '采购入库单', |
| | | name: 'pakinOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/inbound/orderInExecute` |
| | | }, |
| | | // { |
| | | // title: '出库单', |
| | | // name: 'outOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/outOrder` |
| | | // }, |
| | | // { |
| | | // title: '入库单测试用', |
| | | // name: 'pakin', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/purchaseOrder` |
| | | // }, |
| | | // { |
| | | // title: '采购出库', |
| | | // name: 'outOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/orderOut/orderOutSelect` |
| | | // }, |
| | | { |
| | | title: '半成品入库单', |
| | | name: 'bcpOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/inbound/orderInExecute` |
| | | }, |
| | | { |
| | | title: '半成品入库单_吸塑', |
| | | name: 'bcpOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/inbound/orderInExecute` |
| | | }, |
| | | // { |
| | | // title: '半成品调拨单', |
| | | // name: 'bcpDbOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpDbOrder` |
| | | // }, |
| | | // { |
| | | // title: '半成品调拨单', |
| | | // name: 'bcpDbOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpDbOrderV2` |
| | | // }, |
| | | // { |
| | | // title: '半成品出库单', |
| | | // name: 'bcpOutOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/orderOut/bcpOrderOutSelect` |
| | | // }, |
| | | // { |
| | | // title: '半成品出库单_二厂', |
| | | // name: 'bcpOutOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/orderOut/bcpOrderOutSelect_2`, |
| | | // param: {orderType: [1,2,3]} |
| | | // }, |
| | | // { |
| | | // title: '半成品加工单', |
| | | // name: 'processOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/processOrder/processOrder` |
| | | // }, |
| | | { |
| | | title: '半成品回流单', |
| | | name: 'backStock', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/inbound/orderInExecute` |
| | | }, |
| | | { |
| | | title: '入库单', |
| | | name: 'orderIn', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/inbound/orderInExecute` |
| | | }, |
| | | // { |
| | | // title: '出库单', |
| | | // name: 'orderOut', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/comOrder/orderOut` |
| | | // }, |
| | | |
| | | ], |
| | | menu: [], |
| | | colorList: ['cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive','cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive' ] |
| | | }; |
| | | }, |
| | | // onShow() { |
| | | // this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | // this.token = uni.getStorageSync('token'); |
| | | // this.project = uni.getStorageSync('project') |
| | | // // this.getAuth() |
| | | // this.backGroundRepeat() |
| | | // }, |
| | | onLoad(option) { |
| | | this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | this.token = uni.getStorageSync('token'); |
| | | this.project = uni.getStorageSync('project'); |
| | | this.menu = uni.getStorageSync('menu'); |
| | | this.getAuth2(option.id) |
| | | this.backGroundRepeat() |
| | | }, |
| | | methods: { |
| | | backGroundRepeat() { |
| | | let len = this.colorList.length |
| | | let i = 0 |
| | | for (let k in this.elements2) { |
| | | if (i == len) { |
| | | i = 0 |
| | | } |
| | | this.elements2[k].color = this.colorList[i] |
| | | i++ |
| | | } |
| | | }, |
| | | toOrder(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages${item.url}`, |
| | | success(res) { |
| | | res.eventChannel.emit('param', { |
| | | param: item.param |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getAuth2(id) { |
| | | let secMenu = [] |
| | | for (let k of this.menu) { |
| | | if (id == k.id) { |
| | | secMenu = k.children |
| | | } |
| | | } |
| | | for (let i in secMenu) { |
| | | this.getIcon(secMenu[i].title) |
| | | // 兼容2025 02 18 菜单param |
| | | if (secMenu[i].param) { |
| | | this.elements.unshift({ |
| | | title: secMenu[i].name, |
| | | name: secMenu[i].title, |
| | | color: this.colorList[i], |
| | | cuIcon: this.icon, |
| | | id: secMenu[i].id, |
| | | param: JSON.parse(secMenu[i].param), |
| | | url: `${secMenu[i].code}` |
| | | }) |
| | | } else { |
| | | this.elements.unshift({ |
| | | title: secMenu[i].name, |
| | | name: secMenu[i].title, |
| | | color: this.colorList[i], |
| | | cuIcon: this.icon, |
| | | id: secMenu[i].id, |
| | | url: `${secMenu[i].code}` |
| | | }) |
| | | } |
| | | } |
| | | console.log(this.elements); |
| | | }, |
| | | getAuth(id) { |
| | | let that = this |
| | | uni.request({ |
| | | url: that.baseUrl + '/menu/pda/auth', |
| | | data: {level:2 ,id: id}, |
| | | header: { 'token': uni.getStorageSync('token') }, |
| | | method: 'POST', |
| | | success(res) { |
| | | console.log(res); |
| | | if (res.statusCode === 404) { |
| | | that.elements = that.elements2 |
| | | return |
| | | } |
| | | res = res.data |
| | | that.elements = [] |
| | | if (res.code === 200) { |
| | | if (res.data == undefined || res.data == null || res.data == "") { |
| | | if (res.data.length == 0) { |
| | | return |
| | | } else { |
| | | that.elements = that.elements2 |
| | | } |
| | | } |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | if (res.data.length < 0) { |
| | | break; |
| | | } |
| | | that.getIcon(res.data[i].title) |
| | | that.elements.unshift({ |
| | | title: res.data[i].name, |
| | | name: res.data[i].title, |
| | | color: that.colorList[i], |
| | | cuIcon: that.icon, |
| | | url: `${res.data[i].code}` |
| | | }) |
| | | } |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | setTimeout(() => { |
| | | uni.reLaunch({ |
| | | url: '../login/login' |
| | | }); |
| | | }, 1000); |
| | | } else if(res.status === 404) { |
| | | that.elements = that.elements2 |
| | | // uni.showToast({ |
| | | // title: '默认主页', |
| | | // icon: "none", |
| | | // position: 'top' |
| | | // }) |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | }, |
| | | fail(err) { |
| | | console.log(err); |
| | | } |
| | | }) |
| | | }, |
| | | getIcon(e) { |
| | | const ways = ['pakin','orderPakin','orderPutOn'] |
| | | if (ways.includes(e)) { |
| | | this.icon = 'pullup' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .page { |
| | | height: 100vh; |
| | | } |
| | | |
| | | .bg-red { |
| | | background-color: #e54d42; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-orange { |
| | | background-color: #f37b1d; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-yellow { |
| | | background-color: #fbbd08; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-olive { |
| | | background-color: #8dc63f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-green { |
| | | background-color: #39b54a; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-cyan { |
| | | background-color: #1cbbb4; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-blue { |
| | | background-color: #0081ff; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-purple { |
| | | background-color: #6739b6; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-mauve { |
| | | background-color: #9c26b0; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-pink { |
| | | background-color: #e03997; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-brown { |
| | | background-color: #a5673f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-grey { |
| | | background-color: #8799a3; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gray { |
| | | background-color: #f0f0f0; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-black { |
| | | background-color: #333333; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-white { |
| | | background-color: #ffffff; |
| | | color: #666666; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-blue"> 订单类型:待包装入库单</view> |
| | | </view> |
| | | <view class="cu-form-group" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index" > |
| | | <view class="cu-list det menu" @click="clickTaskItem(index)"> |
| | | |
| | | <!-- <view class="cu-bar bg-white solid-bottom"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单号:<text class="text-black">{{item.orderCode}}</text></text> |
| | | </view> |
| | | <!-- <view class="content"> |
| | | <text class="text-black">{{item.status$}}</text> |
| | | </view> --> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单时间:<text class="text-black ">{{item.createTime$}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">实收数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">应收数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <!-- <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">出库</button> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | uni.navigateTo({ |
| | | url: "./orderInItem", |
| | | // 通过eventChannel向被打开页面传送数据 |
| | | success: function(res) { |
| | | res.eventChannel.emit('checkItem', { |
| | | data: that.list[index] |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | toOrderItem(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages/inbound/orderInItem`, |
| | | success(res) { |
| | | res.eventChannel.emit('param', { |
| | | param: item.param |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-gray"> 订单号:IN250807152830</view> |
| | | </view> |
| | | <!-- <view class="cu-form-group" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> --> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index" > |
| | | <view class="cu-list det menu " @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray margin-right-sm"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">计划跟踪号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">实收数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">应收数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">盘点类型:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <!-- <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> --> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">刷新</button> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | |
| | | // uni.navigateTo({ |
| | | // url: "./orderInItem", |
| | | // // 通过eventChannel向被打开页面传送数据 |
| | | // success: function(res) { |
| | | // res.eventChannel.emit('checkItem', { |
| | | // data: that.list[index] |
| | | // }) |
| | | // } |
| | | |
| | | // }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| | |
| | | </view>
|
| | |
|
| | | <view class="cu-bar btn-group foot">
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">提交</button>
|
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">上锁</button>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | |
| | | <view class="has-foot">
|
| | | <form>
|
| | | <view class="cu-form-group margin-top">
|
| | | <view class="title">质检单</view>
|
| | | <input placeholder="请扫描质检单" v-model="isptCode" focus></input>
|
| | | <view class="title">容器号</view>
|
| | | <input placeholder="请扫描容器编码" v-model="isptCode" focus></input>
|
| | | <text class='cuIcon-search text-blue' @click="search"></text>
|
| | | </view>
|
| | |
|
| | | <view class="cu-form-group ">
|
| | | <view class="title">物料码</view>
|
| | | <input placeholder="请扫描物料码" v-model="barcode"></input>
|
| | | <view class="title">物料号</view>
|
| | | <input placeholder="请扫描物料编码" v-model="barcode"></input>
|
| | | <text class='cuIcon-search text-blue' @click="scrollTo"></text>
|
| | | </view>
|
| | | </form>
|
| | |
| | | </view>
|
| | | <view class="cu-bar btn-group foot">
|
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">提交</button>
|
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">解锁</button>
|
| | | </view>
|
| | |
|
| | | </view>
|
| | |
| | | <view class="has-foot">
|
| | | <form>
|
| | | <view class="cu-form-group ">
|
| | | <view class="title">容器码</view>
|
| | | <input placeholder="请扫描容器码" v-model="container"></input>
|
| | | <view class="title">容器号</view>
|
| | | <input placeholder="请扫描容器编码" v-model="container"></input>
|
| | | <text class='cuIcon-search text-blue' @click="search"></text>
|
| | | </view>
|
| | | <view class="cu-form-group">
|
| | | <view class="title">库位码</view>
|
| | | <input placeholder="请扫描库位码" v-model="locCode"></input>
|
| | | <view class="title">库位号</view>
|
| | | <input placeholder="请扫描库位编码" v-model="locCode"></input>
|
| | | <text class='cuIcon-search text-blue' @click="search"></text>
|
| | | </view>
|
| | | </form>
|
| | | <view class="cu-list det menu sm-border padding">
|
| | |
| | | |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">容器号</view> |
| | | <input placeholder="请扫描容器号" v-model="container" focus></input> |
| | | <text class='cuIcon-search text-blue' @click="getList"></text> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">物料编码</view> |
| | | <input placeholder="请扫描物料编码" v-model="matnrCode"></input> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请输入订单号" v-model="asnCode"></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">ASN单号</view> |
| | | <input placeholder="请输入ASN单号" v-model="asnCode"></input> |
| | | <view class="title">容器号</view> |
| | | <input placeholder="请扫描容器编码" v-model="container" focus></input> |
| | | <text class='cuIcon-search text-blue' @click="getList"></text> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">物料号</view> |
| | | <input placeholder="请扫描物料编码" v-model="matnrCode"></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-blue">物料总类:{{list.length}}</view> |
| | | <view class="text-blue">组盘总数:{{allCount}}</view> |
| | | <view class="text-blue">物料种类:{{list.length}}</view> |
| | | <view class="text-blue">组托总数:{{allCount}}</view> |
| | | </view> |
| | | |
| | | </view> |
| | |
| | | </view> |
| | | <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">组盘</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">组托</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | |
| | | <view class="has-foot">
|
| | | <view>
|
| | | <form>
|
| | | <view class="cu-form-group ">
|
| | | <view class="cu-form-group margin-top">
|
| | | <view class="title">容器号</view>
|
| | | <input placeholder="请扫描容器号" v-model="container" focus></input>
|
| | | <input placeholder="请扫描容器编码" v-model="container" focus></input>
|
| | | <text class='cuIcon-search text-blue' @click="getList"></text>
|
| | | </view>
|
| | | <view class="flex solid-bottom padding-sm justify-between">
|
| | | <view class="text-blue margin-left">物料信息:{{container}}</view> |
| | | </view>
|
| | | <view class="cu-form-group">
|
| | | <view class="title">编码</view>
|
| | | <input placeholder="请扫描组托档编码" v-model="pkCode"></input>
|
| | | <view class="title">订单号</view>
|
| | | <input placeholder="请搜索订单号" v-model="pkCode"></input>
|
| | | <text class='cuIcon-search text-blue' @click="getList"></text>
|
| | | </view>
|
| | | </form>
|
| | | <view class="flex solid-bottom padding-sm justify-between">
|
| | | <view class="text-blue">物料总类:{{list.length}}</view>
|
| | | <!-- <view class="flex solid-bottom padding-sm justify-between">
|
| | | <view class="text-blue">物料种类:{{list.length}}</view>
|
| | | <view class="text-blue">组盘总数:{{allCount}}</view>
|
| | | </view>
|
| | | </view> -->
|
| | | </view>
|
| | | <view class="padding-lr margin-top-sm">
|
| | | <block v-for="(item, index) in list" :key="index">
|
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">接驳站点</view> |
| | | <input placeholder="请扫描接驳站点条码" v-model="barcode" ></input> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">容器号</view> |
| | | <input placeholder="请扫描容器编码" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <!-- <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-blue margin-left">容器码:{{container}}</view> |
| | | </view> --> |
| | | <view class="cu-form-group"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">目标站点</view> |
| | | <view style="width: 75%;"> |
| | | <uni-data-select style="min-width: 50%; max-width: 100%;" v-model="whAreaId" :localdata="range" |
| | | placement="bottom" @change="selChange"></uni-data-select> |
| | | </view> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | <view class="text-blue"> |
| | | {{`${item.maktx}`}} |
| | | </view> |
| | | </view> |
| | | <!-- <view class="action" > |
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> |
| | | </view> --> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">ASN:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.asnCode}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">批次:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.batch}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">收货数量:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.anfme}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">运送</button> |
| | | </view> |
| | | |
| | | |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | barcode: '', |
| | | areaName: '', |
| | | locCode: '', |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '', |
| | | whAreaId:'', |
| | | repeatClick: false, |
| | | |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() { |
| | | this.getRece() |
| | | this.whAreaId = uni.getStorageSync('whAreaId') |
| | | }, |
| | | methods: { |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async search() { |
| | | let that = this |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/staBind/list', { |
| | | sta: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | if(data.list.length >0){ |
| | | that.container = data.barcode |
| | | that.list = data.list |
| | | } |
| | | that.range = data.warehouseAreasList.map(item => ({ |
| | | value: item.id, |
| | | text: item.name |
| | | })); |
| | | that.whAreaId = data.area |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站点不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | if(this.whAreaId === '' || this.whAreaId ===null){ |
| | | uni.showToast({ |
| | | title: "目标库区不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | this.repeatClick = true |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/task/start',{ |
| | | sta: this.barcode, |
| | | area: this.whAreaId |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '启动成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | this.repeatClick = false |
| | | }, |
| | | |
| | | async getRece() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/areas/receipt', {}, 'get') |
| | | if (code === 200) { |
| | | this.range = data.map(item => ({ |
| | | value: item.id, |
| | | text: item.warehouseId$ + "-- " + item.name |
| | | })); |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-list det menu " @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <!-- <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">备料单号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">备料单时间:<text class="text-black ">{{item.createTime$}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">实备数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">应备数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">盘点类型:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <!-- <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">出库</button> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | uni.navigateTo({ |
| | | url: "./matPreparationItem", |
| | | // 通过eventChannel向被打开页面传送数据 |
| | | success: function(res) { |
| | | res.eventChannel.emit('checkItem', { |
| | | data: that.list[index] |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-grey margin-left">物料清单:1、拉杆 10个 2、皮套 2米</view> |
| | | <!-- <view class="text-grey margin-left"> 2、皮套 2米</view> --> |
| | | |
| | | </view> |
| | | |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">备料接驳站点</view> |
| | | <input placeholder="请扫描备料接驳站点条码" v-model="barcode" ></input> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | |
| | | <view class="cu-bar btn-group top margin-top"> |
| | | <!-- <button class="cu-btn text-blue line-blue shadow" @click="clear">1.呼叫空桶</button> --> |
| | | <button class="cu-btn text-blue line-blue shadow" :disabled="repeatClick" @click="confirm">1.呼叫备料</button> |
| | | <!-- <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫袋装新料</button> |
| | | <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫空桶</button> --> |
| | | <!-- <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">入库</button> --> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">空料架接驳站点</view> |
| | | <input placeholder="请扫描空料架接驳站点条码" v-model="barcode" ></input> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | |
| | | <view class="cu-bar btn-group top margin-top"> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="clear">2.呼叫空料架</button> |
| | | <!-- <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">2.呼叫袋装新料</button> --> |
| | | <!-- <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫袋装新料</button> |
| | | <button class="ccu-btn bg-blue shadow-blur shadow-blur" @click="clear">呼叫空桶</button> --> |
| | | <!-- <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">入库</button> --> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">备料架号</view> |
| | | <input placeholder="请扫备料完成的料架条码" v-model="container"></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | |
| | | <view class="cu-form-group"> |
| | | <view class="title">备料架接驳站点</view> |
| | | <input placeholder="请扫备料架接驳站点条码" v-model="container"></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | |
| | | |
| | | |
| | | <!-- <view class="cu-form-group"> |
| | | <view class="title">目标库区</view> |
| | | <view style="width: 75%;"> |
| | | <uni-data-select style="min-width: 50%; max-width: 100%;" v-model="whAreaId" :localdata="range" |
| | | placement="bottom" @change="selChange"></uni-data-select> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="cu-bar btn-group top margin-top"> |
| | | <button class="cu-btn bg-green shadow-blur" @click="clear">3.完成备料回库</button> |
| | | </view> |
| | | |
| | | <view class="flex solid-bottom padding-sm justify-between margin-top-sm"> |
| | | <view class="text-grey margin-left">剩余物料清单:1、拉杆 2个 2、皮套 1米</view> |
| | | <!-- <view class="text-grey margin-left"> 2、皮套 2米</view> --> |
| | | |
| | | </view> |
| | | |
| | | <view class="cu-bar btn-group top margin-top"> |
| | | <button class="cu-btn bg-yellow shadow-blur" @click="clear">4.余料回库</button> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | <view class="text-blue"> |
| | | {{`${item.maktx}`}} |
| | | </view> |
| | | </view> |
| | | <!-- <view class="action" > |
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> |
| | | </view> --> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">ASN:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.asnCode}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">批次:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.batch}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">收货数量:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.anfme}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">入库</button> |
| | | </view> --> |
| | | |
| | | |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | barcode: '', |
| | | areaName: '', |
| | | locCode: '', |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '', |
| | | whAreaId:'', |
| | | repeatClick: false, |
| | | |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() { |
| | | this.getRece() |
| | | this.whAreaId = uni.getStorageSync('whAreaId') |
| | | }, |
| | | methods: { |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async search() { |
| | | let that = this |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/staBind/list', { |
| | | sta: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | if(data.list.length >0){ |
| | | that.container = data.barcode |
| | | that.list = data.list |
| | | } |
| | | that.range = data.warehouseAreasList.map(item => ({ |
| | | value: item.id, |
| | | text: item.name |
| | | })); |
| | | that.whAreaId = data.area |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站点不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | if(this.whAreaId === '' || this.whAreaId ===null){ |
| | | uni.showToast({ |
| | | title: "目标库区不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | this.repeatClick = true |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/task/start',{ |
| | | sta: this.barcode, |
| | | area: this.whAreaId |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '启动成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | this.repeatClick = false |
| | | }, |
| | | |
| | | async getRece() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/areas/receipt', {}, 'get') |
| | | if (code === 200) { |
| | | this.range = data.map(item => ({ |
| | | value: item.id, |
| | | text: item.warehouseId$ + "-- " + item.name |
| | | })); |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <!-- <form > |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> --> |
| | | |
| | | <scroll-view scroll-y class="page"> |
| | | <view class="nav-list"> |
| | | <!-- :url="'/pages' + item.url + '?param=' + item.param" navigateTo--> |
| | | <view hover-class='none' class="nav-li" @click="toOrder(item)" |
| | | :class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]" |
| | | v-for="(item,index) in elements2" :key="index"> |
| | | <view class="nav-title">{{item.title}}</view> |
| | | <view class="nav-name">{{item.name}}</view> |
| | | <text :class="'cuIcon-' + item.cuIcon"></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-tabbar-height"></view> |
| | | </scroll-view> |
| | | <view style="height: 50rpx;"></view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | baseUrl: '', |
| | | token: '', |
| | | icon: '', |
| | | elements: [], |
| | | project: 'tzsk', |
| | | elements2: [ |
| | | // { |
| | | // title: '待包装入库单', |
| | | // name: 'pakinOrder', |
| | | // color: 'blue', |
| | | // url: `/outbound/orderPick` |
| | | // }, |
| | | { |
| | | title: '待包装出库单', |
| | | name: 'pakinOrder', |
| | | color: 'blue', |
| | | url: `/outbound/orderPick` |
| | | }, |
| | | // { |
| | | // title: '采购入库单', |
| | | // name: 'pakinOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/pakinOrderSelect` |
| | | // }, |
| | | // { |
| | | // title: '出库单', |
| | | // name: 'outOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/outOrder` |
| | | // }, |
| | | // { |
| | | // title: '入库单测试用', |
| | | // name: 'pakin', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/purchaseOrder` |
| | | // }, |
| | | { |
| | | title: '采购出库', |
| | | name: 'outOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/outbound/orderPick` |
| | | }, |
| | | // { |
| | | // title: '半成品入库单', |
| | | // name: 'bcpOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpOrder` |
| | | // }, |
| | | // { |
| | | // title: '半成品入库单_吸塑', |
| | | // name: 'bcpOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpOrder_xs` |
| | | // }, |
| | | // { |
| | | // title: '半成品调拨单', |
| | | // name: 'bcpDbOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpDbOrder` |
| | | // }, |
| | | // { |
| | | // title: '半成品调拨单', |
| | | // name: 'bcpDbOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpDbOrderV2` |
| | | // }, |
| | | { |
| | | title: '半成品出库单', |
| | | name: 'bcpOutOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/outbound/orderPick` |
| | | }, |
| | | { |
| | | title: '半成品出库单_二厂', |
| | | name: 'bcpOutOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/outbound/orderPick`, |
| | | param: {orderType: [1,2,3]} |
| | | }, |
| | | { |
| | | title: '半成品加工单', |
| | | name: 'processOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/outbound/orderPick` |
| | | }, |
| | | // { |
| | | // title: '半成品回流单', |
| | | // name: 'backStock', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/backStock/backStocksOrder` |
| | | // }, |
| | | // { |
| | | // title: '入库单', |
| | | // name: 'orderIn', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/comOrder/orderIn` |
| | | // }, |
| | | { |
| | | title: '出库单', |
| | | name: 'orderOut', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/outbound/orderPick` |
| | | }, |
| | | |
| | | ], |
| | | menu: [], |
| | | colorList: ['cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive','cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive' ] |
| | | }; |
| | | }, |
| | | // onShow() { |
| | | // this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | // this.token = uni.getStorageSync('token'); |
| | | // this.project = uni.getStorageSync('project') |
| | | // // this.getAuth() |
| | | // this.backGroundRepeat() |
| | | // }, |
| | | onLoad(option) { |
| | | this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | this.token = uni.getStorageSync('token'); |
| | | this.project = uni.getStorageSync('project'); |
| | | this.menu = uni.getStorageSync('menu'); |
| | | this.getAuth2(option.id) |
| | | this.backGroundRepeat() |
| | | }, |
| | | methods: { |
| | | backGroundRepeat() { |
| | | let len = this.colorList.length |
| | | let i = 0 |
| | | for (let k in this.elements2) { |
| | | if (i == len) { |
| | | i = 0 |
| | | } |
| | | this.elements2[k].color = this.colorList[i] |
| | | i++ |
| | | } |
| | | }, |
| | | toOrder(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages${item.url}`, |
| | | success(res) { |
| | | res.eventChannel.emit('param', { |
| | | param: item.param |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getAuth2(id) { |
| | | let secMenu = [] |
| | | for (let k of this.menu) { |
| | | if (id == k.id) { |
| | | secMenu = k.children |
| | | } |
| | | } |
| | | for (let i in secMenu) { |
| | | this.getIcon(secMenu[i].title) |
| | | // 兼容2025 02 18 菜单param |
| | | if (secMenu[i].param) { |
| | | this.elements.unshift({ |
| | | title: secMenu[i].name, |
| | | name: secMenu[i].title, |
| | | color: this.colorList[i], |
| | | cuIcon: this.icon, |
| | | id: secMenu[i].id, |
| | | param: JSON.parse(secMenu[i].param), |
| | | url: `${secMenu[i].code}` |
| | | }) |
| | | } else { |
| | | this.elements.unshift({ |
| | | title: secMenu[i].name, |
| | | name: secMenu[i].title, |
| | | color: this.colorList[i], |
| | | cuIcon: this.icon, |
| | | id: secMenu[i].id, |
| | | url: `${secMenu[i].code}` |
| | | }) |
| | | } |
| | | } |
| | | console.log(this.elements); |
| | | }, |
| | | getAuth(id) { |
| | | let that = this |
| | | uni.request({ |
| | | url: that.baseUrl + '/menu/pda/auth', |
| | | data: {level:2 ,id: id}, |
| | | header: { 'token': uni.getStorageSync('token') }, |
| | | method: 'POST', |
| | | success(res) { |
| | | console.log(res); |
| | | if (res.statusCode === 404) { |
| | | that.elements = that.elements2 |
| | | return |
| | | } |
| | | res = res.data |
| | | that.elements = [] |
| | | if (res.code === 200) { |
| | | if (res.data == undefined || res.data == null || res.data == "") { |
| | | if (res.data.length == 0) { |
| | | return |
| | | } else { |
| | | that.elements = that.elements2 |
| | | } |
| | | } |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | if (res.data.length < 0) { |
| | | break; |
| | | } |
| | | that.getIcon(res.data[i].title) |
| | | that.elements.unshift({ |
| | | title: res.data[i].name, |
| | | name: res.data[i].title, |
| | | color: that.colorList[i], |
| | | cuIcon: that.icon, |
| | | url: `${res.data[i].code}` |
| | | }) |
| | | } |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | setTimeout(() => { |
| | | uni.reLaunch({ |
| | | url: '../login/login' |
| | | }); |
| | | }, 1000); |
| | | } else if(res.status === 404) { |
| | | that.elements = that.elements2 |
| | | // uni.showToast({ |
| | | // title: '默认主页', |
| | | // icon: "none", |
| | | // position: 'top' |
| | | // }) |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | }, |
| | | fail(err) { |
| | | console.log(err); |
| | | } |
| | | }) |
| | | }, |
| | | getIcon(e) { |
| | | const ways = ['pakin','orderPakin','orderPutOn'] |
| | | if (ways.includes(e)) { |
| | | this.icon = 'pullup' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .page { |
| | | height: 100vh; |
| | | } |
| | | |
| | | .bg-red { |
| | | background-color: #e54d42; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-orange { |
| | | background-color: #f37b1d; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-yellow { |
| | | background-color: #fbbd08; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-olive { |
| | | background-color: #8dc63f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-green { |
| | | background-color: #39b54a; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-cyan { |
| | | background-color: #1cbbb4; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-blue { |
| | | background-color: #0081ff; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-purple { |
| | | background-color: #6739b6; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-mauve { |
| | | background-color: #9c26b0; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-pink { |
| | | background-color: #e03997; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-brown { |
| | | background-color: #a5673f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-grey { |
| | | background-color: #8799a3; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gray { |
| | | background-color: #f0f0f0; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-black { |
| | | background-color: #333333; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-white { |
| | | background-color: #ffffff; |
| | | color: #666666; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-gray"> 订单号:IN25102330271</view> |
| | | </view> |
| | | <!-- <view class="cu-form-group" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> --> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-list det menu" @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <!-- <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单时间:<text class="text-black ">{{item.createTime$}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">计划跟踪号:<text class="text-black ">{{item.matnrCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">完成数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">总数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">盘点类型:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <!-- <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">出库</button> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | uni.navigateTo({ |
| | | url: "./checkOrderItem", |
| | | // 通过eventChannel向被打开页面传送数据 |
| | | success: function(res) { |
| | | res.eventChannel.emit('checkItem', { |
| | | data: that.list[index] |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-gray"> 订单号:OS250807152830</view> |
| | | </view> |
| | | <!-- <view class="cu-form-group" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> --> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index" > |
| | | <view class="cu-list det menu " @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <view class="cu-bar bg-white solid-bottom"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray margin-right-sm"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">计划跟踪号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">实发数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">应发数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">盘点类型:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">刷新</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">出库</button> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | |
| | | // uni.navigateTo({ |
| | | // url: "./orderInItem", |
| | | // // 通过eventChannel向被打开页面传送数据 |
| | | // success: function(res) { |
| | | // res.eventChannel.emit('checkItem', { |
| | | // data: that.list[index] |
| | | // }) |
| | | // } |
| | | |
| | | // }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-list det menu " @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <!-- <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单时间:<text class="text-black ">{{item.createTime$}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">实出数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">应出数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">盘点类型:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <!-- <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">出库</button> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | uni.navigateTo({ |
| | | url: "./orderOutItem", |
| | | // 通过eventChannel向被打开页面传送数据 |
| | | success: function(res) { |
| | | res.eventChannel.emit('checkItem', { |
| | | data: that.list[index] |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">接驳站点</view> |
| | | <input placeholder="请扫描接驳站点条码" v-model="barcode" ></input> |
| | | <!-- <text class='cuIcon-search text-blue' @click="search"></text> --> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">容器号</view> |
| | | <input placeholder="请扫描容器编码" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <!-- <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-blue margin-left">容器码:{{container}}</view> |
| | | </view> --> |
| | | <view class="cu-form-group"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <view class="cu-form-group"> |
| | | <view class="title">目标站点</view> |
| | | <view style="width: 75%;"> |
| | | <uni-data-select style="min-width: 50%; max-width: 100%;" v-model="whAreaId" :localdata="range" |
| | | placement="bottom" @change="selChange"></uni-data-select> |
| | | </view> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | <view class="text-blue"> |
| | | {{`${item.maktx}`}} |
| | | </view> |
| | | </view> |
| | | <!-- <view class="action" > |
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> |
| | | </view> --> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">ASN:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.asnCode}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">批次:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.batch}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">收货数量:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.anfme}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">运送</button> |
| | | </view> |
| | | |
| | | |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | barcode: '', |
| | | areaName: '', |
| | | locCode: '', |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '', |
| | | whAreaId:'', |
| | | repeatClick: false, |
| | | |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() { |
| | | this.getRece() |
| | | this.whAreaId = uni.getStorageSync('whAreaId') |
| | | }, |
| | | methods: { |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async search() { |
| | | let that = this |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/staBind/list', { |
| | | sta: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | if(data.list.length >0){ |
| | | that.container = data.barcode |
| | | that.list = data.list |
| | | } |
| | | that.range = data.warehouseAreasList.map(item => ({ |
| | | value: item.id, |
| | | text: item.name |
| | | })); |
| | | that.whAreaId = data.area |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站点不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | if(this.whAreaId === '' || this.whAreaId ===null){ |
| | | uni.showToast({ |
| | | title: "目标库区不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | this.repeatClick = true |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/task/start',{ |
| | | sta: this.barcode, |
| | | area: this.whAreaId |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '启动成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | this.repeatClick = false |
| | | }, |
| | | |
| | | async getRece() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/areas/receipt', {}, 'get') |
| | | if (code === 200) { |
| | | this.range = data.map(item => ({ |
| | | value: item.id, |
| | | text: item.warehouseId$ + "-- " + item.name |
| | | })); |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | </template> |
| | | |
| | | <script> |
| | | </script> |
| | | |
| | | <style> |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">起始库位托盘号</view> |
| | | <input placeholder="请扫起始库位托盘号" v-model="container"></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | <view class="cu-form-group "> |
| | | <view class="title">目标库位号</view> |
| | | <input placeholder="请选择目标库位号" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | <view class="text-blue"> |
| | | {{`${item.maktx}`}} |
| | | </view> |
| | | </view> |
| | | <!-- <view class="action" > |
| | | <text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text> |
| | | </view> --> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">ASN:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.asnCode}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">批次:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.batch}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-black">收货数量:</text> |
| | | </view> |
| | | <view class="action"> |
| | | <text class="text-grey ">{{item.anfme}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <view class="cu-bar btn-group foot"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="confirm">移库</button> |
| | | </view> |
| | | |
| | | <uni-popup ref="popup" class="cu-popup"> |
| | | <view class="popup-content"> |
| | | <view class="head"> |
| | | <text>推荐</text> |
| | | <text class='cuIcon-close text-red close' @click="close"></text> |
| | | </view> |
| | | |
| | | <div class="body"> |
| | | <view class="cu-list grid col-3 no-border"> |
| | | <view class="item" v-for="el in range"> |
| | | <view class="cu-btn round sm" :class="[el===curCode?'bg-blue':'line-blue']" |
| | | @click="itemChange(el)">{{el}}</view> |
| | | </view> |
| | | </view> |
| | | </div> |
| | | |
| | | <view class="cu-bar btn-group "> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="popupSubmit">提交</button> |
| | | </view> |
| | | </view> |
| | | </uni-popup> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | barcode: '', |
| | | areaName: '', |
| | | locCode: '', |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '' |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() {}, |
| | | methods: { |
| | | async search() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/stock/operate/list', { |
| | | barcode: this.container, |
| | | sta: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | // const find = this.list.find(el => el.id === data.id); |
| | | // !find && |
| | | this.list = data |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.container === '' || this.container ===null){ |
| | | uni.showToast({ |
| | | title: "容器码不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站码不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/staBind',{ |
| | | barcode: this.container, |
| | | sta: this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '绑定成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index"> |
| | | <view class="cu-list det menu " @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <!-- <view class="cu-bar bg-white solid-bottom margin-top-sm"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">订单时间:<text class="text-black ">{{item.createTime$}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">完成数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">调拨数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">盘点类型:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <!-- <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">清空</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">出库</button> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | uni.navigateTo({ |
| | | url: "./orderTransferItem", |
| | | // 通过eventChannel向被打开页面传送数据 |
| | | success: function(res) { |
| | | res.eventChannel.emit('checkItem', { |
| | | data: that.list[index] |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-gray"> 订单号:OS250807152830</view> |
| | | </view> |
| | | <!-- <view class="cu-form-group" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> --> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index" > |
| | | <view class="cu-list det menu " @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <view class="cu-bar bg-white solid-bottom"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray margin-right-sm"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">计划跟踪号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料编码:<text class="text-black ">{{item.matnrCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">物料名称:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">完成数量:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">调拨数量:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">盘点类型:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> --> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">刷新</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">调拨</button> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | |
| | | // uni.navigateTo({ |
| | | // url: "./orderInItem", |
| | | // // 通过eventChannel向被打开页面传送数据 |
| | | // success: function(res) { |
| | | // res.eventChannel.emit('checkItem', { |
| | | // data: that.list[index] |
| | | // }) |
| | | // } |
| | | |
| | | // }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view> |
| | | <!-- <form > |
| | | <view class="cu-form-group margin-top" v-show="!isconfirm"> |
| | | <view class="title">订单号</view> |
| | | <input placeholder="请选择订单编码" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> --> |
| | | |
| | | <scroll-view scroll-y class="page"> |
| | | <view class="nav-list"> |
| | | <!-- :url="'/pages' + item.url + '?param=' + item.param" navigateTo--> |
| | | <view hover-class='none' class="nav-li" @click="toOrder(item)" |
| | | :class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]" |
| | | v-for="(item,index) in elements2" :key="index"> |
| | | <view class="nav-title">{{item.title}}</view> |
| | | <view class="nav-name">{{item.name}}</view> |
| | | <text :class="'cuIcon-' + item.cuIcon"></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-tabbar-height"></view> |
| | | </scroll-view> |
| | | <view style="height: 50rpx;"></view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | baseUrl: '', |
| | | token: '', |
| | | icon: '', |
| | | elements: [], |
| | | project: 'tzsk', |
| | | elements2: [ |
| | | // { |
| | | // title: '待包装入库单', |
| | | // name: 'pakinOrder', |
| | | // color: 'blue', |
| | | // url: `/outbound/orderPick` |
| | | // }, |
| | | // { |
| | | // title: '待包装出库单', |
| | | // name: 'pakinOrder', |
| | | // color: 'blue', |
| | | // url: `/phyz/waitOrder/waitOrderOut` |
| | | // }, |
| | | // { |
| | | // title: '采购入库单', |
| | | // name: 'pakinOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/pakinOrderSelect` |
| | | // }, |
| | | // { |
| | | // title: '出库单', |
| | | // name: 'outOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/outOrder` |
| | | // }, |
| | | // { |
| | | // title: '入库单测试用', |
| | | // name: 'pakin', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/order/purchaseOrder` |
| | | // }, |
| | | // { |
| | | // title: '采购出库', |
| | | // name: 'outOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/orderOut/orderOutSelect` |
| | | // }, |
| | | // { |
| | | // title: '半成品入库单', |
| | | // name: 'bcpOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpOrder` |
| | | // }, |
| | | // { |
| | | // title: '半成品入库单_吸塑', |
| | | // name: 'bcpOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/bcp/bcpOrder_xs` |
| | | // }, |
| | | { |
| | | title: '半成品调拨单', |
| | | name: 'bcpDbOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/orderTransfer` |
| | | }, |
| | | { |
| | | title: '半成品调拨单', |
| | | name: 'bcpDbOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/orderTransfer` |
| | | }, |
| | | // { |
| | | // title: '半成品出库单', |
| | | // name: 'bcpOutOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/orderOut/bcpOrderOutSelect` |
| | | // }, |
| | | // { |
| | | // title: '半成品出库单_二厂', |
| | | // name: 'bcpOutOrder', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/orderOut/bcpOrderOutSelect_2`, |
| | | // param: {orderType: [1,2,3]} |
| | | // }, |
| | | { |
| | | title: '半成品加工单', |
| | | name: 'processOrder', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/orderTransfer` |
| | | }, |
| | | { |
| | | title: '半成品回流单', |
| | | name: 'backStock', |
| | | color: 'blue', |
| | | // cuIcon: 'pullup', |
| | | url: `/orderTransfer` |
| | | }, |
| | | // { |
| | | // title: '入库单', |
| | | // name: 'orderIn', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/comOrder/orderIn` |
| | | // }, |
| | | // { |
| | | // title: '出库单', |
| | | // name: 'orderOut', |
| | | // color: 'blue', |
| | | // // cuIcon: 'pullup', |
| | | // url: `/phyz/comOrder/orderOut` |
| | | // }, |
| | | |
| | | ], |
| | | menu: [], |
| | | colorList: ['cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive','cyan','blue','purple','mauve','pink','brown','red','orange','yellow','olive' ] |
| | | }; |
| | | }, |
| | | // onShow() { |
| | | // this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | // this.token = uni.getStorageSync('token'); |
| | | // this.project = uni.getStorageSync('project') |
| | | // // this.getAuth() |
| | | // this.backGroundRepeat() |
| | | // }, |
| | | onLoad(option) { |
| | | this.baseUrl = uni.getStorageSync('baseUrl'); |
| | | this.token = uni.getStorageSync('token'); |
| | | this.project = uni.getStorageSync('project'); |
| | | this.menu = uni.getStorageSync('menu'); |
| | | this.getAuth2(option.id) |
| | | this.backGroundRepeat() |
| | | }, |
| | | methods: { |
| | | backGroundRepeat() { |
| | | let len = this.colorList.length |
| | | let i = 0 |
| | | for (let k in this.elements2) { |
| | | if (i == len) { |
| | | i = 0 |
| | | } |
| | | this.elements2[k].color = this.colorList[i] |
| | | i++ |
| | | } |
| | | }, |
| | | toOrder(item) { |
| | | uni.navigateTo({ |
| | | url: `/pages/transfer${item.url}`, |
| | | success(res) { |
| | | res.eventChannel.emit('param', { |
| | | param: item.param |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getAuth2(id) { |
| | | let secMenu = [] |
| | | for (let k of this.menu) { |
| | | if (id == k.id) { |
| | | secMenu = k.children |
| | | } |
| | | } |
| | | for (let i in secMenu) { |
| | | this.getIcon(secMenu[i].title) |
| | | // 兼容2025 02 18 菜单param |
| | | if (secMenu[i].param) { |
| | | this.elements.unshift({ |
| | | title: secMenu[i].name, |
| | | name: secMenu[i].title, |
| | | color: this.colorList[i], |
| | | cuIcon: this.icon, |
| | | id: secMenu[i].id, |
| | | param: JSON.parse(secMenu[i].param), |
| | | url: `${secMenu[i].code}` |
| | | }) |
| | | } else { |
| | | this.elements.unshift({ |
| | | title: secMenu[i].name, |
| | | name: secMenu[i].title, |
| | | color: this.colorList[i], |
| | | cuIcon: this.icon, |
| | | id: secMenu[i].id, |
| | | url: `${secMenu[i].code}` |
| | | }) |
| | | } |
| | | } |
| | | console.log(this.elements); |
| | | }, |
| | | getAuth(id) { |
| | | let that = this |
| | | uni.request({ |
| | | url: that.baseUrl + '/menu/pda/auth', |
| | | data: {level:2 ,id: id}, |
| | | header: { 'token': uni.getStorageSync('token') }, |
| | | method: 'POST', |
| | | success(res) { |
| | | console.log(res); |
| | | if (res.statusCode === 404) { |
| | | that.elements = that.elements2 |
| | | return |
| | | } |
| | | res = res.data |
| | | that.elements = [] |
| | | if (res.code === 200) { |
| | | if (res.data == undefined || res.data == null || res.data == "") { |
| | | if (res.data.length == 0) { |
| | | return |
| | | } else { |
| | | that.elements = that.elements2 |
| | | } |
| | | } |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | if (res.data.length < 0) { |
| | | break; |
| | | } |
| | | that.getIcon(res.data[i].title) |
| | | that.elements.unshift({ |
| | | title: res.data[i].name, |
| | | name: res.data[i].title, |
| | | color: that.colorList[i], |
| | | cuIcon: that.icon, |
| | | url: `${res.data[i].code}` |
| | | }) |
| | | } |
| | | } else if (res.code === 403) { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | setTimeout(() => { |
| | | uni.reLaunch({ |
| | | url: '../login/login' |
| | | }); |
| | | }, 1000); |
| | | } else if(res.status === 404) { |
| | | that.elements = that.elements2 |
| | | // uni.showToast({ |
| | | // title: '默认主页', |
| | | // icon: "none", |
| | | // position: 'top' |
| | | // }) |
| | | } else { |
| | | uni.showToast({ |
| | | title: res.msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | }, |
| | | fail(err) { |
| | | console.log(err); |
| | | } |
| | | }) |
| | | }, |
| | | getIcon(e) { |
| | | const ways = ['pakin','orderPakin','orderPutOn'] |
| | | if (ways.includes(e)) { |
| | | this.icon = 'pullup' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .page { |
| | | height: 100vh; |
| | | } |
| | | |
| | | .bg-red { |
| | | background-color: #e54d42; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-orange { |
| | | background-color: #f37b1d; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-yellow { |
| | | background-color: #fbbd08; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-olive { |
| | | background-color: #8dc63f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-green { |
| | | background-color: #39b54a; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-cyan { |
| | | background-color: #1cbbb4; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-blue { |
| | | background-color: #0081ff; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-purple { |
| | | background-color: #6739b6; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-mauve { |
| | | background-color: #9c26b0; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-pink { |
| | | background-color: #e03997; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-brown { |
| | | background-color: #a5673f; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-grey { |
| | | background-color: #8799a3; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-gray { |
| | | background-color: #f0f0f0; |
| | | color: #333333; |
| | | } |
| | | |
| | | .bg-black { |
| | | background-color: #333333; |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .bg-white { |
| | | background-color: #ffffff; |
| | | color: #666666; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">库位号</view> |
| | | <input placeholder="请扫描库位编码" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index" @click="clickTaskItem(index)"> |
| | | <view class="cu-list det menu" @click="clickTaskItem(index)"> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-grey">库位号:</text><text class="text-black">{{item.stationName}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-grey">库位类型:</text><text class="text-black ">{{item.type === 1 ? '箱壳' : '原材料'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-grey">容器号:</text><text class="text-black ">{{item.containerType}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-grey">库位状态:</text><text class="text-black ">{{item.status === 0 ? '在库' : '空闲' }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <button class="cu-btn bg-red shadow-blur margin-left-xl justify-center" @click="popupSubmit">禁用</button> |
| | | <button class="cu-btn bg-green shadow-blur margin-right-xl justify-center" @click="popupSubmit">解禁</button> |
| | | <!-- <text class="text-grey">容器号:</text><text class="text-black ">{{item.anfme}}</text> --> |
| | | |
| | | <!-- <view class="content margin-left-xl justify-center"> |
| | | </view> --> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | <!-- <uni-popup ref="popup" class="cu-popup"> |
| | | <view class="popup-content"> |
| | | <view class="head"> |
| | | <text>推荐</text> |
| | | <text class='cuIcon-close text-red close' @click="close"></text> |
| | | </view> |
| | | |
| | | <div class="body"> |
| | | <view class="cu-list grid col-3 no-border"> |
| | | <view class="item" v-for="el in range"> |
| | | <view class="cu-btn round sm" :class="[el===curCode?'bg-blue':'line-blue']" |
| | | @click="itemChange(el)">{{el}}</view> |
| | | </view> |
| | | </view> |
| | | </div> |
| | | |
| | | <view class="cu-bar btn-group "> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="popupSubmit">提交</button> |
| | | </view> |
| | | </view> |
| | | </uni-popup> --> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '' |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | async search() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/basStation/page', { |
| | | current: 1, |
| | | pageSize: 10000, |
| | | stationName: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | this.list = data.records |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | uni.navigateTo({ |
| | | url: "./orderInItem", |
| | | // 通过eventChannel向被打开页面传送数据 |
| | | success: function(res) { |
| | | res.eventChannel.emit('checkItem', { |
| | | data: that.list[index] |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站码不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/staBind',{ |
| | | barcode: this.container, |
| | | sta: this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '绑定成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form> |
| | | <view class="cu-form-group margin-top"> |
| | | <view class="title">接驳站点</view> |
| | | <input placeholder="请扫描接驳站点条码" v-model="barcode" ></input> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index" @click="clickTaskItem(index)"> |
| | | <view class="cu-list det menu" @click="clickTaskItem(index)"> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-grey">站点编码:</text><text class="text-black">{{item.stationName}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-grey">站点类型:</text><text class="text-black ">{{item.type === 1 ? '光电站点' : '普通站点'}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-grey">站点状态:</text><text class="text-black ">{{item.status === 0 ? '正常' : '禁用' }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <button class="cu-btn bg-red shadow-blur margin-left-xl justify-center" @click="popupSubmit">禁用</button> |
| | | <button class="cu-btn bg-green shadow-blur margin-right-xl justify-center" @click="popupSubmit">解禁</button> |
| | | <!-- <text class="text-grey">容器号:</text><text class="text-black ">{{item.anfme}}</text> --> |
| | | |
| | | <!-- <view class="content margin-left-xl justify-center"> |
| | | </view> --> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | <!-- <uni-popup ref="popup" class="cu-popup"> |
| | | <view class="popup-content"> |
| | | <view class="head"> |
| | | <text>推荐</text> |
| | | <text class='cuIcon-close text-red close' @click="close"></text> |
| | | </view> |
| | | |
| | | <div class="body"> |
| | | <view class="cu-list grid col-3 no-border"> |
| | | <view class="item" v-for="el in range"> |
| | | <view class="cu-btn round sm" :class="[el===curCode?'bg-blue':'line-blue']" |
| | | @click="itemChange(el)">{{el}}</view> |
| | | </view> |
| | | </view> |
| | | </div> |
| | | |
| | | <view class="cu-bar btn-group "> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="popupSubmit">提交</button> |
| | | </view> |
| | | </view> |
| | | </uni-popup> --> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | container: '', |
| | | list: [], |
| | | range: [], |
| | | curCode: '' |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | async search() { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/basStation/page', { |
| | | current: 1, |
| | | pageSize: 10000, |
| | | stationName: this.barcode |
| | | }) |
| | | if (code === 200) { |
| | | this.list = data.records |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | }, |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | uni.navigateTo({ |
| | | url: "./orderInItem", |
| | | // 通过eventChannel向被打开页面传送数据 |
| | | success: function(res) { |
| | | res.eventChannel.emit('checkItem', { |
| | | data: that.list[index] |
| | | }) |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.container = '' |
| | | this.barcode = '' |
| | | }, |
| | | |
| | | open() { |
| | | this.$refs.popup.open() |
| | | }, |
| | | |
| | | close() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | |
| | | popupSubmit() { |
| | | this.$refs.popup.close() |
| | | }, |
| | | itemChange(el) { |
| | | this.curCode = el |
| | | }, |
| | | |
| | | async confirm() { |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | uni.showToast({ |
| | | title: "接驳站码不能为空", |
| | | icon: "none", |
| | | }) |
| | | return ; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/AGV/staBind',{ |
| | | barcode: this.container, |
| | | sta: this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '绑定成功' |
| | | }) |
| | | this.clear() |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-file-picker { |
| | | width: 100%; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .uni-select__selector { |
| | | z-index: 999; |
| | | } |
| | | |
| | | .tj { |
| | | height: auto; |
| | | padding: 6px 8px; |
| | | display: inline-block; |
| | | border-radius: 6px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .item .cu-btn { |
| | | font-size: 26upx; |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <view class="has-foot"> |
| | | <form > |
| | | <!-- <view class="flex solid-bottom padding-sm justify-between"> |
| | | <view class="text-gray"> 订单号:OS250807152830</view> |
| | | </view> --> |
| | | <view class="cu-form-group" v-show="!isconfirm"> |
| | | <view class="title">工作号</view> |
| | | <input placeholder="请选择工作号" v-model="barcode" @input="search()" focus></input> |
| | | <text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text> |
| | | <text class='cuIcon-search text-blue' @click="search"></text> |
| | | </view> |
| | | </form> |
| | | |
| | | |
| | | <view class="cu-list det menu sm-border padding"> |
| | | <block v-for="(item, index) in list" :key="index" > |
| | | <view class="cu-list det menu " @click="clickTaskItem(index)"> |
| | | |
| | | |
| | | <view class="cu-bar bg-white solid-bottom"> |
| | | <view class="action"> |
| | | <view class="index"> |
| | | {{index+1}} |
| | | </view> |
| | | </view> |
| | | <view class="content2"> |
| | | <text class="text-gray margin-right-sm"><text class="text-black ">{{item.status$}}</text></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">工作号:<text class="text-black ">{{item.orderCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">工作时间:<text class="text-black ">{{item.matnrCode}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">工作类型:<text class="text-black ">{{item.maktx}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">起始站点:<text class="text-black ">{{item.workQty}}</text></text> |
| | | </view> |
| | | <view class="content"> |
| | | <text class="text-gray">目标站点:<text class="text-black ">{{item.anfme}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">目标容器号:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> |
| | | <view class="cu-item"> |
| | | <view class="content"> |
| | | <text class="text-gray">工作状态:<text class="text-black ">{{item.checkType$}}</text></text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="cu-item"> |
| | | <view class="content"> |
| | | <progress :percent="Math.trunc((item.workQty/item.anfme)*100) " show-info stroke-width="3" /> |
| | | </view> |
| | | </view> --> |
| | | |
| | | </view> |
| | | </block> |
| | | </view> |
| | | |
| | | |
| | | <!-- <view class="text-blue text-right padding-lr" v-show="isconfirm"> |
| | | 本次收货总数量:{{allCount}} |
| | | </view> |
| | | |
| | | <view class="cu-form-group " v-show="isconfirm"> |
| | | <view class="title">收货区</view> |
| | | <uni-data-select v-model="whAreaId" :localdata="range" placement="top" |
| | | @change="selChange"></uni-data-select> |
| | | </view> --> |
| | | |
| | | <view class="cu-bar btn-group foot" v-show="!isconfirm"> |
| | | <button class="cu-btn text-blue line-blue shadow" @click="clear">刷新</button> |
| | | <button class="cu-btn bg-blue shadow-blur" @click="next">出库</button> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | request |
| | | } from '../../common/request.js' |
| | | import { |
| | | mapState, |
| | | mapMutations, |
| | | mapActions, |
| | | mapGetters |
| | | } from 'vuex'; |
| | | export default { |
| | | data() { |
| | | return { |
| | | isClickItem:false, |
| | | clickItem:'', |
| | | QRbarcode:null, |
| | | barcode: '', |
| | | whAreaId: '', |
| | | list: [], |
| | | range: [], |
| | | isconfirm: false, |
| | | itemStyle: { |
| | | backgroundColor: '#42b983', |
| | | borderColor: '#42b983' |
| | | }, |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapState('user', ['dynamicFields']), |
| | | allCount() { |
| | | return this.list.reduce((acc, row) => +row.receiptQty + acc, 0) |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | clickTaskItem(index){ |
| | | let that = this |
| | | |
| | | // uni.navigateTo({ |
| | | // url: "./orderInItem", |
| | | // // 通过eventChannel向被打开页面传送数据 |
| | | // success: function(res) { |
| | | // res.eventChannel.emit('checkItem', { |
| | | // data: that.list[index] |
| | | // }) |
| | | // } |
| | | |
| | | // }); |
| | | }, |
| | | typeChange(e){ |
| | | this.typeSelect = e.value |
| | | this.search() |
| | | }, |
| | | async search() { |
| | | this.list = [] |
| | | if(this.barcode === '' || this.barcode ===null){ |
| | | this.barcode = 'OS2509030230'; |
| | | } |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/outStockItem/page',{ |
| | | orderId:this.barcode |
| | | } |
| | | ) |
| | | if (code === 200) { |
| | | if (Object.keys(data).length === 0){ |
| | | uni.showToast({ |
| | | title: "未查询到订单数据", |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | this.list.push(...data) |
| | | |
| | | }else if(code == 401){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('token'); |
| | | uni.reLaunch({ |
| | | url: "/pages/login/login" |
| | | }); |
| | | }, 1000); |
| | | }else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | |
| | | }, |
| | | clearCode() { |
| | | this.barcode = '' |
| | | }, |
| | | remove(index) { |
| | | this.list.splice(index, 1); |
| | | }, |
| | | clear() { |
| | | this.list = [] |
| | | this.barcode = '' |
| | | }, |
| | | next() { |
| | | if (this.list.length) { |
| | | this.isconfirm = true |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '未选物料标签' |
| | | }) |
| | | } |
| | | }, |
| | | prev() { |
| | | this.isconfirm = false |
| | | }, |
| | | selChange(val) { |
| | | uni.setStorageSync('whAreaId', val) |
| | | }, |
| | | async confirm() { |
| | | const newArr = this.list.map(item => { |
| | | return { |
| | | ...item, |
| | | receiptQty: item.receiptQty === null ? 0 : +item.receiptQty |
| | | }; |
| | | }); |
| | | if (this.whAreaId === '') { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: '请选择收货区' |
| | | }) |
| | | } else { |
| | | const { |
| | | code, |
| | | data, |
| | | msg |
| | | } = await request('/orders/confirm', { |
| | | receipts: newArr, |
| | | whAreaId: this.whAreaId |
| | | }) |
| | | if (code === 200) { |
| | | uni.showToast({ |
| | | title: '收货成功' |
| | | }) |
| | | this.list = [] |
| | | this.barcode = '' |
| | | this.isconfirm = false |
| | | } else { |
| | | uni.showToast({ |
| | | title: msg, |
| | | icon: "none", |
| | | position: 'top' |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }, |
| | | |
| | | DateChange(e, item) { |
| | | item.prodTime = e.detail.value |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | .index { |
| | | border: 1px solid #e54d42; |
| | | color: #e54d42; |
| | | border-radius: 50%; |
| | | display: block; |
| | | width: 50rpx; |
| | | height: 50rpx; |
| | | line-height: 48rpx; |
| | | text-align: center; |
| | | margin-right: 20rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | |
| | | .text-blue { |
| | | color: #0081ff !important; |
| | | |
| | | } |
| | | |
| | | .item { |
| | | position: relative; |
| | | display: flex; |
| | | min-height: 80upx; |
| | | align-items: center; |
| | | } |
| | | .content2 { |
| | | /* background-color: coral; */ |
| | | width: 100%; |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: flex-end; |
| | | margin-right: 10px; |
| | | color: #0081ff; |
| | | } |
| | | </style> |