wtt
2026-04-20 29a4ed5774020858b850375aa2291725ceac375c
Merge branch 'Dev' of http://101.37.171.70:10101/r/~jhz/STUWMS into Dev

# Conflicts:
# manifest.json
21个文件已修改
4个文件已添加
4779 ■■■■ 已修改文件
App.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/BillListPopup/BillListPopuMouldRepairRecordPopup.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/BillListPopup/BillListPopupEquipConkBookBill.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/BillListPopup/BillListPopupMouldConkBookBill.vue 718 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
locale/zh-Hans.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/EmployeeRecords/EmployeeRecordsBill.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/SC_MouldRepairCheck/Sc_MouldRepairCheckBill.vue 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/Sb_EquipRepairCheckBill/Sb_EquipRepairCheckBill.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/Sc_MouldRepairSendWork/Sc_MouldRepairSendWorkBill.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/MJGL/Sc_MouldRepairWorkBill/Sc_MouldRepairWorkBill.vue 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/mojianjianyan/ProcessCheckBill.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/shoujianjianyan/firstCheckBill.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/ZLGL/xunjianjianyan/PatrolProcCheckBill.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/caigoutuiliaocheck/Kf_POStockInBackBill_Check.vue 1144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/caigoutuiliaocheck/Kf_POStockInBackBill_CheckList.vue 448 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/gongxuOut/Cj_StationOutBill_Standard.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/index/tab2.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/tiaomamingxi/tiaomamingxi.vue 487 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/weiwairuku/EntrustInBill.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/weiwaituiliaocheck/Kf_EntrustOutBackBill_Check.vue 1144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/weiwaituiliaocheck/Kf_EntrustOutBackBill_CheckList.vue 448 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
App.vue
@@ -8,7 +8,10 @@
        getUserInfo
    } from "./utils/auth";
    import getuiUtils from "./utils/getuiUtils";
    import { overrideUniRequest, cancelAllRequest } from './utils/RequestQueue'
    import {
        overrideUniRequest,
        cancelAllRequest
    } from './utils/RequestQueue'
    export default {
        onLaunch: function() {
            console.log('App Launch')
components/BillListPopup/BillListPopuMouldRepairRecordPopup.vue
@@ -225,7 +225,7 @@
                    sWhere += ` and (单据号 like '%${this.HBillNo}%'  `;
                }
                sWhere += ` and isnull(维修人,'')!='${uni.getStorageSync('HUserName')}$'  `
                sWhere += ` and isnull(关闭人,'')!=''  `
                sWhere += ` and isnull(关闭人,'') =''  `
                return sWhere;
            },
