liujt 2 месяцев назад
Родитель
Сommit
1b1f3bf12c
6 измененных файлов с 404 добавлено и 1 удалено
  1. 9 0
      api/warehouseManagement/index.js
  2. 19 1
      enum/dict.js
  3. 8 0
      pages.json
  4. 7 0
      pages/home/home.vue
  5. 5 0
      pages/index/index.vue
  6. 356 0
      pages/warehouse/hwQrcode/index.vue

+ 9 - 0
api/warehouseManagement/index.js

@@ -446,3 +446,12 @@ export async function warehouseDefinitionList(data) {
 	}
 	return Promise.reject(new Error(res.message))
 }
+
+// 扫描二维码统一入口
+export async function wmsQrcodeScan(params) {
+	const res = await get(Vue.prototype.apiUrl + `/wms/qrcode/v1/scan`, params)
+	if (res.code == 0) {
+		return res.data
+	}
+	return Promise.reject(new Error(res.message))
+}

+ 19 - 1
enum/dict.js

@@ -265,4 +265,22 @@ export const materialType = [
 export const relationTypeOption = {
   1: '发货确认单',
   2: '收货确认单'
-};
+};
+
+export const warehouseDefinition_areaType = [
+  { code: 1, label: "原料库" },
+  { code: 2, label: "成品库" },
+  { code: 3, label: "设备库" },
+  { code: 4, label: "舟皿库" },
+  { code: 5, label: "模具库" },
+  { code: 6, label: "周转车库" },
+  { code: 7, label: "不良品库" },
+  { code: 8, label: "备品备件库" },
+];
+
+export const warehouseDefinition_areaAttribute = [
+  { code: 1, label: "常温" },
+  { code: 2, label: "冷藏" },
+  { code: 3, label: "恒温" },
+  { code: 4, label: "低温" },
+];

+ 8 - 0
pages.json

@@ -2659,6 +2659,14 @@
 				"navigationStyle": "custom",
 				"navigationBarTextStyle": "black"
 			}
+		},  
+		{
+			"path": "pages/warehouse/hwQrcode/index",
+			"style": {
+				"navigationBarTitleText": "详情",
+				"navigationStyle": "custom",
+				"navigationBarTextStyle": "black"
+			}
 		}
 	],
 	"tabBar": {

+ 7 - 0
pages/home/home.vue

@@ -306,6 +306,13 @@
 			HandlScanCode() {
 				uni.scanCode({
 					success: (res) => {
+						const scanResult = res.result;
+						if(scanResult && scanResult.includes("/pages/warehouse/hwQrcode/index")) {
+							uni.navigateTo({
+								url: `${scanResult}`,
+							});
+							return
+						}
 						this.Scancodedate(res.result)
 					}
 				})

+ 5 - 0
pages/index/index.vue

@@ -501,6 +501,11 @@ export default {
               url: `/pages/traceability/scanCode/index?id=${id}`,
             });
             return;
+          } else if(scanResult && scanResult.includes("/pages/warehouse/hwQrcode/index")) {
+            uni.navigateTo({
+              url: `${scanResult}`,
+            });
+            return
           }
           _this.scantoRouter(scanResult);
         },

+ 356 - 0
pages/warehouse/hwQrcode/index.vue

