wtt
2026-01-15 aaa40084e725685366a63f88b9d5b98eaaf3c34e
pages/shengchandiaobo/MoveStockBill.vue
@@ -21,17 +21,16 @@
                <view class="title">调出仓库:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HSCWHName"
                        @input="HSCWHNameChange"></uni-combox>
                        @input="HSCWHNameChange" @confirm="HWHNameOutScan"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">调出仓位:</view>
                <view class="right" v-show="showHSCStockPlaceName">
                    <uni-combox :candidates="arrayHStockPlaceName" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HSCSPName" @input="HSCStockPlaceNameChange"></uni-combox>
                </view>
                <view class="righton" v-show="!showHSCStockPlaceName">
                    <input v-model="hform.HSCSPName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                <!-- TODO: 四维尔需要扫仓位码 带出仓库仓位信息,根据公司判断是否需要禁用仓位 -->
                <view class="right">
                    <uni-combox :candidates="arrayHStockPlaceNameComputed" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HOutStockPlaceName" @input="HOutStockPlaceNameChange"
                        @confirm="HStockPlaceOutNameScan"></uni-combox>
                </view>
            </view>
            <view class="tabs">
@@ -45,19 +44,21 @@
                <view class="form-item">
                    <view class="title">调入仓库:</view>
                    <view class="right">
                        <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
                            @input="HWHNameChange"></uni-combox>
                        <uni-combox :candidates="arrayHWHInName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
                            @input="HWHInNameChange" @confirm="HWHNameInScan"></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>
                    <!-- TODO: 添加公司判断,四维尔清除仓位扫码限制,其他照旧 -->
                    <view class="right">
                        <uni-combox :candidates="arrayHStockPlaceInNameComputed" placeholder="请输入(或扫描)仓位"
                            v-model="hform.HStockPlaceName" @input="HStockPlaceInNameChange"
                            @confirm="HStockPlaceNameInScan"></uni-combox>
                    </view>
                    <view class="righton" v-show="!showHStockPlaceName">
                        <input v-model="hform.HStockPlaceName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                    </view>
                    <!--                    <view class="righton" v-show="!HIsStockMgr">
                        <input v-model="hform.HStockPlaceName" :disabled="!HIsStockMgr" placeholder="不可操作" />
                    </view> -->
                </view>
                <view class="form-item" v-show="showHBillNo">
                    <view class="title">单据号:</view>