components/BillListPopup/BillListPopupEquipConkBookBill.vue
@@ -195,6 +195,7 @@
                        HEquipName: bill['设备名称'],
                        HEquipSpec: bill['模具规格'],
                        HEquipModel: bill['模具型号'],
                        HBillType: bill['HBillType'],
                        enableMultiSourceBill: this.MultiSourceBill
                    })
                } else {
components/BillListPopup/BillListPopupMouldConkBookBill.vue
@@ -1,380 +1,394 @@
<template>
    <view>
        <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
            <view class="content">
                <view class="search-condition">
                    <view class="title"><text>日期: </text></view>
                    <view class="daterange" style="flex: 1;">
                        <view class="right general">
                            <uni-datetime-picker type="date" :clear-icon="false" v-model="HBeginDate">
                                <view>{{HBeginDate}}</view>
                            </uni-datetime-picker>
                        </view>
                        <view>—</view>
                        <view class="right general">
                            <uni-datetime-picker type="date" :clear-icon="false" v-model="HEndDate">
                                <view>{{HEndDate}}</view>
                            </uni-datetime-picker>
                        </view>
                    </view>
                </view>
                <view class="search-condition">
                    <view class="title"><text>模具编码: </text></view>
                    <view class="right"><input type="text" :focus="enablefocus" v-model="HNumber"
                            @confirm="getBillList" /></view>
                </view>
                <view class="search-condition">
                    <view class="title"><text>模具名称: </text></view>
                    <view class="right"><input type="text" v-model="HName" @confirm="getBillList" /></view>
                </view>
                <view class="search-condition">
                    <view class="title"><text>单据号: </text></view>
                    <view class="right"><input type="text" v-model="HBillNo" @confirm="getBillList" /></view>
                </view>
                <view class="buttons">
                    <view style="flex: 1;"></view>
                    <button size="mini" type="primary" @click="search">搜索</button>
                    <button v-if="MultiSourceBill" size="mini" type="primary" @click="ret">返回</button>
                    <button size="mini" type="primary" @click="exit">退出</button>
                </view>
                <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
                    <view class="options-wrapper" v-show="HBillList.length != 0">
                        <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
                            v-for="(bill, index) in HBillList[curPage-1]" :key="index" :title="bill['单据号']"
                            @tap="clickCard(bill, index)">
                            <view class="item">
                                <view class="left">日期: </view>
                                <view class="right">{{dayjs(bill['日期']).format('YYYY-MM-DD')}}</view>
                            </view>
                            <view class="item">
                                <view class="left">故障类别代码: </view>
                                <view class="right">{{bill['故障类别代码']}}</view>
                            </view>
                            <view class="item">
                                <view class="left">故障类别: </view>
                                <view class="right">{{bill['故障类别']}}</view>
                            </view>
                            <view class="item" v-if="bill['产品模具代码']">
                                <view class="left">产品模具代码: </view>
                                <view class="right">{{bill['产品模具代码']}}</view>
                            </view>
                            <view class="item" v-if="bill['产品模具']">
                                <view class="left">产品模具: </view>
                                <view class="right">{{bill['款号']}}</view>
                            </view>
                            <view class="item" v-if="bill['模具规格']">
                                <view class="left">模具规格: </view>
                                <view class="right">{{bill['模具规格']}}</view>
                            </view>
                            <view class="item" v-if="bill['模具型号']">
                                <view class="left">模具型号: </view>
                                <view class="right">{{bill['模具型号']}}</view>
                            </view>
                            <view class="item" v-if="bill['故障发生日期']">
                                <view class="left">故障发生日期: </view>
                                <view class="right">{{dayjs(bill['故障发生日期']).format('YYYY-MM-DD')}}</view>
                            </view>
                            <view class="item" v-if="bill['要求完善日期']">
                                <view class="left">要求完善日期: </view>
                                <view class="right">{{dayjs(bill['要求完善日期']).format('YYYY-MM-DD')}}</view>
                            </view>
                        </uni-card>
                    </view>
                    <view class="over" v-show="HBillList.length == 0">暂无数据</view>
                </scroll-view>
                <uni-pagination id="#pagination" title="标题文字" v-model="curPage" :pageSize="size"
                    :total="length"></uni-pagination>
            </view>
    <view>
        <uni-popup ref="popup" type="bottom" @change="popupChangeHandler">
            <view class="content">
                <view class="search-condition">
                    <view class="title"><text>日期: </text></view>
                    <view class="daterange" style="flex: 1;">
                        <view class="right general">
                            <uni-datetime-picker type="date" :clear-icon="false" v-model="HBeginDate">
                                <view>{{HBeginDate}}</view>
                            </uni-datetime-picker>
                        </view>
                        <view>—</view>
                        <view class="right general">
                            <uni-datetime-picker type="date" :clear-icon="false" v-model="HEndDate">
                                <view>{{HEndDate}}</view>
                            </uni-datetime-picker>
                        </view>
                    </view>
                </view>
                <view class="search-condition">
                    <view class="title"><text>模具编码: </text></view>
                    <view class="right"><input type="text" :focus="enablefocus" v-model="HNumber"
                            @confirm="getBillList" /></view>
                </view>
                <view class="search-condition">
                    <view class="title"><text>模具名称: </text></view>
                    <view class="right"><input type="text" v-model="HName" @confirm="getBillList" /></view>
                </view>
                <view class="search-condition">
                    <view class="title"><text>单据号: </text></view>
                    <view class="right"><input type="text" v-model="HBillNo" @confirm="getBillList" /></view>
                </view>
                <view class="buttons">
                    <view style="flex: 1;"></view>
                    <button size="mini" type="primary" @click="search">搜索</button>
                    <button v-if="MultiSourceBill" size="mini" type="primary" @click="ret">返回</button>
                    <button size="mini" type="primary" @click="exit">退出</button>
                </view>
                <scroll-view id="#BillListPanel" scroll-y="true" style="height: 55vh;">
                    <view class="options-wrapper" v-show="HBillList.length != 0">
                        <uni-card :is-active="bill.isActive" :class="bill.isActive?'uni-card--is-active':''"
                            v-for="(bill, index) in HBillList[curPage-1]" :key="index" :title="bill['单据号']"
                            @tap="clickCard(bill, index)">
                            <view class="item">
                                <view class="left">日期: </view>
                                <view class="right">{{dayjs(bill['日期']).format('YYYY-MM-DD')}}</view>
                            </view>
                            <view class="item">
                                <view class="left">故障类别代码: </view>
                                <view class="right">{{bill['故障类别代码']}}</view>
                            </view>
                            <view class="item">
                                <view class="left">故障类别: </view>
                                <view class="right">{{bill['故障类别']}}</view>
                            </view>
                            <view class="item" v-if="bill['产品模具代码']">
                                <view class="left">产品模具代码: </view>
                                <view class="right">{{bill['产品模具代码']}}</view>
                            </view>
                            <view class="item" v-if="bill['产品模具']">
                                <view class="left">产品模具: </view>
                                <view class="right">{{bill['款号']}}</view>
                            </view>
                            <view class="item" v-if="bill['模具规格']">
                                <view class="left">模具规格: </view>
                                <view class="right">{{bill['模具规格']}}</view>
                            </view>
                            <view class="item" v-if="bill['模具型号']">
                                <view class="left">模具型号: </view>
                                <view class="right">{{bill['模具型号']}}</view>
                            </view>
                            <view class="item" v-if="bill['故障发生日期']">
                                <view class="left">故障发生日期: </view>
                                <view class="right">{{dayjs(bill['故障发生日期']).format('YYYY-MM-DD')}}</view>
                            </view>
                            <view class="item" v-if="bill['要求完善日期']">
                                <view class="left">要求完善日期: </view>
                                <view class="right">{{dayjs(bill['要求完善日期']).format('YYYY-MM-DD')}}</view>
                            </view>
                        </uni-card>
                    </view>
                    <view class="over" v-show="HBillList.length == 0">暂无数据</view>
                </scroll-view>
                <uni-pagination id="#pagination" title="标题文字" v-model="curPage" :pageSize="size"
                    :total="length"></uni-pagination>
            </view>
        </uni-popup>
    </view>
        </uni-popup>
    </view>
</template>
<script>
    import dayjs from 'dayjs';
    import {
        CommonUtils
    } from '../../utils/common';
    import {
        getUserInfo
    } from '../../utils/auth';
    export default {
        name: "BillListPopup",
        data() {
            return {
                dayjs: dayjs,
                enablefocus: false,
                size: 20,
                curPage: 1,
                length: 0,
                page: 0,
                HSourceBillNo: '',
                HMater: '',
                HCustom: '',
                HBillList: [],
                panelHeight: 0,
                HBeginDate: dayjs(new Date()).subtract(30, 'd').format("YYYY-MM-DD"),
                HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
                HNumber: '',
                HName: '',
                HBillNo: '',
    import dayjs from 'dayjs';
    import {
        CommonUtils
    } from '../../utils/common';
    import {
        getUserInfo
    } from '../../utils/auth';
    export default {
        name: "BillListPopup",
        data() {
            return {
                dayjs: dayjs,
                enablefocus: false,
                size: 20,
                curPage: 1,
                length: 0,
                page: 0,
                HSourceBillNo: '',
                HMater: '',
                HCustom: '',
                HBillList: [],
                panelHeight: 0,
                HBeginDate: dayjs(new Date()).subtract(30, 'd').format("YYYY-MM-DD"),
                HEndDate: dayjs(new Date()).format("YYYY-MM-DD"),
                HNumber: '',
                HName: '',
                HBillNo: '',
                multiSouceBillList: []
            };
        },
        props: {
            HBillType: {
                type: [String, Number],
                required: true
            },
            HSourceBillType: {
                type: [String, Number],
                required: true
            },
            HStockOrgID: {
                type: [String, Number],
                required: true
            },
            MultiSourceBill: {
                type: Boolean,
                default: false,
                required: false
            }
        },
        model: {
            prop: "HSourceBill",
            event: 'change'
        },
        methods: {
            popupChangeHandler(e) {
                if (e.show === true) {
                    this.getBillList()
                }
            },
            async exit() {
                this.size = 20
                this.curPage = 1
                this.length = 0
                this.page = 0
                this.HSourceBillNo = ''
                this.HMater = ''
                this.HCustom = ''
                this.HBillList = []
                this.enablefocus = false
                this.multiSouceBillList = []
                // 需要等待页面内的数据赋值完毕
                await this.$nextTick()
                this.$refs.popup.close();
            },
            search() {
                this.getBillList()
            },
            ret() {
                console.log('this.MultiSourceBill: ', this.MultiSourceBill);
                uni.$emit('BillSelectComplete', {
                    HInterID: 0,
                    HBillNo: 0,
                    enableMultiSourceBill: this.MultiSourceBill,
                    MultiSourceBillList: this.multiSouceBillList
                })
            },
            showPopup() {
                this.$refs.popup.open();
            },
            clickCard(bill, index) {
                if (this.MultiSourceBill == false) { // 非多源单模式
                    uni.$emit('BillSelectComplete', {
                        HInterID: bill["hmainid"],
                        HEntryID: bill["hsubid"],
                        HBillNo: bill["单据号"],
                        HMouldID: bill["HMouldID"],
                        HMouldName: bill['产品模具'],
                        HMouldSpec: bill['模具规格'],
                        HMouldModel: bill['模具型号'],
                        enableMultiSourceBill: this.MultiSourceBill
                    })
                } else {
                    this.$set(this.HBillList[this.curPage - 1][index], 'isActive', !this.HBillList[this.curPage - 1][
                        index
                    ]['isActive'])
                    console.log(this.HBillList[this.curPage - 1][index])
                    // 设置了多源单模式
                    this.setMultiSourceBillList({
                        HInterID: interid,
                        HBillNo: billno,
                        HIsActive: this.HBillList[this.curPage - 1][index]['isActive']
                    })
                }
                multiSouceBillList: []
            };
        },
        props: {
            HBillType: {
                type: [String, Number],
                required: true
            },
            HSourceBillType: {
                type: [String, Number],
                required: true
            },
            HStockOrgID: {
                type: [String, Number],
                required: true
            },
            MultiSourceBill: {
                type: Boolean,
                default: false,
                required: false
            },
            // 新增:是否忽略关闭人过滤条件
            ignoreClosePersonFilter: {
                type: Boolean,
                default: false
            },
            HMouldID: {
                type: Number,
                default: 0
            }
        },
        model: {
            prop: "HSourceBill",
            event: 'change'
        },
        methods: {
            popupChangeHandler(e) {
                if (e.show === true) {
                    this.getBillList()
                }
            },
            async exit() {
                this.size = 20
                this.curPage = 1
                this.length = 0
                this.page = 0
                this.HSourceBillNo = ''
                this.HMater = ''
                this.HCustom = ''
                this.HBillList = []
                this.enablefocus = false
                this.multiSouceBillList = []
                // 需要等待页面内的数据赋值完毕
                await this.$nextTick()
                this.$refs.popup.close();
            },
            search() {
                this.getBillList()
            },
            ret() {
                console.log('this.MultiSourceBill: ', this.MultiSourceBill);
                uni.$emit('BillSelectComplete', {
                    HInterID: 0,
                    HBillNo: 0,
                    enableMultiSourceBill: this.MultiSourceBill,
                    MultiSourceBillList: this.multiSouceBillList
                })
            },
            showPopup() {
                this.$refs.popup.open();
            },
            clickCard(bill, index) {
                if (this.MultiSourceBill == false) { // 非多源单模式
                    uni.$emit('BillSelectComplete', {
                        HInterID: bill["hmainid"],
                        HEntryID: bill["hsubid"],
                        HBillNo: bill["单据号"],
                        HMouldID: bill["HMouldID"],
                        HMouldName: bill['产品模具'],
                        HMouldSpec: bill['模具规格'],
                        HMouldModel: bill['模具型号'],
                        enableMultiSourceBill: this.MultiSourceBill
                    })
                } else {
                    this.$set(this.HBillList[this.curPage - 1][index], 'isActive', !this.HBillList[this.curPage - 1][
                        index
                    ]['isActive'])
                    console.log(this.HBillList[this.curPage - 1][index])
                    // 设置了多源单模式
                    this.setMultiSourceBillList({
                        HInterID: interid,
                        HBillNo: billno,
                        HIsActive: this.HBillList[this.curPage - 1][index]['isActive']
                    })
                }
                // this.exit()
            },
            setMultiSourceBillList(billInfo) {
                let index = this.multiSouceBillList.findIndex(item => item.HInterID == billInfo.HInterID)
                if (index == -1) {
                    billInfo['count'] = 1
                    this.multiSouceBillList.push(billInfo)
                } else {
                    if (billInfo.HIsActive) {
                        // 如果对应单据传入的是否激活数是true,则计数器+1
                        this.multiSouceBillList[index]['count']++;
                    } else {
                        // 如果对应单据传入的是否激活数是false,则计数器-1
                        this.multiSouceBillList[index]['count']--;
                    }
                    if (this.multiSouceBillList[index]['count'] == 0) {
                        // 没有选中的单据,则移除缓存中的数据
                        this.multiSouceBillList.splice(index, 1)
                    }
                }
                console.log('this.multiSouceBillList: ', this.multiSouceBillList);
            },
            getsWhere() {
                let sWhere = ''
                if (this.HBeginDate && this.HEndDate) {
                    sWhere += ` and  CONVERT(varchar(100),日期, 23) between '${this.HBeginDate}' and '${this.HEndDate}'`
                }
                // this.exit()
            },
            setMultiSourceBillList(billInfo) {
                let index = this.multiSouceBillList.findIndex(item => item.HInterID == billInfo.HInterID)
                if (index == -1) {
                    billInfo['count'] = 1
                    this.multiSouceBillList.push(billInfo)
                } else {
                    if (billInfo.HIsActive) {
                        // 如果对应单据传入的是否激活数是true,则计数器+1
                        this.multiSouceBillList[index]['count']++;
                    } else {
                        // 如果对应单据传入的是否激活数是false,则计数器-1
                        this.multiSouceBillList[index]['count']--;
                    }
                    if (this.multiSouceBillList[index]['count'] == 0) {
                        // 没有选中的单据,则移除缓存中的数据
                        this.multiSouceBillList.splice(index, 1)
                    }
                }
                console.log('this.multiSouceBillList: ', this.multiSouceBillList);
            },
            getsWhere() {
                let sWhere = ''
                if (this.HBeginDate && this.HEndDate) {
                    sWhere += ` and  CONVERT(varchar(100),日期, 23) between '${this.HBeginDate}' and '${this.HEndDate}'`
                }
                if (this.HNumber) {
                    sWhere += ` and 产品模具代码 like '%${this.HNumber}%'`
                }
                if (this.HNumber) {
                    sWhere += ` and 产品模具代码 like '%${this.HNumber}%'`
                }
                if (this.HName) {
                    sWhere += ` and 产品模具 like '%${this.HName}%'`
                }
                if (this.HBillNo) {
                    sWhere += ` and 单据号 like '%${this.HBillNo}%'`
                }
                sWhere += ` and isnull(关闭人,'')!=''  `
                return sWhere
            },
            getBillList() {
                this.HBillList = []
                this.length = 0
                this.page = 0
                this.curPage = 1
                CommonUtils.doRequest(
                    "/Sc_MouldConkBookBill/GetMouldConkBookBillList_PDA", {
                        sWhere: this.getsWhere(),
                        user: getUserInfo()["Czymc"]
                    },
                    (res) => {
                        let {
                            data,
                            count,
                            Message
                        } = res.data
                        if (count == 1) {
                            this.length = Array.from(data).length
                            const result = [];
                            for (let i = 0; i < data.length; i += this.size) {
                                result.push(data.slice(i, i + this.size));
                            }
                            this.HBillList = result
                            this.page = result.length
                            setTimeout(() => {
                                this.enablefocus = true
                            }, 500)
                        } else {
                            setTimeout(() => {
                                this.enablefocus = true
                            }, 500)
                            uni.showToast({
                                icon: 'none',
                                title: Message
                            })
                        }
                    }
                )
            },
        },
    }
                if (this.HName) {
                    sWhere += ` and 产品模具 like '%${this.HName}%'`
                }
                if (this.HMouldID && this.HMouldID > 0) {
                    sWhere += ` and HMouldID = ${this.HMouldID}`
                }
                if (this.HBillNo) {
                    sWhere += ` and 单据号 like '%${this.HBillNo}%'`
                }
                // 关键修改:只有当不忽略过滤时,才添加关闭人条件
                if (!this.ignoreClosePersonFilter) {
                    sWhere += ` and isnull(关闭人,'') =''  `
                }
                return sWhere
            },
            getBillList() {
                this.HBillList = []
                this.length = 0
                this.page = 0
                this.curPage = 1
                CommonUtils.doRequest(
                    "/Sc_MouldConkBookBill/GetMouldConkBookBillList_PDA", {
                        sWhere: this.getsWhere(),
                        user: getUserInfo()["Czymc"]
                    },
                    (res) => {
                        let {
                            data,
                            count,
                            Message
                        } = res.data
                        if (count == 1) {
                            this.length = Array.from(data).length
                            const result = [];
                            for (let i = 0; i < data.length; i += this.size) {
                                result.push(data.slice(i, i + this.size));
                            }
                            this.HBillList = result
                            this.page = result.length
                            setTimeout(() => {
                                this.enablefocus = true
                            }, 500)
                        } else {
                            setTimeout(() => {
                                this.enablefocus = true
                            }, 500)
                            uni.showToast({
                                icon: 'none',
                                title: Message
                            })
                        }
                    }
                )
            },
        },
    }
</script>
<style lang="scss">
    .content {
        box-sizing: border-box;
        border-radius: 15rpx 15rpx 0 0;
        padding: 20rpx 20rpx 40rpx 20rpx;
        background-color: #fff;
        display: flex;
        flex-direction: column;
        gap: 10rpx;
    .content {
        box-sizing: border-box;
        border-radius: 15rpx 15rpx 0 0;
        padding: 20rpx 20rpx 40rpx 20rpx;
        background-color: #fff;
        display: flex;
        flex-direction: column;
        gap: 10rpx;
        .search-condition {
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 20rpx;
            font-size: 30rpx;
        .search-condition {
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 20rpx;
            font-size: 30rpx;
            .title {
                width: 5rem;
                text-align: right;
            }
            .title {
                width: 5rem;
                text-align: right;
            }
            .right {
                flex: 1;
                border-radius: 22rpx;
                border: 1px solid #acacac;
                height: auto;
                padding: 8rpx 16rpx;
            .right {
                flex: 1;
                border-radius: 22rpx;
                border: 1px solid #acacac;
                height: auto;
                padding: 8rpx 16rpx;
                input {
                    width: 100%;
                    font-size: 30rpx;
                }
            }
        }
                input {
                    width: 100%;
                    font-size: 30rpx;
                }
            }
        }
        .buttons {
            display: flex;
            flex-direction: row;
            gap: 20rpx;
            justify-content: flex-end;
        .buttons {
            display: flex;
            flex-direction: row;
            gap: 20rpx;
            justify-content: flex-end;
            >button {
                display: inline-flex;
                width: 4rem;
            }
        }
            >button {
                display: inline-flex;
                width: 4rem;
            }
        }
        .options-wrapper {
            padding: 20rpx;
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 20rpx;
        .options-wrapper {
            padding: 20rpx;
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 20rpx;
            >view {
                margin: 0 !important;
                box-sizing: border-box;
            >view {
                margin: 0 !important;
                box-sizing: border-box;
            }
            }
            .item {
                .left {
                    display: inline-block;
                    width: 6rem;
                }
            .item {
                .left {
                    display: inline-block;
                    width: 6rem;
                }
                .right {
                    display: inline-block;
                }
            }
        }
                .right {
                    display: inline-block;
                }
            }
        }
        .uni-card--is-active {
            background-color: rgba(0, 122, 255, 0.2);
        }
        .uni-card--is-active {
            background-color: rgba(0, 122, 255, 0.2);
        }
        .daterange {
            display: flex;
            flex-direction: row;
            gap: 10rpx;
            justify-content: center;
            align-items: center;
        .daterange {
            display: flex;
            flex-direction: row;
            gap: 10rpx;
            justify-content: center;
            align-items: center;
        }
    }
        }
    }
</style>
locale/zh-Hans.json
@@ -137,6 +137,7 @@
        "StockPlace": "仓位",
        "SourceBillType": "源单类型",
        "SourceBillNo": "源单单号",
        "SourceBillQty": "源单数量",
        "Date": "日期",
        "Maker": "制单人",
        "bt_HMaterNumber": "物料代码",
main.js
@@ -89,6 +89,7 @@
// #ifndef VUE3
import Vue from 'vue'
import VueI18n from 'vue-i18n'
manifest.json
@@ -2,8 +2,8 @@
    "name" : "智云LMES",
    "appid" : "__UNI__B002F49",
    "description" : "",
    "versionName" : "3.021",
    "versionCode" : 321,
    "versionName" : "3.022",
    "versionCode" : 322,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
pages.json
@@ -2029,6 +2029,30 @@
            "style": {
                "navigationBarTitleText": "设备点检统计分析"
            }
        },
        {
            "path": "pages/caigoutuiliaocheck/Kf_POStockInBackBill_Check",
            "style": {
                "navigationBarTitleText": "采购退料校验"
            }
        },
        {
            "path": "pages/weiwaituiliaocheck/Kf_EntrustOutBackBill_Check",
            "style": {
                "navigationBarTitleText": "委外退料校验"
            }
        },
        {
            "path": "pages/weiwaituiliaocheck/Kf_EntrustOutBackBill_CheckList",
            "style": {
                "navigationBarTitleText": "委外退料校验缓存"
            }
        },
        {
            "path": "pages/caigoutuiliaocheck/Kf_POStockInBackBill_CheckList",
            "style": {
                "navigationBarTitleText": "采购退料校验缓存列表"
            }
        }
    ],
    "tabBar": {
pages/EmployeeRecords/EmployeeRecordsBill.vue
@@ -437,12 +437,7 @@
                            this.hform.HMouldNo = data.模具编码
                            this.hform.HMouldName = data.模具名称
                            this.hform.HMouldState = data.模具状态
                        } else {
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
                            })
                        }
                        }
                    },
                    fail: (res) => {
                        console.log(res);
@@ -470,11 +465,6 @@
                                    index: i
                                }))
                            }
                        } else {
                            uni.showToast({
                                title: res.data.Message,
                                icon: 'none'
                            })
                        }
                    },
                    fail: (res) => {
pages/MJGL/SC_MouldRepairCheck/Sc_MouldRepairCheckBill.vue
@@ -99,7 +99,7 @@
                    </zxz-uni-data-select>
                </view>
                <view class="form-item">
                    <view class="title">验收项目:</view>
                    <view class="title required">验收项目:</view>
                    <zxz-uni-data-select class="right" :localdata="HRepairCheckList" dataKey="维修验收项目"
                        dataValue="hitemid" v-model="hform.HRepairCheckMainID">
                    </zxz-uni-data-select>
@@ -210,8 +210,9 @@
            <button class="btn-c" size="mini" @tap="goBack">退出</button>
        </view>
        <!-- 弹出模具故障登记单的选择列表 -->
        <BillListPopupMouldConkBookBillVue ref="billList" :HBillType="hform.HBillType"
            :HSourceBillType="hform.HMainSourceBillType" :HStockOrgID="hform.HStockOrgID">
        <BillListPopupMouldConkBookBillVue ref="billList" :HBillType="hform.HBillType" :HMouldID="hform.HMouldID"
            :HSourceBillType="hform.HMainSourceBillType" :HStockOrgID="hform.HStockOrgID"
            :ignore-close-person-filter="true">
        </BillListPopupMouldConkBookBillVue>
        <!-- 弹出模具维修记录单的选择列表 -->
        <RepairRecordPopup ref="repairRecordList" :HBillType="hform.HBillType" :HStockOrgID="hform.HStockOrgID">
@@ -324,36 +325,42 @@
        methods: {
            // 提交数据有效性校验
            ValidCheck() {
                if (this.hform.HEquipID == 0) {
                if (this.hform.HEquipID == 0 || this.hform.HEquipID === undefined) {
                    return {
                        Message: "未录入模具信息,请先录入模具信息!",
                        state: false
                    }
                }
                if (this.hform.HDeptID == 0) {
                if (this.hform.HDeptID == 0 || this.hform.HDeptID === undefined) {
                    return {
                        Message: "部门不得为空!",
                        state: false
                    }
                }
                if (this.hform.HEmpID == 0) {
                if (this.hform.HEmpID == 0 || this.hform.HEmpID === undefined) {
                    return {
                        Message: "验收人不得为空!",
                        state: false
                    }
                }
                // if (this.hform.HRepairCheckMainID == 0) {
                //     return {
                //         Message: "验证项目不得为空!",
                //         state: false
                //     }
                // }
                if (this.hform.HManagerID == 0) {
                if (this.hform.HRepairCheckMainID == 0 || this.hform.HRepairCheckMainID === undefined) {
                    return {
                        Message: "验收项目不得为空!",
                        state: false
                    }
                }
                if (this.hform.HManagerID == 0 || this.hform.HManagerID === undefined) {
                    return {
                        Message: "负责人不得为空!",
                        state: false
                    }
                }
                if (this.hform.HMouldRepairWorkID == 0 || this.hform.HMouldRepairWorkID === undefined) {
                    return {
                        Message: "维修记录不得为空!",
                        state: false
                    }
                }
                return {
                    Message: "",
pages/MJGL/Sb_EquipRepairCheckBill/Sb_EquipRepairCheckBill.vue
@@ -268,6 +268,7 @@
                    "lngBillKey": "",
                    "lngBillSubKey": "",
                    // 新增:维修记录(源单)相关字段
                    "HMainSourceBillType":"",
                    "HMainSourceBillNo": "",
                    "HMainSourceInterID": 0,
                    "HMainSourceEntryID": 0,
@@ -334,6 +335,7 @@
                        this.hform.HMainSourceBillNo = data[0]["单据号"];
                        this.hform.HMainSourceInterID = data[0]["hmainid"];
                        this.hform.HMainSourceEntryID = data[0]["hsubid"];
                        this.hform.HMainSourceBillType="3910"
                        // 如果源单有设备信息,可以自动填充
                        if (data[0].HEquipID) {
@@ -770,6 +772,7 @@
                        this.hform.HMainSourceInterID = data[0]["HEquipRepairCheckBillInterID"];
                        this.hform.HMainSourceEntryID = data[0]["HEquipRepairCheckBillEntryID"];
                        this.hform.HManagerID = data[0]["HManagerID"];
                        this.hform.HMainSourceBillType="3907"
                        this.hform.HEmpID = data[0]["HEmpID"];
                        this.getSendWorkBill(HSendWorkID)
                    } else {
@@ -881,6 +884,7 @@
            // 监听单据选择完成事件
            uni.$on('BillSelectComplete', (e) => {
                console.log("接收到的消息: ", e)
                this.hform.HMainSourceBillType=e.HBillType
                this.hform.HMainSourceInterID = e.HInterID
                this.hform.HMainSourceBillNo = e.HBillNo
                this.hform.HMainSourceEntryID = e.HEntryID
pages/MJGL/Sc_MouldRepairSendWork/Sc_MouldRepairSendWorkBill.vue
@@ -281,8 +281,9 @@
        </view>
        <!-- 新增弹窗组件 -->
        <BillListPopupMouldConkBookBillVue ref="billList" :HBillType="hform.HBillType"
            :HSourceBillType="hform.HMainSourceBillType" :HStockOrgID="hform.HStockOrgID">
        <BillListPopupMouldConkBookBillVue ref="billList" :HBillType="hform.HBillType" :HMouldID="hform.HMouldID"
            :HSourceBillType="hform.HMainSourceBillType" :HStockOrgID="hform.HStockOrgID"
            :ignore-close-person-filter="false">
        </BillListPopupMouldConkBookBillVue>
    </view>
</template>
@@ -828,7 +829,7 @@
                                if (res.confirm) {
                                    console.log('用户点击确定');
                                    uni.redirectTo({
                                        // url: './Sc_MouldRepairSendWorkBill?operationType=1'
                                         url: './Sc_MouldRepairSendWorkBill?operationType=1'
                                    })
                                } else if (res.cancel) {
                                    console.log('用户点击取消');
pages/MJGL/Sc_MouldRepairWorkBill/Sc_MouldRepairWorkBill.vue
@@ -79,26 +79,6 @@
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修内容</view>
                    <view class="right">
                        <textarea v-model="hform.HRepairContent" style="height: 6em;" maxlength="2000"
                            placeholder="请输入维修内容..." />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title required">计划维修工时</view>
                    <view class="right">
                        <input type="number" name="HPlanTimes" v-model="hform.HPlanTimes"
                            @focus="hform.HPlanTimes = ''" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title required">实际维修工时</view>
                    <view class="right">
                        <input type="number" name="HTimes" v-model="hform.HTimes" @focus="hform.HTimes = ''" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">单据号</view>
                    <view class="righton">
                        <input name="HInterID" disabled v-model="hform.HBillNo" />
@@ -119,6 +99,13 @@
                            @input="DeptChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title required">负责人</view>
                    <view class="right">
                        <uni-combox :candidates="EmpNameList" placeholder="请选择负责人" v-model="hform.HManagerName"
                            @input="ManagerChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title required">维修人</view>
                    <view class="right">
@@ -126,20 +113,34 @@
                            @input="EmpChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title required">负责人</view>
                    <view class="right">
                        <uni-combox :candidates="EmpNameList" placeholder="请选择负责人" v-model="hform.HManagerName"
                            @input="ManagerChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修项目</view>
                    <view class="title required">维修项目</view>
                    <view class="right">
                        <uni-combox :candidates="RepairNameNameList" placeholder="请选择维修项目" v-model="hform.HRepairName"
                            @input="RepairNameChange"></uni-combox>
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">计划维修工时</view>
                    <view class="right">
                        <input type="number" name="HPlanTimes" v-model="hform.HPlanTimes"
                            @focus="hform.HPlanTimes = ''" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">实际维修工时</view>
                    <view class="right">
                        <input type="number" name="HTimes" v-model="hform.HTimes" @focus="hform.HTimes = ''" />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修内容</view>
                    <view class="right">
                        <textarea v-model="hform.HRepairContent" style="height: 6em;" maxlength="2000"
                            placeholder="请输入维修内容..." />
                    </view>
                </view>
                <view class="form-item">
                    <view class="title">维修要求</view>
                    <view class="right">
@@ -255,8 +256,9 @@
                <button class="btn-c" size="mini" @tap="goBack">退出</button>
            </view>
        </view>
        <BillListPopupMouldConkBookBillVue ref="billList" :HBillType="hform.HBillType"
            :HSourceBillType="hform.HMainSourceBillType" :HStockOrgID="hform.HStockOrgID">
        <BillListPopupMouldConkBookBillVue ref="billList" :HBillType="hform.HBillType"  :HMouldID="hform.HMouldID"
            :HSourceBillType="hform.HMainSourceBillType" :HStockOrgID="hform.HStockOrgID"
            :ignore-close-person-filter="false">
        </BillListPopupMouldConkBookBillVue>
        <BarCodePopupVue ref="barcodePopup"></BarCodePopupVue>
        <BillListPopupMouldVue @BillSelectComplete="MouldBillHandler" ref="billListMould"></BillListPopupMouldVue>
@@ -1086,17 +1088,17 @@
                let message = ''
                if (!this.hform.HMainSourceBillNo && this.hform.HMainSourceBillType != '1') {
                    message = '未填写故障登记单'
                    message = '请选择故障登记单'
                } else if (!this.hform.HDeptName) {
                    message = '未填写部门'
                    message = '请选择部门'
                } else if (!this.hform.HEmpName) {
                    message = '未填写维修人'
                    message = '请选择维修人'
                } else if (!this.hform.HManagerName) {
                    message = '未填写负责人'
                    message = '请选择负责人'
                } 
                // else if (!this.hform.HRepairName) {
                //     message = '未填写维修项目'
                // }
                else if (!this.hform.HRepairName) {
                    message = '请选择维修项目'
                }
                if (!message) {
                    return true
pages/ZLGL/mojianjianyan/ProcessCheckBill.vue
@@ -1492,10 +1492,11 @@
                    HStatus: 1,
                    HSampleSchemeID: "",
                    HUnitID: 0,
                    HInspectVal: "",
                    HInspectVal: "0",
                    HTargetVal: "",
                    HUpLimit: "",
                    HDownLimit: "",
                    HInspectValQ:0,
                    HUpOffSet: "",
                    HDownOffSet: "",
                    HSampleDamageQty: 0,
@@ -1640,6 +1641,7 @@
                        HUpLimit: data["上限值"] || 0,
                        HDownLimit: data["下限值"] || 0,
                        HSampleDamageQty: data["样本破坏数"] || 0,
                        HInspectValQ:  0
                    });
                    await this.$nextTick();
                    this.$refs.listPopup.exit();
@@ -1927,7 +1929,7 @@
                                HStatus: 0,
                                HSampleSchemeID: data[i]["HSampleSchemeID"],
                                HUnitID: data[i]["HUnitID"],
                                HInspectVal: "",
                                HInspectVal: "0",
                                HTargetVal: "",
                                HUpLimit: data[i].上限值,
                                HDownLimit: data[i].下限值,
pages/ZLGL/shoujianjianyan/firstCheckBill.vue
@@ -329,8 +329,9 @@
                                <!-- 只有定量分析才启用检验值 -->
                                <view class="detail editable" v-show="checkItem.HAnalysisMethod == 2">
                                    <text>检验值:</text>
                                    <input type="text" class="editable-input" @blur="calcHResult(checkItem)"
                                        v-model="checkItem.HInspectValQ" />
                                    <input type="number" class="editable-input" :data-index="checkItem.num"
                                        :focus="checkItem.isFocus" @confirm.stop="calcHResult(checkItem, $event)"
                                        @blur.stop="calcHResult(checkItem, $event)" v-model="checkItem.HInspectValQ" />
                                </view>
                                <view class="detail" v-if="checkItem.HQCNote">
@@ -445,7 +446,7 @@
        </view>
        <view style="height: 120rpx"></view>
        <view class="bottom-btn" @tap.stop="() => {}">
            <button class="btn-a" size="mini"  @tap.stop="submit">提交</button>
            <button class="btn-a" size="mini" @tap.stop="submit">提交</button>
            <view style="flex: 1"></view>
            <button class="btn-a" size="mini" @tap.stop="addNew">新增</button>
            <button class="btn-c" size="mini" @tap.stop="goBack">退出</button>
@@ -671,19 +672,35 @@
        },
        methods: {
            // 检验值 计算是否合格
            calcHResult(item) {
            calcHResult(item, event) {
                // 非抽检条件下判断结论
                console.log('item: ', item);
                if (!item.HSampleSchemeID) {
                if (!item.HQCCheckItemID) {
                    CommonUtils.showTips({
                        message: '录入检验值时,未选中检验项目,请选择检验项目后再录入检验值'
                    })
                    return
                }
                if (item.HInspectValQ >= item.HDownLimit && item.HInspectValQ <= item.HUpLimit) {
                    this.checkItems[item.num].HResult = 1
                    return
                } else {
                    this.checkItems[item.num].HResult = 2
                }
                console.log('item: ', item);
                console.log('event.type: ', event.type);
                this.checkItems[item.num].HResult = 2
                // 查找当前检验项目中,下一个分析方法为定量分析的检验项目,将检验项目的检验值设置为聚焦
                for (let key in this.checkItems) {
                    if (this.checkItems.hasOwnProperty(key)) {
                        let element = this.checkItems[key];
                        if (key > item.num && element["HAnalysisMethod"] == 2) {
                            this.checkItems[item.num]["isFocus"] = false
                            element["isFocus"] = false
                            this.$nextTick(() => {
                                element["isFocus"] = true
                            })
                        }
                    }
                }
            },
            // 读取缓存
            loadCache() {
@@ -1430,12 +1447,16 @@
                }
                return "";
            },
            checkResultChange({detail: {value}}) {
               if(value == 1) {
                   this.hform.HLastResult = false
               }else {
                   this.hform.HLastResult = true
               }
            checkResultChange({
                detail: {
                    value
                }
            }) {
                if (value == 1) {
                    this.hform.HLastResult = false
                } else {
                    this.hform.HLastResult = true
                }
            },
            // 检验项目新增行
            addCheckItem(resource) {
@@ -1462,7 +1483,7 @@
                    HStatus: 1,
                    HSampleSchemeID: "",
                    HUnitID: 0,
                    HInspectVal: "",
                    HInspectVal: "0",
                    HTargetVal: "",
                    HUpLimit: "",
                    HDownLimit: "",
@@ -1479,6 +1500,8 @@
                    HAQL: "",
                    HSamplingType: "",
                    HInspectResultToSee: "",
                    HInspectValQ: "0",
                    isFocus: false,
                };
                if (resource) {
                    // 通过主表检验方案带出的检验项目
@@ -1881,7 +1904,7 @@
                                HStatus: 0,
                                HSampleSchemeID: data[i]["HSampleSchemeID"],
                                HUnitID: data[i]["HUnitID"],
                                HInspectVal: "",
                                HInspectVal: "0",
                                HTargetVal: "",
                                HUpLimit: data[i].上限值,
                                HDownLimit: data[i].下限值,
@@ -1982,29 +2005,29 @@
                    });
                    return false;
                }
                // 判断 最后结果为不合格的情况下,检验项目中是否有不合格项
                if(this.hform.HLastResult == 0 || this.hform.HLastResult == false){
                if (this.hform.HLastResult == 0 || this.hform.HLastResult == false) {
                    let count = 0
                    console.log('this.checkItems: ',this.checkItems);
                    console.log('this.checkItems: ', this.checkItems);
                    for (let key in this.checkItems) {
                        if (this.checkItems.hasOwnProperty(key)) {
                            let element = this.checkItems[key];
                            if(element.HResult == 2){
                                count ++
                            if (element.HResult == 2) {
                                count++
                            }
                        }
                    }
                    if(count == 0) {
                    if (count == 0) {
                        CommonUtils.showTips({
                            message: "判断结论为不合格,检验项目中不存在不合格单据,提交失败!",
                        });
                        return false;
                    }
                }
                if(!this.hform.HSourceBillNo) {
                if (!this.hform.HSourceBillNo) {
                    CommonUtils.showTips({
                        message: "未扫描(选择)源单,请扫描(选择)源单后提交!",
                    });
@@ -2133,9 +2156,9 @@
                            this.$refs.popup.open('center')
                            return
                        }
                        // 根据 提交返回 的是否允许显示提示信息 判断是直接新增单据还是提示信息
                        if(res.data.NotShowTips) {
                        if (res.data.NotShowTips) {
                            this.addNew()
                            return
                        }
@@ -2178,7 +2201,7 @@
                        '&HSourceName=' + this.hform.HSourceName +
                        '&HSourceBillNo=' + this.hform.HSourceBillNo +
                        '&HType=' + item +
                        '&OperationType=5&linterid='+ this.hform.HInterID +'&HSouceBillType=7505'
                        '&OperationType=5&linterid=' + this.hform.HInterID + '&HSouceBillType=7505'
                })
            },
            async auditBill() {
@@ -2396,7 +2419,7 @@
                await this.getMaxBillNo();
            } else if (this.operationType == 2) {
                //有源单下推
                await this.getMaxBillNo();
                await this.getMaxBillNo();
                if (e.HSouceBillType == "7521") {
                    if (uni.getStorageSync('Organization') == "宁波市华舟包装有限公司") {
@@ -2409,18 +2432,21 @@
                    this.hform.HTakeSampleCheckBillID = e.linterid;
                    //取样单查询数据
                    await this.LoadingInformation_TakeSampleCheckBill(e.linterid);
                } else if (e.HSouceBillType == "3772"){
                } else if (e.HSouceBillType == "3772") {
                    if (uni.getStorageSync('Organization') == "宁波市华舟包装有限公司") {
                        this.HSourceBillType = "工序流转卡"; // 显示名称
                        this.hform.HSourceBillType = "3772"; // 对应的值
                        this.hform.HSourceBillNo = e.HBillNo
                    }
                    this.hform.HProcExchBillNo = e.HBillNo
                    this.hform.HProcExchInterID = e.linterid
                    this.hform.HProcExchEntryID = e.hsubid
                    await this.HandleBillSelectComplete({HInterID: e.linterid, HEntryID: e.hsubid})
                    await this.HandleBillSelectComplete({
                        HInterID: e.linterid,
                        HEntryID: e.hsubid
                    })
                }
            } else if (this.operationType == 3) {
                this.hform.HInterID = e.linterid || 0;
pages/ZLGL/xunjianjianyan/PatrolProcCheckBill.vue
@@ -1373,7 +1373,7 @@
                    HStatus: 1,
                    HSampleSchemeID: "",
                    HUnitID: 0,
                    HInspectVal: "",
                    HInspectVal: "0",
                    HTargetVal: "",
                    HUpLimit: "",
                    HDownLimit: "",
@@ -1792,7 +1792,7 @@
                                HStatus: 0,
                                HSampleSchemeID: data[i]["HSampleSchemeID"],
                                HUnitID: data[i]["HUnitID"],
                                HInspectVal: "",
                                HInspectVal: "0",
                                HTargetVal: "",
                                HUpLimit: data[i].上限值,
                                HDownLimit: data[i].下限值,
pages/caigoutuiliaocheck/Kf_POStockInBackBill_Check.vue
New file
@@ -0,0 +1,1144 @@
<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;" @tap="delMater(item)">
                        <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_POStockInBackBill_PDA', //已调整
                ModRightName: 'Kf_POStockInBackBill_Check', //已调整
                OperationType: 1,
                barCodeFocus: false,
                showHStockPlaceName: false,
                HBillNoFocus: false,
                showHBillNo: true,
                tabs: 1,
                linterid: '',
                HBillNo: '',
                arrayHWHName: [], //仓库
                HWHNameList: [],
                arrayHStockPlaceName: [], //仓位
                HStockPlaceNameList: [],
                Materlist: [],
                hform: {
                    HBillType: 1239, //已调整
                    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: {
            //删除物料码
            delMater(item) {
                uni.showModal({
                    title: '提示',
                    content: '确认要删除 " ' + item.物料名称 + ' " 所有扫码记录?删除后将不可恢复!',
                    success: (res) => {
                        if (res.confirm) {
                            uni.request({
                                url: this.serverUrl +
                                    '/WEBSController/set_DeleteBarCodeByEntryID_BillCheck_New_Json',
                                data: {
                                    HInterID: this.hform.HInterID,
                                    HBillType: this.hform.HBillType,
                                    HSourceInterID: item.HSourceInterID,
                                    HSourceEntryID: item.HSourceEntryID,
                                    HSourceBarCodeCtl: this.hform.HSourceBarCodeCtl
                                },
                                success: (res) => {
                                    if (res.data.count == 1) {
                                        this.DisBillEntryList()
                                    } else {
                                        uni.showToast({
                                            title: res.data.Message,
                                            icon: 'none'
                                        })
                                    }
                                },
                                fail: (res) => {
                                    console.log(res);
                                    uni.showToast({
                                        title: '接口请求失败',
                                        icon: 'none'
                                    })
                                },
                            });
                        }
                    }
                });
            },
            // 获取仓位
            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.HSourceBarCodeCt
                    },
                    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/caigoutuiliaocheck/Kf_POStockInBackBill_Check?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_SavePOStockInBackBill_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/shengchantuiliaoCheck/MateOutBackCheckBill?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/caigoutuiliaocheck/Kf_POStockInBackBill_CheckList'
                            })
                        } 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/caigoutuiliaocheck/Kf_POStockInBackBill_CheckList.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: 1239,
                    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_MateOutBackCheck',
                        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: 1244,
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                }
                this.getList()
            },
            add(){
                uni.navigateTo({
                    url:'./Kf_POStockInBackBill_Check?OperationType=1'
                })
            },
            //编辑
            edit(item){
                console.log(item)
                uni.navigateTo({
                    url:'./Kf_POStockInBackBill_Check?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'),
                                    HStockOrgID:this.hform.HStockOrgID,
                                    MvarReportTitle:this.MvarReportTitle,
                                },
                                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'),
                                    HStockOrgID:this.hform.HStockOrgID,
                                    MvarReportTitle:this.MvarReportTitle,
                                },
                                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/gongxuOut/Cj_StationOutBill_Standard.vue
@@ -1505,6 +1505,7 @@
                            this.hform.NoOutboundHqty = (data.流转卡数量 - data.出站报废关联数量 - data.出站关联数量)
                            this.hform.HStyleNumber = data['款号']
                            this.hform.HNotReportQty = data['未报工数量']
                            this.hform.HQty = data['合格数量']
                            //设置序列
                            this.getHSEQList(e);
                            
pages/index/index.vue
@@ -416,7 +416,21 @@
                        "url": "/pages/Sc_PackUnionCarryUpBill/Sc_PackUnionCarryUpBill_Fast",
                        "id": 47,
                        "hidden": false
                    }
                    },
                    {
                        img: '../../static/icon/icon17.png',
                        text: '采购退料校验',
                        url: '/pages/caigoutuiliaocheck/Kf_POStockInBackBill_Check?OperationType=1',
                        id: 48,
                        hidden: false,
                    },
                    {
                        img: '../../static/icon/icon17.png',
                        text: '委外退料校验',
                        url: '/pages/weiwaituiliaocheck/Kf_EntrustOutBackBill_Check?OperationType=1',
                        id: 49,
                        hidden: false,
                    }
                ],
            }
        },
pages/index/tab2.vue
@@ -637,6 +637,21 @@
                        "id": 55,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon15.png",
                        "text": "委外退料校验缓存列表",
                        "url": "/pages/weiwaituiliaocheck/Kf_EntrustOutBackBill_CheckList",
                        "id": 80,
                        "hidden": false
                    },
                    {
                        "img": "../../static/icon/icon15.png",
                        "text": "采购退料校验缓存列表",
                        "url": "/pages/caigoutuiliaocheck/Kf_POStockInBackBill_CheckList",
                        "id": 81,
                        "hidden": false
                    }
                ]
            }
        },
pages/tiaomamingxi/tiaomamingxi.vue
@@ -1,6 +1,6 @@
<template>
    <view class="page" id="pageContent">
<!--        <view class="search-condition-zone">
        <!--        <view class="search-condition-zone">
            <view class="form-item">
                <view class="left">
                    条码:
@@ -18,23 +18,33 @@
                </view>
            </view>
        </view> -->
<!--        <view class="button-zone">
        <!--        <view class="button-zone">
            <button type="default" class="btn-a" size="mini" @tap="cmdChange">调整</button>
            <button type="default" class="btn-c" size="mini" @tap="exit">退出</button>
        </view> -->
        <view class="info-list-zone" id="scroll-content" :style="{height: scrollContentHeight + 'px'}">
            <view class="list" v-for="(item, index) in Materlist" :key="index">
                <uni-card :title="item.HBarCode" style="margin: 10px;" @tap="delMater(item)">
                    <view class="card-detail">
                        <view class="detail">
                            <text>{{ $t("Kf_ProductInBill_PDA.table_SourceBillNo") == "Kf_ProductInBill_PDA.table_SourceBillNo" ? "批次" : $t("Kf_ProductInBill_PDA.table_SourceBillNo") }}:</text>{{ item.HBatchNo }}
                        </view>
                        <view class="detail">
                            <text>{{ $t("Kf_ProductInBill_PDA.table_SourceBillNo") == "Kf_ProductInBill_PDA.table_SourceBillNo" ? "数量" : $t("Kf_ProductInBill_PDA.table_SourceBillNo") }}:</text>{{ item.HQty }}
                        </view>
                    </view>
                </uni-card>
            </view>
            <view class="list" v-for="(item, index) in Materlist" :key="index">
                <uni-card style="margin: 10px;" @tap="delMater(item)">
                    <template slot="title">
                        <view  class="uni-card__header">
                            <view class="uni-card__header-box">
                                <view class="uni-card__header-content">
                                    <view class="uni-card__header-content-title wrap-title">{{ item.HBarCode }}</view>
                                </view>
                            </view>
                        </view>
                    </template>
                    <view class="card-detail">
                        <view class="detail">
                            <text>{{ $t("Kf_ProductInBill_PDA.table_SourceBillNo") == "Kf_ProductInBill_PDA.table_SourceBillNo" ? "批次" : $t("Kf_ProductInBill_PDA.table_SourceBillNo") }}:</text>{{ item.HBatchNo }}
                        </view>
                        <view class="detail">
                            <text>{{ $t("Kf_ProductInBill_PDA.SourceBillQty") == "Kf_ProductInBill_PDA.SourceBillQty" ? "数量" : $t("Kf_ProductInBill_PDA.SourceBillQty") }}:</text>{{ item.HQty }}
                        </view>
                    </view>
                </uni-card>
            </view>
        </view>
        <view class="pagination-zone" id="pagination-zone">
            <uni-pagination show-icon :page-size="paginationMeta.pageSize" :total="paginationMeta.total"
@@ -58,35 +68,35 @@
                arrayHWHName: [],
                HStockPlaceNameList: [],
                arrayHStockPlaceName: [],
                Materlist: [],
                HMaterID: 0,
                HBillType: 0,
                HInterID: 0,
                Materlist: [],
                HMaterID: 0,
                HBillType: 0,
                HInterID: 0,
                HIsStockMgr: false,
                scrollTop: 0,
                HInterID_check: 0,
                HBillType_check: '',
                sBatchNo_check: '',
                sBarCode_check: '',
                sSCWhID_check: 0,
                sSCSPID_check: 0,
                sAuxPropID_check: 0,
                sMTONo_check: '',
                HMaterID_check: 0,
                sWhID_check: 0,
                sSPID_check: 0,
                HSourceInterID_check: 0,
                HSourceEntryID_check: 0,
                EndQty_check: 0,
                HInterID_check_check: 0,
                HInterID_check: 0,
                HBillType_check: '',
                sBatchNo_check: '',
                sBarCode_check: '',
                sSCWhID_check: 0,
                sSCSPID_check: 0,
                sAuxPropID_check: 0,
                sMTONo_check: '',
                HMaterID_check: 0,
                sWhID_check: 0,
                sSPID_check: 0,
                HSourceInterID_check: 0,
                HSourceEntryID_check: 0,
                EndQty_check: 0,
                HInterID_check_check: 0,
                hform: {
                    HBarCode: '',
                    HWHName: '',
                    HWHID: 0,
                    HStockPlaceName: '',
                    HStockPlaceID: 0,
                    iQty: 0,
                    iQty: 0,
                },
                paginationMeta: {
@@ -148,46 +158,46 @@
                    },
                )
            },
            delMater(item){
                console.log(this.HBillType, this.HInterID, item.HBarCode);
                uni.showModal({
                    title: '提示',
                    content: '确认要删除 "' + item.HBarCode + '" 吗?删除后将不可恢复!',
                    success: (res) => {
                        if (res.confirm) {
                            try {
                                CommonUtils.doRequest2({
                                    url: '/WEBSController/set_DelPonderationBillMain_Temp_BarCode_Json',
                                    data: {
                                        HInterID: this.HInterID,
                                        HBillType: this.HBillType,
                                        HBarCode: item.HBarCode
                                    },
                                    resFunction: () => {
                                        console.log("删除成功,开始刷新")
                                        uni.$emit('refreshList')
                                        this.GetMater();
                                        uni.showToast({
                                            title: '删除成功',
                                            icon: 'success'
                                        })
                                    }
                                });
                            } catch (e) {
                                console.log("删除异常", e);
                            }
                        } else if (res.cancel) {
                            console.log('用户取消删除');
                        }
                    }
                });
            },
            GetMater(){
            delMater(item) {
                console.log(this.HBillType, this.HInterID, item.HBarCode);
                uni.showModal({
                    title: '提示',
                    content: '确认要删除 "' + item.HBarCode + '" 吗?删除后将不可恢复!',
                    success: (res) => {
                        if (res.confirm) {
                            try {
                                CommonUtils.doRequest2({
                                    url: '/WEBSController/set_DelPonderationBillMain_Temp_BarCode_Json',
                                    data: {
                                        HInterID: this.HInterID,
                                        HBillType: this.HBillType,
                                        HBarCode: item.HBarCode
                                    },
                                    resFunction: () => {
                                        console.log("删除成功,开始刷新")
                                        uni.$emit('refreshList')
                                        this.GetMater();
                                        uni.showToast({
                                            title: '删除成功',
                                            icon: 'success'
                                        })
                                    }
                                });
                            } catch (e) {
                                console.log("删除异常", e);
                            }
                        } else if (res.cancel) {
                            console.log('用户取消删除');
                        }
                    }
                });
            },
            GetMater() {
                CommonUtils.doRequest2({
                    url: '/Kf_BarCodeEditDlg/Kf_BarCodeEditDlg_Json',
                    data: {
                        swhere:  ' and HInterID= ' + this.HInterID + ' and HMaterID= '+ this.HMaterID + ''
                    },
                        swhere: ' and HInterID= ' + this.HInterID + ' and HMaterID= ' + this.HMaterID + ''
                    },
                    resFunction: (res) => {
                        let {
                            data,
@@ -203,8 +213,8 @@
                            })
                        }
                    }
                });
            },
                });
            },
            onArrayHStockPlaceNameChangeHandler() {
                let index = this.HStockPlaceNameList.findIndex(p => p.HName == e)
                if (index != -1) {
@@ -232,7 +242,7 @@
                            }
                        } else {
                            uni.showToast({
                                title: '仓位数据请求失败'+res.Message,
                                title: '仓位数据请求失败' + res.Message,
                                icon: 'none'
                            })
                        }
