剩余模块:生产入库,销售出库
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
<template>
|
||||
<view class="app status-bar-gap">
|
||||
<l-header :title="t('home.scrk')" sticky #right>
|
||||
<view style="margin-right: 32rpx;" v-if="state.tabsIndex === '1'" @click="submit()">{{ t('verify.tj') }}</view>
|
||||
</l-header>
|
||||
<view class="page">
|
||||
<l-header title="生产入库" sticky></l-header>
|
||||
<view class="input-box">
|
||||
<up-tabs :scrollable="false" :list="state.tabsList"></up-tabs>
|
||||
<up-tabs :scrollable="true" :list="state.tabsList" @click="upTabsItemFun"></up-tabs>
|
||||
</view>
|
||||
<view class="input-box">
|
||||
<view class="input-item">
|
||||
@@ -15,22 +17,8 @@
|
||||
</up-input>
|
||||
</view>
|
||||
</view>
|
||||
<view class="receive-listBox" ref="listBoxRef">
|
||||
<scroll-view id="scroll-box" class="scroll-box" scroll-y="true"
|
||||
:style="{'height':state.scrollHeight+'px'}" @scrolltolower="fnScrollBottom()">
|
||||
<view class="list-box-list" v-if="state.dataList.length > 0">
|
||||
<view class="data-item" @click.stop="fnToUrl(item)"
|
||||
v-for="(item, index) in state.dataList" :key="index">
|
||||
<view class="tit">{{ t('receive.djbh') }}:{{item.FBillNo}}</view>
|
||||
<view class="line-p"></view>
|
||||
<view class="b-font">{{ t('receive.rq') }}:{{item.FDateFormat}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="state.dataList.length==0">
|
||||
<up-empty mode="list"></up-empty>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<packing ref="packingRef" v-if="state.tabsIndex === '1'" :queryString="state.queryString" @clearOut="clearOut()"/>
|
||||
<scattered v-if="state.tabsIndex === '2'" :queryString="state.queryString" @clearOut="clearOut()"/>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -41,95 +29,30 @@
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import { parseTime } from '../../utils/tools.js';
|
||||
import { PRD_MORPTList, receiveBillList } from '../../common/request/api/api';
|
||||
const listBoxRef = ref(null)
|
||||
import packing from './packing.vue'
|
||||
import scattered from './scattered.vue'
|
||||
const packingRef = ref()
|
||||
const getI18n = useI18n()
|
||||
const { t, locale } = getI18n
|
||||
const state = reactive({
|
||||
queryString: '',
|
||||
dataList: [],
|
||||
scrollHeight: 0,
|
||||
page: {
|
||||
pageIndex: 1,
|
||||
pageSize: 200,
|
||||
totalCount: 0
|
||||
},
|
||||
tabsList: [
|
||||
{ name: computed(() => '包装'), type: '1' },
|
||||
{ name: computed(() => '单独物料'), type: '2' },
|
||||
]
|
||||
tabsIndex:'1',
|
||||
tabsList: [
|
||||
{ name: computed(() => t('index.bz')), type: '1' },
|
||||
{ name: computed(() => t('index.minbz')), type: '2' },
|
||||
],
|
||||
})
|
||||
|
||||
onShow(() => {
|
||||
|
||||
})
|
||||
onMounted(() => {
|
||||
const query = uni.createSelectorQuery().in(this);
|
||||
query.select(".receive-listBox").boundingClientRect((data) => {
|
||||
state.scrollHeight = data.height
|
||||
}).exec();
|
||||
fnDataList()
|
||||
})
|
||||
const fnScrollBottom = () => {
|
||||
console.log(state.page.pageIndex * state.page.pageSize,state.page.totalCount);
|
||||
if (state.page.pageIndex * state.page.pageSize <= state.page.totalCount) {
|
||||
debugger
|
||||
state.page.pageIndex ++;
|
||||
uni.showLoading({ mask: true });
|
||||
setTimeout(() => {
|
||||
fnDataList();
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
const fnToUrl = (item : any) => {
|
||||
toPages('/pages/productionStorage/material',{id:item.FID,fBillNo:item.FBillNo})
|
||||
}
|
||||
const debounceTimer = ref()
|
||||
const changeFun = (e : any) => {
|
||||
if (debounceTimer.value !== null) clearTimeout(debounceTimer.value)
|
||||
debounceTimer.value = setTimeout(() => {
|
||||
state.queryString = e
|
||||
state.page.pageIndex = 1
|
||||
state.dataList = []
|
||||
fnDataList()
|
||||
}, 500)
|
||||
if(e != '' ) state.queryString = e
|
||||
}
|
||||
const fnDataList = () => {
|
||||
let param = {
|
||||
queryString: state.queryString,
|
||||
pageIndex: state.page.pageIndex,
|
||||
pageSize: state.page.pageSize,
|
||||
};
|
||||
if (state.page.pageIndex == 1) {
|
||||
uni.showLoading({ mask: true });
|
||||
}
|
||||
PRD_MORPTList(param).then(res => {
|
||||
uni.hideLoading();
|
||||
if (res.code == 200) {
|
||||
let result = res.data;
|
||||
let dataArray = result.list;
|
||||
dataArray.forEach(p => {
|
||||
p.FDateFormat = parseTime(p.FDate, '{y}-{m}-{d}');
|
||||
});
|
||||
|
||||
if (state.page.pageIndex == 1) {
|
||||
state.dataList = dataArray;
|
||||
}
|
||||
else {
|
||||
state.dataList = state.dataList.concat(dataArray);
|
||||
}
|
||||
state.page.totalCount = result.total;
|
||||
|
||||
if (state.dataList.length == state.page.totalCount) {
|
||||
// more_status.value = 'nomore';
|
||||
}
|
||||
}
|
||||
});
|
||||
const upTabsItemFun = (e:any) => {
|
||||
state.tabsIndex = e.type
|
||||
}
|
||||
const toPages = (url : string, data : any = {}) => {
|
||||
uni.$u.route({
|
||||
url: url,
|
||||
params: data
|
||||
})
|
||||
const clearOut = () => {
|
||||
state.queryString = ''
|
||||
}
|
||||
const submit = () => {
|
||||
packingRef.value.dataPushNotification()
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="material-listBox">
|
||||
<scroll-view id="scroll-box" class="scroll-box" scroll-y="true"
|
||||
<scroll-view id="scroll-box1" class="scroll-box" scroll-y="true"
|
||||
:style="{'height':state.scrollHeight+'px'}">
|
||||
<view class="list-box-list" v-if="state.dataList.length > 0">
|
||||
<view class="data-item" v-for="(item, index) in state.dataList"
|
||||
@@ -39,11 +39,11 @@
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.Lot }}</view>
|
||||
</view>
|
||||
<view class="itemBox">
|
||||
<!-- <view class="itemBox">
|
||||
<view>仓库</view>
|
||||
<view class="zongjian"></view>
|
||||
<view>{{ item.MultiLanguageText }}</view>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="itemBox">
|
||||
<view>{{t('receive.ys')}}</view>
|
||||
<view class="zongjian"></view>
|
||||
@@ -73,7 +73,7 @@
|
||||
@scanFrameDataFeedback="(res:object)=>{state.scanFrameDataFeedback = res}"
|
||||
@fast="(row:any)=>{state.scanFrameDataFeedback = row}" @err="scanFrameErrFun" />
|
||||
<shortcut ref="shortcutRef" @dataToscanFrame="dataToscanFrameFun" />
|
||||
<tools ref="toolsRef" @defaultPopup="defaultPopupFun" @scanRecord="scanRecordFun" />
|
||||
<tools ref="toolsRef" :type="['scanRecord']" @defaultPopup="defaultPopupFun" @scanRecord="scanRecordFun" />
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
@@ -101,6 +101,7 @@
|
||||
pageSize: 200,
|
||||
totalCount: 0
|
||||
},
|
||||
tabsIndex:'1',
|
||||
FBillNo: '',
|
||||
materialId: '',
|
||||
supplierName: '',
|
||||
@@ -125,7 +126,6 @@
|
||||
state.scrollHeight = data.height
|
||||
}).exec();
|
||||
// scanFrameRef.value.stateShow(true)
|
||||
|
||||
})
|
||||
/**
|
||||
* 数据逻辑
|
||||
@@ -155,22 +155,13 @@
|
||||
PRD_MORPTScanData({
|
||||
FBarCode: val,
|
||||
FBillNo: state.FBillNo,
|
||||
IsPack: 'false'
|
||||
}).then((res : any) => {
|
||||
if (res.data !== null) {
|
||||
console.log(res);
|
||||
scanFrameRef.value.getreceiveBillScanData({ ...res.data, queryString: state.queryString, scanFrameShowSate: state.shortcutDataFeedback.scanFrameShowSate,stashVerify:true })
|
||||
if (Object.keys(state.shortcutDataFeedback).length) {
|
||||
if (state.shortcutDataFeedback.scanFrameShowSate) {
|
||||
scanFrameRef.value.stateShow(true)
|
||||
} else {
|
||||
postTemporaryScanDraftSaveFun(state.scanFrameDataFeedback)
|
||||
}
|
||||
} else {
|
||||
scanFrameRef.value.stateShow(true)
|
||||
}
|
||||
} else {
|
||||
uni.$u.toast('并没有该条数据')
|
||||
if (res.code === 200) {
|
||||
fnDataList(state.materialId)
|
||||
state.queryString = ''
|
||||
} else {
|
||||
uni.$u.toast(t('verify.noDataMessage'))
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -235,10 +226,9 @@
|
||||
/**
|
||||
* 数据推送
|
||||
*/
|
||||
|
||||
const dataPushNotification = () => {
|
||||
uni.showModal({
|
||||
title: '提示', content: '确定要推送此次数据吗', cancelText: '取消', confirmText: '确定',
|
||||
title: t('public.ts'), content: t('public.tjMessage'), cancelText: t('public.cancel'), confirmText: t('public.confirm'),
|
||||
success(res) {
|
||||
if (res.confirm) {
|
||||
let EntryIds : any = []
|
||||
@@ -262,7 +252,8 @@
|
||||
Qty: item.FVHUBScanQty,
|
||||
Flot: item.FVHUBFlot,
|
||||
StockId: item.FVHUBStock,
|
||||
StockFlex: item.FVHUBStockFlex
|
||||
StockFlex: item.FVHUBStockFlex,
|
||||
Sno: item.FVHUBJSON
|
||||
})
|
||||
})
|
||||
//推送数据
|
||||
@@ -298,11 +289,10 @@
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据请求
|
||||
*/
|
||||
const fnDataList = (FBillNo : any, statesItem : boolean = false) => {
|
||||
const fnDataList = (FBillNo : any) => {
|
||||
let param = {
|
||||
id: FBillNo,
|
||||
};
|
||||
@@ -316,12 +306,12 @@
|
||||
dataListArray.forEach((p : any) => {
|
||||
let item = {
|
||||
Id: p.Id,
|
||||
MaterialNo: p.MaterialNumber, //物料编码
|
||||
MaterialName: formatLangTextValue(p.MaterialName), //物料名称
|
||||
Lot: p.FLot_Text, //批号
|
||||
CheckQty: p.Qty, //应扫数量
|
||||
CheckJoinQty: p.ScanedQty, //已扫数量
|
||||
NoCheckQty: p.UnScanQty, //未扫数量
|
||||
MaterialNo: p.MaterialNumber,//物料编码
|
||||
MaterialName: formatLangTextValue(p.MaterialName),//物料名称
|
||||
Lot: p.FLot_Text,//批号
|
||||
CheckQty: p.Qty, //应扫数量
|
||||
CheckJoinQty: p.ScanedQty,//已扫数量
|
||||
NoCheckQty: p.UnScanQty,//未扫数量
|
||||
MultiLanguageText: Object.keys(p.StockId).length ? formatLangTextValue(p.StockId.Name) : '暂无仓库'
|
||||
};
|
||||
state.dataList.push(item);
|
||||
|
||||
Reference in New Issue
Block a user