chenhaozhe
2025-11-13 e2f33becdfbe80f9c792006740b2037a6e4eb527
pages/zutuo_xiaowei/form_xiaowei.vue
copy from pages/zutuosaoma/form.vue copy to pages/zutuo_xiaowei/form_xiaowei.vue
File was copied from pages/zutuosaoma/form.vue
@@ -2,18 +2,6 @@
    <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" :class="[EnableScanBarCodePack?'disabled':'']"  type="scan"
                        style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
                        @click="toScanCode"></uni-icons>
                </view>
            </view>
            <view class="form-item">
                <view class="title">条码</view>
                <view class="right">
                    <input type="text" :focus="HBarCodeFocus" v-model="HBarCode"
@@ -29,6 +17,8 @@
        <view class="tabs">
            <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">装箱信息</view>
            <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">单据信息</view>
            <!-- 删除这行多余的代码 -->
            <!-- <view :class="tabs == 'closeResultTable' ? 'on':''" @tap="tabs = 1">单据信息</view> -->
        </view>
        <!-- 装箱信息 -->
        <view v-if="tabs == 0">
@@ -95,6 +85,31 @@
            <button class="btn-d" size="mini" @tap="cmdDelete">删除</button>
            <button class="btn-c" size="mini" @tap="cmdExit">退出</button>
        </view>
        <view v-if="showResultTable" class="result-modal">
            <view class="modal-mask" @tap="closeResultTable"></view>
            <view class="modal-content">
                <view class="modal-header">
                    <text class="modal-title">装箱结果</text>
                    <uni-icons type="close" size="20" @tap="closeResultTable"></uni-icons>
                </view>
                <view class="modal-body">
                    <zb-table
                        :fit="true"
                        :style="{height: '400px'}"
                        :columns="resultTableColumns"
                        :data="resultTableData"
                        :show-header="true"
                        :border="true"
                        :row-key="row => row.index" />
                </view>
                <view class="modal-footer">
                    <button class="btn-a" size="mini" @tap="toAddNew">新增</button>
                    <view style="flex: 1;"></view>
                    <button class="btn-c" size="mini" @tap="closeResultTable">关闭</button>
                </view>
            </view>
        </view>
    </view>
</template>
@@ -109,6 +124,7 @@
    import {
        MpaasScan
    } from "@/utils/mpaasScan.js"