@@ -240,120 +250,167 @@
                )
            },
            cmdChange() {
                CommonUtils.doRequest2({
                    url: '/Kf_BarCodeEditDlg/Kf_BarCodeEditDlg_Json',
                    data: {
                        swhere:  ' and HInterID= ' + this.HInterID + ' and HMaterID= '+ this.HMaterID + " and HBarCode= '" + this.hform.HBarCode + "'"
                    },
                    resFunction: (res) => {
                        let {
                            data,
                            count,
                            Message
                        } = res.data
                        if (count > 0) {
                            console.log(data)
                            uni.showModal({
                                title: '提示',
                                content: '确认要修改 "' + data[0].HBarCode + '" 吗?',
                                success: (res) => {
                                    if (res.confirm) {
                                        try {
                                            CommonUtils.doRequest2({
                                                url: '/Kf_BarCodeEditDlg/GetCheckQtyByBarCodeBill',
                                                data: {
                                                    HInterID: data[0].HInterID,
                                                    HBillType: data[0].HBillType,
                                                    sBatchNo: data[0].HBatchNo,
                                                    sBarCode: data[0].HBarCode,
                                                    sSCSPID: data[0].HOutStockPlaceID,
                                                    sSCWhID: data[0].HSCWHID,
                                                    sAuxPropID: data[0].HAuxPropID,
                                                    sMTONo: data[0].HMTONo,
                                                    iQty: this.hform.iQty,
                                                    HMaterID: data[0].HMaterID,
                                                    sWhID: data[0].HWhID,
                                                    sSPID: data[0].HStockPlaceID,
                                                    HSourceInterID: data[0].HSourceInterID,
                                                    HSourceEntryID: data[0].HSourceEntryID,
                                                    EndQty: this.hform.iQty - data[0].HQty,
                                                    sQty: data[0].HQty
                                                },
                                                resFunction: () => {
                                                    console.log("修改成功,开始刷新")
                                                    uni.$emit('refreshList')
                                                    this.GetMater();
                                                    uni.showToast({
                                                        title: '修改成功',
                                                        icon: 'success'
                                                    })
                                                    try {
                                                        CommonUtils.doRequest2({
                                                            url: '/Kf_BarCodeEditDlg/GetCheckQtyByBarCodeBill',
                                                            data: {
                                                                HInterID: data[0].HInterID,
                                                                HBillType: data[0].HBillType,
                                                                sBatchNo: data[0].HBatchNo,
                                                                sBarCode: data[0].HBarCode,
                                                                sSCSPID: data[0].HOutStockPlaceID,
                                                                sSCWhID: data[0].HSCWHID,
                                                                sAuxPropID: data[0].HAuxPropID,
                                                                sMTONo: data[0].HMTONo,
                                                                iQty: this.hform.iQty,
                                                                HMaterID: data[0].HMaterID,
                                                                sWhID: data[0].HWhID,
                                                                sSPID: data[0].HStockPlaceID,
                                                                HSourceInterID: data[0].HSourceInterID,
                                                                HSourceEntryID: data[0].HSourceEntryID,
                                                                EndQty: this.hform.iQty - data[0].HQty,
                                                                sQty: data[0].HQty
                                                            },
                                                            resFunction: () => {
                                                                console.log("修改成功,开始刷新")
                                                                uni.$emit('refreshList')
                                                                this.GetMater();
                                                                uni.showToast({
                                                                    title: '修改成功',
                                                                    icon: 'success'
                                                                })
                                                            }
                                                        });
                                                    } catch (e) {
                                                        console.log("修改异常", e);
                                                    }
                                                }
                                            });
                                        } catch (e) {
                                            console.log("修改异常", e);
                                        }
                                    } else if (res.cancel) {
                                        console.log('用户取消修改');
                                    }
                                }
                            });
                        } else {
                            uni.showToast({
                                icon: 'none',
                                title: Message
                            })
                        }
                    }
                });
                CommonUtils.doRequest2({
                    url: '/Kf_BarCodeEditDlg/Kf_BarCodeEditDlg_Json',
                    data: {
                        swhere: ' and HInterID= ' + this.HInterID + ' and HMaterID= ' + this.HMaterID +
                            " and HBarCode= '" + this.hform.HBarCode + "'"
                    },
                    resFunction: (res) => {
                        let {
                            data,
                            count,
                            Message
                        } = res.data
                        if (count > 0) {
                            console.log(data)
                            uni.showModal({
                                title: '提示',
                                content: '确认要修改 "' + data[0].HBarCode + '" 吗?',
                                success: (res) => {
                                    if (res.confirm) {
                                        try {
                                            CommonUtils.doRequest2({
                                                url: '/Kf_BarCodeEditDlg/GetCheckQtyByBarCodeBill',
                                                data: {
                                                    HInterID: data[0].HInterID,
                                                    HBillType: data[0].HBillType,
                                                    sBatchNo: data[0].HBatchNo,
                                                    sBarCode: data[0].HBarCode,
                                                    sSCSPID: data[0].HOutStockPlaceID,
                                                    sSCWhID: data[0].HSCWHID,
                                                    sAuxPropID: data[0].HAuxPropID,
                                                    sMTONo: data[0].HMTONo,
                                                    iQty: this.hform.iQty,
                                                    HMaterID: data[0].HMaterID,
                                                    sWhID: data[0].HWhID,
                                                    sSPID: data[0].HStockPlaceID,
                                                    HSourceInterID: data[0]
                                                        .HSourceInterID,
                                                    HSourceEntryID: data[0]
                                                        .HSourceEntryID,
                                                    EndQty: this.hform.iQty - data[0]
                                                        .HQty,
                                                    sQty: data[0].HQty
                                                },
                                                resFunction: () => {
                                                    console.log("修改成功,开始刷新")
                                                    uni.$emit('refreshList')
                                                    this.GetMater();
                                                    uni.showToast({
                                                        title: '修改成功',
                                                        icon: 'success'
                                                    })
                                                    try {
                                                        CommonUtils.doRequest2({
                                                            url: '/Kf_BarCodeEditDlg/GetCheckQtyByBarCodeBill',
                                                            data: {
                                                                HInterID: data[
                                                                        0]
                                                                    .HInterID,
                                                                HBillType: data[
                                                                        0]
                                                                    .HBillType,
                                                                sBatchNo: data[
                                                                        0]
                                                                    .HBatchNo,
                                                                sBarCode: data[
                                                                        0]
                                                                    .HBarCode,
                                                                sSCSPID: data[
                                                                        0]
                                                                    .HOutStockPlaceID,
                                                                sSCWhID: data[
                                                                        0]
                                                                    .HSCWHID,
                                                                sAuxPropID: data[
                                                                        0]
                                                                    .HAuxPropID,
                                                                sMTONo: data[
                                                                        0]
                                                                    .HMTONo,
                                                                iQty: this
                                                                    .hform
                                                                    .iQty,
                                                                HMaterID: data[
                                                                        0]
                                                                    .HMaterID,
                                                                sWhID: data[
                                                                        0]
                                                                    .HWhID,
                                                                sSPID: data[
                                                                        0]
                                                                    .HStockPlaceID,
                                                                HSourceInterID: data[
                                                                        0]
                                                                    .HSourceInterID,
                                                                HSourceEntryID: data[
                                                                        0]
                                                                    .HSourceEntryID,
                                                                EndQty: this
                                                                    .hform
                                                                    .iQty -
                                                                    data[0]
                                                                    .HQty,
                                                                sQty: data[
                                                                        0]
                                                                    .HQty
                                                            },
                                                            resFunction: () => {
                                                                console
                                                                    .log(
                                                                        "修改成功,开始刷新"
                                                                    )
                                                                uni.$emit(
                                                                    'refreshList'
                                                                )
                                                                this
                                                                    .GetMater();
                                                                uni.showToast({
                                                                    title: '修改成功',
                                                                    icon: 'success'
                                                                })
                                                            }
                                                        });
                                                    } catch (e) {
                                                        console.log("修改异常", e);
                                                    }
                                                }
                                            });
                                        } catch (e) {
                                            console.log("修改异常", e);
                                        }
                                    } else if (res.cancel) {
                                        console.log('用户取消修改');
                                    }
                                }
                            });
                        } else {
                            uni.showToast({
                                icon: 'none',
                                title: Message
                            })
                        }
                    }
                });
            },
            async onPaginationChangeHandler({current}) {
                this.listDataShow =this.listData.slice((current - 1) * this.paginationMeta.pageSize,current * this.paginationMeta.pageSize)
            async onPaginationChangeHandler({
                current
            }) {
                this.listDataShow = this.listData.slice((current - 1) * this.paginationMeta.pageSize, current * this
                    .paginationMeta.pageSize)
            }
        },
        async onLoad(options) {
            this.hform.HBarCode = options.HMaterNumber || '';
            this.hform.HBarCode = options.HMaterNumber || '';
            this.getWHInfo()
            this.getStockPlaceInfo()
            this.HMaterID = options.HMaterID
            this.HBillType = options.HBillType
            this.HInterID = options.HInterID
            console.log("赋值后:", this.HInterID, this.HMaterID, this.HBillType);
            await this.$nextTick();
            this.GetMater()
            this.HMaterID = options.HMaterID
            this.HBillType = options.HBillType
            this.HInterID = options.HInterID
            console.log("赋值后:", this.HInterID, this.HMaterID, this.HBillType);
            await this.$nextTick();
            this.GetMater()
            // this.$nextTick(() => {
            //     this.cmdSearch()
            // })
@@ -366,7 +423,7 @@
            }).exec()
            query.select("#pagination-zone").boundingClientRect((data) => {
                this.pageMeta.bottomBtnTop = data.top
                console.log('this.pageMeta.bottomBtnTop: ',this.pageMeta.bottomBtnTop);
                console.log('this.pageMeta.bottomBtnTop: ', this.pageMeta.bottomBtnTop);
            }).exec()
        },
    }
