单据校验模块 调整扫条码接口传参 出库校验单 调拨校验单 添加 先入先出列表展示
15个文件已修改
1个文件已添加
700 ■■■■■ 已修改文件
components/FIFOListModule/FIFOListComponent.vue 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/caigourukujiaoyan/POStockInCheckBill.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/login.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/qitachukujiaoyan/qitachukudanjiaoyan.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/qitarukujiaoyan/Kf_OtherInBillCheck.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchanbuliaojiaoyan/MateReplenishOutCheckBill.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchandiaobo/MoveStockBill.vue 158 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchanlingliao/PPickingCheckBill.vue 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchanruku/ProductInCheckBill.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/weiwailingliaojiaoyan/EntrustOutCheckBill.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/xiaoshouchukujiaoyan/SellOutCheckBill.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
utils/i18n.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/FIFOListModule/FIFOListComponent.vue
New file
@@ -0,0 +1,154 @@
<template>
    <view class="content">
        <scroll-view scroll-y="true" :style="{height: containerHeight}">
            <view class="options-wrapper" v-show="FIFOList.length != 0">
                <uni-card v-for="(FIFOItem,index) in FIFOList" :title="FIFOItem['物料名称']"
                    :extra="`数量: ${FIFOItem['数量']}`" @tap="" style="margin: 10px;">
                    <view class="item-parent">
                        <view class="item">
                            <text>物料代码: </text>
                            {{ FIFOItem['物料代码'] }}
                        </view>
                        <view class="item">
                            <text>仓库: </text>
                            {{ FIFOItem['仓库'] }}
                        </view>
                        <view class="item">
                            <text >仓位: </text>
                            {{ FIFOItem['仓位'] }}
                        </view>
                        <view class="item">
                            <text>规格型号: </text>
                            {{ FIFOItem['规格型号'] }}
                        </view>
                        <view class="item">
                            <text>下架数量: </text>
                            {{ FIFOItem['下架数量'] }}
                        </view>
                    </view>
                </uni-card>
            </view>
            <view class="over" v-show="FIFOList.length == 0">暂无数据</view>
        </scroll-view>
    </view>
</template>
<script>
    export default {
        // 先入先出列表显示模块
        name: "FIFOListComponent",
        props: {
            FIFOList: {
                require: true,
                type: [Array]
            },
            Height: {
                require: false,
                type: [Number, String],
                default: '100%'
            },
            Unit: {
                require: false,
                type: [String],
                default: 'px'
            },
        },
        data() {
            return {
                containerHeight: 0,
            };
        },
        mounted() {
            // 根据递入的高度数据 设定滚动容器高度
            if (typeof this.Height == 'string') {
                this.containerHeight = this.Height
            } else {
                this.containerHeight = `${this.Height}${this.Unit}`
            }
        },
        methods: {
        }
    }
</script>
<style lang="scss">
    .content {
        box-sizing: border-box;
        border-radius: 15rpx 15rpx 0 0;
        padding: 20rpx 20rpx 40rpx 20rpx;
        background-color: #fff;
        display: flex;
        flex-direction: column;
        gap: 10rpx;
        .search-condition {
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 20rpx;
            .title {
                width: 5rem;
                text-align: right;
            }
            .right {
                flex: 1;
                border-radius: 22rpx;
                border: 1px solid #acacac;
                height: auto;
                input {
                    width: 100%;
                    padding: 8rpx 20rpx;
                    font-size: 24rpx;
                }
            }
        }
        .buttons {
            display: flex;
            flex-direction: row;
            gap: 20rpx;
            justify-content: flex-end;
            >button {
                display: inline-flex;
                width: 4rem;
            }
        }
        .options-wrapper {
            width: 100%;
            .item-parent {
                width: 100%;
                display: flex;
                flex-wrap: wrap;
                justify-content: space-between;
                line-height: 120%;
                .item {
                    // width: 50%;
                    font-size: 26rpx;
                    margin-bottom: 12rpx;
                    color: #555;
                    margin-right: 20rpx;
                    text {
                        color: #999;
                        font-size: 26rpx;
                    }
                }
            }
        }
        .uni-card--is-active {
            background-color: rgba(0, 122, 255, 0.2);
        }
    }
</style>
main.js
@@ -10,7 +10,14 @@
let i18nConfig = {
  locale: uni.getLocale(),// 获取已设置的语言
  messages
  messages,
  silentTranslationWarn: true,
  missing: function(locale, key, vm, values){
    // 页面中含有语言包中不存在的字段,需同步到数据库中
      console.log("[i18n]: 页面中key为: ", key ,"的字段在翻译文件中不存在,同步到数据库...")
    // 为降低同步的难度,APP中 对翻译模块的key 不采用数组的写法,统一使用 模块名.字段名的写法
  }
}
manifest.json
@@ -2,8 +2,8 @@
    "name" : "智云LMES",
    "appid" : "__UNI__B002F49",
    "description" : "",
    "versionName" : "2.0.39",
    "versionCode" : 239,
    "versionName" : "2.0.40",
    "versionCode" : 240,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast.vue