@@ -270,6 +271,10 @@
                HWHNameList: [],
                arrayHStockPlaceName: [], //仓位
                HStockPlaceNameList: [],
                arrayHWHInName: [], // 调入仓库
                HWHInNameList: [],
                arrayHStockPlaceInName: [], //调入仓位
                HStockPlaceInNameList: [],
                Materlist: [],
                hform: {
@@ -315,6 +320,32 @@
                HFIFOList: [], // 先进先出列表缓存 
            }
        },
        computed: {
            HIsStockInner: {
                get: function() {
                    if (this.hform.HStockStyle == '组织内调拨') {
                        return true
                    }
                    return false
                }
            },
            arrayHStockPlaceNameComputed: {
                get() {
                    // 动态计算对应调出仓库的仓位
                    return this.HStockPlaceNameList
                        .filter(e => e['所属仓库'] == this.hform.HSCWHName)
                        .map(e => e['仓位名称'])
                }
            },
            arrayHStockPlaceInNameComputed: {
                get() {
                    // 动态计算对应调入仓库的仓位
                    return this.HStockPlaceInNameList
                        .filter(e => e['所属仓库'] == this.hform.HWHName)
                        .map(e => e['仓位名称'])
                }
            }
        },
        onLoad(e) {
            console.log(e, this.userInfo)
            this.OperationType = e.OperationType
@@ -326,8 +357,212 @@
            }
            this.getHBaseList()
            this.getHWarehouseInList()
        },
        methods: {
            // 调入仓位修改
            HStockPlaceInNameChange(e) {
                for (var i = 0; i < this.HStockPlaceInNameList.length; i++) {
                    if (this.HStockPlaceInNameList[i].仓位名称 == e) {
                        this.hform.HStockPlaceName = this.HStockPlaceInNameList[i].仓位名称
                        this.hform.HStockPlaceID = this.HStockPlaceInNameList[i].HMainID
                    }
                }
            },
            // 调入仓库修改
            HWHInNameChange(e) {
                console.log('e: ', e);
                this.hform.HStockPlaceName = ''
                this.hform.HStockPlaceID = 0
                for (var i = 0; i < this.HWHInNameList.length; i++) {
                    if (this.HWHInNameList[i].仓库名称 == e) {
                        this.hform.HWHName = this.HWHInNameList[i].仓库名称
                        this.hform.HWHID = this.HWHInNameList[i].HItemID
                        this.HStockPlaceNameChange(null)
                        if (this.HWHInNameList[i]['启用仓位'] == 'Y') {
                            this.HIsStockMgr = true
                            this.getStockPlaceRemote(this.HWHInNameList[i]["HSPGroupID"], 1) // 修改调入仓库
                        } else {
                            // this.hform.HStockPlaceName = ''
                            this.HIsStockMgr = false
                        }
                    }
                }
            },
            // 调入仓库资料
            getHWarehouseInList(Organizaiton) {
                Organizaiton = Organizaiton || uni.getStorageSync("Organization")
                CommonUtils.doRequest2({
                    url: '/Gy_Warehouse/list',
                    data: {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: Organizaiton
                    },
                    resFunction: (res) => {
                        console.log('调入仓库 res: ', res.data.data);
                        if (res.data.count == 1) {
                            this.HWHInNameList = []
                            this.arrayHWHInName = []
                            this.HWHInNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHWHInName[i] = res.data.data[i].仓库名称
                            }
                        } else {
                            uni.showToast({
                                title: '仓库数据请求失败',
                                icon: 'none'
                            })
                        }
                    }
                });
            },
            // 获取仓位
            async getStockPlaceRemote(HSPGroupID, Mode) {
                // Mode=1 -> 调入仓位数据获取; Mode=2 -> 调出仓位数据获取
                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) {
                        if (Mode == 1) {
                            this.HStockPlaceInNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHStockPlaceInName[i] = res.data.data[i].仓位名称
                            }
                            return
                        }
                        if (Mode == 2) {
                            this.HStockPlaceNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHStockPlaceName[i] = res.data.data[i].仓位名称
                            }
                            return
                        }
                    } else {
                        uni.showToast({
                            title: '仓位数据请求失败',
                            icon: 'none'
                        })
                    }
                } catch (err) {
                    uni.showToast({
                        title: '仓位数据请求失败',
                        icon: 'none'
                    })
                }
            },
            async HWHNameOutScan(e) {
                return
                // 扫描仓库码
                console.log('仓库码: ', e);
                let index = this.HWHNameList.findIndex(elem => elem['条码编号'] == e)
                if (index == -1) {
                    uni.showToast({
                        icon: 'none',
                        title: '扫描仓库条码对应的仓库不存在...'
                    })
                } else {
                    this.HWHNameChange(this.HWHNameList[index]['仓库名称'])
                }
            },
            async HStockPlaceOutNameScan(e) {
                // 扫描仓位码
                console.log('仓位码: ', e);
                // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
                this.hform.HOutStockPlaceID = 0
                this.hform.HOutStockPlaceName = ''
                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.HOutStockPlaceID = res.data.data[0].HMainID
                        this.hform.HOutStockPlaceName = res.data.data[0].仓位名称
                        this.hform.HSCWHID = res.data.data[0].HWHID
                        this.hform.HSCWHName = res.data.data[0].所属仓库
                    } else {
                        uni.showToast({
                            title: '仓位数据请求失败',
                            icon: 'none'
                        })
                    }
                } catch (err) {
                    uni.showToast({
                        title: '仓位数据请求失败',
                        icon: 'none'
                    })
                }
            },
            async HWHNameInScan(e) {
                return;
                // 扫描仓库码
                console.log('仓库码: ', e);
                let index = this.HWHInNameList.findIndex(elem => elem['条码编号'] == e)
                if (index == -1) {
                    uni.showToast({
                        icon: 'none',
                        title: '扫描仓库条码对应的仓库不存在...'
                    })
                } else {
                    this.HWHInNameChange(this.HWHInNameList[index]['仓库名称'])
                }
            },
            async HStockPlaceNameInScan(e) {
                // 扫描仓位码
                console.log('仓位码: ', 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'
                    })
                }
            },
            cmdDelete(item){
                uni.showModal({
                    title: '提示',
@@ -461,15 +696,34 @@
                        console.log('调出仓库: ',this.HWHNameList[i]);
                        this.hform.HSCWHName = this.HWHNameList[i].仓库名称
                        this.hform.HSCWHID = this.HWHNameList[i].HItemID
                        this.HOutStockPlaceNameChange(null)
                        if (this.HWHNameList[i]['启用仓位'] == 'Y') {
                            this.showHSCStockPlaceName = true
                            this.HSCIsStockMgr = true
                            this.getStockPlaceRemote(this.HWHNameList[i]["HSPGroupID"], 2) // 修改调出仓库
                            // 查询仓位数据
                        } else {
                            this.hform.HSCSPName = ''
                            this.showHSCStockPlaceName = false
                            this.HSCIsStockMgr = false
                        }
                    }
                }
            },
            HOutStockPlaceNameChange(e) {
                let index = this.HStockPlaceNameList.findIndex(elem => elem['仓位名称'] == e)
                this.hform.HOutStockPlaceName = ''
                this.hform.HOutStockPlaceID = 0
                if (index != -1) {
                    this.hform.HOutStockPlaceName = this.HStockPlaceNameList[index].仓位名称
                    this.hform.HOutStockPlaceID = this.HStockPlaceNameList[index].HMainID
                }
                // for (var i = 0; i < this.HStockPlaceInNameList.length; i++) {
                //     if (this.HStockPlaceInNameList[i].仓位名称 == e) {
                //         this.hform.HOutStockPlaceName = this.HStockPlaceInNameList[i].仓位名称
                //         this.hform.HOutStockPlaceID = this.HStockPlaceInNameList[i].HMainID
                //     }
                // }
            },
            //选择调入仓位
            HStockPlaceNameChange(e) {
                for (var i = 0; i < this.HStockPlaceNameList.length; i++) {