@@ -506,4 +563,66 @@
            width: 100%;
        }
    }
    .wrap-title {
        white-space: normal;
        display: inline-block;
        /* 行内块,可设宽高、触发文本完整换行 */
        max-width: 100%;
        /* 限制不超过父容器 */
        word-break: break-all;
        /* 兼容旧浏览器备用 */
        overflow-wrap: break-word;
    }
    .uni-card__header {
        display: flex;
        border-bottom: 1px #EBEEF5 solid;
        flex-direction: row;
        align-items: center;
        padding: 10px;
        overflow: hidden;
        .uni-card__header-box {
            /* #ifndef APP-NVUE */
            display: flex;
            /* #endif */
            flex: 1;
            flex-direction: row;
            align-items: center;
            overflow: hidden;
        }
        .uni-card__header-avatar {
            width: 40px;
            height: 40px;
            overflow: hidden;
            border-radius: 5px;
            margin-right: 10px;
            .uni-card__header-avatar-image {
                flex: 1;
                width: 40px;
                height: 40px;
            }
        }
        .uni-card__header-content {
            /* #ifndef APP-NVUE */
            display: flex;
            /* #endif */
            flex-direction: column;
            justify-content: center;
            flex: 1;
            // height: 40px;
            overflow: hidden;
            .uni-card__header-content-title {
                font-size: 14px;
                color: #3a3a3a;
                // line-height: 22px;
            }
        }
    }
