From a00ddcb072d20e6622081ca8ba87cac20a124b36 Mon Sep 17 00:00:00 2001
From: llj <132905093+newwwwwwtree@users.noreply.github.com>
Date: 星期三, 04 二月 2026 15:11:20 +0800
Subject: [PATCH] app小卫装箱

---
 pages.json                                  |    7 
 pages/zhuangxiang/snZhuangxiang_xiaowei.vue |  578 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 pages/index/index.vue                       |    7 
 3 files changed, 592 insertions(+), 0 deletions(-)

diff --git a/pages.json b/pages.json
index 9eedc88..c847723 100644
--- a/pages.json
+++ b/pages.json
@@ -1764,6 +1764,13 @@
 		    {
 		        "navigationBarTitleText" : "鎷嗙灏忓崼"
 		    }
+		},
+		{
+		    "path" : "pages/zhuangxiang/snZhuangxiang_xiaowei",
+		    "style" : 
+		    {
+		        "navigationBarTitleText" : "瑁呯锛堝皬鍗級"
+		    }
 		}
 		
 
diff --git a/pages/index/index.vue b/pages/index/index.vue
index a8de36f..fe24440 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -351,6 +351,13 @@
 						"id": 27,
 						"hidden": false
 					},
+					{
+						"img": "../../static/icon/icon21.png",
+						"text": "灏忓崼瑁呯",
+						"url": "/pages/zhuangxiang/snZhuangxiang_xiaowei",
+						"id": 28,
+						"hidden": false
+					},
 				],
             }
         },