@@ -0,0 +1,356 @@
+<template>
+	<view class="mainBox">
+		<uni-nav-bar fixed="true" statusBar="true" left-icon="back" title="详情" @clickLeft="back">
+		</uni-nav-bar>
+		<view class="main" v-if="query.type == '库区'">
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">所属仓库</text>
+					<text class="t2">{{ formData.warehouseName }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区编号</text>
+					<text class="t2">{{ formData.code }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区名称</text>
+					<text class="t2">{{ formData.name }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区类型</text>
+					<text class="t2">{{ formData.typeName }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区属性</text>
+					<text class="t2">{{ formData.attributeName }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区位置</text>
+					<text class="t2">{{ formData.address }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区长(cm)</text>
+					<text class="t2">{{ formData.areaLength }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区宽(cm)</text>
+					<text class="t2">{{ formData.areaWide }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">库区高(cm)</text>
+					<text class="t2">{{ formData.areaHigh }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架数量</text>
+					<text class="t2">{{ formData.num }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">备注</text>
+					<text class="t2">{{ formData.areaRemark }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">货架编号</text>
+					<text class="t2">{{ areaShelf }}</text>
+				</view>
+			</view>
+		</view>
+        <view class="main" v-if="query.type == '货架'">
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">所属仓库</text>
+					<text class="t2">{{ formData.warehouseName }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">库区编号</text>
+					<text class="t2">{{ formData.warehouseAreaCode }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架编号</text>
+					<text class="t2">{{ formData.goodsshelvesCode }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架行数</text>
+					<text class="t2">{{ formData.goodsshelvesLine }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架列数</text>
+					<text class="t2">{{ formData.goodsshelvesColumn }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架长(cm)</text>
+					<text class="t2">{{ formData.goodsshelvesLength }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架宽(cm)</text>
+					<text class="t2">{{ formData.goodsshelvesWide }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架高(cm)</text>
+					<text class="t2">{{ formData.goodsshelvesHigh }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货位数量</text>
+					<text class="t2">{{ formData.stockLocationList.length }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">是否规则</text>
+					<text class="t2">{{ formData.isRegular == 1 ? '是' : '否' }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">备注</text>
+					<text class="t2">{{ formData.areaRemark }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">货位编号</text>
+					<text class="t2">{{ goodShelf }}</text>
+				</view>
+			</view>
+		</view>
+        <view class="main" v-if="query.type == '货位'">
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">所属仓库</text>
+					<text class="t2">{{ formData.warehouseName }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">库区编号</text>
+					<text class="t2">{{ formData.warehouseAreaCode }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货架编号</text>
+					<text class="t2">{{ formData.warehouseAreaGoodsCode }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">货位编号</text>
+					<text class="t2">{{ formData.goodsAllocationCode }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货位长(cm)</text>
+					<text class="t2">{{ formData.goodsAllocationLength }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货位宽(cm)</text>
+					<text class="t2">{{ formData.goodsAllocationWide }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">货位高(cm)</text>
+					<text class="t2">{{ formData.goodsAllocationHigh }}</text>
+				</view>
+			</view>
+			<view class="row">
+				<view class="row-item">
+					<text class="t1">限重(kg)</text>
+					<text class="t2">{{ formData.weightLimit }}</text>
+				</view>
+			</view>
+            <view class="row">
+				<view class="row-item">
+					<text class="t1">基本货位容积(cm³)</text>
+					<text class="t2">{{ formData.volumeUnit }}</text>
+				</view>
+			</view>
+     
+            <view class="row">
+				<view class="scroll_box">
+                    <scroll-view scroll-y="true" class="scroll-Y" @scrolltolower="lower">
+                        <uni-table border stripe emptyText="暂无更多数据" style="width: 100%;">
+                            <uni-tr style="width: 100%;">
+                                <uni-th width="50" align="center">序号</uni-th>
+                                <uni-th width="120" align="center">物品编码</uni-th>
+                                <uni-th width="120" align="center">名称</uni-th>
+                                <uni-th width="100" align="center">型号</uni-th>
+                                <uni-th width="100" align="center">规格</uni-th>
+                                <uni-th width="150" align="center">数量</uni-th>
+                            </uni-tr>
+                            <!-- 表格数据行 -->
+                            <uni-tr v-for="(item, index) in formData.productList" :key="index">
+                                <uni-td>
+                                    <view>{{index+Number(1)}}</view>
+                                </uni-td>
+                                <uni-td>
+                                    <view class="ellipsis">
+                                        {{ item.code }}
+                                    </view>
+                                </uni-td>
+                                <uni-td>
+                                    <view>{{ item.name }}</view>
+                                </uni-td>
+                                <uni-td>
+                                    <view>{{ item.modelType }}</view>
+                                </uni-td>
+                                <uni-td>
+                                    <view>{{ item.specification }}</view>
+                                </uni-td>
+                                <uni-td>
+                                    <view>{{ item.availableCount }}</view>
+                                </uni-td>
+                            </uni-tr>
+                        </uni-table>
+                    </scroll-view>
+                </view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	// import ScanCode from '@/components/ScanCode.vue'
+	import {
+		wmsQrcodeScan
+	} from '@/api/warehouseManagement'
+	import {
+		warehouseDefinition_areaType,
+        warehouseDefinition_areaAttribute
+	} from '@/enum/dict.js'
+
+	export default {
+		components: {
+			
+		},
+		data() {
+			return {
+                query: {},
+				formData: {},
+			}
+		},
+		onShow() {
+			
+		},
+		onLoad(options) {
+            this.query = options
+            console.log(this.query)
+
+			wmsQrcodeScan({code: this.query.type + ':' +this.query.id }).then(res => {
+				console.log(res)
+                res.typeName = warehouseDefinition_areaType.find(item => item.code == res.type)?.label || ''
+                res.attributeName = warehouseDefinition_areaAttribute.find(item => item.code == res.attribute)?.label || ''
+				this.formData = res
+			})
+		},
+		computed: {
+            areaShelf() {
+                const codelist = this.formData?.warehouseGoodsShelvesList?.map(item => item.goodsshelvesCode) || []
+                return codelist.join(',');
+            },
+            goodShelf() {
+                const codelist = this.formData?.stockLocationList?.map(item => item.goodsAllocationCode) || []
+                return codelist.join(',');
+            }
+		},
+		methods: {
+
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.mainBox {
+		/deep/.required-form .u-form-item__body__left__content__label::before {
+			content: '*';
+			color: red;
+		}
+	}
+
+	.main {
+		padding: 0 30rpx;
+
+		.row {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding: 20rpx 0;
+			border-bottom: 1px dashed #dedede;
+
+			.row-item {
+				.t1 {
+					font-weight: bold;
+					font-size: 28rpx;
+					color: #333333;
+					margin-right: 20rpx;
+				}
+
+				.t2 {
+					font-size: 28rpx;
+					color: #333333;
+				}
+			}
+		}
+	}
+    .scroll_box {
+		flex: 1;
+		overflow: scroll;
+
+		.scroll-Y {
+			height: 100%;
+		}
+	}
+
+    /deep/.uni-table {
+		min-width: 100vw !important;
+		font-size: 28rpx;
+
+		.uni-table-td,
+		.uni-table-th {
+			padding: 10rpx !important;
+			text-align: center !important;
+			font-size: 28rpx;
+			color: #000000;
+		}
+	}
+</style>