</style>
pages/weiwairuku/EntrustInBill.vue
@@ -18,24 +18,25 @@
                </view>
            </view>
            <view class="form-item">
                <view class="title">仓库:</view>
                <view class="title">{{ $t(`Gy.HWHName`) == "Gy.HWHName"?"仓库": $t(`Gy.HWHName`) }}:</view>
                <view class="right">
                    <uni-combox :candidates="arrayHWHName" placeholder="请输入(或扫描)仓库" v-model="hform.HWHName"
                        @input="HWHNameChange" @confirm="HWHNameScan"></uni-combox>
                    <uni-combox :candidates="arrayHWHName" :placeholder="$t(`Gy.HWHName_Placeholder`)"
                        v-model="hform.HWHName" @input="HWHNameChange"></uni-combox>
                </view>
            </view>
            <view class="form-item">
                <view class="title">仓位:</view>
                <view class="right" v-show="showHStockPlaceName">
                    <uni-combox :candidates="HStockPlaceNameListComputed" placeholder="请输入(或扫描)仓位"
                        v-model="hform.HStockPlaceName" @input="HStockPlaceNameChange"
                        @confirm='HStockPlaceNameScan'></uni-combox>
                <view class="title">
                    {{ $t(`Gy.HStockPlaceName`) == "Gy.HStockPlaceName"?"仓位": $t(`Gy.HStockPlaceName`) }}:
                </view>
                <view class="righton" v-show="!showHStockPlaceName">
                    <input v-model="hform.HStockPlaceName" :disabled="!showHStockPlaceName" placeholder="不可操作" />
                <view class="right" v-show="true">
                    <uni-combox :candidates="arrayHStockPlaceNameComputed"
                        :placeholder="$t(`Gy.HStockPlaceName_Placeholder`)" v-model="hform.HStockPlaceName"
                        @input="HStockPlaceNameChange" @confirm="HStockPlaceNameScan"></uni-combox>
                </view>
                <view class="righton" v-show="false"><input v-model="hform.HStockPlaceName"
                        :placeholder="$t(`Gy.OperationDisabled`)" :disabled="!showHStockPlaceName" /></view>
            </view>
            <view class="tabs">
                <view :class="tabs == 0 ? 'on' : ''" @tap="tabs = 0">选择源单</view>
                <view :class="tabs == 1 ? 'on' : ''" @tap="tabs = 1">表头信息</view>