import getdateTime from '../../utils/getdateTime';
    export default {
        data() {
            return {
@@ -172,17 +188,90 @@
                titleData: [], //不需要显示的字段
                OperationType: 1, //从缓存列表中返回数据类型(1新增、2从缓存列表中返回)
                HBarCode_Pack_Temp: "", //从缓存列表中返回箱条码
            //展示表单
            showResultTable: false, // 控制结果表格显示
                resultTableData: [], // 结果表格数据
                resultTableColumns: [
                  {
                    name: '栈板码',
                    label: '栈板码',
                    width: 120,
                  },
                  {
                    name: '中箱码',
                    label: '中箱码',
                    width: 120,
                  },
                  {
                    name: '日期',
                    label: '日期',
                    width: 100,
                  },
                  {
                    name: '物料',
                    label: '物料',
                    width: 100,
                  }
                ],
            //
                // 表单提交值
                hform: {
                    HDate: dayjs(new Date()).format('YYYY-MM-DD'),
                    HMaker: getUserInfo()['Czymc'],
                    HBillNo: '',
                    HInterID: '',
                    HStockOrgName: uni.getStorageSync("Organization"),
                    HStockOrgID: uni.getStorageSync("OrganizationID"),
                
                    HQualityApproval: false,
               HMainID:'',
               HSubID:'',
               HSourceBillSEQ:'',
               HBillNo:'',
               HMaterNumber:'',
               HMaterID:'',
               HMaterName:'',
               HMaterModel:'',
               HCusModel:'',
               HCusMaterName:'',
               HEmpID:getUserInfo()['Czybm'],
               HEmpNumber:uni.getStorageSync("HEmpNumber"),
               HEmpName:getUserInfo()['Czymc'],
               HGroupID:0,
               HGroupNumber:'',
               HGroupName:'',
               HMTONo:'',
               HCheckEmpName:'',
               HExpiryDate:dayjs(new Date()).format('YYYY-MM-DD'),
               HExpirationDateFlag:0,
               HRemark:'',
               HCoilNO:'',
               HFurnaceNO:'',
               HFactory:'',
               HAuxQty:0,
               HheatNO:'',
               HProduceDate:dayjs(new Date()).format('YYYY-MM-DD'),
               HSPID:0,
               HSPCode:'',
               HSPName:'',
               HWHID:0,
               HWHCode:'',
               HWHName:'',
               HQtyMust:0,
               HQty:1,
               HBQty:1,
               HMinQty:1,
               HPackQty:0,
               HPrice:0,
               HMoney:0,
               HUseLife:0,
               HLeaveLife:0,
               HDesignLife:0,
               //托条码:
                },
                // 分页模块元数据
                paginationMeta: {
@@ -219,52 +308,7 @@
                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_PackUnionBill_Json',
                    data: {
                        HInterID: this.hform.HInterID || 0,
                        HBillNo: this.hform.HBillNo,
                        HBillType: this.HBillType,
                        HBarCode_Pack: HBarCode_Pack,
                        HMaker: getUserInfo()['Czymc'],
                        HStockOrgID: uni.getStorageSync('OrganizationID')
                    },
                    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
@@ -277,13 +321,6 @@
                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({
@@ -327,13 +364,15 @@
                        })
                    }
                    CommonUtils.doRequest2({
                        url: '/WEBSController/Get_BarCode_PackUnionBill_Json',
                        url: '/WEBSController/get_BarCode_PackUnionBill_New_Json_xiaowei',
                        data: {
                            "HInterID": this.hform.HInterID,
                            "HBarCode": sBarCode,
                            "HBillType": this.HBillType,
                     "HBillSubType":this.HBillSubType,
                     "HBarCode_Pack":'',
                            "HBillNo": this.hform.HBillNo,
                            "HBarCode_Pack": HBarCode_Pack,
                     "HMaterNumber_Pack":this.HMaterNumber_Pack,
                            "HMaker": this.hform.HMaker,
                            "HStockOrgID": this.hform.HStockOrgID
                        },
@@ -345,6 +384,8 @@
                            } = res.data
                            if (count == 1) {
                                CommonUtils.playSound(1)
                        console.log(sBarCode)
                        this.FindMaterial(sBarCode)
                                this.HBarCodeFocusRefresh()
                                this.DisBillEntryList()
                            } else {
@@ -359,6 +400,34 @@
                    })
                }
            },
         FindMaterial(sBarCode)
         {
            CommonUtils.doRequest2({
                url: '/Gy_Material/findMaterialByNumber',
                data: {
                    "HbarCode": sBarCode,
                    "HSTOCKORGID": this.HStockOrgID,
                },
               resFunction: (res) => {
                   let {
                       count,
                       data,
                       Message
                   } = res.data
                  if (count == 1) {
                     console.log(res.data)
                     this.hform.HMaterID=data[0].HMaterID
                     this.hform.HMaterName=data[0].HMaterName
                     this.hform.HMaterModel=data[0].HMaterModel
                  }else {
                                uni.showToast({
                                    icon: 'none',
                                    title: Message
                                })
                            }
               }
            })
         },
            DisBillEntryList() {
                CommonUtils.doRequest2({
                    url: '/WEBSController/GetBillEntry_Tmp_Pack_Json',
@@ -492,58 +561,128 @@
                    }
                })
            },
            cmdSubmit() {
                let checkRes = this.submitPreCheck()
                if (!checkRes) {
                    return
                }
                this.EnableSubmit = false
                CommonUtils.doRequest2({
                    url: '/WEBSController/set_SavePackUnionBill_Json',
                    data: {
                        "HInterID": this.hform.HInterID,
                        "HBillType": this.HBillType,
                        "HBillNo": this.hform.HBillNo,
                        "HBarCode_Pack": this.HBarCode_Pack,
                        "HMaker": this.hform.HMaker,
                        "HStockOrgID": this.hform.HStockOrgID
                    },
                    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
                            })
                        }
                    }
                })
            },
         getBarCode_pack() {
            return new Promise((resolve, reject) => {
               var sMainStr = JSON.stringify(this.hform);
               var omain = sMainStr + ';' + this.hform.HStockOrgName + ';' + this.hform.HEmpName;
               CommonUtils.doRequest2({
                  url: '/Sc_BarCode/Sub_SaveBill_xiaowei',
                  method: 'POST',
                  data: {
                     "msg": omain
                  },
                  resFunction: (res) => {
                     let { data, count, Message } = res.data;
                     if (count == 1) {
                        console.log('条码生成成功:', res.data.data[0]['条码编号']);
                        this.HBarCode_Pack = res.data.data[0]['条码编号'];
                        resolve(this.HBarCode_Pack); // 解析Promise
                     } else {
                        uni.showToast({
                           icon: 'none',
                           title: Message || '条码生成失败'
                        });
                        this.EnableSubmit = true;
                        reject(Message);
                     }
                  },
                  errorFunction: (error) => {
                     console.error('请求失败:', error);
                     uni.showToast({
                        icon: 'none',
                        title: '网络请求失败'
                     });
                     this.EnableSubmit = true;
                     reject(error);
                  }
               });
            });
         },
         async cmdSubmit() {
           let checkRes = this.submitPreCheck()
           if (!checkRes) {
            return
           }
           this.EnableSubmit = false
           try {
            await this.getBarCode_pack();
            console.log('获取到的条码:', this.HBarCode_Pack);
            // 使用 await 确保提交完成后再获取数据
            await CommonUtils.doRequest2({
              url: '/WEBSController/set_SavePackUnionBill_Json',
              data: {
               "HInterID": this.hform.HInterID,
               "HBillType": this.HBillType,
               "HBillNo": this.hform.HBillNo,
               "HBarCode_Pack": this.HBarCode_Pack,
               "HMaker": this.hform.HMaker,
               "HStockOrgID": this.hform.HStockOrgID
              },
              resFunction: async (res) => {
               let { data, count, Message } = res.data
               if (count == 1) {
                 // 等待数据获取完成后再显示表格
                 await this.getResultTableData();
               } else {
                 uni.showToast({
                  icon: 'none',
                  title: Message
                 })
                 this.EnableSubmit = true;
               }
              }
            })
           } catch (error) {
            console.error('提交失败:', error);
            this.EnableSubmit = true;
           }
         },
         getResultTableData() {
           console.log('开始获取结果数据,条码:', this.HBarCode_Pack);
           CommonUtils.doRequest2({
             url: '/WEBSController/get_SavePackUnion_xiaowei',
             data: {
               "HBarCode_Pack": this.HBarCode_Pack
             },
             resFunction: (res) => {
               console.log('结果接口返回:', res);
               let { data, count, Message } = res.data
               if (count == 1) {
                 console.log('获取到结果数据:', data);
                 this.resultTableData = data;
                 this.showResultTable = true; // 显示结果表格
                 console.log('showResultTable 设置为:', this.showResultTable);
               } else {
                 uni.showToast({
                   icon: 'none',
                   title: Message || '获取数据失败'
                 })
                 this.EnableSubmit = true;
               }
             }
           })
         },
            // 新增方法
            toAddNew() {
              // 重置数据,准备新增
              this.showResultTable = false;
              this.resultTableData = [];
              this.HBarCode_Pack = '';
              this.HBarCode = '';
              this.listData = [];
              this.getMaxNo(); // 重新获取新的单据号
              this.HBarCodePackFocusRefresh(); // 重新聚焦
            },
            // 关闭结果表格
            closeResultTable() {
              this.showResultTable = false;
              uni.navigateBack();
            },
            cmdExit() {
                uni.navigateBack()
            }