diff --git a/pages/zhuangxiang/snZhuangxiang_xiaowei.vue b/pages/zhuangxiang/snZhuangxiang_xiaowei.vue
new file mode 100644
index 0000000..97faa11
--- /dev/null
+++ b/pages/zhuangxiang/snZhuangxiang_xiaowei.vue
@@ -0,0 +1,578 @@
+<template>
+    <view class="form">
+        <view class="form-base-info">
+            <view class="form-item">
+                <view class="title">sn鐮�</view>
+                <view class="right">
+                    <input type="text" :focus="HBarCodePackFocus" v-model="HBarCode_Pack" @confirm="GetMeesageByBarCode_Pack(HBarCode_Pack)" />
+                </view>
+                <view class="right-icon">
+                    <uni-icons class="right-icon" type="scan"
+                        style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+                        @click="toScanCode"></uni-icons>
+                </view>
+            </view>
+        </view>
+        <view class="tabs">
+            <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">瑁呯淇℃伅</view>
+            <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">鍗曟嵁淇℃伅</view>
+        </view>
+        <!-- 鎷嗙淇℃伅 -->
+        <view v-if="tabs == 0">
+            <zb-table id="list-table" :fit="true" :style="{height: `${listTableHeight}px`}" :columns="columns" :data="listData"
+                :show-header="true" :border="true" :row-key="row => row.index" @toggleRowSelection="handleSelect"
+                @toggleAllSelection="handleSelectAll" />
+        </view>
+        <!-- 鍗曟嵁淇℃伅 -->
+        <view v-if="tabs == 1">
+            <view class="bill-info">
+                <view class="form-item">
+                    <view class="title">鍗曟嵁鏃ユ湡</view>
+                    <view class="right">
+                        <uni-datetime-picker type="date" v-model="hform.HDate">
+                            <input type="text" v-model="hform.HDate" />
+                        </uni-datetime-picker>
+                    </view>
+                </view>
+            </view>
+            <view class="bill-info">
+                <view class="form-item">
+                    <view class="title">鍒跺崟浜�</view>
+                    <view class="right disabled">
+                        <input type="text" disabled :value="hform.HMaker" />
+                    </view>
+                </view>
+            </view>
+            <!-- <view class="bill-info">
+                <view class="form-item">
+                    <view class="title">鍗曟嵁鍙�</view>
+                    <view class="right disabled">
+                        <input type="text" disabled :value="hform.HBillNo" />
+                    </view>
+                </view>
+            </view> -->
+            <!-- <view class="bill-info">
+                <view class="form-item">
+                    <view class="title">鍗曟嵁ID</view>
+                    <view class="right disabled">
+                        <input type="text" disabled :value="hform.HInterID" />
+                    </view>
+                </view>
+            </view> -->
+            <view class="bill-info">
+                <view class="form-item">
+                    <view class="title">缁勭粐</view>
+                    <view class="right disabled">
+                        <input type="text" disabled :value="hform.HStockOrgName" />
+                    </view>
+                </view>
+            </view>
+        </view>
+        <view class="bottom-btn" id="bottom-btn">
+            <button :class="EnableSubmit?'btn-a':'btn-c'" :disabled="!EnableSubmit" size="mini" @tap="cmdSubmit">鎷嗙</button>
+            <view style="flex: 1;"></view>
+            <!-- <button class="btn-d" size="mini" @tap="cmdDelete">鍒犻櫎</button> -->
+            <button class="btn-c" size="mini" @tap="cmdExit">閫�鍑�</button>
+        </view>
+    </view>
+</template>
+
+<script>
+    import dayjs from 'dayjs'
+    import {
+        getUserInfo
+    } from "../../utils/auth";
+    import {
+        CommonUtils
+    } from "@/utils/common.js"
+    import {
+        MpaasScan
+    } from "@/utils/mpaasScan.js"
+    export default {
+        data() {
+            return {
+				ItemidList:'',
+                EnableSubmit: true,
+                // 璁$畻鍒楄〃楂樺害
+                bottomBtnTop: 0,
+                listTableTop: 0,
+                // 鍏叡鍙橀噺 
+                HBarCodePackFocus: false,
+                HBarCodeFocus: false,
+                HBarCode_Pack: '', //绠辨潯鐮�
+                HBarCode: '', // 鍖呮潯鐮�
+                tabs: 0,
+                HBillType: '3783',
+                HBillSubType: '1', //瀛愮被鍨嬶紙1鎷嗙銆�2鎷嗘墭锛�
+                OperationType: 1, //鎿嶄綔绫诲瀷锛�1鏂板銆�2浠庣紦瀛樺垪琛ㄤ腑杩斿洖锛�
+                HMaterNumber_Pack: "", //鎵樻潯鐮佸搴旂墿鏂欎唬鐮�
+                listOption: [],
+                listData: [],
+                columns: [
+                    {
+                        name: 'index',
+                        label: '搴忓彿',
+                        width: 60,
+                        hidden: true,
+                    },
+                    // {
+                    //     name: '涓鐮�',
+                    //     label: '涓鐮�',
+                    //     width: 100,
+                    // },
+                    {
+                        name: 'sn鐮�',
+                        label: 'sn鐮�',
+                        width: 100,
+                    },
+                    {
+                        name: '鐗╂枡浠g爜',
+                        label: '鐗╂枡浠g爜',
+                        width: 100,
+                    },
+                    {
+                        name: '鐗╂枡鍚嶇О',
+                        label: '鐗╂枡鍚嶇О',
+                        width: 100,
+                    },
+                    
+                ],
+                selectedRows: [], // 瀛樺偍閫変腑鐨勬暟鎹�
+                HModName: "Sc_UnPackUnionBill_Packing_PDA",
+                ModRightName: "CE_UnPackUnionBill_Packing", //妯″潡鏉冮檺鍙傛暟
+                titleData: [], //涓嶉渶瑕佹樉绀虹殑瀛楁
+                OperationType: 1, //浠庣紦瀛樺垪琛ㄤ腑杩斿洖鏁版嵁绫诲瀷锛�1鏂板銆�2浠庣紦瀛樺垪琛ㄤ腑杩斿洖锛�
+                HBarCode_Pack_Temp: "", //浠庣紦瀛樺垪琛ㄤ腑杩斿洖绠辨潯鐮�
+
+                // 琛ㄥ崟鎻愪氦鍊�
+                hform: {
+                    HDate: dayjs(new Date()).format('YYYY-MM-DD'),
+                    HMaker: getUserInfo()['Czymc'],
+                    HBillNo: '',
+                    HInterID: '',
+                    HStockOrgName: uni.getStorageSync("Organization"),
+                    HStockOrgID: uni.getStorageSync("OrganizationID"),
+                },
+                // 鍒嗛〉妯″潡鍏冩暟鎹�
+                paginationMeta: {
+
+                }
+            }
+        },
+        methods: {
+            async HBarCodeFocusRefresh(){
+              this.HBarCode = ''
+              this.HBarCodeFocus = false
+              await this.$nextTick()
+              this.HBarCodeFocus = true
+            },
+            async HBarCodePackFocusRefresh(){
+              this.HBarCode_Pack = ''
+              this.HBarCodePackFocus = false
+              await this.$nextTick()
+              this.HBarCodePackFocus = true
+            },
+            toScanCode() {
+                MpaasScan.scanCode((scanCode) => {
+                    this.HBarCode_Pack = scanCode
+                    this.GetMeesageByBarCode_Pack(HBarCode_Pack)
+                })
+            },
+            GetMeesageByBarCode_Pack(HBarCode) {
+                // 鑾峰彇鍖呮潯鐮佸搴旂殑鏁版嵁 
+                let HBarCode_Pack = this.HBarCode_Pack
+                let sOldBarCode = this.HBarCode_Pack
+                let HDeleteFlag = sOldBarCode.substring(0, 1)
+                let sBarCode = sOldBarCode.slice(1)
+                if (!HBarCode_Pack) {
+                    return uni.showToast({
+                        icon: 'none',
+                        title: 'sn鏉$爜涓虹┖锛岃鍏堟壂鎻弒n鏉$爜',
+                    })
+                }
+                    let sBarCode_b = this.HBarCode_Pack
+                    if (!sBarCode_b) {
+                        return uni.showToast({
+                            icon: 'none',
+                            title: 'sn鏉$爜涓嶈兘涓虹┖锛岃鎵弿sn鏉$爜',
+                        })
+                    }
+                    CommonUtils.doRequest2({
+                        url: '/CheckBarcodeController/PackedBoxSn',
+                        data: {
+                            
+                            "HBarCode": sBarCode_b,
+							"HMaker":this.hform.HMaker,
+							"HDate":this.hform.HDate
+                            //"HBarCode_Pack": HBarCode_Pack,
+                        },
+                        resFunction: (res) => {
+                            let {
+                                data,
+                                count,
+                                Message
+                            } = res.data
+                            if (count == 1) {
+                                CommonUtils.playSound(1)
+                                console.log(data[0])
+                                //this.listData = []
+								var codeLength=data.length
+                                for (let i = 0; i < codeLength; i++) {
+                                    const newItem = data[i]
+                                    const isExist = this.listData.some(item => 
+                                        item['sn鐮�'] === newItem['sn鐮�']
+                                    )
+                                                    
+                                    if (!isExist) {
+                                            this.listData.push(Object.assign(newItem, {
+                                             index: this.listData.length // 浣跨敤褰撳墠鍒楄〃闀垮害浣滀负鏂癷ndex
+                                       }))
+                                  }
+								  this.ItemidList=this.ItemidList+newItem['HItemID']+","
+								  console.log(this.ItemidList)
+                                   }
+									this.HBarCode_Pack = ''
+									this.HBarCodePackFocusRefresh()
+                            } else {
+                                CommonUtils.playSound(0)
+                                this.HBarCodeFocusRefresh()
+                                uni.showToast({
+                                    icon: 'none',
+                                    title: Message
+                                })
+                            }
+							console.log(sBarCode_b)
+                        }
+                    })
+                
+            },
+            handleSelect(selected, array) {
+                this.selectedRows = array
+            },
+            handleSelectAll(selected, array) {
+                this.selectedRows = array
+            },
+            getMaxNo() {
+                CommonUtils.doRequest2({
+                    url: "/WEBSController/GetMaxBillNoAndID_Json",
+                    data: {
+                        "HBillType": this.HBillType
+                    },
+                    resFunction: (d) => {
+                        console.log('d: ', d);
+                        let {
+                            count,
+                            data,
+                            Message
+                        } = d.data
+                        if (count == 1) {
+                            this.hform.HInterID = data[0].HInterID;
+                            this.hform.HBillNo = data[0].HBillNo
+                        } else {
+
+                            uni.showModal({
+                                title: "娓╅Θ鎻愮ず",
+                                showCancel: false,
+                                content: Message
+
+                            })
+
+                        }
+                    }
+                })
+            },
+            submitPreCheck() {
+                if (CommonUtils.isEmpty(this.hform.HInterID)) {
+                    uni.showToast({
+                        icon: 'none',
+                        title: '鍗曟嵁鍐呯爜鑾峰彇澶辫触锛岄敊璇殑鍗曟嵁鍐呯爜锛�'
+                    })
+                    return false
+                }
+                if (CommonUtils.isEmpty(this.hform.HBillNo)) {
+                    uni.showToast({
+                        icon: 'none',
+                        title: '鍗曟嵁鍙疯幏鍙栧け璐ワ紝閿欒鐨勫崟鎹彿锛�'
+                    })
+                    return false
+                }
+                if (this.listData.length < 1) {
+                    uni.showToast({
+                        icon: 'none',
+                        title: '娌℃湁鎵爜淇℃伅锛岃鍏堟壂鎻忔潯鐮侊紝纭鏃犺鍚庡啀鎻愪氦锛�'
+                    })
+                    return false
+                }
+                return true
+            },
+            cmdDelete() {
+                console.log('this.selectedRows: ', this.selectedRows);
+                if (this.selectedRows.length != 1) {
+                    return uni.showToast({
+                        icon: 'none',
+                        title: '璇烽�夋嫨涓�琛岃褰曪紝杩涜鍒犻櫎锛�'
+                    })
+                }
+                uni.showModal({
+                    title: '鍒犻櫎纭',
+                    content: '纭瑕佸垹闄ら�変腑琛屾墍鏈夋壂鐮佽褰曪紵鍒犻櫎鍚庡皢涓嶅彲鎭㈠!',
+                    success: () => {
+                        if (confirm) {
+                            CommonUtils.doRequest2({
+                                url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
+                                data: {
+                                    HInterID: this.hform.HInterID,
+                                    HBillType: this.HBillType,
+                                    HBarCode: this.selectedRows[0].HBarCode
+                                },
+                                resFunction: (res) => {
+                                    let {
+                                        data,
+                                        count,
+                                        Message
+                                    } = res.data
+                                    if (count == 1) {
+                                        CommonUtils.playSound(1)
+                                        uni.showToast({
+                                            icon: 'none',
+                                            title: Message
+                                        })
+                                        this.DisBillEntryList()
+                                    } else {
+                                        CommonUtils.playSound(0)
+                                        uni.showToast({
+                                            icon: 'none',
+                                            title: Message
+                                        })
+                                    }
+                                }
+                            })
+                        }
+                    }
+                })
+            },
+            cmdSubmit() {
+                // let checkRes = this.submitPreCheck()
+                // if (!checkRes) {
+                //     return
+                // }
+                this.EnableSubmit = false
+				let HItemIDs=this.ItemidList.slice(0,-1)
+					        CommonUtils.doRequest2({
+					            url: '/CheckBarcodeController/submitPackedBoxSn',
+					            data: {
+					                
+					                "HItemIDs": HItemIDs,
+									 "HMaker":this.hform.HMaker,
+									 "HDate":this.hform.HDate
+					            },
+					            resFunction: (res) => {
+					                let {data, count, Message} = res.data
+					                if(count == 1){
+					                    uni.showModal({
+					                        title: '鐢熸垚鐨勬潯鐮侊細',
+					                        content: res.data.data[0].HBackRemark,
+					                        confirmText: "鏂板",
+					                        cancelText: '鍏抽棴',
+					                        success: ({confirm,cancel}) => {
+					                            if(confirm) {
+					                                uni.redirectTo({
+					                                    url: "/pages/zhuangxiang/snZhuangxiang_xiaowei"
+					                                })
+					                            }
+					                            
+					                            if(cancel) {
+					                                uni.navigateBack()
+					                            }
+					                        }
+					                    })
+					                }else {
+					                    uni.showToast({
+					                        icon:'none',
+					                        title: Message
+					                    })
+					                }
+					            }
+					        })
+					    
+					    
+					   
+					
+		
+
+            },
+            cmdExit() {
+                uni.navigateBack()
+            }
+        },
+        computed: {
+            listTableHeight: {
+                get() {
+                    return this.bottomBtnTop - this.listTableTop - 10
+                }
+            }
+        },
+        async onReady() {
+            // #ifndef MP-WEIXIN
+            let query = uni.createSelectorQuery().in(this)
+            query.select("#bottom-btn")
+                .boundingClientRect((data) => {
+                    if (data) {
+                        this.bottomBtnTop = data.top
+                    } else {
+                        console.log("鏈壘鍒�#bottom-btn鑺傜偣");
+                    }
+                })
+                .exec();
+            query.select("#list-table")
+                .boundingClientRect((data) => {
+                    if (data) {
+                        this.listTableTop = data.top
+                    } else {
+                        console.log("鏈壘鍒�#list-table鑺傜偣");
+                    }
+                })
+                .exec();
+            // #endif
+        },
+        onLoad(e) {
+            this.OperationType = e.OperationType || 1
+            this.HBarCode_Pack_Temp = e.CommonUtils || ""
+
+            // if (this.OperationType == 1) {
+            //     this.getMaxNo()
+            // } else if (this.OperationType == 2) {
+
+            // }
+            
+            this.HBarCodePackFocusRefresh()
+        }
+    }
+</script>
+
+<style lang="scss">
+    input {
+        width: inherit;
+        padding: 8rpx 20rpx;
+        font-size: 30rpx;
+    }
+
+    .form {
+        display: flex;
+        flex-direction: column;
+        gap: 20rpx;
+
+        .form-base-info {
+            display: flex;
+            flex-direction: column;
+            gap: 10rpx;
+            box-sizing: border-box;
+            padding: 30rpx;
+        }
+
+        .bill-info {
+            display: flex;
+            flex-direction: column;
+            gap: 10rpx;
+            box-sizing: border-box;
+            padding: 16rpx 30rpx;
+        }
+
+        .form-item {
+            display: flex;
+            flex-direction: row;
+            gap: 10rpx;
+
+            .title {
+                width: 5rem;
+                flex-shrink: 0;
+            }
+
+            .right {
+                flex: 1;
+                border-radius: 22rpx;
+                border: 1px solid #acacac;
+            }
+
+            .disabled {
+                border: 1px solid #e4e4e4;
+                background-color: #e4e4e4;
+            }
+
+            .right-icon {
+                flex-shrink: 0;
+                display: flex;
+                justify-content: center;
+                align-items: center;
+            }
+
+        }
+    }
+
+    .tabs {
+        width: 100%;
+        display: flex;
+        border-bottom: 1px solid #ddd;
+        margin: 20rpx 0;
+
+        view {
+            width: 25%;
+            font-size: 30rpx;
+            color: #555;
+            text-align: center;
+            padding: 16rpx 0;
+        }
+
+        .on {
+            color: #3a78ff;
+            font-weight: bold;
+            border-bottom: 3px solid #3a78ff;
+        }
+    }
+
+    .bottom-btn {
+        width: 100%;
+        box-sizing: border-box;
+        // height: 120rpx;
+        position: fixed;
+        bottom: 0;
+        left: 0;
+        background-color: #fff;
+        box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
+        padding: 30rpx 40rpx 40rpx 40rpx;
+        display: flex;
+        flex-direction: row;
+        gap: 10rpx;
+
+        button {
+            border-radius: 50rpx;
+            width: 180rpx;
+            height: 66rpx;
+            line-height: 66rpx;
+            font-size: 28rpx;
+        }
+
+        .btn-a {
+            background-color: #3A78FF;
+            color: #fff;
+        }
+
+        .btn-b {
+            background-color: #41a863;
+            color: #fff;
+        }
+
+        .btn-c {
+            background-color: #acacac;
+            color: #fff;
+            // position: absolute;
+            // right: 120rpx;
+        }
+
+        .btn-d {
+            background-color: #ff8901;
+            color: #fff;
+        }
+    }
+    
+</style>
\ No newline at end of file

--
Gitblit v1.9.1