yusijie
2026-02-25 5ec6af8a9368ad632102f4c8e9dceef6683fca91
生产退料校验,销售退货校验
4个文件已添加
4个文件已修改
3163 ■■■■■ 已修改文件
pages.json 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/tab2.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchantuikuCheck/Kf_ProductInBackCheckBill.vue 1103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchantuikuCheck/Kf_ProductInBackCheckBillList.vue 448 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/shengchantuiliaoCheck/MateOutBackCheckBill.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBill.vue 1103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBillList.vue 448 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json
@@ -1796,8 +1796,31 @@
            "style": {
                "navigationBarTitleText": "生产退料校验缓存列表"
            }
        }
        },
        {
            "path": "pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBill",
            "style": {
                "navigationBarTitleText": "销售退货校验"
            }
        },
        {
            "path": "pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBillList",
            "style": {
                "navigationBarTitleText": "销售退货校验缓存列表"
            }
        },
        {
            "path": "pages/shengchantuikuCheck/Kf_ProductInBackCheckBill",
            "style": {
                "navigationBarTitleText": "生产退库校验"
            }
        },
        {
            "path": "pages/shengchantuikuCheck/Kf_ProductInBackCheckBillList",
            "style": {
                "navigationBarTitleText": "生产退库校验缓存列表"
            }
        }
    ],
pages/index/index.vue
@@ -385,7 +385,21 @@
                        "url": "/pages/Kf_MoveStockStepOutBill_CusBar/Kf_MoveStockStepOutBill_CusBar_APP",
                        "id": 28,
                        "hidden": false
                    }
                    },
                    {
                        img: '../../static/icon/icon17.png',
                        text: '销售退货校验',
                        url: '/pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBill?OperationType=1',
                        id: 38,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon17.png',
                        text: '生产退库校验',
                        url: '/pages/shengchantuikuCheck/Kf_ProductInBackCheckBill?OperationType=1',
                        id: 39,
                        hidden: false,
                    }
                ],
            }
        },
pages/index/tab2.vue
@@ -560,6 +560,20 @@
                        "id": 66,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon17.png",
                        "text": "销售退货校验暂存列表",
                        "url": "/pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBillList",
                        "id": 70,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon17.png",
                        "text": "生产退库校验暂存列表",
                        "url": "/pages/shengchantuikuCheck/Kf_ProductInBackCheckBillList",
                        "id": 70,
                        "hidden": false
                    },
                ]
            }
        },