@@ -587,7 +726,7 @@
            if (this.OperationType == 1) {
                this.getMaxNo()
            } else if (this.OperationType == 2) {
                this.GetMeesageByBarCode_Pack(this.HBarCode_Pack)
               // this.GetMeesageByBarCode_Pack(this.HBarCode_Pack)
                this.DisBillEntryList()
                this.tabs = 0
            }
@@ -723,4 +862,59 @@
            color: #fff;
        }
    }
   .result-modal {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     z-index: 9999;
     .modal-mask {
       position: absolute;
       top: 0;
       left: 0;
       width: 100%;
       height: 100%;
       background: rgba(0, 0, 0, 0.5);
     }
     .modal-content {
       position: absolute;
       top: 50%;
       left: 50%;
       transform: translate(-50%, -50%);
       width: 90%;
       max-width: 700rpx;
       background: #fff;
       border-radius: 20rpx;
       overflow: hidden;
       .modal-header {
         padding: 30rpx;
         border-bottom: 1px solid #eee;
         display: flex;
         justify-content: space-between;
         align-items: center;
         .modal-title {
           font-size: 32rpx;
           font-weight: bold;
         }
       }
       .modal-body {
         padding: 30rpx;
         max-height: 60vh;
         overflow-y: auto;
       }
       .modal-footer {
         padding: 30rpx;
         border-top: 1px solid #eee;
         display: flex;
         align-items: center;
       }
     }
   }
</style>