@@ -393,7 +394,7 @@
            BarCodePopupVue
        },
        computed: {
            HStockPlaceNameListComputed: {
            arrayHStockPlaceNameComputed: {
                get() {
                    // 动态计算对应仓库的仓位
                    return this.HStockPlaceNameList
@@ -418,10 +419,10 @@
            this.getHSupList()
            this.getHEmpList()
            this.getHDeptList()
            uni.$on('refreshList', () => {
                console.log('收到刷新指令!')
                this.DisBillEntryList() // 你的刷新方法
              })
            uni.$on('refreshList', () => {
                console.log('收到刷新指令!')
                this.DisBillEntryList() // 你的刷新方法
            })
            this.getRelationStore()
@@ -433,7 +434,7 @@
        },
        onUnload() {
            uni.$off('BillSelectComplete')
            this.$refs.billList.exit()
            this.$refs.billList.exit()
        },
        methods: {
            async HWHNameScan(e) {
@@ -451,19 +452,39 @@
            },
            async HStockPlaceNameScan(e) {
                // 扫描仓位码
                console.log('仓位码: ', e);
                let index = this.HStockPlaceNameList.findIndex(elem => elem['条码编号'] == e.trim())
               // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
                console.log('Code: ', e);
                // 不先置空的话,数据再次扫描相同的仓位码 不会触发组件内的刷新
                this.hform.HStockPlaceID = 0
                this.hform.HStockPlaceName = ''
                await this.$nextTick()
                if (index == -1) {
                    uni.showToast({
                        icon: 'none',
                        title: '扫描仓位条码对应的仓位不存在...'
                try {
                    let res = await CommonUtils.doRequest2Async({
                        url: '/Gy_StockPlace/list',
                        data: {
                            sWhere: ` and 条码编号 = '${e}'`,
                            user: uni.getStorageSync('HUserName'),
                            Organization: uni.getStorageSync('Organization')
                        },
                    })
                } else {
                    this.HStockPlaceNameChange(this.HStockPlaceNameList[index]['仓位名称'])
                    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].所属仓库
                        this.refreshBarCodeState()
                    } else {
                        uni.showToast({
                            title: '仓位数据请求失败',
                            icon: 'none'
                        })
                    }
                } catch (err) {
                    uni.showToast({
                        title: '仓位数据请求失败',
                        icon: 'none'
                    })
                }
            },
            async qrCodeDisplay() {
@@ -1449,9 +1470,10 @@
            },
            //删除物料码
            delMater(item) {
                uni.navigateTo({
                        url:'../tiaomamingxi/tiaomamingxi?HInterID=' + this.hform.HInterID + '&HMaterID=' + item.HMaterID + '&HBillType=' + this.hform.HBillType
                    })
                uni.navigateTo({
                    url: '../tiaomamingxi/tiaomamingxi?HInterID=' + this.hform.HInterID + '&HMaterID=' + item
                        .HMaterID + '&HBillType=' + this.hform.HBillType
                })
                // uni.showModal({
                //     title: '提示',
                //     content: '确认要删除 " ' + item.物料名称 + ' " 所有扫码记录?删除后将不可恢复!',
@@ -1686,7 +1708,7 @@
                                icon: 'none'
                            })
                        }
                        // uni.request({
                        //     url: this.serverUrl + '/WEBSController/set_SaveEntrustInBill_Json',
                        //     method: 'POST',
pages/weiwaituiliaocheck/Kf_EntrustOutBackBill_Check.vue
New file
@@ -0,0 +1,1144 @@
<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;" @tap="delMater(item)">
                        <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_POStockInBackBill_PDA', //已调整
                ModRightName: 'Kf_POStockInBackBill_Check', //已调整
                OperationType: 1,
                barCodeFocus: false,
                showHStockPlaceName: false,
                HBillNoFocus: false,
                showHBillNo: true,
                tabs: 1,
                linterid: '',
                HBillNo: '',
                arrayHWHName: [], //仓库
                HWHNameList: [],
                arrayHStockPlaceName: [], //仓位
                HStockPlaceNameList: [],
                Materlist: [],
                hform: {
                    HBillType: 1238, //已调整
                    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: {
            //删除物料码
            delMater(item) {
                uni.showModal({
                    title: '提示',
                    content: '确认要删除 " ' + item.物料名称 + ' " 所有扫码记录?删除后将不可恢复!',
                    success: (res) => {
                        if (res.confirm) {
                            uni.request({
                                url: this.serverUrl +
                                    '/WEBSController/set_DeleteBarCodeByEntryID_BillCheck_New_Json',
                                data: {
                                    HInterID: this.hform.HInterID,
                                    HBillType: this.hform.HBillType,
                                    HSourceInterID: item.HSourceInterID,
                                    HSourceEntryID: item.HSourceEntryID,
                                    HSourceBarCodeCtl: this.hform.HSourceBarCodeCtl
                                },
                                success: (res) => {
                                    if (res.data.count == 1) {
                                        this.DisBillEntryList()
                                    } else {
                                        uni.showToast({
                                            title: res.data.Message,
                                            icon: 'none'
                                        })
                                    }
                                },
                                fail: (res) => {
                                    console.log(res);
                                    uni.showToast({
                                        title: '接口请求失败',
                                        icon: 'none'
                                    })
                                },
                            });
                        }
                    }
                });
            },
            // 获取仓位
            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.HSourceBarCodeCt
                    },
                    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/shengchantuiliaoCheck/MateOutBackCheckBill?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_SaveEntrustOutBackBill_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/weiwaituiliaocheck/Kf_EntrustOutBackBill_Check?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/weiwaituiliaocheck/Kf_EntrustOutBackBill_CheckList'
                            })
                        } 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/weiwaituiliaocheck/Kf_EntrustOutBackBill_CheckList.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: 1238,
                    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_MateOutBackCheck',
                        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: 1244,
                    HMaker: uni.getStorageSync('HUserName'),
                    HStockOrgID: uni.getStorageSync('OrganizationID'),
                }
                this.getList()
            },
            add(){
                uni.navigateTo({
                    url:'./Kf_EntrustOutBackBill_Check?OperationType=1'
                })
            },
            //编辑
            edit(item){
                console.log(item)
                uni.navigateTo({
                    url:'./Kf_EntrustOutBackBill_Check?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'),
                                    HStockOrgID:this.hform.HStockOrgID,
                                    MvarReportTitle:this.MvarReportTitle,
                                },
                                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'),
                                    HStockOrgID:this.hform.HStockOrgID,
                                    MvarReportTitle:this.MvarReportTitle,
                                },
                                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>