Procházet zdrojové kódy

优化仓库管理

huang_an před 1 rokem
rodič
revize
f81f387b39

+ 20 - 13
pages/warehouse/enterHouse/addStock.vue

@@ -25,11 +25,11 @@
 			<u-form-item label="来源单据" prop="documentSource" borderBottom>
 				<u-input type="text" placeholder="请输入" v-model="formData.sourceBizNo" @click.native="goToRequisition" />
 			</u-form-item>
-			<u-form-item label="入库时间" prop="createUserName" borderBottom>
+			<u-form-item label="入库时间" prop="storageTime" borderBottom>
 				<view class="assetType_box" @click="timeShow = true">{{ storageTime ? formatter(storageTime) : '请选择' }}</view>
 			</u-form-item>
 			<u-form-item label="入库登记人" prop="createUserName" borderBottom>
-				<u-input disableColor="#ffffff" :value="formData.createUserName" placeholder="请选择" disabled type="text" />
+				<u-input disableColor="#ffffff" :value="formData.extInfo.createUserName" placeholder="请选择" disabled type="text" />
 			</u-form-item>
 			<u-form-item label="送货人" prop="deliveryName" borderBottom>
 				<u-input type="text" placeholder="请输入" v-model="formData.fromUser" />
@@ -38,7 +38,7 @@
 				<u-input type="text" placeholder="请输入" v-model="formData.extInfo.deliveryPhone" />
 			</u-form-item>
 			<u-form-item label="备注" prop="remark" borderBottom>
-				<u-input disableColor="#ffffff" :value="formData.remark" placeholder="请输入内容" type="text" />
+				<u-input disableColor="#ffffff" v-model="formData.remark" placeholder="请输入内容" type="text" />
 			</u-form-item>
 		</u-form>
 
@@ -71,7 +71,7 @@
 					<view class="listContent">
 						<view class="listBox" v-for="(item, index) in productList" :key="index">
 							<view class="listTit">
-								<view class="name">{{ item.categoryCode }}</view>
+								<view class="name">{{ item.categoryName }}</view>
 								<view class="btn">
 									<u-button v-if="item.isSave" type="primary" size="small" :hairline="true" text="编辑" @click="listEdit(index)"></u-button>
 									<u-button v-else type="primary" size="small" :hairline="true" text="保存" @click="listSave(item, index)"></u-button>
@@ -80,8 +80,8 @@
 							</view>
 							<view class="listCont" :class="{ save: item.isSave }">
 								<view class="item w100">
-									<u-form-item :label="`物品名称`">
-										{{ item.categoryName }}
+									<u-form-item :label="`物品编码`">
+										{{ item.categoryCode }}
 									</u-form-item>
 								</view>
 								<view class="item w100">
@@ -131,6 +131,7 @@
 								</view>
 							</view>
 							<view class="selectTime" v-if="item.outInDetailRecordRequestList.length > 0">
+								<view class="title">包装列表</view>
 								<view class="timeBox">
 									<u-button class="firstBtn" size="small" type="primary" text="选择时间类型" @click="timeTypeShow = true"></u-button>
 									<u-button type="warning" size="small" :text="`批量设置${curDateTypeLabel[curDateType]}`" @click="typeTimeClick(index)"></u-button>
@@ -333,7 +334,7 @@
 				supplierList: [], //供应商
 				formData: {
 					type: 1, // 入库
-					bizType: '1', // 入库场景
+					bizType: '', // 入库场景
 					storageTime: '', // 入库时间
 					extInfo: {}, // 扩展信息
 					sourceBizNo: '', // 来源单据编号
@@ -404,7 +405,9 @@
 			// this.getDept()
 			// this.getSupplier()
 			const userInfo = uni.getStorageSync('userInfo')
-			this.formData.createUserName = userInfo.name
+			console.log()
+			this.formData.extInfo.createUserName = userInfo.name
+			this.formData.createUserId = userInfo.name
 			this.storageTime = Number(new Date())
 			this.formData.storageTime = this.formatter(this.storageTime)
 			// this.formData.registerId = userInfo.id
@@ -663,11 +666,9 @@
 									title: '入库成功',
 									duration: 1500
 								})
