Jelajahi Sumber

feat(库存调拨): 调拨数量输入和显示

liujt 5 bulan lalu
induk
melakukan
3bec395377

+ 7 - 0
enum/dict.js

@@ -46,4 +46,11 @@ export const requirementSourceType = [
   { value: '8', text: '退货委外' },
   { value: '9', text: '委外返修' },
   { value: '99', text: '其他' }
+];
+
+// 列表维度
+export const dimensionType = [
+  { value: 1, text: '物品维度' },
+  { value: 2, text: '批次维度' },
+  { value: 3, text: '包装维度' }
 ];

+ 2 - 2
manifest.json

@@ -10,9 +10,9 @@
             "proxy" : {
                 "/api" : {
                     // "target" : "http://192.168.1.110:18086/",
-                    "target" : "http://192.168.1.251:18086/",
                     // "target" : "http://192.168.1.251:18086/",
-                    // "target": "http://192.168.1.251:18186",
+                    // "target" : "http://192.168.1.251:18086/",
+                    "target": "http://192.168.1.251:18186",
                     // "target": "http://116.63.185.248:80/api",
                     "changeOrigin" : true,
                     "secure" : false,

+ 1 - 1
pages/warehouse/components/scanCodeList.vue

@@ -23,7 +23,7 @@
 									</view>
 									<view class="listBox-bottom">
 										<view>牌号:{{ item.brandNum }}</view>
-										<view>型号:{{ item.modelType }}</view>
+										<view>型号:{{ item.categoryModel }}</view>
 										<view>规格:{{ item.specification }}</view>
 										<view>批次号:{{ item.batchNo }}</view>
 										<view>计量数量:{{ item.measureQuantity }}({{ item.measureUnit }})</view>

+ 74 - 20
pages/warehouse/inventoryAllocation/components/AssetsCard.vue

@@ -18,23 +18,63 @@
 				</view>
 			</view>
 			<view class="item_box rx-bc">
+				<view class="item_one perce50 rx-sc" v-if="dimension != 1">
+					<view class="lable">批次号:</view>
+					<view>{{item.batchNo}}</view>
+				</view>
 				<view class="item_one perce50 rx-sc">
-					<view class="lable">牌号:</view>
-					<view>{{ item.brandNum }}</view>
+					<view class="lable">调出仓库:</view>
+					<view>{{item.warehouseName}}</view>
+				</view>
+			</view>
+			<view class="item_box rx-bc">
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">调出库区:</view>
+					<view>{{item.areaName}}</view>
 				</view>
 				<view class="item_one perce50 rx-sc">
-					<view class="lable">型号:</view>
-					<view>{{item.modelType}}</view>
+					<view class="lable">调出货架:</view>
+					<view>{{item.goodsShelfName}}</view>
 				</view>
 			</view>
 			<view class="item_box rx-bc">
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">调出货位:</view>
+					<view>{{item.goodsAllocationName}}</view>
+				</view>
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">调入仓库:</view>
+					<view>{{item.targetWarehouseName}}</view>
+				</view>
+			</view>
+			<view class="item_box rx-bc">
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">调入库区:</view>
+					<view>{{item.targetAreaName}}</view>
+				</view>
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">调入货架:</view>
+					<view>{{item.targetGoodsShelfName}}</view>
+				</view>
+			</view>
+			<view class="item_box rx-bc">
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">调入货位:</view>
+					<view>{{item.targetGoodsAllocationName}}</view>
+				</view>
 				<view class="item_one perce50 rx-sc">
 					<view class="lable">规格:</view>
 					<view>{{item.specification}}</view>
 				</view>
+			</view>
+			<view class="item_box rx-bc">
 				<view class="item_one perce50 rx-sc">
-					<view class="lable">批次号:</view>
-					<view>{{item.batchNo}}</view>
+					<view class="lable">牌号:</view>
+					<view>{{ item.brandNum }}</view>
+				</view>
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">型号:</view>
+					<view>{{item.categoryModel}}</view>
 				</view>
 			</view>
 			<view class="item_box rx-bc">
@@ -42,24 +82,34 @@
 					<view class="lable">计量数量:</view>
 					<view>{{ item.measureQuantity }}({{ item.measureUnit }})</view>
 				</view>
+				<view class="item_one perce50 rx-sc">
+					<view class="lable">重量:</view>
+					<view>{{ item.weight }}({{ item.weightUnit }})</view>
+				</view>
 			</view>
 			<view class="item_box rx-bc">
+				<view class="item_one perce100 rx-sc" v-if="type == 'detail'">
+					<view class="lable">调拨数量:</view>
+					<view>{{ item.quantity }}({{ item.measureUnit }})</view>
+				</view>
+				<view class="item_one perce100 rx-sc" v-else>
+					<view class="lable">调拨数量:</view>
+					<view style="display: flex;align-items: center;"><u--input placeholder="请输入" type="number" border="surround" v-model="item.quantity" :min="0" :max="item.measureQuantity"></u--input>({{ item.measureUnit }})</view>
+				</view>
+			</view>
+			<view class="item_box rx-bc" v-if="dimension == 3">
 				<view class="item_one perce100 rx-sc">
 					<view class="lable">包装编码:</view>
 					<view>{{ item.packageNo }}</view>
 				</view>
 			</view>
-			<view class="item_box rx-bc">
+			<view class="item_box rx-bc" v-if="dimension == 3">
 				<view class="item_one perce50 rx-sc">
 					<view class="lable">包装数量:</view>
 					<view>{{ item.packingQuantity }}({{ item.packingUnit }})</view>
 				</view>
-				<view class="item_one perce50 rx-sc">
-					<view class="lable">重量:</view>
-					<view>{{ item.weight }}({{ item.weightUnit }})</view>
-				</view>
 			</view>
-			<view class="item_box rx-bc">
+			<!-- <view class="item_box rx-bc">
 				<view class="item_one perce50 rx-sc">
 					<view class="lable">发货条码:</view>
 					<view>{{ item.barcodes }}</view>
@@ -68,8 +118,8 @@
 					<view class="lable">物料代号:</view>
 					<view>{{ item.materielDesignation }}</view>
 				</view>
-			</view>
-			<view class="item_box rx-bc">
+			</view> -->
+			<!-- <view class="item_box rx-bc">
 				<view class="item_one perce50 rx-sc">
 					<view class="lable">客户代号:</view>
 					<view>{{ item.clientCode }}</view>
@@ -78,19 +128,19 @@
 					<view class="lable">刻码:</view>
 					<view>{{ item.engrave }}</view>
 				</view>
-			</view>
-			<view class="item_box rx-bc">
+			</view> -->
+			<!-- <view class="item_box rx-bc">
 				<view class="item_one perce100 rx-sc">
 					<view class="lable">仓库:</view>
 					<view>{{ item.warehouseName }}</view>
 				</view>
-			</view>
-			<view class="item_box rx-bc">
+			</view> -->
+			<!-- <view class="item_box rx-bc">
 				<view class="item_one perce100 rx-sc">
 					<view class="lable">区域:</view>
 					<view>{{ getLocation(item)  }}</view>
 				</view>
-			</view>
+			</view> -->
 		</view>
 	</view>
 </template>
@@ -121,7 +171,11 @@
 				type: Boolean,
 				default: false
 			},
-			type: String
+			type: String,
+			dimension: {
+				type: String,
+				default: ''
+			}
 		},
 		data() {
 			return {

+ 3 - 1
pages/warehouse/inventoryAllocation/components/CargoSpaceInfoDialog.vue

@@ -42,7 +42,7 @@
 										</view>
 										<view class="listBox-bottom">
 											<view>牌号:{{ item.brandNum }}</view>
-											<view>型号:{{ item.modelType }}</view>
+											<view>型号:{{ item.categoryModel }}</view>
 											<view>规格:{{ item.specification }}</view>
 											<view>批次号:{{ item.batchNo }}</view>
 											<view>计量数量:{{ item.measureQuantity }}({{ item.measureUnit }})</view>
@@ -53,6 +53,8 @@
 											<view>物料代号:{{ item.materielDesignation }}</view>
 											<view>客户代号:{{ item.clientCode }}</view>
 											<view>刻码:{{ item.engrave }}</view>
+											<view>销售订单号:{{ item.saleOrderInfo.saleOrderNos }}</view>
+											<view>客户:{{ item.saleOrderInfo.customerNames }}</view>
 											<view class="w100">仓库:{{ item.warehouseName }}</view>
 											<view class="w100">区域:{{ getLocation(item) }}</view>
 										</view>

+ 12 - 2
pages/warehouse/inventoryAllocation/components/DetailView.vue

@@ -25,6 +25,10 @@
 				<text class="kd-label">调入库</text>
 				{{ baseInfo.targetWarehouse}}
 			</view>
+			<view class="kd-cell">
+				<text class="kd-label">列表维度</text>
+				{{ getDimensionLabel(baseInfo.inventoryDimension)}}
+			</view>
 			<view class="kd-cell">
 				<text class="kd-label">创建人</text>
 				{{ baseInfo.allotName }}
@@ -48,7 +52,7 @@
 		</view>
 		<view class="list" v-if="activeName === 1">
 			<AssetsCard v-for="(item, index) in list" class="kd-row" type="detail" :key="index" :item="item"
-				:index="index+Number(1)" />
+				:index="index+Number(1)" :dimension="baseInfo.inventoryDimension" />
 		</view>
 	</view>
 </template>
@@ -56,6 +60,7 @@
 <script>
 	import CellInfo from '@/components/CellInfo.vue'
 	import AssetsCard from './AssetsCard.vue'
+	import { dimensionType } from '@/enum/dict.js'
 	export default {
 		components: {
 			CellInfo,
@@ -101,12 +106,17 @@
 					0: 'text-danger',
 					1: 'text-primary',
 					2: 'text-primary'
-				}
+				},
+				dimensionType
 			}
 		},
 		methods: {
 			changeTab(val) {
 				this.activeName = val
+			},
+			getDimensionLabel(dimension) {
+				const item = this.dimensionType.find(item => item.value == dimension)
+				return item?.text || ''
 			}
 		}
 	}

