From a10f376b1b5b271146e75b37b79d651dfd61ebac Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期三, 12 十一月 2025 17:09:59 +0800
Subject: [PATCH] 三码合一,组托拆码

---
 pages/sanmaheyi/table.vue                   |  487 +++++++++++++
 pages/sanmaheyi/BarCodeCheck.vue            |  872 ++++++++++++++++++++++++
 pages/chaituosaoma-xiaowei/UnpackPallet.vue |  667 +++++++++++++++++++
 pages.json                                  |   26 
 pages/index/login.vue                       |    1 
 pages/index/index.vue                       |   15 
 6 files changed, 2,065 insertions(+), 3 deletions(-)

diff --git a/pages.json b/pages.json
index 3ac0abc..0bc092e 100644
--- a/pages.json
+++ b/pages.json
@@ -1246,7 +1246,19 @@
             "style": {
                 "navigationBarTitleText": "宸℃鍗�"
             }
-        }
+        },
+		{
+		    "path": "pages/chaituosaoma-xiaowei/UnpackPallet",
+		    "style": {
+		        "navigationBarTitleText": "鎷嗘墭鎵爜锛堝皬鍗級"
+		    }
+		},
+		{
+		    "path": "pages/sanmaheyi/BarCodeCheck",
+		    "style": {
+		        "navigationBarTitleText": "涓夌爜鍚堜竴"
+		    }
+		}
     ],
     "tabBar": {
         "color": "#888888", //tab 涓婄殑鏂囧瓧榛樿棰滆壊锛屼粎鏀寔鍗佸叚杩涘埗棰滆壊
@@ -1286,5 +1298,15 @@
         "backgroundColor": "#F8F8F8",
         "pageOrientation": "default"
     },
-    "uniIdRouter": {}
+    "uniIdRouter": {},
+	"condition" : { //妯″紡閰嶇疆锛屼粎寮�鍙戞湡闂寸敓鏁�
+		"current": 0, //褰撳墠婵�娲荤殑妯″紡(list 鐨勭储寮曢」)
+		"list": [
+			{
+				"name": "", //妯″紡鍚嶇О
+				"path": "", //鍚姩椤甸潰锛屽繀閫�
+				"query": "" //鍚姩鍙傛暟锛屽湪椤甸潰鐨刼nLoad鍑芥暟閲岄潰寰楀埌
+			}
+		]
+	}
 }