-								setTimeout(() => {
-									uni.navigateBack({
-										delta: 1
-									})
-								}, 1500)
+								uni.navigateBack({
+									delta: 1
+								})
 							} catch (error) {
 								uni.hideLoading()
 								console.log('提交流程失败', error)
@@ -1834,6 +1835,7 @@
 			}
 		}
 		.z_list {
+			height: 100% !important;
 			max-height: 500rpx;
 			.material {
 				margin-top: 10rpx;
@@ -2050,7 +2052,12 @@
 	.selectTime {
 		display: flex;
 		justify-content: flex-end;
+		align-items: center;
 		margin-bottom: 10rpx;
+		.title {
+			flex: 1;
+			font-size: 30rpx;
+		}
 		.timeBox {
 			display: flex;
 			width: 500rpx;

+ 95 - 11
pages/warehouse/enterHouse/details.vue

@@ -27,11 +27,11 @@
 			<u-form-item label="来源单据" prop="documentSource" borderBottom>
 				<view class="assetType_box">{{ formData.sourceBizNo }}</view>
 			</u-form-item>
-			<u-form-item label="入库时间" prop="createUserName" borderBottom>
+			<u-form-item label="入库时间" prop="storageTime" borderBottom>
 				<view class="assetType_box" @click="timeShow = true">{{ formData.storageTime }}</view>
 			</u-form-item>
 			<u-form-item label="入库登记人" prop="createUserName" borderBottom>
-				<view class="assetType_box" @click="timeShow = true">{{ formData.createUserName }}</view>
+				<view class="assetType_box" @click="timeShow = true">{{ formData.extInfo.createUserName }}</view>
 			</u-form-item>
 			<u-form-item label="送货人" prop="deliveryName" borderBottom>
 				<view class="assetType_box" @click="timeShow = true">{{ formData.fromUser }}</view>
@@ -47,7 +47,7 @@
 			</u-form-item>
 		</u-form>
 
-		<uni-collapse ref="collapse" v-model="collapseOpen">
+		<uni-collapse :class="[formData.verifyStatus == 0 ? 'collapse' : '']" ref="collapse" v-model="collapseOpen">
 			<uni-collapse-item :typeOpen="1" title="" name="collapse1" :open="true" :key="detailOpen" :show-animation="true">
 				<template v-slot:title>
 					<view class="detail-box">
@@ -76,12 +76,12 @@
 					<view class="listContent">
 						<view class="listBox" v-for="(item, index) in productList" :key="index">
 							<view class="listTit">
-								<view class="name">{{ item.categoryCode }}</view>
+								<view class="name">{{ item.categoryName }}</view>
 							</view>
 							<view class="listCont" :class="{ save: item.isSave }">
 								<view class="item w100">
-									<u-form-item :label="`物品名称`">
-										{{ item.categoryName }}
+									<u-form-item :label="`物品编码`">
+										{{ item.categoryCode }}
 									</u-form-item>
 								</view>
 								<view class="item w100">
@@ -130,7 +130,10 @@
 									<u-form-item label="是否拆包" prop="isUnpack">{{ item.isUnpack ? '是' : '否' }}</u-form-item>
 								</view>
 							</view>
-							<u-list @scrolltolower="scrolltolower" class="z_list" style="height: 100% !important">
+							<view class="selectTime">
+								<view class="title">包装列表</view>
+							</view>
+							<u-list @scrolltolower="scrolltolower" class="z_list">
 								<view class="material rx-ss" v-for="(ite, idx) in item.outInDetailRecordRequestList" :key="idx">
 									<view class="content_table">
 										<view class="item">
@@ -193,12 +196,20 @@
 				</u-form>
 			</uni-collapse-item>
 		</uni-collapse>
+		<view v-if="formData.verifyStatus == 0" class="footBox-container">
+			<view class="footBox">
+				<view class="add" @click="submit">
+					<uni-icons type="plus" size="20" color="#fff"></uni-icons>
+					提交
+				</view>
+			</view>
+		</view>
 	</view>
 </template>
 
 <script>
 	// import ScanCode from '@/components/ScanCode.vue'
-	import { getInboundDetailsById, getTreeByGroup } from '@/api/warehouseManagement'
+	import { getInboundDetailsById, getTreeByGroup, submitTwo } from '@/api/warehouseManagement'
 	import { getByCode } from '@/api/pda/common'
 	import dayjs from 'dayjs'
 	import { sceneState } from '../common'
@@ -219,6 +230,7 @@
 		// mixins: [dictMixins],
 		data() {
 			return {
+				id: '',
 				statusLabelList: ['未提交', '审核中', '审核通过', '已驳回'],
 				goodsLists: [], // 物品类型
 				assetTypeName: '', // 物品类型名称
@@ -336,6 +348,7 @@
 		},
 		onLoad(options) {
 			this.getListItems() // 物品类型
+			this.id = options.id || ''
 			getInboundDetailsById(options.id).then(res => {
 				console.log(res)
 				this.productList = res.outInDetailList.map(item => {
@@ -378,6 +391,31 @@
 			}
 		},
 		methods: {
+			submit() {
+				uni.showLoading({
+					title: '提交中...'
+				})
+				submitTwo({ outInId: this.id })
+					.then(() => {
+						uni.hideLoading()
+						uni.showToast({
+							icon: 'none',
+							title: '提交成功',
+							duration: 1500
+						})
+						uni.navigateBack({
+							delta: 1
+						})
+					})
+					.catch(() => {
+						uni.hideLoading()
+						uni.showToast({
+							icon: 'none',
+							title: '提交失败',
+							duration: 1500
+						})
+					})
+			},
 			getGoodsListsLabel(assetType) {
 				let arr = assetType ? assetType.split(',') : []
 				let label = arr.reduce((pre, cur) => {
@@ -423,13 +461,18 @@
 		justify-items: flex-start;
 		flex-wrap: wrap;
 	}
+
+	.collapse {
+		padding-bottom: 120rpx;
+		box-sizing: border-box;
+	}
 	/deep/.baseForm {
 		.u-form-item__body {
 			padding: 0px !important;
 		}
 		.assetType_box {
-			padding: 12rpx 18rpx;
-			height: 60rpx;
+			// padding: 12rpx 18rpx;
+			// height: 60rpx;
 			box-sizing: border-box;
 			width: 100%;
 			overflow: hidden;
@@ -559,6 +602,7 @@
 			}
 		}
 		.z_list {
+			height: 100% !important;
 			max-height: 500rpx;
 			.material {
 				margin-top: 10rpx;
@@ -775,7 +819,11 @@
 	.selectTime {
 		display: flex;
 		justify-content: flex-end;
-		margin-bottom: 10rpx;
+		align-items: center;
+		.title {
+			flex: 1;
+			font-size: 30rpx;
+		}
 		.timeBox {
 			display: flex;
 			width: 500rpx;
@@ -802,4 +850,40 @@
 	.top-css {
 		border-bottom: 1px solid rgb(207, 204, 204);
 	}
+	.footBox-container {
+		// height: 100rpx;
+		width: 100vw;
+	}
+	.footBox {
+		position: fixed;
+		left: 0px;
+		bottom: 0px;
+		height: 100rpx;
+		width: 100%;
+		display: flex;
+		align-items: center;
+		justify-content: space-between;
+		view {
+			width: 100%;
+			height: 100%;
+			text-align: center;
+			color: #fff;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+
+		.add {
+			background: $uni-color-success;
+		}
+
+		.reg {
+			background: $u-success-dark;
+		}
+
+		.uni-icons {
+			margin-right: 8rpx !important;
+			font-weight: bold;
+		}
+	}
 </style>

+ 18 - 0
pages/warehouse/inventory/batch/components/PopMessage.vue

@@ -43,6 +43,24 @@
 							{{ info.measureUnit }}
 						</view>
 					</view>
+					<view class="item">
+						<view class="s1">牌号</view>
+						<view class="s2">
+							{{ info.brandNum }}
+						</view>
+					</view>
+					<view class="item">
+						<view class="s1">规格</view>
+						<view class="s2">
+							{{ info.specification }}
+						</view>
+					</view>
+					<view class="item">
+						<view class="s1">型号</view>
+						<view class="s2">
+							{{ info.categoryModel }}
+						</view>
+					</view>
 					<view class="item" v-if="info.dimension == 3">
 						<view class="s1">包装单位</view>
 						<view class="s2">

+ 65 - 9
pages/warehouse/inventory/batch/components/ReportLoss.vue

@@ -1,11 +1,61 @@
 <template>
 	<!-- 报损报溢 -->
 	<view class="main-wrap">
-		<uni-search-bar class="uni-search-bar" @confirm="search" v-model="searchValue" @input="inputChange" cancelButton="none" placeholder="关键字"></uni-search-bar>
+		<uni-search-bar class="uni-search-bar" @confirm="search" v-model="searchValue" @input="inputChange" cancelButton="none" placeholder="搜索关键字"></uni-search-bar>
 		<view class="scroll_box">
 			<scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
-				<view class="order-list">
-					<u-collapse @change="change" @close="close" @open="open">
+				<view v-if="listData.length > 0" class="order-list">
+					<view class="list-box" v-for="(item, index) in listData" :key="index">
+						<view class="item">
+							<view class="title">
+								<text class="s1">报损报溢单号 {{ item.planProfitLossCode }}</text>
+							</view>
+							<view class="main">
+								<view class="row">
+									<view class="row-item">
+										<text class="t1">批次号</text>
+										<text class="t2">{{ item.batchNo }}</text>
+									</view>
+								</view>
+								<view class="row">
+									<view class="row-item">
+										<text class="t1">盘点工单号</text>
+										<text class="t2">{{ item.planOrderCode }}</text>
+									</view>
+								</view>
+								<view class="row">
+									<view class="row-item">
+										<text class="t1">盘点人</text>
+										<text class="t2">{{ item.planOrderUserName }}</text>
+									</view>
+								</view>
+								<view class="row">
+									<view class="row-item">
+										<text class="t1">盈/损/亏</text>
+										<text class="t2">{{ statusOpt[item.status] }}</text>
+									</view>
+									<view class="row-item">
+										<text class="t1">数量</text>
+										<text class="t2">{{ item[countKey[item.status]] }}</text>
+									</view>
+								</view>
+								<view class="row">
+									<view class="row-item">
+										<text class="t1">报损报溢人</text>
+										<text class="t2">{{ item.planProfitLossUserName }}</text>
+									</view>
+								</view>
+								<view class="row">
+									<view class="row-item">
+										<text class="t1">审核时间</text>
+										<text class="t2">{{ item.auditTime }}</text>
+									</view>
+								</view>
+							</view>
+						</view>
+					</view>
+
+					<!-- <u-collapse @change="change" @close="close" @open="open">
 						<u-collapse-item v-for="(item, index) in listData" :key="index" :title="item.onlyCode" name="Docs guide">
 							<template slot="title">
 								<view style="display: flex; justify-content: space-between">
@@ -57,9 +107,10 @@
 								</view>
 							</view>
 						</u-collapse-item>
-					</u-collapse>
+					</u-collapse> -->
 				</view>
-				<u-loadmore :status="status" fontSize="32" iconSize="36" style="margin: 20rpx 0" />
+				<view v-else class="no_data">暂无数据</view>
+				<!-- <u-loadmore :status="status" fontSize="32" iconSize="36" style="margin: 20rpx 0" /> -->
 			</scroll-view>
 		</view>
 	</view>
@@ -124,15 +175,15 @@
 				this.getMoreLists()
 			},
 			getData() {
-				uni.showLoading({
-					title: '加载中'
-				})
 				let par = {
 					pageNum: this.page,
 					size: this.size,
 					keyWord: this.searchValue,
 					categoryId: this.categoryId
 				}
+				uni.showLoading({
+					title: '加载中'
+				})
 				getPlandetails(par)
 					.then(res => {
 						this.listData = this.listData.concat(res.list)
@@ -177,7 +228,12 @@
 		height: 100%;
 		background-color: #fafafa;
 	}
-
+	.no_data {
+		height: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
 	.order-list {
 		.item {
 			background-color: #fff;

+ 13 - 9
pages/warehouse/inventory/batch/components/allot.vue

@@ -1,10 +1,10 @@
 <template>
 	<!-- 调拨 -->
 	<view class="main-wrap">
-		<uni-search-bar class="uni-search-bar" @confirm="search" v-model="searchValue" @input="inputChange" cancelButton="none" placeholder="调拨单号"></uni-search-bar>
+		<uni-search-bar class="uni-search-bar" @confirm="search" v-model="searchValue" @input="inputChange" cancelButton="none" placeholder="搜索关键字"></uni-search-bar>
 		<view class="scroll_box">
 			<scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
-				<view class="order-list">
+				<view v-if="listData.length > 0" class="order-list">
 					<view class="item" v-for="(item, index) in listData" :key="index">
 						<view class="title">
 							<view class="s1">
@@ -83,8 +83,8 @@
 						</view>
 					</view>
 				</view>
-
-				<u-loadmore :status="status" fontSize="32" iconSize="36" style="margin: 20rpx 0" />
+				<view v-else class="no_data">暂无数据</view>
+				<!-- <u-loadmore :status="status" fontSize="32" iconSize="36" style="margin: 20rpx 0" /> -->
 			</scroll-view>
 		</view>
 	</view>
@@ -149,15 +149,15 @@
 				this.getMoreLists()
 			},
 			getData() {
-				uni.showLoading({
-					title: '加载中'
-				})
 				let par = {
 					pageNum: this.page,
 					size: this.size,
 					keyWord: this.searchValue,
 					categoryId: this.categoryId
 				}
+				uni.showLoading({
+					title: '加载中'
+				})
 				getAllotDetails(par)
 					.then(res => {
 						this.listData = this.listData.concat(res.list)
@@ -210,11 +210,15 @@
 		overflow: hidden;
 	}
 	.scroll-Y {
-		//height: calc(100% - 112rpx);
 		height: 100%;
 		background-color: #fafafa;
 	}
-
+	.no_data {
+		height: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
 	.order-list {
 		.item {
 			background-color: #fff;

+ 108 - 56
pages/warehouse/inventory/batch/components/inventoryDetail.vue

@@ -2,52 +2,76 @@
 	<!-- 库存明细 -->
 	<view class="main-wrap" :class="{ info: isInfo }">
 		<uni-search-bar class="uni-search-bar" @confirm="search" v-model="searchValue" @input="inputChange" cancelButton="none" placeholder="搜索关键字"></uni-search-bar>
-		<scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
-			<view class="order-list">
-				<view class="item" v-for="(item, index) in listData" :key="index">
-					<view class="title">
-						<view class="s1">
-							{{ item.onlyCode }}
-						</view>
-					</view>
-					<view class="main">
-						<view class="row">
-							<view class="row-item">
-								<text class="t1">批次号</text>
-								<text class="t2">{{ item.batchNo }}</text>
+		<view class="scroll_box">
+			<scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
+				<view v-if="listData.length > 0" class="order-list">
+					<view class="item" v-for="(item, index) in listData" :key="index">
+						<view class="main">
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">批次号</text>
+									<text class="t2">{{ item.batchNo }}</text>
+								</view>
+								<view class="row-item">
+									<text class="t1">包装编码</text>
+									<text class="t2">{{ item.packageNo }}</text>
+								</view>
 							</view>
-							<view class="row-item">
-								<text class="t1">包装编码</text>
-								<text class="t2">{{ item.packageNo }}</text>
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">包装数量</text>
+									<text class="t2">{{ item.packingQuantity }}{{ item.packingUnit }}</text>
+								</view>
+								<view class="row-item">
+									<text class="t1">存货周期</text>
+									<text class="t2">{{ item.inventoryCycle }}天</text>
+								</view>
 							</view>
-						</view>
-						<view class="row">
-							<view class="row-item">
-								<text class="t1">包装数量</text>
-								<text class="t2">{{ item.packingQuantity }}{{ item.packingUnit }}</text>
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">发货条码</text>
+									<text class="t2">{{ item.barcodes }}</text>
+								</view>
+								<view class="row-item">
+									<text class="t1">客户代号</text>
+									<text class="t2">{{ item.clientCode }}</text>
+								</view>
 							</view>
-							<view class="row-item">
-								<text class="t1">存货周期</text>
-								<text class="t2">{{ item.inventoryCycle }}天</text>
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">物料代号</text>
+									<text class="t2">{{ item.materielDesignation }}</text>
+								</view>
+								<view class="row-item">
+									<text class="t1">刻码</text>
+									<text class="t2">{{ item.engrave }}</text>
+								</view>
 							</view>
-						</view>
-						<view class="row">
-							<view class="row-item">
-								<text class="t1">{{ item.productionDate ? '生产日期' : '采购日期' }}</text>
-								<text class="t2">{{ item.productionDate || item.purchaseDate }}</text>
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">{{ item.productionDate ? '生产日期' : '采购日期' }}</text>
+									<text class="t2">{{ item.productionDate || item.purchaseDate }}</text>
+								</view>
 							</view>
-						</view>
-						<view class="row">
-							<view class="row-item">
-								<text class="t1">仓库</text>
-								<text class="t2">{{ item.warehouseName }}</text>
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">仓库</text>
+									<text class="t2">{{ item.warehouseName }}</text>
+								</view>
+							</view>
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">区域</text>
+									<text class="t2">{{ getLocation(item) }}</text>
+								</view>
 							</view>
 						</view>
 					</view>
 				</view>
-			</view>
-			<u-loadmore fontSize="32" iconSize="36" :status="status" style="margin-top: 20rpx" />
-		</scroll-view>
+				<view v-else class="no_data">暂无数据</view>
+				<!-- <u-loadmore fontSize="32" iconSize="36" :status="status" style="margin-top: 20rpx" /> -->
+			</scroll-view>
+		</view>
 	</view>
 </template>
 
@@ -70,6 +94,17 @@
 			this.getData()
 		},
 		methods: {
+			getLocation(item) {
+				if (item.areaName && item.goodsShelfName && item.goodsAllocationName) {
+					return item.areaName + '/' + item.goodsShelfName + '/' + item.goodsAllocationName
+				} else if (item.areaName && item.goodsShelfName) {
+					return item.areaName + '/' + item.goodsShelfName
+				} else if (item.areaName) {
+					return item.areaName
+				} else {
+					return ''
+				}
+			},
 			sortChange(type, e) {
 				let order = e.order
 				this.listData.sort((a, b) => {
@@ -116,19 +151,26 @@
 				if (this.searchValue !== '') {
 					par.keyWord = this.searchValue
 				}
-				// par = this.URLSearchParams(par)
-				getPackingList(par).then(res => {
-					console.log('res----', res)
-					this.listData = [...this.listData, ...res.list]
-					let pages = res.count
-					if (this.listData.length < pages) {
-						this.isEnd = false
-						this.status = 'loading'
-					} else {
-						this.isEnd = true
-						this.status = 'nomore'
-					}
+				uni.showLoading({
+					title: '加载中'
 				})
+				// par = this.URLSearchParams(par)
+				getPackingList(par)
+					.then(res => {
+						console.log('res----', res)
+						this.listData = [...this.listData, ...res.list]
+						let pages = res.count
+						if (this.listData.length < pages) {
+							this.isEnd = false
+							this.status = 'loading'
+						} else {
+							this.isEnd = true
+							this.status = 'nomore'
+						}
+					})
+					.finally(err => {
+						uni.hideLoading()
+					})
 			},
 			getMoreLists() {
 				this.page++
@@ -146,16 +188,26 @@
 
 <style lang="scss" scoped>
 	.main-wrap {
-		height: calc(100% - 176rpx);
-
-		&.info {
-			height: calc(100% - 236rpx);
-		}
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+		overflow: hidden;
+	}
+	.scroll_box {
+		flex: 1;
+		overflow: hidden;
 	}
-
 	.scroll-Y {
-		height: calc(100vh - 322rpx);
+		height: 100%;
+		background-color: #fafafa;
 	}
+	.no_data {
+		height: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+
 	.order-list {
 		.item {
 			background-color: #fff;

+ 73 - 54
pages/warehouse/inventory/batch/components/outboundDelivery.vue

@@ -2,47 +2,49 @@
 	<!-- 出库 -->
 	<view class="main-wrap">
 		<uni-search-bar class="uni-search-bar" @confirm="search" v-model="searchValue" @input="inputChange" cancelButton="none" placeholder="搜索关键字"></uni-search-bar>
-
-		<scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
-			<view class="order-list">
-				<view class="item" v-for="(item, index) in listData" :key="index">
-					<view class="title">
-						<view class="s1">出库单号 {{ item.bizNo }}</view>
-						<view class="s2">
-							{{ dict.bizScene[item.bizScene] }}
-						</view>
-					</view>
-					<view class="main">
-						<view class="row">
-							<view class="row-item">
-								<text class="t1">出库数量</text>
-								<text class="t2">{{ item.measureQuantity }}{{ item.measureUnit }}</text>
-							</view>
-							<view class="row-item">
-								<text class="t1">包装数量</text>
-								<text class="t2">{{ item.packingQuantity }}{{ item.packingUnit }}</text>
-							</view>
-							<view class="row-item">
-								<text class="t1">操作人</text>
-								<text class="t2"></text>
-							</view>
-							<view class="row-item">
-								<text class="t1">审核人</text>
-								<text class="t2">{{ item.verifyName }}</text>
+		<view class="scroll_box">
+			<scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
+				<view v-if="listData.length > 0" class="order-list">
+					<view class="item" v-for="(item, index) in listData" :key="index">
+						<view class="title">
+							<view class="s1">出库单号 {{ item.bizNo }}</view>
+							<view class="s2">
+								{{ dict.bizScene[item.bizScene] }}
 							</view>
 						</view>
-						<view class="row">
-							<view class="row-item w100">
-								<text class="t1">出库时间</text>
-								<text class="t2">{{ item.createTime }}</text>
+						<view class="main">
+							<view class="row">
+								<view class="row-item">
+									<text class="t1">出库数量</text>
+									<text class="t2">{{ item.measureQuantity }}{{ item.measureUnit }}</text>
+								</view>
+								<view class="row-item">
+									<text class="t1">包装数量</text>
+									<text class="t2">{{ item.packingQuantity }}{{ item.packingUnit }}</text>
+								</view>
+								<view class="row-item">
+									<text class="t1">操作人</text>
+									<text class="t2"></text>
+								</view>
+								<view class="row-item">
+									<text class="t1">审核人</text>
+									<text class="t2">{{ item.verifyName }}</text>
+								</view>
+							</view>
+							<view class="row">
+								<view class="row-item w100">
+									<text class="t1">出库时间</text>
+									<text class="t2">{{ item.createTime }}</text>
+								</view>
 							</view>
+							<!-- <view class="ckmx" @click="goDetails(item)">查看明细</view> -->
 						</view>
-						<!-- <view class="ckmx" @click="goDetails(item)">查看明细</view> -->
 					</view>
 				</view>
-			</view>
-			<u-loadmore fontSize="32" iconSize="36" :status="status" style="margin: 20rpx 0" />
-		</scroll-view>
+				<view v-else class="no_data">暂无数据</view>
+				<!-- <u-loadmore fontSize="32" iconSize="36" :status="status" style="margin: 20rpx 0" /> -->
+			</scroll-view>
+		</view>
 	</view>
 </template>
 
@@ -107,19 +109,26 @@
 				if (this.searchValue !== '') {
 					par.keyWord = this.searchValue
 				}
-				// par = this.URLSearchParams(par)
-				outInRecordsPage(par).then(res => {
-					console.log('res----', res)
-					this.listData = [...this.listData, ...res.list]
-					let pages = res.count
-					if (this.listData.length < pages) {
-						this.isEnd = false
-						this.status = 'loading'
-					} else {
-						this.isEnd = true
-						this.status = 'nomore'
-					}
+				uni.showLoading({
+					title: '加载中'
 				})
+				// par = this.URLSearchParams(par)
+				outInRecordsPage(par)
+					.then(res => {
+						console.log('res----', res)
+						this.listData = [...this.listData, ...res.list]
+						let pages = res.count
+						if (this.listData.length < pages) {
+							this.isEnd = false
+							this.status = 'loading'
+						} else {
+							this.isEnd = true
+							this.status = 'nomore'
+						}
+					})
+					.finally(err => {
+						uni.hideLoading()
+					})
 			},
 			getMoreLists() {
 				this.page++
@@ -147,15 +156,25 @@
 
 <style lang="scss" scoped>
 	.main-wrap {
-		height: calc(100% - 176rpx);
-
-		&.info {
-			height: calc(100% - 236rpx);
-		}
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+		overflow: hidden;
+	}
+	.scroll_box {
+		flex: 1;
+		overflow: hidden;
 	}
-
 	.scroll-Y {
-		height: calc(100vh - 322rpx);
+		height: 100%;
+		background-color: #fafafa;
+	}
+
+	.no_data {
+		height: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
 	}
 
 	.order-list {

+ 39 - 21
pages/warehouse/inventory/batch/components/putStorage.vue

@@ -4,7 +4,7 @@
 		<uni-search-bar class="uni-search-bar" @confirm="search" v-model="searchValue" @input="inputChange" cancelButton="none" placeholder="搜索关键字"></uni-search-bar>
 		<view class="scroll_box">
 			<scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
-				<view class="order-list">
+				<view v-if="listData.length > 0" class="order-list">
 					<view class="item" v-for="(item, index) in listData" :key="index">
 						<view class="title">
 							<view class="s1">入库单号 {{ item.bizNo }}</view>
@@ -49,7 +49,8 @@
 						</view>
 					</view>
 				</view>
-				<u-loadmore fontSize="32" iconSize="36" :status="status" style="margin: 20rpx 0" />
+				<view v-else class="no_data">暂无数据</view>
+				<!-- <u-loadmore fontSize="32" iconSize="36" :status="status" style="margin: 20rpx 0" /> -->
 			</scroll-view>
 		</view>
 	</view>
@@ -120,19 +121,26 @@
 				if (this.searchValue !== '') {
 					par.keyWord = this.searchValue
 				}
-				// par = this.URLSearchParams(par)
-				outInRecordsPage(par).then(res => {
-					console.log('res----', res)
-					this.listData = [...this.listData, ...res.list]
-					let pages = res.count
-					if (this.listData.length < pages) {
-						this.isEnd = false
-						this.status = 'loading'
-					} else {
-						this.isEnd = true
-						this.status = 'nomore'
-					}
+				uni.showLoading({
+					title: '加载中'
 				})
+				// par = this.URLSearchParams(par)
+				outInRecordsPage(par)
+					.then(res => {
+						console.log('res----', res)
+						this.listData = [...this.listData, ...res.list]
+						let pages = res.count
+						if (this.listData.length < pages) {
+							this.isEnd = false
+							this.status = 'loading'
+						} else {
+							this.isEnd = true
+							this.status = 'nomore'
+						}
+					})
+					.finally(() => {
+						uni.hideLoading()
+					})
 			},
 			getMoreLists() {
 				this.page++
@@ -160,15 +168,25 @@
 
 <style lang="scss" scoped>
 	.main-wrap {
-		height: calc(100% - 176rpx);
-
-		&.info {
-			height: calc(100% - 236rpx);
-		}
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+		overflow: hidden;
+	}
+	.scroll_box {
+		flex: 1;
+		overflow: hidden;
 	}
-
 	.scroll-Y {
-		height: calc(100vh - 322rpx);
+		height: 100%;
+		background-color: #fafafa;
+	}
+
+	.no_data {
+		height: 100%;
+		display: flex;
+		justify-content: center;
+		align-items: center;
 	}
 
 	.order-list {

+ 53 - 38
pages/warehouse/inventory/index.vue

@@ -401,47 +401,62 @@
 				par.size = this.size
 				// par = this.URLSearchParams(par)
 				console.log(par)
+				uni.showLoading({
+					title: '加载中'
+				})
 				if (this.form.dimension == 1) {
-					getProductList(par).then(res => {
-						console.log('res----', res)
-						this.listData = [...this.listData, ...res.list]
-						let pages = res.count
-						console.log(this.page)
-						console.log(pages)
-						if (this.listData.length < pages) {
-							this.isEnd = false
-							this.status = 'loading'
-						} else {
-							this.isEnd = true
-							this.status = 'nomore'
-						}
-					})
+					getProductList(par)
+						.then(res => {
+							console.log('res----', res)
+							this.listData = [...this.listData, ...res.list]
+							let pages = res.count
+							console.log(this.page)
+							console.log(pages)
+							if (this.listData.length < pages) {
+								this.isEnd = false
+								this.status = 'loading'
+							} else {
+								this.isEnd = true
+								this.status = 'nomore'
+							}
+						})
+						.finally(() => {
+							uni.hideLoading()
+						})
 				} else if (this.form.dimension == 2) {
-					getBatchList(par).then(res => {
-						console.log('res----', res)
-						this.listData = [...this.listData, ...res.list]
-						let pages = res.count
-						if (this.listData.length < pages) {
-							this.isEnd = false
-							this.status = 'loading'
-						} else {
-							this.isEnd = true
-							this.status = 'nomore'
-						}
-					})
+					getBatchList(par)
+						.then(res => {
+							console.log('res----', res)
+							this.listData = [...this.listData, ...res.list]
+							let pages = res.count
+							if (this.listData.length < pages) {
+								this.isEnd = false
+								this.status = 'loading'
+							} else {
+								this.isEnd = true
+								this.status = 'nomore'
+							}
+						})
+						.finally(() => {
+							uni.hideLoading()
+						})
 				} else {
-					getPackingList(par).then(res => {
-						console.log('res----', res)
-						this.listData = [...this.listData, ...res.list]
-						let pages = res.count
-						if (this.listData.length < pages) {
-							this.isEnd = false
-							this.status = 'loading'
-						} else {
-							this.isEnd = true
-							this.status = 'nomore'
-						}
-					})
+					getPackingList(par)
+						.then(res => {
+							console.log('res----', res)
+							this.listData = [...this.listData, ...res.list]
+							let pages = res.count
+							if (this.listData.length < pages) {
+								this.isEnd = false
+								this.status = 'loading'
+							} else {
+								this.isEnd = true
+								this.status = 'nomore'
+							}
+						})
+						.finally(() => {
+							uni.hideLoading()
+						})
 				}
 				// get(this.apiUrl + '/InventoryBook/select/getPage?' + par).then(res => {
 				//   if (res.success) {

+ 1 - 0
pages/warehouse/inventoryAllocation/index.vue

@@ -217,6 +217,7 @@
 					keyWord: '',
 					status: ''
 				}
+				this.pickTabIndex = 0
 				this.tableList = []
 				this.getFirstList()
 			},

+ 18 - 5
pages/warehouse/outHouse/addStock.vue

@@ -26,7 +26,7 @@
 				<u-input type="text" placeholder="请输入" v-model="formData.sourceBizNo" @click.native="goToRequisition" />
 			</u-form-item>
 			<u-form-item label="出库登记人" prop="createUserName" borderBottom>
-				<u-input disableColor="#ffffff" :value="formData.createUserName" placeholder="请选择" disabled type="text" />
+				<u-input disableColor="#ffffff" v-model="formData.extInfo.createUserName" placeholder="请选择" disabled type="text" />
 			</u-form-item>
 			<u-form-item class="required-form" label="领料部门" prop="deliveryName" borderBottom>
 				<view class="assetType_box" @click="openDepartmentPicker">{{ formData.extInfo.verifyDeptName ? formData.extInfo.verifyDeptName : '请选择领料部门' }}</view>
@@ -35,7 +35,7 @@
 				<view class="assetType_box" @click="openUserPicker">{{ formData.fromUser ? formData.fromUser : '请选择领料人' }}</view>
 			</u-form-item>
 			<u-form-item label="备注" prop="remark" borderBottom>
-				<u-input disableColor="#ffffff" :value="formData.remark" placeholder="请输入内容" type="text" />
+				<u-input disableColor="#ffffff" v-model="formData.remark" placeholder="请输入内容" type="text" />
 			</u-form-item>
 		</u-form>
 
@@ -123,6 +123,9 @@
 									</u-form-item>
 								</view>
 							</view>
+							<view class="selectTime">
+								<view class="title">包装列表</view>
+							</view>
 							<u-list @scrolltolower="scrolltolower" class="z_list" style="height: 100% !important">
 								<view class="material rx-ss" v-for="(ite, idx) in item.outInDetailRecordRequestList" :key="idx">
 									<view class="content_table">
@@ -298,7 +301,7 @@
 				supplierList: [], //供应商
 				formData: {
 					type: 1, // 入库
-					bizType: '1', // 入库场景
+					bizType: '', // 入库场景
 					storageTime: '', // 入库时间
 					extInfo: {}, // 扩展信息
 					sourceBizNo: '', // 来源单据编号
@@ -356,7 +359,8 @@
 			this.getListItems() // 物品类型
 			this.initDeptData() // 部门列表
 			const userInfo = uni.getStorageSync('userInfo')
-			this.formData.createUserName = userInfo.name
+			this.formData.extInfo.createUserName = userInfo.name
+			this.formData.createUserId = userInfo.userId
 			uni.$on('setSelectList', async data => {
 				if (data?.length) {
 					console.log('data------------', data)
@@ -948,7 +952,16 @@
 			color: #666;
 		}
 	}
-
+	.selectTime {
+		display: flex;
+		justify-content: flex-end;
+		align-items: center;
+		margin-bottom: 10rpx;
+		.title {
+			flex: 1;
+			font-size: 30rpx;
+		}
+	}
 	.listCont {
 		display: flex;
 		align-items: center;

+ 21 - 9
pages/warehouse/outHouse/details.vue

@@ -28,13 +28,13 @@
 				<view class="assetType_box">{{ formData.sourceBizNo }}</view>
 			</u-form-item>
 			<u-form-item label="出库登记人" prop="createUserName" borderBottom>
-				<view class="assetType_box" @click="timeShow = true">{{ formData.createUserName }}</view>
+				<view class="assetType_box" @click="timeShow = true">{{ formData.extInfo.createUserName }}</view>
 			</u-form-item>
 			<u-form-item label="领料人" prop="deliveryName" borderBottom>
 				<view class="assetType_box" @click="timeShow = true">{{ formData.fromUser }}</view>
 			</u-form-item>
-			<u-form-item label="领料部门" prop="deliveryPhone" borderBottom>
-				<view class="assetType_box" @click="timeShow = true">{{ formData.extInfo.deliveryPhone }}</view>
+			<u-form-item label="领料部门" prop="verifyDeptName" borderBottom>
+				<view class="assetType_box" @click="timeShow = true">{{ formData.extInfo.verifyDeptName }}</view>
 			</u-form-item>
 			<u-form-item label="状态" prop="stautus" borderBottom>
 				<view class="assetType_box" @click="timeShow = true">{{ statusLabelList[formData.verifyStatus] }}</view>
@@ -91,6 +91,9 @@
 										{{ item.batchNo }}
 									</u-form-item>
 								</view>
+								<view class="item">
+									<u-form-item label="是否拆包" prop="isUnpack">{{ item.isUnpack ? '是' : '否' }}</u-form-item>
+								</view>
 								<view class="item">
 									<u-form-item label="数量" :prop="`productList.${index}.packingQuantity`">
 										{{ item.packingQuantity }}
@@ -123,9 +126,9 @@
 								<view class="item">
 									<u-form-item label="重量单位" prop="weightUnit">{{ item.weightUnit }}</u-form-item>
 								</view>
-								<view class="item">
-									<u-form-item label="是否拆包" prop="isUnpack">{{ item.isUnpack ? '是' : '否' }}</u-form-item>
-								</view>
+							</view>
+							<view class="selectTime">
+								<view class="title">包装列表</view>
 							</view>
 							<u-list @scrolltolower="scrolltolower" class="z_list" style="height: 100% !important">
 								<view class="material rx-ss" v-for="(ite, idx) in item.outInDetailRecordRequestList" :key="idx">
@@ -437,8 +440,8 @@
 			padding: 0px !important;
 		}
 		.assetType_box {
-			padding: 12rpx 18rpx;
-			height: 60rpx;
+			// padding: 12rpx 18rpx;
+			// height: 60rpx;
 			box-sizing: border-box;
 			width: 100%;
 			overflow: hidden;
@@ -715,7 +718,16 @@
 			color: #666;
 		}
 	}
-
+	.selectTime {
+		display: flex;
+		justify-content: flex-end;
+		align-items: center;
+		margin-bottom: 10rpx;
+		.title {
+			flex: 1;
+			font-size: 30rpx;
+		}
+	}
 	.listCont {
 		display: flex;
 		align-items: center;

+ 1 - 1
pages/warehouse/reportLoss/edit.vue

@@ -10,7 +10,7 @@
 				<u-input v-model="formData.name" placeholder="请输入" type="text" />
 			</u-form-item>
 			<u-form-item label="报损报溢部门" class="required-form" prop="bizScene" borderBottom>
-				<u-input v-model="formData.executeGroupName" disableColor="#ffffff" @click.native="$refs.treePicker._show()" placeholder="请选择" type="select" />
+				<u-input v-model="formData.executeGroupName" disableColor="#ffffff" @click.native="$refs.treePicker._show()" disabled placeholder="请选择" type="select" />
 			</u-form-item>
 			<u-form-item label="报损报溢人" class="required-form" prop="reportName" borderBottom>
 				<!-- <u-input :value="formData.reportName" disableColor="#ffffff" placeholder="请选择" disabled type="select" /> -->

+ 5 - 0
pages/warehouse/reportLoss/index.vue

@@ -91,6 +91,11 @@
 			this.getMoreLists()
 		},
 		methods: {
+			back() {
+				uni.switchTab({
+					url: '/pages/index/index'
+				})
+			},
 			getDept() {
 				listOrganizations(1).then(data => {
 					this.listData = data

+ 35 - 16
pages/warehouse/workOrder/index.vue

@@ -6,14 +6,15 @@
 			<view class="tab-title">
 				<view v-for="(item, index) in tabList" :key="index" class="tab-item" v-text="item.label" :class="index === pickTabIndex ? 'active' : ''" @click="changeChartsTab(index)"></view>
 			</view>
-			<view class="tab-title__placeholder"></view>
 		</template>
+		<u-list v-if="listData.length > 0" @scrolltolower="scrolltolower" class="z_list">
+			<view class="list-wrap" v-for="(item, index) in listData" :key="index" v-show="listData.length !== 0">
+				<CardTime :time="item.createTime" />
+				<KdCard :title="item.code" :status="true" :item="item" type="check" />
+			</view>
+		</u-list>
 
-		<view class="list-wrap" v-for="(item, index) in listData" :key="index" v-show="listData.length !== 0">
-			<CardTime :time="item.createTime" />
-			<KdCard :title="item.code" :status="true" :item="item" type="check" />
-		</view>
-		<view v-show="listData.length === 0" class="no_data">
+		<view v-else class="no_data">
 			<u-empty mode="data"></u-empty>
 		</view>
 	</view>
@@ -64,15 +65,23 @@
 			this.getFirstList()
 		},
 		//加载更多
-		onReachBottom() {
-			if (this.isEnd) {
-				return
-			}
-			// 显示加载图标
-			this.getMoreLists()
-		},
+		// onReachBottom() {
+		// 	if (this.isEnd) {
+		// 		return
+		// 	}
+		// 	// 显示加载图标
+		// 	this.getMoreLists()
+		// },
 
 		methods: {
+			scrolltolower() {
+				console.log('scrolltolower-----------')
+				if (this.isEnd) {
+					return
+				}
+				// 显示加载图标
+				this.getMoreLists()
+			},
 			//首次加载
 			getFirstList() {
 				this.page = 1
@@ -150,12 +159,13 @@
 
 <style lang="scss" scoped>
 	.mainBox {
+		height: 100vh;
+		display: flex;
+		flex-direction: column;
 	}
 
 	/*Tab条*/
 	.tab-title {
-		position: fixed;
-		z-index: 99;
 		width: 100%;
 		display: flex;
 		justify-content: space-between;
@@ -190,7 +200,16 @@
 			}
 		}
 	}
-
+	.no_data {
+		flex: 1;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+	}
+	.z_list {
+		flex: 1;
+		overflow: hidden;
+	}
 	/*列表信息*/
 	.list-wrap {
 		padding: 10rpx;