+ 5 - 5
pages/warehouse/inventoryAllocation/detail.vue

@@ -80,11 +80,11 @@
 				this.detailList = res.map(item => {
 					return {
 						...item,
-						categoryCode: this.infoData.categoryCode,
-						categoryName: this.infoData.categoryName,
-						brandNum: this.infoData.brandNum,
-						categoryModel: this.infoData.model,
-						specification: this.infoData.specification
+						// categoryCode: this.infoData.categoryCode,
+						// categoryName: this.infoData.categoryName,
+						// brandNum: this.infoData.brandNum,
+						// categoryModel: this.infoData.model,
+						// specification: this.infoData.specification
 					}
 				})
 				console.log(this.detailList)

+ 24 - 4
pages/warehouse/inventoryAllocation/edit.vue

@@ -167,7 +167,8 @@
 					verifyId: '',
 					verifyName: '',
 					warehouse: {},
-					inWarehouse: {}
+					inWarehouse: {},
+					inventoryDimension: 3,
 				},
 				assetsList: [], //已选资产列表
 				preAssetsList: [], //预调入资产列表
@@ -195,7 +196,10 @@
 			uni.$on('setSelectList', async data => {
 				if (data?.length) {
 					console.log('setSelectList--data------------', data)
-					this.assetsList = data
+					this.assetsList = data.map(item => {
+						item.quantity = item.measureQuantity
+						return item
+					})
 				}
 			})
 			this.$forceUpdate()
