chenhaozhe
2025-11-05 935719eaa1aa27a8f74e7805f099f3655a5d2d87
Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev
2个文件已添加
5个文件已修改
2772 ■■■■ 已修改文件
pages.json 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/mujudianjianjiludan/form.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 1178 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/login.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/tab2.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/zhuangxiangdan/form.vue 1059 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/zhuangxiangdan/table.vue 487 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -1221,6 +1221,19 @@
            "style": {
                "navigationBarTitleText": "模具故障登记单"
            }
        },
        {
            "path": "pages/zhuangxiangdan/form",
            "style": {
                "navigationBarTitleText": "装箱单"
            }
        },
        {
            "path": "pages/zhuangxiangdan/table",
            "style": {
                "navigationBarTitleText": "装箱单缓存"
            }
        }
    ],
    "tabBar": {
pages/MJGL/mujudianjianjiludan/form.vue
@@ -97,7 +97,7 @@
            
            <view class="form-item" style="align-items: flex-start;">
                <view class="title">异常情况记录:</view>
                <view class="right" style="min-height: 150rpx;">
                <view class="right" style="min-height: 100rpx;">
                    <textarea name="HErrNote" v-model="hform.HErrNote" auto-height maxlength="-1"
                        placeholder="请输入异常情况记录"></textarea>
                </view>
@@ -107,19 +107,9 @@
            
            <view class="form-item" style="align-items: flex-start;">
                <view class="title">重大安全隐患记录:</view>
                <view class="right" style="min-height: 150rpx;">
                <view class="right" style="min-height: 100rpx;">
                    <textarea name="HBigSafeNote" v-model="hform.HBigSafeNote" auto-height maxlength="-1"
                        placeholder="请输入重大安全隐患记录"></textarea>
                </view>
            </view>
            <view class="tab_area"></view>
            <view class="form-item" style="align-items: flex-start;">
                <view class="title">备注:</view>
                <view class="right" style="min-height: 150rpx;">
                    <textarea name="HRemark" v-model="hform.HRemark" auto-height maxlength="-1"
                        placeholder="请输入备注"></textarea>
                </view>
            </view>
            
@@ -127,11 +117,21 @@
            
            <view class="form-item" style="align-items: flex-start;">
                <view class="title">摘要:</view>
                <view class="right" style="min-height: 150rpx;">
                <view class="right" style="min-height: 100rpx;">
                    <textarea name="HExplanation" v-model="hform.HExplanation" auto-height maxlength="-1"
                        placeholder="请输入摘要"></textarea>
                </view>
            </view>
            <view class="tab_area"></view>
            <view class="form-item" style="align-items: flex-start;">
                <view class="title">备注:</view>
                <view class="right" style="min-height: 100rpx;">
                    <textarea name="HRemark" v-model="hform.HRemark" auto-height maxlength="-1"
                        placeholder="请输入备注"></textarea>
                </view>
            </view>
            <view class="tab_area"></view>
pages/index/index.vue
@@ -1,251 +1,251 @@
<template>
    <view class="content">
        <view class="header">智云L-MES制造执行系统
            <view class="switch-button">
                <uni-icons type="loop" @click="switchIconsModeHandler"></uni-icons>
            </view>
        </view>
        <view class="mains">
            <view v-if="!canEdit" :hidden="item.hidden" class="box" v-for="(item,index) in itemData" :key="index"
                @tap="toUrl(item)">
                <image :src="item.img" mode=""></image>
                <view class="texts">
                    {{item.text}}
                </view>
            </view>
            <view :enable-hidden="item.hidden" v-if="canEdit" class="box edit" v-for="(item,index) in itemData"
                :key="index" @tap="switchHidden(index)">
                <uni-icons class="edit-mark" color="red" type="closeempty"></uni-icons>
                <image :src="item.img" mode=""></image>
                <view class="texts">
                    {{item.text}}
                </view>
            </view>
        </view>
    <view class="content">
        <view class="header">智云L-MES制造执行系统
            <view class="switch-button">
                <uni-icons type="loop" @click="switchIconsModeHandler"></uni-icons>
            </view>
        </view>
        <view class="mains">
            <view v-if="!canEdit" :hidden="item.hidden" class="box" v-for="(item,index) in itemData" :key="index"
                @tap="toUrl(item)">
                <image :src="item.img" mode=""></image>
                <view class="texts">
                    {{item.text}}
                </view>
            </view>
            <view :enable-hidden="item.hidden" v-if="canEdit" class="box edit" v-for="(item,index) in itemData"
                :key="index" @tap="switchHidden(index)">
                <uni-icons class="edit-mark" color="red" type="closeempty"></uni-icons>
                <image :src="item.img" mode=""></image>
                <view class="texts">
                    {{item.text}}
                </view>
            </view>
        </view>
        <vers></vers>
    </view>
        <vers></vers>
    </view>
</template>
<script>
    import vers from './vers.vue';
    import {
        setMenuList,
        getMenuList
    } from '../../utils/menuListApp';
    import {
        CommonUtils
    } from '../../utils/common';
    import {
        getUserInfo
    } from '../../utils/auth';
    export default {
        components: {
            vers,
        },
        data() {
            return {
                updateCount: 0,
                menuListName: 'index',
                canEdit: false,
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                itemData: [{
                        img: '../../static/icon/icon8.png',
                        text: '收料通知单条码打印',
                        url: '/pages/tiaomaguanli/table?HBillType=1103',
                        id: 1,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon8.png',
                        text: '采购订单条码打印',
                        url: '/pages/tiaomaguanli/table?HBillType=1102',
                        id: 2,
                        hidden: false,
                    },
    import vers from './vers.vue';
    import {
        setMenuList,
        getMenuList
    } from '../../utils/menuListApp';
    import {
        CommonUtils
    } from '../../utils/common';
    import {
        getUserInfo
    } from '../../utils/auth';
    export default {
        components: {
            vers,
        },
        data() {
            return {
                updateCount: 0,
                menuListName: 'index',
                canEdit: false,
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                itemData: [{
                        img: '../../static/icon/icon8.png',
                        text: '收料通知单条码打印',
                        url: '/pages/tiaomaguanli/table?HBillType=1103',
                        id: 1,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon8.png',
                        text: '采购订单条码打印',
                        url: '/pages/tiaomaguanli/table?HBillType=1102',
                        id: 2,
                        hidden: false,
                    },
                    // {
                    //     img: '../../static/icon/icon8.png',
                    //     text: '扫码出库',
                    //     url: '/pages/saomachuku/table',
                    //     id: 1,
                    //     hidden: false,
                    // },
                    // {
                    //     img: '../../static/icon/icon8.png',
                    //     text: '采购订单标签',
                    //     url: '/pages/caigoudingdan/caigoudingdan',
                    //     id: 1,
                    //     hidden: true,
                    // },
                    // {
                    //     img: '../../static/icon/icon4.png',
                    //     text: '采购订单子标签',
                    //     url: '/pages/tiaomadaying/tiaomadaying',
                    //     id: 2,
                    //     hidden: true,
                    // },
                    {
                        img: '../../static/icon/icon11.png',
                        text: '收料通知单标签',
                        url: '/pages/shouliaotongzhi/table',
                        id: 3,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '采购入库新增',
                        url: '/pages/caigouruku/form?OperationType=1',
                        id: 4,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon20.png',
                        text: '采购退料新增',
                        url: '/pages/caigoutuiliao/form?OperationType=1',
                        id: 5,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon32.png',
                        text: '直接调拨新增',
                        url: '/pages/zhijiediaobo/form?OperationType=1',
                        id: 6,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '生产领料新增',
                        url: '/pages/shengchanlingliaoshengdan/form?OperationType=1',
                        id: 7,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon31.png',
                        text: '生产补料新增',
                        url: '/pages/shengchanbuliao/form?OperationType=1',
                        id: 8,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon8.png',
                        text: '生产退料新增',
                        url: `/pages/shengchantuiliao/form`,
                        id: 27,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '生产入库新增',
                        url: '/pages/shengchanrukushengdan/form?OperationType=1',
                        id: 9,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '委外领料新增',
                        url: '/pages/weiwailingliao/form?OperationType=1',
                        id: 10,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '其他入库新增',
                        url: '/pages/qitaruku_v2/form?OperationType=1',
                        id: 11,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '其他出库新增',
                        url: '/pages/qitachuku_v2/form?OperationType=1',
                        id: 12,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '销售出库新增',
                        url: '/pages/xiaoshouchuku/form?OperationType=1',
                        id: 13,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon19.png',
                        text: '销售退货新增',
                        url: '/pages/xiaoshoutuihuo/form?OperationType=1',
                        id: 14,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon19.png',
                        text: '委外入库新增',
                        url: '/pages/weiwairuku/form?OperationType=1',
                        id: 15,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '生产领料检验',
                        url: '/pages/shengchanlingliao/form?OperationType=1',
                        id: 16,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon31.png',
                        text: '生产补料校验',
                        url: '/pages/shengchanbuliaojiaoyan/form?OperationType=1',
                        id: 17,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon32.png',
                        text: '生产调拨校验',
                        url: '/pages/shengchandiaobo/form?OperationType=1',
                        id: 18,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '其他出库校验',
                        url: '/pages/qitachukujiaoyan/detail?OperationType=1',
                        id: 19,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '生产入库校验',
                        url: '/pages/shengchanruku/form?OperationType=1',
                        id: 20,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '销售出库校验',
                        url: '/pages/xiaoshouchukujiaoyan/form?OperationType=1',
                        id: 21,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '委外领料校验',
                        url: '/pages/weiwailingliaojiaoyan/form?OperationType=1',
                        id: 22,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '采购入库校验',
                        url: '/pages/caigourukujiaoyan/form?OperationType=1',
                        id: 23,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '其他入库校验',
                        url: '/pages/qitarukujiaoyan/table',
                        id: 27,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon8.png',
                        text: '检验报告',
                        url: `/pages/InnerHtmlPage/index?src=http://172.16.72.15:8999/index.aspx?name=${getUserInfo()['HICNumber']}&pageTitle=检验报告&pageMode=horizontal`,
                        id: 24,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon8.png',
                        text: '组托扫码',
                        url: `/pages/zutuosaoma/form`,
                        id: 25,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon8.png',
                        text: '拆托扫码',
                        url: `/pages/chaituosaoma/form`,
                        id: 26,
                        hidden: false,
                    },
                    // {
                    //     img: '../../static/icon/icon8.png',
                    //     text: '扫码出库',
                    //     url: '/pages/saomachuku/table',
                    //     id: 1,
                    //     hidden: false,
                    // },
                    // {
                    //     img: '../../static/icon/icon8.png',
                    //     text: '采购订单标签',
                    //     url: '/pages/caigoudingdan/caigoudingdan',
                    //     id: 1,
                    //     hidden: true,
                    // },
                    // {
                    //     img: '../../static/icon/icon4.png',
                    //     text: '采购订单子标签',
                    //     url: '/pages/tiaomadaying/tiaomadaying',
                    //     id: 2,
                    //     hidden: true,
                    // },
                    {
                        img: '../../static/icon/icon11.png',
                        text: '收料通知单标签',
                        url: '/pages/shouliaotongzhi/table',
                        id: 3,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '采购入库新增',
                        url: '/pages/caigouruku/form?OperationType=1',
                        id: 4,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon20.png',
                        text: '采购退料新增',
                        url: '/pages/caigoutuiliao/form?OperationType=1',
                        id: 5,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon32.png',
                        text: '直接调拨新增',
                        url: '/pages/zhijiediaobo/form?OperationType=1',
                        id: 6,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '生产领料新增',
                        url: '/pages/shengchanlingliaoshengdan/form?OperationType=1',
                        id: 7,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon31.png',
                        text: '生产补料新增',
                        url: '/pages/shengchanbuliao/form?OperationType=1',
                        id: 8,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon8.png',
                        text: '生产退料新增',
                        url: `/pages/shengchantuiliao/form`,
                        id: 27,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '生产入库新增',
                        url: '/pages/shengchanrukushengdan/form?OperationType=1',
                        id: 9,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '委外领料新增',
                        url: '/pages/weiwailingliao/form?OperationType=1',
                        id: 10,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '其他入库新增',
                        url: '/pages/qitaruku_v2/form?OperationType=1',
                        id: 11,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '其他出库新增',
                        url: '/pages/qitachuku_v2/form?OperationType=1',
                        id: 12,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '销售出库新增',
                        url: '/pages/xiaoshouchuku/form?OperationType=1',
                        id: 13,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon19.png',
                        text: '销售退货新增',
                        url: '/pages/xiaoshoutuihuo/form?OperationType=1',
                        id: 14,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon19.png',
                        text: '委外入库新增',
                        url: '/pages/weiwairuku/form?OperationType=1',
                        id: 15,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '生产领料检验',
                        url: '/pages/shengchanlingliao/form?OperationType=1',
                        id: 16,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon31.png',
                        text: '生产补料校验',
                        url: '/pages/shengchanbuliaojiaoyan/form?OperationType=1',
                        id: 17,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon32.png',
                        text: '生产调拨校验',
                        url: '/pages/shengchandiaobo/form?OperationType=1',
                        id: 18,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '其他出库校验',
                        url: '/pages/qitachukujiaoyan/detail?OperationType=1',
                        id: 19,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon17.png',
                        text: '生产入库校验',
                        url: '/pages/shengchanruku/form?OperationType=1',
                        id: 20,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon18.png',
                        text: '销售出库校验',
                        url: '/pages/xiaoshouchukujiaoyan/form?OperationType=1',
                        id: 21,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon30.png',
                        text: '委外领料校验',
                        url: '/pages/weiwailingliaojiaoyan/form?OperationType=1',
                        id: 22,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '采购入库校验',
                        url: '/pages/caigourukujiaoyan/form?OperationType=1',
                        id: 23,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '其他入库校验',
                        url: '/pages/qitarukujiaoyan/table',
                        id: 27,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon8.png',
                        text: '检验报告',
                        url: `/pages/InnerHtmlPage/index?src=http://172.16.72.15:8999/index.aspx?name=${getUserInfo()['HICNumber']}&pageTitle=检验报告&pageMode=horizontal`,
                        id: 24,
                        hidden: false,
                    }, {
                        img: '../../static/icon/icon8.png',
                        text: '组托扫码',
                        url: `/pages/zutuosaoma/form`,
                        id: 25,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon8.png',
                        text: '拆托扫码',
                        url: `/pages/chaituosaoma/form`,
                        id: 26,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '分布式调入单',
@@ -253,13 +253,13 @@
                        id: 27,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '分布式调入单缓存',
                        url: '/pages/fenbushidiaorudan/table',
                        id: 28,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '分布式调入单缓存',
                        url: '/pages/fenbushidiaorudan/table',
                        id: 28,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon16.png',
                        text: '分布式调出单',
@@ -267,357 +267,363 @@
                        id: 29,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon8.png',
                        text: '装箱单',
                        url: '/pages/zhuangxiangdan/form',
                        id: 30,
                        hidden: false,
                    },
                ],
                // itemData: [{
                //         img: '../../static/icon/icon1.png',
                //         text: '设备档案',
                //         url: '/pages/shebeidangan/table',
                //         id: 1
                //     }, {
                //         img: '../../static/icon/icon8.png',
                //         text: '设备履历',
                //         url: '/pages/shebeilvli/table',
                //         id: 0,
                //     }, {
                //         img: '../../static/icon/icon2.png',
                //         text: '设备保养计划单',
                //         url: '/pages/baoyangjihua/table',
                //         id: 2
                //     }, {
                //         img: '../../static/icon/icon3.png',
                //         text: '设备保养记录单',
                //         url: '/pages/baoyangjilu/table',
                //         id: 3
                //     }, {
                //         img: '../../static/icon/icon4.png',
                //         text: '设备点检计划单',
                //         url: '',
                //         id: 4
                //     }, {
                //         img: '../../static/icon/icon5.png',
                //         text: '设备点检记录单',
                //         url: '',
                //         id: 5,
                //     }, {
                //         img: '../../static/icon/icon6.png',
                //         text: '设备故障登记表',
                //         url: '/pages/guzhangdengji/table',
                //         id: 6
                //     }, {
                //         img: '../../static/icon/icon7.png',
                //         text: '设备维修记录单',
                //         url: '/pages/shebeiweixiu/table',
                //         id: 7,
                //         // },{
                //         //  img:'../../static/icon/icon8.png',
                //         //  text:'设备履历',
                //         //  url:'/pages/shebeilvli/table',
                //         //  id:8,
                //     }, {
                //         img: '../../static/icon/icon9.png',
                //         text: '工序进站接收单',
                //         url: '/pages/gongxuIn/table',
                //         id: 9,
                //     }, {
                //         img: '../../static/icon/icon10.png',
                //         text: '工序出站汇报单',
                //         url: '/pages/gongxuOut/table',
                //         id: 10,
                //     }, {
                //         img: '../../static/icon/icon11.png',
                //         text: '工序委外发出单',
                //         url: '/pages/weiwaigxIn/table',
                //         id: 11,
                //     }, {
                //         img: '../../static/icon/icon12.png',
                //         text: '工序委外接收单',
                //         url: '/pages/weiwaigxOut/table',
                //         id: 12,
                //         // }, {
                //         //     img: '../../static/icon/icon13.png',
                //         //     text: '设备管理',
                //         //     url: '/pages/shebeiguanli/table',
                //         //     id: 13,
                //     }, {
                //         img: '../../static/icon/icon14.png',
                //         text: '报工平台',
                //         url: '/pages/baogong/table',
                //         id: 14,
                //     }, {
                //         img: '../../static/icon/icon15.png',
                //         text: '异常反馈单',
                //         url: '/pages/yichang/table',
                //         id: 15,
                //     }, {
                //         img: '../../static/icon/icon16.png',
                //         text: '异常反馈处理单',
                //         url: '/pages/yichang/list',
                //         id: 16,
                //     }, {
                //         img: '../../static/icon/icon17.png',
                //         text: '采购入库',
                //         url: '/pages/caigouruku/table',
                //         id: 17,
                //     }, {
                //         img: '../../static/icon/icon18.png',
                //         text: '采购退料',
                //         url: '/pages/caigoutuiliao/table',
                //         id: 18,
                //     }, {
                //         img: '../../static/icon/icon19.png',
                //         text: '销售出库',
                //         url: '/pages/xiaoshouchuku/table',
                //         id: 19,
                //     }, {
                //         img: '../../static/icon/icon20.png',
                //         text: '销售退货',
                //         url: '/pages/xiaoshoutuihuo/table',
                //         id: 20,
                //     }, {
                //         img: '../../static/icon/icon21.png',
                //         text: '收料通知单',
                //         url: '/pages/shouliaotongzhi/table',
                //         id: 21,
                //     },{
                //         img: '../../static/icon/icon30.png',
                //         text: '生产领料校验',
                //         url: '/pages/shengchanlingliao/table',
                //         id: 30,
                //     },{
                //         img: '../../static/icon/icon31.png',
                //         text: '生产入库校验',
                //         url: '/pages/shengchanruku/table',
                //         id: 31,
                //     },{
                //         img: '../../static/icon/icon32.png',
                //         text: '生产调拨校验',
                //         url: '/pages/shengchandiaobo/table',
                //         id: 32,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '标签打印',
                //         url: '/pages/labelPrinter/index',
                //         id: 22,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '设备运行状态',
                //         url: '/pages/shebeiyunxingzhuangtai/shebeiyunxingzhuangtai',
                //         id: 23,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '模具运行状态',
                //         url: '/pages/mujvzhuangtai/mujvzhuangtai',
                //         id: 24,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '条码拆码',
                //         url: '/pages/tiaomachaima/tiaomachaima',
                //         id: 25,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '其他入库',
                //         url: '/pages/qitaruku/qitaruku',
                //         id: 26,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '其他出库',
                //         url: '/pages/qitachuku/qitachuku',
                //         id: 27,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '来料条码打印',
                //         url: '/pages/tiaomadaying/tiaomadaying',
                //         id: 28,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '上模单',
                //         url: '/pages/MJGL/shangmudan/table',
                //         id: 29,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '采购订单',
                //         url: '/pages/caigoudingdan/caigoudingdan',
                //         id: 30,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '其他出库校验',
                //         url: '/pages/qitachukujiaoyan/qitachukujiaoyan',
                //         id: 31,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '生产补料校验',
                //         url: '/pages/shengchanbuliaojiaoyan/CacheList',
                //         id: 32,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '销售出库校验',
                //         url: '/pages/xiaoshouchukujiaoyan/table',
                //         id: 33,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '委外领料校验',
                //         url: '/pages/weiwailingliaojiaoyan/table',
                //         id: 34,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '采购入库校验',
                //         url: '/pages/caigourukujiaoyan/table',
                //         id: 35,
                //     },
                ],
                // itemData: [{
                //         img: '../../static/icon/icon1.png',
                //         text: '设备档案',
                //         url: '/pages/shebeidangan/table',
                //         id: 1
                //     }, {
                //         img: '../../static/icon/icon8.png',
                //         text: '设备履历',
                //         url: '/pages/shebeilvli/table',
                //         id: 0,
                //     }, {
                //         img: '../../static/icon/icon2.png',
                //         text: '设备保养计划单',
                //         url: '/pages/baoyangjihua/table',
                //         id: 2
                //     }, {
                //         img: '../../static/icon/icon3.png',
                //         text: '设备保养记录单',
                //         url: '/pages/baoyangjilu/table',
                //         id: 3
                //     }, {
                //         img: '../../static/icon/icon4.png',
                //         text: '设备点检计划单',
                //         url: '',
                //         id: 4
                //     }, {
                //         img: '../../static/icon/icon5.png',
                //         text: '设备点检记录单',
                //         url: '',
                //         id: 5,
                //     }, {
                //         img: '../../static/icon/icon6.png',
                //         text: '设备故障登记表',
                //         url: '/pages/guzhangdengji/table',
                //         id: 6
                //     }, {
                //         img: '../../static/icon/icon7.png',
                //         text: '设备维修记录单',
                //         url: '/pages/shebeiweixiu/table',
                //         id: 7,
                //         // },{
                //         //  img:'../../static/icon/icon8.png',
                //         //  text:'设备履历',
                //         //  url:'/pages/shebeilvli/table',
                //         //  id:8,
                //     }, {
                //         img: '../../static/icon/icon9.png',
                //         text: '工序进站接收单',
                //         url: '/pages/gongxuIn/table',
                //         id: 9,
                //     }, {
                //         img: '../../static/icon/icon10.png',
                //         text: '工序出站汇报单',
                //         url: '/pages/gongxuOut/table',
                //         id: 10,
                //     }, {
                //         img: '../../static/icon/icon11.png',
                //         text: '工序委外发出单',
                //         url: '/pages/weiwaigxIn/table',
                //         id: 11,
                //     }, {
                //         img: '../../static/icon/icon12.png',
                //         text: '工序委外接收单',
                //         url: '/pages/weiwaigxOut/table',
                //         id: 12,
                //         // }, {
                //         //     img: '../../static/icon/icon13.png',
                //         //     text: '设备管理',
                //         //     url: '/pages/shebeiguanli/table',
                //         //     id: 13,
                //     }, {
                //         img: '../../static/icon/icon14.png',
                //         text: '报工平台',
                //         url: '/pages/baogong/table',
                //         id: 14,
                //     }, {
                //         img: '../../static/icon/icon15.png',
                //         text: '异常反馈单',
                //         url: '/pages/yichang/table',
                //         id: 15,
                //     }, {
                //         img: '../../static/icon/icon16.png',
                //         text: '异常反馈处理单',
                //         url: '/pages/yichang/list',
                //         id: 16,
                //     }, {
                //         img: '../../static/icon/icon17.png',
                //         text: '采购入库',
                //         url: '/pages/caigouruku/table',
                //         id: 17,
                //     }, {
                //         img: '../../static/icon/icon18.png',
                //         text: '采购退料',
                //         url: '/pages/caigoutuiliao/table',
                //         id: 18,
                //     }, {
                //         img: '../../static/icon/icon19.png',
                //         text: '销售出库',
                //         url: '/pages/xiaoshouchuku/table',
                //         id: 19,
                //     }, {
                //         img: '../../static/icon/icon20.png',
                //         text: '销售退货',
                //         url: '/pages/xiaoshoutuihuo/table',
                //         id: 20,
                //     }, {
                //         img: '../../static/icon/icon21.png',
                //         text: '收料通知单',
                //         url: '/pages/shouliaotongzhi/table',
                //         id: 21,
                //     },{
                //         img: '../../static/icon/icon30.png',
                //         text: '生产领料校验',
                //         url: '/pages/shengchanlingliao/table',
                //         id: 30,
                //     },{
                //         img: '../../static/icon/icon31.png',
                //         text: '生产入库校验',
                //         url: '/pages/shengchanruku/table',
                //         id: 31,
                //     },{
                //         img: '../../static/icon/icon32.png',
                //         text: '生产调拨校验',
                //         url: '/pages/shengchandiaobo/table',
                //         id: 32,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '标签打印',
                //         url: '/pages/labelPrinter/index',
                //         id: 22,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '设备运行状态',
                //         url: '/pages/shebeiyunxingzhuangtai/shebeiyunxingzhuangtai',
                //         id: 23,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '模具运行状态',
                //         url: '/pages/mujvzhuangtai/mujvzhuangtai',
                //         id: 24,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '条码拆码',
                //         url: '/pages/tiaomachaima/tiaomachaima',
                //         id: 25,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '其他入库',
                //         url: '/pages/qitaruku/qitaruku',
                //         id: 26,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '其他出库',
                //         url: '/pages/qitachuku/qitachuku',
                //         id: 27,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '来料条码打印',
                //         url: '/pages/tiaomadaying/tiaomadaying',
                //         id: 28,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '上模单',
                //         url: '/pages/MJGL/shangmudan/table',
                //         id: 29,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '采购订单',
                //         url: '/pages/caigoudingdan/caigoudingdan',
                //         id: 30,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '其他出库校验',
                //         url: '/pages/qitachukujiaoyan/qitachukujiaoyan',
                //         id: 31,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '生产补料校验',
                //         url: '/pages/shengchanbuliaojiaoyan/CacheList',
                //         id: 32,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '销售出库校验',
                //         url: '/pages/xiaoshouchukujiaoyan/table',
                //         id: 33,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '委外领料校验',
                //         url: '/pages/weiwailingliaojiaoyan/table',
                //         id: 34,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '采购入库校验',
                //         url: '/pages/caigourukujiaoyan/table',
                //         id: 35,
                //     },
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '委外补料校验',
                //         url: '/pages/weiwaibuliaojiaoyan/table',
                //         id: 37,
                //     },
                //     {
                //         img: '../../static/icon/icon17.png',
                //         text: '生产领料',
                //         url: '/pages/shengchanlingliaoshengdan/table',
                //         id: 38,
                //     },
                // ]
            }
        },
        onLoad() {
            this.getHiddenItem()
        },
        methods: {
            checkCardShow(item) {
                if (item.HMaker && item.HMaker != getUserInfo()['Czymc'] && item.hidden == true) {
                    return false
                }
                return true
            },
            async getHiddenItem() {
                // let itemCache = uni.getStorageSync('HIndexItemData') || ''
                // console.log('itemCache: ',itemCache);
                // if(itemCache !== '') {
                //     this.itemData = itemCache
                // }
                //     {
                //         img: '../../static/icon/icon16.png',
                //         text: '委外补料校验',
                //         url: '/pages/weiwaibuliaojiaoyan/table',
                //         id: 37,
                //     },
                //     {
                //         img: '../../static/icon/icon17.png',
                //         text: '生产领料',
                //         url: '/pages/shengchanlingliaoshengdan/table',
                //         id: 38,
                //     },
                // ]
            }
        },
        onLoad() {
            this.getHiddenItem()
        },
        methods: {
            checkCardShow(item) {
                if (item.HMaker && item.HMaker != getUserInfo()['Czymc'] && item.hidden == true) {
                    return false
                }
                return true
            },
            async getHiddenItem() {
                // let itemCache = uni.getStorageSync('HIndexItemData') || ''
                // console.log('itemCache: ',itemCache);
                // if(itemCache !== '') {
                //     this.itemData = itemCache
                // }
                let data = await getMenuList({
                    menuName: this.menuListName
                })
                Array.from(data).forEach(e => {
                    this.itemData[e["HIndex"]].hidden = !CommonUtils.stringToBoolean(e["HShowMode"])
                    this.itemData[e["HIndex"]].HMaker = e["HMaker"]
                })
            },
            switchHidden(index) {
                this.updateCount++;
                this.itemData[index].hidden = !this.itemData[index].hidden
            },
            switchIconsModeHandler() {
                this.canEdit = !this.canEdit
                if (this.canEdit == false && this.updateCount > 0) {
                    this.$nextTick(() => {
                        // uni.setStorageSync("HIndexItemData", this.itemData)
                        setMenuList({
                            menuName: this.menuListName,
                            payload: this.itemData
                        })
                let data = await getMenuList({
                    menuName: this.menuListName
                })
                Array.from(data).forEach(e => {
                    this.itemData[e["HIndex"]].hidden = !CommonUtils.stringToBoolean(e["HShowMode"])
                    this.itemData[e["HIndex"]].HMaker = e["HMaker"]
                })
            },
            switchHidden(index) {
                this.updateCount++;
                this.itemData[index].hidden = !this.itemData[index].hidden
            },
            switchIconsModeHandler() {
                this.canEdit = !this.canEdit
                if (this.canEdit == false && this.updateCount > 0) {
                    this.$nextTick(() => {
                        // uni.setStorageSync("HIndexItemData", this.itemData)
                        setMenuList({
                            menuName: this.menuListName,
                            payload: this.itemData
                        })
                        this.updateCount = 0
                    })
                }
                this.$forceUpdate()
            },
            toUrl(item) {
                if (item.url) {
                    uni.navigateTo({
                        url: item.url
                    })
                } else {
                    uni.showToast({
                        title: '功能开发中。。。',
                        icon: 'none'
                    })
                }
            }
        }
    }
                        this.updateCount = 0
                    })
                }
                this.$forceUpdate()
            },
            toUrl(item) {
                if (item.url) {
                    uni.navigateTo({
                        url: item.url
                    })
                } else {
                    uni.showToast({
                        title: '功能开发中。。。',
                        icon: 'none'
                    })
                }
            }
        }
    }
</script>
<style lang="scss" scoped>
    .header {
        width: 750rpx;
        background: linear-gradient(0deg, #71AFFC 0%, #3A78FF 100%);
        font-size: 47rpx;
        font-weight: bold;
        color: #FFFFFF;
        text-align: center;
        padding: 9vh 0 6vh 0;
        position: relative;
    }
    .header {
        width: 750rpx;
        background: linear-gradient(0deg, #71AFFC 0%, #3A78FF 100%);
        font-size: 47rpx;
        font-weight: bold;
        color: #FFFFFF;
        text-align: center;
        padding: 9vh 0 6vh 0;
        position: relative;
    }
    .switch-button {
        position: absolute;
        right: 10rpx;
        bottom: 0;
    }
    .switch-button {
        position: absolute;
        right: 10rpx;
        bottom: 0;
    }
    .mains {
        width: 720rpx;
        margin: 0 auto;
        display: flex;
        flex-wrap: wrap;
        margin-top: 3vh;
        padding-bottom: 5vh;
    .mains {
        width: 720rpx;
        margin: 0 auto;
        display: flex;
        flex-wrap: wrap;
        margin-top: 3vh;
        padding-bottom: 5vh;
        .box {
            width: 25%;
            margin-top: 2.5vh;
            text-align: center;
        .box {
            width: 25%;
            margin-top: 2.5vh;
            text-align: center;
            image {
                width: 18vw;
                height: 18vw;
            }
            image {
                width: 18vw;
                height: 18vw;
            }
            .texts {
                width: 120rpx;
                margin: 0 auto;
                font-size: 29rpx;
                font-weight: normal;
                color: #333333;
                margin-top: .2vh;
            }
        }
            .texts {
                width: 120rpx;
                margin: 0 auto;
                font-size: 29rpx;
                font-weight: normal;
                color: #333333;
                margin-top: .2vh;
            }
        }
        .edit {
            position: relative;
        }
        .edit {
            position: relative;
        }
        .edit-mark {
            position: absolute;
            top: 0;
            right: 0;
        }
        .edit-mark {
            position: absolute;
            top: 0;
            right: 0;
        }
        view[enable-hidden] {
            opacity: .4 !important;
        }
        view[enable-hidden] {
            opacity: .4 !important;
        }
        view[hidden] {
            display: none;
        }
    }
        view[hidden] {
            display: none;
        }
    }
</style>
pages/index/login.vue
@@ -87,6 +87,8 @@
                    "余姚兴达起动器": 'http://121.37.133.104/API/',
                     //"llj": 'http://localhost:8082/LuBaoAPI/',
                    "苏州卫智科技": 'http://221.224.60.42:8082/API_WW/',
                    "杭州凯贝奈特": 'http://192.168.50.253:8080/API/',
                    "杭州凯贝奈特外网": 'http://erp.hzcabinet.cn:9090/API/',
                    "翁涛涛本地测试": 'http://localhost:81/API/',
                    "陈镐哲本地测试": 'http://localhost:81/API/',
                    "张瑞广本地测试": 'http://localhost:8082/API/',
pages/index/tab2.vue
@@ -395,6 +395,13 @@
                        "url": "/pages/MJGL/qijudiaobodan/table",
                        "id": 47,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon8.png",
                        "text": "装箱单暂存列表",
                        "url": "/pages/zhuangxiangdan/table",
                        "id": 48,
                        "hidden": false
                    }
                ]
            }