@@ -285,6 +285,7 @@
        <view class="bottom-btn" id="bottom-btn">
            <button :class="EnableSubmit?'btn-a':'btn-c'" :disabled="!EnableSubmit" size="mini"
                @tap="cmdSubmit">提交</button>
            <button class="btn-a"  size="mini" @tap="cmdAdd">新增</button>
            <view style="flex: 1;"></view>
            <!-- <button class="btn-d" size="mini" @tap="cmdDelete">删除</button> -->
            <button class="btn-c" size="mini" @tap="cmdExit">退出</button>
@@ -392,7 +393,7 @@
        },
        methods: {
            handleUploadCallback(res) { // 文件上传回调
                console.log('file: ',res);
                console.log('file: ', res);
                let fileInfo = res.data[0]
                this.attachmentInfo.push({
                    fileName: fileInfo.name,
@@ -402,7 +403,7 @@
                })
            },
            delFile(index) {
                console.log('attachmentInfo: ',this.attachmentInfo[index]);
                console.log('attachmentInfo: ', this.attachmentInfo[index]);
                uni.showModal({
                    title: '提示',
                    content: '确认要删除 " ' + this.attachmentInfo[index].fileName + ' " 删除后将不可恢复!',
@@ -588,6 +589,11 @@
                    this.getCode(code)
                })
            },
            cmdAdd(){
                uni.redirectTo({
                    url: "/pages/ZLGL/lailiaojianyan_fast/Kf_QCStockInCheckBill_Fast"
                })
            },
            async cmdSubmit() { // 后端在单次上传文件提交后会删除本地文件,一次只能提交一个数据
                try {
                    let res = await CommonUtils.doRequest2Sync({
pages/caigourukujiaoyan/POStockInCheckBill.vue
@@ -169,7 +169,7 @@
                    </view>
                </view>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <button class="btn-c" size="mini" @tap="goBack">退出</button>
@@ -209,6 +209,7 @@
                HStockPlaceNameList: [],
                Materlist: [],
                hform: {
                    HBillType: 1201,
                    HBillerID: uni.getStorageSync('HBillerID'),
@@ -625,6 +626,8 @@
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
pages/index/index.vue
@@ -222,7 +222,7 @@
                    {
                        img: '../../static/icon/icon16.png',
                        text: '其他入库校验',
                        url: '/pages/qitarukujiaoyan/Kf_OtherInBillCheckList',
                        url: '/pages/qitarukujiaoyan/Kf_OtherInBillCheck',
                        id: 27,
                        hidden: false,
                    },
pages/index/login.vue
@@ -81,6 +81,7 @@
    import {
        CommonUtils
    } from "../../utils/common";
import { getLanguagePackJson } from "../../utils/i18n";
    export default {
        components: {
            hFormAlert
@@ -103,7 +104,8 @@
                    "杭州凯贝奈特": 'http://192.168.50.253:8080/API/',
                    "杭州凯贝奈特外网": 'http://erp.hzcabinet.cn:9090/API/',
                    "翁涛涛本地测试": 'http://localhost:81/API/',
                    "陈镐哲本地测试": 'http://192.168.0.123:81/API/',
                    "陈镐哲本地测试": 'http://192.168.0.121:81/API/',
                    "陈镐哲本地测试2": 'http://192.168.0.102:81/API/',
                    "张瑞广本地测试": 'http://localhost:8082/API/',
                    "余思杰本地测试": 'http://localhost:8082/LuBaoAPI/',
                    // 小卫内外网
@@ -112,6 +114,8 @@
                    // 四维尔内外网
                    "宁波四维尔-内网": "http://192.168.0.236:9010/API/",
                    "宁波四维尔-外网": "http://220.189.218.155:9010/API/",
                    // 锦隆
                    "锦隆-智能家居": "http://192.168.1.11/API/"
                },
                serverUrlName: '浙江智云迈思',
@@ -125,6 +129,9 @@
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API/',
                serverUrlCache: '',
            }
        },
        onLoad() {
            this.ApplyLanguagePack(this.$i18n.locale)
        },
        onShow() {
            var logindata = uni.getStorageSync('loginData') || ''
@@ -142,16 +149,24 @@
            this.getDataBases()
        },
        methods: {
            async ApplyLanguagePack(lang, forceUpdate = false) {
                // 读取语言包并加载
                let languagePack = await getLanguagePackJson(lang)
                // this.$i18n.setLocaleMessage(lang, JSON.parse(languagePack))
                this.$i18n.locale = lang
            },
            onLanguageChangeHandler(e) {
                //TODO: 动态获取后端的语言包文件,并将语言包应用到全局
                console.log('e: ', e.detail.value);
                if (e.detail.value == 0) {
                    this.Language = '中文'
                    this.$i18n.locale = 'zh-Hans'
                    this.ApplyLanguagePack("zh-Hans")
                    // this.$i18n.locale = 'zh-Hans'
                }
                if (e.detail.value == 1) {
                    this.Language = 'English'
                    this.$i18n.locale = 'en'
                    this.ApplyLanguagePack("en")
                    // this.$i18n.locale = 'en'
                }
            },
            async InitOrgination() {
pages/qitachukujiaoyan/qitachukudanjiaoyan.vue
@@ -40,6 +40,7 @@
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">表头信息</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">物料信息</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
                <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">下架信息</view>
            </view>
            <view v-if="tabs == 1">
@@ -83,7 +84,7 @@
            </view>
            <view v-if="tabs == 2">
                <view class="list" v-for="(item,index) in Materlist" :key="index">
                    <uni-card :title="item.物料名称" :extra="'数量:'+item.数量" style="margin: 10px;" @tap="delMater(item)">
                    <uni-card :title="item.物料名称" :extra="'数量:'+item.数量" style="margin: 10px;" @tap="cmdDelete(item)">
                        <view class="card-detail">
                            <view class="detail">
                                <text>单据号:</text>{{item.单据号}}
@@ -169,6 +170,10 @@
                </view>
            </view>
            <view v-if="tabs == 4">
                <FIFOListComponentVue :FIFOList="HFIFOList"></FIFOListComponentVue>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <view style="flex: 1;"></view>
@@ -180,6 +185,7 @@
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import FIFOListComponentVue from "@/components/FIFOListModule/FIFOListComponent.vue"
    import {
        getUserInfo
    } from "@/utils/auth.js";
@@ -187,6 +193,9 @@
        CommonUtils
    } from "@/utils/common.js"
    export default {
        components: {
            FIFOListComponentVue
        },
        data() {
            return {
                userInfo: getUserInfo(),
@@ -239,7 +248,8 @@
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                }
                },
                HFIFOList: [], // 先进先出列表缓存
            }
        },
        onLoad(e) {
@@ -256,6 +266,37 @@
            this.getHBaseList()
        },
        methods: {
            cmdDelete(item) {
                uni.showModal({
                    title: '提示',
                    content: '确认要删除 " ' + item.物料名称 + ' " 所有扫码记录?删除后将不可恢复!',
                    success: (res) => {
                        if (res.confirm) {
                            CommonUtils.doRequest2({
                                url: "/WEBSController/set_DeleteBarCodeByEntryID_BillCheck_New_Json",
                                data: {
                                    HInterID: this.hform.HInterID,
                                    HBillType: this.hform.HBillType,
                                    HSourceInterID: item.HSourceInterID,
                                    HSourceEntryID: item.HSourceEntryID,
                                    HSourceBarCodeCtl: this.hform.HSourceBarCodeCtl
                                },
                                resFunction: (res) => {
                                    if (res.data.count == 1) {
                                        this.DisBillEntryList()
                                    } else {
                                        uni.showToast({
                                            title: res.data.Message,
                                            icon: 'none'
                                        })
                                    }
                                }
                            })
                        }
                    }
                })
            },
            async refreshHBillState() {
                this.HBillNoFocus = false
                await this.$nextTick(() => {
@@ -607,6 +648,8 @@
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
@@ -676,6 +719,37 @@
                            } else { //物料条码
                                this.tabs = 2
                                console.log('data', data)
                                let exit = false
                                let controlState = data.hBackField
                                if (controlState == 1) {
                                    // 启用强控制 禁止 不在先进先出列表中的 物料扫码
                                    CommonUtils.showTips({
                                        title: "温馨提示",
                                        message: "物料不在先进先出列表中,禁止出库..."
                                    })
                                    exit = true
                                }
                                if (controlState == 2) {
                                    // 不启用强控制 不在先进先出列表中的物料 通过弹窗询问是否需要 出库
                                    uni.showModal({
                                        title: "温馨提示",
                                        content: "物料不在先进先出列表中,请确认是否要出库...",
                                        success: (res) => {
                                            if (res.confirm) {
                                                exit = false
                                            } else if (res.cancel) {
                                                // 取消出库
                                                exit = true
                                            }
                                        }
                                    })
                                }
                                if(exit) {
                                    return
                                }
                                if (!this.hform.HSourceBillNo) {
                                    this.hform.HSupName = data.hSupNameField
                                    this.hform.HSupID = data.hSupIDField
@@ -713,7 +787,7 @@
                            this.refreshBarCodeState()
                        } else {
                            CommonUtils.playSound(0);
                            this.refreshHBillState()
                            this.refreshBarCodeState()
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
@@ -721,7 +795,7 @@
                        }
                    } catch (e) {
                        CommonUtils.playSound(0)
                        this.refreshHBillState()
                        this.refreshBarCodeState()
                        uni.showToast({
                            title: '接口请求失败: ' + e,
                            icon: 'none'
@@ -875,6 +949,7 @@
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            this.HFIFOList = data.FIFOlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HMaterName_B = ''
                                this.hform.HMaterModel_B = ''
pages/qitarukujiaoyan/Kf_OtherInBillCheck.vue
@@ -592,6 +592,8 @@
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
@@ -698,7 +700,7 @@
                            this.refreshHBarCodeFocus()
                        } else {
                            CommonUtils.playSound(0);
                            this.refreshHBillNoFocus()
                            this.refreshHBarCodeFocus()
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
@@ -706,7 +708,7 @@
                        }
                    } catch (e) {
                        CommonUtils.playSound(0)
                        this.refreshHBillNoFocus()
                        this.refreshHBarCodeFocus()
                        uni.showToast({
                            title: '接口请求失败: ' + e,
                            icon: 'none'
pages/shengchanbuliaojiaoyan/MateReplenishOutCheckBill.vue
@@ -40,6 +40,7 @@
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">表头信息</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">物料信息</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
                <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">下架信息</view>
            </view>
            <view v-if="tabs == 1">
@@ -169,6 +170,9 @@
                </view>
            </view>
            <view v-if="tabs == 4">
                <FIFOListComponentVue :FIFOList="HFIFOList"></FIFOListComponentVue>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <view style="flex: 1;"></view>
@@ -186,7 +190,11 @@
    import {
        CommonUtils
    } from "@/utils/common.js"
    import FIFOListComponentVue from "@/components/FIFOListModule/FIFOListComponent.vue"
    export default {
        components: {
            FIFOListComponentVue
        },
        data() {
            return {
                userInfo: getUserInfo(),
@@ -239,7 +247,8 @@
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                }
                },
                HFIFOList: [], // 先进先出列表缓存
            }
        },
        onLoad(e) {
@@ -609,6 +618,8 @@
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
@@ -678,6 +689,35 @@
                            } else { //物料条码
                                this.tabs = 2
                                console.log('data', data)
                                let exit = false
                                let controlState = data.hBackField
                                if (controlState == 1) {
                                    // 启用强控制 禁止 不在先进先出列表中的 物料扫码
                                    CommonUtils.showTips({
                                        title: "温馨提示",
                                        message: "物料不在先进先出列表中,禁止出库..."
                                    })
                                    exit = true
                                }
                                if (controlState == 2) {
                                    // 不启用强控制 不在先进先出列表中的物料 通过弹窗询问是否需要 出库
                                    uni.showModal({
                                        title: "温馨提示",
                                        content: "物料不在先进先出列表中,请确认是否要出库...",
                                        success: (res) => {
                                            if (res.confirm) {
                                                exit = false
                                            } else if (res.cancel) {
                                                // 取消出库
                                                exit = true
                                            }
                                        }
                                    })
                                }
                                if(exit) {
                                    return
                                }
                                if (!this.hform.HSourceBillNo) {
                                    this.hform.HSupName = data.hSupNameField
                                    this.hform.HSupID = data.hSupIDField
@@ -715,7 +755,7 @@
                            this.hform.HQty = ''
                        } else {
                            CommonUtils.playSound(0);
                            this.refreshHBillState()
                            this.refreshBarCodeState()
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
@@ -723,7 +763,7 @@
                        }
                    } catch (e) {
                        CommonUtils.playSound(0)
                        this.refreshHBillState()
                        this.refreshBarCodeState()
                        uni.showToast({
                            title: '接口请求失败: ' + e,
                            icon: 'none'
@@ -876,6 +916,7 @@
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            this.HFIFOList = data.FIFOlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HMaterName_B = ''
                                this.hform.HMaterModel_B = ''
pages/shengchandiaobo/MoveStockBill.vue
@@ -18,29 +18,47 @@
                </view>
            </view>
            <view class="form-item">
                <view class="title">仓库:</view>
                <view class="title">调出仓库:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
                        @input="HWHNameChange"></uni-combox>
                    <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HSCWHName"
                        @input="HSCWHNameChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">仓位:</view>
                <view class="right" v-show="showHStockPlaceName">
                <view class="title">调出仓位:</view>
                <view class="right" v-show="showHSCStockPlaceName">
                    <uni-combox :candidates="arrayHStockPlaceName" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"></uni-combox>
                        v-model="hform.HSCSPName" @input="HSCStockPlaceNameChange"></uni-combox>
                </view>
                <view class="righton" v-show="!showHStockPlaceName">
                    <input v-model="hform.HStockPlaceName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                <view class="righton" v-show="!showHSCStockPlaceName">
                    <input v-model="hform.HSCSPName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                </view>
            </view>
            <view class="tabs">
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">表头信息</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">物料信息</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
                <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">下架信息</view>
            </view>
            <view v-if="tabs == 1">
                <view class="form-item">
                    <view class="title">调入仓库:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
                            @input="HWHNameChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">调入仓位:</view>
                    <view class="right" v-show="showHStockPlaceName">
                        <uni-combox :candidates="arrayHStockPlaceName" placeholder="请输入(或扫描)仓位"
                            v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"></uni-combox>
                    </view>
                    <view class="righton" v-show="!showHStockPlaceName">
                        <input v-model="hform.HStockPlaceName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                    </view>
                </view>
                <view class="form-item" v-show="showHBillNo">
                    <view class="title">单据号:</view>
                    <view class="right" style="width: 380rpx;">
@@ -86,7 +104,7 @@
                </label>
            </view>
            <view v-if="tabs == 2">
                <view class="list" v-for="(item,index) in Materlist" :key="index">
                <view class="list" v-for="(item,index) in Materlist" :key="index" @tap.stop="cmdDelete(item)">
                    <uni-card :title="item.物料名称" :extra="'数量:'+item.数量" style="margin: 10px;">
                        <view class="card-detail">
                            <view class="detail">
@@ -203,6 +221,10 @@
                </view>
            </view>
            <view v-if="tabs == 4">
                <FIFOListComponentVue :FIFOList="HFIFOList"></FIFOListComponentVue>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <view style="flex: 1;"></view>
@@ -214,6 +236,7 @@
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import FIFOListComponentVue from "@/components/FIFOListModule/FIFOListComponent.vue"
    import {
        getUserInfo
    } from "@/utils/auth.js";
@@ -221,6 +244,9 @@
        CommonUtils
    } from '../../utils/common';
    export default {
        components: {
             FIFOListComponentVue
        },
        data() {
            return {
                HBillNoFocus: false,
@@ -232,6 +258,7 @@
                OperationType: 1,
                showHStockPlaceName: false,
                showHSCStockPlaceName: false,
                HBillNoFocus: false,
                BarCodeFocus: false,
                showHBillNo: true,
@@ -252,10 +279,14 @@
                    HBarCode: '',
                    HQty: '',
                    HWHName: getUserInfo().HWHName,
                    HWHID: getUserInfo().HWhID,
                    HStockPlaceName: getUserInfo().HSPName,
                    HStockPlaceID: getUserInfo().HSPID,
                    HWHName: "",
                    HWHID: 0,
                    HStockPlaceName: "",
                    HStockPlaceID: 0,
                    HSCWHName: getUserInfo().HWHName,
                    HSCWHID: getUserInfo().HWhID || 0,
                    HSCSPName: getUserInfo().HSPName,
                    HSCSPID: getUserInfo().HSPID || 0,
                    HBillNo: '',
                    HInterID: '',
@@ -280,7 +311,8 @@
                    HSPName_B: '',
                    HSCWHName_B: '',
                    HSCSPName_B: '',
                }
                },
                HFIFOList: [], // 先进先出列表缓存
            }
        },
        onLoad(e) {
@@ -296,6 +328,37 @@
            this.getHBaseList()
        },
        methods: {
            cmdDelete(item){
                uni.showModal({
                    title: '提示',
                    content: '确认要删除 " ' + item.物料名称 + ' " 所有扫码记录?删除后将不可恢复!',
                    success: (res) => {
                        if (res.confirm) {
                            CommonUtils.doRequest2({
                                url: "/WEBSController/set_DeleteBarCodeByEntryID_BillCheck_New_Json",
                                data: {
                                    HInterID: this.hform.HInterID,
                                    HBillType: this.hform.HBillType,
                                    HSourceInterID: item.HSourceInterID,
                                    HSourceEntryID: item.HSourceEntryID,
                                    HSourceBarCodeCtl: this.hform.HSourceBarCodeCtl
                                },
                                resFunction: (res) => {
                                    if (res.data.count == 1) {
                                        this.DisBillEntryList()
                                    } else {
                                        uni.showToast({
                                            title: res.data.Message,
                                            icon: 'none'
                                        })
                                    }
                                }
                            })
                        }
                    }
                })
            },
            async refreshHBillState() {
                this.HBillNoFocus = false
                await this.$nextTick(() => {
@@ -370,9 +433,10 @@
                    },
                });
            },
            //选择仓库
            //选择调入仓库
            HWHNameChange(e) {
                // var name = e.split("(")
                console.log('调入仓库: ',e);
                for (var i = 0; i < this.HWHNameList.length; i++) {
                    if (this.HWHNameList[i].仓库名称 == e) {
                        this.hform.HWHName = this.HWHNameList[i].仓库名称
@@ -387,12 +451,38 @@
                    }
                }
            },
            //选择仓位
            // 选择调出仓库
            HSCWHNameChange(e) {
                // var name = e.split("(")
                console.log('调出仓库: ',e);
                for (var i = 0; i < this.HWHNameList.length; i++) {
                    if (this.HWHNameList[i].仓库名称 == e) {
                        this.hform.HSCWHName = this.HWHNameList[i].仓库名称
                        this.hform.HSCWHID = this.HWHNameList[i].HItemID
                        if (this.HWHNameList[i]['启用仓位'] == 'Y') {
                            this.showHSCStockPlaceName = true
                        } else {
                            this.hform.HStockPlaceName = ''
                            this.showHSCStockPlaceName = false
                        }
                    }
                }
            },
            //选择调入仓位
            HStockPlaceNameChange(e) {
                for (var i = 0; i < this.HStockPlaceNameList.length; i++) {
                    if (this.HStockPlaceNameList[i].仓位名称 == e) {
                        this.hform.HStockPlaceName = this.HStockPlaceNameList[i].仓位名称
                        this.hform.HStockPlaceID = this.HStockPlaceNameList[i].HItemID
                    }
                }
            },
            //选择调出仓位
            HSCStockPlaceNameChange(e) {
                for (var i = 0; i < this.HStockPlaceNameList.length; i++) {
                    if (this.HStockPlaceNameList[i].仓位名称 == e) {
                        this.hform.HSCSPName = this.HStockPlaceNameList[i].仓位名称
                        this.hform.HSCSPID = this.HStockPlaceNameList[i].HItemID
                    }
                }
            },
@@ -562,6 +652,8 @@
                var sHWHID = this.hform.HWHID
                var sHSPID = this.hform.HStockPlaceID
                let sHSCWHID = this.hform.HSCWHID
                let sHSCSPID = this.hform.HSCSPID
                var sHQty = this.hform.HQty
                var sSourceBillNo = this.hform.HSourceBillNo
                var sSourceBillType = this.hform.HMainSourceBillType
@@ -660,6 +752,8 @@
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: sHSCWHID,
                                HSCSPID: sHSCSPID,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
@@ -731,6 +825,37 @@
                            } else { //物料条码
                                this.tabs = 2
                                console.log('data', data)
                                // 是否强控
                                let exit = false
                                let controlState = data.hBackField
                                if (controlState == 1) {
                                    // 启用强控制 禁止 不在先进先出列表中的 物料扫码
                                    CommonUtils.showTips({
                                        title: "温馨提示",
                                        message: "物料不在先进先出列表中,禁止出库..."
                                    })
                                    exit = true
                                }
                                if (controlState == 2) {
                                    // 不启用强控制 不在先进先出列表中的物料 通过弹窗询问是否需要 出库
                                    uni.showModal({
                                        title: "温馨提示",
                                        content: "物料不在先进先出列表中,请确认是否要出库...",
                                        success: (res) => {
                                            if (res.confirm) {
                                                exit = false
                                            } else if (res.cancel) {
                                                // 取消出库
                                                exit = true
                                            }
                                        }
                                    })
                                }
                                if(exit) {
                                    return
                                }
                                if (!this.hform.HSourceBillNo) {
                                    this.hform.HSupName = data.hSupNameField
                                    this.hform.HSupID = data.hSupIDField
@@ -931,6 +1056,7 @@
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            this.HFIFOList = data.FIFOlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HBarCode_B = ''
                                this.hform.HMaterName_B = ''
pages/shengchanlingliao/PPickingCheckBill.vue
@@ -39,6 +39,7 @@
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">表头信息</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">物料信息</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
                <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">下架信息</view>
            </view>
            <view v-if="tabs == 1">
@@ -178,6 +179,10 @@
                    </view>
                </view>
            </view>
            <view v-if="tabs == 4">
                <FIFOListComponentVue :FIFOList="HFIFOList"></FIFOListComponentVue>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
@@ -193,12 +198,14 @@
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import BillListPopupVue from '../../components/BillListPopup/BillListPopup_Check.vue';
    import FIFOListComponentVue from "@/components/FIFOListModule/FIFOListComponent.vue"
    import {
        getUserInfo
    } from "@/utils/auth.js";
    import {
        CommonUtils
    } from '../../utils/common';
    export default {
        data() {
            return {
@@ -256,11 +263,14 @@
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                }
                },
                HFIFOList: [], // 先进先出列表缓存
            }
        },
        components: {
            BillListPopupVue
            BillListPopupVue,
            FIFOListComponentVue
        },
        onUnload() {
            uni.$off('BillSelectComplete')
@@ -360,9 +370,9 @@
                // await this.$nextTick(() => {
                //     this.HBarCodeFocus = true
                // })
                setTimeout(() => {
                  this.HBarCodeFocus = true;
                }, 300);
                setTimeout(() => {
                    this.HBarCodeFocus = true;
                }, 300);
            },
            async refreshHBillNoFocus() {
                this.HBillNoFocus = false
@@ -404,7 +414,7 @@
                    return
                }
                let targetUrl = () => {
                    if (/智云|惠康/.test(this.hform.HStockOrgName)) {
                    if (/惠康/.test(this.hform.HStockOrgName)) {
                        return "/WEBSController/get_BillBarCode_BillCheck_Json_MateOut_HuiKang"
                    }
                    return "/WEBSController/get_BillBarCode_BillCheck_Json"
@@ -711,6 +721,8 @@
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
@@ -782,6 +794,36 @@
                            } else { //物料条码
                                this.tabs = 2
                                console.log('data', data)
                                let exit = false
                                let controlState = data.hBackField
                                if (controlState == 1) {
                                    // 启用强控制 禁止 不在先进先出列表中的 物料扫码
                                    CommonUtils.showTips({
                                        title: "温馨提示",
                                        message: "物料不在先进先出列表中,禁止出库..."
                                    })
                                    exit = true
                                }
                                if (controlState == 2) {
                                    // 不启用强控制 不在先进先出列表中的物料 通过弹窗询问是否需要 出库
                                    uni.showModal({
                                        title: "温馨提示",
                                        content: "物料不在先进先出列表中,请确认是否要出库...",
                                        success: (res) => {
                                            if (res.confirm) {
                                                exit = false
                                            } else if (res.cancel) {
                                                // 取消出库
                                                exit = true
                                            }
                                        }
                                    })
                                }
                                if(exit){
                                    return
                                }
                                if (!this.hform.HSourceBillNo) {
                                    this.hform.HSupName = data.hSupNameField
                                    this.hform.HSupID = data.hSupIDField
@@ -815,13 +857,13 @@
                            this.refreshHBarCodeFocus()
                            //显示表体明细
                            this.DisBillEntryList()
                            this.refreshHBarCodeFocus()
                            this.refreshHBarCodeFocus()
                            //清空数量
                            this.hform.HQty = ''
                        } else {
                            this.refreshHBarCodeFocus()
                            CommonUtils.playSound(0);
                            this.refreshHBarCodeFocus()
                            this.refreshHBarCodeFocus()
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
@@ -983,6 +1025,7 @@
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            this.HFIFOList = data.FIFOlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HBarCode_B = ''
                                this.hform.HMaterName_B = ''
pages/shengchanruku/ProductInCheckBill.vue
@@ -641,6 +641,8 @@
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
pages/weiwailingliaojiaoyan/EntrustOutCheckBill.vue
@@ -40,6 +40,7 @@
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">表头信息</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">物料信息</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
                <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">下架信息</view>
            </view>
            <view v-if="tabs == 1">
@@ -172,6 +173,11 @@
                    </view>
                </view>
            </view>
            <view v-if="tabs == 4">
                <FIFOListComponentVue :FIFOList="HFIFOList"></FIFOListComponentVue>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
@@ -184,6 +190,7 @@
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import FIFOListComponentVue from "@/components/FIFOListModule/FIFOListComponent.vue"
    import {
        getUserInfo
    } from "@/utils/auth.js";
@@ -191,6 +198,9 @@
        CommonUtils
    } from "@/utils/common.js"
    export default {
        components: {
          FIFOListComponentVue
        },
        data() {
            return {
                userInfo: getUserInfo(),
@@ -243,7 +253,8 @@
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                }
                },
                HFIFOList: [], // 先进先出列表缓存
            }
        },
        onLoad(e) {
@@ -524,6 +535,8 @@
                            HMaker: this.hform.HMaker,
                            HWhID: sHWHID,
                            HSPID: sHSPID,
                            HSCWHID: 0,
                            HSCSPID: 0,
                            HQty: sHQty,
                            // HRedBlueFlag: this.hform.HRedBlueFlag,
                            // SourceFlag: HSourceFlag,
@@ -589,6 +602,39 @@
                                    this.tabs = 2
                                } else { //物料条码
                                    this.tabs = 2
                                    let exit = false
                                    let controlState = data.hBackField
                                    if (controlState == 1) {
                                        // 启用强控制 禁止 不在先进先出列表中的 物料扫码
                                        CommonUtils.showTips({
                                            title: "温馨提示",
                                            message: "物料不在先进先出列表中,禁止出库..."
                                        })
                                        exit = true
                                    }
                                    if (controlState == 2) {
                                        // 不启用强控制 不在先进先出列表中的物料 通过弹窗询问是否需要 出库
                                        uni.showModal({
                                            title: "温馨提示",
                                            content: "物料不在先进先出列表中,请确认是否要出库...",
                                            success: (res) => {
                                                if (res.confirm) {
                                                    exit = false
                                                } else if (res.cancel) {
                                                    // 取消出库
                                                    exit = true
                                                }
                                            }
                                        })
                                    }
                                    if(exit){
                                        return
                                    }
                                    if (!this.hform.HSourceBillNo) {
                                        this.hform.HSupName = data.hSupNameField
                                        this.hform.HSupID = data.hSupIDField
@@ -660,6 +706,7 @@
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            this.HFIFOList = data.FIFOlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HMaterName_B = ''
                                this.hform.HMaterModel_B = ''
pages/xiaoshouchukujiaoyan/SellOutCheckBill.vue
@@ -40,6 +40,7 @@
                <view :class="tabs == 1 ? 'on':''" @tap="tabs = 1">表头信息</view>
                <view :class="tabs == 2 ? 'on':''" @tap="tabs = 2">物料信息</view>
                <view :class="tabs == 3 ? 'on':''" @tap="tabs = 3">条码信息</view>
                <view :class="tabs == 4 ? 'on':''" @tap="tabs = 4">下架信息</view>
            </view>
            <view v-if="tabs == 1">
@@ -78,7 +79,7 @@
                    </view>
                </view>
                <label class="checkbox" style="float: right !important;">
                    <checkbox :checked="hform.chkHBarflag" style="transform:scale(0.8)" disabled color="#4f81fc" />条码核对
                    <checkbox :checked="hform.chkHBarflag == 1" style="transform:scale(0.8)" disabled color="#4f81fc" />条码核对
                </label>
            </view>
            <view v-if="tabs == 2">
@@ -114,7 +115,6 @@
                </view>
                <view class="over" v-if="Materlist.length == 0">暂无数据</view>
            </view>
            <view v-if="tabs == 3">
                <view class="form-item">
                    <view class="title">条码:</view>
@@ -171,6 +171,9 @@
                    </view>
                </view>
            </view>
            <view v-if="tabs == 4">
                <FIFOListComponentVue :FIFOList="HFIFOList"></FIFOListComponentVue>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
@@ -183,6 +186,7 @@
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import FIFOListComponentVue from "@/components/FIFOListModule/FIFOListComponent.vue"
    import {
        getUserInfo
    } from "@/utils/auth.js";
@@ -190,6 +194,9 @@
        CommonUtils
    } from "@/utils/common.js"
    export default {
        components: {
            FIFOListComponentVue
        },
        data() {
            return {
                userInfo: getUserInfo(),
@@ -243,7 +250,8 @@
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                }
                },
                HFIFOList: [], // 先进先出列表缓存
            }
        },
        onLoad(e) {
@@ -523,6 +531,8 @@
                            HMaker: this.hform.HMaker,
                            HWhID: sHWHID,
                            HSPID: sHSPID,
                            HSCWHID: 0,
                            HSCSPID: 0,
                            HQty: sHQty,
                            // HRedBlueFlag: this.hform.HRedBlueFlag,
                            // SourceFlag: HSourceFlag,
@@ -588,6 +598,36 @@
                                    this.tabs = 2
                                } else { //物料条码
                                    this.tabs = 2
                                    let exit = false
                                    let controlState = data.hBackField
                                    if (controlState == 1) {
                                        // 启用强控制 禁止 不在先进先出列表中的 物料扫码
                                        CommonUtils.showTips({
                                            title: "温馨提示",
                                            message: "物料不在先进先出列表中,禁止出库..."
                                        })
                                        exit = true
                                    }
                                    if (controlState == 2) {
                                        // 不启用强控制 不在先进先出列表中的物料 通过弹窗询问是否需要 出库
                                        uni.showModal({
                                            title: "温馨提示",
                                            content: "物料不在先进先出列表中,请确认是否要出库...",
                                            success: (res) => {
                                                if (res.confirm) {
                                                    exit = false
                                                } else if (res.cancel) {
                                                    // 取消出库
                                                    exit = true
                                                }
                                            }
                                        })
                                    }
                                    if(exit){
                                        return
                                    }
                                    if (!this.hform.HSourceBillNo) {
                                        this.hform.HSupName = data.hSupNameField
                                        this.hform.HSupID = data.hSupIDField
@@ -659,6 +699,7 @@
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            this.HFIFOList = data.FIFOlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HMaterName_B = ''
                                this.hform.HMaterModel_B = ''
utils/i18n.js
@@ -1,4 +1,46 @@
// 远程获取语言包并加载
import i18n from "@/main";
import { CommonUtils }  from "./common.js"
import {
    CommonUtils
} from "./common.js"
const MissingKeysMap = new Map()
// 远程获取语言包
export async function getLanguagePackJson(language, forceUpdate = false) {
    try {
        const res = await CommonUtils.doRequest2Async({
            url: '/Xt_grdAlignment_WMES/SelectMESLanguage_JSON',
            data: {
                language: language,
                forceUpdate: forceUpdate
            }
        })
        let {data, Message, count} = res.data
        if(count == 1) {
            return data
        }else {
            CommonUtils.showTips({
                title: "温馨提示",
                message: "[i18n]获取语言包失败: " + Message
            })
            return
        }
    }catch(err) {
        CommonUtils.showTips({
            title: "温馨提示",
            message: "[i18n]获取语言包失败: " + err.message
        })
        return
    }
}
export function addMissingKeyToMap(key) {
    MissingKeysMap.set(key, key)
}
// 添加缺失字段到远程数据库
export async function syncMissingKeyToDB(){
    // 清除缺失字段缓存
    MissingKeysMap.clear()
}