@@ -367,6 +371,14 @@
 						icon: 'none'
 					})
 					return
+				}
+				 // 检查是否存在quantity小于等于0或无效的项
+				if(this.assetsList.some((item) => !item.quantity || item.quantity <= 0 || item.quantity > item.measureQuantity)) {
+					uni.showToast({
+						title: '调拨数量不能为0或大于计量数量',
+						icon: 'none'
+					})
+					return
 				}
 				if (this.assetsList.length > 0) {
 					if (this.formData.dialType == 1) {
@@ -390,6 +402,8 @@
 						categoryName: this.assetsList.map(item => item.categoryName).join(','),
 						allotApplyAddPOBuilders: this.assetsList.map(item => {
 							return {
+								quantity: item.quantity,
+								categoryId: item.categoryId,
 								outInDetailRecordId: item.id,
 								warehouseId: this.formData.warehouseId,
 								warehouseName: this.formData.warehouseName,
@@ -406,12 +420,15 @@
 								targetGoodsShelfId: this.formData.inWarehouse.shelfId,
 								targetGoodsShelfName: this.formData.inWarehouse.shelfCode,
 								targetWarehouseId: this.formData.inWarehouseId,
-								targetWarehouseName: this.formData.inWarehouseName
+								targetWarehouseName: this.formData.inWarehouseName,
+								saleOrderNos: item.saleOrderNos || '',
+                  				customerNames: item.customerNames || '',
 							}
 						}),
 						allotCode: this.formData.code,
 						name: this.formData.name,
 						id: this.transferOrderId,
+						inventoryDimension: this.formData.inventoryDimension,
 						sourceWarehouse: this.formData.warehouseName,
 						sourceWarehouseId: this.formData.warehouseId,
 						targetWarehouse: this.formData.inWarehouseName,
@@ -1072,7 +1089,10 @@
 			cargoSpaceInfoConfirm(assetsList) {
 				console.log('assetsList-------', assetsList)
 				this.$refs.warehouseChooseRef.cancel()
-				this.assetsList = assetsList
+				this.assetsList = assetsList.map(item => {
+					item.quantity = item.measureQuantity
+					return item
+				})
 				// // 已添加物品
 				// this.assetsList.forEach(item => {
 				// 	const index = assetsList.findIndex(i => i.curId === item.curId)

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

@@ -5,7 +5,7 @@
 		<view class="tab-title">
 			<view class="tab_box rx-sc">
 				<view class="tab_item" v-for="(item, index) in tabList" :key="index" v-text="item.label"
-					:class="{active: pickTabIndex == index}" @click="changeChartsTab(index)"></view>
+					:class="{active: pickTabIndex == index}" @click="changeChartsTab(index, item)"></view>
 
 				<view class="more_search">
 					<image src="~@/static/moreSearch.svg" mode="" @click="searchVisible = true"></image>