chenhaozhe
2025-11-25 6f17e42e2463aee9804f50bfd0d5a8bcb1f7d7c2
pages/index/index.vue
@@ -1,68 +1,68 @@
<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',
@@ -94,135 +94,135 @@
               }, {
                  img: '../../static/icon/icon17.png',
                  text: '采购入库新增',
                  url: '/pages/caigouruku/form?OperationType=1',
                  url: '/pages/caigouruku/POStockInBill?OperationType=1',
                  id: 4,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon20.png',
                  text: '采购退料新增',
                  url: '/pages/caigoutuiliao/form?OperationType=1',
                  url: '/pages/caigoutuiliao/POStockInBackBill?OperationType=1',
                  id: 5,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon32.png',
                  text: '直接调拨新增',
                  url: '/pages/zhijiediaobo/form?OperationType=1',
                  url: '/pages/zhijiediaobo/MoveStockBill?OperationType=1',
                  id: 6,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon30.png',
                  text: '生产领料新增',
                  url: '/pages/shengchanlingliaoshengdan/form?OperationType=1',
                  url: '/pages/shengchanlingliaoshengdan/Kf_MateOutBill?OperationType=1',
                  id: 7,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon31.png',
                  text: '生产补料新增',
                  url: '/pages/shengchanbuliao/form?OperationType=1',
                  url: '/pages/shengchanbuliao/MateReplenishOutBill?OperationType=1',
                  id: 8,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon8.png',
                  text: '生产退料新增',
                  url: `/pages/shengchantuiliao/form`,
                  url: `/pages/shengchantuiliao/MateOutBackBill`,
                  id: 27,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon17.png',
                  text: '生产入库新增',
                  url: '/pages/shengchanrukushengdan/form?OperationType=1',
                  url: '/pages/shengchanrukushengdan/Kf_ProductInBill?OperationType=1',
                  id: 9,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon30.png',
                  text: '委外领料新增',
                  url: '/pages/weiwailingliao/form?OperationType=1',
                  url: '/pages/weiwailingliao/Kf_EntrustOutBill?OperationType=1',
                  id: 10,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon17.png',
                  text: '其他入库新增',
                  url: '/pages/qitaruku_v2/form?OperationType=1',
                  url: '/pages/qitaruku_v2/OtherInBill?OperationType=1',
                  id: 11,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon18.png',
                  text: '其他出库新增',
                  url: '/pages/qitachuku_v2/form?OperationType=1',
                  url: '/pages/qitachuku_v2/OtherOutBill?OperationType=1',
                  id: 12,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon18.png',
                  text: '销售出库新增',
                  url: '/pages/xiaoshouchuku/form?OperationType=1',
                  url: '/pages/xiaoshouchuku/SellOutBill?OperationType=1',
                  id: 13,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon19.png',
                  text: '销售退货新增',
                  url: '/pages/xiaoshoutuihuo/form?OperationType=1',
                  url: '/pages/xiaoshoutuihuo/ICStockBillMain?OperationType=1',
                  id: 14,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon19.png',
                  text: '委外入库新增',
                  url: '/pages/weiwairuku/form?OperationType=1',
                  url: '/pages/weiwairuku/EntrustInBill?OperationType=1',
                  id: 15,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon30.png',
                  text: '生产领料检验',
                  url: '/pages/shengchanlingliao/form?OperationType=1',
                  url: '/pages/shengchanlingliao/PPickingCheckBill?OperationType=1',
                  id: 16,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon31.png',
                  text: '生产补料校验',
                  url: '/pages/shengchanbuliaojiaoyan/form?OperationType=1',
                  url: '/pages/shengchanbuliaojiaoyan/MateReplenishOutCheckBill?OperationType=1',
                  id: 17,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon32.png',
                  text: '生产调拨校验',
                  url: '/pages/shengchandiaobo/form?OperationType=1',
                  url: '/pages/shengchandiaobo/MoveStockBill?OperationType=1',
                  id: 18,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon18.png',
                  text: '其他出库校验',
                  url: '/pages/qitachukujiaoyan/detail?OperationType=1',
                  url: '/pages/qitachukujiaoyan/qitachukudanjiaoyan?OperationType=1',
                  id: 19,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon17.png',
                  text: '生产入库校验',
                  url: '/pages/shengchanruku/form?OperationType=1',
                  url: '/pages/shengchanruku/ProductInCheckBill?OperationType=1',
                  id: 20,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon18.png',
                  text: '销售出库校验',
                  url: '/pages/xiaoshouchukujiaoyan/form?OperationType=1',
                  url: '/pages/xiaoshouchukujiaoyan/SellOutCheckBill?OperationType=1',
                  id: 21,
                  hidden: false,
               }, {
                  img: '../../static/icon/icon30.png',
                  text: '委外领料校验',
                  url: '/pages/weiwailingliaojiaoyan/form?OperationType=1',
                  url: '/pages/weiwailingliaojiaoyan/EntrustOutCheckBill?OperationType=1',
                  id: 22,
                  hidden: false,
               },
               {
                  img: '../../static/icon/icon16.png',
                  text: '采购入库校验',
                  url: '/pages/caigourukujiaoyan/form?OperationType=1',
                  url: '/pages/caigourukujiaoyan/POStockInCheckBill?OperationType=1',
                  id: 23,
                  hidden: false,
               },
               {
                  img: '../../static/icon/icon16.png',
                  text: '其他入库校验',
                  url: '/pages/qitarukujiaoyan/table',
                  url: '/pages/qitarukujiaoyan/Kf_OtherInBillCheckList',
                  id: 27,
                  hidden: false,
               },
@@ -235,14 +235,14 @@
               }, {
                  img: '../../static/icon/icon8.png',
                  text: '组托扫码',
                  url: `/pages/zutuosaoma/form`,
                  url: `/pages/zutuosaoma/PackUnionBill`,
                  id: 25,
                  hidden: false,
               },
               {
                  img: '../../static/icon/icon8.png',
                  text: '拆托扫码',
                  url: `/pages/chaituosaoma/form`,
                  url: `/pages/chaituosaoma/UnPackUnionBill`,
                  id: 26,
                  hidden: false,
               },
@@ -287,23 +287,24 @@
                  id: 32,
                  hidden: false,
               },{
                  img: '../../static/icon/icon8.png',
                  text: '装箱单',
                  url: '/pages/zhuangxiangdan/form',
                  id: 30,
                  id: 33,
                  hidden: false,
               },
               {
                  img: '../../static/icon/icon8.png',
                  text: '拆托扫码(小卫)',
                  url: `/pages/chaituosaoma-xiaowei/UnpackPallet`,
                  id: 31,
                  id: 34,
                  hidden: false,
               },
               {
                  img: '../../static/icon/icon8.png',
                  text: '三码合一',
                  url: `/pages/sanmaheyi/BarCodeCheck`,
                  id: 32,
                  id: 35,
                  hidden: false,
               },
            ],
@@ -518,143 +519,143 @@
            //       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/Kf_EntrustReplenishOutBill_CheckList',
                //       id: 37,
                //    },
                //    {
                //       img: '../../static/icon/icon17.png',
                //       text: '生产领料',
                //       url: '/pages/shengchanlingliaoshengdan/Kf_MateOutBillList',
                //       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>