\ No newline at end of file
diff --git a/pages/chaituosaoma-xiaowei/UnpackPallet.vue b/pages/chaituosaoma-xiaowei/UnpackPallet.vue
new file mode 100644
index 0000000..98bd6fb
--- /dev/null
+++ b/pages/chaituosaoma-xiaowei/UnpackPallet.vue
@@ -0,0 +1,667 @@
+<template>
+    <view class="form">
+        <view class="form-base-info">
+            <view class="form-item">
+                <view class="title">鎵樻潯鐮�</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 {
+                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: '鏁伴噺',
+                        label: '鏁伴噺',
+                        width: 100,
+                    },
+                    {
+                        name: '鐗╂枡浠g爜',
+                        label: '鐗╂枡浠g爜',
+                        width: 100,
+                    },
+                    {
+                        name: '鐗╂枡鍚嶇О',
+                        label: '鐗╂枡鍚嶇О',
+                        width: 100,
+                    },
+                    {
+                        name: '鏉$爜涓暟',
+                        label: '鏉$爜涓暟',
+                        width: 100,
+                    }
+                ],
+                selectedRows: [], // 瀛樺偍閫変腑鐨勬暟鎹�
+                HModName: "Sc_PackUnionBill_Packing_PDA",
+                ModRightName: "CE_PackUnionBill_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_Pack) {
+                // 鑾峰彇鎵樻潯鐮佸搴旂殑鏁版嵁
+                CommonUtils.doRequest2({
+                    url: '/WEBSController/Get_PackBarCode_DeletePackUnionBill_Json',
+                    data: {
+                        HMaker: this.hform.HMaker,
+                        HStockOrgID: this.hform.HStockOrgID,
+                        HBarCode_Pack: HBarCode_Pack
+                    },
+                    resFunction: (res) => {
+                        let {
+                            data,
+                            count,
+                            Message,
+                            list
+                        } = res.data
+                        if (count == 1) {
+                            CommonUtils.playSound(1)
+                            this.hform.HBillNo = data[0].HBillNo
+                            this.hform.HInterID = data[0].HInterID
+                            this.HMaterNumber_Pack = data[0].HMaterNumber
+                            this.DisBillEntryList();
+                            uni.showToast({
+                                icon: 'none',
+                                title: Message
+                            })
+                        } else {
+                            CommonUtils.playSound(0)
+                            this.HBarCodePackFocusRefresh()
+                            uni.showToast({
+                                icon: 'none',
+                                title: Message
+                            })
+                        }
+                    }
+                })
+            },
+            toScanCode2() {
+                MpaasScan.scanCode((scanCode) => {
+                    this.HBarCode = scanCode
+                    GetMeesageByBarCode(scanCode)
+                })
+            },
+            GetMeesageByBarCode(HBarCode) {
+                // 鑾峰彇鍖呮潯鐮佸搴旂殑鏁版嵁 
+                let HBarCode_Pack = this.HBarCode_Pack
+                let sOldBarCode = this.HBarCode
+                let HDeleteFlag = sOldBarCode.substring(0, 1)
+                let sBarCode = sOldBarCode.slice(1)
+                if (!HBarCode_Pack) {
+                    return uni.showToast({
+                        icon: 'none',
+                        title: '鎵樻潯鐮佷负绌猴紝璇峰厛鎵弿鎵樻潯鐮�',
+                    })
+                }
+
+                if (HDeleteFlag == '*') {
+                    if (!sBarCode) {
+                        return uni.showToast({
+                            icon: 'none',
+                            title: '璇锋壂鎻忚鍒犻櫎鐨勭鏉$爜',
+                        })
+                    } else {
+                        this.HBarCodeFocusRefresh()
+                    }
+                    CommonUtils.doRequest2({
+                        url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
+                        data: {
+                            "HInterID": this.hform.HInterID,
+                            "HBarCode": sBarCode,
+                            "HBillType": this.HBillType
+                        },
+                        resFunction: (res) => {
+                            let {
+                                data,
+                                count,
+                                Message
+                            } = res.data
+                            if (count == 1) {
+                                CommonUtils.playSound(1)
+                                this.DisBillEntryList()
+                            } else {
+                                CommonUtils.playSound(0)
+                                uni.showToast({
+                                    icon: 'none',
+                                    title: Message
+                                })
+                            }
+                        }
+                    })
+                } else {
+                    let sBarCode = this.HBarCode
+                    if (!sBarCode) {
+                        return uni.showToast({
+                            icon: 'none',
+                            title: '绠辨潯鐮佷笉鑳戒负绌猴紝璇锋壂鎻忕鏉$爜',
+                        })
+                    }
+                    CommonUtils.doRequest2({
+                        url: '/WEBSController/Get_BarCode_PackUnionBill_New_Json',
+                        data: {
+                            "HInterID": this.hform.HInterID,
+                            "HBarCode": sBarCode,
+                            "HBillType": this.HBillType,
+                            "HBillNo": this.hform.HBillNo,
+                            "HBillSubType": this.HBillSubType,
+                            "HBarCode_Pack": HBarCode_Pack,
+                            "HMaterNumber_Pack": this.HMaterNumber_Pack,
+                            "HMaker": this.hform.HMaker,
+                            "HStockOrgID": this.hform.HStockOrgID
+                        },
+                        resFunction: (res) => {
+                            let {
+                                data,
+                                count,
+                                Message
+                            } = res.data
+                            if (count == 1) {
+                                CommonUtils.playSound(1)
+                                this.HBarCodeFocusRefresh()
+                                this.DisBillEntryList()
+                            } else {
+                                CommonUtils.playSound(0)
+                                this.HBarCodeFocusRefresh()
+                                uni.showToast({
+                                    icon: 'none',
+                                    title: Message
+                                })
+                            }
+                        }
+                    })
+                }
+            },
+            DisBillEntryList() {
+                CommonUtils.doRequest2({
+                    url: '/WEBSController/GetBillEntry_Tmp_Pack_Json',
+                    data: {
+                        "HInterID": this.hform.HInterID,
+                        "HBillNo": this.hform.HBillNo,
+                        "HBillType": this.HBillType
+                    },
+                    resFunction: (res) => {
+                        let {
+                            count,
+                            data,
+                            Message
+                        } = res.data
+                        if (count == 1) {
+                            this.listData = []
+                            for (let i = 0; i < data.length; i++) {
+                                this.listData.push(Object.assign(data[i], {
+                                    index: i
+                                }))
+                            }
+                        } else {
+                            // 娌℃湁浠讳綍璁板綍瑙嗕负浠�0寮�濮嬫柊澧�
+                            this.listData = []
+                        }
+                    }
+                })
+            },
+            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
+                CommonUtils.doRequest2({
+                    url: '/WEBSController/GetDeletePackUnionBill_Json',
+                    data: {
+                        "HInterID": this.hform.HInterID,
+                        "HBillNo": this.hform.HBillNo,
+                        "HBarCode_Pack": this.HBarCode_Pack,
+                        "HMaker": this.hform.HMaker,
+                    },
+                    resFunction: (res) => {
+                        let {data, count, Message} = res.data
+                        if(count == 1){
+                            uni.showModal({
+                                title: '娓╅Θ鎻愮ず',
+                                content: Message,
+                                confirmText: "鏂板",
+                                cancelText: '鍏抽棴',
+                                success: ({confirm,cancel}) => {
+                                    if(confirm) {
+                                        uni.redirectTo({
+                                            url: "/pages/zutuosaoma/form"
+                                        })
+                                    }
+                                    
+                                    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
diff --git a/pages/index/index.vue b/pages/index/index.vue
index b40559e..8619d87 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -274,7 +274,20 @@
 						id: 30,
 						hidden: false,
 					},
-
+					{
+						img: '../../static/icon/icon8.png',
+						text: '鎷嗘墭鎵爜锛堝皬鍗級',
+						url: `/pages/chaituosaoma-xiaowei/UnpackPallet`,
+						id: 31,
+						hidden: false,
+					},
+					{
+						img: '../../static/icon/icon8.png',
+						text: '涓夌爜鍚堜竴',
+						url: `/pages/sanmaheyi/BarCodeCheck`,
+						id: 32,
+						hidden: false,
+					},
 				],
 				// itemData: [{
 				// 		img: '../../static/icon/icon1.png',
diff --git a/pages/index/login.vue b/pages/index/login.vue
index 7c6519a..fa4eb14 100644
--- a/pages/index/login.vue
+++ b/pages/index/login.vue
@@ -92,6 +92,7 @@
 					"缈佹稕娑涙湰鍦版祴璇�": 'http://localhost:81/API/',
 					"闄堥晲鍝叉湰鍦版祴璇�": 'http://localhost:81/API/',
 					"寮犵憺骞挎湰鍦版祴璇�": 'http://localhost:8082/API/',
+					"浣欐�濇澃鏈湴娴嬭瘯": 'http://localhost:8082/LuBaoAPI/',
                 },
                 serverUrlName: '娴欐睙鏅轰簯杩堟��',
 
diff --git a/pages/sanmaheyi/BarCodeCheck.vue b/pages/sanmaheyi/BarCodeCheck.vue
new file mode 100644
index 0000000..2c8b502
--- /dev/null
+++ b/pages/sanmaheyi/BarCodeCheck.vue
@@ -0,0 +1,872 @@
+<template>
+	<view class="form">
+		<view class="form-base-info">
+			<view class="form-item">
+				<view class="title">鏍堟澘鐮�</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCodePallet ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodePalletFocus" v-model="HBarCode_Pallet"
+						@confirm="CheckBarcode(HBarCode_Pallet,1)" :disabled="disableBarCodePallet" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="disableBarCodePallet ? 'disabled':''" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCodePallet"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">鐩殑浠撶爜</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCodeDest ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodeDestFocus" v-model="HBarCode_Destination"
+						@confirm="CheckBarcode(HBarCode_Destination,2)" :disabled="disableBarCodeDest" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="disableBarCodeDest ? 'disabled':''" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCodeDest"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">涓鐮�</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCodeMiddle ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodeMiddleFocus" v-model="HBarCode_MiddleBox "
+						@confirm="CheckBarcode(HBarCode_MiddleBox,3)" :disabled="disableBarCodeMiddle" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="disableBarCodeMiddle ? 'disabled':''" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCodeMiddle"></uni-icons>
+				</view>
+			</view>
+			<view class="form-item">
+				<view class="title">浜у搧鐮�</view>
+				<!-- 鎸夌収婧愬崟鐗╂枡鏍峰紡娣诲姞disabled绫诲拰绂佺敤灞炴�� -->
+				<view class="right" :class="disableBarCode ? 'disabled' : ''">
+					<input type="text" :focus="HBarCodeFocus" v-model="HBarCode"
+						@confirm="GetMeesageByBarCode(HBarCode)" :disabled="disableBarCode" />
+				</view>
+				<view class="right-icon">
+					<uni-icons class="right-icon" :class="[disableBarCode ? 'disabled':'']" type="scan"
+						style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
+						@click="toScanCode" :disabled="disableBarCode"></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" :checked-highlight="true" :fit="true" :style="{height: `${listTableHeight}px`}"
+				:columns="columns" :data="listData" :show-header="true" :border="true" :row-key="row => row.index"
+				@toggleRowSelection="handleSelect" @toggleAllSelection="handleSelectAll"
+				@rowClick="onTableRowClickHandler" />
+		</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 {
+				// ==================== 甯冨眬璁$畻鐩稿叧 ====================
+				// 璁$畻鍒楄〃楂樺害
+				bottomBtnTop: 0,
+				listTableTop: 0,
+
+				// ==================== 鐣岄潰鐘舵�佹帶鍒� ====================
+				EnableSubmit: true, // 鏄惁鍏佽鎻愪氦
+				disableBarCodePallet: false, // 鏍堟澘鐮佺鐢ㄧ姸鎬�
+				disableBarCodeDest: false, // 鐩殑浠撶爜绂佺敤鐘舵��
+				disableBarCodeMiddle: false, // 涓鐮佺鐢ㄧ姸鎬�
+				disableBarCode: true, // 浜у搧鐮佺鐢ㄧ姸鎬�
+				HBarCodePalletFocus: false, // 鏍堟澘鐮佽緭鍏ユ鑱氱劍鐘舵��
+				HBarCodeDestFocus: false, // 鐩殑浠撶爜杈撳叆妗嗚仛鐒︾姸鎬�
+				HBarCodeMiddleFocus: false, // 涓鐮佽緭鍏ユ鑱氱劍鐘舵��
+				HBarCodeFocus: false, // 浜у搧鐮佽緭鍏ユ鑱氱劍鐘舵��
+				tabs: 0, // 褰撳墠閫夐」鍗�(0:鍗曟嵁淇℃伅,1:瑁呯淇℃伅)
+
+
+				// ==================== 涓氬姟鏁版嵁 ====================
+				HBarCode_Pallet: '', // 鏍堟澘鐮�
+				HBarCode_Destination: '', //鐩殑浠撶爜
+				HBarCode_MiddleBox: '', //涓鐮�
+				HBarCode: '', // 浜у搧鐮�
+				HBillType: '1283', // 鍗曟嵁绫诲瀷
+				HBillSubType: '1', // 瀛愮被鍨嬶紙1瑁呯銆�2缁勬墭锛�
+				OperationType: 1, // 鎿嶄綔绫诲瀷锛�1鏂板銆�2浠庣紦瀛樺垪琛ㄤ腑杩斿洖锛�
+				HMaterNumber_Pack: "", // 鎵樻潯鐮佸搴旂墿鏂欎唬鐮�
+				HBarCode_Pallet_Temp: "", // 浠庣紦瀛樺垪琛ㄤ腑杩斿洖鏍堟澘鐮�
+				BarCodeType: 1, // 鏉$爜绫诲瀷(1:瑁呯,2:缁勬墭)
+
+
+				// ==================== 鍒楄〃鏁版嵁 ====================
+				listOption: [], // 鍒楄〃閫夐」
+				listData: [], // 琛ㄦ牸鏁版嵁
+				selectedRows: [], // 琛ㄦ牸閫変腑鐨勬暟鎹�
+				columns: [ // 琛ㄦ牸鍒楅厤缃�
+					{
+						type: 'selection',
+						fixed: true,
+						width: 50
+					},
+					{
+						name: 'index',
+						label: '搴忓彿',
+						width: 60,
+						hidden: true
+					},
+					{
+						name: '鏍堟澘鐮�',
+						label: '鏍堟澘鐮�',
+						width: 200
+					},
+					{
+						name: '鐩殑浠撶爜',
+						label: '鐩殑浠撶爜',
+						width: 200
+					},
+					{
+						name: '涓鐮�',
+						label: '涓鐮�',
+						width: 200
+					},
+					{
+						name: 'SN鐮�',
+						label: 'SN鐮�',
+						width: 200
+					}
+				],
+
+				// ==================== 涓昏〃鍗曟暟鎹� ====================
+				hform: {
+					HDate: dayjs(new Date()).format('YYYY-MM-DD'), // 鍗曟嵁鏃ユ湡
+					HMaker: getUserInfo()['Czymc'], // 鍒跺崟浜�
+					HBillNo: '', // 鍗曟嵁鍙�
+					HInterID: '', // 鍗曟嵁ID
+					HStockOrgName: uni.getStorageSync("Organization"), // 缁勭粐鍚嶇О
+					HStockOrgID: uni.getStorageSync("OrganizationID"), // 缁勭粐ID
+				},
+
+				// ==================== 绯荤粺閰嶇疆 ====================
+				HModName: "Sc_PackUnionBill_Packing_PDA", // 妯″潡鍚嶇О
+				ModRightName: "CE_PackUnionBill_Packing", // 妯″潡鏉冮檺鍙傛暟
+				titleData: [] // 涓嶉渶瑕佹樉绀虹殑瀛楁
+			}
+		},
+		components: {
+			
+		},
+		// ==================== 璁$畻灞炴�� ====================
+		computed: {
+			// 璁$畻琛ㄦ牸楂樺害
+			listTableHeight: {
+				get() {
+					return this.bottomBtnTop - this.listTableTop - 10
+				}
+			}
+		},
+
+		// ==================== 鏂规硶 ====================
+		methods: {
+			// 澶嶉�夋鍙樺寲澶勭悊
+			checkboxGroupChangeHandler(e) {
+				let checkBoxValues = Array.from(e.detail.value)
+				this.hform.HQualityApproval = checkBoxValues.includes('qualityApproval')
+			},
+
+			// 琛ㄦ牸琛岀偣鍑诲鐞�
+			onTableRowClickHandler(row, index) {
+				if (!this.listData[index].checked) {
+					this.$set(this.listData[index], 'checked', true)
+				} else {
+					this.listData[index].checked = !this.listData[index].checked
+				}
+			},
+
+			// 鍒锋柊SN鐮佽緭鍏ユ鐒︾偣
+			async HBarCodeFocusRefresh() {
+				this.HBarCode = ''
+				this.HBarCodeFocus = false
+				await this.$nextTick()
+				this.HBarCodeFocus = true
+			},
+
+			// 鍒锋柊鏍堟澘鐮佽緭鍏ユ鐒︾偣
+			async HBarCodePalletFocusRefresh() {
+				this.HBarCode_Pallet = ''
+				this.HBarCodePalletFocus = false
+				await this.$nextTick()
+				this.HBarCodePalletFocus = true
+			},
+
+			// 鍒锋柊鐩殑浠撶爜杈撳叆妗嗙劍鐐�
+			async HBarCodeDestFocusRefresh() {
+				this.HBarCode_Destination = ''
+				this.HBarCodeDestFocus = false
+				await this.$nextTick()
+				this.HBarCodeDestFocus = true
+			},
+
+			// 鍒锋柊涓鐮佽緭鍏ユ鐒︾偣
+			async HBarCodeMiddleFocusRefresh() {
+				this.HBarCode_MiddleBox = ''
+				this.HBarCodeMiddleFocus = false
+				await this.$nextTick()
+				this.HBarCodeMiddleFocus = true
+			},
+
+			// 鎵弿鏍堟澘鐮�
+			toScanCode() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode_Pallet = scanCode
+					this.CheckBarcode(this.HBarCode_Pallet, 1)
+				})
+			},
+
+			// 鎵弿鐩殑浠撶爜
+			toScanCode() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode_Destination = scanCode
+					this.CheckBarcode(this.HBarCode_Destination, 2)
+				})
+			},
+
+			// 鎵弿涓鐮�
+			toScanCode() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode_MiddleBox = scanCode
+					this.CheckBarcode(this.HBarCode_MiddleBox, 3)
+				})
+			},
+
+			// 鎵潯鐮佹牳瀵规牎楠屼俊鎭�
+			CheckBarcode(HBarCode, HBarCodeType) {
+				CommonUtils.doRequest2({
+					url: '/CheckBarcodeController/Get_BarCode_BarcodeCheck',
+					data: {
+						HBarCode_Pallet: this.HBarCode_Pallet,
+						HBarCode_Destination: this.HBarCode_Destination,
+						HBarCode_MiddleBox: this.HBarCode_MiddleBox,
+						HBarCode_SN: this.HBarCode_SN,
+						HBarCodeType: HBarCodeType,
+						HInterID: this.hform.HInterID,
+						HBillNo: this.hform.HBillNo,
+						HMaker: this.hform.HMaker
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message,
+							list
+						} = res.data
+						if (count == 1) {
+							CommonUtils.playSound(1)
+							
+							if(HBarCodeType == 1){
+								//澶勭悊鎴愬姛鍚庤仛鐒﹀埌鐩殑浠撶爜杈撳叆妗�
+								this.HBarCodeDestFocusRefresh()
+							}else if(HBarCodeType == 2){
+								//澶勭悊鎴愬姛鍚庤仛鐒﹀埌涓鐮佽緭鍏ユ
+								this.HBarCodeMiddleFocusRefresh()
+							}else if(HBarCodeType == 3){
+								//澶勭悊鎴愬姛鍚庤仛鐒﹀埌SN鐮佽緭鍏ユ
+								this.HBarCodeFocusRefresh()
+							}
+							
+							
+							//this.DisBillEntryList();
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+							
+							this.listData = [];							
+							for (let i = 0; i < data.length; i++) {
+								this.listData.push(Object.assign(data[i], {
+									index: i
+								}))
+							}
+						} else {
+							CommonUtils.playSound(0)
+							this.HBarCodePalletFocusRefresh()
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+
+			// 鎵弿浜у搧鐮�
+			toScanCode2() {
+				MpaasScan.scanCode((scanCode) => {
+					this.HBarCode = scanCode
+					this.GetMeesageByBarCode(scanCode)
+				})
+			},
+
+			// 鏍规嵁浜у搧鐮佽幏鍙栦俊鎭�
+			GetMeesageByBarCode(HBarCode) {
+				let HBarCode_Pallet = this.HBarCode_Pallet
+				let sOldBarCode = this.HBarCode
+				let HDeleteFlag = sOldBarCode.substring(0, 1)
+				let sBarCode = sOldBarCode.slice(1)
+
+				if (!HBarCode_Pallet) {
+					return uni.showToast({
+						icon: 'none',
+						title: '鏍堟澘鐮佷笉鑳戒负绌猴紝璇峰厛鎵弿鎵樻潯鐮侊紒'
+					})
+				}
+				if (HDeleteFlag == '*') {
+					// 鍒犻櫎鏉$爜閫昏緫
+					if (!sBarCode) {
+						return uni.showToast({
+							icon: 'none',
+							title: '璇锋壂鎻忚鍒犻櫎鐨勬潯鐮�'
+						})
+					} else {
+						this.HBarCodeFocusRefresh()
+					}
+					CommonUtils.doRequest2({
+						url: '/WEBSController/set_DelPackUnionBill_Temp_Pack_Json',
+						data: {
+							"HInterID": this.hform.HInterID,
+							"HBarCode": sBarCode,
+							"HBillType": this.HBillType
+						},
+						resFunction: (res) => {
+							let {
+								data,
+								count,
+								Message
+							} = res.data
+							if (count == 1) {
+								CommonUtils.playSound(1)
+								this.tabs = 1
+								this.DisBillEntryList()
+							} else {
+								CommonUtils.playSound(0)
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+							}
+						}
+					})
+				} else {
+					// 鏂板鏉$爜閫昏緫
+					let sBarCode = this.HBarCode
+					if (!sBarCode) {
+						return uni.showToast({
+							icon: 'none',
+							title: '鏉$爜涓嶈兘涓虹┖锛岃鎵弿鏉$爜锛�'
+						})
+					}
+					CommonUtils.doRequest2({
+						url: '/WEBSController/Get_BarCode_PackUnionBill_New_Json_Cus',
+						data: {
+							"HBarCode": sBarCode,
+							"HInterID": this.hform.HInterID,
+							"HBillNo": this.hform.HBillNo,
+							"HBillType": this.HBillType,
+							"HBillSubType": this.HBillSubType,
+							"HBarCode_Pallet": this.HBarCode_Pallet,
+							"HMaterNumber_Pack": this.HMaterNumber_Pack,
+							"HMaker": this.hform.HMaker,
+							"HStockOrgID": this.hform.HStockOrgID
+						},
+						resFunction: (res) => {
+							let {
+								data,
+								count,
+								Message
+							} = res.data
+							if (count == 1) {
+								CommonUtils.playSound(1)
+								this.tabs = 1
+								this.HBarCodeFocusRefresh()
+								this.DisBillEntryList()
+							} else {
+								CommonUtils.playSound(0)
+								this.HBarCodeFocusRefresh()
+								uni.showToast({
+									icon: 'none',
+									title: Message
+								})
+							}
+						}
+					})
+				}
+			},
+			// 鏄剧ず鍗曟嵁鏄庣粏鍒楄〃
+			DisBillEntryList() {
+				CommonUtils.doRequest2({
+					url: '/WEBSController/GetBillEntry_Tmp_Pack_Json',
+					data: {
+						"HInterID": this.hform.HInterID,
+						"HBillNo": this.hform.HBillNo,
+						"HBillType": this.HBillType
+					},
+					resFunction: (res) => {
+						let {
+							count,
+							data,
+							Message
+						} = res.data
+						this.listData = []
+						if (count == 1) {
+							for (let i = 0; i < data.length; i++) {
+								this.listData.push(Object.assign(data[i], {
+									index: i
+								}))
+							}
+
+
+						} else {
+
+						}
+					}
+				})
+			},
+
+			// 琛ㄦ牸閫夋嫨澶勭悊
+			handleSelect(selected, array) {
+				this.selectedRows = array
+			},
+
+			// 琛ㄦ牸鍏ㄩ�夊鐞�
+			handleSelectAll(selected, array) {
+				this.selectedRows = array
+			},
+			// 鎾斁鎻愮ず闊�
+			playSound(type) {
+				const innerAudioContext = uni.createInnerAudioContext();
+				innerAudioContext.src = type == 1 ? '/static/success.wav' : '/static/jingbao.wav';
+				innerAudioContext.play();
+			},
+
+
+			// 鑾峰彇鏈�澶у崟鎹彿
+			getMaxNo() {
+				CommonUtils.doRequest2({
+					url: "/WEBSController/GetMaxBillNoAndID_Json",
+					data: {
+						"HBillType": this.HBillType
+					},
+					resFunction: (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() {
+				if (this.selectedRows.length != 1) {
+					return uni.showToast({
+						icon: 'none',
+						title: '璇烽�夋嫨涓�琛岃褰曪紝杩涜鍒犻櫎锛�'
+					})
+				}
+				uni.showModal({
+					title: '鍒犻櫎纭',
+					content: '纭瑕佸垹闄ら�変腑琛屾墍鏈夋壂鐮佽褰曪紵鍒犻櫎鍚庡皢涓嶅彲鎭㈠!',
+					success: ({
+						confirm
+					}) => {
+						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
+				CommonUtils.doRequest2({
+					url: '/CheckBarcodeController/Save_BarCode_BarcodeCheck',
+					data: {
+						"HInterID": this.hform.HInterID,
+						"HBillNo": this.hform.HBillNo
+					},
+					resFunction: (res) => {
+						let {
+							data,
+							count,
+							Message
+						} = res.data
+						if (count == 1) {
+							uni.showModal({
+								title: '娓╅Θ鎻愮ず',
+								content: Message,
+								confirmText: "鏂板",
+								cancelText: '鍏抽棴',
+								success: ({
+									confirm,
+									cancel
+								}) => {
+									if (confirm) {
+										uni.redirectTo({
+											url: "/pages/sanmaheyi/BarCodeCheck"
+										})
+									}
+									if (cancel) {
+										uni.navigateBack()
+									}
+								}
+							})
+						} else {
+							uni.showToast({
+								icon: 'none',
+								title: Message
+							})
+						}
+					}
+				})
+			},
+
+			// 閫�鍑洪〉闈�
+			cmdExit() {
+				uni.navigateBack()
+			}
+		},
+
+		// ==================== 鐢熷懡鍛ㄦ湡 ====================
+		async onReady() {
+			// 璁$畻琛ㄦ牸楂樺害
+			// #ifndef MP-WEIXIN
+			let query = uni.createSelectorQuery().in(this)
+			query.select("#bottom-btn").boundingClientRect((data) => {
+				if (data) this.bottomBtnTop = data.top
+			}).exec();
+			query.select("#list-table").boundingClientRect((data) => {
+				if (data) this.listTableTop = data.top
+			}).exec();
+			// #endif
+		},
+
+		onLoad(e) {
+			// 鍒濆鍖栧弬鏁�
+			this.BarCodeType = e.BarCodeType || 1
+			this.OperationType = e.OperationType || 1
+			this.HBarCode_Pallet = e.HBarCode_Pallet_Temp || ""
+			this.hform.HSourceBillNo = e.HSourceBillNo || ""
+			this.HBarCode_Destination = e.HBarCode_Destination || ""
+			this.HBarCode_MiddleBox = e.HBarCode_MiddleBox || ""
+
+			// 鏍规嵁鎿嶄綔绫诲瀷鍒濆鍖栨暟鎹�
+			if (this.OperationType == 1) {
+				this.getMaxNo() // 鏂板妯″紡锛氳幏鍙栨柊鍗曟嵁鍙�
+				// 鍒濆鍖栨椂鑱氱劍鍒版簮鍗曞崟鍙�
+				this.HSourcebillNoFocus = true
+			} else if (this.OperationType == 2) {
+				this.disableBarCodePallet = false
+				this.disableBarCodeDest = false
+				this.disableBarCodeMiddle = false
+				this.disableBarCode = false
+				this.CheckBarcode(this.HBarCode_Pallet, 1) // 缂撳瓨妯″紡锛氬姞杞藉凡鏈夋暟鎹�
+				this.DisBillEntryList()
+				this.tabs = 0
+			}
+
+			// 榛樿鑱氱劍鍒版爤鏉跨爜杈撳叆妗�
+			this.HBarCodePalletFocusRefresh()			
+		},
+		onUnload() {
+			uni.$off('BillSelectComplete')
+		}
+	}
+</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;
+			}
+
+			.icon-wrapper {
+				background-color: #3A78FF;
+				border-radius: 100%;
+				width: 52rpx;
+				height: 52rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				flex-shrink: 0;
+
+				.uni-icons {
+					color: #fff !important;
+				}
+			}
+
+			.icon-wrapper[disabled] {
+				background-color: rgba(228, 228, 228, 1);
+				pointer-events: none;
+				touch-action: none;
+			}
+		}
+	}
+
+	.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;
+		}
+	}
+
+	.right-icon.disabled {
+		background-color: #ccc !important;
+		color: #666 !important;
+		cursor: not-allowed;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/sanmaheyi/table.vue b/pages/sanmaheyi/table.vue
new file mode 100644
index 0000000..b08c7ea
--- /dev/null
+++ b/pages/sanmaheyi/table.vue
@@ -0,0 +1,487 @@
+<template>
+	<view class="content">
+		<view class="tabs">
+			<view :class="tabs == 0 ? 'on':''" @tap="changeTab(0)">缂撳瓨鍒楄〃</view>
+		</view>
+
+		<view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
+
+		<view class="form" v-if="tabs == 0">
+			<view class="buttons" @tap="add">
+				<uni-icons type="plus" style="margin-right: 10rpx;" size="22"></uni-icons>鏂板
+			</view>
+		</view>
+
+		<view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
+
+		<view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==0">
+			<uni-card :title="item.鍒跺崟鏃ユ湡.substr(0,10)" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
+				@tap="showDetail = showDetail==index?-1:index">
+				<view class="card-detail">
+					<view class="detail" v-if="item.鎵樻潯鐮�">
+						<text>鎵樻潯鐮侊細</text>{{item.鎵樻潯鐮亇}
+					</view>
+					<view class="detail" v-if="item.HSourceBillNo">
+						<text>婧愬崟鍙凤細</text>{{item.HSourceBillNo}}
+					</view>
+					<view class="detail" v-if="item.鍒跺崟浜�">
+						<text>鍒跺崟浜猴細</text>{{item.鍒跺崟浜簘}
+					</view>
+					<view class="detail" v-if="item.鍒跺崟鏃ユ湡">
+						<text>鍒跺崟鏃ユ湡锛�</text>{{ item.鍒跺崟鏃ユ湡.split('T')[0] }}
+					</view>
+					<view class="detail" v-if="item.缁勭粐">
+						<text>缁勭粐锛�</text>{{item.缁勭粐}}
+					</view>
+				</view>
+
+				<view class="more">
+					<view class="part" style="border-right: 1px solid #eee;color: #3a78ff;" @tap.stop="edit(item)">
+						<uni-icons type="compose" style="color: #3a78ff;margin-right: 10rpx;" size="18"></uni-icons>缂栬緫
+					</view>
+					<view class="part" style="color: #da0000;" @tap.stop="del(item)">
+						<uni-icons type="trash" style="color: #da0000;margin-right: 10rpx;" size="18"></uni-icons>鍒犻櫎
+					</view>
+				</view>
+			</uni-card>
+		</view>
+		<view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==1">
+			<uni-card :title="item.鏃ユ湡" :extra="item.鍗曟嵁鍙�" style="margin: 10px;"
+				@tap="showDetail = showDetail==index?-1:index">
+				<view class="card-detail">
+					<view class="detail" v-if="item.鐘舵��">
+						<text>鐘舵�侊細</text>{{item.鐘舵�亇}
+					</view>
+					<view class="detail" v-if="item.鍒跺崟浜�">
+						<text>鍒跺崟浜猴細</text>{{item.鍒跺崟浜簘}
+					</view>
+					<view class="detail" v-if="item.鏁伴噺">
+						<text>鏁伴噺锛�</text>{{item.鏁伴噺}}
+					</view>
+					<view class="detail" v-if="item.婧愬崟鍗曞彿">
+						<text>婧愬崟鍗曞彿锛�</text>{{item.婧愬崟鍗曞彿}}
+					</view>
+					<view class="detail" v-if="item.鐗╂枡浠g爜">
+						<text>鐗╂枡浠g爜锛�</text>{{item.鐗╂枡浠g爜}}
+					</view>
+					<view class="detail" v-if="item.鐗╂枡鍚嶇О">
+						<text>鐗╂枡鍚嶇О锛�</text>{{item.鐗╂枡鍚嶇О}}
+					</view>
+					<view class="detail" v-if="item.瑙勬牸鍨嬪彿">
+						<text>瑙勬牸鍨嬪彿锛�</text>{{item.瑙勬牸鍨嬪彿}}
+					</view>
+					<view class="detail" v-if="item.缁勭粐">
+						<text>缁勭粐锛�</text>{{item.缁勭粐}}
+					</view>
+				</view>
+
+				<view class="more">
+					<view class="part" style="color: #3a78ff;width: 100%;" @tap.stop="qrCodeDisplay(item)">
+						<uni-icons type="scan" style="color: #3a78ff;margin-right: 10rpx;" size="18"></uni-icons>鏄剧ず浜岀淮鐮�
+					</view>
+					<view class="part" style="color: #d98d00;width: 100%;" @tap.stop="revoke(item)">
+						<uni-icons type="undo" style="color: #d98d00;margin-right: 10rpx;" size="18"></uni-icons>鎾ら攢
+					</view>
+				</view>
+			</uni-card>
+		</view>
+
+		<view class="over" v-if="!listData || listData.length == 0">鏆傛棤鏁版嵁</view>
+		<view class="over" v-if="listData.length != 0 && listData.length != showList.length">鍔犺浇涓�...</view>
+		<view class="over" v-if="listData.length != 0 && listData.length == showList.length">宸插埌搴�</view>
+		<BarCodePopupVue ref="barcodePopup"></BarCodePopupVue>
+	</view>
+</template>
+
+<script>
+	import dayjs from "dayjs";
+	import {
+		getUserInfo
+	} from "@/utils/auth.js";
+	import BarCodePopupVue from "../../components/BarCodePopup/BarCodePopup.vue";
+	export default {
+		data() {
+			return {
+				userInfo: getUserInfo(),
+				serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
+				tabs: 0,
+				urls: '/WEBSController/GetSc_PackUnionBill_TempList_Json',
+				MvarReportTitle: '瑁呯鍗曠紦瀛樺垪琛�',
+				hform: {
+					// HBillNo: '',
+					// HSourceBillNo: '',
+					HBillType: 3783,
+					HMaker: uni.getStorageSync('HUserName'),
+					HStockOrgID: uni.getStorageSync('OrganizationID'),
+				},
+				sWhere: '',
+				listData: [],
+				showList: [],
+				showDetail: -1,
+
+				page: 1,
+			}
+		},
+		components: {
+			BarCodePopupVue
+		},
+		onShow() {
+			//鐢ㄦ埛妯″潡鏉冮檺鍒ゆ柇
+			this.CheckModRight()
+			this.changeTab(0)
+			console.log(this.userInfo, uni.getStorageSync('HUserName'))
+		},
+		onReachBottom: function() {
+			this.page++
+			setTimeout(() => {
+				this.showList = this.showList.concat(this.getPage(this.page, this.listData))
+			}, 100)
+		},
+		onPullDownRefresh: function() {
+			this.clear()
+			setTimeout(() => {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		methods: {
+			async qrCodeDisplay(item) {
+				this.$refs.barcodePopup.setCodeInfo(item.HBillNo)
+				await this.$nextTick()
+				this.$refs.barcodePopup.open()
+			},
+			CheckModRight() {
+				uni.request({
+					url: this.serverUrl + '/WEBSController/CheckModRight_Json',
+					data: {
+						ModRightName: 'CE_PackUnion',
+						HUserName: uni.getStorageSync('HUserName')
+					},
+					success: (res) => {
+						if (res.data.count == 1) {} else {
+							uni.showToast({
+								title: res.data.Message,
+								icon: 'none'
+							})
+						}
+					},
+					fail: (res) => {
+						console.log(res);
+						uni.showToast({
+							title: '鎺ュ彛璇锋眰澶辫触',
+							icon: 'none'
+						})
+					},
+				});
+			},
+			getPage(page, list) {
+				let sindex = (parseInt(page) - 1) * 20
+				let eindex = parseInt(page) * 20
+				let newList = list.slice(sindex, eindex)
+				return newList
+			},
+			changeTab(e) {
+				this.tabs = e
+				this.page = 1
+				this.showList = []
+
+				if (this.tabs == 0) {
+					this.urls = '/WEBSController/GetSc_PackUnionBill_TempList_Json'
+				}
+				// if(this.tabs == 1){
+				// 	this.urls = '/WEBSController/GetKf_ICStockBillQueryList_User_Json'
+				// }
+				this.getList()
+			},
+			getList() {
+				uni.showLoading({
+					title: '鍔犺浇涓�...'
+				})
+				uni.request({
+					url: this.serverUrl + this.urls,
+					data: this.hform,
+					success: (res) => {
+						console.log(1, res);
+						if (res.data.count == 1) {
+							this.listData = res.data.data
+							this.showList = this.getPage(this.page, this.listData)
+							setTimeout(() => {
+								uni.hideLoading()
+							}, 1000)
+						} else {
+							uni.hideLoading()
+							this.listData = []
+							uni.showToast({
+								title: res.data.Message,
+								icon: 'none'
+							})
+						}
+					},
+					fail: (res) => {
+						console.log(res);
+						uni.hideLoading()
+						uni.showToast({
+							title: '鎺ュ彛璇锋眰澶辫触',
+							icon: 'none'
+						})
+					},
+				});
+			},
+			search() {
+				this.sWhere = ''
+				this.listData = []
+				this.page = 1
+				this.showList = []
+
+				console.log(this.hform)
+				this.getList()
+			},
+			clear() {
+				this.listData = []
+				this.page = 1
+				this.showList = []
+
+				this.sWhere = ''
+				this.hform = {
+					HBillNo: '',
+					HSourceBillNo: '',
+					HBillType: 3783,
+					HMaker: uni.getStorageSync('HUserName'),
+					HStockOrgID: uni.getStorageSync('OrganizationID'),
+				}
+				this.getList()
+			},
+			add() {
+				uni.navigateTo({
+					url: './form?OperationType=1'
+				})
+			},
+			//缂栬緫
+			edit(item) {
+				console.log(item)
+				uni.navigateTo({
+					url: './form?OperationType=2&HBarCode_Pack_Temp=' + item["HBarCode_Pack"] + '&HSourceBillNo=' +item["HSourceBillNo"],
+				})
+			},
+			//鍒犻櫎
+			del(item) {
+				// console.log(item.hmainid,uni.getStorageSync('HUserName'))
+				uni.showModal({
+					title: '鎻愮ず',
+					content: '纭瑕佸垹闄よ褰曪紵鍒犻櫎鍚庝笉鑳芥仮澶�',
+					success: (res) => {
+						if (res.confirm) {
+							console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+							uni.request({
+								url: this.serverUrl +
+									'/WEBSController/DeleteTemp_PackUnionBill_Json',
+								data: {
+									HInterID: item.HInterID,
+								},
+								success: (res) => {
+									console.log(1, res);
+									if (res.data.count == 1) {
+										this.clear()
+									}
+									uni.showToast({
+										title: res.data.Message,
+										icon: 'none'
+									})
+								},
+								fail: (res) => {
+									console.log(res);
+									uni.hideLoading()
+									uni.showToast({
+										title: '鎺ュ彛璇锋眰澶辫触',
+										icon: 'none'
+									})
+								},
+							});
+						} else if (res.cancel) {
+							console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+						}
+					}
+				});
+			},
+			//鎾ら攢
+			revoke(item) {
+				// console.log(item.hmainid,uni.getStorageSync('HUserName'))
+				uni.showModal({
+					title: '鎻愮ず',
+					content: '鏄惁纭鎾ら攢',
+					success: (res) => {
+						if (res.confirm) {
+							console.log('鐢ㄦ埛鐐瑰嚮纭畾');
+							uni.request({
+								url: this.serverUrl +
+									'/WEBSController/set_DeleteICStockBillAndWMS_Json',
+								data: {
+									HInterID: item.HInterID,
+									HBillNo: item.鍗曟嵁鍙�,
+									HBillType: this.hform.HBillType,
+									HMaker: uni.getStorageSync('HUserName'),
+									MvarReportTitle: this.MvarReportTitle,
+								},
+								success: (res) => {
+									console.log(1, res);
+									if (res.data.count == 1) {
+										this.clear()
+									}
+									uni.showToast({
+										title: res.data.Message,
+										icon: 'none'
+									})
+								},
+								fail: (res) => {
+									console.log(res);
+									uni.hideLoading()
+									uni.showToast({
+										title: '鎺ュ彛璇锋眰澶辫触',
+										icon: 'none'
+									})
+								},
+							});
+						} else if (res.cancel) {
+							console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷');
+						}
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.form {
+		width: 640rpx;
+		margin: 20rpx auto;
+		margin-top: 90rpx;
+	}
+
+	.tabs {
+		width: 100%;
+		position: fixed;
+		left: 0;
+		z-index: 9;
+		display: flex;
+		background-color: #e5e5e5;
+
+		view {
+			width: 50%;
+			font-size: 30rpx;
+			color: #333;
+			text-align: center;
+			padding: 16rpx 0;
+		}
+
+		.on {
+			color: #3a78ff;
+			font-weight: bold;
+			border-bottom: 3px solid #3a78ff;
+		}
+	}
+
+	.buttons {
+		width: 100%;
+		display: flex;
+		justify-content: center;
+		margin-top: 20rpx;
+
+		button {
+			border-radius: 50rpx;
+			width: 180rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			font-size: 28rpx;
+		}
+
+		.btn-a {
+			background-color: #acacac;
+			color: #fff;
+		}
+
+		.btn-b {
+			background-color: #41a863;
+			color: #fff;
+		}
+
+		.btn-c {
+			background-color: #3a78ff;
+			color: #fff;
+		}
+	}
+
+	.form-item {
+		display: flex;
+		align-items: center;
+		font-size: 28rpx;
+		padding: 6rpx 0;
+
+		.title {
+			width: 180rpx;
+
+			text {
+				color: red;
+				font-weight: bold;
+			}
+		}
+
+		.right {
+			width: 450rpx;
+			border-radius: 22rpx;
+			border: 1px solid #acacac;
+		}
+
+		.righton {
+			width: 450rpx;
+			border-radius: 22rpx;
+			border: 1px solid #e4e4e4;
+			background-color: #e4e4e4;
+		}
+
+		input {
+			width: 100%;
+			padding: 8rpx 20rpx;
+			font-size: 30rpx;
+		}
+	}
+
+	.list {
+		width: 100%;
+
+		.card-detail {
+			width: 100%;
+			display: flex;
+			flex-wrap: wrap;
+			justify-content: space-between;
+			line-height: 120%;
+
+			.detail {
+				// width: 50%;
+				font-size: 26rpx;
+				margin-bottom: 12rpx;
+				color: #555;
+				margin-right: 20rpx;
+
+				text {
+					color: #999;
+					font-size: 26rpx;
+				}
+			}
+		}
+
+		.more {
+			color: #888;
+			font-size: 26rpx;
+			display: flex;
+			border-top: 1px solid #eee;
+			padding-top: 20rpx;
+
+			.part {
+				width: 50%;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+		}
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.1