pages/shengchantuikuCheck/Kf_ProductInBackCheckBill.vue
New file
@@ -0,0 +1,1103 @@
<template>
    <view>
        <view class="form">
            <view class="form-item">
                <view class="title">条码:</view>
                <view class="right">
                    <input class="" :focus="barCodeFocus" v-model="hform.HBarCode" placeholder="请扫描(或输入)条码"
                        @confirm="getCode(hform.HBarCode)" />
                </view>
                <uni-icons type="scan"
                    style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;"
                    size="20" @click="toScanHBarCode()"></uni-icons>
            </view>
            <view class="form-item">
                <view class="title">数量:</view>
                <view class="right">
                    <input v-model="hform.HQty" placeholder="请输入数量" />
                </view>
            </view>
            <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="true">
                    <uni-combox :candidates="arrayHStockPlaceNameComputed" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"
                        @confirm="HStockPlaceNameScan"></uni-combox>
                </view>
                <view class="righton" v-show="false"><input v-model="hform.HStockPlaceName" placeholder="不可操作"
                        :disabled="!showHStockPlaceName" /></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>
            <view v-if="tabs == 1">
                <view class="form-item" v-show="showHBillNo">
                    <view class="title">单据号:</view>
                    <view class="right" style="width: 380rpx;">
                        <input :focus="HBillNoFocus" name="HBillNo" v-model="hform.HBillNo" placeholder="请扫描(或输入)条码"
                            @confirm="GetMeesageByBillNo(hform.HBarCode)" />
                    </view>
                    <uni-icons type="scan"
                        style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;"
                        size="20" @click="toScanCode"></uni-icons>
                </view>
                <view class="form-item" v-show="!showHBillNo">
                    <view class="title">单据号:</view>
                    <view class="righton">
                        <input name="HBillNo" disabled v-model="hform.HBillNo" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单据ID:</view>
                    <view class="righton">
                        <input name="HInterID" disabled v-model="hform.HInterID" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">制单人:</view>
                    <view class="righton">
                        <input name="HMaker" disabled v-model="hform.HMaker" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">组织:</view>
                    <view class="righton">
                        <input name="HStockOrgName" disabled v-model="hform.HStockOrgName" />
                    </view>
                </view>
                <label class="checkbox">
                    <checkbox :checked="hform.chkHBarflag" style="transform:scale(0.8)" disabled color="#4f81fc" />条码核对
                </label>
            </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;">
                        <view class="card-detail">
                            <view class="detail">
                                <text>单据数量:</text>{{item.单据数量}}
                            </view>
                            <view class="detail">
                                <text>物料代码:</text>{{item.物料代码}}
                            </view>
                            <view class="detail" v-if="item.规格型号">
                                <text>规格型号:</text>{{item.规格型号}}
                            </view>
                            <view class="detail">
                                <text>批号:</text>{{item.批号}}
                            </view>
                            <view class="detail" v-if="item.辅助属性">
                                <text>辅助属性:</text>{{item.辅助属性}}
                            </view>
                            <view class="detail">
                                <text>仓库:</text>{{item.仓库}}
                            </view>
                            <view class="detail">
                                <text>仓位:</text>{{item.仓位}}
                            </view>
                            <view class="detail">
                                <text>生产日期:</text>{{item.生产日期}}
                            </view>
                            <view class="detail">
                                <text>有效期至:</text>{{item.有效期至}}
                            </view>
                            <view class="detail">
                                <text>单据号:</text>{{item.单据号}}
                            </view>
                            <view class="detail">
                                <text>条码个数:</text>{{item.条码个数}}
                            </view>
                        </view>
                    </uni-card>
                </view>
                <view class="over" v-if="Materlist.length == 0">暂无数据</view>
            </view>
            <view v-if="tabs == 3">
                <view class="form-item">
                    <view class="title">条码:</view>
                    <view class="righton">
                        <input name="HBarCode_B" disabled v-model="hform.HBarCode_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">物料:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMaterName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">规格:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMaterModel_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">批次:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HBatchNo_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单位:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HUnitName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">数量:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HQty_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">容量:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HTMQty_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">仓库:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HWHName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">仓位:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HSPName_B" />
                    </view>
                </view>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <view style="flex: 1;"></view>
                <button class="btn-a" size="mini" @tap="addNew">新增</button>
                <button class="btn-c" size="mini" @tap="goBack">退出</button>
            </view>
        </view>
    </view>
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import {
        getUserInfo
    } from "@/utils/auth.js";
    import { CommonUtils } from '../../utils/common';
    export default {
        data() {
            return {
                userInfo: getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                HModName: 'Kf_ProductInBackBill_Check_PDA',//已调整
                ModRightName: 'CE_ProductInBackCheck',//已调整
                OperationType: 1,
                barCodeFocus: false,
                showHStockPlaceName: false,
                HBillNoFocus: false,
                showHBillNo: true,
                tabs: 1,
                linterid: '',
                HBillNo: '',
                arrayHWHName: [], //仓库
                HWHNameList: [],
                arrayHStockPlaceName: [], //仓位
                HStockPlaceNameList: [],
                Materlist: [],
                hform: {
                    HBillType: 1245,//已调整
                    HBillerID: uni.getStorageSync('HBillerID'),
                    HRedBlueFlag: false,
                    HBarCode: '',
                    HQty: '',
                    HWHName: getUserInfo().HWHName,
                    HWHID: getUserInfo().HWhID,
                    HStockPlaceName: getUserInfo().HSPName,
                    HStockPlaceID: getUserInfo().HSPID,
                    HBillNo: '',
                    HInterID: '',
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgName: uni.getStorageSync('Organization'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                    HSourceBarCodeCtl: "N", //是否进行源单对应条码核对('Y'为核对)
                    chkHBarflag: false,
                    HBarflag: '',
                    HBarCode_B: '',
                    HMaterName_B: '',
                    HMaterModel_B: '',
                    HBatchNo_B: '',
                    HUnitName_B: '',
                    HQty_B: '',
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                }
            }
        },
        computed: {
            arrayHStockPlaceNameComputed: {
                get() {
                    // 动态计算对应仓库的仓位
                    return this.HStockPlaceNameList
                        .filter(e => e['所属仓库'] == this.hform.HWHName)
                        .map(e => e['仓位名称'])
                }
            }
        },
        onLoad(e) {
            console.log(e, this.userInfo)
            this.OperationType = e.OperationType
            if (e.HBillNo) {
                this.hform.HBillNo = e.HBillNo
                this.GetMeesageByBillNo(e.HBillNo)
            } else {
                this.refreshHBillState()
            }
            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 refreshHBarCodeFocus() {
                this.HBarCodeFocus = false
                await this.$nextTick()
                this.hform.HBarCode = ''
                this.HBarCodeFocus = true
            },
            async refreshHBillNoFocus() {
                this.HBillNoFocus = false
                await this.$nextTick(() => {
                    this.HBillNoFocus = true
                    this.hform.HBillNo = ""
                })
            },
            getHBaseList() {
                uni.request({
                    url: this.serverUrl + '/Gy_Warehouse/list',
                    data: {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    success: (res) => {
                        if (res.data.count == 1) {
                            this.HWHNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHWHName[i] = res.data.data[i].仓库名称
                            }
                        } else {
                            uni.showToast({
                                title: '仓库数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
                uni.request({
                    url: this.serverUrl + '/Gy_StockPlace/list',
                    data: {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    success: (res) => {
                        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'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
            },
            //选择仓库
            HWHNameChange(e) {
                // 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
                        this.HStockPlaceNameChange(null)
                        this.showHStockPlaceName = false
                        if (this.HWHNameList[i]['启用仓位'] == 'Y') {
                            this.showHStockPlaceName = true
                            this.getStockPlaceRemote(this.HWHNameList[i]["HSPGroupID"])
                        }
                    }
                }
            },
            //选择仓位
            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
                    }
                }
            },
            async refreshBarCodeState() {
                this.barCodeFocus = false
                await this.$nextTick(() => {
                    this.hform.HBarCode = ""
                    this.barCodeFocus = true
                })
            },
            async refreshHBillState() {
                this.HBillNoFocus = false
                await this.$nextTick(() => {
                    this.hform.HBillNo = ""
                    this.HBillNoFocus = true
                })
            },
            playSound(e) {
                const innerAudioContext = uni.createInnerAudioContext();
                if (e == 1) {
                    innerAudioContext.src = '/static/success.wav';
                } else {
                    innerAudioContext.src = '/static/jingbao.wav';
                }
                innerAudioContext.play(); // 播放音频
            },
            //扫码
            toScanHBarCode() {
                var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
                mpaasScanModule.mpaasScan({
                    'hideAlbum': true,
                    'timeoutInterval': '10', //超时时间
                    'timeoutText': '未识别到二维码' //超时提醒
                }, (ret) => {
                    console.log(ret.resp_result)
                    // if(this.hform.HBarCode == '*'){
                    //     this.hform.HBarCode = this.hform.HBarCode + ret.resp_result
                    // }else{
                    //     this.hform.HBarCode = ret.resp_result
                    // }
                    this.hform.HBarCode = ret.resp_result
                    // this.GetMeesageByBillNo(this.hform.HBarCode)
                    this.getCode(this.hform.HBarCode)
                })
            },
            toScanCode() {
                var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
                mpaasScanModule.mpaasScan({
                    'hideAlbum': true,
                    'timeoutInterval': '10', //超时时间
                    'timeoutText': '未识别到二维码' //超时提醒
                }, (ret) => {
                    console.log(ret.resp_result)
                    this.hform.HBillNo = ret.resp_result
                    this.GetMeesageByBillNo(this.hform.HBillNo)
                })
            },
            //扫描单据号条码
            async GetMeesageByBillNo(e) {
                if (this.hform.HBillNo == "" || this.hform.HBillNo == undefined) {
                    return
                }
                try {
                    let res = await CommonUtils.doRequest2Sync({
                        url: '/WEBSController/get_BillBarCode_BillCheck_Json',
                        data: {
                            HBillNo: this.hform.HBillNo,
                            HBillType: this.hform.HBillType,
                            HMaker: this.hform.HMaker,
                            HStockOrgID: this.hform.HStockOrgID
                        },
                    })
                    if (!res) {
                        // 触发请求锁,不返回任何值
                        return
                    }
                    let {
                        data,
                        Message,
                        count
                    } = res.data
                    if (count == 1) {
                        CommonUtils.playSound(1)
                        console.log(data)
                        this.hform.HInterID = data.hInterIDField
                        this.hform.HBillNo = data.hBillNoField
                        this.showHBillNo = false
                        //条码核对标记
                        if (data.hSourceBarCodeFlagField) {
                            this.hform.HSourceBarCodeCtl = "Y"
                            this.hform.chkHBarflag = true
                            this.hform.HBarflag = data
                        }
                        this.tabs = 2
                        this.DisBillEntryList();
                        this.refreshHBarCodeFocus()
                    } else {
                        CommonUtils.playSound(0)
                        this.refreshHBillNoFocus()
                        uni.showToast({
                            title: Message,
                            icon: 'none'
                        })
                        this.hform.HBillNo = ''
                    }
                } catch (e) {
                    CommonUtils.playSound(0)
                    this.refreshHBillNoFocus()
                    uni.showToast({
                        title: '接口请求失败: ' + e,
                        icon: 'none'
                    })
                }
            },
            async getCode(HBarCode) {
                if (HBarCode == undefined || HBarCode == "") {
                    return
                }
                //仓库、仓位文本框为空时,清空对应ID
                if (!this.hform.HWHName) {
                    this.hform.HWHID = 0
                }
                if (!this.hform.HStockPlaceName) {
                    this.hform.HStockPlaceID = 0
                }
                var sOldBarCode = HBarCode
                var HDeleteFlag = sOldBarCode.substring(0, 1);
                var sBarCode = sOldBarCode.slice(1);
                var sHWHID = this.hform.HWHID
                var sHSPID = this.hform.HStockPlaceID
                var sHQty = this.hform.HQty
                var sSourceBillNo = this.hform.HSourceBillNo
                var sSourceBillType = this.hform.HMainSourceBillType
                var HSourceFlag = this.hform.HSourceBillNo == '' ? false : true
                console.log(this.hform.HSourceBillNo, HSourceFlag)
                if (HDeleteFlag == "*") {
                    if (sBarCode == "") {
                        CommonUtils.playSound(0)
                        uni.showToast({
                            title: '请输入要删除的条码',
                            icon: 'none'
                        })
                    } else {
                        try {
                            let res = await CommonUtils.doRequest2Sync({
                                url: '/WEBSController/set_DelPonderationBillMain_Temp_BarCode_Json',
                                data: {
                                    HInterID: this.hform.HInterID,
                                    HBillType: this.hform.HBillType,
                                    HBarCode: sBarCode
                                },
                            })
                            if (!res) {
                                // 请求被锁定,退出当前请求
                                return
                            }
                            console.log('删除条码', res.data);
                            this.hform.HBarCode = ''
                            if (res.data.count == 1) {
                                this.hform.HQty = ''
                                this.DisBillEntryList()
                            } else {
                                uni.showToast({
                                    title: res.data.Message,
                                    icon: 'none'
                                })
                            }
                        } catch (e) {
                            CommonUtils.playSound(0)
                            this.refreshHBillNoFocus()
                            uni.showToast({
                                title: '接口请求失败: ' + e,
                                icon: 'none'
                            })
                        }
                    }
                } else {
                    var sBarCode = this.hform.HBarCode
                    if (sHQty == "") {
                        sHQty = 0;
                    }
                    try {
                        let res = await CommonUtils.doRequest2Sync({
                            url: '/WEBSController/get_CheckTypeByBarCode_BillCheck_Json',
                            data: {
                                sBarCode: sBarCode,
                                HBillID: this.hform.HInterID || 0,
                                HBillType: this.hform.HBillType,
                                HBillNo: this.hform.HBillNo,
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
                                // HSourceBillNo: sSourceBillNo,
                                // HSourceBillType: sSourceBillType,
                                HStockOrgID: this.hform.HStockOrgID,
                                // HScanStyle: "",
                                // HCustom1: "",
                                // HCustom2: ""
                            },
                        })
                        if (!res) {
                            return
                        }
                        console.log('扫码返回', res.data);
                        this.hform.HBarCode = ''
                        if (res.data.count == 1) {
                            CommonUtils.playSound(1);
                            var data = res.data.data
                            if (data.hBarTypeField == '仓库条码') {
                                this.hform.HWHName = data.hWhNameField
                                this.hform.HWHID = data.hWhIDField
                                this.hform.HStockPlaceName = ''
                                this.hform.HStockPlaceID = 0
                                if (data.hSPFlagField == 0) {
                                    this.showHStockPlaceName = false
                                } else {
                                    this.showHStockPlaceName = true
                                }
                            } else if (data.hBarTypeField == '仓位条码') {
                                this.hform.HWHName = data.hWhNameField
                                this.hform.HWHID = data.hWhIDField
                                this.hform.HStockPlaceName = data.hSPNameField
                                this.hform.HStockPlaceID = data.hSPIDField
                            } else if (data.hBarTypeField == '部门条码') {
                                this.hform.HDeptName = data.hDeptNameField
                                this.hform.HDeptID = data.hDeptIDField
                                this.tabs = 1
                            } else if (data.hBarTypeField == '源单条码') {
                                this.hform.HSupName = data.hSupNameField
                                this.hform.HSupID = data.hSupIDField
                                if (data.hDeptIDField != 0) {
                                    this.hform.HDeptID = data.hDeptIDField
                                    this.hform.HDeptName = data.hDeptNameField
                                }
                                this.hform.HSourceBillNo = data.hSourceBillNoField
                                //获取源单类型、源单单号(//需调整)
                                if (data.hSourceBillTypeField == "1103") {
                                    this.HMainSourceBillType = '收料通知单'
                                    this.hform.HMainSourceBillType = 1103
                                    this.showHMainSourceBillType = false
                                } else if (data.hSourceBillTypeField == "1102") {
                                    this.HMainSourceBillType = '采购订单'
                                    this.hform.HMainSourceBillType = 1102
                                    this.showHMainSourceBillType = false
                                } else {
                                    this.HMainSourceBillType = '手工录入'
                                    this.hform.HMainSourceBillType = -1
                                    this.showHMainSourceBillType = false
                                }
                                if (data.hMulSourceFlagField == 0) {
                                    this.showHSourceBillNo = false
                                }
                                //供应商不可编辑
                                this.showHSupName = false
                                this.tabs = 2
                            } else { //物料条码
                                this.tabs = 2
                                console.log('data', data)
                                if (!this.hform.HSourceBillNo) {
                                    this.hform.HSupName = data.hSupNameField
                                    this.hform.HSupID = data.hSupIDField
                                    this.hform.HSourceBillNo = data.hSourceBillNoField
                                    if (data.hDeptIDField != 0) {
                                        this.hform.HDeptID = data.hDeptIDField
                                        this.hform.HDeptName = data.hDeptNameField
                                    }
                                    //获取源单类型、源单单号
                                    this.hform.HMainSourceBillType = data.hSourceBillTypeField
                                    if (data.hSourceBillTypeField == "1103") {
                                        this.HMainSourceBillType = '收料通知单'
                                        this.hform.HMainSourceBillType = 1103
                                        this.showHMainSourceBillType = false
                                    } else if (data.hSourceBillTypeField == "1102") {
                                        this.HMainSourceBillType = '采购订单'
                                        this.hform.HMainSourceBillType = 1102
                                        this.showHMainSourceBillType = false
                                    } else {
                                        this.HMainSourceBillType = '手工录入'
                                        this.hform.HMainSourceBillType = -1
                                        this.showHMainSourceBillType = false
                                    }
                                    if (data.hMulSourceFlagField == 0) {
                                        this.showHSourceBillNo = false
                                    }
                                    //供应商不可编辑
                                    this.showHSupName = false
                                }
                            }
                            //显示表体明细
                            this.DisBillEntryList()
                            //清空数量
                            this.hform.HQty = ''
                        } else {
                            CommonUtils.playSound(0);
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
                            })
                        }
                        this.refreshHBarCodeFocus()
                    } catch (e) {
                        CommonUtils.playSound(0)
                        this.refreshHBillNoFocus()
                        uni.showToast({
                            title: '接口请求失败: ' + e,
                            icon: 'none'
                        })
                    }
                }
            },
            //物料信息
            DisBillEntryList() {
                uni.request({
                    url: this.serverUrl + '/WEBSController/GetKf_PonderationBillMain_Temp_BillCheck_New_Json',
                    data: {
                        HInterID: this.hform.HInterID,
                        HBillType: this.hform.HBillType,
                        sWhere: '',
                        HSourceBarCodeCtl: this.hform.HSourceBarCodeCtl
                    },
                    success: (res) => {
                        console.log('物料', res.data)
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HMaterName_B = ''
                                this.hform.HMaterModel_B = ''
                                this.hform.HBatchNo_B = ''
                                this.hform.HUnitName_B = ''
                                this.hform.HQty_B = ''
                                this.hform.HTMQty_B = ''
                                this.hform.HWHName_B = ''
                                this.hform.HSPName_B = ''
                            } else {
                                this.hform.HMaterName_B = data.BarCodeDetailslist[0].HMaterName
                                this.hform.HMaterModel_B = data.BarCodeDetailslist[0].HMaterModel
                                this.hform.HBatchNo_B = data.BarCodeDetailslist[0].HBatchNo
                                this.hform.HUnitName_B = data.BarCodeDetailslist[0].HUnitName
                                this.hform.HQty_B = data.BarCodeDetailslist[0].HQty
                                this.hform.HTMQty_B = data.BarCodeDetailslist[0].HTMQty
                                this.hform.HWHName_B = data.BarCodeDetailslist[0].HWHName
                                this.hform.HSPName_B = data.BarCodeDetailslist[0].HSPName
                            }
                        } else {
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
            },
            addNew() {
                uni.redirectTo({
                    url: '/pages/shengchantuikuCheck/Kf_ProductInBackCheckBill?OperationType=1' //已调整
                })
            },
            async submit() {
                if (this.hform.HInterID == 0 || !this.hform.HInterID) {
                    uni.showToast({
                        title: '没有扫码信息,请先扫描单据条码!',
                        icon: 'none'
                    })
                } else if (!this.hform.HBillNo) {
                    uni.showToast({
                        title: '单据号获取失败,错误的单据号!',
                        icon: 'none'
                    })
                } else if (!this.Materlist || this.Materlist.length == 0) {
                    uni.showToast({
                        title: '没有扫码信息,请先扫描条码,确认无误后再提交!',
                        icon: 'none'
                    })
                } else {
                    var s = 0;
                    for (var i = 0; i < this.Materlist.length; i++) {
                        if (this.Materlist[i].数量 > 0) {
                            s = 1;
                        }
                    }
                    if (s == 0) {
                        uni.showToast({
                            title: '没有扫描物料条码,请先扫描物料条码,确认无误后再提交!',
                            icon: 'none'
                        })
                    } else {
                        uni.showLoading({
                            title: '请稍候'
                        })
                        var sMainStr = JSON.stringify(this.hform);
                        try {
                            let res = await CommonUtils.doRequest2Sync({
                                url: '/WEBSController/set_SaveProductInBackBill_BillCheck_Json', //已调整
                                method: 'POST',
                                data: {
                                    oMain: sMainStr
                                },
                            })
                            if (!res) {
                                return
                            }
                            console.log(1, res);
                            uni.hideLoading()
                            if (res.data.count == 1) {
                                uni.showModal({
                                    title: '提示',
                                    content: res.data.Message + '。是否继续新增?(点击取消返回上级页面)',
                                    success: (res) => {
                                        if (res.confirm) {
                                            console.log('用户点击确定');
                                            uni.redirectTo({
                                                url: '/pages/shengchantuikuCheck/Kf_ProductInBackCheckBill?OperationType=1'//已调整
                                            })
                                        } else if (res.cancel) {
                                            console.log('用户点击取消');
                                            setTimeout(() => {
                                                uni.navigateBack();
                                            }, 50)
                                        }
                                    }
                                });
                            } else {
                                uni.showToast({
                                    title: res.data.Message,
                                    icon: 'none'
                                })
                            }
                        } catch (e) {
                            CommonUtils.playSound(0)
                            this.refreshHBillNoFocus()
                            uni.showToast({
                                title: '接口请求失败: ' + e,
                                icon: 'none'
                            })
                        }
                    }
                }
            },
            goBack() {
                uni.showModal({
                    title: '提示',
                    content: '确认要退出当前页面吗?',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.redirectTo({
                                url: '/pages/shengchantuikuCheck/Kf_ProductInBackCheckBillList' //已调整
                            })
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            }
        }
    }
</script>
<style lang="scss" scoped>
    .form {
        width: 668rpx;
        margin: 20rpx auto;
        padding-bottom: 240rpx;
    }
    .tab_area {
        width: 100%;
        height: 50rpx;
    }
    .other {
        margin-top: 8rpx;
        text-align: center;
        font-size: 28rpx;
        padding: 4rpx 18rpx;
        color: #1890FF;
    }
    .tabs {
        width: 100%;
        display: flex;
        border-bottom: 1px solid #ddd;
        margin: 20rpx 0;
        view {
            // width: 25%;
            flex: 1;
            font-size: 30rpx;
            color: #555;
            text-align: center;
            padding: 16rpx 0;
        }
        .on {
            color: #3a78ff;
            font-weight: bold;
            border-bottom: 3px solid #3a78ff;
        }
    }
    .form-item {
        display: flex;
        align-items: center;
        font-size: 30rpx;
        padding: 6rpx 0;
        .title {
            width: 208rpx;
            text {
                color: red;
                font-weight: bold;
            }
        }
        .right {
            // width: 450rpx;
            flex: 1;
            border-radius: 22rpx;
            border: 1px solid #acacac;
        }
        .righton {
            // width: 450rpx;
            flex: 1;
            border-radius: 22rpx;
            border: 1px solid #e4e4e4;
            background-color: #e4e4e4;
        }
        input {
            width: inherit;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
        textarea {
            width: 98%;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
    }
    .bottom-btn {
        width: 100%;
        box-sizing: border-box;
        // height: 120rpx;
        position: fixed;
        bottom: 0;
        left: 0;
        background-color: #fff;
        box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
        padding: 30rpx 40rpx 40rpx 40rpx;
        display: flex;
        flex-direction: row;
        gap: 10rpx;
        button {
            border-radius: 50rpx;
            width: 180rpx;
            height: 66rpx;
            line-height: 66rpx;
            font-size: 28rpx;
        }
        .btn-a {
            background-color: #3A78FF;
            color: #fff;
        }
        .btn-b {
            background-color: #41a863;
            color: #fff;
        }
        .btn-c {
            background-color: #acacac;
            color: #fff;
            // position: absolute;
            // right: 120rpx;
        }
        .btn-d {
            background-color: #ff8901;
            color: #fff;
        }
    }
    .list {
        width: 100%;
        .card-detail {
            width: 100%;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            line-height: 120%;
            .detail {
                // width: 50%;
                font-size: 26rpx;
                margin-bottom: 12rpx;
                color: #555;
                margin-right: 20rpx;
                text {
                    color: #999;
                    font-size: 26rpx;
                }
            }
        }
        .more {
            color: #888;
            font-size: 24rpx;
            display: flex;
            border-top: 1px solid #eee;
            padding-top: 20rpx;
            .part {
                width: 50%;
                text-align: center;
            }
        }
    }
    .checkbox {
        color: #888;
        font-size: 28rpx;
        margin-top: 30rpx;
        float: right;
    }
</style>
pages/shengchantuikuCheck/Kf_ProductInBackCheckBillList.vue
New file
@@ -0,0 +1,448 @@
<template>
    <view class="content">
        <view class="tabs">
            <view :class="tabs == 0 ? 'on':''" @tap="changeTab(0)">缓存列表</view>
            <view :class="tabs == 1 ? 'on':''" @tap="changeTab(1)">已上传列表</view>
        </view>
        <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
        <view class="form" v-if="tabs == 0">
            <view class="buttons" @tap="add">
                <uni-icons type="plus" style="margin-right: 10rpx;" size="22"></uni-icons>新增
            </view>
        </view>
        <view class="form" v-if="tabs == 1">
            <view class="form-item">
                <view class="title">单据号:</view>
                <view class="right">
                    <input v-model="hform.HBillNo" placeholder="请输入单据号" />
                </view>
            </view>
            <view class="buttons">
                <button class="btn-a" size="mini" type="default" @tap="clear">重置</button>
                <button class="btn-c" size="mini" type="default" @tap="search">查询</button>
            </view>
        </view>
        <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
        <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==0">
            <uni-card :title="item.制单日期.substr(0,10)" :extra="item.单据号" style="margin: 10px;" @tap="showDetail = showDetail==index?-1:index">
                <view class="card-detail">
                    <view class="detail" v-if="item.制单人">
                        <text>制单人:</text>{{item.制单人}}
                    </view>
                    <view class="detail" v-if="item.组织">
                        <text>组织:</text>{{item.组织}}
                    </view>
                </view>
                <view class="more">
                    <view class="part" style="border-right: 1px solid #eee;color: #3a78ff;" @tap.stop="edit(item)">
                        <uni-icons type="compose" style="color: #3a78ff;margin-right: 10rpx;" size="18"></uni-icons>编辑
                    </view>
                    <view class="part" style="color: #da0000;" @tap.stop="del(item)">
                        <uni-icons type="trash" style="color: #da0000;margin-right: 10rpx;" size="18"></uni-icons>删除
                    </view>
                </view>
            </uni-card>
        </view>
        <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==1">
            <uni-card :title="item.日期" :extra="item.单据号" style="margin: 10px;" @tap="showDetail = showDetail==index?-1:index">
                <view class="card-detail">
                    <view class="detail" v-if="item.制单人">
                        <text>制单人:</text>{{item.制单人}}
                    </view>
                    <view class="detail" v-if="item.数量">
                        <text>数量:</text>{{item.数量}}
                    </view>
                    <view class="detail" v-if="item.物料代码">
                        <text>物料代码:</text>{{item.物料代码}}
                    </view>
                    <view class="detail" v-if="item.物料名称">
                        <text>物料名称:</text>{{item.物料名称}}
                    </view>
                    <view class="detail" v-if="item.规格型号">
                        <text>规格型号:</text>{{item.规格型号}}
                    </view>
                    <view class="detail" v-if="item.组织">
                        <text>组织:</text>{{item.组织}}
                    </view>
                </view>
                <view class="more">
                    <view class="part" style="color: #d98d00;width: 100%;" @tap.stop="revoke(item)">
                        <uni-icons type="undo" style="color: #d98d00;margin-right: 10rpx;" size="18"></uni-icons>撤销
                    </view>
                </view>
            </uni-card>
        </view>
        <view class="over" v-if="!listData || listData.length == 0">暂无数据</view>
        <view class="over" v-if="listData.length != 0 && listData.length != showList.length">加载中...</view>
        <view class="over" v-if="listData.length != 0 && listData.length == showList.length">已到底</view>
    </view>
</template>
<script>
    import { getUserInfo } from "@/utils/auth.js";
    export default {
        data() {
            return {
                userInfo:getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl')||'http://47.96.97.237/API',
                tabs:0,
                urls:'/WEBSController/GetKf_PonderationBillMain_TempList_BillCheck_Json',
                MvarReportTitle:'销售退货单校验缓存列表',
                hform:{
                    HBillNo:'',
                    HBillType: 1245, //已调整
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                },
                sWhere:'',
                listData:[],
                showList:[],
                showDetail:-1,
                page:1,
            }
        },
        onLoad() {
            //用户模块权限判断
            this.CheckModRight()
            this.changeTab(0)
            console.log(this.userInfo,uni.getStorageSync('HUserName'))
        },
        onReachBottom: function() {
            this.page++
            setTimeout(() => {
                this.showList = this.showList.concat(this.getPage(this.page,this.listData))
            }, 100)
        },
        onPullDownRefresh: function() {
            this.clear()
            setTimeout(()=>{
                uni.stopPullDownRefresh();
            }, 1000);
        },
        methods: {
            CheckModRight(){
                uni.request({
                    url: this.serverUrl + '/WEBSController/CheckModRight_Json',
                    data:{
                        ModRightName: 'CE_ProductInBackCheck', //已调整
                        HUserName: uni.getStorageSync('HUserName')
                    },
                    success: (res) => {
                        if(res.data.count == 1){}else{
                            uni.showToast({
                                title:res.data.Message,
                                icon:'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title:'接口请求失败',
                            icon:'none'
                        })
                    },
                });
            },
            getPage(page,list){
                let sindex = (parseInt(page) - 1) * 20
                let eindex = parseInt(page) * 20
                let newList = list.slice(sindex,eindex)
                return newList
            },
            changeTab(e){
                this.tabs = e
                this.page = 1
                this.showList = []
                if(this.tabs == 0){
                    this.urls = '/WEBSController/GetKf_PonderationBillMain_TempList_BillCheck_Json'
                }
                if(this.tabs == 1){
                    this.urls = '/WEBSController/GetKf_ICStockBillQueryList_User_BillCheck_Json'
                }
                this.getList()
            },
            getList(){
                uni.showLoading({
                    title:'加载中...'
                })
                uni.request({
                    url: this.serverUrl + this.urls,
                    data:this.hform,
                    success: (res) => {
                        console.log(1,res);
                        if(res.data.count == 1){
                            this.listData = res.data.data
                            this.showList = this.getPage(this.page,this.listData)
                            setTimeout(()=>{
                                 uni.hideLoading()
                            }, 1000)
                        }else{
                            uni.hideLoading()
                            this.listData = []
                            uni.showToast({
                                title:res.data.Message,
                                icon:'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.hideLoading()
                        uni.showToast({
                            title:'接口请求失败',
                            icon:'none'
                        })
                    },
                });
            },
            search(){
                this.sWhere = ''
                this.listData = []
                this.page = 1
                this.showList = []
                console.log(this.hform)
                this.getList()
            },
            clear(){
                this.listData = []
                this.page = 1
                this.showList = []
                this.sWhere = ''
                this.hform = {
                    HBillNo:'',
                    HBillType: 1245, //已调整
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                }
                this.getList()
            },
            add(){
                uni.navigateTo({
                    url:'./Kf_ProductInBackCheckBill?OperationType=1' //已调整
                })
            },
            //编辑
            edit(item){
                console.log(item)
                uni.navigateTo({
                    url:'./Kf_ProductInBackCheckBill?OperationType=2&HBillNo=' + item.HBillNo //已调整
                })
            },
            //删除
            del(item){
                // console.log(item.hmainid,uni.getStorageSync('HUserName'))
                uni.showModal({
                    title: '提示',
                    content: '确认要删除记录?删除后不能恢复',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.request({
                                url: this.serverUrl + '/WEBSController/DeleteTempBillList_BillCheck_Json',
                                data:{
                                    HInterID: item.HInterID,
                                    HBillNo: item.单据号,
                                    HBillType: this.hform.HBillType,
                                    HMaker: uni.getStorageSync('HUserName'),
                                    MvarReportTitle:this.MvarReportTitle,
                                    HStockOrgID:this.hform.HStockOrgID,
                                },
                                success: (res) => {
                                    console.log(1,res);
                                    if(res.data.count == 1){
                                        this.clear()
                                    }
                                    uni.showToast({
                                        title:res.data.Message,
                                        icon:'none'
                                    })
                                },
                                fail: (res) => {
                                    console.log(res);
                                    uni.hideLoading()
                                    uni.showToast({
                                        title:'接口请求失败',
                                        icon:'none'
                                    })
                                },
                            });
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            },
            //撤销
            revoke(item){
                // console.log(item.hmainid,uni.getStorageSync('HUserName'))
                uni.showModal({
                    title: '提示',
                    content: '是否确认撤销',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.request({
                                url: this.serverUrl + '/WEBSController/set_DeleteICStockBillAndWMS_BillCheck_Json',
                                data:{
                                    HInterID: item.HInterID,
                                    HBillNo: item.单据号,
                                    HBillType: this.hform.HBillType,
                                    HMaker: uni.getStorageSync('HUserName'),
                                    MvarReportTitle:this.MvarReportTitle,
                                    HStockOrgID:this.hform.HStockOrgID,
                                },
                                success: (res) => {
                                    console.log(1,res);
                                    if(res.data.count == 1){
                                        this.clear()
                                    }
                                    uni.showToast({
                                        title:res.data.Message,
                                        icon:'none'
                                    })
                                },
                                fail: (res) => {
                                    console.log(res);
                                    uni.hideLoading()
                                    uni.showToast({
                                        title:'接口请求失败',
                                        icon:'none'
                                    })
                                },
                            });
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            },
        }
    }
</script>
<style lang="scss" scoped>
    .form{
        width: 640rpx;
        margin: 20rpx auto;
        margin-top: 90rpx;
    }
    .tabs{
        width: 100%;
        position: fixed;
        left: 0;
        z-index: 9;
        display: flex;
        background-color: #e5e5e5;
        view{
            width: 50%;
            font-size: 30rpx;
            color: #333;
            text-align: center;
            padding: 16rpx 0;
        }
        .on{
            color: #3a78ff;
            font-weight: bold;
            border-bottom: 3px solid #3a78ff;
        }
    }
    .buttons{
        width: 100%;
        display: flex;
        justify-content: center;
        margin-top: 20rpx;
        button{
            border-radius: 50rpx;
            width: 180rpx;
            height: 66rpx;
            line-height: 66rpx;
            font-size: 28rpx;
        }
        .btn-a{
            background-color: #acacac;
            color: #fff;
        }
        .btn-b{
            background-color: #41a863;
            color: #fff;
        }
        .btn-c{
            background-color: #3a78ff;
            color: #fff;
        }
    }
    .form-item{
        display: flex;
        align-items: center;
        font-size: 28rpx;
        padding: 6rpx 0;
        .title{
            width: 180rpx;
            text{
                color: red;
                font-weight: bold;
            }
        }
        .right{
            width: 450rpx;
            border-radius: 22rpx;
            border: 1px solid #acacac;
        }
        .righton{
            width: 450rpx;
            border-radius: 22rpx;
            border: 1px solid #e4e4e4;
            background-color: #e4e4e4;
        }
        input{
            width: 100%;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
    }
    .list{
        width: 100%;
        .card-detail{
            width: 100%;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            line-height: 120%;
            .detail{
                // width: 50%;
                font-size: 26rpx;
                margin-bottom: 12rpx;
                color: #555;
                margin-right: 20rpx;
                text{
                    color: #999;
                    font-size: 26rpx;
                }
            }
        }
        .more{
            color: #888;
            font-size: 26rpx;
            display: flex;
            border-top: 1px solid #eee;
            padding-top: 20rpx;
            .part{
                width: 50%;
                display: flex;align-items: center;justify-content: center;
            }
        }
    }
</style>
pages/shengchantuiliaoCheck/MateOutBackCheckBill.vue
@@ -771,8 +771,8 @@
                    data: {
                        HInterID: this.hform.HInterID,
                        HBillType: this.hform.HBillType,
                        HSourceBarCodeCtl: this.hform.HSourceBarCodeCtl,
                        sWhere: ''
                        sWhere: '',
                        HSourceBarCodeCtl: this.hform.HSourceBarCodeCt
                    },
                    success: (res) => {
                        console.log('物料', res.data)
pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBill.vue
New file
@@ -0,0 +1,1103 @@
<template>
    <view>
        <view class="form">
            <view class="form-item">
                <view class="title">条码:</view>
                <view class="right">
                    <input class="" :focus="barCodeFocus" v-model="hform.HBarCode" placeholder="请扫描(或输入)条码"
                        @confirm="getCode(hform.HBarCode)" />
                </view>
                <uni-icons type="scan"
                    style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;"
                    size="20" @click="toScanHBarCode()"></uni-icons>
            </view>
            <view class="form-item">
                <view class="title">数量:</view>
                <view class="right">
                    <input v-model="hform.HQty" placeholder="请输入数量" />
                </view>
            </view>
            <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="true">
                    <uni-combox :candidates="arrayHStockPlaceNameComputed" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"
                        @confirm="HStockPlaceNameScan"></uni-combox>
                </view>
                <view class="righton" v-show="false"><input v-model="hform.HStockPlaceName" placeholder="不可操作"
                        :disabled="!showHStockPlaceName" /></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>
            <view v-if="tabs == 1">
                <view class="form-item" v-show="showHBillNo">
                    <view class="title">单据号:</view>
                    <view class="right" style="width: 380rpx;">
                        <input :focus="HBillNoFocus" name="HBillNo" v-model="hform.HBillNo" placeholder="请扫描(或输入)条码"
                            @confirm="GetMeesageByBillNo(hform.HBarCode)" />
                    </view>
                    <uni-icons type="scan"
                        style="margin-left: 10rpx;background-color: #3A78FF;padding: 6rpx;color: #fff;border-radius: 100%;"
                        size="20" @click="toScanCode"></uni-icons>
                </view>
                <view class="form-item" v-show="!showHBillNo">
                    <view class="title">单据号:</view>
                    <view class="righton">
                        <input name="HBillNo" disabled v-model="hform.HBillNo" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单据ID:</view>
                    <view class="righton">
                        <input name="HInterID" disabled v-model="hform.HInterID" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">制单人:</view>
                    <view class="righton">
                        <input name="HMaker" disabled v-model="hform.HMaker" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">组织:</view>
                    <view class="righton">
                        <input name="HStockOrgName" disabled v-model="hform.HStockOrgName" />
                    </view>
                </view>
                <label class="checkbox">
                    <checkbox :checked="hform.chkHBarflag" style="transform:scale(0.8)" disabled color="#4f81fc" />条码核对
                </label>
            </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;">
                        <view class="card-detail">
                            <view class="detail">
                                <text>单据数量:</text>{{item.单据数量}}
                            </view>
                            <view class="detail">
                                <text>物料代码:</text>{{item.物料代码}}
                            </view>
                            <view class="detail" v-if="item.规格型号">
                                <text>规格型号:</text>{{item.规格型号}}
                            </view>
                            <view class="detail">
                                <text>批号:</text>{{item.批号}}
                            </view>
                            <view class="detail" v-if="item.辅助属性">
                                <text>辅助属性:</text>{{item.辅助属性}}
                            </view>
                            <view class="detail">
                                <text>仓库:</text>{{item.仓库}}
                            </view>
                            <view class="detail">
                                <text>仓位:</text>{{item.仓位}}
                            </view>
                            <view class="detail">
                                <text>生产日期:</text>{{item.生产日期}}
                            </view>
                            <view class="detail">
                                <text>有效期至:</text>{{item.有效期至}}
                            </view>
                            <view class="detail">
                                <text>单据号:</text>{{item.单据号}}
                            </view>
                            <view class="detail">
                                <text>条码个数:</text>{{item.条码个数}}
                            </view>
                        </view>
                    </uni-card>
                </view>
                <view class="over" v-if="Materlist.length == 0">暂无数据</view>
            </view>
            <view v-if="tabs == 3">
                <view class="form-item">
                    <view class="title">条码:</view>
                    <view class="righton">
                        <input name="HBarCode_B" disabled v-model="hform.HBarCode_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">物料:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMaterName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">规格:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HMaterModel_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">批次:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HBatchNo_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单位:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HUnitName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">数量:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HQty_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">容量:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HTMQty_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">仓库:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HWHName_B" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">仓位:</view>
                    <view class="righton">
                        <input disabled v-model="hform.HSPName_B" />
                    </view>
                </view>
            </view>
            <view class="bottom-btn">
                <button class="btn-a" size="mini" @tap="submit">提交</button>
                <view style="flex: 1;"></view>
                <button class="btn-a" size="mini" @tap="addNew">新增</button>
                <button class="btn-c" size="mini" @tap="goBack">退出</button>
            </view>
        </view>
    </view>
</template>
<script>
    import getDateTime from '@/utils/getdateTime.js';
    import {
        getUserInfo
    } from "@/utils/auth.js";
    import { CommonUtils } from '../../utils/common';
    export default {
        data() {
            return {
                userInfo: getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl') || 'http://47.96.97.237/API',
                HModName: 'Kf_SellOutBackBill_Check_PDA',//已调整
                ModRightName: 'CE_SellOutBackCheck',//已调整
                OperationType: 1,
                barCodeFocus: false,
                showHStockPlaceName: false,
                HBillNoFocus: false,
                showHBillNo: true,
                tabs: 1,
                linterid: '',
                HBillNo: '',
                arrayHWHName: [], //仓库
                HWHNameList: [],
                arrayHStockPlaceName: [], //仓位
                HStockPlaceNameList: [],
                Materlist: [],
                hform: {
                    HBillType: 1247,//已调整
                    HBillerID: uni.getStorageSync('HBillerID'),
                    HRedBlueFlag: false,
                    HBarCode: '',
                    HQty: '',
                    HWHName: getUserInfo().HWHName,
                    HWHID: getUserInfo().HWhID,
                    HStockPlaceName: getUserInfo().HSPName,
                    HStockPlaceID: getUserInfo().HSPID,
                    HBillNo: '',
                    HInterID: '',
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgName: uni.getStorageSync('Organization'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                    HSourceBarCodeCtl: "N", //是否进行源单对应条码核对('Y'为核对)
                    chkHBarflag: false,
                    HBarflag: '',
                    HBarCode_B: '',
                    HMaterName_B: '',
                    HMaterModel_B: '',
                    HBatchNo_B: '',
                    HUnitName_B: '',
                    HQty_B: '',
                    HTMQty_B: '',
                    HWHName_B: '',
                    HSPName_B: '',
                }
            }
        },
        computed: {
            arrayHStockPlaceNameComputed: {
                get() {
                    // 动态计算对应仓库的仓位
                    return this.HStockPlaceNameList
                        .filter(e => e['所属仓库'] == this.hform.HWHName)
                        .map(e => e['仓位名称'])
                }
            }
        },
        onLoad(e) {
            console.log(e, this.userInfo)
            this.OperationType = e.OperationType
            if (e.HBillNo) {
                this.hform.HBillNo = e.HBillNo
                this.GetMeesageByBillNo(e.HBillNo)
            } else {
                this.refreshHBillState()
            }
            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 refreshHBarCodeFocus() {
                this.HBarCodeFocus = false
                await this.$nextTick()
                this.hform.HBarCode = ''
                this.HBarCodeFocus = true
            },
            async refreshHBillNoFocus() {
                this.HBillNoFocus = false
                await this.$nextTick(() => {
                    this.HBillNoFocus = true
                    this.hform.HBillNo = ""
                })
            },
            getHBaseList() {
                uni.request({
                    url: this.serverUrl + '/Gy_Warehouse/list',
                    data: {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    success: (res) => {
                        if (res.data.count == 1) {
                            this.HWHNameList = res.data.data
                            for (var i = 0; i < res.data.data.length; i++) {
                                this.arrayHWHName[i] = res.data.data[i].仓库名称
                            }
                        } else {
                            uni.showToast({
                                title: '仓库数据请求失败',
                                icon: 'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
                uni.request({
                    url: this.serverUrl + '/Gy_StockPlace/list',
                    data: {
                        sWhere: "",
                        user: uni.getStorageSync('HUserName'),
                        Organization: uni.getStorageSync('Organization')
                    },
                    success: (res) => {
                        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'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
            },
            //选择仓库
            HWHNameChange(e) {
                // 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
                        this.HStockPlaceNameChange(null)
                        this.showHStockPlaceName = false
                        if (this.HWHNameList[i]['启用仓位'] == 'Y') {
                            this.showHStockPlaceName = true
                            this.getStockPlaceRemote(this.HWHNameList[i]["HSPGroupID"])
                        }
                    }
                }
            },
            //选择仓位
            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
                    }
                }
            },
            async refreshBarCodeState() {
                this.barCodeFocus = false
                await this.$nextTick(() => {
                    this.hform.HBarCode = ""
                    this.barCodeFocus = true
                })
            },
            async refreshHBillState() {
                this.HBillNoFocus = false
                await this.$nextTick(() => {
                    this.hform.HBillNo = ""
                    this.HBillNoFocus = true
                })
            },
            playSound(e) {
                const innerAudioContext = uni.createInnerAudioContext();
                if (e == 1) {
                    innerAudioContext.src = '/static/success.wav';
                } else {
                    innerAudioContext.src = '/static/jingbao.wav';
                }
                innerAudioContext.play(); // 播放音频
            },
            //扫码
            toScanHBarCode() {
                var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
                mpaasScanModule.mpaasScan({
                    'hideAlbum': true,
                    'timeoutInterval': '10', //超时时间
                    'timeoutText': '未识别到二维码' //超时提醒
                }, (ret) => {
                    console.log(ret.resp_result)
                    // if(this.hform.HBarCode == '*'){
                    //     this.hform.HBarCode = this.hform.HBarCode + ret.resp_result
                    // }else{
                    //     this.hform.HBarCode = ret.resp_result
                    // }
                    this.hform.HBarCode = ret.resp_result
                    // this.GetMeesageByBillNo(this.hform.HBarCode)
                    this.getCode(this.hform.HBarCode)
                })
            },
            toScanCode() {
                var mpaasScanModule = uni.requireNativePlugin("Mpaas-Scan-Module")
                mpaasScanModule.mpaasScan({
                    'hideAlbum': true,
                    'timeoutInterval': '10', //超时时间
                    'timeoutText': '未识别到二维码' //超时提醒
                }, (ret) => {
                    console.log(ret.resp_result)
                    this.hform.HBillNo = ret.resp_result
                    this.GetMeesageByBillNo(this.hform.HBillNo)
                })
            },
            //扫描单据号条码
            async GetMeesageByBillNo(e) {
                if (this.hform.HBillNo == "" || this.hform.HBillNo == undefined) {
                    return
                }
                try {
                    let res = await CommonUtils.doRequest2Sync({
                        url: '/WEBSController/get_BillBarCode_BillCheck_Json',
                        data: {
                            HBillNo: this.hform.HBillNo,
                            HBillType: this.hform.HBillType,
                            HMaker: this.hform.HMaker,
                            HStockOrgID: this.hform.HStockOrgID
                        },
                    })
                    if (!res) {
                        // 触发请求锁,不返回任何值
                        return
                    }
                    let {
                        data,
                        Message,
                        count
                    } = res.data
                    if (count == 1) {
                        CommonUtils.playSound(1)
                        console.log(data)
                        this.hform.HInterID = data.hInterIDField
                        this.hform.HBillNo = data.hBillNoField
                        this.showHBillNo = false
                        //条码核对标记
                        if (data.hSourceBarCodeFlagField) {
                            this.hform.HSourceBarCodeCtl = "Y"
                            this.hform.chkHBarflag = true
                            this.hform.HBarflag = data
                        }
                        this.tabs = 2
                        this.DisBillEntryList();
                        this.refreshHBarCodeFocus()
                    } else {
                        CommonUtils.playSound(0)
                        this.refreshHBillNoFocus()
                        uni.showToast({
                            title: Message,
                            icon: 'none'
                        })
                        this.hform.HBillNo = ''
                    }
                } catch (e) {
                    CommonUtils.playSound(0)
                    this.refreshHBillNoFocus()
                    uni.showToast({
                        title: '接口请求失败: ' + e,
                        icon: 'none'
                    })
                }
            },
            async getCode(HBarCode) {
                if (HBarCode == undefined || HBarCode == "") {
                    return
                }
                //仓库、仓位文本框为空时,清空对应ID
                if (!this.hform.HWHName) {
                    this.hform.HWHID = 0
                }
                if (!this.hform.HStockPlaceName) {
                    this.hform.HStockPlaceID = 0
                }
                var sOldBarCode = HBarCode
                var HDeleteFlag = sOldBarCode.substring(0, 1);
                var sBarCode = sOldBarCode.slice(1);
                var sHWHID = this.hform.HWHID
                var sHSPID = this.hform.HStockPlaceID
                var sHQty = this.hform.HQty
                var sSourceBillNo = this.hform.HSourceBillNo
                var sSourceBillType = this.hform.HMainSourceBillType
                var HSourceFlag = this.hform.HSourceBillNo == '' ? false : true
                console.log(this.hform.HSourceBillNo, HSourceFlag)
                if (HDeleteFlag == "*") {
                    if (sBarCode == "") {
                        CommonUtils.playSound(0)
                        uni.showToast({
                            title: '请输入要删除的条码',
                            icon: 'none'
                        })
                    } else {
                        try {
                            let res = await CommonUtils.doRequest2Sync({
                                url: '/WEBSController/set_DelPonderationBillMain_Temp_BarCode_Json',
                                data: {
                                    HInterID: this.hform.HInterID,
                                    HBillType: this.hform.HBillType,
                                    HBarCode: sBarCode
                                },
                            })
                            if (!res) {
                                // 请求被锁定,退出当前请求
                                return
                            }
                            console.log('删除条码', res.data);
                            this.hform.HBarCode = ''
                            if (res.data.count == 1) {
                                this.hform.HQty = ''
                                this.DisBillEntryList()
                            } else {
                                uni.showToast({
                                    title: res.data.Message,
                                    icon: 'none'
                                })
                            }
                        } catch (e) {
                            CommonUtils.playSound(0)
                            this.refreshHBillNoFocus()
                            uni.showToast({
                                title: '接口请求失败: ' + e,
                                icon: 'none'
                            })
                        }
                    }
                } else {
                    var sBarCode = this.hform.HBarCode
                    if (sHQty == "") {
                        sHQty = 0;
                    }
                    try {
                        let res = await CommonUtils.doRequest2Sync({
                            url: '/WEBSController/get_CheckTypeByBarCode_BillCheck_Json',
                            data: {
                                sBarCode: sBarCode,
                                HBillID: this.hform.HInterID || 0,
                                HBillType: this.hform.HBillType,
                                HBillNo: this.hform.HBillNo,
                                HMaker: this.hform.HMaker,
                                HWhID: sHWHID,
                                HSPID: sHSPID,
                                HSCWHID: 0,
                                HSCSPID: 0,
                                HQty: sHQty,
                                // HRedBlueFlag: this.hform.HRedBlueFlag,
                                // SourceFlag: HSourceFlag,
                                // HSourceBillNo: sSourceBillNo,
                                // HSourceBillType: sSourceBillType,
                                HStockOrgID: this.hform.HStockOrgID,
                                // HScanStyle: "",
                                // HCustom1: "",
                                // HCustom2: ""
                            },
                        })
                        if (!res) {
                            return
                        }
                        console.log('扫码返回', res.data);
                        this.hform.HBarCode = ''
                        if (res.data.count == 1) {
                            CommonUtils.playSound(1);
                            var data = res.data.data
                            if (data.hBarTypeField == '仓库条码') {
                                this.hform.HWHName = data.hWhNameField
                                this.hform.HWHID = data.hWhIDField
                                this.hform.HStockPlaceName = ''
                                this.hform.HStockPlaceID = 0
                                if (data.hSPFlagField == 0) {
                                    this.showHStockPlaceName = false
                                } else {
                                    this.showHStockPlaceName = true
                                }
                            } else if (data.hBarTypeField == '仓位条码') {
                                this.hform.HWHName = data.hWhNameField
                                this.hform.HWHID = data.hWhIDField
                                this.hform.HStockPlaceName = data.hSPNameField
                                this.hform.HStockPlaceID = data.hSPIDField
                            } else if (data.hBarTypeField == '部门条码') {
                                this.hform.HDeptName = data.hDeptNameField
                                this.hform.HDeptID = data.hDeptIDField
                                this.tabs = 1
                            } else if (data.hBarTypeField == '源单条码') {
                                this.hform.HSupName = data.hSupNameField
                                this.hform.HSupID = data.hSupIDField
                                if (data.hDeptIDField != 0) {
                                    this.hform.HDeptID = data.hDeptIDField
                                    this.hform.HDeptName = data.hDeptNameField
                                }
                                this.hform.HSourceBillNo = data.hSourceBillNoField
                                //获取源单类型、源单单号(//需调整)
                                if (data.hSourceBillTypeField == "1103") {
                                    this.HMainSourceBillType = '收料通知单'
                                    this.hform.HMainSourceBillType = 1103
                                    this.showHMainSourceBillType = false
                                } else if (data.hSourceBillTypeField == "1102") {
                                    this.HMainSourceBillType = '采购订单'
                                    this.hform.HMainSourceBillType = 1102
                                    this.showHMainSourceBillType = false
                                } else {
                                    this.HMainSourceBillType = '手工录入'
                                    this.hform.HMainSourceBillType = -1
                                    this.showHMainSourceBillType = false
                                }
                                if (data.hMulSourceFlagField == 0) {
                                    this.showHSourceBillNo = false
                                }
                                //供应商不可编辑
                                this.showHSupName = false
                                this.tabs = 2
                            } else { //物料条码
                                this.tabs = 2
                                console.log('data', data)
                                if (!this.hform.HSourceBillNo) {
                                    this.hform.HSupName = data.hSupNameField
                                    this.hform.HSupID = data.hSupIDField
                                    this.hform.HSourceBillNo = data.hSourceBillNoField
                                    if (data.hDeptIDField != 0) {
                                        this.hform.HDeptID = data.hDeptIDField
                                        this.hform.HDeptName = data.hDeptNameField
                                    }
                                    //获取源单类型、源单单号
                                    this.hform.HMainSourceBillType = data.hSourceBillTypeField
                                    if (data.hSourceBillTypeField == "1103") {
                                        this.HMainSourceBillType = '收料通知单'
                                        this.hform.HMainSourceBillType = 1103
                                        this.showHMainSourceBillType = false
                                    } else if (data.hSourceBillTypeField == "1102") {
                                        this.HMainSourceBillType = '采购订单'
                                        this.hform.HMainSourceBillType = 1102
                                        this.showHMainSourceBillType = false
                                    } else {
                                        this.HMainSourceBillType = '手工录入'
                                        this.hform.HMainSourceBillType = -1
                                        this.showHMainSourceBillType = false
                                    }
                                    if (data.hMulSourceFlagField == 0) {
                                        this.showHSourceBillNo = false
                                    }
                                    //供应商不可编辑
                                    this.showHSupName = false
                                }
                            }
                            //显示表体明细
                            this.DisBillEntryList()
                            //清空数量
                            this.hform.HQty = ''
                        } else {
                            CommonUtils.playSound(0);
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
                            })
                        }
                        this.refreshHBarCodeFocus()
                    } catch (e) {
                        CommonUtils.playSound(0)
                        this.refreshHBillNoFocus()
                        uni.showToast({
                            title: '接口请求失败: ' + e,
                            icon: 'none'
                        })
                    }
                }
            },
            //物料信息
            DisBillEntryList() {
                uni.request({
                    url: this.serverUrl + '/WEBSController/GetKf_PonderationBillMain_Temp_BillCheck_New_Json',
                    data: {
                        HInterID: this.hform.HInterID,
                        HBillType: this.hform.HBillType,
                        sWhere: '',
                        HSourceBarCodeCtl: this.hform.HSourceBarCodeCtl
                    },
                    success: (res) => {
                        console.log('物料', res.data)
                        if (res.data.count == 1) {
                            var data = res.data.data
                            this.Materlist = data.Materlist
                            if (!data.BarCodeDetailslist[0].HBarCode) {
                                this.hform.HMaterName_B = ''
                                this.hform.HMaterModel_B = ''
                                this.hform.HBatchNo_B = ''
                                this.hform.HUnitName_B = ''
                                this.hform.HQty_B = ''
                                this.hform.HTMQty_B = ''
                                this.hform.HWHName_B = ''
                                this.hform.HSPName_B = ''
                            } else {
                                this.hform.HMaterName_B = data.BarCodeDetailslist[0].HMaterName
                                this.hform.HMaterModel_B = data.BarCodeDetailslist[0].HMaterModel
                                this.hform.HBatchNo_B = data.BarCodeDetailslist[0].HBatchNo
                                this.hform.HUnitName_B = data.BarCodeDetailslist[0].HUnitName
                                this.hform.HQty_B = data.BarCodeDetailslist[0].HQty
                                this.hform.HTMQty_B = data.BarCodeDetailslist[0].HTMQty
                                this.hform.HWHName_B = data.BarCodeDetailslist[0].HWHName
                                this.hform.HSPName_B = data.BarCodeDetailslist[0].HSPName
                            }
                        } else {
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title: '接口请求失败',
                            icon: 'none'
                        })
                    },
                });
            },
            addNew() {
                uni.redirectTo({
                    url: '/pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBill?OperationType=1' //已调整
                })
            },
            async submit() {
                if (this.hform.HInterID == 0 || !this.hform.HInterID) {
                    uni.showToast({
                        title: '没有扫码信息,请先扫描单据条码!',
                        icon: 'none'
                    })
                } else if (!this.hform.HBillNo) {
                    uni.showToast({
                        title: '单据号获取失败,错误的单据号!',
                        icon: 'none'
                    })
                } else if (!this.Materlist || this.Materlist.length == 0) {
                    uni.showToast({
                        title: '没有扫码信息,请先扫描条码,确认无误后再提交!',
                        icon: 'none'
                    })
                } else {
                    var s = 0;
                    for (var i = 0; i < this.Materlist.length; i++) {
                        if (this.Materlist[i].数量 > 0) {
                            s = 1;
                        }
                    }
                    if (s == 0) {
                        uni.showToast({
                            title: '没有扫描物料条码,请先扫描物料条码,确认无误后再提交!',
                            icon: 'none'
                        })
                    } else {
                        uni.showLoading({
                            title: '请稍候'
                        })
                        var sMainStr = JSON.stringify(this.hform);
                        try {
                            let res = await CommonUtils.doRequest2Sync({
                                url: '/WEBSController/set_SaveSellOutBackBill_BillCheck_Json', //已调整
                                method: 'POST',
                                data: {
                                    oMain: sMainStr
                                },
                            })
                            if (!res) {
                                return
                            }
                            console.log(1, res);
                            uni.hideLoading()
                            if (res.data.count == 1) {
                                uni.showModal({
                                    title: '提示',
                                    content: res.data.Message + '。是否继续新增?(点击取消返回上级页面)',
                                    success: (res) => {
                                        if (res.confirm) {
                                            console.log('用户点击确定');
                                            uni.redirectTo({
                                                url: '/pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBill?OperationType=1' //已调整
                                            })
                                        } else if (res.cancel) {
                                            console.log('用户点击取消');
                                            setTimeout(() => {
                                                uni.navigateBack();
                                            }, 50)
                                        }
                                    }
                                });
                            } else {
                                uni.showToast({
                                    title: res.data.Message,
                                    icon: 'none'
                                })
                            }
                        } catch (e) {
                            CommonUtils.playSound(0)
                            this.refreshHBillNoFocus()
                            uni.showToast({
                                title: '接口请求失败: ' + e,
                                icon: 'none'
                            })
                        }
                    }
                }
            },
            goBack() {
                uni.showModal({
                    title: '提示',
                    content: '确认要退出当前页面吗?',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.redirectTo({
                                url: '/pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBillList' //已调整
                            })
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            }
        }
    }
</script>
<style lang="scss" scoped>
    .form {
        width: 668rpx;
        margin: 20rpx auto;
        padding-bottom: 240rpx;
    }
    .tab_area {
        width: 100%;
        height: 50rpx;
    }
    .other {
        margin-top: 8rpx;
        text-align: center;
        font-size: 28rpx;
        padding: 4rpx 18rpx;
        color: #1890FF;
    }
    .tabs {
        width: 100%;
        display: flex;
        border-bottom: 1px solid #ddd;
        margin: 20rpx 0;
        view {
            // width: 25%;
            flex: 1;
            font-size: 30rpx;
            color: #555;
            text-align: center;
            padding: 16rpx 0;
        }
        .on {
            color: #3a78ff;
            font-weight: bold;
            border-bottom: 3px solid #3a78ff;
        }
    }
    .form-item {
        display: flex;
        align-items: center;
        font-size: 30rpx;
        padding: 6rpx 0;
        .title {
            width: 208rpx;
            text {
                color: red;
                font-weight: bold;
            }
        }
        .right {
            // width: 450rpx;
            flex: 1;
            border-radius: 22rpx;
            border: 1px solid #acacac;
        }
        .righton {
            // width: 450rpx;
            flex: 1;
            border-radius: 22rpx;
            border: 1px solid #e4e4e4;
            background-color: #e4e4e4;
        }
        input {
            width: inherit;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
        textarea {
            width: 98%;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
    }
    .bottom-btn {
        width: 100%;
        box-sizing: border-box;
        // height: 120rpx;
        position: fixed;
        bottom: 0;
        left: 0;
        background-color: #fff;
        box-shadow: 0 2rpx 10rpx 2rpx rgba(0, 0, 0, 0.4);
        padding: 30rpx 40rpx 40rpx 40rpx;
        display: flex;
        flex-direction: row;
        gap: 10rpx;
        button {
            border-radius: 50rpx;
            width: 180rpx;
            height: 66rpx;
            line-height: 66rpx;
            font-size: 28rpx;
        }
        .btn-a {
            background-color: #3A78FF;
            color: #fff;
        }
        .btn-b {
            background-color: #41a863;
            color: #fff;
        }
        .btn-c {
            background-color: #acacac;
            color: #fff;
            // position: absolute;
            // right: 120rpx;
        }
        .btn-d {
            background-color: #ff8901;
            color: #fff;
        }
    }
    .list {
        width: 100%;
        .card-detail {
            width: 100%;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            line-height: 120%;
            .detail {
                // width: 50%;
                font-size: 26rpx;
                margin-bottom: 12rpx;
                color: #555;
                margin-right: 20rpx;
                text {
                    color: #999;
                    font-size: 26rpx;
                }
            }
        }
        .more {
            color: #888;
            font-size: 24rpx;
            display: flex;
            border-top: 1px solid #eee;
            padding-top: 20rpx;
            .part {
                width: 50%;
                text-align: center;
            }
        }
    }
    .checkbox {
        color: #888;
        font-size: 28rpx;
        margin-top: 30rpx;
        float: right;
    }
</style>
pages/xiaoshotuihuoCheck/Kf_SellOutBackCheckBillList.vue
New file
@@ -0,0 +1,448 @@
<template>
    <view class="content">
        <view class="tabs">
            <view :class="tabs == 0 ? 'on':''" @tap="changeTab(0)">缓存列表</view>
            <view :class="tabs == 1 ? 'on':''" @tap="changeTab(1)">已上传列表</view>
        </view>
        <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
        <view class="form" v-if="tabs == 0">
            <view class="buttons" @tap="add">
                <uni-icons type="plus" style="margin-right: 10rpx;" size="22"></uni-icons>新增
            </view>
        </view>
        <view class="form" v-if="tabs == 1">
            <view class="form-item">
                <view class="title">单据号:</view>
                <view class="right">
                    <input v-model="hform.HBillNo" placeholder="请输入单据号" />
                </view>
            </view>
            <view class="buttons">
                <button class="btn-a" size="mini" type="default" @tap="clear">重置</button>
                <button class="btn-c" size="mini" type="default" @tap="search">查询</button>
            </view>
        </view>
        <view style="width: 100%;height: 16rpx;background-color: #e5e5e5;"></view>
        <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==0">
            <uni-card :title="item.制单日期.substr(0,10)" :extra="item.单据号" style="margin: 10px;" @tap="showDetail = showDetail==index?-1:index">
                <view class="card-detail">
                    <view class="detail" v-if="item.制单人">
                        <text>制单人:</text>{{item.制单人}}
                    </view>
                    <view class="detail" v-if="item.组织">
                        <text>组织:</text>{{item.组织}}
                    </view>
                </view>
                <view class="more">
                    <view class="part" style="border-right: 1px solid #eee;color: #3a78ff;" @tap.stop="edit(item)">
                        <uni-icons type="compose" style="color: #3a78ff;margin-right: 10rpx;" size="18"></uni-icons>编辑
                    </view>
                    <view class="part" style="color: #da0000;" @tap.stop="del(item)">
                        <uni-icons type="trash" style="color: #da0000;margin-right: 10rpx;" size="18"></uni-icons>删除
                    </view>
                </view>
            </uni-card>
        </view>
        <view class="list" v-for="(item,index) in showList" :key="index" v-if="tabs==1">
            <uni-card :title="item.日期" :extra="item.单据号" style="margin: 10px;" @tap="showDetail = showDetail==index?-1:index">
                <view class="card-detail">
                    <view class="detail" v-if="item.制单人">
                        <text>制单人:</text>{{item.制单人}}
                    </view>
                    <view class="detail" v-if="item.数量">
                        <text>数量:</text>{{item.数量}}
                    </view>
                    <view class="detail" v-if="item.物料代码">
                        <text>物料代码:</text>{{item.物料代码}}
                    </view>
                    <view class="detail" v-if="item.物料名称">
                        <text>物料名称:</text>{{item.物料名称}}
                    </view>
                    <view class="detail" v-if="item.规格型号">
                        <text>规格型号:</text>{{item.规格型号}}
                    </view>
                    <view class="detail" v-if="item.组织">
                        <text>组织:</text>{{item.组织}}
                    </view>
                </view>
                <view class="more">
                    <view class="part" style="color: #d98d00;width: 100%;" @tap.stop="revoke(item)">
                        <uni-icons type="undo" style="color: #d98d00;margin-right: 10rpx;" size="18"></uni-icons>撤销
                    </view>
                </view>
            </uni-card>
        </view>
        <view class="over" v-if="!listData || listData.length == 0">暂无数据</view>
        <view class="over" v-if="listData.length != 0 && listData.length != showList.length">加载中...</view>
        <view class="over" v-if="listData.length != 0 && listData.length == showList.length">已到底</view>
    </view>
</template>
<script>
    import { getUserInfo } from "@/utils/auth.js";
    export default {
        data() {
            return {
                userInfo:getUserInfo(),
                serverUrl: uni.getStorageSync('serverUrl')||'http://47.96.97.237/API',
                tabs:0,
                urls:'/WEBSController/GetKf_PonderationBillMain_TempList_BillCheck_Json',
                MvarReportTitle:'销售退货单校验缓存列表',
                hform:{
                    HBillNo:'',
                    HBillType: 1247, //已调整
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                },
                sWhere:'',
                listData:[],
                showList:[],
                showDetail:-1,
                page:1,
            }
        },
        onLoad() {
            //用户模块权限判断
            this.CheckModRight()
            this.changeTab(0)
            console.log(this.userInfo,uni.getStorageSync('HUserName'))
        },
        onReachBottom: function() {
            this.page++
            setTimeout(() => {
                this.showList = this.showList.concat(this.getPage(this.page,this.listData))
            }, 100)
        },
        onPullDownRefresh: function() {
            this.clear()
            setTimeout(()=>{
                uni.stopPullDownRefresh();
            }, 1000);
        },
        methods: {
            CheckModRight(){
                uni.request({
                    url: this.serverUrl + '/WEBSController/CheckModRight_Json',
                    data:{
                        ModRightName: 'CE_SellOutBackCheck', //已调整
                        HUserName: uni.getStorageSync('HUserName')
                    },
                    success: (res) => {
                        if(res.data.count == 1){}else{
                            uni.showToast({
                                title:res.data.Message,
                                icon:'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.showToast({
                            title:'接口请求失败',
                            icon:'none'
                        })
                    },
                });
            },
            getPage(page,list){
                let sindex = (parseInt(page) - 1) * 20
                let eindex = parseInt(page) * 20
                let newList = list.slice(sindex,eindex)
                return newList
            },
            changeTab(e){
                this.tabs = e
                this.page = 1
                this.showList = []
                if(this.tabs == 0){
                    this.urls = '/WEBSController/GetKf_PonderationBillMain_TempList_BillCheck_Json'
                }
                if(this.tabs == 1){
                    this.urls = '/WEBSController/GetKf_ICStockBillQueryList_User_BillCheck_Json'
                }
                this.getList()
            },
            getList(){
                uni.showLoading({
                    title:'加载中...'
                })
                uni.request({
                    url: this.serverUrl + this.urls,
                    data:this.hform,
                    success: (res) => {
                        console.log(1,res);
                        if(res.data.count == 1){
                            this.listData = res.data.data
                            this.showList = this.getPage(this.page,this.listData)
                            setTimeout(()=>{
                                 uni.hideLoading()
                            }, 1000)
                        }else{
                            uni.hideLoading()
                            this.listData = []
                            uni.showToast({
                                title:res.data.Message,
                                icon:'none'
                            })
                        }
                    },
                    fail: (res) => {
                        console.log(res);
                        uni.hideLoading()
                        uni.showToast({
                            title:'接口请求失败',
                            icon:'none'
                        })
                    },
                });
            },
            search(){
                this.sWhere = ''
                this.listData = []
                this.page = 1
                this.showList = []
                console.log(this.hform)
                this.getList()
            },
            clear(){
                this.listData = []
                this.page = 1
                this.showList = []
                this.sWhere = ''
                this.hform = {
                    HBillNo:'',
                    HBillType: 1247, //已调整
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                }
                this.getList()
            },
            add(){
                uni.navigateTo({
                    url:'./Kf_SellOutBackCheckBill?OperationType=1'
                })
            },
            //编辑
            edit(item){
                console.log(item)
                uni.navigateTo({
                    url:'./Kf_SellOutBackCheckBill?OperationType=2&HBillNo=' + item.HBillNo
                })
            },
            //删除
            del(item){
                // console.log(item.hmainid,uni.getStorageSync('HUserName'))
                uni.showModal({
                    title: '提示',
                    content: '确认要删除记录?删除后不能恢复',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.request({
                                url: this.serverUrl + '/WEBSController/DeleteTempBillList_BillCheck_Json',
                                data:{
                                    HInterID: item.HInterID,
                                    HBillNo: item.单据号,
                                    HBillType: this.hform.HBillType,
                                    HMaker: uni.getStorageSync('HUserName'),
                                    MvarReportTitle:this.MvarReportTitle,
                                    HStockOrgID:this.hform.HStockOrgID,
                                },
                                success: (res) => {
                                    console.log(1,res);
                                    if(res.data.count == 1){
                                        this.clear()
                                    }
                                    uni.showToast({
                                        title:res.data.Message,
                                        icon:'none'
                                    })
                                },
                                fail: (res) => {
                                    console.log(res);
                                    uni.hideLoading()
                                    uni.showToast({
                                        title:'接口请求失败',
                                        icon:'none'
                                    })
                                },
                            });
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            },
            //撤销
            revoke(item){
                // console.log(item.hmainid,uni.getStorageSync('HUserName'))
                uni.showModal({
                    title: '提示',
                    content: '是否确认撤销',
                    success: (res) => {
                        if (res.confirm) {
                            console.log('用户点击确定');
                            uni.request({
                                url: this.serverUrl + '/WEBSController/set_DeleteICStockBillAndWMS_BillCheck_Json',
                                data:{
                                    HInterID: item.HInterID,
                                    HBillNo: item.单据号,
                                    HBillType: this.hform.HBillType,
                                    HMaker: uni.getStorageSync('HUserName'),
                                    MvarReportTitle:this.MvarReportTitle,
                                    HStockOrgID:this.hform.HStockOrgID,
                                },
                                success: (res) => {
                                    console.log(1,res);
                                    if(res.data.count == 1){
                                        this.clear()
                                    }
                                    uni.showToast({
                                        title:res.data.Message,
                                        icon:'none'
                                    })
                                },
                                fail: (res) => {
                                    console.log(res);
                                    uni.hideLoading()
                                    uni.showToast({
                                        title:'接口请求失败',
                                        icon:'none'
                                    })
                                },
                            });
                        } else if (res.cancel) {
                            console.log('用户点击取消');
                        }
                    }
                });
            },
        }
    }
</script>
<style lang="scss" scoped>
    .form{
        width: 640rpx;
        margin: 20rpx auto;
        margin-top: 90rpx;
    }
    .tabs{
        width: 100%;
        position: fixed;
        left: 0;
        z-index: 9;
        display: flex;
        background-color: #e5e5e5;
        view{
            width: 50%;
            font-size: 30rpx;
            color: #333;
            text-align: center;
            padding: 16rpx 0;
        }
        .on{
            color: #3a78ff;
            font-weight: bold;
            border-bottom: 3px solid #3a78ff;
        }
    }
    .buttons{
        width: 100%;
        display: flex;
        justify-content: center;
        margin-top: 20rpx;
        button{
            border-radius: 50rpx;
            width: 180rpx;
            height: 66rpx;
            line-height: 66rpx;
            font-size: 28rpx;
        }
        .btn-a{
            background-color: #acacac;
            color: #fff;
        }
        .btn-b{
            background-color: #41a863;
            color: #fff;
        }
        .btn-c{
            background-color: #3a78ff;
            color: #fff;
        }
    }
    .form-item{
        display: flex;
        align-items: center;
        font-size: 28rpx;
        padding: 6rpx 0;
        .title{
            width: 180rpx;
            text{
                color: red;
                font-weight: bold;
            }
        }
        .right{
            width: 450rpx;
            border-radius: 22rpx;
            border: 1px solid #acacac;
        }
        .righton{
            width: 450rpx;
            border-radius: 22rpx;
            border: 1px solid #e4e4e4;
            background-color: #e4e4e4;
        }
        input{
            width: 100%;
            padding: 8rpx 20rpx;
            font-size: 30rpx;
        }
    }
    .list{
        width: 100%;
        .card-detail{
            width: 100%;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            line-height: 120%;
            .detail{
                // width: 50%;
                font-size: 26rpx;
                margin-bottom: 12rpx;
                color: #555;
                margin-right: 20rpx;
                text{
                    color: #999;
                    font-size: 26rpx;
                }
            }
        }
        .more{
            color: #888;
            font-size: 26rpx;
            display: flex;
            border-top: 1px solid #eee;
            padding-top: 20rpx;
            .part{
                width: 50%;
                display: flex;align-items: center;justify-content: center;
            }
        }
    }
</style>