llj
2026-01-27 bbae990ed1f4574fa954753faeae159052d03fba
pages/xiaoshouchukujiaoyan/SellOutCheckBill.vue
@@ -20,26 +20,26 @@
            <view class="form-item">
                <view class="title">仓库:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
                    <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 class="right" v-show="true">
                    <uni-combox :candidates="arrayHStockPlaceNameComputed" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"
                        @confirm="HStockPlaceNameScan"></uni-combox>
                </view>
                <view class="righton" v-show="!showHStockPlaceName">
                    <input v-model="hform.HStockPlaceName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                </view>
                <view class="righton" v-show="false"><input v-model="hform.HStockPlaceName" placeholder="不可操作"
                        :disabled="!showHStockPlaceName" /></view>
            </view>
            <view class="tabs">
                <!-- <view :class="tabs == 0 ? 'on':''" @tap="tabs = 0">选择源单</view> -->
                <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 +78,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 +114,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 +170,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 +185,7 @@
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import FIFOListComponentVue from "@/components/FIFOListModule/FIFOListComponent.vue"
    import {
        getUserInfo
    } from "@/utils/auth.js";
@@ -190,6 +193,9 @@
        CommonUtils
    } from "@/utils/common.js"
    export default {
        components: {
            FIFOListComponentVue
        },
        data() {
            return {
                userInfo: getUserInfo(),
@@ -243,6 +249,17 @@
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                },
                HFIFOList: [], // 先进先出列表缓存
            }
        },
        computed: {
            arrayHStockPlaceNameComputed: {
                get() {
                    // 动态计算对应仓库的仓位
                    return this.HStockPlaceNameList
                        .filter(e => e['所属仓库'] == this.hform.HWHName)
                        .map(e => e['仓位名称'])
                }
            }
        },
@@ -260,6 +277,73 @@
            this.getHBaseList()
        },
        methods: {
            // 获取仓位
            async getStockPlaceRemote(HSPGroupID) {
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_StockPlace/list',
                        data: {
                            sWhere: ` and HSPGroupID = ${HSPGroupID}`,
                            user: uni.getStorageSync('HUserName'),
                            Organization: uni.getStorageSync('Organization')
                        },
                    })
                    if (res.data.count == 1) {
                        this.HStockPlaceNameList = res.data.data
                        for (var i = 0; i < res.data.data.length; i++) {
                            this.arrayHStockPlaceName[i] = res.data.data[i].仓位名称
                        }
                    } else {
                        uni.showToast({
                            title: '仓位数据请求失败',
                            icon: 'none'
                        })
                    }
                } catch (err) {
                    uni.showToast({
                        title: '仓位数据请求失败',
                        icon: 'none'
                    })
                }
            },
            async HStockPlaceNameScan(e) {
                // 扫描仓位码
                console.log('Code: ', e);
                // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
                this.hform.HStockPlaceID = 0
                this.hform.HStockPlaceName = ''
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_StockPlace/list',
                        data: {
                            sWhere: ` and 条码编号 = '${e}'`,
                            user: uni.getStorageSync('HUserName'),
                            Organization: uni.getStorageSync('Organization')
                        },
                    })
                    if (res.data.count == 1) {
                        this.hform.HStockPlaceID = res.data.data[0].HMainID
                        this.hform.HStockPlaceName = res.data.data[0].仓位名称
                        this.hform.HWHID = res.data.data[0].HWHID
                        this.hform.HWHName = res.data.data[0].所属仓库
                    } else {
                        uni.showToast({
                            title: '仓位数据请求失败',
                            icon: 'none'
                        })
                    }
                } catch (err) {
                    uni.showToast({
                        title: '仓位数据请求失败',
                        icon: 'none'
                    })
                }
            },
            async refreshHBillState() {
                this.HBillNoFocus = false
                await this.$nextTick(() => {
@@ -425,15 +509,14 @@
                // var name = e.split("(")
                for (var i = 0; i < this.HWHNameList.length; i++) {
                    if (this.HWHNameList[i].仓库名称 == e) {
                        this.hform.HWHName = this.HWHNameList[i].仓库名称
                        this.hform.HWHID = this.HWHNameList[i].HItemID
                        if (this.HWHNameList[i]['启用仓位'] == 'Y') {
                            this.showHStockPlaceName = true
                        } else {
                            this.hform.HStockPlaceName = ''
                            this.showHStockPlaceName = false
                        }
                       this.hform.HWHName = this.HWHNameList[i].仓库名称
                       this.hform.HWHID = this.HWHNameList[i].HItemID
                       this.HStockPlaceNameChange(null)
                       this.showHStockPlaceName = false
                       if (this.HWHNameList[i]['启用仓位'] == 'Y') {
                           this.showHStockPlaceName = true
                           this.getStockPlaceRemote(this.HWHNameList[i]["HSPGroupID"])
                       }
                    }
                }
            },
@@ -523,6 +606,8 @@
                            HMaker: this.hform.HMaker,
                            HWhID: sHWHID,
                            HSPID: sHSPID,
                            HSCWHID: 0,
                            HSCSPID: 0,
                            HQty: sHQty,
                            // HRedBlueFlag: this.hform.HRedBlueFlag,
                            // SourceFlag: HSourceFlag,
@@ -588,6 +673,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 +774,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 = ''