pages/zhuangxiangdan/form.vue
New file
@@ -0,0 +1,1059 @@
<template>
    <view class="form">
        <view class="form-base-info">
            <view class="form-item">
                <view class="title">箱条码</view>
                <!-- 按照源单物料样式添加disabled类和禁用属性 -->
                <view class="right" :class="disableBarCodePack ? 'disabled' : ''">
                    <input type="text" :focus="HBarCodePackFocus" v-model="HBarCode_Pack"
                        @confirm="GetMeesageByBarCode_Pack(HBarCode_Pack)" :disabled="disableBarCodePack" />
                </view>
                <view class="right-icon">
                    <uni-icons class="right-icon" :class="disableBarCodePack ? 'disabled':''" type="scan"
                        style="background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;" size="20"
                        @click="toScanCode" :disabled="disableBarCodePack"></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 class="form-item">
                <view class="title">已扫数量</view>
                <view class="right disabled">
                    <input type="text" disabled :value="hform.HQtySum" />
                </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">
            <view class="bill-info">
                <view class="form-item">
                    <view class="title">源单类型:</view>
                    <view class="right" v-show="showHMainSourceBillType">
                        <picker :range="arrayHMainSourceBillType" v-model="HMainSourceBillTypeIndex"
                            @change="HMainSourceBillTypeChange">
                            <input name="HMainSourceBillType" disabled :value="HMainSourceBillType"
                                placeholder="请选择源单类型" />
                            <view class="picker-overlay"></view>
                        </picker>
                    </view>
                    <view class="righton" v-show="!showHMainSourceBillType">
                        <input name="HMainSourceBillType" disabled :value="HMainSourceBillType" placeholder="请选择源单类型" />
                    </view>
                </view>
            </view>
            <view class="bill-info">
                <view class="form-item">
                    <view class="title">源单单号:</view>
                    <view class="right" v-show="showHSourceBillNo">
                        <input :focus="HSourcebillNoFocus" type="text" @confirm="onHSourceBillNoConfirmHandler"
                            name="HSourceBillNo" v-model="hform.HSourceBillNo" placeholder="请输入源单单号" />
                    </view>
                    <view class="icon-wrapper" v-show="showHSourceBillNo" :disabled="hform.HMainSourceBillType === -1">
                        <uni-icons type="search" size="20" @click="showBillList"></uni-icons>
                    </view>
                    <view class="icon-wrapper" v-show="showHSourceBillNo">
                        <uni-icons type="right" size="20" @click="onHSourceBillNoConfirmHandler"></uni-icons>
                    </view>
                    <view class="righton" v-show="!showHSourceBillNo">
                        <input name="HSourceBillNo" disabled v-model="hform.HSourceBillNo" placeholder="请输入源单单号" />
                    </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.HMaterName" />
                    </view>
                </view>
            </view>
            <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 v-if="tabs == 1">
            <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 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>
        <!-- 弹窗组件 -->
        <BillListPopupVue ref="billList" :HBillType="HBillType" :HSourceBillType="hform.HMainSourceBillType || 3710"
            :HStockOrgID="hform.HStockOrgID"></BillListPopupVue>
    </view>
</template>
<script>
    import dayjs from 'dayjs'
    import {
        getUserInfo
    } from "../../utils/auth";
    import {
        CommonUtils
    } from "@/utils/common.js"
    import {
        MpaasScan
    } from "@/utils/mpaasScan.js"
    import BillListPopupVue from '../../components/BillListPopup/BillListPopup.vue';
    export default {
        data() {
            return {
                // ==================== 布局计算相关 ====================
                // 计算列表高度
                bottomBtnTop: 0,
                listTableTop: 0,
                // ==================== 界面状态控制 ====================
                EnableSubmit: true, // 是否允许提交
                disableBarCodePack: true, // 箱条码禁用状态
                disableBarCode: true, // 产品码禁用状态
                HBarCodePackFocus: false, // 箱条码输入框聚焦状态
                HBarCodeFocus: false, // 产品码输入框聚焦状态
                tabs: 0, // 当前选项卡(0:单据信息,1:装箱信息)
                // ==================== 业务数据 ====================
                HBarCode_Pack: '', // 箱条码
                HBarCode: '', // 产品码
                HBillType: '3783', // 单据类型
                HBillSubType: '1', // 子类型(1装箱、2组托)
                OperationType: 1, // 操作类型(1新增、2从缓存列表中返回)
                HMaterNumber_Pack: "", // 托条码对应物料代码
                HBarCode_Pack_Temp: "", // 从缓存列表中返回箱条码
                BarCodeType: 1, // 条码类型(1:装箱,2:组托)
                HSourcebillNoFocus: false, // 源单单号输入框聚焦状态 - 新增这个属性
                showHMainSourceBillType: true,
                showHSourceBillNo: true,
                HMainSourceBillTypeIndex: 0,
                HMainSourceBillType: '生产订单',
                arrayHMainSourceBillType: ['生产订单', '手工录入'],
                arrayHMainSourceBillValue: [3710, -1],
                // ==================== 列表数据 ====================
                listOption: [], // 列表选项
                listData: [], // 表格数据
                selectedRows: [], // 表格选中的数据
                columns: [ // 表格列配置
                    {
                        type: 'selection',
                        fixed: true,
                        width: 50
                    },
                    {
                        name: 'index',
                        label: '序号',
                        width: 60,
                        hidden: true
                    },
                    {
                        name: '条码编号',
                        label: '条码编号',
                        width: 100
                    },
                    {
                        name: '数量',
                        label: '数量',
                        width: 100
                    },
                    {
                        name: '物料代码',
                        label: '物料代码',
                        width: 100
                    },
                    {
                        name: '物料名称',
                        label: '物料名称',
                        width: 100
                    },
                    {
                        name: '条码个数',
                        label: '条码个数',
                        width: 100
                    }
                ],
                // ==================== 主表单数据 ====================
                hform: {
                    HDate: dayjs(new Date()).format('YYYY-MM-DD'), // 单据日期
                    HMaker: getUserInfo()['Czymc'], // 制单人
                    HBillNo: '', // 单据号
                    HInterID: '', // 单据ID
                    HStockOrgName: uni.getStorageSync("Organization"), // 组织名称
                    HStockOrgID: uni.getStorageSync("OrganizationID"), // 组织ID
                    HMainSourceBillType: 3710, //源单类型
                    HMaterName: '', //源单物料
                    HMaterID: '', //源单物料id
                    HQtySum: '', //外箱码数量
                    totalQty: 0, // 总数
                },
                // ==================== 系统配置 ====================
                HModName: "Sc_PackUnionBill_Packing_PDA", // 模块名称
                ModRightName: "CE_PackUnionBill_Packing", // 模块权限参数
                titleData: [] // 不需要显示的字段
            }
        },
        components: {
            BillListPopupVue,
        },
        // ==================== 计算属性 ====================
        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
                }
            },
            // 刷新产品码输入框焦点
            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(this.HBarCode_Pack)
                })
            },
            // 根据箱条码获取信息
            GetMeesageByBarCode_Pack(HBarCode_Pack) {
                CommonUtils.doRequest2({
                    url: '/WEBSController/Get_PackBarCode_PackUnionBill_New_Json_Cus',
                    data: {
                        HInterID: this.hform.HInterID || 0,
                        HBillNo: this.hform.HBillNo,
                        HBillType: this.HBillType,
                        HBillSubType: this.HBillSubType,
                        HBarCode_Pack: HBarCode_Pack,
                        HSourceBillNo: this.hform.HSourceBillNo,
                    },
                    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.hform.HMaterName = data[0].HMaterName
                            // 设置总数,当前扫描数量通过DisBillEntryList更新
                            const totalQty = data[0].HBarcodeQtys || 0
                            this.hform.HQtySum = `0/${totalQty}`
                            //处理成功后聚焦到产品码输入框
                            this.HBarCodeFocusRefresh()
                            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
                    this.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.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_Pack": this.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.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
                                }))
                            }
                            // 新增:根据返回的条码列表数量更新已扫数量
                            if (this.hform.HQtySum && this.hform.HQtySum.includes('/')) {
                                const total = this.hform.HQtySum.split('/')[1] // 获取总数
                                const currentScanned = data.length // 当前已扫描数量
                                this.hform.HQtySum = `${currentScanned}/${total}`
                                // 新增:检查是否达到总数,如果是则提示保存
                                if (currentScanned >= total) {
                                    uni.showModal({
                                        title: '提示',
                                        content: '已扫数量已达到上限,是否立即保存?',
                                        confirmText: '保存',
                                        cancelText: '取消',
                                        success: ({
                                            confirm
                                        }) => {
                                            if (confirm) {
                                                // 用户点击保存,调用保存方法
                                                this.cmdSubmit()
                                            } else {
                                                // 用户点击取消,不做任何操作
                                                uni.showToast({
                                                    icon: 'none',
                                                    title: '您可以选择手动保存'
                                                })
                                            }
                                        }
                                    })
                                }
                            } else {
                                // 如果没有数据,重置已扫数量
                                if (this.hform.HQtySum && this.hform.HQtySum.includes('/')) {
                                    const total = this.hform.HQtySum.split('/')[1] // 获取总数
                                    this.hform.HQtySum = `0/${total}`
                                }
                            }
                        } else {
                            // 如果没有数据,重置已扫数量
                            if (this.hform.HQtySum && this.hform.HQtySum.includes('/')) {
                                const total = this.hform.HQtySum.split('/')[1] // 获取总数
                                this.hform.HQtySum = `0/${total}`
                            }
                        }
                    }
                })
            },
            // 表格选择处理
            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();
            },
            // -----------------设置源单信息----------------------------------------------------
            async setSourceBillInfo(data) {
                this.hform.HMaterName = data[0].物料名称
                this.hform.HMaterID = data[0].HMaterID
                this.hform.HSourceBillNo = data[0].单据号
                this.hform.HMainSourceBillType = data[0].HSourceBillType
                // 更新源单类型显示
                const index = this.arrayHMainSourceBillValue.findIndex(e => e == data[0].HSourceBillType)
                if (index !== -1) {
                    this.HMainSourceBillType = this.arrayHMainSourceBillType[index]
                    this.HMainSourceBillTypeIndex = index
                    this.showHMainSourceBillType = false
                }
                if (data.hMulSourceFlagField == 0) {
                    this.showHSourceBillNo = false
                }
            },
            // 源单类型变更
            HMainSourceBillTypeChange(e) {
                this.HMainSourceBillTypeIndex = e.detail.value
                this.HMainSourceBillType = this.arrayHMainSourceBillType[this.HMainSourceBillTypeIndex]
                this.hform.HMainSourceBillType = this.arrayHMainSourceBillValue[this.HMainSourceBillTypeIndex]
            },
            // 源单单号确认
            async onHSourceBillNoConfirmHandler() {
                if (this.hform.HMainSourceBillType == -1) {
                    this.playSound(1)
                    return
                }
                // 获取源单状态
                await this.getSourceBarCodeControl(this.hform.HSourceBillNo)
            },
            // 获取源单状态
            async getSourceBarCodeControl(HSourceBillNo) {
                try {
                    let res = await CommonUtils.doRequest2Sync({
                        url: '/WEBSController/GetSourceBillList_Control',
                        data: {
                            HBillType: this.HBillType,
                            HSourceBillType: this.hform.HMainSourceBillType,
                            HStockOrgID: this.hform.HStockOrgID,
                            HSourceBillNo: HSourceBillNo,
                            HMater: '',
                            HCustom: ''
                        }
                    })
                    if (res.data.count == 1) {
                        // 获取源单数据
                        await this.getSourceBarCodeData(this.hform.HSourceBillNo)
                    } else {
                        this.playSound(0)
                        uni.showToast({
                            title: res.data.Message,
                            icon: 'none'
                        })
                        this.refreshHSourceBillState()
                    }
                } catch (error) {
                    this.playSound(0)
                    uni.showToast({
                        title: '获取源单数据失败',
                        icon: 'none'
                    })
                    this.refreshHSourceBillState()
                }
            },
            // 获取源单数据
            async getSourceBarCodeData(HSourceBillNo) {
                try {
                    let res = await CommonUtils.doRequest2Sync({
                        url: '/WEBSController/GetSourceBillList_Json',
                        data: {
                            HBillType: this.HBillType,
                            HSourceBillType: this.hform.HMainSourceBillType,
                            HStockOrgID: this.hform.HStockOrgID,
                            HSourceBillNo: HSourceBillNo,
                            HMater: '',
                            HCustom: ''
                        }
                    })
                    if (res.data.count == 1) {
                        this.playSound(1)
                        await this.setSourceBillInfo(res.data.data)
                        // 源单数据返回成功后,解除禁用并聚焦到箱条码
                        this.disableBarCodePack = false
                        this.disableBarCode = false
                        this.HBarCodePackFocusRefresh()
                    } else {
                        this.playSound(0)
                        uni.showToast({
                            title: res.data.Message,
                            icon: 'none'
                        })
                        this.refreshHSourceBillState()
                    }
                } catch (error) {
                    this.playSound(0)
                    uni.showToast({
                        title: '获取源单数据失败',
                        icon: 'none'
                    })
                    this.refreshHSourceBillState()
                }
            },
            // 刷新源单输入状态
            async refreshHSourceBillState() {
                this.HSourcebillNoFocus = false
                await this.$nextTick(() => {
                    this.hform.HSourceBillNo = ""
                    this.HSourcebillNoFocus = true
                })
            },
            // 显示源单列表
            showBillList() {
                this.$refs.billList.showPopup()
            },
            //--------------------------------------------------------------------------------------
            // 获取最大单据号
            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: '/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) {
                            this.Sc_ICMOBillWorkQtyStatus_Save()
                            uni.showModal({
                                title: '温馨提示',
                                content: Message,
                                confirmText: "新增",
                                cancelText: '关闭',
                                success: ({
                                    confirm,
                                    cancel
                                }) => {
                                    if (confirm) {
                                        uni.redirectTo({
                                            url: "/pages/zhuangxiangdan/form"
                                        })
                                    }
                                    if (cancel) {
                                        uni.navigateBack()
                                    }
                                }
                            })
                        } else {
                            uni.showToast({
                                icon: 'none',
                                title: Message
                            })
                        }
                    }
                })
            },
            //自动生产产量汇报单
            Sc_ICMOBillWorkQtyStatus_Save() {
                CommonUtils.doRequest2({
                    url: "/WEBSController/Sc_ICMOBillWorkQtyStatus_Tmp_Save",
                    data: {
                        "HInterID": this.hform.HInterID
                    },
                    resFunction: (d) => {
                        let {
                            count,
                            data,
                            Message
                        } = d.data
                        if (count == 1) {
                        } else {
                            uni.showModal({
                                title: "温馨提示",
                                showCancel: false,
                                content: 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_Pack = e.HBarCode_Pack_Temp || ""
            this.hform.HSourceBillNo = e.HSourceBillNo || ""
            // 根据操作类型初始化数据
            if (this.OperationType == 1) {
                this.getMaxNo() // 新增模式:获取新单据号
                // 初始化时聚焦到源单单号
                this.HSourcebillNoFocus = true
            } else if (this.OperationType == 2) {
                this.disableBarCodePack = false
                this.disableBarCode = false
                this.GetMeesageByBarCode_Pack(this.HBarCode_Pack) // 缓存模式:加载已有数据
                this.DisBillEntryList()
                this.tabs = 0
            }
            // 默认聚焦到箱条码输入框
            //this.HBarCodePackFocusRefresh()
            uni.$on('BillSelectComplete', (e) => {
                console.log("接收到的源单: ", e.HBillNo)
                this.getSourceBarCodeData(e.HBillNo)
                this.$refs.billList.exit()
            })
        },
        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>
pages/zhuangxiangdan/table.vue
New file
@@ -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.物料代码">
                        <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>
                <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>